Rebase from upstream commit : 3bb9dcf44627ffdd313fe92c563ae454b6ff8aa6
authorRISCi_ATOM <bob@bobcall.me>
Thu, 14 Mar 2019 15:44:53 +0000 (11:44 -0400)
committerRISCi_ATOM <bob@bobcall.me>
Thu, 14 Mar 2019 15:44:53 +0000 (11:44 -0400)
2001 files changed:
config/Config-build.in
config/Config-images.in
config/Config-kernel.in
docs/Supported_Hardware.md
docs/ccs.md [deleted file]
include/download.mk
include/feeds.mk
include/image-commands.mk
include/image.mk
include/kernel-version.mk
include/kernel.mk
include/package-dumpinfo.mk
include/package-ipkg.mk
include/package.mk
include/prereq-build.mk
include/quilt.mk
include/scan.mk
include/target.mk
include/toolchain-build.mk
include/toplevel.mk
include/u-boot.mk
include/upstream.mk [deleted file]
include/version.mk
package/Makefile
package/base-files/Makefile
package/base-files/files/bin/config_generate
package/base-files/files/etc/init.d/system
package/base-files/files/etc/sysctl.d/10-default.conf
package/base-files/files/lib/functions.sh
package/base-files/files/lib/upgrade/common.sh
package/base-files/files/lib/upgrade/fwtool.sh
package/base-files/files/sbin/pkg_check [new file with mode: 0755]
package/base-files/files/sbin/sysupgrade
package/boot/fconfig/Makefile [deleted file]
package/boot/grub2/Makefile
package/boot/uboot-ar71xx/Makefile [deleted file]
package/boot/uboot-ar71xx/patches/0001-upstream-Reproducible-U-Boot-build-support-using-SOURCE_DATE_.patch [deleted file]
package/boot/uboot-ar71xx/patches/0002-upstream-Makefile-Reproducible-U-Boot-build-support.patch [deleted file]
package/boot/uboot-ar71xx/patches/001-ar71xx.patch [deleted file]
package/boot/uboot-ar71xx/patches/002-ar71xx-spi.patch [deleted file]
package/boot/uboot-ar71xx/patches/010-enet-ag71xx.patch [deleted file]
package/boot/uboot-ar71xx/patches/011-switch-rtl8366sr.patch [deleted file]
package/boot/uboot-ar71xx/patches/020-freebsd-compat.patch [deleted file]
package/boot/uboot-ar71xx/patches/021-darwin_compat.patch [deleted file]
package/boot/uboot-ar71xx/patches/022-getline_backport.patch [deleted file]
package/boot/uboot-ar71xx/patches/030-no_examples.patch [deleted file]
package/boot/uboot-ar71xx/patches/040-no_extern_inline.patch [deleted file]
package/boot/uboot-ar71xx/patches/041-no_weak_alias.patch [deleted file]
package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/Makefile [deleted file]
package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/config.mk [deleted file]
package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/lowlevel_init.S [deleted file]
package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/nbg460n.c [deleted file]
package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/u-boot.lds [deleted file]
package/boot/uboot-ar71xx/src/cpu/mips/ar71xx_serial.c [deleted file]
package/boot/uboot-ar71xx/src/drivers/net/ag71xx.c [deleted file]
package/boot/uboot-ar71xx/src/drivers/net/ag71xx.h [deleted file]
package/boot/uboot-ar71xx/src/drivers/net/phy/rtl8366.h [deleted file]
package/boot/uboot-ar71xx/src/drivers/net/phy/rtl8366_mii.c [deleted file]
package/boot/uboot-ar71xx/src/drivers/spi/ar71xx_spi.c [deleted file]
package/boot/uboot-ar71xx/src/include/asm-mips/ar71xx.h [deleted file]
package/boot/uboot-ar71xx/src/include/asm-mips/ar71xx_gpio.h [deleted file]
package/boot/uboot-ar71xx/src/include/configs/nbg460n.h [deleted file]
package/boot/uboot-envtools/files/ipq40xx
package/boot/uboot-envtools/files/mpc85xx [new file with mode: 0644]
package/boot/uboot-envtools/files/oxnas
package/boot/uboot-mvebu/Makefile [deleted file]
package/boot/uboot-mvebu/patches/210-link-libcrypto-static.patch [deleted file]
package/boot/uboot-oxnas/Makefile [deleted file]
package/boot/uboot-oxnas/patches/010-capacity-is-unsigned.patch [deleted file]
package/boot/uboot-oxnas/patches/020-socfpgaimage_portability.patch [deleted file]
package/boot/uboot-oxnas/patches/150-spl-block.patch [deleted file]
package/boot/uboot-oxnas/patches/200-icplus-phy.patch [deleted file]
package/boot/uboot-oxnas/patches/300-oxnas-target.patch [deleted file]
package/boot/uboot-oxnas/patches/400-gcc-5-compiler.patch [deleted file]
package/boot/uboot-oxnas/patches/410-gcc-6-compiler.patch [deleted file]
package/boot/uboot-oxnas/patches/420-gcc-7-compiler.patch [deleted file]
package/boot/uboot-oxnas/patches/800-fix-bootm-assertion.patch [deleted file]
package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/Makefile [deleted file]
package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/clock.c [deleted file]
package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/pinmux.c [deleted file]
package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/reset.c [deleted file]
package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/timer.c [deleted file]
package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/clock.h [deleted file]
package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/cpu.h [deleted file]
package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/hardware.h [deleted file]
package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/pinmux.h [deleted file]
package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/spl.h [deleted file]
package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/sysctl.h [deleted file]
package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/timer.h [deleted file]
package/boot/uboot-oxnas/src/board/ox820/Kconfig [deleted file]
package/boot/uboot-oxnas/src/board/ox820/MAINTAINERS [deleted file]
package/boot/uboot-oxnas/src/board/ox820/Makefile [deleted file]
package/boot/uboot-oxnas/src/board/ox820/ddr.c [deleted file]
package/boot/uboot-oxnas/src/board/ox820/ddr.h [deleted file]
package/boot/uboot-oxnas/src/board/ox820/lowlevel_init.S [deleted file]
package/boot/uboot-oxnas/src/board/ox820/ox820.c [deleted file]
package/boot/uboot-oxnas/src/board/ox820/spl_start.S [deleted file]
package/boot/uboot-oxnas/src/board/ox820/u-boot-spl.lds [deleted file]
package/boot/uboot-oxnas/src/common/env_ext4.c [deleted file]
package/boot/uboot-oxnas/src/common/spl/spl_block.c [deleted file]
package/boot/uboot-oxnas/src/configs/ox820_defconfig [deleted file]
package/boot/uboot-oxnas/src/drivers/block/plxsata_ide.c [deleted file]
package/boot/uboot-oxnas/src/drivers/usb/host/ehci-oxnas.c [deleted file]
package/boot/uboot-oxnas/src/include/configs/ox820.h [deleted file]
package/boot/uboot-oxnas/src/tools/mkox820crc.c [deleted file]
package/boot/uboot-sunxi/Makefile
package/devel/perf/Makefile
package/devel/strace/Makefile
package/devel/strace/patches/001-mips-o32-fix-build.patch [new file with mode: 0644]
package/devel/strace/patches/100-workaround--pt-reg-collisions-ppc.patch
package/kernel/linux/modules/can.mk
package/kernel/linux/modules/hwmon.mk
package/kernel/linux/modules/iio.mk
package/kernel/linux/modules/input.mk
package/kernel/linux/modules/netfilter.mk
package/kernel/linux/modules/netsupport.mk
package/kernel/linux/modules/other.mk
package/kernel/linux/modules/sound.mk
package/kernel/linux/modules/usb.mk
package/kernel/linux/modules/video.mk
package/kernel/linux/modules/wpan.mk
package/kernel/mac80211/Makefile
package/kernel/mac80211/ath.mk
package/kernel/mac80211/patches/ath/080-ath10k_thermal_config.patch [deleted file]
package/kernel/mac80211/patches/ath/381-ath9k-fix-tx99-with-monitor-mode-interface.patch
package/kernel/mac80211/patches/ath/395-ath9k-add-back-support-for-using-active-monitor-inte.patch
package/kernel/mac80211/patches/ath/407-regd_add_extra_country_codes.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/553-ath9k-dynack-use-authentication-messages-for-late-ac.patch [deleted file]
package/kernel/mac80211/patches/ath/554-ath9k-dynack-move-debug-log-after-buffer-increments.patch
package/kernel/mac80211/patches/ath/555-ath9k-dynack-check-da-enabled-first-in-sampling-rout.patch [deleted file]
package/kernel/mac80211/patches/ath/556-ath9k-dynack-make-ewma-estimation-faster.patch [deleted file]
package/kernel/mac80211/patches/ath/921-ath10k_init_devices_synchronously.patch [deleted file]
package/kernel/mac80211/patches/ath/930-ath10k_add_tpt_led_trigger.patch [deleted file]
package/kernel/mac80211/patches/ath/936-ath10k-fix-otp-failure-result.patch [deleted file]
package/kernel/mac80211/patches/ath/960-0010-ath10k-limit-htt-rx-ring-size.patch [deleted file]
package/kernel/mac80211/patches/ath/960-0011-ath10k-limit-pci-buffer-size.patch [deleted file]
package/kernel/mac80211/patches/ath/972-ath10k_fix-crash-due-to-wrong-handling-of-peer_bw_rxnss_override-parameter.patch [deleted file]
package/kernel/mac80211/patches/ath/973-ath10k_fix-band_center_freq-handling-for-VHT160-in-recent-firmwares.patch [deleted file]
package/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch [deleted file]
package/kernel/mac80211/patches/ath/975-ath10k-use-tpt-trigger-by-default.patch [deleted file]
package/kernel/mac80211/patches/ath/976-ath10k-Limit-available-channels-via-DT-ieee80211-fre.patch [deleted file]
package/kernel/mac80211/patches/build/060-no_local_ssb_bcma.patch
package/kernel/mac80211/patches/rt2x00/001-rt2x00-use-simple_read_from_buffer.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/002-rt2800-move-usb-specific-txdone-txstatus-routines-to.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/003-rt2800mmio-use-txdone-txstatus-routines-from-lib.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/004-rt2x00-do-not-check-for-txstatus-timeout-every-time-.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/005-rt2x00-use-different-txstatus-timeouts-when-flushing.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/006-rt2800-flush-and-txstatus-rework-for-rt2800mmio.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/007-rt2x00-rt2400pci-mark-expected-switch-fall-through.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/008-rt2x00-rt2500pci-mark-expected-switch-fall-through.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/009-rt2x00-rt2800lib-mark-expected-switch-fall-throughs.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/010-rt2x00-rt61pci-mark-expected-switch-fall-through.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/011-cross-tree-phase-out-dma_zalloc_coherent.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/012-rt2x00-reduce-tx-power-to-nominal-level-on-RT6352.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/013-rt2x00-Work-around-a-firmware-bug-with-shared-keys.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/014-rt2x00-no-need-to-check-return-value-of-debugfs_crea.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/015-rt2x00-remove-unneeded-check.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/016-rt2x00-remove-confusing-AGC-register.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/017-rt2800-enable-TX_PIN_CFG_LNA_PE_-bits-per-band.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/018-rt2800-enable-TX_PIN_CFG_RFRX_EN-only-for-MT7620.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/019-rt2800-comment-and-simplify-AGC-init-for-RT6352.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/020-rt2x00-do-not-print-error-when-queue-is-full.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/021-rt2800-partially-restore-old-mmio-txstatus-behaviour.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/022-rt2800-new-flush-implementation-for-SoC-devices.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/023-rt2800-move-txstatus-pending-routine.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/024-rt2800mmio-fetch-tx-status-changes.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/025-rt2800mmio-use-timer-and-work-for-handling-tx-status.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/026-rt2x00-remove-last_nostatus_check.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/027-rt2x00-remove-not-used-entry-field.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/028-rt2x00mmio-remove-legacy-comment.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/030-rt2x00_options.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/100-rt2x00_options.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/501-rt2x00-allow-to-build-rt2800soc-module-for-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/502-rt2x00-rt2800lib-enable-support-for-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/503-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/504-rt2x00-rt2800lib-enable-VCO-calibration-for-RF3853.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/505-rt2x00-rt2800lib-add-channel-configuration-function-.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/506-rt2x00-rt2800lib-enable-RF3853-support.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/507-rt2x00-rt2800lib-add-MAC-register-initialization-for.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/508-rt2x00-rt2800soc-fix-rt2800soc_disable_radio-for-RT3.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/509-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/510-rt2x00-rt2800lib-add-RFCSR-initialization-for-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/511-rt2x00-rt2800lib-use-the-extended-EEPROM-map-for-RT3.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/512-rt2x00-rt2800lib-force-rf-type-to-RF3853-on-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/513-rt2x00-rt2800lib-add-channel-configuration-code-for-.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/514-rt2x00-rt2800lib-fix-txpower_to_dev-function-for-RT3.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/515-rt2x00-rt2800lib-use-correct-txpower-calculation-fun.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/516-rt2x00-rt2800lib-hardcode-txmixer-gain-values-to-zer.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/517-rt2x00-rt2800lib-use-correct-RT-XWI-size-for-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/518-rt2x00-rt2800lib-fix-antenna-configuration-for-RT388.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/519-rt2x00-rt2800lib-fix-LNA-gain-configuration-for-RT38.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/520-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/521-rt2x00-rt2800lib-fix-EEPROM-LNA-validation-for-RT388.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/522-rt2x00-rt2800lib-fix-txpower-compensation-for-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-01-rt2x00-allow-to-build-rt2800soc-module-for-RT3883.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-02-rt2x00-rt2800lib-enable-support-for-RT3883.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-03-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-04-rt2x00-rt2800lib-enable-VCO-calibration-for-RF3853.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-05-rt2x00-rt2800lib-add-channel-configuration-function-.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-06-rt2x00-rt2800lib-enable-RF3853-support.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-07-rt2x00-rt2800lib-add-MAC-register-initialization-for.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-08-rt2x00-rt2800soc-fix-rt2800soc_disable_radio-for-RT3.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-09-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-10-rt2x00-rt2800lib-add-RFCSR-initialization-for-RT3883.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-11-rt2x00-rt2800lib-use-the-extended-EEPROM-map-for-RT3.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-12-rt2x00-rt2800lib-force-rf-type-to-RF3853-on-RT3883.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-13-rt2x00-rt2800lib-add-channel-configuration-code-for-.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-14-rt2x00-rt2800lib-fix-txpower_to_dev-function-for-RT3.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-15-rt2x00-rt2800lib-use-correct-txpower-calculation-fun.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-16-rt2x00-rt2800lib-hardcode-txmixer-gain-values-to-zer.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-17-rt2x00-rt2800lib-use-correct-RT-XWI-size-for-RT3883.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-18-rt2x00-rt2800lib-fix-antenna-configuration-for-RT388.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-19-rt2x00-rt2800lib-fix-LNA-gain-configuration-for-RT38.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-20-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-21-rt2x00-rt2800lib-fix-EEPROM-LNA-validation-for-RT388.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/600-22-rt2x00-rt2800lib-fix-txpower-compensation-for-RT3883.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/602-rt2x00-introduce-rt2x00eeprom.patch
package/kernel/mac80211/patches/rt2x00/604-rt2x00-load-eeprom-on-SoC-from-a-mtd-device-defines-.patch
package/kernel/mac80211/patches/rt2x00/610-rt2x00-change-led-polarity-from-OF.patch
package/kernel/mac80211/patches/rt2x00/650-rt2x00-add-support-for-external-PA-on-MT7620.patch
package/kernel/mac80211/patches/rt2x00/651-rt2x00-remove-unneccesary-code.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/701-rt2800-move-usb-specific-txdone-txstatus-routines-to.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/702-rt2800mmio-use-txdone-txstatus-routines-from-lib.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/703-rt2x00-do-not-check-for-txstatus-timeout-every-time-.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/704-rt2x00-use-different-txstatus-timeouts-when-flushing.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/705-rt2800-flush-and-txstatus-rework-for-rt2800mmio.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/980-rt2x00-reduce-power-consumption-on-mt7620.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/982-rt2x00-add-rf-self-txdc-calibration.patch
package/kernel/mac80211/patches/rt2x00/983-rt2x00-add-r-calibration.patch
package/kernel/mac80211/patches/rt2x00/984-rt2x00-add-rxdcoc-calibration.patch
package/kernel/mac80211/patches/rt2x00/985-rt2x00-add-rxiq-calibration.patch
package/kernel/mac80211/patches/rt2x00/986-rt2x00-add-TX-LOFT-calibration.patch
package/kernel/mac80211/patches/subsys/140-tweak-TSQ-setting.patch
package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch
package/kernel/mac80211/patches/subsys/300-mac80211-add-stop-start-logic-for-software-TXQs.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/301-mac80211-do-not-call-driver-wake_tx_queue-op-during-.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/351-mac80211-free-skb-fraglist-before-freeing-the-skb.patch [deleted file]
package/kernel/mac80211/patches/subsys/357-mac80211-add-hdrlen-to-ieee80211_tx_data.patch
package/kernel/mac80211/patches/subsys/358-mac80211-add-NEED_ALIGNED4_SKBS-hw-flag.patch
package/kernel/mac80211/patches/subsys/371-mac80211-minstrel-merge-with-minstrel_ht-always-enab.patch
package/kernel/mac80211/patches/subsys/378-mac80211-fix-memory-accounting-with-A-MSDU-aggregati.patch
package/kernel/mac80211/patches/subsys/379-mac80211-ignore-tx-status-for-PS-stations-in-ieee802.patch [deleted file]
package/kernel/mac80211/patches/subsys/380-mac80211-fix-reordering-of-buffered-broadcast-packet.patch [deleted file]
package/kernel/mac80211/patches/subsys/381-mac80211-fix-a-kernel-panic-when-TXing-after-TXQ-tea.patch [deleted file]
package/kernel/mac80211/patches/subsys/382-nl80211-fix-memory-leak-if-validate_pae_over_nl80211.patch [deleted file]
package/kernel/mac80211/patches/subsys/383-mac80211-minstrel_ht-add-flag-to-indicate-missing-in.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/390-nl-mac-80211-allow-4addr-AP-operation-on-crypto-cont.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/522-mac80211_configure_antenna_gain.patch
package/libs/elfutils/Makefile
package/libs/gettext-full/Makefile
package/libs/gmp/Makefile
package/libs/libbsd/Makefile
package/libs/libconfig/Makefile
package/libs/libevent2/Makefile
package/libs/libiconv-full/Makefile
package/libs/libjson-c/Makefile
package/libs/libmnl/Makefile
package/libs/libnetfilter-conntrack/Makefile
package/libs/libnetfilter-cthelper/Makefile
package/libs/libnetfilter-cttimeout/Makefile
package/libs/libnetfilter-log/Makefile
package/libs/libnetfilter-queue/Makefile
package/libs/libnfnetlink/Makefile
package/libs/libnftnl/Makefile
package/libs/libnl/Makefile
package/libs/libpcap/Makefile
package/libs/libroxml/Makefile
package/libs/librpc/Makefile [deleted file]
package/libs/libtool/Makefile
package/libs/libubox/Makefile
package/libs/libunwind/Makefile
package/libs/libusb-compat/Makefile
package/libs/libusb/Makefile
package/libs/lzo/Makefile
package/libs/mbedtls/Makefile
package/libs/mbedtls/patches/200-config.patch
package/libs/ncurses/Makefile
package/libs/ncurses/patches/103-ncurses-ar-determinism.patch [new file with mode: 0644]
package/libs/nettle/Makefile
package/libs/nghttp2/Makefile
package/libs/openssl/Config.in
package/libs/openssl/Makefile
package/libs/openssl/include/crypto/cryptodev.h [deleted file]
package/libs/openssl/patches/100-Configure-afalg-support.patch [new file with mode: 0644]
package/libs/openssl/patches/110-openwrt_targets.patch [new file with mode: 0644]
package/libs/openssl/patches/110-optimize-for-size.patch [deleted file]
package/libs/openssl/patches/120-strip-cflags-from-binary.patch [new file with mode: 0644]
package/libs/openssl/patches/130-dont-build-tests-fuzz.patch [new file with mode: 0644]
package/libs/openssl/patches/130-perl-path.patch [deleted file]
package/libs/openssl/patches/140-allow-prefer-chacha20.patch [new file with mode: 0644]
package/libs/openssl/patches/140-makefile-dirs.patch [deleted file]
package/libs/openssl/patches/150-no_engines.patch [deleted file]
package/libs/openssl/patches/160-disable_doc_tests.patch [deleted file]
package/libs/openssl/patches/170-bash_path.patch [deleted file]
package/libs/openssl/patches/180-fix_link_segfault.patch [deleted file]
package/libs/openssl/patches/190-remove_timestamp_check.patch [deleted file]
package/libs/openssl/patches/200-parallel_build.patch [deleted file]
package/libs/popt/Makefile
package/libs/readline/Makefile
package/libs/readline/patches/001-curses-link.patch [new file with mode: 0644]
package/libs/readline/patches/001-install_perm.patch [deleted file]
package/libs/sysfsutils/Makefile
package/libs/toolchain/Makefile
package/libs/uclient/Makefile
package/libs/ustream-ssl/Makefile
package/libs/wolfssl/Makefile
package/luci/.buildpath [deleted file]
package/luci/CONTRIBUTING.md [deleted file]
package/luci/LICENSE [deleted file]
package/luci/NOTICE [deleted file]
package/luci/README.md [deleted file]
package/luci/THANKYOU [deleted file]
package/luci/applications/luci-app-aria2/Makefile [deleted file]
package/luci/applications/luci-app-aria2/luasrc/controller/aria2.lua [deleted file]
package/luci/applications/luci-app-aria2/luasrc/model/cbi/aria2.lua [deleted file]
package/luci/applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm [deleted file]
package/luci/applications/luci-app-aria2/po/pt-br/aria2.po [deleted file]
package/luci/applications/luci-app-aria2/po/ru/aria2.po [deleted file]
package/luci/applications/luci-app-aria2/po/sv/aria2.po [deleted file]
package/luci/applications/luci-app-aria2/po/templates/aria2.pot [deleted file]
package/luci/applications/luci-app-aria2/po/zh-cn/aria2.po [deleted file]
package/luci/applications/luci-app-aria2/po/zh-tw/aria2.po [deleted file]
package/luci/applications/luci-app-aria2/root/etc/uci-defaults/40_luci-aria2 [deleted file]
package/luci/applications/luci-app-firewall/Makefile [deleted file]
package/luci/applications/luci-app-firewall/luasrc/controller/firewall.lua [deleted file]
package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua [deleted file]
package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua [deleted file]
package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua [deleted file]
package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua [deleted file]
package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua [deleted file]
package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua [deleted file]
package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua [deleted file]
package/luci/applications/luci-app-firewall/luasrc/tools/firewall.lua [deleted file]
package/luci/applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm [deleted file]
package/luci/applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm [deleted file]
package/luci/applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm [deleted file]
package/luci/applications/luci-app-firewall/po/ca/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/cs/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/de/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/el/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/en/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/es/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/fr/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/he/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/hu/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/it/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/ja/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/ko/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/ms/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/no/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/pl/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/pt-br/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/pt/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/ro/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/ru/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/sk/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/sv/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/templates/firewall.pot [deleted file]
package/luci/applications/luci-app-firewall/po/tr/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/uk/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/vi/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/zh-cn/firewall.po [deleted file]
package/luci/applications/luci-app-firewall/po/zh-tw/firewall.po [deleted file]
package/luci/applications/luci-app-opkg/Makefile [deleted file]
package/luci/applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js [deleted file]
package/luci/applications/luci-app-opkg/luasrc/controller/opkg.lua [deleted file]
package/luci/applications/luci-app-opkg/luasrc/view/opkg.htm [deleted file]
package/luci/applications/luci-app-opkg/po/ca/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/cs/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/de/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/el/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/en/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/es/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/fr/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/he/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/hu/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/it/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/ja/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/ko/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/ms/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/no/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/pl/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/pt-br/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/pt/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/ro/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/ru/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/sk/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/sv/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/templates/opkg.pot [deleted file]
package/luci/applications/luci-app-opkg/po/tr/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/uk/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/vi/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/zh-cn/opkg.po [deleted file]
package/luci/applications/luci-app-opkg/po/zh-tw/opkg.po [deleted file]
package/luci/applications/luci-app-qos/Makefile [deleted file]
package/luci/applications/luci-app-qos/luasrc/controller/qos.lua [deleted file]
package/luci/applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua [deleted file]
package/luci/applications/luci-app-qos/po/ca/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/cs/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/de/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/el/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/en/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/es/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/fr/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/he/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/hu/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/it/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/ja/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/ms/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/no/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/pl/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/pt-br/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/pt/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/ro/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/ru/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/sk/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/sv/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/templates/qos.pot [deleted file]
package/luci/applications/luci-app-qos/po/tr/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/uk/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/vi/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/zh-cn/qos.po [deleted file]
package/luci/applications/luci-app-qos/po/zh-tw/qos.po [deleted file]
package/luci/applications/luci-app-samba/Makefile [deleted file]
package/luci/applications/luci-app-samba/luasrc/controller/samba.lua [deleted file]
package/luci/applications/luci-app-samba/luasrc/model/cbi/samba.lua [deleted file]
package/luci/applications/luci-app-samba/po/ca/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/cs/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/de/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/el/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/en/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/es/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/fr/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/he/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/hu/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/it/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/ja/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/ms/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/no/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/pl/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/pt-br/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/pt/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/ro/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/ru/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/sk/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/sv/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/templates/samba.pot [deleted file]
package/luci/applications/luci-app-samba/po/tr/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/uk/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/vi/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/zh-cn/samba.po [deleted file]
package/luci/applications/luci-app-samba/po/zh-tw/samba.po [deleted file]
package/luci/applications/luci-app-uhttpd/Makefile [deleted file]
package/luci/applications/luci-app-uhttpd/luasrc/controller/uhttpd/uhttpd.lua [deleted file]
package/luci/applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua [deleted file]
package/luci/applications/luci-app-uhttpd/po/en/uhttpd.po [deleted file]
package/luci/applications/luci-app-uhttpd/po/ja/uhttpd.po [deleted file]
package/luci/applications/luci-app-uhttpd/po/pt-br/uhttpd.po [deleted file]
package/luci/applications/luci-app-uhttpd/po/ru/uhttpd.po [deleted file]
package/luci/applications/luci-app-uhttpd/po/templates/uhttpd.pot [deleted file]
package/luci/applications/luci-app-uhttpd/po/zh-cn/uhttpd.po [deleted file]
package/luci/applications/luci-app-uhttpd/po/zh-tw/uhttpd.po [deleted file]
package/luci/build/check-controllers.sh [deleted file]
package/luci/build/i18n-add-language.sh [deleted file]
package/luci/build/i18n-init.sh [deleted file]
package/luci/build/i18n-po2lua.pl [deleted file]
package/luci/build/i18n-scan.pl [deleted file]
package/luci/build/i18n-sync.sh [deleted file]
package/luci/build/i18n-update.pl [deleted file]
package/luci/build/luadoc/doc.lua [deleted file]
package/luci/build/luadoc/luadoc/config.lua [deleted file]
package/luci/build/luadoc/luadoc/doclet/debug.lua [deleted file]
package/luci/build/luadoc/luadoc/doclet/formatter.lua [deleted file]
package/luci/build/luadoc/luadoc/doclet/html.lua [deleted file]
package/luci/build/luadoc/luadoc/doclet/html/constant.lp [deleted file]
package/luci/build/luadoc/luadoc/doclet/html/file.lp [deleted file]
package/luci/build/luadoc/luadoc/doclet/html/function.lp [deleted file]
package/luci/build/luadoc/luadoc/doclet/html/index.lp [deleted file]
package/luci/build/luadoc/luadoc/doclet/html/luadoc.css [deleted file]
package/luci/build/luadoc/luadoc/doclet/html/menu.lp [deleted file]
package/luci/build/luadoc/luadoc/doclet/html/module.lp [deleted file]
package/luci/build/luadoc/luadoc/doclet/html/table.lp [deleted file]
package/luci/build/luadoc/luadoc/doclet/raw.lua [deleted file]
package/luci/build/luadoc/luadoc/init.lua [deleted file]
package/luci/build/luadoc/luadoc/lp.lua [deleted file]
package/luci/build/luadoc/luadoc/taglet/standard.lua [deleted file]
package/luci/build/luadoc/luadoc/taglet/standard/tags.lua [deleted file]
package/luci/build/luadoc/luadoc/util.lua [deleted file]
package/luci/build/makedocs.sh [deleted file]
package/luci/build/mkbasepot.sh [deleted file]
package/luci/build/mkrevision.sh [deleted file]
package/luci/build/zoneinfo2lua.pl [deleted file]
package/luci/collections/luci-light/Makefile [deleted file]
package/luci/collections/luci-ssl-openssl/Makefile [deleted file]
package/luci/collections/luci-ssl/Makefile [deleted file]
package/luci/collections/luci/Makefile [deleted file]
package/luci/contrib/package/Makefile [deleted file]
package/luci/contrib/package/community-profiles/Makefile [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_Freifunk [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_altmark [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_arig_arad [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_arig_neot_semadar [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_arig_tel-aviv [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_augsburg [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_bayreuth [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_bergischesland [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_berlin [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_carbodebit [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_cottbus [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_demo [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_duesseldorf [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_erfurt [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_evernet [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_freiburg [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_fuerstenwalde [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_gadow [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_guifibages [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_halle [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_hameln [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_hooge [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_kiberpipa [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_kyritz [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_l59 [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_leipzig [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_marburg [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_oldenburg [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_openwireless_bern [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_piraten_dresden [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_potsdam [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_reihen [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_rosbach [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_schwarzach [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_stuttgart [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_tulumlibre [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_vogtland [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_weil [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_weimar [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_weinstadt [deleted file]
package/luci/contrib/package/community-profiles/files/etc/config/profile_wlanljubljana [deleted file]
package/luci/contrib/package/csstidy/Makefile [deleted file]
package/luci/contrib/package/freifunk-common/Makefile [deleted file]
package/luci/contrib/package/freifunk-common/files/etc/config/freifunk [deleted file]
package/luci/contrib/package/freifunk-common/files/etc/init.d/freifunk [deleted file]
package/luci/contrib/package/freifunk-common/files/etc/rc.local.d/01-config-migration [deleted file]
package/luci/contrib/package/freifunk-common/files/etc/uci-defaults/freifunk [deleted file]
package/luci/contrib/package/freifunk-common/files/usr/bin/ffdzero [deleted file]
package/luci/contrib/package/freifunk-common/files/usr/bin/neigh.sh [deleted file]
package/luci/contrib/package/freifunk-common/files/usr/bin/watch.sh [deleted file]
package/luci/contrib/package/freifunk-common/files/usr/sbin/ff_olsr_watchdog [deleted file]
package/luci/contrib/package/freifunk-firewall/Makefile [deleted file]
package/luci/contrib/package/freifunk-firewall/files/etc/firewall.freifunk [deleted file]
package/luci/contrib/package/freifunk-firewall/files/etc/hotplug.d/firewall/23-restricted-wan [deleted file]
package/luci/contrib/package/freifunk-gwcheck/Makefile [deleted file]
package/luci/contrib/package/freifunk-gwcheck/files/etc/config/freifunk-gwcheck [deleted file]
package/luci/contrib/package/freifunk-gwcheck/files/usr/sbin/ff_olsr_test_gw.sh [deleted file]
package/luci/contrib/package/freifunk-gwcheck/root/etc/uci-defaults/50_freifunk-gwcheck [deleted file]
package/luci/contrib/package/freifunk-mapupdate/Makefile [deleted file]
package/luci/contrib/package/freifunk-mapupdate/files/etc/config/freifunk-mapupdate [deleted file]
package/luci/contrib/package/freifunk-mapupdate/files/usr/sbin/ff_mapupdate.sh [deleted file]
package/luci/contrib/package/freifunk-mapupdate/root/etc/uci-defaults/50_freifunk-mapupdate [deleted file]
package/luci/contrib/package/freifunk-policyrouting/Makefile [deleted file]
package/luci/contrib/package/freifunk-policyrouting/files/etc/config/freifunk-policyrouting [deleted file]
package/luci/contrib/package/freifunk-policyrouting/files/etc/hotplug.d/iface/30-policyrouting [deleted file]
package/luci/contrib/package/freifunk-policyrouting/files/etc/init.d/freifunk-policyrouting [deleted file]
package/luci/contrib/package/freifunk-policyrouting/files/etc/uci-defaults/freifunk-policyrouting [deleted file]
package/luci/contrib/package/freifunk-watchdog/Makefile [deleted file]
package/luci/contrib/package/freifunk-watchdog/files/freifunk-watchdog.config [deleted file]
package/luci/contrib/package/freifunk-watchdog/files/freifunk-watchdog.init [deleted file]
package/luci/contrib/package/freifunk-watchdog/src/Makefile [deleted file]
package/luci/contrib/package/freifunk-watchdog/src/ucix.c [deleted file]
package/luci/contrib/package/freifunk-watchdog/src/ucix.h [deleted file]
package/luci/contrib/package/freifunk-watchdog/src/watchdog.c [deleted file]
package/luci/contrib/package/freifunk-watchdog/src/watchdog.h [deleted file]
package/luci/contrib/package/freifunk-watchdog/src/wireless.22.h [deleted file]
package/luci/contrib/package/lucihttp/Makefile [deleted file]
package/luci/contrib/package/meshwizard/Makefile [deleted file]
package/luci/contrib/package/meshwizard/files/etc/config/meshwizard [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/functions.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/check-range-in-range.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/common.awk [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/gen_auto-ipv6-dhcpv6-ip.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/gen_bssid.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/gen_dhcp_ip.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/initial_config.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/ipcalc-cidr.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/read_defaults.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/rename-wifi.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_auto-ipv6-interface.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_auto-ipv6.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_dhcp.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_dnsmasq.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_firewall.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_firewall_interface.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_lan_ipv6.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_lan_static.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_network.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd_interface.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_policyrouting.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_qos.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_splash.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_ssh.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_system.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_uhttpd.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wan_dhcp.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wan_static.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_widgets.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi_vap.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/supports_vap.sh [deleted file]
package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/wizard.sh [deleted file]
package/luci/documentation/CBI.md [deleted file]
package/luci/documentation/JsonRpcHowTo.md [deleted file]
package/luci/documentation/LAR.md [deleted file]
package/luci/documentation/LMO.md [deleted file]
package/luci/documentation/LuCI-0.10.md [deleted file]
package/luci/documentation/Modules.md [deleted file]
package/luci/documentation/ModulesHowTo.md [deleted file]
package/luci/documentation/Templates.md [deleted file]
package/luci/documentation/ThemesHowTo.md [deleted file]
package/luci/documentation/api/index.html [deleted file]
package/luci/documentation/api/luadoc.css [deleted file]
package/luci/documentation/api/modules/luci.dispatcher.html [deleted file]
package/luci/documentation/api/modules/luci.http.html [deleted file]
package/luci/documentation/api/modules/luci.http.protocol.conditionals.html [deleted file]
package/luci/documentation/api/modules/luci.http.protocol.date.html [deleted file]
package/luci/documentation/api/modules/luci.http.protocol.html [deleted file]
package/luci/documentation/api/modules/luci.http.protocol.mime.html [deleted file]
package/luci/documentation/api/modules/luci.i18n.html [deleted file]
package/luci/documentation/api/modules/luci.ip.cidr.html [deleted file]
package/luci/documentation/api/modules/luci.ip.html [deleted file]
package/luci/documentation/api/modules/luci.json.html [deleted file]
package/luci/documentation/api/modules/luci.jsonc.html [deleted file]
package/luci/documentation/api/modules/luci.jsonc.parser.html [deleted file]
package/luci/documentation/api/modules/luci.model.ipkg.html [deleted file]
package/luci/documentation/api/modules/luci.model.uci.html [deleted file]
package/luci/documentation/api/modules/luci.rpcc.html [deleted file]
package/luci/documentation/api/modules/luci.rpcc.ruci.html [deleted file]
package/luci/documentation/api/modules/luci.sys.html [deleted file]
package/luci/documentation/api/modules/luci.sys.init.html [deleted file]
package/luci/documentation/api/modules/luci.sys.iptparser.html [deleted file]
package/luci/documentation/api/modules/luci.sys.net.html [deleted file]
package/luci/documentation/api/modules/luci.sys.process.html [deleted file]
package/luci/documentation/api/modules/luci.sys.user.html [deleted file]
package/luci/documentation/api/modules/luci.sys.wifi.html [deleted file]
package/luci/documentation/api/modules/luci.util.html [deleted file]
package/luci/documentation/api/modules/nixio.CHANGELOG.html [deleted file]
package/luci/documentation/api/modules/nixio.CryptoHash.html [deleted file]
package/luci/documentation/api/modules/nixio.File.html [deleted file]
package/luci/documentation/api/modules/nixio.README.html [deleted file]
package/luci/documentation/api/modules/nixio.Socket.html [deleted file]
package/luci/documentation/api/modules/nixio.TLSContext.html [deleted file]
package/luci/documentation/api/modules/nixio.TLSSocket.html [deleted file]
package/luci/documentation/api/modules/nixio.UnifiedIO.html [deleted file]
package/luci/documentation/api/modules/nixio.bin.html [deleted file]
package/luci/documentation/api/modules/nixio.bit.html [deleted file]
package/luci/documentation/api/modules/nixio.crypto.html [deleted file]
package/luci/documentation/api/modules/nixio.fs.html [deleted file]
package/luci/documentation/api/modules/nixio.html [deleted file]
package/luci/documentation/i18n.md [deleted file]
package/luci/libs/luci-lib-httpclient/Makefile [deleted file]
package/luci/libs/luci-lib-httpclient/luasrc/httpclient.lua [deleted file]
package/luci/libs/luci-lib-httpclient/luasrc/httpclient/receiver.lua [deleted file]
package/luci/libs/luci-lib-httpprotoutils/Makefile [deleted file]
package/luci/libs/luci-lib-httpprotoutils/luasrc/http/conditionals.lua [deleted file]
package/luci/libs/luci-lib-httpprotoutils/luasrc/http/conditionals.luadoc [deleted file]
package/luci/libs/luci-lib-httpprotoutils/luasrc/http/date.lua [deleted file]
package/luci/libs/luci-lib-httpprotoutils/luasrc/http/date.luadoc [deleted file]
package/luci/libs/luci-lib-httpprotoutils/luasrc/http/mime.lua [deleted file]
package/luci/libs/luci-lib-httpprotoutils/luasrc/http/mime.luadoc [deleted file]
package/luci/libs/luci-lib-ip/Makefile [deleted file]
package/luci/libs/luci-lib-ip/src/Makefile [deleted file]
package/luci/libs/luci-lib-ip/src/ip.c [deleted file]
package/luci/libs/luci-lib-ip/src/ip.luadoc [deleted file]
package/luci/libs/luci-lib-ipkg/Makefile [deleted file]
package/luci/libs/luci-lib-ipkg/luasrc/model/ipkg.lua [deleted file]
package/luci/libs/luci-lib-ipkg/luasrc/model/ipkg.luadoc [deleted file]
package/luci/libs/luci-lib-iptparser/Makefile [deleted file]
package/luci/libs/luci-lib-iptparser/luasrc/sys/iptparser.lua [deleted file]
package/luci/libs/luci-lib-iptparser/luasrc/sys/iptparser.luadoc [deleted file]
package/luci/libs/luci-lib-json/Makefile [deleted file]
package/luci/libs/luci-lib-json/luasrc/json.lua [deleted file]
package/luci/libs/luci-lib-json/luasrc/json.luadoc [deleted file]
package/luci/libs/luci-lib-jsonc/Makefile [deleted file]
package/luci/libs/luci-lib-jsonc/src/Makefile [deleted file]
package/luci/libs/luci-lib-jsonc/src/jsonc.c [deleted file]
package/luci/libs/luci-lib-jsonc/src/jsonc.luadoc [deleted file]
package/luci/libs/luci-lib-luaneightbl/Makefile [deleted file]
package/luci/libs/luci-lib-luaneightbl/src/Makefile [deleted file]
package/luci/libs/luci-lib-luaneightbl/src/neightbl.c [deleted file]
package/luci/libs/luci-lib-nixio/.gitignore [deleted file]
package/luci/libs/luci-lib-nixio/LICENSE [deleted file]
package/luci/libs/luci-lib-nixio/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/NOTICE [deleted file]
package/luci/libs/luci-lib-nixio/README [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/README [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/Config.in [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/README [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/csharp/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/csharp/axTLS.cs [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/generate_SWIG_interface.pl [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/generate_interface.pl [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/java/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSL.java [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLCTX.java [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLClient.java [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLReadHolder.java [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLServer.java [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLUtil.java [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/lua/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/perl/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/vbnet/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/bindings/vbnet/axTLSvb.vb [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/.config [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/Config.in [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/JMeter.jmx [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/Rules.mak [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/axhttpd.aip [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/axtls.RES [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/axtls.rc [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/config.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/linuxconfig [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/makefile.conf [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/makefile.dotnet.conf [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/makefile.java.conf [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/makefile.post [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/Kconfig-language.txt [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/conf.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/confdata.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/expr.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/expr.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lex.zconf.c_shipped [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lkc.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lkc_proto.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/BIG.FAT.WARNING [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/checklist.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/colors.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/dialog.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/inputbox.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/menubox.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/msgbox.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/textbox.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/util.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/yesno.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/mconf.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/menu.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/mkconfigs [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/symbol.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/util.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/zconf.l [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/zconf.tab.c_shipped [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/zconf.tab.h_shipped [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/zconf.y [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/config/win32config [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/crypto/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/crypto/aes.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/crypto/bigint.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/crypto/bigint.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/crypto/bigint_impl.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/crypto/crypto.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/crypto/crypto_misc.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/crypto/hmac.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/crypto/md2.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/crypto/md5.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/crypto/rc4.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/crypto/rsa.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/crypto/sha1.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/docsrc/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/docsrc/axTLS.dox [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/docsrc/doco_footer.html [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/docsrc/images/axolotl.jpg [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/docsrc/images/tsbasbw.gif [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/httpd/Config.in [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/httpd/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/httpd/axhttp.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/httpd/axhttpd.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/httpd/htpasswd.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/httpd/kepler-1.1-snapshot-20070521-1825.tar.gz [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/httpd/kepler.patch [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/httpd/proc.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/httpd/tdate_parse.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/Config.in [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/c/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/c/axssl.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/csharp/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/csharp/axssl.cs [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/java/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/java/axssl.java [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/java/manifest.mf [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/lua/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/lua/axssl.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/perl/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/perl/axssl.pl [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/vbnet/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/samples/vbnet/axssl.vb [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/BigIntConfig.in [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/Config.in [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/asn1.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/cert.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/crypto_misc.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/gen_cert.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/loader.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/openssl.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/os_port.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/os_port.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/p12.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/private_key.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/ssl.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.ca_key.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.ca_x509.cer [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.ca_x509.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.device_key [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.device_key.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.encrypted.p8 [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.encrypted_pem.p8 [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_1024 [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_1024.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_2048 [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_2048.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_4096 [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_4096.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_512 [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_512.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_aes128.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_aes256.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.noname.p12 [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.unencrypted.p8 [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.unencrypted_pem.p8 [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.withCA.p12 [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.withoutCA.p12 [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_1024.cer [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_1024.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_2048.cer [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_2048.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_4096.cer [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_4096.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_512.cer [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_512.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_aes128.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_aes256.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_bad_after.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_bad_before.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_device.cer [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_device.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/datatest.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/datatest.c.old [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/deutsche_telecom.x509_ca [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/equifax.x509_ca [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/gnutls.cer [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/header_issue.dat [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/killopenssl.sh [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/make_certs.sh [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/microsoft.x509_ca [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/microsoft.x509_ca.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/ms_iis.cer [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/perf_bigint.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/socgen.cer [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/ssltest.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/ssltest.c.bak [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/test_axssl.sh [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/thawte.x509_ca [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_ca [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_ca.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_my_cert [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_my_cert.pem [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/tls1.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/tls1.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/tls1_clnt.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/tls1_svr.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/version.h [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/ssl/x509.c [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/bin/.htaccess [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/favicon.ico [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/index.html [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/download.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/env.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/overview.lp [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/prepara_sql2.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_conc.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_cookies.lp [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_cookies.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_err.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_fs.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_htk.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_lib.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_main.html [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_main.lp [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_main.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_session.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_sql.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_sql2.lua [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_variables.lp [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/bin/.htaccess [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_http/.htaccess [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_http/.htpasswd [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_http/index.html [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_ssl/.htaccess [deleted file]
package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_ssl/index.html [deleted file]
package/luci/libs/luci-lib-nixio/axtls-config/.config [deleted file]
package/luci/libs/luci-lib-nixio/axtls-config/config.h [deleted file]
package/luci/libs/luci-lib-nixio/axtls-root/etc/nixio/rsa_main.der [deleted file]
package/luci/libs/luci-lib-nixio/docsrc/CHANGELOG.lua [deleted file]
package/luci/libs/luci-lib-nixio/docsrc/README.lua [deleted file]
package/luci/libs/luci-lib-nixio/docsrc/nixio.CryptoHash.lua [deleted file]
package/luci/libs/luci-lib-nixio/docsrc/nixio.File.lua [deleted file]
package/luci/libs/luci-lib-nixio/docsrc/nixio.Socket.lua [deleted file]
package/luci/libs/luci-lib-nixio/docsrc/nixio.TLSContext.lua [deleted file]
package/luci/libs/luci-lib-nixio/docsrc/nixio.TLSSocket.lua [deleted file]
package/luci/libs/luci-lib-nixio/docsrc/nixio.UnifiedIO.lua [deleted file]
package/luci/libs/luci-lib-nixio/docsrc/nixio.bin.lua [deleted file]
package/luci/libs/luci-lib-nixio/docsrc/nixio.bit.lua [deleted file]
package/luci/libs/luci-lib-nixio/docsrc/nixio.crypto.lua [deleted file]
package/luci/libs/luci-lib-nixio/docsrc/nixio.fs.lua [deleted file]
package/luci/libs/luci-lib-nixio/docsrc/nixio.lua [deleted file]
package/luci/libs/luci-lib-nixio/nixio-0.3-1.rockspec [deleted file]
package/luci/libs/luci-lib-nixio/root/lib/upgrade/luci-add-conffiles.sh [deleted file]
package/luci/libs/luci-lib-nixio/root/usr/lib/lua/nixio/fs.lua [deleted file]
package/luci/libs/luci-lib-nixio/root/usr/lib/lua/nixio/util.lua [deleted file]
package/luci/libs/luci-lib-nixio/src/Makefile [deleted file]
package/luci/libs/luci-lib-nixio/src/address.c [deleted file]
package/luci/libs/luci-lib-nixio/src/axtls-compat.c [deleted file]
package/luci/libs/luci-lib-nixio/src/axtls-compat.h [deleted file]
package/luci/libs/luci-lib-nixio/src/binary.c [deleted file]
package/luci/libs/luci-lib-nixio/src/bind.c [deleted file]
package/luci/libs/luci-lib-nixio/src/bit.c [deleted file]
package/luci/libs/luci-lib-nixio/src/cyassl-compat.c [deleted file]
package/luci/libs/luci-lib-nixio/src/cyassl-compat.h [deleted file]
package/luci/libs/luci-lib-nixio/src/file.c [deleted file]
package/luci/libs/luci-lib-nixio/src/fs.c [deleted file]
package/luci/libs/luci-lib-nixio/src/io.c [deleted file]
package/luci/libs/luci-lib-nixio/src/mingw-compat.c [deleted file]
package/luci/libs/luci-lib-nixio/src/mingw-compat.h [deleted file]
package/luci/libs/luci-lib-nixio/src/nixio-tls.h [deleted file]
package/luci/libs/luci-lib-nixio/src/nixio.c [deleted file]
package/luci/libs/luci-lib-nixio/src/nixio.h [deleted file]
package/luci/libs/luci-lib-nixio/src/poll.c [deleted file]
package/luci/libs/luci-lib-nixio/src/process.c [deleted file]
package/luci/libs/luci-lib-nixio/src/protoent.c [deleted file]
package/luci/libs/luci-lib-nixio/src/socket.c [deleted file]
package/luci/libs/luci-lib-nixio/src/sockopt.c [deleted file]
package/luci/libs/luci-lib-nixio/src/splice.c [deleted file]
package/luci/libs/luci-lib-nixio/src/syslog.c [deleted file]
package/luci/libs/luci-lib-nixio/src/tls-context.c [deleted file]
package/luci/libs/luci-lib-nixio/src/tls-crypto.c [deleted file]
package/luci/libs/luci-lib-nixio/src/tls-socket.c [deleted file]
package/luci/libs/luci-lib-nixio/src/user.c [deleted file]
package/luci/libs/luci-lib-px5g/Makefile [deleted file]
package/luci/libs/luci-lib-px5g/lua/px5g/util.lua [deleted file]
package/luci/libs/luci-lib-px5g/root/usr/sbin/px5g-genkeys [deleted file]
package/luci/libs/luci-lib-px5g/src/Makefile [deleted file]
package/luci/libs/luci-lib-px5g/src/library/bignum.c [deleted file]
package/luci/libs/luci-lib-px5g/src/library/havege.c [deleted file]
package/luci/libs/luci-lib-px5g/src/library/rsa.c [deleted file]
package/luci/libs/luci-lib-px5g/src/library/sha1.c [deleted file]
package/luci/libs/luci-lib-px5g/src/library/timing.c [deleted file]
package/luci/libs/luci-lib-px5g/src/library/x509write.c [deleted file]
package/luci/libs/luci-lib-px5g/src/polarssl/bignum.h [deleted file]
package/luci/libs/luci-lib-px5g/src/polarssl/bn_mul.h [deleted file]
package/luci/libs/luci-lib-px5g/src/polarssl/config.h [deleted file]
package/luci/libs/luci-lib-px5g/src/polarssl/havege.h [deleted file]
package/luci/libs/luci-lib-px5g/src/polarssl/rsa.h [deleted file]
package/luci/libs/luci-lib-px5g/src/polarssl/sha1.h [deleted file]
package/luci/libs/luci-lib-px5g/src/polarssl/timing.h [deleted file]
package/luci/libs/luci-lib-px5g/src/polarssl/x509.h [deleted file]
package/luci/libs/luci-lib-px5g/src/px5g.c [deleted file]
package/luci/libs/luci-lib-px5g/src/px5g.h [deleted file]
package/luci/libs/luci-lib-rpcc/Makefile [deleted file]
package/luci/libs/luci-lib-rpcc/luasrc/rpcc.lua [deleted file]
package/luci/libs/luci-lib-rpcc/luasrc/rpcc.luadoc [deleted file]
package/luci/libs/luci-lib-rpcc/luasrc/rpcc/ruci.lua [deleted file]
package/luci/libs/luci-lib-rpcc/luasrc/rpcc/ruci.luadoc [deleted file]
package/luci/libs/rpcd-mod-rrdns/Makefile [deleted file]
package/luci/libs/rpcd-mod-rrdns/src/CMakeLists.txt [deleted file]
package/luci/libs/rpcd-mod-rrdns/src/rrdns.c [deleted file]
package/luci/libs/rpcd-mod-rrdns/src/rrdns.h [deleted file]
package/luci/luci.mk [deleted file]
package/luci/modules/luci-base/Makefile [deleted file]
package/luci/modules/luci-base/htdocs/cgi-bin/luci [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi.js [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/add.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/apply.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/arrow.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/down.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/download.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/edit.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/fieldadd.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/file.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/find.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/folder.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/help.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/key.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/link.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/reload.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/remove.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/reset.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/save.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/up.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/user.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/alias.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/alias_disabled.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/bridge.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/bridge_disabled.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/ethernet.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/ethernet_disabled.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/loading.gif [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/port_down.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/port_up.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-0-25.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-0.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-25-50.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-50-75.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-75-100.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-none.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/switch.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/switch_disabled.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/tunnel.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/tunnel_disabled.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/vlan.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/vlan_disabled.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/wifi.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/icons/wifi_disabled.png [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/luci.js [deleted file]
package/luci/modules/luci-base/htdocs/luci-static/resources/xhr.js [deleted file]
package/luci/modules/luci-base/luasrc/cacheloader.lua [deleted file]
package/luci/modules/luci-base/luasrc/cbi.lua [deleted file]
package/luci/modules/luci-base/luasrc/cbi/datatypes.lua [deleted file]
package/luci/modules/luci-base/luasrc/ccache.lua [deleted file]
package/luci/modules/luci-base/luasrc/config.lua [deleted file]
package/luci/modules/luci-base/luasrc/controller/admin/index.lua [deleted file]
package/luci/modules/luci-base/luasrc/controller/admin/uci.lua [deleted file]
package/luci/modules/luci-base/luasrc/debug.lua [deleted file]
package/luci/modules/luci-base/luasrc/dispatcher.lua [deleted file]
package/luci/modules/luci-base/luasrc/dispatcher.luadoc [deleted file]
package/luci/modules/luci-base/luasrc/http.lua [deleted file]
package/luci/modules/luci-base/luasrc/http.luadoc [deleted file]
package/luci/modules/luci-base/luasrc/i18n.lua [deleted file]
package/luci/modules/luci-base/luasrc/i18n.luadoc [deleted file]
package/luci/modules/luci-base/luasrc/ltn12.lua [deleted file]
package/luci/modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua [deleted file]
package/luci/modules/luci-base/luasrc/model/cbi/admin_network/proto_none.lua [deleted file]
package/luci/modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua [deleted file]
package/luci/modules/luci-base/luasrc/model/firewall.lua [deleted file]
package/luci/modules/luci-base/luasrc/model/network.lua [deleted file]
package/luci/modules/luci-base/luasrc/model/uci.lua [deleted file]
package/luci/modules/luci-base/luasrc/model/uci.luadoc [deleted file]
package/luci/modules/luci-base/luasrc/sgi/cgi.lua [deleted file]
package/luci/modules/luci-base/luasrc/sgi/uhttpd.lua [deleted file]
package/luci/modules/luci-base/luasrc/store.lua [deleted file]
package/luci/modules/luci-base/luasrc/sys.lua [deleted file]
package/luci/modules/luci-base/luasrc/sys.luadoc [deleted file]
package/luci/modules/luci-base/luasrc/sys/zoneinfo.lua [deleted file]
package/luci/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua [deleted file]
package/luci/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua [deleted file]
package/luci/modules/luci-base/luasrc/template.lua [deleted file]
package/luci/modules/luci-base/luasrc/tools/proto.lua [deleted file]
package/luci/modules/luci-base/luasrc/tools/status.lua [deleted file]
package/luci/modules/luci-base/luasrc/tools/webadmin.lua [deleted file]
package/luci/modules/luci-base/luasrc/util.lua [deleted file]
package/luci/modules/luci-base/luasrc/util.luadoc [deleted file]
package/luci/modules/luci-base/luasrc/version.lua [deleted file]
package/luci/modules/luci-base/luasrc/view/admin_uci/changelog.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/admin_uci/changes.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/admin_uci/revert.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/apply_widget.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/browser.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/button.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/cell_valuefooter.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/cell_valueheader.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/compound.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/delegator.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/dropdown.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/dvalue.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/dynlist.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/error.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/filebrowser.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/footer.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/full_valuefooter.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/full_valueheader.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/fvalue.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/header.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/ipaddr.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/lvalue.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/map.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/mvalue.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/network_ifacelist.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/network_netinfo.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/network_netlist.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/nsection.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/nullsection.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/simpleform.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/tabcontainer.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/tblsection.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/tsection.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/tvalue.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/ucisection.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/upload.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/value.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/valuefooter.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/valueheader.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/csrftoken.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/empty_node_placeholder.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/error404.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/error500.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/footer.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/header.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/indexer.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/lease_status.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/sysauth.htm [deleted file]
package/luci/modules/luci-base/luasrc/view/wifi_assoclist.htm [deleted file]
package/luci/modules/luci-base/po/ca/base.po [deleted file]
package/luci/modules/luci-base/po/cs/base.po [deleted file]
package/luci/modules/luci-base/po/de/base.po [deleted file]
package/luci/modules/luci-base/po/el/base.po [deleted file]
package/luci/modules/luci-base/po/en/base.po [deleted file]
package/luci/modules/luci-base/po/es/base.po [deleted file]
package/luci/modules/luci-base/po/fr/base.po [deleted file]
package/luci/modules/luci-base/po/he/base.po [deleted file]
package/luci/modules/luci-base/po/hu/base.po [deleted file]
package/luci/modules/luci-base/po/it/base.po [deleted file]
package/luci/modules/luci-base/po/ja/base.po [deleted file]
package/luci/modules/luci-base/po/ko/base.po [deleted file]
package/luci/modules/luci-base/po/ms/base.po [deleted file]
package/luci/modules/luci-base/po/no/base.po [deleted file]
package/luci/modules/luci-base/po/pl/base.po [deleted file]
package/luci/modules/luci-base/po/pt-br/base.po [deleted file]
package/luci/modules/luci-base/po/pt/base.po [deleted file]
package/luci/modules/luci-base/po/ro/base.po [deleted file]
package/luci/modules/luci-base/po/ru/base.po [deleted file]
package/luci/modules/luci-base/po/sk/base.po [deleted file]
package/luci/modules/luci-base/po/sv/base.po [deleted file]
package/luci/modules/luci-base/po/templates/base.pot [deleted file]
package/luci/modules/luci-base/po/tr/base.po [deleted file]
package/luci/modules/luci-base/po/uk/base.po [deleted file]
package/luci/modules/luci-base/po/vi/base.po [deleted file]
package/luci/modules/luci-base/po/zh-cn/base.po [deleted file]
package/luci/modules/luci-base/po/zh-tw/base.po [deleted file]
package/luci/modules/luci-base/root/etc/config/luci [deleted file]
package/luci/modules/luci-base/root/etc/config/ucitrack [deleted file]
package/luci/modules/luci-base/root/etc/init.d/ucitrack [deleted file]
package/luci/modules/luci-base/root/etc/luci-uploads/.placeholder [deleted file]
package/luci/modules/luci-base/root/sbin/luci-reload [deleted file]
package/luci/modules/luci-base/root/usr/share/acl.d/luci-base.json [deleted file]
package/luci/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json [deleted file]
package/luci/modules/luci-base/root/www/index.html [deleted file]
package/luci/modules/luci-base/src/Makefile [deleted file]
package/luci/modules/luci-base/src/jsmin [deleted file]
package/luci/modules/luci-base/src/jsmin.c [deleted file]
package/luci/modules/luci-base/src/mkversion.sh [deleted file]
package/luci/modules/luci-base/src/po2lmo.c [deleted file]
package/luci/modules/luci-base/src/template_lmo.c [deleted file]
package/luci/modules/luci-base/src/template_lmo.h [deleted file]
package/luci/modules/luci-base/src/template_lualib.c [deleted file]
package/luci/modules/luci-base/src/template_lualib.h [deleted file]
package/luci/modules/luci-base/src/template_parser.c [deleted file]
package/luci/modules/luci-base/src/template_parser.h [deleted file]
package/luci/modules/luci-base/src/template_utils.c [deleted file]
package/luci/modules/luci-base/src/template_utils.h [deleted file]
package/luci/modules/luci-mod-admin-full/Makefile [deleted file]
package/luci/modules/luci-mod-admin-full/luasrc/controller/admin/filebrowser.lua [deleted file]
package/luci/modules/luci-mod-admin-mini/Makefile [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/controller/mini/index.lua [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/controller/mini/network.lua [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/controller/mini/system.lua [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/dhcp.lua [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/index.lua [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/luci.lua [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/network.lua [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/passwd.lua [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/system.lua [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/wifi.lua [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/applyreboot.htm [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/backup.htm [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/index.htm [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/reboot.htm [deleted file]
package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/upgrade.htm [deleted file]
package/luci/modules/luci-mod-failsafe/Makefile [deleted file]
package/luci/modules/luci-mod-failsafe/luasrc/controller/failsafe/failsafe.lua [deleted file]
package/luci/modules/luci-mod-failsafe/luasrc/view/failsafe/applyreboot.htm [deleted file]
package/luci/modules/luci-mod-failsafe/luasrc/view/failsafe/flashops.htm [deleted file]
package/luci/modules/luci-mod-failsafe/luasrc/view/failsafe/reboot.htm [deleted file]
package/luci/modules/luci-mod-failsafe/luasrc/view/failsafe/upgrade.htm [deleted file]
package/luci/modules/luci-mod-network/Makefile [deleted file]
package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js [deleted file]
package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js [deleted file]
package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js [deleted file]
package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js [deleted file]
package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js [deleted file]
package/luci/modules/luci-mod-network/luasrc/controller/admin/network.lua [deleted file]
package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua [deleted file]
package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua [deleted file]
package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua [deleted file]
package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua [deleted file]
package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua [deleted file]
package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua [deleted file]
package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua [deleted file]
package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua [deleted file]
package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua [deleted file]
package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua [deleted file]
package/luci/modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm [deleted file]
package/luci/modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm [deleted file]
package/luci/modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm [deleted file]
package/luci/modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm [deleted file]
package/luci/modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm [deleted file]
package/luci/modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm [deleted file]
package/luci/modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm [deleted file]
package/luci/modules/luci-mod-network/root/etc/uci-defaults/50_luci-mod-admin-full [deleted file]
package/luci/modules/luci-mod-rpc/Makefile [deleted file]
package/luci/modules/luci-mod-rpc/luasrc/controller/rpc.lua [deleted file]
package/luci/modules/luci-mod-rpc/luasrc/jsonrpc.lua [deleted file]
package/luci/modules/luci-mod-rpc/luasrc/jsonrpcbind/uci.lua [deleted file]
package/luci/modules/luci-mod-status/Makefile [deleted file]
package/luci/modules/luci-mod-status/htdocs/luci-static/resources/bandwidth.svg [deleted file]
package/luci/modules/luci-mod-status/htdocs/luci-static/resources/connections.svg [deleted file]
package/luci/modules/luci-mod-status/htdocs/luci-static/resources/load.svg [deleted file]
package/luci/modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js [deleted file]
package/luci/modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js [deleted file]
package/luci/modules/luci-mod-status/htdocs/luci-static/resources/wifirate.svg [deleted file]
package/luci/modules/luci-mod-status/htdocs/luci-static/resources/wireless.svg [deleted file]
package/luci/modules/luci-mod-status/luasrc/controller/admin/status.lua [deleted file]
package/luci/modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/connections.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/index.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/40-dhcp-leases.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/iptables.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/load.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/routes.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/syslog.htm [deleted file]
package/luci/modules/luci-mod-status/luasrc/view/admin_status/wireless.htm [deleted file]
package/luci/modules/luci-mod-status/src/Makefile [deleted file]
package/luci/modules/luci-mod-status/src/luci-bwc.c [deleted file]
package/luci/modules/luci-mod-system/Makefile [deleted file]
package/luci/modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js [deleted file]
package/luci/modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js [deleted file]
package/luci/modules/luci-mod-system/luasrc/controller/admin/system.lua [deleted file]
package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua [deleted file]
package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua [deleted file]
package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua [deleted file]
package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua [deleted file]
package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua [deleted file]
package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua [deleted file]
package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua [deleted file]
package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua [deleted file]
package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua [deleted file]
package/luci/modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm [deleted file]
package/luci/modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm [deleted file]
package/luci/modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm [deleted file]
package/luci/modules/luci-mod-system/luasrc/view/admin_system/flashops.htm [deleted file]
package/luci/modules/luci-mod-system/luasrc/view/admin_system/password.htm [deleted file]
package/luci/modules/luci-mod-system/luasrc/view/admin_system/reboot.htm [deleted file]
package/luci/modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm [deleted file]
package/luci/modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm [deleted file]
package/luci/protocols/luci-proto-3g/Makefile [deleted file]
package/luci/protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua [deleted file]
package/luci/protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua [deleted file]
package/luci/protocols/luci-proto-hnet/Makefile [deleted file]
package/luci/protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua [deleted file]
package/luci/protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua [deleted file]
package/luci/protocols/luci-proto-ipip/Makefile [deleted file]
package/luci/protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua [deleted file]
package/luci/protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua [deleted file]
package/luci/protocols/luci-proto-ipv6/Makefile [deleted file]
package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua [deleted file]
package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua [deleted file]
package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua [deleted file]
package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua [deleted file]
package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua [deleted file]
package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua [deleted file]
package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua [deleted file]
package/luci/protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua [deleted file]
package/luci/protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua [deleted file]
package/luci/protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua [deleted file]
package/luci/protocols/luci-proto-ncm/Makefile [deleted file]
package/luci/protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua [deleted file]
package/luci/protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua [deleted file]
package/luci/protocols/luci-proto-openconnect/Makefile [deleted file]
package/luci/protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua [deleted file]
package/luci/protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua [deleted file]
package/luci/protocols/luci-proto-ppp/Makefile [deleted file]
package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua [deleted file]
package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua [deleted file]
package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua [deleted file]
package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua [deleted file]
package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua [deleted file]
package/luci/protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua [deleted file]
package/luci/protocols/luci-proto-pppossh/Makefile [deleted file]
package/luci/protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua [deleted file]
package/luci/protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua [deleted file]
package/luci/protocols/luci-proto-qmi/Makefile [deleted file]
package/luci/protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua [deleted file]
package/luci/protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua [deleted file]
package/luci/protocols/luci-proto-relay/Makefile [deleted file]
package/luci/protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua [deleted file]
package/luci/protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua [deleted file]
package/luci/protocols/luci-proto-vpnc/Makefile [deleted file]
package/luci/protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua [deleted file]
package/luci/protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua [deleted file]
package/luci/protocols/luci-proto-wireguard/Makefile [deleted file]
package/luci/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua [deleted file]
package/luci/protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua [deleted file]
package/luci/themes/luci-theme-bootstrap/Makefile [deleted file]
package/luci/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/cascade.css [deleted file]
package/luci/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/favicon.ico [deleted file]
package/luci/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/mobile.css [deleted file]
package/luci/themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/footer.htm [deleted file]
package/luci/themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm [deleted file]
package/luci/themes/luci-theme-bootstrap/root/etc/uci-defaults/30_luci-theme-bootstrap [deleted file]
package/luci/themes/luci-theme-freifunk-generic/Makefile [deleted file]
package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/cascade.css [deleted file]
package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/header.jpg [deleted file]
package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/logo.jpg [deleted file]
package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/mobile.css [deleted file]
package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/smallscreen.css [deleted file]
package/luci/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/footer.htm [deleted file]
package/luci/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm [deleted file]
package/luci/themes/luci-theme-freifunk-generic/root/etc/uci-defaults/30_luci-theme-freifunk-generic [deleted file]
package/luci/themes/luci-theme-material/Makefile [deleted file]
package/luci/themes/luci-theme-material/htdocs/luci-static/material/brand.png [deleted file]
package/luci/themes/luci-theme-material/htdocs/luci-static/material/cascade.css [deleted file]
package/luci/themes/luci-theme-material/htdocs/luci-static/material/custom.css [deleted file]
package/luci/themes/luci-theme-material/htdocs/luci-static/material/favicon.ico [deleted file]
package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.eot [deleted file]
package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.svg [deleted file]
package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.ttf [deleted file]
package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.woff [deleted file]
package/luci/themes/luci-theme-material/htdocs/luci-static/material/js/jquery.min.js [deleted file]
package/luci/themes/luci-theme-material/htdocs/luci-static/material/js/script.js [deleted file]
package/luci/themes/luci-theme-material/luasrc/view/themes/material/footer.htm [deleted file]
package/luci/themes/luci-theme-material/luasrc/view/themes/material/header.htm [deleted file]
package/luci/themes/luci-theme-material/root/etc/uci-defaults/30_luci-theme-material [deleted file]
package/luci/themes/luci-theme-openwrt/Makefile [deleted file]
package/luci/themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/cascade.css [deleted file]
package/luci/themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/tabbg.png [deleted file]
package/luci/themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/footer.htm [deleted file]
package/luci/themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm [deleted file]
package/luci/themes/luci-theme-openwrt/root/etc/uci-defaults/30_luci-theme-openwrt [deleted file]
package/luci/themes/luci-theme-rosy/Makefile [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/cascade.css [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/cl-eye.png [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/favicon.ico [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.eot [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.svg [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.ttf [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.woff [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/js/ScrollY.js [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/js/jquery.min.js [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/js/script.js [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/loading.svg [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/loginBG.png [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/logo.png [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/menu-logo.png [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/mobile-loginBG.png [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/no-pwd.png [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/op-eye.png [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/pwd.png [deleted file]
package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/user.png [deleted file]
package/luci/themes/luci-theme-rosy/luasrc/view/themes/rosy/footer.htm [deleted file]
package/luci/themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm [deleted file]
package/luci/themes/luci-theme-rosy/root/etc/uci-defaults/30_luci-theme-rosy [deleted file]
package/network/config/firewall/Makefile
package/network/config/gre/Makefile
package/network/config/gre/files/gre.sh
package/network/config/ipip/Makefile
package/network/config/ipip/files/ipip.sh
package/network/config/netifd/Makefile
package/network/config/soloscli/Makefile [new file with mode: 0644]
package/network/config/soloscli/files/etc/hotplug.d/atm/15-solos-init [new file with mode: 0644]
package/network/config/soloscli/files/etc/uci-default/solos [new file with mode: 0644]
package/network/config/soloscli/files/solos-log-stats [new file with mode: 0644]
package/network/config/soloscli/patches/001-no-driver.patch [new file with mode: 0644]
package/network/config/soloscli/patches/002-cflags.patch [new file with mode: 0644]
package/network/config/vti/Makefile
package/network/config/vti/files/vti.sh
package/network/ipv6/464xlat/Makefile [new file with mode: 0644]
package/network/ipv6/464xlat/files/464xlat.sh [new file with mode: 0755]
package/network/ipv6/464xlat/src/464xlatcfg.c [new file with mode: 0644]
package/network/ipv6/464xlat/src/Makefile [new file with mode: 0644]
package/network/ipv6/map/Makefile
package/network/ipv6/odhcp6c/Makefile
package/network/ipv6/thc-ipv6/Makefile [deleted file]
package/network/ipv6/thc-ipv6/patches/000-cflags_override.patch [deleted file]
package/network/ipv6/thc-ipv6/patches/100-no-ssl.patch [deleted file]
package/network/services/aria2/Config.in [deleted file]
package/network/services/aria2/Makefile [deleted file]
package/network/services/aria2/files/aria2.conf [deleted file]
package/network/services/aria2/files/aria2.init [deleted file]
package/network/services/aria2/patches/010-Platform-Fix-compilation-without-deprecated-OpenSSL-.patch [deleted file]
package/network/services/dnsmasq/Makefile
package/network/services/dnsmasq/files/dnsmasq.init
package/network/services/dnsmasq/patches/0001-Impove-cache-behaviour-for-TCP-connections.patch
package/network/services/dnsmasq/patches/0002-Ensure-that-AD-bit-is-reset-on-answers-from-address-.patch
package/network/services/dnsmasq/patches/0003-Remove-ability-to-compile-without-IPv6-support.patch
package/network/services/dnsmasq/patches/0004-Don-t-forward-.bind-.server-queries-upstream.patch
package/network/services/dnsmasq/patches/0005-Fix-logging-in-cf5984367bc6a949e3803a576512c5a7bc48e.patch
package/network/services/dnsmasq/patches/0006-Fix-spurious-AD-flags-in-some-DNS-replies-from-local.patch
package/network/services/dnsmasq/patches/0007-Do-not-rely-on-dead-code-elimination-use-array-inste.patch
package/network/services/dnsmasq/patches/0008-Fix-Makefile-lines-generating-UBUS-linker-config.patch
package/network/services/dnsmasq/patches/0009-Revert-68f6312d4bae30b78daafcd6f51dc441b8685b1e.patch
package/network/services/dnsmasq/patches/0010-Remove-the-NO_FORK-compile-time-option-and-support-f.patch
package/network/services/dnsmasq/patches/0011-Free-config-file-values-on-parsing-errors.patch
package/network/services/dnsmasq/patches/0013-Treat-DS-and-DNSKEY-queries-being-forwarded-the-same.patch
package/network/services/dnsmasq/patches/0014-Fix-option-parsing-errors-introduced-in-59e470381f84.patch
package/network/services/dnsmasq/patches/0015-fix-ipv6-ipset-bug-in-master.patch
package/network/services/dnsmasq/patches/0016-build-failure-on-master-with-NO_DHCPv6-and-fix.patch
package/network/services/dnsmasq/patches/0017-Alter-DHCP-address-selection-after-DECLINE-in-consec.patch
package/network/services/dnsmasq/patches/0018-Tidy-all_addr-union-merge-log-and-rcode-fields.patch
package/network/services/dnsmasq/patches/0019-Tidy-address-union-handling-move-class-into-explicit.patch
package/network/services/dnsmasq/patches/0020-Futher-address-union-tidying.patch
package/network/services/dnsmasq/patches/0021-Remove-nested-struct-union-in-cache-records-and-all_.patch
package/network/services/dnsmasq/patches/0022-File-logic-bug-in-cache-marshalling-code.-Introduced.patch
package/network/services/dnsmasq/patches/0023-Fix-typo-in-ra-param-man-page-section.patch
package/network/services/dnsmasq/patches/0024-Cache-SRV-records.patch
package/network/services/dnsmasq/patches/0025-Fix-crash-freeing-negative-SRV-cache-entries.patch
package/network/services/dnsmasq/patches/0026-Check-for-not-DS-or-DNSKEY-in-is_outdated_cname_poin.patch
package/network/services/dnsmasq/patches/0027-Fix-e7bfd556c079c8b5e7425aed44abc35925b24043-to-actu.patch
package/network/services/dnsmasq/patches/0028-Tidy-cache_blockdata_free.patch
package/network/services/dnsmasq/patches/0029-Fix-removal-of-DHCP_CLIENT_MAC-options-from-DHCPv6-r.patch
package/network/services/dnsmasq/patches/0030-Fix-entries-in-etc-hosts-disabling-static-leases.patch
package/network/services/dnsmasq/patches/0031-Fix-missing-braces-in-8eac67c0a15b673c8d27002c248651.patch [new file with mode: 0644]
package/network/services/dnsmasq/patches/0031-fix-previous-commit.patch [deleted file]
package/network/services/dnsmasq/patches/0032-Change-read_leases-to-skip-invalid-entries.patch [new file with mode: 0644]
package/network/services/dropbear/files/dropbear.init
package/network/services/ead/Makefile [deleted file]
package/network/services/ead/src/Makefile [deleted file]
package/network/services/ead/src/aes.c [deleted file]
package/network/services/ead/src/ead-client.c [deleted file]
package/network/services/ead/src/ead-crypt.c [deleted file]
package/network/services/ead/src/ead-crypt.h [deleted file]
package/network/services/ead/src/ead-pcap.h [deleted file]
package/network/services/ead/src/ead.c [deleted file]
package/network/services/ead/src/ead.h [deleted file]
package/network/services/ead/src/filter.c [deleted file]
package/network/services/ead/src/libbridge.h [deleted file]
package/network/services/ead/src/libbridge_init.c [deleted file]
package/network/services/ead/src/libbridge_private.h [deleted file]
package/network/services/ead/src/list.h [deleted file]
package/network/services/ead/src/passwd [deleted file]
package/network/services/ead/src/pfc.c [deleted file]
package/network/services/ead/src/pw_encrypt_md5.c [deleted file]
package/network/services/ead/src/sha1.c [deleted file]
package/network/services/ead/src/tinysrp/Makefile.am [deleted file]
package/network/services/ead/src/tinysrp/Makefile.in [deleted file]
package/network/services/ead/src/tinysrp/Notes [deleted file]
package/network/services/ead/src/tinysrp/acconfig.h [deleted file]
package/network/services/ead/src/tinysrp/acinclude.m4 [deleted file]
package/network/services/ead/src/tinysrp/aclocal.m4 [deleted file]
package/network/services/ead/src/tinysrp/bn.h [deleted file]
package/network/services/ead/src/tinysrp/bn_add.c [deleted file]
package/network/services/ead/src/tinysrp/bn_asm.c [deleted file]
package/network/services/ead/src/tinysrp/bn_ctx.c [deleted file]
package/network/services/ead/src/tinysrp/bn_div.c [deleted file]
package/network/services/ead/src/tinysrp/bn_exp.c [deleted file]
package/network/services/ead/src/tinysrp/bn_lcl.h [deleted file]
package/network/services/ead/src/tinysrp/bn_lib.c [deleted file]
package/network/services/ead/src/tinysrp/bn_mul.c [deleted file]
package/network/services/ead/src/tinysrp/bn_prime.h [deleted file]
package/network/services/ead/src/tinysrp/bn_shift.c [deleted file]
package/network/services/ead/src/tinysrp/bn_sqr.c [deleted file]
package/network/services/ead/src/tinysrp/bn_word.c [deleted file]
package/network/services/ead/src/tinysrp/clitest.c [deleted file]
package/network/services/ead/src/tinysrp/config.h.in [deleted file]
package/network/services/ead/src/tinysrp/configure [deleted file]
package/network/services/ead/src/tinysrp/configure.in [deleted file]
package/network/services/ead/src/tinysrp/install-sh [deleted file]
package/network/services/ead/src/tinysrp/missing [deleted file]
package/network/services/ead/src/tinysrp/mkinstalldirs [deleted file]
package/network/services/ead/src/tinysrp/srvtest.c [deleted file]
package/network/services/ead/src/tinysrp/stamp-h.in [deleted file]
package/network/services/ead/src/tinysrp/t_client.c [deleted file]
package/network/services/ead/src/tinysrp/t_client.h [deleted file]
package/network/services/ead/src/tinysrp/t_conf.c [deleted file]
package/network/services/ead/src/tinysrp/t_conv.c [deleted file]
package/network/services/ead/src/tinysrp/t_defines.h [deleted file]
package/network/services/ead/src/tinysrp/t_getconf.c [deleted file]
package/network/services/ead/src/tinysrp/t_getpass.c [deleted file]
package/network/services/ead/src/tinysrp/t_math.c [deleted file]
package/network/services/ead/src/tinysrp/t_misc.c [deleted file]
package/network/services/ead/src/tinysrp/t_pw.c [deleted file]
package/network/services/ead/src/tinysrp/t_pwd.h [deleted file]
package/network/services/ead/src/tinysrp/t_read.c [deleted file]
package/network/services/ead/src/tinysrp/t_read.h [deleted file]
package/network/services/ead/src/tinysrp/t_server.c [deleted file]
package/network/services/ead/src/tinysrp/t_server.h [deleted file]
package/network/services/ead/src/tinysrp/t_sha.c [deleted file]
package/network/services/ead/src/tinysrp/t_sha.h [deleted file]
package/network/services/ead/src/tinysrp/t_truerand.c [deleted file]
package/network/services/ead/src/tinysrp/tconf.c [deleted file]
package/network/services/ead/src/tinysrp/tinysrp.c [deleted file]
package/network/services/ead/src/tinysrp/tinysrp.h [deleted file]
package/network/services/ead/src/tinysrp/tpasswd [deleted file]
package/network/services/ead/src/tinysrp/tphrase.c [deleted file]
package/network/services/hostapd/Makefile
package/network/services/hostapd/files/hostapd.sh
package/network/services/hostapd/files/wpa_supplicant-basic.config
package/network/services/hostapd/files/wpa_supplicant-full.config
package/network/services/hostapd/files/wpa_supplicant-mini.config
package/network/services/hostapd/files/wpa_supplicant-p2p.config
package/network/services/hostapd/files/wps-hotplug.sh
package/network/services/hostapd/patches/051-wpa_supplicant-fix-race-condition-in-mesh-mpm-new-pe.patch [new file with mode: 0644]
package/network/services/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch [new file with mode: 0644]
package/network/services/hostapd/patches/370-ap_sta_support.patch
package/network/services/hostapd/patches/380-disable_ctrl_iface_mib.patch
package/network/services/hostapd/patches/550-hostapd-Add-Multi-AP-protocol-support.patch [new file with mode: 0644]
package/network/services/hostapd/patches/551-wpa_supplicant-Add-Multi-AP-protocol-support-to-supp.patch [new file with mode: 0644]
package/network/services/hostapd/patches/552-tests-Multi-AP-association.patch [new file with mode: 0644]
package/network/services/hostapd/patches/553-tests-refactor-test_multi_ap.patch [new file with mode: 0644]
package/network/services/hostapd/patches/554-multi_ap-don-t-reject-backhaul-STA-on-fronhaul-BSS.patch [new file with mode: 0644]
package/network/services/hostapd/patches/555-WPS-wps_build_wfa_ext-add-multi_ap_subelem-parameter.patch [new file with mode: 0644]
package/network/services/hostapd/patches/556-wpa_supplicant-support-Multi-AP-backhaul-STA-onboard.patch [new file with mode: 0644]
package/network/services/hostapd/patches/557-hostapd-support-Multi-AP-backhaul-STA-onboarding.patch [new file with mode: 0644]
package/network/services/hostapd/patches/558-hostapd-add-README-MULTI-AP.patch [new file with mode: 0644]
package/network/services/hostapd/patches/559-tests-add-WPS-tests-to-multi_ap-hwsim-tests.patch [new file with mode: 0644]
package/network/services/hostapd/patches/600-ubus_support.patch
package/network/services/hostapd/src/wpa_supplicant/ubus.c
package/network/services/odhcpd/Makefile
package/network/services/omcproxy/Makefile
package/network/services/ppp/Makefile
package/network/services/ppp/patches/001-honor-ldflags.patch [deleted file]
package/network/services/ppp/patches/100-debian_ip-ip_option.patch
package/network/services/ppp/patches/101-debian_close_dev_ppp.patch
package/network/services/ppp/patches/103-debian_fix_link_pidfile.patch
package/network/services/ppp/patches/105-debian_demand.patch
package/network/services/ppp/patches/110-debian_defaultroute.patch
package/network/services/ppp/patches/120-debian_ipv6_updown_option.patch
package/network/services/ppp/patches/121-debian_adaptive_lcp_echo.patch
package/network/services/ppp/patches/132-fix_linux_includes.patch
package/network/services/ppp/patches/140-pppoe_compile_fix.patch
package/network/services/ppp/patches/200-makefile.patch
package/network/services/ppp/patches/201-mppe_mppc_1.1.patch
package/network/services/ppp/patches/202-no_strip.patch
package/network/services/ppp/patches/203-opt_flags.patch
package/network/services/ppp/patches/206-compensate_time_change.patch
package/network/services/ppp/patches/208-fix_status_code.patch
package/network/services/ppp/patches/300-filter-pcap-includes-lib.patch
package/network/services/ppp/patches/310-precompile_filter.patch
package/network/services/ppp/patches/320-custom_iface_names.patch [deleted file]
package/network/services/ppp/patches/321-multilink_support_custom_iface_names.patch
package/network/services/ppp/patches/330-retain_foreign_default_routes.patch
package/network/services/ppp/patches/340-populate_default_gateway.patch
package/network/services/ppp/patches/400-simplify_kernel_checks.patch
package/network/services/ppp/patches/401-no_record_file.patch
package/network/services/ppp/patches/403-no_wtmp.patch
package/network/services/ppp/patches/404-remove_obsolete_protocol_names.patch
package/network/services/ppp/patches/405-no_multilink_option.patch
package/network/services/ppp/patches/520-uniq.patch
package/network/services/ppp/patches/530-pppoe_send_padt.patch [deleted file]
package/network/services/ppp/patches/531-pppoe_no_disconnect_warning.patch [deleted file]
package/network/services/ppp/patches/550-fix-printer-args.patch [deleted file]
package/network/services/ppp/patches/600-Revert-pppd-Use-openssl-for-the-DES-instead-of-the-l.patch [new file with mode: 0644]
package/network/services/relayd/Makefile
package/network/services/samba36/Makefile
package/network/services/uhttpd/Makefile
package/network/services/uhttpd/files/uhttpd.config
package/network/services/umdns/Makefile
package/network/services/wireguard/Makefile
package/network/utils/conntrack-tools/Makefile [deleted file]
package/network/utils/conntrack-tools/files/conntrackd.init [deleted file]
package/network/utils/curl/Makefile
package/network/utils/curl/patches/310-mbedtls-disable-runtime-version-check.patch
package/network/utils/dante/Makefile
package/network/utils/iproute2/Makefile
package/network/utils/iproute2/patches/001-fix-print_0xhex-on-32-bit.patch [deleted file]
package/network/utils/iproute2/patches/001-tc-fix-undefined-XATTR_SIZE_MAX.patch [new file with mode: 0644]
package/network/utils/iproute2/patches/002-tc-fix-xtables-incorrect-usage-of-LDFLAGS.patch [deleted file]
package/network/utils/iproute2/patches/100-config.patch [deleted file]
package/network/utils/iproute2/patches/100-configure.patch [new file with mode: 0644]
package/network/utils/iproute2/patches/115-add-config-xtlibdir.patch [new file with mode: 0644]
package/network/utils/iproute2/patches/140-keep_libmnl_optional.patch
package/network/utils/iproute2/patches/150-extra-ccopts.patch [deleted file]
package/network/utils/iproute2/patches/170-ip_tiny.patch
package/network/utils/iproute2/patches/190-link-libelf-to-tc-only.patch
package/network/utils/iproute2/patches/200-drop_libbsd_dependency.patch [new file with mode: 0644]
package/network/utils/ipset/Makefile
package/network/utils/iptables/Makefile
package/network/utils/iputils/Makefile
package/network/utils/iw/Makefile
package/network/utils/iw/patches/001-nl80211_h_sync.patch
package/network/utils/iw/patches/120-antenna_gain.patch
package/network/utils/iw/patches/200-reduce_size.patch
package/network/utils/iwinfo/Makefile
package/network/utils/layerscape/restool/Makefile [new file with mode: 0644]
package/network/utils/layerscape/restool/patches/0001-restool-fix-get_device_file-function.patch [new file with mode: 0644]
package/network/utils/umbim/Makefile
package/network/utils/uqmi/Makefile
package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
package/network/utils/wireless-tools/Makefile
package/system/fstools/Makefile
package/system/fstools/files/media-change.hotplug [new file with mode: 0644]
package/system/fwtool/src/fwtool.c
package/system/mtd/Makefile
package/system/mtd/src/Makefile
package/system/mtd/src/linksys_bootcount_fix.c [new file with mode: 0644]
package/system/mtd/src/mtd.c
package/system/mtd/src/mtd.h
package/system/mtd/src/tpl_ramips_recoveryflag.c [new file with mode: 0644]
package/system/opkg/Makefile
package/system/procd/Makefile
package/system/procd/files/procd.sh
package/system/rpcd/Makefile
package/system/ubox/Makefile
package/system/ubox/files/log.init
package/system/ubus/Makefile
package/system/ucert/Makefile
package/system/uci/Makefile
package/system/usign/Makefile
package/utils/admswconfig/Makefile [deleted file]
package/utils/admswconfig/files/admswconfig [deleted file]
package/utils/admswconfig/files/admswswitch.sh [deleted file]
package/utils/admswconfig/patches/001-matrix.patch [deleted file]
package/utils/admswconfig/patches/002-fix-musl.patch [deleted file]
package/utils/busybox/Config.in
package/utils/busybox/Makefile
package/utils/busybox/config/Config.in
package/utils/busybox/config/archival/Config.in
package/utils/busybox/config/console-tools/Config.in
package/utils/busybox/config/coreutils/Config.in
package/utils/busybox/config/debianutils/Config.in
package/utils/busybox/config/e2fsprogs/Config.in
package/utils/busybox/config/e2fsprogs/old_e2fsprogs/Config.in
package/utils/busybox/config/editors/Config.in
package/utils/busybox/config/findutils/Config.in
package/utils/busybox/config/init/Config.in
package/utils/busybox/config/klibc-utils/Config.in [new file with mode: 0644]
package/utils/busybox/config/libbb/Config.in
package/utils/busybox/config/loginutils/Config.in
package/utils/busybox/config/mailutils/Config.in
package/utils/busybox/config/miscutils/Config.in
package/utils/busybox/config/modutils/Config.in
package/utils/busybox/config/networking/Config.in
package/utils/busybox/config/networking/udhcp/Config.in
package/utils/busybox/config/printutils/Config.in
package/utils/busybox/config/procps/Config.in
package/utils/busybox/config/runit/Config.in
package/utils/busybox/config/selinux/Config.in
package/utils/busybox/config/shell/Config.in
package/utils/busybox/config/sysklogd/Config.in
package/utils/busybox/config/util-linux/Config.in
package/utils/busybox/config/util-linux/volume_id/Config.in
package/utils/busybox/files/sysntpd
package/utils/busybox/patches/520-loginutils-handle-crypt-failures.patch [new file with mode: 0644]
package/utils/bzip2/Makefile
package/utils/ct-bugcheck/Makefile [deleted file]
package/utils/ct-bugcheck/src/bugcheck.initd [deleted file]
package/utils/ct-bugcheck/src/bugcheck.sh [deleted file]
package/utils/ct-bugcheck/src/bugchecker.sh [deleted file]
package/utils/e2fsprogs/Makefile
package/utils/e2fsprogs/patches/000-relocatable.patch
package/utils/f2fs-tools/Makefile
package/utils/fritz-tools/Makefile [deleted file]
package/utils/fritz-tools/README.md [deleted file]
package/utils/fritz-tools/src/CMakeLists.txt [deleted file]
package/utils/fritz-tools/src/fritz_cal_extract.c [deleted file]
package/utils/fritz-tools/src/fritz_tffs_read.c [deleted file]
package/utils/fuse/Makefile
package/utils/jboot-tools/Makefile [deleted file]
package/utils/jboot-tools/README.md [deleted file]
package/utils/jboot-tools/src/CMakeLists.txt [deleted file]
package/utils/jboot-tools/src/jboot_config_read.c [deleted file]
package/utils/jsonfilter/Makefile
package/utils/lua/Makefile
package/utils/mdadm/Makefile
package/utils/mdadm/patches/100-cross_compile.patch
package/utils/mdadm/patches/101-mdadm.h-Undefine-dprintf-before-redefining.patch
package/utils/mdadm/patches/200-reduce_size.patch
package/utils/osafeloader/Makefile [deleted file]
package/utils/osafeloader/src/Makefile [deleted file]
package/utils/osafeloader/src/md5.c [deleted file]
package/utils/osafeloader/src/md5.h [deleted file]
package/utils/osafeloader/src/osafeloader.c [deleted file]
package/utils/oseama/Makefile [deleted file]
package/utils/oseama/src/Makefile [deleted file]
package/utils/oseama/src/md5.c [deleted file]
package/utils/oseama/src/md5.h [deleted file]
package/utils/oseama/src/oseama.c [deleted file]
package/utils/otrx/Makefile [deleted file]
package/utils/otrx/src/Makefile [deleted file]
package/utils/otrx/src/otrx.c [deleted file]
package/utils/ugps/Makefile [deleted file]
package/utils/ugps/files/gps.config [deleted file]
package/utils/ugps/files/ugps.init [deleted file]
package/utils/usbmode/Makefile
package/utils/usbutils/Makefile
package/utils/util-linux/Makefile
rules.mk
scripts/clean-package.sh
scripts/download.pl
scripts/flashing/eva_ramboot.py
scripts/getver.sh
scripts/ipkg-make-index.sh
scripts/ipkg-remove [new file with mode: 0755]
scripts/linksys-image.sh [new file with mode: 0755]
scripts/metadata.pm
scripts/mkits-qsdk-ipq-image.sh [new file with mode: 0755]
scripts/package-metadata.pl
scripts/qemustart
scripts/rebrand.sh [deleted file]
target/Makefile
target/linux/ar71xx/base-files/etc/board.d/01_leds
target/linux/ar71xx/base-files/etc/board.d/02_network
target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata [deleted file]
target/linux/ar71xx/base-files/lib/ar71xx.sh
target/linux/ar71xx/base-files/lib/preinit/82_patch_ath10k [deleted file]
target/linux/ar71xx/files/arch/mips/ath79/mach-arduino-yun.c
target/linux/ar71xx/files/arch/mips/ath79/mach-gl-ar300m.c
target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c
target/linux/ar71xx/image/Makefile
target/linux/ar71xx/image/generic-legacy-devices.mk
target/linux/ar71xx/image/generic-tp-link.mk
target/linux/ar71xx/image/generic-ubnt.mk [deleted file]
target/linux/ar71xx/image/generic.mk
target/linux/ar71xx/image/nand.mk
target/linux/ar71xx/image/tiny-legacy-devices.mk
target/linux/ar71xx/patches-4.14/500-MIPS-fw-myloader.patch
target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch
target/linux/ar71xx/patches-4.14/950-add-boardinfo-platform-data.patch
target/linux/ath79/base-files/etc/board.d/01_leds
target/linux/ath79/base-files/etc/board.d/02_network
target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata [deleted file]
target/linux/ath79/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dts
target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi
target/linux/ath79/dts/ar7161_ubnt_routerstation.dtsi
target/linux/ath79/dts/ar7240_buffalo_whr-g301n.dts
target/linux/ath79/dts/ar7240_netgear_wnr612-v2.dtsi
target/linux/ath79/dts/ar7240_tplink_tl-wr74xn-v1.dtsi
target/linux/ath79/dts/ar7241_tplink.dtsi
target/linux/ath79/dts/ar7241_tplink_tl-wr841-v7.dts
target/linux/ath79/dts/ar7242_avm_fritz300e.dts
target/linux/ath79/dts/ar7242_tplink_tl-wr2543-v1.dts
target/linux/ath79/dts/ar9132_tplink_tl-wr1043nd-v1.dts
target/linux/ath79/dts/ar9331_pisen_wmm003n.dts
target/linux/ath79/dts/ar9331_tplink_tl-wr703n_tl-mr10u.dtsi
target/linux/ath79/dts/ar9331_tplink_tl-wr740n-v4.dts [new file with mode: 0644]
target/linux/ath79/dts/ar9331_tplink_tl-wr740nd-v4.dts [deleted file]
target/linux/ath79/dts/ar9331_tplink_tl-wr741nd-v4.dtsi
target/linux/ath79/dts/ar9342_ubnt_nanostation-ac.dts
target/linux/ath79/dts/ar9342_ubnt_xw.dtsi
target/linux/ath79/dts/ar9344_comfast_cf-e120a-v3.dts [new file with mode: 0644]
target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi
target/linux/ath79/dts/qca9531_glinet_gl-x750.dts
target/linux/ath79/dts/qca9533_tplink_tl-wr841-v11.dts
target/linux/ath79/dts/qca9533_tplink_tl-wr841-v9.dts
target/linux/ath79/dts/qca953x.dtsi
target/linux/ath79/dts/qca9557.dtsi
target/linux/ath79/dts/qca9557_buffalo_bhr-4grv2.dts
target/linux/ath79/dts/qca9557_iodata_wn-ac-dgr.dtsi
target/linux/ath79/dts/qca9557_iodata_wn-ac1167dgr.dts
target/linux/ath79/dts/qca9557_iodata_wn-ac1600dgr.dts [new file with mode: 0644]
target/linux/ath79/dts/qca9557_iodata_wn-ac1600dgr2.dts
target/linux/ath79/dts/qca9558_devolo_dvl1750e.dts [new file with mode: 0644]
target/linux/ath79/dts/qca9558_tplink_archer-c5-v1.dts [new file with mode: 0644]
target/linux/ath79/dts/qca9558_tplink_archer-c7-v1.dts
target/linux/ath79/dts/qca9558_tplink_archer-c7-v2.dts
target/linux/ath79/dts/qca9558_tplink_tl-wr1043nd-v2.dts
target/linux/ath79/dts/qca9558_tplink_tl-wr1043nd-v3.dts
target/linux/ath79/dts/qca9561_tplink_archer-c58-v1.dts
target/linux/ath79/dts/qca9561_tplink_archer-c59-v1.dts
target/linux/ath79/dts/qca9561_xiaomi_mi-router-4q.dts [new file with mode: 0644]
target/linux/ath79/dts/qca9563_tplink_archer-c2-v3.dts [new file with mode: 0644]
target/linux/ath79/dts/qca9563_tplink_archer-c7-v4.dts [new file with mode: 0644]
target/linux/ath79/dts/qca9563_tplink_tl-wr1043nd-v4.dts
target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c
target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c
target/linux/ath79/image/Makefile
target/linux/ath79/image/common-tp-link.mk
target/linux/ath79/image/generic-tp-link.mk
target/linux/ath79/image/generic-ubnt.mk [deleted file]
target/linux/ath79/image/generic.mk
target/linux/ath79/image/tiny-tp-link.mk
target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch
target/linux/generic/backport-4.14/012-kbuild-add-macro-for-controlling-warnings-to-linux-c.patch
target/linux/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch
target/linux/generic/backport-4.14/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch
target/linux/generic/backport-4.14/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch [deleted file]
target/linux/generic/backport-4.14/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch [deleted file]
target/linux/generic/backport-4.14/336-v4.15-netfilter-exit_net-cleanup-check-added.patch
target/linux/generic/backport-4.14/420-enable-CONFIG_MMC_SDHCI_IO_ACCESSORS.patch [new file with mode: 0644]
target/linux/generic/backport-4.19/048-v4.21-mtd-improve-calculating-partition-boundaries-when-ch.patch
target/linux/generic/backport-4.19/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch
target/linux/generic/backport-4.19/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch [deleted file]
target/linux/generic/backport-4.19/101-arm-cns3xxx-use-actual-size-reads-for-PCIe.patch [new file with mode: 0644]
target/linux/generic/backport-4.9/012-kbuild-add-macro-for-controlling-warnings-to-linux-c.patch
target/linux/generic/backport-4.9/021-bridge-multicast-to-unicast.patch
target/linux/generic/backport-4.9/023-1-smsc95xx-Use-skb_cow_head-to-deal-with-cloned-skbs.patch [deleted file]
target/linux/generic/backport-4.9/023-6-ch9200-use-skb_cow_head-to-deal-with-cloned-skbs.patch [deleted file]
target/linux/generic/backport-4.9/023-7-kaweth-use-skb_cow_head-to-deal-with-cloned-skbs.patch [deleted file]
target/linux/generic/backport-4.9/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch
target/linux/generic/backport-4.9/041-mm-rename-__alloc_page_frag-to-page_frag_alloc-and-_.patch
target/linux/generic/backport-4.9/050-usb-dwc2-Remove-unnecessary-kfree.patch [deleted file]
target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch
target/linux/generic/backport-4.9/092-netfilter-nf_tables-fix-mismatch-in-big-endian-syste.patch [deleted file]
target/linux/generic/backport-4.9/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch
target/linux/generic/backport-4.9/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch [deleted file]
target/linux/generic/backport-4.9/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch [deleted file]
target/linux/generic/config-4.14
target/linux/generic/config-4.19
target/linux/generic/config-4.9
target/linux/generic/files/drivers/misc/owl-loader.c
target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c
target/linux/generic/hack-4.14/204-module_strip.patch
target/linux/generic/hack-4.14/259-regmap_dynamic.patch
target/linux/generic/hack-4.14/301-mips_image_cmdline_hack.patch
target/linux/generic/hack-4.14/650-netfilter-add-xt_OFFLOAD-target.patch
target/linux/generic/hack-4.14/721-phy_packets.patch
target/linux/generic/hack-4.14/901-debloat_sock_diag.patch
target/linux/generic/hack-4.14/902-debloat_proc.patch
target/linux/generic/hack-4.14/911-kobject_add_broadcast_uevent.patch
target/linux/generic/hack-4.14/940-cleanup-offload-hooks-on-netdev-unregister.patch [deleted file]
target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch [deleted file]
target/linux/generic/hack-4.19/204-module_strip.patch
target/linux/generic/hack-4.19/259-regmap_dynamic.patch
target/linux/generic/hack-4.19/301-mips_image_cmdline_hack.patch
target/linux/generic/hack-4.19/721-phy_packets.patch
target/linux/generic/hack-4.19/901-debloat_sock_diag.patch
target/linux/generic/hack-4.19/902-debloat_proc.patch
target/linux/generic/hack-4.9/204-module_strip.patch
target/linux/generic/hack-4.9/259-regmap_dynamic.patch
target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch
target/linux/generic/hack-4.9/641-bridge_port_isolate.patch
target/linux/generic/hack-4.9/661-use_fq_codel_by_default.patch
target/linux/generic/hack-4.9/721-phy_packets.patch
target/linux/generic/hack-4.9/901-debloat_sock_diag.patch
target/linux/generic/hack-4.9/902-debloat_proc.patch
target/linux/generic/hack-4.9/911-kobject_add_broadcast_uevent.patch
target/linux/generic/pending-3.18/132-mips_inline_dma_ops.patch
target/linux/generic/pending-3.18/204-module_strip.patch
target/linux/generic/pending-3.18/259-regmap_dynamic.patch
target/linux/generic/pending-3.18/300-mips_expose_boot_raw.patch
target/linux/generic/pending-3.18/301-mips_image_cmdline_hack.patch
target/linux/generic/pending-3.18/304-mips_disable_fpu.patch
target/linux/generic/pending-3.18/530-jffs2_make_lzma_available.patch
target/linux/generic/pending-3.18/902-debloat_proc.patch
target/linux/generic/pending-4.14/142-jffs2-Fix-use-of-uninitialized-delayed_work-lockdep-.patch [deleted file]
target/linux/generic/pending-4.14/300-mips_expose_boot_raw.patch
target/linux/generic/pending-4.14/304-mips_disable_fpu.patch
target/linux/generic/pending-4.14/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch
target/linux/generic/pending-4.14/644-net-pppoe-support-hardware-flow-table-offload.patch
target/linux/generic/pending-4.14/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/generic/pending-4.19/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
target/linux/generic/pending-4.19/142-jffs2-Fix-use-of-uninitialized-delayed_work-lockdep-.patch [deleted file]
target/linux/generic/pending-4.19/203-kallsyms_uncompressed.patch
target/linux/generic/pending-4.19/300-mips_expose_boot_raw.patch
target/linux/generic/pending-4.19/304-mips_disable_fpu.patch
target/linux/generic/pending-4.19/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch
target/linux/generic/pending-4.19/400-mtd-add-rootfs-split-support.patch
target/linux/generic/pending-4.19/401-mtd-add-support-for-different-partition-parser-types.patch
target/linux/generic/pending-4.19/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch
target/linux/generic/pending-4.19/404-mtd-add-more-helper-functions.patch
target/linux/generic/pending-4.19/411-mtd-partial_eraseblock_write.patch
target/linux/generic/pending-4.19/630-packet_socket_type.patch
target/linux/generic/pending-4.19/644-net-pppoe-support-hardware-flow-table-offload.patch
target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/generic/pending-4.19/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch
target/linux/generic/pending-4.19/834-ledtrig-libata.patch
target/linux/generic/pending-4.19/920-mangle_bootargs.patch
target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch
target/linux/generic/pending-4.9/304-mips_disable_fpu.patch
target/linux/generic/pending-4.9/341-MIPS-mm-remove-no-op-dma_map_ops-where-possible.patch
target/linux/generic/pending-4.9/530-jffs2_make_lzma_available.patch
target/linux/generic/pending-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/sunxi/base-files/lib/firmware/brcm/brcmfmac43430a0-sdio.txt [new symlink]
target/linux/sunxi/config-4.14
target/linux/sunxi/config-4.19
target/linux/sunxi/cortexa53/config-4.14
target/linux/sunxi/cortexa53/config-4.19
target/linux/sunxi/cortexa7/config-4.19
target/linux/sunxi/image/cortex-a7.mk
target/linux/sunxi/patches-4.14/031-arm64-Implement-arch_counter_get_cntpct-to-read-the-.patch [new file with mode: 0644]
target/linux/sunxi/patches-4.14/040-arm64-dts-allwinner-a64-Add-watchdog.patch [new file with mode: 0644]
target/linux/sunxi/patches-4.14/080-arm64-allwinner-a64-add-SPI-nodes.patch [new file with mode: 0644]
target/linux/sunxi/patches-4.14/081-arm64-dts-allwinner-sun50i-a64-Add-spi-flash-node-fo.patch [new file with mode: 0644]
target/linux/sunxi/patches-4.14/100-clocksource-drivers-arch_timer-Workaround-for-Allwin.patch [new file with mode: 0644]
target/linux/sunxi/patches-4.14/101-arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch [new file with mode: 0644]
target/linux/sunxi/patches-4.14/400-arm64-allwinner-a64-sopine-Add-Sopine-flash-partitio.patch [new file with mode: 0644]
target/linux/sunxi/patches-4.19/100-clocksource-drivers-arch_timer-Workaround-for-Allwin.patch [new file with mode: 0644]
target/linux/sunxi/patches-4.19/101-arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch [new file with mode: 0644]
target/linux/sunxi/patches-4.19/400-arm64-allwinner-a64-sopine-Add-Sopine-flash-partitio.patch [new file with mode: 0644]
target/linux/x86/64/config-4.14
target/linux/x86/64/config-4.19
target/linux/x86/64/target.mk
target/linux/x86/generic/config-4.14
target/linux/x86/generic/config-4.19
target/linux/x86/image/Makefile
target/linux/x86/image/grub.cfg
toolchain/Config.in
toolchain/binutils/Config.in
toolchain/binutils/Config.version
toolchain/binutils/Makefile
toolchain/binutils/patches/2.30/100-PR23254-ld.bfd-mishandles-file-pointers-while-scanni.patch [deleted file]
toolchain/binutils/patches/2.30/300-001_ld_makefile_patch.patch [deleted file]
toolchain/binutils/patches/2.30/300-012_check_ldrunpath_length.patch [deleted file]
toolchain/binutils/patches/2.30/400-mips_no_dynamic_linking_sym.patch [deleted file]
toolchain/binutils/patches/2.30/500-Change-default-emulation-for-mips64-linux.patch [deleted file]
toolchain/binutils/patches/2.32/300-001_ld_makefile_patch.patch [new file with mode: 0644]
toolchain/binutils/patches/2.32/300-012_check_ldrunpath_length.patch [new file with mode: 0644]
toolchain/binutils/patches/2.32/400-mips_no_dynamic_linking_sym.patch [new file with mode: 0644]
toolchain/binutils/patches/2.32/500-Change-default-emulation-for-mips64-linux.patch [new file with mode: 0644]
toolchain/gcc/Config.in
toolchain/gcc/Config.version
toolchain/gcc/common.mk
toolchain/gcc/patches/5.5.0/050-libitm-Don-t-redefine-__always_inline-in-local_atomi.patch [new file with mode: 0644]
toolchain/gcc/patches/8.2.0/002-case_insensitive.patch [deleted file]
toolchain/gcc/patches/8.2.0/010-documentation.patch [deleted file]
toolchain/gcc/patches/8.2.0/110-Fix-MIPS-PR-84790.patch [deleted file]
toolchain/gcc/patches/8.2.0/230-musl_libssp.patch [deleted file]
toolchain/gcc/patches/8.2.0/300-mips_Os_cpu_rtx_cost_model.patch [deleted file]
toolchain/gcc/patches/8.2.0/800-arm_v5te_no_ldrd_strd.patch [deleted file]
toolchain/gcc/patches/8.2.0/810-arm-softfloat-libgcc.patch [deleted file]
toolchain/gcc/patches/8.2.0/820-libgcc_pic.patch [deleted file]
toolchain/gcc/patches/8.2.0/840-armv4_pass_fix-v4bx_to_ld.patch [deleted file]
toolchain/gcc/patches/8.2.0/850-use_shared_libgcc.patch [deleted file]
toolchain/gcc/patches/8.2.0/851-libgcc_no_compat.patch [deleted file]
toolchain/gcc/patches/8.2.0/870-ppc_no_crtsavres.patch [deleted file]
toolchain/gcc/patches/8.2.0/881-no_tm_section.patch [deleted file]
toolchain/gcc/patches/8.2.0/900-bad-mips16-crt.patch [deleted file]
toolchain/gcc/patches/8.2.0/910-mbsd_multi.patch [deleted file]
toolchain/gcc/patches/8.2.0/920-specs_nonfatal_getenv.patch [deleted file]
toolchain/gcc/patches/8.2.0/930-fix-mips-noexecstack.patch [deleted file]
toolchain/gcc/patches/8.2.0/931-libffi-fix-MIPS-softfloat-build-issue.patch [deleted file]
toolchain/gcc/patches/8.2.0/960-gotools-fix-compilation-when-making-cross-compiler.patch [deleted file]
toolchain/gcc/patches/8.3.0/002-case_insensitive.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/010-documentation.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/110-Fix-MIPS-PR-84790.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/230-musl_libssp.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/300-mips_Os_cpu_rtx_cost_model.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/800-arm_v5te_no_ldrd_strd.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/810-arm-softfloat-libgcc.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/820-libgcc_pic.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/840-armv4_pass_fix-v4bx_to_ld.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/850-use_shared_libgcc.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/851-libgcc_no_compat.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/870-ppc_no_crtsavres.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/881-no_tm_section.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/900-bad-mips16-crt.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/910-mbsd_multi.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/920-specs_nonfatal_getenv.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/930-fix-mips-noexecstack.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/931-libffi-fix-MIPS-softfloat-build-issue.patch [new file with mode: 0644]
toolchain/gcc/patches/8.3.0/960-gotools-fix-compilation-when-making-cross-compiler.patch [new file with mode: 0644]
toolchain/glibc/common.mk
toolchain/musl/Config.in [new file with mode: 0644]
toolchain/musl/common.mk
toolchain/musl/patches/110-read_timezone_from_fs.patch
toolchain/musl/patches/200-add_libssp_nonshared.patch
toolchain/musl/patches/901-crypt_size_hack.patch
toolchain/uClibc/common.mk
tools/Makefile
tools/bison/Makefile
tools/bison/patches/010-intl-stub-compat.patch
tools/firmware-utils/Makefile
tools/firmware-utils/src/mkdapimg2.c [new file with mode: 0644]
tools/firmware-utils/src/mktplinkfw2.c
tools/firmware-utils/src/ptgen.c
tools/firmware-utils/src/tplink-safeloader.c
tools/isl/Makefile
tools/mpfr/Makefile
tools/mpfr/patches/100-freebsd-compat.patch
tools/sed/Makefile
tools/squashfs4/Makefile [deleted file]
tools/squashfs4/patches/100-portability.patch [deleted file]
tools/squashfs4/patches/110-allow_static_liblzma.patch [deleted file]
tools/squashfs4/patches/120-cygwin_fixes.patch [deleted file]
tools/squashfs4/patches/130-include_sysmacros.patch [deleted file]
tools/squashfs4/patches/150-freebsd_fixes.patch [deleted file]
tools/squashfs4/patches/160-expose_lzma_xz_options.patch [deleted file]
tools/squashfs4/patches/170-add_support_for_LZMA_MAGIC_to_unsqashfs.patch [deleted file]
tools/squashfs4/patches/180-openbsd_compat.patch [deleted file]
tools/squashfs4/patches/190-no_nonstatic_inline.patch [deleted file]
tools/squashfs4/patches/200-add-fixed-timestamp-option.patch [deleted file]
tools/squashfskit4/Makefile [new file with mode: 0644]
tools/squashfskit4/patches/0001-fix-version.sh.patch [new file with mode: 0644]
tools/tar/Makefile
tools/tar/patches/100-symlink-force-root-name.patch
tools/tar/patches/110-symlink-force-permissions.patch
tools/wrt350nv2-builder/Makefile [new file with mode: 0644]
tools/wrt350nv2-builder/src/crypt.h [new file with mode: 0644]
tools/wrt350nv2-builder/src/ioapi.c [new file with mode: 0644]
tools/wrt350nv2-builder/src/ioapi.h [new file with mode: 0644]
tools/wrt350nv2-builder/src/md5.c [new file with mode: 0644]
tools/wrt350nv2-builder/src/md5.h [new file with mode: 0644]
tools/wrt350nv2-builder/src/upgrade.h [new file with mode: 0644]
tools/wrt350nv2-builder/src/wrt350nv2-builder.c [new file with mode: 0644]

index 46c2e8be439d07b54fa206bb7064ecae7e2dc091..b5acd8cbebd550e6ff4b7e197b23421bc94f4fdf 100644 (file)
@@ -68,6 +68,14 @@ menu "Global build settings"
                  This removes all ipkg/opkg status data files from the target directory
                  before building the root filesystem.
 
+       config IPK_FILES_CHECKSUMS
+               bool
+               prompt "Record files checksums in package metadata"
+               default n
+               help
+                 This makes file checksums part of package metadata. It increases size
+                 but provides you with pkg_check command to check for flash coruptions.
+
        config INCLUDE_CONFIG
                bool "Include build configuration in firmware" if DEVEL
                default n
index 9edbd02697d613d469dc9b22a66017a2352cb12a..5e8f028f2795b3363308fc79b8d6f4d3d044ebf1 100644 (file)
@@ -197,14 +197,12 @@ menu "Target Images"
        config GRUB_CONSOLE
                bool "Use Console Terminal (in addition to Serial)"
                depends on GRUB_IMAGES
-               default n if (TARGET_x86_generic_Soekris45xx || TARGET_x86_generic_Soekris48xx || TARGET_x86_net5501 || TARGET_x86_geos || TARGET_x86_alix2)
                default y
 
        config GRUB_SERIAL
                string "Serial port device"
                depends on GRUB_IMAGES
-               default "hvc0" if TARGET_x86_xen_domu
-               default "ttyS0" if ! TARGET_x86_xen_domu
+               default "ttyS0"
 
        config GRUB_BAUDRATE
                int "Serial port baud rate"
@@ -220,7 +218,6 @@ menu "Target Images"
        config GRUB_BOOTOPTS
                string "Extra kernel boot options"
                depends on GRUB_IMAGES
-               default "xencons=hvc" if TARGET_x86_xen_domu
                help
                  If you don't know, just leave it blank.
 
@@ -241,14 +238,14 @@ menu "Target Images"
 
        config VDI_IMAGES
                bool "Build VirtualBox image files (VDI)"
-               depends on TARGET_x86 || TARGET_x86_64
+               depends on TARGET_x86
                select GRUB_IMAGES
                select TARGET_IMAGES_PAD
                select PACKAGE_kmod-e1000
 
        config VMDK_IMAGES
                bool "Build VMware image files (VMDK)"
-               depends on TARGET_x86 || TARGET_x86_64
+               depends on TARGET_x86
                select GRUB_IMAGES
                select TARGET_IMAGES_PAD
                select PACKAGE_kmod-e1000
@@ -270,11 +267,12 @@ menu "Target Images"
                int "Kernel partition size (in MB)"
                depends on GRUB_IMAGES || USES_BOOT_PART
                default 8 if TARGET_apm821xx_sata
+               default 20 if TARGET_brcm2708
                default 16
 
        config TARGET_ROOTFS_PARTSIZE
                int "Root filesystem partition size (in MB)"
-               depends on GRUB_IMAGES || USES_ROOTFS_PART || TARGET_ROOTFS_EXT4FS || TARGET_mvebu || TARGET_rb532 || TARGET_sunxi || TARGET_uml
+               depends on GRUB_IMAGES || USES_ROOTFS_PART || TARGET_ROOTFS_EXT4FS || TARGET_mvebu || TARGET_omap || TARGET_rb532 || TARGET_sunxi || TARGET_uml
                default 256
                help
                  Select the root filesystem partition size.
index 2fb57897b283afb208f49e7a0f8ec4f374d1ed27..c860b2992fee06c27dece50fac16cd861ddeb7be 100644 (file)
@@ -519,6 +519,20 @@ if KERNEL_CGROUPS
                  CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
                  CONFIG_BLK_DEV_THROTTLING=y.
 
+       if KERNEL_BLK_CGROUP
+
+               config KERNEL_CFQ_GROUP_IOSCHED
+                       bool "Proportional weight of disk bandwidth in CFQ"
+
+               config KERNEL_BLK_DEV_THROTTLING
+                       bool "Enable throttling policy"
+                       default y if TARGET_brcm2708
+
+               config KERNEL_BLK_DEV_THROTTLING_LOW
+                       bool "Block throttling .low limit interface support (EXPERIMENTAL)"
+                       depends on KERNEL_BLK_DEV_THROTTLING
+       endif
+
        config KERNEL_DEBUG_BLK_CGROUP
                bool "Enable Block IO controller debugging"
                default n
index 56a4b223c1a5400d6a9a7cbb541b8ecf11852b22..fd8e7848770258f9db7ac852db33665173595c50 100644 (file)
@@ -1,5 +1,10 @@
 # libreCMC supported Hardware
 
+Officially supported devices generally fall into three categories : can easily
+be flashed from the stock firmware's web-ui, requires a tFTP flash or opening up
+the router. When choosing a router to use with libreCMC, please keep in mind the
+method which is required for the initial install of libreCMC.
+
 ### Buffalo
 * [WZR-HP-G300NH](/WZR_HP_G300NH.md)
 * WHR-HP-G300NH
@@ -35,3 +40,9 @@
 * DGL-5500 a1 : Ships with non-free wifi card, but can be replaced with a free one. Has a mini-pci-e card slot.
 
 #####Please note that other targets may work; we are **NOT** responsible for **ANY** _bricked_ devices.
+
+## Notes:
+
+[2] requires a tFTP server for flashing.
+
+[3] requires opening up the router / external hardware for initial install (serial cable, SPI flasher or both).
diff --git a/docs/ccs.md b/docs/ccs.md
deleted file mode 100644 (file)
index 7dcf9bd..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-# CCS (Complete Corresponding Source) Requirements
-
-As a Free Software project, libreCMC works to go above and beyond its license
-obligations to be a good neighbor and to promote the ideals of Free
-Software. The project was founded on the idea that everyone should have the
-*freedom* to control the hardware they own, which means being able to fully
-control what it does and what runs on it. To ensure that everyone who uses
-libreCMC continues to have this freedom, a mechanism was added to the build
-system [1] to generate a CCS disk which OEMs and others would be able to
-distribute with devices shipping libreCMC. This was done to ease compliance and
-to push the idea that sources should be provided with a device at the time of
-sale. Shipping a CCS disk ensures that second hand sales of the device can be
-compliant if the disk is handed off with the device.
-
-
-## `make ccsdisk`
-
-A new target was created to build a CCS disk based upon the option of using an
-external repository or to use a local checkout. As it stands, this includes
-everything except for u-boot sources for a given target. In the near future, the
-libreCMC project will start including versions of u-boot for all officially
-supported targets and, going forward, make this a requirement for official
-hardware in libreCMC.
-
-
-## How to use
-
-There are two ways to use CCS disk : enable "Build the libreCMC CCS Disk" during
-image configuration or run `make ccsdisk` after all desired firmware images have
-been built. Since u-boot for a given target most likely is missing, it's
-important that the sources for u-boot be packaged and included on the disk. To
-do this, make sure they are included in `target/ccsdisk/files` with proper
-documentation. To make things a little bit easier, enabling the toolchain option
-during image configuration and using the toolchain to build u-boot will make
-things go much easier if it can be done.
-
-
-
-[1] libreCMC is a fork of OpenWrt, which both use a fork of
-[Buildroot](https://buildroot.org). Buildroot is a build system which helps to
-make it easier to create firmware images for "embedded" devices.
-
index 2179007d09c7a6399399653eeb1712b47e94684c..a9a3c3a110256f94039874563d58d026893db4bf 100644 (file)
@@ -6,7 +6,7 @@
 # See /LICENSE for more information.
 #
 
-PROJECT_GIT = https://git.openwrt.org
+PROJECT_GIT = https://gogs.librecmc.org/OWEALs
 
 LIBRECMC_GIT = $(PROJECT_GIT)
 LEDE_GIT = $(PROJECT_GIT)
@@ -28,7 +28,7 @@ define dl_method
 $(strip \
   $(if $(filter git,$(2)),$(call dl_method_git,$(1),$(2)),
     $(if $(2),$(2), \
-      $(if $(filter @APACHE/% @GNOME/% @GNU/% @KERNEL_LIBRE/% @KERNEL/% @SAVANNAH/% ftp://% http://% https://% file://%,$(1)),default, \
+      $(if $(filter @APACHE/% @GNOME/% @GNU/% @KERNEL_LIBRE/% @KERNEL/% @SF/% @SAVANNAH/% ftp://% http://% https://% file://%,$(1)),default, \
         $(if $(filter git://%,$(1)),$(call dl_method_git,$(1),$(2)), \
           $(if $(filter svn://%,$(1)),svn, \
             $(if $(filter cvs://%,$(1)),cvs, \
index d20cdfe0690e0f2cd36755d7f32efd0f1c22809d..4d85a475998dbefc024ff0700085ba225452ce65 100644 (file)
@@ -6,7 +6,7 @@
 # See /LICENSE for more information.
 #
 
--include $(TMP_DIR)/.packagesubdirs
+-include $(TMP_DIR)/.packageauxvars
 
 FEEDS_INSTALLED:=$(notdir $(wildcard $(TOPDIR)/package/feeds/*))
 FEEDS_AVAILABLE:=$(sort $(FEEDS_INSTALLED) $(shell $(SCRIPT_DIR)/feeds list -n))
@@ -41,3 +41,8 @@ define FeedSourcesAppend
                        echo '$(if $(filter m,$(CONFIG_FEED_$(feed))),# )src/gz %d_$(feed) %U/packages/%A/$(feed)';)))) \
 ) >> $(1)
 endef
+
+# 1: package name
+define GetABISuffix
+$(if $(filter-out kmod-%,$(1)),$(if $(Package/$(1)/abiversion),$(if $(filter %0 %1 %2 %3 %4 %5 %6 %7 %8 %9,$(1)),-)$(Package/$(1)/abiversion)))
+endef
index 70c09ad90cdd6f2454f90dd8c4087c55ed2245be..ade370cc0dacec90c0ee6e0d53b89fc051e9ad4b 100644 (file)
@@ -274,6 +274,13 @@ define Build/combined-image
        @mv $@.new $@
 endef
 
+define Build/linksys-image
+       $(TOPDIR)/scripts/linksys-image.sh \
+               "$(call param_get_default,type,$(1),$(DEVICE_NAME))" \
+               $@ $@.new
+               mv $@.new $@
+endef
+
 define Build/openmesh-image
        $(TOPDIR)/scripts/om-fwupgradecfg-gen.sh \
                "$(call param_get_default,ce_type,$(1),$(DEVICE_NAME))" \
@@ -287,6 +294,20 @@ define Build/openmesh-image
                "$(call param_get_default,rootfs,$(1),$@)" "rootfs"
 endef
 
+define Build/qsdk-ipq-factory-nand
+       $(TOPDIR)/scripts/mkits-qsdk-ipq-image.sh \
+               $@.its ubi $@
+       PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new
+       @mv $@.new $@
+endef
+
+define Build/qsdk-ipq-factory-nor
+       $(TOPDIR)/scripts/mkits-qsdk-ipq-image.sh \
+               $@.its hlos $(IMAGE_KERNEL) rootfs $(IMAGE_ROOTFS)
+       PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new
+       @mv $@.new $@
+endef
+
 define Build/senao-header
        $(STAGING_DIR_HOST)/bin/mksenaofw $(1) -e $@ -o $@.new
        mv $@.new $@
index a2b106d909831411c99a725c959c05f1df912ec9..5268f0bdb7850508dcfa88a39dd54fba4fc28209 100644 (file)
@@ -152,6 +152,32 @@ ifdef CONFIG_TARGET_IMAGES_GZIP
   endef
 endif
 
+
+# Disable noisy checks by default as in upstream
+ifeq ($(strip $(call kernel_patchver_ge,4.6.0)),1)
+  DTC_FLAGS += -Wno-unit_address_vs_reg
+endif
+ifeq ($(strip $(call kernel_patchver_ge,4.11.0)),1)
+  DTC_FLAGS += \
+       -Wno-unit_address_vs_reg \
+       -Wno-simple_bus_reg \
+       -Wno-unit_address_format \
+       -Wno-pci_bridge \
+       -Wno-pci_device_bus_num \
+       -Wno-pci_device_reg
+endif
+ifeq ($(strip $(call kernel_patchver_ge,4.16.0)),1)
+  DTC_FLAGS += \
+       -Wno-avoid_unnecessary_addr_size \
+       -Wno-alias_paths
+endif
+ifeq ($(strip $(call kernel_patchver_ge,4.17.0)),1)
+  DTC_FLAGS += \
+       -Wno-graph_child_address \
+       -Wno-graph_port \
+       -Wno-unique_unit_address
+endif
+
 # $(1) source dts file
 # $(2) target dtb file
 # $(3) extra CPP flags
@@ -164,7 +190,7 @@ define Image/BuildDTB
                -undef -D__DTS__ $(3) \
                -o $(2).tmp $(1)
        $(LINUX_DIR)/scripts/dtc/dtc -O dtb \
-               -i$(dir $(1)) $(4) \
+               -i$(dir $(1)) $(DTC_FLAGS) $(4) \
                -o $(2) $(2).tmp
        $(RM) $(2).tmp
 endef
@@ -203,8 +229,7 @@ define Image/mkfs/squashfs
        $(STAGING_DIR_HOST)/bin/mksquashfs4 $(call mkfs_target_dir,$(1)) $@ \
                -nopad -noappend -root-owned \
                -comp $(SQUASHFSCOMP) $(SQUASHFSOPT) \
-               -processors 1 \
-               $(if $(SOURCE_DATE_EPOCH),-fixed-time $(SOURCE_DATE_EPOCH))
+               -processors 1
 endef
 
 # $(1): board name
@@ -279,8 +304,8 @@ ifdef CONFIG_TARGET_ROOTFS_CPIOGZ
 endif
 
 mkfs_packages = $(filter-out @%,$(PACKAGES_$(call param_get,pkg,pkg=$(target_params))))
-mkfs_packages_add = $(filter-out -%,$(mkfs_packages))
-mkfs_packages_remove = $(patsubst -%,%,$(filter -%,$(mkfs_packages)))
+mkfs_packages_add = $(foreach pkg,$(filter-out -%,$(mkfs_packages)),$(pkg)$(call GetABISuffix,$(pkg)))
+mkfs_packages_remove = $(foreach pkg,$(patsubst -%,%,$(filter -%,$(mkfs_packages))),$(pkg)$(call GetABISuffix,$(pkg)))
 mkfs_cur_target_dir = $(call mkfs_target_dir,pkg=$(target_params))
 
 opkg_target = \
@@ -361,12 +386,11 @@ define Device/Init
 endef
 
 DEFAULT_DEVICE_VARS := \
-  DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_SIZE KERNEL_INITRAMFS_IMAGE \
-  KERNEL_LOADADDR DEVICE_DTS DEVICE_DTS_CONFIG DEVICE_DTS_DIR BOARD_NAME \
-  CMDLINE UBOOTENV_IN_UBI KERNEL_IN_UBI \
-  BLOCKSIZE PAGESIZE SUBPAGESIZE VID_HDR_OFFSET \
-  UBINIZE_OPTS UIMAGE_NAME UBINIZE_PARTS \
-  SUPPORTED_DEVICES IMAGE_METADATA
+  DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_INITRAMFS_IMAGE KERNEL_SIZE \
+  CMDLINE UBOOTENV_IN_UBI KERNEL_IN_UBI BLOCKSIZE PAGESIZE SUBPAGESIZE \
+  VID_HDR_OFFSET UBINIZE_OPTS UBINIZE_PARTS MKUBIFS_OPTS DEVICE_DTS \
+  DEVICE_DTS_CONFIG DEVICE_DTS_DIR BOARD_NAME UIMAGE_NAME SUPPORTED_DEVICES \
+  IMAGE_METADATA KERNEL_ENTRY KERNEL_LOADADDR
 
 define Device/ExportVar
   $(1) : $(2):=$$($(2))
@@ -501,6 +525,7 @@ endef
 
 define Device/Build/artifact
   $$(_TARGET): $(BIN_DIR)/$(IMAGE_PREFIX)-$(1)
+  $(eval $(call Device/Export,$(KDIR)/tmp/$(IMAGE_PREFIX)-$(1)))
   $(KDIR)/tmp/$(IMAGE_PREFIX)-$(1): $$(KDIR_KERNEL_IMAGE)
        @rm -f $$@
        $$(call concat_cmd,$(ARTIFACT/$(1)))
@@ -581,7 +606,7 @@ define BuildImage
                $(call Image/Prepare)
 
     legacy-images-prepare-make: image_prepare
-               $(MAKE) legacy-images-prepare
+               $(MAKE) legacy-images-prepare BIN_DIR="$(BIN_DIR)"
 
   else
     image_prepare:
@@ -605,7 +630,7 @@ define BuildImage
 
   legacy-images-make: install-images
        $(call Image/mkfs/ubifs/legacy)
-       $(MAKE) legacy-images
+       $(MAKE) legacy-images BIN_DIR="$(BIN_DIR)"
 
   install: install-images
        $(call Image/Manifest)
index 8f32219c146624e1e8618136ac6edd98a338ec9b..5d3c8390c65897cf1315faa7056b2473425266dd 100644 (file)
@@ -2,15 +2,15 @@
 
 LINUX_RELEASE?=1
 
-LINUX_VERSION-3.18 = .132
-LINUX_VERSION-4.9 = .150
-LINUX_VERSION-4.14 = .93
-LINUX_VERSION-4.19 = .16
+LINUX_VERSION-3.18 = .136
+LINUX_VERSION-4.9 = .160
+LINUX_VERSION-4.14 = .103
+LINUX_VERSION-4.19 = .25
 
-LINUX_KERNEL_HASH-3.18.132 =
-LINUX_KERNEL_HASH-4.9.150 =
-LINUX_KERNEL_HASH-4.14.93 = 5a61c1b681d74216c0547da1bc3d530152fae8c92af118feff94002c39943114
-LINUX_KERNEL_HASH-4.19.16 = d3bbf6b90e3e47cc2b37f855f6cbd6cceff90a4802ae0d713439ebf91da5eeb6
+LINUX_KERNEL_HASH-3.18.136 =
+LINUX_KERNEL_HASH-4.9.160 =
+LINUX_KERNEL_HASH-4.14.103 = efebd67ba78b7c99eb9a1d2e3ceb30997e9c39f70d030d36899619a9e659ec17
+LINUX_KERNEL_HASH-4.19.25 =
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
index 759f95ade70b6fd7fa81b7e10366a6978e36a5f3..ce7a6223e1c0ea851a7472e7b71026bf548ab586 100644 (file)
@@ -243,7 +243,7 @@ $(call KernelPackage/$(1)/config)
                                exit 1; \
                        fi; \
                  done;
-                 $(call ModuleAutoLoad,$(1),$$(1),$(filter-out 0-,$(word 1,$(AUTOLOAD))-),$(filter-out 0,$(word 2,$(AUTOLOAD))),$(wordlist 3,99,$(AUTOLOAD)))
+                 $(call ModuleAutoLoad,$(1),$$(1),$(filter-out 0-,$(word 1,$(AUTOLOAD))-),$(filter-out 0,$(word 2,$(AUTOLOAD))),$(sort $(wordlist 3,99,$(AUTOLOAD))))
                  $(call KernelPackage/$(1)/install,$$(1))
     endef
   $(if $(CONFIG_PACKAGE_kmod-$(1)),
index 8a42be5bd186ec4ce8c8b925d853d09c05306804..ef98c482fbd3ba764e79e56c44a69e57554eba56 100644 (file)
@@ -24,7 +24,8 @@ $(if $(MENU),Menu: $(MENU)
 )$(if $(DEFAULT),Default: $(DEFAULT)
 )$(if $(findstring $(PREREQ_CHECK),1),Prereq-Check: 1
 )Version: $(VERSION)
-Depends: $(call PKG_FIXUP_DEPENDS,$(1),$(DEPENDS))
+$(if $(ABI_VERSION),ABIVersion: $(ABI_VERSION)
+)Depends: $(call PKG_FIXUP_DEPENDS,$(1),$(DEPENDS))
 Conflicts: $(CONFLICTS)
 Menu-Depends: $(MDEPENDS)
 Provides: $(PROVIDES)
index c374faa6475db23b8079752e704c4da3b02529a5..9ca4879bfab43e27ea4c0663b0655b1be61766ec 100644 (file)
@@ -13,6 +13,9 @@ endif
 IPKG_BUILD:= \
   $(SCRIPT_DIR)/ipkg-build -c -o 0 -g 0
 
+IPKG_REMOVE:= \
+  $(SCRIPT_DIR)/ipkg-remove
+
 IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/opkg
 
 # 1: package name
@@ -90,8 +93,9 @@ _endef=endef
 
 ifeq ($(DUMP),)
   define BuildTarget/ipkg
+    ABIV_$(1):=$(call GetABISuffix,$(1))
     PDIR_$(1):=$(call FeedPackageDir,$(1))
-    IPKG_$(1):=$$(PDIR_$(1))/$(1)_$(VERSION)_$(PKGARCH).ipk
+    IPKG_$(1):=$$(PDIR_$(1))/$(1)$$(ABIV_$(1))_$(VERSION)_$(PKGARCH).ipk
     IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg-$(PKGARCH)/$(1)
     KEEP_$(1):=$(strip $(call Package/$(1)/conffiles))
 
@@ -148,19 +152,20 @@ ifeq ($(DUMP),)
        $(call locked,$(CP) $(PKG_BUILD_DIR)/.pkgdir/$(1)/. $(STAGING_DIR_ROOT)/,root-copy)
        touch $$@
 
-    Package/$(1)/DEPENDS := $$(call mergelist,$$(filter-out @%,$$(IDEPEND_$(1))))
+    Package/$(1)/DEPENDS := $$(call mergelist,$$(foreach dep,$$(filter-out @%,$$(IDEPEND_$(1))),$$(dep)$$(call GetABISuffix,$$(dep))))
     ifneq ($$(EXTRA_DEPENDS),)
       Package/$(1)/DEPENDS := $$(EXTRA_DEPENDS)$$(if $$(Package/$(1)/DEPENDS),$$(comma) $$(Package/$(1)/DEPENDS))
     endif
 
 $(_define) Package/$(1)/CONTROL
-Package: $(1)
+Package: $(1)$$(ABIV_$(1))
 Version: $(VERSION)
 $$(call addfield,Depends,$$(Package/$(1)/DEPENDS)
 )$$(call addfield,Conflicts,$$(call mergelist,$(CONFLICTS))
-)$$(call addfield,Provides,$$(call mergelist,$(PROVIDES))
+)$$(call addfield,Provides,$$(call mergelist,$$(filter-out $(1)$$(ABIV_$(1)),$(PROVIDES)$$(if $$(ABIV_$(1)), $(1) $(foreach provide,$(PROVIDES),$(provide)$$(call GetABISuffix,$(provide))))))
 )$$(call addfield,Alternatives,$$(call mergelist,$(ALTERNATIVES))
 )$$(call addfield,Source,$(SOURCE)
+)$$(call addfield,SourceName,$(1)
 )$$(call addfield,License,$(LICENSE)
 )$$(call addfield,LicenseFiles,$(LICENSE_FILES)
 )$$(call addfield,Section,$(SECTION)
@@ -176,7 +181,7 @@ $(_endef)
     $$(IPKG_$(1)) : export DESCRIPTION=$$(Package/$(1)/description)
     $$(IPKG_$(1)) : export PATH=$$(TARGET_PATH_PKG)
     $(PKG_INFO_DIR)/$(1).provides $$(IPKG_$(1)): $(STAMP_BUILT) $(INCLUDE_DIR)/package-ipkg.mk
-       @rm -rf $$(IDIR_$(1)) $$(call opkg_package_files,$(1))
+       @rm -rf $$(IDIR_$(1)) $$(if $$(call opkg_package_files,$(1)*),; $$(IPKG_REMOVE) $(1) $$(call opkg_package_files,$(1)*))
        mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/CONTROL $(PKG_INFO_DIR)
        $(call Package/$(1)/install,$$(IDIR_$(1)))
        $(if $(Package/$(1)/install-overlay),mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/rootfs-overlay)
@@ -194,6 +199,15 @@ $(_endef)
        $(CheckDependencies)
 
        $(RSTRIP) $$(IDIR_$(1))
+
+    ifneq ($$(CONFIG_IPK_FILES_CHECKSUMS),)
+       (cd $$(IDIR_$(1)); \
+               ( \
+                       find . -type f \! -path ./CONTROL/\* -exec sha256sum \{\} \; 2> /dev/null | \
+                       sed 's|\([[:blank:]]\)\./|\1/|' > $$(IDIR_$(1))/CONTROL/files-sha256 \
+               ) || true \
+       )
+    endif
        (cd $$(IDIR_$(1))/CONTROL; \
                ( \
                        echo "$$$$CONTROL"; \
@@ -235,7 +249,7 @@ $(_endef)
        @[ -f $$(IPKG_$(1)) ]
 
     $(1)-clean:
-       $$(if $$(call opkg_package_files,$(1)),rm -f $$(call opkg_package_files,$(1)))
+       $$(if $$(call opkg_package_files,$(1)*),$$(IPKG_REMOVE) $(1) $$(call opkg_package_files,$(1)*))
 
     clean: $(1)-clean
 
index a03db11119c454e0967c333bca59359c559754a3..569ad647d6db2392026f8300b951047b4f862220 100644 (file)
@@ -81,9 +81,10 @@ STAGING_FILES_LIST:=$(PKG_DIR_NAME)$(if $(BUILD_VARIANT),.$(BUILD_VARIANT),).lis
 define CleanStaging
        rm -f $(STAMP_INSTALLED)
        @-(\
-               cd "$(STAGING_DIR)"; \
-               if [ -f packages/$(STAGING_FILES_LIST) ]; then \
-                       cat packages/$(STAGING_FILES_LIST) | xargs -r rm -f 2>/dev/null; \
+               if [ -f $(STAGING_DIR)/packages/$(STAGING_FILES_LIST) ]; then \
+                       $(SCRIPT_DIR)/clean-package.sh \
+                               "$(STAGING_DIR)/packages/$(STAGING_FILES_LIST)" \
+                               "$(STAGING_DIR)"; \
                fi; \
        )
 endef
index 79a754d50b5b6025bc9541c61f8790aad2b8c6f8..21a343dbb51c49af8a4c41b46de99941b3e54b87 100644 (file)
@@ -24,7 +24,7 @@ $(eval $(call TestHostCommand,case-sensitive-fs, \
 
 $(eval $(call TestHostCommand,proper-umask, \
        Please build with umask 022 - other values produce broken packages, \
-       umask | grep -xE 00[012][012]))
+       umask | grep -xE 0?0[012][012]))
 
 $(eval $(call SetupHostCommand,gcc, \
        Please install the GNU C Compiler (gcc) 4.8 or later, \
index 61dcc7964cf4315727264d21d00bf186345dfb79..56f674a2f39e490b4574b85266b0e6f350a0a284 100644 (file)
@@ -94,17 +94,17 @@ endef
 
 kernel_files=$(foreach fdir,$(GENERIC_FILES_DIR) $(FILES_DIR),$(fdir)/.)
 define Kernel/Patch/Default
-       $(if $(QUILT),rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches)
+       $(if $(QUILT),rm -rf $(LINUX_DIR)/patches; mkdir -p $(LINUX_DIR)/patches)
        $(if $(kernel_files),$(CP) $(kernel_files) $(LINUX_DIR)/)
        find $(LINUX_DIR)/ -name \*.rej -or -name \*.orig | $(XARGS) rm -f
        if [ -d $(GENERIC_PLATFORM_DIR)/patches$(if $(wildcard $(GENERIC_PLATFORM_DIR)/patches-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER)) ]; then \
                echo "generic patches directory is present. please move your patches to the pending directory" ; \
                exit 1; \
        fi
-       $(call PatchDir,$(PKG_BUILD_DIR),$(GENERIC_BACKPORT_DIR),generic-backport/)
-       $(call PatchDir,$(PKG_BUILD_DIR),$(GENERIC_PATCH_DIR),generic/)
-       $(call PatchDir,$(PKG_BUILD_DIR),$(GENERIC_HACK_DIR),generic-hack/)
-       $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR),platform/)
+       $(call PatchDir,$(LINUX_DIR),$(GENERIC_BACKPORT_DIR),generic-backport/)
+       $(call PatchDir,$(LINUX_DIR),$(GENERIC_PATCH_DIR),generic/)
+       $(call PatchDir,$(LINUX_DIR),$(GENERIC_HACK_DIR),generic-hack/)
+       $(call PatchDir,$(LINUX_DIR),$(PATCH_DIR),platform/)
 endef
 
 define Quilt/RefreshDir
index e6b21b27b009ce14f8683980add8d2be3bea9340..d9cd4f7e8c30845a3de2725275e1188c694ed3a5 100644 (file)
@@ -19,9 +19,15 @@ else
 endif
 
 ifeq ($(IS_TTY),1)
-  define progress
+  ifneq ($(strip $(NO_COLOR)),1)
+    define progress
        printf "\033[M\r$(1)" >&2;
-  endef
+    endef
+  else
+    define progress
+       printf "\r$(1)" >&2;
+    endef
+  endif
 else
   define progress
        :;
index 1d6888fde3040d51e477c1e45a927184c0459eb1..10f57d64983db24b0e6ac87440293cafed15d359 100644 (file)
@@ -17,7 +17,7 @@ DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fs
 # For nas targets
 DEFAULT_PACKAGES.nas:=block-mount fdisk lsblk mdadm
 # For router targets
-DEFAULT_PACKAGES.router:=dnsmasq iptables ip6tables ppp ppp-mod-pppoe firewall odhcpd-ipv6only odhcp6c kmod-ipt-offload
+DEFAULT_PACKAGES.router:=dnsmasq iptables ip6tables ppp ppp-mod-pppoa ppp-mod-pppoe firewall odhcpd-ipv6only odhcp6c kmod-ipt-offload
 DEFAULT_PACKAGES.bootloader:=
 
 ifneq ($(DUMP),)
index 883d74d25c8285b1693ef2047d953f7b5f413e6e..35d8c9380ec190e45b48319b9fe75d15ca8c33f7 100644 (file)
@@ -12,6 +12,7 @@ HOST_BUILD_PREFIX:=$(TOOLCHAIN_DIR)
 BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN)
 
 include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/hardening.mk
 
 HOST_STAMP_PREPARED=$(HOST_BUILD_DIR)/.prepared
 
index 548d57d4277aa4e77903b0de899107dba0b904f5..05413126e3faa774d99c5d20279664f696d03306 100644 (file)
@@ -88,9 +88,9 @@ prepare-tmpinfo: FORCE
                f=tmp/.$${type}info; t=tmp/.config-$${type}.in; \
                [ "$$t" -nt "$$f" ] || ./scripts/$${type}-metadata.pl $(_ignore) config "$$f" > "$$t" || { rm -f "$$t"; echo "Failed to build $$t"; false; break; }; \
        done
-       [ tmp/.config-feeds.in -nt tmp/.packagesubdirs ] || ./scripts/feeds feed_config > tmp/.config-feeds.in
+       [ tmp/.config-feeds.in -nt tmp/.packageauxvars ] || ./scripts/feeds feed_config > tmp/.config-feeds.in
        ./scripts/package-metadata.pl mk tmp/.packageinfo > tmp/.packagedeps || { rm -f tmp/.packagedeps; false; }
-       ./scripts/package-metadata.pl subdirs tmp/.packageinfo > tmp/.packagesubdirs || { rm -f tmp/.packagesubdirs; false; }
+       ./scripts/package-metadata.pl pkgaux tmp/.packageinfo > tmp/.packageauxvars || { rm -f tmp/.packageauxvars; false; }
        touch $(TOPDIR)/tmp/.build
 
 .config: ./scripts/config/conf $(if $(CONFIG_HAVE_DOT_CONFIG),,prepare-tmpinfo)
index babb76497af033e29e78921e11f558e3dadfaf7e..26e1685b8e651197c942e3b03e9cec3421ed9f08 100644 (file)
@@ -42,7 +42,7 @@ TARGET_DEP = TARGET_$(BUILD_TARGET)$(if $(BUILD_SUBTARGET),_$(BUILD_SUBTARGET))
 
 UBOOT_MAKE_FLAGS = \
        HOSTCC="$(HOSTCC)" \
-       HOSTCFLAGS="$(HOST_CFLAGS) $(HOST_CPPFLAGS)" \
+       HOSTCFLAGS="$(HOST_CFLAGS) $(HOST_CPPFLAGS) -std=gnu11" \
        HOSTLDFLAGS="$(HOST_LDFLAGS)"
 
 define Build/U-Boot/Target
diff --git a/include/upstream.mk b/include/upstream.mk
deleted file mode 100644 (file)
index 51e8cd8..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (c) libreCMC Project <info@librecmc.org>
-# Copyright (c) Robert Call <bob@bobcall.me>
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-
-EXCLUDE_DIRS:=target/linux/ath79/* \
-       target/linux/ar71xx/* \
-       target/linux/x86/* \
-       target/linux/xburst/* \
-       target/linux/Makefile \
-
-
-find ./ $(foreach exclude,$(EXCLUDE_DIRS),! --path"$(exclude)")
-
-
-clean_src:
-       
index c8364b3496a539be449406f6eba5b3e5ead1f7e1..77d8d32dbe2f2175718a6c8ad74ea0b15d7b79ce 100644 (file)
@@ -42,16 +42,16 @@ VERSION_MANUFACTURER:=$(call qstrip,$(CONFIG_VERSION_MANUFACTURER))
 VERSION_MANUFACTURER:=$(if $(VERSION_MANUFACTURER),$(VERSION_MANUFACTURER),libreCMC)
 
 VERSION_MANUFACTURER_URL:=$(call qstrip,$(CONFIG_VERSION_MANUFACTURER_URL))
-VERSION_MANUFACTURER_URL:=$(if $(VERSION_MANUFACTURER_URL),$(VERSION_MANUFACTURER_URL),https://librecmc.org)
+VERSION_MANUFACTURER_URL:=$(if $(VERSION_MANUFACTURER_URL),$(VERSION_MANUFACTURER_URL),https://librecmc.org/)
 
 VERSION_BUG_URL:=$(call qstrip,$(CONFIG_VERSION_BUG_URL))
-VERSION_BUG_URL:=$(if $(VERSION_BUG_URL),$(VERSION_BUG_URL),https://gogs.librecmc.org/librecmc/librecmc/issues)
+VERSION_BUG_URL:=$(if $(VERSION_BUG_URL),$(VERSION_BUG_URL),https://gogs.librecmc.org/libreCMC/libreCMC/issues)
 
 VERSION_HOME_URL:=$(call qstrip,$(CONFIG_VERSION_HOME_URL))
-VERSION_HOME_URL:=$(if $(VERSION_HOME_URL),$(VERSION_HOME_URL),https://librecmc.org)
+VERSION_HOME_URL:=$(if $(VERSION_HOME_URL),$(VERSION_HOME_URL),https://librecmc.org/)
 
 VERSION_SUPPORT_URL:=$(call qstrip,$(CONFIG_VERSION_SUPPORT_URL))
-VERSION_SUPPORT_URL:=$(if $(VERSION_SUPPORT_URL),$(VERSION_SUPPORT_URL))
+VERSION_SUPPORT_URL:=$(if $(VERSION_SUPPORT_URL),$(VERSION_SUPPORT_URL),http://forum.lede-project.org/)
 
 VERSION_PRODUCT:=$(call qstrip,$(CONFIG_VERSION_PRODUCT))
 VERSION_PRODUCT:=$(if $(VERSION_PRODUCT),$(VERSION_PRODUCT),Generic)
index 610d09d6fed6a61ed7f71bf8bc25daa4944cee2b..abbf5f91f2e1177bcc5e189558a825bc0922abe5 100644 (file)
@@ -66,7 +66,7 @@ $(curdir)/install: $(TMP_DIR)/.build $(curdir)/merge $(if $(CONFIG_TARGET_PER_DE
        rm -rf $(TARGET_DIR) $(TARGET_DIR_ORIG)
        mkdir -p $(TARGET_DIR)/tmp
        $(call opkg,$(TARGET_DIR)) install \
-               $(call opkg_package_files,$(shell cat $(PACKAGE_INSTALL_FILES) 2>/dev/null))
+               $(call opkg_package_files,$(foreach pkg,$(shell cat $(PACKAGE_INSTALL_FILES) 2>/dev/null),$(pkg)$(call GetABISuffix,$(pkg))))
        @for file in $(PACKAGE_INSTALL_FILES); do \
                [ -s $$file.flags ] || continue; \
                for flag in `cat $$file.flags`; do \
@@ -84,7 +84,7 @@ $(curdir)/index: FORCE
                mkdir -p $$d; \
                cd $$d || continue; \
                $(SCRIPT_DIR)/ipkg-make-index.sh . 2>&1 > Packages.manifest; \
-               grep -vE '^(Maintainer|LicenseFiles|Source|Require)' Packages.manifest > Packages && \
+               grep -vE '^(Maintainer|LicenseFiles|Source|SourceName|Require)' Packages.manifest > Packages && \
                        gzip -9nc Packages > Packages.gz; \
        ); done
 ifdef CONFIG_SIGNED_PACKAGES
index ab6a9719c2bbb6b8bbb962afe2dee8db6aa35f50..01417b5cf6655b903c47ed50ee65eaf145a89f17 100644 (file)
@@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk
 include $(INCLUDE_DIR)/feeds.mk
 
 PKG_NAME:=base-files
-PKG_RELEASE:=196
+PKG_RELEASE:=197
 PKG_FLAGS:=nonshared
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
@@ -195,6 +195,8 @@ define Package/base-files/install
                mkdir -p $(1)/etc/opkg; \
                $(call FeedSourcesAppend,$(1)/etc/opkg/distfeeds.conf); \
                $(VERSION_SED_SCRIPT) $(1)/etc/opkg/distfeeds.conf)
+       $(if $(CONFIG_IPK_FILES_CHECKSUMS), \
+               rm -f $(1)/sbin/pkg_check,)
 endef
 
 ifneq ($(DUMP),1)
index f9fa68e4726a8f4d64229abc069dc129e511c4bd..707f791bb70efcd3a7ac25f435423c75dedf5de4 100755 (executable)
@@ -244,10 +244,10 @@ generate_static_system() {
                set system.ntp='timeserver'
                set system.ntp.enabled='1'
                set system.ntp.enable_server='0'
-               add_list system.ntp.server='0.openwrt.pool.ntp.org'
-               add_list system.ntp.server='1.openwrt.pool.ntp.org'
-               add_list system.ntp.server='2.openwrt.pool.ntp.org'
-               add_list system.ntp.server='3.openwrt.pool.ntp.org'
+               add_list system.ntp.server='0.librecmc.pool.ntp.org'
+               add_list system.ntp.server='1.librecmc.pool.ntp.org'
+               add_list system.ntp.server='2.librecmc.pool.ntp.org'
+               add_list system.ntp.server='3.librecmc.pool.ntp.org'
        EOF
 
        if json_is_a system object; then
index 0d243a8a99ee9565bd148ef60d0aae991624bf60..94541b2cb929ce7c8f013c258770782f09aef876 100755 (executable)
@@ -6,7 +6,7 @@ USE_PROCD=1
 
 validate_system_section()
 {
-       uci_validate_section system system "${1}" \
+       uci_load_validate system system "$1" "$2" \
                'hostname:string:libreCMC' \
                'conloglevel:uinteger' \
                'buffersize:uinteger' \
@@ -15,11 +15,7 @@ validate_system_section()
 }
 
 system_config() {
-       local cfg="$1"
-
-       local hostname conloglevel buffersize timezone zonename
-
-       validate_system_section "${1}" || {
+       [ "$2" = 0 ] || {
                echo "validation failed"
                return 1
        }
@@ -36,7 +32,7 @@ system_config() {
 
 reload_service() {
        config_load system
-       config_foreach system_config system
+       config_foreach validate_system_section system system_config
 }
 
 service_triggers()
index 46d079b36bf48feb0ae5d4805eab9300609a94cf..bc8c57969514e62f60b78ac13e58bc7f40012111 100644 (file)
@@ -8,6 +8,8 @@ fs.suid_dumpable=2
 fs.protected_hardlinks=1
 fs.protected_symlinks=1
 
+net.core.bpf_jit_enable=1
+
 net.ipv4.conf.default.arp_ignore=1
 net.ipv4.conf.all.arp_ignore=1
 net.ipv4.ip_forward=1
index 50a7b408698cbf5141d65f1f4eaf851c16d84876..edce75e8ff877aa28adea5b58463a95b19f8f7e2 100755 (executable)
@@ -92,7 +92,7 @@ config_unset() {
 # config_get <section> <option>
 config_get() {
        case "$3" in
-               "") eval echo "\${CONFIG_${1}_${2}:-\${4}}";;
+               "") eval echo "\"\${CONFIG_${1}_${2}:-\${4}}\"";;
                *)  eval export ${NO_EXPORT:+-n} -- "${1}=\${CONFIG_${2}_${3}:-\${4}}";;
        esac
 }
index 8ee07494a38af524c017ec1ad9ae2b7a9b773f74..b3a29fb32e31901c9d657d9751a8502553cf554a 100644 (file)
@@ -223,9 +223,9 @@ indicate_upgrade() {
 default_do_upgrade() {
        sync
        if [ "$SAVE_CONFIG" -eq 1 ]; then
-               get_image "$1" "$2" | mtd $MTD_CONFIG_ARGS -j "$CONF_TAR" write - "${PART_NAME:-image}"
+               get_image "$1" "$2" | mtd $MTD_ARGS $MTD_CONFIG_ARGS -j "$CONF_TAR" write - "${PART_NAME:-image}"
        else
-               get_image "$1" "$2" | mtd write - "${PART_NAME:-image}"
+               get_image "$1" "$2" | mtd $MTD_ARGS write - "${PART_NAME:-image}"
        fi
        [ $? -ne 0 ] && exit 1
 }
index 3f28fccd904dc0ae1019ad31ad11b5a1c220b905..a0b3fb0a04826282855abc8644d83a79d00374b7 100644 (file)
@@ -9,7 +9,7 @@ fwtool_check_signature() {
                fi
        }
 
-       if ! fwtool -q -t -s /tmp/sysupgrade.ucert "$1"; then
+       if ! fwtool -q -s /tmp/sysupgrade.ucert "$1"; then
                echo "Image signature not found"
                [ "$REQUIRE_IMAGE_SIGNATURE" = 1 -a "$FORCE" != 1 ] && {
                        echo "Use sysupgrade -F to override this check when downgrading or flashing to vendor firmware"
@@ -18,7 +18,8 @@ fwtool_check_signature() {
                return 0
        fi
 
-       ucert -V -m "$1" -c "/tmp/sysupgrade.ucert" -P /etc/opkg/keys
+       fwtool -q -T -s /dev/null "$1" | \
+               ucert -V -m - -c "/tmp/sysupgrade.ucert" -P /etc/opkg/keys
 
        return $?
 }
diff --git a/package/base-files/files/sbin/pkg_check b/package/base-files/files/sbin/pkg_check
new file mode 100755 (executable)
index 0000000..9968c9b
--- /dev/null
@@ -0,0 +1,130 @@
+#!/bin/sh
+#
+# Package checksums checking script
+# (C) 2018 CZ.NIC, z.s.p.o.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+ERRFATAL="no"
+QUIET="yes"
+MISSING=""
+SUMMARY=""
+NL="
+"
+
+# Arguments parsing
+while expr "x$1" : "x-" > /dev/null; do
+       if [ "x$1" = "x-s" ]; then
+               ERRFATAL="yes"
+               shift
+       elif [ "x$1" = "x-v" ]; then
+               QUIET=" no"
+               shift
+       else
+               echo "Usage: $(basename $0) [-s] [-v] [pkg1 pkg2 ...]"
+               echo
+               echo "   -s   Stop on first change"
+               echo "   -v   Verbose"
+               if [ "x$1" = "x-h" ]; then
+                       exit 0
+               else
+                       echo
+                       echo "ERROR: Unknown option '$1'"
+                       exit 1
+               fi
+       fi
+done
+
+# Check all packages by default
+if [ -z "$1" ]; then
+       set $(cd /usr/lib/opkg/info/; for i in *.files-sha256sum; do basename $i .files-sha256sum; done)
+fi
+
+# Iterate over packages
+while [ "$1" ]; do
+       if [ \! -f "/usr/lib/opkg/info/$1.files-sha256sum" ]; then
+               if [ "$ERRFATAL" = no ]; then
+                       echo " * No checksums for $1 - skipping"
+                       echo
+               else
+                       echo " * No checksums for $1 - exiting"
+                       exit 1
+               fi
+               if [ -z "$MISSING" ]; then
+                       MISSING="$1"
+               else
+                       MISSING="$MISSING, $1"
+               fi
+               shift
+               continue
+       fi
+       [ $QUIET = yes ] || echo " * Checking package $1:"
+       ERR=""
+       CHECK="`sha256sum -c /usr/lib/opkg/info/$1.files-sha256sum 2> /dev/null`"
+
+       # Are the changed files config files?
+       if [ $? -ne 0 ] && [ "`cat "/usr/lib/opkg/info/$1.files-sha256sum"`" ]; then
+               NEWCHECK="`echo "$CHECK" | grep '^.*: OK$'`"
+               for i in `echo "$CHECK" | sed -n 's|^\(.*\): FAILED$|\1|p'`; do
+                       if [ "`grep "^$i\$" "/usr/lib/opkg/info/$1.conffiles" 2> /dev/null`" ] || \
+                          [ "`echo "$i" | grep "^/etc/uci-defaults/"`" ]; then
+                               NEWCHECK="${NEWCHECK}${NL}${i}: CONFIGURED"
+                       else
+                               NEWCHECK="${NEWCHECK}${NL}${i}: FAILED"
+                               ERR="y"
+                       fi
+               done
+               CHECK="$NEWCHECK"
+       fi
+
+       # Do we have changed files or not?
+       if [ -z "$ERR" ]; then
+               [ $QUIET = yes ] || [ -z "`cat "/usr/lib/opkg/info/$1.files-sha256sum"`" ] || echo "$CHECK" | sed 's|^|   - |'
+               [ $QUIET = yes ] || echo " * Package $1 is ok"
+               [ $QUIET = yes ] || echo
+       else
+               if [ $QUIET = yes ]; then
+                       echo " * Changes found in package $1:"
+                       echo "$CHECK" | sed -n 's|^\(.*:[[:blank:]]*FAILED\)$|   - \1|p'
+               else
+                       echo "$CHECK" | sed 's|^|   - |'
+                       echo " * Changes found in package $1!"
+               fi
+               if [ "$ERRFATAL" = yes ]; then
+                       echo
+                       echo "Exiting on first change found!"
+                       exit 1
+               fi
+               for i in `echo "$CHECK" | sed -n 's|^\(.*\): FAILED$|\1|p'`; do
+                       SUMMARY="${SUMMARY}${NL} - $1: $i"
+               done
+               echo
+       fi
+       shift
+done
+
+# If there are changed files, report them
+if [ "$SUMMARY" ]; then
+       echo "Some packages contain changed files!"
+       echo "Maybe something worth looking into?"
+       echo "Here is the list of packages and changed files:"
+       echo "$SUMMARY"
+fi
+if [ "$MISSING" ]; then
+       echo "Following packages are missing checksums: $MISSING"
+fi
+if [ "$MISSING" ] || [ "$SUMMARY" ]; then
+       exit 1
+fi
index 58b613b5a0854f25ca824a1b439fd505e2dabdca..54d7a64b48524bf7918044394ee49e8da08e119b 100755 (executable)
@@ -4,6 +4,7 @@
 . /lib/functions/system.sh
 
 # initialize defaults
+export MTD_ARGS=""
 export MTD_CONFIG_ARGS=""
 export INTERACTIVE=0
 export VERBOSE=1
diff --git a/package/boot/fconfig/Makefile b/package/boot/fconfig/Makefile
deleted file mode 100644 (file)
index d82fa8d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# Copyright (C) 2006-2008 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=fconfig
-PKG_VERSION:=20080329
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://downloads.openwrt.org/sources
-PKG_HASH:=4ff0e8f07e35e46b705c0dbe9d9544ede01ea092a69e3f7db03e55a3f2bb8eb7
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/fconfig
-  SECTION:=utils
-  CATEGORY:=Utilities
-  SUBMENU:=Boot Loaders
-  TITLE:=RedBoot configuration editor
-endef
-
-define Package/fconfig/description
-       displays and (if writable) also edits the RedBoot configuration.
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-       $(call Build/Compile/Default)
-endef
-
-define Package/fconfig/install
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/fconfig $(1)/usr/sbin/
-endef
-
-$(eval $(call BuildPackage,fconfig))
index e4c19cd00ffa793f23096adfd4f5e93f02fc96bd..d6af65128e5897b9c3531109bf11b2aa91ec6a16 100644 (file)
@@ -33,7 +33,7 @@ define Package/grub2
   SECTION:=boot
   TITLE:=GRand Unified Bootloader
   URL:=http://www.gnu.org/software/grub/
-  DEPENDS:=@TARGET_x86||TARGET_x86_64
+  DEPENDS:=@TARGET_x86
 endef
 
 define Package/grub2-editenv
@@ -42,7 +42,7 @@ define Package/grub2-editenv
   SUBMENU:=Boot Loaders
   TITLE:=Grub2 Environment editor
   URL:=http://www.gnu.org/software/grub/
-  DEPENDS:=@TARGET_x86||TARGET_x86_64
+  DEPENDS:=@TARGET_x86
 endef
 
 define Package/grub2-editenv/description
diff --git a/package/boot/uboot-ar71xx/Makefile b/package/boot/uboot-ar71xx/Makefile
deleted file mode 100644 (file)
index e6e6cbb..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# Copyright (C) 2010 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_VERSION:=2010.03
-PKG_RELEASE:=1
-
-PKG_HASH:=902d1b2c15787df55186fae4033685fb0c5a5a12755a08383e97c4a3e255925b
-
-include $(INCLUDE_DIR)/u-boot.mk
-include $(INCLUDE_DIR)/package.mk
-
-define U-Boot/Default
-  BUILD_TARGET:=ar71xx
-  BUILD_SUBTARGET:=generic
-endef
-
-define U-Boot/nbg460n_550n_550nh
-  TITLE:=NBG460N/550N/550NH routers
-  BUILD_DEVICES:=NBG_460N_550N_550NH
-  HIDDEN:=y
-endef
-
-UBOOT_MAKE_FLAGS :=
-
-UBOOT_TARGETS:=nbg460n_550n_550nh
-
-$(eval $(call BuildPackage/U-Boot))
diff --git a/package/boot/uboot-ar71xx/patches/0001-upstream-Reproducible-U-Boot-build-support-using-SOURCE_DATE_.patch b/package/boot/uboot-ar71xx/patches/0001-upstream-Reproducible-U-Boot-build-support-using-SOURCE_DATE_.patch
deleted file mode 100644 (file)
index 331c1c3..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-From f3f431a712729a1af94d01bd1bfde17a252ff02c Mon Sep 17 00:00:00 2001
-From: Paul Kocialkowski <contact@paulk.fr>
-Date: Sun, 26 Jul 2015 18:48:15 +0200
-Subject: [PATCH] Reproducible U-Boot build support, using SOURCE_DATE_EPOCH
-
-In order to achieve reproducible builds in U-Boot, timestamps that are defined
-at build-time have to be somewhat eliminated. The SOURCE_DATE_EPOCH environment
-variable allows setting a fixed value for those timestamps.
-
-Simply by setting SOURCE_DATE_EPOCH to a fixed value, a number of targets can be
-built reproducibly. This is the case for e.g. sunxi devices.
-
-However, some other devices might need some more tweaks, especially regarding
-the image generation tools.
-
-Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
----
- Makefile              |  7 ++++---
- README                | 12 ++++++++++++
- tools/default_image.c | 21 ++++++++++++++++++++-
- 3 files changed, 36 insertions(+), 4 deletions(-)
-
---- a/README
-+++ b/README
-@@ -2785,6 +2785,18 @@ Low Level (hardware related) configurati
-               that is executed before the actual U-Boot. E.g. when
-               compiling a NAND SPL.
-+Reproducible builds
-+-------------------
-+
-+In order to achieve reproducible builds, timestamps used in the U-Boot build
-+process have to be set to a fixed value.
-+
-+This is done using the SOURCE_DATE_EPOCH environment variable.
-+SOURCE_DATE_EPOCH is to be set on the build host's shell, not as a configuration
-+option for U-Boot or an environment variable in U-Boot.
-+
-+SOURCE_DATE_EPOCH should be set to a number of seconds since the epoch, in UTC.
-+
- Building the Software:
- ======================
---- a/tools/default_image.c
-+++ b/tools/default_image.c
-@@ -101,6 +101,9 @@ static void image_set_header (void *ptr,
-                               struct mkimage_params *params)
- {
-       uint32_t checksum;
-+      char *source_date_epoch;
-+      struct tm *time_universal;
-+      time_t time;
-       image_header_t * hdr = (image_header_t *)ptr;
-@@ -109,9 +112,25 @@ static void image_set_header (void *ptr,
-                               sizeof(image_header_t)),
-                       sbuf->st_size - sizeof(image_header_t));
-+source_date_epoch = getenv("SOURCE_DATE_EPOCH");
-+      if (source_date_epoch != NULL) {
-+              time = (time_t) strtol(source_date_epoch, NULL, 10);
-+
-+              time_universal = gmtime(&time);
-+              if (time_universal == NULL) {
-+                      fprintf(stderr, "%s: SOURCE_DATE_EPOCH is not valid\n",
-+                              __func__);
-+                      time = 0;
-+              } else {
-+                      time = mktime(time_universal);
-+              }
-+      } else {
-+              time = sbuf->st_mtime;
-+      }
-+
-       /* Build new header */
-       image_set_magic (hdr, IH_MAGIC);
--      image_set_time (hdr, sbuf->st_mtime);
-+      image_set_time(hdr, time);
-       image_set_size (hdr, sbuf->st_size - sizeof(image_header_t));
-       image_set_load (hdr, params->addr);
-       image_set_ep (hdr, params->ep);
diff --git a/package/boot/uboot-ar71xx/patches/0002-upstream-Makefile-Reproducible-U-Boot-build-support.patch b/package/boot/uboot-ar71xx/patches/0002-upstream-Makefile-Reproducible-U-Boot-build-support.patch
deleted file mode 100644 (file)
index 664a4ad..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -389,8 +389,26 @@ $(VERSION_FILE):
-               @cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@
- $(TIMESTAMP_FILE):
--              @date +'#define U_BOOT_DATE "%b %d %C%y"' > $@
--              @date +'#define U_BOOT_TIME "%T"' >> $@
-+      (if test -n "$${SOURCE_DATE_EPOCH}"; then \
-+                SOURCE_DATE="@$${SOURCE_DATE_EPOCH}"; \
-+                DATE=""; \
-+                for date in gdate date.gnu date; do \
-+                        $${date} -u -d "$${SOURCE_DATE}" >/dev/null 2>&1 && DATE="$${date}"; \
-+                done; \
-+                if test -n "$${DATE}"; then \
-+                        LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DATE "%b %d %C%y"' > $@; \
-+                        LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TIME "%T"' >> $@; \
-+                        LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TZ "%z"' >> $@; \
-+                        LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DMI_DATE "%m/%d/%Y"' >> $@; \
-+                else \
-+                        return 42; \
-+                fi; \
-+        else \
-+                LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \
-+                LC_ALL=C date +'#define U_BOOT_TIME "%T"'; \
-+                LC_ALL=C date +'#define U_BOOT_TZ "%z"'; \
-+                LC_ALL=C date +'#define U_BOOT_DMI_DATE "%m/%d/%Y"'; \
-+        fi)
- gdbtools:
-               $(MAKE) -C tools/gdb all || exit 1
diff --git a/package/boot/uboot-ar71xx/patches/001-ar71xx.patch b/package/boot/uboot-ar71xx/patches/001-ar71xx.patch
deleted file mode 100644 (file)
index e862df2..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/cpu/mips/Makefile
-+++ b/cpu/mips/Makefile
-@@ -33,6 +33,7 @@ SOBJS-$(CONFIG_INCA_IP)      += incaip_wdt.o
- COBJS-$(CONFIG_INCA_IP)       += asc_serial.o incaip_clock.o
- COBJS-$(CONFIG_PURPLE)        += asc_serial.o
- COBJS-$(CONFIG_SOC_AU1X00) += au1x00_eth.o au1x00_serial.o au1x00_usb_ohci.o
-+COBJS-$(CONFIG_AR71XX)        += ar71xx_serial.o
- SRCS  := $(START:.o=.S) $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
- OBJS  := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
---- a/Makefile
-+++ b/Makefile
-@@ -3474,6 +3474,13 @@ qemu_mips_config        : unconfig
-       @$(MKCONFIG) -a qemu-mips mips mips qemu-mips
- #########################################################################
-+## MIPS32 AR71XX (24K)
-+#########################################################################
-+
-+nbg460n_550n_550nh_config :   unconfig
-+      @$(MKCONFIG) -a nbg460n mips mips nbg460n zyxel
-+
-+#########################################################################
- ## MIPS64 5Kc
- #########################################################################
diff --git a/package/boot/uboot-ar71xx/patches/002-ar71xx-spi.patch b/package/boot/uboot-ar71xx/patches/002-ar71xx-spi.patch
deleted file mode 100644 (file)
index 2bb1ba2..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur u-boot-2010.03/drivers/spi/Makefile u-boot-nbg/drivers/spi/Makefile
---- u-boot-2010.03/drivers/spi/Makefile        2010-03-31 23:54:39.000000000 +0200
-+++ u-boot-nbg/drivers/spi/Makefile    2010-04-15 19:31:27.000000000 +0200
-@@ -25,6 +25,7 @@
- LIB   := $(obj)libspi.a
-+COBJS-$(CONFIG_AR71XX_SPI) += ar71xx_spi.o
- COBJS-$(CONFIG_ATMEL_DATAFLASH_SPI) += atmel_dataflash_spi.o
- COBJS-$(CONFIG_ATMEL_SPI) += atmel_spi.o
- COBJS-$(CONFIG_BFIN_SPI) += bfin_spi.o
diff --git a/package/boot/uboot-ar71xx/patches/010-enet-ag71xx.patch b/package/boot/uboot-ar71xx/patches/010-enet-ag71xx.patch
deleted file mode 100644 (file)
index ee90e32..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -ur u-boot-2010.03/drivers/net/Makefile u-boot-nbg/drivers/net/Makefile
---- u-boot-2010.03/drivers/net/Makefile        2010-03-31 23:54:39.000000000 +0200
-+++ u-boot-nbg/drivers/net/Makefile    2010-04-19 23:30:01.000000000 +0200
-@@ -27,6 +27,7 @@
- COBJS-$(CONFIG_DRIVER_3C589) += 3c589.o
- COBJS-$(CONFIG_PPC4xx_EMAC) += 4xx_enet.o
-+COBJS-$(CONFIG_AG71XX) += ag71xx.o
- COBJS-$(CONFIG_DRIVER_AT91EMAC) += at91_emac.o
- COBJS-$(CONFIG_DRIVER_AX88180) += ax88180.o
- COBJS-$(CONFIG_BCM570x) += bcm570x.o bcm570x_autoneg.o 5701rls.o
-diff -ur u-boot-2010.03/include/netdev.h u-boot-nbg/include/netdev.h
---- u-boot-2010.03/include/netdev.h    2010-03-31 23:54:39.000000000 +0200
-+++ u-boot-nbg/include/netdev.h        2010-05-02 11:30:58.000000000 +0200
-@@ -42,6 +42,7 @@
- /* Driver initialization prototypes */
- int au1x00_enet_initialize(bd_t*);
-+int ag71xx_register(bd_t * bis, char *phyname[], u16 phyid[], u16 phyfixed[]);
- int at91emac_register(bd_t *bis, unsigned long iobase);
- int bfin_EMAC_initialize(bd_t *bis);
- int cs8900_initialize(u8 dev_num, int base_addr);
diff --git a/package/boot/uboot-ar71xx/patches/011-switch-rtl8366sr.patch b/package/boot/uboot-ar71xx/patches/011-switch-rtl8366sr.patch
deleted file mode 100644 (file)
index 5d2ba41..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -ur u-boot-2010.03/drivers/net/Makefile u-boot-nbg/drivers/net/Makefile
---- u-boot-2010.03/drivers/net/Makefile        2010-03-31 23:54:39.000000000 +0200
-+++ u-boot-nbg/drivers/net/Makefile    2010-04-19 23:30:01.000000000 +0200
-@@ -65,6 +65,7 @@
- COBJS-$(CONFIG_DRIVER_RTL8019) += rtl8019.o
- COBJS-$(CONFIG_RTL8139) += rtl8139.o
- COBJS-$(CONFIG_RTL8169) += rtl8169.o
-+COBJS-$(CONFIG_RTL8366_MII) += phy/rtl8366_mii.o
- COBJS-$(CONFIG_DRIVER_S3C4510_ETH) += s3c4510b_eth.o
- COBJS-$(CONFIG_SH_ETHER) += sh_eth.o
- COBJS-$(CONFIG_SMC91111) += smc91111.o
-diff -ur u-boot-2010.03/include/netdev.h u-boot-nbg/include/netdev.h
---- u-boot-2010.03/include/netdev.h    2010-03-31 23:54:39.000000000 +0200
-+++ u-boot-nbg/include/netdev.h        2010-05-02 11:30:58.000000000 +0200
-@@ -175,5 +175,13 @@
- int mv88e61xx_switch_initialize(struct mv88e61xx_config *swconfig);
- #endif /* CONFIG_MV88E61XX_SWITCH */
-+
-+#if defined(CONFIG_RTL8366_MII)
-+#define RTL8366_DEVNAME         "rtl8366"
-+#define RTL8366_WANPHY_ID       4
-+#define RTL8366_LANPHY_ID       -1
-+int rtl8366_mii_register(bd_t *bis);
-+int rtl8366s_initialize(void);
-+#endif
- #endif /* _NETDEV_H_ */
diff --git a/package/boot/uboot-ar71xx/patches/020-freebsd-compat.patch b/package/boot/uboot-ar71xx/patches/020-freebsd-compat.patch
deleted file mode 100644 (file)
index fee0669..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/include/compiler.h
-+++ b/include/compiler.h
-@@ -46,7 +46,7 @@ extern int errno;
- #ifdef __linux__
- # include <endian.h>
- # include <byteswap.h>
--#elif defined(__MACH__)
-+#elif defined(__MACH__) || defined(__FreeBSD__)
- # include <machine/endian.h>
- typedef unsigned long ulong;
- typedef unsigned int  uint;
diff --git a/package/boot/uboot-ar71xx/patches/021-darwin_compat.patch b/package/boot/uboot-ar71xx/patches/021-darwin_compat.patch
deleted file mode 100644 (file)
index dde83d4..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/config.mk
-+++ b/config.mk
-@@ -64,9 +64,17 @@ HOSTSTRIP   = strip
- #
- ifeq ($(HOSTOS),darwin)
--HOSTCC                = cc
--HOSTCFLAGS    += -traditional-cpp
--HOSTLDFLAGS   += -multiply_defined suppress
-+#get the major and minor product version (e.g. '10' and '6' for Snow Leopard)
-+DARWIN_MAJOR_VERSION   = $(shell sw_vers -productVersion | cut -f 1 -d '.')
-+DARWIN_MINOR_VERSION   = $(shell sw_vers -productVersion | cut -f 2 -d '.')
-+
-+before-snow-leopard    = $(shell if [ $(DARWIN_MAJOR_VERSION) -le 10 -a \
-+   $(DARWIN_MINOR_VERSION) -le 5 ] ; then echo "$(1)"; else echo "$(2)"; fi ;)
-+
-+# Snow Leopards build environment has no longer restrictions as described above
-+HOSTCC  = $(call before-snow-leopard, "cc", "gcc")
-+HOSTCFLAGS += $(call before-snow-leopard, "-traditional-cpp")
-+HOSTLDFLAGS    += $(call before-snow-leopard, "-multiply_defined suppress")
- else
- HOSTCC                = gcc
- endif
diff --git a/package/boot/uboot-ar71xx/patches/022-getline_backport.patch b/package/boot/uboot-ar71xx/patches/022-getline_backport.patch
deleted file mode 100644 (file)
index 2ce2b61..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/tools/os_support.c
-+++ b/tools/os_support.c
-@@ -23,6 +23,6 @@
- #ifdef __MINGW32__
- #include "mingw_support.c"
- #endif
--#ifdef __APPLE__
-+#if defined(__APPLE__) && __DARWIN_C_LEVEL < 200809L
- #include "getline.c"
- #endif
---- a/tools/os_support.h
-+++ b/tools/os_support.h
-@@ -28,7 +28,7 @@
- #include "mingw_support.h"
- #endif
--#ifdef __APPLE__
-+#if defined(__APPLE__) && __DARWIN_C_LEVEL < 200809L
- #include "getline.h"
- #endif
diff --git a/package/boot/uboot-ar71xx/patches/030-no_examples.patch b/package/boot/uboot-ar71xx/patches/030-no_examples.patch
deleted file mode 100644 (file)
index 65e1289..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -139,9 +139,7 @@ endif
- # The "tools" are needed early, so put this first
- # Don't include stuff already done in $(LIBS)
--SUBDIRS       = tools \
--        examples/standalone \
--        examples/api
-+SUBDIRS       = tools
- .PHONY : $(SUBDIRS)
diff --git a/package/boot/uboot-ar71xx/patches/040-no_extern_inline.patch b/package/boot/uboot-ar71xx/patches/040-no_extern_inline.patch
deleted file mode 100644 (file)
index 5c01691..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
---- a/include/asm-mips/io.h
-+++ b/include/asm-mips/io.h
-@@ -118,12 +118,12 @@ static inline void set_io_port_base(unsi
-  * Change virtual addresses to physical addresses and vv.
-  * These are trivial on the 1:1 Linux/MIPS mapping
-  */
--extern inline phys_addr_t virt_to_phys(volatile void * address)
-+static inline phys_addr_t virt_to_phys(volatile void * address)
- {
-       return CPHYSADDR(address);
- }
--extern inline void * phys_to_virt(unsigned long address)
-+static inline void * phys_to_virt(unsigned long address)
- {
-       return (void *)KSEG0ADDR(address);
- }
-@@ -131,12 +131,12 @@ extern inline void * phys_to_virt(unsign
- /*
-  * IO bus memory addresses are also 1:1 with the physical address
-  */
--extern inline unsigned long virt_to_bus(volatile void * address)
-+static inline unsigned long virt_to_bus(volatile void * address)
- {
-       return CPHYSADDR(address);
- }
--extern inline void * bus_to_virt(unsigned long address)
-+static inline void * bus_to_virt(unsigned long address)
- {
-       return (void *)KSEG0ADDR(address);
- }
-@@ -150,12 +150,12 @@ extern unsigned long isa_slot_offset;
- extern void * __ioremap(unsigned long offset, unsigned long size, unsigned long flags);
- #if 0
--extern inline void *ioremap(unsigned long offset, unsigned long size)
-+static inline void *ioremap(unsigned long offset, unsigned long size)
- {
-       return __ioremap(offset, size, _CACHE_UNCACHED);
- }
--extern inline void *ioremap_nocache(unsigned long offset, unsigned long size)
-+static inline void *ioremap_nocache(unsigned long offset, unsigned long size)
- {
-       return __ioremap(offset, size, _CACHE_UNCACHED);
- }
-@@ -238,7 +238,7 @@ out:
-  */
- #define __OUT1(s) \
--extern inline void __out##s(unsigned int value, unsigned int port) {
-+static inline void __out##s(unsigned int value, unsigned int port) {
- #define __OUT2(m) \
- __asm__ __volatile__ ("s" #m "\t%0,%1(%2)"
-@@ -252,7 +252,7 @@ __OUT1(s##c_p) __OUT2(m) : : "r" (__iosw
-       SLOW_DOWN_IO; }
- #define __IN1(t,s) \
--extern __inline__ t __in##s(unsigned int port) { t _v;
-+static inline t __in##s(unsigned int port) { t _v;
- /*
-  * Required nops will be inserted by the assembler
-@@ -267,7 +267,7 @@ __IN1(t,s##_p) __IN2(m) : "=r" (_v) : "i
- __IN1(t,s##c_p) __IN2(m) : "=r" (_v) : "ir" (port), "r" (mips_io_port_base)); SLOW_DOWN_IO; return __ioswab##w(_v); }
- #define __INS1(s) \
--extern inline void __ins##s(unsigned int port, void * addr, unsigned long count) {
-+static inline void __ins##s(unsigned int port, void * addr, unsigned long count) {
- #define __INS2(m) \
- if (count) \
-@@ -295,7 +295,7 @@ __INS1(s##c) __INS2(m) \
-       : "$1");}
- #define __OUTS1(s) \
--extern inline void __outs##s(unsigned int port, const void * addr, unsigned long count) {
-+static inline void __outs##s(unsigned int port, const void * addr, unsigned long count) {
- #define __OUTS2(m) \
- if (count) \
---- a/include/asm-mips/system.h
-+++ b/include/asm-mips/system.h
-@@ -23,7 +23,7 @@
- #include <linux/kernel.h>
- #endif
--extern __inline__ void
-+static inline void
- __sti(void)
- {
-       __asm__ __volatile__(
-@@ -47,7 +47,7 @@ __sti(void)
-  * R4000/R4400 need three nops, the R4600 two nops and the R10000 needs
-  * no nops at all.
-  */
--extern __inline__ void
-+static inline void
- __cli(void)
- {
-       __asm__ __volatile__(
-@@ -208,7 +208,7 @@ do { \
-  * For 32 and 64 bit operands we can take advantage of ll and sc.
-  * FIXME: This doesn't work for R3000 machines.
-  */
--extern __inline__ unsigned long xchg_u32(volatile int * m, unsigned long val)
-+static inline unsigned long xchg_u32(volatile int * m, unsigned long val)
- {
- #ifdef CONFIG_CPU_HAS_LLSC
-       unsigned long dummy;
diff --git a/package/boot/uboot-ar71xx/patches/041-no_weak_alias.patch b/package/boot/uboot-ar71xx/patches/041-no_weak_alias.patch
deleted file mode 100644 (file)
index b6f18ed..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/common/main.c
-+++ b/common/main.c
-@@ -47,8 +47,7 @@ DECLARE_GLOBAL_DATA_PTR;
- /*
-  * Board-specific Platform code can reimplement show_boot_progress () if needed
-  */
--void inline __show_boot_progress (int val) {}
--void show_boot_progress (int val) __attribute__((weak, alias("__show_boot_progress")));
-+void __attribute__((weak)) show_boot_progress(int val) {}
- #if defined(CONFIG_BOOT_RETRY_TIME) && defined(CONFIG_RESET_TO_RETRY)
- extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);             /* for do_reset() prototype */
diff --git a/package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/Makefile b/package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/Makefile
deleted file mode 100644 (file)
index b0a385b..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# (C) Copyright 2003-2008
-# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-#
-# See file CREDITS for list of people who contributed to this
-# project.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# This program 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).a
-
-COBJS-y += $(BOARD).o
-SOBJS-y += lowlevel_init.o
-
-SRCS   := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS-y))
-SOBJS  := $(addprefix $(obj),$(SOBJS-y))
-
-$(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
-
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
diff --git a/package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/config.mk b/package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/config.mk
deleted file mode 100644 (file)
index e042e78..0000000
+++ /dev/null
@@ -1 +0,0 @@
-TEXT_BASE = 0x81E00000
diff --git a/package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/lowlevel_init.S b/package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/lowlevel_init.S
deleted file mode 100644 (file)
index 83084c8..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * (C) Copyright 2010
- * Michael Kurz <michi.kurz@googlemail.com>.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <config.h>
-#include <version.h>
-#include <asm/regdef.h>
-#include <asm/mipsregs.h>
-#include <asm/addrspace.h>
-
-
-
-.globl lowlevel_init
-/*
-       All done by Bootbase, nothing to do
-*/
-lowlevel_init:
-    jr ra
-    nop
-
diff --git a/package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/nbg460n.c b/package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/nbg460n.c
deleted file mode 100644 (file)
index 03a479d..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * (C) Copyright 2010
- * Michael Kurz <michi.kurz@googlemail.com>.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <netdev.h>
-#include <asm/mipsregs.h>
-#include <asm/addrspace.h>
-#include <asm/reboot.h>
-#include <asm/ar71xx.h>
-#include <asm/ar71xx_gpio.h>
-
-#define NBG460N_WAN_LED                        19
-
-phys_size_t initdram(int board_type)
-{
-    return (32*1024*1024);
-}
-
-int checkboard(void)
-{
-       // Set pin 19 to 1, to stop WAN LED blinking
-    ar71xx_setpindir(NBG460N_WAN_LED, 1);
-    ar71xx_setpin(NBG460N_WAN_LED, 1);
-
-    printf("U-boot on Zyxel NBG460N\n");
-    return 0;
-}
-
-void _machine_restart(void)
-{
-       for (;;) {
-               writel((RESET_MODULE_FULL_CHIP | RESET_MODULE_DDR),
-                       KSEG1ADDR(AR71XX_RESET_BASE + AR91XX_RESET_REG_RESET_MODULE));
-        readl(KSEG1ADDR(AR71XX_RESET_BASE + AR91XX_RESET_REG_RESET_MODULE));
-       }
-}
-
-int board_eth_init(bd_t *bis)
-{
-    char *phynames[] = {RTL8366_DEVNAME, RTL8366_DEVNAME};
-    u16 phyids[] = {RTL8366_LANPHY_ID, RTL8366_WANPHY_ID};
-    u16 phyfixed[] = {1, 0};
-
-    if (ag71xx_register(bis, phynames, phyids, phyfixed) <= 0)
-        return -1;
-
-       if (rtl8366s_initialize())
-        return -1;
-
-    if (rtl8366_mii_register(bis))
-        return -1;
-               
-    return 0;
-}
-
-int misc_init_r(void) {
-    uint8_t macaddr[6];
-    uint8_t enetaddr[6];
-
-       debug("Testing mac addresses\n");
-       
-    memcpy(macaddr, (uint8_t *) CONFIG_ETHADDR_ADDR, 6);
-
-    if (!eth_getenv_enetaddr("ethaddr", enetaddr)) {
-        debug("Setting eth0 mac addr to %pM\n", macaddr);
-        eth_setenv_enetaddr("ethaddr", macaddr);
-    }
-
-    if (!eth_getenv_enetaddr("eth1addr", enetaddr)) {
-               macaddr[5] += 1;
-        debug("Setting eth1 mac addr to %pM\n", macaddr);
-        eth_setenv_enetaddr("eth1addr", macaddr);
-    }
-
-    return 0;
-}
diff --git a/package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/u-boot.lds b/package/boot/uboot-ar71xx/src/board/zyxel/nbg460n/u-boot.lds
deleted file mode 100644 (file)
index 8dc2b76..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradbigmips")
-OUTPUT_ARCH(mips)
-ENTRY(_start)
-SECTIONS
-{
-       . = 0x00000000;
-
-       . = ALIGN(4);
-       .text       :
-       {
-         *(.text)
-       }
-
-       . = ALIGN(4);
-       .rodata  : { *(.rodata) }
-
-       . = ALIGN(4);
-       .data  : { *(.data) }
-
-       . = ALIGN(4);
-       .sdata  : { *(.sdata) }
-
-       _gp = ALIGN(16);
-
-       __got_start = .;
-       .got  : { *(.got) }
-       __got_end = .;
-
-       .sdata  : { *(.sdata) }
-
-       __u_boot_cmd_start = .;
-       .u_boot_cmd : { *(.u_boot_cmd) }
-       __u_boot_cmd_end = .;
-
-       uboot_end_data = .;
-       num_got_entries = (__got_end - __got_start) >> 2;
-
-       . = ALIGN(4);
-       .sbss  : { *(.sbss) }
-       .bss  : { *(.bss) }
-       uboot_end = .;
-}
diff --git a/package/boot/uboot-ar71xx/src/cpu/mips/ar71xx_serial.c b/package/boot/uboot-ar71xx/src/cpu/mips/ar71xx_serial.c
deleted file mode 100644 (file)
index f093318..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * (C) Copyright 2010
- * Michael Kurz <michi.kurz@googlemail.com>.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <asm/addrspace.h>
-#include <asm/types.h>
-#include <config.h>
-#include <asm/ar71xx.h>
-
-#define                REG_SIZE                4
-
-/* === END OF CONFIG === */
-
-/* register offset */
-#define         OFS_RCV_BUFFER          (0*REG_SIZE)
-#define         OFS_TRANS_HOLD          (0*REG_SIZE)
-#define         OFS_SEND_BUFFER         (0*REG_SIZE)
-#define         OFS_INTR_ENABLE         (1*REG_SIZE)
-#define         OFS_INTR_ID             (2*REG_SIZE)
-#define         OFS_DATA_FORMAT         (3*REG_SIZE)
-#define         OFS_LINE_CONTROL        (3*REG_SIZE)
-#define         OFS_MODEM_CONTROL       (4*REG_SIZE)
-#define         OFS_RS232_OUTPUT        (4*REG_SIZE)
-#define         OFS_LINE_STATUS         (5*REG_SIZE)
-#define         OFS_MODEM_STATUS        (6*REG_SIZE)
-#define         OFS_RS232_INPUT         (6*REG_SIZE)
-#define         OFS_SCRATCH_PAD         (7*REG_SIZE)
-
-#define         OFS_DIVISOR_LSB         (0*REG_SIZE)
-#define         OFS_DIVISOR_MSB         (1*REG_SIZE)
-
-#define         UART16550_READ(y)   readl(KSEG1ADDR(AR71XX_UART_BASE+y))
-#define         UART16550_WRITE(x, z)  writel(z, KSEG1ADDR((AR71XX_UART_BASE+x)))
-
-void 
-ar71xx_sys_frequency(u32 *cpu_freq, u32 *ddr_freq, u32 *ahb_freq)
-{
-#ifndef CONFIG_AR91XX
-    u32 pll, pll_div, cpu_div, ahb_div, ddr_div, freq;
-
-    pll = readl(KSEG1ADDR(AR71XX_PLL_REG_CPU_CONFIG + AR71XX_PLL_BASE));
-
-    pll_div = 
-        ((pll & AR71XX_PLL_DIV_MASK) >> AR71XX_PLL_DIV_SHIFT) + 1;
-
-    cpu_div = 
-        ((pll & AR71XX_CPU_DIV_MASK) >> AR71XX_CPU_DIV_SHIFT) + 1;
-
-    ddr_div = 
-        ((pll & AR71XX_DDR_DIV_MASK) >> AR71XX_DDR_DIV_SHIFT) + 1;
-
-    ahb_div = 
-       (((pll & AR71XX_AHB_DIV_MASK) >> AR71XX_AHB_DIV_SHIFT) + 1)*2;
-
-    freq = pll_div * 40000000; 
-
-    if (cpu_freq)
-        *cpu_freq = freq/cpu_div;
-
-    if (ddr_freq)
-        *ddr_freq = freq/ddr_div;
-
-    if (ahb_freq)
-        *ahb_freq = (freq/cpu_div)/ahb_div;
-
-#else
-    u32 pll, pll_div, ahb_div, ddr_div, freq;
-
-    pll = readl(KSEG1ADDR(AR91XX_PLL_REG_CPU_CONFIG + AR71XX_PLL_BASE));
-
-    pll_div = 
-        ((pll & AR91XX_PLL_DIV_MASK) >> AR91XX_PLL_DIV_SHIFT);
-
-    ddr_div = 
-        ((pll & AR91XX_DDR_DIV_MASK) >> AR91XX_DDR_DIV_SHIFT) + 1;
-
-    ahb_div = 
-       (((pll & AR91XX_AHB_DIV_MASK) >> AR91XX_AHB_DIV_SHIFT) + 1)*2;
-
-    freq = pll_div * 5000000; 
-
-    if (cpu_freq)
-        *cpu_freq = freq;
-
-    if (ddr_freq)
-        *ddr_freq = freq/ddr_div;
-
-    if (ahb_freq)
-        *ahb_freq = freq/ahb_div;
-#endif
-}
-
-
-int serial_init(void)
-{
-    u32 div;
-    u32 ahb_freq = 100000000;
-
-    ar71xx_sys_frequency  (0, 0, &ahb_freq);  
-    div  = ahb_freq/(16 * CONFIG_BAUDRATE);  
-
-       // enable uart pins
-#ifndef CONFIG_AR91XX
-    writel(AR71XX_GPIO_FUNC_UART_EN, KSEG1ADDR(AR71XX_GPIO_BASE + GPIO_REG_FUNC));
-#else
-       writel(AR91XX_GPIO_FUNC_UART_EN, KSEG1ADDR(AR71XX_GPIO_BASE + GPIO_REG_FUNC));
-#endif
-
-    /* set DIAB bit */
-    UART16550_WRITE(OFS_LINE_CONTROL, 0x80);
-
-    /* set divisor */
-    UART16550_WRITE(OFS_DIVISOR_LSB, (div & 0xff));
-    UART16550_WRITE(OFS_DIVISOR_MSB, ((div >> 8) & 0xff));
-
-    /* clear DIAB bit*/ 
-    UART16550_WRITE(OFS_LINE_CONTROL, 0x00);
-
-    /* set data format */
-    UART16550_WRITE(OFS_DATA_FORMAT, 0x3);
-
-    UART16550_WRITE(OFS_INTR_ENABLE, 0);
-
-       return 0;
-}
-
-int serial_tstc (void)
-{
-    return(UART16550_READ(OFS_LINE_STATUS) & 0x1);
-}
-
-int serial_getc(void)
-{
-    while(!serial_tstc());
-
-    return UART16550_READ(OFS_RCV_BUFFER);
-}
-
-
-void serial_putc(const char byte)
-{
-    if (byte == '\n') serial_putc ('\r');
-
-    while (((UART16550_READ(OFS_LINE_STATUS)) & 0x20) == 0x0);
-    UART16550_WRITE(OFS_SEND_BUFFER, byte);
-}
-
-void serial_setbrg (void)
-{
-}
-
-void serial_puts (const char *s)
-{
-       while (*s)
-       {
-               serial_putc (*s++);
-       }
-}
diff --git a/package/boot/uboot-ar71xx/src/drivers/net/ag71xx.c b/package/boot/uboot-ar71xx/src/drivers/net/ag71xx.c
deleted file mode 100644 (file)
index b3324c0..0000000
+++ /dev/null
@@ -1,809 +0,0 @@
-/*
- *  Atheros AR71xx built-in ethernet mac driver
- *
- *  Copyright (C) 2010 Michael Kurz <michi.kurz@googlemail.com>
- *  Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
- *  Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
- *
- *  Based on Atheros' AG7100 driver
- *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License version 2 as published
- *  by the Free Software Foundation.
- */
-#include <common.h>
-#include <malloc.h>
-#include <net.h>
-#include <miiphy.h>
-
-#include <asm/ar71xx.h>
-
-#include "ag71xx.h"
-
-#ifdef AG71XX_DEBUG
-#define DBG(fmt,args...)               printf(fmt ,##args)
-#else
-#define DBG(fmt,args...)
-#endif
-
-
-static struct ag71xx agtable[] = {
-       {
-               .mac_base = KSEG1ADDR(AR71XX_GE0_BASE),
-               .mii_ctrl = KSEG1ADDR(AR71XX_MII_BASE + MII_REG_MII0_CTRL),
-               .mii_if = CONFIG_AG71XX_MII0_IIF,
-       } , {
-               .mac_base = KSEG1ADDR(AR71XX_GE1_BASE),
-               .mii_ctrl = KSEG1ADDR(AR71XX_MII_BASE + MII_REG_MII1_CTRL),
-               .mii_if = CONFIG_AG71XX_MII1_IIF,
-       }
-};
-
-static int ag71xx_ring_alloc(struct ag71xx_ring *ring, unsigned int size)
-{
-       int err;
-       int i;
-       int rsize;
-
-       ring->desc_size = sizeof(struct ag71xx_desc);
-       if (ring->desc_size % (CONFIG_SYS_CACHELINE_SIZE)) {
-               rsize = roundup(ring->desc_size, CONFIG_SYS_CACHELINE_SIZE);
-               DBG("ag71xx: ring %p, desc size %u rounded to %u\n",
-                       ring, ring->desc_size,
-                       rsize);
-               ring->desc_size = rsize;
-       }
-
-       ring->descs_cpu = (u8 *) malloc((size * ring->desc_size)
-               + CONFIG_SYS_CACHELINE_SIZE - 1);
-       if (!ring->descs_cpu) {
-               err = -1;
-               goto err;
-       }
-       ring->descs_cpu = (u8 *) UNCACHED_SDRAM((((u32) ring->descs_cpu + 
-               CONFIG_SYS_CACHELINE_SIZE - 1) & ~(CONFIG_SYS_CACHELINE_SIZE - 1)));
-    ring->descs_dma = (u8 *) virt_to_phys(ring->descs_cpu);
-
-       ring->size = size;
-
-       ring->buf = malloc(size * sizeof(*ring->buf));
-       if (!ring->buf) {
-               err = -1;
-               goto err;
-       }
-    memset(ring->buf, 0, size * sizeof(*ring->buf));
-
-       for (i = 0; i < size; i++) {
-               ring->buf[i].desc =
-                       (struct ag71xx_desc *)&ring->descs_cpu[i * ring->desc_size];
-               DBG("ag71xx: ring %p, desc %d at %p\n",
-                       ring, i, ring->buf[i].desc);
-       }
-
-       flush_cache( (u32) ring->buf, size * sizeof(*ring->buf));
-       
-       return 0;
-
- err:
-       return err;
-}
-
-static void ag71xx_ring_tx_init(struct ag71xx *ag)
-{
-       struct ag71xx_ring *ring = &ag->tx_ring;
-       int i;
-
-       for (i = 0; i < AG71XX_TX_RING_SIZE; i++) {
-               ring->buf[i].desc->next = (u32) virt_to_phys((ring->descs_dma +
-                       ring->desc_size * ((i + 1) % AG71XX_TX_RING_SIZE)));
-
-               ring->buf[i].desc->ctrl = DESC_EMPTY;
-               ring->buf[i].skb = NULL;
-       }
-
-       ring->curr = 0;
-}
-
-static void ag71xx_ring_rx_clean(struct ag71xx *ag)
-{
-       struct ag71xx_ring *ring = &ag->rx_ring;
-       int i;
-
-       if (!ring->buf)
-               return;
-
-       for (i = 0; i < AG71XX_RX_RING_SIZE; i++) {
-           ring->buf[i].desc->data = (u32) virt_to_phys(NetRxPackets[i]);
-           flush_cache((u32) NetRxPackets[i], PKTSIZE_ALIGN);
-        ring->buf[i].desc->ctrl = DESC_EMPTY;
-    }
-
-       ring->curr = 0;
-}
-
-static int ag71xx_ring_rx_init(struct ag71xx *ag)
-{
-       struct ag71xx_ring *ring = &ag->rx_ring;
-       unsigned int i;
-
-       for (i = 0; i < AG71XX_RX_RING_SIZE; i++) {
-               ring->buf[i].desc->next = (u32) virt_to_phys((ring->descs_dma +
-                       ring->desc_size * ((i + 1) % AG71XX_RX_RING_SIZE)));
-
-               DBG("ag71xx: RX desc at %p, next is %08x\n",
-                       ring->buf[i].desc,
-                       ring->buf[i].desc->next);
-       }
-
-       for (i = 0; i < AG71XX_RX_RING_SIZE; i++) {
-               ring->buf[i].desc->data = (u32) virt_to_phys(NetRxPackets[i]);
-               ring->buf[i].desc->ctrl = DESC_EMPTY;
-       }
-
-       ring->curr = 0;
-
-       return 0;
-}
-
-static int ag71xx_rings_init(struct ag71xx *ag)
-{
-       int ret;
-
-       ret = ag71xx_ring_alloc(&ag->tx_ring, AG71XX_TX_RING_SIZE);
-       if (ret)
-               return ret;
-
-       ag71xx_ring_tx_init(ag);
-
-       ret = ag71xx_ring_alloc(&ag->rx_ring, AG71XX_RX_RING_SIZE);
-       if (ret)
-               return ret;
-
-       ret = ag71xx_ring_rx_init(ag);
-       return ret;
-}
-
-static void ar71xx_set_pll(u32 cfg_reg, u32 pll_reg, u32 pll_val, u32 shift)
-{
-       uint32_t base = KSEG1ADDR(AR71XX_PLL_BASE);
-       u32 t;
-
-       t = readl(base + cfg_reg);
-       t &= ~(3 << shift);
-       t |=  (2 << shift);
-       writel(t, base + cfg_reg);
-       udelay(100);
-
-       writel(pll_val, base + pll_reg);
-
-       t |= (3 << shift);
-       writel(t, base + cfg_reg);
-       udelay(100);
-
-       t &= ~(3 << shift);
-       writel(t, base + cfg_reg);
-       udelay(100);
-
-       debug("ar71xx: pll_reg %#x: %#x\n", (unsigned int)(base + pll_reg),
-       readl(base + pll_reg));
-}
-
-static void ar91xx_set_pll_ge0(int speed)
-{
-       //u32 val = ar71xx_get_eth_pll(0, speed);
-       u32 pll_val;
-
-       switch (speed) {
-       case SPEED_10:
-               pll_val = 0x00441099;
-               break;
-       case SPEED_100:
-               pll_val = 0x13000a44;
-               break;
-       case SPEED_1000:
-               pll_val = 0x1a000000;
-               break;
-       default:
-               BUG();
-       }
-
-       ar71xx_set_pll(AR91XX_PLL_REG_ETH_CONFIG, AR91XX_PLL_REG_ETH0_INT_CLOCK,
-                        pll_val, AR91XX_ETH0_PLL_SHIFT);
-}
-
-static void ar91xx_set_pll_ge1(int speed)
-{
-       //u32 val = ar71xx_get_eth_pll(1, speed);
-    u32 pll_val;
-
-       switch (speed) {
-       case SPEED_10:
-               pll_val = 0x00441099;
-               break;
-       case SPEED_100:
-               pll_val = 0x13000a44;
-               break;
-       case SPEED_1000:
-               pll_val = 0x1a000000;
-               break;
-       default:
-               BUG();
-       }
-
-       ar71xx_set_pll(AR91XX_PLL_REG_ETH_CONFIG, AR91XX_PLL_REG_ETH1_INT_CLOCK,
-                        pll_val, AR91XX_ETH1_PLL_SHIFT);
-}
-
-static void ag71xx_hw_set_macaddr(struct ag71xx *ag, unsigned char *mac)
-{
-       u32 t;
-
-       t = (((u32) mac[5]) << 24) | (((u32) mac[4]) << 16)
-         | (((u32) mac[3]) << 8) | ((u32) mac[2]);
-
-       ag71xx_wr(ag, AG71XX_REG_MAC_ADDR1, t);
-
-       t = (((u32) mac[1]) << 24) | (((u32) mac[0]) << 16);
-       ag71xx_wr(ag, AG71XX_REG_MAC_ADDR2, t);
-}
-
-static void ag71xx_dma_reset(struct ag71xx *ag)
-{
-       u32 val;
-       int i;
-
-       DBG("%s: txdesc reg: 0x%08x rxdesc reg: 0x%08x\n",
-                       ag->dev->name,
-                       ag71xx_rr(ag, AG71XX_REG_TX_DESC),
-                       ag71xx_rr(ag, AG71XX_REG_RX_DESC));
-       
-       /* stop RX and TX */
-       ag71xx_wr(ag, AG71XX_REG_RX_CTRL, 0);
-       ag71xx_wr(ag, AG71XX_REG_TX_CTRL, 0);
-
-       /* clear descriptor addresses */
-       ag71xx_wr(ag, AG71XX_REG_TX_DESC, 0);
-       ag71xx_wr(ag, AG71XX_REG_RX_DESC, 0);
-
-       /* clear pending RX/TX interrupts */
-       for (i = 0; i < 256; i++) {
-               ag71xx_wr(ag, AG71XX_REG_RX_STATUS, RX_STATUS_PR);
-               ag71xx_wr(ag, AG71XX_REG_TX_STATUS, TX_STATUS_PS);
-       }
-
-       /* clear pending errors */
-       ag71xx_wr(ag, AG71XX_REG_RX_STATUS, RX_STATUS_BE | RX_STATUS_OF);
-       ag71xx_wr(ag, AG71XX_REG_TX_STATUS, TX_STATUS_BE | TX_STATUS_UR);
-
-       val = ag71xx_rr(ag, AG71XX_REG_RX_STATUS);
-       if (val)
-               printf("%s: unable to clear DMA Rx status: %08x\n",
-                       ag->dev->name, val);
-
-       val = ag71xx_rr(ag, AG71XX_REG_TX_STATUS);
-
-       /* mask out reserved bits */
-       val &= ~0xff000000;
-
-       if (val)
-               printf("%s: unable to clear DMA Tx status: %08x\n",
-                       ag->dev->name, val);
-}
-
-static void ag71xx_halt(struct eth_device *dev)
-{
-    struct ag71xx *ag = (struct ag71xx *) dev->priv;
-
-    /* stop RX engine */
-       ag71xx_wr(ag, AG71XX_REG_RX_CTRL, 0);
-
-       ag71xx_dma_reset(ag);
-}
-
-#define MAX_WAIT        1000
-
-static int ag71xx_send(struct eth_device *dev, volatile void *packet,
-                       int length)
-{
-    struct ag71xx *ag = (struct ag71xx *) dev->priv;
-       struct ag71xx_ring *ring = &ag->tx_ring;
-       struct ag71xx_desc *desc;
-       int i;
-
-       i = ring->curr % AG71XX_TX_RING_SIZE;
-       desc = ring->buf[i].desc;
-
-       if (!ag71xx_desc_empty(desc)) {
-               printf("%s: tx buffer full\n", ag->dev->name);
-               return 1;
-       }
-
-       flush_cache((u32) packet, length);
-    desc->data = (u32) virt_to_phys(packet);
-    desc->ctrl = (length & DESC_PKTLEN_M);
-       
-       DBG("%s: sending %#08x length %#08x\n",
-               ag->dev->name, desc->data, desc->ctrl);
-       
-       ring->curr++;
-       if (ring->curr >= AG71XX_TX_RING_SIZE){
-               ring->curr = 0;
-       }
-       
-       /* enable TX engine */
-       ag71xx_wr(ag, AG71XX_REG_TX_CTRL, TX_CTRL_TXE);
-
-    for (i = 0; i < MAX_WAIT; i++)
-    {
-        if (ag71xx_desc_empty(desc))
-            break;
-        udelay(10);
-    }
-    if (i == MAX_WAIT) {
-        printf("%s: tx timed out!\n", ag->dev->name);
-               return -1;
-       }
-       
-       /* disable TX engine */
-       ag71xx_wr(ag, AG71XX_REG_TX_CTRL, 0);
-       desc->data = 0;
-       desc->ctrl = DESC_EMPTY;
-       
-       return 0;
-}
-
-static int ag71xx_recv(struct eth_device *dev)
-{
-    struct ag71xx *ag = (struct ag71xx *) dev->priv;
-       struct ag71xx_ring *ring = &ag->rx_ring;
-
-    for (;;) {
-               unsigned int i = ring->curr % AG71XX_RX_RING_SIZE;
-               struct ag71xx_desc *desc = ring->buf[i].desc;
-               int pktlen;
-               
-               if (ag71xx_desc_empty(desc))
-                       break;
-
-               DBG("%s: rx packets, curr=%u\n", dev->name, ring->curr);
-
-        pktlen = ag71xx_desc_pktlen(desc);
-               pktlen -= ETH_FCS_LEN;
-
-
-               NetReceive(NetRxPackets[i] , pktlen);
-               flush_cache( (u32) NetRxPackets[i], PKTSIZE_ALIGN);
-
-        ring->buf[i].desc->ctrl = DESC_EMPTY;
-               ring->curr++;
-               if (ring->curr >= AG71XX_RX_RING_SIZE){
-                       ring->curr = 0;
-               }
-
-    }
-
-       if ((ag71xx_rr(ag, AG71XX_REG_RX_CTRL) & RX_CTRL_RXE) == 0) {
-               /* start RX engine */
-               ag71xx_wr(ag, AG71XX_REG_RX_CTRL, RX_CTRL_RXE);
-       }
-       
-       return 0;
-}
-
-#ifdef AG71XX_DEBUG
-static char *ag71xx_speed_str(struct ag71xx *ag)
-{
-       switch (ag->speed) {
-       case SPEED_1000:
-               return "1000";
-       case SPEED_100:
-               return "100";
-       case SPEED_10:
-               return "10";
-       }
-
-       return "?";
-}
-#endif
-
-void ag71xx_link_adjust(struct ag71xx *ag)
-{
-       u32 cfg2;
-       u32 ifctl;
-       u32 fifo5;
-       u32 mii_speed;
-
-       if (!ag->link) {
-               DBG("%s: link down\n", ag->dev->name);
-               return;
-       }
-
-       cfg2 = ag71xx_rr(ag, AG71XX_REG_MAC_CFG2);
-       cfg2 &= ~(MAC_CFG2_IF_1000 | MAC_CFG2_IF_10_100 | MAC_CFG2_FDX);
-       cfg2 |= (ag->duplex) ? MAC_CFG2_FDX : 0;
-
-       ifctl = ag71xx_rr(ag, AG71XX_REG_MAC_IFCTL);
-       ifctl &= ~(MAC_IFCTL_SPEED);
-
-       fifo5 = ag71xx_rr(ag, AG71XX_REG_FIFO_CFG5);
-       fifo5 &= ~FIFO_CFG5_BM;
-
-       switch (ag->speed) {
-       case SPEED_1000:
-               mii_speed =  MII_CTRL_SPEED_1000;
-               cfg2 |= MAC_CFG2_IF_1000;
-               fifo5 |= FIFO_CFG5_BM;
-               break;
-       case SPEED_100:
-               mii_speed = MII_CTRL_SPEED_100;
-               cfg2 |= MAC_CFG2_IF_10_100;
-               ifctl |= MAC_IFCTL_SPEED;
-               break;
-       case SPEED_10:
-               mii_speed = MII_CTRL_SPEED_10;
-               cfg2 |= MAC_CFG2_IF_10_100;
-               break;
-       default:
-               BUG();
-               return;
-       }
-
-    ag71xx_wr(ag, AG71XX_REG_FIFO_CFG3, 0x00780fff);
-
-    if (ag->macNum == 0)
-        ar91xx_set_pll_ge0(ag->speed);
-    else
-        ar91xx_set_pll_ge1(ag->speed);
-
-       ag71xx_mii_ctrl_set_speed(ag, mii_speed);
-
-       ag71xx_wr(ag, AG71XX_REG_MAC_CFG2, cfg2);
-       ag71xx_wr(ag, AG71XX_REG_FIFO_CFG5, fifo5);
-       ag71xx_wr(ag, AG71XX_REG_MAC_IFCTL, ifctl);
-
-    DBG("%s: link up (%sMbps/%s duplex)\n",
-        ag->dev->name,
-        ag71xx_speed_str(ag),
-        (1 == ag->duplex) ? "Full" : "Half");
-
-       DBG("%s: fifo_cfg0=%#x, fifo_cfg1=%#x, fifo_cfg2=%#x\n",
-               ag->dev->name,
-               ag71xx_rr(ag, AG71XX_REG_FIFO_CFG0),
-               ag71xx_rr(ag, AG71XX_REG_FIFO_CFG1),
-               ag71xx_rr(ag, AG71XX_REG_FIFO_CFG2));
-
-       DBG("%s: fifo_cfg3=%#x, fifo_cfg4=%#x, fifo_cfg5=%#x\n",
-               ag->dev->name,
-               ag71xx_rr(ag, AG71XX_REG_FIFO_CFG3),
-               ag71xx_rr(ag, AG71XX_REG_FIFO_CFG4),
-               ag71xx_rr(ag, AG71XX_REG_FIFO_CFG5));
-
-       DBG("%s: mac_cfg2=%#x, mac_ifctl=%#x, mii_ctrl=%#x\n",
-               ag->dev->name,
-               ag71xx_rr(ag, AG71XX_REG_MAC_CFG2),
-               ag71xx_rr(ag, AG71XX_REG_MAC_IFCTL),
-               ag71xx_mii_ctrl_rr(ag));
-}
-
-#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
-static int ag71xx_getMiiSpeed(struct ag71xx *ag) 
-{
-    uint16_t phyreg, cap;
-
-    if (miiphy_read(ag->phyname, ag->phyid,
-                    PHY_BMSR, &phyreg)) {
-        puts("PHY_BMSR read failed, assuming no link\n");
-        return -1;
-    }
-
-    if ((phyreg & PHY_BMSR_LS) == 0) {
-        return -1;
-    }
-
-    if (miiphy_read(ag->phyname, ag->phyid,
-                PHY_1000BTSR, &phyreg))
-        return -1;
-
-    if (phyreg & PHY_1000BTSR_1000FD) {
-        ag->speed = SPEED_1000;
-        ag->duplex = 1;
-    } else if (phyreg & PHY_1000BTSR_1000HD) {
-        ag->speed = SPEED_1000;
-        ag->duplex = 0;
-    } else {
-        if (miiphy_read(ag->phyname, ag->phyid,
-                PHY_ANAR, &cap))
-            return -1;
-
-        if (miiphy_read(ag->phyname, ag->phyid,
-                PHY_ANLPAR, &phyreg))
-            return -1;
-
-        cap &= phyreg;
-        if (cap & PHY_ANLPAR_TXFD) {
-            ag->speed = SPEED_100;
-            ag->duplex = 1;
-        } else if (cap & PHY_ANLPAR_TX) {
-            ag->speed = SPEED_100;
-            ag->duplex = 0;
-        } else if (cap & PHY_ANLPAR_10FD) {
-            ag->speed = SPEED_10;
-            ag->duplex = 1;
-        } else {
-            ag->speed = SPEED_10;
-            ag->duplex = 0;
-        }
-    }
-       
-       ag->link = 1;
-       
-       return 0;
-}
-#endif
-
-static int ag71xx_hw_start(struct eth_device *dev, bd_t * bd)
-{
-       struct ag71xx *ag = (struct ag71xx *) dev->priv;
-
-       ag71xx_dma_reset(ag);
-
-    ag71xx_ring_rx_clean(ag);
-       ag71xx_ring_tx_init(ag);
-       
-       ag71xx_wr(ag, AG71XX_REG_TX_DESC, 
-                               (u32) virt_to_phys(ag->tx_ring.descs_dma));
-       ag71xx_wr(ag, AG71XX_REG_RX_DESC,
-                               (u32) virt_to_phys(ag->rx_ring.descs_dma));
-
-       ag71xx_hw_set_macaddr(ag, ag->dev->enetaddr);
-
-    if (ag->phyfixed) {
-        ag->link = 1;
-        ag->duplex = 1;
-        ag->speed = SPEED_1000;
-    } else {
-
-#if (defined(CONFIG_MII) || defined(CONFIG_CMD_MII))
-               if (ag71xx_getMiiSpeed(ag))
-                       return -1;
-#else
-               /* only fixed, without mii */
-               return -1;
-#endif
-
-    }
-    ag71xx_link_adjust(ag);
-       
-       DBG("%s: txdesc reg: %#08x rxdesc reg: %#08x\n",
-               ag->dev->name,
-               ag71xx_rr(ag, AG71XX_REG_TX_DESC),
-               ag71xx_rr(ag, AG71XX_REG_RX_DESC));
-       
-       /* start RX engine */
-       ag71xx_wr(ag, AG71XX_REG_RX_CTRL, RX_CTRL_RXE);
-       
-       return 0;
-}
-
-#define FIFO_CFG0_INIT (FIFO_CFG0_ALL << FIFO_CFG0_ENABLE_SHIFT)
-
-#define FIFO_CFG4_INIT (FIFO_CFG4_DE | FIFO_CFG4_DV | FIFO_CFG4_FC | \
-                        FIFO_CFG4_CE | FIFO_CFG4_CR | FIFO_CFG4_LM | \
-                        FIFO_CFG4_LO | FIFO_CFG4_OK | FIFO_CFG4_MC | \
-                        FIFO_CFG4_BC | FIFO_CFG4_DR | FIFO_CFG4_LE | \
-                        FIFO_CFG4_CF | FIFO_CFG4_PF | FIFO_CFG4_UO | \
-                        FIFO_CFG4_VT)
-
-#define FIFO_CFG5_INIT (FIFO_CFG5_DE | FIFO_CFG5_DV | FIFO_CFG5_FC | \
-                        FIFO_CFG5_CE | FIFO_CFG5_LO | FIFO_CFG5_OK | \
-                        FIFO_CFG5_MC | FIFO_CFG5_BC | FIFO_CFG5_DR | \
-                        FIFO_CFG5_CF | FIFO_CFG5_PF | FIFO_CFG5_VT | \
-                        FIFO_CFG5_LE | FIFO_CFG5_FT | FIFO_CFG5_16 | \
-                        FIFO_CFG5_17 | FIFO_CFG5_SF)
-
-static int ag71xx_hw_init(struct ag71xx *ag)
-{
-    int ret = 0;
-       uint32_t reg;
-       uint32_t mask, mii_type;
-
-    if (ag->macNum == 0) {
-        mask = (RESET_MODULE_GE0_MAC | RESET_MODULE_GE0_PHY);
-        mii_type = 0x13;
-    } else {
-        mask = (RESET_MODULE_GE1_MAC | RESET_MODULE_GE1_PHY);
-        mii_type = 0x11;
-    }
-
-    // mac soft reset
-    ag71xx_sb(ag, AG71XX_REG_MAC_CFG1, MAC_CFG1_SR);
-    udelay(20);
-       
-       // device stop
-       reg = ar71xx_reset_rr(AR91XX_RESET_REG_RESET_MODULE);
-       ar71xx_reset_wr(AR91XX_RESET_REG_RESET_MODULE, reg | mask);
-       udelay(100 * 1000);
-       
-    // device start
-    reg = ar71xx_reset_rr(AR91XX_RESET_REG_RESET_MODULE);
-    ar71xx_reset_wr(AR91XX_RESET_REG_RESET_MODULE, reg & ~mask);
-    udelay(100 * 1000);
-
-    /* setup MAC configuration registers */
-    ag71xx_wr(ag, AG71XX_REG_MAC_CFG1, (MAC_CFG1_RXE | MAC_CFG1_TXE));
-
-    ag71xx_sb(ag, AG71XX_REG_MAC_CFG2,
-          MAC_CFG2_PAD_CRC_EN | MAC_CFG2_LEN_CHECK);
-
-    /* setup FIFO configuration register 0 */
-    ag71xx_wr(ag, AG71XX_REG_FIFO_CFG0, FIFO_CFG0_INIT);
-
-    /* setup MII interface type */
-    ag71xx_mii_ctrl_set_if(ag, ag->mii_if);
-
-    /* setup mdio clock divisor */
-    ag71xx_wr(ag, AG71XX_REG_MII_CFG, MII_CFG_CLK_DIV_20);
-       
-       /* setup FIFO configuration registers */
-       ag71xx_sb(ag, AG71XX_REG_FIFO_CFG4, FIFO_CFG4_INIT);
-    ag71xx_wr(ag, AG71XX_REG_FIFO_CFG1, 0x0fff0000);
-    ag71xx_wr(ag, AG71XX_REG_FIFO_CFG2, 0x00001fff);
-    ag71xx_wr(ag, AG71XX_REG_FIFO_CFG5, FIFO_CFG5_INIT);
-
-    ag71xx_dma_reset(ag);
-
-    ret = ag71xx_rings_init(ag);
-    if (ret)
-        return -1;
-
-       ag71xx_wr(ag, AG71XX_REG_TX_DESC, 
-                               (u32) virt_to_phys(ag->tx_ring.descs_dma));
-       ag71xx_wr(ag, AG71XX_REG_RX_DESC,
-                               (u32) virt_to_phys(ag->rx_ring.descs_dma));
-               
-       ag71xx_hw_set_macaddr(ag, ag->dev->enetaddr);
-       
-    return 0;
-}
-
-#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
-#define AG71XX_MDIO_RETRY      1000
-#define AG71XX_MDIO_DELAY      5
-
-static inline struct ag71xx *ag71xx_name2mac(char *devname)
-{
-    if (strcmp(devname, agtable[0].dev->name) == 0)
-        return &agtable[0];
-    else if (strcmp(devname, agtable[1].dev->name) == 0)
-        return &agtable[1];
-    else
-        return NULL;
-}
-
-static inline void ag71xx_mdio_wr(struct ag71xx *ag, unsigned reg,
-                                 u32 value)
-{
-       uint32_t r;
-
-       r = ag->mac_base + reg;
-       writel(value, r);
-
-       /* flush write */
-       (void) readl(r);
-}
-
-static inline u32 ag71xx_mdio_rr(struct ag71xx *ag, unsigned reg)
-{
-       return readl(ag->mac_base + reg);
-}
-
-static int ag71xx_mdio_read(char *devname, unsigned char addr,
-                            unsigned char reg, unsigned short *val)
-{
-       struct ag71xx *ag = ag71xx_name2mac(devname);
-       uint16_t regData;
-       int i;
-
-       ag71xx_mdio_wr(ag, AG71XX_REG_MII_CMD, MII_CMD_WRITE);
-       ag71xx_mdio_wr(ag, AG71XX_REG_MII_ADDR,
-                       ((addr & 0xff) << MII_ADDR_SHIFT) | (reg & 0xff));
-       ag71xx_mdio_wr(ag, AG71XX_REG_MII_CMD, MII_CMD_READ);
-
-       i = AG71XX_MDIO_RETRY;
-       while (ag71xx_mdio_rr(ag, AG71XX_REG_MII_IND) & MII_IND_BUSY) {
-               if (i-- == 0) {
-                       printf("%s: mii_read timed out\n",
-                               ag->dev->name);
-                       return -1;
-               }
-               udelay(AG71XX_MDIO_DELAY);
-       }
-
-       regData = (uint16_t) ag71xx_mdio_rr(ag, AG71XX_REG_MII_STATUS) & 0xffff;
-       ag71xx_mdio_wr(ag, AG71XX_REG_MII_CMD, MII_CMD_WRITE);
-
-       DBG("mii_read: addr=%04x, reg=%04x, value=%04x\n", addr, reg, regData);
-
-    if (val)
-        *val = regData;
-
-       return 0;
-}
-
-static int ag71xx_mdio_write(char *devname, unsigned char addr,
-                            unsigned char reg, unsigned short val)
-{
-       struct ag71xx *ag = ag71xx_name2mac(devname);
-       int i;
-
-    if (ag == NULL)
-        return 1;
-
-       DBG("mii_write: addr=%04x, reg=%04x, value=%04x\n", addr, reg, val);
-
-       ag71xx_mdio_wr(ag, AG71XX_REG_MII_ADDR,
-                       ((addr & 0xff) << MII_ADDR_SHIFT) | (reg & 0xff));
-       ag71xx_mdio_wr(ag, AG71XX_REG_MII_CTRL, val);
-
-       i = AG71XX_MDIO_RETRY;
-       while (ag71xx_mdio_rr(ag, AG71XX_REG_MII_IND) & MII_IND_BUSY) {
-               if (i-- == 0) {
-                       printf("%s: mii_write timed out\n",
-                               ag->dev->name);
-                       break;
-               }
-               udelay(AG71XX_MDIO_DELAY);
-       }
-
-       return 0;
-}
-#endif
-
-int ag71xx_register(bd_t * bis, char *phyname[], uint16_t phyid[], uint16_t phyfixed[])
-{
-    int i, num = 0;
-    u8 used_ports[MAX_AG71XX_DEVS] = CONFIG_AG71XX_PORTS;
-
-       for (i = 0; i < MAX_AG71XX_DEVS; i++) {
-               /*skip if port is configured not to use */
-               if (used_ports[i] == 0)
-                       continue;
-
-               agtable[i].dev = malloc(sizeof(struct eth_device));
-               if (agtable[i].dev == NULL) {
-                       puts("malloc failed\n");
-                       return 0;
-        }
-               memset(agtable[i].dev, 0, sizeof(struct eth_device));
-               sprintf(agtable[i].dev->name, "eth%d", i);
-
-               agtable[i].dev->iobase = 0;
-               agtable[i].dev->init = ag71xx_hw_start;
-               agtable[i].dev->halt = ag71xx_halt;
-               agtable[i].dev->send = ag71xx_send;
-               agtable[i].dev->recv = ag71xx_recv;
-               agtable[i].dev->priv = (void *) (&agtable[i]);
-               agtable[i].macNum = i;
-               eth_register(agtable[i].dev);
-#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
-
-        if ((phyname == NULL) || (phyid == NULL) || (phyfixed == NULL))
-            return -1;
-
-        agtable[i].phyname = strdup(phyname[i]);
-        agtable[i].phyid = phyid[i];
-        agtable[i].phyfixed = phyfixed[i];
-
-        miiphy_register(agtable[i].dev->name, ag71xx_mdio_read,
-                       ag71xx_mdio_write);
-#endif
-
-               if (ag71xx_hw_init(&agtable[i]))
-                       continue;
-
-        num++;
-       }
-
-    return num;
-}
diff --git a/package/boot/uboot-ar71xx/src/drivers/net/ag71xx.h b/package/boot/uboot-ar71xx/src/drivers/net/ag71xx.h
deleted file mode 100644 (file)
index edce429..0000000
+++ /dev/null
@@ -1,374 +0,0 @@
-/*
- *  Atheros AR71xx built-in ethernet mac driver
- *
- *  Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
- *  Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
- *
- *  Based on Atheros' AG7100 driver
- *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License version 2 as published
- *  by the Free Software Foundation.
- */
-
-#ifndef __AG71XX_H
-#define __AG71XX_H
-
-#include <linux/types.h>
-#include <linux/bitops.h>
-
-#include <asm/ar71xx.h>
-
-// controller has 2 ports
-#define MAX_AG71XX_DEVS 2
-
-#define ETH_FCS_LEN    4
-
-#define SPEED_10        10
-#define SPEED_100       100
-#define SPEED_1000      1000
-
-
-#define AG71XX_INT_ERR (AG71XX_INT_RX_BE | AG71XX_INT_TX_BE)
-#define AG71XX_INT_TX  (AG71XX_INT_TX_PS)
-#define AG71XX_INT_RX  (AG71XX_INT_RX_PR | AG71XX_INT_RX_OF)
-
-#define AG71XX_INT_POLL        (AG71XX_INT_RX | AG71XX_INT_TX)
-#define AG71XX_INT_INIT        (AG71XX_INT_ERR | AG71XX_INT_POLL)
-
-#define AG71XX_TX_FIFO_LEN     2048
-#define AG71XX_TX_MTU_LEN      1536
-#define AG71XX_RX_PKT_RESERVE  64
-#define AG71XX_RX_PKT_SIZE     \
-       (AG71XX_RX_PKT_RESERVE + ETH_HLEN + ETH_FRAME_LEN + ETH_FCS_LEN)
-
-#ifndef CONFIG_SYS_RX_ETH_BUFFER
-#define AG71XX_TX_RING_SIZE    4
-#define AG71XX_RX_RING_SIZE    4
-#else
-#define AG71XX_TX_RING_SIZE    CONFIG_SYS_RX_ETH_BUFFER
-#define AG71XX_RX_RING_SIZE    CONFIG_SYS_RX_ETH_BUFFER
-#endif
-
-#define AG71XX_TX_THRES_STOP   (AG71XX_TX_RING_SIZE - 4)
-#define AG71XX_TX_THRES_WAKEUP \
-               (AG71XX_TX_RING_SIZE - (AG71XX_TX_RING_SIZE / 4))
-
-
-
-
-struct ag71xx_desc {
-       u32     data;
-       u32     ctrl;
-#define DESC_EMPTY     BIT(31)
-#define DESC_MORE      BIT(24)
-#define DESC_PKTLEN_M  0xfff
-       u32     next;
-       u32     pad;
-} __attribute__((aligned(4)));
-
-struct ag71xx_buf {
-       struct sk_buff          *skb;
-       struct ag71xx_desc      *desc;
-       dma_addr_t              dma_addr;
-       u32                     pad;
-};
-
-struct ag71xx_ring {
-       struct ag71xx_buf       *buf;
-       u8                      *descs_cpu;
-       u8                  *descs_dma;
-       unsigned int            desc_size;
-       unsigned int            curr;
-       unsigned int            size;
-};
-
-struct ag71xx {
-       uint32_t                    mac_base;
-       uint32_t                    mii_ctrl;
-
-       struct eth_device       *dev;
-
-       struct ag71xx_ring      rx_ring;
-       struct ag71xx_ring      tx_ring;
-
-    char               *phyname;
-    u16                 phyid;
-    u16                 phyfixed;
-       uint32_t                link;
-       uint32_t                speed;
-       int32_t                     duplex;
-    uint32_t            macNum;
-    uint32_t            mii_if;
-};
-
-void ag71xx_link_adjust(struct ag71xx *ag);
-
-int ag71xx_phy_connect(struct ag71xx *ag);
-void ag71xx_phy_disconnect(struct ag71xx *ag);
-void ag71xx_phy_start(struct ag71xx *ag);
-void ag71xx_phy_stop(struct ag71xx *ag);
-
-static inline int ag71xx_desc_empty(struct ag71xx_desc *desc)
-{
-       return ((desc->ctrl & DESC_EMPTY) != 0);
-}
-
-static inline int ag71xx_desc_pktlen(struct ag71xx_desc *desc)
-{
-       return (desc->ctrl & DESC_PKTLEN_M);
-}
-
-/* Register offsets */
-#define AG71XX_REG_MAC_CFG1    0x0000
-#define AG71XX_REG_MAC_CFG2    0x0004
-#define AG71XX_REG_MAC_IPG     0x0008
-#define AG71XX_REG_MAC_HDX     0x000c
-#define AG71XX_REG_MAC_MFL     0x0010
-#define AG71XX_REG_MII_CFG     0x0020
-#define AG71XX_REG_MII_CMD     0x0024
-#define AG71XX_REG_MII_ADDR    0x0028
-#define AG71XX_REG_MII_CTRL    0x002c
-#define AG71XX_REG_MII_STATUS  0x0030
-#define AG71XX_REG_MII_IND     0x0034
-#define AG71XX_REG_MAC_IFCTL   0x0038
-#define AG71XX_REG_MAC_ADDR1   0x0040
-#define AG71XX_REG_MAC_ADDR2   0x0044
-#define AG71XX_REG_FIFO_CFG0   0x0048
-#define AG71XX_REG_FIFO_CFG1   0x004c
-#define AG71XX_REG_FIFO_CFG2   0x0050
-#define AG71XX_REG_FIFO_CFG3   0x0054
-#define AG71XX_REG_FIFO_CFG4   0x0058
-#define AG71XX_REG_FIFO_CFG5   0x005c
-#define AG71XX_REG_FIFO_RAM0   0x0060
-#define AG71XX_REG_FIFO_RAM1   0x0064
-#define AG71XX_REG_FIFO_RAM2   0x0068
-#define AG71XX_REG_FIFO_RAM3   0x006c
-#define AG71XX_REG_FIFO_RAM4   0x0070
-#define AG71XX_REG_FIFO_RAM5   0x0074
-#define AG71XX_REG_FIFO_RAM6   0x0078
-#define AG71XX_REG_FIFO_RAM7   0x007c
-
-#define AG71XX_REG_TX_CTRL     0x0180
-#define AG71XX_REG_TX_DESC     0x0184
-#define AG71XX_REG_TX_STATUS   0x0188
-#define AG71XX_REG_RX_CTRL     0x018c
-#define AG71XX_REG_RX_DESC     0x0190
-#define AG71XX_REG_RX_STATUS   0x0194
-#define AG71XX_REG_INT_ENABLE  0x0198
-#define AG71XX_REG_INT_STATUS  0x019c
-
-#define MAC_CFG1_TXE           BIT(0)  /* Tx Enable */
-#define MAC_CFG1_STX           BIT(1)  /* Synchronize Tx Enable */
-#define MAC_CFG1_RXE           BIT(2)  /* Rx Enable */
-#define MAC_CFG1_SRX           BIT(3)  /* Synchronize Rx Enable */
-#define MAC_CFG1_TFC           BIT(4)  /* Tx Flow Control Enable */
-#define MAC_CFG1_RFC           BIT(5)  /* Rx Flow Control Enable */
-#define MAC_CFG1_LB            BIT(8)  /* Loopback mode */
-#define MAC_CFG1_SR            BIT(31) /* Soft Reset */
-
-#define MAC_CFG2_FDX           BIT(0)
-#define MAC_CFG2_CRC_EN                BIT(1)
-#define MAC_CFG2_PAD_CRC_EN    BIT(2)
-#define MAC_CFG2_LEN_CHECK     BIT(4)
-#define MAC_CFG2_HUGE_FRAME_EN BIT(5)
-#define MAC_CFG2_IF_1000       BIT(9)
-#define MAC_CFG2_IF_10_100     BIT(8)
-
-#define FIFO_CFG0_WTM          BIT(0)  /* Watermark Module */
-#define FIFO_CFG0_RXS          BIT(1)  /* Rx System Module */
-#define FIFO_CFG0_RXF          BIT(2)  /* Rx Fabric Module */
-#define FIFO_CFG0_TXS          BIT(3)  /* Tx System Module */
-#define FIFO_CFG0_TXF          BIT(4)  /* Tx Fabric Module */
-#define FIFO_CFG0_ALL  (FIFO_CFG0_WTM | FIFO_CFG0_RXS | FIFO_CFG0_RXF \
-                       | FIFO_CFG0_TXS | FIFO_CFG0_TXF)
-
-#define FIFO_CFG0_ENABLE_SHIFT 8
-
-#define FIFO_CFG4_DE           BIT(0)  /* Drop Event */
-#define FIFO_CFG4_DV           BIT(1)  /* RX_DV Event */
-#define FIFO_CFG4_FC           BIT(2)  /* False Carrier */
-#define FIFO_CFG4_CE           BIT(3)  /* Code Error */
-#define FIFO_CFG4_CR           BIT(4)  /* CRC error */
-#define FIFO_CFG4_LM           BIT(5)  /* Length Mismatch */
-#define FIFO_CFG4_LO           BIT(6)  /* Length out of range */
-#define FIFO_CFG4_OK           BIT(7)  /* Packet is OK */
-#define FIFO_CFG4_MC           BIT(8)  /* Multicast Packet */
-#define FIFO_CFG4_BC           BIT(9)  /* Broadcast Packet */
-#define FIFO_CFG4_DR           BIT(10) /* Dribble */
-#define FIFO_CFG4_LE           BIT(11) /* Long Event */
-#define FIFO_CFG4_CF           BIT(12) /* Control Frame */
-#define FIFO_CFG4_PF           BIT(13) /* Pause Frame */
-#define FIFO_CFG4_UO           BIT(14) /* Unsupported Opcode */
-#define FIFO_CFG4_VT           BIT(15) /* VLAN tag detected */
-#define FIFO_CFG4_FT           BIT(16) /* Frame Truncated */
-#define FIFO_CFG4_UC           BIT(17) /* Unicast Packet */
-
-#define FIFO_CFG5_DE           BIT(0)  /* Drop Event */
-#define FIFO_CFG5_DV           BIT(1)  /* RX_DV Event */
-#define FIFO_CFG5_FC           BIT(2)  /* False Carrier */
-#define FIFO_CFG5_CE           BIT(3)  /* Code Error */
-#define FIFO_CFG5_LM           BIT(4)  /* Length Mismatch */
-#define FIFO_CFG5_LO           BIT(5)  /* Length Out of Range */
-#define FIFO_CFG5_OK           BIT(6)  /* Packet is OK */
-#define FIFO_CFG5_MC           BIT(7)  /* Multicast Packet */
-#define FIFO_CFG5_BC           BIT(8)  /* Broadcast Packet */
-#define FIFO_CFG5_DR           BIT(9)  /* Dribble */
-#define FIFO_CFG5_CF           BIT(10) /* Control Frame */
-#define FIFO_CFG5_PF           BIT(11) /* Pause Frame */
-#define FIFO_CFG5_UO           BIT(12) /* Unsupported Opcode */
-#define FIFO_CFG5_VT           BIT(13) /* VLAN tag detected */
-#define FIFO_CFG5_LE           BIT(14) /* Long Event */
-#define FIFO_CFG5_FT           BIT(15) /* Frame Truncated */
-#define FIFO_CFG5_16           BIT(16) /* unknown */
-#define FIFO_CFG5_17           BIT(17) /* unknown */
-#define FIFO_CFG5_SF           BIT(18) /* Short Frame */
-#define FIFO_CFG5_BM           BIT(19) /* Byte Mode */
-
-#define AG71XX_INT_TX_PS       BIT(0)
-#define AG71XX_INT_TX_UR       BIT(1)
-#define AG71XX_INT_TX_BE       BIT(3)
-#define AG71XX_INT_RX_PR       BIT(4)
-#define AG71XX_INT_RX_OF       BIT(6)
-#define AG71XX_INT_RX_BE       BIT(7)
-
-#define MAC_IFCTL_SPEED                BIT(16)
-
-#define MII_CFG_CLK_DIV_4      0
-#define MII_CFG_CLK_DIV_6      2
-#define MII_CFG_CLK_DIV_8      3
-#define MII_CFG_CLK_DIV_10     4
-#define MII_CFG_CLK_DIV_14     5
-#define MII_CFG_CLK_DIV_20     6
-#define MII_CFG_CLK_DIV_28     7
-#define MII_CFG_RESET          BIT(31)
-
-#define MII_CMD_WRITE          0x0
-#define MII_CMD_READ           0x1
-#define MII_ADDR_SHIFT         8
-#define MII_IND_BUSY           BIT(0)
-#define MII_IND_INVALID                BIT(2)
-
-#define TX_CTRL_TXE            BIT(0)  /* Tx Enable */
-
-#define TX_STATUS_PS           BIT(0)  /* Packet Sent */
-#define TX_STATUS_UR           BIT(1)  /* Tx Underrun */
-#define TX_STATUS_BE           BIT(3)  /* Bus Error */
-
-#define RX_CTRL_RXE            BIT(0)  /* Rx Enable */
-
-#define RX_STATUS_PR           BIT(0)  /* Packet Received */
-#define RX_STATUS_OF           BIT(2)  /* Rx Overflow */
-#define RX_STATUS_BE           BIT(3)  /* Bus Error */
-
-#define MII_CTRL_IF_MASK       3
-#define MII_CTRL_SPEED_SHIFT   4
-#define MII_CTRL_SPEED_MASK    3
-#define MII_CTRL_SPEED_10      0
-#define MII_CTRL_SPEED_100     1
-#define MII_CTRL_SPEED_1000    2
-
-static inline void ag71xx_wr(struct ag71xx *ag, unsigned reg, u32 value)
-{
-       __raw_writel(value, ag->mac_base + reg);
-       /* flush write */
-       (void) __raw_readl(ag->mac_base + reg);
-}
-
-static inline u32 ag71xx_rr(struct ag71xx *ag, unsigned reg)
-{
-       return __raw_readl(ag->mac_base + reg);
-}
-
-static inline void ag71xx_sb(struct ag71xx *ag, unsigned reg, u32 mask)
-{
-       uint32_t r;
-
-       r = ag->mac_base + reg;
-       __raw_writel(__raw_readl(r) | mask, r);
-       /* flush write */
-       (void)__raw_readl(r);
-}
-
-static inline void ag71xx_cb(struct ag71xx *ag, unsigned reg, u32 mask)
-{
-       uint32_t r;
-
-       r = ag->mac_base + reg;
-       __raw_writel(__raw_readl(r) & ~mask, r);
-       /* flush write */
-       (void) __raw_readl(r);
-}
-
-static inline void ag71xx_int_enable(struct ag71xx *ag, u32 ints)
-{
-       ag71xx_sb(ag, AG71XX_REG_INT_ENABLE, ints);
-}
-
-static inline void ag71xx_int_disable(struct ag71xx *ag, u32 ints)
-{
-       ag71xx_cb(ag, AG71XX_REG_INT_ENABLE, ints);
-}
-
-static inline void ag71xx_mii_ctrl_wr(struct ag71xx *ag, u32 value)
-{
-       __raw_writel(value, ag->mii_ctrl);
-
-       /* flush write */
-       __raw_readl(ag->mii_ctrl);
-}
-
-static inline u32 ag71xx_mii_ctrl_rr(struct ag71xx *ag)
-{
-       return __raw_readl(ag->mii_ctrl);
-}
-
-static void inline ag71xx_mii_ctrl_set_if(struct ag71xx *ag,
-                                         unsigned int mii_if)
-{
-       u32 t;
-
-       t = ag71xx_mii_ctrl_rr(ag);
-       t &= ~(MII_CTRL_IF_MASK);
-       t |= (mii_if & MII_CTRL_IF_MASK);
-       ag71xx_mii_ctrl_wr(ag, t);
-}
-
-static void inline ag71xx_mii_ctrl_set_speed(struct ag71xx *ag,
-                                            unsigned int speed)
-{
-       u32 t;
-
-       t = ag71xx_mii_ctrl_rr(ag);
-       t &= ~(MII_CTRL_SPEED_MASK << MII_CTRL_SPEED_SHIFT);
-       t |= (speed & MII_CTRL_SPEED_MASK) << MII_CTRL_SPEED_SHIFT;
-       ag71xx_mii_ctrl_wr(ag, t);
-}
-
-#ifdef CONFIG_AG71XX_AR8216_SUPPORT
-void ag71xx_add_ar8216_header(struct ag71xx *ag, struct sk_buff *skb);
-int ag71xx_remove_ar8216_header(struct ag71xx *ag, struct sk_buff *skb,
-                               int pktlen);
-static inline int ag71xx_has_ar8216(struct ag71xx *ag)
-{
-       return ag71xx_get_pdata(ag)->has_ar8216;
-}
-#else
-static inline void ag71xx_add_ar8216_header(struct ag71xx *ag,
-                                          struct sk_buff *skb)
-{
-}
-
-static inline int ag71xx_remove_ar8216_header(struct ag71xx *ag,
-                                             struct sk_buff *skb,
-                                             int pktlen)
-{
-       return 0;
-}
-static inline int ag71xx_has_ar8216(struct ag71xx *ag)
-{
-       return 0;
-}
-#endif
-
-#endif /* _AG71XX_H */
diff --git a/package/boot/uboot-ar71xx/src/drivers/net/phy/rtl8366.h b/package/boot/uboot-ar71xx/src/drivers/net/phy/rtl8366.h
deleted file mode 100644 (file)
index f0567dd..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * (C) Copyright 2010
- * Michael Kurz <michi.kurz@googlemail.com>.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef RTL8366_MII_H
-#define RTL8366_MII_H
-
-#define        MII_CONTROL_REG             0
-#define        MII_STATUS_REG          1
-#define        MII_PHY_ID0                     2
-#define        MII_PHY_ID1                     3
-#define        MII_LOCAL_CAP           4
-#define        MII_REMOTE_CAP              5
-#define        MII_EXT_AUTONEG             6
-#define        MII_LOCAL_NEXT_PAGE         7
-#define        MII_REMOTE_NEXT_PAGE    8
-#define        MII_GIGA_CONTROL            9
-#define        MII_GIGA_STATUS             10
-#define        MII_EXT_STATUS_REG          15
-
-/* Control register */
-#define        MII_CONTROL_1000MBPS    6
-#define        MII_CONTROL_COLL_TEST   7
-#define        MII_CONTROL_FULLDUPLEX  8
-#define        MII_CONTROL_RENEG           9
-#define        MII_CONTROL_ISOLATE         10
-#define        MII_CONTROL_POWERDOWN   11
-#define        MII_CONTROL_AUTONEG         12
-#define        MII_CONTROL_100MBPS         13
-#define        MII_CONTROL_LOOPBACK    14
-#define        MII_CONTROL_RESET           15
-
-/* Status/Extended status register */
-/* Basic status */
-#define        MII_STATUS_CAPABILITY   0
-#define        MII_STATUS_JABBER           1
-#define        MII_STATUS_LINK_UP          2
-#define        MII_STATUS_AUTONEG_ABLE 3
-#define        MII_STATUS_REMOTE_FAULT 4
-#define        MII_STATUS_AUTONEG_DONE 5
-#define        MII_STATUS_NO_PREAMBLE  6
-#define        MII_STATUS_RESERVED         7
-#define        MII_STATUS_EXTENDED         8
-#define        MII_STATUS_100_T2_HALF  9
-#define        MII_STATUS_100_T2_FULL  10
-#define        MII_STATUS_10_TX_HALF   11
-#define        MII_STATUS_10_TX_FULL   12
-#define        MII_STATUS_100_TX_HALF  13
-#define        MII_STATUS_100_TX_FULL  14
-#define        MII_STATUS_100_T4           15
-
-#define        MII_GIGA_CONTROL_HALF   8
-#define        MII_GIGA_CONTROL_FULL   9
-#define        MII_GIGA_STATUS_HALF    10
-#define        MII_GIGA_STATUS_FULL    11
-
-/* Extended status */
-#define        MII_STATUS_1000_T_HALF  12
-#define        MII_STATUS_1000_T_FULL  13
-#define        MII_STATUS_1000_X_HALF  14
-#define        MII_STATUS_1000_X_FULL  15
-
-/* Local/Remmote capability register */
-#define        MII_CAP_10BASE_TX           5
-#define        MII_CAP_10BASE_TX_FULL  6
-#define        MII_CAP_100BASE_TX          7
-#define        MII_CAP_100BASE_TX_FULL 8
-#define        MII_CAP_100BASE_T4          9
-#define        MII_CAP_SYMM_PAUSE          10
-#define        MII_CAP_ASYMM_PAUSE         11
-#define        MII_CAP_RESERVED            12
-#define        MII_CAP_REMOTE_FAULT    13
-#define        MII_CAP_ACKNOWLEDGE         14
-#define        MII_CAP_NEXT_PAGE           15
-#define        MII_CAP_IEEE_802_3          0x0001
-
-#define        MII_LINK_MODE_MASK          0x1f
-
-#define REALTEK_RTL8366_CHIP_ID0    0x001C
-#define REALTEK_RTL8366_CHIP_ID1    0xC940
-#define REALTEK_RTL8366_CHIP_ID1_MP 0xC960
-
-#define REALTEK_MIN_PORT_ID     0
-#define REALTEK_MAX_PORT_ID     5
-#define REALTEK_MIN_PHY_ID      REALTEK_MIN_PORT_ID
-#define REALTEK_MAX_PHY_ID      4
-#define REALTEK_CPU_PORT_ID     REALTEK_MAX_PORT_ID
-#define REALTEK_PHY_PORT_MASK   ((1<<(REALTEK_MAX_PHY_ID+1)) - (1<<REALTEK_MIN_PHY_ID))
-#define REALTEK_CPU_PORT_MASK   (1<<REALTEK_CPU_PORT_ID)
-#define REALTEK_ALL_PORT_MASK   (REALTEK_PHY_PORT_MASK | REALTEK_CPU_PORT_MASK)
-
-/* port ability */
-#define RTL8366S_PORT_ABILITY_BASE                     0x0011
-
-/* port vlan control register */
-#define RTL8366S_PORT_VLAN_CTRL_BASE                   0x0058
-
-/* port linking status */
-#define RTL8366S_PORT_LINK_STATUS_BASE                 0x0060
-#define RTL8366S_PORT_STATUS_SPEED_BIT                 0
-#define RTL8366S_PORT_STATUS_SPEED_MSK                 0x0003
-#define RTL8366S_PORT_STATUS_DUPLEX_BIT                        2
-#define RTL8366S_PORT_STATUS_DUPLEX_MSK                        0x0004
-#define RTL8366S_PORT_STATUS_LINK_BIT                  4
-#define RTL8366S_PORT_STATUS_LINK_MSK                  0x0010
-#define RTL8366S_PORT_STATUS_TXPAUSE_BIT               5
-#define RTL8366S_PORT_STATUS_TXPAUSE_MSK               0x0020
-#define RTL8366S_PORT_STATUS_RXPAUSE_BIT               6
-#define RTL8366S_PORT_STATUS_RXPAUSE_MSK               0x0040
-#define RTL8366S_PORT_STATUS_AN_BIT                    7
-#define RTL8366S_PORT_STATUS_AN_MSK                    0x0080
-
-/* internal control */
-#define RTL8366S_RESET_CONTROL_REG                     0x0100
-#define RTL8366S_RESET_QUEUE_BIT                       2
-
-#define RTL8366S_CHIP_ID_REG                           0x0105
-
-/* MAC control */
-#define RTL8366S_MAC_FORCE_CTRL0_REG                   0x0F04
-#define RTL8366S_MAC_FORCE_CTRL1_REG                   0x0F05
-
-
-/* PHY registers control */
-#define RTL8366S_PHY_ACCESS_CTRL_REG                   0x8028
-#define RTL8366S_PHY_ACCESS_DATA_REG                   0x8029
-
-#define RTL8366S_PHY_CTRL_READ                         1
-#define RTL8366S_PHY_CTRL_WRITE                                0
-
-#define RTL8366S_PHY_REG_MASK                          0x1F
-#define RTL8366S_PHY_PAGE_OFFSET                       5
-#define RTL8366S_PHY_PAGE_MASK                         (0x7<<5)
-#define RTL8366S_PHY_NO_OFFSET                         9
-#define RTL8366S_PHY_NO_MASK                           (0x1F<<9)
-
-#define RTL8366S_PHY_NO_MAX                            4
-#define RTL8366S_PHY_PAGE_MAX                          7
-#define RTL8366S_PHY_ADDR_MAX                          31
-
-/* cpu port control reg */
-#define RTL8366S_CPU_CTRL_REG                          0x004F
-#define RTL8366S_CPU_DRP_BIT                           14
-#define RTL8366S_CPU_DRP_MSK                           0x4000
-#define RTL8366S_CPU_INSTAG_BIT                                15
-#define RTL8366S_CPU_INSTAG_MSK                                0x8000
-
-/* LED registers*/
-#define RTL8366S_LED_BLINK_REG                         0x420
-#define RTL8366S_LED_BLINKRATE_BIT                     0
-#define RTL8366S_LED_BLINKRATE_MSK                     0x0007
-#define RTL8366S_LED_INDICATED_CONF_REG                        0x421
-#define RTL8366S_LED_0_1_FORCE_REG                     0x422
-#define RTL8366S_LED_2_3_FORCE_REG                     0x423
-#define RTL8366S_LEDCONF_LEDFORCE                      0x1F
-#define RTL8366S_LED_GROUP_MAX                         4
-
-#define RTL8366S_GREEN_FEATURE_REG                     0x000A
-#define RTL8366S_GREEN_FEATURE_TX_BIT                  3
-#define RTL8366S_GREEN_FEATURE_TX_MSK                  0x0008
-#define RTL8366S_GREEN_FEATURE_RX_BIT                  4
-#define RTL8366S_GREEN_FEATURE_RX_MSK                  0x0010
-
-#define        RTL8366S_MODEL_ID_REG   0x5C
-#define        RTL8366S_REV_ID_REG     0x5D
-#define        RTL8366S_MODEL_8366SR   0x6027
-#define        RTL8366S_MODEL_8366RB   0x5937
-
-#endif
diff --git a/package/boot/uboot-ar71xx/src/drivers/net/phy/rtl8366_mii.c b/package/boot/uboot-ar71xx/src/drivers/net/phy/rtl8366_mii.c
deleted file mode 100644 (file)
index e3c5316..0000000
+++ /dev/null
@@ -1,786 +0,0 @@
-/*
- * (C) Copyright 2010
- * Michael Kurz <michi.kurz@googlemail.com>.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-
-#include <common.h>
-#include <net.h>
-#include <netdev.h>
-#include <miiphy.h>
-#include MII_GPIOINCLUDE
-
-#include "rtl8366.h"
-
-#ifdef DEBUG_RTL8366
-       #define DBG(fmt,args...)        printf (fmt ,##args)
-#else
-       #define DBG(fmt,args...)
-#endif
-
-
-//-------------------------------------------------------------------
-// Soft SMI functions
-//-------------------------------------------------------------------
-
-#define DELAY 2
-
-static void smi_init(void)
-{
-    MII_SDAINPUT;
-    MII_SCKINPUT;
-
-       MII_SETSDA(1);
-       MII_SETSCK(1);
-
-    udelay(20);
-}
-
-static void smi_start(void)
-{
-/*
- * rtl8366 chip needs a extra clock with
- * SDA high before start condition
- */
-
-    /* set gpio pins output */
-    MII_SDAOUTPUT;
-    MII_SCKOUTPUT;
-    udelay(DELAY);
-
-    /* set initial state: SCK:0, SDA:1 */
-    MII_SETSCK(0);
-    MII_SETSDA(1);
-    udelay(DELAY);
-
-    /* toggle clock */
-    MII_SETSCK(1);
-    udelay(DELAY);
-    MII_SETSCK(0);
-    udelay(DELAY);
-
-    /* start condition */
-    MII_SETSCK(1);
-    udelay(DELAY);
-    MII_SETSDA(0);
-    udelay(DELAY);
-    MII_SETSCK(0);
-    udelay(DELAY);
-    MII_SETSDA(1);
-}
-
-static void smi_stop(void)
-{
-/*
- * rtl8366 chip needs a extra clock with
- * SDA high after stop condition
- */
-
-    /* stop condition */
-       udelay(DELAY);
-    MII_SETSDA(0);
-    MII_SETSCK(1);
-    udelay(DELAY);
-    MII_SETSDA(1);
-    udelay(DELAY);
-    MII_SETSCK(1);
-    udelay(DELAY);
-    MII_SETSCK(0);
-    udelay(DELAY);
-
-    /* toggle clock */
-    MII_SETSCK(1);
-    udelay(DELAY);
-    MII_SETSCK(0);
-    udelay(DELAY);
-    MII_SETSCK(1);
-
-    /* set gpio pins input */
-    MII_SDAINPUT;
-    MII_SCKINPUT;
-}
-
-static void smi_writeBits(uint32_t data, uint8_t length)
-{
-    uint8_t test;
-
-    for( ; length > 0; length--) {
-        udelay(DELAY);
-
-        /* output data */
-        test = (((data & (1 << (length - 1))) != 0) ? 1 : 0);
-        MII_SETSDA(test);
-        udelay(DELAY);
-
-        /* toogle clock */
-        MII_SETSCK(1);
-        udelay(DELAY);
-        MII_SETSCK(0);
-    }
-}
-
-static uint32_t smi_readBits(uint8_t length)
-{
-    uint32_t ret;
-
-    MII_SDAINPUT;
-
-    for(ret = 0 ; length > 0; length--) {
-        udelay(DELAY);
-
-        ret <<= 1;
-
-        /* toogle clock */
-        MII_SETSCK(1);
-        udelay(DELAY);
-        ret |= MII_GETSDA;
-        MII_SETSCK(0);
-    }
-
-    MII_SDAOUTPUT;
-
-    return ret;
-}
-
-static int smi_waitAck(void)
-{
-    uint32_t retry = 0;
-
-       while (smi_readBits(1)) {
-               if (retry++ == 5)
-                       return -1;
-       }
-
-       return 0;
-
-}
-
-static int smi_read(uint32_t reg, uint32_t *data)
-{
-    uint32_t rawData;
-
-    /* send start condition */
-    smi_start();
-    /* send CTRL1 code: 0b1010*/
-    smi_writeBits(0x0a, 4);
-    /* send CTRL2 code: 0b100 */
-    smi_writeBits(0x04, 3);
-    /* send READ command */
-    smi_writeBits(0x01, 1);
-
-    /* wait for ACK */
-    if (smi_waitAck())
-        return -1;
-
-    /* send address low */
-    smi_writeBits(reg & 0xFF, 8);
-    /* wait for ACK */
-    if (smi_waitAck())
-        return -1;
-    /* send address high */
-    smi_writeBits((reg & 0xFF00) >> 8, 8);
-    /* wait for ACK */
-    if (smi_waitAck())
-        return -1;
-
-    /* read data low */
-    rawData = (smi_readBits(8) & 0xFF);
-    /* send ACK */
-    smi_writeBits(0, 1);
-    /* read data high */
-    rawData |= (smi_readBits(8) & 0xFF) << 8;
-    /* send NACK */
-    smi_writeBits(1, 1);
-
-    /* send stop condition */
-    smi_stop();
-
-    if (data)
-        *data = rawData;
-
-    return 0;
-}
-
-static int smi_write(uint32_t reg, uint32_t data)
-{
-    /* send start condition */
-    smi_start();
-    /* send CTRL1 code: 0b1010*/
-    smi_writeBits(0x0a, 4);
-    /* send CTRL2 code: 0b100 */
-    smi_writeBits(0x04, 3);
-    /* send WRITE command */
-    smi_writeBits(0x00, 1);
-
-    /* wait for ACK */
-    if (smi_waitAck())
-        return -1;
-
-    /* send address low */
-    smi_writeBits(reg & 0xFF, 8);
-    /* wait for ACK */
-    if (smi_waitAck())
-        return -1;
-    /* send address high */
-    smi_writeBits((reg & 0xFF00) >> 8, 8);
-    /* wait for ACK */
-    if (smi_waitAck())
-        return -1;
-
-    /* send data low */
-    smi_writeBits(data & 0xFF, 8);
-    /* wait for ACK */
-    if (smi_waitAck())
-        return -1;
-    /* send data high */
-    smi_writeBits((data & 0xFF00) >> 8, 8);
-    /* wait for ACK */
-    if (smi_waitAck())
-        return -1;
-
-    /* send stop condition */
-    smi_stop();
-
-    return 0;
-}
-
-
-//-------------------------------------------------------------------
-// Switch register read / write functions
-//-------------------------------------------------------------------
-static int rtl8366_readRegister(uint32_t reg, uint16_t *data)
-{
-    uint32_t regData;
-
-    DBG("rtl8366: read register=%#04x, data=", reg);
-
-    if (smi_read(reg, &regData)) {
-        printf("\nrtl8366 smi read failed!\n");
-        return -1;
-    }
-
-    if (data)
-        *data = regData;
-
-    DBG("%#04x\n", regData);
-
-    return 0;
-}
-
-static int rtl8366_writeRegister(uint32_t reg, uint16_t data)
-{
-    DBG("rtl8366: write register=%#04x, data=%#04x\n", reg, data);
-
-    if (smi_write(reg, data)) {
-        printf("rtl8366 smi write failed!\n");
-        return -1;
-    }
-
-    return 0;
-}
-
-static int rtl8366_setRegisterBit(uint32_t reg, uint32_t bitNum, uint32_t value)
-{
-    uint16_t regData;
-
-    if (bitNum >= 16)
-        return -1;
-
-    if (rtl8366_readRegister(reg, &regData))
-        return -1;
-
-    if (value)
-        regData |= (1 << bitNum);
-    else
-        regData &= ~(1 << bitNum);
-
-    if (rtl8366_writeRegister(reg, regData))
-        return -1;
-
-    return 0;
-}
-
-//-------------------------------------------------------------------
-// MII PHY read / write functions
-//-------------------------------------------------------------------
-static int rtl8366_getPhyReg(uint32_t phyNum, uint32_t reg, uint16_t *data)
-{
-    uint16_t phyAddr, regData;
-
-    if (phyNum > RTL8366S_PHY_NO_MAX) {
-               printf("rtl8366s: invalid phy number!\n");
-               return -1;
-       }
-
-    if (phyNum > RTL8366S_PHY_ADDR_MAX) {
-               printf("rtl8366s: invalid phy register number!\n");
-               return -1;
-       }
-
-       if (rtl8366_writeRegister(RTL8366S_PHY_ACCESS_CTRL_REG,
-                           RTL8366S_PHY_CTRL_READ))
-        return -1;
-
-    phyAddr = 0x8000 | (1 << (phyNum + RTL8366S_PHY_NO_OFFSET))
-                     | (reg & RTL8366S_PHY_REG_MASK);
-    if (rtl8366_writeRegister(phyAddr, 0))
-        return -1;
-
-    if (rtl8366_readRegister(RTL8366S_PHY_ACCESS_DATA_REG, &regData))
-        return -1;
-
-    if (data)
-        *data = regData;
-
-    return 0;
-}
-
-static int rtl8366_setPhyReg(uint32_t phyNum, uint32_t reg, uint16_t data)
-{
-    uint16_t phyAddr;
-
-    if (phyNum > RTL8366S_PHY_NO_MAX) {
-               printf("rtl8366s: invalid phy number!\n");
-               return -1;
-       }
-
-    if (phyNum > RTL8366S_PHY_ADDR_MAX) {
-               printf("rtl8366s: invalid phy register number!\n");
-               return -1;
-       }
-
-       if (rtl8366_writeRegister(RTL8366S_PHY_ACCESS_CTRL_REG,
-                           RTL8366S_PHY_CTRL_WRITE))
-        return -1;
-
-    phyAddr = 0x8000 | (1 << (phyNum + RTL8366S_PHY_NO_OFFSET))
-                     | (reg & RTL8366S_PHY_REG_MASK);
-    if (rtl8366_writeRegister(phyAddr, data))
-        return -1;
-
-    return 0;
-}
-
-static int rtl8366_miiread(char *devname, uchar phy_adr, uchar reg, ushort *data)
-{
-    uint16_t regData;
-
-    DBG("rtl8366_miiread: devname=%s, addr=%#02x, reg=%#02x\n",
-          devname, phy_adr, reg);
-
-    if (strcmp(devname, RTL8366_DEVNAME) != 0)
-        return -1;
-
-    if (rtl8366_getPhyReg(phy_adr, reg, &regData)) {
-        printf("rtl8366_miiread: write failed!\n");
-        return -1;
-    }
-
-    if (data)
-        *data = regData;
-
-    return 0;
-}
-
-static int rtl8366_miiwrite(char *devname, uchar phy_adr, uchar reg, ushort data)
-{
-    DBG("rtl8366_miiwrite: devname=%s, addr=%#02x, reg=%#02x, data=%#04x\n",
-          devname, phy_adr, reg, data);
-
-    if (strcmp(devname, RTL8366_DEVNAME) != 0)
-        return -1;
-
-    if (rtl8366_setPhyReg(phy_adr, reg, data)) {
-        printf("rtl8366_miiwrite: write failed!\n");
-        return -1;
-    }
-
-    return 0;
-}
-
-int rtl8366_mii_register(bd_t *bis)
-{
-    miiphy_register(strdup(RTL8366_DEVNAME), rtl8366_miiread,
-                       rtl8366_miiwrite);
-
-    return 0;
-}
-
-
-//-------------------------------------------------------------------
-// Switch management functions
-//-------------------------------------------------------------------
-
-int rtl8366s_setGreenFeature(uint32_t tx, uint32_t rx)
-{
-    if (rtl8366_setRegisterBit(RTL8366S_GREEN_FEATURE_REG,
-                               RTL8366S_GREEN_FEATURE_TX_BIT, tx))
-        return -1;
-
-    if (rtl8366_setRegisterBit(RTL8366S_GREEN_FEATURE_REG,
-                               RTL8366S_GREEN_FEATURE_RX_BIT, rx))
-        return -1;
-
-    return 0;
-}
-
-int rtl8366s_setPowerSaving(uint32_t phyNum, uint32_t enabled)
-{
-    uint16_t regData;
-
-    if (phyNum > RTL8366S_PHY_NO_MAX)
-        return -1;
-
-    if (rtl8366_getPhyReg(phyNum, 12, &regData))
-        return -1;
-
-    if (enabled)
-        regData |= (1 << 12);
-    else
-        regData &= ~(1 << 12);
-
-    if (rtl8366_setPhyReg(phyNum, 12, regData))
-        return -1;
-
-    return 0;
-}
-
-int rtl8366s_setGreenEthernet(uint32_t greenFeature, uint32_t powerSaving)
-{
-    uint32_t phyNum, i;
-    uint16_t regData;
-
-       const uint16_t greenSettings[][2] =
-       {
-               {0xBE5B,0x3500},
-               {0xBE5C,0xB975},
-               {0xBE5D,0xB9B9},
-               {0xBE77,0xA500},
-               {0xBE78,0x5A78},
-               {0xBE79,0x6478}
-       };
-
-    if (rtl8366_readRegister(RTL8366S_MODEL_ID_REG, &regData))
-        return -1;
-
-       switch (regData)
-       {
-               case 0x0000:
-                       for (i = 0; i < 6; i++) {
-                               if (rtl8366_writeRegister(RTL8366S_PHY_ACCESS_CTRL_REG, RTL8366S_PHY_CTRL_WRITE))
-                                       return -1;
-                               if (rtl8366_writeRegister(greenSettings[i][0], greenSettings[i][1]))
-                                       return -1;
-                       }
-                       break;
-
-               case RTL8366S_MODEL_8366SR:
-                       if (rtl8366_writeRegister(RTL8366S_PHY_ACCESS_CTRL_REG, RTL8366S_PHY_CTRL_WRITE))
-                               return -1;
-                       if (rtl8366_writeRegister(greenSettings[0][0], greenSettings[0][1]))
-                               return -1;
-                       break;
-
-               default:
-                       printf("rtl8366s_initChip: unsupported chip found!\n");
-                       return -1;
-       }
-
-    if (rtl8366s_setGreenFeature(greenFeature, powerSaving))
-        return -1;
-
-    for (phyNum = 0; phyNum <= RTL8366S_PHY_NO_MAX; phyNum++) {
-        if (rtl8366s_setPowerSaving(phyNum, powerSaving))
-            return -1;
-    }
-
-    return 0;
-}
-
-int rtl8366s_setCPUPortMask(uint8_t port, uint32_t enabled)
-{
-       if(port >= 6){
-               printf("rtl8366s_setCPUPortMask: invalid port number\n");
-               return -1;
-       }
-
-       return rtl8366_setRegisterBit(RTL8366S_CPU_CTRL_REG, port, enabled);
-}
-
-int rtl8366s_setCPUDisableInsTag(uint32_t enable)
-{
-       return rtl8366_setRegisterBit(RTL8366S_CPU_CTRL_REG,
-               RTL8366S_CPU_INSTAG_BIT, enable);
-}
-
-int rtl8366s_setCPUDropUnda(uint32_t enable)
-{
-       return rtl8366_setRegisterBit(RTL8366S_CPU_CTRL_REG,
-               RTL8366S_CPU_DRP_BIT, enable);
-}
-
-int rtl8366s_setCPUPort(uint8_t port, uint32_t noTag, uint32_t dropUnda)
-{
-       uint32_t i;
-
-       if(port >= 6){
-               printf("rtl8366s_setCPUPort: invalid port number\n");
-               return -1;
-       }
-
-       /* reset register */
-       for(i = 0; i < 6; i++)
-       {
-               if(rtl8366s_setCPUPortMask(i, 0)){
-                       printf("rtl8366s_setCPUPort: rtl8366s_setCPUPortMask failed\n");
-                       return -1;
-               }
-       }
-
-       if(rtl8366s_setCPUPortMask(port, 1)){
-               printf("rtl8366s_setCPUPort: rtl8366s_setCPUPortMask failed\n");
-               return -1;
-       }
-
-       if(rtl8366s_setCPUDisableInsTag(noTag)){
-               printf("rtl8366s_setCPUPort: rtl8366s_setCPUDisableInsTag fail\n");
-               return -1;
-       }
-
-       if(rtl8366s_setCPUDropUnda(dropUnda)){
-               printf("rtl8366s_setCPUPort: rtl8366s_setCPUDropUnda fail\n");
-               return -1;
-       }
-
-       return 0;
-}
-
-int rtl8366s_setLedConfig(uint32_t ledNum, uint8_t config)
-{
-    uint16_t regData;
-
-       if(ledNum >= RTL8366S_LED_GROUP_MAX) {
-               DBG("rtl8366s_setLedConfig: invalid led group\n");
-               return -1;
-       }
-
-    if(config > RTL8366S_LEDCONF_LEDFORCE) {
-               DBG("rtl8366s_setLedConfig: invalid led config\n");
-               return -1;
-       }
-
-       if (rtl8366_readRegister(RTL8366S_LED_INDICATED_CONF_REG, &regData)) {
-        printf("rtl8366s_setLedConfig: failed to get led register!\n");
-        return -1;
-       }
-
-       regData &= ~(0xF << (ledNum * 4));
-       regData |= config << (ledNum * 4);
-
-       if (rtl8366_writeRegister(RTL8366S_LED_INDICATED_CONF_REG, regData)) {
-        printf("rtl8366s_setLedConfig: failed to set led register!\n");
-        return -1;
-       }
-
-       return 0;
-}
-
-int rtl8366s_getLedConfig(uint32_t ledNum, uint8_t *config)
-{
-    uint16_t regData;
-
-       if(ledNum >= RTL8366S_LED_GROUP_MAX) {
-               DBG("rtl8366s_getLedConfig: invalid led group\n");
-               return -1;
-       }
-
-    if (rtl8366_readRegister(RTL8366S_LED_INDICATED_CONF_REG, &regData)) {
-        printf("rtl8366s_getLedConfig: failed to get led register!\n");
-        return -1;
-       }
-
-       if (config)
-        *config = (regData >> (ledNum * 4)) & 0xF;
-
-    return 0;
-}
-
-int rtl8366s_setLedForceValue(uint32_t group0, uint32_t group1,
-                              uint32_t group2, uint32_t group3)
-{
-    uint16_t regData;
-
-    regData = (group0 & 0x3F) | ((group1 & 0x3F) << 6);
-       if (rtl8366_writeRegister(RTL8366S_LED_0_1_FORCE_REG, regData)) {
-        printf("rtl8366s_setLedForceValue: failed to set led register!\n");
-        return -1;
-       }
-
-    regData = (group2 & 0x3F) | ((group3 & 0x3F) << 6);
-       if (rtl8366_writeRegister(RTL8366S_LED_2_3_FORCE_REG, regData)) {
-        printf("rtl8366s_setLedForceValue: failed to set led register!\n");
-        return -1;
-       }
-
-       return 0;
-}
-
-int rtl8366s_initChip(void)
-{
-    uint32_t ledGroup, i = 0;
-    uint16_t regData;
-    uint8_t ledData[RTL8366S_LED_GROUP_MAX];
-       const uint16_t (*chipData)[2];
-
-       const uint16_t chipB[][2] =
-       {
-               {0x0000,        0x0038},{0x8100,        0x1B37},{0xBE2E,        0x7B9F},{0xBE2B,        0xA4C8},
-               {0xBE74,        0xAD14},{0xBE2C,        0xDC00},{0xBE69,        0xD20F},{0xBE3B,        0xB414},
-               {0xBE24,        0x0000},{0xBE23,        0x00A1},{0xBE22,        0x0008},{0xBE21,        0x0120},
-               {0xBE20,        0x1000},{0xBE24,        0x0800},{0xBE24,        0x0000},{0xBE24,        0xF000},
-               {0xBE23,        0xDF01},{0xBE22,        0xDF20},{0xBE21,        0x101A},{0xBE20,        0xA0FF},
-               {0xBE24,        0xF800},{0xBE24,        0xF000},{0x0242,        0x02BF},{0x0245,        0x02BF},
-               {0x0248,        0x02BF},{0x024B,        0x02BF},{0x024E,        0x02BF},{0x0251,        0x02BF},
-               {0x0230,        0x0A32},{0x0233,        0x0A32},{0x0236,        0x0A32},{0x0239,        0x0A32},
-               {0x023C,        0x0A32},{0x023F,        0x0A32},{0x0254,        0x0A3F},{0x0255,        0x0064},
-               {0x0256,        0x0A3F},{0x0257,        0x0064},{0x0258,        0x0A3F},{0x0259,        0x0064},
-               {0x025A,        0x0A3F},{0x025B,        0x0064},{0x025C,        0x0A3F},{0x025D,        0x0064},
-               {0x025E,        0x0A3F},{0x025F,        0x0064},{0x0260,        0x0178},{0x0261,        0x01F4},
-               {0x0262,        0x0320},{0x0263,        0x0014},{0x021D,        0x9249},{0x021E,        0x0000},
-               {0x0100,        0x0004},{0xBE4A,        0xA0B4},{0xBE40,        0x9C00},{0xBE41,        0x501D},
-               {0xBE48,        0x3602},{0xBE47,        0x8051},{0xBE4C,        0x6465},{0x8000,        0x1F00},
-               {0x8001,        0x000C},{0x8008,        0x0000},{0x8007,        0x0000},{0x800C,        0x00A5},
-               {0x8101,        0x02BC},{0xBE53,        0x0005},{0x8E45,        0xAFE8},{0x8013,        0x0005},
-               {0xBE4B,        0x6700},{0x800B,        0x7000},{0xBE09,        0x0E00},
-               {0xFFFF, 0xABCD}
-       };
-
-    const uint16_t chipDefault[][2] =
-    {
-        {0x0242, 0x02BF},{0x0245, 0x02BF},{0x0248, 0x02BF},{0x024B, 0x02BF},
-               {0x024E, 0x02BF},{0x0251, 0x02BF},
-               {0x0254, 0x0A3F},{0x0256, 0x0A3F},{0x0258, 0x0A3F},{0x025A, 0x0A3F},
-               {0x025C, 0x0A3F},{0x025E, 0x0A3F},
-               {0x0263, 0x007C},{0x0100, 0x0004},
-               {0xBE5B, 0x3500},{0x800E, 0x200F},{0xBE1D, 0x0F00},{0x8001, 0x5011},
-               {0x800A, 0xA2F4},{0x800B, 0x17A3},{0xBE4B, 0x17A3},{0xBE41, 0x5011},
-               {0xBE17, 0x2100},{0x8000, 0x8304},{0xBE40, 0x8304},{0xBE4A, 0xA2F4},
-               {0x800C, 0xA8D5},{0x8014, 0x5500},{0x8015, 0x0004},{0xBE4C, 0xA8D5},
-               {0xBE59, 0x0008},{0xBE09, 0x0E00},{0xBE36, 0x1036},{0xBE37, 0x1036},
-               {0x800D, 0x00FF},{0xBE4D, 0x00FF},
-               {0xFFFF, 0xABCD}
-    };
-
-       DBG("rtl8366s_initChip\n");
-
-    /* save current led config and set to led force */
-    for (ledGroup = 0; ledGroup < RTL8366S_LED_GROUP_MAX; ledGroup++) {
-        if (rtl8366s_getLedConfig(ledGroup, &ledData[ledGroup]))
-            return -1;
-
-        if (rtl8366s_setLedConfig(ledGroup, RTL8366S_LEDCONF_LEDFORCE))
-            return -1;
-    }
-
-    if (rtl8366s_setLedForceValue(0,0,0,0))
-        return -1;
-
-    if (rtl8366_readRegister(RTL8366S_MODEL_ID_REG, &regData))
-        return -1;
-
-       switch (regData)
-       {
-               case 0x0000:
-                       chipData = chipB;
-                       break;
-
-               case RTL8366S_MODEL_8366SR:
-                       chipData = chipDefault;
-                       break;
-
-               default:
-                       printf("rtl8366s_initChip: unsupported chip found!\n");
-                       return -1;
-       }
-
-    DBG("rtl8366s_initChip: found %x chip\n", regData);
-
-    while ((chipData[i][0] != 0xFFFF) && (chipData[i][1] != 0xABCD)) {
-
-        /* phy settings*/
-        if ((chipData[i][0] & 0xBE00) == 0xBE00) {
-            if (rtl8366_writeRegister(RTL8366S_PHY_ACCESS_CTRL_REG,
-                                      RTL8366S_PHY_CTRL_WRITE))
-                return -1;
-        }
-
-        if (rtl8366_writeRegister(chipData[i][0], chipData[i][1]))
-            return -1;
-
-        i++;
-    }
-
-    /* chip needs some time */
-    udelay(100 * 1000);
-
-    /* restore led config */
-    for (ledGroup = 0; ledGroup < RTL8366S_LED_GROUP_MAX; ledGroup++) {
-        if (rtl8366s_setLedConfig(ledGroup, ledData[ledGroup]))
-            return -1;
-    }
-
-    return 0;
-}
-
-int rtl8366s_initialize(void)
-{
-       uint16_t regData;
-
-    DBG("rtl8366s_initialize: start setup\n");
-
-    smi_init();
-
-       rtl8366_readRegister(RTL8366S_CHIP_ID_REG, &regData);
-       DBG("Realtek 8366SR switch ID %#04x\n", regData);
-
-       if (regData != 0x8366) {
-               printf("rtl8366s_initialize: found unsupported switch\n");
-               return -1;
-       }
-
-    if (rtl8366s_initChip()) {
-        printf("rtl8366s_initialize: init chip failed\n");
-        return -1;
-    }
-
-       if (rtl8366s_setGreenEthernet(1, 1)) {
-       printf("rtl8366s_initialize: set green ethernet failed\n");
-       return -1;
-   }
-
-       /* Set port 5 noTag and don't dropUnda */
-       if (rtl8366s_setCPUPort(5, 1, 0)) {
-               printf("rtl8366s_initialize: set CPU port failed\n");
-               return -1;
-       }
-
-    return 0;
-}
diff --git a/package/boot/uboot-ar71xx/src/drivers/spi/ar71xx_spi.c b/package/boot/uboot-ar71xx/src/drivers/spi/ar71xx_spi.c
deleted file mode 100644 (file)
index bbe27b1..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * (C) Copyright 2010
- * Michael Kurz <michi.kurz@googlemail.com>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <malloc.h>
-#include <spi.h>
-
-#include <asm/addrspace.h>
-#include <asm/types.h>
-#include <asm/ar71xx.h>
-
-/*-----------------------------------------------------------------------
- * Definitions
- */
-
-#ifdef DEBUG_SPI
-#define PRINTD(fmt,args...)    printf (fmt ,##args)
-#else
-#define PRINTD(fmt,args...)
-#endif
-
-struct ar71xx_spi_slave {
-       struct spi_slave slave;
-       unsigned int mode;
-};
-
-static inline struct ar71xx_spi_slave *to_ar71xx_spi(struct spi_slave *slave)
-{
-       return container_of(slave, struct ar71xx_spi_slave, slave);
-}
-
-/*=====================================================================*/
-/*                         Public Functions                            */
-/*=====================================================================*/
-
-/*-----------------------------------------------------------------------
- * Initialization
- */
-void spi_init()
-{
-       PRINTD("ar71xx_spi: spi_init");
-
-       // Init SPI Hardware, disable remap, set clock
-       __raw_writel(0x43, KSEG1ADDR(AR71XX_SPI_BASE + SPI_REG_CTRL));
-       
-       PRINTD(" ---> out\n");
-}
-
-struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
-               unsigned int max_hz, unsigned int mode)
-{
-       struct ar71xx_spi_slave *ss;
-
-       PRINTD("ar71xx_spi: spi_setup_slave");
-       
-       if ((bus != 0) || (cs > 2))
-               return NULL;
-
-       ss = malloc(sizeof(struct ar71xx_spi_slave));
-       if (!ss)
-               return NULL;
-
-       ss->slave.bus = bus;
-       ss->slave.cs = cs;
-       ss->mode = mode;
-
-       /* TODO: Use max_hz to limit the SCK rate */
-
-       PRINTD(" ---> out\n");
-       
-       return &ss->slave;
-}
-
-void spi_free_slave(struct spi_slave *slave)
-{
-       struct ar71xx_spi_slave *ss = to_ar71xx_spi(slave);
-
-       free(ss);
-}
-
-int spi_claim_bus(struct spi_slave *slave)
-{
-
-       return 0;
-}
-
-void spi_release_bus(struct spi_slave *slave)
-{
-
-}
-
-int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout,
-               void *din, unsigned long flags)
-{
-       struct ar71xx_spi_slave *ss = to_ar71xx_spi(slave);
-       uint8_t *rx = din;
-       const uint8_t *tx = dout;
-       uint8_t curbyte, curbitlen, restbits;
-       uint32_t bytes = bitlen / 8;
-       uint32_t out;
-       uint32_t in;
-       
-       PRINTD("ar71xx_spi: spi_xfer: slave:%p bitlen:%08x dout:%p din:%p flags:%08x\n", slave, bitlen, dout, din, flags);
-       
-       if (flags & SPI_XFER_BEGIN) {
-               __raw_writel(SPI_FS_GPIO, KSEG1ADDR(AR71XX_SPI_BASE + SPI_REG_FS));
-               __raw_writel(SPI_IOC_CS_ALL, KSEG1ADDR(AR71XX_SPI_BASE + SPI_REG_IOC));
-       }
-       
-       restbits = (bitlen % 8);
-       if (restbits != 0)
-               bytes++;
-
-       // enable chip select
-       out = SPI_IOC_CS_ALL & ~(SPI_IOC_CS(slave->cs));
-
-       while (bytes--) {
-               
-               curbyte = 0;
-               if (tx) {
-                       curbyte = *tx++;
-               }
-               
-               if (restbits != 0) {
-                       curbitlen = restbits;
-                       curbyte <<= 8 - restbits;
-               } else {
-                       curbitlen = 8;
-               }
-               
-               PRINTD("ar71xx_spi: sending: data:%02x length:%d\n", curbyte, curbitlen);
-               
-               /* clock starts at inactive polarity */
-               for (curbyte <<= (8 - curbitlen); curbitlen; curbitlen--) {
-
-                       if (curbyte & (1 << 7))
-                               out |= SPI_IOC_DO;
-                       else
-                               out &= ~(SPI_IOC_DO);
-
-                       /* setup MSB (to slave) on trailing edge */
-                       __raw_writel(out, KSEG1ADDR(AR71XX_SPI_BASE + SPI_REG_IOC));
-
-                       __raw_writel(out | SPI_IOC_CLK, KSEG1ADDR(AR71XX_SPI_BASE + SPI_REG_IOC));
-
-                       curbyte <<= 1;
-               }
-               
-               in = __raw_readl(KSEG1ADDR(AR71XX_SPI_BASE + SPI_REG_RDS));
-               PRINTD("ar71xx_spi: received:%02x\n", in);
-               
-               if (rx) {
-                       if (restbits == 0) {
-                               *rx++ = in;
-                       } else {
-                               *rx++ = (in << (8 - restbits));
-                       }
-               }
-       }
-       
-       if (flags & SPI_XFER_END) {
-               __raw_writel(SPI_IOC_CS(slave->cs), KSEG1ADDR(AR71XX_SPI_BASE + SPI_REG_IOC));
-               __raw_writel(SPI_IOC_CS_ALL, KSEG1ADDR(AR71XX_SPI_BASE + SPI_REG_IOC));
-               __raw_writel(0, KSEG1ADDR(AR71XX_SPI_BASE + SPI_REG_FS));
-       }
-
-       PRINTD(" ---> out\n");
-       
-       return 0;
-}
diff --git a/package/boot/uboot-ar71xx/src/include/asm-mips/ar71xx.h b/package/boot/uboot-ar71xx/src/include/asm-mips/ar71xx.h
deleted file mode 100644 (file)
index e8f3f61..0000000
+++ /dev/null
@@ -1,515 +0,0 @@
-/*
- *  Atheros AR71xx SoC specific definitions
- *
- *  Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
- *  Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
- *
- *  Parts of this file are based on Atheros' 2.6.15 BSP
- *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License version 2 as published
- *  by the Free Software Foundation.
- */
-
-#ifndef __ASM_MACH_AR71XX_H
-#define __ASM_MACH_AR71XX_H
-
-#include <linux/types.h>
-#include <asm/io.h>
-#include <linux/bitops.h>
-
-#ifndef __ASSEMBLER__
-
-#define BIT(x) (1<<(x))
-
-#define AR71XX_PCI_MEM_BASE    0x10000000
-#define AR71XX_PCI_MEM_SIZE    0x08000000
-#define AR71XX_APB_BASE                0x18000000
-#define AR71XX_GE0_BASE                0x19000000
-#define AR71XX_GE0_SIZE                0x01000000
-#define AR71XX_GE1_BASE                0x1a000000
-#define AR71XX_GE1_SIZE                0x01000000
-#define AR71XX_EHCI_BASE       0x1b000000
-#define AR71XX_EHCI_SIZE       0x01000000
-#define AR71XX_OHCI_BASE       0x1c000000
-#define AR71XX_OHCI_SIZE       0x01000000
-#define AR7240_OHCI_BASE       0x1b000000
-#define AR7240_OHCI_SIZE       0x01000000
-#define AR71XX_SPI_BASE                0x1f000000
-#define AR71XX_SPI_SIZE                0x01000000
-
-#define AR71XX_DDR_CTRL_BASE   (AR71XX_APB_BASE + 0x00000000)
-#define AR71XX_DDR_CTRL_SIZE   0x10000
-#define AR71XX_CPU_BASE                (AR71XX_APB_BASE + 0x00010000)
-#define AR71XX_UART_BASE       (AR71XX_APB_BASE + 0x00020000)
-#define AR71XX_UART_SIZE       0x10000
-#define AR71XX_USB_CTRL_BASE   (AR71XX_APB_BASE + 0x00030000)
-#define AR71XX_USB_CTRL_SIZE   0x10000
-#define AR71XX_GPIO_BASE       (AR71XX_APB_BASE + 0x00040000)
-#define AR71XX_GPIO_SIZE       0x10000
-#define AR71XX_PLL_BASE                (AR71XX_APB_BASE + 0x00050000)
-#define AR71XX_PLL_SIZE                0x10000
-#define AR71XX_RESET_BASE      (AR71XX_APB_BASE + 0x00060000)
-#define AR71XX_RESET_SIZE      0x10000
-#define AR71XX_MII_BASE                (AR71XX_APB_BASE + 0x00070000)
-#define AR71XX_MII_SIZE                0x10000
-#define AR71XX_SLIC_BASE       (AR71XX_APB_BASE + 0x00090000)
-#define AR71XX_SLIC_SIZE       0x10000
-#define AR71XX_DMA_BASE                (AR71XX_APB_BASE + 0x000A0000)
-#define AR71XX_DMA_SIZE                0x10000
-#define AR71XX_STEREO_BASE     (AR71XX_APB_BASE + 0x000B0000)
-#define AR71XX_STEREO_SIZE     0x10000
-
-#define AR724X_PCI_CRP_BASE    (AR71XX_APB_BASE + 0x000C0000)
-#define AR724X_PCI_CRP_SIZE    0x100
-
-#define AR724X_PCI_CTRL_BASE   (AR71XX_APB_BASE + 0x000F0000)
-#define AR724X_PCI_CTRL_SIZE   0x100
-
-#define AR91XX_WMAC_BASE       (AR71XX_APB_BASE + 0x000C0000)
-#define AR91XX_WMAC_SIZE       0x30000
-
-#define AR71XX_MEM_SIZE_MIN    0x0200000
-#define AR71XX_MEM_SIZE_MAX    0x10000000
-
-#define AR71XX_CPU_IRQ_BASE    0
-#define AR71XX_MISC_IRQ_BASE   8
-#define AR71XX_MISC_IRQ_COUNT  8
-#define AR71XX_GPIO_IRQ_BASE   16
-#define AR71XX_GPIO_IRQ_COUNT  32
-#define AR71XX_PCI_IRQ_BASE     48
-#define AR71XX_PCI_IRQ_COUNT   8
-
-#define AR71XX_CPU_IRQ_IP2     (AR71XX_CPU_IRQ_BASE + 2)
-#define AR71XX_CPU_IRQ_USB     (AR71XX_CPU_IRQ_BASE + 3)
-#define AR71XX_CPU_IRQ_GE0     (AR71XX_CPU_IRQ_BASE + 4)
-#define AR71XX_CPU_IRQ_GE1     (AR71XX_CPU_IRQ_BASE + 5)
-#define AR71XX_CPU_IRQ_MISC    (AR71XX_CPU_IRQ_BASE + 6)
-#define AR71XX_CPU_IRQ_TIMER   (AR71XX_CPU_IRQ_BASE + 7)
-
-#define AR71XX_MISC_IRQ_TIMER  (AR71XX_MISC_IRQ_BASE + 0)
-#define AR71XX_MISC_IRQ_ERROR  (AR71XX_MISC_IRQ_BASE + 1)
-#define AR71XX_MISC_IRQ_GPIO   (AR71XX_MISC_IRQ_BASE + 2)
-#define AR71XX_MISC_IRQ_UART   (AR71XX_MISC_IRQ_BASE + 3)
-#define AR71XX_MISC_IRQ_WDOG   (AR71XX_MISC_IRQ_BASE + 4)
-#define AR71XX_MISC_IRQ_PERFC  (AR71XX_MISC_IRQ_BASE + 5)
-#define AR71XX_MISC_IRQ_OHCI   (AR71XX_MISC_IRQ_BASE + 6)
-#define AR71XX_MISC_IRQ_DMA    (AR71XX_MISC_IRQ_BASE + 7)
-
-#define AR71XX_GPIO_IRQ(_x)    (AR71XX_GPIO_IRQ_BASE + (_x))
-
-#define AR71XX_PCI_IRQ_DEV0    (AR71XX_PCI_IRQ_BASE + 0)
-#define AR71XX_PCI_IRQ_DEV1    (AR71XX_PCI_IRQ_BASE + 1)
-#define AR71XX_PCI_IRQ_DEV2    (AR71XX_PCI_IRQ_BASE + 2)
-#define AR71XX_PCI_IRQ_CORE    (AR71XX_PCI_IRQ_BASE + 4)
-
-extern u32 ar71xx_ahb_freq;
-extern u32 ar71xx_cpu_freq;
-extern u32 ar71xx_ddr_freq;
-
-enum ar71xx_soc_type {
-       AR71XX_SOC_UNKNOWN,
-       AR71XX_SOC_AR7130,
-       AR71XX_SOC_AR7141,
-       AR71XX_SOC_AR7161,
-       AR71XX_SOC_AR7240,
-       AR71XX_SOC_AR7241,
-       AR71XX_SOC_AR7242,
-       AR71XX_SOC_AR9130,
-       AR71XX_SOC_AR9132
-};
-
-extern enum ar71xx_soc_type ar71xx_soc;
-
-/*
- * PLL block
- */
-#define AR71XX_PLL_REG_CPU_CONFIG      0x00
-#define AR71XX_PLL_REG_SEC_CONFIG      0x04
-#define AR71XX_PLL_REG_ETH0_INT_CLOCK  0x10
-#define AR71XX_PLL_REG_ETH1_INT_CLOCK  0x14
-
-#define AR71XX_PLL_DIV_SHIFT           3
-#define AR71XX_PLL_DIV_MASK            0x1f
-#define AR71XX_CPU_DIV_SHIFT           16
-#define AR71XX_CPU_DIV_MASK            0x3
-#define AR71XX_DDR_DIV_SHIFT           18
-#define AR71XX_DDR_DIV_MASK            0x3
-#define AR71XX_AHB_DIV_SHIFT           20
-#define AR71XX_AHB_DIV_MASK            0x7
-
-#define AR71XX_ETH0_PLL_SHIFT          17
-#define AR71XX_ETH1_PLL_SHIFT          19
-
-#define AR724X_PLL_REG_CPU_CONFIG      0x00
-#define AR724X_PLL_REG_PCIE_CONFIG     0x18
-
-#define AR724X_PLL_DIV_SHIFT           0
-#define AR724X_PLL_DIV_MASK            0x3ff
-#define AR724X_PLL_REF_DIV_SHIFT       10
-#define AR724X_PLL_REF_DIV_MASK                0xf
-#define AR724X_AHB_DIV_SHIFT           19
-#define AR724X_AHB_DIV_MASK            0x1
-#define AR724X_DDR_DIV_SHIFT           22
-#define AR724X_DDR_DIV_MASK            0x3
-
-#define AR91XX_PLL_REG_CPU_CONFIG      0x00
-#define AR91XX_PLL_REG_ETH_CONFIG      0x04
-#define AR91XX_PLL_REG_ETH0_INT_CLOCK  0x14
-#define AR91XX_PLL_REG_ETH1_INT_CLOCK  0x18
-
-#define AR91XX_PLL_DIV_SHIFT           0
-#define AR91XX_PLL_DIV_MASK            0x3ff
-#define AR91XX_DDR_DIV_SHIFT           22
-#define AR91XX_DDR_DIV_MASK            0x3
-#define AR91XX_AHB_DIV_SHIFT           19
-#define AR91XX_AHB_DIV_MASK            0x1
-
-#define AR91XX_ETH0_PLL_SHIFT          20
-#define AR91XX_ETH1_PLL_SHIFT          22
-
-// extern void __iomem *ar71xx_pll_base;
-
-// static inline void ar71xx_pll_wr(unsigned reg, u32 val)
-// {
-       // __raw_writel(val, ar71xx_pll_base + reg);
-// }
-
-// static inline u32 ar71xx_pll_rr(unsigned reg)
-// {
-       // return __raw_readl(ar71xx_pll_base + reg);
-// }
-
-/*
- * USB_CONFIG block
- */
-#define USB_CTRL_REG_FLADJ     0x00
-#define USB_CTRL_REG_CONFIG    0x04
-
-// extern void __iomem *ar71xx_usb_ctrl_base;
-
-// static inline void ar71xx_usb_ctrl_wr(unsigned reg, u32 val)
-// {
-       // __raw_writel(val, ar71xx_usb_ctrl_base + reg);
-// }
-
-// static inline u32 ar71xx_usb_ctrl_rr(unsigned reg)
-// {
-       // return __raw_readl(ar71xx_usb_ctrl_base + reg);
-// }
-
-/*
- * GPIO block
- */
-#define GPIO_REG_OE            0x00
-#define GPIO_REG_IN            0x04
-#define GPIO_REG_OUT           0x08
-#define GPIO_REG_SET           0x0c
-#define GPIO_REG_CLEAR         0x10
-#define GPIO_REG_INT_MODE      0x14
-#define GPIO_REG_INT_TYPE      0x18
-#define GPIO_REG_INT_POLARITY  0x1c
-#define GPIO_REG_INT_PENDING   0x20
-#define GPIO_REG_INT_ENABLE    0x24
-#define GPIO_REG_FUNC          0x28
-
-#define AR71XX_GPIO_FUNC_STEREO_EN     BIT(17)
-#define AR71XX_GPIO_FUNC_SLIC_EN       BIT(16)
-#define AR71XX_GPIO_FUNC_SPI_CS2_EN    BIT(13)
-#define AR71XX_GPIO_FUNC_SPI_CS1_EN    BIT(12)
-#define AR71XX_GPIO_FUNC_UART_EN       BIT(8)
-#define AR71XX_GPIO_FUNC_USB_OC_EN     BIT(4)
-#define AR71XX_GPIO_FUNC_USB_CLK_EN    BIT(0)
-
-#define AR71XX_GPIO_COUNT      16
-
-#define AR724X_GPIO_FUNC_GE0_MII_CLK_EN                BIT(19)
-#define AR724X_GPIO_FUNC_SPI_EN                        BIT(18)
-#define AR724X_GPIO_FUNC_SPI_CS_EN2            BIT(14)
-#define AR724X_GPIO_FUNC_SPI_CS_EN1            BIT(13)
-#define AR724X_GPIO_FUNC_CLK_OBS5_EN           BIT(12)
-#define AR724X_GPIO_FUNC_CLK_OBS4_EN           BIT(11)
-#define AR724X_GPIO_FUNC_CLK_OBS3_EN           BIT(10)
-#define AR724X_GPIO_FUNC_CLK_OBS2_EN           BIT(9)
-#define AR724X_GPIO_FUNC_CLK_OBS1_EN           BIT(8)
-#define AR724X_GPIO_FUNC_ETH_SWITCH_LED4_EN    BIT(7)
-#define AR724X_GPIO_FUNC_ETH_SWITCH_LED3_EN    BIT(6)
-#define AR724X_GPIO_FUNC_ETH_SWITCH_LED2_EN    BIT(5)
-#define AR724X_GPIO_FUNC_ETH_SWITCH_LED1_EN    BIT(4)
-#define AR724X_GPIO_FUNC_ETH_SWITCH_LED0_EN    BIT(3)
-#define AR724X_GPIO_FUNC_UART_RTS_CTS_EN       BIT(2)
-#define AR724X_GPIO_FUNC_UART_EN               BIT(1)
-#define AR724X_GPIO_FUNC_JTAG_DISABLE          BIT(0)
-
-#define AR724X_GPIO_COUNT      18
-
-#define AR91XX_GPIO_FUNC_WMAC_LED_EN   BIT(22)
-#define AR91XX_GPIO_FUNC_EXP_PORT_CS_EN        BIT(21)
-#define AR91XX_GPIO_FUNC_I2S_REFCLKEN  BIT(20)
-#define AR91XX_GPIO_FUNC_I2S_MCKEN     BIT(19)
-#define AR91XX_GPIO_FUNC_I2S1_EN       BIT(18)
-#define AR91XX_GPIO_FUNC_I2S0_EN       BIT(17)
-#define AR91XX_GPIO_FUNC_SLIC_EN       BIT(16)
-#define AR91XX_GPIO_FUNC_UART_RTSCTS_EN        BIT(9)
-#define AR91XX_GPIO_FUNC_UART_EN       BIT(8)
-#define AR91XX_GPIO_FUNC_USB_CLK_EN    BIT(4)
-
-#define AR91XX_GPIO_COUNT      22
-
-// extern void __iomem *ar71xx_gpio_base;
-
-// static inline void ar71xx_gpio_wr(unsigned reg, u32 value)
-// {
-       // __raw_writel(value, ar71xx_gpio_base + reg);
-// }
-
-// static inline u32 ar71xx_gpio_rr(unsigned reg)
-// {
-       // return __raw_readl(ar71xx_gpio_base + reg);
-// }
-
-// void ar71xx_gpio_init(void) __init;
-// void ar71xx_gpio_function_enable(u32 mask);
-// void ar71xx_gpio_function_disable(u32 mask);
-// void ar71xx_gpio_function_setup(u32 set, u32 clear);
-
-/*
- * DDR_CTRL block
- */
-#define AR71XX_DDR_REG_PCI_WIN0                0x7c
-#define AR71XX_DDR_REG_PCI_WIN1                0x80
-#define AR71XX_DDR_REG_PCI_WIN2                0x84
-#define AR71XX_DDR_REG_PCI_WIN3                0x88
-#define AR71XX_DDR_REG_PCI_WIN4                0x8c
-#define AR71XX_DDR_REG_PCI_WIN5                0x90
-#define AR71XX_DDR_REG_PCI_WIN6                0x94
-#define AR71XX_DDR_REG_PCI_WIN7                0x98
-#define AR71XX_DDR_REG_FLUSH_GE0       0x9c
-#define AR71XX_DDR_REG_FLUSH_GE1       0xa0
-#define AR71XX_DDR_REG_FLUSH_USB       0xa4
-#define AR71XX_DDR_REG_FLUSH_PCI       0xa8
-
-#define AR724X_DDR_REG_FLUSH_GE0       0x7c
-#define AR724X_DDR_REG_FLUSH_GE1       0x80
-#define AR724X_DDR_REG_FLUSH_USB       0x84
-#define AR724X_DDR_REG_FLUSH_PCIE      0x88
-
-#define AR91XX_DDR_REG_FLUSH_GE0       0x7c
-#define AR91XX_DDR_REG_FLUSH_GE1       0x80
-#define AR91XX_DDR_REG_FLUSH_USB       0x84
-#define AR91XX_DDR_REG_FLUSH_WMAC      0x88
-
-#define PCI_WIN0_OFFS  0x10000000
-#define PCI_WIN1_OFFS  0x11000000
-#define PCI_WIN2_OFFS  0x12000000
-#define PCI_WIN3_OFFS  0x13000000
-#define PCI_WIN4_OFFS  0x14000000
-#define PCI_WIN5_OFFS  0x15000000
-#define PCI_WIN6_OFFS  0x16000000
-#define PCI_WIN7_OFFS  0x07000000
-
-// extern void __iomem *ar71xx_ddr_base;
-
-// static inline void ar71xx_ddr_wr(unsigned reg, u32 val)
-// {
-       // __raw_writel(val, ar71xx_ddr_base + reg);
-// }
-
-// static inline u32 ar71xx_ddr_rr(unsigned reg)
-// {
-       // return __raw_readl(ar71xx_ddr_base + reg);
-// }
-
-// void ar71xx_ddr_flush(u32 reg);
-
-/*
- * PCI block
- */
-#define AR71XX_PCI_CFG_BASE    (AR71XX_PCI_MEM_BASE + PCI_WIN7_OFFS + 0x10000)
-#define AR71XX_PCI_CFG_SIZE    0x100
-
-#define PCI_REG_CRP_AD_CBE     0x00
-#define PCI_REG_CRP_WRDATA     0x04
-#define PCI_REG_CRP_RDDATA     0x08
-#define PCI_REG_CFG_AD         0x0c
-#define PCI_REG_CFG_CBE                0x10
-#define PCI_REG_CFG_WRDATA     0x14
-#define PCI_REG_CFG_RDDATA     0x18
-#define PCI_REG_PCI_ERR                0x1c
-#define PCI_REG_PCI_ERR_ADDR   0x20
-#define PCI_REG_AHB_ERR                0x24
-#define PCI_REG_AHB_ERR_ADDR   0x28
-
-#define PCI_CRP_CMD_WRITE      0x00010000
-#define PCI_CRP_CMD_READ       0x00000000
-#define PCI_CFG_CMD_READ       0x0000000a
-#define PCI_CFG_CMD_WRITE      0x0000000b
-
-#define PCI_IDSEL_ADL_START    17
-
-#define AR724X_PCI_CFG_BASE    (AR71XX_PCI_MEM_BASE + 0x4000000)
-#define AR724X_PCI_CFG_SIZE    0x1000
-
-#define AR724X_PCI_REG_APP             0x00
-#define AR724X_PCI_REG_RESET           0x18
-#define AR724X_PCI_REG_INT_STATUS      0x4c
-#define AR724X_PCI_REG_INT_MASK                0x50
-
-#define AR724X_PCI_APP_LTSSM_ENABLE    BIT(0)
-#define AR724X_PCI_RESET_LINK_UP       BIT(0)
-
-#define AR724X_PCI_INT_DEV0            BIT(14)
-
-/*
- * RESET block
- */
-#define AR71XX_RESET_REG_TIMER                 0x00
-#define AR71XX_RESET_REG_TIMER_RELOAD          0x04
-#define AR71XX_RESET_REG_WDOG_CTRL             0x08
-#define AR71XX_RESET_REG_WDOG                  0x0c
-#define AR71XX_RESET_REG_MISC_INT_STATUS       0x10
-#define AR71XX_RESET_REG_MISC_INT_ENABLE       0x14
-#define AR71XX_RESET_REG_PCI_INT_STATUS                0x18
-#define AR71XX_RESET_REG_PCI_INT_ENABLE                0x1c
-#define AR71XX_RESET_REG_GLOBAL_INT_STATUS     0x20
-#define AR71XX_RESET_REG_RESET_MODULE          0x24
-#define AR71XX_RESET_REG_PERFC_CTRL            0x2c
-#define AR71XX_RESET_REG_PERFC0                        0x30
-#define AR71XX_RESET_REG_PERFC1                        0x34
-#define AR71XX_RESET_REG_REV_ID                        0x90
-
-#define AR91XX_RESET_REG_GLOBAL_INT_STATUS     0x18
-#define AR91XX_RESET_REG_RESET_MODULE          0x1c
-#define AR91XX_RESET_REG_PERF_CTRL             0x20
-#define AR91XX_RESET_REG_PERFC0                        0x24
-#define AR91XX_RESET_REG_PERFC1                        0x28
-
-#define AR724X_RESET_REG_RESET_MODULE          0x1c
-
-#define WDOG_CTRL_LAST_RESET           BIT(31)
-#define WDOG_CTRL_ACTION_MASK          3
-#define WDOG_CTRL_ACTION_NONE          0       /* no action */
-#define WDOG_CTRL_ACTION_GPI           1       /* general purpose interrupt */
-#define WDOG_CTRL_ACTION_NMI           2       /* NMI */
-#define WDOG_CTRL_ACTION_FCR           3       /* full chip reset */
-
-#define MISC_INT_DMA                   BIT(7)
-#define MISC_INT_OHCI                  BIT(6)
-#define MISC_INT_PERFC                 BIT(5)
-#define MISC_INT_WDOG                  BIT(4)
-#define MISC_INT_UART                  BIT(3)
-#define MISC_INT_GPIO                  BIT(2)
-#define MISC_INT_ERROR                 BIT(1)
-#define MISC_INT_TIMER                 BIT(0)
-
-#define PCI_INT_CORE                   BIT(4)
-#define PCI_INT_DEV2                   BIT(2)
-#define PCI_INT_DEV1                   BIT(1)
-#define PCI_INT_DEV0                   BIT(0)
-
-#define RESET_MODULE_EXTERNAL          BIT(28)
-#define RESET_MODULE_FULL_CHIP         BIT(24)
-#define RESET_MODULE_AMBA2WMAC         BIT(22)
-#define RESET_MODULE_CPU_NMI           BIT(21)
-#define RESET_MODULE_CPU_COLD          BIT(20)
-#define RESET_MODULE_DMA               BIT(19)
-#define RESET_MODULE_SLIC              BIT(18)
-#define RESET_MODULE_STEREO            BIT(17)
-#define RESET_MODULE_DDR               BIT(16)
-#define RESET_MODULE_GE1_MAC           BIT(13)
-#define RESET_MODULE_GE1_PHY           BIT(12)
-#define RESET_MODULE_USBSUS_OVERRIDE   BIT(10)
-#define RESET_MODULE_GE0_MAC           BIT(9)
-#define RESET_MODULE_GE0_PHY           BIT(8)
-#define RESET_MODULE_USB_OHCI_DLL      BIT(6)
-#define RESET_MODULE_USB_HOST          BIT(5)
-#define RESET_MODULE_USB_PHY           BIT(4)
-#define RESET_MODULE_USB_OHCI_DLL_7240 BIT(3)
-#define RESET_MODULE_PCI_BUS           BIT(1)
-#define RESET_MODULE_PCI_CORE          BIT(0)
-
-#define AR724X_RESET_GE1_MDIO          BIT(23)
-#define AR724X_RESET_GE0_MDIO          BIT(22)
-#define AR724X_RESET_PCIE_PHY_SERIAL   BIT(10)
-#define AR724X_RESET_PCIE_PHY          BIT(7)
-#define AR724X_RESET_PCIE              BIT(6)
-
-#define REV_ID_MAJOR_MASK      0xfff0
-#define REV_ID_MAJOR_AR71XX    0x00a0
-#define REV_ID_MAJOR_AR913X    0x00b0
-#define REV_ID_MAJOR_AR7240    0x00c0
-#define REV_ID_MAJOR_AR7241    0x0100
-#define REV_ID_MAJOR_AR7242    0x1100
-
-#define AR71XX_REV_ID_MINOR_MASK       0x3
-#define AR71XX_REV_ID_MINOR_AR7130     0x0
-#define AR71XX_REV_ID_MINOR_AR7141     0x1
-#define AR71XX_REV_ID_MINOR_AR7161     0x2
-#define AR71XX_REV_ID_REVISION_MASK    0x3
-#define AR71XX_REV_ID_REVISION_SHIFT   2
-
-#define AR91XX_REV_ID_MINOR_MASK       0x3
-#define AR91XX_REV_ID_MINOR_AR9130     0x0
-#define AR91XX_REV_ID_MINOR_AR9132     0x1
-#define AR91XX_REV_ID_REVISION_MASK    0x3
-#define AR91XX_REV_ID_REVISION_SHIFT   2
-
-#define AR724X_REV_ID_REVISION_MASK    0x3
-
-// extern void __iomem *ar71xx_reset_base;
-
-static inline void ar71xx_reset_wr(unsigned reg, u32 val)
-{
-       __raw_writel(val, KSEG1ADDR(AR71XX_RESET_BASE) + reg);
-}
-
-static inline u32 ar71xx_reset_rr(unsigned reg)
-{
-       return __raw_readl(KSEG1ADDR(AR71XX_RESET_BASE) + reg);
-}
-
-// void ar71xx_device_stop(u32 mask);
-// void ar71xx_device_start(u32 mask);
-// int ar71xx_device_stopped(u32 mask);
-
-/*
- * SPI block
- */
-#define SPI_REG_FS             0x00    /* Function Select */
-#define SPI_REG_CTRL           0x04    /* SPI Control */
-#define SPI_REG_IOC            0x08    /* SPI I/O Control */
-#define SPI_REG_RDS            0x0c    /* Read Data Shift */
-
-#define SPI_FS_GPIO            BIT(0)  /* Enable GPIO mode */
-
-#define SPI_CTRL_RD            BIT(6)  /* Remap Disable */
-#define SPI_CTRL_DIV_MASK      0x3f
-
-#define SPI_IOC_DO             BIT(0)  /* Data Out pin */
-#define SPI_IOC_CLK            BIT(8)  /* CLK pin */
-#define SPI_IOC_CS(n)          BIT(16 + (n))
-#define SPI_IOC_CS0            SPI_IOC_CS(0)
-#define SPI_IOC_CS1            SPI_IOC_CS(1)
-#define SPI_IOC_CS2            SPI_IOC_CS(2)
-#define SPI_IOC_CS_ALL         (SPI_IOC_CS0 | SPI_IOC_CS1 | SPI_IOC_CS2)
-
-// void ar71xx_flash_acquire(void);
-// void ar71xx_flash_release(void);
-
-/*
- * MII_CTRL block
- */
-#define MII_REG_MII0_CTRL      0x00
-#define MII_REG_MII1_CTRL      0x04
-
-#define MII0_CTRL_IF_GMII      0
-#define MII0_CTRL_IF_MII       1
-#define MII0_CTRL_IF_RGMII     2
-#define MII0_CTRL_IF_RMII      3
-
-#define MII1_CTRL_IF_RGMII     0
-#define MII1_CTRL_IF_RMII      1
-
-#endif /* __ASSEMBLER__ */
-
-#endif /* __ASM_MACH_AR71XX_H */
diff --git a/package/boot/uboot-ar71xx/src/include/asm-mips/ar71xx_gpio.h b/package/boot/uboot-ar71xx/src/include/asm-mips/ar71xx_gpio.h
deleted file mode 100644 (file)
index c92364b..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * (C) Copyright 2010
- * Michael Kurz <michi.kurz@googlemail.com>.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef _AR71XX_GPIO_H
-#define _AR71XX_GPIO_H
-
-#include <common.h>
-#include <asm/ar71xx.h>
-
-static inline void ar71xx_setpin(uint8_t pin, uint8_t state)
-{
-       uint32_t reg = readl(KSEG1ADDR(AR71XX_GPIO_BASE + GPIO_REG_OUT));
-
-       if (state != 0) {
-       reg |= (1 << pin);
-   } else {
-       reg &= ~(1 << pin);
-   }
-
-       writel(reg, KSEG1ADDR(AR71XX_GPIO_BASE + GPIO_REG_OUT));
-       readl(KSEG1ADDR(AR71XX_GPIO_BASE + GPIO_REG_OUT));
-}
-
-static inline uint32_t ar71xx_getpin(uint8_t pin)
-{
-    uint32_t reg = readl(KSEG1ADDR(AR71XX_GPIO_BASE + GPIO_REG_IN));
-    return (((reg & (1 << pin)) != 0) ? 1 : 0);
-}
-
-static inline void ar71xx_setpindir(uint8_t pin, uint8_t direction)
-{
-       uint32_t reg = readl(KSEG1ADDR(AR71XX_GPIO_BASE + GPIO_REG_OE));
-
-       if (direction != 0) {
-        reg |= (1 << pin);
-    } else {
-        reg &= ~(1 << pin);
-    }
-
-       writel(reg, KSEG1ADDR(AR71XX_GPIO_BASE + GPIO_REG_OE));
-       readl(KSEG1ADDR(AR71XX_GPIO_BASE + GPIO_REG_OE));
-}
-
-
-#endif /* AR71XX_GPIO_H */
diff --git a/package/boot/uboot-ar71xx/src/include/configs/nbg460n.h b/package/boot/uboot-ar71xx/src/include/configs/nbg460n.h
deleted file mode 100644 (file)
index dd9b4c3..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * (C) Copyright 2010
- * Michael Kurz <michi.kurz@googlemail.com>.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/* This file contains the configuration parameters for the zyxel nbg460n board. */
-
-#ifndef _NBG460N_CONFIG_H
-#define _NBG460N_CONFIG_H
-
-#define CONFIG_MIPS32          1  /* MIPS32 CPU core */
-#define CONFIG_AR71XX          1
-#define CONFIG_AR91XX          1
-#define CONFIG_SYS_HZ          1000
-#define CONFIG_SYS_MIPS_TIMER_FREQ (400000000/2)
-
-/* Cache Configuration */
-#define CONFIG_SYS_DCACHE_SIZE         32768
-#define CONFIG_SYS_ICACHE_SIZE         65536
-#define CONFIG_SYS_CACHELINE_SIZE      32
-/* Cache lock for stack */
-#define CONFIG_SYS_INIT_SP_OFFSET      0x1000
-
-#define CONFIG_SYS_MONITOR_BASE        (TEXT_BASE)
-
-#define CONFIG_BAUDRATE                115200
-#define CONFIG_SYS_BAUDRATE_TABLE  {115200}
-
-#define CONFIG_MISC_INIT_R
-
-/* SPI-Flash support */
-#define CONFIG_SPI_FLASH
-#define CONFIG_AR71XX_SPI
-#define CONFIG_SPI_FLASH_MACRONIX
-#define CONFIG_SF_DEFAULT_HZ   25000000
-
-#define CONFIG_ENV_SPI_MAX_HZ  25000000
-#define CONFIG_ENV_SPI_BUS             0
-#define CONFIG_ENV_SPI_CS              0
-
-#define        CONFIG_ENV_IS_IN_SPI_FLASH
-#define CONFIG_ENV_ADDR                        0xbfc20000
-#define CONFIG_ENV_OFFSET              0x20000
-#define CONFIG_ENV_SIZE                        0x01000
-#define CONFIG_ENV_SECT_SIZE   0x10000
-#define CONFIG_SYS_MAX_FLASH_BANKS 1
-#define CONFIG_SYS_MAX_FLASH_SECT 64
-#define CONFIG_SYS_FLASH_BASE  0xbfc00000
-
-/* Net support */
-#define CONFIG_ETHADDR_ADDR     0xbfc0fff8
-#define CONFIG_SYS_RX_ETH_BUFFER       16
-#define CONFIG_AG71XX
-#define CONFIG_AG71XX_PORTS     { 1, 1 }
-#define CONFIG_AG71XX_MII0_IIF  MII0_CTRL_IF_RGMII
-#define CONFIG_AG71XX_MII1_IIF  MII1_CTRL_IF_RGMII
-#define CONFIG_NET_MULTI
-#define CONFIG_IPADDR                  192.168.1.254
-#define CONFIG_SERVERIP                        192.168.1.42
-
-/* Switch support */
-#define CONFIG_MII
-#define CONFIG_RTL8366_MII
-#define RTL8366_PIN_SDA 16
-#define RTL8366_PIN_SCK 18
-#define MII_GPIOINCLUDE <asm/ar71xx_gpio.h>
-#define MII_SETSDA(x)   ar71xx_setpin(RTL8366_PIN_SDA, x)
-#define MII_GETSDA      ar71xx_getpin(RTL8366_PIN_SDA)
-#define MII_SETSCK(x)   ar71xx_setpin(RTL8366_PIN_SCK, x)
-#define MII_SDAINPUT    ar71xx_setpindir(RTL8366_PIN_SDA, 0)
-#define MII_SDAOUTPUT   ar71xx_setpindir(RTL8366_PIN_SDA, 1)
-#define MII_SCKINPUT    ar71xx_setpindir(RTL8366_PIN_SCK, 0)
-#define MII_SCKOUTPUT   ar71xx_setpindir(RTL8366_PIN_SCK, 1)
-
-#define CONFIG_BOOTDELAY       3
-#define        CONFIG_BOOTARGS         "console=ttyS0,115200 rootfstype==squashfs,jffs2 noinitrd machtype=NBG460N"
-#define CONFIG_BOOTCOMMAND     "bootm 0xbfc70000"
-#define CONFIG_LZMA
-
-
-/* Commands */
-#define CONFIG_SYS_NO_FLASH
-#include <config_cmd_default.h>
-#undef CONFIG_CMD_BDI
-#undef CONFIG_CMD_FPGA
-#undef CONFIG_CMD_IMI
-#undef CONFIG_CMD_IMLS
-#undef CONFIG_CMD_LOADS
-#define CONFIG_CMD_SF
-#define CONFIG_CMD_MII
-#define CONFIG_CMD_PING
-#define CONFIG_CMD_DHCP
-#define CONFIG_CMD_SPI
-
-/* Miscellaneous configurable options */
-#define CONFIG_SYS_PROMPT              "U-Boot> "
-#define CONFIG_SYS_CBSIZE              256
-#define CONFIG_SYS_MAXARGS             16
-#define CONFIG_SYS_PBSIZE              (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
-#define CONFIG_SYS_LONGHELP            1
-#define CONFIG_CMDLINE_EDITING 1
-#define CONFIG_AUTO_COMPLETE
-#define CONFIG_SYS_HUSH_PARSER
-#define CONFIG_SYS_PROMPT_HUSH_PS2     "> "
-
-/* Size of malloc() pool */
-#define CONFIG_SYS_MALLOC_LEN          ROUND(3 * 0x10000 + 128*1024, 0x1000)
-#define CONFIG_SYS_GBL_DATA_SIZE       128     /* 128 bytes for initial data */
-
-#define CONFIG_SYS_BOOTPARAMS_LEN      128*1024
-
-#define CONFIG_SYS_SDRAM_BASE          0x80000000     /* Cached addr */
-#define        CONFIG_SYS_LOAD_ADDR            0x80060000     /* default load address  */
-
-#define CONFIG_SYS_MEMTEST_START       0x80000800
-#define CONFIG_SYS_MEMTEST_END         0x81E00000
-
-#endif /* _NBG460N_CONFIG_H */
index 2c8166173701b0183579600b88efa22dd9054fd3..c16e60bac59f49f36f76d76a307a273ecde48f81 100644 (file)
@@ -31,11 +31,15 @@ ubootenv_mtdinfo () {
 }
 
 case "$board" in
+alfa-network,ap120c-ac |\
 glinet,gl-b1300 |\
 openmesh,a42 |\
 openmesh,a62)
        ubootenv_add_uci_config "/dev/mtd5" "0x0" "0x10000" "0x10000"
        ;;
+linksys,ea6350v3)
+       ubootenv_add_uci_config "/dev/mtd7" "0x0" "0x20000" "0x20000"
+       ;;
 zyxel,nbg6617)
        ubootenv_add_uci_config "/dev/mtd6" "0x0" "0x10000" "0x10000"
        ;;
diff --git a/package/boot/uboot-envtools/files/mpc85xx b/package/boot/uboot-envtools/files/mpc85xx
new file mode 100644 (file)
index 0000000..d219b57
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+[ -e /etc/config/ubootenv ] && exit 0
+
+touch /etc/config/ubootenv
+
+. /lib/uboot-envtools.sh
+. /lib/functions.sh
+
+board=$(board_name)
+
+case "$board" in
+ocedo,panda)
+       ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
+       ubootenv_add_uci_config "/dev/mtd2" "0x0" "0x20000" "0x20000"
+       ;;
+esac
+
+config_load ubootenv
+config_foreach ubootenv_add_app_config ubootenv
+
+exit 0
index 70b0f1663a8f18d404df46186feef69eeed4b123..e54fae81730bb593ad81ad17a05ece5c5a6e571b 100644 (file)
@@ -13,11 +13,10 @@ touch /etc/config/ubootenv
 board=$(board_name)
 
 case "$board" in
-akitio|\
-kd20|\
-stg212)
-       ubootenv_add_uci_config "/dev/ubi0_0" "0x0" "0x4000" "0x1F000" "1"
-       ubootenv_add_uci_config "/dev/ubi0_1" "0x0" "0x4000" "0x1F000" "1"
+"cloudengines,pogoplug"* | \
+"mitrastar,stg-212" | \
+"shuttle,kd20")
+       ubootenv_add_uci_config "/dev/mtd2" "0x0" "0x2000" "0x2000" "1"
        ;;
 esac
 
diff --git a/package/boot/uboot-mvebu/Makefile b/package/boot/uboot-mvebu/Makefile
deleted file mode 100644 (file)
index 61547ac..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# Copyright (C) 2016 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-include $(INCLUDE_DIR)/kernel.mk
-
-PKG_VERSION:=2018.03
-PKG_RELEASE:=1
-
-PKG_HASH:=7e7477534409d5368eb1371ffde6820f0f79780a1a1f676161c48442cb303dfd
-
-include $(INCLUDE_DIR)/u-boot.mk
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/host-build.mk
-
-define U-Boot/Default
-  BUILD_TARGET:=mvebu
-  HIDDEN:=1
-endef
-
-define U-Boot/clearfog
-  NAME:=SolidRun ClearFog A1
-  BUILD_DEVICES:=armada-388-clearfog-base armada-388-clearfog-pro
-  BUILD_SUBTARGET:=cortexa9
-  UBOOT_IMAGE:=u-boot-spl.kwb
-endef
-
-UBOOT_TARGETS:= \
-       clearfog
-
-Build/Exports:=$(Host/Exports)
-
-define Build/Configure
-       # enable additional options beyond clearfog_defconfig
-       echo CONFIG_NET_RANDOM_ETHADDR=y >> $(PKG_BUILD_DIR)/configs/$(BUILD_VARIANT)_defconfig
-       echo CONFIG_CMD_SETEXPR=y >> $(PKG_BUILD_DIR)/configs/$(BUILD_VARIANT)_defconfig
-
-       +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) $(UBOOT_CONFIGURE_VARS) $(UBOOT_CONFIG)_config
-endef
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
-       $(CP) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-u-boot-spl.kwb
-endef
-
-$(eval $(call BuildPackage/U-Boot))
diff --git a/package/boot/uboot-mvebu/patches/210-link-libcrypto-static.patch b/package/boot/uboot-mvebu/patches/210-link-libcrypto-static.patch
deleted file mode 100644 (file)
index 0a5959a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-libreCMC links the libressl statically against mkimage, make sure all the 
-needed dependencies are added too.
-
---- a/tools/Makefile
-+++ b/tools/Makefile
-@@ -145,7 +145,7 @@ endif
- # MXSImage needs LibSSL
- ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_ARMADA_38X)$(CONFIG_ARMADA_39X)$(CONFIG_FIT_SIGNATURE),)
- HOSTLOADLIBES_mkimage += \
--      $(shell pkg-config --libs libssl libcrypto 2> /dev/null || echo "-lssl -lcrypto")
-+      $(shell pkg-config --libs --static libssl libcrypto 2> /dev/null || echo "-lssl -lpthread -lcrypto")
- # OS X deprecate openssl in favour of CommonCrypto, supress deprecation
- # warnings on those systems
diff --git a/package/boot/uboot-oxnas/Makefile b/package/boot/uboot-oxnas/Makefile
deleted file mode 100644 (file)
index daa266e..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-# Copyright (C) 2012 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-include $(INCLUDE_DIR)/kernel.mk
-
-PKG_VERSION:=2014.10
-PKG_RELEASE:=1
-
-PKG_HASH:=d3b132a7a9b3f3182b7aad71c2dfbd4fc15bea83e12c76134eb3ffefc07d1c71
-
-include $(INCLUDE_DIR)/u-boot.mk
-include $(INCLUDE_DIR)/package.mk
-
-define U-Boot/Default
-  BUILD_TARGET:=oxnas
-  BUILD_DEVICES:=Default
-  HIDDEN:=y
-endef
-
-define U-Boot/ox820
-  NAME:=Oxford/PLX NAS7820
-endef
-
-UBOOT_TARGETS:=ox820
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
-       $(CP) $(PKG_BUILD_DIR)/u-boot.bin $(STAGING_DIR_IMAGE)/u-boot.bin
-endef
-
-$(eval $(call BuildPackage/U-Boot))
diff --git a/package/boot/uboot-oxnas/patches/010-capacity-is-unsigned.patch b/package/boot/uboot-oxnas/patches/010-capacity-is-unsigned.patch
deleted file mode 100644 (file)
index 443b5e2..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From df9fb90120423c4c55b66a5dc09af23f605a406b Mon Sep 17 00:00:00 2001
-From: Daniel Golle <daniel@makrotopia.org>
-Date: Mon, 1 Dec 2014 21:37:25 +0100
-Subject: [PATCH] disk/part.c: use unsigned format when printing capacity
-To: u-boot@lists.denx.de
-
-Large disks otherwise produce highly unplausible output such as
-        Capacity: 1907729.0 MB = 1863.0 GB (-387938128 x 512)
-
-As supposedly all size-related decimals are unsigned, use unsigned
-format in printf statement, resulting in a correct capacity being
-displayed:
-        Capacity: 1907729.0 MB = 1863.0 GB (3907029168 x 512)
-
-Signed-off-by: Daniel Golle <daniel@makrotopia.org>
----
- disk/part.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/disk/part.c
-+++ b/disk/part.c
-@@ -229,13 +229,13 @@ void dev_print (block_dev_desc_t *dev_de
-                       printf ("            Supports 48-bit addressing\n");
- #endif
- #if defined(CONFIG_SYS_64BIT_LBA)
--              printf ("            Capacity: %ld.%ld MB = %ld.%ld GB (%Ld x %ld)\n",
-+              printf ("            Capacity: %lu.%lu MB = %lu.%lu GB (%Lu x %lu)\n",
-                       mb_quot, mb_rem,
-                       gb_quot, gb_rem,
-                       lba,
-                       dev_desc->blksz);
- #else
--              printf ("            Capacity: %ld.%ld MB = %ld.%ld GB (%ld x %ld)\n",
-+              printf ("            Capacity: %lu.%lu MB = %lu.%lu GB (%lu x %lu)\n",
-                       mb_quot, mb_rem,
-                       gb_quot, gb_rem,
-                       (ulong)lba,
diff --git a/package/boot/uboot-oxnas/patches/020-socfpgaimage_portability.patch b/package/boot/uboot-oxnas/patches/020-socfpgaimage_portability.patch
deleted file mode 100644 (file)
index e273c27..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
---- a/tools/socfpgaimage.c
-+++ b/tools/socfpgaimage.c
-@@ -74,12 +74,12 @@ static uint16_t hdr_checksum(struct socf
- static void build_header(uint8_t *buf, uint8_t version, uint8_t flags,
-                        uint16_t length_bytes)
- {
--      header.validation = htole32(VALIDATION_WORD);
-+      header.validation = cpu_to_le32(VALIDATION_WORD);
-       header.version = version;
-       header.flags = flags;
--      header.length_u32 = htole16(length_bytes/4);
-+      header.length_u32 = cpu_to_le16(length_bytes/4);
-       header.zero = 0;
--      header.checksum = htole16(hdr_checksum(&header));
-+      header.checksum = cpu_to_le16(hdr_checksum(&header));
-       memcpy(buf, &header, sizeof(header));
- }
-@@ -92,12 +92,12 @@ static int verify_header(const uint8_t *
- {
-       memcpy(&header, buf, sizeof(header));
--      if (le32toh(header.validation) != VALIDATION_WORD)
-+      if (le32_to_cpu(header.validation) != VALIDATION_WORD)
-               return -1;
--      if (le16toh(header.checksum) != hdr_checksum(&header))
-+      if (le16_to_cpu(header.checksum) != hdr_checksum(&header))
-               return -1;
--      return le16toh(header.length_u32) * 4;
-+      return le16_to_cpu(header.length_u32) * 4;
- }
- /* Sign the buffer and return the signed buffer size */
-@@ -116,7 +116,7 @@ static int sign_buffer(uint8_t *buf,
-       /* Calculate and apply the CRC */
-       calc_crc = ~pbl_crc32(0, (char *)buf, len);
--      *((uint32_t *)(buf + len)) = htole32(calc_crc);
-+      *((uint32_t *)(buf + len)) = cpu_to_le32(calc_crc);
-       if (!pad_64k)
-               return len + 4;
-@@ -150,7 +150,7 @@ static int verify_buffer(const uint8_t *
-       calc_crc = ~pbl_crc32(0, (const char *)buf, len);
--      buf_crc = le32toh(*((uint32_t *)(buf + len)));
-+      buf_crc = le32_to_cpu(*((uint32_t *)(buf + len)));
-       if (buf_crc != calc_crc) {
-               fprintf(stderr, "CRC32 does not match (%08x != %08x)\n",
diff --git a/package/boot/uboot-oxnas/patches/150-spl-block.patch b/package/boot/uboot-oxnas/patches/150-spl-block.patch
deleted file mode 100644 (file)
index 5d76084..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
---- a/common/spl/Makefile
-+++ b/common/spl/Makefile
-@@ -19,4 +19,5 @@ obj-$(CONFIG_SPL_MMC_SUPPORT) += spl_mmc
- obj-$(CONFIG_SPL_USB_SUPPORT) += spl_usb.o
- obj-$(CONFIG_SPL_FAT_SUPPORT) += spl_fat.o
- obj-$(CONFIG_SPL_SATA_SUPPORT) += spl_sata.o
-+obj-$(CONFIG_SPL_BLOCK_SUPPORT) += spl_block.o
- endif
---- a/common/spl/spl.c
-+++ b/common/spl/spl.c
-@@ -191,6 +191,14 @@ void board_init_r(gd_t *dummy1, ulong du
-               spl_spi_load_image();
-               break;
- #endif
-+#ifdef CONFIG_SPL_BLOCK_SUPPORT
-+      case BOOT_DEVICE_BLOCK:
-+      {
-+              extern void spl_block_load_image(void);
-+              spl_block_load_image();
-+              break;
-+      }
-+#endif
- #ifdef CONFIG_SPL_ETH_SUPPORT
-       case BOOT_DEVICE_CPGMAC:
- #ifdef CONFIG_SPL_ETH_DEVICE
---- a/common/cmd_nvedit.c
-+++ b/common/cmd_nvedit.c
-@@ -49,6 +49,7 @@ DECLARE_GLOBAL_DATA_PTR;
-       !defined(CONFIG_ENV_IS_IN_SPI_FLASH)    && \
-       !defined(CONFIG_ENV_IS_IN_REMOTE)       && \
-       !defined(CONFIG_ENV_IS_IN_UBI)          && \
-+      !defined(CONFIG_ENV_IS_IN_EXT4)         && \
-       !defined(CONFIG_ENV_IS_NOWHERE)
- # error Define one of CONFIG_ENV_IS_IN_{EEPROM|FLASH|DATAFLASH|ONENAND|\
- SPI_FLASH|NVRAM|MMC|FAT|REMOTE|UBI} or CONFIG_ENV_IS_NOWHERE
---- a/common/Makefile
-+++ b/common/Makefile
-@@ -63,6 +63,7 @@ obj-$(CONFIG_ENV_IS_IN_ONENAND) += env_o
- obj-$(CONFIG_ENV_IS_IN_SPI_FLASH) += env_sf.o
- obj-$(CONFIG_ENV_IS_IN_REMOTE) += env_remote.o
- obj-$(CONFIG_ENV_IS_IN_UBI) += env_ubi.o
-+obj-$(CONFIG_ENV_IS_IN_EXT4) += env_ext4.o
- obj-$(CONFIG_ENV_IS_NOWHERE) += env_nowhere.o
- # command
-@@ -213,6 +214,8 @@ obj-$(CONFIG_UPDATE_TFTP) += update.o
- obj-$(CONFIG_USB_KEYBOARD) += usb_kbd.o
- obj-$(CONFIG_CMD_DFU) += cmd_dfu.o
- obj-$(CONFIG_CMD_GPT) += cmd_gpt.o
-+else
-+obj-$(CONFIG_SPL_BLOCK_SUPPORT) += cmd_ide.o
- endif
- ifdef CONFIG_SPL_BUILD
diff --git a/package/boot/uboot-oxnas/patches/200-icplus-phy.patch b/package/boot/uboot-oxnas/patches/200-icplus-phy.patch
deleted file mode 100644 (file)
index b378331..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-From e719404ee1241af679a51879eaad291bc27e4817 Mon Sep 17 00:00:00 2001
-From: Daniel Golle <daniel@makrotopia.org>
-Date: Tue, 2 Dec 2014 14:46:05 +0100
-Subject: [PATCH] net/phy: add back icplus driver
-
-IC+ phy driver was removed due to the lack of users some time ago.
-Add it back, so we can use it.
----
- drivers/net/phy/Makefile |  1 +
- drivers/net/phy/icplus.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++++
- drivers/net/phy/phy.c    |  3 ++
- 3 files changed, 84 insertions(+)
- create mode 100644 drivers/net/phy/icplus.c
-
---- a/drivers/net/phy/Makefile
-+++ b/drivers/net/phy/Makefile
-@@ -15,6 +15,7 @@ obj-$(CONFIG_PHY_ATHEROS) += atheros.o
- obj-$(CONFIG_PHY_BROADCOM) += broadcom.o
- obj-$(CONFIG_PHY_DAVICOM) += davicom.o
- obj-$(CONFIG_PHY_ET1011C) += et1011c.o
-+obj-$(CONFIG_PHY_ICPLUS) += icplus.o
- obj-$(CONFIG_PHY_LXT) += lxt.o
- obj-$(CONFIG_PHY_MARVELL) += marvell.o
- obj-$(CONFIG_PHY_MICREL) += micrel.o
---- /dev/null
-+++ b/drivers/net/phy/icplus.c
-@@ -0,0 +1,93 @@
-+/*
-+ * ICPlus PHY drivers
-+ *
-+ * SPDX-License-Identifier:   GPL-2.0+
-+ *
-+ * Copyright (c) 2007 Freescale Semiconductor, Inc.
-+ */
-+#include <phy.h>
-+
-+/* IP101A/G - IP1001 */
-+#define IP10XX_SPEC_CTRL_STATUS         16      /* Spec. Control Register */
-+#define IP1001_SPEC_CTRL_STATUS_2       20      /* IP1001 Spec. Control Reg 2 */
-+#define IP1001_PHASE_SEL_MASK           3       /* IP1001 RX/TXPHASE_SEL */
-+#define IP1001_APS_ON                   11      /* IP1001 APS Mode  bit */
-+#define IP101A_G_APS_ON                 2       /* IP101A/G APS Mode bit */
-+#define IP101A_G_IRQ_CONF_STATUS        0x11    /* Conf Info IRQ & Status Reg */
-+#define IP101A_G_IRQ_PIN_USED           (1<<15) /* INTR pin used */
-+#define IP101A_G_IRQ_DEFAULT            IP101A_G_IRQ_PIN_USED
-+#define IP1001LF_DRIVE_MASK     (15 << 5)
-+#define IP1001LF_RXCLKDRIVE_HI  (2  << 5)
-+#define IP1001LF_RXDDRIVE_HI    (2  << 7)
-+#define IP1001LF_RXCLKDRIVE_M   (1  << 5)
-+#define IP1001LF_RXDDRIVE_M     (1  << 7)
-+#define IP1001LF_RXCLKDRIVE_L   (0  << 5)
-+#define IP1001LF_RXDDRIVE_L     (0  << 7)
-+#define IP1001LF_RXCLKDRIVE_VL  (3  << 5)
-+#define IP1001LF_RXDDRIVE_VL    (3  << 7)
-+
-+static int ip1001_config(struct phy_device *phydev)
-+{
-+      int c;
-+
-+      /* Enable Auto Power Saving mode */
-+      c = phy_read(phydev, MDIO_DEVAD_NONE, IP1001_SPEC_CTRL_STATUS_2);
-+      if (c < 0)
-+              return c;
-+      c |= IP1001_APS_ON;
-+      c = phy_write(phydev, MDIO_DEVAD_NONE, IP1001_SPEC_CTRL_STATUS_2, c);
-+      if (c < 0)
-+              return c;
-+
-+      /* INTR pin used: speed/link/duplex will cause an interrupt */
-+      c = phy_write(phydev, MDIO_DEVAD_NONE, IP101A_G_IRQ_CONF_STATUS,
-+                    IP101A_G_IRQ_DEFAULT);
-+      if (c < 0)
-+              return c;
-+
-+      if (phydev->interface == PHY_INTERFACE_MODE_RGMII) {
-+              /*
-+               * Additional delay (2ns) used to adjust RX clock phase
-+               * at RGMII interface
-+               */
-+              c = phy_read(phydev, MDIO_DEVAD_NONE, IP10XX_SPEC_CTRL_STATUS);
-+              if (c < 0)
-+                      return c;
-+
-+              c |= IP1001_PHASE_SEL_MASK;
-+              /* adjust digtial drive strength */
-+              c &= ~IP1001LF_DRIVE_MASK;
-+              c |=  IP1001LF_RXCLKDRIVE_M;
-+              c |=  IP1001LF_RXDDRIVE_M;
-+              c = phy_write(phydev, MDIO_DEVAD_NONE, IP10XX_SPEC_CTRL_STATUS,
-+                            c);
-+              if (c < 0)
-+                      return c;
-+      }
-+
-+      return 0;
-+}
-+
-+static int ip1001_startup(struct phy_device *phydev)
-+{
-+      genphy_update_link(phydev);
-+      genphy_parse_link(phydev);
-+
-+      return 0;
-+}
-+static struct phy_driver IP1001_driver = {
-+      .name = "ICPlus IP1001",
-+      .uid = 0x02430d90,
-+      .mask = 0x0ffffff0,
-+      .features = PHY_GBIT_FEATURES,
-+      .config = &ip1001_config,
-+      .startup = &ip1001_startup,
-+      .shutdown = &genphy_shutdown,
-+};
-+
-+int phy_icplus_init(void)
-+{
-+      phy_register(&IP1001_driver);
-+
-+      return 0;
-+}
---- a/drivers/net/phy/phy.c
-+++ b/drivers/net/phy/phy.c
-@@ -454,6 +454,9 @@ int phy_init(void)
- #ifdef CONFIG_PHY_ET1011C
-       phy_et1011c_init();
- #endif
-+#ifdef CONFIG_PHY_ICPLUS
-+      phy_icplus_init();
-+#endif
- #ifdef CONFIG_PHY_LXT
-       phy_lxt_init();
- #endif
---- a/include/phy.h
-+++ b/include/phy.h
-@@ -225,6 +225,7 @@ int phy_atheros_init(void);
- int phy_broadcom_init(void);
- int phy_davicom_init(void);
- int phy_et1011c_init(void);
-+int phy_icplus_init(void);
- int phy_lxt_init(void);
- int phy_marvell_init(void);
- int phy_micrel_init(void);
diff --git a/package/boot/uboot-oxnas/patches/300-oxnas-target.patch b/package/boot/uboot-oxnas/patches/300-oxnas-target.patch
deleted file mode 100644 (file)
index e677bd2..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
---- a/arch/arm/include/asm/mach-types.h
-+++ b/arch/arm/include/asm/mach-types.h
-@@ -212,6 +212,7 @@ extern unsigned int __machine_arch_type;
- #define MACH_TYPE_EDB9307A             1128
- #define MACH_TYPE_OMAP_3430SDP         1138
- #define MACH_TYPE_VSTMS                1140
-+#define MACH_TYPE_OXNAS                1152
- #define MACH_TYPE_MICRO9M              1169
- #define MACH_TYPE_BUG                  1179
- #define MACH_TYPE_AT91SAM9263EK        1202
---- a/drivers/block/Makefile
-+++ b/drivers/block/Makefile
-@@ -21,3 +21,4 @@ obj-$(CONFIG_IDE_SIL680) += sil680.o
- obj-$(CONFIG_SANDBOX) += sandbox.o
- obj-$(CONFIG_SCSI_SYM53C8XX) += sym53c8xx.o
- obj-$(CONFIG_SYSTEMACE) += systemace.o
-+obj-$(CONFIG_IDE_PLX) += plxsata_ide.o
---- a/drivers/usb/host/Makefile
-+++ b/drivers/usb/host/Makefile
-@@ -33,6 +33,7 @@ obj-$(CONFIG_USB_EHCI_MX6) += ehci-mx6.o
- obj-$(CONFIG_USB_EHCI_OMAP) += ehci-omap.o
- obj-$(CONFIG_USB_EHCI_PPC4XX) += ehci-ppc4xx.o
- obj-$(CONFIG_USB_EHCI_MARVELL) += ehci-marvell.o
-+obj-$(CONFIG_USB_EHCI_OXNAS) += ehci-oxnas.o
- obj-$(CONFIG_USB_EHCI_PCI) += ehci-pci.o
- obj-$(CONFIG_USB_EHCI_SPEAR) += ehci-spear.o
- obj-$(CONFIG_USB_EHCI_SUNXI) += ehci-sunxi.o
---- a/tools/.gitignore
-+++ b/tools/.gitignore
-@@ -9,6 +9,7 @@
- /mkenvimage
- /mkimage
- /mkexynosspl
-+/mkox820crc
- /mpc86x_clk
- /mxsboot
- /mksunxiboot
---- a/tools/Makefile
-+++ b/tools/Makefile
-@@ -143,6 +143,12 @@ hostprogs-$(CONFIG_KIRKWOOD) += kwboot
- hostprogs-y += proftool
- hostprogs-$(CONFIG_STATIC_RELA) += relocate-rela
-+
-+hostprogs-$(CONFIG_OX820) += mkox820crc$(SFX)
-+
-+mkox820crc$(SFX)-objs := mkox820crc.o lib/crc32.o
-+
-+
- # We build some files with extra pedantic flags to try to minimize things
- # that won't build on some weird host compiler -- though there are lots of
- # exceptions for files that aren't complaint.
---- a/drivers/serial/ns16550.c
-+++ b/drivers/serial/ns16550.c
-@@ -118,6 +118,14 @@ int ns16550_calc_divisor(NS16550_t port,
-       }
-       port->osc_12m_sel = 0;                  /* clear if previsouly set */
- #endif
-+#ifdef CONFIG_OX820
-+      {
-+              /* with additional 3 bit fractional */
-+              u32 div = (CONFIG_SYS_NS16550_CLK + baudrate) / (baudrate * 2);
-+              port->reg9 = (div & 7) << 5;
-+              return (div >> 3);
-+      }
-+#endif
-       return DIV_ROUND_CLOSEST(clock, mode_x_div * baudrate);
- }
---- a/scripts/Makefile.spl
-+++ b/scripts/Makefile.spl
-@@ -202,6 +202,9 @@ OBJCOPYFLAGS_$(SPL_BIN).bin = $(SPL_OBJC
- $(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN) FORCE
-       $(call if_changed,objcopy)
-+ifdef CONFIG_OX820
-+      $(OBJTREE)/tools/mkox820crc $@
-+endif
- LDFLAGS_$(SPL_BIN) += -T u-boot-spl.lds $(LDFLAGS_FINAL)
- ifneq ($(CONFIG_SPL_TEXT_BASE),)
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -488,6 +488,9 @@ config TARGET_BALLOON3
- config TARGET_H2200
-       bool "Support h2200"
-+config TARGET_OX820
-+      bool "Support ox820"
-+
- config TARGET_PALMLD
-       bool "Support palmld"
-@@ -650,6 +653,7 @@ source "board/logicpd/imx27lite/Kconfig"
- source "board/logicpd/imx31_litekit/Kconfig"
- source "board/mpl/vcma9/Kconfig"
- source "board/olimex/mx23_olinuxino/Kconfig"
-+source "board/ox820/Kconfig"
- source "board/palmld/Kconfig"
- source "board/palmtc/Kconfig"
- source "board/palmtreo680/Kconfig"
diff --git a/package/boot/uboot-oxnas/patches/400-gcc-5-compiler.patch b/package/boot/uboot-oxnas/patches/400-gcc-5-compiler.patch
deleted file mode 100644 (file)
index 8724927..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Sat, 7 Feb 2015 21:52:40 +0000 (+0100)
-Subject: Add linux/compiler-gcc5.h to fix builds with gcc5
-X-Git-Tag: v2015.04-rc2~31
-X-Git-Url: http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=478b02f1a7043b673565075ea5016376f3293b23
-
-Add linux/compiler-gcc5.h to fix builds with gcc5
-
-Add linux/compiler-gcc5/h from the kernel sources at:
-
-commit 5631b8fba640a4ab2f8a954f63a603fa34eda96b
-Author: Steven Noonan <steven@uplinklabs.net>
-Date:   Sat Oct 25 15:09:42 2014 -0700
-
-    compiler/gcc4+: Remove inaccurate comment about 'asm goto' miscompiles
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
-
---- /dev/null
-+++ b/include/linux/compiler-gcc5.h
-@@ -0,0 +1,65 @@
-+#ifndef __LINUX_COMPILER_H
-+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
-+#endif
-+
-+#define __used                                __attribute__((__used__))
-+#define __must_check                  __attribute__((warn_unused_result))
-+#define __compiler_offsetof(a, b)     __builtin_offsetof(a, b)
-+
-+/* Mark functions as cold. gcc will assume any path leading to a call
-+   to them will be unlikely.  This means a lot of manual unlikely()s
-+   are unnecessary now for any paths leading to the usual suspects
-+   like BUG(), printk(), panic() etc. [but let's keep them for now for
-+   older compilers]
-+
-+   Early snapshots of gcc 4.3 don't support this and we can't detect this
-+   in the preprocessor, but we can live with this because they're unreleased.
-+   Maketime probing would be overkill here.
-+
-+   gcc also has a __attribute__((__hot__)) to move hot functions into
-+   a special section, but I don't see any sense in this right now in
-+   the kernel context */
-+#define __cold                        __attribute__((__cold__))
-+
-+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
-+
-+#ifndef __CHECKER__
-+# define __compiletime_warning(message) __attribute__((warning(message)))
-+# define __compiletime_error(message) __attribute__((error(message)))
-+#endif /* __CHECKER__ */
-+
-+/*
-+ * Mark a position in code as unreachable.  This can be used to
-+ * suppress control flow warnings after asm blocks that transfer
-+ * control elsewhere.
-+ *
-+ * Early snapshots of gcc 4.5 don't support this and we can't detect
-+ * this in the preprocessor, but we can live with this because they're
-+ * unreleased.  Really, we need to have autoconf for the kernel.
-+ */
-+#define unreachable() __builtin_unreachable()
-+
-+/* Mark a function definition as prohibited from being cloned. */
-+#define __noclone     __attribute__((__noclone__))
-+
-+/*
-+ * Tell the optimizer that something else uses this function or variable.
-+ */
-+#define __visible __attribute__((externally_visible))
-+
-+/*
-+ * GCC 'asm goto' miscompiles certain code sequences:
-+ *
-+ *   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
-+ *
-+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
-+ *
-+ * (asm goto is automatically volatile - the naming reflects this.)
-+ */
-+#define asm_volatile_goto(x...)       do { asm goto(x); asm (""); } while (0)
-+
-+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
-+#define __HAVE_BUILTIN_BSWAP32__
-+#define __HAVE_BUILTIN_BSWAP64__
-+#define __HAVE_BUILTIN_BSWAP16__
-+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
diff --git a/package/boot/uboot-oxnas/patches/410-gcc-6-compiler.patch b/package/boot/uboot-oxnas/patches/410-gcc-6-compiler.patch
deleted file mode 100644 (file)
index 00d0657..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Sat, 7 Feb 2015 21:52:40 +0000 (+0100)
-Subject: Add linux/compiler-gcc6.h to fix builds with gcc6
-X-Git-Tag: v2015.04-rc2~31
-X-Git-Url: http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=478b02f1a7043b673565075ea5016376f3293b23
-
-Add linux/compiler-gcc6.h to fix builds with gcc6
-
-Add linux/compiler-gcc6/h from the kernel sources at:
-
-commit 5631b8fba640a4ab2f8a954f63a603fa34eda96b
-Author: Steven Noonan <steven@uplinklabs.net>
-Date:   Sat Oct 25 15:09:42 2014 -0700
-
-    compiler/gcc4+: Remove inaccurate comment about 'asm goto' miscompiles
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
-
---- /dev/null
-+++ b/include/linux/compiler-gcc6.h
-@@ -0,0 +1,284 @@
-+#ifndef __LINUX_COMPILER_H
-+#error "Please don't include <linux/compiler-gcc.h> directly, include <linux/compiler.h> instead."
-+#endif
-+
-+/*
-+ * Common definitions for all gcc versions go here.
-+ */
-+#define GCC_VERSION (__GNUC__ * 10000         \
-+                   + __GNUC_MINOR__ * 100     \
-+                   + __GNUC_PATCHLEVEL__)
-+
-+/* Optimization barrier */
-+
-+/* The "volatile" is due to gcc bugs */
-+#define barrier() __asm__ __volatile__("": : :"memory")
-+/*
-+ * This version is i.e. to prevent dead stores elimination on @ptr
-+ * where gcc and llvm may behave differently when otherwise using
-+ * normal barrier(): while gcc behavior gets along with a normal
-+ * barrier(), llvm needs an explicit input variable to be assumed
-+ * clobbered. The issue is as follows: while the inline asm might
-+ * access any memory it wants, the compiler could have fit all of
-+ * @ptr into memory registers instead, and since @ptr never escaped
-+ * from that, it proofed that the inline asm wasn't touching any of
-+ * it. This version works well with both compilers, i.e. we're telling
-+ * the compiler that the inline asm absolutely may see the contents
-+ * of @ptr. See also: https://llvm.org/bugs/show_bug.cgi?id=15495
-+ */
-+#define barrier_data(ptr) __asm__ __volatile__("": :"r"(ptr) :"memory")
-+
-+/*
-+ * This macro obfuscates arithmetic on a variable address so that gcc
-+ * shouldn't recognize the original var, and make assumptions about it.
-+ *
-+ * This is needed because the C standard makes it undefined to do
-+ * pointer arithmetic on "objects" outside their boundaries and the
-+ * gcc optimizers assume this is the case. In particular they
-+ * assume such arithmetic does not wrap.
-+ *
-+ * A miscompilation has been observed because of this on PPC.
-+ * To work around it we hide the relationship of the pointer and the object
-+ * using this macro.
-+ *
-+ * Versions of the ppc64 compiler before 4.1 had a bug where use of
-+ * RELOC_HIDE could trash r30. The bug can be worked around by changing
-+ * the inline assembly constraint from =g to =r, in this particular
-+ * case either is valid.
-+ */
-+#define RELOC_HIDE(ptr, off)                                          \
-+({                                                                    \
-+      unsigned long __ptr;                                            \
-+      __asm__ ("" : "=r"(__ptr) : "0"(ptr));                          \
-+      (typeof(ptr)) (__ptr + (off));                                  \
-+})
-+
-+/* Make the optimizer believe the variable can be manipulated arbitrarily. */
-+#define OPTIMIZER_HIDE_VAR(var)                                               \
-+      __asm__ ("" : "=r" (var) : "0" (var))
-+
-+#ifdef __CHECKER__
-+#define __must_be_array(a)    0
-+#else
-+/* &a[0] degrades to a pointer: a different type from an array */
-+#define __must_be_array(a)    BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
-+#endif
-+
-+/*
-+ * Force always-inline if the user requests it so via the .config,
-+ * or if gcc is too old:
-+ */
-+#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) ||              \
-+    !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4)
-+#define inline                inline          __attribute__((always_inline)) notrace
-+#define __inline__    __inline__      __attribute__((always_inline)) notrace
-+#define __inline      __inline        __attribute__((always_inline)) notrace
-+#else
-+/* A lot of inline functions can cause havoc with function tracing */
-+#define inline                inline          notrace
-+#define __inline__    __inline__      notrace
-+#define __inline      __inline        notrace
-+#endif
-+
-+#define __always_inline       inline __attribute__((always_inline))
-+#define  noinline     __attribute__((noinline))
-+
-+#define __deprecated  __attribute__((deprecated))
-+#define __packed      __attribute__((packed))
-+#define __weak                __attribute__((weak))
-+#define __alias(symbol)       __attribute__((alias(#symbol)))
-+
-+/*
-+ * it doesn't make sense on ARM (currently the only user of __naked)
-+ * to trace naked functions because then mcount is called without
-+ * stack and frame pointer being set up and there is no chance to
-+ * restore the lr register to the value before mcount was called.
-+ *
-+ * The asm() bodies of naked functions often depend on standard calling
-+ * conventions, therefore they must be noinline and noclone.
-+ *
-+ * GCC 4.[56] currently fail to enforce this, so we must do so ourselves.
-+ * See GCC PR44290.
-+ */
-+#define __naked               __attribute__((naked)) noinline __noclone notrace
-+
-+#define __noreturn    __attribute__((noreturn))
-+
-+/*
-+ * From the GCC manual:
-+ *
-+ * Many functions have no effects except the return value and their
-+ * return value depends only on the parameters and/or global
-+ * variables.  Such a function can be subject to common subexpression
-+ * elimination and loop optimization just as an arithmetic operator
-+ * would be.
-+ * [...]
-+ */
-+#define __pure                        __attribute__((pure))
-+#define __aligned(x)          __attribute__((aligned(x)))
-+#define __printf(a, b)                __attribute__((format(printf, a, b)))
-+#define __scanf(a, b)         __attribute__((format(scanf, a, b)))
-+#define __attribute_const__   __attribute__((__const__))
-+#define __maybe_unused                __attribute__((unused))
-+#define __always_unused               __attribute__((unused))
-+
-+/* gcc version specific checks */
-+
-+#if GCC_VERSION < 30200
-+# error Sorry, your compiler is too old - please upgrade it.
-+#endif
-+
-+#if GCC_VERSION < 30300
-+# define __used                       __attribute__((__unused__))
-+#else
-+# define __used                       __attribute__((__used__))
-+#endif
-+
-+#ifdef CONFIG_GCOV_KERNEL
-+# if GCC_VERSION < 30400
-+#   error "GCOV profiling support for gcc versions below 3.4 not included"
-+# endif /* __GNUC_MINOR__ */
-+#endif /* CONFIG_GCOV_KERNEL */
-+
-+#if GCC_VERSION >= 30400
-+#define __must_check          __attribute__((warn_unused_result))
-+#define __malloc              __attribute__((__malloc__))
-+#endif
-+
-+#if GCC_VERSION >= 40000
-+
-+/* GCC 4.1.[01] miscompiles __weak */
-+#ifdef __KERNEL__
-+# if GCC_VERSION >= 40100 &&  GCC_VERSION <= 40101
-+#  error Your version of gcc miscompiles the __weak directive
-+# endif
-+#endif
-+
-+#define __used                        __attribute__((__used__))
-+#define __compiler_offsetof(a, b)                                     \
-+      __builtin_offsetof(a, b)
-+
-+#if GCC_VERSION >= 40100 && GCC_VERSION < 40600
-+# define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
-+#endif
-+
-+#if GCC_VERSION >= 40300
-+/* Mark functions as cold. gcc will assume any path leading to a call
-+ * to them will be unlikely.  This means a lot of manual unlikely()s
-+ * are unnecessary now for any paths leading to the usual suspects
-+ * like BUG(), printk(), panic() etc. [but let's keep them for now for
-+ * older compilers]
-+ *
-+ * Early snapshots of gcc 4.3 don't support this and we can't detect this
-+ * in the preprocessor, but we can live with this because they're unreleased.
-+ * Maketime probing would be overkill here.
-+ *
-+ * gcc also has a __attribute__((__hot__)) to move hot functions into
-+ * a special section, but I don't see any sense in this right now in
-+ * the kernel context
-+ */
-+#define __cold                        __attribute__((__cold__))
-+
-+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
-+
-+#ifndef __CHECKER__
-+# define __compiletime_warning(message) __attribute__((warning(message)))
-+# define __compiletime_error(message) __attribute__((error(message)))
-+#endif /* __CHECKER__ */
-+#endif /* GCC_VERSION >= 40300 */
-+
-+#if GCC_VERSION >= 40500
-+/*
-+ * Mark a position in code as unreachable.  This can be used to
-+ * suppress control flow warnings after asm blocks that transfer
-+ * control elsewhere.
-+ *
-+ * Early snapshots of gcc 4.5 don't support this and we can't detect
-+ * this in the preprocessor, but we can live with this because they're
-+ * unreleased.  Really, we need to have autoconf for the kernel.
-+ */
-+#define unreachable() __builtin_unreachable()
-+
-+/* Mark a function definition as prohibited from being cloned. */
-+#define __noclone     __attribute__((__noclone__, __optimize__("no-tracer")))
-+
-+#endif /* GCC_VERSION >= 40500 */
-+
-+#if GCC_VERSION >= 40600
-+/*
-+ * When used with Link Time Optimization, gcc can optimize away C functions or
-+ * variables which are referenced only from assembly code.  __visible tells the
-+ * optimizer that something else uses this function or variable, thus preventing
-+ * this.
-+ */
-+#define __visible     __attribute__((externally_visible))
-+#endif
-+
-+
-+#if GCC_VERSION >= 40900 && !defined(__CHECKER__)
-+/*
-+ * __assume_aligned(n, k): Tell the optimizer that the returned
-+ * pointer can be assumed to be k modulo n. The second argument is
-+ * optional (default 0), so we use a variadic macro to make the
-+ * shorthand.
-+ *
-+ * Beware: Do not apply this to functions which may return
-+ * ERR_PTRs. Also, it is probably unwise to apply it to functions
-+ * returning extra information in the low bits (but in that case the
-+ * compiler should see some alignment anyway, when the return value is
-+ * massaged by 'flags = ptr & 3; ptr &= ~3;').
-+ */
-+#define __assume_aligned(a, ...) __attribute__((__assume_aligned__(a, ## __VA_ARGS__)))
-+#endif
-+
-+/*
-+ * GCC 'asm goto' miscompiles certain code sequences:
-+ *
-+ *   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
-+ *
-+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
-+ *
-+ * (asm goto is automatically volatile - the naming reflects this.)
-+ */
-+#define asm_volatile_goto(x...)       do { asm goto(x); asm (""); } while (0)
-+
-+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
-+#if GCC_VERSION >= 40400
-+#define __HAVE_BUILTIN_BSWAP32__
-+#define __HAVE_BUILTIN_BSWAP64__
-+#endif
-+#if GCC_VERSION >= 40800
-+#define __HAVE_BUILTIN_BSWAP16__
-+#endif
-+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
-+
-+#if GCC_VERSION >= 50000
-+#define KASAN_ABI_VERSION 4
-+#elif GCC_VERSION >= 40902
-+#define KASAN_ABI_VERSION 3
-+#endif
-+
-+#if GCC_VERSION >= 40902
-+/*
-+ * Tell the compiler that address safety instrumentation (KASAN)
-+ * should not be applied to that function.
-+ * Conflicts with inlining: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368
-+ */
-+#define __no_sanitize_address __attribute__((no_sanitize_address))
-+#endif
-+
-+#endif        /* gcc version >= 40000 specific checks */
-+
-+#if !defined(__noclone)
-+#define __noclone     /* not needed */
-+#endif
-+
-+#if !defined(__no_sanitize_address)
-+#define __no_sanitize_address
-+#endif
-+
-+/*
-+ * A trick to suppress uninitialized variable warning without generating any
-+ * code
-+ */
-+#define uninitialized_var(x) x = x
diff --git a/package/boot/uboot-oxnas/patches/420-gcc-7-compiler.patch b/package/boot/uboot-oxnas/patches/420-gcc-7-compiler.patch
deleted file mode 100644 (file)
index 0951629..0000000
+++ /dev/null
@@ -1,287 +0,0 @@
---- /dev/null
-+++ b/include/linux/compiler-gcc7.h
-@@ -0,0 +1,284 @@
-+#ifndef __LINUX_COMPILER_H
-+#error "Please don't include <linux/compiler-gcc.h> directly, include <linux/compiler.h> instead."
-+#endif
-+
-+/*
-+ * Common definitions for all gcc versions go here.
-+ */
-+#define GCC_VERSION (__GNUC__ * 10000         \
-+                   + __GNUC_MINOR__ * 100     \
-+                   + __GNUC_PATCHLEVEL__)
-+
-+/* Optimization barrier */
-+
-+/* The "volatile" is due to gcc bugs */
-+#define barrier() __asm__ __volatile__("": : :"memory")
-+/*
-+ * This version is i.e. to prevent dead stores elimination on @ptr
-+ * where gcc and llvm may behave differently when otherwise using
-+ * normal barrier(): while gcc behavior gets along with a normal
-+ * barrier(), llvm needs an explicit input variable to be assumed
-+ * clobbered. The issue is as follows: while the inline asm might
-+ * access any memory it wants, the compiler could have fit all of
-+ * @ptr into memory registers instead, and since @ptr never escaped
-+ * from that, it proofed that the inline asm wasn't touching any of
-+ * it. This version works well with both compilers, i.e. we're telling
-+ * the compiler that the inline asm absolutely may see the contents
-+ * of @ptr. See also: https://llvm.org/bugs/show_bug.cgi?id=15495
-+ */
-+#define barrier_data(ptr) __asm__ __volatile__("": :"r"(ptr) :"memory")
-+
-+/*
-+ * This macro obfuscates arithmetic on a variable address so that gcc
-+ * shouldn't recognize the original var, and make assumptions about it.
-+ *
-+ * This is needed because the C standard makes it undefined to do
-+ * pointer arithmetic on "objects" outside their boundaries and the
-+ * gcc optimizers assume this is the case. In particular they
-+ * assume such arithmetic does not wrap.
-+ *
-+ * A miscompilation has been observed because of this on PPC.
-+ * To work around it we hide the relationship of the pointer and the object
-+ * using this macro.
-+ *
-+ * Versions of the ppc64 compiler before 4.1 had a bug where use of
-+ * RELOC_HIDE could trash r30. The bug can be worked around by changing
-+ * the inline assembly constraint from =g to =r, in this particular
-+ * case either is valid.
-+ */
-+#define RELOC_HIDE(ptr, off)                                          \
-+({                                                                    \
-+      unsigned long __ptr;                                            \
-+      __asm__ ("" : "=r"(__ptr) : "0"(ptr));                          \
-+      (typeof(ptr)) (__ptr + (off));                                  \
-+})
-+
-+/* Make the optimizer believe the variable can be manipulated arbitrarily. */
-+#define OPTIMIZER_HIDE_VAR(var)                                               \
-+      __asm__ ("" : "=r" (var) : "0" (var))
-+
-+#ifdef __CHECKER__
-+#define __must_be_array(a)    0
-+#else
-+/* &a[0] degrades to a pointer: a different type from an array */
-+#define __must_be_array(a)    BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
-+#endif
-+
-+/*
-+ * Force always-inline if the user requests it so via the .config,
-+ * or if gcc is too old:
-+ */
-+#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) ||              \
-+    !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4)
-+#define inline                inline          __attribute__((always_inline)) notrace
-+#define __inline__    __inline__      __attribute__((always_inline)) notrace
-+#define __inline      __inline        __attribute__((always_inline)) notrace
-+#else
-+/* A lot of inline functions can cause havoc with function tracing */
-+#define inline                inline          notrace
-+#define __inline__    __inline__      notrace
-+#define __inline      __inline        notrace
-+#endif
-+
-+#define __always_inline       inline __attribute__((always_inline))
-+#define  noinline     __attribute__((noinline))
-+
-+#define __deprecated  __attribute__((deprecated))
-+#define __packed      __attribute__((packed))
-+#define __weak                __attribute__((weak))
-+#define __alias(symbol)       __attribute__((alias(#symbol)))
-+
-+/*
-+ * it doesn't make sense on ARM (currently the only user of __naked)
-+ * to trace naked functions because then mcount is called without
-+ * stack and frame pointer being set up and there is no chance to
-+ * restore the lr register to the value before mcount was called.
-+ *
-+ * The asm() bodies of naked functions often depend on standard calling
-+ * conventions, therefore they must be noinline and noclone.
-+ *
-+ * GCC 4.[56] currently fail to enforce this, so we must do so ourselves.
-+ * See GCC PR44290.
-+ */
-+#define __naked               __attribute__((naked)) noinline __noclone notrace
-+
-+#define __noreturn    __attribute__((noreturn))
-+
-+/*
-+ * From the GCC manual:
-+ *
-+ * Many functions have no effects except the return value and their
-+ * return value depends only on the parameters and/or global
-+ * variables.  Such a function can be subject to common subexpression
-+ * elimination and loop optimization just as an arithmetic operator
-+ * would be.
-+ * [...]
-+ */
-+#define __pure                        __attribute__((pure))
-+#define __aligned(x)          __attribute__((aligned(x)))
-+#define __printf(a, b)                __attribute__((format(printf, a, b)))
-+#define __scanf(a, b)         __attribute__((format(scanf, a, b)))
-+#define __attribute_const__   __attribute__((__const__))
-+#define __maybe_unused                __attribute__((unused))
-+#define __always_unused               __attribute__((unused))
-+
-+/* gcc version specific checks */
-+
-+#if GCC_VERSION < 30200
-+# error Sorry, your compiler is too old - please upgrade it.
-+#endif
-+
-+#if GCC_VERSION < 30300
-+# define __used                       __attribute__((__unused__))
-+#else
-+# define __used                       __attribute__((__used__))
-+#endif
-+
-+#ifdef CONFIG_GCOV_KERNEL
-+# if GCC_VERSION < 30400
-+#   error "GCOV profiling support for gcc versions below 3.4 not included"
-+# endif /* __GNUC_MINOR__ */
-+#endif /* CONFIG_GCOV_KERNEL */
-+
-+#if GCC_VERSION >= 30400
-+#define __must_check          __attribute__((warn_unused_result))
-+#define __malloc              __attribute__((__malloc__))
-+#endif
-+
-+#if GCC_VERSION >= 40000
-+
-+/* GCC 4.1.[01] miscompiles __weak */
-+#ifdef __KERNEL__
-+# if GCC_VERSION >= 40100 &&  GCC_VERSION <= 40101
-+#  error Your version of gcc miscompiles the __weak directive
-+# endif
-+#endif
-+
-+#define __used                        __attribute__((__used__))
-+#define __compiler_offsetof(a, b)                                     \
-+      __builtin_offsetof(a, b)
-+
-+#if GCC_VERSION >= 40100 && GCC_VERSION < 40600
-+# define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
-+#endif
-+
-+#if GCC_VERSION >= 40300
-+/* Mark functions as cold. gcc will assume any path leading to a call
-+ * to them will be unlikely.  This means a lot of manual unlikely()s
-+ * are unnecessary now for any paths leading to the usual suspects
-+ * like BUG(), printk(), panic() etc. [but let's keep them for now for
-+ * older compilers]
-+ *
-+ * Early snapshots of gcc 4.3 don't support this and we can't detect this
-+ * in the preprocessor, but we can live with this because they're unreleased.
-+ * Maketime probing would be overkill here.
-+ *
-+ * gcc also has a __attribute__((__hot__)) to move hot functions into
-+ * a special section, but I don't see any sense in this right now in
-+ * the kernel context
-+ */
-+#define __cold                        __attribute__((__cold__))
-+
-+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
-+
-+#ifndef __CHECKER__
-+# define __compiletime_warning(message) __attribute__((warning(message)))
-+# define __compiletime_error(message) __attribute__((error(message)))
-+#endif /* __CHECKER__ */
-+#endif /* GCC_VERSION >= 40300 */
-+
-+#if GCC_VERSION >= 40500
-+/*
-+ * Mark a position in code as unreachable.  This can be used to
-+ * suppress control flow warnings after asm blocks that transfer
-+ * control elsewhere.
-+ *
-+ * Early snapshots of gcc 4.5 don't support this and we can't detect
-+ * this in the preprocessor, but we can live with this because they're
-+ * unreleased.  Really, we need to have autoconf for the kernel.
-+ */
-+#define unreachable() __builtin_unreachable()
-+
-+/* Mark a function definition as prohibited from being cloned. */
-+#define __noclone     __attribute__((__noclone__, __optimize__("no-tracer")))
-+
-+#endif /* GCC_VERSION >= 40500 */
-+
-+#if GCC_VERSION >= 40600
-+/*
-+ * When used with Link Time Optimization, gcc can optimize away C functions or
-+ * variables which are referenced only from assembly code.  __visible tells the
-+ * optimizer that something else uses this function or variable, thus preventing
-+ * this.
-+ */
-+#define __visible     __attribute__((externally_visible))
-+#endif
-+
-+
-+#if GCC_VERSION >= 40900 && !defined(__CHECKER__)
-+/*
-+ * __assume_aligned(n, k): Tell the optimizer that the returned
-+ * pointer can be assumed to be k modulo n. The second argument is
-+ * optional (default 0), so we use a variadic macro to make the
-+ * shorthand.
-+ *
-+ * Beware: Do not apply this to functions which may return
-+ * ERR_PTRs. Also, it is probably unwise to apply it to functions
-+ * returning extra information in the low bits (but in that case the
-+ * compiler should see some alignment anyway, when the return value is
-+ * massaged by 'flags = ptr & 3; ptr &= ~3;').
-+ */
-+#define __assume_aligned(a, ...) __attribute__((__assume_aligned__(a, ## __VA_ARGS__)))
-+#endif
-+
-+/*
-+ * GCC 'asm goto' miscompiles certain code sequences:
-+ *
-+ *   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
-+ *
-+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
-+ *
-+ * (asm goto is automatically volatile - the naming reflects this.)
-+ */
-+#define asm_volatile_goto(x...)       do { asm goto(x); asm (""); } while (0)
-+
-+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
-+#if GCC_VERSION >= 40400
-+#define __HAVE_BUILTIN_BSWAP32__
-+#define __HAVE_BUILTIN_BSWAP64__
-+#endif
-+#if GCC_VERSION >= 40800
-+#define __HAVE_BUILTIN_BSWAP16__
-+#endif
-+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
-+
-+#if GCC_VERSION >= 50000
-+#define KASAN_ABI_VERSION 4
-+#elif GCC_VERSION >= 40902
-+#define KASAN_ABI_VERSION 3
-+#endif
-+
-+#if GCC_VERSION >= 40902
-+/*
-+ * Tell the compiler that address safety instrumentation (KASAN)
-+ * should not be applied to that function.
-+ * Conflicts with inlining: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368
-+ */
-+#define __no_sanitize_address __attribute__((no_sanitize_address))
-+#endif
-+
-+#endif        /* gcc version >= 40000 specific checks */
-+
-+#if !defined(__noclone)
-+#define __noclone     /* not needed */
-+#endif
-+
-+#if !defined(__no_sanitize_address)
-+#define __no_sanitize_address
-+#endif
-+
-+/*
-+ * A trick to suppress uninitialized variable warning without generating any
-+ * code
-+ */
-+#define uninitialized_var(x) x = x
diff --git a/package/boot/uboot-oxnas/patches/800-fix-bootm-assertion.patch b/package/boot/uboot-oxnas/patches/800-fix-bootm-assertion.patch
deleted file mode 100644 (file)
index 957c492..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/common/cmd_bootm.c
-+++ b/common/cmd_bootm.c
-@@ -77,7 +77,7 @@ static int do_bootm_subcommand(cmd_tbl_t
-               return CMD_RET_USAGE;
-       }
--      if (state != BOOTM_STATE_START && images.state >= state) {
-+      if (!(state & BOOTM_STATE_START) && images.state >= state) {
-               printf("Trying to execute a command out of order\n");
-               return CMD_RET_USAGE;
-       }
diff --git a/package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/Makefile b/package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/Makefile
deleted file mode 100644 (file)
index 4c32f5c..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# (C) Copyright 2000-2006
-# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-#
-# (C) Copyright 2008-2009 Freescale Semiconductor, Inc.
-#
-# SPDX-License-Identifier:     GPL-2.0+
-#
-
-obj-y  += reset.o
-obj-y  += timer.o
-obj-y  += clock.o
-obj-y  += pinmux.o
diff --git a/package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/clock.c b/package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/clock.c
deleted file mode 100644 (file)
index 8974ca0..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-#include <common.h>
-#include <asm/arch/sysctl.h>
-#include <asm/arch/cpu.h>
-#include <asm/arch/clock.h>
-
-typedef struct {
-       unsigned short mhz;
-       unsigned char refdiv;
-       unsigned char outdiv;
-       unsigned int fbdiv;
-       unsigned short bwadj;
-       unsigned short sfreq;
-       unsigned int sslope;
-} PLL_CONFIG;
-
-const PLL_CONFIG C_PLL_CONFIG[] = {
-       { 500, 1, 2, 3932160, 119, 208, 189 }, //  500 MHz
-       { 525, 2, 1, 4128768, 125, 139, 297 }, //  525 MHz
-       { 550, 2, 1, 4325376, 131, 139, 311 }, //  550 MHz
-       { 575, 2, 1, 4521984, 137, 139, 326 }, //  575 MHz
-       { 600, 2, 1, 4718592, 143, 138, 339 }, //  600 MHz
-       { 625, 1, 1, 3276800, 99, 208, 157 }, //  625 MHz
-       { 650, 1, 1, 3407872, 103, 208, 164 }, //  650 MHz
-       { 675, 1, 1, 3538944, 107, 208, 170 }, //  675 MHz
-       { 700, 0, 0, 917504, 27, 416, 22 }, //  700 MHz
-       { 725, 1, 1, 3801088, 115, 208, 182 }, //  725 MHz
-       { 750, 0, 0, 983040, 29, 416, 23 }, //  750 MHz
-       { 775, 3, 0, 4063232, 123, 104, 390 }, //  775 MHz
-       { 800, 3, 0, 4194304, 127, 104, 403 }, //  800 MHz
-       { 825, 3, 0, 4325376, 131, 104, 415 }, //  825 MHz
-       { 850, 2, 0, 3342336, 101, 139, 241 }, //  850 MHz
-       { 875, 2, 0, 3440640, 104, 139, 248 }, //  875 MHz
-       { 900, 2, 0, 3538944, 107, 139, 255 }, //  900 MHz
-       { 925, 2, 0, 3637248, 110, 139, 262 }, //  925 MHz
-       { 950, 2, 0, 3735552, 113, 139, 269 }, //  950 MHz
-       { 975, 2, 0, 3833856, 116, 139, 276 }, //  975 MHz
-       { 1000, 2, 0, 3932160, 119, 139, 283 }, // 1000 MHz
-};
-
-#define PLL_BYPASS (1<<1)
-#define SAT_ENABLE (1<<3)
-
-#define PLL_OUTDIV_SHIFT       4
-#define PLL_REFDIV_SHIFT       8
-#define PLL_BWADJ_SHIFT                16
-
-#define PLL_LOW_FREQ   500
-#define PLL_FREQ_STEP  25
-static void plla_configure(int outdiv, int refdiv, int fbdiv, int bwadj,
-                           int sfreq, int sslope)
-{
-       setbits_le32(SYS_CTRL_PLLA_CTRL0, PLL_BYPASS);
-       udelay(10);
-       reset_block(SYS_CTRL_RST_PLLA, 1);
-       udelay(10);
-
-       writel((refdiv << PLL_REFDIV_SHIFT) | (outdiv << PLL_OUTDIV_SHIFT) |
-              SAT_ENABLE | PLL_BYPASS,
-              SYS_CTRL_PLLA_CTRL0);
-
-       writel(fbdiv, SYS_CTRL_PLLA_CTRL1);
-       writel((bwadj << PLL_BWADJ_SHIFT) | sfreq, SYS_CTRL_PLLA_CTRL2);
-       writel(sslope, SYS_CTRL_PLLA_CTRL3);
-
-       udelay(10); // 5us delay required (from TCI datasheet), use 10us
-
-       reset_block(SYS_CTRL_RST_PLLA, 0);
-
-       udelay(100); // Delay for PLL to lock
-
-       printf("  plla_ctrl0 : %08x\n", readl(SYS_CTRL_PLLA_CTRL0));
-       printf("  plla_ctrl1 : %08x\n", readl(SYS_CTRL_PLLA_CTRL1));
-       printf("  plla_ctrl2 : %08x\n", readl(SYS_CTRL_PLLA_CTRL2));
-       printf("  plla_ctrl3 : %08x\n", readl(SYS_CTRL_PLLA_CTRL3));
-
-       clrbits_le32(SYS_CTRL_PLLA_CTRL0, PLL_BYPASS); // Take PLL out of bypass
-       puts("\nPLLA Set\n");
-}
-
-int plla_set_config(int mhz)
-{
-       int index = (mhz - PLL_LOW_FREQ) / PLL_FREQ_STEP;
-       const PLL_CONFIG *cfg;
-
-       if (index < 0 || index > ARRAY_SIZE(C_PLL_CONFIG)) {
-               debug("Freq %d MHz out of range, default to lowest\n", mhz);
-               index = 0;
-       }
-       cfg = &C_PLL_CONFIG[index];
-
-       printf("Attempting to set PLLA to %d MHz ...\n", (unsigned) cfg->mhz);
-       plla_configure(cfg->outdiv, cfg->refdiv, cfg->fbdiv, cfg->bwadj,
-                      cfg->sfreq, cfg->sslope);
-
-       return cfg->mhz;
-}
-
diff --git a/package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/pinmux.c b/package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/pinmux.c
deleted file mode 100644 (file)
index a6f5e9a..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <common.h>
-#include <asm/arch/pinmux.h>
-
-void pinmux_set(int bank, int pin, int func)
-{
-       u32 reg;
-       u32 base;
-       /* TODO: check parameters */
-
-       if (bank == PINMUX_BANK_MFA)
-               base = SYS_CONTROL_BASE;
-       else
-               base = SEC_CONTROL_BASE;
-
-       clrbits_le32(base + PINMUX_SECONDARY_SEL, BIT(pin));
-       clrbits_le32(base + PINMUX_TERTIARY_SEL, BIT(pin));
-       clrbits_le32(base + PINMUX_QUATERNARY_SEL, BIT(pin));
-       clrbits_le32(base + PINMUX_DEBUG_SEL, BIT(pin));
-       clrbits_le32(base + PINMUX_ALTERNATIVE_SEL, BIT(pin));
-
-       switch (func) {
-       case PINMUX_GPIO:
-       default:
-               return;
-               break;
-       case PINMUX_2:
-               reg = base + PINMUX_SECONDARY_SEL;
-               break;
-       case PINMUX_3:
-               reg = base + PINMUX_TERTIARY_SEL;
-               break;
-       case PINMUX_4:
-               reg = base + PINMUX_QUATERNARY_SEL;
-               break;
-       case PINMUX_DEBUG:
-               reg = base + PINMUX_DEBUG_SEL;
-               break;
-       case PINMUX_ALT:
-               reg = base + PINMUX_ALTERNATIVE_SEL;
-               break;
-       }
-       setbits_le32(reg, BIT(pin));
-}
diff --git a/package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/reset.c b/package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/reset.c
deleted file mode 100644 (file)
index 276c912..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-#include <common.h>
-#include <asm/arch/sysctl.h>
-#include <asm/arch/pinmux.h>
-#include <asm/arch/clock.h>
-
-void reset_cpu(ulong addr)
-{
-       u32 value;
-
-       // Assert reset to cores as per power on defaults
-       // Don't touch the DDR interface as things will come to an impromptu stop
-       // NB Possibly should be asserting reset for PLLB, but there are timing
-       //    concerns here according to the docs
-
-       value =
-               BIT(SYS_CTRL_RST_COPRO     ) |
-               BIT(SYS_CTRL_RST_USBHS     ) |
-               BIT(SYS_CTRL_RST_USBHSPHYA ) |
-               BIT(SYS_CTRL_RST_MACA      ) |
-               BIT(SYS_CTRL_RST_PCIEA     ) |
-               BIT(SYS_CTRL_RST_SGDMA     ) |
-               BIT(SYS_CTRL_RST_CIPHER    ) |
-               BIT(SYS_CTRL_RST_SATA      ) |
-               BIT(SYS_CTRL_RST_SATA_LINK ) |
-               BIT(SYS_CTRL_RST_SATA_PHY  ) |
-               BIT(SYS_CTRL_RST_PCIEPHY   ) |
-               BIT(SYS_CTRL_RST_STATIC    ) |
-               BIT(SYS_CTRL_RST_UART1     ) |
-               BIT(SYS_CTRL_RST_UART2     ) |
-               BIT(SYS_CTRL_RST_MISC      ) |
-               BIT(SYS_CTRL_RST_I2S       ) |
-               BIT(SYS_CTRL_RST_SD        ) |
-               BIT(SYS_CTRL_RST_MACB      ) |
-               BIT(SYS_CTRL_RST_PCIEB     ) |
-               BIT(SYS_CTRL_RST_VIDEO     ) |
-               BIT(SYS_CTRL_RST_USBHSPHYB ) |
-               BIT(SYS_CTRL_RST_USBDEV    );
-
-       writel(value, SYS_CTRL_RST_SET_CTRL);
-
-       // Release reset to cores as per power on defaults
-       writel(BIT(SYS_CTRL_RST_GPIO), SYS_CTRL_RST_CLR_CTRL);
-
-       // Disable clocks to cores as per power-on defaults - must leave DDR
-       // related clocks enabled otherwise we'll stop rather abruptly.
-       value =
-               BIT(SYS_CTRL_CLK_COPRO)         |
-               BIT(SYS_CTRL_CLK_DMA)           |
-               BIT(SYS_CTRL_CLK_CIPHER)        |
-               BIT(SYS_CTRL_CLK_SD)            |
-               BIT(SYS_CTRL_CLK_SATA)          |
-               BIT(SYS_CTRL_CLK_I2S)           |
-               BIT(SYS_CTRL_CLK_USBHS)         |
-               BIT(SYS_CTRL_CLK_MAC)           |
-               BIT(SYS_CTRL_CLK_PCIEA)         |
-               BIT(SYS_CTRL_CLK_STATIC)        |
-               BIT(SYS_CTRL_CLK_MACB)          |
-               BIT(SYS_CTRL_CLK_PCIEB)         |
-               BIT(SYS_CTRL_CLK_REF600)        |
-               BIT(SYS_CTRL_CLK_USBDEV);
-
-       writel(value, SYS_CTRL_CLK_CLR_CTRL);
-
-       // Enable clocks to cores as per power-on defaults
-
-       // Set sys-control pin mux'ing as per power-on defaults
-
-       writel(0, SYS_CONTROL_BASE + PINMUX_SECONDARY_SEL);
-       writel(0, SYS_CONTROL_BASE + PINMUX_TERTIARY_SEL);
-       writel(0, SYS_CONTROL_BASE + PINMUX_QUATERNARY_SEL);
-       writel(0, SYS_CONTROL_BASE + PINMUX_DEBUG_SEL);
-       writel(0, SYS_CONTROL_BASE + PINMUX_ALTERNATIVE_SEL);
-       writel(0, SYS_CONTROL_BASE + PINMUX_PULLUP_SEL);
-
-       writel(0, SEC_CONTROL_BASE + PINMUX_SECONDARY_SEL);
-       writel(0, SEC_CONTROL_BASE + PINMUX_TERTIARY_SEL);
-       writel(0, SEC_CONTROL_BASE + PINMUX_QUATERNARY_SEL);
-       writel(0, SEC_CONTROL_BASE + PINMUX_DEBUG_SEL);
-       writel(0, SEC_CONTROL_BASE + PINMUX_ALTERNATIVE_SEL);
-       writel(0, SEC_CONTROL_BASE + PINMUX_PULLUP_SEL);
-
-       // No need to save any state, as the ROM loader can determine whether reset
-       // is due to power cycling or programatic action, just hit the (self-
-       // clearing) CPU reset bit of the block reset register
-       value =
-               BIT(SYS_CTRL_RST_SCU) |
-               BIT(SYS_CTRL_RST_ARM0) |
-               BIT(SYS_CTRL_RST_ARM1);
-
-       writel(value, SYS_CTRL_RST_SET_CTRL);
-}
diff --git a/package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/timer.c b/package/boot/uboot-oxnas/src/arch/arm/cpu/arm1136/nas782x/timer.c
deleted file mode 100644 (file)
index 5e87608..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * (C) Copyright 2004
- * Texas Instruments
- * Richard Woodruff <r-woodruff2@ti.com>
- *
- * (C) Copyright 2002
- * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
- * Marius Groeger <mgroeger@sysgo.de>
- * Alex Zuepke <azu@sysgo.de>
- *
- * (C) Copyright 2002
- * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <asm/io.h>
-
-#define TIMER_CLOCK    (CONFIG_SYS_CLK_FREQ / (1 << (CONFIG_TIMER_PRESCALE * 4)))
-#define TIMER_LOAD_VAL 0xFFFFFF
-
-/* macro to read the 32 bit timer */
-#define READ_TIMER     (TIMER_LOAD_VAL - readl(CONFIG_SYS_TIMERBASE + TIMER_CURR)) \
-                       / (TIMER_CLOCK / CONFIG_SYS_HZ)
-
-#define READ_TIMER_HW  (TIMER_LOAD_VAL - readl(CONFIG_SYS_TIMERBASE + TIMER_CURR))
-
-DECLARE_GLOBAL_DATA_PTR;
-
-int timer_init (void)
-{
-       int32_t val;
-
-       /* Start the counter ticking up */
-       writel(TIMER_LOAD_VAL, CONFIG_SYS_TIMERBASE + TIMER_LOAD);      /* reload value on overflow*/
-
-       val = (CONFIG_TIMER_PRESCALE << TIMER_PRESCALE_SHIFT) |
-                       (TIMER_MODE_PERIODIC << TIMER_MODE_SHIFT) |
-                       (TIMER_ENABLE << TIMER_ENABLE_SHIFT);           /* mask to enable timer*/
-       writel(val, CONFIG_SYS_TIMERBASE + TIMER_CTRL); /* start timer */
-
-       /* reset time */
-       gd->arch.lastinc = READ_TIMER;  /* capture current incrementer value */
-       gd->arch.tbl = 0;               /* start "advancing" time stamp */
-
-       return(0);
-}
-/*
- * timer without interrupts
- */
-ulong get_timer (ulong base)
-{
-       return get_timer_masked () - base;
-}
-
-/* delay x useconds AND preserve advance timestamp value */
-void __udelay (unsigned long usec)
-{
-       ulong tmo, tmp;
-
-       if (usec > 100000) {            /* if "big" number, spread normalization to seconds */
-               tmo = usec / 1000;      /* start to normalize for usec to ticks per sec */
-               tmo *= CONFIG_SYS_HZ;   /* find number of "ticks" to wait to achieve target */
-               tmo /= 1000;            /* finish normalize. */
-
-               tmp = get_timer (0);            /* get current timestamp */
-               while (get_timer (tmp) < tmo)/* loop till event */
-                       /*NOP*/;
-       } else {                        /* else small number, convert to hw ticks */
-               tmo = usec * (TIMER_CLOCK / 1000) / 1000;
-               /* timeout is no more than 0.1s, and the hw timer will roll over at most once */
-               tmp = READ_TIMER_HW;
-               while (((READ_TIMER_HW -tmp) & TIMER_LOAD_VAL) < tmo)/* loop till event */
-                       /*NOP*/;
-       }
-}
-
-ulong get_timer_masked (void)
-{
-       ulong now = READ_TIMER;         /* current tick value */
-
-       if (now >= gd->arch.lastinc) {          /* normal mode (non roll) */
-               /* move stamp fordward with absoulte diff ticks */
-               gd->arch.tbl += (now - gd->arch.lastinc);
-       } else {
-               /* we have rollover of incrementer */
-               gd->arch.tbl += ((TIMER_LOAD_VAL / (TIMER_CLOCK / CONFIG_SYS_HZ))
-                                - gd->arch.lastinc) + now;
-       }
-       gd->arch.lastinc = now;
-       return gd->arch.tbl;
-}
-
-
-/*
- * This function is derived from PowerPC code (read timebase as long long).
- * On ARM it just returns the timer value.
- */
-unsigned long long get_ticks(void)
-{
-       return get_timer(0);
-}
-/*
- * This function is derived from PowerPC code (timebase clock frequency).
- * On ARM it returns the number of timer ticks per second.
- */
-ulong get_tbclk (void)
-{
-       ulong tbclk;
-       tbclk = CONFIG_SYS_HZ;
-       return tbclk;
-}
diff --git a/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/clock.h b/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/clock.h
deleted file mode 100644 (file)
index da7dd1c..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef _NAS782X_CLOCK_H
-#define _NAS782X_CLOCK_H
-
-#include <asm/arch/sysctl.h>
-#include <asm/arch/cpu.h>
-
-/* bit numbers of clock control register */
-#define SYS_CTRL_CLK_COPRO  0
-#define SYS_CTRL_CLK_DMA    1
-#define SYS_CTRL_CLK_CIPHER 2
-#define SYS_CTRL_CLK_SD     3
-#define SYS_CTRL_CLK_SATA   4
-#define SYS_CTRL_CLK_I2S    5
-#define SYS_CTRL_CLK_USBHS  6
-#define SYS_CTRL_CLK_MACA   7
-#define SYS_CTRL_CLK_MAC   SYS_CTRL_CLK_MACA
-#define SYS_CTRL_CLK_PCIEA  8
-#define SYS_CTRL_CLK_STATIC 9
-#define SYS_CTRL_CLK_MACB   10
-#define SYS_CTRL_CLK_PCIEB  11
-#define SYS_CTRL_CLK_REF600 12
-#define SYS_CTRL_CLK_USBDEV 13
-#define SYS_CTRL_CLK_DDR    14
-#define SYS_CTRL_CLK_DDRPHY 15
-#define SYS_CTRL_CLK_DDRCK  16
-
-/* bit numbers of reset control register */
-#define SYS_CTRL_RST_SCU          0
-#define SYS_CTRL_RST_COPRO        1
-#define SYS_CTRL_RST_ARM0         2
-#define SYS_CTRL_RST_ARM1         3
-#define SYS_CTRL_RST_USBHS        4
-#define SYS_CTRL_RST_USBHSPHYA    5
-#define SYS_CTRL_RST_MACA         6
-#define SYS_CTRL_RST_MAC       SYS_CTRL_RST_MACA
-#define SYS_CTRL_RST_PCIEA        7
-#define SYS_CTRL_RST_SGDMA        8
-#define SYS_CTRL_RST_CIPHER       9
-#define SYS_CTRL_RST_DDR          10
-#define SYS_CTRL_RST_SATA         11
-#define SYS_CTRL_RST_SATA_LINK    12
-#define SYS_CTRL_RST_SATA_PHY     13
-#define SYS_CTRL_RST_PCIEPHY      14
-#define SYS_CTRL_RST_STATIC       15
-#define SYS_CTRL_RST_GPIO         16
-#define SYS_CTRL_RST_UART1        17
-#define SYS_CTRL_RST_UART2        18
-#define SYS_CTRL_RST_MISC         19
-#define SYS_CTRL_RST_I2S          20
-#define SYS_CTRL_RST_SD           21
-#define SYS_CTRL_RST_MACB         22
-#define SYS_CTRL_RST_PCIEB        23
-#define SYS_CTRL_RST_VIDEO        24
-#define SYS_CTRL_RST_DDR_PHY      25
-#define SYS_CTRL_RST_USBHSPHYB    26
-#define SYS_CTRL_RST_USBDEV       27
-#define SYS_CTRL_RST_ARMDBG       29
-#define SYS_CTRL_RST_PLLA         30
-#define SYS_CTRL_RST_PLLB         31
-
-static inline void reset_block(int block, int reset)
-{
-       u32 reg;
-       if (reset)
-               reg = SYS_CTRL_RST_SET_CTRL;
-       else
-               reg = SYS_CTRL_RST_CLR_CTRL;
-
-       writel(BIT(block), reg);
-}
-
-static inline void enable_clock(int block)
-{
-       writel(BIT(block), SYS_CTRL_CLK_SET_CTRL);
-}
-
-static inline void disable_clock(int block)
-{
-       writel(BIT(block), SYS_CTRL_CLK_CLR_CTRL);
-}
-
-int plla_set_config(int idx);
-
-#endif /* _NAS782X_CLOCK_H */
diff --git a/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/cpu.h b/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/cpu.h
deleted file mode 100644 (file)
index 11e803c..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _NAS782X_CPU_H
-#define _NAS782X_CPU_H
-
-#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
-#include <asm/types.h>
-#include <asm/io.h>
-#endif /* !(__KERNEL_STRICT_NAMES || __ASSEMBLY__) */
-
-#include <asm/arch/hardware.h>
-#include <asm/arch/timer.h>
-
-#ifndef __KERNEL_STRICT_NAMES
-#ifndef __ASSEMBLY__
-
-#define BIT(x)                  (1 << (x))
-
-/* fix "implicit declaration of function" warnning */
-void *memalign(size_t alignment, size_t bytes);
-void free(void* mem);
-void *malloc(size_t bytes);
-void *calloc(size_t n, size_t elem_size);
-
-#endif /* __ASSEMBLY__ */
-#endif /* __KERNEL_STRICT_NAMES */
-
-#endif /* _NAS782X_CPU_H */
diff --git a/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/hardware.h b/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/hardware.h
deleted file mode 100644 (file)
index f26b17f..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef _NAS782X_HARDWARE_H
-#define _NAS782X_HARDWARE_H
-
-/* Core addresses */
-#define USB_HOST_BASE          0x40200000
-#define MACA_BASE              0x40400000
-#define MACB_BASE              0x40800000
-#define MAC_BASE               MACA_BASE
-#define STATIC_CS0_BASE                0x41000000
-#define STATIC_CS1_BASE                0x41400000
-#define STATIC_CONTROL_BASE    0x41C00000
-#define SATA_DATA_BASE         0x42000000 /* non-functional, DMA just needs an address */
-#define GPIO_1_BASE            0x44000000
-#define GPIO_2_BASE            0x44100000
-#define UART_1_BASE            0x44200000
-#define UART_2_BASE            0x44300000
-#define SYS_CONTROL_BASE       0x44e00000
-#define SEC_CONTROL_BASE       0x44f00000
-#define RPSA_BASE              0x44400000
-#define RPSC_BASE              0x44500000
-#define DDR_BASE               0x44700000
-
-#define SATA_BASE              0x45900000
-#define SATA_0_REGS_BASE       0x45900000
-#define SATA_1_REGS_BASE       0x45910000
-#define SATA_DMA_REGS_BASE     0x459a0000
-#define SATA_SGDMA_REGS_BASE   0x459b0000
-#define SATA_HOST_REGS_BASE    0x459e0000
-
-#endif /* _NAS782X_HARDWARE_H */
diff --git a/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/pinmux.h b/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/pinmux.h
deleted file mode 100644 (file)
index 810ba5c..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef _NAS782X_PINMUX_H
-#define _NAS782X_PINMUX_H
-
-#include <asm/arch/cpu.h>
-
-#define PINMUX_GPIO            0
-#define PINMUX_2               1
-#define PINMUX_3               2
-#define PINMUX_4               3
-#define PINMUX_DEBUG           4
-#define PINMUX_ALT             5
-
-#define PINMUX_BANK_MFA                0
-#define PINMUX_BANK_MFB                1
-
-/* System control multi-function pin function selection */
-#define PINMUX_SECONDARY_SEL           0x14
-#define PINMUX_TERTIARY_SEL            0x8c
-#define PINMUX_QUATERNARY_SEL          0x94
-#define PINMUX_DEBUG_SEL               0x9c
-#define PINMUX_ALTERNATIVE_SEL         0xa4
-#define PINMUX_PULLUP_SEL              0xac
-
-#define PINMUX_UARTA_SIN               PINMUX_ALT
-#define PINMUX_UARTA_SOUT              PINMUX_ALT
-
-#define PINMUX_STATIC_DATA0            PINMUX_2
-#define PINMUX_STATIC_DATA1            PINMUX_2
-#define PINMUX_STATIC_DATA2            PINMUX_2
-#define PINMUX_STATIC_DATA3            PINMUX_2
-#define PINMUX_STATIC_DATA4            PINMUX_2
-#define PINMUX_STATIC_DATA5            PINMUX_2
-#define PINMUX_STATIC_DATA6            PINMUX_2
-#define PINMUX_STATIC_DATA7            PINMUX_2
-#define PINMUX_STATIC_NWE              PINMUX_2
-#define PINMUX_STATIC_NOE              PINMUX_2
-#define PINMUX_STATIC_NCS              PINMUX_2
-#define PINMUX_STATIC_ADDR18           PINMUX_2
-#define PINMUX_STATIC_ADDR19           PINMUX_2
-
-#define PINMUX_MACA_MDC                        PINMUX_2
-#define PINMUX_MACA_MDIO               PINMUX_2
-
-extern void pinmux_set(int bank, int pin, int func);
-
-#endif /* _NAS782X_PINMUX_H */
diff --git a/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/spl.h b/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/spl.h
deleted file mode 100644 (file)
index f73afda..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _NAS782X_SPL_H
-#define _NAS782X_SPL_H
-
-#include <asm/arch/cpu.h>
-
-#endif /* _NAS782X_SPL_H */
diff --git a/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/sysctl.h b/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/sysctl.h
deleted file mode 100644 (file)
index 3867e45..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-#ifndef _NAS782X_SYSCTL_H
-#define _NAS782X_SYSCTL_H
-
-#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
-#include <asm/types.h>
-#endif /* !(__KERNEL_STRICT_NAMES || __ASSEMBLY__) */
-
-#include <asm/arch/hardware.h>
-
-/**
- * System block reset and clock control
- */
-#define SYS_CTRL_PCI_STAT              (SYS_CONTROL_BASE + 0x20)
-#define SYS_CTRL_CLK_SET_CTRL          (SYS_CONTROL_BASE + 0x2C)
-#define SYS_CTRL_CLK_CLR_CTRL          (SYS_CONTROL_BASE + 0x30)
-#define SYS_CTRL_RST_SET_CTRL          (SYS_CONTROL_BASE + 0x34)
-#define SYS_CTRL_RST_CLR_CTRL          (SYS_CONTROL_BASE + 0x38)
-#define SYS_CTRL_PLLSYS_CTRL           (SYS_CONTROL_BASE + 0x48)
-#define SYS_CTRL_PLLSYS_KEY_CTRL       (SYS_CONTROL_BASE + 0x6C)
-#define SYS_CTRL_GMAC_CTRL             (SYS_CONTROL_BASE + 0x78)
-
-/* Scratch registers */
-#define SYS_CTRL_SCRATCHWORD0          (SYS_CONTROL_BASE + 0xc4)
-#define SYS_CTRL_SCRATCHWORD1          (SYS_CONTROL_BASE + 0xc8)
-#define SYS_CTRL_SCRATCHWORD2          (SYS_CONTROL_BASE + 0xcc)
-#define SYS_CTRL_SCRATCHWORD3          (SYS_CONTROL_BASE + 0xd0)
-
-#define SYS_CTRL_PLLA_CTRL0            (SYS_CONTROL_BASE + 0x1F0)
-#define SYS_CTRL_PLLA_CTRL1            (SYS_CONTROL_BASE + 0x1F4)
-#define SYS_CTRL_PLLA_CTRL2            (SYS_CONTROL_BASE + 0x1F8)
-#define SYS_CTRL_PLLA_CTRL3            (SYS_CONTROL_BASE + 0x1FC)
-
-#define SYS_CTRL_GMAC_AUTOSPEED                3
-#define SYS_CTRL_GMAC_RGMII            2
-#define SYS_CTRL_GMAC_SIMPLE_MUX       1
-#define SYS_CTRL_GMAC_CKEN_GTX         0
-
-#define SYS_CTRL_CKCTRL_CTRL_ADDR      (SYS_CONTROL_BASE + 0x64)
-
-#define SYS_CTRL_CKCTRL_PCI_DIV_BIT    0
-#define SYS_CTRL_CKCTRL_SLOW_BIT       8
-
-
-#define SYS_CTRL_USBHSMPH_CTRL         (SYS_CONTROL_BASE + 0x40)
-#define SYS_CTRL_USBHSMPH_STAT         (SYS_CONTROL_BASE + 0x44)
-#define SYS_CTRL_REF300_DIV            (SYS_CONTROL_BASE + 0xF8)
-#define SYS_CTRL_USBHSPHY_CTRL         (SYS_CONTROL_BASE + 0x84)
-#define SYS_CTRL_USB_CTRL              (SYS_CONTROL_BASE + 0x90)
-
-/* System control multi-function pin function selection */
-#define SYS_CTRL_SECONDARY_SEL         (SYS_CONTROL_BASE + 0x14)
-#define SYS_CTRL_TERTIARY_SEL          (SYS_CONTROL_BASE + 0x8c)
-#define SYS_CTRL_QUATERNARY_SEL                (SYS_CONTROL_BASE + 0x94)
-#define SYS_CTRL_DEBUG_SEL             (SYS_CONTROL_BASE + 0x9c)
-#define SYS_CTRL_ALTERNATIVE_SEL       (SYS_CONTROL_BASE + 0xa4)
-#define SYS_CTRL_PULLUP_SEL            (SYS_CONTROL_BASE + 0xac)
-
-/* Secure control multi-function pin function selection */
-#define SEC_CTRL_SECONDARY_SEL         (SEC_CONTROL_BASE + 0x14)
-#define SEC_CTRL_TERTIARY_SEL          (SEC_CONTROL_BASE + 0x8c)
-#define SEC_CTRL_QUATERNARY_SEL                (SEC_CONTROL_BASE + 0x94)
-#define SEC_CTRL_DEBUG_SEL             (SEC_CONTROL_BASE + 0x9c)
-#define SEC_CTRL_ALTERNATIVE_SEL       (SEC_CONTROL_BASE + 0xa4)
-#define SEC_CTRL_PULLUP_SEL            (SEC_CONTROL_BASE + 0xac)
-
-#define SEC_CTRL_COPRO_CTRL            (SEC_CONTROL_BASE + 0x68)
-#define SEC_CTRL_SECURE_CTRL           (SEC_CONTROL_BASE + 0x98)
-#define SEC_CTRL_LEON_DEBUG            (SEC_CONTROL_BASE + 0xF0)
-#define SEC_CTRL_PLLB_DIV_CTRL         (SEC_CONTROL_BASE + 0xF8)
-#define SEC_CTRL_PLLB_CTRL0            (SEC_CONTROL_BASE + 0x1F0)
-#define SEC_CTRL_PLLB_CTRL1            (SEC_CONTROL_BASE + 0x1F4)
-#define SEC_CTRL_PLLB_CTRL8            (SEC_CONTROL_BASE + 0x1F4)
-
-#define REF300_DIV_INT_SHIFT           8
-#define REF300_DIV_FRAC_SHIFT          0
-#define REF300_DIV_INT(val)            ((val) << REF300_DIV_INT_SHIFT)
-#define REF300_DIV_FRAC(val)           ((val) << REF300_DIV_FRAC_SHIFT)
-
-#define USBHSPHY_SUSPENDM_MANUAL_ENABLE                16
-#define USBHSPHY_SUSPENDM_MANUAL_STATE         15
-#define USBHSPHY_ATE_ESET                      14
-#define USBHSPHY_TEST_DIN                      6
-#define USBHSPHY_TEST_ADD                      2
-#define USBHSPHY_TEST_DOUT_SEL                 1
-#define USBHSPHY_TEST_CLK                      0
-
-#define USB_CTRL_USBAPHY_CKSEL_SHIFT   5
-#define USB_CLK_XTAL0_XTAL1            (0 << USB_CTRL_USBAPHY_CKSEL_SHIFT)
-#define USB_CLK_XTAL0                  (1 << USB_CTRL_USBAPHY_CKSEL_SHIFT)
-#define USB_CLK_INTERNAL               (2 << USB_CTRL_USBAPHY_CKSEL_SHIFT)
-
-#define USBAMUX_DEVICE                 BIT(4)
-
-#define USBPHY_REFCLKDIV_SHIFT         2
-#define USB_PHY_REF_12MHZ              (0 << USBPHY_REFCLKDIV_SHIFT)
-#define USB_PHY_REF_24MHZ              (1 << USBPHY_REFCLKDIV_SHIFT)
-#define USB_PHY_REF_48MHZ              (2 << USBPHY_REFCLKDIV_SHIFT)
-
-#define USB_CTRL_USB_CKO_SEL_BIT       0
-
-#define USB_INT_CLK_XTAL               0
-#define USB_INT_CLK_REF300             2
-#define USB_INT_CLK_PLLB               3
-
-#define SYS_CTRL_GMAC_AUTOSPEED                3
-#define SYS_CTRL_GMAC_RGMII            2
-#define SYS_CTRL_GMAC_SIMPLE_MUX       1
-#define SYS_CTRL_GMAC_CKEN_GTX         0
-
-
-#define PLLB_ENSAT                     3
-#define PLLB_OUTDIV                    4
-#define PLLB_REFDIV                    8
-#define PLLB_DIV_INT_SHIFT             8
-#define PLLB_DIV_FRAC_SHIFT            0
-#define PLLB_DIV_INT(val)              ((val) << PLLB_DIV_INT_SHIFT)
-#define PLLB_DIV_FRAC(val)             ((val) << PLLB_DIV_FRAC_SHIFT)
-
-#ifndef __KERNEL_STRICT_NAMES
-#ifndef __ASSEMBLY__
-
-#endif /* __ASSEMBLY__ */
-#endif /* __KERNEL_STRICT_NAMES */
-
-#endif /* _NAS782X_SYSCTL_H */
diff --git a/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/timer.h b/package/boot/uboot-oxnas/src/arch/arm/include/asm/arch-nas782x/timer.h
deleted file mode 100644 (file)
index ea4d71e..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef _NAS782X_TIMER_H
-#define _NAS782X_TIMER_H
-
-#define TIMER1_BASE            (RPSA_BASE + 0x200)
-#define TIMER2_BASE            (RPSA_BASE + 0x220)
-
-#define TIMER_LOAD             0
-#define TIMER_CURR             4
-#define TIMER_CTRL             8
-#define        TIMER_INTR              0x0C
-
-#define TIMER_PRESCALE_SHIFT           2
-#define TIMER_PRESCALE_1               0
-#define TIMER_PRESCALE_16              1
-#define TIMER_PRESCALE_256             2
-#define TIMER_MODE_SHIFT               6
-#define TIMER_MODE_FREE_RUNNING                0
-#define TIMER_MODE_PERIODIC            1
-#define TIMER_ENABLE_SHIFT             7
-#define TIMER_DISABLE                  0
-#define TIMER_ENABLE                   1
-
-#endif /* _NAS782X_TIMER_H */
diff --git a/package/boot/uboot-oxnas/src/board/ox820/Kconfig b/package/boot/uboot-oxnas/src/board/ox820/Kconfig
deleted file mode 100644 (file)
index 8f631aa..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-if TARGET_OX820
-
-config SYS_CPU
-       default "arm1136"
-
-config SYS_SOC
-       default "nas782x"
-
-config SYS_BOARD
-       default "ox820"
-
-config SYS_CONFIG_NAME
-       default "ox820"
-
-endif
diff --git a/package/boot/uboot-oxnas/src/board/ox820/MAINTAINERS b/package/boot/uboot-oxnas/src/board/ox820/MAINTAINERS
deleted file mode 100644 (file)
index a86ba26..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-SHEEVAPLUG BOARD
-M:     Daniel Golle <daniel@makrotopia.org>
-S:     Maintained
-F:     board/ox820/
-F:     include/configs/ox820.h
-F:     configs/ox820_defconfig
diff --git a/package/boot/uboot-oxnas/src/board/ox820/Makefile b/package/boot/uboot-oxnas/src/board/ox820/Makefile
deleted file mode 100644 (file)
index 445fc4c..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# (C) Copyright 2000-2006
-# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-#
-# (C) Copyright 2008-2009 Freescale Semiconductor, Inc.
-#
-# SPDX-License-Identifier:     GPL-2.0+
-#
-
-obj-y += ox820.o
-obj-y += lowlevel_init.o
-
-obj-$(CONFIG_SPL_BUILD) += spl_start.o
-obj-$(CONFIG_SPL_BUILD) += ddr.o
-
diff --git a/package/boot/uboot-oxnas/src/board/ox820/ddr.c b/package/boot/uboot-oxnas/src/board/ox820/ddr.c
deleted file mode 100755 (executable)
index a665722..0000000
+++ /dev/null
@@ -1,477 +0,0 @@
-/*******************************************************************
- *
- * File:            ddr_oxsemi.c
- *
- * Description:     Declarations for DDR routines and data objects
- *
- * Author:          Julien Margetts
- *
- * Copyright:       Oxford Semiconductor Ltd, 2009
- */
-#include <common.h>
-#include <asm/arch/clock.h>
-
-#include "ddr.h"
-
-typedef unsigned int UINT;
-
-// DDR TIMING PARAMETERS
-typedef struct {
-       unsigned int holdoff_cmd_A;
-       unsigned int holdoff_cmd_ARW;
-       unsigned int holdoff_cmd_N;
-       unsigned int holdoff_cmd_LM;
-       unsigned int holdoff_cmd_R;
-       unsigned int holdoff_cmd_W;
-       unsigned int holdoff_cmd_PC;
-       unsigned int holdoff_cmd_RF;
-       unsigned int holdoff_bank_R;
-       unsigned int holdoff_bank_W;
-       unsigned int holdoff_dir_RW;
-       unsigned int holdoff_dir_WR;
-       unsigned int holdoff_FAW;
-       unsigned int latency_CAS;
-       unsigned int latency_WL;
-       unsigned int recovery_WR;
-       unsigned int width_update;
-       unsigned int odt_offset;
-       unsigned int odt_drive_all;
-       unsigned int use_fixed_re;
-       unsigned int delay_wr_to_re;
-       unsigned int wr_slave_ratio;
-       unsigned int rd_slave_ratio0;
-       unsigned int rd_slave_ratio1;
-} T_DDR_TIMING_PARAMETERS;
-
-// DDR CONFIG PARAMETERS
-
-typedef struct {
-       unsigned int ddr_mode;
-       unsigned int width;
-       unsigned int blocs;
-       unsigned int banks8;
-       unsigned int rams;
-       unsigned int asize;
-       unsigned int speed;
-       unsigned int cmd_mode_wr_cl_bl;
-} T_DDR_CONFIG_PARAMETERS;
-
-//cmd_mode_wr_cl_bl
-//when SDR : cmd_mode_wr_cl_bl = 0x80200002 + (latency_CAS_RAM * 16) + (recovery_WR - 1) * 512; -- Sets write rec XX, CL=XX; BL=8
-//else       cmd_mode_wr_cl_bl = 0x80200003 + (latency_CAS_RAM * 16) + (recovery_WR - 1) * 512; -- Sets write rec XX, CL=XX; BL=8
-
-//                                                            cmd_                    bank_ dir_     lat_  rec_ width_ odt_   odt_ fix delay     ratio
-//                                                                A                                F  C         update offset all  re  re_to_we  w  r0  r1
-//                                                                R     L        P  R        R  W  A  A  W  W
-//Timing Parameters                                            A  W  N  M  R  W  C  F  R  W  W  R  W  S  L  R
-static const T_DDR_TIMING_PARAMETERS C_TP_DDR2_25E_CL5_1GB = { 4, 5, 0, 2, 4, 4,
-       5, 51, 23, 24, 9, 11, 18, 5, 4, 6, 3, 2, 0, 1, 2, 75, 56, 56 }; //elida device.
-static const T_DDR_TIMING_PARAMETERS C_TP_DDR2_25E_CL5_2GB = { 4, 5, 0, 2, 4, 4,
-       5, 79, 22, 24, 9, 11, 20, 5, 4, 6, 3, 2, 0, 1, 2, 75, 56, 56 };
-static const T_DDR_TIMING_PARAMETERS C_TP_DDR2_25_CL6_1GB = { 4, 5, 0, 2, 4, 4,
-       4, 51, 22, 26, 10, 12, 18, 6, 5, 6, 3, 2, 0, 1, 2, 75, 56, 56 }; // 400MHz, Speedgrade 25 timings (1Gb parts)
-
-//                                                          D     B  B  R  A   S
-//                                                          D  W  L  K  A  S   P
-//Config Parameters                                         R  D  C  8  M  Z   D CMD_MODE
-//static const T_DDR_CONFIG_PARAMETERS C_CP_DDR2_25E_CL5  = { 2,16, 1, 0, 1, 32,25,0x80200A53}; // 64 MByte
-static const T_DDR_CONFIG_PARAMETERS C_CP_DDR2_25E_CL5 = { 2, 16, 1, 1, 1, 64,
-       25, 0x80200A53 }; // 128 MByte
-static const T_DDR_CONFIG_PARAMETERS C_CP_DDR2_25_CL6 = { 2, 16, 1, 1, 1, 128,
-       25, 0x80200A63 }; // 256 MByte
-
-static void ddr_phy_poll_until_locked(void)
-{
-       volatile UINT reg_tmp = 0;
-       volatile UINT locked = 0;
-
-       //Extra read to put in delay before starting to poll...
-       reg_tmp = *(volatile UINT *) C_DDR_REG_PHY2;      // read
-
-       //POLL C_DDR_PHY2_REG register until clock and flock
-       //!!! Ideally have a timeout on this.
-       while (locked == 0) {
-               reg_tmp = *(volatile UINT *) C_DDR_REG_PHY2;      // read
-
-               //locked when bits 30 and 31 are set
-               if (reg_tmp & 0xC0000000) {
-                       locked = 1;
-               }
-       }
-}
-
-static void ddr_poll_until_not_busy(void)
-{
-       volatile UINT reg_tmp = 0;
-       volatile UINT busy = 1;
-
-       //Extra read to put in delay before starting to poll...
-       reg_tmp = *(volatile UINT *) C_DDR_STAT_REG;      // read
-
-       //POLL DDR_STAT register until no longer busy
-       //!!! Ideally have a timeout on this.
-       while (busy == 1) {
-               reg_tmp = *(volatile UINT *) C_DDR_STAT_REG;      // read
-
-               //when bit 31 is clear - core is no longer busy
-               if ((reg_tmp & 0x80000000) == 0x00000000) {
-                       busy = 0;
-               }
-       }
-}
-
-static void ddr_issue_command(int commmand)
-{
-       *(volatile UINT *) C_DDR_CMD_REG = commmand;
-       ddr_poll_until_not_busy();
-}
-
-static void ddr_timing_initialisation(
-       const T_DDR_TIMING_PARAMETERS *ddr_timing_parameters)
-{
-       volatile UINT reg_tmp = 0;
-       /* update the DDR controller registers for timing parameters */
-       reg_tmp = (ddr_timing_parameters->holdoff_cmd_A << 0);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->holdoff_cmd_ARW << 4);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->holdoff_cmd_N << 8);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->holdoff_cmd_LM << 12);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->holdoff_cmd_R << 16);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->holdoff_cmd_W << 20);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->holdoff_cmd_PC << 24);
-       *(volatile UINT *) C_DDR_REG_TIMING0 = reg_tmp;
-
-       reg_tmp = (ddr_timing_parameters->holdoff_cmd_RF << 0);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->holdoff_bank_R << 8);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->holdoff_bank_W << 16);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->holdoff_dir_RW << 24);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->holdoff_dir_WR << 28);
-       *(volatile UINT *) C_DDR_REG_TIMING1 = reg_tmp;
-
-       reg_tmp = (ddr_timing_parameters->latency_CAS << 0);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->latency_WL << 4);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->holdoff_FAW << 8);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->width_update << 16);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->odt_offset << 21);
-       reg_tmp = reg_tmp + (ddr_timing_parameters->odt_drive_all << 24);
-
-       *(volatile UINT *) C_DDR_REG_TIMING2 = reg_tmp;
-
-       /* Program the timing parameters in the PHY too */
-       reg_tmp = (ddr_timing_parameters->use_fixed_re << 16)
-                       | (ddr_timing_parameters->delay_wr_to_re << 8)
-                       | (ddr_timing_parameters->latency_WL << 4)
-                       | (ddr_timing_parameters->latency_CAS << 0);
-
-       *(volatile UINT *) C_DDR_REG_PHY_TIMING = reg_tmp;
-
-       reg_tmp = ddr_timing_parameters->wr_slave_ratio;
-
-       *(volatile UINT *) C_DDR_REG_PHY_WR_RATIO = reg_tmp;
-
-       reg_tmp = ddr_timing_parameters->rd_slave_ratio0;
-       reg_tmp += ddr_timing_parameters->rd_slave_ratio1 << 8;
-
-       *(volatile UINT *) C_DDR_REG_PHY_RD_RATIO = reg_tmp;
-
-}
-
-static void ddr_normal_initialisation(
-       const T_DDR_CONFIG_PARAMETERS *ddr_config_parameters, int mhz)
-{
-       int i;
-       volatile UINT tmp = 0;
-       volatile UINT reg_tmp = 0;
-       volatile UINT emr_cmd = 0;
-       UINT refresh;
-
-       //Total size of memory in Mbits...
-       tmp = ddr_config_parameters->rams * ddr_config_parameters->asize
-               * ddr_config_parameters->width;
-       //Deduce value to program into DDR_CFG register...
-       switch (tmp) {
-       case 16:
-               reg_tmp = 0x00020000 * 1;
-               break;
-       case 32:
-               reg_tmp = 0x00020000 * 2;
-               break;
-       case 64:
-               reg_tmp = 0x00020000 * 3;
-               break;
-       case 128:
-               reg_tmp = 0x00020000 * 4;
-               break;
-       case 256:
-               reg_tmp = 0x00020000 * 5;
-               break;
-       case 512:
-               reg_tmp = 0x00020000 * 6;
-               break;
-       case 1024:
-               reg_tmp = 0x00020000 * 7;
-               break;
-       case 2048:
-               reg_tmp = 0x00020000 * 8;
-               break;
-       default:
-               reg_tmp = 0; //forces sims not to work if badly configured
-       }
-
-       //Memory width
-       tmp = ddr_config_parameters->rams * ddr_config_parameters->width;
-       switch (tmp) {
-       case 8:
-               reg_tmp = reg_tmp + 0x00400000;
-               break;
-       case 16:
-               reg_tmp = reg_tmp + 0x00200000;
-               break;
-       case 32:
-               reg_tmp = reg_tmp + 0x00000000;
-               break;
-       default:
-               reg_tmp = 0; //forces sims not to work if badly configured
-       }
-
-       //Setup DDR Mode
-       switch (ddr_config_parameters->ddr_mode) {
-       case 0:
-               reg_tmp = reg_tmp + 0x00000000;
-               break;   //SDR
-       case 1:
-               reg_tmp = reg_tmp + 0x40000000;
-               break;   //DDR
-       case 2:
-               reg_tmp = reg_tmp + 0x80000000;
-               break;   //DDR2
-       default:
-               reg_tmp = 0; //forces sims not to work if badly configured
-       }
-
-       //Setup Banks
-       if (ddr_config_parameters->banks8 == 1) {
-               reg_tmp = reg_tmp + 0x00800000;
-       }
-
-       //Program DDR_CFG register...
-       *(volatile UINT *) C_DDR_CFG_REG = reg_tmp;
-
-       //Configure PHY0 reg - se_mode is bit 1,
-       //needs to be 1 for DDR (single_ended drive)
-       switch (ddr_config_parameters->ddr_mode) {
-       case 0:
-               reg_tmp = 2 + (0 << 4);
-               break;   //SDR
-       case 1:
-               reg_tmp = 2 + (4 << 4);
-               break;   //DDR
-       case 2:
-               reg_tmp = 0 + (4 << 4);
-               break;   //DDR2
-       default:
-               reg_tmp = 0;
-       }
-
-       //Program DDR_PHY0 register...
-       *(volatile UINT *) C_DDR_REG_PHY0 = reg_tmp;
-
-       //Read DDR_PHY* registers to exercise paths for vcd
-       reg_tmp = *(volatile UINT *) C_DDR_REG_PHY3;
-       reg_tmp = *(volatile UINT *) C_DDR_REG_PHY2;
-       reg_tmp = *(volatile UINT *) C_DDR_REG_PHY1;
-       reg_tmp = *(volatile UINT *) C_DDR_REG_PHY0;
-
-       //Start up sequences - Different dependant on DDR mode
-       switch (ddr_config_parameters->ddr_mode) {
-       case 2:   //DDR2
-               //Start-up sequence: follows procedure described in Micron datasheet.
-               //start up DDR PHY DLL
-               reg_tmp = 0x00022828;       // dll on, start point and inc = h28
-               *(volatile UINT *) C_DDR_REG_PHY2 = reg_tmp;
-
-               reg_tmp = 0x00032828; // start on, dll on, start point and inc = h28
-               *(volatile UINT *) C_DDR_REG_PHY2 = reg_tmp;
-
-               ddr_phy_poll_until_locked();
-
-               udelay(200);   //200us
-
-               //Startup SDRAM...
-               //!!! Software: CK should be running for 200us before wake-up
-               ddr_issue_command( C_CMD_WAKE_UP);
-               ddr_issue_command( C_CMD_NOP);
-               ddr_issue_command( C_CMD_PRECHARGE_ALL);
-               ddr_issue_command( C_CMD_DDR2_EMR2);
-               ddr_issue_command( C_CMD_DDR2_EMR3);
-
-               emr_cmd = C_CMD_DDR2_EMR1 + C_CMD_ODT_75 + C_CMD_REDUCED_DRIVE
-                       + C_CMD_ENABLE_DLL;
-
-               ddr_issue_command(emr_cmd);
-               //Sets CL=3; BL=8 but also reset DLL to trigger a DLL initialisation...
-               udelay(1);   //1us
-               ddr_issue_command(
-                       ddr_config_parameters->cmd_mode_wr_cl_bl
-                       + C_CMD_RESET_DLL);
-               udelay(1);   //1us
-
-               //!!! Software: Wait 200 CK cycles before...
-               //for(i=1; i<=2; i++) {
-               ddr_issue_command(C_CMD_PRECHARGE_ALL);
-               // !!! Software: Wait here at least 8 CK cycles
-               //}
-               //need a wait here to ensure PHY DLL lock before the refresh is issued
-               udelay(1);   //1us
-               for (i = 1; i <= 2; i++) {
-                       ddr_issue_command( C_CMD_AUTO_REFRESH);
-                       //!!! Software: Wait here at least 8 CK cycles to satify tRFC
-                       udelay(1);   //1us
-               }
-               //As before but without 'RESET_DLL' bit set...
-               ddr_issue_command(ddr_config_parameters->cmd_mode_wr_cl_bl);
-               udelay(1);   //1us
-               // OCD commands
-               ddr_issue_command(emr_cmd + C_CMD_MODE_DDR2_OCD_DFLT);
-               ddr_issue_command(emr_cmd + C_CMD_MODE_DDR2_OCD_EXIT);
-               break;
-
-       default:
-               break;  //Do nothing
-       }
-
-       //Enable auto-refresh
-
-       // 8192 Refreshes required every 64ms, so maximum refresh period is 7.8125 us
-       // We have a 400 MHz DDR clock (2.5ns period) so max period is 3125 cycles
-       // Our core now does 8 refreshes in a go, so we multiply this period by 8
-
-       refresh = (64000 * mhz) / 8192; // Refresh period in clocks
-
-       reg_tmp = *(volatile UINT *) C_DDR_CFG_REG;      // read
-#ifdef BURST_REFRESH_ENABLE
-       reg_tmp |= C_CFG_REFRESH_ENABLE | (refresh * 8);
-       reg_tmp |= C_CFG_BURST_REFRESH_ENABLE;
-#else
-       reg_tmp |= C_CFG_REFRESH_ENABLE | (refresh * 1);
-       reg_tmp &= ~C_CFG_BURST_REFRESH_ENABLE;
-#endif
-       *(volatile UINT *) C_DDR_CFG_REG = reg_tmp;
-
-       //Verify register contents
-       reg_tmp = *(volatile UINT *) C_DDR_REG_PHY2;      // read
-       //printf("Warning XXXXXXXXXXXXXXXXXXXXXX - get bad read data from C_DDR_PHY2_REG, though it looks OK on bus XXXXXXXXXXXXXXXXXX");
-       //TBD   Check_data (read_data,  dll_reg, "Error: bad C_DDR_PHY2_REG read", tb_pass);
-       reg_tmp = *(volatile UINT *) C_DDR_CFG_REG;      // read
-       //TBD   Check_data (read_data,  cfg_reg, "Error: bad DDR_CFG read", tb_pass);
-
-       //disable optimised wrapping
-       if (ddr_config_parameters->ddr_mode == 2) {
-               reg_tmp = 0xFFFF0000;
-               *(volatile UINT *) C_DDR_REG_IGNORE = reg_tmp;
-       }
-
-       //enable midbuffer followon
-       reg_tmp = *(volatile UINT *) C_DDR_ARB_REG;      // read
-       reg_tmp = 0xFFFF0000 | reg_tmp;
-       *(volatile UINT *) C_DDR_ARB_REG = reg_tmp;
-
-       // Enable write behind coherency checking for all clients
-
-       reg_tmp = 0xFFFF0000;
-       *(volatile UINT *) C_DDR_AHB4_REG = reg_tmp;
-
-       //Wait for 200 clock cycles for SDRAM DLL to lock...
-       udelay(1);   //1us
-}
-
-// Function used to Setup DDR core
-
-void ddr_setup(int mhz)
-{
-       static const T_DDR_TIMING_PARAMETERS *ddr_timing_parameters =
-               &C_TP_DDR2_25_CL6_1GB;
-       static const T_DDR_CONFIG_PARAMETERS *ddr_config_parameters =
-               &C_CP_DDR2_25_CL6;
-
-       //Bring core out of Reset
-       *(volatile UINT *) C_DDR_BLKEN_REG = C_BLKEN_DDR_ON;
-
-       //DDR TIMING INITIALISTION
-       ddr_timing_initialisation(ddr_timing_parameters);
-
-       //DDR NORMAL INITIALISATION
-       ddr_normal_initialisation(ddr_config_parameters, mhz);
-
-       // route all writes through one client
-       *(volatile UINT *) C_DDR_TRANSACTION_ROUTING = (0
-               << DDR_ROUTE_CPU0_INSTR_SHIFT)
-               | (1 << DDR_ROUTE_CPU0_RDDATA_SHIFT)
-               | (3 << DDR_ROUTE_CPU0_WRDATA_SHIFT)
-               | (2 << DDR_ROUTE_CPU1_INSTR_SHIFT)
-               | (3 << DDR_ROUTE_CPU1_RDDATA_SHIFT)
-               | (3 << DDR_ROUTE_CPU1_WRDATA_SHIFT);
-
-       //Bring all clients out of reset
-       *(volatile UINT *) C_DDR_BLKEN_REG = C_BLKEN_DDR_ON + 0x0000FFFF;
-
-}
-
-void set_ddr_timing(unsigned int w, unsigned int i)
-{
-       unsigned int reg;
-       unsigned int wnow = 16;
-       unsigned int inow = 32;
-
-       /* reset all timing controls to known value (31) */
-       writel(DDR_PHY_TIMING_W_RST | DDR_PHY_TIMING_I_RST, DDR_PHY_TIMING);
-       writel(DDR_PHY_TIMING_W_RST | DDR_PHY_TIMING_I_RST | DDR_PHY_TIMING_CK,
-              DDR_PHY_TIMING);
-       writel(DDR_PHY_TIMING_W_RST | DDR_PHY_TIMING_I_RST, DDR_PHY_TIMING);
-
-       /* step up or down read delay to the requested value */
-       while (wnow != w) {
-               if (wnow < w) {
-                       reg = DDR_PHY_TIMING_INC;
-                       wnow++;
-               } else {
-                       reg = 0;
-                       wnow--;
-               }
-               writel(DDR_PHY_TIMING_W_CE | reg, DDR_PHY_TIMING);
-               writel(DDR_PHY_TIMING_CK | DDR_PHY_TIMING_W_CE | reg,
-                      DDR_PHY_TIMING);
-               writel(DDR_PHY_TIMING_W_CE | reg, DDR_PHY_TIMING);
-       }
-
-       /* now write delay */
-       while (inow != i) {
-               if (inow < i) {
-                       reg = DDR_PHY_TIMING_INC;
-                       inow++;
-               } else {
-                       reg = 0;
-                       inow--;
-               }
-               writel(DDR_PHY_TIMING_I_CE | reg, DDR_PHY_TIMING);
-               writel(DDR_PHY_TIMING_CK | DDR_PHY_TIMING_I_CE | reg,
-                      DDR_PHY_TIMING);
-               writel(DDR_PHY_TIMING_I_CE | reg, DDR_PHY_TIMING);
-       }
-}
-
-//Function used to Setup SDRAM in DDR/SDR mode
-void init_ddr(int mhz)
-{
-       /* start clocks */
-       enable_clock(SYS_CTRL_CLK_DDRPHY);
-       enable_clock(SYS_CTRL_CLK_DDR);
-       enable_clock(SYS_CTRL_CLK_DDRCK);
-
-       /* bring phy and core out of reset */
-       reset_block(SYS_CTRL_RST_DDR_PHY, 0);
-       reset_block(SYS_CTRL_RST_DDR, 0);
-
-       /* DDR runs at half the speed of the CPU */
-       ddr_setup(mhz >> 1);
-       return;
-}
diff --git a/package/boot/uboot-oxnas/src/board/ox820/ddr.h b/package/boot/uboot-oxnas/src/board/ox820/ddr.h
deleted file mode 100644 (file)
index a3c1990..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************
-*
-* File:                        ddr_oxsemi.h
-*
-* Description:         Declarations for DDR routines and data objects
-*
-* Author:              Julien Margetts
-*
-* Copyright:           Oxford Semiconductor Ltd, 2009
-*/
-
-void ddr_oxsemi_setup(int mhz);
-
-/* define to refresh in bursts of 8 */
-#define BURST_REFRESH_ENABLE
-
-#define DDR_BASE                       0x44700000
-
-#define C_DDR_CFG_REG                  (DDR_BASE + 0x00)
-#define C_CFG_DDR                      0x80000000
-#define C_CFG_SDR                      0x00000000
-#define C_CFG_WIDTH8                   0x00200000
-#define C_CFG_WIDTH16                  0x00100000
-#define C_CFG_WIDTH32                  0x00000000
-#define C_CFG_SIZE_FACTOR              0x00020000
-#define C_CFG_REFRESH_ENABLE           0x00010000
-#define C_CFG_BURST_REFRESH_ENABLE     0x01000000
-#define C_CFG_SIZE(x)                  (x << 17)
-#define CFG_SIZE_2MB                   1
-#define CFG_SIZE_4MB                   2
-#define CFG_SIZE_8MB                   3
-#define CFG_SIZE_16MB                  4
-#define CFG_SIZE_32MB                  5
-#define CFG_SIZE_64MB                  6
-#define CFG_SIZE_128MB                 7
-
-#define C_DDR_BLKEN_REG                        (DDR_BASE + 0x04)
-#define C_BLKEN_DDR_ON                 0x80000000
-
-#define C_DDR_STAT_REG                 (DDR_BASE + 0x08)
-
-#define C_DDR_CMD_REG                  (DDR_BASE + 0x0C)
-#define C_CMD_SEND_COMMAND             (1UL << 31) | (1 << 21) // RAS/CAS/WE/CS all low(active), CKE High, indicates
-#define C_CMD_WAKE_UP                  0x80FC0000 // Asserts CKE
-#define C_CMD_MODE_SDR                 0x80200022 // Sets CL=2 BL=4
-#define C_CMD_MODE_DDR                 0x80200063 // Sets CL=2.5 BL=8
-#define C_CMD_RESET_DLL                        0x00000100 // A8=1 Use in conjunction with C_CMD_MODE_DDR
-#define C_CMD_PRECHARGE_ALL            0x80280400
-#define C_CMD_AUTO_REFRESH             0x80240000
-#define C_CMD_SELF_REFRESH             0x80040000 // As AUTO-REFRESH but with CKE low
-#define C_CMD_NOP                      0x803C0000 // NOP just to insert guaranteed delay
-#define C_CMD_DDR2_EMR1                        0x80210000 // Load extended mode register 1 with zeros (for init), CKE still set
-//#define C_CMD_DDR2_EMR1              0x80210400 // Load extended mode register 1 with zeros (for init), CKE still set
-#define C_CMD_ENABLE_DLL               0x00000000 // Values used in conjuction with C_CMD_DDR2_EMR1
-#define C_CMD_DISABLE_DLL              0x00000001
-#define C_CMD_REDUCED_DRIVE            0x00000002
-#define C_CMD_ODT_DISABLED             0x00000000
-#define C_CMD_ODT_50                   0x00000044
-#define C_CMD_ODT_75                   0x00000004
-#define C_CMD_ODT_150                  0x00000040
-#define C_CMD_MODE_DDR2_OCD_DFLT       0x00000380
-#define C_CMD_MODE_DDR2_OCD_EXIT       0x00000000
-
-#define C_CMD_DDR2_EMR2                        0x80220000 // Load extended mode register 2 with zeros (for init), CKE still set
-#define C_CMD_DDR2_EMR3                        0x80230000 // Load extended mode register 3 with zeros (for init), CKE still set
-
-#define C_DDR_AHB_REG                  (DDR_BASE + 0x10)
-#define C_AHB_NO_RCACHES               0xFFFF0000
-#define C_AHB_FLUSH_ALL_RCACHES                0x0000FFFF
-#define C_AHB_FLUSH_AHB0_RCACHE                0x00000001
-#define C_AHB_FLUSH_AHB1_RCACHE                0x00000002
-
-#define C_DDR_DLL_REG                  (DDR_BASE + 0x14)
-#define C_DLL_DISABLED                 0x00000000
-#define C_DLL_MANUAL                   0x80000000
-#define C_DLL_AUTO_OFFSET              0xA0000000
-#define C_DLL_AUTO_IN_REFRESH          0xC0000000
-#define C_DLL_AUTOMATIC                        0xE0000000
-
-#define C_DDR_MON_REG                  (DDR_BASE + 0x18)
-#define C_MON_ALL                      0x00000010
-#define C_MON_CLIENT                   0x00000000
-
-#define C_DDR_DIAG_REG                 (DDR_BASE + 0x1C)
-#define C_DDR_DIAG2_REG                        (DDR_BASE + 0x20)
-
-#define C_DDR_IOC_REG                  (DDR_BASE + 0x24)
-#define C_DDR_IOC_PWR_DWN              (1 << 10)
-#define C_DDR_IOC_SEL_SSTL             (1 << 9)
-#define C_DDR_IOC_CK_DRIVE(x)          ((x) << 6)
-#define C_DDR_IOC_DQ_DRIVE(x)          ((x) << 3)
-#define C_DDR_IOC_XX_DRIVE(x)          ((x) << 0)
-
-#define C_DDR_ARB_REG                  (DDR_BASE + 0x28)
-#define C_DDR_ARB_MIDBUF               (1 << 4)
-#define C_DDR_ARB_LRUBANK              (1 << 3)
-#define C_DDR_ARB_REQAGE               (1 << 2)
-#define C_DDR_ARB_DATDIR               (1 << 1)
-#define C_DDR_ARB_DATDIR_NC            (1 << 0)
-
-#define C_TOP_ADDRESS_BIT_TEST         22
-#define C_MEM_BASE                     C_SDRAM_BASE
-
-#define C_MEM_TEST_BASE                        0
-#define C_MEM_TEST_LEN                 1920
-#define C_MAX_RAND_ACCESS_LEN          16
-
-#define C_DDR_REG_IGNORE               (DDR_BASE + 0x2C)
-#define C_DDR_AHB4_REG                 (DDR_BASE + 0x44)
-
-#define C_DDR_REG_TIMING0              (DDR_BASE + 0x34)
-#define C_DDR_REG_TIMING1              (DDR_BASE + 0x38)
-#define C_DDR_REG_TIMING2              (DDR_BASE + 0x3C)
-
-#define C_DDR_REG_PHY0                 (DDR_BASE + 0x48)
-#define C_DDR_REG_PHY1                 (DDR_BASE + 0x4C)
-#define C_DDR_REG_PHY2                 (DDR_BASE + 0x50)
-#define C_DDR_REG_PHY3                 (DDR_BASE + 0x54)
-
-#define C_DDR_REG_GENERIC              (DDR_BASE + 0x60)
-
-#define C_OXSEMI_DDRC_SIGNATURE                0x054415AA
-
-#define DDR_PHY_BASE                   (DDR_BASE + 0x80000)
-#define DDR_PHY_TIMING                 (DDR_PHY_BASE + 0x48)
-#define DDR_PHY_TIMING_CK              (1 << 12)
-#define DDR_PHY_TIMING_INC             (1 << 13)
-#define DDR_PHY_TIMING_W_CE            (1 << 14)
-#define DDR_PHY_TIMING_W_RST           (1 << 15)
-#define DDR_PHY_TIMING_I_CE            (1 << 16)
-#define DDR_PHY_TIMING_I_RST           (1 << 17)
-
-#define C_DDR_REG_PHY_TIMING           (DDR_PHY_BASE + 0x50)
-#define C_DDR_REG_PHY_WR_RATIO         (DDR_PHY_BASE + 0x74)
-#define C_DDR_REG_PHY_RD_RATIO         (DDR_PHY_BASE + 0x78)
-
-#define C_DDR_TRANSACTION_ROUTING      (DDR_PHY_BASE + 0xC8)
-#define DDR_ROUTE_CPU0_INSTR_SHIFT     0
-#define DDR_ROUTE_CPU0_RDDATA_SHIFT    4
-#define DDR_ROUTE_CPU0_WRDATA_SHIFT    6
-#define DDR_ROUTE_CPU1_INSTR_SHIFT     8
-#define DDR_ROUTE_CPU1_RDDATA_SHIFT    12
-#define DDR_ROUTE_CPU1_WRDATA_SHIFT    14
-
-unsigned int ddrc_signature(void);
-void set_ddr_timing(unsigned int w, unsigned int i);
-int pause(unsigned int us);
-void set_ddr_sel(int val);
diff --git a/package/boot/uboot-oxnas/src/board/ox820/lowlevel_init.S b/package/boot/uboot-oxnas/src/board/ox820/lowlevel_init.S
deleted file mode 100644 (file)
index 3328b7a..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <config.h>
-#ifndef CONFIG_SPL_BUILD
-
-.globl lowlevel_init
-lowlevel_init:
-       /*
-        * Copy exception table to relocated address in internal SRAM
-        */
-       ldr     r0, src         /* Address of exception table in flash */
-       ldr     r1, dest        /* Relocated address of exception table */
-       ldmia   r0!, {r3-r10}   /* Copy exception table and jump values from */
-       stmia   r1!, {r3-r10}   /* FLASH to relocated address */
-       ldmia   r0!, {r3-r10}
-       stmia   r1!, {r3-r10}
-       mov     pc, lr
-
-src:   .word CONFIG_SYS_TEXT_BASE
-dest:  .word CONFIG_SRAM_BASE
-
-#endif
\ No newline at end of file
diff --git a/package/boot/uboot-oxnas/src/board/ox820/ox820.c b/package/boot/uboot-oxnas/src/board/ox820/ox820.c
deleted file mode 100644 (file)
index f93cc9c..0000000
+++ /dev/null
@@ -1,374 +0,0 @@
-#include <common.h>
-#include <spl.h>
-#include <phy.h>
-#include <netdev.h>
-#include <ide.h>
-#include <nand.h>
-#include <asm/arch/spl.h>
-#include <asm/arch/pinmux.h>
-#include <asm/arch/clock.h>
-#include <asm/arch/sysctl.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-#ifdef CONFIG_SPL_BUILD
-
-#ifdef DEBUG
-#define DILIGENCE (1048576/4)
-static int test_memory(u32 memory)
-{
-       volatile u32 *read;
-       volatile u32 *write;
-       const u32 INIT_PATTERN = 0xAA55AA55;
-       const u32 INC_PATTERN = 0x01030507;
-       u32 pattern;
-       int check;
-       int i;
-
-       check = 0;
-       read = write = (volatile u32 *) memory;
-       pattern = INIT_PATTERN;
-       for (i = 0; i < DILIGENCE; i++) {
-               *write++ = pattern;
-               pattern += INC_PATTERN;
-       }
-       puts("testing\n");
-       pattern = INIT_PATTERN;
-       for (i = 0; i < DILIGENCE; i++) {
-               check += (pattern == *read++) ? 1 : 0;
-               pattern += INC_PATTERN;
-       }
-       return (check == DILIGENCE) ? 0 : -1;
-}
-#endif
-
-void uart_init(void)
-{
-       /* Reset UART1 */
-       reset_block(SYS_CTRL_RST_UART1, 1);
-       udelay(100);
-       reset_block(SYS_CTRL_RST_UART1, 0);
-       udelay(100);
-
-       /* Setup pin mux'ing for UART1 */
-       pinmux_set(PINMUX_BANK_MFA, 30, PINMUX_UARTA_SIN);
-       pinmux_set(PINMUX_BANK_MFA, 31, PINMUX_UARTA_SOUT);
-}
-
-extern void init_ddr(int mhz);
-
-void board_inithw(void)
-{
-       int plla_freq;
-#ifdef DEBUG
-       int i;
-#endif /* DEBUG */
-
-       timer_init();
-       uart_init();
-       preloader_console_init();
-
-       plla_freq = plla_set_config(CONFIG_PLLA_FREQ_MHZ);
-       init_ddr(plla_freq);
-
-#ifdef DEBUG
-       if(test_memory(CONFIG_SYS_SDRAM_BASE)) {
-               puts("memory test failed\n");
-       } else {
-               puts("memory test done\n");
-       }
-#endif /* DEBUG */
-#ifdef CONFIG_SPL_BSS_DRAM_START
-       extern char __bss_dram_start[];
-       extern char __bss_dram_end[];
-       memset(&__bss_dram_start, 0, __bss_dram_end - __bss_dram_start);
-#endif
-}
-
-void board_init_f(ulong dummy)
-{
-       /* Set the stack pointer. */
-       asm volatile("mov sp, %0\n" : : "r"(CONFIG_SPL_STACK));
-
-       /* Clear the BSS. */
-       memset(__bss_start, 0, __bss_end - __bss_start);
-
-       /* Set global data pointer. */
-       gd = &gdata;
-
-       board_inithw();
-
-       board_init_r(NULL, 0);
-}
-
-u32 spl_boot_device(void)
-{
-       return CONFIG_SPL_BOOT_DEVICE;
-}
-
-#ifdef CONFIG_SPL_BLOCK_SUPPORT
-void spl_block_device_init(void)
-{
-       ide_init();
-}
-#endif
-
-#ifdef CONFIG_SPL_OS_BOOT
-int spl_start_uboot(void)
-{
-        /* break into full u-boot on 'c' */
-        return (serial_tstc() && serial_getc() == 'c');
-}
-#endif
-
-void spl_display_print(void)
-{
-       /* print a hint, so that we will not use the wrong SPL by mistake */
-       puts("  Boot device: " BOOT_DEVICE_TYPE "\n" );
-}
-
-void lowlevel_init(void)
-{
-}
-
-#ifdef USE_DL_PREFIX
-/* quick and dirty memory allocation */
-static ulong next_mem = CONFIG_SPL_MALLOC_START;
-
-void *memalign(size_t alignment, size_t bytes)
-{
-       ulong mem = ALIGN(next_mem, alignment);
-
-       next_mem = mem + bytes;
-
-       if (next_mem > CONFIG_SYS_SDRAM_BASE + CONFIG_MIN_SDRAM_SIZE) {
-               printf("spl: out of memory\n");
-               hang();
-       }
-
-       return (void *)mem;
-}
-
-void free(void* mem)
-{
-}
-#endif
-
-#endif /* CONFIG_SPL_BUILD */
-
-int board_early_init_f(void)
-{
-       return 0;
-}
-
-#define STATIC_CTL_BANK0               (STATIC_CONTROL_BASE + 4)
-#define STATIC_READ_CYCLE_SHIFT                0
-#define STATIC_DELAYED_OE              (1 << 7)
-#define STATIC_WRITE_CYCLE_SHIFT       8
-#define STATIC_WRITE_PULSE_SHIFT       16
-#define STATIC_WRITE_BURST_EN          (1 << 23)
-#define STATIC_TURN_AROUND_SHIFT       24
-#define STATIC_BUFFER_PRESENT          (1 << 28)
-#define STATIC_READ_BURST_EN           (1 << 29)
-#define STATIC_BUS_WIDTH8              (0 << 30)
-#define STATIC_BUS_WIDTH16             (1 << 30)
-#define STATIC_BUS_WIDTH32             (2 << 30)
-
-void nand_hwcontrol(struct mtd_info *mtd, int cmd, unsigned int ctrl)
-{
-       struct nand_chip *this = mtd->priv;
-       unsigned long nandaddr = (unsigned long) this->IO_ADDR_W;
-
-       if (ctrl & NAND_CTRL_CHANGE) {
-               nandaddr &= ~(BIT(NAND_ALE_ADDR_PIN) | BIT(NAND_CLE_ADDR_PIN));
-               if (ctrl & NAND_CLE)
-                       nandaddr |= BIT(NAND_CLE_ADDR_PIN);
-               else if (ctrl & NAND_ALE)
-                       nandaddr |= BIT(NAND_ALE_ADDR_PIN);
-               this->IO_ADDR_W = (void __iomem *) nandaddr;
-       }
-
-       if (cmd != NAND_CMD_NONE)
-               writeb(cmd, (void __iomem *) nandaddr);
-}
-
-#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_BOOT_FROM_NAND)
-
-int nand_dev_ready(struct mtd_info *mtd)
-{
-       struct nand_chip *chip = mtd->priv;
-
-       udelay(chip->chip_delay);
-
-       return 1;
-}
-
-void nand_read_buf(struct mtd_info *mtd, uint8_t *buf, int len)
-{
-       int i;
-       struct nand_chip *chip = mtd->priv;
-
-       for (i = 0; i < len; i++)
-               buf[i] = readb(chip->IO_ADDR_R);
-}
-
-void nand_dev_reset(struct nand_chip *chip)
-{
-       writeb(NAND_CMD_RESET, chip->IO_ADDR_W + BIT(NAND_CLE_ADDR_PIN));
-       udelay(chip->chip_delay);
-       writeb(NAND_CMD_STATUS, chip->IO_ADDR_W + BIT(NAND_CLE_ADDR_PIN));
-       while (!(readb(chip->IO_ADDR_R) & NAND_STATUS_READY)) {
-               ;
-       }
-}
-
-#else
-
-#define nand_dev_reset(chip)   /* framework will reset the chip anyway */
-#define nand_read_buf          NULL /* framework will provide a default one */
-#define nand_dev_ready         NULL /* dev_ready is optional */
-
-#endif
-
-int board_nand_init(struct nand_chip *chip)
-{
-       /* Block reset Static core */
-       reset_block(SYS_CTRL_RST_STATIC, 1);
-       reset_block(SYS_CTRL_RST_STATIC, 0);
-
-       /* Enable clock to Static core */
-       enable_clock(SYS_CTRL_CLK_STATIC);
-
-       /* enable flash support on static bus.
-        * Enable static bus onto GPIOs, only CS0 */
-       pinmux_set(PINMUX_BANK_MFA, 12, PINMUX_STATIC_DATA0);
-       pinmux_set(PINMUX_BANK_MFA, 13, PINMUX_STATIC_DATA1);
-       pinmux_set(PINMUX_BANK_MFA, 14, PINMUX_STATIC_DATA2);
-       pinmux_set(PINMUX_BANK_MFA, 15, PINMUX_STATIC_DATA3);
-       pinmux_set(PINMUX_BANK_MFA, 16, PINMUX_STATIC_DATA4);
-       pinmux_set(PINMUX_BANK_MFA, 17, PINMUX_STATIC_DATA5);
-       pinmux_set(PINMUX_BANK_MFA, 18, PINMUX_STATIC_DATA6);
-       pinmux_set(PINMUX_BANK_MFA, 19, PINMUX_STATIC_DATA7);
-
-       pinmux_set(PINMUX_BANK_MFA, 20, PINMUX_STATIC_NWE);
-       pinmux_set(PINMUX_BANK_MFA, 21, PINMUX_STATIC_NOE);
-       pinmux_set(PINMUX_BANK_MFA, 22, PINMUX_STATIC_NCS);
-       pinmux_set(PINMUX_BANK_MFA, 23, PINMUX_STATIC_ADDR18);
-       pinmux_set(PINMUX_BANK_MFA, 24, PINMUX_STATIC_ADDR19);
-
-       /* Setup the static bus CS0 to access FLASH */
-
-       writel((0x3f << STATIC_READ_CYCLE_SHIFT)
-                       | (0x3f << STATIC_WRITE_CYCLE_SHIFT)
-                       | (0x1f << STATIC_WRITE_PULSE_SHIFT)
-                       | (0x03 << STATIC_TURN_AROUND_SHIFT) |
-                       STATIC_BUS_WIDTH16,
-               STATIC_CTL_BANK0);
-
-       chip->cmd_ctrl = nand_hwcontrol;
-       chip->ecc.mode = NAND_ECC_SOFT;
-       chip->chip_delay = 30;
-       chip->dev_ready = nand_dev_ready;
-       chip->read_buf = nand_read_buf;
-
-       nand_dev_reset(chip);
-
-       return 0;
-}
-
-int board_init(void)
-{
-       gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
-       gd->bd->bi_arch_number = MACH_TYPE_OXNAS;
-
-       /* assume uart is already initialized by SPL */
-
-#if defined(CONFIG_START_IDE)
-       puts("IDE:   ");
-       ide_init();
-#endif
-
-       return 0;
-}
-
-/* copied from board/evb64260/sdram_init.c */
-/*
- * Check memory range for valid RAM. A simple memory test determines
- * the actually available RAM size between addresses `base' and
- * `base + maxsize'. Some (not all) hardware errors are detected:
- * - short between address lines
- * - short between data lines
- */
-static long int dram_size (long int *base, long int maxsize)
-{
-       volatile long int *addr, *b = base;
-       long int cnt, val, save1, save2;
-
-#define STARTVAL (CONFIG_MIN_SDRAM_SIZE / 2)   /* start test at half size */
-       for (cnt = STARTVAL / sizeof (long); cnt < maxsize / sizeof (long);
-            cnt <<= 1) {
-               addr = base + cnt;      /* pointer arith! */
-
-               save1 = *addr;  /* save contents of addr */
-               save2 = *b;     /* save contents of base */
-
-               *addr = cnt;    /* write cnt to addr */
-               *b = 0;         /* put null at base */
-
-               /* check at base address */
-               if ((*b) != 0) {
-                       *addr = save1;  /* restore *addr */
-                       *b = save2;     /* restore *b */
-                       return (0);
-               }
-               val = *addr;    /* read *addr */
-
-               *addr = save1;
-               *b = save2;
-
-               if (val != cnt) {
-                       /* fix boundary condition.. STARTVAL means zero */
-                       if (cnt == STARTVAL / sizeof (long))
-                               cnt = 0;
-                       return (cnt * sizeof (long));
-               }
-       }
-       return maxsize;
-}
-
-int dram_init(void)
-{
-       gd->ram_size = dram_size((long int *)CONFIG_SYS_SDRAM_BASE,
-                                       CONFIG_MAX_SDRAM_SIZE);
-       return 0;
-}
-
-int board_eth_init(bd_t *bis)
-{
-       u32 value;
-
-       /* set the pin multiplexers to enable talking to Ethernent Phys */
-       pinmux_set(PINMUX_BANK_MFA, 3, PINMUX_MACA_MDC);
-       pinmux_set(PINMUX_BANK_MFA, 4, PINMUX_MACA_MDIO);
-
-       // Ensure the MAC block is properly reset
-       reset_block(SYS_CTRL_RST_MAC, 1);
-       udelay(10);
-       reset_block(SYS_CTRL_RST_MAC, 0);
-
-       // Enable the clock to the MAC block
-       enable_clock(SYS_CTRL_CLK_MAC);
-
-       value = readl(SYS_CTRL_GMAC_CTRL);
-       /* Use simple mux for 25/125 Mhz clock switching */
-       value |= BIT(SYS_CTRL_GMAC_SIMPLE_MUX);
-       /* Enable GMII_GTXCLK to follow GMII_REFCLK - required for gigabit PHY */
-       value |= BIT(SYS_CTRL_GMAC_CKEN_GTX);
-       /* set auto tx speed */
-       value |= BIT(SYS_CTRL_GMAC_AUTOSPEED);
-
-       writel(value, SYS_CTRL_GMAC_CTRL);
-
-       return designware_initialize(MAC_BASE, PHY_INTERFACE_MODE_RGMII);
-}
-
diff --git a/package/boot/uboot-oxnas/src/board/ox820/spl_start.S b/package/boot/uboot-oxnas/src/board/ox820/spl_start.S
deleted file mode 100644 (file)
index 2eab3f5..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-.section .init
-.globl _spl_start
-_spl_start:
-       b       _start
-       b       _start+0x4
-       b       _start+0x8
-       b       _start+0xc
-       b       _start+0x10
-       b       _start+0x14
-       b       _start+0x18
-       b       _start+0x1c
-       .space  0x30 - (. - _spl_start)
-       .ascii  "BOOT"          /* 0x30 signature*/
-       .word   0x50            /* 0x34 header size itself */
-       .word   0               /* 0x38 */
-       .word   0x5000f000      /* boot report location */
-       .word   _start          /* 0x40 */
-
-main_crc_size: .word   code_size       /* 0x44 filled by linker */
-main_crc:      .word   0               /* 0x48 fill later */
-header_crc:    .word   0               /* 0x4C header crc*/
diff --git a/package/boot/uboot-oxnas/src/board/ox820/u-boot-spl.lds b/package/boot/uboot-oxnas/src/board/ox820/u-boot-spl.lds
deleted file mode 100644 (file)
index a8d90df..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
- * on behalf of DENX Software Engineering GmbH
- *
- * January 2004 - Changed to support H4 device
- * Copyright (c) 2004-2008 Texas Instruments
- *
- * (C) Copyright 2002
- * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-MEMORY
-{
-        sram (rwx) : ORIGIN = CONFIG_SPL_TEXT_BASE, LENGTH = CONFIG_SPL_MAX_SIZE
-        dram : ORIGIN = CONFIG_SPL_BSS_DRAM_START, LENGTH = CONFIG_SPL_BSS_DRAM_SIZE
-}
-
-OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_spl_start)
-SECTIONS
-{
-       .text.0 :
-       {
-               *(.init*)
-       }
-
-
-       /* Start of the rest of the SPL */
-       code_start = . ;
-
-       .text.1 :
-       {
-               *(.text*)
-       }
-
-       . = ALIGN(4);
-       .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
-
-       . = ALIGN(4);
-       .data : {
-               *(.data*)
-       }
-
-       . = ALIGN(4);
-
-       __image_copy_end = .;
-       code_size = . - code_start;
-
-       .rel.dyn : {
-               __rel_dyn_start = .;
-               *(.rel*)
-               __rel_dyn_end = .;
-       }
-
-       . = ALIGN(0x800);
-
-       _end = .;
-
-       .bss.sram __rel_dyn_start (OVERLAY) : {
-               __bss_start = .;
-               *(.bss.stdio_devices)
-               *(.bss.serial_current)
-                . = ALIGN(4);
-               __bss_end = .;
-       }
-
-       .bss : {
-               __bss_dram_start = .;
-               *(.bss*)
-               __bss_dram_end = .;
-       } > dram
-
-       /DISCARD/ : { *(.bss*) }
-       /DISCARD/ : { *(.dynsym) }
-       /DISCARD/ : { *(.dynstr*) }
-       /DISCARD/ : { *(.dynsym*) }
-       /DISCARD/ : { *(.dynamic*) }
-       /DISCARD/ : { *(.hash*) }
-       /DISCARD/ : { *(.plt*) }
-       /DISCARD/ : { *(.interp*) }
-       /DISCARD/ : { *(.gnu*) }
-}
diff --git a/package/boot/uboot-oxnas/src/common/env_ext4.c b/package/boot/uboot-oxnas/src/common/env_ext4.c
deleted file mode 100644 (file)
index e98d94d..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * (c) Copyright 2011 by Tigris Elektronik GmbH
- *
- * Author:
- *  Maximilian Schwerin <mvs@tigris.de>
- *
- * SPDX-License-Identifier:    GPL-2.0+
- */
-
-#include <common.h>
-
-#include <command.h>
-#include <environment.h>
-#include <linux/stddef.h>
-#include <malloc.h>
-#include <search.h>
-#include <errno.h>
-#include <ext4fs.h>
-
-char *env_name_spec = "EXT4";
-
-env_t *env_ptr;
-
-DECLARE_GLOBAL_DATA_PTR;
-
-int env_init(void)
-{
-       /* use default */
-       gd->env_addr = (ulong)&default_environment[0];
-       gd->env_valid = 1;
-
-       return 0;
-}
-
-#ifdef CONFIG_CMD_SAVEENV
-int saveenv(void)
-{
-       env_t   env_new;
-       ssize_t len;
-       char    *res;
-       block_dev_desc_t *dev_desc = NULL;
-       int dev = EXT4_ENV_DEVICE;
-       int part = EXT4_ENV_PART;
-       int err;
-
-       res = (char *)&env_new.data;
-       len = hexport_r(&env_htab, '\0', 0, &res, ENV_SIZE, 0, NULL);
-       if (len < 0) {
-               error("Cannot export environment: errno = %d\n", errno);
-               return 1;
-       }
-
-       dev_desc = get_dev(EXT4_ENV_INTERFACE, dev);
-       if (dev_desc == NULL) {
-               printf("Failed to find %s%d\n",
-                       EXT4_ENV_INTERFACE, dev);
-               return 1;
-       }
-
-       err = ext4_register_device(dev_desc, part);
-       if (err) {
-               printf("Failed to register %s%d:%d\n",
-                       EXT4_ENV_INTERFACE, dev, part);
-               return 1;
-       }
-
-       env_new.crc = crc32(0, env_new.data, ENV_SIZE);
-       err = ext4fs_write(EXT4_ENV_FILE, (void *)&env_new, sizeof(env_t));
-       ext4fs_close();
-       if (err == -1) {
-               printf("\n** Unable to write \"%s\" from %s%d:%d **\n",
-                       EXT4_ENV_FILE, EXT4_ENV_INTERFACE, dev, part);
-               return 1;
-       }
-
-       puts("done\n");
-       return 0;
-}
-#endif /* CONFIG_CMD_SAVEENV */
-
-void env_relocate_spec(void)
-{
-       char buf[CONFIG_ENV_SIZE];
-       block_dev_desc_t *dev_desc = NULL;
-       int dev = EXT4_ENV_DEVICE;
-       int part = EXT4_ENV_PART;
-       int err;
-
-       dev_desc = get_dev(EXT4_ENV_INTERFACE, dev);
-       if (dev_desc == NULL) {
-               printf("Failed to find %s%d\n",
-                       EXT4_ENV_INTERFACE, dev);
-               set_default_env(NULL);
-               return;
-       }
-
-       err = ext4_register_device(dev_desc, part);
-       if (err) {
-               printf("Failed to register %s%d:%d\n",
-                       EXT4_ENV_INTERFACE, dev, part);
-               set_default_env(NULL);
-               return;
-       }
-
-       err = ext4_read_file(EXT4_ENV_FILE, (uchar *)&buf, 0, CONFIG_ENV_SIZE);
-       ext4fs_close();
-
-       if (err == -1) {
-               printf("\n** Unable to read \"%s\" from %s%d:%d **\n",
-                       EXT4_ENV_FILE, EXT4_ENV_INTERFACE, dev, part);
-               set_default_env(NULL);
-               return;
-       }
-
-       env_import(buf, 1);
-}
diff --git a/package/boot/uboot-oxnas/src/common/spl/spl_block.c b/package/boot/uboot-oxnas/src/common/spl/spl_block.c
deleted file mode 100644 (file)
index f16413a..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * (C) Copyright 2013
- *
- * Ma Haijun <mahaijuns@gmail.com>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-#include <common.h>
-#include <spl.h>
-#include <asm/u-boot.h>
-#include <asm/utils.h>
-#include <version.h>
-#include <part.h>
-#include <fat.h>
-#include <ext4fs.h>
-
-/* should be implemented by board */
-extern void spl_block_device_init(void);
-
-block_dev_desc_t * spl_get_block_device(void)
-{
-       block_dev_desc_t * device;
-
-       spl_block_device_init();
-
-       device = get_dev(CONFIG_SPL_BLOCKDEV_INTERFACE, CONFIG_SPL_BLOCKDEV_ID);
-       if (!device) {
-               printf("blk device %s%d not exists\n",
-                       CONFIG_SPL_BLOCKDEV_INTERFACE,
-                       CONFIG_SPL_BLOCKDEV_ID);
-               hang();
-       }
-
-       return device;
-}
-
-#ifdef CONFIG_SPL_FAT_SUPPORT
-static int block_load_image_fat(const char *filename)
-{
-       int err;
-       struct image_header *header;
-
-       header = (struct image_header *)(CONFIG_SYS_TEXT_BASE -
-                                               sizeof(struct image_header));
-
-       err = file_fat_read(filename, header, sizeof(struct image_header));
-       if (err <= 0)
-               goto end;
-
-       spl_parse_image_header(header);
-
-       err = file_fat_read(filename, (u8 *)spl_image.load_addr, 0);
-
-end:
-       if (err <= 0)
-               printf("spl: error reading image %s, err - %d\n",
-                      filename, err);
-
-       return (err <= 0);
-}
-
-#ifdef CONFIG_SPL_OS_BOOT
-static int block_load_image_fat_os(void)
-{
-       int err;
-
-       err = file_fat_read(CONFIG_SPL_FAT_LOAD_ARGS_NAME,
-                           (void *)CONFIG_SYS_SPL_ARGS_ADDR, 0);
-       if (err <= 0) {
-               return -1;
-       }
-
-       return block_load_image_fat(CONFIG_SPL_FAT_LOAD_KERNEL_NAME);
-}
-#endif
-
-void spl_block_load_image(void)
-{
-       int err;
-       block_dev_desc_t * device;
-
-       device = spl_get_block_device();
-       err = fat_register_device(device, CONFIG_BLOCKDEV_FAT_BOOT_PARTITION);
-       if (err) {
-               printf("spl: fat register err - %d\n", err);
-               hang();
-       }
-#ifdef CONFIG_SPL_OS_BOOT
-       if (spl_start_uboot() || block_load_image_fat_os())
-#endif
-       {
-               err = block_load_image_fat(CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME);
-               if (err)
-                       hang();
-       }
-}
-#elif defined(CONFIG_SPL_EXT4_SUPPORT) /* end CONFIG_SPL_FAT_SUPPORT */
-static int block_load_image_ext4(const char *filename)
-{
-       int err;
-       struct image_header *header;
-
-       header = (struct image_header *)(CONFIG_SYS_TEXT_BASE -
-                                               sizeof(struct image_header));
-
-       err = ext4_read_file(filename, header, 0, sizeof(struct image_header));
-       if (err <= 0)
-               goto end;
-
-       spl_parse_image_header(header);
-
-       err = ext4_read_file(filename, (u8 *)spl_image.load_addr, 0, 0);
-
-end:
-       return (err <= 0);
-}
-
-#ifdef CONFIG_SPL_OS_BOOT
-static int block_load_image_ext4_os(void)
-{
-       int err;
-
-       err = ext4_read_file(CONFIG_SPL_EXT4_LOAD_ARGS_NAME,
-                           (void *)CONFIG_SYS_SPL_ARGS_ADDR, 0, 0);
-       if (err <= 0) {
-               return -1;
-       }
-
-       return block_load_image_ext4(CONFIG_SPL_EXT4_LOAD_KERNEL_NAME);
-}
-#endif
-
-void spl_block_load_image(void)
-{
-       int err;
-       block_dev_desc_t * device;
-
-       device = spl_get_block_device();
-       err = ext4_register_device(device, CONFIG_BLOCKDEV_EXT4_BOOT_PARTITION);
-       if (err) {
-               hang();
-       }
-#ifdef CONFIG_SPL_OS_BOOT
-       if (spl_start_uboot() || block_load_image_ext4_os())
-#endif
-       {
-               err = block_load_image_ext4(CONFIG_SPL_EXT4_LOAD_PAYLOAD_NAME);
-               if (err)
-                       hang();
-       }
-}
-#else /* end CONFIG_SPL_EXT4_SUPPORT */
-static int block_load_image_raw(block_dev_desc_t * device, lbaint_t sector)
-{
-       int n;
-       u32 image_size_sectors;
-       struct image_header *header;
-
-       header = (struct image_header *)(CONFIG_SYS_TEXT_BASE -
-                                               sizeof(struct image_header));
-
-       /* read image header to find the image size & load address */
-       n = device->block_read(device->dev, sector, 1, header);
-
-       if (n != 1) {
-               printf("spl: blk read err\n");
-               return 1;
-       }
-
-       spl_parse_image_header(header);
-
-       /* convert size to sectors - round up */
-       image_size_sectors = (spl_image.size + 512 - 1) / 512;
-       n = device->block_read(device->dev, sector, image_size_sectors,
-                                       (void *)spl_image.load_addr);
-
-       if (n != image_size_sectors) {
-               printf("spl: blk read err\n");
-               return 1;
-       }
-       return 0;
-}
-
-#ifdef CONFIG_SPL_OS_BOOT
-static int block_load_image_raw_os(block_dev_desc_t * device)
-{
-       int n;
-
-       n = device->block_read(device->dev, CONFIG_SYS_BLOCK_RAW_MODE_ARGS_SECTOR,
-                                       CONFIG_SYS_BLOCK_RAW_MODE_ARGS_SECTORS,
-                                       (u32 *)CONFIG_SYS_SPL_ARGS_ADDR);
-       /* flush cache after read */
-       flush_cache(addr, CONFIG_SYS_BLOCK_RAW_MODE_ARGS_SECTORS * 512);
-
-       if (n != CONFIG_SYS_BLOCK_RAW_MODE_ARGS_SECTORS) {
-               printf("args blk read error\n");
-               return -1;
-       }
-
-       return block_load_image_raw(device, CONFIG_SYS_BLOCK_RAW_MODE_KERNEL_SECTOR);
-}
-#endif
-
-void spl_block_load_image(void)
-{
-       int err;
-       block_dev_desc_t * device;
-
-       device = spl_get_block_device();
-#ifdef CONFIG_SPL_OS_BOOT
-       if (spl_start_uboot() || block_load_image_raw_os(device))
-#endif
-       {
-               err = block_load_image_raw(device,
-                                        CONFIG_SYS_BLOCK_RAW_MODE_U_BOOT_SECTOR);
-               if (err)
-                       hang();
-       }
-}
-#endif /* CONFIG_SPL_FAT_SUPPORT */
diff --git a/package/boot/uboot-oxnas/src/configs/ox820_defconfig b/package/boot/uboot-oxnas/src/configs/ox820_defconfig
deleted file mode 100644 (file)
index 48a16d0..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-CONFIG_ARM=y
-CONFIG_OX820=y
-CONFIG_TARGET_OX820=y
diff --git a/package/boot/uboot-oxnas/src/drivers/block/plxsata_ide.c b/package/boot/uboot-oxnas/src/drivers/block/plxsata_ide.c
deleted file mode 100644 (file)
index 7e0e78f..0000000
+++ /dev/null
@@ -1,1170 +0,0 @@
-/*
- * (C) Copyright 2005
- * Oxford Semiconductor Ltd
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,`
- * MA 02111-1307 USA
- */
-#include <common.h>
-#include <asm/arch/clock.h>
-
-/**
- * SATA related definitions
- */
-#define ATA_PORT_CTL        0
-#define ATA_PORT_FEATURE    1
-#define ATA_PORT_NSECT      2
-#define ATA_PORT_LBAL       3
-#define ATA_PORT_LBAM       4
-#define ATA_PORT_LBAH       5
-#define ATA_PORT_DEVICE     6
-#define ATA_PORT_COMMAND    7
-
-/* The offsets to the SATA registers */
-#define SATA_ORB1_OFF           0
-#define SATA_ORB2_OFF           1
-#define SATA_ORB3_OFF           2
-#define SATA_ORB4_OFF           3
-#define SATA_ORB5_OFF           4
-
-#define SATA_FIS_ACCESS         11
-#define SATA_INT_STATUS_OFF     12  /* Read only */
-#define SATA_INT_CLR_OFF        12  /* Write only */
-#define SATA_INT_ENABLE_OFF     13  /* Read only */
-#define SATA_INT_ENABLE_SET_OFF 13  /* Write only */
-#define SATA_INT_ENABLE_CLR_OFF 14  /* Write only */
-#define SATA_VERSION_OFF        15
-#define SATA_CONTROL_OFF        23
-#define SATA_COMMAND_OFF        24
-#define SATA_PORT_CONTROL_OFF   25
-#define SATA_DRIVE_CONTROL_OFF  26
-
-/* The offsets to the link registers that are access in an asynchronous manner */
-#define SATA_LINK_DATA     28
-#define SATA_LINK_RD_ADDR  29
-#define SATA_LINK_WR_ADDR  30
-#define SATA_LINK_CONTROL  31
-
-/* SATA interrupt status register fields */
-#define SATA_INT_STATUS_EOC_RAW_BIT     ( 0 + 16)
-#define SATA_INT_STATUS_ERROR_BIT       ( 2 + 16)
-#define SATA_INT_STATUS_EOADT_RAW_BIT   ( 1 + 16)
-
-/* SATA core command register commands */
-#define SATA_CMD_WRITE_TO_ORB_REGS              2
-#define SATA_CMD_WRITE_TO_ORB_REGS_NO_COMMAND   4
-
-#define SATA_CMD_BUSY_BIT 7
-
-#define SATA_SCTL_CLR_ERR 0x00000316UL
-
-#define SATA_LBAL_BIT    0
-#define SATA_LBAM_BIT    8
-#define SATA_LBAH_BIT    16
-#define SATA_HOB_LBAH_BIT 24
-#define SATA_DEVICE_BIT  24
-#define SATA_NSECT_BIT   0
-#define SATA_HOB_NSECT_BIT   8
-#define SATA_LBA32_BIT       0
-#define SATA_LBA40_BIT       8
-#define SATA_FEATURE_BIT 16
-#define SATA_COMMAND_BIT 24
-#define SATA_CTL_BIT     24
-
-/* ATA status (7) register field definitions */
-#define ATA_STATUS_BSY_BIT     7
-#define ATA_STATUS_DRDY_BIT    6
-#define ATA_STATUS_DF_BIT      5
-#define ATA_STATUS_DRQ_BIT     3
-#define ATA_STATUS_ERR_BIT     0
-
-/* ATA device (6) register field definitions */
-#define ATA_DEVICE_FIXED_MASK 0xA0
-#define ATA_DEVICE_DRV_BIT 4
-#define ATA_DEVICE_DRV_NUM_BITS 1
-#define ATA_DEVICE_LBA_BIT 6
-
-/* ATA Command register initiated commands */
-#define ATA_CMD_INIT    0x91
-#define ATA_CMD_IDENT   0xEC
-
-#define SATA_STD_ASYNC_REGS_OFF 0x20
-#define SATA_SCR_STATUS      0
-#define SATA_SCR_ERROR       1
-#define SATA_SCR_CONTROL     2
-#define SATA_SCR_ACTIVE      3
-#define SATA_SCR_NOTIFICAION 4
-
-#define SATA_BURST_BUF_FORCE_EOT_BIT        0
-#define SATA_BURST_BUF_DATA_INJ_ENABLE_BIT  1
-#define SATA_BURST_BUF_DIR_BIT              2
-#define SATA_BURST_BUF_DATA_INJ_END_BIT     3
-#define SATA_BURST_BUF_FIFO_DIS_BIT         4
-#define SATA_BURST_BUF_DIS_DREQ_BIT         5
-#define SATA_BURST_BUF_DREQ_BIT             6
-
-#define SATA_OPCODE_MASK 0x3
-
-#define SATA_DMA_CHANNEL 0
-
-#define DMA_CTRL_STATUS      (0x0)
-#define DMA_BASE_SRC_ADR     (0x4)
-#define DMA_BASE_DST_ADR     (0x8)
-#define DMA_BYTE_CNT         (0xC)
-#define DMA_CURRENT_SRC_ADR  (0x10)
-#define DMA_CURRENT_DST_ADR  (0x14)
-#define DMA_CURRENT_BYTE_CNT (0x18)
-#define DMA_INTR_ID          (0x1C)
-#define DMA_INTR_CLEAR_REG   (DMA_CURRENT_SRC_ADR)
-
-#define DMA_CALC_REG_ADR(channel, register) ((volatile u32*)(DMA_BASE + ((channel) << 5) + (register)))
-
-#define DMA_CTRL_STATUS_FAIR_SHARE_ARB            (1 << 0)
-#define DMA_CTRL_STATUS_IN_PROGRESS               (1 << 1)
-#define DMA_CTRL_STATUS_SRC_DREQ_MASK             (0x0000003C)
-#define DMA_CTRL_STATUS_SRC_DREQ_SHIFT            (2)
-#define DMA_CTRL_STATUS_DEST_DREQ_MASK            (0x000003C0)
-#define DMA_CTRL_STATUS_DEST_DREQ_SHIFT           (6)
-#define DMA_CTRL_STATUS_INTR                      (1 << 10)
-#define DMA_CTRL_STATUS_NXT_FREE                  (1 << 11)
-#define DMA_CTRL_STATUS_RESET                     (1 << 12)
-#define DMA_CTRL_STATUS_DIR_MASK                  (0x00006000)
-#define DMA_CTRL_STATUS_DIR_SHIFT                 (13)
-#define DMA_CTRL_STATUS_SRC_ADR_MODE              (1 << 15)
-#define DMA_CTRL_STATUS_DEST_ADR_MODE             (1 << 16)
-#define DMA_CTRL_STATUS_TRANSFER_MODE_A           (1 << 17)
-#define DMA_CTRL_STATUS_TRANSFER_MODE_B           (1 << 18)
-#define DMA_CTRL_STATUS_SRC_WIDTH_MASK            (0x00380000)
-#define DMA_CTRL_STATUS_SRC_WIDTH_SHIFT           (19)
-#define DMA_CTRL_STATUS_DEST_WIDTH_MASK           (0x01C00000)
-#define DMA_CTRL_STATUS_DEST_WIDTH_SHIFT          (22)
-#define DMA_CTRL_STATUS_PAUSE                     (1 << 25)
-#define DMA_CTRL_STATUS_INTERRUPT_ENABLE          (1 << 26)
-#define DMA_CTRL_STATUS_SOURCE_ADDRESS_FIXED      (1 << 27)
-#define DMA_CTRL_STATUS_DESTINATION_ADDRESS_FIXED (1 << 28)
-#define DMA_CTRL_STATUS_STARVE_LOW_PRIORITY       (1 << 29)
-#define DMA_CTRL_STATUS_INTR_CLEAR_ENABLE         (1 << 30)
-
-#define DMA_BYTE_CNT_MASK        ((1 << 21) - 1)
-#define DMA_BYTE_CNT_WR_EOT_MASK (1 << 30)
-#define DMA_BYTE_CNT_RD_EOT_MASK (1 << 31)
-#define DMA_BYTE_CNT_BURST_MASK  (1 << 28)
-
-#define MAKE_FIELD(value, num_bits, bit_num) (((value) & ((1 << (num_bits)) - 1)) << (bit_num))
-
-typedef enum oxnas_dma_mode {
-       OXNAS_DMA_MODE_FIXED, OXNAS_DMA_MODE_INC
-} oxnas_dma_mode_t;
-
-typedef enum oxnas_dma_direction {
-       OXNAS_DMA_TO_DEVICE, OXNAS_DMA_FROM_DEVICE
-} oxnas_dma_direction_t;
-
-/* The available buses to which the DMA controller is attached */
-typedef enum oxnas_dma_transfer_bus {
-       OXNAS_DMA_SIDE_A, OXNAS_DMA_SIDE_B
-} oxnas_dma_transfer_bus_t;
-
-/* Direction of data flow between the DMA controller's pair of interfaces */
-typedef enum oxnas_dma_transfer_direction {
-       OXNAS_DMA_A_TO_A, OXNAS_DMA_B_TO_A, OXNAS_DMA_A_TO_B, OXNAS_DMA_B_TO_B
-} oxnas_dma_transfer_direction_t;
-
-/* The available data widths */
-typedef enum oxnas_dma_transfer_width {
-       OXNAS_DMA_TRANSFER_WIDTH_8BITS,
-       OXNAS_DMA_TRANSFER_WIDTH_16BITS,
-       OXNAS_DMA_TRANSFER_WIDTH_32BITS
-} oxnas_dma_transfer_width_t;
-
-/* The mode of the DMA transfer */
-typedef enum oxnas_dma_transfer_mode {
-       OXNAS_DMA_TRANSFER_MODE_SINGLE, OXNAS_DMA_TRANSFER_MODE_BURST
-} oxnas_dma_transfer_mode_t;
-
-/* The available transfer targets */
-typedef enum oxnas_dma_dreq {
-       OXNAS_DMA_DREQ_SATA = 0, OXNAS_DMA_DREQ_MEMORY = 15
-} oxnas_dma_dreq_t;
-
-typedef struct oxnas_dma_device_settings {
-       unsigned long address_;
-       unsigned fifo_size_; // Chained transfers must take account of FIFO offset at end of previous transfer
-       unsigned char dreq_;
-       unsigned read_eot_ :1;
-       unsigned read_final_eot_ :1;
-       unsigned write_eot_ :1;
-       unsigned write_final_eot_ :1;
-       unsigned bus_ :1;
-       unsigned width_ :2;
-       unsigned transfer_mode_ :1;
-       unsigned address_mode_ :1;
-       unsigned address_really_fixed_ :1;
-} oxnas_dma_device_settings_t;
-
-static const int MAX_NO_ERROR_LOOPS = 100000; /* 1 second in units of 10uS */
-static const int MAX_DMA_XFER_LOOPS = 300000; /* 30 seconds in units of 100uS */
-static const int MAX_DMA_ABORT_LOOPS = 10000; /* 0.1 second in units of 10uS */
-static const int MAX_SRC_READ_LOOPS = 10000; /* 0.1 second in units of 10uS */
-static const int MAX_SRC_WRITE_LOOPS = 10000; /* 0.1 second in units of 10uS */
-static const int MAX_NOT_BUSY_LOOPS = 10000; /* 1 second in units of 100uS */
-
-/* The internal SATA drive on which we should attempt to find partitions */
-static volatile u32* sata_regs_base[2] = { (volatile u32*) SATA_0_REGS_BASE,
-               (volatile u32*) SATA_1_REGS_BASE,
-
-};
-static u32 wr_sata_orb1[2] = { 0, 0 };
-static u32 wr_sata_orb2[2] = { 0, 0 };
-static u32 wr_sata_orb3[2] = { 0, 0 };
-static u32 wr_sata_orb4[2] = { 0, 0 };
-
-#ifdef CONFIG_LBA48
-/* need keeping a record of NSECT LBAL LBAM LBAH ide_outb values for lba48 support */
-#define OUT_HISTORY_BASE       ATA_PORT_NSECT
-#define OUT_HISTORY_MAX                ATA_PORT_LBAH
-static unsigned char out_history[2][OUT_HISTORY_MAX - OUT_HISTORY_BASE + 1] = {};
-#endif
-
-static oxnas_dma_device_settings_t oxnas_sata_dma_settings = { .address_ =
-       SATA_DATA_BASE, .fifo_size_ = 16, .dreq_ = OXNAS_DMA_DREQ_SATA,
-               .read_eot_ = 0, .read_final_eot_ = 1, .write_eot_ = 0,
-               .write_final_eot_ = 1, .bus_ = OXNAS_DMA_SIDE_B, .width_ =
-                       OXNAS_DMA_TRANSFER_WIDTH_32BITS, .transfer_mode_ =
-                       OXNAS_DMA_TRANSFER_MODE_BURST, .address_mode_ =
-                       OXNAS_DMA_MODE_FIXED, .address_really_fixed_ = 0 };
-
-oxnas_dma_device_settings_t oxnas_ram_dma_settings = { .address_ = 0,
-               .fifo_size_ = 0, .dreq_ = OXNAS_DMA_DREQ_MEMORY, .read_eot_ = 1,
-               .read_final_eot_ = 1, .write_eot_ = 1, .write_final_eot_ = 1,
-               .bus_ = OXNAS_DMA_SIDE_A, .width_ =
-                       OXNAS_DMA_TRANSFER_WIDTH_32BITS, .transfer_mode_ =
-                       OXNAS_DMA_TRANSFER_MODE_BURST, .address_mode_ =
-                       OXNAS_DMA_MODE_FIXED, .address_really_fixed_ = 1 };
-
-static void xfer_wr_shadow_to_orbs(int device)
-{
-       *(sata_regs_base[device] + SATA_ORB1_OFF) = wr_sata_orb1[device];
-       *(sata_regs_base[device] + SATA_ORB2_OFF) = wr_sata_orb2[device];
-       *(sata_regs_base[device] + SATA_ORB3_OFF) = wr_sata_orb3[device];
-       *(sata_regs_base[device] + SATA_ORB4_OFF) = wr_sata_orb4[device];
-}
-
-static inline void device_select(int device)
-{
-       /* master/slave has no meaning to SATA core */
-}
-
-static int disk_present[CONFIG_SYS_IDE_MAXDEVICE];
-
-#include <ata.h>
-
-unsigned char ide_inb(int device, int port)
-{
-       unsigned char val = 0;
-
-       /* Only permit accesses to disks found to be present during ide_preinit() */
-       if (!disk_present[device]) {
-               return ATA_STAT_FAULT;
-       }
-
-       device_select(device);
-
-       switch (port) {
-       case ATA_PORT_CTL:
-               val = (*(sata_regs_base[device] + SATA_ORB4_OFF)
-                       & (0xFFUL << SATA_CTL_BIT)) >> SATA_CTL_BIT;
-               break;
-       case ATA_PORT_FEATURE:
-               val = (*(sata_regs_base[device] + SATA_ORB2_OFF)
-                       & (0xFFUL << SATA_FEATURE_BIT)) >> SATA_FEATURE_BIT;
-               break;
-       case ATA_PORT_NSECT:
-               val = (*(sata_regs_base[device] + SATA_ORB2_OFF)
-                       & (0xFFUL << SATA_NSECT_BIT)) >> SATA_NSECT_BIT;
-               break;
-       case ATA_PORT_LBAL:
-               val = (*(sata_regs_base[device] + SATA_ORB3_OFF)
-                       & (0xFFUL << SATA_LBAL_BIT)) >> SATA_LBAL_BIT;
-               break;
-       case ATA_PORT_LBAM:
-               val = (*(sata_regs_base[device] + SATA_ORB3_OFF)
-                       & (0xFFUL << SATA_LBAM_BIT)) >> SATA_LBAM_BIT;
-               break;
-       case ATA_PORT_LBAH:
-               val = (*(sata_regs_base[device] + SATA_ORB3_OFF)
-                       & (0xFFUL << SATA_LBAH_BIT)) >> SATA_LBAH_BIT;
-               break;
-       case ATA_PORT_DEVICE:
-               val = (*(sata_regs_base[device] + SATA_ORB3_OFF)
-                       & (0xFFUL << SATA_HOB_LBAH_BIT)) >> SATA_HOB_LBAH_BIT;
-               val |= (*(sata_regs_base[device] + SATA_ORB1_OFF)
-                       & (0xFFUL << SATA_DEVICE_BIT)) >> SATA_DEVICE_BIT;
-               break;
-       case ATA_PORT_COMMAND:
-               val = (*(sata_regs_base[device] + SATA_ORB2_OFF)
-                       & (0xFFUL << SATA_COMMAND_BIT)) >> SATA_COMMAND_BIT;
-               val |= ATA_STAT_DRQ;
-               break;
-       default:
-               printf("ide_inb() Unknown port = %d\n", port);
-               break;
-       }
-
-       //    printf("inb: %d:%01x => %02x\n", device, port, val);
-
-       return val;
-}
-
-/**
- * Possible that ATA status will not become no-error, so must have timeout
- * @returns An int which is zero on error
- */
-static inline int wait_no_error(int device)
-{
-       int status = 0;
-
-       /* Check for ATA core error */
-       if (*(sata_regs_base[device] + SATA_INT_STATUS_OFF)
-               & (1 << SATA_INT_STATUS_ERROR_BIT)) {
-               printf("wait_no_error() SATA core flagged error\n");
-       } else {
-               int loops = MAX_NO_ERROR_LOOPS;
-               do {
-                       /* Check for ATA device error */
-                       if (!(ide_inb(device, ATA_PORT_COMMAND)
-                               & (1 << ATA_STATUS_ERR_BIT))) {
-                               status = 1;
-                               break;
-                       }
-                       udelay(10);
-               } while (--loops);
-
-               if (!loops) {
-                       printf("wait_no_error() Timed out of wait for SATA no-error condition\n");
-               }
-       }
-
-       return status;
-}
-
-/**
- * Expect SATA command to always finish, perhaps with error
- * @returns An int which is zero on error
- */
-static inline int wait_sata_command_not_busy(int device)
-{
-       /* Wait for data to be available */
-       int status = 0;
-       int loops = MAX_NOT_BUSY_LOOPS;
-       do {
-               if (!(*(sata_regs_base[device] + SATA_COMMAND_OFF)
-                       & (1 << SATA_CMD_BUSY_BIT))) {
-                       status = 1;
-                       break;
-               }
-               udelay(100);
-       } while (--loops);
-
-       if (!loops) {
-               printf("wait_sata_command_not_busy() Timed out of wait for SATA command to finish\n");
-       }
-
-       return status;
-}
-
-void ide_outb(int device, int port, unsigned char val)
-{
-       typedef enum send_method {
-               SEND_NONE, SEND_SIMPLE, SEND_CMD, SEND_CTL,
-       } send_method_t;
-
-       /* Only permit accesses to disks found to be present during ide_preinit() */
-       if (!disk_present[device]) {
-               return;
-       }
-
-       //    printf("outb: %d:%01x <= %02x\n", device, port, val);
-
-       device_select(device);
-
-#ifdef CONFIG_LBA48
-       if (port >= OUT_HISTORY_BASE && port <= OUT_HISTORY_MAX) {
-               out_history[0][port - OUT_HISTORY_BASE] =
-                       out_history[1][port - OUT_HISTORY_BASE];
-               out_history[1][port - OUT_HISTORY_BASE] = val;
-       }
-#endif
-       send_method_t send_regs = SEND_NONE;
-       switch (port) {
-       case ATA_PORT_CTL:
-               wr_sata_orb4[device] &= ~(0xFFUL << SATA_CTL_BIT);
-               wr_sata_orb4[device] |= (val << SATA_CTL_BIT);
-               send_regs = SEND_CTL;
-               break;
-       case ATA_PORT_FEATURE:
-               wr_sata_orb2[device] &= ~(0xFFUL << SATA_FEATURE_BIT);
-               wr_sata_orb2[device] |= (val << SATA_FEATURE_BIT);
-               send_regs = SEND_SIMPLE;
-               break;
-       case ATA_PORT_NSECT:
-               wr_sata_orb2[device] &= ~(0xFFUL << SATA_NSECT_BIT);
-               wr_sata_orb2[device] |= (val << SATA_NSECT_BIT);
-               send_regs = SEND_SIMPLE;
-               break;
-       case ATA_PORT_LBAL:
-               wr_sata_orb3[device] &= ~(0xFFUL << SATA_LBAL_BIT);
-               wr_sata_orb3[device] |= (val << SATA_LBAL_BIT);
-               send_regs = SEND_SIMPLE;
-               break;
-       case ATA_PORT_LBAM:
-               wr_sata_orb3[device] &= ~(0xFFUL << SATA_LBAM_BIT);
-               wr_sata_orb3[device] |= (val << SATA_LBAM_BIT);
-               send_regs = SEND_SIMPLE;
-               break;
-       case ATA_PORT_LBAH:
-               wr_sata_orb3[device] &= ~(0xFFUL << SATA_LBAH_BIT);
-               wr_sata_orb3[device] |= (val << SATA_LBAH_BIT);
-               send_regs = SEND_SIMPLE;
-               break;
-       case ATA_PORT_DEVICE:
-               wr_sata_orb1[device] &= ~(0xFFUL << SATA_DEVICE_BIT);
-               wr_sata_orb1[device] |= (val << SATA_DEVICE_BIT);
-               send_regs = SEND_SIMPLE;
-               break;
-       case ATA_PORT_COMMAND:
-               wr_sata_orb2[device] &= ~(0xFFUL << SATA_COMMAND_BIT);
-               wr_sata_orb2[device] |= (val << SATA_COMMAND_BIT);
-               send_regs = SEND_CMD;
-#ifdef CONFIG_LBA48
-               if (val == ATA_CMD_READ_EXT || val == ATA_CMD_WRITE_EXT)
-               {
-                       /* fill high bytes of LBA48 && NSECT */
-                       wr_sata_orb2[device] &= ~(0xFFUL << SATA_HOB_NSECT_BIT);
-                       wr_sata_orb2[device] |=
-                               (out_history[0][ATA_PORT_NSECT - OUT_HISTORY_BASE] << SATA_HOB_NSECT_BIT);
-
-                       wr_sata_orb3[device] &= ~(0xFFUL << SATA_HOB_LBAH_BIT);
-                       wr_sata_orb3[device] |=
-                               (out_history[0][ATA_PORT_LBAL - OUT_HISTORY_BASE] << SATA_HOB_LBAH_BIT);
-
-                       wr_sata_orb4[device] &= ~(0xFFUL << SATA_LBA32_BIT);
-                       wr_sata_orb4[device] |=
-                               (out_history[0][ATA_PORT_LBAM - OUT_HISTORY_BASE] << SATA_LBA32_BIT);
-
-                       wr_sata_orb4[device] &= ~(0xFFUL << SATA_LBA40_BIT);
-                       wr_sata_orb4[device] |=
-                               (out_history[0][ATA_PORT_LBAH - OUT_HISTORY_BASE] << SATA_LBA40_BIT);
-               }
-#endif
-               break;
-       default:
-               printf("ide_outb() Unknown port = %d\n", port);
-       }
-
-       u32 command;
-       switch (send_regs) {
-       case SEND_CMD:
-               wait_sata_command_not_busy(device);
-               command = *(sata_regs_base[device] + SATA_COMMAND_OFF);
-               command &= ~SATA_OPCODE_MASK;
-               command |= SATA_CMD_WRITE_TO_ORB_REGS;
-               xfer_wr_shadow_to_orbs(device);
-               wait_sata_command_not_busy(device);
-               *(sata_regs_base[device] + SATA_COMMAND_OFF) = command;
-               if (!wait_no_error(device)) {
-                       printf("ide_outb() Wait for ATA no-error timed-out\n");
-               }
-               break;
-       case SEND_CTL:
-               wait_sata_command_not_busy(device);
-               command = *(sata_regs_base[device] + SATA_COMMAND_OFF);
-               command &= ~SATA_OPCODE_MASK;
-               command |= SATA_CMD_WRITE_TO_ORB_REGS_NO_COMMAND;
-               xfer_wr_shadow_to_orbs(device);
-               wait_sata_command_not_busy(device);
-               *(sata_regs_base[device] + SATA_COMMAND_OFF) = command;
-               if (!wait_no_error(device)) {
-                       printf("ide_outb() Wait for ATA no-error timed-out\n");
-               }
-               break;
-       default:
-               break;
-       }
-}
-
-static u32 encode_start(u32 ctrl_status)
-{
-       return ctrl_status & ~DMA_CTRL_STATUS_PAUSE;
-}
-
-/* start a paused DMA transfer in channel 0 of the SATA DMA core */
-static void dma_start(void)
-{
-       unsigned int reg;
-       reg = readl(SATA_DMA_REGS_BASE + DMA_CTRL_STATUS);
-       reg = encode_start(reg);
-       writel(reg, SATA_DMA_REGS_BASE + DMA_CTRL_STATUS);
-}
-
-static unsigned long encode_control_status(
-       oxnas_dma_device_settings_t* src_settings,
-       oxnas_dma_device_settings_t* dst_settings)
-{
-       unsigned long ctrl_status;
-       oxnas_dma_transfer_direction_t direction;
-
-       ctrl_status = DMA_CTRL_STATUS_PAUSE;                           // Paused
-       ctrl_status |= DMA_CTRL_STATUS_FAIR_SHARE_ARB;          // High priority
-       ctrl_status |= (src_settings->dreq_ << DMA_CTRL_STATUS_SRC_DREQ_SHIFT); // Dreq
-       ctrl_status |= (dst_settings->dreq_ << DMA_CTRL_STATUS_DEST_DREQ_SHIFT); // Dreq
-       ctrl_status &= ~DMA_CTRL_STATUS_RESET;                         // !RESET
-
-       // Use new interrupt clearing register
-       ctrl_status |= DMA_CTRL_STATUS_INTR_CLEAR_ENABLE;
-
-       // Setup the transfer direction and burst/single mode for the two DMA busses
-       if (src_settings->bus_ == OXNAS_DMA_SIDE_A) {
-               // Set the burst/single mode for bus A based on src device's settings
-               if (src_settings->transfer_mode_
-                       == OXNAS_DMA_TRANSFER_MODE_BURST) {
-                       ctrl_status |= DMA_CTRL_STATUS_TRANSFER_MODE_A;
-               } else {
-                       ctrl_status &= ~DMA_CTRL_STATUS_TRANSFER_MODE_A;
-               }
-
-               if (dst_settings->bus_ == OXNAS_DMA_SIDE_A) {
-                       direction = OXNAS_DMA_A_TO_A;
-               } else {
-                       direction = OXNAS_DMA_A_TO_B;
-
-                       // Set the burst/single mode for bus B based on dst device's settings
-                       if (dst_settings->transfer_mode_
-                               == OXNAS_DMA_TRANSFER_MODE_BURST) {
-                               ctrl_status |= DMA_CTRL_STATUS_TRANSFER_MODE_B;
-                       } else {
-                               ctrl_status &= ~DMA_CTRL_STATUS_TRANSFER_MODE_B;
-                       }
-               }
-       } else {
-               // Set the burst/single mode for bus B based on src device's settings
-               if (src_settings->transfer_mode_
-                       == OXNAS_DMA_TRANSFER_MODE_BURST) {
-                       ctrl_status |= DMA_CTRL_STATUS_TRANSFER_MODE_B;
-               } else {
-                       ctrl_status &= ~DMA_CTRL_STATUS_TRANSFER_MODE_B;
-               }
-
-               if (dst_settings->bus_ == OXNAS_DMA_SIDE_A) {
-                       direction = OXNAS_DMA_B_TO_A;
-
-                       // Set the burst/single mode for bus A based on dst device's settings
-                       if (dst_settings->transfer_mode_
-                               == OXNAS_DMA_TRANSFER_MODE_BURST) {
-                               ctrl_status |= DMA_CTRL_STATUS_TRANSFER_MODE_A;
-                       } else {
-                               ctrl_status &= ~DMA_CTRL_STATUS_TRANSFER_MODE_A;
-                       }
-               } else {
-                       direction = OXNAS_DMA_B_TO_B;
-               }
-       }
-       ctrl_status |= (direction << DMA_CTRL_STATUS_DIR_SHIFT);
-
-       // Setup source address mode fixed or increment
-       if (src_settings->address_mode_ == OXNAS_DMA_MODE_FIXED) {
-               // Fixed address
-               ctrl_status &= ~(DMA_CTRL_STATUS_SRC_ADR_MODE);
-
-               // Set up whether fixed address is _really_ fixed
-               if (src_settings->address_really_fixed_) {
-                       ctrl_status |= DMA_CTRL_STATUS_SOURCE_ADDRESS_FIXED;
-               } else {
-                       ctrl_status &= ~DMA_CTRL_STATUS_SOURCE_ADDRESS_FIXED;
-               }
-       } else {
-               // Incrementing address
-               ctrl_status |= DMA_CTRL_STATUS_SRC_ADR_MODE;
-               ctrl_status &= ~DMA_CTRL_STATUS_SOURCE_ADDRESS_FIXED;
-       }
-
-       // Setup destination address mode fixed or increment
-       if (dst_settings->address_mode_ == OXNAS_DMA_MODE_FIXED) {
-               // Fixed address
-               ctrl_status &= ~(DMA_CTRL_STATUS_DEST_ADR_MODE);
-
-               // Set up whether fixed address is _really_ fixed
-               if (dst_settings->address_really_fixed_) {
-                       ctrl_status |=
-                               DMA_CTRL_STATUS_DESTINATION_ADDRESS_FIXED;
-               } else {
-                       ctrl_status &=
-                               ~DMA_CTRL_STATUS_DESTINATION_ADDRESS_FIXED;
-               }
-       } else {
-               // Incrementing address
-               ctrl_status |= DMA_CTRL_STATUS_DEST_ADR_MODE;
-               ctrl_status &= ~DMA_CTRL_STATUS_DESTINATION_ADDRESS_FIXED;
-       }
-
-       // Set up the width of the transfers on the DMA buses
-       ctrl_status |=
-               (src_settings->width_ << DMA_CTRL_STATUS_SRC_WIDTH_SHIFT);
-       ctrl_status |=
-               (dst_settings->width_ << DMA_CTRL_STATUS_DEST_WIDTH_SHIFT);
-
-       // Setup the priority arbitration scheme
-       ctrl_status &= ~DMA_CTRL_STATUS_STARVE_LOW_PRIORITY; // !Starve low priority
-
-       return ctrl_status;
-}
-
-static u32 encode_final_eot(oxnas_dma_device_settings_t* src_settings,
-                               oxnas_dma_device_settings_t* dst_settings,
-                               unsigned long length)
-{
-       // Write the length, with EOT configuration for a final transfer
-       unsigned long encoded = length;
-       if (dst_settings->write_final_eot_) {
-               encoded |= DMA_BYTE_CNT_WR_EOT_MASK;
-       } else {
-               encoded &= ~DMA_BYTE_CNT_WR_EOT_MASK;
-       }
-       if (src_settings->read_final_eot_) {
-               encoded |= DMA_BYTE_CNT_RD_EOT_MASK;
-       } else {
-               encoded &= ~DMA_BYTE_CNT_RD_EOT_MASK;
-       }
-       /*    if((src_settings->transfer_mode_) ||
-        (src_settings->transfer_mode_)) {
-        encoded |= DMA_BYTE_CNT_BURST_MASK;
-        } else {
-        encoded &= ~DMA_BYTE_CNT_BURST_MASK;
-        }*/
-       return encoded;
-}
-
-static void dma_start_write(const ulong* buffer, int num_bytes)
-{
-       // Assemble complete memory settings
-       oxnas_dma_device_settings_t mem_settings = oxnas_ram_dma_settings;
-       mem_settings.address_ = (unsigned long) buffer;
-       mem_settings.address_mode_ = OXNAS_DMA_MODE_INC;
-
-       writel(encode_control_status(&mem_settings, &oxnas_sata_dma_settings),
-               SATA_DMA_REGS_BASE + DMA_CTRL_STATUS);
-       writel(mem_settings.address_, SATA_DMA_REGS_BASE + DMA_BASE_SRC_ADR);
-       writel(oxnas_sata_dma_settings.address_,
-               SATA_DMA_REGS_BASE + DMA_BASE_DST_ADR);
-       writel(encode_final_eot(&mem_settings, &oxnas_sata_dma_settings,
-                               num_bytes),
-               SATA_DMA_REGS_BASE + DMA_BYTE_CNT);
-
-       dma_start();
-}
-
-static void dma_start_read(ulong* buffer, int num_bytes)
-{
-       // Assemble complete memory settings
-       oxnas_dma_device_settings_t mem_settings = oxnas_ram_dma_settings;
-       mem_settings.address_ = (unsigned long) buffer;
-       mem_settings.address_mode_ = OXNAS_DMA_MODE_INC;
-
-       writel(encode_control_status(&oxnas_sata_dma_settings, &mem_settings),
-               SATA_DMA_REGS_BASE + DMA_CTRL_STATUS);
-       writel(oxnas_sata_dma_settings.address_,
-               SATA_DMA_REGS_BASE + DMA_BASE_SRC_ADR);
-       writel(mem_settings.address_, SATA_DMA_REGS_BASE + DMA_BASE_DST_ADR);
-       writel(encode_final_eot(&oxnas_sata_dma_settings, &mem_settings,
-                               num_bytes),
-               SATA_DMA_REGS_BASE + DMA_BYTE_CNT);
-
-       dma_start();
-}
-
-static inline int dma_busy(void)
-{
-       return readl(SATA_DMA_REGS_BASE + DMA_CTRL_STATUS)
-               & DMA_CTRL_STATUS_IN_PROGRESS;
-}
-
-static int wait_dma_not_busy(int device)
-{
-       unsigned int cleanup_required = 0;
-
-       /* Poll for DMA completion */
-       int loops = MAX_DMA_XFER_LOOPS;
-       do {
-               if (!dma_busy()) {
-                       break;
-               }
-               udelay(100);
-       } while (--loops);
-
-       if (!loops) {
-               printf("wait_dma_not_busy() Timed out of wait for DMA not busy\n");
-               cleanup_required = 1;
-       }
-
-       if (cleanup_required) {
-               /* Abort DMA to make sure it has finished. */
-               unsigned int ctrl_status = readl(
-                       SATA_DMA_CHANNEL + DMA_CTRL_STATUS);
-               ctrl_status |= DMA_CTRL_STATUS_RESET;
-               writel(ctrl_status, SATA_DMA_CHANNEL + DMA_CTRL_STATUS);
-
-               // Wait for the channel to become idle - should be quick as should
-               // finish after the next AHB single or burst transfer
-               loops = MAX_DMA_ABORT_LOOPS;
-               do {
-                       if (!dma_busy()) {
-                               break;
-                       }
-                       udelay(10);
-               } while (--loops);
-
-               if (!loops) {
-                       printf("wait_dma_not_busy() Timed out of wait for DMA channel abort\n");
-               } else {
-                       /* Successfully cleanup the DMA channel */
-                       cleanup_required = 0;
-               }
-
-               // Deassert reset for the channel
-               ctrl_status = readl(SATA_DMA_CHANNEL + DMA_CTRL_STATUS);
-               ctrl_status &= ~DMA_CTRL_STATUS_RESET;
-               writel(ctrl_status, SATA_DMA_CHANNEL + DMA_CTRL_STATUS);
-       }
-
-       return !cleanup_required;
-}
-
-/**
- * Possible that ATA status will not become not-busy, so must have timeout
- */
-static unsigned int wait_not_busy(int device, unsigned long timeout_secs)
-{
-       int busy = 1;
-       unsigned long loops = (timeout_secs * 1000) / 50;
-       do {
-               // Test the ATA status register BUSY flag
-               if (!((*(sata_regs_base[device] + SATA_ORB2_OFF)
-                       >> SATA_COMMAND_BIT) & (1UL << ATA_STATUS_BSY_BIT))) {
-                       /* Not busy, so stop polling */
-                       busy = 0;
-                       break;
-               }
-
-               // Wait for 50mS before sampling ATA status register again
-               udelay(50000);
-       } while (--loops);
-
-       return busy;
-}
-
-void ide_output_data(int device, const ulong *sect_buf, int words)
-{
-       /* Only permit accesses to disks found to be present during ide_preinit() */
-       if (!disk_present[device]) {
-               return;
-       }
-
-       /* Select the required internal SATA drive */
-       device_select(device);
-
-       /* Start the DMA channel sending data from the passed buffer to the SATA core */
-       dma_start_write(sect_buf, words << 2);
-
-       /* Don't know why we need this delay, but without it the wait for DMA not
-        busy times soemtimes out, e.g. when saving environment to second disk */
-       udelay(1000);
-
-       /* Wait for DMA to finish */
-       if (!wait_dma_not_busy(device)) {
-               printf("Timed out of wait for DMA channel for SATA device %d to have in-progress clear\n",
-                       device);
-       }
-
-       /* Sata core should finish after DMA */
-       if (wait_not_busy(device, 30)) {
-               printf("Timed out of wait for SATA device %d to have BUSY clear\n",
-                       device);
-       }
-       if (!wait_no_error(device)) {
-               printf("oxnas_sata_output_data() Wait for ATA no-error timed-out\n");
-       }
-}
-
-
-#define SATA_DM_DBG1                   (SATA_HOST_REGS_BASE + 0)
-#define SATA_DATACOUNT_PORT0           (SATA_HOST_REGS_BASE + 0x10)
-#define SATA_DATACOUNT_PORT1           (SATA_HOST_REGS_BASE + 0x14)
-#define SATA_DATA_MUX_RAM0             (SATA_HOST_REGS_BASE + 0x8000)
-#define SATA_DATA_MUX_RAM1             (SATA_HOST_REGS_BASE + 0xA000)
-/* Sata core debug1 register bits */
-#define SATA_CORE_PORT0_DATA_DIR_BIT   20
-#define SATA_CORE_PORT1_DATA_DIR_BIT   21
-#define SATA_CORE_PORT0_DATA_DIR       (1 << SATA_CORE_PORT0_DATA_DIR_BIT)
-#define SATA_CORE_PORT1_DATA_DIR       (1 << SATA_CORE_PORT1_DATA_DIR_BIT)
-
-/**
- * Ref bug-6320
- *
- * This code is a work around for a DMA hardware bug that will repeat the
- * penultimate 8-bytes on some reads. This code will check that the amount
- * of data transferred is a multiple of 512 bytes, if not the in it will
- * fetch the correct data from a buffer in the SATA core and copy it into
- * memory.
- *
- */
-static void sata_bug_6320_workaround(int port, ulong *candidate)
-{
-       int is_read;
-       int quads_transferred;
-       int remainder;
-       int sector_quads_remaining;
-
-       /* Only want to apply fix to reads */
-       is_read = !(*((unsigned long*) SATA_DM_DBG1)
-               & (port ? SATA_CORE_PORT1_DATA_DIR : SATA_CORE_PORT0_DATA_DIR));
-
-       /* Check for an incomplete transfer, i.e. not a multiple of 512 bytes
-        transferred (datacount_port register counts quads transferred) */
-       quads_transferred = *((unsigned long*) (
-               port ? SATA_DATACOUNT_PORT1 : SATA_DATACOUNT_PORT0));
-
-       remainder = quads_transferred & 0x7f;
-       sector_quads_remaining = remainder ? (0x80 - remainder) : 0;
-
-       if (is_read && (sector_quads_remaining == 2)) {
-               debug("SATA read fixup, only transfered %d quads, "
-                       "sector_quads_remaining %d, port %d\n",
-                       quads_transferred, sector_quads_remaining, port);
-
-               int total_len = ATA_SECT_SIZE;
-               ulong *sata_data_ptr = (void*) (
-                       port ? SATA_DATA_MUX_RAM1 : SATA_DATA_MUX_RAM0)
-                       + ((total_len - 8) % 2048);
-
-               *candidate = *sata_data_ptr;
-               *(candidate + 1) = *(sata_data_ptr + 1);
-       }
-}
-
-
-void ide_input_data(int device, ulong *sect_buf, int words)
-{
-       /* Only permit accesses to disks found to be present during ide_preinit() */
-       if (!disk_present[device]) {
-               return;
-       }
-
-       /* Select the required internal SATA drive */
-       device_select(device);
-
-       /* Start the DMA channel receiving data from the SATA core into the passed buffer */
-       dma_start_read(sect_buf, words << 2);
-
-       /* Sata core should finish before DMA */
-       if (wait_not_busy(device, 30)) {
-               printf("Timed out of wait for SATA device %d to have BUSY clear\n",
-                       device);
-       }
-       if (!wait_no_error(device)) {
-               printf("oxnas_sata_output_data() Wait for ATA no-error timed-out\n");
-       }
-
-       /* Wait for DMA to finish */
-       if (!wait_dma_not_busy(device)) {
-               printf("Timed out of wait for DMA channel for SATA device %d to have in-progress clear\n",
-                       device);
-       }
-
-       if (words == ATA_SECTORWORDS)
-               sata_bug_6320_workaround(device, sect_buf + words - 2);
-}
-
-static u32 scr_read(int device, unsigned int sc_reg)
-{
-       /* Setup adr of required register. std regs start eight into async region */
-       *(sata_regs_base[device] + SATA_LINK_RD_ADDR) = sc_reg
-               * 4+ SATA_STD_ASYNC_REGS_OFF;
-
-       /* Wait for data to be available */
-       int loops = MAX_SRC_READ_LOOPS;
-       do {
-               if (*(sata_regs_base[device] + SATA_LINK_CONTROL) & 1UL) {
-                       break;
-               }
-               udelay(10);
-       } while (--loops);
-
-       if (!loops) {
-               printf("scr_read() Timed out of wait for read completion\n");
-       }
-
-       /* Read the data from the async register */
-       return *(sata_regs_base[device] + SATA_LINK_DATA);
-}
-
-static void scr_write(int device, unsigned int sc_reg, u32 val)
-{
-       /* Setup the data for the write */
-       *(sata_regs_base[device] + SATA_LINK_DATA) = val;
-
-       /* Setup adr of required register. std regs start eight into async region */
-       *(sata_regs_base[device] + SATA_LINK_WR_ADDR) = sc_reg
-               * 4+ SATA_STD_ASYNC_REGS_OFF;
-
-       /* Wait for data to be written */
-       int loops = MAX_SRC_WRITE_LOOPS;
-       do {
-               if (*(sata_regs_base[device] + SATA_LINK_CONTROL) & 1UL) {
-                       break;
-               }
-               udelay(10);
-       } while (--loops);
-
-       if (!loops) {
-               printf("scr_write() Timed out of wait for write completion\n");
-       }
-}
-extern void workaround5458(void);
-
-#define PHY_LOOP_COUNT  25  /* Wait for upto 5 seconds for PHY to be found */
-#define LOS_AND_TX_LVL   0x2988
-#define TX_ATTEN         0x55629
-
-static int phy_reset(int device)
-{
-       int phy_status = 0;
-       int loops = 0;
-
-       scr_write(device, (0x60 - SATA_STD_ASYNC_REGS_OFF) / 4, LOS_AND_TX_LVL);
-       scr_write(device, (0x70 - SATA_STD_ASYNC_REGS_OFF) / 4, TX_ATTEN);
-
-       /* limit it to Gen-1 SATA (1.5G) */
-       scr_write(device, SATA_SCR_CONTROL, 0x311); /* Issue phy wake & core reset */
-       scr_read(device, SATA_SCR_STATUS); /* Dummy read; flush */
-       udelay(1000);
-       scr_write(device, SATA_SCR_CONTROL, 0x310); /* Issue phy wake & clear core reset */
-
-       /* Wait for upto 5 seconds for PHY to become ready */
-       do {
-               udelay(200000);
-               if ((scr_read(device, SATA_SCR_STATUS) & 0xf) == 3) {
-                       scr_write(device, SATA_SCR_ERROR, ~0);
-                       phy_status = 1;
-                       break;
-               }
-               //printf("No SATA PHY found status:0x%x\n", scr_read(device, SATA_SCR_STATUS));
-       } while (++loops < PHY_LOOP_COUNT);
-
-       if (phy_status) {
-               udelay(500000); /* wait half a second */
-       }
-
-       return phy_status;
-}
-
-#define FIS_LOOP_COUNT  25  /* Wait for upto 5 seconds for FIS to be received */
-static int wait_FIS(int device)
-{
-       int status = 0;
-       int loops = 0;
-
-       do {
-               udelay(200000);
-               if (ide_inb(device, ATA_PORT_NSECT) > 0) {
-                       status = 1;
-                       break;
-               }
-       } while (++loops < FIS_LOOP_COUNT);
-
-       return status;
-}
-
-
-#define SATA_PHY_ASIC_STAT  (0x44900000)
-#define SATA_PHY_ASIC_DATA  (0x44900004)
-
-/**
- * initialise functions and macros for ASIC implementation
- */
-#define PH_GAIN         2
-#define FR_GAIN         3
-#define PH_GAIN_OFFSET  6
-#define FR_GAIN_OFFSET  8
-#define PH_GAIN_MASK  (0x3 << PH_GAIN_OFFSET)
-#define FR_GAIN_MASK  (0x3 << FR_GAIN_OFFSET)
-#define USE_INT_SETTING  (1<<5)
-
-#define CR_READ_ENABLE  (1<<16)
-#define CR_WRITE_ENABLE (1<<17)
-#define CR_CAP_DATA     (1<<18)
-
-static void wait_cr_ack(void)
-{
-       while ((readl(SATA_PHY_ASIC_STAT) >> 16) & 0x1f)
-               /* wait for an ack bit to be set */;
-}
-
-static unsigned short read_cr(unsigned short address)
-{
-       writel(address, SATA_PHY_ASIC_STAT);
-       wait_cr_ack();
-       writel(CR_READ_ENABLE, SATA_PHY_ASIC_DATA);
-       wait_cr_ack();
-       return readl(SATA_PHY_ASIC_STAT);
-}
-
-static void write_cr(unsigned short data, unsigned short address)
-{
-       writel(address, SATA_PHY_ASIC_STAT);
-       wait_cr_ack();
-       writel((data | CR_CAP_DATA), SATA_PHY_ASIC_DATA);
-       wait_cr_ack();
-       writel(CR_WRITE_ENABLE, SATA_PHY_ASIC_DATA);
-       wait_cr_ack();
-       return;
-}
-
-void workaround5458(void)
-{
-       unsigned i;
-
-       for (i = 0; i < 2; i++) {
-               unsigned short rx_control = read_cr(0x201d + (i << 8));
-               rx_control &= ~(PH_GAIN_MASK | FR_GAIN_MASK);
-               rx_control |= PH_GAIN << PH_GAIN_OFFSET;
-               rx_control |= FR_GAIN << FR_GAIN_OFFSET;
-               rx_control |= USE_INT_SETTING;
-               write_cr(rx_control, 0x201d + (i << 8));
-       }
-}
-
-int ide_preinit(void)
-{
-       int num_disks_found = 0;
-
-       /* Initialise records of which disks are present to all present */
-       int i;
-       for (i = 0; i < CONFIG_SYS_IDE_MAXDEVICE; i++) {
-               disk_present[i] = 1;
-       }
-
-       /* Block reset SATA and DMA cores */
-       reset_block(SYS_CTRL_RST_SATA, 1);
-       reset_block(SYS_CTRL_RST_SATA_LINK, 1);
-       reset_block(SYS_CTRL_RST_SATA_PHY, 1);
-       reset_block(SYS_CTRL_RST_SGDMA, 1);
-
-       /* Enable clocks to SATA and DMA cores */
-       enable_clock(SYS_CTRL_CLK_SATA);
-       enable_clock(SYS_CTRL_CLK_DMA);
-
-       udelay(5000);
-       reset_block(SYS_CTRL_RST_SATA_PHY, 0);
-       udelay(50);
-       reset_block(SYS_CTRL_RST_SATA, 0);
-       reset_block(SYS_CTRL_RST_SATA_LINK, 0);
-       udelay(50);
-       reset_block(SYS_CTRL_RST_SGDMA, 0);
-       udelay(100);
-       /* Apply the Synopsis SATA PHY workarounds */
-       workaround5458();
-       udelay(10000);
-
-       /* disable and clear core interrupts */
-       *((unsigned long*) SATA_HOST_REGS_BASE + SATA_INT_ENABLE_CLR_OFF) =
-               ~0UL;
-       *((unsigned long*) SATA_HOST_REGS_BASE + SATA_INT_CLR_OFF) = ~0UL;
-
-       int device;
-       for (device = 0; device < CONFIG_SYS_IDE_MAXDEVICE; device++) {
-               int found = 0;
-               int retries = 1;
-
-               /* Disable SATA interrupts */
-               *(sata_regs_base[device] + SATA_INT_ENABLE_CLR_OFF) = ~0UL;
-
-               /* Clear any pending SATA interrupts */
-               *(sata_regs_base[device] + SATA_INT_CLR_OFF) = ~0UL;
-
-               do {
-                       /* clear sector count register for FIS detection */
-                       ide_outb(device, ATA_PORT_NSECT, 0);
-
-                       /* Get the PHY working */
-                       if (!phy_reset(device)) {
-                               printf("SATA PHY not ready for device %d\n",
-                                       device);
-                               break;
-                       }
-
-                       if (!wait_FIS(device)) {
-                               printf("No FIS received from device %d\n",
-                                       device);
-                       } else {
-                               if ((scr_read(device, SATA_SCR_STATUS) & 0xf)
-                                       == 0x3) {
-                                       if (wait_not_busy(device, 30)) {
-                                               printf("Timed out of wait for SATA device %d to have BUSY clear\n",
-                                                       device);
-                                       } else {
-                                               ++num_disks_found;
-                                               found = 1;
-                                       }
-                               } else {
-                                       printf("No SATA device %d found, PHY status = 0x%08x\n",
-                                               device,
-                                               scr_read(
-                                                       device,
-                                                       SATA_SCR_STATUS));
-                               }
-                               break;
-                       }
-               } while (retries--);
-
-               /* Record whether disk is present, so won't attempt to access it later */
-               disk_present[device] = found;
-       }
-
-       /* post disk detection clean-up */
-       for (device = 0; device < CONFIG_SYS_IDE_MAXDEVICE; device++) {
-               if (disk_present[device]) {
-                       /* set as ata-5 (28-bit) */
-                       *(sata_regs_base[device] + SATA_DRIVE_CONTROL_OFF) =
-                               0UL;
-
-                       /* clear phy/link errors */
-                       scr_write(device, SATA_SCR_ERROR, ~0);
-
-                       /* clear host errors */
-                       *(sata_regs_base[device] + SATA_CONTROL_OFF) |=
-                               SATA_SCTL_CLR_ERR;
-
-                       /* clear interrupt register as this clears the error bit in the IDE
-                        status register */
-                       *(sata_regs_base[device] + SATA_INT_CLR_OFF) = ~0UL;
-               }
-       }
-
-       return !num_disks_found;
-}
-
diff --git a/package/boot/uboot-oxnas/src/drivers/usb/host/ehci-oxnas.c b/package/boot/uboot-oxnas/src/drivers/usb/host/ehci-oxnas.c
deleted file mode 100644 (file)
index 6ab05c5..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * drivers/usb/host/ehci-oxnas.c
- *
- * Tzachi Perelstein <tzachi@marvell.com>
- *
- * This file is licensed under  the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-#include <common.h>
-#include <asm/arch/hardware.h>
-#include <asm/arch/sysctl.h>
-#include <asm/arch/clock.h>
-
-#include "ehci.h"
-
-static struct ehci_hcor *ghcor;
-
-static int start_oxnas_usb_ehci(void)
-{
-#ifdef CONFIG_USB_PLLB_CLK
-       reset_block(SYS_CTRL_RST_PLLB, 0);
-       enable_clock(SYS_CTRL_CLK_REF600);
-
-       writel((1 << PLLB_ENSAT) | (1 << PLLB_OUTDIV) | (2 << PLLB_REFDIV),
-                       SEC_CTRL_PLLB_CTRL0);
-       /* 600MHz pllb divider for 12MHz */
-       writel(PLLB_DIV_INT(50) | PLLB_DIV_FRAC(0), SEC_CTRL_PLLB_DIV_CTRL);
-#else
-       /* ref 300 divider for 12MHz */
-       writel(REF300_DIV_INT(25) | REF300_DIV_FRAC(0), SYS_CTRL_REF300_DIV);
-#endif
-
-       /* Ensure the USB block is properly reset */
-       reset_block(SYS_CTRL_RST_USBHS, 1);
-       reset_block(SYS_CTRL_RST_USBHS, 0);
-
-       reset_block(SYS_CTRL_RST_USBHSPHYA, 1);
-       reset_block(SYS_CTRL_RST_USBHSPHYA, 0);
-
-       reset_block(SYS_CTRL_RST_USBHSPHYB, 1);
-       reset_block(SYS_CTRL_RST_USBHSPHYB, 0);
-
-       /* Force the high speed clock to be generated all the time, via serial
-        programming of the USB HS PHY */
-       writel((2UL << USBHSPHY_TEST_ADD) |
-                  (0xe0UL << USBHSPHY_TEST_DIN), SYS_CTRL_USBHSPHY_CTRL);
-
-       writel((1UL << USBHSPHY_TEST_CLK) |
-                  (2UL << USBHSPHY_TEST_ADD) |
-                  (0xe0UL << USBHSPHY_TEST_DIN), SYS_CTRL_USBHSPHY_CTRL);
-
-       writel((0xfUL << USBHSPHY_TEST_ADD) |
-                  (0xaaUL << USBHSPHY_TEST_DIN), SYS_CTRL_USBHSPHY_CTRL);
-
-       writel((1UL << USBHSPHY_TEST_CLK) |
-                  (0xfUL << USBHSPHY_TEST_ADD) |
-                  (0xaaUL << USBHSPHY_TEST_DIN), SYS_CTRL_USBHSPHY_CTRL);
-
-#ifdef CONFIG_USB_PLLB_CLK /* use pllb clock */
-               writel(USB_CLK_INTERNAL | USB_INT_CLK_PLLB, SYS_CTRL_USB_CTRL);
-#else /* use ref300 derived clock */
-               writel(USB_CLK_INTERNAL | USB_INT_CLK_REF300, SYS_CTRL_USB_CTRL);
-#endif
-       /* Enable the clock to the USB block */
-       enable_clock(SYS_CTRL_CLK_USBHS);
-
-       return 0;
-}
-int ehci_hcd_init(int index, enum usb_init_type init, struct ehci_hccr **hccr,
-                 struct ehci_hcor **hcor)
-{
-       start_oxnas_usb_ehci();
-       *hccr = (struct ehci_hccr *)(USB_HOST_BASE + 0x100);
-       *hcor = (struct ehci_hcor *)((uint32_t)*hccr +
-                       HC_LENGTH(ehci_readl(&(*hccr)->cr_capbase)));
-       ghcor = *hcor;
-       return 0;
-}
-
-int ehci_hcd_stop(int index)
-{
-       reset_block(SYS_CTRL_RST_USBHS, 1);
-       disable_clock(SYS_CTRL_CLK_USBHS);
-       return 0;
-}
-
-extern void __ehci_set_usbmode(int index);
-void ehci_set_usbmode(int index)
-{
-       #define  or_txttfill_tuning     _reserved_1_[0]
-       u32 tmp;
-
-       __ehci_set_usbmode(index);
-
-       tmp = ehci_readl(&ghcor->or_txfilltuning);
-       tmp &= ~0x00ff0000;
-       tmp |= 0x003f0000; /* set burst pre load count to 0x40 (63 * 4 bytes)  */
-       tmp |= 0x16; /* set sheduler overhead to 22 * 1.267us (HS) or 22 * 6.33us (FS/LS)*/
-       ehci_writel(&ghcor->or_txfilltuning, tmp);
-
-       tmp = ehci_readl(&ghcor->or_txttfill_tuning);
-       tmp |= 0x2; /* set sheduler overhead to 2 * 6.333us */
-       ehci_writel(&ghcor->or_txttfill_tuning, tmp);
-}
diff --git a/package/boot/uboot-oxnas/src/include/configs/ox820.h b/package/boot/uboot-oxnas/src/include/configs/ox820.h
deleted file mode 100644 (file)
index 5a9c569..0000000
+++ /dev/null
@@ -1,384 +0,0 @@
-#ifndef __CONFIG_H
-#define __CONFIG_H
-
-/* High Level Configuration Options */
-#define CONFIG_ARM1136
-#define CONFIG_OX820
-#define CONFIG_SYS_GENERIC_BOARD
-#define CONFIG_BOARD_EARLY_INIT_F
-
-#include <asm/arch/cpu.h>      /* get chip and board defs */
-
-/* make cmd_ide.c quiet when compile */
-#define __io
-
-/*#define CONFIG_ARCH_CPU_INIT*/
-/*#define CONFIG_DISPLAY_CPUINFO*/
-/*#define CONFIG_DISPLAY_BOARDINFO*/
-/*#define CONFIG_BOARD_EARLY_INIT_F*/
-/*#define CONFIG_SKIP_LOWLEVEL_INIT*/
-
-/* mem */
-#define CONFIG_SYS_SDRAM_BASE          0x60000000
-#define CONFIG_NR_DRAM_BANKS           1
-#define CONFIG_MIN_SDRAM_SIZE          (128 * 1024 * 1024)     /* 128 MB */
-#define CONFIG_MAX_SDRAM_SIZE          (512 * 1024 * 1024)     /* 512 MB */
-#define CONFIG_SRAM_BASE               0x50000000
-#define CONFIG_SRAM_SIZE               (64 * 1024)
-
-/* need do dma so better keep dcache off */
-#define CONFIG_SYS_DCACHE_OFF
-
-/* clock */
-#define CONFIG_PLLA_FREQ_MHZ           800
-#define CONFIG_RPSCLK                  6250000
-#define CONFIG_SYS_HZ                  1000
-#define CONFIG_SYS_CLK_FREQ            CONFIG_RPSCLK
-#define CONFIG_SYS_TIMERBASE           TIMER1_BASE
-#define CONFIG_TIMER_PRESCALE          TIMER_PRESCALE_16
-
-/* serial */
-#define CONFIG_SYS_NS16550
-#define CONFIG_SYS_NS16550_SERIAL
-#define CONFIG_SYS_NS16550_CLK         CONFIG_RPSCLK
-#define CONFIG_SYS_NS16550_REG_SIZE    1
-#define CONFIG_BAUDRATE                        115200
-#define CONFIG_SYS_NS16550_COM1                UART_1_BASE
-#define CONFIG_CONS_INDEX              1
-
-/* ide */
-#define CONFIG_SYS_ATA_BASE_ADDR       0
-#define CONFIG_SYS_ATA_DATA_OFFSET     0
-#define CONFIG_SYS_ATA_REG_OFFSET      0
-#define CONFIG_SYS_ATA_ALT_OFFSET      0
-#define CONFIG_IDE_PLX
-#define CONFIG_SYS_IDE_MAXDEVICE       2
-#define CONFIG_SYS_IDE_MAXBUS          1
-#define CONFIG_IDE_PREINIT
-#define CONFIG_LBA48
-
-/* nand */
-#define CONFIG_NAND
-#define CONFIG_SYS_MAX_NAND_DEVICE     1
-#define CONFIG_SYS_NAND_BASE           STATIC_CS0_BASE
-#define NAND_CLE_ADDR_PIN              19
-#define NAND_ALE_ADDR_PIN              18
-#define MTDPARTS_DEFAULT               "mtdparts=41000000.nand:" \
-                                               "14m(boot)," \
-                                                "-(ubi)"
-#define MTDIDS_DEFAULT                 "nand0=41000000.nand"
-#define UBIPART_DEFAULT                        "ubi"
-
-/* net */
-#define CONFIG_DESIGNWARE_ETH
-#define CONFIG_DW_ALTDESCRIPTOR
-#define CONFIG_MII
-#define CONFIG_CMD_MII
-#define CONFIG_PHYLIB
-#define CONFIG_PHY_REALTEK
-#define CONFIG_PHY_ICPLUS
-
-/* spl */
-#ifdef CONFIG_SPL_BUILD
-#define USE_DL_PREFIX  /* rename malloc free etc, so we can override them */
-#endif
-
-#if defined(CONFIG_BOOT_FROM_NAND) || defined(CONFIG_BOOT_FROM_SATA)
-#define CONFIG_SPL
-#define CONFIG_SPL_FRAMEWORK
-#define CONFIG_SPL_LIBCOMMON_SUPPORT
-#define CONFIG_SPL_SERIAL_SUPPORT
-#define CONFIG_SPL_LIBGENERIC_SUPPORT
-#define CONFIG_SPL_TEXT_BASE                   0x50000000
-#define CONFIG_SPL_STACK                       (CONFIG_SRAM_BASE + (48 * 1024))
-#define CONFIG_SPL_DISPLAY_PRINT
-#define CONFIG_SPL_BSS_DRAM_START                      0x65000000
-#define CONFIG_SPL_BSS_DRAM_SIZE                       0x01000000
-#define CONFIG_SPL_MALLOC_START                                0x66000000
-#endif
-
-#if defined(CONFIG_BOOT_FROM_NAND)
-#define CONFIG_SPL_NAND_SUPPORT
-#define BOOT_DEVICE_TYPE                       "NAND"
-#define BOOT_DEVICE_NAND                       0xfeedbacc
-#define CONFIG_SPL_BOOT_DEVICE                 BOOT_DEVICE_NAND
-#define CONFIG_SPL_NAND_SIMPLE
-#define CONFIG_SPL_NAND_ECC
-#define CONFIG_SPL_NAND_SOFTECC
-#define CONFIG_SYS_NAND_ECCSIZE                        512
-#define CONFIG_SYS_NAND_ECCBYTES               6
-#define CONFIG_SYS_NAND_ECCPOS                 {40, 41, 42, 43, 44, 45, 46, 47, \
-                                               48, 49, 50, 51, 52, 53, 54, 55, \
-                                               56, 57, 58, 59, 60, 61, 62, 63}
-#define CONFIG_SYS_NAND_PAGE_SIZE              2048
-#define CONFIG_SYS_NAND_OOBSIZE                        64
-#define CONFIG_SYS_NAND_BLOCK_SIZE             (128 * 1024)
-#define CONFIG_SYS_NAND_BAD_BLOCK_POS          0
-/* pages per erase block */
-#define CONFIG_SYS_NAND_PAGE_COUNT             (CONFIG_SYS_NAND_BLOCK_SIZE / CONFIG_SYS_NAND_PAGE_SIZE)
-/* nand spl use 1 erase block, and use bit to byte encode for reliability */
-#define CONFIG_SPL_MAX_SIZE                    (128 * 1024 / 8)
-#define CONFIG_SYS_NAND_U_BOOT_OFFS            0x00040000
-/* spl kernel load is not enabled */
-#define CONFIG_SYS_NAND_SPL_KERNEL_OFFS                0x00200000
-#define CONFIG_CMD_SPL_NAND_OFS                        0
-#define CONFIG_CMD_SPL_WRITE_SIZE              1024
-#define CONFIG_SYS_SPL_ARGS_ADDR               (CONFIG_SYS_SDRAM_BASE + 0x100)
-/* CONFIG_BOOT_FROM_NAND end */
-
-#elif defined(CONFIG_BOOT_FROM_SATA)
-#define CONFIG_SPL_BLOCK_SUPPORT
-#define BOOT_DEVICE_TYPE                               "SATA"
-#define BOOT_DEVICE_BLOCK                              860202
-#define CONFIG_SPL_BOOT_DEVICE                         BOOT_DEVICE_BLOCK
-#define CONFIG_SPL_MAX_SIZE                            (36 * 1024)
-#define CONFIG_SPL_LIBDISK_SUPPORT
-#define CONFIG_SPL_BLOCKDEV_INTERFACE                  "ide"
-#define CONFIG_SPL_BLOCKDEV_ID                         0
-
-#ifdef CONFIG_BOOT_FROM_FAT /* u-boot in fat partition */
-
-#define CONFIG_SPL_FAT_SUPPORT
-
-#define CONFIG_BLOCKDEV_FAT_BOOT_PARTITION             1 /* first partition */
-#define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME               "u-boot.img" /* u-boot file name */
-/* enable U-Boot Falcon Mode */
-#define CONFIG_CMD_SPL
-#define CONFIG_SPL_OS_BOOT
-#define CONFIG_SPL_FAT_LOAD_ARGS_NAME                  "bootargs.bin" /* boot parameters */
-#define CONFIG_SPL_FAT_LOAD_KERNEL_NAME                        "falcon.img" /* kernel */
-#define CONFIG_SYS_SPL_ARGS_ADDR                       (CONFIG_SYS_SDRAM_BASE + 0x100)
-
-#elif CONFIG_BOOT_FROM_EXT4
-
-#define CONFIG_SPL_EXT4_SUPPORT
-#define CONFIG_BLOCKDEV_EXT4_BOOT_PARTITION            1 /* first partition */
-#define CONFIG_SPL_EXT4_LOAD_PAYLOAD_NAME              "/boot/u-boot.img" /* u-boot file name */
-/* enable U-Boot Falcon Mode */
-#define CONFIG_CMD_SPL
-#define CONFIG_SPL_OS_BOOT
-#define CONFIG_SPL_EXT4_LOAD_ARGS_NAME                 "/boot/bootargs.bin" /* boot parameters */
-#define CONFIG_SPL_EXT4_LOAD_KERNEL_NAME               "/boot/falcon.img" /* kernel */
-#define CONFIG_SYS_SPL_ARGS_ADDR                       (CONFIG_SYS_SDRAM_BASE + 0x100)
-
-#else /* u-boot in raw sectors */
-
-#define CONFIG_SYS_BLOCK_RAW_MODE_U_BOOT_SECTOR                1024
-/* spl kernel load is not enabled */
-#define CONFIG_SYS_BLOCK_RAW_MODE_KERNEL_SECTOR                4096
-#define CONFIG_SYS_BLOCK_RAW_MODE_ARGS_SECTOR          0
-#define CONFIG_SYS_BLOCK_RAW_MODE_ARGS_SECTORS         (1024 / 512)
-#define CONFIG_SYS_SPL_ARGS_ADDR                       (CONFIG_SYS_SDRAM_BASE + 0x100)
-
-#endif /* CONFIG_BOOT_FROM_FAT */
-/* CONFIG_BOOT_FROM_SATA end */
-
-#else
-/* generic, no spl support */
-#endif
-
-/* boot */
-#define CONFIG_IDENT_STRING            " for OXNAS"
-#define CONFIG_MACH_TYPE               MACH_TYPE_OXNAS
-#ifndef CONFIG_SPL_BUILD
-/* Enable devicetree support */
-#define CONFIG_OF_LIBFDT
-#endif
-#define CONFIG_SETUP_MEMORY_TAGS
-#define CONFIG_CMDLINE_TAG
-#define CONFIG_INITRD_TAG
-#define CONFIG_BOOTDELAY               1
-#define CONFIG_ZERO_BOOTDELAY_CHECK
-#define CONFIG_DEFAULT_CONSOLE_PARM    "console=ttyS0,115200n8 earlyprintk=serial"
-/* Boot Argument Buffer Size */
-#define CONFIG_SYS_BARGSIZE            CONFIG_SYS_CBSIZE
-/* memtest works on */
-#define CONFIG_SYS_LOAD_ADDR           (CONFIG_SYS_SDRAM_BASE)
-#define CONFIG_SYS_AUTOLOAD            "no"
-
-#define CONFIG_DEFAULT_CONSOLE         CONFIG_DEFAULT_CONSOLE_PARM "\0"
-#define CONFIG_BOOTARGS                        CONFIG_DEFAULT_CONSOLE_PARM
-#define CONFIG_BOOTCOMMAND             "run nandboot"
-#define CONFIG_BOOT_RETRY_TIME         -1
-#define CONFIG_RESET_TO_RETRY          60
-
-#define CONFIG_NETCONSOLE
-#define CONFIG_IPADDR                  192.168.50.100
-#define CONFIG_SERVERIP                        192.168.50.59
-
-/* A sane default configuration...
- * When booting without a valid environment in ubi, first to loading and booting
- * the kernel image directly above U-Boot, maybe both were loaded there by
- * another bootloader.
- * Also use that same offset (0x90000) to load the rescue image later on (by
- * adding it onto the flash address where U-Boot is supposed to be stored by
- * the legacy loader, 0x440000, resulting in offset 0x4d0000 on the flash).
- * When coming up with a valid environment in ubi, first try to load the
- * kernel from a ubi volume kernel, if that fails, fallback to the rescue
- * image stored in boot partition. As a last resort try booting via
- * DHCP/TFTP.
- * In case there is no valid environment, first probe for a uimage in ram left
- * behind by the first bootloader on a tftp boot.
- * If that fails, switch to normal boot order and save environment.
- * The loader is supposed to be written to flash at offset 0x440000 and loaded to
- * RAM at 0x64000000
- */
-#define CONFIG_EXTRA_ENV_SETTINGS      \
-       "load_kernel_ubi=ubi readvol 0x62000000 kernel;\0" \
-       "load_kernel_rescue=nand read 0x62000000 0x4e0000 0x400000;\0" \
-       "load_kernel_dhcp=dhcp 0x62000000 oxnas-rescue.bin;\0" \
-       "boot_kernel=bootm 0x62000000;\0" \
-       "boot_ubi=run load_kernel_ubi && run boot_kernel;\0" \
-       "boot_rescue=run load_kernel_rescue && run boot_kernel;\0" \
-       "boot_dhcp=run load_kernel_dhcp && run boot_kernel;\0" \
-       "normalboot=run boot_ubi; run boot_rescue; run boot_dhcp;\0" \
-       "firstboot=bootm 0x640a0000; setenv bootcmd run normalboot; " \
-       "setenv firstboot; saveenv; run bootcmd; \0" \
-       "bootcmd=run firstboot; \0" \
-       "console=" CONFIG_DEFAULT_CONSOLE \
-       "bootargs=" CONFIG_BOOTARGS "\0" \
-       "mtdids=" MTDIDS_DEFAULT "\0" \
-       "mtdparts=" MTDPARTS_DEFAULT "\0" \
-
-/* env */
-#if defined(CONFIG_BOOT_FROM_NAND)
-#define CONFIG_ENV_IS_IN_NAND
-#define CONFIG_ENV_OFFSET              0x000C0000
-#define CONFIG_ENV_SIZE                        0x00020000
-#define CONFIG_ENV_OFFSET_REDUND       0x00100000
-#define CONFIG_ENV_SIZE_REDUND         0x00020000
-#define CONFIG_ENV_RANGE               (CONFIG_ENV_SIZE * 2)
-/* CONFIG_BOOT_FROM_NAND end */
-
-#elif defined(CONFIG_BOOT_FROM_SATA)
-#ifdef CONFIG_BOOT_FROM_EXT4
-#define CONFIG_ENV_IS_IN_EXT4
-#define CONFIG_START_IDE
-#define EXT4_ENV_INTERFACE             "ide"
-#define EXT4_ENV_DEVICE                        0
-#define EXT4_ENV_PART                  1
-#define EXT4_ENV_FILE                  "/boot/u-boot.env"
-#define CONFIG_ENV_SIZE                        (16 * 1024)
-#else
-#define CONFIG_ENV_IS_IN_FAT
-#define CONFIG_START_IDE
-#define FAT_ENV_INTERFACE              "ide"
-#define FAT_ENV_DEVICE                 0
-#define FAT_ENV_PART                   1
-#define FAT_ENV_FILE                   "u-boot.env"
-#define CONFIG_ENV_SIZE                        (16 * 1024)
-#endif
-/* CONFIG_BOOT_FROM_SATA end */
-#elif defined(CONFIG_BOOT_FROM_SATA)
-
-#else
-/* generic */
-#define CONFIG_ENV_IS_IN_UBI           1
-#define CONFIG_ENV_UBI_PART            UBIPART_DEFAULT
-#define CONFIG_ENV_UBI_VOLUME          "ubootenv"
-#define CONFIG_ENV_UBI_VOLUME_REDUND   "ubootenv2"
-#define CONFIG_ENV_SIZE                        (16 * 1024)
-#endif
-
-/* allow to overwrite serial and ethaddr */
-#define CONFIG_ENV_OVERWRITE
-
-#define CONFIG_SYS_MONITOR_LEN         (512 * 1024)
-#define CONFIG_SYS_TEXT_BASE           0x64000000
-#define CONFIG_SYS_INIT_SP_ADDR                0x65000000
-/* Size of malloc() pool */
-#define CONFIG_SYS_MALLOC_LEN          (1 * 1024 * 1024)
-
-/* Miscellaneous configurable options */
-#define CONFIG_SYS_LONGHELP            /* undef to save memory */
-#define CONFIG_SYS_HUSH_PARSER         /* use "hush" command parser    */
-#define CONFIG_SYS_PROMPT              "OX820 # "
-#define CONFIG_SYS_CBSIZE              1024    /* Console I/O Buffer Size*/
-#define CONFIG_SYS_PBSIZE              1024    /* Print Buffer Size */
-#define CONFIG_SYS_MAXARGS             32      /* max number of command args */
-#define CONFIG_CMDLINE_EDITING
-#define CONFIG_AUTO_COMPLETE
-
-/* usb */
-#define CONFIG_USB_MAX_CONTROLLER_COUNT        1
-#define CONFIG_USB_EHCI
-#define CONFIG_EHCI_IS_TDI
-/* #define CONFIG_USB_EHCI_TXFIFO_THRESH       0x3F */
-#define CONFIG_USB_PLLB_CLK
-#define CONFIG_USB_EHCI_OXNAS
-#ifndef CONFIG_SPL_BUILD
-#define CONFIG_USB_STORAGE
-#endif
-#define CONFIG_CMD_USB
-
-/* cmds */
-#define CONFIG_SYS_NO_FLASH
-#include <config_cmd_default.h>
-
-#define CONFIG_CMD_SAVEENV
-#define CONFIG_CMD_ASKENV
-#define CONFIG_CMD_GREPENV
-#define CONFIG_CMD_ENV_FLAGS
-
-#define CONFIG_CMD_NET
-#define CONFIG_CMD_DHCP
-#define CONFIG_CMD_NFS
-#define CONFIG_CMD_PING
-#define CONFIG_CMD_PXE
-
-#define CONFIG_CMD_NAND
-#define CONFIG_CMD_MTDPARTS
-#define CONFIG_CMD_UBI
-#define CONFIG_CMD_UBIFS
-
-#define CONFIG_CMD_IDE
-#define CONFIG_CMD_FAT
-#define CONFIG_FAT_WRITE
-#define CONFIG_CMD_EXT2
-#define CONFIG_CMD_EXT4
-#ifndef CONFIG_SPL_BUILD
-#define CONFIG_CMD_EXT4_WRITE
-#endif
-
-#define CONFIG_CMD_ZIP
-#define CONFIG_CMD_UNZIP
-#define CONFIG_CMD_TIME
-#define CONFIG_CMD_SETEXPR
-#define CONFIG_CMD_MD5SUM
-#define CONFIG_CMD_HASH
-#define CONFIG_CMD_INI
-#define CONFIG_CMD_GETTIME
-#define CONFIG_CMD_BOOTMENU
-#define CONFIG_CMD_ELF
-#define CONFIG_CMD_BOOTZ
-
-#define CONFIG_DOS_PARTITION
-#define CONFIG_EFI_PARTITION
-
-/* for CONFIG_CMD_MTDPARTS */
-#define CONFIG_MTD_DEVICE
-/* for CONFIG_CMD_UBI */
-#define CONFIG_MTD_PARTITIONS
-/* for CONFIG_CMD_UBI */
-#define CONFIG_RBTREE
-
-/* optional, for CONFIG_CMD_BOOTM & required by CONFIG_CMD_UBIFS */
-#define CONFIG_LZO
-#define CONFIG_LZMA
-#define CONFIG_BZIP2
-
-/* for CONFIG_CMD_ZIP */
-#define CONFIG_GZIP_COMPRESSED
-/* for CONFIG_CMD_MD5SUM */
-#define CONFIG_MD5
-#define CONFIG_MD5SUM_VERIFY
-/* enable CONFIG_CMD_HASH's verification feature */
-#define CONFIG_HASH_VERIFY
-#define CONFIG_REGEX
-/* for CONFIG_CMD_BOOTMENU & CONFIG_CMD_PXE */
-#define CONFIG_MENU
-
-/* for new FIT uImage format generated in libreCMC */
-#define CONFIG_FIT
-
-#endif /* __CONFIG_H */
diff --git a/package/boot/uboot-oxnas/src/tools/mkox820crc.c b/package/boot/uboot-oxnas/src/tools/mkox820crc.c
deleted file mode 100644 (file)
index d100191..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/* J J Larworthy 27 September 2006 */
-
-/* file to read the boot sector of a dis and the loaded image and report
- * if the boot rom would accept the data as intact and suitable for use
- */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/errno.h>
-
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-extern uint32_t crc32(uint32_t, const unsigned char *, unsigned int);
-
-#define NUMBER_VECTORS   12
-struct {
-       unsigned int start_vector[NUMBER_VECTORS];
-       char code[4];
-       unsigned int header_length;
-       unsigned int reserved[3];
-       unsigned int length;
-       unsigned int img_CRC;
-       unsigned int CRC;
-} img_header;
-
-void print_usage(void)
-{
-       printf("update_header file.bin\n");
-}
-
-void print_header(void)
-{
-       int i;
-
-       printf("vectors in header\n");
-       for (i = 0; i < NUMBER_VECTORS; i++) {
-               printf("%d:0x%08x\n", i, img_header.start_vector[i]);
-       }
-       printf("length:%8x\nimg_CRC:0x%08x\nHeader CRC:0x%08x\n",
-               img_header.length, img_header.img_CRC, img_header.CRC);
-}
-
-int main(int argc, char **argv)
-{
-       int in_file;
-       int status;
-       int unsigned crc;
-       int file_length;
-       int len;
-
-       struct stat file_stat;
-
-       void *executable;
-
-       in_file = open(argv[1], O_RDWR);
-
-       if (in_file < 0) {
-               printf("failed to open file:%s\n", argv[optind]);
-               return -ENOENT;
-       }
-
-       status = fstat(in_file, &file_stat);
-
-       /* read header and obtain size of image */
-       status = read(in_file, &img_header, sizeof(img_header));
-
-       file_length = file_stat.st_size - sizeof(img_header);
-
-       if (img_header.length != file_length) {
-               printf("size in header:%d, size of file: %d\n",
-                       img_header.length, file_length);
-       }
-       img_header.length = file_length;
-
-       /* read working image and CRC */
-       executable = malloc(file_length);
-
-       status = read(in_file, executable, file_length);
-
-       if (status != file_length) {
-               printf("Failed to load image\n");
-               return -ENOENT;
-       }
-
-       /* verify image CRC */
-       crc = crc32(0, (const unsigned char *) executable, img_header.length);
-
-       if (crc != img_header.img_CRC) {
-               printf("New Image CRC:0x%08x, hdr:0x%08x\n", crc,
-                       img_header.img_CRC);
-               img_header.img_CRC = crc;
-       }
-       memcpy(img_header.code, "BOOT", 4);
-       img_header.header_length = sizeof(img_header);
-
-       /* check header CRC */
-       crc = crc32(0, (const unsigned char *) &img_header,
-                       sizeof(img_header) - sizeof(unsigned int));
-       if (crc != img_header.CRC) {
-               printf("New header CRC - crc:0x%08x hdr:0x%08x\n", crc,
-                       img_header.CRC);
-               img_header.CRC = crc;
-       }
-
-       /* re-write the file */
-       status = lseek(in_file, 0, SEEK_SET);
-       if (status != 0) {
-               printf("failed to rewind\n");
-               return 1;
-       }
-       len = write(in_file, &img_header, sizeof(img_header));
-       assert(len == sizeof(img_header));
-       len = write(in_file, executable, file_length);
-       assert(len == file_length);
-       close(in_file);
-
-       return 0;
-}
index 59aa4f0277e3fe66f1c3a8a7e8d4ac5415296564..1e3883dfb4453a5a0e80674b671060fa5f4f40b4 100644 (file)
@@ -156,6 +156,12 @@ define U-Boot/orangepi_zero
   BUILD_DEVICES:=sun8i-h2-plus-orangepi-zero
 endef
 
+define U-Boot/orangepi_one
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Orange Pi One (H3)
+  BUILD_DEVICES:=sun8i-h3-orangepi-one
+endef
+
 define U-Boot/orangepi_pc
   BUILD_SUBTARGET:=cortexa7
   NAME:=Orange Pi PC (H3)
@@ -204,6 +210,12 @@ define U-Boot/pine64_plus
   UENV:=a64
 endef
 
+define U-Boot/Sinovoip_BPI_M2_Plus
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Bananapi M2 Plus
+  BUILD_DEVICES:=sun8i-h3-bananapi-m2-plus
+endef
+
 define U-Boot/sopine_baseboard
   BUILD_SUBTARGET:=cortexa53
   NAME:=Sopine Baseboard
@@ -254,12 +266,14 @@ UBOOT_TARGETS := \
        nanopi_neo2 \
        orangepi_zero \
        orangepi_r1 \
+       orangepi_one \
        orangepi_pc \
        orangepi_plus \
        orangepi_2 \
        orangepi_pc2 \
        pangolin \
        pine64_plus \
+       Sinovoip_BPI_M2_Plus \
        sopine_baseboard \
        orangepi_zero_plus
 
index 8a870aacc0647c026cfd26bed93c47eca05e0098..1f20f440503283d81a46430429c74b2fad956c9b 100644 (file)
@@ -26,7 +26,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/perf
   SECTION:=devel
   CATEGORY:=Development
-  DEPENDS:= +libelf1 +libdw +(mips||mipsel||powerpc||i386||x86_64||arm||aarch64):libunwind +libpthread +librt +objdump @!LINUX_3_18 @!IN_SDK @!TARGET_arc770 @KERNEL_PERF_EVENTS
+  DEPENDS:= +libelf +libdw +(mips||mipsel||powerpc||i386||x86_64||arm||aarch64):libunwind +libpthread +librt +objdump @!LINUX_3_18 @!IN_SDK @!TARGET_arc770 @KERNEL_PERF_EVENTS
   TITLE:=Linux performance monitoring tool
   VERSION:=$(LINUX_VERSION)-$(PKG_RELEASE)
   URL:=http://www.kernel.org
index c4761a4693cdc1d3e7b66959a8bdf3e734d4fab4..b342a8c0d01b7152b5a8337dff3a614b0648989a 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=strace
-PKG_VERSION:=4.25
+PKG_VERSION:=4.26
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://strace.io/files/$(PKG_VERSION)
-PKG_HASH:=d685f8e65470b7832c3aff60c57ab4459f26ff89f07c10f92bd70ee89efac701
+PKG_HASH:=7c4d2ffeef4f7d1cdc71062ca78d1130eb52f947c2fca82f59f6a1183bfa1e1c
 
 PKG_LICENSE:=BSD-3c
 PKG_LICENSE_FILES:=COPYRIGHT
@@ -23,9 +23,12 @@ PKG_CPE_ID:=cpe:/a:paul_kranenburg:strace
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 
 PKG_FIXUP:=autoreconf
-PKG_CONFIG_DEPENDS:=CONFIG_PACKAGE_strace_libunwind
 PKG_INSTALL:=1
 
+PKG_CONFIG_DEPENDS := \
+       CONFIG_STRACE_LIBDW \
+       CONFIG_STRACE_LIBUNWIND
+
 include $(INCLUDE_DIR)/package.mk
 
 HOST_CFLAGS += -I$(LINUX_DIR)/user_headers/include
@@ -44,7 +47,7 @@ define Package/strace
   SECTION:=utils
   CATEGORY:=Utilities
   TITLE:=System call tracer
-  DEPENDS:=+PACKAGE_strace_libunwind:libunwind
+  DEPENDS:=+STRACE_LIBDW:libdw +STRACE_LIBUNWIND:libunwind
   URL:=http://strace.sourceforge.net/
 endef
 
@@ -54,17 +57,24 @@ system calls a program makes while it is running.
 endef
 
 define Package/strace/config
-config PACKAGE_strace_libdw
-       bool "Enable stack tracing support using libdw"
-       default n
-config PACKAGE_strace_libunwind
-       bool "Enable stack tracing support using libunwind (experimental)"
-       default n
+choice
+       prompt "stack tracing support"
+       default STRACE_NONE
+
+       config STRACE_NONE
+               bool "None"
+
+       config STRACE_LIBDW
+               bool "libdw"
+
+       config STRACE_LIBUNWIND
+               bool "libunwind (experimental)"
+endchoice
 endef
 
 CONFIGURE_ARGS += \
-       --with-libdw=$(if $(CONFIG_PACKAGE_strace_libdw),yes,no) \
-       --with-libunwind=$(if $(CONFIG_PACKAGE_strace_libunwind),yes,no)
+       --with-libdw=$(if $(CONFIG_STRACE_LIBDW),yes,no) \
+       --with-libunwind=$(if $(CONFIG_STRACE_LIBUNWIND),yes,no)
 
 MAKE_FLAGS := \
        CCOPT="$(TARGET_CFLAGS)"
diff --git a/package/devel/strace/patches/001-mips-o32-fix-build.patch b/package/devel/strace/patches/001-mips-o32-fix-build.patch
new file mode 100644 (file)
index 0000000..71dbf70
--- /dev/null
@@ -0,0 +1,91 @@
+From 2c8b6de913973274e877639658e9e7273a012adb Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@altlinux.org>
+Date: Tue, 8 Jan 2019 19:23:44 +0000
+Subject: [PATCH] mips o32: fix build
+
+Commit 917c2ccf3a67 "Refactor stack pointers" moved mips_REG_* macros
+from linux/mips/arch_regs.h to linux/mips/arch_regs.c because these
+macros are no longer used outside syscall.c or files included by
+syscall.c, but this caused a build regression on mips o32 because
+decode_syscall_subcall() uses mips_REG_SP prior to its definition.
+
+* syscall.c (decode_syscall_subcall): Move ...
+* linux/mips/get_syscall_args.c: ... here.
+* NEWS: Mention this fix.
+
+Reported-by: Baruch Siach <baruch@tkos.co.il>
+Fixes: v4.26~61 "Refactor stack pointers"
+---
+ NEWS                          |  1 +
+ linux/mips/get_syscall_args.c | 26 ++++++++++++++++++++++++++
+ syscall.c                     | 27 ++-------------------------
+ 3 files changed, 29 insertions(+), 25 deletions(-)
+
+--- a/linux/mips/get_syscall_args.c
++++ b/linux/mips/get_syscall_args.c
+@@ -37,3 +37,29 @@ arch_get_syscall_args(struct tcb *tcp)
+ #endif
+       return 1;
+ }
++
++#ifdef SYS_syscall_subcall
++static void
++decode_syscall_subcall(struct tcb *tcp)
++{
++      if (!scno_is_valid(tcp->u_arg[0]))
++              return;
++      tcp->scno = tcp->u_arg[0];
++      tcp->qual_flg = qual_flags(tcp->scno);
++      tcp->s_ent = &sysent[tcp->scno];
++      memmove(&tcp->u_arg[0], &tcp->u_arg[1],
++              sizeof(tcp->u_arg) - sizeof(tcp->u_arg[0]));
++      /*
++       * Fetching the last arg of 7-arg syscalls (fadvise64_64
++       * and sync_file_range) requires additional code,
++       * see linux/mips/get_syscall_args.c
++       */
++      if (tcp->s_ent->nargs == MAX_ARGS) {
++              if (umoven(tcp,
++                         mips_REG_SP + MAX_ARGS * sizeof(tcp->u_arg[0]),
++                         sizeof(tcp->u_arg[0]),
++                         &tcp->u_arg[MAX_ARGS - 1]) < 0)
++              tcp->u_arg[MAX_ARGS - 1] = 0;
++      }
++}
++#endif /* SYS_syscall_subcall */
+--- a/syscall.c
++++ b/syscall.c
+@@ -349,31 +349,8 @@ decode_ipc_subcall(struct tcb *tcp)
+ #endif /* SYS_ipc_subcall */
+ #ifdef SYS_syscall_subcall
+-static void
+-decode_syscall_subcall(struct tcb *tcp)
+-{
+-      if (!scno_is_valid(tcp->u_arg[0]))
+-              return;
+-      tcp->scno = tcp->u_arg[0];
+-      tcp->qual_flg = qual_flags(tcp->scno);
+-      tcp->s_ent = &sysent[tcp->scno];
+-      memmove(&tcp->u_arg[0], &tcp->u_arg[1],
+-              sizeof(tcp->u_arg) - sizeof(tcp->u_arg[0]));
+-# ifdef LINUX_MIPSO32
+-      /*
+-       * Fetching the last arg of 7-arg syscalls (fadvise64_64
+-       * and sync_file_range) requires additional code,
+-       * see linux/mips/get_syscall_args.c
+-       */
+-      if (tcp->s_ent->nargs == MAX_ARGS) {
+-              if (umoven(tcp,
+-                         mips_REG_SP + MAX_ARGS * sizeof(tcp->u_arg[0]),
+-                         sizeof(tcp->u_arg[0]),
+-                         &tcp->u_arg[MAX_ARGS - 1]) < 0)
+-              tcp->u_arg[MAX_ARGS - 1] = 0;
+-      }
+-# endif /* LINUX_MIPSO32 */
+-}
++/* The implementation is architecture specific.  */
++static void decode_syscall_subcall(struct tcb *);
+ #endif /* SYS_syscall_subcall */
+ static void
index e1b809deb745eec8228669fa00425d1fb939b3ad..9560804a7a6f311611427ac2cf625a3c1d601e68 100644 (file)
@@ -1,6 +1,6 @@
 --- a/ptrace.h
 +++ b/ptrace.h
-@@ -49,7 +49,14 @@
+@@ -30,7 +30,14 @@
  # define ptrace_peeksiginfo_args XXX_ptrace_peeksiginfo_args
  #endif
  
index 4154ceba725836e9a299f7e14a47b3cbd23e449e..b0d254511bb5f09d34d03df4149184e8e9305dae 100644 (file)
@@ -99,7 +99,7 @@ $(eval $(call KernelPackage,can-c-can-pci))
 define KernelPackage/can-c-can-platform
   TITLE:=Platform Bus based BOSCH C_CAN/D_CAN driver
   KCONFIG:=CONFIG_CAN_C_CAN_PLATFORM
-  DEPENDS:=kmod-can-c-can +!LINUX_3_18:kmod-regmap
+  DEPENDS:=kmod-can-c-can +!LINUX_3_18:kmod-regmap-core
   FILES:=$(LINUX_DIR)/drivers/net/can/c_can/c_can_platform.ko
   AUTOLOAD:=$(call AutoProbe,c_can_platform)
   $(call AddDepends/can)
index 89a425b10c388b72cee7aee057b4d3d04e0ccb43..bf2860881ea56e5aebbdfbb6f90cfcbee47aba70 100644 (file)
@@ -112,7 +112,7 @@ define KernelPackage/hwmon-ina2xx
   KCONFIG:=CONFIG_SENSORS_INA2XX
   FILES:=$(LINUX_DIR)/drivers/hwmon/ina2xx.ko
   AUTOLOAD:=$(call AutoProbe,ina2xx)
-  $(call AddDepends/hwmon,+kmod-i2c-core +!LINUX_3_18:kmod-regmap)
+  $(call AddDepends/hwmon,+kmod-i2c-core +!LINUX_3_18:kmod-regmap-i2c)
 endef
 
 define KernelPackage/hwmon-ina2xx/description
@@ -142,7 +142,7 @@ define KernelPackage/hwmon-lm63
   KCONFIG:=CONFIG_SENSORS_LM63
   FILES:=$(LINUX_DIR)/drivers/hwmon/lm63.ko
   AUTOLOAD:=$(call AutoProbe,lm63)
-  $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap)
+  $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
 endef
 
 define KernelPackage/hwmon-lm63/description
@@ -157,7 +157,7 @@ define KernelPackage/hwmon-lm75
   KCONFIG:=CONFIG_SENSORS_LM75
   FILES:=$(LINUX_DIR)/drivers/hwmon/lm75.ko
   AUTOLOAD:=$(call AutoProbe,lm75)
-  $(call AddDepends/hwmon,+kmod-i2c-core +PACKAGE_kmod-thermal:kmod-thermal +kmod-regmap)
+  $(call AddDepends/hwmon,+kmod-i2c-core +PACKAGE_kmod-thermal:kmod-thermal +kmod-regmap-i2c)
 endef
 
 define KernelPackage/hwmon-lm75/description
@@ -369,7 +369,7 @@ define KernelPackage/hwmon-tmp102
   KCONFIG:=CONFIG_SENSORS_TMP102
   FILES:=$(LINUX_DIR)/drivers/hwmon/tmp102.ko
   AUTOLOAD:=$(call AutoProbe,tmp102)
-  $(call AddDepends/hwmon,+kmod-i2c-core +PACKAGE_kmod-thermal:kmod-thermal +kmod-regmap)
+  $(call AddDepends/hwmon,+kmod-i2c-core +PACKAGE_kmod-thermal:kmod-thermal +kmod-regmap-i2c)
 endef
 
 define KernelPackage/hwmon-tmp102/description
@@ -384,7 +384,7 @@ define KernelPackage/hwmon-tmp103
   KCONFIG:=CONFIG_SENSORS_TMP103
   FILES:=$(LINUX_DIR)/drivers/hwmon/tmp103.ko
   AUTOLOAD:=$(call AutoProbe,tmp103)
-  $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap)
+  $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
 endef
 
 define KernelPackage/hwmon-tmp103/description
index ee82eee71e8a45ba255a8899d6c0fe1d51a27b4d..44a4806b34f7652d3bffa081435e8bb7ce5c7b6d 100644 (file)
@@ -54,7 +54,7 @@ $(eval $(call KernelPackage,iio-ad799x))
 
 define KernelPackage/iio-hmc5843
   SUBMENU:=$(IIO_MENU)
-  DEPENDS:=+kmod-i2c-core +kmod-iio-core +kmod-regmap
+  DEPENDS:=+kmod-i2c-core +kmod-iio-core +kmod-regmap-i2c
   TITLE:=Honeywell HMC58x3 Magnetometer
   KCONFIG:= CONFIG_SENSORS_HMC5843_I2C
   FILES:= \
@@ -132,7 +132,7 @@ $(eval $(call KernelPackage,iio-dht11))
 define KernelPackage/iio-bmp280
   SUBMENU:=$(IIO_MENU)
   TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor
-  DEPENDS:=@!LINUX_3_18 +kmod-iio-core +kmod-regmap
+  DEPENDS:=@!LINUX_3_18 +kmod-iio-core +kmod-regmap-core
   KCONFIG:=CONFIG_BMP280
   FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280.ko
 endef
@@ -149,7 +149,7 @@ $(eval $(call KernelPackage,iio-bmp280))
 define KernelPackage/iio-bmp280-i2c
   SUBMENU:=$(IIO_MENU)
   TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor (I2C)
-  DEPENDS:=+kmod-iio-bmp280 +kmod-i2c-core
+  DEPENDS:=+kmod-iio-bmp280 +kmod-i2c-core +kmod-regmap-i2c
   KCONFIG:=CONFIG_BMP280_I2C
   FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280-i2c.ko
   AUTOLOAD:=$(call AutoProbe,iio-bmp280-i2c)
@@ -200,6 +200,23 @@ endef
 $(eval $(call KernelPackage,iio-htu21))
 
 
+define KernelPackage/iio-ccs811
+  SUBMENU:=$(IIO_MENU)
+  DEPENDS:=+kmod-i2c-core +kmod-iio-core
+  TITLE:=AMS CCS811 VOC sensor
+  KCONFIG:= \
+       CONFIG_CCS811
+  FILES:= $(LINUX_DIR)/drivers/iio/chemical/ccs811.ko
+  AUTOLOAD:=$(call AutoLoad,56,ccs811)
+endef
+
+define KernelPackage/iio-ccs811/description
+  Support for the AMS CCS811 VOC (Volatile Organic Compounds) sensor
+endef
+
+$(eval $(call KernelPackage,iio-ccs811))
+
+
 define KernelPackage/iio-si7020
   SUBMENU:=$(IIO_MENU)
   DEPENDS:=+kmod-i2c-core +kmod-iio-core
index e410fe8d0c19e9577735eee2057ba439cd856754..99257b6725fc02de8cc1ada2b93a2ba6acd6ffca 100644 (file)
@@ -173,6 +173,25 @@ endef
 $(eval $(call KernelPackage,input-matrixkmap))
 
 
+define KernelPackage/input-touchscreen-ads7846
+  SUBMENU:=$(INPUT_MODULES_MENU)
+  TITLE:=ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens
+  DEPENDS:=+kmod-hwmon-core +kmod-input-core +kmod-spi-bitbang
+  KCONFIG:= \
+       CONFIG_INPUT_TOUCHSCREEN=y \
+       CONFIG_TOUCHSCREEN_PROPERTIES=y \
+       CONFIG_TOUCHSCREEN_ADS7846
+  FILES:=$(LINUX_DIR)/drivers/input/touchscreen/ads7846.ko
+  AUTOLOAD:=$(call AutoProbe,ads7846)
+endef
+
+define KernelPackage/input-touchscreen-ads7846/description
+  Kernel module for ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens
+endef
+
+$(eval $(call KernelPackage,input-touchscreen-ads7846))
+
+
 define KernelPackage/keyboard-imx
   SUBMENU:=$(INPUT_MODULES_MENU)
   TITLE:=IMX keypad support
index 25715be5d1c443649b377779d708410e75f4a466..6c78394297be189fea9f1215f71aad92584bdbef 100644 (file)
@@ -330,6 +330,7 @@ define KernelPackage/ipt-ipset
        CONFIG_IP_SET_BITMAP_IPMAC \
        CONFIG_IP_SET_BITMAP_PORT \
        CONFIG_IP_SET_HASH_IP \
+       CONFIG_IP_SET_HASH_IPMAC \
        CONFIG_IP_SET_HASH_IPMARK \
        CONFIG_IP_SET_HASH_IPPORT \
        CONFIG_IP_SET_HASH_IPPORTIP \
@@ -646,6 +647,8 @@ define KernelPackage/ipt-tproxy
   TITLE:=Transparent proxying support
   DEPENDS+=+kmod-ipt-conntrack +IPV6:kmod-nf-conntrack6 +IPV6:kmod-ip6tables
   KCONFIG:= \
+       CONFIG_NF_SOCKET_IPV4 \
+       CONFIG_NF_SOCKET_IPV6 \
        CONFIG_NETFILTER_XT_MATCH_SOCKET \
        CONFIG_NETFILTER_XT_TARGET_TPROXY
   FILES:= \
index f84047b4535465ecd56a4725e0200ec62bd53900..003603f10b10fb7f0effaa78ef19050ab68937b7 100644 (file)
@@ -716,8 +716,8 @@ $(eval $(call KernelPackage,mppe))
 
 
 SCHED_MODULES = $(patsubst $(LINUX_DIR)/net/sched/%.ko,%,$(wildcard $(LINUX_DIR)/net/sched/*.ko))
-SCHED_MODULES_CORE = sch_ingress sch_fq_codel sch_hfsc sch_htb sch_tbf cls_fw cls_route cls_flow cls_tcindex cls_u32 em_u32 act_mirred act_skbedit
-SCHED_MODULES_FILTER = $(SCHED_MODULES_CORE) act_connmark sch_netem
+SCHED_MODULES_CORE = sch_ingress sch_fq_codel sch_hfsc sch_htb sch_tbf cls_basic cls_fw cls_route cls_flow cls_tcindex cls_u32 em_u32 act_mirred act_skbedit cls_matchall
+SCHED_MODULES_FILTER = $(SCHED_MODULES_CORE) act_connmark sch_netem em_ipset cls_bpf act_bpf
 SCHED_MODULES_EXTRA = $(filter-out $(SCHED_MODULES_FILTER),$(SCHED_MODULES))
 SCHED_FILES = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(filter $(SCHED_MODULES_CORE),$(SCHED_MODULES)))
 SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXTRA))
@@ -725,6 +725,7 @@ SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXT
 define KernelPackage/sched-core
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=Traffic schedulers
+  DEPENDS:=@!LINUX_3_18
   KCONFIG:= \
        CONFIG_NET_SCHED=y \
        CONFIG_NET_SCH_HFSC \
@@ -734,6 +735,7 @@ define KernelPackage/sched-core
        CONFIG_NET_SCH_FQ_CODEL \
        CONFIG_NET_CLS=y \
        CONFIG_NET_CLS_ACT=y \
+       CONFIG_NET_CLS_BASIC \
        CONFIG_NET_CLS_FLOW \
        CONFIG_NET_CLS_FW \
        CONFIG_NET_CLS_ROUTE4 \
@@ -741,6 +743,7 @@ define KernelPackage/sched-core
        CONFIG_NET_CLS_U32 \
        CONFIG_NET_ACT_MIRRED \
        CONFIG_NET_ACT_SKBEDIT \
+       CONFIG_NET_CLS_MATCHALL \
        CONFIG_NET_EMATCH=y \
        CONFIG_NET_EMATCH_U32
   FILES:=$(SCHED_FILES)
@@ -764,10 +767,52 @@ define KernelPackage/sched-connmark
 endef
 $(eval $(call KernelPackage,sched-connmark))
 
+
+define KernelPackage/sched-ipset
+  SUBMENU:=$(NETWORK_SUPPORT_MENU)
+  TITLE:=Traffic shaper ipset support
+  DEPENDS:=+kmod-sched-core +kmod-ipt-ipset
+  KCONFIG:= \
+       CONFIG_NET_EMATCH_IPSET
+  FILES:= \
+       $(LINUX_DIR)/net/sched/em_ipset.ko
+  AUTOLOAD:=$(call AutoLoad,72,em_ipset)
+endef
+
+$(eval $(call KernelPackage,sched-ipset))
+
+
+define KernelPackage/sched-bpf
+  SUBMENU:=$(NETWORK_SUPPORT_MENU)
+  TITLE:=Traffic shaper support for Berkeley Packet Filter
+  DEPENDS:=@!LINUX_3_18
+  KCONFIG:= \
+       CONFIG_NET_CLS_BPF \
+       CONFIG_NET_ACT_BPF
+  FILES:= \
+       $(LINUX_DIR)/net/sched/cls_bpf.ko \
+       $(LINUX_DIR)/net/sched/act_bpf.ko
+  AUTOLOAD:=$(call AutoLoad,72,cls_bpf act_bpf)
+endef
+
+$(eval $(call KernelPackage,sched-bpf))
+
+
+define KernelPackage/bpf-test
+  SUBMENU:=$(NETWORK_SUPPORT_MENU)
+  TITLE:=Test Berkeley Packet Filter functionality
+  DEPENDS:=@!LINUX_3_18
+  KCONFIG:=CONFIG_TEST_BPF
+  FILES:=$(LINUX_DIR)/lib/test_bpf.ko
+endef
+
+$(eval $(call KernelPackage,bpf-test))
+
+
 define KernelPackage/sched
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=Extra traffic schedulers
-  DEPENDS:=+kmod-sched-core +kmod-ipt-core
+  DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-lib-crc32c
   KCONFIG:= \
        CONFIG_NET_SCH_CODEL \
        CONFIG_NET_SCH_DSMARK \
@@ -780,9 +825,12 @@ define KernelPackage/sched
        CONFIG_NET_SCH_TEQL \
        CONFIG_NET_SCH_FQ \
        CONFIG_NET_SCH_PIE \
-       CONFIG_NET_CLS_BASIC \
        CONFIG_NET_ACT_POLICE \
+       CONFIG_NET_ACT_GACT \
        CONFIG_NET_ACT_IPT \
+       CONFIG_NET_ACT_PEDIT \
+       CONFIG_NET_ACT_SIMP \
+       CONFIG_NET_ACT_CSUM \
        CONFIG_NET_EMATCH_CMP \
        CONFIG_NET_EMATCH_NBYTE \
        CONFIG_NET_EMATCH_META \
index 29f1150b891795cb1dccebdcc050d22d9834e9f2..31ee2a7ec5aaea5de38784b1627734ea88b88519 100644 (file)
@@ -30,7 +30,7 @@ $(eval $(call KernelPackage,6lowpan))
 define KernelPackage/bluetooth
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Bluetooth support
-  DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-crypto-hash +kmod-crypto-ecb +kmod-lib-crc16 +kmod-hid +!LINUX_3_18:kmod-crypto-cmac +!LINUX_3_18:kmod-regmap +!(LINUX_3_18||LINUX_4_9):kmod-crypto-ecdh
+  DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-crypto-hash +kmod-crypto-ecb +kmod-lib-crc16 +kmod-hid +!LINUX_3_18:kmod-crypto-cmac +!LINUX_3_18:kmod-regmap-core +!(LINUX_3_18||LINUX_4_9):kmod-crypto-ecdh
   KCONFIG:= \
        CONFIG_BT \
        CONFIG_BT_BREDR=y \
@@ -131,7 +131,7 @@ define KernelPackage/eeprom-at24
   SUBMENU:=$(OTHER_MENU)
   TITLE:=EEPROM AT24 support
   KCONFIG:=CONFIG_EEPROM_AT24
-  DEPENDS:=+kmod-i2c-core +kmod-nvmem +LINUX_4_19:kmod-regmap
+  DEPENDS:=+kmod-i2c-core +kmod-nvmem +LINUX_4_19:kmod-regmap-i2c
   FILES:=$(LINUX_DIR)/drivers/misc/eeprom/at24.ko
   AUTOLOAD:=$(call AutoProbe,at24)
 endef
@@ -178,7 +178,7 @@ $(eval $(call KernelPackage,gpio-dev))
 define KernelPackage/gpio-mcp23s08
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Microchip MCP23xxx I/O expander
-  DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core +!(LINUX_3_18||LINUX_4_9):kmod-regmap
+  DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core +!(LINUX_3_18||LINUX_4_9):kmod-regmap-i2c
   KCONFIG:= \
        CONFIG_GPIO_MCP23S08 \
        CONFIG_PINCTRL_MCP23S08
@@ -435,7 +435,7 @@ define KernelPackage/rtc-ds1307
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Dallas/Maxim DS1307 (and compatible) RTC support
   DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
-  DEPENDS:=+kmod-i2c-core +!(LINUX_3_18||LINUX_4_9):kmod-regmap +!(LINUX_3_18||LINUX_4_9):kmod-hwmon-core
+  DEPENDS:=+kmod-i2c-core +!(LINUX_3_18||LINUX_4_9):kmod-regmap-i2c +!(LINUX_3_18||LINUX_4_9):kmod-hwmon-core
   KCONFIG:=CONFIG_RTC_DRV_DS1307 \
        CONFIG_RTC_CLASS=y
   FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1307.ko
@@ -669,32 +669,71 @@ endef
 $(eval $(call KernelPackage,serial-8250-exar))
 
 
-define KernelPackage/regmap
+define KernelPackage/regmap-core
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Generic register map support
-  DEPENDS:=+kmod-lib-lzo +kmod-i2c-core
-  KCONFIG:=CONFIG_REGMAP \
-          CONFIG_REGMAP_MMIO \
-          CONFIG_REGMAP_SPI \
-          CONFIG_REGMAP_I2C \
-          CONFIG_SPI=y
-  FILES:= \
-       $(LINUX_DIR)/drivers/base/regmap/regmap-i2c.ko \
-       $(LINUX_DIR)/drivers/base/regmap/regmap-mmio.ko \
-       $(if $(CONFIG_SPI),$(LINUX_DIR)/drivers/base/regmap/regmap-spi.ko)
-  AUTOLOAD:=$(call AutoLoad,21,regmap-core regmap-i2c regmap-mmio regmap-spi)
-  ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"")
-   ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"")
-    FILES += $(LINUX_DIR)/drivers/base/regmap/regmap-core.ko
-   endif
-  endif
+  HIDDEN:=1
+  KCONFIG:=CONFIG_REGMAP
+ifneq ($(wildcard $(LINUX_DIR)/drivers/base/regmap/regmap-core.ko),)
+  FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-core.ko
+endif
 endef
 
-define KernelPackage/regmap/description
+define KernelPackage/regmap-core/description
  Generic register map support
 endef
 
-$(eval $(call KernelPackage,regmap))
+$(eval $(call KernelPackage,regmap-core))
+
+
+define KernelPackage/regmap-spi
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=SPI register map support
+  DEPENDS:=+kmod-regmap-core
+  HIDDEN:=1
+  KCONFIG:=CONFIG_REGMAP_SPI \
+          CONFIG_SPI=y
+  FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-spi.ko
+endef
+
+define KernelPackage/regmap-spi/description
+ SPI register map support
+endef
+
+$(eval $(call KernelPackage,regmap-spi))
+
+
+define KernelPackage/regmap-i2c
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=I2C register map support
+  DEPENDS:=+kmod-regmap-core +kmod-i2c-core
+  HIDDEN:=1
+  KCONFIG:=CONFIG_REGMAP_I2C
+  FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-i2c.ko
+endef
+
+define KernelPackage/regmap-i2c/description
+ I2C register map support
+endef
+
+$(eval $(call KernelPackage,regmap-i2c))
+
+
+define KernelPackage/regmap-mmio
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=MMIO register map support
+  DEPENDS:=+kmod-regmap-core
+  HIDDEN:=1
+  KCONFIG:=CONFIG_REGMAP_MMIO
+  FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-mmio.ko
+endef
+
+define KernelPackage/regmap-mmio/description
+ MMIO register map support
+endef
+
+$(eval $(call KernelPackage,regmap-mmio))
+
 
 define KernelPackage/ikconfig
   SUBMENU:=$(OTHER_MENU)
@@ -955,7 +994,7 @@ $(eval $(call KernelPackage,echo))
 define KernelPackage/bmp085
   SUBMENU:=$(OTHER_MENU)
   TITLE:=BMP085/BMP18x pressure sensor
-  DEPENDS:= +kmod-regmap @!LINUX_3_18
+  DEPENDS:= +kmod-regmap-core @!LINUX_3_18
   KCONFIG:= CONFIG_BMP085
   FILES:= $(LINUX_DIR)/drivers/misc/bmp085.ko
 endef
index 177140e0fc181d7408b452f558a187fb467cde2f..bf4bd5d7c0872359e1d1307543b562c1042e7ece 100644 (file)
@@ -188,7 +188,7 @@ $(eval $(call KernelPackage,sound-via82xx))
 
 define KernelPackage/sound-soc-core
   TITLE:=SoC sound support
-  DEPENDS:=+kmod-regmap +kmod-ac97
+  DEPENDS:=+kmod-regmap-core +kmod-ac97
   KCONFIG:= \
        CONFIG_SND_SOC \
        CONFIG_SND_SOC_DMAENGINE_PCM=y \
@@ -321,7 +321,7 @@ define KernelPackage/sound-hda-core
        $(LINUX_DIR)/sound/pci/hda/snd-hda-codec.ko \
        $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-generic.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-core@ge4.1 snd-hda-codec snd-hda-codec-generic)
-  $(call AddDepends/sound,+kmod-regmap)
+  $(call AddDepends/sound,+kmod-regmap-core)
 endef
 
 define KernelPackage/sound-hda-core/description
index c5991141b584c0c57dd672ed216ada4df51aa9d7..9d64c303d4101f56bc19a510caedc4cc3176e259 100644 (file)
@@ -237,6 +237,22 @@ endef
 
 $(eval $(call KernelPackage,usb-gadget-mass-storage))
 
+define KernelPackage/usb-gadget-cdc-composite
+  TITLE:= USB CDC Composite (Ethernet + ACM)
+  KCONFIG:=CONFIG_USB_CDC_COMPOSITE
+  DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite \
+       +kmod-usb-gadget-eth +kmod-usb-gadget-serial
+  FILES:= $(LINUX_DIR)/drivers/usb/gadget/legacy/g_cdc.ko
+  $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-gadget-cdc-composite/description
+  Kernel support for the USB CDC Composite gadget.
+  This appears as an ethernet + ACM serial gadget.
+endef
+
+$(eval $(call KernelPackage,usb-gadget-cdc-composite))
+
 
 define KernelPackage/usb-uhci
   TITLE:=Support for UHCI controllers
@@ -359,7 +375,6 @@ define KernelPackage/usb2
        +TARGET_brcm47xx:kmod-usb-bcma \
        +TARGET_brcm47xx:kmod-usb-ssb \
        +TARGET_bcm53xx:kmod-usb-bcma \
-       +TARGET_bcm53xx:kmod-phy-bcm-ns-usb2 \
        +TARGET_ath79:kmod-phy-ath79-usb \
        +kmod-usb-ehci
   KCONFIG:=\
@@ -612,38 +627,6 @@ endef
 $(eval $(call KernelPackage,usb-serial-ch341))
 
 
-define KernelPackage/usb-serial-edgeport
-  TITLE:=Support for Digi Edgeport devices
-  KCONFIG:=CONFIG_USB_SERIAL_EDGEPORT
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/io_edgeport.ko
-  AUTOLOAD:=$(call AutoProbe,io_edgeport)
-  $(call AddDepends/usb-serial)
-  DEPENDS+=+edgeport-firmware
-endef
-
-define KernelPackage/usb-serial-edgeport/description
- Kernel support for Inside Out Networks (Digi)
-       Edgeport/4
-       Rapidport/4
-       Edgeport/4t
-       Edgeport/2
-       Edgeport/4i
-       Edgeport/2i
-       Edgeport/421
-       Edgeport/21
-       Edgeport/8
-       Edgeport/8 Dual
-       Edgeport/2D8
-       Edgeport/4D8
-       Edgeport/8i
-       Edgeport/2 DIN
-       Edgeport/4 DIN
-       Edgeport/16 Dual
-endef
-
-$(eval $(call KernelPackage,usb-serial-edgeport))
-
-
 define KernelPackage/usb-serial-ftdi
   TITLE:=Support for FTDI devices
   KCONFIG:=CONFIG_USB_SERIAL_FTDI_SIO
@@ -1646,8 +1629,8 @@ XHCI_AUTOLOAD := $(patsubst $(LINUX_DIR)/drivers/usb/host/%.ko,%,$(XHCI_FILES))
 define KernelPackage/usb3
   TITLE:=Support for USB3 controllers
   DEPENDS:= \
-       +TARGET_bcm53xx:kmod-usb-bcma \
-       +TARGET_bcm53xx:kmod-phy-bcm-ns-usb3
+
+
   KCONFIG:= \
        CONFIG_USB_PCI=y \
        CONFIG_USB_XHCI_HCD \
index 7e300bf4865808eec4d35a9d6231f857f6f1e371..5d821123c0ed7a8f30aae3fd2e8da85da7822242 100644 (file)
@@ -160,13 +160,76 @@ endef
 
 $(eval $(call KernelPackage,fb-sys-fops))
 
+
+define KernelPackage/fb-sys-ram
+  SUBMENU:=$(VIDEO_MENU)
+  TITLE:=Framebuffer in system RAM support
+  DEPENDS:=+kmod-fb
+  KCONFIG:= \
+       CONFIG_FB_SYS_COPYAREA \
+       CONFIG_FB_SYS_FILLRECT \
+       CONFIG_FB_SYS_IMAGEBLIT
+  FILES:= \
+       $(LINUX_DIR)/drivers/video/fbdev/core/syscopyarea.ko \
+       $(LINUX_DIR)/drivers/video/fbdev/core/sysfillrect.ko \
+       $(LINUX_DIR)/drivers/video/fbdev/core/sysimgblt.ko
+  AUTOLOAD:=$(call AutoLoad,07,syscopyarea sysfillrect sysimgblt)
+endef
+
+define KernelPackage/fb-sys-fops/description
+ Kernel support for framebuffers in system RAM
+endef
+
+$(eval $(call KernelPackage,fb-sys-ram))
+
+
+define KernelPackage/fb-tft
+  SUBMENU:=$(VIDEO_MENU)
+  TITLE:=Support for small TFT LCD display modules
+  DEPENDS:= \
+         @GPIO_SUPPORT @!LINUX_3_18 @!LINUX_4_9 +kmod-backlight \
+         +kmod-fb +kmod-fb-sys-fops +kmod-fb-sys-ram +kmod-spi-bitbang
+  KCONFIG:= \
+       CONFIG_FB_BACKLIGHT=y \
+       CONFIG_FB_DEFERRED_IO=y \
+       CONFIG_FB_TFT
+  FILES:= \
+       $(LINUX_DIR)/drivers/staging/fbtft/fbtft.ko
+  AUTOLOAD:=$(call AutoLoad,08,fbtft)
+endef
+
+define KernelPackage/fb-tft/description
+  Support for small TFT LCD display modules
+endef
+
+$(eval $(call KernelPackage,fb-tft))
+
+
+define KernelPackage/fb-tft-ili9486
+  SUBMENU:=$(VIDEO_MENU)
+  TITLE:=FB driver for the ILI9486 LCD Controller
+  DEPENDS:=+kmod-fb-tft
+  KCONFIG:=CONFIG_FB_TFT_ILI9486
+  FILES:=$(LINUX_DIR)/drivers/staging/fbtft/fb_ili9486.ko
+  AUTOLOAD:=$(call AutoLoad,09,fb_ili9486)
+endef
+
+define KernelPackage/fb-tft-ili9486/description
+  FB driver for the ILI9486 LCD Controller
+endef
+
+$(eval $(call KernelPackage,fb-tft-ili9486))
+
+
 define KernelPackage/drm
   SUBMENU:=$(VIDEO_MENU)
   TITLE:=Direct Rendering Manager (DRM) support
   HIDDEN:=1
   DEPENDS:=+kmod-dma-buf +kmod-i2c-core
   KCONFIG:=CONFIG_DRM
-  FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm.ko
+  FILES:= \
+       $(LINUX_DIR)/drivers/gpu/drm/drm.ko \
+       $(LINUX_DIR)/drivers/gpu/drm/drm_panel_orientation_quirks.ko@ge4.15
   AUTOLOAD:=$(call AutoLoad,05,drm)
 endef
 
@@ -176,10 +239,11 @@ endef
 
 $(eval $(call KernelPackage,drm))
 
+
 define KernelPackage/drm-imx
   SUBMENU:=$(VIDEO_MENU)
   TITLE:=Freescale i.MX DRM support
-  DEPENDS:=@TARGET_imx6 +kmod-drm +kmod-fb +kmod-fb-cfb-copyarea +kmod-fb-cfb-imgblt +kmod-fb-cfb-fillrect +kmod-fb-sys-fops
+  DEPENDS:=@TARGET_imx6 +kmod-drm +kmod-fb +kmod-fb-cfb-copyarea +kmod-fb-cfb-imgblt +kmod-fb-cfb-fillrect +kmod-fb-sys-fops +kmod-fb-sys-ram
   KCONFIG:=CONFIG_DRM_IMX \
        CONFIG_DRM_FBDEV_EMULATION=y \
        CONFIG_DRM_FBDEV_OVERALLOC=100 \
@@ -188,9 +252,6 @@ define KernelPackage/drm-imx
        CONFIG_DRM_IMX_IPUV3 \
        CONFIG_IMX_IPUV3 \
        CONFIG_DRM_KMS_HELPER \
-       CONFIG_FB_SYS_FILLRECT \
-       CONFIG_FB_SYS_COPYAREA \
-       CONFIG_FB_SYS_IMAGEBLIT \
        CONFIG_DRM_KMS_FB_HELPER=y \
        CONFIG_DRM_GEM_CMA_HELPER=y \
        CONFIG_DRM_KMS_CMA_HELPER=y \
@@ -202,11 +263,8 @@ define KernelPackage/drm-imx
   FILES:= \
        $(LINUX_DIR)/drivers/gpu/drm/imx/imxdrm.ko \
        $(LINUX_DIR)/drivers/gpu/ipu-v3/imx-ipu-v3.ko \
-       $(LINUX_DIR)/drivers/video/fbdev/core/syscopyarea.ko \
-       $(LINUX_DIR)/drivers/video/fbdev/core/sysfillrect.ko \
-       $(LINUX_DIR)/drivers/video/fbdev/core/sysimgblt.ko \
        $(LINUX_DIR)/drivers/gpu/drm/drm_kms_helper.ko
-  AUTOLOAD:=$(call AutoLoad,05,imxdrm imx-ipu-v3 imx-ipuv3-crtc)
+  AUTOLOAD:=$(call AutoLoad,08,imxdrm imx-ipu-v3 imx-ipuv3-crtc)
 endef
 
 define KernelPackage/drm-imx/description
@@ -226,7 +284,7 @@ define KernelPackage/drm-imx-hdmi
        $(LINUX_DIR)/drivers/gpu/drm/bridge/synopsys/dw-hdmi.ko \
        $(LINUX_DIR)/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.ko \
        $(LINUX_DIR)/drivers/gpu/drm/imx/dw_hdmi-imx.ko
-  AUTOLOAD:=$(call AutoLoad,05,dw-hdmi dw-hdmi-ahb-audio.ko dw_hdmi-imx)
+  AUTOLOAD:=$(call AutoLoad,08,dw-hdmi dw-hdmi-ahb-audio.ko dw_hdmi-imx)
 endef
 
 define KernelPackage/drm-imx-hdmi/description
@@ -251,7 +309,7 @@ define KernelPackage/drm-imx-ldb
        CONFIG_DRM_PANEL_SITRONIX_ST7789V=n
   FILES:=$(LINUX_DIR)/drivers/gpu/drm/imx/imx-ldb.ko \
        $(LINUX_DIR)/drivers/gpu/drm/panel/panel-simple.ko
-  AUTOLOAD:=$(call AutoLoad,05,imx-ldb)
+  AUTOLOAD:=$(call AutoLoad,08,imx-ldb)
 endef
 
 define KernelPackage/drm-imx-ldb/description
@@ -260,7 +318,6 @@ endef
 
 $(eval $(call KernelPackage,drm-imx-ldb))
 
-
 #
 # Video Capture
 #
index 199044fc33451f940e9ecb53d01d7e7c053790d4..d8d58fa0bc2c3c4b635218e2830767cb4848f924 100644 (file)
@@ -72,7 +72,7 @@ $(eval $(call KernelPackage,fakelb))
 define KernelPackage/at86rf230
   SUBMENU:=$(WPAN_MENU)
   TITLE:=AT86RF230 transceiver driver
-  DEPENDS:=+kmod-mac802154 +kmod-regmap
+  DEPENDS:=+kmod-mac802154 +kmod-regmap-spi
   KCONFIG:=CONFIG_IEEE802154_AT86RF230 \
        CONFIG_IEEE802154_AT86RF230_DEBUGFS=n \
        CONFIG_SPI=y \
@@ -85,7 +85,7 @@ $(eval $(call KernelPackage,at86rf230))
 define KernelPackage/mrf24j40
   SUBMENU:=$(WPAN_MENU)
   TITLE:=MRF24J40 transceiver driver
-  DEPENDS:=+kmod-mac802154 +kmod-regmap
+  DEPENDS:=+kmod-mac802154 +kmod-regmap-spi
   KCONFIG:=CONFIG_IEEE802154_MRF24J40 \
        CONFIG_SPI=y \
        CONFIG_SPI_MASTER=y
index 0a46e4e703e26f2755bf48ae0d44580311d22dc3..910b8b3197ca5d15733d5389c9e4edd5b77a9958 100644 (file)
@@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=mac80211
 
-PKG_VERSION:=4.19.7-1
-PKG_RELEASE:=1
-PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.7/
-PKG_HASH:=86650a02f36b0d39059be343d4bad3be14adece699723713a69c94cc64d456ef
+PKG_VERSION:=4.19.23-1
+PKG_RELEASE:=4
+PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.23/
+PKG_HASH:=703e940b542eb56067fcd847a7c69398dcc9829f34472647eea4211cb2ab3b83
 
 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
@@ -23,16 +23,14 @@ PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 
 PKG_DRIVERS = \
        lib80211 \
-       mac80211-hwsim \
+       mac80211-hwsim
+
 
 PKG_CONFIG_DEPENDS:= \
        CONFIG_PACKAGE_kmod-mac80211 \
        CONFIG_PACKAGE_MAC80211_DEBUGFS \
        CONFIG_PACKAGE_MAC80211_MESH \
        CONFIG_PACKAGE_MAC80211_TRACING \
-       CONFIG_PACKAGE_IWLWIFI_DEBUG \
-       CONFIG_PACKAGE_IWLWIFI_DEBUGFS \
-       CONFIG_PACKAGE_RTLWIFI_DEBUG \
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -57,19 +55,7 @@ config-y:= \
        MAC80211_RC_DEFAULT_MINSTREL \
        WLAN_VENDOR_ADMTEK \
        WLAN_VENDOR_ATH \
-       WLAN_VENDOR_ATMEL \
-       WLAN_VENDOR_BROADCOM \
-       WLAN_VENDOR_CISCO \
-       WLAN_VENDOR_INTEL \
-       WLAN_VENDOR_INTERSIL \
-       WLAN_VENDOR_MARVELL \
-       WLAN_VENDOR_MEDIATEK \
-       WLAN_VENDOR_RALINK \
-       WLAN_VENDOR_REALTEK \
-       WLAN_VENDOR_RSI \
-       WLAN_VENDOR_ST \
-       WLAN_VENDOR_TI \
-       WLAN_VENDOR_ZYDAS \
+
 
 config-$(call config_package,cfg80211) += CFG80211
 
@@ -256,6 +242,7 @@ define Build/Patch
        $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
        $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
        $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
+       $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
        $(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
 endef
 
@@ -264,6 +251,7 @@ define Quilt/Refresh/Package
        $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
        $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
        $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
+       $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
 endef
 
 define Build/Compile
index d670c9f89fe06e0e0a06e4be997372ea48480487..7533f08ba2c45a62ccc462009dfa1800817134d7 100644 (file)
@@ -1,5 +1,5 @@
 PKG_DRIVERS += \
-       ath ath5k ath6kl ath6kl-sdio ath6kl-usb ath9k ath9k-common ath9k-htc ath10k \
+       ath ath5k ath6kl ath9k ath9k-common ath9k-htc \
        carl9170
 
 PKG_CONFIG_DEPENDS += \
@@ -9,48 +9,38 @@ PKG_CONFIG_DEPENDS += \
        CONFIG_PACKAGE_ATH_DYNACK \
        CONFIG_ATH9K_SUPPORT_PCOEM \
        CONFIG_ATH9K_TX99 \
-       CONFIG_ATH10K_LEDS \
-       CONFIG_ATH10K_THERMAL \
        CONFIG_ATH_USER_REGD
 
 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
   config-y += \
        ATH9K_DEBUGFS \
        ATH9K_HTC_DEBUGFS \
-       ATH10K_DEBUGFS \
        CARL9170_DEBUGFS \
-       ATH5K_DEBUG \
-       ATH6KL_DEBUG
+       ATH5K_DEBUG
 endif
 
 ifdef CONFIG_PACKAGE_MAC80211_TRACING
   config-y += \
-       ATH10K_TRACING \
-       ATH6KL_TRACING \
        ATH_TRACEPOINTS \
        ATH5K_TRACER
 endif
 
 config-$(call config_package,ath) += ATH_CARDS ATH_COMMON ATH_REG_DYNAMIC_USER_REG_HINTS
-config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG ATH10K_DEBUG ATH9K_STATION_STATISTICS
-config-$(CONFIG_PACKAGE_ATH_DFS) += ATH9K_DFS_CERTIFIED ATH10K_DFS_CERTIFIED
-config-$(CONFIG_PACKAGE_ATH_SPECTRAL) += ATH9K_COMMON_SPECTRAL ATH10K_SPECTRAL
+config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG ATH9K_STATION_STATISTICS
+config-$(CONFIG_PACKAGE_ATH_DFS) += ATH9K_DFS_CERTIFIED
+config-$(CONFIG_PACKAGE_ATH_SPECTRAL) += ATH9K_COMMON_SPECTRAL
 config-$(CONFIG_PACKAGE_ATH_DYNACK) += ATH9K_DYNACK
 config-$(call config_package,ath9k) += ATH9K
 config-$(call config_package,ath9k-common) += ATH9K_COMMON
 config-$(CONFIG_TARGET_ar71xx) += ATH9K_AHB
 config-$(CONFIG_TARGET_ath79) += ATH9K_AHB
-config-$(CONFIG_TARGET_ipq40xx) += ATH10K_AHB
 config-$(CONFIG_PCI) += ATH9K_PCI
 config-$(CONFIG_ATH_USER_REGD) += ATH_USER_REGD
 config-$(CONFIG_ATH9K_SUPPORT_PCOEM) += ATH9K_PCOEM
 config-$(CONFIG_ATH9K_TX99) += ATH9K_TX99
 config-$(CONFIG_ATH9K_UBNTHSR) += ATH9K_UBNTHSR
-config-$(CONFIG_ATH10K_LEDS) += ATH10K_LEDS
-config-$(CONFIG_ATH10K_THERMAL) += ATH10K_THERMAL
 
 config-$(call config_package,ath9k-htc) += ATH9K_HTC
-config-$(call config_package,ath10k) += ATH10K ATH10K_PCI
 
 config-$(call config_package,ath5k) += ATH5K
 ifdef CONFIG_TARGET_ath25
@@ -83,7 +73,7 @@ define KernelPackage/ath/config
                bool "Atheros wireless debugging"
                help
                  Say Y, if you want to debug atheros wireless drivers.
-                 Only ath9k & ath10k make use of this.
+                 Only ath9k makes use of this.
 
        config PACKAGE_ATH_DFS
                bool "Enable DFS support"
@@ -236,41 +226,10 @@ This module adds support for wireless adapters based on
 Atheros USB AR9271 and AR7010 family of chipsets.
 endef
 
-define KernelPackage/ath10k
-  $(call KernelPackage/mac80211/Default)
-  TITLE:=Atheros 802.11ac wireless cards support
-  URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath10k
-  DEPENDS+= @PCI_SUPPORT +kmod-ath +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +@DRIVER_11W_SUPPORT \
-       +ATH10K_THERMAL:kmod-hwmon-core +ATH10K_THERMAL:kmod-thermal
-  FILES:= \
-       $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath10k/ath10k_core.ko \
-       $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath10k/ath10k_pci.ko
-  AUTOLOAD:=$(call AutoProbe,ath10k_pci)
-endef
-
-define KernelPackage/ath10k/description
-This module adds support for wireless adapters based on
-Atheros IEEE 802.11ac family of chipsets. For now only
-PCI is supported.
-endef
-
-define KernelPackage/ath10k/config
-
-       config ATH10K_LEDS
-               bool "Enable LED support"
-               default y
-               depends on PACKAGE_kmod-ath10k
-
-       config ATH10K_THERMAL
-               bool "Enable thermal sensors and throttling support"
-               depends on PACKAGE_kmod-ath10k
-
-endef
-
 define KernelPackage/carl9170
   $(call KernelPackage/mac80211/Default)
   TITLE:=Driver for Atheros AR9170 USB sticks
-  DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core +kmod-input-core +@DRIVER_11N_SUPPORT +carl9170-firmware
+  DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core +kmod-input-core +@DRIVER_11N_SUPPORT +@DRIVER_11W_SUPPORT +carl9170-firmware
   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko
   AUTOLOAD:=$(call AutoProbe,carl9170)
 endef
diff --git a/package/kernel/mac80211/patches/ath/080-ath10k_thermal_config.patch b/package/kernel/mac80211/patches/ath/080-ath10k_thermal_config.patch
deleted file mode 100644 (file)
index a86cbc6..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/drivers/net/wireless/ath/ath10k/Kconfig
-+++ b/drivers/net/wireless/ath/ath10k/Kconfig
-@@ -85,6 +85,12 @@ config ATH10K_TRACING
-       ---help---
-         Select this to ath10k use tracing infrastructure.
-+config ATH10K_THERMAL
-+      bool "Atheros ath10k thermal monitoring support"
-+      depends on THERMAL
-+      ---help---
-+        Select this to ath10k use hwmon for thermal measurement.
-+
- config ATH10K_DFS_CERTIFIED
-       bool "Atheros DFS support for certified platforms"
-       depends on ATH10K && CFG80211_CERTIFICATION_ONUS
---- a/drivers/net/wireless/ath/ath10k/Makefile
-+++ b/drivers/net/wireless/ath/ath10k/Makefile
-@@ -18,7 +18,7 @@ ath10k_core-y += mac.o \
- ath10k_core-$(CPTCFG_ATH10K_SPECTRAL) += spectral.o
- ath10k_core-$(CPTCFG_NL80211_TESTMODE) += testmode.o
- ath10k_core-$(CPTCFG_ATH10K_TRACING) += trace.o
--ath10k_core-$(CONFIG_THERMAL) += thermal.o
-+ath10k_core-$(CPTCFG_ATH10K_THERMAL) += thermal.o
- ath10k_core-$(CPTCFG_MAC80211_DEBUGFS) += debugfs_sta.o
- ath10k_core-$(CONFIG_PM) += wow.o
- ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o
---- a/drivers/net/wireless/ath/ath10k/thermal.h
-+++ b/drivers/net/wireless/ath/ath10k/thermal.h
-@@ -36,7 +36,7 @@ struct ath10k_thermal {
-       int temperature;
- };
--#if IS_REACHABLE(CONFIG_THERMAL)
-+#if IS_REACHABLE(CPTCFG_ATH10K_THERMAL)
- int ath10k_thermal_register(struct ath10k *ar);
- void ath10k_thermal_unregister(struct ath10k *ar);
- void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature);
---- a/local-symbols
-+++ b/local-symbols
-@@ -139,6 +139,7 @@ ATH10K_SNOC=
- ATH10K_DEBUG=
- ATH10K_DEBUGFS=
- ATH10K_SPECTRAL=
-+ATH10K_THERMAL=
- ATH10K_TRACING=
- ATH10K_DFS_CERTIFIED=
- WCN36XX=
index 777b73417f732b69c848a935eed7dc02f6a5d794..d5c37825fdaee5b1909aa1a20c4ba7f40c271b35 100644 (file)
@@ -81,7 +81,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                rate->flags |= IEEE80211_TX_RC_MCS;
 --- a/drivers/net/wireless/ath/ath9k/xmit.c
 +++ b/drivers/net/wireless/ath/ath9k/xmit.c
-@@ -2973,7 +2973,7 @@ int ath9k_tx99_send(struct ath_softc *sc
+@@ -2974,7 +2974,7 @@ int ath9k_tx99_send(struct ath_softc *sc
                return -EINVAL;
        }
  
index abd0fdc210a51e8059e45046cefc900ea38d342a..7f30de9862e01fa96820714f9c1ef842010d2ad9 100644 (file)
@@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                rate->flags |= IEEE80211_TX_RC_MCS;
 --- a/drivers/net/wireless/ath/ath9k/xmit.c
 +++ b/drivers/net/wireless/ath/ath9k/xmit.c
-@@ -2973,7 +2973,7 @@ int ath9k_tx99_send(struct ath_softc *sc
+@@ -2974,7 +2974,7 @@ int ath9k_tx99_send(struct ath_softc *sc
                return -EINVAL;
        }
  
diff --git a/package/kernel/mac80211/patches/ath/407-regd_add_extra_country_codes.patch b/package/kernel/mac80211/patches/ath/407-regd_add_extra_country_codes.patch
new file mode 100644 (file)
index 0000000..8f62100
--- /dev/null
@@ -0,0 +1,35 @@
+From: Oever Gonzalez <notengobattery@gmail.com>
+Date: Mon, 7 Jan 2019 01:07:12 +0200
+Subject: [PATCH] ath: regd: add extra coutry codes
+
+This patch adds several country codes to the regd.h and regd_common.h
+files in order to support devices whose country codes are not present in
+the original list. Without this patch, all devices whose manufacturer
+programmed any of these code in their EEPROM will not work.
+
+Signed-off-by: Oever Gonzalez <notengobattery@gmail.com>
+---
+
+--- a/drivers/net/wireless/ath/regd.h
++++ b/drivers/net/wireless/ath/regd.h
+@@ -185,7 +185,9 @@ enum CountryCode {
+       CTRY_UKRAINE = 804,
+       CTRY_UNITED_KINGDOM = 826,
+       CTRY_UNITED_STATES = 840,
++      CTRY_UNITED_STATES2 = 841,
+       CTRY_UNITED_STATES_FCC49 = 842,
++      CTRY_UNITED_STATES3 = 843,
+       CTRY_URUGUAY = 858,
+       CTRY_UZBEKISTAN = 860,
+       CTRY_VENEZUELA = 862,
+--- a/drivers/net/wireless/ath/regd_common.h
++++ b/drivers/net/wireless/ath/regd_common.h
+@@ -486,6 +486,8 @@ static struct country_code_to_enum_rd al
+       {CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB"},
+       {CTRY_UNITED_STATES, FCC3_FCCA, "US"},
+       {CTRY_UNITED_STATES, FCC3_FCCA_2, "US"},
++      {CTRY_UNITED_STATES2, FCC3_FCCA, "US"},
++      {CTRY_UNITED_STATES3, FCC3_FCCA, "US"},
+       /* This "PS" is for US public safety actually... to support this we
+        * would need to assign new special alpha2 to CRDA db as with the world
+        * regdomain and use another alpha2 */
diff --git a/package/kernel/mac80211/patches/ath/553-ath9k-dynack-use-authentication-messages-for-late-ac.patch b/package/kernel/mac80211/patches/ath/553-ath9k-dynack-use-authentication-messages-for-late-ac.patch
deleted file mode 100644 (file)
index 831c534..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
-Date: Fri, 2 Nov 2018 21:49:55 +0100
-Subject: [PATCH] ath9k: dynack: use authentication messages for 'late' ack
-
-In order to properly support dynack in ad-hoc mode running
-wpa_supplicant, take into account authentication frames for
-'late ack' detection. This patch has been tested on devices
-mounted on offshore high-voltage stations connected through
-~24Km link
-
-Reported-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
-Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
-Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
----
-
---- a/drivers/net/wireless/ath/ath9k/dynack.c
-+++ b/drivers/net/wireless/ath/ath9k/dynack.c
-@@ -187,7 +187,8 @@ void ath_dynack_sample_tx_ts(struct ath_
-       /* late ACK */
-       if (ts->ts_status & ATH9K_TXERR_XRETRY) {
-               if (ieee80211_is_assoc_req(hdr->frame_control) ||
--                  ieee80211_is_assoc_resp(hdr->frame_control)) {
-+                  ieee80211_is_assoc_resp(hdr->frame_control) ||
-+                  ieee80211_is_auth(hdr->frame_control)) {
-                       ath_dbg(common, DYNACK, "late ack\n");
-                       ath9k_hw_setslottime(ah, (LATEACK_TO - 3) / 2);
-                       ath9k_hw_set_ack_timeout(ah, LATEACK_TO);
index a1d612660bf851582dd889cf081460cec39006b0..607722cc3db1db501d3cbcf45754c1b0e2c7c269 100644 (file)
@@ -12,9 +12,9 @@ Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
 
 --- a/drivers/net/wireless/ath/ath9k/dynack.c
 +++ b/drivers/net/wireless/ath/ath9k/dynack.c
-@@ -171,11 +171,12 @@ static void ath_dynack_compute_to(struct
void ath_dynack_sample_tx_ts(struct ath_hw *ah, struct sk_buff *skb,
-                            struct ath_tx_status *ts)
+@@ -178,11 +178,12 @@ void ath_dynack_sample_tx_ts(struct ath_
                           struct ath_tx_status *ts,
+                            struct ieee80211_sta *sta)
  {
 -      u8 ridx;
        struct ieee80211_hdr *hdr;
@@ -24,9 +24,9 @@ Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
 +      u32 dur = ts->duration;
 +      u8 ridx;
  
-       if ((info->flags & IEEE80211_TX_CTL_NO_ACK) || !da->enabled)
+       if (!da->enabled || (info->flags & IEEE80211_TX_CTL_NO_ACK))
                return;
-@@ -203,14 +204,13 @@ void ath_dynack_sample_tx_ts(struct ath_
+@@ -217,14 +218,13 @@ void ath_dynack_sample_tx_ts(struct ath_
        ridx = ts->ts_rateindex;
  
        da->st_rbf.ts[da->st_rbf.t_rb].tstamp = ts->ts_tstamp;
@@ -42,7 +42,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
  
                rate = &common->sbands[info->band].bitrates[rates[ridx].idx];
                if (info->band == NL80211_BAND_2GHZ &&
-@@ -219,19 +219,18 @@ void ath_dynack_sample_tx_ts(struct ath_
+@@ -233,19 +233,18 @@ void ath_dynack_sample_tx_ts(struct ath_
                else
                        phy = WLAN_RC_PHY_OFDM;
  
@@ -68,7 +68,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
        ath_dynack_compute_to(ah);
  
        spin_unlock_bh(&da->qlock);
-@@ -258,14 +257,13 @@ void ath_dynack_sample_ack_ts(struct ath
+@@ -272,14 +271,13 @@ void ath_dynack_sample_ack_ts(struct ath
        spin_lock_bh(&da->qlock);
        da->ack_rbf.tstamp[da->ack_rbf.t_rb] = ts;
  
diff --git a/package/kernel/mac80211/patches/ath/555-ath9k-dynack-check-da-enabled-first-in-sampling-rout.patch b/package/kernel/mac80211/patches/ath/555-ath9k-dynack-check-da-enabled-first-in-sampling-rout.patch
deleted file mode 100644 (file)
index cc5cdf9..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
-Date: Fri, 2 Nov 2018 21:49:57 +0100
-Subject: [PATCH] ath9k: dynack: check da->enabled first in sampling
- routines
-
-Check da->enabled flag first in ath_dynack_sample_tx_ts and
-ath_dynack_sample_ack_ts routines in order to avoid useless
-processing
-
-Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
-Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
----
-
---- a/drivers/net/wireless/ath/ath9k/dynack.c
-+++ b/drivers/net/wireless/ath/ath9k/dynack.c
-@@ -178,7 +178,7 @@ void ath_dynack_sample_tx_ts(struct ath_
-       u32 dur = ts->duration;
-       u8 ridx;
--      if ((info->flags & IEEE80211_TX_CTL_NO_ACK) || !da->enabled)
-+      if (!da->enabled || (info->flags & IEEE80211_TX_CTL_NO_ACK))
-               return;
-       spin_lock_bh(&da->qlock);
-@@ -251,7 +251,7 @@ void ath_dynack_sample_ack_ts(struct ath
-       struct ath_common *common = ath9k_hw_common(ah);
-       struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
--      if (!ath_dynack_bssidmask(ah, hdr->addr1) || !da->enabled)
-+      if (!da->enabled || !ath_dynack_bssidmask(ah, hdr->addr1))
-               return;
-       spin_lock_bh(&da->qlock);
diff --git a/package/kernel/mac80211/patches/ath/556-ath9k-dynack-make-ewma-estimation-faster.patch b/package/kernel/mac80211/patches/ath/556-ath9k-dynack-make-ewma-estimation-faster.patch
deleted file mode 100644 (file)
index aaae8ba..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
-Date: Fri, 2 Nov 2018 21:49:58 +0100
-Subject: [PATCH] ath9k: dynack: make ewma estimation faster
-
-In order to make propagation time estimation faster,
-use current sample as ewma output value during 'late ack'
-tracking
-
-Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
-Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
----
-
---- a/drivers/net/wireless/ath/ath9k/ath9k.h
-+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
-@@ -274,7 +274,7 @@ struct ath_node {
- #endif
-       u8 key_idx[4];
--      u32 ackto;
-+      int ackto;
-       struct list_head list;
- };
---- a/drivers/net/wireless/ath/ath9k/dynack.c
-+++ b/drivers/net/wireless/ath/ath9k/dynack.c
-@@ -29,9 +29,13 @@
-  * ath_dynack_ewma - EWMA (Exponentially Weighted Moving Average) calculation
-  *
-  */
--static inline u32 ath_dynack_ewma(u32 old, u32 new)
-+static inline int ath_dynack_ewma(int old, int new)
- {
--      return (new * (EWMA_DIV - EWMA_LEVEL) + old * EWMA_LEVEL) / EWMA_DIV;
-+      if (old > 0)
-+              return (new * (EWMA_DIV - EWMA_LEVEL) +
-+                      old * EWMA_LEVEL) / EWMA_DIV;
-+      else
-+              return new;
- }
- /**
-@@ -82,10 +86,10 @@ static inline bool ath_dynack_bssidmask(
-  */
- static void ath_dynack_compute_ackto(struct ath_hw *ah)
- {
--      struct ath_node *an;
--      u32 to = 0;
--      struct ath_dynack *da = &ah->dynack;
-       struct ath_common *common = ath9k_hw_common(ah);
-+      struct ath_dynack *da = &ah->dynack;
-+      struct ath_node *an;
-+      int to = 0;
-       list_for_each_entry(an, &da->nodes, list)
-               if (an->ackto > to)
-@@ -144,7 +148,8 @@ static void ath_dynack_compute_to(struct
-                                       an->ackto = ath_dynack_ewma(an->ackto,
-                                                                   ackto);
-                                       ath_dbg(ath9k_hw_common(ah), DYNACK,
--                                              "%pM to %u\n", dst, an->ackto);
-+                                              "%pM to %d [%u]\n", dst,
-+                                              an->ackto, ackto);
-                                       if (time_is_before_jiffies(da->lto)) {
-                                               ath_dynack_compute_ackto(ah);
-                                               da->lto = jiffies + COMPUTE_TO;
-@@ -166,10 +171,12 @@ static void ath_dynack_compute_to(struct
-  * @ah: ath hw
-  * @skb: socket buffer
-  * @ts: tx status info
-+ * @sta: station pointer
-  *
-  */
- void ath_dynack_sample_tx_ts(struct ath_hw *ah, struct sk_buff *skb,
--                           struct ath_tx_status *ts)
-+                           struct ath_tx_status *ts,
-+                           struct ieee80211_sta *sta)
- {
-       struct ieee80211_hdr *hdr;
-       struct ath_dynack *da = &ah->dynack;
-@@ -191,9 +198,16 @@ void ath_dynack_sample_tx_ts(struct ath_
-                   ieee80211_is_assoc_resp(hdr->frame_control) ||
-                   ieee80211_is_auth(hdr->frame_control)) {
-                       ath_dbg(common, DYNACK, "late ack\n");
-+
-                       ath9k_hw_setslottime(ah, (LATEACK_TO - 3) / 2);
-                       ath9k_hw_set_ack_timeout(ah, LATEACK_TO);
-                       ath9k_hw_set_cts_timeout(ah, LATEACK_TO);
-+                      if (sta) {
-+                              struct ath_node *an;
-+
-+                              an = (struct ath_node *)sta->drv_priv;
-+                              an->ackto = -1;
-+                      }
-                       da->lto = jiffies + LATEACK_DELAY;
-               }
---- a/drivers/net/wireless/ath/ath9k/dynack.h
-+++ b/drivers/net/wireless/ath/ath9k/dynack.h
-@@ -86,7 +86,8 @@ void ath_dynack_node_deinit(struct ath_h
- void ath_dynack_init(struct ath_hw *ah);
- void ath_dynack_sample_ack_ts(struct ath_hw *ah, struct sk_buff *skb, u32 ts);
- void ath_dynack_sample_tx_ts(struct ath_hw *ah, struct sk_buff *skb,
--                           struct ath_tx_status *ts);
-+                           struct ath_tx_status *ts,
-+                           struct ieee80211_sta *sta);
- #else
- static inline void ath_dynack_init(struct ath_hw *ah) {}
- static inline void ath_dynack_node_init(struct ath_hw *ah,
-@@ -97,7 +98,8 @@ static inline void ath_dynack_sample_ack
-                                           struct sk_buff *skb, u32 ts) {}
- static inline void ath_dynack_sample_tx_ts(struct ath_hw *ah,
-                                          struct sk_buff *skb,
--                                         struct ath_tx_status *ts) {}
-+                                         struct ath_tx_status *ts,
-+                                         struct ieee80211_sta *sta) {}
- #endif
- #endif /* DYNACK_H */
---- a/drivers/net/wireless/ath/ath9k/xmit.c
-+++ b/drivers/net/wireless/ath/ath9k/xmit.c
-@@ -629,7 +629,7 @@ static void ath_tx_complete_aggr(struct
-                               if (bf == bf->bf_lastbf)
-                                       ath_dynack_sample_tx_ts(sc->sc_ah,
-                                                               bf->bf_mpdu,
--                                                              ts);
-+                                                              ts, sta);
-                       }
-                       ath_tx_complete_buf(sc, bf, txq, &bf_head, sta, ts,
-@@ -773,7 +773,8 @@ static void ath_tx_process_buffer(struct
-                       memcpy(info->control.rates, bf->rates,
-                              sizeof(info->control.rates));
-                       ath_tx_rc_status(sc, bf, ts, 1, txok ? 0 : 1, txok);
--                      ath_dynack_sample_tx_ts(sc->sc_ah, bf->bf_mpdu, ts);
-+                      ath_dynack_sample_tx_ts(sc->sc_ah, bf->bf_mpdu, ts,
-+                                              sta);
-               }
-               ath_tx_complete_buf(sc, bf, txq, bf_head, sta, ts, txok);
-       } else
diff --git a/package/kernel/mac80211/patches/ath/921-ath10k_init_devices_synchronously.patch b/package/kernel/mac80211/patches/ath/921-ath10k_init_devices_synchronously.patch
deleted file mode 100644 (file)
index 04153bc..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Sven Eckelmann <sven@open-mesh.com>
-Date: Tue, 18 Nov 2014 12:29:28 +0100
-Subject: [PATCH] ath10k: Don't initialize devices asynchronously
-
-libreCMC requires all PHYs to be initialized to create the configuration files
-during bootup. ath10k violates this because it delays the creation of the PHY
-to a not well defined point in the future.
-
-Forcing the work to be done immediately works around this problem but may also
-delay the boot when firmware images cannot be found.
-
-Signed-off-by: Sven Eckelmann <sven@open-mesh.com>
----
-
---- a/drivers/net/wireless/ath/ath10k/core.c
-+++ b/drivers/net/wireless/ath/ath10k/core.c
-@@ -2719,6 +2719,16 @@ int ath10k_core_register(struct ath10k *
-       ar->chip_id = chip_id;
-       queue_work(ar->workqueue, &ar->register_work);
-+      /* libreCMC requires all PHYs to be initialized to create the
-+       * configuration files during bootup. ath10k violates this
-+       * because it delays the creation of the PHY to a not well defined
-+       * point in the future.
-+       *
-+       * Forcing the work to be done immediately works around this problem
-+       * but may also delay the boot when firmware images cannot be found.
-+       */
-+      flush_workqueue(ar->workqueue);
-+
-       return 0;
- }
- EXPORT_SYMBOL(ath10k_core_register);
diff --git a/package/kernel/mac80211/patches/ath/930-ath10k_add_tpt_led_trigger.patch b/package/kernel/mac80211/patches/ath/930-ath10k_add_tpt_led_trigger.patch
deleted file mode 100644 (file)
index 3fd6bca..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
---- a/drivers/net/wireless/ath/ath10k/mac.c
-+++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -8282,6 +8282,21 @@ static int ath10k_mac_init_rd(struct ath
-       return 0;
- }
-+#ifdef CPTCFG_MAC80211_LEDS
-+static const struct ieee80211_tpt_blink ath10k_tpt_blink[] = {
-+      { .throughput = 0 * 1024, .blink_time = 334 },
-+      { .throughput = 1 * 1024, .blink_time = 260 },
-+      { .throughput = 2 * 1024, .blink_time = 220 },
-+      { .throughput = 5 * 1024, .blink_time = 190 },
-+      { .throughput = 10 * 1024, .blink_time = 170 },
-+      { .throughput = 25 * 1024, .blink_time = 150 },
-+      { .throughput = 54 * 1024, .blink_time = 130 },
-+      { .throughput = 120 * 1024, .blink_time = 110 },
-+      { .throughput = 265 * 1024, .blink_time = 80 },
-+      { .throughput = 586 * 1024, .blink_time = 50 },
-+};
-+#endif
-+
- int ath10k_mac_register(struct ath10k *ar)
- {
-       static const u32 cipher_suites[] = {
-@@ -8571,6 +8586,12 @@ int ath10k_mac_register(struct ath10k *a
-       wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
-+#ifdef CPTCFG_MAC80211_LEDS
-+      ieee80211_create_tpt_led_trigger(ar->hw,
-+              IEEE80211_TPT_LEDTRIG_FL_RADIO, ath10k_tpt_blink,
-+              ARRAY_SIZE(ath10k_tpt_blink));
-+#endif
-+
-       ret = ieee80211_register_hw(ar->hw);
-       if (ret) {
-               ath10k_err(ar, "failed to register ieee80211: %d\n", ret);
diff --git a/package/kernel/mac80211/patches/ath/936-ath10k-fix-otp-failure-result.patch b/package/kernel/mac80211/patches/ath/936-ath10k-fix-otp-failure-result.patch
deleted file mode 100644 (file)
index e1990b8..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/drivers/net/wireless/ath/ath10k/core.c
-+++ b/drivers/net/wireless/ath/ath10k/core.c
-@@ -943,7 +943,7 @@ static int ath10k_core_get_board_id_from
-       if (ret) {
-               ath10k_err(ar, "could not execute otp for board id check: %d\n",
-                          ret);
--              return ret;
-+              return -EOPNOTSUPP;
-       }
-       board_id = MS(result, ATH10K_BMI_BOARD_ID_FROM_OTP);
diff --git a/package/kernel/mac80211/patches/ath/960-0010-ath10k-limit-htt-rx-ring-size.patch b/package/kernel/mac80211/patches/ath/960-0010-ath10k-limit-htt-rx-ring-size.patch
deleted file mode 100644 (file)
index 810e97a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/drivers/net/wireless/ath/ath10k/htt.h
-+++ b/drivers/net/wireless/ath/ath10k/htt.h
-@@ -238,7 +238,7 @@ enum htt_rx_ring_flags {
- };
- #define HTT_RX_RING_SIZE_MIN 128
--#define HTT_RX_RING_SIZE_MAX 2048
-+#define HTT_RX_RING_SIZE_MAX 512
- #define HTT_RX_RING_SIZE HTT_RX_RING_SIZE_MAX
- #define HTT_RX_RING_FILL_LEVEL (((HTT_RX_RING_SIZE) / 2) - 1)
- #define HTT_RX_RING_FILL_LEVEL_DUAL_MAC (HTT_RX_RING_SIZE - 1)
diff --git a/package/kernel/mac80211/patches/ath/960-0011-ath10k-limit-pci-buffer-size.patch b/package/kernel/mac80211/patches/ath/960-0011-ath10k-limit-pci-buffer-size.patch
deleted file mode 100644 (file)
index 283f4d8..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
---- a/drivers/net/wireless/ath/ath10k/pci.c
-+++ b/drivers/net/wireless/ath/ath10k/pci.c
-@@ -142,7 +142,7 @@ static struct ce_attr host_ce_config_wla
-               .flags = CE_ATTR_FLAGS,
-               .src_nentries = 0,
-               .src_sz_max = 2048,
--              .dest_nentries = 512,
-+              .dest_nentries = 128,
-               .recv_cb = ath10k_pci_htt_htc_rx_cb,
-       },
-@@ -151,7 +151,7 @@ static struct ce_attr host_ce_config_wla
-               .flags = CE_ATTR_FLAGS,
-               .src_nentries = 0,
-               .src_sz_max = 2048,
--              .dest_nentries = 128,
-+              .dest_nentries = 64,
-               .recv_cb = ath10k_pci_htc_rx_cb,
-       },
-@@ -178,7 +178,7 @@ static struct ce_attr host_ce_config_wla
-               .flags = CE_ATTR_FLAGS,
-               .src_nentries = 0,
-               .src_sz_max = 512,
--              .dest_nentries = 512,
-+              .dest_nentries = 128,
-               .recv_cb = ath10k_pci_htt_rx_cb,
-       },
-@@ -203,7 +203,7 @@ static struct ce_attr host_ce_config_wla
-               .flags = CE_ATTR_FLAGS,
-               .src_nentries = 0,
-               .src_sz_max = 2048,
--              .dest_nentries = 128,
-+              .dest_nentries = 96,
-               .recv_cb = ath10k_pci_pktlog_rx_cb,
-       },
diff --git a/package/kernel/mac80211/patches/ath/972-ath10k_fix-crash-due-to-wrong-handling-of-peer_bw_rxnss_override-parameter.patch b/package/kernel/mac80211/patches/ath/972-ath10k_fix-crash-due-to-wrong-handling-of-peer_bw_rxnss_override-parameter.patch
deleted file mode 100644 (file)
index d8f6887..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-From: Sebastian Gottschall <s.gottschall@dd-wrt.com>
-
-current handling of peer_bw_rxnss_override parameter is based on guessing the VHT160/8080 capability by rx rate. this is wrong and may lead
-to a non initialized peer_bw_rxnss_override parameter which is required since VHT160 operation mode only supports 2x2 chainmasks in addition the original code
-initialized the parameter with wrong masked values.
-This patch uses the peer phymode and peer nss information for correct initialisation of the peer_bw_rxnss_override parameter.
-if this peer information is not available, we initialize the parameter by minimum nss which is suggested by QCA as temporary workaround according
-to the QCA sourcecodes.
-
-Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
-
-v2: remove debug messages
-v3: apply some cosmetics, update documentation
-v4: fix compile warning and truncate nss to maximum of 2x2 since current chipsets only support 2x2 at vht160
-v5: handle maximum nss for chipsets supportig vht160 with 1x1 only
-v7: use more simple code variant and take care about hw/sw chainmask configuration
-v8: fix some code style issues
-v9: use SM/MS macros from code.h to simplify shift/mask handling
----
- drivers/net/wireless/ath/ath10k/mac.c | 54 +++++++++++++++++++--------
- drivers/net/wireless/ath/ath10k/wmi.c |  7 +---
- drivers/net/wireless/ath/ath10k/wmi.h | 14 ++++++-
- 3 files changed, 52 insertions(+), 23 deletions(-)
---- a/drivers/net/wireless/ath/ath10k/mac.c
-+++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -2469,7 +2469,7 @@ static void ath10k_peer_assoc_h_vht(stru
-       const u16 *vht_mcs_mask;
-       u8 ampdu_factor;
-       u8 max_nss, vht_mcs;
--      int i;
-+      int i, nss160;
-       if (WARN_ON(ath10k_mac_vif_chan(vif, &def)))
-               return;
-@@ -2529,23 +2529,45 @@ static void ath10k_peer_assoc_h_vht(stru
-               __le16_to_cpu(vht_cap->vht_mcs.tx_highest);
-       arg->peer_vht_rates.tx_mcs_set = ath10k_peer_assoc_h_vht_limit(
-               __le16_to_cpu(vht_cap->vht_mcs.tx_mcs_map), vht_mcs_mask);
-+      arg->peer_bw_rxnss_override = 0;
-+      nss160 = 1; /* 1x1 default config for VHT160 */
--      ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vht peer %pM max_mpdu %d flags 0x%x\n",
--                 sta->addr, arg->peer_max_mpdu, arg->peer_flags);
-+      /* only local 4x4 configuration do support 2x2 for VHT160,
-+       * everything else must use 1x1 
-+       */
--      if (arg->peer_vht_rates.rx_max_rate &&
--          (sta->vht_cap.cap & IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK)) {
--              switch (arg->peer_vht_rates.rx_max_rate) {
--              case 1560:
--                      /* Must be 2x2 at 160Mhz is all it can do. */
--                      arg->peer_bw_rxnss_override = 2;
--                      break;
--              case 780:
--                      /* Can only do 1x1 at 160Mhz (Long Guard Interval) */
--                      arg->peer_bw_rxnss_override = 1;
--                      break;
--              }
-+      if (ar->cfg_rx_chainmask == 15)
-+              nss160 = arg->peer_num_spatial_streams <= 2 ? 1 : 2;
-+
-+      /* if peer provides 1x1 nss160 information using max rate
-+       * vht information, we reduce local nss160 to 1x1.
-+       * consider that it has been observed that some client
-+       * devices provide zero here, no matter which transmission
-+       * rate is possible. in that case the local nss configuration 
-+       * will be used at maxmimum configuration possible. (see above)
-+       */
-+
-+      if (arg->peer_vht_rates.rx_max_rate == 780)
-+              nss160 = 1;
-+
-+      /* in case if peer is connected with vht160 or vht80+80,
-+         * we need to properly adjust rxnss parameters otherwise 
-+       * firmware will raise a assert 
-+       */
-+      switch (arg->peer_phymode) {
-+      case MODE_11AC_VHT80_80:
-+              arg->peer_bw_rxnss_override = BW_NSS_FWCONF_80_80(nss160);
-+      /* fall through */
-+      case MODE_11AC_VHT160:
-+              arg->peer_bw_rxnss_override |= BW_NSS_FWCONF_160(nss160);
-+              break;
-+      default:
-+              break;
-       }
-+
-+      ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vht peer %pM max_mpdu %d flags 0x%x peer_bw_rxnss_override 0x%x\n",
-+                 sta->addr, arg->peer_max_mpdu, arg->peer_flags, 
-+                 arg->peer_bw_rxnss_override);
- }
- static void ath10k_peer_assoc_h_qos(struct ath10k *ar,
-@@ -2697,9 +2719,9 @@ static int ath10k_peer_assoc_prepare(str
-       ath10k_peer_assoc_h_crypto(ar, vif, sta, arg);
-       ath10k_peer_assoc_h_rates(ar, vif, sta, arg);
-       ath10k_peer_assoc_h_ht(ar, vif, sta, arg);
-+      ath10k_peer_assoc_h_phymode(ar, vif, sta, arg);
-       ath10k_peer_assoc_h_vht(ar, vif, sta, arg);
-       ath10k_peer_assoc_h_qos(ar, vif, sta, arg);
--      ath10k_peer_assoc_h_phymode(ar, vif, sta, arg);
-       return 0;
- }
---- a/drivers/net/wireless/ath/ath10k/wmi.c
-+++ b/drivers/net/wireless/ath/ath10k/wmi.c
-@@ -7357,12 +7357,7 @@ ath10k_wmi_peer_assoc_fill_10_4(struct a
-       struct wmi_10_4_peer_assoc_complete_cmd *cmd = buf;
-       ath10k_wmi_peer_assoc_fill_10_2(ar, buf, arg);
--      if (arg->peer_bw_rxnss_override)
--              cmd->peer_bw_rxnss_override =
--                      __cpu_to_le32((arg->peer_bw_rxnss_override - 1) |
--                                    BIT(PEER_BW_RXNSS_OVERRIDE_OFFSET));
--      else
--              cmd->peer_bw_rxnss_override = 0;
-+      cmd->peer_bw_rxnss_override = __cpu_to_le32(arg->peer_bw_rxnss_override);
- }
- static int
---- a/drivers/net/wireless/ath/ath10k/wmi.h
-+++ b/drivers/net/wireless/ath/ath10k/wmi.h
-@@ -6357,7 +6357,19 @@ struct wmi_10_2_peer_assoc_complete_cmd
-       __le32 info0; /* WMI_PEER_ASSOC_INFO0_ */
- } __packed;
--#define PEER_BW_RXNSS_OVERRIDE_OFFSET  31
-+#define BW_NSS_FWCONF_MAP_ENABLE      BIT(31)
-+#define BW_NSS_FWCONF_MAP_160MHZ_LSB  (0)
-+#define BW_NSS_FWCONF_MAP_160MHZ_MASK (0x00000007)
-+#define BW_NSS_FWCONF_MAP_80_80MHZ_LSB        (3)
-+#define BW_NSS_FWCONF_MAP_80_80MHZ_MASK (0x00000038)
-+#define BW_NSS_FWCONF_MAP_MASK                (0x0000003F)
-+
-+#define GET_BW_NSS_FWCONF_160(x)      (MS(x, BW_NSS_FWCONF_MAP_160MHZ) + 1)
-+#define GET_BW_NSS_FWCONF_80_80(x)    (MS(x, BW_NSS_FWCONF_MAP_80_80MHZ) + 1)
-+
-+/* Values defined to set 160 MHz Bandwidth NSS Mapping into FW*/
-+#define BW_NSS_FWCONF_160(x)          (BW_NSS_FWCONF_MAP_ENABLE | SM(x - 1, BW_NSS_FWCONF_MAP_160MHZ))
-+#define BW_NSS_FWCONF_80_80(x)                (BW_NSS_FWCONF_MAP_ENABLE | SM(x - 1, BW_NSS_FWCONF_MAP_80_80MHZ))
- struct wmi_10_4_peer_assoc_complete_cmd {
-       struct wmi_10_2_peer_assoc_complete_cmd cmd;
diff --git a/package/kernel/mac80211/patches/ath/973-ath10k_fix-band_center_freq-handling-for-VHT160-in-recent-firmwares.patch b/package/kernel/mac80211/patches/ath/973-ath10k_fix-band_center_freq-handling-for-VHT160-in-recent-firmwares.patch
deleted file mode 100644 (file)
index 9a7c749..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-From: Sebastian Gottschall <s.gottschall@dd-wrt.com>
-
-starting with firmware 10.4.3.4.x series QCA changed the handling of the channel property band_center_freq1 and band_center_freq2 in vht160 operation mode
-likelly for backward compatiblity with vht80 only capable clients.
-this patch adjusts the handling to get vht160 to work again with official qca firmwares newer than 3.3
-consider that this patch will not work with older firmwares anymore. to avoid undefined behaviour this we disable vht160 capability for outdated firmwares
-Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
-
-v2: fix trailing whitespace issue and fix some typos within the commit note
----
- drivers/net/wireless/ath/ath10k/mac.c |  7 -------
- drivers/net/wireless/ath/ath10k/wmi.c | 11 ++++++++---
- 2 files changed, 8 insertions(+), 10 deletions(-)
---- a/drivers/net/wireless/ath/ath10k/mac.c
-+++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -4473,13 +4473,6 @@ static struct ieee80211_sta_vht_cap ath1
-               vht_cap.cap |= val;
-       }
--      /* Currently the firmware seems to be buggy, don't enable 80+80
--       * mode until that's resolved.
--       */
--      if ((ar->vht_cap_info & IEEE80211_VHT_CAP_SHORT_GI_160) &&
--          (ar->vht_cap_info & IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK) == 0)
--              vht_cap.cap |= IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ;
--
-       mcs_map = 0;
-       for (i = 0; i < 8; i++) {
-               if ((i < ar->num_rf_chains) && (ar->cfg_tx_chainmask & BIT(i)))
---- a/drivers/net/wireless/ath/ath10k/wmi.c
-+++ b/drivers/net/wireless/ath/ath10k/wmi.c
-@@ -1677,13 +1677,18 @@ void ath10k_wmi_put_wmi_channel(struct w
-               flags |= WMI_CHAN_FLAG_HT40_PLUS;
-       if (arg->chan_radar)
-               flags |= WMI_CHAN_FLAG_DFS;
--
-+      ch->band_center_freq2 = 0;
-       ch->mhz = __cpu_to_le32(arg->freq);
-       ch->band_center_freq1 = __cpu_to_le32(arg->band_center_freq1);
-       if (arg->mode == MODE_11AC_VHT80_80)
-               ch->band_center_freq2 = __cpu_to_le32(arg->band_center_freq2);
--      else
--              ch->band_center_freq2 = 0;
-+      if (arg->mode == MODE_11AC_VHT160)  {
-+              if (arg->freq < arg->band_center_freq1)
-+                      ch->band_center_freq1 = __cpu_to_le32(arg->band_center_freq1 - 40);
-+              else
-+                      ch->band_center_freq1 = __cpu_to_le32(arg->band_center_freq1 + 40);
-+              ch->band_center_freq2 = __cpu_to_le32(arg->band_center_freq1);
-+      }
-       ch->min_power = arg->min_power;
-       ch->max_power = arg->max_power;
-       ch->reg_power = arg->max_reg_power;
diff --git a/package/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch b/package/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch
deleted file mode 100644 (file)
index bb29489..0000000
+++ /dev/null
@@ -1,617 +0,0 @@
-From: Sebastian Gottschall <s.gottschall@newmedia-net.de>
-
-Adds LED and GPIO Control support for 988x, 9887, 9888, 99x0, 9984 based
-chipsets with on chipset connected led's using WMI Firmware API.  The LED
-device will get available named as "ath10k-phyX" at sysfs and can be controlled
-with various triggers.  adds also debugfs interface for gpio control.
-
-This patch is specific for OpenWRt base, as is use old backported package
-with old wireless source. Support for QCA9984 is removed and a simbol
-is added to local-simbol file to export the actually compile the code 
-with the ATH10K_LEDS simbol.
-
-
-Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
-Reviewed-by: Steve deRosier <derosier@cal-sierra.com>
-[kvalo: major reorg and cleanup]
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
-Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
----
-
-v13:
-
-* only compile tested!
-
-* fix all checkpatch warnings
-
-* fix commit log
-
-* sizeof(struct ath10k_gpiocontrol) -> sizeof(*gpio)
-
-* unsigned -> unsigned int
-
-* remove GPIOLIB code, that should be added in a separate patch
-
-* rename gpio.c to leds.c
-
-* add leds.h
-
-* rename some functions:
-
-  ath10k_attach_led() -> ath10k_leds_register()
-  ath10k_unregister_led() -> ath10k_leds_unregister()
-  ath10k_reset_led_pin() -> ath10k_leds_start()
-
-* call ath10k_leds_unregister() before ath10k_thermal_unregister() to preserve ordering
-
-* call ath10k_leds_start() only from ath10k_core_start() and not from mac.c
-
-* rename struct ath10k_gpiocontrol as anonymous function under struct
-  ath10k::leds, no need for memory allocation
-
-* merge ath10k_add_led() to ath10k_attach_led(), which is it's only caller
-
-* remove #if IS_ENABLED() checks from most of places, memory savings from those were not worth it
-
-* Kconfig help text improvement and move it lower in the menu, also don't enable it by default
-
-* switch to set_brightness_blocking() so that the callback can sleep,
-  then no need to use ath10k_wmi_cmd_send_nowait() and can take mutex
-  to access ar->state
-
-* don't touch ath10k_wmi_pdev_get_temperature()
-
-* as QCA6174/QCA9377 are not (yet) supported don't add the command to WMI-TLV interface
-
-* remove debugfs interface, that should be added in another patch
-
-* cleanup includes
-
-
- drivers/net/wireless/ath/ath10k/Kconfig   |  10 +++
- drivers/net/wireless/ath/ath10k/Makefile  |   1 +
- drivers/net/wireless/ath/ath10k/core.c    |  22 +++++++
- drivers/net/wireless/ath/ath10k/core.h    |   9 ++-
- drivers/net/wireless/ath/ath10k/hw.h      |   1 +
- drivers/net/wireless/ath/ath10k/leds.c    | 103 ++++++++++++++++++++++++++++++
- drivers/net/wireless/ath/ath10k/leds.h    |  45 +++++++++++++
- drivers/net/wireless/ath/ath10k/mac.c     |   1 +
- drivers/net/wireless/ath/ath10k/wmi-ops.h |  32 ++++++++++
- drivers/net/wireless/ath/ath10k/wmi-tlv.c |   2 +
- drivers/net/wireless/ath/ath10k/wmi.c     |  54 ++++++++++++++++
- drivers/net/wireless/ath/ath10k/wmi.h     |  35 ++++++++++
- 12 files changed, 314 insertions(+), 1 deletion(-)
- create mode 100644 drivers/net/wireless/ath/ath10k/leds.c
- create mode 100644 drivers/net/wireless/ath/ath10k/leds.h
---- a/drivers/net/wireless/ath/ath10k/Kconfig
-+++ b/drivers/net/wireless/ath/ath10k/Kconfig
-@@ -69,6 +69,16 @@ config ATH10K_DEBUGFS
-         If unsure, say Y to make it easier to debug problems.
-+config ATH10K_LEDS
-+      bool "Atheros ath10k LED support"
-+      depends on ATH10K
-+      select MAC80211_LEDS
-+      select LEDS_CLASS
-+      select NEW_LEDS
-+      default y
-+      ---help---
-+        This option is necessary, if you want LED support for chipset connected led pins. If unsure, say N.
-+
- config ATH10K_SPECTRAL
-       bool "Atheros ath10k spectral scan support"
-       depends on ATH10K_DEBUGFS
---- a/drivers/net/wireless/ath/ath10k/Makefile
-+++ b/drivers/net/wireless/ath/ath10k/Makefile
-@@ -19,6 +19,7 @@ ath10k_core-$(CPTCFG_ATH10K_SPECTRAL) +=
- ath10k_core-$(CPTCFG_NL80211_TESTMODE) += testmode.o
- ath10k_core-$(CPTCFG_ATH10K_TRACING) += trace.o
- ath10k_core-$(CPTCFG_ATH10K_THERMAL) += thermal.o
-+ath10k_core-$(CPTCFG_ATH10K_LEDS) += leds.o
- ath10k_core-$(CPTCFG_MAC80211_DEBUGFS) += debugfs_sta.o
- ath10k_core-$(CONFIG_PM) += wow.o
- ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o
---- a/local-symbols
-+++ b/local-symbols
-@@ -142,6 +142,7 @@ ATH10K_DEBUG=
- ATH10K_DEBUGFS=
- ATH10K_SPECTRAL=
- ATH10K_THERMAL=
-+ATH10K_LEDS=
- ATH10K_TRACING=
- ATH10K_DFS_CERTIFIED=
- WCN36XX=
---- a/drivers/net/wireless/ath/ath10k/core.c
-+++ b/drivers/net/wireless/ath/ath10k/core.c
-@@ -34,6 +34,7 @@
- #include "testmode.h"
- #include "wmi-ops.h"
- #include "coredump.h"
-+#include "leds.h"
- unsigned int ath10k_debug_mask;
- static unsigned int ath10k_cryptmode_param;
-@@ -64,6 +65,7 @@ static const struct ath10k_hw_params ath
-               .id = QCA988X_HW_2_0_VERSION,
-               .dev_id = QCA988X_2_0_DEVICE_ID,
-               .name = "qca988x hw2.0",
-+              .led_pin = 1,
-               .patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR,
-               .uart_pin = 7,
-               .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL,
-@@ -129,6 +131,7 @@ static const struct ath10k_hw_params ath
-               .id = QCA9887_HW_1_0_VERSION,
-               .dev_id = QCA9887_1_0_DEVICE_ID,
-               .name = "qca9887 hw1.0",
-+              .led_pin = 1,
-               .patch_load_addr = QCA9887_HW_1_0_PATCH_LOAD_ADDR,
-               .uart_pin = 7,
-               .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL,
-@@ -293,6 +296,7 @@ static const struct ath10k_hw_params ath
-               .id = QCA99X0_HW_2_0_DEV_VERSION,
-               .dev_id = QCA99X0_2_0_DEVICE_ID,
-               .name = "qca99x0 hw2.0",
-+              .led_pin = 17,
-               .patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR,
-               .uart_pin = 7,
-               .otp_exe_param = 0x00000700,
-@@ -331,6 +335,7 @@ static const struct ath10k_hw_params ath
-               .id = QCA9984_HW_1_0_DEV_VERSION,
-               .dev_id = QCA9984_1_0_DEVICE_ID,
-               .name = "qca9984/qca9994 hw1.0",
-+              .led_pin = 17,
-               .patch_load_addr = QCA9984_HW_1_0_PATCH_LOAD_ADDR,
-               .uart_pin = 7,
-               .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
-@@ -374,6 +379,7 @@ static const struct ath10k_hw_params ath
-               .id = QCA9888_HW_2_0_DEV_VERSION,
-               .dev_id = QCA9888_2_0_DEVICE_ID,
-               .name = "qca9888 hw2.0",
-+              .led_pin = 17,
-               .patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR,
-               .uart_pin = 7,
-               .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
-@@ -2440,6 +2446,10 @@ int ath10k_core_start(struct ath10k *ar,
-       if (status)
-               goto err_hif_stop;
-+      status = ath10k_leds_start(ar);
-+      if (status)
-+              goto err_hif_stop;
-+
-       return 0;
- err_hif_stop:
-@@ -2694,9 +2704,18 @@ static void ath10k_core_register_work(st
-               goto err_spectral_destroy;
-       }
-+      status = ath10k_leds_register(ar);
-+      if (status) {
-+              ath10k_err(ar, "could not register leds: %d\n",
-+                         status);
-+              goto err_thermal_unregister;
-+      }
-+
-       set_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags);
-       return;
-+err_thermal_unregister:
-+      ath10k_thermal_unregister(ar);
- err_spectral_destroy:
-       ath10k_spectral_destroy(ar);
- err_debug_destroy:
-@@ -2740,6 +2759,8 @@ void ath10k_core_unregister(struct ath10
-       if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags))
-               return;
-+      ath10k_leds_unregister(ar);
-+
-       ath10k_thermal_unregister(ar);
-       /* Stop spectral before unregistering from mac80211 to remove the
-        * relayfs debugfs file cleanly. Otherwise the parent debugfs tree
---- a/drivers/net/wireless/ath/ath10k/core.h
-+++ b/drivers/net/wireless/ath/ath10k/core.h
-@@ -25,6 +25,7 @@
- #include <linux/pci.h>
- #include <linux/uuid.h>
- #include <linux/time.h>
-+#include <linux/leds.h>
- #include "htt.h"
- #include "htc.h"
-@@ -908,7 +909,6 @@ struct ath10k {
-       u32 low_5ghz_chan;
-       u32 high_5ghz_chan;
-       bool ani_enabled;
--
-       bool p2p;
-       struct {
-@@ -1099,6 +1099,13 @@ struct ath10k {
-       } testmode;
-       struct {
-+              struct gpio_led wifi_led;
-+              struct led_classdev cdev;
-+              char label[48];
-+              u32 gpio_state_pin;
-+      } leds;
-+
-+      struct {
-               /* protected by data_lock */
-               u32 fw_crash_counter;
-               u32 fw_warm_reset_counter;
---- a/drivers/net/wireless/ath/ath10k/hw.h
-+++ b/drivers/net/wireless/ath/ath10k/hw.h
-@@ -504,6 +504,7 @@ struct ath10k_hw_params {
-       const char *name;
-       u32 patch_load_addr;
-       int uart_pin;
-+      int led_pin;
-       u32 otp_exe_param;
-       /* Type of hw cycle counter wraparound logic, for more info
---- /dev/null
-+++ b/drivers/net/wireless/ath/ath10k/leds.c
-@@ -0,0 +1,103 @@
-+/*
-+ * Copyright (c) 2005-2011 Atheros Communications Inc.
-+ * Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
-+ * Copyright (c) 2018 Sebastian Gottschall <s.gottschall@dd-wrt.com>
-+ * Copyright (c) 2018, The Linux Foundation. All rights reserved.
-+ *
-+ * Permission to use, copy, modify, and/or distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-+ */
-+
-+#include <linux/leds.h>
-+
-+#include "core.h"
-+#include "wmi.h"
-+#include "wmi-ops.h"
-+
-+#include "leds.h"
-+
-+static int ath10k_leds_set_brightness_blocking(struct led_classdev *led_cdev,
-+                                             enum led_brightness brightness)
-+{
-+      struct ath10k *ar = container_of(led_cdev, struct ath10k,
-+                                       leds.cdev);
-+      struct gpio_led *led = &ar->leds.wifi_led;
-+
-+      mutex_lock(&ar->conf_mutex);
-+
-+      if (ar->state != ATH10K_STATE_ON)
-+              goto out;
-+
-+      ar->leds.gpio_state_pin = (brightness != LED_OFF) ^ led->active_low;
-+      ath10k_wmi_gpio_output(ar, led->gpio, ar->leds.gpio_state_pin);
-+
-+out:
-+      mutex_unlock(&ar->conf_mutex);
-+
-+      return 0;
-+}
-+
-+int ath10k_leds_start(struct ath10k *ar)
-+{
-+      if (ar->hw_params.led_pin == 0)
-+              /* leds not supported */
-+              return 0;
-+
-+      /* under some circumstances, the gpio pin gets reconfigured
-+       * to default state by the firmware, so we need to
-+       * reconfigure it this behaviour has only ben seen on
-+       * QCA9984 and QCA99XX devices so far
-+       */
-+      ath10k_wmi_gpio_config(ar, ar->hw_params.led_pin, 0,
-+                             WMI_GPIO_PULL_NONE, WMI_GPIO_INTTYPE_DISABLE);
-+      ath10k_wmi_gpio_output(ar, ar->hw_params.led_pin, 1);
-+
-+      return 0;
-+}
-+
-+int ath10k_leds_register(struct ath10k *ar)
-+{
-+      int ret;
-+
-+      if (ar->hw_params.led_pin == 0)
-+              /* leds not supported */
-+              return 0;
-+
-+      snprintf(ar->leds.label, sizeof(ar->leds.label), "ath10k-%s",
-+               wiphy_name(ar->hw->wiphy));
-+      ar->leds.wifi_led.active_low = 1;
-+      ar->leds.wifi_led.gpio = ar->hw_params.led_pin;
-+      ar->leds.wifi_led.name = ar->leds.label;
-+      ar->leds.wifi_led.default_state = LEDS_GPIO_DEFSTATE_KEEP;
-+
-+      ar->leds.cdev.name = ar->leds.label;
-+      ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking;
-+
-+      /* FIXME: this assignment doesn't make sense as it's NULL, remove it? */
-+      ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger;
-+
-+      ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev);
-+      if (ret)
-+              return ret;
-+
-+      return 0;
-+}
-+
-+void ath10k_leds_unregister(struct ath10k *ar)
-+{
-+      if (ar->hw_params.led_pin == 0)
-+              /* leds not supported */
-+              return;
-+
-+      led_classdev_unregister(&ar->leds.cdev);
-+}
-+
---- /dev/null
-+++ b/drivers/net/wireless/ath/ath10k/leds.h
-@@ -0,0 +1,41 @@
-+/*
-+ * Copyright (c) 2018, The Linux Foundation. All rights reserved.
-+ *
-+ * Permission to use, copy, modify, and/or distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-+ */
-+#ifndef _LEDS_H_
-+#define _LEDS_H_
-+
-+#include "core.h"
-+
-+#ifdef CPTCFG_ATH10K_LEDS
-+void ath10k_leds_unregister(struct ath10k *ar);
-+int ath10k_leds_start(struct ath10k *ar);
-+int ath10k_leds_register(struct ath10k *ar);
-+#else
-+static inline void ath10k_leds_unregister(struct ath10k *ar)
-+{
-+}
-+
-+static inline int ath10k_leds_start(struct ath10k *ar)
-+{
-+      return 0;
-+}
-+
-+static inline int ath10k_leds_register(struct ath10k *ar)
-+{
-+      return 0;
-+}
-+
-+#endif
-+#endif /* _LEDS_H_ */
---- a/drivers/net/wireless/ath/ath10k/mac.c
-+++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -33,6 +33,7 @@
- #include "wmi-tlv.h"
- #include "wmi-ops.h"
- #include "wow.h"
-+#include "leds.h"
- /*********/
- /* Rates */
---- a/drivers/net/wireless/ath/ath10k/wmi-ops.h
-+++ b/drivers/net/wireless/ath/ath10k/wmi-ops.h
-@@ -216,7 +216,10 @@ struct wmi_ops {
-       struct sk_buff *(*gen_echo)(struct ath10k *ar, u32 value);
-       struct sk_buff *(*gen_pdev_get_tpc_table_cmdid)(struct ath10k *ar,
-                                                       u32 param);
-+      struct sk_buff *(*gen_gpio_config)(struct ath10k *ar, u32 gpio_num,
-+                                         u32 input, u32 pull_type, u32 intr_mode);
-+      struct sk_buff *(*gen_gpio_output)(struct ath10k *ar, u32 gpio_num, u32 set);
- };
- int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id);
-@@ -1054,6 +1057,35 @@ ath10k_wmi_force_fw_hang(struct ath10k *
-       return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->force_fw_hang_cmdid);
- }
-+static inline int ath10k_wmi_gpio_config(struct ath10k *ar, u32 gpio_num,
-+                                       u32 input, u32 pull_type, u32 intr_mode)
-+{
-+      struct sk_buff *skb;
-+
-+      if (!ar->wmi.ops->gen_gpio_config)
-+              return -EOPNOTSUPP;
-+
-+      skb = ar->wmi.ops->gen_gpio_config(ar, gpio_num, input, pull_type, intr_mode);
-+      if (IS_ERR(skb))
-+              return PTR_ERR(skb);
-+
-+      return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->gpio_config_cmdid);
-+}
-+
-+static inline int ath10k_wmi_gpio_output(struct ath10k *ar, u32 gpio_num, u32 set)
-+{
-+      struct sk_buff *skb;
-+
-+      if (!ar->wmi.ops->gen_gpio_config)
-+              return -EOPNOTSUPP;
-+
-+      skb = ar->wmi.ops->gen_gpio_output(ar, gpio_num, set);
-+      if (IS_ERR(skb))
-+              return PTR_ERR(skb);
-+
-+      return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->gpio_output_cmdid);
-+}
-+
- static inline int
- ath10k_wmi_dbglog_cfg(struct ath10k *ar, u64 module_enable, u32 log_level)
- {
---- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
-+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
-@@ -3976,6 +3976,8 @@ static const struct wmi_ops wmi_tlv_ops
-       .gen_echo = ath10k_wmi_tlv_op_gen_echo,
-       .gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf,
-       .gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable,
-+      /* .gen_gpio_config not implemented */
-+      /* .gen_gpio_output not implemented */
- };
- static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = {
---- a/drivers/net/wireless/ath/ath10k/wmi.c
-+++ b/drivers/net/wireless/ath/ath10k/wmi.c
-@@ -7177,6 +7177,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
-       return skb;
- }
-+static struct sk_buff *ath10k_wmi_op_gen_gpio_config(struct ath10k *ar,
-+                                                   u32 gpio_num, u32 input,
-+                                                   u32 pull_type, u32 intr_mode)
-+{
-+      struct wmi_gpio_config_cmd *cmd;
-+      struct sk_buff *skb;
-+
-+      skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd));
-+      if (!skb)
-+              return ERR_PTR(-ENOMEM);
-+
-+      cmd = (struct wmi_gpio_config_cmd *)skb->data;
-+      cmd->pull_type = __cpu_to_le32(pull_type);
-+      cmd->gpio_num = __cpu_to_le32(gpio_num);
-+      cmd->input = __cpu_to_le32(input);
-+      cmd->intr_mode = __cpu_to_le32(intr_mode);
-+
-+      ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi gpio_config gpio_num 0x%08x input 0x%08x pull_type 0x%08x intr_mode 0x%08x\n",
-+                 gpio_num, input, pull_type, intr_mode);
-+
-+      return skb;
-+}
-+
-+static struct sk_buff *ath10k_wmi_op_gen_gpio_output(struct ath10k *ar,
-+                                                   u32 gpio_num, u32 set)
-+{
-+      struct wmi_gpio_output_cmd *cmd;
-+      struct sk_buff *skb;
-+
-+      skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd));
-+      if (!skb)
-+              return ERR_PTR(-ENOMEM);
-+
-+      cmd = (struct wmi_gpio_output_cmd *)skb->data;
-+      cmd->gpio_num = __cpu_to_le32(gpio_num);
-+      cmd->set = __cpu_to_le32(set);
-+
-+      ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi gpio_output gpio_num 0x%08x set 0x%08x\n",
-+                 gpio_num, set);
-+
-+      return skb;
-+}
-+
- static struct sk_buff *
- ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id,
-                            enum wmi_sta_ps_mode psmode)
-@@ -8788,6 +8831,9 @@ static const struct wmi_ops wmi_ops = {
-       .fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill,
-       .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
-       .gen_echo = ath10k_wmi_op_gen_echo,
-+      .gen_gpio_config = ath10k_wmi_op_gen_gpio_config,
-+      .gen_gpio_output = ath10k_wmi_op_gen_gpio_output,
-+
-       /* .gen_bcn_tmpl not implemented */
-       /* .gen_prb_tmpl not implemented */
-       /* .gen_p2p_go_bcn_ie not implemented */
-@@ -8858,6 +8904,8 @@ static const struct wmi_ops wmi_10_1_ops
-       .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
-       .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
-       .gen_echo = ath10k_wmi_op_gen_echo,
-+      .gen_gpio_config = ath10k_wmi_op_gen_gpio_config,
-+      .gen_gpio_output = ath10k_wmi_op_gen_gpio_output,
-       /* .gen_bcn_tmpl not implemented */
-       /* .gen_prb_tmpl not implemented */
-       /* .gen_p2p_go_bcn_ie not implemented */
-@@ -8929,6 +8977,8 @@ static const struct wmi_ops wmi_10_2_ops
-       .gen_delba_send = ath10k_wmi_op_gen_delba_send,
-       .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
-       .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
-+      .gen_gpio_config = ath10k_wmi_op_gen_gpio_config,
-+      .gen_gpio_output = ath10k_wmi_op_gen_gpio_output,
-       /* .gen_pdev_enable_adaptive_cca not implemented */
- };
-@@ -8999,6 +9049,8 @@ static const struct wmi_ops wmi_10_2_4_o
-       .gen_pdev_enable_adaptive_cca =
-               ath10k_wmi_op_gen_pdev_enable_adaptive_cca,
-       .get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype,
-+      .gen_gpio_config = ath10k_wmi_op_gen_gpio_config,
-+      .gen_gpio_output = ath10k_wmi_op_gen_gpio_output,
-       /* .gen_bcn_tmpl not implemented */
-       /* .gen_prb_tmpl not implemented */
-       /* .gen_p2p_go_bcn_ie not implemented */
-@@ -9078,6 +9130,8 @@ static const struct wmi_ops wmi_10_4_ops
-       .gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info,
-       .gen_echo = ath10k_wmi_op_gen_echo,
-       .gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config,
-+      .gen_gpio_config = ath10k_wmi_op_gen_gpio_config,
-+      .gen_gpio_output = ath10k_wmi_op_gen_gpio_output,
- };
- int ath10k_wmi_attach(struct ath10k *ar)
---- a/drivers/net/wireless/ath/ath10k/wmi.h
-+++ b/drivers/net/wireless/ath/ath10k/wmi.h
-@@ -2942,6 +2942,41 @@ enum wmi_10_4_feature_mask {
- };
-+/* WMI_GPIO_CONFIG_CMDID */
-+enum {
-+      WMI_GPIO_PULL_NONE,
-+      WMI_GPIO_PULL_UP,
-+      WMI_GPIO_PULL_DOWN,
-+};
-+
-+enum {
-+      WMI_GPIO_INTTYPE_DISABLE,
-+      WMI_GPIO_INTTYPE_RISING_EDGE,
-+      WMI_GPIO_INTTYPE_FALLING_EDGE,
-+      WMI_GPIO_INTTYPE_BOTH_EDGE,
-+      WMI_GPIO_INTTYPE_LEVEL_LOW,
-+      WMI_GPIO_INTTYPE_LEVEL_HIGH
-+};
-+
-+/* WMI_GPIO_CONFIG_CMDID */
-+struct wmi_gpio_config_cmd {
-+      __le32 gpio_num;             /* GPIO number to be setup */
-+      __le32 input;                /* 0 - Output/ 1 - Input */
-+      __le32 pull_type;            /* Pull type defined above */
-+      __le32 intr_mode;            /* Interrupt mode defined above (Input) */
-+} __packed;
-+
-+/* WMI_GPIO_OUTPUT_CMDID */
-+struct wmi_gpio_output_cmd {
-+      __le32 gpio_num;    /* GPIO number to be setup */
-+      __le32 set;         /* Set the GPIO pin*/
-+} __packed;
-+
-+/* WMI_GPIO_INPUT_EVENTID */
-+struct wmi_gpio_input_event {
-+      __le32 gpio_num;    /* GPIO number which changed state */
-+} __packed;
-+
- struct wmi_ext_resource_config_10_4_cmd {
-       /* contains enum wmi_host_platform_type */
-       __le32 host_platform_config;
diff --git a/package/kernel/mac80211/patches/ath/975-ath10k-use-tpt-trigger-by-default.patch b/package/kernel/mac80211/patches/ath/975-ath10k-use-tpt-trigger-by-default.patch
deleted file mode 100644 (file)
index dfe2829..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-From 79c9d7aabae1d1da9eea97d83b61e1517a8a2221 Mon Sep 17 00:00:00 2001
-From: Mathias Kresin <dev@kresin.me>
-Date: Fri, 22 Jun 2018 18:59:44 +0200
-Subject: [PATCH] ath10k: use tpt LED trigger by default
-
-Use the tpt LED trigger for each created phy led. Ths way LEDs attached
-to the ath10k GPIO pins are indicating the phy status and blink on
-traffic.
-
-Signed-off-by: Mathias Kresin <dev@kresin.me>
----
- drivers/net/wireless/ath/ath10k/core.h | 4 ++++
- drivers/net/wireless/ath/ath10k/leds.c | 4 +---
- drivers/net/wireless/ath/ath10k/mac.c  | 2 +-
- 3 files changed, 6 insertions(+), 4 deletions(-)
-
---- a/drivers/net/wireless/ath/ath10k/core.h
-+++ b/drivers/net/wireless/ath/ath10k/core.h
-@@ -1144,6 +1144,10 @@ struct ath10k {
-       struct ath10k_radar_found_info last_radar_info;
-       struct work_struct radar_confirmation_work;
-+#ifdef CPTCFG_MAC80211_LEDS
-+      const char *led_default_trigger;
-+#endif
-+
-       /* must be last */
-       u8 drv_priv[0] __aligned(sizeof(void *));
- };
---- a/drivers/net/wireless/ath/ath10k/leds.c
-+++ b/drivers/net/wireless/ath/ath10k/leds.c
-@@ -81,9 +81,7 @@ int ath10k_leds_register(struct ath10k *
-       ar->leds.cdev.name = ar->leds.label;
-       ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking;
--
--      /* FIXME: this assignment doesn't make sense as it's NULL, remove it? */
--      ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger;
-+      ar->leds.cdev.default_trigger = ar->led_default_trigger;
-       ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev);
-       if (ret)
---- a/drivers/net/wireless/ath/ath10k/mac.c
-+++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -8603,7 +8603,7 @@ int ath10k_mac_register(struct ath10k *a
-       wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
- #ifdef CPTCFG_MAC80211_LEDS
--      ieee80211_create_tpt_led_trigger(ar->hw,
-+      ar->led_default_trigger = ieee80211_create_tpt_led_trigger(ar->hw,
-               IEEE80211_TPT_LEDTRIG_FL_RADIO, ath10k_tpt_blink,
-               ARRAY_SIZE(ath10k_tpt_blink));
- #endif
diff --git a/package/kernel/mac80211/patches/ath/976-ath10k-Limit-available-channels-via-DT-ieee80211-fre.patch b/package/kernel/mac80211/patches/ath/976-ath10k-Limit-available-channels-via-DT-ieee80211-fre.patch
deleted file mode 100644 (file)
index 260c0c7..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-From bbf0a8af2261bc7ae39b227ff6a1e9f45a008c27 Mon Sep 17 00:00:00 2001
-From: Sven Eckelmann <sven.eckelmann@openmesh.com>
-Date: Mon, 30 Jul 2018 17:31:41 +0200
-Subject: [PATCH] ath10k: Limit available channels via DT ieee80211-freq-limit
-
-Tri-band devices (1x 2.4GHz + 2x 5GHz) often incorporate special filters in
-the RX and TX path. These filtered channel can in theory still be used by
-the hardware but the signal strength is reduced so much that it makes no
-sense.
-
-There is already a DT property to limit the available channels but ath10k
-has to manually call this functionality to limit the currrently set wiphy
-channels further.
-
-Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
-
-Forwarded: https://patchwork.kernel.org/patch/10549245/
----
- drivers/net/wireless/ath/ath10k/mac.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/net/wireless/ath/ath10k/mac.c
-+++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -18,6 +18,7 @@
- #include "mac.h"
-+#include <net/cfg80211.h>
- #include <net/mac80211.h>
- #include <linux/etherdevice.h>
- #include <linux/acpi.h>
-@@ -8390,6 +8391,7 @@ int ath10k_mac_register(struct ath10k *a
-               ar->hw->wiphy->bands[NL80211_BAND_5GHZ] = band;
-       }
-+      wiphy_read_of_freq_limits(ar->hw->wiphy);
-       ath10k_mac_setup_ht_vht_cap(ar);
-       ar->hw->wiphy->interface_modes =
index 1d4bf12652f64a9acacaca98b2d879c77767f5f6..06636060f7722cfcc366376d7838dfc027b20cd7 100644 (file)
@@ -1,6 +1,6 @@
 --- a/local-symbols
 +++ b/local-symbols
-@@ -395,43 +395,6 @@ USB_IPHETH=
+@@ -396,43 +396,6 @@ USB_IPHETH=
  USB_SIERRA_NET=
  USB_VL600=
  USB_NET_CH9200=
        select BRCMUTIL
 --- a/Kconfig.local
 +++ b/Kconfig.local
-@@ -1189,117 +1189,6 @@ config BACKPORTED_USB_VL600
+@@ -1192,117 +1192,6 @@ config BACKPORTED_USB_VL600
  config BACKPORTED_USB_NET_CH9200
        tristate
        default USB_NET_CH9200
diff --git a/package/kernel/mac80211/patches/rt2x00/001-rt2x00-use-simple_read_from_buffer.patch b/package/kernel/mac80211/patches/rt2x00/001-rt2x00-use-simple_read_from_buffer.patch
new file mode 100644 (file)
index 0000000..1319cc2
--- /dev/null
@@ -0,0 +1,59 @@
+From f483039cf51acf30494cd754194562c22cf98764 Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Wed, 22 Aug 2018 13:41:26 +0300
+Subject: [PATCH 01/28] rt2x00: use simple_read_from_buffer()
+
+The problem with this copy_to_user() calls is that they don't ensure
+that "size" is less than the "length" which the user provided.
+
+Obviously, this is debugfs and "size" is normally going to be very small
+so it probably doesn't matter, but this is the correct thing to do.
+
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ .../net/wireless/ralink/rt2x00/rt2x00debug.c   | 18 +++---------------
+ 1 file changed, 3 insertions(+), 15 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
+@@ -464,11 +464,7 @@ static ssize_t rt2x00debug_read_##__name
+                                                               \
+       size = sprintf(line, __format, value);                  \
+                                                               \
+-      if (copy_to_user(buf, line, size))                      \
+-              return -EFAULT;                                 \
+-                                                              \
+-      *offset += size;                                        \
+-      return size;                                            \
++      return simple_read_from_buffer(buf, length, offset, line, size); \
+ }
+ #define RT2X00DEBUGFS_OPS_WRITE(__name, __type)                       \
+@@ -545,11 +541,7 @@ static ssize_t rt2x00debug_read_dev_flag
+       size = sprintf(line, "0x%.8x\n", (unsigned int)intf->rt2x00dev->flags);
+-      if (copy_to_user(buf, line, size))
+-              return -EFAULT;
+-
+-      *offset += size;
+-      return size;
++      return simple_read_from_buffer(buf, length, offset, line, size);
+ }
+ static const struct file_operations rt2x00debug_fop_dev_flags = {
+@@ -574,11 +566,7 @@ static ssize_t rt2x00debug_read_cap_flag
+       size = sprintf(line, "0x%.8x\n", (unsigned int)intf->rt2x00dev->cap_flags);
+-      if (copy_to_user(buf, line, size))
+-              return -EFAULT;
+-
+-      *offset += size;
+-      return size;
++      return simple_read_from_buffer(buf, length, offset, line, size);
+ }
+ static const struct file_operations rt2x00debug_fop_cap_flags = {
diff --git a/package/kernel/mac80211/patches/rt2x00/002-rt2800-move-usb-specific-txdone-txstatus-routines-to.patch b/package/kernel/mac80211/patches/rt2x00/002-rt2800-move-usb-specific-txdone-txstatus-routines-to.patch
new file mode 100644 (file)
index 0000000..a883258
--- /dev/null
@@ -0,0 +1,357 @@
+From 5c656c71b1bf5611ce8262bab338104e04d10b8d Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Wed, 26 Sep 2018 12:24:53 +0200
+Subject: [PATCH 02/28] rt2800: move usb specific txdone/txstatus routines to
+ rt2800lib
+
+In order to reuse usb txdone/txstatus routines for mmio, move them
+to common rt2800lib.c file.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ .../net/wireless/ralink/rt2x00/rt2800lib.c    | 138 +++++++++++++++++
+ .../net/wireless/ralink/rt2x00/rt2800lib.h    |   3 +
+ .../net/wireless/ralink/rt2x00/rt2800usb.c    | 143 +-----------------
+ 3 files changed, 145 insertions(+), 139 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -957,6 +957,47 @@ static void rt2800_rate_from_status(stru
+       skbdesc->tx_rate_flags = flags;
+ }
++static bool rt2800_txdone_entry_check(struct queue_entry *entry, u32 reg)
++{
++      __le32 *txwi;
++      u32 word;
++      int wcid, ack, pid;
++      int tx_wcid, tx_ack, tx_pid, is_agg;
++
++      /*
++       * This frames has returned with an IO error,
++       * so the status report is not intended for this
++       * frame.
++       */
++      if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags))
++              return false;
++
++      wcid    = rt2x00_get_field32(reg, TX_STA_FIFO_WCID);
++      ack     = rt2x00_get_field32(reg, TX_STA_FIFO_TX_ACK_REQUIRED);
++      pid     = rt2x00_get_field32(reg, TX_STA_FIFO_PID_TYPE);
++      is_agg  = rt2x00_get_field32(reg, TX_STA_FIFO_TX_AGGRE);
++
++      /*
++       * Validate if this TX status report is intended for
++       * this entry by comparing the WCID/ACK/PID fields.
++       */
++      txwi = rt2800_drv_get_txwi(entry);
++
++      word = rt2x00_desc_read(txwi, 1);
++      tx_wcid = rt2x00_get_field32(word, TXWI_W1_WIRELESS_CLI_ID);
++      tx_ack  = rt2x00_get_field32(word, TXWI_W1_ACK);
++      tx_pid  = rt2x00_get_field32(word, TXWI_W1_PACKETID);
++
++      if (wcid != tx_wcid || ack != tx_ack || (!is_agg && pid != tx_pid)) {
++              rt2x00_dbg(entry->queue->rt2x00dev,
++                         "TX status report missed for queue %d entry %d\n",
++                         entry->queue->qid, entry->entry_idx);
++              return false;
++      }
++
++      return true;
++}
++
+ void rt2800_txdone_entry(struct queue_entry *entry, u32 status, __le32 *txwi,
+                        bool match)
+ {
+@@ -1059,6 +1100,103 @@ void rt2800_txdone_entry(struct queue_en
+ }
+ EXPORT_SYMBOL_GPL(rt2800_txdone_entry);
++void rt2800_txdone(struct rt2x00_dev *rt2x00dev)
++{
++      struct data_queue *queue;
++      struct queue_entry *entry;
++      u32 reg;
++      u8 qid;
++      bool match;
++
++      while (kfifo_get(&rt2x00dev->txstatus_fifo, &reg)) {
++              /*
++               * TX_STA_FIFO_PID_QUEUE is a 2-bit field, thus qid is
++               * guaranteed to be one of the TX QIDs .
++               */
++              qid = rt2x00_get_field32(reg, TX_STA_FIFO_PID_QUEUE);
++              queue = rt2x00queue_get_tx_queue(rt2x00dev, qid);
++
++              if (unlikely(rt2x00queue_empty(queue))) {
++                      rt2x00_dbg(rt2x00dev, "Got TX status for an empty queue %u, dropping\n",
++                                 qid);
++                      break;
++              }
++
++              entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
++
++              if (unlikely(test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags) ||
++                           !test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))) {
++                      rt2x00_warn(rt2x00dev, "Data pending for entry %u in queue %u\n",
++                                  entry->entry_idx, qid);
++                      break;
++              }
++
++              match = rt2800_txdone_entry_check(entry, reg);
++              rt2800_txdone_entry(entry, reg, rt2800_drv_get_txwi(entry), match);
++      }
++}
++EXPORT_SYMBOL_GPL(rt2800_txdone);
++
++static inline bool rt2800_entry_txstatus_timeout(struct queue_entry *entry)
++{
++      bool tout;
++
++      if (!test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))
++              return false;
++
++      tout = time_after(jiffies, entry->last_action + msecs_to_jiffies(500));
++      if (unlikely(tout))
++              rt2x00_dbg(entry->queue->rt2x00dev,
++                         "TX status timeout for entry %d in queue %d\n",
++                         entry->entry_idx, entry->queue->qid);
++      return tout;
++
++}
++
++bool rt2800_txstatus_timeout(struct rt2x00_dev *rt2x00dev)
++{
++      struct data_queue *queue;
++      struct queue_entry *entry;
++
++      tx_queue_for_each(rt2x00dev, queue) {
++              entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
++              if (rt2800_entry_txstatus_timeout(entry))
++                      return true;
++      }
++      return false;
++}
++EXPORT_SYMBOL_GPL(rt2800_txstatus_timeout);
++
++void rt2800_txdone_nostatus(struct rt2x00_dev *rt2x00dev)
++{
++      struct data_queue *queue;
++      struct queue_entry *entry;
++
++      /*
++       * Process any trailing TX status reports for IO failures,
++       * we loop until we find the first non-IO error entry. This
++       * can either be a frame which is free, is being uploaded,
++       * or has completed the upload but didn't have an entry
++       * in the TX_STAT_FIFO register yet.
++       */
++      tx_queue_for_each(rt2x00dev, queue) {
++              while (!rt2x00queue_empty(queue)) {
++                      entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
++
++                      if (test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags) ||
++                          !test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))
++                              break;
++
++                      if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags) ||
++                          rt2800_entry_txstatus_timeout(entry))
++                              rt2x00lib_txdone_noinfo(entry, TXDONE_FAILURE);
++                      else
++                              break;
++              }
++      }
++}
++EXPORT_SYMBOL_GPL(rt2800_txdone_nostatus);
++
+ static unsigned int rt2800_hw_beacon_base(struct rt2x00_dev *rt2x00dev,
+                                         unsigned int index)
+ {
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
+@@ -195,6 +195,9 @@ void rt2800_process_rxwi(struct queue_en
+ void rt2800_txdone_entry(struct queue_entry *entry, u32 status, __le32 *txwi,
+                        bool match);
++void rt2800_txdone(struct rt2x00_dev *rt2x00dev);
++void rt2800_txdone_nostatus(struct rt2x00_dev *rt2x00dev);
++bool rt2800_txstatus_timeout(struct rt2x00_dev *rt2x00dev);
+ void rt2800_write_beacon(struct queue_entry *entry, struct txentry_desc *txdesc);
+ void rt2800_clear_beacon(struct queue_entry *entry);
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
+@@ -116,35 +116,6 @@ static bool rt2800usb_txstatus_pending(s
+       return false;
+ }
+-static inline bool rt2800usb_entry_txstatus_timeout(struct queue_entry *entry)
+-{
+-      bool tout;
+-
+-      if (!test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))
+-              return false;
+-
+-      tout = time_after(jiffies, entry->last_action + msecs_to_jiffies(500));
+-      if (unlikely(tout))
+-              rt2x00_dbg(entry->queue->rt2x00dev,
+-                         "TX status timeout for entry %d in queue %d\n",
+-                         entry->entry_idx, entry->queue->qid);
+-      return tout;
+-
+-}
+-
+-static bool rt2800usb_txstatus_timeout(struct rt2x00_dev *rt2x00dev)
+-{
+-      struct data_queue *queue;
+-      struct queue_entry *entry;
+-
+-      tx_queue_for_each(rt2x00dev, queue) {
+-              entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
+-              if (rt2800usb_entry_txstatus_timeout(entry))
+-                      return true;
+-      }
+-      return false;
+-}
+-
+ #define TXSTATUS_READ_INTERVAL 1000000
+ static bool rt2800usb_tx_sta_fifo_read_completed(struct rt2x00_dev *rt2x00dev,
+@@ -171,7 +142,7 @@ static bool rt2800usb_tx_sta_fifo_read_c
+       }
+       /* Check if there is any entry that timedout waiting on TX status */
+-      if (rt2800usb_txstatus_timeout(rt2x00dev))
++      if (rt2800_txstatus_timeout(rt2x00dev))
+               queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work);
+       if (rt2800usb_txstatus_pending(rt2x00dev)) {
+@@ -501,123 +472,17 @@ static int rt2800usb_get_tx_data_len(str
+ /*
+  * TX control handlers
+  */
+-static bool rt2800usb_txdone_entry_check(struct queue_entry *entry, u32 reg)
+-{
+-      __le32 *txwi;
+-      u32 word;
+-      int wcid, ack, pid;
+-      int tx_wcid, tx_ack, tx_pid, is_agg;
+-
+-      /*
+-       * This frames has returned with an IO error,
+-       * so the status report is not intended for this
+-       * frame.
+-       */
+-      if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags))
+-              return false;
+-
+-      wcid    = rt2x00_get_field32(reg, TX_STA_FIFO_WCID);
+-      ack     = rt2x00_get_field32(reg, TX_STA_FIFO_TX_ACK_REQUIRED);
+-      pid     = rt2x00_get_field32(reg, TX_STA_FIFO_PID_TYPE);
+-      is_agg  = rt2x00_get_field32(reg, TX_STA_FIFO_TX_AGGRE);
+-
+-      /*
+-       * Validate if this TX status report is intended for
+-       * this entry by comparing the WCID/ACK/PID fields.
+-       */
+-      txwi = rt2800usb_get_txwi(entry);
+-
+-      word = rt2x00_desc_read(txwi, 1);
+-      tx_wcid = rt2x00_get_field32(word, TXWI_W1_WIRELESS_CLI_ID);
+-      tx_ack  = rt2x00_get_field32(word, TXWI_W1_ACK);
+-      tx_pid  = rt2x00_get_field32(word, TXWI_W1_PACKETID);
+-
+-      if (wcid != tx_wcid || ack != tx_ack || (!is_agg && pid != tx_pid)) {
+-              rt2x00_dbg(entry->queue->rt2x00dev,
+-                         "TX status report missed for queue %d entry %d\n",
+-                         entry->queue->qid, entry->entry_idx);
+-              return false;
+-      }
+-
+-      return true;
+-}
+-
+-static void rt2800usb_txdone(struct rt2x00_dev *rt2x00dev)
+-{
+-      struct data_queue *queue;
+-      struct queue_entry *entry;
+-      u32 reg;
+-      u8 qid;
+-      bool match;
+-
+-      while (kfifo_get(&rt2x00dev->txstatus_fifo, &reg)) {
+-              /*
+-               * TX_STA_FIFO_PID_QUEUE is a 2-bit field, thus qid is
+-               * guaranteed to be one of the TX QIDs .
+-               */
+-              qid = rt2x00_get_field32(reg, TX_STA_FIFO_PID_QUEUE);
+-              queue = rt2x00queue_get_tx_queue(rt2x00dev, qid);
+-
+-              if (unlikely(rt2x00queue_empty(queue))) {
+-                      rt2x00_dbg(rt2x00dev, "Got TX status for an empty queue %u, dropping\n",
+-                                 qid);
+-                      break;
+-              }
+-
+-              entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
+-
+-              if (unlikely(test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags) ||
+-                           !test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))) {
+-                      rt2x00_warn(rt2x00dev, "Data pending for entry %u in queue %u\n",
+-                                  entry->entry_idx, qid);
+-                      break;
+-              }
+-
+-              match = rt2800usb_txdone_entry_check(entry, reg);
+-              rt2800_txdone_entry(entry, reg, rt2800usb_get_txwi(entry), match);
+-      }
+-}
+-
+-static void rt2800usb_txdone_nostatus(struct rt2x00_dev *rt2x00dev)
+-{
+-      struct data_queue *queue;
+-      struct queue_entry *entry;
+-
+-      /*
+-       * Process any trailing TX status reports for IO failures,
+-       * we loop until we find the first non-IO error entry. This
+-       * can either be a frame which is free, is being uploaded,
+-       * or has completed the upload but didn't have an entry
+-       * in the TX_STAT_FIFO register yet.
+-       */
+-      tx_queue_for_each(rt2x00dev, queue) {
+-              while (!rt2x00queue_empty(queue)) {
+-                      entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
+-
+-                      if (test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags) ||
+-                          !test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))
+-                              break;
+-
+-                      if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags) ||
+-                          rt2800usb_entry_txstatus_timeout(entry))
+-                              rt2x00lib_txdone_noinfo(entry, TXDONE_FAILURE);
+-                      else
+-                              break;
+-              }
+-      }
+-}
+-
+ static void rt2800usb_work_txdone(struct work_struct *work)
+ {
+       struct rt2x00_dev *rt2x00dev =
+           container_of(work, struct rt2x00_dev, txdone_work);
+       while (!kfifo_is_empty(&rt2x00dev->txstatus_fifo) ||
+-             rt2800usb_txstatus_timeout(rt2x00dev)) {
++             rt2800_txstatus_timeout(rt2x00dev)) {
+-              rt2800usb_txdone(rt2x00dev);
++              rt2800_txdone(rt2x00dev);
+-              rt2800usb_txdone_nostatus(rt2x00dev);
++              rt2800_txdone_nostatus(rt2x00dev);
+               /*
+                * The hw may delay sending the packet after DMA complete
diff --git a/package/kernel/mac80211/patches/rt2x00/003-rt2800mmio-use-txdone-txstatus-routines-from-lib.patch b/package/kernel/mac80211/patches/rt2x00/003-rt2800mmio-use-txdone-txstatus-routines-from-lib.patch
new file mode 100644 (file)
index 0000000..48f0c27
--- /dev/null
@@ -0,0 +1,244 @@
+From 0b0d556e0ebb6c966bc993e21a22a156812d8fdf Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Wed, 26 Sep 2018 12:24:54 +0200
+Subject: [PATCH 03/28] rt2800mmio: use txdone/txstatus routines from lib
+
+Use usb txdone/txstatus routines (now in rt2800libc) for mmio devices.
+
+Note this also change how we handle INT_SOURCE_CSR_TX_FIFO_STATUS
+interrupt. Now it is disabled since IRQ routine till end of the txstatus
+tasklet (the same behaviour like others interrupts). Reason to do not
+disable this interrupt was not to miss any tx status from 16 entries
+FIFO register. Now, since we check for tx status timeout, we can
+allow to miss some tx statuses. However this will be improved in further
+patch where I also implement read status FIFO register in the tasklet.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ .../net/wireless/ralink/rt2x00/rt2800mmio.c   | 180 +-----------------
+ .../net/wireless/ralink/rt2x00/rt2x00queue.c  |   1 +
+ 2 files changed, 9 insertions(+), 172 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
+@@ -175,161 +175,6 @@ static void rt2800mmio_wakeup(struct rt2
+       rt2800_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS);
+ }
+-static bool rt2800mmio_txdone_entry_check(struct queue_entry *entry, u32 status)
+-{
+-      __le32 *txwi;
+-      u32 word;
+-      int wcid, tx_wcid;
+-
+-      wcid = rt2x00_get_field32(status, TX_STA_FIFO_WCID);
+-
+-      txwi = rt2800_drv_get_txwi(entry);
+-      word = rt2x00_desc_read(txwi, 1);
+-      tx_wcid = rt2x00_get_field32(word, TXWI_W1_WIRELESS_CLI_ID);
+-
+-      return (tx_wcid == wcid);
+-}
+-
+-static bool rt2800mmio_txdone_find_entry(struct queue_entry *entry, void *data)
+-{
+-      u32 status = *(u32 *)data;
+-
+-      /*
+-       * rt2800pci hardware might reorder frames when exchanging traffic
+-       * with multiple BA enabled STAs.
+-       *
+-       * For example, a tx queue
+-       *    [ STA1 | STA2 | STA1 | STA2 ]
+-       * can result in tx status reports
+-       *    [ STA1 | STA1 | STA2 | STA2 ]
+-       * when the hw decides to aggregate the frames for STA1 into one AMPDU.
+-       *
+-       * To mitigate this effect, associate the tx status to the first frame
+-       * in the tx queue with a matching wcid.
+-       */
+-      if (rt2800mmio_txdone_entry_check(entry, status) &&
+-          !test_bit(ENTRY_DATA_STATUS_SET, &entry->flags)) {
+-              /*
+-               * Got a matching frame, associate the tx status with
+-               * the frame
+-               */
+-              entry->status = status;
+-              set_bit(ENTRY_DATA_STATUS_SET, &entry->flags);
+-              return true;
+-      }
+-
+-      /* Check the next frame */
+-      return false;
+-}
+-
+-static bool rt2800mmio_txdone_match_first(struct queue_entry *entry, void *data)
+-{
+-      u32 status = *(u32 *)data;
+-
+-      /*
+-       * Find the first frame without tx status and assign this status to it
+-       * regardless if it matches or not.
+-       */
+-      if (!test_bit(ENTRY_DATA_STATUS_SET, &entry->flags)) {
+-              /*
+-               * Got a matching frame, associate the tx status with
+-               * the frame
+-               */
+-              entry->status = status;
+-              set_bit(ENTRY_DATA_STATUS_SET, &entry->flags);
+-              return true;
+-      }
+-
+-      /* Check the next frame */
+-      return false;
+-}
+-static bool rt2800mmio_txdone_release_entries(struct queue_entry *entry,
+-                                            void *data)
+-{
+-      if (test_bit(ENTRY_DATA_STATUS_SET, &entry->flags)) {
+-              rt2800_txdone_entry(entry, entry->status,
+-                                  rt2800mmio_get_txwi(entry), true);
+-              return false;
+-      }
+-
+-      /* No more frames to release */
+-      return true;
+-}
+-
+-static bool rt2800mmio_txdone(struct rt2x00_dev *rt2x00dev)
+-{
+-      struct data_queue *queue;
+-      u32 status;
+-      u8 qid;
+-      int max_tx_done = 16;
+-
+-      while (kfifo_get(&rt2x00dev->txstatus_fifo, &status)) {
+-              qid = rt2x00_get_field32(status, TX_STA_FIFO_PID_QUEUE);
+-              if (unlikely(qid >= QID_RX)) {
+-                      /*
+-                       * Unknown queue, this shouldn't happen. Just drop
+-                       * this tx status.
+-                       */
+-                      rt2x00_warn(rt2x00dev, "Got TX status report with unexpected pid %u, dropping\n",
+-                                  qid);
+-                      break;
+-              }
+-
+-              queue = rt2x00queue_get_tx_queue(rt2x00dev, qid);
+-              if (unlikely(queue == NULL)) {
+-                      /*
+-                       * The queue is NULL, this shouldn't happen. Stop
+-                       * processing here and drop the tx status
+-                       */
+-                      rt2x00_warn(rt2x00dev, "Got TX status for an unavailable queue %u, dropping\n",
+-                                  qid);
+-                      break;
+-              }
+-
+-              if (unlikely(rt2x00queue_empty(queue))) {
+-                      /*
+-                       * The queue is empty. Stop processing here
+-                       * and drop the tx status.
+-                       */
+-                      rt2x00_warn(rt2x00dev, "Got TX status for an empty queue %u, dropping\n",
+-                                  qid);
+-                      break;
+-              }
+-
+-              /*
+-               * Let's associate this tx status with the first
+-               * matching frame.
+-               */
+-              if (!rt2x00queue_for_each_entry(queue, Q_INDEX_DONE,
+-                                              Q_INDEX, &status,
+-                                              rt2800mmio_txdone_find_entry)) {
+-                      /*
+-                       * We cannot match the tx status to any frame, so just
+-                       * use the first one.
+-                       */
+-                      if (!rt2x00queue_for_each_entry(queue, Q_INDEX_DONE,
+-                                                      Q_INDEX, &status,
+-                                                      rt2800mmio_txdone_match_first)) {
+-                              rt2x00_warn(rt2x00dev, "No frame found for TX status on queue %u, dropping\n",
+-                                          qid);
+-                              break;
+-                      }
+-              }
+-
+-              /*
+-               * Release all frames with a valid tx status.
+-               */
+-              rt2x00queue_for_each_entry(queue, Q_INDEX_DONE,
+-                                         Q_INDEX, NULL,
+-                                         rt2800mmio_txdone_release_entries);
+-
+-              if (--max_tx_done == 0)
+-                      break;
+-      }
+-
+-      return !max_tx_done;
+-}
+-
+ static inline void rt2800mmio_enable_interrupt(struct rt2x00_dev *rt2x00dev,
+                                              struct rt2x00_field32 irq_field)
+ {
+@@ -349,14 +194,14 @@ static inline void rt2800mmio_enable_int
+ void rt2800mmio_txstatus_tasklet(unsigned long data)
+ {
+       struct rt2x00_dev *rt2x00dev = (struct rt2x00_dev *)data;
+-      if (rt2800mmio_txdone(rt2x00dev))
+-              tasklet_schedule(&rt2x00dev->txstatus_tasklet);
+-      /*
+-       * No need to enable the tx status interrupt here as we always
+-       * leave it enabled to minimize the possibility of a tx status
+-       * register overflow. See comment in interrupt handler.
+-       */
++      rt2800_txdone(rt2x00dev);
++
++      rt2800_txdone_nostatus(rt2x00dev);
++
++      if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
++              rt2800mmio_enable_interrupt(rt2x00dev,
++                                          INT_SOURCE_CSR_TX_FIFO_STATUS);
+ }
+ EXPORT_SYMBOL_GPL(rt2800mmio_txstatus_tasklet);
+@@ -440,10 +285,6 @@ static void rt2800mmio_txstatus_interrup
+        * because we can schedule the tasklet multiple times (when the
+        * interrupt fires again during tx status processing).
+        *
+-       * Furthermore we don't disable the TX_FIFO_STATUS
+-       * interrupt here but leave it enabled so that the TX_STA_FIFO
+-       * can also be read while the tx status tasklet gets executed.
+-       *
+        * Since we have only one producer and one consumer we don't
+        * need to lock the kfifo.
+        */
+@@ -485,13 +326,8 @@ irqreturn_t rt2800mmio_interrupt(int irq
+        */
+       mask = ~reg;
+-      if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS)) {
++      if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS))
+               rt2800mmio_txstatus_interrupt(rt2x00dev);
+-              /*
+-               * Never disable the TX_FIFO_STATUS interrupt.
+-               */
+-              rt2x00_set_field32(&mask, INT_MASK_CSR_TX_FIFO_STATUS, 1);
+-      }
+       if (rt2x00_get_field32(reg, INT_SOURCE_CSR_PRE_TBTT))
+               tasklet_hi_schedule(&rt2x00dev->pretbtt_tasklet);
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
+@@ -113,6 +113,7 @@ int rt2x00queue_map_txskb(struct queue_e
+               return -ENOMEM;
+       skbdesc->flags |= SKBDESC_DMA_MAPPED_TX;
++      rt2x00lib_dmadone(entry);
+       return 0;
+ }
+ EXPORT_SYMBOL_GPL(rt2x00queue_map_txskb);
diff --git a/package/kernel/mac80211/patches/rt2x00/004-rt2x00-do-not-check-for-txstatus-timeout-every-time-.patch b/package/kernel/mac80211/patches/rt2x00/004-rt2x00-do-not-check-for-txstatus-timeout-every-time-.patch
new file mode 100644 (file)
index 0000000..832768d
--- /dev/null
@@ -0,0 +1,72 @@
+From 5022efb50f625d11fdf18b1fee0f64ebb1863664 Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Wed, 26 Sep 2018 12:24:55 +0200
+Subject: [PATCH 04/28] rt2x00: do not check for txstatus timeout every time on
+ tasklet
+
+Do not check for tx status timeout everytime we perform txstatus tasklet.
+Perform check once per half a second.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c   | 7 +++++++
+ drivers/net/wireless/ralink/rt2x00/rt2800mmio.c  | 3 ++-
+ drivers/net/wireless/ralink/rt2x00/rt2x00.h      | 2 ++
+ drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 1 +
+ 4 files changed, 12 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -1158,11 +1158,18 @@ bool rt2800_txstatus_timeout(struct rt2x
+       struct data_queue *queue;
+       struct queue_entry *entry;
++      if (time_before(jiffies,
++                      rt2x00dev->last_nostatus_check + msecs_to_jiffies(500)))
++              return false;
++
++      rt2x00dev->last_nostatus_check = jiffies;
++
+       tx_queue_for_each(rt2x00dev, queue) {
+               entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
+               if (rt2800_entry_txstatus_timeout(entry))
+                       return true;
+       }
++
+       return false;
+ }
+ EXPORT_SYMBOL_GPL(rt2800_txstatus_timeout);
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
+@@ -197,7 +197,8 @@ void rt2800mmio_txstatus_tasklet(unsigne
+       rt2800_txdone(rt2x00dev);
+-      rt2800_txdone_nostatus(rt2x00dev);
++      if (rt2800_txstatus_timeout(rt2x00dev))
++              rt2800_txdone_nostatus(rt2x00dev);
+       if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
+               rt2800mmio_enable_interrupt(rt2x00dev,
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+@@ -980,6 +980,8 @@ struct rt2x00_dev {
+        */
+       DECLARE_KFIFO_PTR(txstatus_fifo, u32);
++      unsigned long last_nostatus_check;
++
+       /*
+        * Timer to ensure tx status reports are read (rt2800usb).
+        */
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
+@@ -1039,6 +1039,7 @@ void rt2x00queue_start_queues(struct rt2
+        */
+       tx_queue_for_each(rt2x00dev, queue)
+               rt2x00queue_start_queue(queue);
++      rt2x00dev->last_nostatus_check = jiffies;
+       rt2x00queue_start_queue(rt2x00dev->rx);
+ }
diff --git a/package/kernel/mac80211/patches/rt2x00/005-rt2x00-use-different-txstatus-timeouts-when-flushing.patch b/package/kernel/mac80211/patches/rt2x00/005-rt2x00-use-different-txstatus-timeouts-when-flushing.patch
new file mode 100644 (file)
index 0000000..0f29026
--- /dev/null
@@ -0,0 +1,112 @@
+From adf26a356f132e35093585521ea3e36cd185af83 Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Wed, 26 Sep 2018 12:24:56 +0200
+Subject: [PATCH 05/28] rt2x00: use different txstatus timeouts when flushing
+
+Use different tx status timeouts for normal operation and when flushing.
+This increase timeout to 2s for normal operation as when there are bad
+radio conditions and frames are reposted many times device can not provide
+the status for quite long. With new timeout we can still get valid status
+on such bad conditions.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ .../net/wireless/ralink/rt2x00/rt2800lib.c    | 31 +++++++++++++------
+ drivers/net/wireless/ralink/rt2x00/rt2x00.h   |  1 +
+ .../net/wireless/ralink/rt2x00/rt2x00mac.c    |  4 +++
+ 3 files changed, 26 insertions(+), 10 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -1137,36 +1137,47 @@ void rt2800_txdone(struct rt2x00_dev *rt
+ }
+ EXPORT_SYMBOL_GPL(rt2800_txdone);
+-static inline bool rt2800_entry_txstatus_timeout(struct queue_entry *entry)
++static inline bool rt2800_entry_txstatus_timeout(struct rt2x00_dev *rt2x00dev,
++                                               struct queue_entry *entry)
+ {
+-      bool tout;
++      bool ret;
++      unsigned long tout;
+       if (!test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))
+               return false;
+-      tout = time_after(jiffies, entry->last_action + msecs_to_jiffies(500));
+-      if (unlikely(tout))
++      if (test_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags))
++              tout = msecs_to_jiffies(100);
++      else
++              tout = msecs_to_jiffies(2000);
++
++      ret = time_after(jiffies, entry->last_action + tout);
++      if (unlikely(ret))
+               rt2x00_dbg(entry->queue->rt2x00dev,
+                          "TX status timeout for entry %d in queue %d\n",
+                          entry->entry_idx, entry->queue->qid);
+-      return tout;
+-
++      return ret;
+ }
+ bool rt2800_txstatus_timeout(struct rt2x00_dev *rt2x00dev)
+ {
+       struct data_queue *queue;
+       struct queue_entry *entry;
++      unsigned long tout;
++
++      if (test_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags))
++              tout = msecs_to_jiffies(50);
++      else
++              tout = msecs_to_jiffies(1000);
+-      if (time_before(jiffies,
+-                      rt2x00dev->last_nostatus_check + msecs_to_jiffies(500)))
++      if (time_before(jiffies, rt2x00dev->last_nostatus_check + tout))
+               return false;
+       rt2x00dev->last_nostatus_check = jiffies;
+       tx_queue_for_each(rt2x00dev, queue) {
+               entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
+-              if (rt2800_entry_txstatus_timeout(entry))
++              if (rt2800_entry_txstatus_timeout(rt2x00dev, entry))
+                       return true;
+       }
+@@ -1195,7 +1206,7 @@ void rt2800_txdone_nostatus(struct rt2x0
+                               break;
+                       if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags) ||
+-                          rt2800_entry_txstatus_timeout(entry))
++                          rt2800_entry_txstatus_timeout(rt2x00dev, entry))
+                               rt2x00lib_txdone_noinfo(entry, TXDONE_FAILURE);
+                       else
+                               break;
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+@@ -665,6 +665,7 @@ enum rt2x00_state_flags {
+       DEVICE_STATE_STARTED,
+       DEVICE_STATE_ENABLED_RADIO,
+       DEVICE_STATE_SCANNING,
++      DEVICE_STATE_FLUSHING,
+       /*
+        * Driver configuration
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
+@@ -720,8 +720,12 @@ void rt2x00mac_flush(struct ieee80211_hw
+       if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
+               return;
++      set_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags);
++
+       tx_queue_for_each(rt2x00dev, queue)
+               rt2x00queue_flush_queue(queue, drop);
++
++      clear_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags);
+ }
+ EXPORT_SYMBOL_GPL(rt2x00mac_flush);
diff --git a/package/kernel/mac80211/patches/rt2x00/006-rt2800-flush-and-txstatus-rework-for-rt2800mmio.patch b/package/kernel/mac80211/patches/rt2x00/006-rt2800-flush-and-txstatus-rework-for-rt2800mmio.patch
new file mode 100644 (file)
index 0000000..784fbb1
--- /dev/null
@@ -0,0 +1,238 @@
+From 0240564430c0697d8fde3743d70346a922466b36 Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Wed, 26 Sep 2018 12:24:57 +0200
+Subject: [PATCH 06/28] rt2800: flush and txstatus rework for rt2800mmio
+
+Implement custom rt2800mmio flush routine and change txstatus
+routine to read TX_STA_FIFO also in the tasklet.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ .../net/wireless/ralink/rt2x00/rt2800lib.c    |  14 +--
+ .../net/wireless/ralink/rt2x00/rt2800mmio.c   | 118 +++++++++++++-----
+ .../net/wireless/ralink/rt2x00/rt2800mmio.h   |   1 +
+ .../net/wireless/ralink/rt2x00/rt2800pci.c    |   2 +-
+ 4 files changed, 97 insertions(+), 38 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -1147,7 +1147,7 @@ static inline bool rt2800_entry_txstatus
+               return false;
+       if (test_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags))
+-              tout = msecs_to_jiffies(100);
++              tout = msecs_to_jiffies(50);
+       else
+               tout = msecs_to_jiffies(2000);
+@@ -1163,15 +1163,13 @@ bool rt2800_txstatus_timeout(struct rt2x
+ {
+       struct data_queue *queue;
+       struct queue_entry *entry;
+-      unsigned long tout;
+-      if (test_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags))
+-              tout = msecs_to_jiffies(50);
+-      else
+-              tout = msecs_to_jiffies(1000);
++      if (!test_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags)) {
++              unsigned long tout = msecs_to_jiffies(1000);
+-      if (time_before(jiffies, rt2x00dev->last_nostatus_check + tout))
+-              return false;
++              if (time_before(jiffies, rt2x00dev->last_nostatus_check + tout))
++                      return false;
++      }
+       rt2x00dev->last_nostatus_check = jiffies;
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
+@@ -191,21 +191,6 @@ static inline void rt2800mmio_enable_int
+       spin_unlock_irq(&rt2x00dev->irqmask_lock);
+ }
+-void rt2800mmio_txstatus_tasklet(unsigned long data)
+-{
+-      struct rt2x00_dev *rt2x00dev = (struct rt2x00_dev *)data;
+-
+-      rt2800_txdone(rt2x00dev);
+-
+-      if (rt2800_txstatus_timeout(rt2x00dev))
+-              rt2800_txdone_nostatus(rt2x00dev);
+-
+-      if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
+-              rt2800mmio_enable_interrupt(rt2x00dev,
+-                                          INT_SOURCE_CSR_TX_FIFO_STATUS);
+-}
+-EXPORT_SYMBOL_GPL(rt2800mmio_txstatus_tasklet);
+-
+ void rt2800mmio_pretbtt_tasklet(unsigned long data)
+ {
+       struct rt2x00_dev *rt2x00dev = (struct rt2x00_dev *)data;
+@@ -270,12 +255,26 @@ void rt2800mmio_autowake_tasklet(unsigne
+ }
+ EXPORT_SYMBOL_GPL(rt2800mmio_autowake_tasklet);
+-static void rt2800mmio_txstatus_interrupt(struct rt2x00_dev *rt2x00dev)
++static void rt2800mmio_txdone(struct rt2x00_dev *rt2x00dev)
++{
++      bool timeout = false;
++
++      while (!kfifo_is_empty(&rt2x00dev->txstatus_fifo) ||
++             (timeout = rt2800_txstatus_timeout(rt2x00dev))) {
++
++              rt2800_txdone(rt2x00dev);
++
++              if (timeout)
++                      rt2800_txdone_nostatus(rt2x00dev);
++      }
++}
++
++static bool rt2800mmio_fetch_txstatus(struct rt2x00_dev *rt2x00dev)
+ {
+       u32 status;
+-      int i;
++      bool more = false;
+-      /*
++      /* FIXEME: rewrite this comment
+        * The TX_FIFO_STATUS interrupt needs special care. We should
+        * read TX_STA_FIFO but we should do it immediately as otherwise
+        * the register can overflow and we would lose status reports.
+@@ -286,25 +285,37 @@ static void rt2800mmio_txstatus_interrup
+        * because we can schedule the tasklet multiple times (when the
+        * interrupt fires again during tx status processing).
+        *
+-       * Since we have only one producer and one consumer we don't
++       * txstatus tasklet is called with INT_SOURCE_CSR_TX_FIFO_STATUS
++       * disabled so have only one producer and one consumer - we don't
+        * need to lock the kfifo.
+        */
+-      for (i = 0; i < rt2x00dev->tx->limit; i++) {
++      while (!kfifo_is_full(&rt2x00dev->txstatus_fifo)) {
+               status = rt2x00mmio_register_read(rt2x00dev, TX_STA_FIFO);
+-
+               if (!rt2x00_get_field32(status, TX_STA_FIFO_VALID))
+                       break;
+-              if (!kfifo_put(&rt2x00dev->txstatus_fifo, status)) {
+-                      rt2x00_warn(rt2x00dev, "TX status FIFO overrun, drop tx status report\n");
+-                      break;
+-              }
++              kfifo_put(&rt2x00dev->txstatus_fifo, status);
++              more = true;
+       }
+-      /* Schedule the tasklet for processing the tx status. */
+-      tasklet_schedule(&rt2x00dev->txstatus_tasklet);
++      return more;
+ }
++void rt2800mmio_txstatus_tasklet(unsigned long data)
++{
++      struct rt2x00_dev *rt2x00dev = (struct rt2x00_dev *)data;
++
++      do {
++              rt2800mmio_txdone(rt2x00dev);
++
++      } while (rt2800mmio_fetch_txstatus(rt2x00dev));
++
++      if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
++              rt2800mmio_enable_interrupt(rt2x00dev,
++                                          INT_SOURCE_CSR_TX_FIFO_STATUS);
++}
++EXPORT_SYMBOL_GPL(rt2800mmio_txstatus_tasklet);
++
+ irqreturn_t rt2800mmio_interrupt(int irq, void *dev_instance)
+ {
+       struct rt2x00_dev *rt2x00dev = dev_instance;
+@@ -327,8 +338,10 @@ irqreturn_t rt2800mmio_interrupt(int irq
+        */
+       mask = ~reg;
+-      if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS))
+-              rt2800mmio_txstatus_interrupt(rt2x00dev);
++      if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS)) {
++              rt2800mmio_fetch_txstatus(rt2x00dev);
++              tasklet_schedule(&rt2x00dev->txstatus_tasklet);
++      }
+       if (rt2x00_get_field32(reg, INT_SOURCE_CSR_PRE_TBTT))
+               tasklet_hi_schedule(&rt2x00dev->pretbtt_tasklet);
+@@ -453,6 +466,53 @@ void rt2800mmio_kick_queue(struct data_q
+ }
+ EXPORT_SYMBOL_GPL(rt2800mmio_kick_queue);
++void rt2800mmio_flush_queue(struct data_queue *queue, bool drop)
++{
++      struct rt2x00_dev *rt2x00dev = queue->rt2x00dev;
++      bool tx_queue = false;
++      unsigned int i;
++
++      switch (queue->qid) {
++      case QID_AC_VO:
++      case QID_AC_VI:
++      case QID_AC_BE:
++      case QID_AC_BK:
++              tx_queue = true;
++              break;
++      case QID_RX:
++              break;
++      default:
++              return;
++      }
++
++      for (i = 0; i < 5; i++) {
++              /*
++               * Check if the driver is already done, otherwise we
++               * have to sleep a little while to give the driver/hw
++               * the oppurtunity to complete interrupt process itself.
++               */
++              if (rt2x00queue_empty(queue))
++                      break;
++
++              /*
++               * For TX queues schedule completion tasklet to catch
++               * tx status timeouts, othewise just wait.
++               */
++              if (tx_queue) {
++                      tasklet_disable(&rt2x00dev->txstatus_tasklet);
++                      rt2800mmio_txdone(rt2x00dev);
++                      tasklet_enable(&rt2x00dev->txstatus_tasklet);
++              }
++
++              /*
++               * Wait for a little while to give the driver
++               * the oppurtunity to recover itself.
++               */
++              msleep(50);
++      }
++}
++EXPORT_SYMBOL_GPL(rt2800mmio_flush_queue);
++
+ void rt2800mmio_stop_queue(struct data_queue *queue)
+ {
+       struct rt2x00_dev *rt2x00dev = queue->rt2x00dev;
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.h
+@@ -148,6 +148,7 @@ void rt2800mmio_toggle_irq(struct rt2x00
+ /* Queue handlers */
+ void rt2800mmio_start_queue(struct data_queue *queue);
+ void rt2800mmio_kick_queue(struct data_queue *queue);
++void rt2800mmio_flush_queue(struct data_queue *queue, bool drop);
+ void rt2800mmio_stop_queue(struct data_queue *queue);
+ void rt2800mmio_queue_init(struct data_queue *queue);
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
+@@ -364,7 +364,7 @@ static const struct rt2x00lib_ops rt2800
+       .start_queue            = rt2800mmio_start_queue,
+       .kick_queue             = rt2800mmio_kick_queue,
+       .stop_queue             = rt2800mmio_stop_queue,
+-      .flush_queue            = rt2x00mmio_flush_queue,
++      .flush_queue            = rt2800mmio_flush_queue,
+       .write_tx_desc          = rt2800mmio_write_tx_desc,
+       .write_tx_data          = rt2800_write_tx_data,
+       .write_beacon           = rt2800_write_beacon,
diff --git a/package/kernel/mac80211/patches/rt2x00/007-rt2x00-rt2400pci-mark-expected-switch-fall-through.patch b/package/kernel/mac80211/patches/rt2x00/007-rt2x00-rt2400pci-mark-expected-switch-fall-through.patch
new file mode 100644 (file)
index 0000000..2161ad9
--- /dev/null
@@ -0,0 +1,25 @@
+From 6eba8fd2235237784dfd01da55c3210d493aebdb Mon Sep 17 00:00:00 2001
+From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
+Date: Mon, 22 Oct 2018 22:44:34 +0200
+Subject: [PATCH 07/28] rt2x00: rt2400pci: mark expected switch fall-through
+
+In preparation to enabling -Wimplicit-fallthrough, mark switch cases
+where we are expecting to fall through.
+
+Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2400pci.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2400pci.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2400pci.c
+@@ -1302,7 +1302,7 @@ static void rt2400pci_txdone(struct rt2x
+                       break;
+               case 2: /* Failure, excessive retries */
+                       __set_bit(TXDONE_EXCESSIVE_RETRY, &txdesc.flags);
+-                      /* Don't break, this is a failed frame! */
++                      /* Fall through - this is a failed frame! */
+               default: /* Failure */
+                       __set_bit(TXDONE_FAILURE, &txdesc.flags);
+               }
diff --git a/package/kernel/mac80211/patches/rt2x00/008-rt2x00-rt2500pci-mark-expected-switch-fall-through.patch b/package/kernel/mac80211/patches/rt2x00/008-rt2x00-rt2500pci-mark-expected-switch-fall-through.patch
new file mode 100644 (file)
index 0000000..d10de6b
--- /dev/null
@@ -0,0 +1,25 @@
+From 10bb92217747c3384a01ebec005faa2f5e72bbd8 Mon Sep 17 00:00:00 2001
+From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
+Date: Mon, 22 Oct 2018 22:45:19 +0200
+Subject: [PATCH 08/28] rt2x00: rt2500pci: mark expected switch fall-through
+
+In preparation to enabling -Wimplicit-fallthrough, mark switch cases
+where we are expecting to fall through.
+
+Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2500pci.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2500pci.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2500pci.c
+@@ -1430,7 +1430,7 @@ static void rt2500pci_txdone(struct rt2x
+                       break;
+               case 2: /* Failure, excessive retries */
+                       __set_bit(TXDONE_EXCESSIVE_RETRY, &txdesc.flags);
+-                      /* Don't break, this is a failed frame! */
++                      /* Fall through - this is a failed frame! */
+               default: /* Failure */
+                       __set_bit(TXDONE_FAILURE, &txdesc.flags);
+               }
diff --git a/package/kernel/mac80211/patches/rt2x00/009-rt2x00-rt2800lib-mark-expected-switch-fall-throughs.patch b/package/kernel/mac80211/patches/rt2x00/009-rt2x00-rt2800lib-mark-expected-switch-fall-throughs.patch
new file mode 100644 (file)
index 0000000..99f971b
--- /dev/null
@@ -0,0 +1,44 @@
+From 916e6bbcfcff6cc5d7d33bba8557a30f3af50326 Mon Sep 17 00:00:00 2001
+From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
+Date: Mon, 22 Oct 2018 22:46:03 +0200
+Subject: [PATCH 09/28] rt2x00: rt2800lib: mark expected switch fall-throughs
+
+In preparation to enabling -Wimplicit-fallthrough, mark switch cases
+where we are expecting to fall through.
+
+Addresses-Coverity-ID: 145198 ("Missing break in switch")
+Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -2482,6 +2482,7 @@ static void rt2800_config_channel_rf3052
+               switch (rt2x00dev->default_ant.tx_chain_num) {
+               case 1:
+                       rt2x00_set_field8(&rfcsr, RFCSR1_TX1_PD, 1);
++                      /* fall through */
+               case 2:
+                       rt2x00_set_field8(&rfcsr, RFCSR1_TX2_PD, 1);
+                       break;
+@@ -2490,6 +2491,7 @@ static void rt2800_config_channel_rf3052
+               switch (rt2x00dev->default_ant.rx_chain_num) {
+               case 1:
+                       rt2x00_set_field8(&rfcsr, RFCSR1_RX1_PD, 1);
++                      /* fall through */
+               case 2:
+                       rt2x00_set_field8(&rfcsr, RFCSR1_RX2_PD, 1);
+                       break;
+@@ -9457,8 +9459,10 @@ static int rt2800_probe_hw_mode(struct r
+       switch (rx_chains) {
+       case 3:
+               spec->ht.mcs.rx_mask[2] = 0xff;
++              /* fall through */
+       case 2:
+               spec->ht.mcs.rx_mask[1] = 0xff;
++              /* fall through */
+       case 1:
+               spec->ht.mcs.rx_mask[0] = 0xff;
+               spec->ht.mcs.rx_mask[4] = 0x1; /* MCS32 */
diff --git a/package/kernel/mac80211/patches/rt2x00/010-rt2x00-rt61pci-mark-expected-switch-fall-through.patch b/package/kernel/mac80211/patches/rt2x00/010-rt2x00-rt61pci-mark-expected-switch-fall-through.patch
new file mode 100644 (file)
index 0000000..5b0f96d
--- /dev/null
@@ -0,0 +1,25 @@
+From 641dd8068ecb078e7d12efe465df202bc16ca5eb Mon Sep 17 00:00:00 2001
+From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
+Date: Mon, 22 Oct 2018 22:46:47 +0200
+Subject: [PATCH 10/28] rt2x00: rt61pci: mark expected switch fall-through
+
+In preparation to enabling -Wimplicit-fallthrough, mark switch cases
+where we are expecting to fall through.
+
+Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt61pci.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt61pci.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt61pci.c
+@@ -2226,7 +2226,7 @@ static void rt61pci_txdone(struct rt2x00
+                       break;
+               case 6: /* Failure, excessive retries */
+                       __set_bit(TXDONE_EXCESSIVE_RETRY, &txdesc.flags);
+-                      /* Don't break, this is a failed frame! */
++                      /* Fall through - this is a failed frame! */
+               default: /* Failure */
+                       __set_bit(TXDONE_FAILURE, &txdesc.flags);
+               }
diff --git a/package/kernel/mac80211/patches/rt2x00/011-cross-tree-phase-out-dma_zalloc_coherent.patch b/package/kernel/mac80211/patches/rt2x00/011-cross-tree-phase-out-dma_zalloc_coherent.patch
new file mode 100644 (file)
index 0000000..8100eb0
--- /dev/null
@@ -0,0 +1,40 @@
+From 750afb08ca71310fcf0c4e2cb1565c63b8235b60 Mon Sep 17 00:00:00 2001
+From: Luis Chamberlain <mcgrof@kernel.org>
+Date: Fri, 4 Jan 2019 09:23:09 +0100
+Subject: [PATCH 11/28] cross-tree: phase out dma_zalloc_coherent()
+
+We already need to zero out memory for dma_alloc_coherent(), as such
+using dma_zalloc_coherent() is superflous. Phase it out.
+
+This change was generated with the following Coccinelle SmPL patch:
+
+@ replace_dma_zalloc_coherent @
+expression dev, size, data, handle, flags;
+@@
+
+-dma_zalloc_coherent(dev, size, handle, flags)
++dma_alloc_coherent(dev, size, handle, flags)
+
+Suggested-by: Christoph Hellwig <hch@lst.de>
+Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
+[hch: re-ran the script on the latest tree]
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2x00mmio.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00mmio.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00mmio.c
+@@ -119,9 +119,9 @@ static int rt2x00mmio_alloc_queue_dma(st
+       /*
+        * Allocate DMA memory for descriptor and buffer.
+        */
+-      addr = dma_zalloc_coherent(rt2x00dev->dev,
+-                                 queue->limit * queue->desc_size, &dma,
+-                                 GFP_KERNEL);
++      addr = dma_alloc_coherent(rt2x00dev->dev,
++                                queue->limit * queue->desc_size, &dma,
++                                GFP_KERNEL);
+       if (!addr)
+               return -ENOMEM;
diff --git a/package/kernel/mac80211/patches/rt2x00/012-rt2x00-reduce-tx-power-to-nominal-level-on-RT6352.patch b/package/kernel/mac80211/patches/rt2x00/012-rt2x00-reduce-tx-power-to-nominal-level-on-RT6352.patch
new file mode 100644 (file)
index 0000000..a07832e
--- /dev/null
@@ -0,0 +1,32 @@
+From c2e28ef7711ffcb083474ee5f154264c6ec1ec07 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tomislav=20Po=C5=BEega?= <pozega.tomislav@gmail.com>
+Date: Thu, 27 Dec 2018 15:05:25 +0100
+Subject: [PATCH 12/28] rt2x00: reduce tx power to nominal level on RT6352
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Current implementation of RT6352 support provides too high tx power
+at least on iPA/eLNA devices. Reduce amplification of variable gain
+amplifier by 6dB to match board target power of 17dBm.
+Transmited signal strength with this patch is similar to that of
+stock firmware or pandorabox firmware. Throughput measured with iperf
+improves. Device tested: Xiaomi Miwifi Mini.
+
+Signed-off-by: Tomislav Požega <pozega.tomislav@gmail.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -5477,7 +5477,7 @@ static int rt2800_init_registers(struct
+               rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000);
+               rt2800_register_write(rt2x00dev, MIMO_PS_CFG, 0x00000002);
+               rt2800_register_write(rt2x00dev, TX_PIN_CFG, 0x00150F0F);
+-              rt2800_register_write(rt2x00dev, TX_ALC_VGA3, 0x06060606);
++              rt2800_register_write(rt2x00dev, TX_ALC_VGA3, 0x00000000);
+               rt2800_register_write(rt2x00dev, TX0_BB_GAIN_ATTEN, 0x0);
+               rt2800_register_write(rt2x00dev, TX1_BB_GAIN_ATTEN, 0x0);
+               rt2800_register_write(rt2x00dev, TX0_RF_GAIN_ATTEN, 0x6C6C666C);
diff --git a/package/kernel/mac80211/patches/rt2x00/013-rt2x00-Work-around-a-firmware-bug-with-shared-keys.patch b/package/kernel/mac80211/patches/rt2x00/013-rt2x00-Work-around-a-firmware-bug-with-shared-keys.patch
new file mode 100644 (file)
index 0000000..dc884c1
--- /dev/null
@@ -0,0 +1,143 @@
+From a4296994eb8061ee3455721a296c387c639bf635 Mon Sep 17 00:00:00 2001
+From: Bernd Edlinger <bernd.edlinger@hotmail.de>
+Date: Tue, 15 Jan 2019 14:01:29 +0000
+Subject: [PATCH 13/28] rt2x00: Work around a firmware bug with shared keys
+
+Apparently the rt2x61 firmware fails temporarily to decode
+broadcast packets if the shared keys are not assigned
+in the "correct" sequence. At the same time unicast
+packets work fine, since they are encrypted with the
+pairwise key.
+
+At least with WPA2 CCMP mode the shared keys are
+set in the following sequence: keyidx=1, 2, 1, 2.
+After a while only keyidx 2 gets decrypted, and
+keyidx 1 is ignored, probably because there is never
+a keyidx 3.
+
+Symptoms are arping -b works for 10 minutes, since
+keyidx=2 is used for broadcast, and then it stops
+working for 10 minutes, because keyidx=1 is used.
+That failure mode repeats forever.
+
+Note, the firmware does not even know which keyidx
+corresponds to which hw_key_idx so the firmware is
+trying to be smarter than the driver, which is bound
+to fail.
+
+As workaround the function rt61pci_config_shared_key
+requests software decryption of the shared keys,
+by returning EOPNOTSUPP. However, pairwise keys are
+still handled by hardware which works just fine.
+
+Signed-off-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
+Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt61pci.c | 93 +-------------------
+ 1 file changed, 4 insertions(+), 89 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt61pci.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt61pci.c
+@@ -321,97 +321,12 @@ static int rt61pci_config_shared_key(str
+                                    struct rt2x00lib_crypto *crypto,
+                                    struct ieee80211_key_conf *key)
+ {
+-      struct hw_key_entry key_entry;
+-      struct rt2x00_field32 field;
+-      u32 mask;
+-      u32 reg;
+-
+-      if (crypto->cmd == SET_KEY) {
+-              /*
+-               * rt2x00lib can't determine the correct free
+-               * key_idx for shared keys. We have 1 register
+-               * with key valid bits. The goal is simple, read
+-               * the register, if that is full we have no slots
+-               * left.
+-               * Note that each BSS is allowed to have up to 4
+-               * shared keys, so put a mask over the allowed
+-               * entries.
+-               */
+-              mask = (0xf << crypto->bssidx);
+-
+-              reg = rt2x00mmio_register_read(rt2x00dev, SEC_CSR0);
+-              reg &= mask;
+-
+-              if (reg && reg == mask)
+-                      return -ENOSPC;
+-
+-              key->hw_key_idx += reg ? ffz(reg) : 0;
+-
+-              /*
+-               * Upload key to hardware
+-               */
+-              memcpy(key_entry.key, crypto->key,
+-                     sizeof(key_entry.key));
+-              memcpy(key_entry.tx_mic, crypto->tx_mic,
+-                     sizeof(key_entry.tx_mic));
+-              memcpy(key_entry.rx_mic, crypto->rx_mic,
+-                     sizeof(key_entry.rx_mic));
+-
+-              reg = SHARED_KEY_ENTRY(key->hw_key_idx);
+-              rt2x00mmio_register_multiwrite(rt2x00dev, reg,
+-                                             &key_entry, sizeof(key_entry));
+-
+-              /*
+-               * The cipher types are stored over 2 registers.
+-               * bssidx 0 and 1 keys are stored in SEC_CSR1 and
+-               * bssidx 1 and 2 keys are stored in SEC_CSR5.
+-               * Using the correct defines correctly will cause overhead,
+-               * so just calculate the correct offset.
+-               */
+-              if (key->hw_key_idx < 8) {
+-                      field.bit_offset = (3 * key->hw_key_idx);
+-                      field.bit_mask = 0x7 << field.bit_offset;
+-
+-                      reg = rt2x00mmio_register_read(rt2x00dev, SEC_CSR1);
+-                      rt2x00_set_field32(&reg, field, crypto->cipher);
+-                      rt2x00mmio_register_write(rt2x00dev, SEC_CSR1, reg);
+-              } else {
+-                      field.bit_offset = (3 * (key->hw_key_idx - 8));
+-                      field.bit_mask = 0x7 << field.bit_offset;
+-
+-                      reg = rt2x00mmio_register_read(rt2x00dev, SEC_CSR5);
+-                      rt2x00_set_field32(&reg, field, crypto->cipher);
+-                      rt2x00mmio_register_write(rt2x00dev, SEC_CSR5, reg);
+-              }
+-
+-              /*
+-               * The driver does not support the IV/EIV generation
+-               * in hardware. However it doesn't support the IV/EIV
+-               * inside the ieee80211 frame either, but requires it
+-               * to be provided separately for the descriptor.
+-               * rt2x00lib will cut the IV/EIV data out of all frames
+-               * given to us by mac80211, but we must tell mac80211
+-               * to generate the IV/EIV data.
+-               */
+-              key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV;
+-      }
+-
+       /*
+-       * SEC_CSR0 contains only single-bit fields to indicate
+-       * a particular key is valid. Because using the FIELD32()
+-       * defines directly will cause a lot of overhead, we use
+-       * a calculation to determine the correct bit directly.
++       * Let the software handle the shared keys,
++       * since the hardware decryption does not work reliably,
++       * because the firmware does not know the key's keyidx.
+        */
+-      mask = 1 << key->hw_key_idx;
+-
+-      reg = rt2x00mmio_register_read(rt2x00dev, SEC_CSR0);
+-      if (crypto->cmd == SET_KEY)
+-              reg |= mask;
+-      else if (crypto->cmd == DISABLE_KEY)
+-              reg &= ~mask;
+-      rt2x00mmio_register_write(rt2x00dev, SEC_CSR0, reg);
+-
+-      return 0;
++      return -EOPNOTSUPP;
+ }
+ static int rt61pci_config_pairwise_key(struct rt2x00_dev *rt2x00dev,
diff --git a/package/kernel/mac80211/patches/rt2x00/014-rt2x00-no-need-to-check-return-value-of-debugfs_crea.patch b/package/kernel/mac80211/patches/rt2x00/014-rt2x00-no-need-to-check-return-value-of-debugfs_crea.patch
new file mode 100644 (file)
index 0000000..26f2df1
--- /dev/null
@@ -0,0 +1,107 @@
+From 2587791d57588562c21e5ef7e678f02ab2f3eb82 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Tue, 22 Jan 2019 16:21:34 +0100
+Subject: [PATCH 14/28] rt2x00: no need to check return value of debugfs_create
+ functions
+
+When calling debugfs functions, there is no need to ever check the
+return value.  The function can work or not, but the code logic should
+never do something different based on this.
+
+Cc: Stanislaw Gruszka <sgruszka@redhat.com>
+Cc: Helmut Schaa <helmut.schaa@googlemail.com>
+Cc: Kalle Valo <kvalo@codeaurora.org>
+Cc: linux-wireless@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ .../net/wireless/ralink/rt2x00/rt2x00debug.c  | 27 -------------------
+ 1 file changed, 27 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
+@@ -656,36 +656,24 @@ void rt2x00debug_register(struct rt2x00_
+       intf->driver_folder =
+           debugfs_create_dir(intf->rt2x00dev->ops->name,
+                              rt2x00dev->hw->wiphy->debugfsdir);
+-      if (IS_ERR(intf->driver_folder) || !intf->driver_folder)
+-              goto exit;
+       intf->driver_entry =
+           rt2x00debug_create_file_driver("driver", intf, &intf->driver_blob);
+-      if (IS_ERR(intf->driver_entry) || !intf->driver_entry)
+-              goto exit;
+       intf->chipset_entry =
+           rt2x00debug_create_file_chipset("chipset",
+                                           intf, &intf->chipset_blob);
+-      if (IS_ERR(intf->chipset_entry) || !intf->chipset_entry)
+-              goto exit;
+       intf->dev_flags = debugfs_create_file("dev_flags", 0400,
+                                             intf->driver_folder, intf,
+                                             &rt2x00debug_fop_dev_flags);
+-      if (IS_ERR(intf->dev_flags) || !intf->dev_flags)
+-              goto exit;
+       intf->cap_flags = debugfs_create_file("cap_flags", 0400,
+                                             intf->driver_folder, intf,
+                                             &rt2x00debug_fop_cap_flags);
+-      if (IS_ERR(intf->cap_flags) || !intf->cap_flags)
+-              goto exit;
+       intf->register_folder =
+           debugfs_create_dir("register", intf->driver_folder);
+-      if (IS_ERR(intf->register_folder) || !intf->register_folder)
+-              goto exit;
+ #define RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(__intf, __name)           \
+ ({                                                                    \
+@@ -695,9 +683,6 @@ void rt2x00debug_register(struct rt2x00_
+                                          0600,                        \
+                                          (__intf)->register_folder,   \
+                                          &(__intf)->offset_##__name); \
+-              if (IS_ERR((__intf)->__name##_off_entry) ||             \
+-                  !(__intf)->__name##_off_entry)                      \
+-                      goto exit;                                      \
+                                                                       \
+               (__intf)->__name##_val_entry =                          \
+                       debugfs_create_file(__stringify(__name) "_value", \
+@@ -705,9 +690,6 @@ void rt2x00debug_register(struct rt2x00_
+                                           (__intf)->register_folder,  \
+                                           (__intf),                   \
+                                           &rt2x00debug_fop_##__name); \
+-              if (IS_ERR((__intf)->__name##_val_entry) ||             \
+-                  !(__intf)->__name##_val_entry)                      \
+-                      goto exit;                                      \
+       }                                                               \
+ })
+@@ -721,15 +703,10 @@ void rt2x00debug_register(struct rt2x00_
+       intf->queue_folder =
+           debugfs_create_dir("queue", intf->driver_folder);
+-      if (IS_ERR(intf->queue_folder) || !intf->queue_folder)
+-              goto exit;
+       intf->queue_frame_dump_entry =
+               debugfs_create_file("dump", 0400, intf->queue_folder,
+                                   intf, &rt2x00debug_fop_queue_dump);
+-      if (IS_ERR(intf->queue_frame_dump_entry)
+-              || !intf->queue_frame_dump_entry)
+-              goto exit;
+       skb_queue_head_init(&intf->frame_dump_skbqueue);
+       init_waitqueue_head(&intf->frame_dump_waitqueue);
+@@ -747,10 +724,6 @@ void rt2x00debug_register(struct rt2x00_
+ #endif
+       return;
+-
+-exit:
+-      rt2x00debug_deregister(rt2x00dev);
+-      rt2x00_err(rt2x00dev, "Failed to register debug handler\n");
+ }
+ void rt2x00debug_deregister(struct rt2x00_dev *rt2x00dev)
diff --git a/package/kernel/mac80211/patches/rt2x00/015-rt2x00-remove-unneeded-check.patch b/package/kernel/mac80211/patches/rt2x00/015-rt2x00-remove-unneeded-check.patch
new file mode 100644 (file)
index 0000000..50e7de0
--- /dev/null
@@ -0,0 +1,137 @@
+From 17ae2acd1a6f5148edd80d84194e5d7c80be360e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tomislav=20Po=C5=BEega?= <pozega.tomislav@gmail.com>
+Date: Wed, 13 Feb 2019 11:09:12 +0100
+Subject: [PATCH 15/28] rt2x00: remove unneeded check
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Remove band check from rf53xx channel config routine since all chips
+using it are single band.
+
+Signed-off-by: Tomislav Požega <pozega.tomislav@gmail.com>
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ .../net/wireless/ralink/rt2x00/rt2800lib.c    | 103 +++++++++---------
+ 1 file changed, 50 insertions(+), 53 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -2966,6 +2966,7 @@ static void rt2800_config_channel_rf53xx
+                                        struct channel_info *info)
+ {
+       u8 rfcsr;
++      int idx = rf->channel-1;
+       rt2800_rfcsr_write(rt2x00dev, 8, rf->rf1);
+       rt2800_rfcsr_write(rt2x00dev, 9, rf->rf3);
+@@ -3003,60 +3004,56 @@ static void rt2800_config_channel_rf53xx
+       rt2800_freq_cal_mode1(rt2x00dev);
+-      if (rf->channel <= 14) {
+-              int idx = rf->channel-1;
++      if (rt2x00_has_cap_bt_coexist(rt2x00dev)) {
++              if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390F)) {
++                      /* r55/r59 value array of channel 1~14 */
++                      static const char r55_bt_rev[] = {0x83, 0x83,
++                              0x83, 0x73, 0x73, 0x63, 0x53, 0x53,
++                              0x53, 0x43, 0x43, 0x43, 0x43, 0x43};
++                      static const char r59_bt_rev[] = {0x0e, 0x0e,
++                              0x0e, 0x0e, 0x0e, 0x0b, 0x0a, 0x09,
++                              0x07, 0x07, 0x07, 0x07, 0x07, 0x07};
++
++                      rt2800_rfcsr_write(rt2x00dev, 55,
++                                         r55_bt_rev[idx]);
++                      rt2800_rfcsr_write(rt2x00dev, 59,
++                                         r59_bt_rev[idx]);
++              } else {
++                      static const char r59_bt[] = {0x8b, 0x8b, 0x8b,
++                              0x8b, 0x8b, 0x8b, 0x8b, 0x8a, 0x89,
++                              0x88, 0x88, 0x86, 0x85, 0x84};
+-              if (rt2x00_has_cap_bt_coexist(rt2x00dev)) {
+-                      if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390F)) {
+-                              /* r55/r59 value array of channel 1~14 */
+-                              static const char r55_bt_rev[] = {0x83, 0x83,
+-                                      0x83, 0x73, 0x73, 0x63, 0x53, 0x53,
+-                                      0x53, 0x43, 0x43, 0x43, 0x43, 0x43};
+-                              static const char r59_bt_rev[] = {0x0e, 0x0e,
+-                                      0x0e, 0x0e, 0x0e, 0x0b, 0x0a, 0x09,
+-                                      0x07, 0x07, 0x07, 0x07, 0x07, 0x07};
+-
+-                              rt2800_rfcsr_write(rt2x00dev, 55,
+-                                                 r55_bt_rev[idx]);
+-                              rt2800_rfcsr_write(rt2x00dev, 59,
+-                                                 r59_bt_rev[idx]);
+-                      } else {
+-                              static const char r59_bt[] = {0x8b, 0x8b, 0x8b,
+-                                      0x8b, 0x8b, 0x8b, 0x8b, 0x8a, 0x89,
+-                                      0x88, 0x88, 0x86, 0x85, 0x84};
++                      rt2800_rfcsr_write(rt2x00dev, 59, r59_bt[idx]);
++              }
++      } else {
++              if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390F)) {
++                      static const char r55_nonbt_rev[] = {0x23, 0x23,
++                              0x23, 0x23, 0x13, 0x13, 0x03, 0x03,
++                              0x03, 0x03, 0x03, 0x03, 0x03, 0x03};
++                      static const char r59_nonbt_rev[] = {0x07, 0x07,
++                              0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
++                              0x07, 0x07, 0x06, 0x05, 0x04, 0x04};
++
++                      rt2800_rfcsr_write(rt2x00dev, 55,
++                                         r55_nonbt_rev[idx]);
++                      rt2800_rfcsr_write(rt2x00dev, 59,
++                                         r59_nonbt_rev[idx]);
++              } else if (rt2x00_rt(rt2x00dev, RT5390) ||
++                         rt2x00_rt(rt2x00dev, RT5392) ||
++                         rt2x00_rt(rt2x00dev, RT6352)) {
++                      static const char r59_non_bt[] = {0x8f, 0x8f,
++                              0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8d,
++                              0x8a, 0x88, 0x88, 0x87, 0x87, 0x86};
++
++                      rt2800_rfcsr_write(rt2x00dev, 59,
++                                         r59_non_bt[idx]);
++              } else if (rt2x00_rt(rt2x00dev, RT5350)) {
++                      static const char r59_non_bt[] = {0x0b, 0x0b,
++                              0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0a,
++                              0x0a, 0x09, 0x08, 0x07, 0x07, 0x06};
+-                              rt2800_rfcsr_write(rt2x00dev, 59, r59_bt[idx]);
+-                      }
+-              } else {
+-                      if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390F)) {
+-                              static const char r55_nonbt_rev[] = {0x23, 0x23,
+-                                      0x23, 0x23, 0x13, 0x13, 0x03, 0x03,
+-                                      0x03, 0x03, 0x03, 0x03, 0x03, 0x03};
+-                              static const char r59_nonbt_rev[] = {0x07, 0x07,
+-                                      0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+-                                      0x07, 0x07, 0x06, 0x05, 0x04, 0x04};
+-
+-                              rt2800_rfcsr_write(rt2x00dev, 55,
+-                                                 r55_nonbt_rev[idx]);
+-                              rt2800_rfcsr_write(rt2x00dev, 59,
+-                                                 r59_nonbt_rev[idx]);
+-                      } else if (rt2x00_rt(rt2x00dev, RT5390) ||
+-                                 rt2x00_rt(rt2x00dev, RT5392) ||
+-                                 rt2x00_rt(rt2x00dev, RT6352)) {
+-                              static const char r59_non_bt[] = {0x8f, 0x8f,
+-                                      0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8d,
+-                                      0x8a, 0x88, 0x88, 0x87, 0x87, 0x86};
+-
+-                              rt2800_rfcsr_write(rt2x00dev, 59,
+-                                                 r59_non_bt[idx]);
+-                      } else if (rt2x00_rt(rt2x00dev, RT5350)) {
+-                              static const char r59_non_bt[] = {0x0b, 0x0b,
+-                                      0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0a,
+-                                      0x0a, 0x09, 0x08, 0x07, 0x07, 0x06};
+-
+-                              rt2800_rfcsr_write(rt2x00dev, 59,
+-                                                 r59_non_bt[idx]);
+-                      }
++                      rt2800_rfcsr_write(rt2x00dev, 59,
++                                         r59_non_bt[idx]);
+               }
+       }
+ }
diff --git a/package/kernel/mac80211/patches/rt2x00/016-rt2x00-remove-confusing-AGC-register.patch b/package/kernel/mac80211/patches/rt2x00/016-rt2x00-remove-confusing-AGC-register.patch
new file mode 100644 (file)
index 0000000..8f3791d
--- /dev/null
@@ -0,0 +1,34 @@
+From 5991a2ecd070ce5ef646b4e8e0bc8d99110604ed Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tomislav=20Po=C5=BEega?= <pozega.tomislav@gmail.com>
+Date: Wed, 13 Feb 2019 11:09:13 +0100
+Subject: [PATCH 16/28] rt2x00: remove confusing AGC register
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Register 66 was causing issues on RT6352 if set to the same value as
+in MTK driver. With 1c reg value device was working fine in both HT20
+and HT40 modes.
+
+Signed-off-by: Tomislav Požega <pozega.tomislav@gmail.com>
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -3983,11 +3983,7 @@ static void rt2800_config_channel(struct
+               rt2800_bbp_write(rt2x00dev, 196, reg);
+               /* AGC init */
+-              if (rt2x00_rt(rt2x00dev, RT6352))
+-                      reg = 0x04;
+-              else
+-                      reg = rf->channel <= 14 ? 0x1c : 0x24;
+-
++              reg = rf->channel <= 14 ? 0x1c : 0x24;
+               reg += 2 * rt2x00dev->lna_gain;
+               rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg);
diff --git a/package/kernel/mac80211/patches/rt2x00/017-rt2800-enable-TX_PIN_CFG_LNA_PE_-bits-per-band.patch b/package/kernel/mac80211/patches/rt2x00/017-rt2800-enable-TX_PIN_CFG_LNA_PE_-bits-per-band.patch
new file mode 100644 (file)
index 0000000..eb82d62
--- /dev/null
@@ -0,0 +1,47 @@
+From 9ad3b55654455258a9463384edb40077439d879f Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Wed, 13 Feb 2019 11:09:14 +0100
+Subject: [PATCH 17/28] rt2800: enable TX_PIN_CFG_LNA_PE_ bits per band
+
+Do not enable TX_PIN_CFG_LNA_PE_A* bits for 2.4GHz band and
+vice versa TX_PIN_CFG_LNA_PE_G* bits for 5GHz.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 18 ++++++++++++------
+ 1 file changed, 12 insertions(+), 6 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -3893,18 +3893,24 @@ static void rt2800_config_channel(struct
+       switch (rt2x00dev->default_ant.rx_chain_num) {
+       case 3:
+               /* Turn on tertiary LNAs */
+-              rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A2_EN, 1);
+-              rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G2_EN, 1);
++              rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A2_EN,
++                                 rf->channel > 14);
++              rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G2_EN,
++                                 rf->channel <= 14);
+               /* fall-through */
+       case 2:
+               /* Turn on secondary LNAs */
+-              rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A1_EN, 1);
+-              rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G1_EN, 1);
++              rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A1_EN,
++                                 rf->channel > 14);
++              rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G1_EN,
++                                 rf->channel <= 14);
+               /* fall-through */
+       case 1:
+               /* Turn on primary LNAs */
+-              rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A0_EN, 1);
+-              rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G0_EN, 1);
++              rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A0_EN,
++                                 rf->channel > 14);
++              rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G0_EN,
++                                 rf->channel <= 14);
+               break;
+       }
diff --git a/package/kernel/mac80211/patches/rt2x00/018-rt2800-enable-TX_PIN_CFG_RFRX_EN-only-for-MT7620.patch b/package/kernel/mac80211/patches/rt2x00/018-rt2800-enable-TX_PIN_CFG_RFRX_EN-only-for-MT7620.patch
new file mode 100644 (file)
index 0000000..3a4c2cd
--- /dev/null
@@ -0,0 +1,41 @@
+From 7aca14885edeab536a8cbe1e7cfeadd4c3310b9b Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Wed, 13 Feb 2019 11:09:15 +0100
+Subject: [PATCH 18/28] rt2800: enable TX_PIN_CFG_RFRX_EN only for MT7620
+
+The TX_PIN_CFG_RFRX_EN bit was not set on other devices than MT7620,
+restore old behavaviour since setting this bit maight not be
+correct for older devices.
+
+Fixes: 41977e86c984 ("rt2x00: add support for MT7620")
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -3858,10 +3858,12 @@ static void rt2800_config_channel(struct
+       if (rt2x00_rt(rt2x00dev, RT3572))
+               rt2800_rfcsr_write(rt2x00dev, 8, 0);
+-      if (rt2x00_rt(rt2x00dev, RT6352))
++      if (rt2x00_rt(rt2x00dev, RT6352)) {
+               tx_pin = rt2800_register_read(rt2x00dev, TX_PIN_CFG);
+-      else
++              rt2x00_set_field32(&tx_pin, TX_PIN_CFG_RFRX_EN, 1);
++      } else {
+               tx_pin = 0;
++      }
+       switch (rt2x00dev->default_ant.tx_chain_num) {
+       case 3:
+@@ -3916,7 +3918,6 @@ static void rt2800_config_channel(struct
+       rt2x00_set_field32(&tx_pin, TX_PIN_CFG_RFTR_EN, 1);
+       rt2x00_set_field32(&tx_pin, TX_PIN_CFG_TRSW_EN, 1);
+-      rt2x00_set_field32(&tx_pin, TX_PIN_CFG_RFRX_EN, 1); /* mt7620 */
+       rt2800_register_write(rt2x00dev, TX_PIN_CFG, tx_pin);
diff --git a/package/kernel/mac80211/patches/rt2x00/019-rt2800-comment-and-simplify-AGC-init-for-RT6352.patch b/package/kernel/mac80211/patches/rt2x00/019-rt2800-comment-and-simplify-AGC-init-for-RT6352.patch
new file mode 100644 (file)
index 0000000..4d0beb2
--- /dev/null
@@ -0,0 +1,33 @@
+From c7ff1bfeaf1ca69e3e401be211b55d1738d0c5fc Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Wed, 13 Feb 2019 11:09:16 +0100
+Subject: [PATCH 19/28] rt2800: comment and simplify AGC init for RT6352
+
+We do not need separate lines for calculating register values.
+Also add comment that value is different than in vendor driver.
+
+Suggested-by: Daniel Golle <daniel@makrotopia.org>
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -3989,9 +3989,12 @@ static void rt2800_config_channel(struct
+               rt2800_bbp_write(rt2x00dev, 195, 141);
+               rt2800_bbp_write(rt2x00dev, 196, reg);
+-              /* AGC init */
+-              reg = rf->channel <= 14 ? 0x1c : 0x24;
+-              reg += 2 * rt2x00dev->lna_gain;
++              /* AGC init.
++               * Despite the vendor driver using different values here for
++               * RT6352 chip, we use 0x1c for now. This may have to be changed
++               * once TSSI got implemented.
++               */
++              reg = (rf->channel <= 14 ? 0x1c : 0x24) + 2*rt2x00dev->lna_gain;
+               rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg);
+               rt2800_iq_calibrate(rt2x00dev, rf->channel);
diff --git a/package/kernel/mac80211/patches/rt2x00/020-rt2x00-do-not-print-error-when-queue-is-full.patch b/package/kernel/mac80211/patches/rt2x00/020-rt2x00-do-not-print-error-when-queue-is-full.patch
new file mode 100644 (file)
index 0000000..5098672
--- /dev/null
@@ -0,0 +1,33 @@
+From 1a8a8989b779e51e4652a30e9f22c36a1b6ffc4b Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Thu, 20 Dec 2018 16:16:11 +0100
+X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
+X-Patchwork-Id: 10739037
+X-Patchwork-Delegate: kvalo@adurom.com
+Subject: [PATCH 20/28] rt2x00: do not print error when queue is full
+
+For unknown reasons printk() on some context can cause CPU hung on
+embedded MT7620 AP/router MIPS platforms. What can result on wifi
+disconnects.
+
+This patch move queue full messages to debug level what is consistent
+with other mac80211 drivers which drop packet silently if tx queue is
+full. This make MT7620 OpenWRT routers more stable, what was reported
+by various users.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
+@@ -671,7 +671,7 @@ int rt2x00queue_write_tx_frame(struct da
+       spin_lock(&queue->tx_lock);
+       if (unlikely(rt2x00queue_full(queue))) {
+-              rt2x00_err(queue->rt2x00dev, "Dropping frame due to full tx queue %d\n",
++              rt2x00_dbg(queue->rt2x00dev, "Dropping frame due to full tx queue %d\n",
+                          queue->qid);
+               ret = -ENOBUFS;
+               goto out;
diff --git a/package/kernel/mac80211/patches/rt2x00/021-rt2800-partially-restore-old-mmio-txstatus-behaviour.patch b/package/kernel/mac80211/patches/rt2x00/021-rt2800-partially-restore-old-mmio-txstatus-behaviour.patch
new file mode 100644 (file)
index 0000000..52314a7
--- /dev/null
@@ -0,0 +1,128 @@
+From 91a5340db0526b7263bc8da14b120ea3129b5f28 Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Sat, 9 Feb 2019 12:08:31 +0100
+X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
+X-Patchwork-Id: 10804437
+X-Patchwork-Delegate: kvalo@adurom.com
+Subject: [PATCH 21/28] rt2800: partially restore old mmio txstatus behaviour
+
+Do not disable txstatus interrupt and add quota of processed tx statuses in
+one tasklet. Quota is needed to allow to fed device with new frames during
+processing of tx statuses.
+
+Patch fixes about 15% performance degradation on some scenarios coused by
+0b0d556e0ebb ("rt2800mmio: use txdone/txstatus routines from lib").
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+---
+ .../net/wireless/ralink/rt2x00/rt2800lib.c    |  4 +--
+ .../net/wireless/ralink/rt2x00/rt2800lib.h    |  2 +-
+ .../net/wireless/ralink/rt2x00/rt2800mmio.c   | 30 +++++--------------
+ .../net/wireless/ralink/rt2x00/rt2800usb.c    |  2 +-
+ 4 files changed, 12 insertions(+), 26 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -1100,7 +1100,7 @@ void rt2800_txdone_entry(struct queue_en
+ }
+ EXPORT_SYMBOL_GPL(rt2800_txdone_entry);
+-void rt2800_txdone(struct rt2x00_dev *rt2x00dev)
++void rt2800_txdone(struct rt2x00_dev *rt2x00dev, unsigned int quota)
+ {
+       struct data_queue *queue;
+       struct queue_entry *entry;
+@@ -1108,7 +1108,7 @@ void rt2800_txdone(struct rt2x00_dev *rt
+       u8 qid;
+       bool match;
+-      while (kfifo_get(&rt2x00dev->txstatus_fifo, &reg)) {
++      while (quota-- > 0 && kfifo_get(&rt2x00dev->txstatus_fifo, &reg)) {
+               /*
+                * TX_STA_FIFO_PID_QUEUE is a 2-bit field, thus qid is
+                * guaranteed to be one of the TX QIDs .
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
+@@ -195,7 +195,7 @@ void rt2800_process_rxwi(struct queue_en
+ void rt2800_txdone_entry(struct queue_entry *entry, u32 status, __le32 *txwi,
+                        bool match);
+-void rt2800_txdone(struct rt2x00_dev *rt2x00dev);
++void rt2800_txdone(struct rt2x00_dev *rt2x00dev, unsigned int quota);
+ void rt2800_txdone_nostatus(struct rt2x00_dev *rt2x00dev);
+ bool rt2800_txstatus_timeout(struct rt2x00_dev *rt2x00dev);
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
+@@ -255,20 +255,6 @@ void rt2800mmio_autowake_tasklet(unsigne
+ }
+ EXPORT_SYMBOL_GPL(rt2800mmio_autowake_tasklet);
+-static void rt2800mmio_txdone(struct rt2x00_dev *rt2x00dev)
+-{
+-      bool timeout = false;
+-
+-      while (!kfifo_is_empty(&rt2x00dev->txstatus_fifo) ||
+-             (timeout = rt2800_txstatus_timeout(rt2x00dev))) {
+-
+-              rt2800_txdone(rt2x00dev);
+-
+-              if (timeout)
+-                      rt2800_txdone_nostatus(rt2x00dev);
+-      }
+-}
+-
+ static bool rt2800mmio_fetch_txstatus(struct rt2x00_dev *rt2x00dev)
+ {
+       u32 status;
+@@ -305,14 +291,11 @@ void rt2800mmio_txstatus_tasklet(unsigne
+ {
+       struct rt2x00_dev *rt2x00dev = (struct rt2x00_dev *)data;
+-      do {
+-              rt2800mmio_txdone(rt2x00dev);
++      rt2800_txdone(rt2x00dev, 16);
+-      } while (rt2800mmio_fetch_txstatus(rt2x00dev));
++      if (!kfifo_is_empty(&rt2x00dev->txstatus_fifo))
++              tasklet_schedule(&rt2x00dev->txstatus_tasklet);
+-      if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
+-              rt2800mmio_enable_interrupt(rt2x00dev,
+-                                          INT_SOURCE_CSR_TX_FIFO_STATUS);
+ }
+ EXPORT_SYMBOL_GPL(rt2800mmio_txstatus_tasklet);
+@@ -339,8 +322,10 @@ irqreturn_t rt2800mmio_interrupt(int irq
+       mask = ~reg;
+       if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS)) {
++              rt2x00_set_field32(&mask, INT_MASK_CSR_TX_FIFO_STATUS, 1);
+               rt2800mmio_fetch_txstatus(rt2x00dev);
+-              tasklet_schedule(&rt2x00dev->txstatus_tasklet);
++              if (!kfifo_is_empty(&rt2x00dev->txstatus_fifo))
++                      tasklet_schedule(&rt2x00dev->txstatus_tasklet);
+       }
+       if (rt2x00_get_field32(reg, INT_SOURCE_CSR_PRE_TBTT))
+@@ -500,7 +485,8 @@ void rt2800mmio_flush_queue(struct data_
+                */
+               if (tx_queue) {
+                       tasklet_disable(&rt2x00dev->txstatus_tasklet);
+-                      rt2800mmio_txdone(rt2x00dev);
++                      rt2800_txdone(rt2x00dev, UINT_MAX);
++                      rt2800_txdone_nostatus(rt2x00dev);
+                       tasklet_enable(&rt2x00dev->txstatus_tasklet);
+               }
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
+@@ -480,7 +480,7 @@ static void rt2800usb_work_txdone(struct
+       while (!kfifo_is_empty(&rt2x00dev->txstatus_fifo) ||
+              rt2800_txstatus_timeout(rt2x00dev)) {
+-              rt2800_txdone(rt2x00dev);
++              rt2800_txdone(rt2x00dev, UINT_MAX);
+               rt2800_txdone_nostatus(rt2x00dev);
diff --git a/package/kernel/mac80211/patches/rt2x00/022-rt2800-new-flush-implementation-for-SoC-devices.patch b/package/kernel/mac80211/patches/rt2x00/022-rt2800-new-flush-implementation-for-SoC-devices.patch
new file mode 100644 (file)
index 0000000..e3a914a
--- /dev/null
@@ -0,0 +1,27 @@
+From 11f8ad1656035176bad9d89de7ea0e7fe6d82c32 Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Sat, 9 Feb 2019 12:08:32 +0100
+X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
+X-Patchwork-Id: 10804439
+X-Patchwork-Delegate: kvalo@adurom.com
+Subject: [PATCH 22/28] rt2800: new flush implementation for SoC devices
+
+Use new flush_queue() calback for SoC devices, what was already done for
+PCIe devices.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800soc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
+@@ -203,7 +203,7 @@ static const struct rt2x00lib_ops rt2800
+       .start_queue            = rt2800mmio_start_queue,
+       .kick_queue             = rt2800mmio_kick_queue,
+       .stop_queue             = rt2800mmio_stop_queue,
+-      .flush_queue            = rt2x00mmio_flush_queue,
++      .flush_queue            = rt2800mmio_flush_queue,
+       .write_tx_desc          = rt2800mmio_write_tx_desc,
+       .write_tx_data          = rt2800_write_tx_data,
+       .write_beacon           = rt2800_write_beacon,
diff --git a/package/kernel/mac80211/patches/rt2x00/023-rt2800-move-txstatus-pending-routine.patch b/package/kernel/mac80211/patches/rt2x00/023-rt2800-move-txstatus-pending-routine.patch
new file mode 100644 (file)
index 0000000..e5bfbec
--- /dev/null
@@ -0,0 +1,106 @@
+From 2bbea7645c3d095014a080db170941818650e141 Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Sat, 9 Feb 2019 12:08:33 +0100
+X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
+X-Patchwork-Id: 10804441
+X-Patchwork-Delegate: kvalo@adurom.com
+Subject: [PATCH 23/28] rt2800: move txstatus pending routine
+
+Move rt2800usb_txstatus_pending routine to rt2800lib. It will be reused
+by rt2800mmio code.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+---
+ .../net/wireless/ralink/rt2x00/rt2800lib.c    | 17 ++++++++++++++
+ .../net/wireless/ralink/rt2x00/rt2800lib.h    |  1 +
+ .../net/wireless/ralink/rt2x00/rt2800usb.c    | 22 +++----------------
+ 3 files changed, 21 insertions(+), 19 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -1183,6 +1183,23 @@ bool rt2800_txstatus_timeout(struct rt2x
+ }
+ EXPORT_SYMBOL_GPL(rt2800_txstatus_timeout);
++/*
++ * test if there is an entry in any TX queue for which DMA is done
++ * but the TX status has not been returned yet
++ */
++bool rt2800_txstatus_pending(struct rt2x00_dev *rt2x00dev)
++{
++      struct data_queue *queue;
++
++      tx_queue_for_each(rt2x00dev, queue) {
++              if (rt2x00queue_get_entry(queue, Q_INDEX_DMA_DONE) !=
++                  rt2x00queue_get_entry(queue, Q_INDEX_DONE))
++                      return true;
++      }
++      return false;
++}
++EXPORT_SYMBOL_GPL(rt2800_txstatus_pending);
++
+ void rt2800_txdone_nostatus(struct rt2x00_dev *rt2x00dev)
+ {
+       struct data_queue *queue;
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
+@@ -198,6 +198,7 @@ void rt2800_txdone_entry(struct queue_en
+ void rt2800_txdone(struct rt2x00_dev *rt2x00dev, unsigned int quota);
+ void rt2800_txdone_nostatus(struct rt2x00_dev *rt2x00dev);
+ bool rt2800_txstatus_timeout(struct rt2x00_dev *rt2x00dev);
++bool rt2800_txstatus_pending(struct rt2x00_dev *rt2x00dev);
+ void rt2800_write_beacon(struct queue_entry *entry, struct txentry_desc *txdesc);
+ void rt2800_clear_beacon(struct queue_entry *entry);
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
+@@ -100,22 +100,6 @@ static void rt2800usb_stop_queue(struct
+       }
+ }
+-/*
+- * test if there is an entry in any TX queue for which DMA is done
+- * but the TX status has not been returned yet
+- */
+-static bool rt2800usb_txstatus_pending(struct rt2x00_dev *rt2x00dev)
+-{
+-      struct data_queue *queue;
+-
+-      tx_queue_for_each(rt2x00dev, queue) {
+-              if (rt2x00queue_get_entry(queue, Q_INDEX_DMA_DONE) !=
+-                  rt2x00queue_get_entry(queue, Q_INDEX_DONE))
+-                      return true;
+-      }
+-      return false;
+-}
+-
+ #define TXSTATUS_READ_INTERVAL 1000000
+ static bool rt2800usb_tx_sta_fifo_read_completed(struct rt2x00_dev *rt2x00dev,
+@@ -145,7 +129,7 @@ static bool rt2800usb_tx_sta_fifo_read_c
+       if (rt2800_txstatus_timeout(rt2x00dev))
+               queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work);
+-      if (rt2800usb_txstatus_pending(rt2x00dev)) {
++      if (rt2800_txstatus_pending(rt2x00dev)) {
+               /* Read register after 1 ms */
+               hrtimer_start(&rt2x00dev->txstatus_timer,
+                             TXSTATUS_READ_INTERVAL,
+@@ -160,7 +144,7 @@ stop_reading:
+        * clear_bit someone could do rt2x00usb_interrupt_txdone, so recheck
+        * here again if status reading is needed.
+        */
+-      if (rt2800usb_txstatus_pending(rt2x00dev) &&
++      if (rt2800_txstatus_pending(rt2x00dev) &&
+           !test_and_set_bit(TX_STATUS_READING, &rt2x00dev->flags))
+               return true;
+       else
+@@ -489,7 +473,7 @@ static void rt2800usb_work_txdone(struct
+                * if the medium is busy, thus the TX_STA_FIFO entry is
+                * also delayed -> use a timer to retrieve it.
+                */
+-              if (rt2800usb_txstatus_pending(rt2x00dev))
++              if (rt2800_txstatus_pending(rt2x00dev))
+                       rt2800usb_async_read_tx_status(rt2x00dev);
+       }
+ }
diff --git a/package/kernel/mac80211/patches/rt2x00/024-rt2800mmio-fetch-tx-status-changes.patch b/package/kernel/mac80211/patches/rt2x00/024-rt2800mmio-fetch-tx-status-changes.patch
new file mode 100644 (file)
index 0000000..4bb62c2
--- /dev/null
@@ -0,0 +1,61 @@
+From f6a9618198e190a2ba09ce3f0aa8e9ee1763bd38 Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Sat, 9 Feb 2019 12:08:34 +0100
+X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
+X-Patchwork-Id: 10804443
+X-Patchwork-Delegate: kvalo@adurom.com
+Subject: [PATCH 24/28] rt2800mmio: fetch tx status changes
+
+Prepare to use rt2800mmio_fetch_txstatus() in concurrent manner and drop
+return value since is not longer needed.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800mmio.c | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
+@@ -255,12 +255,12 @@ void rt2800mmio_autowake_tasklet(unsigne
+ }
+ EXPORT_SYMBOL_GPL(rt2800mmio_autowake_tasklet);
+-static bool rt2800mmio_fetch_txstatus(struct rt2x00_dev *rt2x00dev)
++static void rt2800mmio_fetch_txstatus(struct rt2x00_dev *rt2x00dev)
+ {
+       u32 status;
+-      bool more = false;
++      unsigned long flags;
+-      /* FIXEME: rewrite this comment
++      /*
+        * The TX_FIFO_STATUS interrupt needs special care. We should
+        * read TX_STA_FIFO but we should do it immediately as otherwise
+        * the register can overflow and we would lose status reports.
+@@ -271,20 +271,21 @@ static bool rt2800mmio_fetch_txstatus(st
+        * because we can schedule the tasklet multiple times (when the
+        * interrupt fires again during tx status processing).
+        *
+-       * txstatus tasklet is called with INT_SOURCE_CSR_TX_FIFO_STATUS
+-       * disabled so have only one producer and one consumer - we don't
+-       * need to lock the kfifo.
++       * We also read statuses from tx status timeout timer, use
++       * lock to prevent concurent writes to fifo.
+        */
++
++      spin_lock_irqsave(&rt2x00dev->irqmask_lock, flags);
++
+       while (!kfifo_is_full(&rt2x00dev->txstatus_fifo)) {
+               status = rt2x00mmio_register_read(rt2x00dev, TX_STA_FIFO);
+               if (!rt2x00_get_field32(status, TX_STA_FIFO_VALID))
+                       break;
+               kfifo_put(&rt2x00dev->txstatus_fifo, status);
+-              more = true;
+       }
+-      return more;
++      spin_unlock_irqrestore(&rt2x00dev->irqmask_lock, flags);
+ }
+ void rt2800mmio_txstatus_tasklet(unsigned long data)
diff --git a/package/kernel/mac80211/patches/rt2x00/025-rt2800mmio-use-timer-and-work-for-handling-tx-status.patch b/package/kernel/mac80211/patches/rt2x00/025-rt2800mmio-use-timer-and-work-for-handling-tx-status.patch
new file mode 100644 (file)
index 0000000..bf038a5
--- /dev/null
@@ -0,0 +1,194 @@
+From 175c2548332b45b144af673e70fdbb1a947d7aba Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Sat, 9 Feb 2019 12:08:35 +0100
+X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
+X-Patchwork-Id: 10804445
+X-Patchwork-Delegate: kvalo@adurom.com
+Subject: [PATCH 25/28] rt2800mmio: use timer and work for handling tx statuses
+ timeouts
+
+Sometimes we can get into situation when there are pending statuses,
+but we do not get INT_SOURCE_CSR_TX_FIFO_STATUS. Handle this situation
+by arming timeout timer and read statuses (it will fix case when
+we just do not have irq) and queue work to handle case we missed
+statues from hardware FIFO.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+---
+ .../net/wireless/ralink/rt2x00/rt2800mmio.c   | 81 +++++++++++++++++--
+ .../net/wireless/ralink/rt2x00/rt2800mmio.h   |  1 +
+ .../net/wireless/ralink/rt2x00/rt2800pci.c    |  2 +-
+ .../net/wireless/ralink/rt2x00/rt2800soc.c    |  2 +-
+ .../net/wireless/ralink/rt2x00/rt2x00dev.c    |  4 +
+ 5 files changed, 82 insertions(+), 8 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
+@@ -426,6 +426,9 @@ void rt2800mmio_start_queue(struct data_
+ }
+ EXPORT_SYMBOL_GPL(rt2800mmio_start_queue);
++/* 200 ms */
++#define TXSTATUS_TIMEOUT 200000000
++
+ void rt2800mmio_kick_queue(struct data_queue *queue)
+ {
+       struct rt2x00_dev *rt2x00dev = queue->rt2x00dev;
+@@ -440,6 +443,8 @@ void rt2800mmio_kick_queue(struct data_q
+               entry = rt2x00queue_get_entry(queue, Q_INDEX);
+               rt2x00mmio_register_write(rt2x00dev, TX_CTX_IDX(queue->qid),
+                                         entry->entry_idx);
++              hrtimer_start(&rt2x00dev->txstatus_timer,
++                            TXSTATUS_TIMEOUT, HRTIMER_MODE_REL);
+               break;
+       case QID_MGMT:
+               entry = rt2x00queue_get_entry(queue, Q_INDEX);
+@@ -484,12 +489,8 @@ void rt2800mmio_flush_queue(struct data_
+                * For TX queues schedule completion tasklet to catch
+                * tx status timeouts, othewise just wait.
+                */
+-              if (tx_queue) {
+-                      tasklet_disable(&rt2x00dev->txstatus_tasklet);
+-                      rt2800_txdone(rt2x00dev, UINT_MAX);
+-                      rt2800_txdone_nostatus(rt2x00dev);
+-                      tasklet_enable(&rt2x00dev->txstatus_tasklet);
+-              }
++              if (tx_queue)
++                      queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work);
+               /*
+                * Wait for a little while to give the driver
+@@ -627,6 +628,10 @@ void rt2800mmio_clear_entry(struct queue
+               word = rt2x00_desc_read(entry_priv->desc, 1);
+               rt2x00_set_field32(&word, TXD_W1_DMA_DONE, 1);
+               rt2x00_desc_write(entry_priv->desc, 1, word);
++
++              /* If last entry stop txstatus timer */
++              if (entry->queue->length == 1)
++                      hrtimer_cancel(&rt2x00dev->txstatus_timer);
+       }
+ }
+ EXPORT_SYMBOL_GPL(rt2800mmio_clear_entry);
+@@ -759,6 +764,70 @@ int rt2800mmio_enable_radio(struct rt2x0
+ }
+ EXPORT_SYMBOL_GPL(rt2800mmio_enable_radio);
++static void rt2800mmio_work_txdone(struct work_struct *work)
++{
++      struct rt2x00_dev *rt2x00dev =
++          container_of(work, struct rt2x00_dev, txdone_work);
++
++      if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
++              return;
++
++      while (!kfifo_is_empty(&rt2x00dev->txstatus_fifo) ||
++             rt2800_txstatus_timeout(rt2x00dev)) {
++
++              tasklet_disable(&rt2x00dev->txstatus_tasklet);
++              rt2800_txdone(rt2x00dev, UINT_MAX);
++              rt2800_txdone_nostatus(rt2x00dev);
++              tasklet_enable(&rt2x00dev->txstatus_tasklet);
++      }
++
++      if (rt2800_txstatus_pending(rt2x00dev))
++              hrtimer_start(&rt2x00dev->txstatus_timer,
++                            TXSTATUS_TIMEOUT, HRTIMER_MODE_REL);
++}
++
++static enum hrtimer_restart rt2800mmio_tx_sta_fifo_timeout(struct hrtimer *timer)
++{
++      struct rt2x00_dev *rt2x00dev =
++          container_of(timer, struct rt2x00_dev, txstatus_timer);
++
++      if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
++              goto out;
++
++      if (!rt2800_txstatus_pending(rt2x00dev))
++              goto out;
++
++      rt2800mmio_fetch_txstatus(rt2x00dev);
++      if (!kfifo_is_empty(&rt2x00dev->txstatus_fifo))
++              tasklet_schedule(&rt2x00dev->txstatus_tasklet);
++      else
++              queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work);
++out:
++      return HRTIMER_NORESTART;
++}
++
++int rt2800mmio_probe_hw(struct rt2x00_dev *rt2x00dev)
++{
++      int retval;
++
++      retval = rt2800_probe_hw(rt2x00dev);
++      if (retval)
++              return retval;
++
++      /*
++       * Set txstatus timer function.
++       */
++      rt2x00dev->txstatus_timer.function = rt2800mmio_tx_sta_fifo_timeout;
++
++      /*
++       * Overwrite TX done handler
++       */
++      INIT_WORK(&rt2x00dev->txdone_work, rt2800mmio_work_txdone);
++
++      return 0;
++}
++EXPORT_SYMBOL_GPL(rt2800mmio_probe_hw);
++
+ MODULE_AUTHOR(DRV_PROJECT);
+ MODULE_VERSION(DRV_VERSION);
+ MODULE_DESCRIPTION("rt2800 MMIO library");
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.h
+@@ -153,6 +153,7 @@ void rt2800mmio_stop_queue(struct data_q
+ void rt2800mmio_queue_init(struct data_queue *queue);
+ /* Initialization functions */
++int rt2800mmio_probe_hw(struct rt2x00_dev *rt2x00dev);
+ bool rt2800mmio_get_entry_state(struct queue_entry *entry);
+ void rt2800mmio_clear_entry(struct queue_entry *entry);
+ int rt2800mmio_init_queues(struct rt2x00_dev *rt2x00dev);
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
+@@ -346,7 +346,7 @@ static const struct rt2x00lib_ops rt2800
+       .tbtt_tasklet           = rt2800mmio_tbtt_tasklet,
+       .rxdone_tasklet         = rt2800mmio_rxdone_tasklet,
+       .autowake_tasklet       = rt2800mmio_autowake_tasklet,
+-      .probe_hw               = rt2800_probe_hw,
++      .probe_hw               = rt2800mmio_probe_hw,
+       .get_firmware_name      = rt2800pci_get_firmware_name,
+       .check_firmware         = rt2800_check_firmware,
+       .load_firmware          = rt2800_load_firmware,
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
+@@ -185,7 +185,7 @@ static const struct rt2x00lib_ops rt2800
+       .tbtt_tasklet           = rt2800mmio_tbtt_tasklet,
+       .rxdone_tasklet         = rt2800mmio_rxdone_tasklet,
+       .autowake_tasklet       = rt2800mmio_autowake_tasklet,
+-      .probe_hw               = rt2800_probe_hw,
++      .probe_hw               = rt2800mmio_probe_hw,
+       .get_firmware_name      = rt2800soc_get_firmware_name,
+       .check_firmware         = rt2800soc_check_firmware,
+       .load_firmware          = rt2800soc_load_firmware,
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
+@@ -1391,6 +1391,8 @@ int rt2x00lib_probe_dev(struct rt2x00_de
+       mutex_init(&rt2x00dev->conf_mutex);
+       INIT_LIST_HEAD(&rt2x00dev->bar_list);
+       spin_lock_init(&rt2x00dev->bar_list_lock);
++      hrtimer_init(&rt2x00dev->txstatus_timer, CLOCK_MONOTONIC,
++                   HRTIMER_MODE_REL);
+       set_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags);
+@@ -1515,6 +1517,8 @@ void rt2x00lib_remove_dev(struct rt2x00_
+       cancel_delayed_work_sync(&rt2x00dev->autowakeup_work);
+       cancel_work_sync(&rt2x00dev->sleep_work);
++      hrtimer_cancel(&rt2x00dev->txstatus_timer);
++
+       /*
+        * Kill the tx status tasklet.
+        */
diff --git a/package/kernel/mac80211/patches/rt2x00/026-rt2x00-remove-last_nostatus_check.patch b/package/kernel/mac80211/patches/rt2x00/026-rt2x00-remove-last_nostatus_check.patch
new file mode 100644 (file)
index 0000000..0daaef5
--- /dev/null
@@ -0,0 +1,57 @@
+From 6013a91f15c9dabd668d5736652b9bcfb0ef0378 Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Sat, 9 Feb 2019 12:08:36 +0100
+X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
+X-Patchwork-Id: 10804447
+X-Patchwork-Delegate: kvalo@adurom.com
+Subject: [PATCH 26/28] rt2x00: remove last_nostatus_check
+
+We do not any longer check txstatus timeout from tasklet, so do not need
+this optimization.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c   | 9 ---------
+ drivers/net/wireless/ralink/rt2x00/rt2x00.h      | 2 --
+ drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 1 -
+ 3 files changed, 12 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -1164,15 +1164,6 @@ bool rt2800_txstatus_timeout(struct rt2x
+       struct data_queue *queue;
+       struct queue_entry *entry;
+-      if (!test_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags)) {
+-              unsigned long tout = msecs_to_jiffies(1000);
+-
+-              if (time_before(jiffies, rt2x00dev->last_nostatus_check + tout))
+-                      return false;
+-      }
+-
+-      rt2x00dev->last_nostatus_check = jiffies;
+-
+       tx_queue_for_each(rt2x00dev, queue) {
+               entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
+               if (rt2800_entry_txstatus_timeout(rt2x00dev, entry))
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+@@ -981,8 +981,6 @@ struct rt2x00_dev {
+        */
+       DECLARE_KFIFO_PTR(txstatus_fifo, u32);
+-      unsigned long last_nostatus_check;
+-
+       /*
+        * Timer to ensure tx status reports are read (rt2800usb).
+        */
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
+@@ -1039,7 +1039,6 @@ void rt2x00queue_start_queues(struct rt2
+        */
+       tx_queue_for_each(rt2x00dev, queue)
+               rt2x00queue_start_queue(queue);
+-      rt2x00dev->last_nostatus_check = jiffies;
+       rt2x00queue_start_queue(rt2x00dev->rx);
+ }
diff --git a/package/kernel/mac80211/patches/rt2x00/027-rt2x00-remove-not-used-entry-field.patch b/package/kernel/mac80211/patches/rt2x00/027-rt2x00-remove-not-used-entry-field.patch
new file mode 100644 (file)
index 0000000..53134a5
--- /dev/null
@@ -0,0 +1,34 @@
+From 2758f09b22bc08e89e0391486b2d707ad2479599 Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Sat, 9 Feb 2019 12:08:37 +0100
+X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
+X-Patchwork-Id: 10804449
+X-Patchwork-Delegate: kvalo@adurom.com
+Subject: [PATCH 27/28] rt2x00: remove not used entry field
+
+Remove not used any longer queue_entry field and flag.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2x00queue.h | 3 ---
+ 1 file changed, 3 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.h
+@@ -361,7 +361,6 @@ enum queue_entry_flags {
+       ENTRY_DATA_PENDING,
+       ENTRY_DATA_IO_FAILED,
+       ENTRY_DATA_STATUS_PENDING,
+-      ENTRY_DATA_STATUS_SET,
+ };
+ /**
+@@ -387,8 +386,6 @@ struct queue_entry {
+       unsigned int entry_idx;
+-      u32 status;
+-
+       void *priv_data;
+ };
diff --git a/package/kernel/mac80211/patches/rt2x00/028-rt2x00mmio-remove-legacy-comment.patch b/package/kernel/mac80211/patches/rt2x00/028-rt2x00mmio-remove-legacy-comment.patch
new file mode 100644 (file)
index 0000000..199a6e3
--- /dev/null
@@ -0,0 +1,26 @@
+From f44e145869bb517460648e4ed71b7e9001964d06 Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Sat, 9 Feb 2019 12:08:38 +0100
+X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
+X-Patchwork-Id: 10804451
+X-Patchwork-Delegate: kvalo@adurom.com
+Subject: [PATCH 28/28] rt2x00mmio: remove legacy comment
+
+Remove comment about fields that ware removed.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2x00mmio.h | 2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2x00mmio.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00mmio.h
+@@ -80,8 +80,6 @@ int rt2x00mmio_regbusy_read(struct rt2x0
+  *
+  * @desc: Pointer to device descriptor
+  * @desc_dma: DMA pointer to &desc.
+- * @data: Pointer to device's entry memory.
+- * @data_dma: DMA pointer to &data.
+  */
+ struct queue_entry_priv_mmio {
+       __le32 *desc;
diff --git a/package/kernel/mac80211/patches/rt2x00/030-rt2x00_options.patch b/package/kernel/mac80211/patches/rt2x00/030-rt2x00_options.patch
deleted file mode 100644 (file)
index 9dd3481..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/drivers/net/wireless/ralink/rt2x00/Kconfig
-+++ b/drivers/net/wireless/ralink/rt2x00/Kconfig
-@@ -225,36 +225,37 @@ config RT2800SOC
- config RT2800_LIB
--      tristate
-+      tristate "RT2800 USB/PCI support"
-       depends on m
- config RT2800_LIB_MMIO
--      tristate
-+      tristate "RT2800 MMIO support"
-       depends on m
-       select RT2X00_LIB_MMIO
-       select RT2800_LIB
- config RT2X00_LIB_MMIO
--      tristate
-+      tristate "RT2x00 MMIO support"
-       depends on m
- config RT2X00_LIB_PCI
--      tristate
-+      tristate "RT2x00 PCI support"
-       depends on m
-       select RT2X00_LIB
- config RT2X00_LIB_SOC
--      tristate
-+      tristate "RT2x00 SoC support"
-+      depends on SOC_RT288X || SOC_RT305X || SOC_MT7620
-       depends on m
-       select RT2X00_LIB
- config RT2X00_LIB_USB
--      tristate
-+      tristate "RT2x00 USB support"
-       depends on m
-       select RT2X00_LIB
- config RT2X00_LIB
--      tristate
-+      tristate "RT2x00 support"
-       depends on m
- config RT2X00_LIB_FIRMWARE
diff --git a/package/kernel/mac80211/patches/rt2x00/100-rt2x00_options.patch b/package/kernel/mac80211/patches/rt2x00/100-rt2x00_options.patch
new file mode 100644 (file)
index 0000000..9dd3481
--- /dev/null
@@ -0,0 +1,47 @@
+--- a/drivers/net/wireless/ralink/rt2x00/Kconfig
++++ b/drivers/net/wireless/ralink/rt2x00/Kconfig
+@@ -225,36 +225,37 @@ config RT2800SOC
+ config RT2800_LIB
+-      tristate
++      tristate "RT2800 USB/PCI support"
+       depends on m
+ config RT2800_LIB_MMIO
+-      tristate
++      tristate "RT2800 MMIO support"
+       depends on m
+       select RT2X00_LIB_MMIO
+       select RT2800_LIB
+ config RT2X00_LIB_MMIO
+-      tristate
++      tristate "RT2x00 MMIO support"
+       depends on m
+ config RT2X00_LIB_PCI
+-      tristate
++      tristate "RT2x00 PCI support"
+       depends on m
+       select RT2X00_LIB
+ config RT2X00_LIB_SOC
+-      tristate
++      tristate "RT2x00 SoC support"
++      depends on SOC_RT288X || SOC_RT305X || SOC_MT7620
+       depends on m
+       select RT2X00_LIB
+ config RT2X00_LIB_USB
+-      tristate
++      tristate "RT2x00 USB support"
+       depends on m
+       select RT2X00_LIB
+ config RT2X00_LIB
+-      tristate
++      tristate "RT2x00 support"
+       depends on m
+ config RT2X00_LIB_FIRMWARE
diff --git a/package/kernel/mac80211/patches/rt2x00/501-rt2x00-allow-to-build-rt2800soc-module-for-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/501-rt2x00-allow-to-build-rt2800soc-module-for-RT3883.patch
new file mode 100644 (file)
index 0000000..699989b
--- /dev/null
@@ -0,0 +1,30 @@
+From 91094ed065f7794886b4a5490fd6de942f036bb4 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sun, 24 Mar 2013 19:26:26 +0100
+Subject: [PATCH] rt2x00: allow to build rt2800soc module for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/Kconfig |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/Kconfig
++++ b/drivers/net/wireless/ralink/rt2x00/Kconfig
+@@ -210,7 +210,7 @@ endif
+ config RT2800SOC
+       tristate "Ralink WiSoC support"
+       depends on m
+-      depends on SOC_RT288X || SOC_RT305X || SOC_MT7620
++      depends on SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620
+       select RT2X00_LIB_SOC
+       select RT2X00_LIB_MMIO
+       select RT2X00_LIB_CRYPTO
+@@ -245,7 +245,7 @@ config RT2X00_LIB_PCI
+ config RT2X00_LIB_SOC
+       tristate "RT2x00 SoC support"
+-      depends on SOC_RT288X || SOC_RT305X || SOC_MT7620
++      depends on SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620
+       depends on m
+       select RT2X00_LIB
diff --git a/package/kernel/mac80211/patches/rt2x00/502-rt2x00-rt2800lib-enable-support-for-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/502-rt2x00-rt2800lib-enable-support-for-RT3883.patch
new file mode 100644 (file)
index 0000000..95cdc7f
--- /dev/null
@@ -0,0 +1,20 @@
+From 4f16582c93a71eba9d389e0f0a8aa9099a9587cd Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sun, 24 Mar 2013 19:26:26 +0100
+Subject: [PATCH] rt2x00: rt2800lib: enable support for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -9578,6 +9578,7 @@ static int rt2800_probe_rt(struct rt2x00
+       case RT3390:
+       case RT3572:
+       case RT3593:
++      case RT3883:
+       case RT5350:
+       case RT5390:
+       case RT5392:
diff --git a/package/kernel/mac80211/patches/rt2x00/503-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch b/package/kernel/mac80211/patches/rt2x00/503-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch
new file mode 100644 (file)
index 0000000..1603196
--- /dev/null
@@ -0,0 +1,112 @@
+From ecb394ccf248d8652c463133c4f404458a57a9c1 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sun, 24 Mar 2013 19:26:26 +0100
+Subject: [PATCH] rt2x00: rt2800lib: add rf_vals for RF3853
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800.h    |    4 +-
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |   65 +++++++++++++++++++++++++++++++
+ 2 files changed, 68 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h
+@@ -48,7 +48,8 @@
+  * RF2853 2.4G/5G 3T3R
+  * RF3320 2.4G 1T1R(RT3350/RT3370/RT3390)
+  * RF3322 2.4G 2T2R(RT3352/RT3371/RT3372/RT3391/RT3392)
+- * RF3053 2.4G/5G 3T3R(RT3883/RT3563/RT3573/RT3593/RT3662)
++ * RF3053 2.4G/5G 3T3R(RT3563/RT3573/RT3593)
++ * RF3853 2.4G/5G 3T3R(RT3883/RT3662)
+  * RF5592 2.4G/5G 2T2R
+  * RF3070 2.4G 1T1R
+  * RF5360 2.4G 1T1R
+@@ -72,6 +73,7 @@
+ #define RF5592                                0x000f
+ #define RF3070                                0x3070
+ #define RF3290                                0x3290
++#define RF3853                                0x3853
+ #define RF5350                                0x5350
+ #define RF5360                                0x5360
+ #define RF5362                                0x5362
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -9154,6 +9154,66 @@ static const struct rf_channel rf_vals_3
+       {14,   0xF0,     2,  0x18},
+ };
++static const struct rf_channel rf_vals_3853[] = {
++      {1,  241, 6, 2},
++      {2,  241, 6, 7},
++      {3,  242, 6, 2},
++      {4,  242, 6, 7},
++      {5,  243, 6, 2},
++      {6,  243, 6, 7},
++      {7,  244, 6, 2},
++      {8,  244, 6, 7},
++      {9,  245, 6, 2},
++      {10, 245, 6, 7},
++      {11, 246, 6, 2},
++      {12, 246, 6, 7},
++      {13, 247, 6, 2},
++      {14, 248, 6, 4},
++
++      {36, 0x56, 8, 4},
++      {38, 0x56, 8, 6},
++      {40, 0x56, 8, 8},
++      {44, 0x57, 8, 0},
++      {46, 0x57, 8, 2},
++      {48, 0x57, 8, 4},
++      {52, 0x57, 8, 8},
++      {54, 0x57, 8, 10},
++      {56, 0x58, 8, 0},
++      {60, 0x58, 8, 4},
++      {62, 0x58, 8, 6},
++      {64, 0x58, 8, 8},
++
++      {100, 0x5b, 8, 8},
++      {102, 0x5b, 8, 10},
++      {104, 0x5c, 8, 0},
++      {108, 0x5c, 8, 4},
++      {110, 0x5c, 8, 6},
++      {112, 0x5c, 8, 8},
++      {114, 0x5c, 8, 10},
++      {116, 0x5d, 8, 0},
++      {118, 0x5d, 8, 2},
++      {120, 0x5d, 8, 4},
++      {124, 0x5d, 8, 8},
++      {126, 0x5d, 8, 10},
++      {128, 0x5e, 8, 0},
++      {132, 0x5e, 8, 4},
++      {134, 0x5e, 8, 6},
++      {136, 0x5e, 8, 8},
++      {140, 0x5f, 8, 0},
++
++      {149, 0x5f, 8, 9},
++      {151, 0x5f, 8, 11},
++      {153, 0x60, 8, 1},
++      {157, 0x60, 8, 5},
++      {159, 0x60, 8, 7},
++      {161, 0x60, 8, 9},
++      {165, 0x61, 8, 1},
++      {167, 0x61, 8, 3},
++      {169, 0x61, 8, 5},
++      {171, 0x61, 8, 7},
++      {173, 0x61, 8, 9},
++};
++
+ static const struct rf_channel rf_vals_5592_xtal20[] = {
+       /* Channel, N, K, mod, R */
+       {1, 482, 4, 10, 3},
+@@ -9417,6 +9477,11 @@ static int rt2800_probe_hw_mode(struct r
+               spec->channels = rf_vals_3x;
+               break;
++      case RF3853:
++              spec->num_channels = ARRAY_SIZE(rf_vals_3853);
++              spec->channels = rf_vals_3853;
++              break;
++
+       case RF5592:
+               reg = rt2800_register_read(rt2x00dev, MAC_DEBUG_INDEX);
+               if (rt2x00_get_field32(reg, MAC_DEBUG_INDEX_XTAL)) {
diff --git a/package/kernel/mac80211/patches/rt2x00/504-rt2x00-rt2800lib-enable-VCO-calibration-for-RF3853.patch b/package/kernel/mac80211/patches/rt2x00/504-rt2x00-rt2800lib-enable-VCO-calibration-for-RF3853.patch
new file mode 100644 (file)
index 0000000..dbe5926
--- /dev/null
@@ -0,0 +1,28 @@
+From f8e3fcf18e1f2d7f9e6a9680c5452da090f33d88 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Thu, 1 Aug 2013 14:40:44 +0200
+Subject: [PATCH] rt2x00: rt2800lib: enable VCO calibration for RF3853
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -5051,6 +5051,7 @@ void rt2800_vco_calibration(struct rt2x0
+       case RF3053:
+       case RF3070:
+       case RF3290:
++      case RF3853:
+       case RF5350:
+       case RF5360:
+       case RF5362:
+@@ -9601,6 +9602,7 @@ static int rt2800_probe_hw_mode(struct r
+       case RF3053:
+       case RF3070:
+       case RF3290:
++      case RF3853:
+       case RF5350:
+       case RF5360:
+       case RF5362:
diff --git a/package/kernel/mac80211/patches/rt2x00/505-rt2x00-rt2800lib-add-channel-configuration-function-.patch b/package/kernel/mac80211/patches/rt2x00/505-rt2x00-rt2800lib-add-channel-configuration-function-.patch
new file mode 100644 (file)
index 0000000..dc538df
--- /dev/null
@@ -0,0 +1,235 @@
+From 6e3a17190815c6aa4dc53c2cfe9125fb1154f187 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sun, 24 Mar 2013 19:26:27 +0100
+Subject: [PATCH] rt2x00: rt2800lib: add channel configuration function for
+ RF3853
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  208 +++++++++++++++++++++++++++++++
+ 1 file changed, 208 insertions(+)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -2880,6 +2880,211 @@ static void rt2800_config_channel_rf3053
+       }
+ }
++static void rt2800_config_channel_rf3853(struct rt2x00_dev *rt2x00dev,
++                                       struct ieee80211_conf *conf,
++                                       struct rf_channel *rf,
++                                       struct channel_info *info)
++{
++      u8 rfcsr;
++      u8 bbp;
++      u8 pwr1, pwr2, pwr3;
++
++      const bool txbf_enabled = false; /* TODO */
++
++      /* TODO: add band selection */
++
++      if (rf->channel <= 14)
++              rt2800_rfcsr_write(rt2x00dev, 6, 0x40);
++      else if (rf->channel < 132)
++              rt2800_rfcsr_write(rt2x00dev, 6, 0x80);
++      else
++              rt2800_rfcsr_write(rt2x00dev, 6, 0x40);
++
++      rt2800_rfcsr_write(rt2x00dev, 8, rf->rf1);
++      rt2800_rfcsr_write(rt2x00dev, 9, rf->rf3);
++
++      if (rf->channel <= 14)
++              rt2800_rfcsr_write(rt2x00dev, 11, 0x46);
++      else
++              rt2800_rfcsr_write(rt2x00dev, 11, 0x48);
++
++      if (rf->channel <= 14)
++              rt2800_rfcsr_write(rt2x00dev, 12, 0x1a);
++      else
++              rt2800_rfcsr_write(rt2x00dev, 12, 0x52);
++
++      rt2800_rfcsr_write(rt2x00dev, 13, 0x12);
++
++      rfcsr = rt2800_rfcsr_read(rt2x00dev, 1);
++      rt2x00_set_field8(&rfcsr, RFCSR1_RX0_PD, 0);
++      rt2x00_set_field8(&rfcsr, RFCSR1_TX0_PD, 0);
++      rt2x00_set_field8(&rfcsr, RFCSR1_RX1_PD, 0);
++      rt2x00_set_field8(&rfcsr, RFCSR1_TX1_PD, 0);
++      rt2x00_set_field8(&rfcsr, RFCSR1_RX2_PD, 0);
++      rt2x00_set_field8(&rfcsr, RFCSR1_TX2_PD, 0);
++      rt2x00_set_field8(&rfcsr, RFCSR1_RF_BLOCK_EN, 1);
++      rt2x00_set_field8(&rfcsr, RFCSR1_PLL_PD, 1);
++
++      switch (rt2x00dev->default_ant.tx_chain_num) {
++      case 3:
++              rt2x00_set_field8(&rfcsr, RFCSR1_TX2_PD, 1);
++              /* fallthrough */
++      case 2:
++              rt2x00_set_field8(&rfcsr, RFCSR1_TX1_PD, 1);
++              /* fallthrough */
++      case 1:
++              rt2x00_set_field8(&rfcsr, RFCSR1_TX0_PD, 1);
++              break;
++      }
++
++      switch (rt2x00dev->default_ant.rx_chain_num) {
++      case 3:
++              rt2x00_set_field8(&rfcsr, RFCSR1_RX2_PD, 1);
++              /* fallthrough */
++      case 2:
++              rt2x00_set_field8(&rfcsr, RFCSR1_RX1_PD, 1);
++              /* fallthrough */
++      case 1:
++              rt2x00_set_field8(&rfcsr, RFCSR1_RX0_PD, 1);
++              break;
++      }
++      rt2800_rfcsr_write(rt2x00dev, 1, rfcsr);
++
++      rt2800_freq_cal_mode1(rt2x00dev);
++
++      rfcsr = rt2800_rfcsr_read(rt2x00dev, 30);
++      if (!conf_is_ht40(conf))
++              rfcsr &= ~(0x06);
++      else
++              rfcsr |= 0x06;
++      rt2800_rfcsr_write(rt2x00dev, 30, rfcsr);
++
++      if (rf->channel <= 14)
++              rt2800_rfcsr_write(rt2x00dev, 31, 0xa0);
++      else
++              rt2800_rfcsr_write(rt2x00dev, 31, 0x80);
++
++      if (conf_is_ht40(conf))
++              rt2800_rfcsr_write(rt2x00dev, 32, 0x80);
++      else
++              rt2800_rfcsr_write(rt2x00dev, 32, 0xd8);
++
++      if (rf->channel <= 14)
++              rt2800_rfcsr_write(rt2x00dev, 34, 0x3c);
++      else
++              rt2800_rfcsr_write(rt2x00dev, 34, 0x20);
++
++      /* loopback RF_BS */
++      rfcsr = rt2800_rfcsr_read(rt2x00dev, 36);
++      if (rf->channel <= 14)
++              rt2x00_set_field8(&rfcsr, RFCSR36_RF_BS, 1);
++      else
++              rt2x00_set_field8(&rfcsr, RFCSR36_RF_BS, 0);
++      rt2800_rfcsr_write(rt2x00dev, 36, rfcsr);
++
++      if (rf->channel <= 14)
++              rfcsr = 0x23;
++      else if (rf->channel < 100)
++              rfcsr = 0x36;
++      else if (rf->channel < 132)
++              rfcsr = 0x32;
++      else
++              rfcsr = 0x30;
++
++      if (txbf_enabled)
++              rfcsr |= 0x40;
++
++      rt2800_rfcsr_write(rt2x00dev, 39, rfcsr);
++
++      if (rf->channel <= 14)
++              rt2800_rfcsr_write(rt2x00dev, 44, 0x93);
++      else
++              rt2800_rfcsr_write(rt2x00dev, 44, 0x9b);
++
++      if (rf->channel <= 14)
++              rfcsr = 0xbb;
++      else if (rf->channel < 100)
++              rfcsr = 0xeb;
++      else if (rf->channel < 132)
++              rfcsr = 0xb3;
++      else
++              rfcsr = 0x9b;
++      rt2800_rfcsr_write(rt2x00dev, 45, rfcsr);
++
++      if (rf->channel <= 14)
++              rfcsr = 0x8e;
++      else
++              rfcsr = 0x8a;
++
++      if (txbf_enabled)
++              rfcsr |= 0x20;
++
++      rt2800_rfcsr_write(rt2x00dev, 49, rfcsr);
++
++      rt2800_rfcsr_write(rt2x00dev, 50, 0x86);
++
++      rfcsr = rt2800_rfcsr_read(rt2x00dev, 51);
++      if (rf->channel <= 14)
++              rt2800_rfcsr_write(rt2x00dev, 51, 0x75);
++      else
++              rt2800_rfcsr_write(rt2x00dev, 51, 0x51);
++
++      rfcsr = rt2800_rfcsr_read(rt2x00dev, 52);
++      if (rf->channel <= 14)
++              rt2800_rfcsr_write(rt2x00dev, 52, 0x45);
++      else
++              rt2800_rfcsr_write(rt2x00dev, 52, 0x05);
++
++      if (rf->channel <= 14) {
++              pwr1 = info->default_power1 & 0x1f;
++              pwr2 = info->default_power2 & 0x1f;
++              pwr3 = info->default_power3 & 0x1f;
++      } else {
++              pwr1 = 0x48 | ((info->default_power1 & 0x18) << 1) |
++                      (info->default_power1 & 0x7);
++              pwr2 = 0x48 | ((info->default_power2 & 0x18) << 1) |
++                      (info->default_power2 & 0x7);
++              pwr3 = 0x48 | ((info->default_power3 & 0x18) << 1) |
++                      (info->default_power3 & 0x7);
++      }
++
++      rt2800_rfcsr_write(rt2x00dev, 53, pwr1);
++      rt2800_rfcsr_write(rt2x00dev, 54, pwr2);
++      rt2800_rfcsr_write(rt2x00dev, 55, pwr3);
++
++      rt2x00_dbg(rt2x00dev, "Channel:%d, pwr1:%02x, pwr2:%02x, pwr3:%02x\n",
++                 rf->channel, pwr1, pwr2, pwr3);
++
++      bbp = (info->default_power1 >> 5) |
++            ((info->default_power2 & 0xe0) >> 1);
++      rt2800_bbp_write(rt2x00dev, 109, bbp);
++
++      bbp = rt2800_bbp_read(rt2x00dev, 110);
++      bbp &= 0x0f;
++      bbp |= (info->default_power3 & 0xe0) >> 1;
++      rt2800_bbp_write(rt2x00dev, 110, bbp);
++
++      rfcsr = rt2800_rfcsr_read(rt2x00dev, 57);
++      if (rf->channel <= 14)
++              rt2800_rfcsr_write(rt2x00dev, 57, 0x6e);
++      else
++              rt2800_rfcsr_write(rt2x00dev, 57, 0x3e);
++
++      /* Enable RF tuning */
++      rfcsr = rt2800_rfcsr_read(rt2x00dev, 3);
++      rt2x00_set_field8(&rfcsr, RFCSR3_VCOCAL_EN, 1);
++      rt2800_rfcsr_write(rt2x00dev, 3, rfcsr);
++
++      udelay(2000);
++
++      bbp = rt2800_bbp_read(rt2x00dev, 49);
++      /* clear update flag */
++      rt2800_bbp_write(rt2x00dev, 49, bbp & 0xfe);
++      rt2800_bbp_write(rt2x00dev, 49, bbp);
++
++      /* TODO: add calibration for TxBF */
++}
++
+ #define POWER_BOUND           0x27
+ #define POWER_BOUND_5G                0x2b
+@@ -3734,6 +3939,9 @@ static void rt2800_config_channel(struct
+       case RF3322:
+               rt2800_config_channel_rf3322(rt2x00dev, conf, rf, info);
+               break;
++      case RF3853:
++              rt2800_config_channel_rf3853(rt2x00dev, conf, rf, info);
++              break;
+       case RF3070:
+       case RF5350:
+       case RF5360:
diff --git a/package/kernel/mac80211/patches/rt2x00/506-rt2x00-rt2800lib-enable-RF3853-support.patch b/package/kernel/mac80211/patches/rt2x00/506-rt2x00-rt2800lib-enable-RF3853-support.patch
new file mode 100644 (file)
index 0000000..c6ffd7a
--- /dev/null
@@ -0,0 +1,20 @@
+From afd38ae82226551bf879b6c7c4b620c271fee9d2 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Thu, 1 Aug 2013 14:42:05 +0200
+Subject: [PATCH] rt2x00: rt2800lib: enable RF3853 support
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -9077,6 +9077,7 @@ static int rt2800_init_eeprom(struct rt2
+       case RF3290:
+       case RF3320:
+       case RF3322:
++      case RF3853:
+       case RF5350:
+       case RF5360:
+       case RF5362:
diff --git a/package/kernel/mac80211/patches/rt2x00/507-rt2x00-rt2800lib-add-MAC-register-initialization-for.patch b/package/kernel/mac80211/patches/rt2x00/507-rt2x00-rt2800lib-add-MAC-register-initialization-for.patch
new file mode 100644 (file)
index 0000000..102374a
--- /dev/null
@@ -0,0 +1,62 @@
+From 0094872a5e8e4664c6ea1b2dfa487063d39ae363 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sun, 24 Mar 2013 19:26:26 +0100
+Subject: [PATCH] rt2x00: rt2800lib: add MAC register initialization for
+ RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800.h    |   14 ++++++++++++++
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |   19 ++++++++++++++++---
+ 2 files changed, 30 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h
+@@ -1728,6 +1728,20 @@
+ #define TX_PWR_CFG_9B_STBC_MCS7               FIELD32(0x000000ff)
+ /*
++ * TX_TXBF_CFG:
++ */
++#define TX_TXBF_CFG_0                 0x138c
++#define TX_TXBF_CFG_1                 0x13a4
++#define TX_TXBF_CFG_2                 0x13a8
++#define TX_TXBF_CFG_3                 0x13ac
++
++/*
++ * TX_FBK_CFG_3S:
++ */
++#define TX_FBK_CFG_3S_0                       0x13c4
++#define TX_FBK_CFG_3S_1                       0x13c8
++
++/*
+  * RX_FILTER_CFG: RX configuration register.
+  */
+ #define RX_FILTER_CFG                 0x1400
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -5679,6 +5679,12 @@ static int rt2800_init_registers(struct
+                       rt2800_register_write(rt2x00dev, TX_SW_CFG2,
+                                             0x00000000);
+               }
++      } else if (rt2x00_rt(rt2x00dev, RT3883)) {
++              rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000402);
++              rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00000000);
++              rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00040000);
++              rt2800_register_write(rt2x00dev, TX_TXBF_CFG_0, 0x8000fc21);
++              rt2800_register_write(rt2x00dev, TX_TXBF_CFG_3, 0x00009c40);
+       } else if (rt2x00_rt(rt2x00dev, RT5390) ||
+                  rt2x00_rt(rt2x00dev, RT5392) ||
+                  rt2x00_rt(rt2x00dev, RT6352)) {
+@@ -5892,6 +5898,11 @@ static int rt2800_init_registers(struct
+       reg = rt2x00_rt(rt2x00dev, RT5592) ? 0x00000082 : 0x00000002;
+       rt2800_register_write(rt2x00dev, TXOP_HLDR_ET, reg);
++      if (rt2x00_rt(rt2x00dev, RT3883)) {
++              rt2800_register_write(rt2x00dev, TX_FBK_CFG_3S_0, 0x12111008);
++              rt2800_register_write(rt2x00dev, TX_FBK_CFG_3S_1, 0x16151413);
++      }
++
+       reg = rt2800_register_read(rt2x00dev, TX_RTS_CFG);
+       rt2x00_set_field32(&reg, TX_RTS_CFG_AUTO_RTS_RETRY_LIMIT, 7);
+       rt2x00_set_field32(&reg, TX_RTS_CFG_RTS_THRES,
diff --git a/package/kernel/mac80211/patches/rt2x00/508-rt2x00-rt2800soc-fix-rt2800soc_disable_radio-for-RT3.patch b/package/kernel/mac80211/patches/rt2x00/508-rt2x00-rt2800soc-fix-rt2800soc_disable_radio-for-RT3.patch
new file mode 100644 (file)
index 0000000..d68ad50
--- /dev/null
@@ -0,0 +1,30 @@
+From 6c2d32478159fffff0b85abb6817a21bb2338231 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sun, 24 Mar 2013 19:26:27 +0100
+Subject: [PATCH] rt2x00: rt2800soc: fix rt2800soc_disable_radio for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800soc.c |    9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
+@@ -51,9 +51,16 @@ static bool rt2800soc_hwcrypt_disabled(s
+ static void rt2800soc_disable_radio(struct rt2x00_dev *rt2x00dev)
+ {
++      u32 reg;
++
+       rt2800_disable_radio(rt2x00dev);
+       rt2x00mmio_register_write(rt2x00dev, PWR_PIN_CFG, 0);
+-      rt2x00mmio_register_write(rt2x00dev, TX_PIN_CFG, 0);
++
++      reg = 0;
++      if (rt2x00_rt(rt2x00dev, RT3883))
++              rt2x00_set_field32(&reg, TX_PIN_CFG_RFTR_EN, 1);
++
++      rt2x00mmio_register_write(rt2x00dev, TX_PIN_CFG, reg);
+ }
+ static int rt2800soc_set_device_state(struct rt2x00_dev *rt2x00dev,
diff --git a/package/kernel/mac80211/patches/rt2x00/509-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch b/package/kernel/mac80211/patches/rt2x00/509-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch
new file mode 100644 (file)
index 0000000..3879d0f
--- /dev/null
@@ -0,0 +1,71 @@
+From 84833056aa7dd25f5b097e31c78f2a0914c5160c Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sun, 24 Mar 2013 19:26:26 +0100
+Subject: [PATCH] rt2x00: rt2800lib: add BBP register initialization for
+ RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |   44 +++++++++++++++++++++++++++++++
+ 1 file changed, 44 insertions(+)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -6519,6 +6519,47 @@ static void rt2800_init_bbp_3593(struct
+               rt2800_bbp_write(rt2x00dev, 103, 0xc0);
+ }
++static void rt2800_init_bbp_3883(struct rt2x00_dev *rt2x00dev)
++{
++      rt2800_init_bbp_early(rt2x00dev);
++
++      rt2800_bbp_write(rt2x00dev, 4, 0x50);
++      rt2800_bbp_write(rt2x00dev, 47, 0x48);
++
++      rt2800_bbp_write(rt2x00dev, 86, 0x46);
++      rt2800_bbp_write(rt2x00dev, 88, 0x90);
++
++      rt2800_bbp_write(rt2x00dev, 92, 0x02);
++
++      rt2800_bbp_write(rt2x00dev, 103, 0xc0);
++      rt2800_bbp_write(rt2x00dev, 104, 0x92);
++      rt2800_bbp_write(rt2x00dev, 105, 0x34);
++      rt2800_bbp_write(rt2x00dev, 106, 0x12);
++      rt2800_bbp_write(rt2x00dev, 120, 0x50);
++      rt2800_bbp_write(rt2x00dev, 137, 0x0f);
++      rt2800_bbp_write(rt2x00dev, 163, 0x9d);
++
++      /* Set ITxBF timeout to 0x9C40=1000msec */
++      rt2800_bbp_write(rt2x00dev, 179, 0x02);
++      rt2800_bbp_write(rt2x00dev, 180, 0x00);
++      rt2800_bbp_write(rt2x00dev, 182, 0x40);
++      rt2800_bbp_write(rt2x00dev, 180, 0x01);
++      rt2800_bbp_write(rt2x00dev, 182, 0x9c);
++
++      rt2800_bbp_write(rt2x00dev, 179, 0x00);
++
++      /* Reprogram the inband interface to put right values in RXWI */
++      rt2800_bbp_write(rt2x00dev, 142, 0x04);
++      rt2800_bbp_write(rt2x00dev, 143, 0x3b);
++      rt2800_bbp_write(rt2x00dev, 142, 0x06);
++      rt2800_bbp_write(rt2x00dev, 143, 0xa0);
++      rt2800_bbp_write(rt2x00dev, 142, 0x07);
++      rt2800_bbp_write(rt2x00dev, 143, 0xa1);
++      rt2800_bbp_write(rt2x00dev, 142, 0x08);
++      rt2800_bbp_write(rt2x00dev, 143, 0xa2);
++      rt2800_bbp_write(rt2x00dev, 148, 0xc8);
++}
++
+ static void rt2800_init_bbp_53xx(struct rt2x00_dev *rt2x00dev)
+ {
+       int ant, div_mode;
+@@ -6963,6 +7004,9 @@ static void rt2800_init_bbp(struct rt2x0
+       case RT3593:
+               rt2800_init_bbp_3593(rt2x00dev);
+               return;
++      case RT3883:
++              rt2800_init_bbp_3883(rt2x00dev);
++              return;
+       case RT5390:
+       case RT5392:
+               rt2800_init_bbp_53xx(rt2x00dev);
diff --git a/package/kernel/mac80211/patches/rt2x00/510-rt2x00-rt2800lib-add-RFCSR-initialization-for-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/510-rt2x00-rt2800lib-add-RFCSR-initialization-for-RT3883.patch
new file mode 100644 (file)
index 0000000..c3c37e9
--- /dev/null
@@ -0,0 +1,178 @@
+From 99c659cf345640fd0f733cbcaf4583cc2c868ec0 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Mon, 29 Apr 2013 13:21:48 +0200
+Subject: [PATCH] rt2x00: rt2800lib: add RFCSR initialization for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800.h    |    1 +
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  141 +++++++++++++++++++++++++++++++
+ 2 files changed, 142 insertions(+)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h
+@@ -2312,6 +2312,7 @@ struct mac_iveiv_entry {
+ /*
+  * RFCSR 2:
+  */
++#define RFCSR2_RESCAL_BP              FIELD8(0x40)
+ #define RFCSR2_RESCAL_EN              FIELD8(0x80)
+ #define RFCSR2_RX2_EN_MT7620          FIELD8(0x02)
+ #define RFCSR2_TX2_EN_MT7620          FIELD8(0x20)
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -7878,6 +7878,144 @@ static void rt2800_init_rfcsr_5350(struc
+       rt2800_rfcsr_write(rt2x00dev, 63, 0x00);
+ }
++static void rt2800_init_rfcsr_3883(struct rt2x00_dev *rt2x00dev)
++{
++      u8 rfcsr;
++
++      /* TODO: get the actual ECO value from the SoC */
++      const unsigned int eco = 5;
++
++      rt2800_rf_init_calibration(rt2x00dev, 2);
++
++      rt2800_rfcsr_write(rt2x00dev, 0, 0xe0);
++      rt2800_rfcsr_write(rt2x00dev, 1, 0x03);
++      rt2800_rfcsr_write(rt2x00dev, 2, 0x50);
++      rt2800_rfcsr_write(rt2x00dev, 3, 0x20);
++      rt2800_rfcsr_write(rt2x00dev, 4, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 5, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 6, 0x40);
++      rt2800_rfcsr_write(rt2x00dev, 7, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 8, 0x5b);
++      rt2800_rfcsr_write(rt2x00dev, 9, 0x08);
++      rt2800_rfcsr_write(rt2x00dev, 10, 0xd3);
++      rt2800_rfcsr_write(rt2x00dev, 11, 0x48);
++      rt2800_rfcsr_write(rt2x00dev, 12, 0x1a);
++      rt2800_rfcsr_write(rt2x00dev, 13, 0x12);
++      rt2800_rfcsr_write(rt2x00dev, 14, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 15, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 16, 0x00);
++
++      /* RFCSR 17 will be initialized later based on the
++       * frequency offset stored in the EEPROM
++       */
++
++      rt2800_rfcsr_write(rt2x00dev, 18, 0x40);
++      rt2800_rfcsr_write(rt2x00dev, 19, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 20, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 21, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 22, 0x20);
++      rt2800_rfcsr_write(rt2x00dev, 23, 0xc0);
++      rt2800_rfcsr_write(rt2x00dev, 24, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 25, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 26, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 27, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 28, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 29, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 30, 0x10);
++      rt2800_rfcsr_write(rt2x00dev, 31, 0x80);
++      rt2800_rfcsr_write(rt2x00dev, 32, 0x80);
++      rt2800_rfcsr_write(rt2x00dev, 33, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 34, 0x20);
++      rt2800_rfcsr_write(rt2x00dev, 35, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 36, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 37, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 38, 0x86);
++      rt2800_rfcsr_write(rt2x00dev, 39, 0x23);
++      rt2800_rfcsr_write(rt2x00dev, 40, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 41, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 42, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 43, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 44, 0x93);
++      rt2800_rfcsr_write(rt2x00dev, 45, 0xbb);
++      rt2800_rfcsr_write(rt2x00dev, 46, 0x60);
++      rt2800_rfcsr_write(rt2x00dev, 47, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 48, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 49, 0x8e);
++      rt2800_rfcsr_write(rt2x00dev, 50, 0x86);
++      rt2800_rfcsr_write(rt2x00dev, 51, 0x51);
++      rt2800_rfcsr_write(rt2x00dev, 52, 0x05);
++      rt2800_rfcsr_write(rt2x00dev, 53, 0x76);
++      rt2800_rfcsr_write(rt2x00dev, 54, 0x76);
++      rt2800_rfcsr_write(rt2x00dev, 55, 0x76);
++      rt2800_rfcsr_write(rt2x00dev, 56, 0xdb);
++      rt2800_rfcsr_write(rt2x00dev, 57, 0x3e);
++      rt2800_rfcsr_write(rt2x00dev, 58, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 59, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 60, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 61, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 62, 0x00);
++      rt2800_rfcsr_write(rt2x00dev, 63, 0x00);
++
++      /* TODO: rx filter calibration? */
++
++      rt2800_bbp_write(rt2x00dev, 137, 0x0f);
++
++      rt2800_bbp_write(rt2x00dev, 163, 0x9d);
++
++      rt2800_bbp_write(rt2x00dev, 105, 0x05);
++
++      rt2800_bbp_write(rt2x00dev, 179, 0x02);
++      rt2800_bbp_write(rt2x00dev, 180, 0x00);
++      rt2800_bbp_write(rt2x00dev, 182, 0x40);
++      rt2800_bbp_write(rt2x00dev, 180, 0x01);
++      rt2800_bbp_write(rt2x00dev, 182, 0x9c);
++
++      rt2800_bbp_write(rt2x00dev, 179, 0x00);
++
++      rt2800_bbp_write(rt2x00dev, 142, 0x04);
++      rt2800_bbp_write(rt2x00dev, 143, 0x3b);
++      rt2800_bbp_write(rt2x00dev, 142, 0x06);
++      rt2800_bbp_write(rt2x00dev, 143, 0xa0);
++      rt2800_bbp_write(rt2x00dev, 142, 0x07);
++      rt2800_bbp_write(rt2x00dev, 143, 0xa1);
++      rt2800_bbp_write(rt2x00dev, 142, 0x08);
++      rt2800_bbp_write(rt2x00dev, 143, 0xa2);
++      rt2800_bbp_write(rt2x00dev, 148, 0xc8);
++
++      if (eco == 5) {
++              rt2800_rfcsr_write(rt2x00dev, 32, 0xd8);
++              rt2800_rfcsr_write(rt2x00dev, 33, 0x32);
++      }
++
++      rfcsr = rt2800_rfcsr_read(rt2x00dev, 2);
++      rt2x00_set_field8(&rfcsr, RFCSR2_RESCAL_BP, 0);
++      rt2x00_set_field8(&rfcsr, RFCSR2_RESCAL_EN, 1);
++      rt2800_rfcsr_write(rt2x00dev, 2, rfcsr);
++      msleep(1);
++      rt2x00_set_field8(&rfcsr, RFCSR2_RESCAL_EN, 0);
++      rt2800_rfcsr_write(rt2x00dev, 2, rfcsr);
++
++      rfcsr = rt2800_rfcsr_read(rt2x00dev, 1);
++      rt2x00_set_field8(&rfcsr, RFCSR1_RF_BLOCK_EN, 1);
++      rt2800_rfcsr_write(rt2x00dev, 1, rfcsr);
++
++      rfcsr = rt2800_rfcsr_read(rt2x00dev, 6);
++      rfcsr |= 0xc0;
++      rt2800_rfcsr_write(rt2x00dev, 6, rfcsr);
++
++      rfcsr = rt2800_rfcsr_read(rt2x00dev, 22);
++      rfcsr |= 0x20;
++      rt2800_rfcsr_write(rt2x00dev, 22, rfcsr);
++
++      rfcsr = rt2800_rfcsr_read(rt2x00dev, 46);
++      rfcsr |= 0x20;
++      rt2800_rfcsr_write(rt2x00dev, 46, rfcsr);
++
++      rfcsr = rt2800_rfcsr_read(rt2x00dev, 20);
++      rfcsr &= ~0xee;
++      rt2800_rfcsr_write(rt2x00dev, 20, rfcsr);
++}
++
+ static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev)
+ {
+       rt2800_rf_init_calibration(rt2x00dev, 2);
+@@ -8720,6 +8858,9 @@ static void rt2800_init_rfcsr(struct rt2
+       case RT3390:
+               rt2800_init_rfcsr_3390(rt2x00dev);
+               break;
++      case RT3883:
++              rt2800_init_rfcsr_3883(rt2x00dev);
++              break;
+       case RT3572:
+               rt2800_init_rfcsr_3572(rt2x00dev);
+               break;
diff --git a/package/kernel/mac80211/patches/rt2x00/511-rt2x00-rt2800lib-use-the-extended-EEPROM-map-for-RT3.patch b/package/kernel/mac80211/patches/rt2x00/511-rt2x00-rt2800lib-use-the-extended-EEPROM-map-for-RT3.patch
new file mode 100644 (file)
index 0000000..e74f399
--- /dev/null
@@ -0,0 +1,22 @@
+From 86022438ffeb1b87dfcd018bf477fdbb43076691 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Wed, 8 May 2013 19:35:33 +0200
+Subject: [PATCH] rt2x00: rt2800lib: use the extended EEPROM map for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -381,7 +381,8 @@ static unsigned int rt2800_eeprom_word_i
+                     wiphy_name(rt2x00dev->hw->wiphy), word))
+               return 0;
+-      if (rt2x00_rt(rt2x00dev, RT3593))
++      if (rt2x00_rt(rt2x00dev, RT3593) ||
++          rt2x00_rt(rt2x00dev, RT3883))
+               map = rt2800_eeprom_map_ext;
+       else
+               map = rt2800_eeprom_map;
diff --git a/package/kernel/mac80211/patches/rt2x00/512-rt2x00-rt2800lib-force-rf-type-to-RF3853-on-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/512-rt2x00-rt2800lib-force-rf-type-to-RF3853-on-RT3883.patch
new file mode 100644 (file)
index 0000000..62a199d
--- /dev/null
@@ -0,0 +1,21 @@
+From 4cf5403f02fa65dc2207f61d223cffa9ae50e907 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Thu, 1 Aug 2013 14:48:21 +0200
+Subject: [PATCH] rt2x00: rt2800lib: force rf type to RF3853 on RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -9254,6 +9254,8 @@ static int rt2800_init_eeprom(struct rt2
+               rf = rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID);
+       else if (rt2x00_rt(rt2x00dev, RT3352))
+               rf = RF3322;
++      else if (rt2x00_rt(rt2x00dev, RT3883))
++              rf = RF3853;
+       else if (rt2x00_rt(rt2x00dev, RT5350))
+               rf = RF5350;
+       else
diff --git a/package/kernel/mac80211/patches/rt2x00/513-rt2x00-rt2800lib-add-channel-configuration-code-for-.patch b/package/kernel/mac80211/patches/rt2x00/513-rt2x00-rt2800lib-add-channel-configuration-code-for-.patch
new file mode 100644 (file)
index 0000000..2b08690
--- /dev/null
@@ -0,0 +1,136 @@
+From 269f19c848a2380db03a3f207cafb88e28d71c53 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sun, 24 Mar 2013 19:26:28 +0100
+Subject: [PATCH] rt2x00: rt2800lib: add channel configuration code for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |   72 +++++++++++++++++++++++++++++--
+ 1 file changed, 69 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -3902,6 +3902,36 @@ static char rt2800_txpower_to_dev(struct
+               return clamp_t(char, txpower, MIN_A_TXPOWER, MAX_A_TXPOWER);
+ }
++static void rt3883_bbp_adjust(struct rt2x00_dev *rt2x00dev,
++                            struct rf_channel *rf)
++{
++      u8 bbp;
++
++      bbp = (rf->channel > 14) ? 0x48 : 0x38;
++      rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, bbp);
++
++      rt2800_bbp_write(rt2x00dev, 69, 0x12);
++
++      if (rf->channel <= 14) {
++              rt2800_bbp_write(rt2x00dev, 70, 0x0a);
++      } else {
++              /* Disable CCK packet detection */
++              rt2800_bbp_write(rt2x00dev, 70, 0x00);
++      }
++
++      rt2800_bbp_write(rt2x00dev, 73, 0x10);
++
++      if (rf->channel > 14) {
++              rt2800_bbp_write(rt2x00dev, 62, 0x1d);
++              rt2800_bbp_write(rt2x00dev, 63, 0x1d);
++              rt2800_bbp_write(rt2x00dev, 64, 0x1d);
++      } else {
++              rt2800_bbp_write(rt2x00dev, 62, 0x2d);
++              rt2800_bbp_write(rt2x00dev, 63, 0x2d);
++              rt2800_bbp_write(rt2x00dev, 64, 0x2d);
++      }
++}
++
+ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
+                                 struct ieee80211_conf *conf,
+                                 struct rf_channel *rf,
+@@ -3920,6 +3950,12 @@ static void rt2800_config_channel(struct
+                       rt2800_txpower_to_dev(rt2x00dev, rf->channel,
+                                             info->default_power3);
++      switch (rt2x00dev->chip.rt) {
++      case RT3883:
++              rt3883_bbp_adjust(rt2x00dev, rf);
++              break;
++      }
++
+       switch (rt2x00dev->chip.rf) {
+       case RF2020:
+       case RF3020:
+@@ -4024,6 +4060,15 @@ static void rt2800_config_channel(struct
+               rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
+               rt2800_bbp_write(rt2x00dev, 64, 0x37 - rt2x00dev->lna_gain);
+               rt2800_bbp_write(rt2x00dev, 77, 0x98);
++      } else if (rt2x00_rt(rt2x00dev, RT3883)) {
++              rt2800_bbp_write(rt2x00dev, 62, 0x37 - rt2x00dev->lna_gain);
++              rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
++              rt2800_bbp_write(rt2x00dev, 64, 0x37 - rt2x00dev->lna_gain);
++
++              if (rt2x00dev->default_ant.rx_chain_num > 1)
++                      rt2800_bbp_write(rt2x00dev, 86, 0x46);
++              else
++                      rt2800_bbp_write(rt2x00dev, 86, 0);
+       } else {
+               rt2800_bbp_write(rt2x00dev, 62, 0x37 - rt2x00dev->lna_gain);
+               rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
+@@ -4037,6 +4082,7 @@ static void rt2800_config_channel(struct
+                   !rt2x00_rt(rt2x00dev, RT6352)) {
+                       if (rt2x00_has_cap_external_lna_bg(rt2x00dev)) {
+                               rt2800_bbp_write(rt2x00dev, 82, 0x62);
++                              rt2800_bbp_write(rt2x00dev, 82, 0x62);
+                               rt2800_bbp_write(rt2x00dev, 75, 0x46);
+                       } else {
+                               if (rt2x00_rt(rt2x00dev, RT3593))
+@@ -4045,19 +4091,22 @@ static void rt2800_config_channel(struct
+                                       rt2800_bbp_write(rt2x00dev, 82, 0x84);
+                               rt2800_bbp_write(rt2x00dev, 75, 0x50);
+                       }
+-                      if (rt2x00_rt(rt2x00dev, RT3593))
++                      if (rt2x00_rt(rt2x00dev, RT3593) ||
++                          rt2x00_rt(rt2x00dev, RT3883))
+                               rt2800_bbp_write(rt2x00dev, 83, 0x8a);
+               }
+       } else {
+               if (rt2x00_rt(rt2x00dev, RT3572))
+                       rt2800_bbp_write(rt2x00dev, 82, 0x94);
+-              else if (rt2x00_rt(rt2x00dev, RT3593))
++              else if (rt2x00_rt(rt2x00dev, RT3593) ||
++                       rt2x00_rt(rt2x00dev, RT3883))
+                       rt2800_bbp_write(rt2x00dev, 82, 0x82);
+               else if (!rt2x00_rt(rt2x00dev, RT6352))
+                       rt2800_bbp_write(rt2x00dev, 82, 0xf2);
+-              if (rt2x00_rt(rt2x00dev, RT3593))
++              if (rt2x00_rt(rt2x00dev, RT3593) ||
++                  rt2x00_rt(rt2x00dev, RT3883))
+                       rt2800_bbp_write(rt2x00dev, 83, 0x9a);
+               if (rt2x00_has_cap_external_lna_a(rt2x00dev))
+@@ -4190,6 +4239,23 @@ static void rt2800_config_channel(struct
+               rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg);
++              usleep_range(1000, 1500);
++      }
++
++      if (rt2x00_rt(rt2x00dev, RT3883)) {
++              if (!conf_is_ht40(conf))
++                      rt2800_bbp_write(rt2x00dev, 105, 0x34);
++              else
++                      rt2800_bbp_write(rt2x00dev, 105, 0x04);
++
++              /* AGC init */
++              if (rf->channel <= 14)
++                      reg = 0x2e + rt2x00dev->lna_gain;
++              else
++                      reg = 0x20 + ((rt2x00dev->lna_gain * 5) / 3);
++
++              rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg);
++
+               usleep_range(1000, 1500);
+       }
diff --git a/package/kernel/mac80211/patches/rt2x00/514-rt2x00-rt2800lib-fix-txpower_to_dev-function-for-RT3.patch b/package/kernel/mac80211/patches/rt2x00/514-rt2x00-rt2800lib-fix-txpower_to_dev-function-for-RT3.patch
new file mode 100644 (file)
index 0000000..48283ce
--- /dev/null
@@ -0,0 +1,30 @@
+From e37d93abaabe3ab72b0332a18092acc162307274 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Mon, 30 Sep 2013 13:57:26 +0200
+Subject: [PATCH] rt2x00: rt2800lib: fix txpower_to_dev function for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -3889,13 +3889,15 @@ static char rt2800_txpower_to_dev(struct
+                                 unsigned int channel,
+                                 char txpower)
+ {
+-      if (rt2x00_rt(rt2x00dev, RT3593))
++      if (rt2x00_rt(rt2x00dev, RT3593) ||
++          rt2x00_rt(rt2x00dev, RT3883))
+               txpower = rt2x00_get_field8(txpower, EEPROM_TXPOWER_ALC);
+       if (channel <= 14)
+               return clamp_t(char, txpower, MIN_G_TXPOWER, MAX_G_TXPOWER);
+-      if (rt2x00_rt(rt2x00dev, RT3593))
++      if (rt2x00_rt(rt2x00dev, RT3593) ||
++          rt2x00_rt(rt2x00dev, RT3883))
+               return clamp_t(char, txpower, MIN_A_TXPOWER_3593,
+                              MAX_A_TXPOWER_3593);
+       else
diff --git a/package/kernel/mac80211/patches/rt2x00/515-rt2x00-rt2800lib-use-correct-txpower-calculation-fun.patch b/package/kernel/mac80211/patches/rt2x00/515-rt2x00-rt2800lib-use-correct-txpower-calculation-fun.patch
new file mode 100644 (file)
index 0000000..a764c91
--- /dev/null
@@ -0,0 +1,23 @@
+From c4d79e344bd580d85821390d49f92dced7d8e125 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sun, 24 Mar 2013 19:26:29 +0100
+Subject: [PATCH] rt2x00: rt2800lib: use correct txpower calculation function
+ for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -5281,7 +5281,8 @@ static void rt2800_config_txpower(struct
+                                 struct ieee80211_channel *chan,
+                                 int power_level)
+ {
+-      if (rt2x00_rt(rt2x00dev, RT3593))
++      if (rt2x00_rt(rt2x00dev, RT3593) ||
++          rt2x00_rt(rt2x00dev, RT3883))
+               rt2800_config_txpower_rt3593(rt2x00dev, chan, power_level);
+       else if (rt2x00_rt(rt2x00dev, RT6352))
+               rt2800_config_txpower_rt6352(rt2x00dev, chan, power_level);
diff --git a/package/kernel/mac80211/patches/rt2x00/516-rt2x00-rt2800lib-hardcode-txmixer-gain-values-to-zer.patch b/package/kernel/mac80211/patches/rt2x00/516-rt2x00-rt2800lib-hardcode-txmixer-gain-values-to-zer.patch
new file mode 100644 (file)
index 0000000..37239c3
--- /dev/null
@@ -0,0 +1,33 @@
+From caea0671cd8fd9ade4f5969cbe0ee545e94ae105 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sat, 24 Aug 2013 11:49:55 +0200
+Subject: [PATCH] rt2x00: rt2800lib: hardcode txmixer gain values to zero for
+ RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -9136,7 +9136,8 @@ static u8 rt2800_get_txmixer_gain_24g(st
+ {
+       u16 word;
+-      if (rt2x00_rt(rt2x00dev, RT3593))
++      if (rt2x00_rt(rt2x00dev, RT3593) ||
++          rt2x00_rt(rt2x00dev, RT3883))
+               return 0;
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_BG);
+@@ -9150,7 +9151,8 @@ static u8 rt2800_get_txmixer_gain_5g(str
+ {
+       u16 word;
+-      if (rt2x00_rt(rt2x00dev, RT3593))
++      if (rt2x00_rt(rt2x00dev, RT3593) ||
++          rt2x00_rt(rt2x00dev, RT3883))
+               return 0;
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_A);
diff --git a/package/kernel/mac80211/patches/rt2x00/517-rt2x00-rt2800lib-use-correct-RT-XWI-size-for-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/517-rt2x00-rt2800lib-use-correct-RT-XWI-size-for-RT3883.patch
new file mode 100644 (file)
index 0000000..197aabd
--- /dev/null
@@ -0,0 +1,20 @@
+From 11c40fb47c4a4dd6ad060c2ae127ced89ffb9fe1 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Thu, 18 Apr 2013 14:33:33 +0200
+Subject: [PATCH] rt2x00: rt2800lib: use correct [RT]XWI size for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -591,6 +591,7 @@ void rt2800_get_txwi_rxwi_size(struct rt
+ {
+       switch (rt2x00dev->chip.rt) {
+       case RT3593:
++      case RT3883:
+               *txwi_size = TXWI_DESC_SIZE_4WORDS;
+               *rxwi_size = RXWI_DESC_SIZE_5WORDS;
+               break;
diff --git a/package/kernel/mac80211/patches/rt2x00/518-rt2x00-rt2800lib-fix-antenna-configuration-for-RT388.patch b/package/kernel/mac80211/patches/rt2x00/518-rt2x00-rt2800lib-fix-antenna-configuration-for-RT388.patch
new file mode 100644 (file)
index 0000000..30da2cb
--- /dev/null
@@ -0,0 +1,22 @@
+From fa5ad9c025610c22048add2f0ad03f62b6ca1e74 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Mon, 30 Sep 2013 16:53:33 +0200
+Subject: [PATCH] rt2x00: rt2800lib: fix antenna configuration for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -2182,7 +2182,8 @@ void rt2800_config_ant(struct rt2x00_dev
+       rt2800_bbp_write(rt2x00dev, 3, r3);
+       rt2800_bbp_write(rt2x00dev, 1, r1);
+-      if (rt2x00_rt(rt2x00dev, RT3593)) {
++      if (rt2x00_rt(rt2x00dev, RT3593) ||
++          rt2x00_rt(rt2x00dev, RT3883)) {
+               if (ant->rx_chain_num == 1)
+                       rt2800_bbp_write(rt2x00dev, 86, 0x00);
+               else
diff --git a/package/kernel/mac80211/patches/rt2x00/519-rt2x00-rt2800lib-fix-LNA-gain-configuration-for-RT38.patch b/package/kernel/mac80211/patches/rt2x00/519-rt2x00-rt2800lib-fix-LNA-gain-configuration-for-RT38.patch
new file mode 100644 (file)
index 0000000..2514d82
--- /dev/null
@@ -0,0 +1,32 @@
+From 6d668fef3a1baa60bdd715ee062ddb6333d2647c Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Mon, 30 Sep 2013 16:58:23 +0200
+Subject: [PATCH] rt2x00: rt2800lib: fix LNA gain configuration for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -2205,7 +2205,8 @@ static void rt2800_config_lna_gain(struc
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_LNA);
+               lna_gain = rt2x00_get_field16(eeprom, EEPROM_LNA_A0);
+       } else if (libconf->rf.channel <= 128) {
+-              if (rt2x00_rt(rt2x00dev, RT3593)) {
++              if (rt2x00_rt(rt2x00dev, RT3593) ||
++                  rt2x00_rt(rt2x00dev, RT3883)) {
+                       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2);
+                       lna_gain = rt2x00_get_field16(eeprom,
+                                                     EEPROM_EXT_LNA2_A1);
+@@ -2215,7 +2216,8 @@ static void rt2800_config_lna_gain(struc
+                                                     EEPROM_RSSI_BG2_LNA_A1);
+               }
+       } else {
+-              if (rt2x00_rt(rt2x00dev, RT3593)) {
++              if (rt2x00_rt(rt2x00dev, RT3593) ||
++                  rt2x00_rt(rt2x00dev, RT3883)) {
+                       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2);
+                       lna_gain = rt2x00_get_field16(eeprom,
+                                                     EEPROM_EXT_LNA2_A2);
diff --git a/package/kernel/mac80211/patches/rt2x00/520-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/520-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch
new file mode 100644 (file)
index 0000000..49393c2
--- /dev/null
@@ -0,0 +1,44 @@
+From c49b2d829aa1c816a46a577cdec6d2ff14d9f06e Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Tue, 1 Oct 2013 15:40:08 +0200
+Subject: [PATCH] rt2x00: rt2800lib: fix VGC setup for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |   11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -5534,7 +5534,8 @@ static u8 rt2800_get_default_vgc(struct
+               else
+                       vgc = 0x2e + rt2x00dev->lna_gain;
+       } else { /* 5GHZ band */
+-              if (rt2x00_rt(rt2x00dev, RT3593))
++              if (rt2x00_rt(rt2x00dev, RT3593) ||
++                  rt2x00_rt(rt2x00dev, RT3883))
+                       vgc = 0x20 + (rt2x00dev->lna_gain * 5) / 3;
+               else if (rt2x00_rt(rt2x00dev, RT5592))
+                       vgc = 0x24 + (2 * rt2x00dev->lna_gain);
+@@ -5554,7 +5555,8 @@ static inline void rt2800_set_vgc(struct
+ {
+       if (qual->vgc_level != vgc_level) {
+               if (rt2x00_rt(rt2x00dev, RT3572) ||
+-                  rt2x00_rt(rt2x00dev, RT3593)) {
++                  rt2x00_rt(rt2x00dev, RT3593) ||
++                  rt2x00_rt(rt2x00dev, RT3883)) {
+                       rt2800_bbp_write_with_rx_chain(rt2x00dev, 66,
+                                                      vgc_level);
+               } else if (rt2x00_rt(rt2x00dev, RT5592)) {
+@@ -5601,6 +5603,11 @@ void rt2800_link_tuner(struct rt2x00_dev
+               }
+               break;
++      case RT3883:
++              if (qual->rssi > -65)
++                      vgc += 0x10;
++              break;
++
+       case RT5592:
+               if (qual->rssi > -65)
+                       vgc += 0x20;
diff --git a/package/kernel/mac80211/patches/rt2x00/521-rt2x00-rt2800lib-fix-EEPROM-LNA-validation-for-RT388.patch b/package/kernel/mac80211/patches/rt2x00/521-rt2x00-rt2800lib-fix-EEPROM-LNA-validation-for-RT388.patch
new file mode 100644 (file)
index 0000000..1e1fb6e
--- /dev/null
@@ -0,0 +1,42 @@
+From 1616650aea676541d4dc8adc6f4219856d193c8b Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Tue, 1 Oct 2013 17:27:57 +0200
+Subject: [PATCH] rt2x00: rt2800lib: fix EEPROM LNA validation for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -9269,7 +9269,8 @@ static int rt2800_validate_eeprom(struct
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2);
+       if (abs(rt2x00_get_field16(word, EEPROM_RSSI_BG2_OFFSET2)) > 10)
+               rt2x00_set_field16(&word, EEPROM_RSSI_BG2_OFFSET2, 0);
+-      if (!rt2x00_rt(rt2x00dev, RT3593)) {
++      if (!rt2x00_rt(rt2x00dev, RT3593) &&
++          !rt2x00_rt(rt2x00dev, RT3883)) {
+               if (rt2x00_get_field16(word, EEPROM_RSSI_BG2_LNA_A1) == 0x00 ||
+                   rt2x00_get_field16(word, EEPROM_RSSI_BG2_LNA_A1) == 0xff)
+                       rt2x00_set_field16(&word, EEPROM_RSSI_BG2_LNA_A1,
+@@ -9289,7 +9290,8 @@ static int rt2800_validate_eeprom(struct
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A2);
+       if (abs(rt2x00_get_field16(word, EEPROM_RSSI_A2_OFFSET2)) > 10)
+               rt2x00_set_field16(&word, EEPROM_RSSI_A2_OFFSET2, 0);
+-      if (!rt2x00_rt(rt2x00dev, RT3593)) {
++      if (!rt2x00_rt(rt2x00dev, RT3593) &&
++          !rt2x00_rt(rt2x00dev, RT3883)) {
+               if (rt2x00_get_field16(word, EEPROM_RSSI_A2_LNA_A2) == 0x00 ||
+                   rt2x00_get_field16(word, EEPROM_RSSI_A2_LNA_A2) == 0xff)
+                       rt2x00_set_field16(&word, EEPROM_RSSI_A2_LNA_A2,
+@@ -9297,7 +9299,8 @@ static int rt2800_validate_eeprom(struct
+       }
+       rt2800_eeprom_write(rt2x00dev, EEPROM_RSSI_A2, word);
+-      if (rt2x00_rt(rt2x00dev, RT3593)) {
++      if (rt2x00_rt(rt2x00dev, RT3593) ||
++          rt2x00_rt(rt2x00dev, RT3883)) {
+               word = rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2);
+               if (rt2x00_get_field16(word, EEPROM_EXT_LNA2_A1) == 0x00 ||
+                   rt2x00_get_field16(word, EEPROM_EXT_LNA2_A1) == 0xff)
diff --git a/package/kernel/mac80211/patches/rt2x00/522-rt2x00-rt2800lib-fix-txpower-compensation-for-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/522-rt2x00-rt2800lib-fix-txpower-compensation-for-RT3883.patch
new file mode 100644 (file)
index 0000000..64dba01
--- /dev/null
@@ -0,0 +1,22 @@
+From e3871034a0e7c8a95152dc3eafbcc4535398cbdc Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Wed, 2 Oct 2013 10:11:59 +0200
+Subject: [PATCH] rt2x00: rt2800lib: fix txpower compensation for RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -4524,6 +4524,9 @@ static u8 rt2800_compensate_txpower(stru
+       if (rt2x00_rt(rt2x00dev, RT3593))
+               return min_t(u8, txpower, 0xc);
++      if (rt2x00_rt(rt2x00dev, RT3883))
++              return min_t(u8, txpower, 0xf);
++
+       if (rt2x00_has_cap_power_limit(rt2x00dev)) {
+               /*
+                * Check if eirp txpower exceed txpower_limit.
diff --git a/package/kernel/mac80211/patches/rt2x00/600-01-rt2x00-allow-to-build-rt2800soc-module-for-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/600-01-rt2x00-allow-to-build-rt2800soc-module-for-RT3883.patch
deleted file mode 100644 (file)
index 699989b..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-From 91094ed065f7794886b4a5490fd6de942f036bb4 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Sun, 24 Mar 2013 19:26:26 +0100
-Subject: [PATCH] rt2x00: allow to build rt2800soc module for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/Kconfig |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/Kconfig
-+++ b/drivers/net/wireless/ralink/rt2x00/Kconfig
-@@ -210,7 +210,7 @@ endif
- config RT2800SOC
-       tristate "Ralink WiSoC support"
-       depends on m
--      depends on SOC_RT288X || SOC_RT305X || SOC_MT7620
-+      depends on SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620
-       select RT2X00_LIB_SOC
-       select RT2X00_LIB_MMIO
-       select RT2X00_LIB_CRYPTO
-@@ -245,7 +245,7 @@ config RT2X00_LIB_PCI
- config RT2X00_LIB_SOC
-       tristate "RT2x00 SoC support"
--      depends on SOC_RT288X || SOC_RT305X || SOC_MT7620
-+      depends on SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620
-       depends on m
-       select RT2X00_LIB
diff --git a/package/kernel/mac80211/patches/rt2x00/600-02-rt2x00-rt2800lib-enable-support-for-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/600-02-rt2x00-rt2800lib-enable-support-for-RT3883.patch
deleted file mode 100644 (file)
index c7927ae..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-From 4f16582c93a71eba9d389e0f0a8aa9099a9587cd Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Sun, 24 Mar 2013 19:26:26 +0100
-Subject: [PATCH] rt2x00: rt2800lib: enable support for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -9409,6 +9409,7 @@ static int rt2800_probe_rt(struct rt2x00
-       case RT3390:
-       case RT3572:
-       case RT3593:
-+      case RT3883:
-       case RT5350:
-       case RT5390:
-       case RT5392:
diff --git a/package/kernel/mac80211/patches/rt2x00/600-03-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch b/package/kernel/mac80211/patches/rt2x00/600-03-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch
deleted file mode 100644 (file)
index bacbf19..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From ecb394ccf248d8652c463133c4f404458a57a9c1 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Sun, 24 Mar 2013 19:26:26 +0100
-Subject: [PATCH] rt2x00: rt2800lib: add rf_vals for RF3853
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800.h    |    4 +-
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |   65 +++++++++++++++++++++++++++++++
- 2 files changed, 68 insertions(+), 1 deletion(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800.h
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h
-@@ -48,7 +48,8 @@
-  * RF2853 2.4G/5G 3T3R
-  * RF3320 2.4G 1T1R(RT3350/RT3370/RT3390)
-  * RF3322 2.4G 2T2R(RT3352/RT3371/RT3372/RT3391/RT3392)
-- * RF3053 2.4G/5G 3T3R(RT3883/RT3563/RT3573/RT3593/RT3662)
-+ * RF3053 2.4G/5G 3T3R(RT3563/RT3573/RT3593)
-+ * RF3853 2.4G/5G 3T3R(RT3883/RT3662)
-  * RF5592 2.4G/5G 2T2R
-  * RF3070 2.4G 1T1R
-  * RF5360 2.4G 1T1R
-@@ -72,6 +73,7 @@
- #define RF5592                                0x000f
- #define RF3070                                0x3070
- #define RF3290                                0x3290
-+#define RF3853                                0x3853
- #define RF5350                                0x5350
- #define RF5360                                0x5360
- #define RF5362                                0x5362
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -8987,6 +8987,66 @@ static const struct rf_channel rf_vals_3
-       {14,   0xF0,     2,  0x18},
- };
-+static const struct rf_channel rf_vals_3853[] = {
-+      {1,  241, 6, 2},
-+      {2,  241, 6, 7},
-+      {3,  242, 6, 2},
-+      {4,  242, 6, 7},
-+      {5,  243, 6, 2},
-+      {6,  243, 6, 7},
-+      {7,  244, 6, 2},
-+      {8,  244, 6, 7},
-+      {9,  245, 6, 2},
-+      {10, 245, 6, 7},
-+      {11, 246, 6, 2},
-+      {12, 246, 6, 7},
-+      {13, 247, 6, 2},
-+      {14, 248, 6, 4},
-+
-+      {36, 0x56, 8, 4},
-+      {38, 0x56, 8, 6},
-+      {40, 0x56, 8, 8},
-+      {44, 0x57, 8, 0},
-+      {46, 0x57, 8, 2},
-+      {48, 0x57, 8, 4},
-+      {52, 0x57, 8, 8},
-+      {54, 0x57, 8, 10},
-+      {56, 0x58, 8, 0},
-+      {60, 0x58, 8, 4},
-+      {62, 0x58, 8, 6},
-+      {64, 0x58, 8, 8},
-+
-+      {100, 0x5b, 8, 8},
-+      {102, 0x5b, 8, 10},
-+      {104, 0x5c, 8, 0},
-+      {108, 0x5c, 8, 4},
-+      {110, 0x5c, 8, 6},
-+      {112, 0x5c, 8, 8},
-+      {114, 0x5c, 8, 10},
-+      {116, 0x5d, 8, 0},
-+      {118, 0x5d, 8, 2},
-+      {120, 0x5d, 8, 4},
-+      {124, 0x5d, 8, 8},
-+      {126, 0x5d, 8, 10},
-+      {128, 0x5e, 8, 0},
-+      {132, 0x5e, 8, 4},
-+      {134, 0x5e, 8, 6},
-+      {136, 0x5e, 8, 8},
-+      {140, 0x5f, 8, 0},
-+
-+      {149, 0x5f, 8, 9},
-+      {151, 0x5f, 8, 11},
-+      {153, 0x60, 8, 1},
-+      {157, 0x60, 8, 5},
-+      {159, 0x60, 8, 7},
-+      {161, 0x60, 8, 9},
-+      {165, 0x61, 8, 1},
-+      {167, 0x61, 8, 3},
-+      {169, 0x61, 8, 5},
-+      {171, 0x61, 8, 7},
-+      {173, 0x61, 8, 9},
-+};
-+
- static const struct rf_channel rf_vals_5592_xtal20[] = {
-       /* Channel, N, K, mod, R */
-       {1, 482, 4, 10, 3},
-@@ -9250,6 +9310,11 @@ static int rt2800_probe_hw_mode(struct r
-               spec->channels = rf_vals_3x;
-               break;
-+      case RF3853:
-+              spec->num_channels = ARRAY_SIZE(rf_vals_3853);
-+              spec->channels = rf_vals_3853;
-+              break;
-+
-       case RF5592:
-               reg = rt2800_register_read(rt2x00dev, MAC_DEBUG_INDEX);
-               if (rt2x00_get_field32(reg, MAC_DEBUG_INDEX_XTAL)) {
diff --git a/package/kernel/mac80211/patches/rt2x00/600-04-rt2x00-rt2800lib-enable-VCO-calibration-for-RF3853.patch b/package/kernel/mac80211/patches/rt2x00/600-04-rt2x00-rt2800lib-enable-VCO-calibration-for-RF3853.patch
deleted file mode 100644 (file)
index 227c692..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From f8e3fcf18e1f2d7f9e6a9680c5452da090f33d88 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Thu, 1 Aug 2013 14:40:44 +0200
-Subject: [PATCH] rt2x00: rt2800lib: enable VCO calibration for RF3853
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -4884,6 +4884,7 @@ void rt2800_vco_calibration(struct rt2x0
-       case RF3053:
-       case RF3070:
-       case RF3290:
-+      case RF3853:
-       case RF5350:
-       case RF5360:
-       case RF5362:
-@@ -9432,6 +9433,7 @@ static int rt2800_probe_hw_mode(struct r
-       case RF3053:
-       case RF3070:
-       case RF3290:
-+      case RF3853:
-       case RF5350:
-       case RF5360:
-       case RF5362:
diff --git a/package/kernel/mac80211/patches/rt2x00/600-05-rt2x00-rt2800lib-add-channel-configuration-function-.patch b/package/kernel/mac80211/patches/rt2x00/600-05-rt2x00-rt2800lib-add-channel-configuration-function-.patch
deleted file mode 100644 (file)
index 1890b1e..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-From 6e3a17190815c6aa4dc53c2cfe9125fb1154f187 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Sun, 24 Mar 2013 19:26:27 +0100
-Subject: [PATCH] rt2x00: rt2800lib: add channel configuration function for
- RF3853
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  208 +++++++++++++++++++++++++++++++
- 1 file changed, 208 insertions(+)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -2716,6 +2716,211 @@ static void rt2800_config_channel_rf3053
-       }
- }
-+static void rt2800_config_channel_rf3853(struct rt2x00_dev *rt2x00dev,
-+                                       struct ieee80211_conf *conf,
-+                                       struct rf_channel *rf,
-+                                       struct channel_info *info)
-+{
-+      u8 rfcsr;
-+      u8 bbp;
-+      u8 pwr1, pwr2, pwr3;
-+
-+      const bool txbf_enabled = false; /* TODO */
-+
-+      /* TODO: add band selection */
-+
-+      if (rf->channel <= 14)
-+              rt2800_rfcsr_write(rt2x00dev, 6, 0x40);
-+      else if (rf->channel < 132)
-+              rt2800_rfcsr_write(rt2x00dev, 6, 0x80);
-+      else
-+              rt2800_rfcsr_write(rt2x00dev, 6, 0x40);
-+
-+      rt2800_rfcsr_write(rt2x00dev, 8, rf->rf1);
-+      rt2800_rfcsr_write(rt2x00dev, 9, rf->rf3);
-+
-+      if (rf->channel <= 14)
-+              rt2800_rfcsr_write(rt2x00dev, 11, 0x46);
-+      else
-+              rt2800_rfcsr_write(rt2x00dev, 11, 0x48);
-+
-+      if (rf->channel <= 14)
-+              rt2800_rfcsr_write(rt2x00dev, 12, 0x1a);
-+      else
-+              rt2800_rfcsr_write(rt2x00dev, 12, 0x52);
-+
-+      rt2800_rfcsr_write(rt2x00dev, 13, 0x12);
-+
-+      rfcsr = rt2800_rfcsr_read(rt2x00dev, 1);
-+      rt2x00_set_field8(&rfcsr, RFCSR1_RX0_PD, 0);
-+      rt2x00_set_field8(&rfcsr, RFCSR1_TX0_PD, 0);
-+      rt2x00_set_field8(&rfcsr, RFCSR1_RX1_PD, 0);
-+      rt2x00_set_field8(&rfcsr, RFCSR1_TX1_PD, 0);
-+      rt2x00_set_field8(&rfcsr, RFCSR1_RX2_PD, 0);
-+      rt2x00_set_field8(&rfcsr, RFCSR1_TX2_PD, 0);
-+      rt2x00_set_field8(&rfcsr, RFCSR1_RF_BLOCK_EN, 1);
-+      rt2x00_set_field8(&rfcsr, RFCSR1_PLL_PD, 1);
-+
-+      switch (rt2x00dev->default_ant.tx_chain_num) {
-+      case 3:
-+              rt2x00_set_field8(&rfcsr, RFCSR1_TX2_PD, 1);
-+              /* fallthrough */
-+      case 2:
-+              rt2x00_set_field8(&rfcsr, RFCSR1_TX1_PD, 1);
-+              /* fallthrough */
-+      case 1:
-+              rt2x00_set_field8(&rfcsr, RFCSR1_TX0_PD, 1);
-+              break;
-+      }
-+
-+      switch (rt2x00dev->default_ant.rx_chain_num) {
-+      case 3:
-+              rt2x00_set_field8(&rfcsr, RFCSR1_RX2_PD, 1);
-+              /* fallthrough */
-+      case 2:
-+              rt2x00_set_field8(&rfcsr, RFCSR1_RX1_PD, 1);
-+              /* fallthrough */
-+      case 1:
-+              rt2x00_set_field8(&rfcsr, RFCSR1_RX0_PD, 1);
-+              break;
-+      }
-+      rt2800_rfcsr_write(rt2x00dev, 1, rfcsr);
-+
-+      rt2800_freq_cal_mode1(rt2x00dev);
-+
-+      rfcsr = rt2800_rfcsr_read(rt2x00dev, 30);
-+      if (!conf_is_ht40(conf))
-+              rfcsr &= ~(0x06);
-+      else
-+              rfcsr |= 0x06;
-+      rt2800_rfcsr_write(rt2x00dev, 30, rfcsr);
-+
-+      if (rf->channel <= 14)
-+              rt2800_rfcsr_write(rt2x00dev, 31, 0xa0);
-+      else
-+              rt2800_rfcsr_write(rt2x00dev, 31, 0x80);
-+
-+      if (conf_is_ht40(conf))
-+              rt2800_rfcsr_write(rt2x00dev, 32, 0x80);
-+      else
-+              rt2800_rfcsr_write(rt2x00dev, 32, 0xd8);
-+
-+      if (rf->channel <= 14)
-+              rt2800_rfcsr_write(rt2x00dev, 34, 0x3c);
-+      else
-+              rt2800_rfcsr_write(rt2x00dev, 34, 0x20);
-+
-+      /* loopback RF_BS */
-+      rfcsr = rt2800_rfcsr_read(rt2x00dev, 36);
-+      if (rf->channel <= 14)
-+              rt2x00_set_field8(&rfcsr, RFCSR36_RF_BS, 1);
-+      else
-+              rt2x00_set_field8(&rfcsr, RFCSR36_RF_BS, 0);
-+      rt2800_rfcsr_write(rt2x00dev, 36, rfcsr);
-+
-+      if (rf->channel <= 14)
-+              rfcsr = 0x23;
-+      else if (rf->channel < 100)
-+              rfcsr = 0x36;
-+      else if (rf->channel < 132)
-+              rfcsr = 0x32;
-+      else
-+              rfcsr = 0x30;
-+
-+      if (txbf_enabled)
-+              rfcsr |= 0x40;
-+
-+      rt2800_rfcsr_write(rt2x00dev, 39, rfcsr);
-+
-+      if (rf->channel <= 14)
-+              rt2800_rfcsr_write(rt2x00dev, 44, 0x93);
-+      else
-+              rt2800_rfcsr_write(rt2x00dev, 44, 0x9b);
-+
-+      if (rf->channel <= 14)
-+              rfcsr = 0xbb;
-+      else if (rf->channel < 100)
-+              rfcsr = 0xeb;
-+      else if (rf->channel < 132)
-+              rfcsr = 0xb3;
-+      else
-+              rfcsr = 0x9b;
-+      rt2800_rfcsr_write(rt2x00dev, 45, rfcsr);
-+
-+      if (rf->channel <= 14)
-+              rfcsr = 0x8e;
-+      else
-+              rfcsr = 0x8a;
-+
-+      if (txbf_enabled)
-+              rfcsr |= 0x20;
-+
-+      rt2800_rfcsr_write(rt2x00dev, 49, rfcsr);
-+
-+      rt2800_rfcsr_write(rt2x00dev, 50, 0x86);
-+
-+      rfcsr = rt2800_rfcsr_read(rt2x00dev, 51);
-+      if (rf->channel <= 14)
-+              rt2800_rfcsr_write(rt2x00dev, 51, 0x75);
-+      else
-+              rt2800_rfcsr_write(rt2x00dev, 51, 0x51);
-+
-+      rfcsr = rt2800_rfcsr_read(rt2x00dev, 52);
-+      if (rf->channel <= 14)
-+              rt2800_rfcsr_write(rt2x00dev, 52, 0x45);
-+      else
-+              rt2800_rfcsr_write(rt2x00dev, 52, 0x05);
-+
-+      if (rf->channel <= 14) {
-+              pwr1 = info->default_power1 & 0x1f;
-+              pwr2 = info->default_power2 & 0x1f;
-+              pwr3 = info->default_power3 & 0x1f;
-+      } else {
-+              pwr1 = 0x48 | ((info->default_power1 & 0x18) << 1) |
-+                      (info->default_power1 & 0x7);
-+              pwr2 = 0x48 | ((info->default_power2 & 0x18) << 1) |
-+                      (info->default_power2 & 0x7);
-+              pwr3 = 0x48 | ((info->default_power3 & 0x18) << 1) |
-+                      (info->default_power3 & 0x7);
-+      }
-+
-+      rt2800_rfcsr_write(rt2x00dev, 53, pwr1);
-+      rt2800_rfcsr_write(rt2x00dev, 54, pwr2);
-+      rt2800_rfcsr_write(rt2x00dev, 55, pwr3);
-+
-+      rt2x00_dbg(rt2x00dev, "Channel:%d, pwr1:%02x, pwr2:%02x, pwr3:%02x\n",
-+                 rf->channel, pwr1, pwr2, pwr3);
-+
-+      bbp = (info->default_power1 >> 5) |
-+            ((info->default_power2 & 0xe0) >> 1);
-+      rt2800_bbp_write(rt2x00dev, 109, bbp);
-+
-+      bbp = rt2800_bbp_read(rt2x00dev, 110);
-+      bbp &= 0x0f;
-+      bbp |= (info->default_power3 & 0xe0) >> 1;
-+      rt2800_bbp_write(rt2x00dev, 110, bbp);
-+
-+      rfcsr = rt2800_rfcsr_read(rt2x00dev, 57);
-+      if (rf->channel <= 14)
-+              rt2800_rfcsr_write(rt2x00dev, 57, 0x6e);
-+      else
-+              rt2800_rfcsr_write(rt2x00dev, 57, 0x3e);
-+
-+      /* Enable RF tuning */
-+      rfcsr = rt2800_rfcsr_read(rt2x00dev, 3);
-+      rt2x00_set_field8(&rfcsr, RFCSR3_VCOCAL_EN, 1);
-+      rt2800_rfcsr_write(rt2x00dev, 3, rfcsr);
-+
-+      udelay(2000);
-+
-+      bbp = rt2800_bbp_read(rt2x00dev, 49);
-+      /* clear update flag */
-+      rt2800_bbp_write(rt2x00dev, 49, bbp & 0xfe);
-+      rt2800_bbp_write(rt2x00dev, 49, bbp);
-+
-+      /* TODO: add calibration for TxBF */
-+}
-+
- #define POWER_BOUND           0x27
- #define POWER_BOUND_5G                0x2b
-@@ -3573,6 +3778,9 @@ static void rt2800_config_channel(struct
-       case RF3322:
-               rt2800_config_channel_rf3322(rt2x00dev, conf, rf, info);
-               break;
-+      case RF3853:
-+              rt2800_config_channel_rf3853(rt2x00dev, conf, rf, info);
-+              break;
-       case RF3070:
-       case RF5350:
-       case RF5360:
diff --git a/package/kernel/mac80211/patches/rt2x00/600-06-rt2x00-rt2800lib-enable-RF3853-support.patch b/package/kernel/mac80211/patches/rt2x00/600-06-rt2x00-rt2800lib-enable-RF3853-support.patch
deleted file mode 100644 (file)
index 69ed4d7..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-From afd38ae82226551bf879b6c7c4b620c271fee9d2 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Thu, 1 Aug 2013 14:42:05 +0200
-Subject: [PATCH] rt2x00: rt2800lib: enable RF3853 support
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -8910,6 +8910,7 @@ static int rt2800_init_eeprom(struct rt2
-       case RF3290:
-       case RF3320:
-       case RF3322:
-+      case RF3853:
-       case RF5350:
-       case RF5360:
-       case RF5362:
diff --git a/package/kernel/mac80211/patches/rt2x00/600-07-rt2x00-rt2800lib-add-MAC-register-initialization-for.patch b/package/kernel/mac80211/patches/rt2x00/600-07-rt2x00-rt2800lib-add-MAC-register-initialization-for.patch
deleted file mode 100644 (file)
index fc5a72c..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-From 0094872a5e8e4664c6ea1b2dfa487063d39ae363 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Sun, 24 Mar 2013 19:26:26 +0100
-Subject: [PATCH] rt2x00: rt2800lib: add MAC register initialization for
- RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800.h    |   14 ++++++++++++++
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |   19 ++++++++++++++++---
- 2 files changed, 30 insertions(+), 3 deletions(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800.h
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h
-@@ -1728,6 +1728,20 @@
- #define TX_PWR_CFG_9B_STBC_MCS7               FIELD32(0x000000ff)
- /*
-+ * TX_TXBF_CFG:
-+ */
-+#define TX_TXBF_CFG_0                 0x138c
-+#define TX_TXBF_CFG_1                 0x13a4
-+#define TX_TXBF_CFG_2                 0x13a8
-+#define TX_TXBF_CFG_3                 0x13ac
-+
-+/*
-+ * TX_FBK_CFG_3S:
-+ */
-+#define TX_FBK_CFG_3S_0                       0x13c4
-+#define TX_FBK_CFG_3S_1                       0x13c8
-+
-+/*
-  * RX_FILTER_CFG: RX configuration register.
-  */
- #define RX_FILTER_CFG                 0x1400
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -5512,6 +5512,12 @@ static int rt2800_init_registers(struct
-                       rt2800_register_write(rt2x00dev, TX_SW_CFG2,
-                                             0x00000000);
-               }
-+      } else if (rt2x00_rt(rt2x00dev, RT3883)) {
-+              rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000402);
-+              rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00000000);
-+              rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00040000);
-+              rt2800_register_write(rt2x00dev, TX_TXBF_CFG_0, 0x8000fc21);
-+              rt2800_register_write(rt2x00dev, TX_TXBF_CFG_3, 0x00009c40);
-       } else if (rt2x00_rt(rt2x00dev, RT5390) ||
-                  rt2x00_rt(rt2x00dev, RT5392) ||
-                  rt2x00_rt(rt2x00dev, RT6352)) {
-@@ -5725,6 +5731,11 @@ static int rt2800_init_registers(struct
-       reg = rt2x00_rt(rt2x00dev, RT5592) ? 0x00000082 : 0x00000002;
-       rt2800_register_write(rt2x00dev, TXOP_HLDR_ET, reg);
-+      if (rt2x00_rt(rt2x00dev, RT3883)) {
-+              rt2800_register_write(rt2x00dev, TX_FBK_CFG_3S_0, 0x12111008);
-+              rt2800_register_write(rt2x00dev, TX_FBK_CFG_3S_1, 0x16151413);
-+      }
-+
-       reg = rt2800_register_read(rt2x00dev, TX_RTS_CFG);
-       rt2x00_set_field32(&reg, TX_RTS_CFG_AUTO_RTS_RETRY_LIMIT, 7);
-       rt2x00_set_field32(&reg, TX_RTS_CFG_RTS_THRES,
diff --git a/package/kernel/mac80211/patches/rt2x00/600-08-rt2x00-rt2800soc-fix-rt2800soc_disable_radio-for-RT3.patch b/package/kernel/mac80211/patches/rt2x00/600-08-rt2x00-rt2800soc-fix-rt2800soc_disable_radio-for-RT3.patch
deleted file mode 100644 (file)
index d68ad50..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-From 6c2d32478159fffff0b85abb6817a21bb2338231 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Sun, 24 Mar 2013 19:26:27 +0100
-Subject: [PATCH] rt2x00: rt2800soc: fix rt2800soc_disable_radio for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800soc.c |    9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
-@@ -51,9 +51,16 @@ static bool rt2800soc_hwcrypt_disabled(s
- static void rt2800soc_disable_radio(struct rt2x00_dev *rt2x00dev)
- {
-+      u32 reg;
-+
-       rt2800_disable_radio(rt2x00dev);
-       rt2x00mmio_register_write(rt2x00dev, PWR_PIN_CFG, 0);
--      rt2x00mmio_register_write(rt2x00dev, TX_PIN_CFG, 0);
-+
-+      reg = 0;
-+      if (rt2x00_rt(rt2x00dev, RT3883))
-+              rt2x00_set_field32(&reg, TX_PIN_CFG_RFTR_EN, 1);
-+
-+      rt2x00mmio_register_write(rt2x00dev, TX_PIN_CFG, reg);
- }
- static int rt2800soc_set_device_state(struct rt2x00_dev *rt2x00dev,
diff --git a/package/kernel/mac80211/patches/rt2x00/600-09-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch b/package/kernel/mac80211/patches/rt2x00/600-09-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch
deleted file mode 100644 (file)
index e53b64d..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-From 84833056aa7dd25f5b097e31c78f2a0914c5160c Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Sun, 24 Mar 2013 19:26:26 +0100
-Subject: [PATCH] rt2x00: rt2800lib: add BBP register initialization for
- RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |   44 +++++++++++++++++++++++++++++++
- 1 file changed, 44 insertions(+)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -6352,6 +6352,47 @@ static void rt2800_init_bbp_3593(struct
-               rt2800_bbp_write(rt2x00dev, 103, 0xc0);
- }
-+static void rt2800_init_bbp_3883(struct rt2x00_dev *rt2x00dev)
-+{
-+      rt2800_init_bbp_early(rt2x00dev);
-+
-+      rt2800_bbp_write(rt2x00dev, 4, 0x50);
-+      rt2800_bbp_write(rt2x00dev, 47, 0x48);
-+
-+      rt2800_bbp_write(rt2x00dev, 86, 0x46);
-+      rt2800_bbp_write(rt2x00dev, 88, 0x90);
-+
-+      rt2800_bbp_write(rt2x00dev, 92, 0x02);
-+
-+      rt2800_bbp_write(rt2x00dev, 103, 0xc0);
-+      rt2800_bbp_write(rt2x00dev, 104, 0x92);
-+      rt2800_bbp_write(rt2x00dev, 105, 0x34);
-+      rt2800_bbp_write(rt2x00dev, 106, 0x12);
-+      rt2800_bbp_write(rt2x00dev, 120, 0x50);
-+      rt2800_bbp_write(rt2x00dev, 137, 0x0f);
-+      rt2800_bbp_write(rt2x00dev, 163, 0x9d);
-+
-+      /* Set ITxBF timeout to 0x9C40=1000msec */
-+      rt2800_bbp_write(rt2x00dev, 179, 0x02);
-+      rt2800_bbp_write(rt2x00dev, 180, 0x00);
-+      rt2800_bbp_write(rt2x00dev, 182, 0x40);
-+      rt2800_bbp_write(rt2x00dev, 180, 0x01);
-+      rt2800_bbp_write(rt2x00dev, 182, 0x9c);
-+
-+      rt2800_bbp_write(rt2x00dev, 179, 0x00);
-+
-+      /* Reprogram the inband interface to put right values in RXWI */
-+      rt2800_bbp_write(rt2x00dev, 142, 0x04);
-+      rt2800_bbp_write(rt2x00dev, 143, 0x3b);
-+      rt2800_bbp_write(rt2x00dev, 142, 0x06);
-+      rt2800_bbp_write(rt2x00dev, 143, 0xa0);
-+      rt2800_bbp_write(rt2x00dev, 142, 0x07);
-+      rt2800_bbp_write(rt2x00dev, 143, 0xa1);
-+      rt2800_bbp_write(rt2x00dev, 142, 0x08);
-+      rt2800_bbp_write(rt2x00dev, 143, 0xa2);
-+      rt2800_bbp_write(rt2x00dev, 148, 0xc8);
-+}
-+
- static void rt2800_init_bbp_53xx(struct rt2x00_dev *rt2x00dev)
- {
-       int ant, div_mode;
-@@ -6796,6 +6837,9 @@ static void rt2800_init_bbp(struct rt2x0
-       case RT3593:
-               rt2800_init_bbp_3593(rt2x00dev);
-               return;
-+      case RT3883:
-+              rt2800_init_bbp_3883(rt2x00dev);
-+              return;
-       case RT5390:
-       case RT5392:
-               rt2800_init_bbp_53xx(rt2x00dev);
diff --git a/package/kernel/mac80211/patches/rt2x00/600-10-rt2x00-rt2800lib-add-RFCSR-initialization-for-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/600-10-rt2x00-rt2800lib-add-RFCSR-initialization-for-RT3883.patch
deleted file mode 100644 (file)
index c16cf41..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-From 99c659cf345640fd0f733cbcaf4583cc2c868ec0 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Mon, 29 Apr 2013 13:21:48 +0200
-Subject: [PATCH] rt2x00: rt2800lib: add RFCSR initialization for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800.h    |    1 +
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  141 +++++++++++++++++++++++++++++++
- 2 files changed, 142 insertions(+)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800.h
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h
-@@ -2312,6 +2312,7 @@ struct mac_iveiv_entry {
- /*
-  * RFCSR 2:
-  */
-+#define RFCSR2_RESCAL_BP              FIELD8(0x40)
- #define RFCSR2_RESCAL_EN              FIELD8(0x80)
- #define RFCSR2_RX2_EN_MT7620          FIELD8(0x02)
- #define RFCSR2_TX2_EN_MT7620          FIELD8(0x20)
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -7711,6 +7711,144 @@ static void rt2800_init_rfcsr_5350(struc
-       rt2800_rfcsr_write(rt2x00dev, 63, 0x00);
- }
-+static void rt2800_init_rfcsr_3883(struct rt2x00_dev *rt2x00dev)
-+{
-+      u8 rfcsr;
-+
-+      /* TODO: get the actual ECO value from the SoC */
-+      const unsigned int eco = 5;
-+
-+      rt2800_rf_init_calibration(rt2x00dev, 2);
-+
-+      rt2800_rfcsr_write(rt2x00dev, 0, 0xe0);
-+      rt2800_rfcsr_write(rt2x00dev, 1, 0x03);
-+      rt2800_rfcsr_write(rt2x00dev, 2, 0x50);
-+      rt2800_rfcsr_write(rt2x00dev, 3, 0x20);
-+      rt2800_rfcsr_write(rt2x00dev, 4, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 5, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 6, 0x40);
-+      rt2800_rfcsr_write(rt2x00dev, 7, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 8, 0x5b);
-+      rt2800_rfcsr_write(rt2x00dev, 9, 0x08);
-+      rt2800_rfcsr_write(rt2x00dev, 10, 0xd3);
-+      rt2800_rfcsr_write(rt2x00dev, 11, 0x48);
-+      rt2800_rfcsr_write(rt2x00dev, 12, 0x1a);
-+      rt2800_rfcsr_write(rt2x00dev, 13, 0x12);
-+      rt2800_rfcsr_write(rt2x00dev, 14, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 15, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 16, 0x00);
-+
-+      /* RFCSR 17 will be initialized later based on the
-+       * frequency offset stored in the EEPROM
-+       */
-+
-+      rt2800_rfcsr_write(rt2x00dev, 18, 0x40);
-+      rt2800_rfcsr_write(rt2x00dev, 19, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 20, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 21, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 22, 0x20);
-+      rt2800_rfcsr_write(rt2x00dev, 23, 0xc0);
-+      rt2800_rfcsr_write(rt2x00dev, 24, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 25, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 26, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 27, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 28, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 29, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 30, 0x10);
-+      rt2800_rfcsr_write(rt2x00dev, 31, 0x80);
-+      rt2800_rfcsr_write(rt2x00dev, 32, 0x80);
-+      rt2800_rfcsr_write(rt2x00dev, 33, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 34, 0x20);
-+      rt2800_rfcsr_write(rt2x00dev, 35, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 36, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 37, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 38, 0x86);
-+      rt2800_rfcsr_write(rt2x00dev, 39, 0x23);
-+      rt2800_rfcsr_write(rt2x00dev, 40, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 41, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 42, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 43, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 44, 0x93);
-+      rt2800_rfcsr_write(rt2x00dev, 45, 0xbb);
-+      rt2800_rfcsr_write(rt2x00dev, 46, 0x60);
-+      rt2800_rfcsr_write(rt2x00dev, 47, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 48, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 49, 0x8e);
-+      rt2800_rfcsr_write(rt2x00dev, 50, 0x86);
-+      rt2800_rfcsr_write(rt2x00dev, 51, 0x51);
-+      rt2800_rfcsr_write(rt2x00dev, 52, 0x05);
-+      rt2800_rfcsr_write(rt2x00dev, 53, 0x76);
-+      rt2800_rfcsr_write(rt2x00dev, 54, 0x76);
-+      rt2800_rfcsr_write(rt2x00dev, 55, 0x76);
-+      rt2800_rfcsr_write(rt2x00dev, 56, 0xdb);
-+      rt2800_rfcsr_write(rt2x00dev, 57, 0x3e);
-+      rt2800_rfcsr_write(rt2x00dev, 58, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 59, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 60, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 61, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 62, 0x00);
-+      rt2800_rfcsr_write(rt2x00dev, 63, 0x00);
-+
-+      /* TODO: rx filter calibration? */
-+
-+      rt2800_bbp_write(rt2x00dev, 137, 0x0f);
-+
-+      rt2800_bbp_write(rt2x00dev, 163, 0x9d);
-+
-+      rt2800_bbp_write(rt2x00dev, 105, 0x05);
-+
-+      rt2800_bbp_write(rt2x00dev, 179, 0x02);
-+      rt2800_bbp_write(rt2x00dev, 180, 0x00);
-+      rt2800_bbp_write(rt2x00dev, 182, 0x40);
-+      rt2800_bbp_write(rt2x00dev, 180, 0x01);
-+      rt2800_bbp_write(rt2x00dev, 182, 0x9c);
-+
-+      rt2800_bbp_write(rt2x00dev, 179, 0x00);
-+
-+      rt2800_bbp_write(rt2x00dev, 142, 0x04);
-+      rt2800_bbp_write(rt2x00dev, 143, 0x3b);
-+      rt2800_bbp_write(rt2x00dev, 142, 0x06);
-+      rt2800_bbp_write(rt2x00dev, 143, 0xa0);
-+      rt2800_bbp_write(rt2x00dev, 142, 0x07);
-+      rt2800_bbp_write(rt2x00dev, 143, 0xa1);
-+      rt2800_bbp_write(rt2x00dev, 142, 0x08);
-+      rt2800_bbp_write(rt2x00dev, 143, 0xa2);
-+      rt2800_bbp_write(rt2x00dev, 148, 0xc8);
-+
-+      if (eco == 5) {
-+              rt2800_rfcsr_write(rt2x00dev, 32, 0xd8);
-+              rt2800_rfcsr_write(rt2x00dev, 33, 0x32);
-+      }
-+
-+      rfcsr = rt2800_rfcsr_read(rt2x00dev, 2);
-+      rt2x00_set_field8(&rfcsr, RFCSR2_RESCAL_BP, 0);
-+      rt2x00_set_field8(&rfcsr, RFCSR2_RESCAL_EN, 1);
-+      rt2800_rfcsr_write(rt2x00dev, 2, rfcsr);
-+      msleep(1);
-+      rt2x00_set_field8(&rfcsr, RFCSR2_RESCAL_EN, 0);
-+      rt2800_rfcsr_write(rt2x00dev, 2, rfcsr);
-+
-+      rfcsr = rt2800_rfcsr_read(rt2x00dev, 1);
-+      rt2x00_set_field8(&rfcsr, RFCSR1_RF_BLOCK_EN, 1);
-+      rt2800_rfcsr_write(rt2x00dev, 1, rfcsr);
-+
-+      rfcsr = rt2800_rfcsr_read(rt2x00dev, 6);
-+      rfcsr |= 0xc0;
-+      rt2800_rfcsr_write(rt2x00dev, 6, rfcsr);
-+
-+      rfcsr = rt2800_rfcsr_read(rt2x00dev, 22);
-+      rfcsr |= 0x20;
-+      rt2800_rfcsr_write(rt2x00dev, 22, rfcsr);
-+
-+      rfcsr = rt2800_rfcsr_read(rt2x00dev, 46);
-+      rfcsr |= 0x20;
-+      rt2800_rfcsr_write(rt2x00dev, 46, rfcsr);
-+
-+      rfcsr = rt2800_rfcsr_read(rt2x00dev, 20);
-+      rfcsr &= ~0xee;
-+      rt2800_rfcsr_write(rt2x00dev, 20, rfcsr);
-+}
-+
- static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev)
- {
-       rt2800_rf_init_calibration(rt2x00dev, 2);
-@@ -8553,6 +8691,9 @@ static void rt2800_init_rfcsr(struct rt2
-       case RT3390:
-               rt2800_init_rfcsr_3390(rt2x00dev);
-               break;
-+      case RT3883:
-+              rt2800_init_rfcsr_3883(rt2x00dev);
-+              break;
-       case RT3572:
-               rt2800_init_rfcsr_3572(rt2x00dev);
-               break;
diff --git a/package/kernel/mac80211/patches/rt2x00/600-11-rt2x00-rt2800lib-use-the-extended-EEPROM-map-for-RT3.patch b/package/kernel/mac80211/patches/rt2x00/600-11-rt2x00-rt2800lib-use-the-extended-EEPROM-map-for-RT3.patch
deleted file mode 100644 (file)
index e74f399..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-From 86022438ffeb1b87dfcd018bf477fdbb43076691 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Wed, 8 May 2013 19:35:33 +0200
-Subject: [PATCH] rt2x00: rt2800lib: use the extended EEPROM map for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -381,7 +381,8 @@ static unsigned int rt2800_eeprom_word_i
-                     wiphy_name(rt2x00dev->hw->wiphy), word))
-               return 0;
--      if (rt2x00_rt(rt2x00dev, RT3593))
-+      if (rt2x00_rt(rt2x00dev, RT3593) ||
-+          rt2x00_rt(rt2x00dev, RT3883))
-               map = rt2800_eeprom_map_ext;
-       else
-               map = rt2800_eeprom_map;
diff --git a/package/kernel/mac80211/patches/rt2x00/600-12-rt2x00-rt2800lib-force-rf-type-to-RF3853-on-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/600-12-rt2x00-rt2800lib-force-rf-type-to-RF3853-on-RT3883.patch
deleted file mode 100644 (file)
index 55e703b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-From 4cf5403f02fa65dc2207f61d223cffa9ae50e907 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Thu, 1 Aug 2013 14:48:21 +0200
-Subject: [PATCH] rt2x00: rt2800lib: force rf type to RF3853 on RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -9087,6 +9087,8 @@ static int rt2800_init_eeprom(struct rt2
-               rf = rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID);
-       else if (rt2x00_rt(rt2x00dev, RT3352))
-               rf = RF3322;
-+      else if (rt2x00_rt(rt2x00dev, RT3883))
-+              rf = RF3853;
-       else if (rt2x00_rt(rt2x00dev, RT5350))
-               rf = RF5350;
-       else
diff --git a/package/kernel/mac80211/patches/rt2x00/600-13-rt2x00-rt2800lib-add-channel-configuration-code-for-.patch b/package/kernel/mac80211/patches/rt2x00/600-13-rt2x00-rt2800lib-add-channel-configuration-code-for-.patch
deleted file mode 100644 (file)
index 7a8d1c0..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-From 269f19c848a2380db03a3f207cafb88e28d71c53 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Sun, 24 Mar 2013 19:26:28 +0100
-Subject: [PATCH] rt2x00: rt2800lib: add channel configuration code for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |   72 +++++++++++++++++++++++++++++--
- 1 file changed, 69 insertions(+), 3 deletions(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -3741,6 +3741,36 @@ static char rt2800_txpower_to_dev(struct
-               return clamp_t(char, txpower, MIN_A_TXPOWER, MAX_A_TXPOWER);
- }
-+static void rt3883_bbp_adjust(struct rt2x00_dev *rt2x00dev,
-+                            struct rf_channel *rf)
-+{
-+      u8 bbp;
-+
-+      bbp = (rf->channel > 14) ? 0x48 : 0x38;
-+      rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, bbp);
-+
-+      rt2800_bbp_write(rt2x00dev, 69, 0x12);
-+
-+      if (rf->channel <= 14) {
-+              rt2800_bbp_write(rt2x00dev, 70, 0x0a);
-+      } else {
-+              /* Disable CCK packet detection */
-+              rt2800_bbp_write(rt2x00dev, 70, 0x00);
-+      }
-+
-+      rt2800_bbp_write(rt2x00dev, 73, 0x10);
-+
-+      if (rf->channel > 14) {
-+              rt2800_bbp_write(rt2x00dev, 62, 0x1d);
-+              rt2800_bbp_write(rt2x00dev, 63, 0x1d);
-+              rt2800_bbp_write(rt2x00dev, 64, 0x1d);
-+      } else {
-+              rt2800_bbp_write(rt2x00dev, 62, 0x2d);
-+              rt2800_bbp_write(rt2x00dev, 63, 0x2d);
-+              rt2800_bbp_write(rt2x00dev, 64, 0x2d);
-+      }
-+}
-+
- static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
-                                 struct ieee80211_conf *conf,
-                                 struct rf_channel *rf,
-@@ -3759,6 +3789,12 @@ static void rt2800_config_channel(struct
-                       rt2800_txpower_to_dev(rt2x00dev, rf->channel,
-                                             info->default_power3);
-+      switch (rt2x00dev->chip.rt) {
-+      case RT3883:
-+              rt3883_bbp_adjust(rt2x00dev, rf);
-+              break;
-+      }
-+
-       switch (rt2x00dev->chip.rf) {
-       case RF2020:
-       case RF3020:
-@@ -3863,6 +3899,15 @@ static void rt2800_config_channel(struct
-               rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
-               rt2800_bbp_write(rt2x00dev, 64, 0x37 - rt2x00dev->lna_gain);
-               rt2800_bbp_write(rt2x00dev, 77, 0x98);
-+      } else if (rt2x00_rt(rt2x00dev, RT3883)) {
-+              rt2800_bbp_write(rt2x00dev, 62, 0x37 - rt2x00dev->lna_gain);
-+              rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
-+              rt2800_bbp_write(rt2x00dev, 64, 0x37 - rt2x00dev->lna_gain);
-+
-+              if (rt2x00dev->default_ant.rx_chain_num > 1)
-+                      rt2800_bbp_write(rt2x00dev, 86, 0x46);
-+              else
-+                      rt2800_bbp_write(rt2x00dev, 86, 0);
-       } else {
-               rt2800_bbp_write(rt2x00dev, 62, 0x37 - rt2x00dev->lna_gain);
-               rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
-@@ -3876,6 +3921,7 @@ static void rt2800_config_channel(struct
-                   !rt2x00_rt(rt2x00dev, RT6352)) {
-                       if (rt2x00_has_cap_external_lna_bg(rt2x00dev)) {
-                               rt2800_bbp_write(rt2x00dev, 82, 0x62);
-+                              rt2800_bbp_write(rt2x00dev, 82, 0x62);
-                               rt2800_bbp_write(rt2x00dev, 75, 0x46);
-                       } else {
-                               if (rt2x00_rt(rt2x00dev, RT3593))
-@@ -3884,19 +3930,22 @@ static void rt2800_config_channel(struct
-                                       rt2800_bbp_write(rt2x00dev, 82, 0x84);
-                               rt2800_bbp_write(rt2x00dev, 75, 0x50);
-                       }
--                      if (rt2x00_rt(rt2x00dev, RT3593))
-+                      if (rt2x00_rt(rt2x00dev, RT3593) ||
-+                          rt2x00_rt(rt2x00dev, RT3883))
-                               rt2800_bbp_write(rt2x00dev, 83, 0x8a);
-               }
-       } else {
-               if (rt2x00_rt(rt2x00dev, RT3572))
-                       rt2800_bbp_write(rt2x00dev, 82, 0x94);
--              else if (rt2x00_rt(rt2x00dev, RT3593))
-+              else if (rt2x00_rt(rt2x00dev, RT3593) ||
-+                       rt2x00_rt(rt2x00dev, RT3883))
-                       rt2800_bbp_write(rt2x00dev, 82, 0x82);
-               else if (!rt2x00_rt(rt2x00dev, RT6352))
-                       rt2800_bbp_write(rt2x00dev, 82, 0xf2);
--              if (rt2x00_rt(rt2x00dev, RT3593))
-+              if (rt2x00_rt(rt2x00dev, RT3593) ||
-+                  rt2x00_rt(rt2x00dev, RT3883))
-                       rt2800_bbp_write(rt2x00dev, 83, 0x9a);
-               if (rt2x00_has_cap_external_lna_a(rt2x00dev))
-@@ -4022,6 +4071,23 @@ static void rt2800_config_channel(struct
-               rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg);
-+              usleep_range(1000, 1500);
-+      }
-+
-+      if (rt2x00_rt(rt2x00dev, RT3883)) {
-+              if (!conf_is_ht40(conf))
-+                      rt2800_bbp_write(rt2x00dev, 105, 0x34);
-+              else
-+                      rt2800_bbp_write(rt2x00dev, 105, 0x04);
-+
-+              /* AGC init */
-+              if (rf->channel <= 14)
-+                      reg = 0x2e + rt2x00dev->lna_gain;
-+              else
-+                      reg = 0x20 + ((rt2x00dev->lna_gain * 5) / 3);
-+
-+              rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg);
-+
-               usleep_range(1000, 1500);
-       }
diff --git a/package/kernel/mac80211/patches/rt2x00/600-14-rt2x00-rt2800lib-fix-txpower_to_dev-function-for-RT3.patch b/package/kernel/mac80211/patches/rt2x00/600-14-rt2x00-rt2800lib-fix-txpower_to_dev-function-for-RT3.patch
deleted file mode 100644 (file)
index 723f0b7..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-From e37d93abaabe3ab72b0332a18092acc162307274 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Mon, 30 Sep 2013 13:57:26 +0200
-Subject: [PATCH] rt2x00: rt2800lib: fix txpower_to_dev function for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -3728,13 +3728,15 @@ static char rt2800_txpower_to_dev(struct
-                                 unsigned int channel,
-                                 char txpower)
- {
--      if (rt2x00_rt(rt2x00dev, RT3593))
-+      if (rt2x00_rt(rt2x00dev, RT3593) ||
-+          rt2x00_rt(rt2x00dev, RT3883))
-               txpower = rt2x00_get_field8(txpower, EEPROM_TXPOWER_ALC);
-       if (channel <= 14)
-               return clamp_t(char, txpower, MIN_G_TXPOWER, MAX_G_TXPOWER);
--      if (rt2x00_rt(rt2x00dev, RT3593))
-+      if (rt2x00_rt(rt2x00dev, RT3593) ||
-+          rt2x00_rt(rt2x00dev, RT3883))
-               return clamp_t(char, txpower, MIN_A_TXPOWER_3593,
-                              MAX_A_TXPOWER_3593);
-       else
diff --git a/package/kernel/mac80211/patches/rt2x00/600-15-rt2x00-rt2800lib-use-correct-txpower-calculation-fun.patch b/package/kernel/mac80211/patches/rt2x00/600-15-rt2x00-rt2800lib-use-correct-txpower-calculation-fun.patch
deleted file mode 100644 (file)
index c7d37e8..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-From c4d79e344bd580d85821390d49f92dced7d8e125 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Sun, 24 Mar 2013 19:26:29 +0100
-Subject: [PATCH] rt2x00: rt2800lib: use correct txpower calculation function
- for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -5114,7 +5114,8 @@ static void rt2800_config_txpower(struct
-                                 struct ieee80211_channel *chan,
-                                 int power_level)
- {
--      if (rt2x00_rt(rt2x00dev, RT3593))
-+      if (rt2x00_rt(rt2x00dev, RT3593) ||
-+          rt2x00_rt(rt2x00dev, RT3883))
-               rt2800_config_txpower_rt3593(rt2x00dev, chan, power_level);
-       else if (rt2x00_rt(rt2x00dev, RT6352))
-               rt2800_config_txpower_rt6352(rt2x00dev, chan, power_level);
diff --git a/package/kernel/mac80211/patches/rt2x00/600-16-rt2x00-rt2800lib-hardcode-txmixer-gain-values-to-zer.patch b/package/kernel/mac80211/patches/rt2x00/600-16-rt2x00-rt2800lib-hardcode-txmixer-gain-values-to-zer.patch
deleted file mode 100644 (file)
index d4b5f4c..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-From caea0671cd8fd9ade4f5969cbe0ee545e94ae105 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Sat, 24 Aug 2013 11:49:55 +0200
-Subject: [PATCH] rt2x00: rt2800lib: hardcode txmixer gain values to zero for
- RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -8969,7 +8969,8 @@ static u8 rt2800_get_txmixer_gain_24g(st
- {
-       u16 word;
--      if (rt2x00_rt(rt2x00dev, RT3593))
-+      if (rt2x00_rt(rt2x00dev, RT3593) ||
-+          rt2x00_rt(rt2x00dev, RT3883))
-               return 0;
-       word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_BG);
-@@ -8983,7 +8984,8 @@ static u8 rt2800_get_txmixer_gain_5g(str
- {
-       u16 word;
--      if (rt2x00_rt(rt2x00dev, RT3593))
-+      if (rt2x00_rt(rt2x00dev, RT3593) ||
-+          rt2x00_rt(rt2x00dev, RT3883))
-               return 0;
-       word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_A);
diff --git a/package/kernel/mac80211/patches/rt2x00/600-17-rt2x00-rt2800lib-use-correct-RT-XWI-size-for-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/600-17-rt2x00-rt2800lib-use-correct-RT-XWI-size-for-RT3883.patch
deleted file mode 100644 (file)
index 197aabd..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-From 11c40fb47c4a4dd6ad060c2ae127ced89ffb9fe1 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Thu, 18 Apr 2013 14:33:33 +0200
-Subject: [PATCH] rt2x00: rt2800lib: use correct [RT]XWI size for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -591,6 +591,7 @@ void rt2800_get_txwi_rxwi_size(struct rt
- {
-       switch (rt2x00dev->chip.rt) {
-       case RT3593:
-+      case RT3883:
-               *txwi_size = TXWI_DESC_SIZE_4WORDS;
-               *rxwi_size = RXWI_DESC_SIZE_5WORDS;
-               break;
diff --git a/package/kernel/mac80211/patches/rt2x00/600-18-rt2x00-rt2800lib-fix-antenna-configuration-for-RT388.patch b/package/kernel/mac80211/patches/rt2x00/600-18-rt2x00-rt2800lib-fix-antenna-configuration-for-RT388.patch
deleted file mode 100644 (file)
index 0b5541a..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-From fa5ad9c025610c22048add2f0ad03f62b6ca1e74 Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Mon, 30 Sep 2013 16:53:33 +0200
-Subject: [PATCH] rt2x00: rt2800lib: fix antenna configuration for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -2020,7 +2020,8 @@ void rt2800_config_ant(struct rt2x00_dev
-       rt2800_bbp_write(rt2x00dev, 3, r3);
-       rt2800_bbp_write(rt2x00dev, 1, r1);
--      if (rt2x00_rt(rt2x00dev, RT3593)) {
-+      if (rt2x00_rt(rt2x00dev, RT3593) ||
-+          rt2x00_rt(rt2x00dev, RT3883)) {
-               if (ant->rx_chain_num == 1)
-                       rt2800_bbp_write(rt2x00dev, 86, 0x00);
-               else
diff --git a/package/kernel/mac80211/patches/rt2x00/600-19-rt2x00-rt2800lib-fix-LNA-gain-configuration-for-RT38.patch b/package/kernel/mac80211/patches/rt2x00/600-19-rt2x00-rt2800lib-fix-LNA-gain-configuration-for-RT38.patch
deleted file mode 100644 (file)
index 4c0c882..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From 6d668fef3a1baa60bdd715ee062ddb6333d2647c Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Mon, 30 Sep 2013 16:58:23 +0200
-Subject: [PATCH] rt2x00: rt2800lib: fix LNA gain configuration for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -2043,7 +2043,8 @@ static void rt2800_config_lna_gain(struc
-               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_LNA);
-               lna_gain = rt2x00_get_field16(eeprom, EEPROM_LNA_A0);
-       } else if (libconf->rf.channel <= 128) {
--              if (rt2x00_rt(rt2x00dev, RT3593)) {
-+              if (rt2x00_rt(rt2x00dev, RT3593) ||
-+                  rt2x00_rt(rt2x00dev, RT3883)) {
-                       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2);
-                       lna_gain = rt2x00_get_field16(eeprom,
-                                                     EEPROM_EXT_LNA2_A1);
-@@ -2053,7 +2054,8 @@ static void rt2800_config_lna_gain(struc
-                                                     EEPROM_RSSI_BG2_LNA_A1);
-               }
-       } else {
--              if (rt2x00_rt(rt2x00dev, RT3593)) {
-+              if (rt2x00_rt(rt2x00dev, RT3593) ||
-+                  rt2x00_rt(rt2x00dev, RT3883)) {
-                       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2);
-                       lna_gain = rt2x00_get_field16(eeprom,
-                                                     EEPROM_EXT_LNA2_A2);
diff --git a/package/kernel/mac80211/patches/rt2x00/600-20-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/600-20-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch
deleted file mode 100644 (file)
index 749d2bd..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From c49b2d829aa1c816a46a577cdec6d2ff14d9f06e Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Tue, 1 Oct 2013 15:40:08 +0200
-Subject: [PATCH] rt2x00: rt2800lib: fix VGC setup for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |   11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -5367,7 +5367,8 @@ static u8 rt2800_get_default_vgc(struct
-               else
-                       vgc = 0x2e + rt2x00dev->lna_gain;
-       } else { /* 5GHZ band */
--              if (rt2x00_rt(rt2x00dev, RT3593))
-+              if (rt2x00_rt(rt2x00dev, RT3593) ||
-+                  rt2x00_rt(rt2x00dev, RT3883))
-                       vgc = 0x20 + (rt2x00dev->lna_gain * 5) / 3;
-               else if (rt2x00_rt(rt2x00dev, RT5592))
-                       vgc = 0x24 + (2 * rt2x00dev->lna_gain);
-@@ -5387,7 +5388,8 @@ static inline void rt2800_set_vgc(struct
- {
-       if (qual->vgc_level != vgc_level) {
-               if (rt2x00_rt(rt2x00dev, RT3572) ||
--                  rt2x00_rt(rt2x00dev, RT3593)) {
-+                  rt2x00_rt(rt2x00dev, RT3593) ||
-+                  rt2x00_rt(rt2x00dev, RT3883)) {
-                       rt2800_bbp_write_with_rx_chain(rt2x00dev, 66,
-                                                      vgc_level);
-               } else if (rt2x00_rt(rt2x00dev, RT5592)) {
-@@ -5434,6 +5436,11 @@ void rt2800_link_tuner(struct rt2x00_dev
-               }
-               break;
-+      case RT3883:
-+              if (qual->rssi > -65)
-+                      vgc += 0x10;
-+              break;
-+
-       case RT5592:
-               if (qual->rssi > -65)
-                       vgc += 0x20;
diff --git a/package/kernel/mac80211/patches/rt2x00/600-21-rt2x00-rt2800lib-fix-EEPROM-LNA-validation-for-RT388.patch b/package/kernel/mac80211/patches/rt2x00/600-21-rt2x00-rt2800lib-fix-EEPROM-LNA-validation-for-RT388.patch
deleted file mode 100644 (file)
index d6e9dd0..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-From 1616650aea676541d4dc8adc6f4219856d193c8b Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Tue, 1 Oct 2013 17:27:57 +0200
-Subject: [PATCH] rt2x00: rt2800lib: fix EEPROM LNA validation for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -9102,7 +9102,8 @@ static int rt2800_validate_eeprom(struct
-       word = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2);
-       if (abs(rt2x00_get_field16(word, EEPROM_RSSI_BG2_OFFSET2)) > 10)
-               rt2x00_set_field16(&word, EEPROM_RSSI_BG2_OFFSET2, 0);
--      if (!rt2x00_rt(rt2x00dev, RT3593)) {
-+      if (!rt2x00_rt(rt2x00dev, RT3593) &&
-+          !rt2x00_rt(rt2x00dev, RT3883)) {
-               if (rt2x00_get_field16(word, EEPROM_RSSI_BG2_LNA_A1) == 0x00 ||
-                   rt2x00_get_field16(word, EEPROM_RSSI_BG2_LNA_A1) == 0xff)
-                       rt2x00_set_field16(&word, EEPROM_RSSI_BG2_LNA_A1,
-@@ -9122,7 +9123,8 @@ static int rt2800_validate_eeprom(struct
-       word = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A2);
-       if (abs(rt2x00_get_field16(word, EEPROM_RSSI_A2_OFFSET2)) > 10)
-               rt2x00_set_field16(&word, EEPROM_RSSI_A2_OFFSET2, 0);
--      if (!rt2x00_rt(rt2x00dev, RT3593)) {
-+      if (!rt2x00_rt(rt2x00dev, RT3593) &&
-+          !rt2x00_rt(rt2x00dev, RT3883)) {
-               if (rt2x00_get_field16(word, EEPROM_RSSI_A2_LNA_A2) == 0x00 ||
-                   rt2x00_get_field16(word, EEPROM_RSSI_A2_LNA_A2) == 0xff)
-                       rt2x00_set_field16(&word, EEPROM_RSSI_A2_LNA_A2,
-@@ -9130,7 +9132,8 @@ static int rt2800_validate_eeprom(struct
-       }
-       rt2800_eeprom_write(rt2x00dev, EEPROM_RSSI_A2, word);
--      if (rt2x00_rt(rt2x00dev, RT3593)) {
-+      if (rt2x00_rt(rt2x00dev, RT3593) ||
-+          rt2x00_rt(rt2x00dev, RT3883)) {
-               word = rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2);
-               if (rt2x00_get_field16(word, EEPROM_EXT_LNA2_A1) == 0x00 ||
-                   rt2x00_get_field16(word, EEPROM_EXT_LNA2_A1) == 0xff)
diff --git a/package/kernel/mac80211/patches/rt2x00/600-22-rt2x00-rt2800lib-fix-txpower-compensation-for-RT3883.patch b/package/kernel/mac80211/patches/rt2x00/600-22-rt2x00-rt2800lib-fix-txpower-compensation-for-RT3883.patch
deleted file mode 100644 (file)
index 3fe503a..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-From e3871034a0e7c8a95152dc3eafbcc4535398cbdc Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Wed, 2 Oct 2013 10:11:59 +0200
-Subject: [PATCH] rt2x00: rt2800lib: fix txpower compensation for RT3883
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c |    3 +++
- 1 file changed, 3 insertions(+)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -4357,6 +4357,9 @@ static u8 rt2800_compensate_txpower(stru
-       if (rt2x00_rt(rt2x00dev, RT3593))
-               return min_t(u8, txpower, 0xc);
-+      if (rt2x00_rt(rt2x00dev, RT3883))
-+              return min_t(u8, txpower, 0xf);
-+
-       if (rt2x00_has_cap_power_limit(rt2x00dev)) {
-               /*
-                * Check if eirp txpower exceed txpower_limit.
index 18a3fb82ea286dbf4204d3d8726a7a3447744926..c6d4862e41ec71a93d638a6e47235420da8264e7 100644 (file)
@@ -1,6 +1,6 @@
 --- a/local-symbols
 +++ b/local-symbols
-@@ -304,6 +304,7 @@ RT2X00_LIB_FIRMWARE=
+@@ -305,6 +305,7 @@ RT2X00_LIB_FIRMWARE=
  RT2X00_LIB_CRYPTO=
  RT2X00_LIB_LEDS=
  RT2X00_LIB_DEBUGFS=
        .drv_init_registers     = rt2800mmio_init_registers,
 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
-@@ -702,6 +702,7 @@ enum rt2x00_capability_flags {
+@@ -703,6 +703,7 @@ enum rt2x00_capability_flags {
        REQUIRE_HT_TX_DESC,
        REQUIRE_PS_AUTOWAKE,
        REQUIRE_DELAYED_RFKILL,
  
        /*
         * Capabilities
-@@ -977,6 +978,11 @@ struct rt2x00_dev {
+@@ -978,6 +979,11 @@ struct rt2x00_dev {
        const struct firmware *fw;
  
        /*
        DECLARE_KFIFO_PTR(txstatus_fifo, u32);
 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
-@@ -1421,6 +1421,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de
+@@ -1423,6 +1423,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de
        INIT_DELAYED_WORK(&rt2x00dev->autowakeup_work, rt2x00lib_autowakeup);
        INIT_WORK(&rt2x00dev->sleep_work, rt2x00lib_sleep);
  
        /*
         * Let the driver probe the device to detect the capabilities.
         */
-@@ -1562,6 +1566,11 @@ void rt2x00lib_remove_dev(struct rt2x00_
+@@ -1566,6 +1570,11 @@ void rt2x00lib_remove_dev(struct rt2x00_
         * Free the driver data.
         */
        kfree(rt2x00dev->drv_data);
  
 --- /dev/null
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c
-@@ -0,0 +1,105 @@
+@@ -0,0 +1,106 @@
 +/*
 +      Copyright (C) 2004 - 2009 Ivo van Doorn <IvDoorn@gmail.com>
 +      Copyright (C) 2004 - 2009 Gertjan van Wingerde <gwingerde@gmail.com>
 +
 +void rt2x00lib_free_eeprom_file(struct rt2x00_dev *rt2x00dev)
 +{
-+      release_firmware(rt2x00dev->eeprom_file);
++      if (rt2x00dev->eeprom_file && rt2x00dev->eeprom_file->size)
++              release_firmware(rt2x00dev->eeprom_file);
 +      rt2x00dev->eeprom_file = NULL;
 +}
 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00lib.h
index a98b49c541f5f76e73751c2fd2e5b85559854b87..b3e1220b601ab1d449f1237c1366e8776cb3d89f 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
          Supported chips: RT2880, RT3050, RT3052, RT3350, RT3352.
 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c
-@@ -26,11 +26,73 @@
+@@ -26,11 +26,72 @@
  
  #include <linux/kernel.h>
  #include <linux/module.h>
@@ -84,7 +84,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 +                      rt2x00dev->eeprom[i] = swab16(rt2x00dev->eeprom[i]);
 +
 +      rt2x00dev->eeprom_file = &mtd_fw;
-+      mtd_fw.size = len;
 +      mtd_fw.data = (const u8 *) rt2x00dev->eeprom;
 +
 +      dev_info(rt2x00dev->dev, "loaded eeprom from mtd device \"%s\"\n", part);
@@ -96,7 +95,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  static const char *
  rt2x00lib_get_eeprom_file_name(struct rt2x00_dev *rt2x00dev)
  {
-@@ -58,6 +120,9 @@ static int rt2x00lib_request_eeprom_file
+@@ -58,6 +119,9 @@ static int rt2x00lib_request_eeprom_file
        const char *ee_name;
        int retval;
  
index 3d6b33518e39b45988630d1241a093bcbe908bdb..f0c079b62b32161e12cd3a36380b225e34b98fba 100644 (file)
@@ -8,7 +8,7 @@
  
  #include "rt2x00.h"
  #include "rt2800lib.h"
-@@ -9291,6 +9292,17 @@ static int rt2800_init_eeprom(struct rt2
+@@ -9458,6 +9459,17 @@ static int rt2800_init_eeprom(struct rt2
        rt2800_init_led(rt2x00dev, &rt2x00dev->led_assoc, LED_TYPE_ASSOC);
        rt2800_init_led(rt2x00dev, &rt2x00dev->led_qual, LED_TYPE_QUALITY);
  
index 7f80e110ab1ed569a8c76ca3da8e86e416fb44c0..2b6aa43c2db0d0a13c0af0ec09070c5cb23aef10 100644 (file)
@@ -6,8 +6,13 @@ To: Stanislaw Gruszka <sgruszka@redhat.com>
 Cc: Helmut Schaa <helmut.schaa@googlemail.com>,
     linux-wireless@vger.kernel.org,
     Kalle Valo <kvalo@codeaurora.org>
+Content-Type: text/plain; charset="UTF-8"
+Content-Transfer-Encoding: quoted-printable
 
 Signed-off-by: Daniel Golle <daniel@makrotopia.org>
+Signed-off-by: Tomislav Po=C5=BEega <pozega.tomislav@gmail.com>
+[pozega.tomislav@gmail.com: use chanreg and dccal helpers.]
+
 ---
  drivers/net/wireless/ralink/rt2x00/rt2800.h    |  1 +
  drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 70 +++++++++++++++++++++++++-
@@ -25,7 +30,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
   * EEPROM LNA
 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -4123,6 +4123,61 @@ static void rt2800_config_channel(struct
+@@ -4290,6 +4290,45 @@ static void rt2800_config_channel(struct
                rt2800_iq_calibrate(rt2x00dev, rf->channel);
        }
  
@@ -42,38 +47,22 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +                      reg |= 0x00000101;
 +                      rt2800_register_write(rt2x00dev, RF_BYPASS3, reg);
 +
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 43, 0x73);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 43, 0x73);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 44, 0x73);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 44, 0x73);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 45, 0x73);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 45, 0x73);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 46, 0x27);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 46, 0x27);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 47, 0xC8);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 47, 0xC8);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 48, 0xA4);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 48, 0xA4);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 49, 0x05);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 49, 0x05);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 54, 0x27);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 54, 0x27);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 55, 0xC8);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 55, 0xC8);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 56, 0xA4);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 56, 0xA4);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 57, 0x05);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 57, 0x05);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 58, 0x27);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 58, 0x27);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 59, 0xC8);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 59, 0xC8);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 60, 0xA4);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 60, 0xA4);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 61, 0x05);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 61, 0x05);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 5, 05, 0x00);
-+                      rt2800_rfcsr_write_bank(rt2x00dev, 7, 05, 0x00);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 43, 0x73);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 44, 0x73);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 45, 0x73);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 46, 0x27);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 47, 0xC8);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 48, 0xA4);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 49, 0x05);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 54, 0x27);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 55, 0xC8);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 56, 0xA4);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 57, 0x05);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 58, 0x27);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 59, 0xC8);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 60, 0xA4);
++                      rt2800_rfcsr_write_chanreg(rt2x00dev, 61, 0x05);
++                      rt2800_rfcsr_write_dccal(rt2x00dev, 05, 0x00);
 +
 +                      rt2800_register_write(rt2x00dev, TX0_RF_GAIN_CORRECT,
 +                                            0x36303636);
@@ -87,7 +76,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        bbp = rt2800_bbp_read(rt2x00dev, 4);
        rt2x00_set_field8(&bbp, BBP4_BANDWIDTH, 2 * conf_is_ht40(conf));
        rt2800_bbp_write(rt2x00dev, 4, bbp);
-@@ -9320,7 +9375,8 @@ static int rt2800_init_eeprom(struct rt2
+@@ -9487,7 +9526,8 @@ static int rt2800_init_eeprom(struct rt2
         */
        eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1);
  
@@ -97,7 +86,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
                if (rt2x00_get_field16(eeprom,
                    EEPROM_NIC_CONF1_EXTERNAL_TX0_PA_3352))
                    __set_bit(CAPABILITY_EXTERNAL_PA_TX0,
-@@ -9331,6 +9387,18 @@ static int rt2800_init_eeprom(struct rt2
+@@ -9498,6 +9538,18 @@ static int rt2800_init_eeprom(struct rt2
                              &rt2x00dev->cap_flags);
        }
  
diff --git a/package/kernel/mac80211/patches/rt2x00/651-rt2x00-remove-unneccesary-code.patch b/package/kernel/mac80211/patches/rt2x00/651-rt2x00-remove-unneccesary-code.patch
deleted file mode 100644 (file)
index eb49963..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-From pozega.tomislav@gmail.com Thu May 18 12:42:27 2017
-Return-path: <pozega.tomislav@gmail.com>
-Envelope-to: daniel@makrotopia.org
-Delivery-date: Thu, 18 May 2017 12:42:27 +0200
-Received: from mail by fudo.makrotopia.org with sa-checked (Exim 4.88)
-       (envelope-from <pozega.tomislav@gmail.com>)
-       id 1dBIsy-00088b-PU
-       for daniel@makrotopia.org; Thu, 18 May 2017 12:42:27 +0200
-X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on fudo.makrotopia.org
-X-Spam-Level: 
-X-Spam-Status: No, score=-0.8 required=2.5 tests=DKIM_SIGNED,DKIM_VALID,
-       DKIM_VALID_AU,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW shortcircuit=no
-       autolearn=ham autolearn_force=no version=3.4.1
-Received: from mail-oi0-x22a.google.com ([2607:f8b0:4003:c06::22a])
-       by fudo.makrotopia.org with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
-        (Exim 4.88)
-       (envelope-from <pozega.tomislav@gmail.com>)
-       id 1dBIsv-00088Q-Dq
-       for daniel@makrotopia.org; Thu, 18 May 2017 12:42:24 +0200
-Received: by mail-oi0-x22a.google.com with SMTP id w10so48782189oif.0
-        for <daniel@makrotopia.org>; Thu, 18 May 2017 03:42:21 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
-        d=gmail.com; s=20161025;
-        h=mime-version:from:date:message-id:subject:to;
-        bh=9dF7PHDassYY74+N6dAhmsL/B9i5oG3SEuMzHuazhJo=;
-        b=cBGJ44v+o4ASyCPmHCBRMmRYnJCv4Gx6lzDiScKn0XqYmNHYpZTPg5cAY1GZFUhHdz
-         9QT5fzhJKFikBliSuJc/7/pI8KzvyEAdvawiWA7/5fbeiTZ+zjJnzRVGezqkYDKxjR6u
-         7TsoJxR2/oFwo7bOFlThhee+Nwf7qaX8AVal7JdkqovekX79JQ5vsKAa4LapDp7Cl0wr
-         KCh0WRUHGEgpTLJFyQ3ThPmLqc8bhmu+6/V/LJ53VOY7uksZHMhvaKkk9vDCoOuPnBMK
-         Cj2/c7z9RTErz/xlHg6HxnBe/pPc31XUsuPJUleOEdZASczPsreEEKacKCONVlP1wjAB
-         iOkA==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
-        d=1e100.net; s=20161025;
-        h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
-        bh=9dF7PHDassYY74+N6dAhmsL/B9i5oG3SEuMzHuazhJo=;
-        b=LJAe4ZwS9aNJypROW7j+I9aNfRBWyDYy0c8ABnDbLrIoF9P2AA/Vs/Cli5f7GjaAxr
-         1JCx602ach+7R7QjQq/nqNmLuhRCfSvB0TGrq4R4v+CJ4ADO541+PddnFiU1dlIXQRP2
-         TE2FOydSO0FGJBMg+kY0eFiidBtYj1T5x7IHAhQzufiuiF6/1xZS8h61CYJjLzt/aR5y
-         JxOxsVvu3W2YQ0T5wKmAPlKtarFH6ZZgs446bRYt1MX5KAWzIoBM1+IPMMv7lSCpCaDR
-         fwH05aDyaJW2IzXH5R9Tq7gGYycYjx/SnO7JupJXJVvOzKgBJxp60JwJhCfqCwESDuuD
-         8nNA==
-X-Gm-Message-State: AODbwcDOpdFZgbxAxFsVsqFdCBN3pRGDvEclZ1heVg2byNZ9BuG5kqJg
-       GvZ9x4NGt0v8lVGa3esDw0N1KiJENg==
-X-Received: by 10.157.17.217 with SMTP id y25mr1310632oty.137.1495104134863;
- Thu, 18 May 2017 03:42:14 -0700 (PDT)
-MIME-Version: 1.0
-Received: by 10.157.0.105 with HTTP; Thu, 18 May 2017 03:42:14 -0700 (PDT)
-From: Tom Psyborg <pozega.tomislav@gmail.com>
-Date: Thu, 18 May 2017 12:42:14 +0200
-Message-ID: <CAKR_QVJBSKw2uCY4RbHZPvbGkMcvnBh+j6F+9t93mG3BakjX3Q@mail.gmail.com>
-Subject: [PATCH] rt2x00: remove unneccesary code
-To: linux-wireless <linux-wireless@vger.kernel.org>, 
-       Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, Arnd Bergmann <arnd@arndb.de>, 
-       Jes Sorensen <jes.sorensen@gmail.com>, Stanislaw Gruszka <sgruszka@redhat.com>, 
-       David Miller <davem@davemloft.net>, Helmut Schaa <helmut.schaa@googlemail.com>, 
-       Kalle Valo <kvalo@codeaurora.org>, Daniel Golle <daniel@makrotopia.org>, 
-       Mathias Kresin <dev@kresin.me>, Johannes Berg <johannes.berg@intel.com>, 
-       Serge Vasilugin <vasilugin@yandex.ru>, Roman Yeryomin <roman@advem.lv>, 
-       Networking <netdev@vger.kernel.org>
-Content-Type: multipart/alternative; boundary="94eb2c1905d2dc6361054fca0e62"
-Status: RO
-Content-Length: 11079
-Lines: 178
-
---94eb2c1905d2dc6361054fca0e62
-Content-Type: text/plain; charset="UTF-8"
-Content-Transfer-Encoding: quoted-printable
-
-Use chanreg and dccal helpers to reduce the size of ePA code.
-
-Signed-off-by: Tomislav Po=C5=BEega <pozega.tomislav@gmail.com>
-Signed-off-by: Daniel Golle <daniel@makrotopia.org>
-[daniel@makrotopia.org: fixed white-space so patch applies]
----
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -4136,38 +4136,22 @@ static void rt2800_config_channel(struct
-                       reg |= 0x00000101;
-                       rt2800_register_write(rt2x00dev, RF_BYPASS3, reg);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 43, 0x73);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 43, 0x73);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 44, 0x73);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 44, 0x73);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 45, 0x73);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 45, 0x73);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 46, 0x27);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 46, 0x27);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 47, 0xC8);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 47, 0xC8);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 48, 0xA4);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 48, 0xA4);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 49, 0x05);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 49, 0x05);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 54, 0x27);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 54, 0x27);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 55, 0xC8);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 55, 0xC8);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 56, 0xA4);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 56, 0xA4);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 57, 0x05);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 57, 0x05);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 58, 0x27);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 58, 0x27);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 59, 0xC8);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 59, 0xC8);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 60, 0xA4);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 60, 0xA4);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 4, 61, 0x05);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 6, 61, 0x05);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 5, 05, 0x00);
--                      rt2800_rfcsr_write_bank(rt2x00dev, 7, 05, 0x00);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 43, 0x73);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 44, 0x73);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 45, 0x73);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 46, 0x27);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 47, 0xC8);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 48, 0xA4);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 49, 0x05);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 54, 0x27);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 55, 0xC8);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 56, 0xA4);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 57, 0x05);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 58, 0x27);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 59, 0xC8);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 60, 0xA4);
-+                      rt2800_rfcsr_write_chanreg(rt2x00dev, 61, 0x05);
-+                      rt2800_rfcsr_write_dccal(rt2x00dev, 05, 0x00);
-                       rt2800_register_write(rt2x00dev, TX0_RF_GAIN_CORRECT,
-                                             0x36303636);
diff --git a/package/kernel/mac80211/patches/rt2x00/701-rt2800-move-usb-specific-txdone-txstatus-routines-to.patch b/package/kernel/mac80211/patches/rt2x00/701-rt2800-move-usb-specific-txdone-txstatus-routines-to.patch
deleted file mode 100644 (file)
index 12abf8f..0000000
+++ /dev/null
@@ -1,356 +0,0 @@
-From 0381bfbc400ce4c3000b0b31c577ad9e8071e4f6 Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka@redhat.com>
-Date: Fri, 18 May 2018 12:25:08 +0200
-Subject: [PATCH 1/5] rt2800: move usb specific txdone/txstatus routines to
- rt2800lib
-
-In order to reuse usb txdone/txstatus routines for mmio, move them
-to common rt2800lib.c file.
-
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
----
- .../net/wireless/ralink/rt2x00/rt2800lib.c    | 138 +++++++++++++++++
- .../net/wireless/ralink/rt2x00/rt2800lib.h    |   3 +
- .../net/wireless/ralink/rt2x00/rt2800usb.c    | 143 +-----------------
- 3 files changed, 145 insertions(+), 139 deletions(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -960,6 +960,47 @@ static void rt2800_rate_from_status(stru
-       skbdesc->tx_rate_flags = flags;
- }
-+static bool rt2800_txdone_entry_check(struct queue_entry *entry, u32 reg)
-+{
-+      __le32 *txwi;
-+      u32 word;
-+      int wcid, ack, pid;
-+      int tx_wcid, tx_ack, tx_pid, is_agg;
-+
-+      /*
-+       * This frames has returned with an IO error,
-+       * so the status report is not intended for this
-+       * frame.
-+       */
-+      if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags))
-+              return false;
-+
-+      wcid    = rt2x00_get_field32(reg, TX_STA_FIFO_WCID);
-+      ack     = rt2x00_get_field32(reg, TX_STA_FIFO_TX_ACK_REQUIRED);
-+      pid     = rt2x00_get_field32(reg, TX_STA_FIFO_PID_TYPE);
-+      is_agg  = rt2x00_get_field32(reg, TX_STA_FIFO_TX_AGGRE);
-+
-+      /*
-+       * Validate if this TX status report is intended for
-+       * this entry by comparing the WCID/ACK/PID fields.
-+       */
-+      txwi = rt2800_drv_get_txwi(entry);
-+
-+      word = rt2x00_desc_read(txwi, 1);
-+      tx_wcid = rt2x00_get_field32(word, TXWI_W1_WIRELESS_CLI_ID);
-+      tx_ack  = rt2x00_get_field32(word, TXWI_W1_ACK);
-+      tx_pid  = rt2x00_get_field32(word, TXWI_W1_PACKETID);
-+
-+      if (wcid != tx_wcid || ack != tx_ack || (!is_agg && pid != tx_pid)) {
-+              rt2x00_dbg(entry->queue->rt2x00dev,
-+                         "TX status report missed for queue %d entry %d\n",
-+                         entry->queue->qid, entry->entry_idx);
-+              return false;
-+      }
-+
-+      return true;
-+}
-+
- void rt2800_txdone_entry(struct queue_entry *entry, u32 status, __le32 *txwi,
-                        bool match)
- {
-@@ -1062,6 +1103,103 @@ void rt2800_txdone_entry(struct queue_en
- }
- EXPORT_SYMBOL_GPL(rt2800_txdone_entry);
-+void rt2800_txdone(struct rt2x00_dev *rt2x00dev)
-+{
-+      struct data_queue *queue;
-+      struct queue_entry *entry;
-+      u32 reg;
-+      u8 qid;
-+      bool match;
-+
-+      while (kfifo_get(&rt2x00dev->txstatus_fifo, &reg)) {
-+              /*
-+               * TX_STA_FIFO_PID_QUEUE is a 2-bit field, thus qid is
-+               * guaranteed to be one of the TX QIDs .
-+               */
-+              qid = rt2x00_get_field32(reg, TX_STA_FIFO_PID_QUEUE);
-+              queue = rt2x00queue_get_tx_queue(rt2x00dev, qid);
-+
-+              if (unlikely(rt2x00queue_empty(queue))) {
-+                      rt2x00_dbg(rt2x00dev, "Got TX status for an empty queue %u, dropping\n",
-+                                 qid);
-+                      break;
-+              }
-+
-+              entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
-+
-+              if (unlikely(test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags) ||
-+                           !test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))) {
-+                      rt2x00_warn(rt2x00dev, "Data pending for entry %u in queue %u\n",
-+                                  entry->entry_idx, qid);
-+                      break;
-+              }
-+
-+              match = rt2800_txdone_entry_check(entry, reg);
-+              rt2800_txdone_entry(entry, reg, rt2800_drv_get_txwi(entry), match);
-+      }
-+}
-+EXPORT_SYMBOL_GPL(rt2800_txdone);
-+
-+static inline bool rt2800_entry_txstatus_timeout(struct queue_entry *entry)
-+{
-+      bool tout;
-+
-+      if (!test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))
-+              return false;
-+
-+      tout = time_after(jiffies, entry->last_action + msecs_to_jiffies(500));
-+      if (unlikely(tout))
-+              rt2x00_dbg(entry->queue->rt2x00dev,
-+                         "TX status timeout for entry %d in queue %d\n",
-+                         entry->entry_idx, entry->queue->qid);
-+      return tout;
-+
-+}
-+
-+bool rt2800_txstatus_timeout(struct rt2x00_dev *rt2x00dev)
-+{
-+      struct data_queue *queue;
-+      struct queue_entry *entry;
-+
-+      tx_queue_for_each(rt2x00dev, queue) {
-+              entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
-+              if (rt2800_entry_txstatus_timeout(entry))
-+                      return true;
-+      }
-+      return false;
-+}
-+EXPORT_SYMBOL_GPL(rt2800_txstatus_timeout);
-+
-+void rt2800_txdone_nostatus(struct rt2x00_dev *rt2x00dev)
-+{
-+      struct data_queue *queue;
-+      struct queue_entry *entry;
-+
-+      /*
-+       * Process any trailing TX status reports for IO failures,
-+       * we loop until we find the first non-IO error entry. This
-+       * can either be a frame which is free, is being uploaded,
-+       * or has completed the upload but didn't have an entry
-+       * in the TX_STAT_FIFO register yet.
-+       */
-+      tx_queue_for_each(rt2x00dev, queue) {
-+              while (!rt2x00queue_empty(queue)) {
-+                      entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
-+
-+                      if (test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags) ||
-+                          !test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))
-+                              break;
-+
-+                      if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags) ||
-+                          rt2800_entry_txstatus_timeout(entry))
-+                              rt2x00lib_txdone_noinfo(entry, TXDONE_FAILURE);
-+                      else
-+                              break;
-+              }
-+      }
-+}
-+EXPORT_SYMBOL_GPL(rt2800_txdone_nostatus);
-+
- static unsigned int rt2800_hw_beacon_base(struct rt2x00_dev *rt2x00dev,
-                                         unsigned int index)
- {
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
-@@ -206,6 +206,9 @@ void rt2800_process_rxwi(struct queue_en
- void rt2800_txdone_entry(struct queue_entry *entry, u32 status, __le32 *txwi,
-                        bool match);
-+void rt2800_txdone(struct rt2x00_dev *rt2x00dev);
-+void rt2800_txdone_nostatus(struct rt2x00_dev *rt2x00dev);
-+bool rt2800_txstatus_timeout(struct rt2x00_dev *rt2x00dev);
- void rt2800_write_beacon(struct queue_entry *entry, struct txentry_desc *txdesc);
- void rt2800_clear_beacon(struct queue_entry *entry);
---- a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
-@@ -116,35 +116,6 @@ static bool rt2800usb_txstatus_pending(s
-       return false;
- }
--static inline bool rt2800usb_entry_txstatus_timeout(struct queue_entry *entry)
--{
--      bool tout;
--
--      if (!test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))
--              return false;
--
--      tout = time_after(jiffies, entry->last_action + msecs_to_jiffies(500));
--      if (unlikely(tout))
--              rt2x00_dbg(entry->queue->rt2x00dev,
--                         "TX status timeout for entry %d in queue %d\n",
--                         entry->entry_idx, entry->queue->qid);
--      return tout;
--
--}
--
--static bool rt2800usb_txstatus_timeout(struct rt2x00_dev *rt2x00dev)
--{
--      struct data_queue *queue;
--      struct queue_entry *entry;
--
--      tx_queue_for_each(rt2x00dev, queue) {
--              entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
--              if (rt2800usb_entry_txstatus_timeout(entry))
--                      return true;
--      }
--      return false;
--}
--
- #define TXSTATUS_READ_INTERVAL 1000000
- static bool rt2800usb_tx_sta_fifo_read_completed(struct rt2x00_dev *rt2x00dev,
-@@ -171,7 +142,7 @@ static bool rt2800usb_tx_sta_fifo_read_c
-       }
-       /* Check if there is any entry that timedout waiting on TX status */
--      if (rt2800usb_txstatus_timeout(rt2x00dev))
-+      if (rt2800_txstatus_timeout(rt2x00dev))
-               queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work);
-       if (rt2800usb_txstatus_pending(rt2x00dev)) {
-@@ -501,123 +472,17 @@ static int rt2800usb_get_tx_data_len(str
- /*
-  * TX control handlers
-  */
--static bool rt2800usb_txdone_entry_check(struct queue_entry *entry, u32 reg)
--{
--      __le32 *txwi;
--      u32 word;
--      int wcid, ack, pid;
--      int tx_wcid, tx_ack, tx_pid, is_agg;
--
--      /*
--       * This frames has returned with an IO error,
--       * so the status report is not intended for this
--       * frame.
--       */
--      if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags))
--              return false;
--
--      wcid    = rt2x00_get_field32(reg, TX_STA_FIFO_WCID);
--      ack     = rt2x00_get_field32(reg, TX_STA_FIFO_TX_ACK_REQUIRED);
--      pid     = rt2x00_get_field32(reg, TX_STA_FIFO_PID_TYPE);
--      is_agg  = rt2x00_get_field32(reg, TX_STA_FIFO_TX_AGGRE);
--
--      /*
--       * Validate if this TX status report is intended for
--       * this entry by comparing the WCID/ACK/PID fields.
--       */
--      txwi = rt2800usb_get_txwi(entry);
--
--      word = rt2x00_desc_read(txwi, 1);
--      tx_wcid = rt2x00_get_field32(word, TXWI_W1_WIRELESS_CLI_ID);
--      tx_ack  = rt2x00_get_field32(word, TXWI_W1_ACK);
--      tx_pid  = rt2x00_get_field32(word, TXWI_W1_PACKETID);
--
--      if (wcid != tx_wcid || ack != tx_ack || (!is_agg && pid != tx_pid)) {
--              rt2x00_dbg(entry->queue->rt2x00dev,
--                         "TX status report missed for queue %d entry %d\n",
--                         entry->queue->qid, entry->entry_idx);
--              return false;
--      }
--
--      return true;
--}
--
--static void rt2800usb_txdone(struct rt2x00_dev *rt2x00dev)
--{
--      struct data_queue *queue;
--      struct queue_entry *entry;
--      u32 reg;
--      u8 qid;
--      bool match;
--
--      while (kfifo_get(&rt2x00dev->txstatus_fifo, &reg)) {
--              /*
--               * TX_STA_FIFO_PID_QUEUE is a 2-bit field, thus qid is
--               * guaranteed to be one of the TX QIDs .
--               */
--              qid = rt2x00_get_field32(reg, TX_STA_FIFO_PID_QUEUE);
--              queue = rt2x00queue_get_tx_queue(rt2x00dev, qid);
--
--              if (unlikely(rt2x00queue_empty(queue))) {
--                      rt2x00_dbg(rt2x00dev, "Got TX status for an empty queue %u, dropping\n",
--                                 qid);
--                      break;
--              }
--
--              entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
--
--              if (unlikely(test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags) ||
--                           !test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))) {
--                      rt2x00_warn(rt2x00dev, "Data pending for entry %u in queue %u\n",
--                                  entry->entry_idx, qid);
--                      break;
--              }
--
--              match = rt2800usb_txdone_entry_check(entry, reg);
--              rt2800_txdone_entry(entry, reg, rt2800usb_get_txwi(entry), match);
--      }
--}
--
--static void rt2800usb_txdone_nostatus(struct rt2x00_dev *rt2x00dev)
--{
--      struct data_queue *queue;
--      struct queue_entry *entry;
--
--      /*
--       * Process any trailing TX status reports for IO failures,
--       * we loop until we find the first non-IO error entry. This
--       * can either be a frame which is free, is being uploaded,
--       * or has completed the upload but didn't have an entry
--       * in the TX_STAT_FIFO register yet.
--       */
--      tx_queue_for_each(rt2x00dev, queue) {
--              while (!rt2x00queue_empty(queue)) {
--                      entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
--
--                      if (test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags) ||
--                          !test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))
--                              break;
--
--                      if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags) ||
--                          rt2800usb_entry_txstatus_timeout(entry))
--                              rt2x00lib_txdone_noinfo(entry, TXDONE_FAILURE);
--                      else
--                              break;
--              }
--      }
--}
--
- static void rt2800usb_work_txdone(struct work_struct *work)
- {
-       struct rt2x00_dev *rt2x00dev =
-           container_of(work, struct rt2x00_dev, txdone_work);
-       while (!kfifo_is_empty(&rt2x00dev->txstatus_fifo) ||
--             rt2800usb_txstatus_timeout(rt2x00dev)) {
-+             rt2800_txstatus_timeout(rt2x00dev)) {
--              rt2800usb_txdone(rt2x00dev);
-+              rt2800_txdone(rt2x00dev);
--              rt2800usb_txdone_nostatus(rt2x00dev);
-+              rt2800_txdone_nostatus(rt2x00dev);
-               /*
-                * The hw may delay sending the packet after DMA complete
diff --git a/package/kernel/mac80211/patches/rt2x00/702-rt2800mmio-use-txdone-txstatus-routines-from-lib.patch b/package/kernel/mac80211/patches/rt2x00/702-rt2800mmio-use-txdone-txstatus-routines-from-lib.patch
deleted file mode 100644 (file)
index 9f7f65d..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-From 7993486bbab17f8916993710a8660eb47fd991e9 Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka@redhat.com>
-Date: Mon, 9 Jul 2018 16:07:42 +0200
-Subject: [PATCH 2/5] rt2800mmio: use txdone/txstatus routines from lib
-
-Use usb txdone/txstatus routines (now in rt2800libc) for mmio devices.
-
-Note this also change how we handle INT_SOURCE_CSR_TX_FIFO_STATUS
-interrupt. Now it is disabled since IRQ routine till end of the txstatus
-tasklet (the same behaviour like others interrupts). Reason to do not
-disable this interrupt was not to miss any tx status from 16 entries
-FIFO register. Now, since we check for tx status timeout, we can
-allow to miss some tx statuses. However this will be improved in further
-patch where I also implement read status FIFO register in the tasklet.
-
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
----
- .../net/wireless/ralink/rt2x00/rt2800mmio.c   | 180 +-----------------
- .../net/wireless/ralink/rt2x00/rt2x00queue.c  |   1 +
- 2 files changed, 9 insertions(+), 172 deletions(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
-@@ -175,161 +175,6 @@ static void rt2800mmio_wakeup(struct rt2
-       rt2800_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS);
- }
--static bool rt2800mmio_txdone_entry_check(struct queue_entry *entry, u32 status)
--{
--      __le32 *txwi;
--      u32 word;
--      int wcid, tx_wcid;
--
--      wcid = rt2x00_get_field32(status, TX_STA_FIFO_WCID);
--
--      txwi = rt2800_drv_get_txwi(entry);
--      word = rt2x00_desc_read(txwi, 1);
--      tx_wcid = rt2x00_get_field32(word, TXWI_W1_WIRELESS_CLI_ID);
--
--      return (tx_wcid == wcid);
--}
--
--static bool rt2800mmio_txdone_find_entry(struct queue_entry *entry, void *data)
--{
--      u32 status = *(u32 *)data;
--
--      /*
--       * rt2800pci hardware might reorder frames when exchanging traffic
--       * with multiple BA enabled STAs.
--       *
--       * For example, a tx queue
--       *    [ STA1 | STA2 | STA1 | STA2 ]
--       * can result in tx status reports
--       *    [ STA1 | STA1 | STA2 | STA2 ]
--       * when the hw decides to aggregate the frames for STA1 into one AMPDU.
--       *
--       * To mitigate this effect, associate the tx status to the first frame
--       * in the tx queue with a matching wcid.
--       */
--      if (rt2800mmio_txdone_entry_check(entry, status) &&
--          !test_bit(ENTRY_DATA_STATUS_SET, &entry->flags)) {
--              /*
--               * Got a matching frame, associate the tx status with
--               * the frame
--               */
--              entry->status = status;
--              set_bit(ENTRY_DATA_STATUS_SET, &entry->flags);
--              return true;
--      }
--
--      /* Check the next frame */
--      return false;
--}
--
--static bool rt2800mmio_txdone_match_first(struct queue_entry *entry, void *data)
--{
--      u32 status = *(u32 *)data;
--
--      /*
--       * Find the first frame without tx status and assign this status to it
--       * regardless if it matches or not.
--       */
--      if (!test_bit(ENTRY_DATA_STATUS_SET, &entry->flags)) {
--              /*
--               * Got a matching frame, associate the tx status with
--               * the frame
--               */
--              entry->status = status;
--              set_bit(ENTRY_DATA_STATUS_SET, &entry->flags);
--              return true;
--      }
--
--      /* Check the next frame */
--      return false;
--}
--static bool rt2800mmio_txdone_release_entries(struct queue_entry *entry,
--                                            void *data)
--{
--      if (test_bit(ENTRY_DATA_STATUS_SET, &entry->flags)) {
--              rt2800_txdone_entry(entry, entry->status,
--                                  rt2800mmio_get_txwi(entry), true);
--              return false;
--      }
--
--      /* No more frames to release */
--      return true;
--}
--
--static bool rt2800mmio_txdone(struct rt2x00_dev *rt2x00dev)
--{
--      struct data_queue *queue;
--      u32 status;
--      u8 qid;
--      int max_tx_done = 16;
--
--      while (kfifo_get(&rt2x00dev->txstatus_fifo, &status)) {
--              qid = rt2x00_get_field32(status, TX_STA_FIFO_PID_QUEUE);
--              if (unlikely(qid >= QID_RX)) {
--                      /*
--                       * Unknown queue, this shouldn't happen. Just drop
--                       * this tx status.
--                       */
--                      rt2x00_warn(rt2x00dev, "Got TX status report with unexpected pid %u, dropping\n",
--                                  qid);
--                      break;
--              }
--
--              queue = rt2x00queue_get_tx_queue(rt2x00dev, qid);
--              if (unlikely(queue == NULL)) {
--                      /*
--                       * The queue is NULL, this shouldn't happen. Stop
--                       * processing here and drop the tx status
--                       */
--                      rt2x00_warn(rt2x00dev, "Got TX status for an unavailable queue %u, dropping\n",
--                                  qid);
--                      break;
--              }
--
--              if (unlikely(rt2x00queue_empty(queue))) {
--                      /*
--                       * The queue is empty. Stop processing here
--                       * and drop the tx status.
--                       */
--                      rt2x00_warn(rt2x00dev, "Got TX status for an empty queue %u, dropping\n",
--                                  qid);
--                      break;
--              }
--
--              /*
--               * Let's associate this tx status with the first
--               * matching frame.
--               */
--              if (!rt2x00queue_for_each_entry(queue, Q_INDEX_DONE,
--                                              Q_INDEX, &status,
--                                              rt2800mmio_txdone_find_entry)) {
--                      /*
--                       * We cannot match the tx status to any frame, so just
--                       * use the first one.
--                       */
--                      if (!rt2x00queue_for_each_entry(queue, Q_INDEX_DONE,
--                                                      Q_INDEX, &status,
--                                                      rt2800mmio_txdone_match_first)) {
--                              rt2x00_warn(rt2x00dev, "No frame found for TX status on queue %u, dropping\n",
--                                          qid);
--                              break;
--                      }
--              }
--
--              /*
--               * Release all frames with a valid tx status.
--               */
--              rt2x00queue_for_each_entry(queue, Q_INDEX_DONE,
--                                         Q_INDEX, NULL,
--                                         rt2800mmio_txdone_release_entries);
--
--              if (--max_tx_done == 0)
--                      break;
--      }
--
--      return !max_tx_done;
--}
--
- static inline void rt2800mmio_enable_interrupt(struct rt2x00_dev *rt2x00dev,
-                                              struct rt2x00_field32 irq_field)
- {
-@@ -349,14 +194,14 @@ static inline void rt2800mmio_enable_int
- void rt2800mmio_txstatus_tasklet(unsigned long data)
- {
-       struct rt2x00_dev *rt2x00dev = (struct rt2x00_dev *)data;
--      if (rt2800mmio_txdone(rt2x00dev))
--              tasklet_schedule(&rt2x00dev->txstatus_tasklet);
--      /*
--       * No need to enable the tx status interrupt here as we always
--       * leave it enabled to minimize the possibility of a tx status
--       * register overflow. See comment in interrupt handler.
--       */
-+      rt2800_txdone(rt2x00dev);
-+
-+      rt2800_txdone_nostatus(rt2x00dev);
-+
-+      if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-+              rt2800mmio_enable_interrupt(rt2x00dev,
-+                                          INT_SOURCE_CSR_TX_FIFO_STATUS);
- }
- EXPORT_SYMBOL_GPL(rt2800mmio_txstatus_tasklet);
-@@ -440,10 +285,6 @@ static void rt2800mmio_txstatus_interrup
-        * because we can schedule the tasklet multiple times (when the
-        * interrupt fires again during tx status processing).
-        *
--       * Furthermore we don't disable the TX_FIFO_STATUS
--       * interrupt here but leave it enabled so that the TX_STA_FIFO
--       * can also be read while the tx status tasklet gets executed.
--       *
-        * Since we have only one producer and one consumer we don't
-        * need to lock the kfifo.
-        */
-@@ -485,13 +326,8 @@ irqreturn_t rt2800mmio_interrupt(int irq
-        */
-       mask = ~reg;
--      if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS)) {
-+      if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS))
-               rt2800mmio_txstatus_interrupt(rt2x00dev);
--              /*
--               * Never disable the TX_FIFO_STATUS interrupt.
--               */
--              rt2x00_set_field32(&mask, INT_MASK_CSR_TX_FIFO_STATUS, 1);
--      }
-       if (rt2x00_get_field32(reg, INT_SOURCE_CSR_PRE_TBTT))
-               tasklet_hi_schedule(&rt2x00dev->pretbtt_tasklet);
---- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
-@@ -113,6 +113,7 @@ int rt2x00queue_map_txskb(struct queue_e
-               return -ENOMEM;
-       skbdesc->flags |= SKBDESC_DMA_MAPPED_TX;
-+      rt2x00lib_dmadone(entry);
-       return 0;
- }
- EXPORT_SYMBOL_GPL(rt2x00queue_map_txskb);
diff --git a/package/kernel/mac80211/patches/rt2x00/703-rt2x00-do-not-check-for-txstatus-timeout-every-time-.patch b/package/kernel/mac80211/patches/rt2x00/703-rt2x00-do-not-check-for-txstatus-timeout-every-time-.patch
deleted file mode 100644 (file)
index 111f4c7..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-From b5d6e37ea15949a126907050d8cfa4408153a0cd Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka@redhat.com>
-Date: Fri, 18 May 2018 12:25:10 +0200
-Subject: [PATCH 3/5] rt2x00: do not check for txstatus timeout every time on
- tasklet
-
-Do not check for tx status timeout everytime we perform txstatus tasklet.
-Perform check once per half a second.
-
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c   | 7 +++++++
- drivers/net/wireless/ralink/rt2x00/rt2800mmio.c  | 3 ++-
- drivers/net/wireless/ralink/rt2x00/rt2x00.h      | 2 ++
- drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 1 +
- 4 files changed, 12 insertions(+), 1 deletion(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -1161,11 +1161,18 @@ bool rt2800_txstatus_timeout(struct rt2x
-       struct data_queue *queue;
-       struct queue_entry *entry;
-+      if (time_before(jiffies,
-+                      rt2x00dev->last_nostatus_check + msecs_to_jiffies(500)))
-+              return false;
-+
-+      rt2x00dev->last_nostatus_check = jiffies;
-+
-       tx_queue_for_each(rt2x00dev, queue) {
-               entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
-               if (rt2800_entry_txstatus_timeout(entry))
-                       return true;
-       }
-+
-       return false;
- }
- EXPORT_SYMBOL_GPL(rt2800_txstatus_timeout);
---- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
-@@ -197,7 +197,8 @@ void rt2800mmio_txstatus_tasklet(unsigne
-       rt2800_txdone(rt2x00dev);
--      rt2800_txdone_nostatus(rt2x00dev);
-+      if (rt2800_txstatus_timeout(rt2x00dev))
-+              rt2800_txdone_nostatus(rt2x00dev);
-       if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-               rt2800mmio_enable_interrupt(rt2x00dev,
---- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
-@@ -988,6 +988,8 @@ struct rt2x00_dev {
-        */
-       DECLARE_KFIFO_PTR(txstatus_fifo, u32);
-+      unsigned long last_nostatus_check;
-+
-       /*
-        * Timer to ensure tx status reports are read (rt2800usb).
-        */
---- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
-@@ -1039,6 +1039,7 @@ void rt2x00queue_start_queues(struct rt2
-        */
-       tx_queue_for_each(rt2x00dev, queue)
-               rt2x00queue_start_queue(queue);
-+      rt2x00dev->last_nostatus_check = jiffies;
-       rt2x00queue_start_queue(rt2x00dev->rx);
- }
diff --git a/package/kernel/mac80211/patches/rt2x00/704-rt2x00-use-different-txstatus-timeouts-when-flushing.patch b/package/kernel/mac80211/patches/rt2x00/704-rt2x00-use-different-txstatus-timeouts-when-flushing.patch
deleted file mode 100644 (file)
index 6c4d42b..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From feb87977b6d251fb01a329905719e45908f6c939 Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka@redhat.com>
-Date: Fri, 10 Aug 2018 12:31:55 +0200
-Subject: [PATCH 4/5] rt2x00: use different txstatus timeouts when flushing
-
-Use different tx status timeouts for normal operation and when flushing.
-This increase timeout to 2s for normal operation as when there are bad
-radio conditions and frames are reposted many times device can not provide
-the status for quite long. With new timeout we can still get valid status
-on such bad conditions.
-
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
----
- .../net/wireless/ralink/rt2x00/rt2800lib.c    | 31 +++++++++++++------
- drivers/net/wireless/ralink/rt2x00/rt2x00.h   |  1 +
- .../net/wireless/ralink/rt2x00/rt2x00mac.c    |  4 +++
- 3 files changed, 26 insertions(+), 10 deletions(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -1140,36 +1140,47 @@ void rt2800_txdone(struct rt2x00_dev *rt
- }
- EXPORT_SYMBOL_GPL(rt2800_txdone);
--static inline bool rt2800_entry_txstatus_timeout(struct queue_entry *entry)
-+static inline bool rt2800_entry_txstatus_timeout(struct rt2x00_dev *rt2x00dev,
-+                                               struct queue_entry *entry)
- {
--      bool tout;
-+      bool ret;
-+      unsigned long tout;
-       if (!test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))
-               return false;
--      tout = time_after(jiffies, entry->last_action + msecs_to_jiffies(500));
--      if (unlikely(tout))
-+      if (test_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags))
-+              tout = msecs_to_jiffies(100);
-+      else
-+              tout = msecs_to_jiffies(2000);
-+
-+      ret = time_after(jiffies, entry->last_action + tout);
-+      if (unlikely(ret))
-               rt2x00_dbg(entry->queue->rt2x00dev,
-                          "TX status timeout for entry %d in queue %d\n",
-                          entry->entry_idx, entry->queue->qid);
--      return tout;
--
-+      return ret;
- }
- bool rt2800_txstatus_timeout(struct rt2x00_dev *rt2x00dev)
- {
-       struct data_queue *queue;
-       struct queue_entry *entry;
-+      unsigned long tout;
-+
-+      if (test_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags))
-+              tout = msecs_to_jiffies(50);
-+      else
-+              tout = msecs_to_jiffies(1000);
--      if (time_before(jiffies,
--                      rt2x00dev->last_nostatus_check + msecs_to_jiffies(500)))
-+      if (time_before(jiffies, rt2x00dev->last_nostatus_check + tout))
-               return false;
-       rt2x00dev->last_nostatus_check = jiffies;
-       tx_queue_for_each(rt2x00dev, queue) {
-               entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
--              if (rt2800_entry_txstatus_timeout(entry))
-+              if (rt2800_entry_txstatus_timeout(rt2x00dev, entry))
-                       return true;
-       }
-@@ -1198,7 +1209,7 @@ void rt2800_txdone_nostatus(struct rt2x0
-                               break;
-                       if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags) ||
--                          rt2800_entry_txstatus_timeout(entry))
-+                          rt2800_entry_txstatus_timeout(rt2x00dev, entry))
-                               rt2x00lib_txdone_noinfo(entry, TXDONE_FAILURE);
-                       else
-                               break;
---- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
-@@ -667,6 +667,7 @@ enum rt2x00_state_flags {
-       DEVICE_STATE_STARTED,
-       DEVICE_STATE_ENABLED_RADIO,
-       DEVICE_STATE_SCANNING,
-+      DEVICE_STATE_FLUSHING,
-       /*
-        * Driver configuration
---- a/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
-@@ -720,8 +720,12 @@ void rt2x00mac_flush(struct ieee80211_hw
-       if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
-               return;
-+      set_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags);
-+
-       tx_queue_for_each(rt2x00dev, queue)
-               rt2x00queue_flush_queue(queue, drop);
-+
-+      clear_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags);
- }
- EXPORT_SYMBOL_GPL(rt2x00mac_flush);
diff --git a/package/kernel/mac80211/patches/rt2x00/705-rt2800-flush-and-txstatus-rework-for-rt2800mmio.patch b/package/kernel/mac80211/patches/rt2x00/705-rt2800-flush-and-txstatus-rework-for-rt2800mmio.patch
deleted file mode 100644 (file)
index 2231018..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-From 0d9fbb738a5eadc7abc8060f43ebcc71f6324c07 Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka@redhat.com>
-Date: Tue, 14 Aug 2018 08:58:48 +0200
-Subject: [PATCH 5/5] rt2800: flush and txstatus rework for rt2800mmio
-
-Implement custom rt2800mmio flush routine and change txstatus
-routine to read TX_STA_FIFO also in the tasklet.
-
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
----
- .../net/wireless/ralink/rt2x00/rt2800lib.c    |  14 +-
- .../net/wireless/ralink/rt2x00/rt2800mmio.c   | 120 +++++++++++++-----
- .../net/wireless/ralink/rt2x00/rt2800mmio.h   |   1 +
- .../net/wireless/ralink/rt2x00/rt2800pci.c    |   2 +-
- 4 files changed, 99 insertions(+), 38 deletions(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -1150,7 +1150,7 @@ static inline bool rt2800_entry_txstatus
-               return false;
-       if (test_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags))
--              tout = msecs_to_jiffies(100);
-+              tout = msecs_to_jiffies(50);
-       else
-               tout = msecs_to_jiffies(2000);
-@@ -1166,15 +1166,13 @@ bool rt2800_txstatus_timeout(struct rt2x
- {
-       struct data_queue *queue;
-       struct queue_entry *entry;
--      unsigned long tout;
--      if (test_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags))
--              tout = msecs_to_jiffies(50);
--      else
--              tout = msecs_to_jiffies(1000);
-+      if (!test_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags)) {
-+              unsigned long tout = msecs_to_jiffies(1000);
--      if (time_before(jiffies, rt2x00dev->last_nostatus_check + tout))
--              return false;
-+              if (time_before(jiffies, rt2x00dev->last_nostatus_check + tout))
-+                      return false;
-+      }
-       rt2x00dev->last_nostatus_check = jiffies;
---- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
-@@ -191,21 +191,6 @@ static inline void rt2800mmio_enable_int
-       spin_unlock_irq(&rt2x00dev->irqmask_lock);
- }
--void rt2800mmio_txstatus_tasklet(unsigned long data)
--{
--      struct rt2x00_dev *rt2x00dev = (struct rt2x00_dev *)data;
--
--      rt2800_txdone(rt2x00dev);
--
--      if (rt2800_txstatus_timeout(rt2x00dev))
--              rt2800_txdone_nostatus(rt2x00dev);
--
--      if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
--              rt2800mmio_enable_interrupt(rt2x00dev,
--                                          INT_SOURCE_CSR_TX_FIFO_STATUS);
--}
--EXPORT_SYMBOL_GPL(rt2800mmio_txstatus_tasklet);
--
- void rt2800mmio_pretbtt_tasklet(unsigned long data)
- {
-       struct rt2x00_dev *rt2x00dev = (struct rt2x00_dev *)data;
-@@ -270,12 +255,26 @@ void rt2800mmio_autowake_tasklet(unsigne
- }
- EXPORT_SYMBOL_GPL(rt2800mmio_autowake_tasklet);
--static void rt2800mmio_txstatus_interrupt(struct rt2x00_dev *rt2x00dev)
-+static void rt2800mmio_txdone(struct rt2x00_dev *rt2x00dev)
-+{
-+      bool timeout = false;
-+
-+      while (!kfifo_is_empty(&rt2x00dev->txstatus_fifo) ||
-+             (timeout = rt2800_txstatus_timeout(rt2x00dev))) {
-+
-+              rt2800_txdone(rt2x00dev);
-+
-+              if (timeout)
-+                      rt2800_txdone_nostatus(rt2x00dev);
-+      }
-+}
-+
-+static bool rt2800mmio_fetch_txstatus(struct rt2x00_dev *rt2x00dev)
- {
-       u32 status;
--      int i;
-+      bool more = false;
--      /*
-+      /* FIXEME: rewrite this comment
-        * The TX_FIFO_STATUS interrupt needs special care. We should
-        * read TX_STA_FIFO but we should do it immediately as otherwise
-        * the register can overflow and we would lose status reports.
-@@ -286,25 +285,37 @@ static void rt2800mmio_txstatus_interrup
-        * because we can schedule the tasklet multiple times (when the
-        * interrupt fires again during tx status processing).
-        *
--       * Since we have only one producer and one consumer we don't
-+       * txstatus tasklet is called with INT_SOURCE_CSR_TX_FIFO_STATUS
-+       * disabled so have only one producer and one consumer - we don't
-        * need to lock the kfifo.
-        */
--      for (i = 0; i < rt2x00dev->tx->limit; i++) {
-+      while (!kfifo_is_full(&rt2x00dev->txstatus_fifo)) {
-               status = rt2x00mmio_register_read(rt2x00dev, TX_STA_FIFO);
--
-               if (!rt2x00_get_field32(status, TX_STA_FIFO_VALID))
-                       break;
--              if (!kfifo_put(&rt2x00dev->txstatus_fifo, status)) {
--                      rt2x00_warn(rt2x00dev, "TX status FIFO overrun, drop tx status report\n");
--                      break;
--              }
-+              kfifo_put(&rt2x00dev->txstatus_fifo, status);
-+              more = true;
-       }
--      /* Schedule the tasklet for processing the tx status. */
--      tasklet_schedule(&rt2x00dev->txstatus_tasklet);
-+      return more;
- }
-+void rt2800mmio_txstatus_tasklet(unsigned long data)
-+{
-+      struct rt2x00_dev *rt2x00dev = (struct rt2x00_dev *)data;
-+
-+      do {
-+              rt2800mmio_txdone(rt2x00dev);
-+
-+      } while (rt2800mmio_fetch_txstatus(rt2x00dev));
-+
-+      if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-+              rt2800mmio_enable_interrupt(rt2x00dev,
-+                                          INT_SOURCE_CSR_TX_FIFO_STATUS);
-+}
-+EXPORT_SYMBOL_GPL(rt2800mmio_txstatus_tasklet);
-+
- irqreturn_t rt2800mmio_interrupt(int irq, void *dev_instance)
- {
-       struct rt2x00_dev *rt2x00dev = dev_instance;
-@@ -327,8 +338,10 @@ irqreturn_t rt2800mmio_interrupt(int irq
-        */
-       mask = ~reg;
--      if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS))
--              rt2800mmio_txstatus_interrupt(rt2x00dev);
-+      if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS)) {
-+              rt2800mmio_fetch_txstatus(rt2x00dev);
-+              tasklet_schedule(&rt2x00dev->txstatus_tasklet);
-+      }
-       if (rt2x00_get_field32(reg, INT_SOURCE_CSR_PRE_TBTT))
-               tasklet_hi_schedule(&rt2x00dev->pretbtt_tasklet);
-@@ -453,6 +466,55 @@ void rt2800mmio_kick_queue(struct data_q
- }
- EXPORT_SYMBOL_GPL(rt2800mmio_kick_queue);
-+void rt2800mmio_flush_queue(struct data_queue *queue, bool drop)
-+{
-+      struct rt2x00_dev *rt2x00dev = queue->rt2x00dev;
-+      bool tx_queue = false;
-+      unsigned int i;
-+
-+      //printk("FLUSH queue %d len %d drop %d\n", queue->qid, queue->length, drop);
-+
-+      switch (queue->qid) {
-+      case QID_AC_VO:
-+      case QID_AC_VI:
-+      case QID_AC_BE:
-+      case QID_AC_BK:
-+              tx_queue = true;
-+              break;
-+      case QID_RX:
-+              break;
-+      default:
-+              return;
-+      }
-+
-+      for (i = 0; i < 5; i++) {
-+              /*
-+               * Check if the driver is already done, otherwise we
-+               * have to sleep a little while to give the driver/hw
-+               * the oppurtunity to complete interrupt process itself.
-+               */
-+              if (rt2x00queue_empty(queue))
-+                      break;
-+
-+              /*
-+               * For TX queues schedule completion tasklet to catch
-+               * tx status timeouts, othewise just wait.
-+               */
-+              if (tx_queue) {
-+                      tasklet_disable(&rt2x00dev->txstatus_tasklet);
-+                      rt2800mmio_txdone(rt2x00dev);
-+                      tasklet_enable(&rt2x00dev->txstatus_tasklet);
-+              } 
-+
-+              /*
-+               * Wait for a little while to give the driver
-+               * the oppurtunity to recover itself.
-+               */
-+              msleep(50);
-+      }
-+}
-+EXPORT_SYMBOL_GPL(rt2800mmio_flush_queue);
-+
- void rt2800mmio_stop_queue(struct data_queue *queue)
- {
-       struct rt2x00_dev *rt2x00dev = queue->rt2x00dev;
---- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.h
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.h
-@@ -148,6 +148,7 @@ void rt2800mmio_toggle_irq(struct rt2x00
- /* Queue handlers */
- void rt2800mmio_start_queue(struct data_queue *queue);
- void rt2800mmio_kick_queue(struct data_queue *queue);
-+void rt2800mmio_flush_queue(struct data_queue *queue, bool drop);
- void rt2800mmio_stop_queue(struct data_queue *queue);
- void rt2800mmio_queue_init(struct data_queue *queue);
---- a/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
-@@ -364,7 +364,7 @@ static const struct rt2x00lib_ops rt2800
-       .start_queue            = rt2800mmio_start_queue,
-       .kick_queue             = rt2800mmio_kick_queue,
-       .stop_queue             = rt2800mmio_stop_queue,
--      .flush_queue            = rt2x00mmio_flush_queue,
-+      .flush_queue            = rt2800mmio_flush_queue,
-       .write_tx_desc          = rt2800mmio_write_tx_desc,
-       .write_tx_data          = rt2800_write_tx_data,
-       .write_beacon           = rt2800_write_beacon,
diff --git a/package/kernel/mac80211/patches/rt2x00/980-rt2x00-reduce-power-consumption-on-mt7620.patch b/package/kernel/mac80211/patches/rt2x00/980-rt2x00-reduce-power-consumption-on-mt7620.patch
deleted file mode 100644 (file)
index 87f9e8f..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-From: Tomislav Požega <pozega.tomislav@gmail.com>
-
-rt2x00: write registers required for reducing power consumption
-
-Write registers required for reducing power consumption like the vendor
-driver does when ADJUST_POWER_CONSUMPTION_SUPPORT is set.
-This helps devices to sync at better TX/RX rates and improves overall
-performance.
-
-Signed-off-by: Tomislav Požega <pozega.tomislav@gmail.com>
-Signed-off-by: Daniel Golle <daniel@makrotopia.org>
-[daniel@makrotopia.org: edited commit message]
----
- drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+), 0 deletions(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -8875,6 +8875,24 @@ static void rt2800_init_rfcsr_6352(struc
-       rt2800_rfcsr_write_chanreg(rt2x00dev, 58, 0x02);
-       rt2800_rfcsr_write_chanreg(rt2x00dev, 60, 0xC7);
-+      /* reduce power consumption */
-+      rt2800_rfcsr_write_chanreg(rt2x00dev, 43, 0x53);
-+      rt2800_rfcsr_write_chanreg(rt2x00dev, 44, 0x53);
-+      rt2800_rfcsr_write_chanreg(rt2x00dev, 45, 0x53);
-+      rt2800_rfcsr_write_bank(rt2x00dev, 4, 47, 0x24);
-+      rt2800_rfcsr_write_bank(rt2x00dev, 6, 47, 0x64);
-+      rt2800_rfcsr_write_chanreg(rt2x00dev, 48, 0x4F);
-+      rt2800_rfcsr_write_chanreg(rt2x00dev, 49, 0x02);
-+      rt2800_rfcsr_write_bank(rt2x00dev, 4, 55, 0x24);
-+      rt2800_rfcsr_write_bank(rt2x00dev, 6, 55, 0x64);
-+      rt2800_rfcsr_write_chanreg(rt2x00dev, 56, 0x4F);
-+      rt2800_rfcsr_write_chanreg(rt2x00dev, 57, 0x02);
-+      rt2800_rfcsr_write_chanreg(rt2x00dev, 58, 0x27);
-+      rt2800_rfcsr_write_bank(rt2x00dev, 4, 59, 0x24);
-+      rt2800_rfcsr_write_bank(rt2x00dev, 6, 59, 0x64);
-+      rt2800_rfcsr_write_chanreg(rt2x00dev, 60, 0x4F);
-+      rt2800_rfcsr_write_chanreg(rt2x00dev, 61, 0x02);
-+
-       /* Initialize RF DC calibration register to default value */
-       rt2800_rfcsr_write_dccal(rt2x00dev, 0, 0x47);
-       rt2800_rfcsr_write_dccal(rt2x00dev, 1, 0x00);
index 8d202eed91bebbffa65983083461054a87a75765..454f55b1cf64119bc0eef528e1f44f09c3da515a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -8336,6 +8336,58 @@ static void rt2800_init_rfcsr_5592(struc
+@@ -8349,6 +8349,58 @@ static void rt2800_init_rfcsr_5592(struc
        rt2800_led_open_drain_enable(rt2x00dev);
  }
  
@@ -59,7 +59,7 @@
  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev,
                                       bool set_bw, bool is_ht40)
  {
-@@ -8961,6 +9013,7 @@ static void rt2800_init_rfcsr_6352(struc
+@@ -8956,6 +9008,7 @@ static void rt2800_init_rfcsr_6352(struc
        rt2800_rfcsr_write_dccal(rt2x00dev, 5, 0x00);
        rt2800_rfcsr_write_dccal(rt2x00dev, 17, 0x7C);
  
@@ -69,7 +69,7 @@
  }
 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
-@@ -242,6 +242,7 @@ void rt2800_link_tuner(struct rt2x00_dev
+@@ -243,6 +243,7 @@ void rt2800_link_tuner(struct rt2x00_dev
                       const u32 count);
  void rt2800_gain_calibration(struct rt2x00_dev *rt2x00dev);
  void rt2800_vco_calibration(struct rt2x00_dev *rt2x00dev);
index 2f7a4eb9481f4f152ec2c08e92299827b1c43650..6f0d5b577fc95706dc4a353657da73cad895b485 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -8388,6 +8388,160 @@ void rt2800_rf_self_txdc_cal(struct rt2x
+@@ -8401,6 +8401,160 @@ void rt2800_rf_self_txdc_cal(struct rt2x
  }
  EXPORT_SYMBOL_GPL(rt2800_rf_self_txdc_cal);
  
  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev,
                                       bool set_bw, bool is_ht40)
  {
-@@ -9013,6 +9167,7 @@ static void rt2800_init_rfcsr_6352(struc
+@@ -9008,6 +9162,7 @@ static void rt2800_init_rfcsr_6352(struc
        rt2800_rfcsr_write_dccal(rt2x00dev, 5, 0x00);
        rt2800_rfcsr_write_dccal(rt2x00dev, 17, 0x7C);
  
        rt2800_bw_filter_calibration(rt2x00dev, false);
 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
-@@ -243,6 +243,8 @@ void rt2800_link_tuner(struct rt2x00_dev
+@@ -244,6 +244,8 @@ void rt2800_link_tuner(struct rt2x00_dev
  void rt2800_gain_calibration(struct rt2x00_dev *rt2x00dev);
  void rt2800_vco_calibration(struct rt2x00_dev *rt2x00dev);
  void rt2800_rf_self_txdc_cal(struct rt2x00_dev *rt2x00dev);
index 585d61b303c45ac59e0097c4dbbb752425ad0913..fbeace27da491b257a6db89e324dc39edffff84e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -8542,6 +8542,71 @@ void rt2800_r_calibration(struct rt2x00_
+@@ -8555,6 +8555,71 @@ void rt2800_r_calibration(struct rt2x00_
  }
  EXPORT_SYMBOL_GPL(rt2800_r_calibration);
  
@@ -72,7 +72,7 @@
  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev,
                                       bool set_bw, bool is_ht40)
  {
-@@ -9169,6 +9234,7 @@ static void rt2800_init_rfcsr_6352(struc
+@@ -9164,6 +9229,7 @@ static void rt2800_init_rfcsr_6352(struc
  
        rt2800_r_calibration(rt2x00dev);
        rt2800_rf_self_txdc_cal(rt2x00dev);
@@ -82,7 +82,7 @@
  }
 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
-@@ -245,6 +245,7 @@ void rt2800_vco_calibration(struct rt2x0
+@@ -246,6 +246,7 @@ void rt2800_vco_calibration(struct rt2x0
  void rt2800_rf_self_txdc_cal(struct rt2x00_dev *rt2x00dev);
  int rt2800_calcrcalibrationcode(struct rt2x00_dev *rt2x00dev, int d1, int d2);
  void rt2800_r_calibration(struct rt2x00_dev *rt2x00dev);
index c65b24ad96b9a01358758887dc9575efd9821786..f469c4ebc71ab1d3ec28ad56ab316685fdf025e7 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -8607,6 +8607,386 @@ void rt2800_rxdcoc_calibration(struct rt
+@@ -8620,6 +8620,386 @@ void rt2800_rxdcoc_calibration(struct rt
  }
  EXPORT_SYMBOL_GPL(rt2800_rxdcoc_calibration);
  
 +                                      vga_idx = vga_idx + 3;
 +                              else if (bbpval1 <= 2511)
 +                                      vga_idx = vga_idx + 2;
-+                              else 
++                              else
 +                                      vga_idx = vga_idx + 1;
 +                      }
 +
 +              rt2x00_dbg(rt2x00dev, "Sigma_i=%d, Sigma_q=%d, R_iq=%d", sigma_i, sigma_q, r_iq);
 +
 +              if (((sigma_i <= 1400 ) && (sigma_i >= 1000))
-+                      && ((sigma_i - sigma_q) <= 112)                 
++                      && ((sigma_i - sigma_q) <= 112)
 +                      && ((sigma_i - sigma_q) >= -112)
 +                      && ((mi <= 32) && (mi >= -32))
 +                      && ((mq <= 32) && (mq >= -32))) {
  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev,
                                       bool set_bw, bool is_ht40)
  {
-@@ -9237,6 +9617,7 @@ static void rt2800_init_rfcsr_6352(struc
+@@ -9232,6 +9612,7 @@ static void rt2800_init_rfcsr_6352(struc
        rt2800_rxdcoc_calibration(rt2x00dev);
        rt2800_bw_filter_calibration(rt2x00dev, true);
        rt2800_bw_filter_calibration(rt2x00dev, false);
  static void rt2800_init_rfcsr(struct rt2x00_dev *rt2x00dev)
 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
-@@ -246,6 +246,7 @@ void rt2800_rf_self_txdc_cal(struct rt2x
+@@ -247,6 +247,7 @@ void rt2800_rf_self_txdc_cal(struct rt2x
  int rt2800_calcrcalibrationcode(struct rt2x00_dev *rt2x00dev, int d1, int d2);
  void rt2800_r_calibration(struct rt2x00_dev *rt2x00dev);
  void rt2800_rxdcoc_calibration(struct rt2x00_dev *rt2x00dev);
index f685365fb8b63379dcd69b3e616338d0d8d13504..31a860c1a7e75b91c5fcc24a6baa3d4f5a76ce0c 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
-@@ -8987,6 +8987,957 @@ restore_value:
+@@ -9000,6 +9000,954 @@ restore_value:
  }
  EXPORT_SYMBOL_GPL(rt2800_rxiq_calibration);
  
 +              for (record_index = 0; record_index < 13; record_index++) {
 +                      bank = rf_record[chain_index][record_index].bank;
 +                      rf_register = rf_record[chain_index][record_index].reg;
-+                      value = rf_record[chain_index][record_index].value;                     
++                      value = rf_record[chain_index][record_index].value;
 +                      rt2800_rfcsr_write_bank(rt2x00dev, bank, rf_register, value);
 +                      rt2x00_dbg(rt2x00dev, "bank: %d, rf_register: %d, value: %x\n", bank, rf_register, value);
 +              }
 +              rt2800_bbp_write(rt2x00dev, 159, tidxi);
 +              rt2800_bbp_write(rt2x00dev, 159, tidxi);
 +              rt2800_bbp_write(rt2x00dev, 159, tidxi);
-+      
++
 +              macvalue = rt2800_register_read(rt2x00dev, 0x057C);
-+      
++
 +              fftout_i = (macvalue >> 16);
 +              fftout_i = (fftout_i & 0x8000) ? (fftout_i - 0x10000) : fftout_i;
 +              fftout_q = (macvalue & 0xffff);
 +              ptmp = (fftout_i * fftout_i);
 +              ptmp = ptmp + (fftout_q * fftout_q);
 +              ptmp = ptmp >> 1;
-+              pint = pint + ptmp;     
-+              
++              pint = pint + ptmp;
 +      }
 +
 +      return pint;
 +}
 +EXPORT_SYMBOL_GPL(rt2800_write_dc);
 +
-+static void rt2800_loft_search(struct rt2x00_dev *rt2x00dev, u8 ch_idx, u8 alc_idx, u8 dc_result[][RF_ALC_NUM][2])    
++static void rt2800_loft_search(struct rt2x00_dev *rt2x00dev, u8 ch_idx, u8 alc_idx, u8 dc_result[][RF_ALC_NUM][2])
 +{
 +      u32 p0 = 0, p1 = 0, pf = 0;
 +      char idx0 = 0, idx1 = 0;
 +
 +      for (bidx = 5; bidx >= 0; bidx--) {
 +              for (iorq = 0; iorq <= 1; iorq++) {
-+                      rt2x00_dbg(rt2x00dev, "\n========================================================\n");                 
++                      rt2x00_dbg(rt2x00dev, "\n========================================================\n");
 +
 +                      if (idxf[iorq] == 0x20) {
 +                              idx0 = 0x20;
 +                      rt2800_write_dc(rt2x00dev, ch_idx, 0, iorq, idx1);
 +                      p1 = rt2800_do_fft_accumulation(rt2x00dev, 0x0A, 0);
 +
-+                      rt2x00_dbg(rt2x00dev, "alc=%u, IorQ=%u, idx_final=%2x\n", alc_idx, iorq, idxf[iorq]); 
++                      rt2x00_dbg(rt2x00dev, "alc=%u, IorQ=%u, idx_final=%2x\n", alc_idx, iorq, idxf[iorq]);
 +                      rt2x00_dbg(rt2x00dev, "p0=%x, p1=%x, pf=%x, idx_0=%x, idx_1=%x, ibit=%x !\n", p0, p1, pf, idx0, idx1, ibit);
 +
 +                      if ((bidx != 5) && (pf <= p0) && (pf < p1)) {
 +}
 +EXPORT_SYMBOL_GPL(rt2800_loft_search);
 +
-+static void rt2800_iq_search(struct rt2x00_dev *rt2x00dev, u8 ch_idx, u8 *ges, u8 *pes)       
++static void rt2800_iq_search(struct rt2x00_dev *rt2x00dev, u8 ch_idx, u8 *ges, u8 *pes)
 +{
 +      u32 p0 = 0, p1 = 0, pf = 0;
 +      char perr = 0, gerr = 0, iq_err = 0;
 +                                      pf = p1;
 +                                      iq_err = idx1;
 +                              }
-+                              
++
 +                              bbp = (ch_idx == 0) ? (gop == 0) ? 0x28 : 0x29 : (gop == 0) ? 0x46 : 0x47;
 +
 +                              rt2800_bbp_write(rt2x00dev, 158, bbp);
 +                                      gerr = iq_err;
 +                              else
 +                                      perr = iq_err;
-+                                      
++
 +                              rt2x00_dbg(rt2x00dev, "IQCalibration pf=%8x (%2x, %2x) !\n", pf, gerr & 0x0F, perr & 0x3F);
 +
 +                      }
 +
 +              if (bidx > 0)
 +                      ibit = (ibit >> 1);
-+      } 
++      }
 +      gerr = (gerr & 0x08) ? (gerr & 0x0F) - 0x10 : (gerr & 0x0F);
 +      perr = (perr & 0x20) ? (perr & 0x3F) - 0x40 : (perr & 0x3F);
-+      
++
 +      gerr = (gerr < -0x07) ? -0x07 : (gerr > 0x05) ? 0x05 : gerr;
 +      gsta = gerr - 1;
 +      gend = gerr + 2;
-+      
++
 +      perr = (perr < -0x1f) ? -0x1f : (perr > 0x1d) ? 0x1d : perr;
 +      psta = perr - 1;
 +      pend = perr + 2;
 +                      bbp = (ch_idx == 0) ? 0x28 : 0x46;
 +                      rt2800_bbp_write(rt2x00dev, 158, bbp);
 +                      rt2800_bbp_write(rt2x00dev, 159, gef & 0x0F);
-+                      
++
 +                      bbp = (ch_idx == 0) ? 0x29 : 0x47;
 +                      rt2800_bbp_write(rt2x00dev, 158, bbp);
 +                      rt2800_bbp_write(rt2x00dev, 159, pef & 0x3F);
-+                      
++
 +                      p1 = rt2800_do_fft_accumulation(rt2x00dev, 0x14, 1);
 +                      if ((gef == gsta) && (pef == psta)) {
 +                              pf = p1;
 +                      }
 +                      rt2x00_dbg(rt2x00dev, "Fine IQCalibration p1=%8x pf=%8x (%2x, %2x) !\n", p1, pf, gef & 0x0F, pef & 0x3F);
 +              }
-+              
++
 +      ges[ch_idx] = gerr & 0x0F;
 +      pes[ch_idx] = perr & 0x3F;
-+      
++
 +      rt2x00_info(rt2x00dev, "IQCalibration Done! CH = %u, (gain=%2x, phase=%2x)\n", ch_idx, gerr & 0x0F, perr & 0x3F);
 +
 +      return;
 +      u8 rf_gain[] = {0x00, 0x01, 0x02, 0x04, 0x08, 0x0c};
 +      u8 rfvga_gain_table[] = {0x24, 0x25, 0x26, 0x27, 0x28, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3F};
 +
-+      u8 vga_gain[] = {14, 14};   
++      u8 vga_gain[] = {14, 14};
 +      u8 bbp_2324gain[] = {0x16, 0x14, 0x12, 0x10, 0x0c, 0x08};
 +      u8 bbp = 0, ch_idx = 0, rf_alc_idx = 0, idx = 0;
 +      u8 bbpr30, rfb0r39, rfb0r42;
 +                      udelay(50);
 +              else
 +                      break;
-+      } 
++      }
 +
 +      for (ch_idx = 0; ch_idx < 2; ch_idx++) {
 +              rt2800_rf_configstore(rt2x00dev, rf_store, ch_idx);
 +
 +              rt2800_bbp_write(rt2x00dev, 158, 0x05);
 +              rt2800_bbp_write(rt2x00dev, 159, 0x00);
-+      
++
 +              rt2800_bbp_write(rt2x00dev, 158, 0x01);
 +              if (ch_idx == 0)
 +                      rt2800_bbp_write(rt2x00dev, 159, 0x00);
 +              else
 +                      rt2800_bbp_write(rt2x00dev, 159, 0x01);
-+      
++
 +              vga_gain[ch_idx] = 18;
 +              for (rf_alc_idx = 0; rf_alc_idx < 3; rf_alc_idx++) {
 +                      rt2800_bbp_write(rt2x00dev, 23, bbp_2324gain[rf_alc_idx]);
 +                      macvalue = (0x0000F1F1);
 +                      rt2800_register_write(rt2x00dev, RF_BYPASS3, macvalue);
 +
-+                      if (rf_alc_idx == 0) {
++                      if (rf_alc_idx == 0) {
 +                              rt2800_write_dc(rt2x00dev, ch_idx, 0, 1, 0x21);
 +                              for (;vga_gain[ch_idx] > 0;vga_gain[ch_idx] = vga_gain[ch_idx] - 2) {
 +                                      rfvalue = rfvga_gain_table[vga_gain[ch_idx]];
 +                                      p0 = rt2800_do_fft_accumulation(rt2x00dev, 0x0A, 0);
 +                                      rt2800_write_dc(rt2x00dev, ch_idx, 0, 0, 0x21);
 +                                      p1 = rt2800_do_fft_accumulation(rt2x00dev, 0x0A, 0);
-+                                      rt2x00_dbg(rt2x00dev, "LOFT AGC %d %d\n", p0, p1); 
-+                                      if ((p0 < 7000*7000) && (p1 < (7000*7000))) {                                           
++                                      rt2x00_dbg(rt2x00dev, "LOFT AGC %d %d\n", p0, p1);
++                                      if ((p0 < 7000*7000) && (p1 < (7000*7000))) {
 +                                              break;
 +                                      }
 +                              }
 +
 +                              rt2800_write_dc(rt2x00dev, ch_idx, 0, 0, 0x00);
 +                              rt2800_write_dc(rt2x00dev, ch_idx, 0, 1, 0x00);
-+                              
-+                              rt2x00_dbg(rt2x00dev, "Used VGA %d %x\n",vga_gain[ch_idx], rfvga_gain_table[vga_gain[ch_idx]]); 
++
++                              rt2x00_dbg(rt2x00dev, "Used VGA %d %x\n",vga_gain[ch_idx], rfvga_gain_table[vga_gain[ch_idx]]);
 +
 +                              if (vga_gain[ch_idx] < 0)
 +                                      vga_gain[ch_idx] = 0;
-+                      }                       
++                      }
 +
 +                      rfvalue = rfvga_gain_table[vga_gain[ch_idx]];
-+                      
++
 +                      rt2800_rfcsr_write_dccal(rt2x00dev, 3, rfvalue);
 +                      rt2800_rfcsr_write_dccal(rt2x00dev, 4, rfvalue);
-+      
++
 +                      rt2800_loft_search(rt2x00dev, ch_idx, rf_alc_idx, loft_dc_search_result);
 +              }
 +      }
 +                      rt2x00_dbg(rt2x00dev, " ALC %2x,", bbp);
 +
 +                      rt2800_bbp_write(rt2x00dev, 158, 0xb1);
-+                      bbp = loft_dc_search_result[CHAIN_0][rf_alc_idx][0x00]; 
-+                      bbp = bbp & 0x3F; 
++                      bbp = loft_dc_search_result[CHAIN_0][rf_alc_idx][0x00];
++                      bbp = bbp & 0x3F;
 +                      rt2800_bbp_write(rt2x00dev, 159, bbp);
 +                      rt2x00_dbg(rt2x00dev, " I0 %2x,", bbp);
 +
 +                      rt2800_bbp_write(rt2x00dev, 158, 0xb2);
-+                      bbp = loft_dc_search_result[CHAIN_0][rf_alc_idx][0x01]; 
-+                      bbp = bbp & 0x3F; 
++                      bbp = loft_dc_search_result[CHAIN_0][rf_alc_idx][0x01];
++                      bbp = bbp & 0x3F;
 +                      rt2800_bbp_write(rt2x00dev, 159, bbp);
 +                      rt2x00_dbg(rt2x00dev, " Q0 %2x,", bbp);
 +
 +                      rt2800_bbp_write(rt2x00dev, 158, 0xb8);
-+                      bbp = loft_dc_search_result[CHAIN_1][rf_alc_idx][0x00]; 
-+                      bbp = bbp & 0x3F; 
++                      bbp = loft_dc_search_result[CHAIN_1][rf_alc_idx][0x00];
++                      bbp = bbp & 0x3F;
 +                      rt2800_bbp_write(rt2x00dev, 159, bbp);
 +                      rt2x00_dbg(rt2x00dev, " I1 %2x,", bbp);
 +
 +                      rt2800_bbp_write(rt2x00dev, 158, 0xb9);
-+                      bbp = loft_dc_search_result[CHAIN_1][rf_alc_idx][0x01]; 
-+                      bbp = bbp & 0x3F; 
++                      bbp = loft_dc_search_result[CHAIN_1][rf_alc_idx][0x01];
++                      bbp = bbp & 0x3F;
 +                      rt2800_bbp_write(rt2x00dev, 159, bbp);
 +                      rt2x00_dbg(rt2x00dev, " Q1 %2x\n", bbp);
-+              } 
++              }
 +      }
 +
 +      rt2800_bbp_write(rt2x00dev, 23, 0x00);
 +      rt2800_rf_configrecover(rt2x00dev, rf_store);
 +
 +      rt2800_register_write(rt2x00dev, TX_PIN_CFG, macorg1);
-+      rt2800_register_write(rt2x00dev, RF_CONTROL0, 0x04);
-+      rt2800_register_write(rt2x00dev, RF_CONTROL0, 0x00);
++      rt2800_register_write(rt2x00dev, RF_CONTROL0, 0x04);
++      rt2800_register_write(rt2x00dev, RF_CONTROL0, 0x00);
 +      rt2800_register_write(rt2x00dev, RF_BYPASS0, 0x00);
 +      rt2800_register_write(rt2x00dev, RF_CONTROL0, macorg2);
 +      udelay(1);
 +      macorg4 = rt2800_register_read(rt2x00dev, RF_CONTROL3);
 +      macorg5 = rt2800_register_read(rt2x00dev, RF_BYPASS3);
 +
-+      if (test_bit(CAPABILITY_EXTERNAL_PA_TX0, &rt2x00dev->cap_flags)) {
-+              bbpr1 = rt2800_bbp_read(rt2x00dev, 1);
-+              bbpr4 = rt2800_bbp_read(rt2x00dev, 4);
-+              bbpr241 = rt2800_bbp_read(rt2x00dev, 241);
-+              bbpr242 = rt2800_bbp_read(rt2x00dev, 242);
-+      }
++      bbpr1 = rt2800_bbp_read(rt2x00dev, 1);
++      bbpr4 = rt2800_bbp_read(rt2x00dev, 4);
++      bbpr241 = rt2800_bbp_read(rt2x00dev, 241);
++      bbpr242 = rt2800_bbp_read(rt2x00dev, 242);
 +      mac13b8 = rt2800_register_read(rt2x00dev, 0x13b8);
 +
 +      macvalue = rt2800_register_read(rt2x00dev, MAC_SYS_CTRL);
 +      rt2800_register_write(rt2x00dev, RF_CONTROL0, 0x00000004);
 +      rt2800_register_write(rt2x00dev, RF_BYPASS0, 0x00003306);
 +      udelay(1);
-+      
++
 +      rt2800_register_write(rt2x00dev, TX_PIN_CFG, 0x0000000F);
 +
 +      if (!test_bit(CAPABILITY_EXTERNAL_PA_TX0, &rt2x00dev->cap_flags)) {
 +              bbp = (ch_idx == 0) ? 0x28 : 0x46;
 +              rt2800_bbp_write(rt2x00dev, 158, bbp);
 +              rt2800_bbp_write(rt2x00dev, 159, 0x00);
-+              
++
 +              if (test_bit(CAPABILITY_EXTERNAL_PA_TX0, &rt2x00dev->cap_flags)) {
 +                      rt2800_bbp_write(rt2x00dev, 23, 0x06);
 +                      rt2800_bbp_write(rt2x00dev, 24, 0x06);
 +                      rfvalue = rfvga_gain_table[vga_gain[ch_idx]];
 +                      rt2800_rfcsr_write_dccal(rt2x00dev, 3, rfvalue);
 +                      rt2800_rfcsr_write_dccal(rt2x00dev, 4, rfvalue);
-+                      
++
 +                      bbp = (ch_idx == 0) ? 0x29 : 0x47;
 +                      rt2800_bbp_write(rt2x00dev, 158, bbp);
 +                      rt2800_bbp_write(rt2x00dev, 159, 0x00);
 +
 +              if (vga_gain[ch_idx] > 18)
 +                      vga_gain[ch_idx] = 18;
-+              rt2x00_dbg(rt2x00dev, "Used VGA %d %x\n",vga_gain[ch_idx], rfvga_gain_table[vga_gain[ch_idx]]); 
++              rt2x00_dbg(rt2x00dev, "Used VGA %d %x\n",vga_gain[ch_idx], rfvga_gain_table[vga_gain[ch_idx]]);
 +
 +              bbp = (ch_idx == 0) ? 0x29 : 0x47;
 +              rt2800_bbp_write(rt2x00dev, 158, bbp);
 +              rt2800_bbp_write(rt2x00dev, 159, 0x00);
 +
 +              rt2800_iq_search(rt2x00dev, ch_idx, ger, per);
-+      }       
++      }
 +
 +      rt2800_bbp_write(rt2x00dev, 23, 0x00);
 +      rt2800_bbp_write(rt2x00dev, 24, 0x00);
 +      rt2800_bbp_write(rt2x00dev, 159, bbp);
 +
 +      rt2800_bbp_write(rt2x00dev, 158, 0x29);
-+      bbp = per[CHAIN_0] & 0x3F; 
++      bbp = per[CHAIN_0] & 0x3F;
 +      rt2800_bbp_write(rt2x00dev, 159, bbp);
 +
 +      rt2800_bbp_write(rt2x00dev, 158, 0x46);
-+      bbp = ger[CHAIN_1] & 0x0F; 
++      bbp = ger[CHAIN_1] & 0x0F;
 +      rt2800_bbp_write(rt2x00dev, 159, bbp);
 +
 +      rt2800_bbp_write(rt2x00dev, 158, 0x47);
-+      bbp = per[CHAIN_1] & 0x3F; 
-+      rt2800_bbp_write(rt2x00dev, 159, bbp); 
-+ 
++      bbp = per[CHAIN_1] & 0x3F;
++      rt2800_bbp_write(rt2x00dev, 159, bbp);
++
 +      if (test_bit(CAPABILITY_EXTERNAL_PA_TX0, &rt2x00dev->cap_flags)) {
 +              rt2800_bbp_write(rt2x00dev, 1, bbpr1);
 +              rt2800_bbp_write(rt2x00dev, 241, bbpr241);
 +      rt2800_rf_configrecover(rt2x00dev, rf_store);
 +
 +      rt2800_register_write(rt2x00dev, TX_PIN_CFG, macorg1);
-+      rt2800_register_write(rt2x00dev, RF_CONTROL0, 0x00);
++      rt2800_register_write(rt2x00dev, RF_CONTROL0, 0x00);
 +      rt2800_register_write(rt2x00dev, RF_BYPASS0, 0x00);
 +      rt2800_register_write(rt2x00dev, RF_CONTROL0, macorg2);
 +      udelay(1);
  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev,
                                       bool set_bw, bool is_ht40)
  {
-@@ -9617,6 +10568,7 @@ static void rt2800_init_rfcsr_6352(struc
+@@ -9612,6 +10560,7 @@ static void rt2800_init_rfcsr_6352(struc
        rt2800_rxdcoc_calibration(rt2x00dev);
        rt2800_bw_filter_calibration(rt2x00dev, true);
        rt2800_bw_filter_calibration(rt2x00dev, false);
  #define STA_IDS_SIZE  (WCID_END - WCID_START + 2)
 +#define CHAIN_0               0x0
 +#define CHAIN_1               0x1
-+#define RF_ALC_NUM    6 
++#define RF_ALC_NUM    6
 +#define CHAIN_NUM     2
 +
 +typedef struct rf_reg_pair {
  
  /* RT2800 driver data structure */
  struct rt2800_drv_data {
-@@ -247,6 +257,7 @@ int rt2800_calcrcalibrationcode(struct r
+@@ -248,6 +258,7 @@ int rt2800_calcrcalibrationcode(struct r
  void rt2800_r_calibration(struct rt2x00_dev *rt2x00dev);
  void rt2800_rxdcoc_calibration(struct rt2x00_dev *rt2x00dev);
  void rt2800_rxiq_calibration(struct rt2x00_dev *rt2x00dev);
index f7116eb9f7c550d97db637152f38377639ce8650..42a63822090d354efcb989c2187a08df8d01426a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -3791,6 +3791,12 @@ out:
+@@ -3797,6 +3797,12 @@ out:
  netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
                                       struct net_device *dev)
  {
index db3c693fd483a64efe11ba6bebc076b6669d3123..1581b3400b5b519b7b2cfee5d5192bde8cf4cb7d 100644 (file)
@@ -52,7 +52,7 @@
   fail_ifa:
  #endif
        rtnl_lock();
-@@ -1220,10 +1220,10 @@ void ieee80211_unregister_hw(struct ieee
+@@ -1219,10 +1219,10 @@ void ieee80211_unregister_hw(struct ieee
        tasklet_kill(&local->tx_pending_tasklet);
        tasklet_kill(&local->tasklet);
  
@@ -64,4 +64,4 @@
 +#if IS_ENABLED(__disabled__CONFIG_IPV6)
        unregister_inet6addr_notifier(&local->ifa6_notifier);
  #endif
-       ieee80211_txq_teardown_flows(local);
diff --git a/package/kernel/mac80211/patches/subsys/300-mac80211-add-stop-start-logic-for-software-TXQs.patch b/package/kernel/mac80211/patches/subsys/300-mac80211-add-stop-start-logic-for-software-TXQs.patch
new file mode 100644 (file)
index 0000000..422e9c2
--- /dev/null
@@ -0,0 +1,272 @@
+From: Manikanta Pubbisetty <mpubbise@codeaurora.org>
+Date: Wed, 11 Jul 2018 00:12:53 +0530
+Subject: [PATCH] mac80211: add stop/start logic for software TXQs
+
+Sometimes, it is required to stop the transmissions momentarily and
+resume it later; stopping the txqs becomes very critical in scenarios where
+the packet transmission has to be ceased completely. For example, during
+the hardware restart, during off channel operations,
+when initiating CSA(upon detecting a radar on the DFS channel), etc.
+
+The TX queue stop/start logic in mac80211 works well in stopping the TX
+when drivers make use of netdev queues, i.e, when Qdiscs in network layer
+take care of traffic scheduling. Since the devices implementing
+wake_tx_queue can run without Qdiscs, packets will be handed to mac80211
+directly without queueing them in the netdev queues.
+
+Also, mac80211 does not invoke any of the
+netif_stop_*/netif_wake_* APIs if wake_tx_queue is implemented.
+Since the queues are not stopped in this case, transmissions can continue
+and this will impact negatively on the operation of the wireless device.
+
+For example,
+During hardware restart, we stop the netdev queues so that packets are
+not sent to the driver. Since ath10k implements wake_tx_queue,
+TX queues will not be stopped and packets might reach the hardware while
+it is restarting; this can make hardware unresponsive and the only
+possible option for recovery is to reboot the entire system.
+
+There is another problem to this, it is observed that the packets
+were sent on the DFS channel for a prolonged duration after radar
+detection impacting the channel closing time.
+
+We can still invoke netif stop/wake APIs when wake_tx_queue is implemented
+but this could lead to packet drops in network layer; adding stop/start
+logic for software TXQs in mac80211 instead makes more sense; the change
+proposed adds the same in mac80211.
+
+Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+---
+
+--- a/include/net/mac80211.h
++++ b/include/net/mac80211.h
+@@ -1504,6 +1504,8 @@ enum ieee80211_vif_flags {
+  * @drv_priv: data area for driver use, will always be aligned to
+  *    sizeof(void \*).
+  * @txq: the multicast data TX queue (if driver uses the TXQ abstraction)
++ * @txqs_stopped: per AC flag to indicate that intermediate TXQs are stopped,
++ *    protected by fq->lock.
+  */
+ struct ieee80211_vif {
+       enum nl80211_iftype type;
+@@ -1528,6 +1530,8 @@ struct ieee80211_vif {
+       unsigned int probe_req_reg;
++      bool txqs_stopped[IEEE80211_NUM_ACS];
++
+       /* must be last */
+       u8 drv_priv[0] __aligned(sizeof(void *));
+ };
+--- a/net/mac80211/ieee80211_i.h
++++ b/net/mac80211/ieee80211_i.h
+@@ -818,6 +818,7 @@ enum txq_info_flags {
+       IEEE80211_TXQ_STOP,
+       IEEE80211_TXQ_AMPDU,
+       IEEE80211_TXQ_NO_AMSDU,
++      IEEE80211_TXQ_STOP_NETIF_TX,
+ };
+ /**
+@@ -1226,6 +1227,7 @@ struct ieee80211_local {
+       struct sk_buff_head pending[IEEE80211_MAX_QUEUES];
+       struct tasklet_struct tx_pending_tasklet;
++      struct tasklet_struct wake_txqs_tasklet;
+       atomic_t agg_queue_stop[IEEE80211_MAX_QUEUES];
+@@ -2039,6 +2041,7 @@ void ieee80211_txq_remove_vlan(struct ie
+                              struct ieee80211_sub_if_data *sdata);
+ void ieee80211_fill_txq_stats(struct cfg80211_txq_stats *txqstats,
+                             struct txq_info *txqi);
++void ieee80211_wake_txqs(unsigned long data);
+ void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata,
+                        u16 transaction, u16 auth_alg, u16 status,
+                        const u8 *extra, size_t extra_len, const u8 *bssid,
+--- a/net/mac80211/main.c
++++ b/net/mac80211/main.c
+@@ -686,6 +686,10 @@ struct ieee80211_hw *ieee80211_alloc_hw_
+       tasklet_init(&local->tx_pending_tasklet, ieee80211_tx_pending,
+                    (unsigned long)local);
++      if (ops->wake_tx_queue)
++              tasklet_init(&local->wake_txqs_tasklet, ieee80211_wake_txqs,
++                           (unsigned long)local);
++
+       tasklet_init(&local->tasklet,
+                    ieee80211_tasklet_handler,
+                    (unsigned long) local);
+--- a/net/mac80211/tx.c
++++ b/net/mac80211/tx.c
+@@ -3482,13 +3482,19 @@ struct sk_buff *ieee80211_tx_dequeue(str
+       struct ieee80211_tx_info *info;
+       struct ieee80211_tx_data tx;
+       ieee80211_tx_result r;
+-      struct ieee80211_vif *vif;
++      struct ieee80211_vif *vif = txq->vif;
+       spin_lock_bh(&fq->lock);
+-      if (test_bit(IEEE80211_TXQ_STOP, &txqi->flags))
++      if (test_bit(IEEE80211_TXQ_STOP, &txqi->flags) ||
++          test_bit(IEEE80211_TXQ_STOP_NETIF_TX, &txqi->flags))
+               goto out;
++      if (vif->txqs_stopped[ieee80211_ac_from_tid(txq->tid)]) {
++              set_bit(IEEE80211_TXQ_STOP_NETIF_TX, &txqi->flags);
++              goto out;
++      }
++
+       /* Make sure fragments stay together. */
+       skb = __skb_dequeue(&txqi->frags);
+       if (skb)
+@@ -3583,6 +3589,7 @@ begin:
+       }
+       IEEE80211_SKB_CB(skb)->control.vif = vif;
++
+ out:
+       spin_unlock_bh(&fq->lock);
+--- a/net/mac80211/util.c
++++ b/net/mac80211/util.c
+@@ -240,6 +240,99 @@ __le16 ieee80211_ctstoself_duration(stru
+ }
+ EXPORT_SYMBOL(ieee80211_ctstoself_duration);
++static void __ieee80211_wake_txqs(struct ieee80211_sub_if_data *sdata, int ac)
++{
++      struct ieee80211_local *local = sdata->local;
++      struct ieee80211_vif *vif = &sdata->vif;
++      struct fq *fq = &local->fq;
++      struct ps_data *ps = NULL;
++      struct txq_info *txqi;
++      struct sta_info *sta;
++      int i;
++
++      spin_lock_bh(&fq->lock);
++
++      if (sdata->vif.type == NL80211_IFTYPE_AP)
++              ps = &sdata->bss->ps;
++
++      sdata->vif.txqs_stopped[ac] = false;
++
++      list_for_each_entry_rcu(sta, &local->sta_list, list) {
++              if (sdata != sta->sdata)
++                      continue;
++
++              for (i = 0; i < ARRAY_SIZE(sta->sta.txq); i++) {
++                      struct ieee80211_txq *txq = sta->sta.txq[i];
++
++                      txqi = to_txq_info(txq);
++
++                      if (ac != txq->ac)
++                              continue;
++
++                      if (!test_and_clear_bit(IEEE80211_TXQ_STOP_NETIF_TX,
++                                              &txqi->flags))
++                              continue;
++
++                      spin_unlock_bh(&fq->lock);
++                      drv_wake_tx_queue(local, txqi);
++                      spin_lock_bh(&fq->lock);
++              }
++      }
++
++      if (!vif->txq)
++              goto out;
++
++      txqi = to_txq_info(vif->txq);
++
++      if (!test_and_clear_bit(IEEE80211_TXQ_STOP_NETIF_TX, &txqi->flags) ||
++          (ps && atomic_read(&ps->num_sta_ps)) || ac != vif->txq->ac)
++              goto out;
++
++      spin_unlock_bh(&fq->lock);
++
++      drv_wake_tx_queue(local, txqi);
++      return;
++out:
++      spin_unlock_bh(&fq->lock);
++}
++
++void ieee80211_wake_txqs(unsigned long data)
++{
++      struct ieee80211_local *local = (struct ieee80211_local *)data;
++      struct ieee80211_sub_if_data *sdata;
++      int n_acs = IEEE80211_NUM_ACS;
++      unsigned long flags;
++      int i;
++
++      rcu_read_lock();
++      spin_lock_irqsave(&local->queue_stop_reason_lock, flags);
++
++      if (local->hw.queues < IEEE80211_NUM_ACS)
++              n_acs = 1;
++
++      for (i = 0; i < local->hw.queues; i++) {
++              if (local->queue_stop_reasons[i])
++                      continue;
++
++              spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags);
++              list_for_each_entry_rcu(sdata, &local->interfaces, list) {
++                      int ac;
++
++                      for (ac = 0; ac < n_acs; ac++) {
++                              int ac_queue = sdata->vif.hw_queue[ac];
++
++                              if (ac_queue == i ||
++                                  sdata->vif.cab_queue == i)
++                                      __ieee80211_wake_txqs(sdata, ac);
++                      }
++              }
++              spin_lock_irqsave(&local->queue_stop_reason_lock, flags);
++      }
++
++      spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags);
++      rcu_read_unlock();
++}
++
+ void ieee80211_propagate_queue_wake(struct ieee80211_local *local, int queue)
+ {
+       struct ieee80211_sub_if_data *sdata;
+@@ -308,6 +401,9 @@ static void __ieee80211_wake_queue(struc
+               rcu_read_unlock();
+       } else
+               tasklet_schedule(&local->tx_pending_tasklet);
++
++      if (local->ops->wake_tx_queue)
++              tasklet_schedule(&local->wake_txqs_tasklet);
+ }
+ void ieee80211_wake_queue_by_reason(struct ieee80211_hw *hw, int queue,
+@@ -351,9 +447,6 @@ static void __ieee80211_stop_queue(struc
+       if (__test_and_set_bit(reason, &local->queue_stop_reasons[queue]))
+               return;
+-      if (local->ops->wake_tx_queue)
+-              return;
+-
+       if (local->hw.queues < IEEE80211_NUM_ACS)
+               n_acs = 1;
+@@ -366,8 +459,15 @@ static void __ieee80211_stop_queue(struc
+               for (ac = 0; ac < n_acs; ac++) {
+                       if (sdata->vif.hw_queue[ac] == queue ||
+-                          sdata->vif.cab_queue == queue)
+-                              netif_stop_subqueue(sdata->dev, ac);
++                          sdata->vif.cab_queue == queue) {
++                              if (!local->ops->wake_tx_queue) {
++                                      netif_stop_subqueue(sdata->dev, ac);
++                                      continue;
++                              }
++                              spin_lock(&local->fq.lock);
++                              sdata->vif.txqs_stopped[ac] = true;
++                              spin_unlock(&local->fq.lock);
++                      }
+               }
+       }
+       rcu_read_unlock();
diff --git a/package/kernel/mac80211/patches/subsys/301-mac80211-do-not-call-driver-wake_tx_queue-op-during-.patch b/package/kernel/mac80211/patches/subsys/301-mac80211-do-not-call-driver-wake_tx_queue-op-during-.patch
new file mode 100644 (file)
index 0000000..5bbf4db
--- /dev/null
@@ -0,0 +1,33 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 1 Mar 2019 14:42:56 +0100
+Subject: [PATCH] mac80211: do not call driver wake_tx_queue op during reconfig
+
+There are several scenarios in which mac80211 can call drv_wake_tx_queue
+after ieee80211_restart_hw has been called and has not yet completed.
+Driver private structs are considered uninitialized until mac80211 has
+uploaded the vifs, stations and keys again, so using private tx queue
+data during that time is not safe.
+
+The driver can also not rely on drv_reconfig_complete to figure out when
+it is safe to accept drv_wake_tx_queue calls again, because it is only
+called after all tx queues are woken again.
+
+To fix this, bail out early in drv_wake_tx_queue if local->in_reconfig
+is set.
+
+Cc: stable@vger.kernel.org
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/net/mac80211/driver-ops.h
++++ b/net/mac80211/driver-ops.h
+@@ -1166,6 +1166,9 @@ static inline void drv_wake_tx_queue(str
+ {
+       struct ieee80211_sub_if_data *sdata = vif_to_sdata(txq->txq.vif);
++      if (local->in_reconfig)
++              return;
++
+       if (!check_sdata_in_driver(sdata))
+               return;
diff --git a/package/kernel/mac80211/patches/subsys/351-mac80211-free-skb-fraglist-before-freeing-the-skb.patch b/package/kernel/mac80211/patches/subsys/351-mac80211-free-skb-fraglist-before-freeing-the-skb.patch
deleted file mode 100644 (file)
index dc12290..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Sara Sharon <sara.sharon@intel.com>
-Date: Thu, 11 Oct 2018 14:21:21 +0200
-Subject: [PATCH] mac80211: free skb fraglist before freeing the skb
-
-mac80211 uses the frag list to build AMSDU. When freeing
-the skb, it may not be really freed, since someone is still
-holding a reference to it.
-In that case, when TCP skb is being retransmitted, the
-pointer to the frag list is being reused, while the data
-in there is no longer valid.
-Since we will never get frag list from the network stack,
-as mac80211 doesn't advertise the capability, we can safely
-free and nullify it before releasing the SKB.
-
-Signed-off-by: Sara Sharon <sara.sharon@intel.com>
----
-
---- a/net/mac80211/status.c
-+++ b/net/mac80211/status.c
-@@ -558,6 +558,11 @@ static void ieee80211_report_used_skb(st
-       }
-       ieee80211_led_tx(local);
-+
-+      if (skb_has_frag_list(skb)) {
-+              kfree_skb_list(skb_shinfo(skb)->frag_list);
-+              skb_shinfo(skb)->frag_list = NULL;
-+      }
- }
- /*
index a0221c0d6c112934575a61869adee0f68aaeb260..2914461b41ba32467ab3b977e427faabe0fbf83e 100644 (file)
@@ -48,7 +48,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
        if (likely(sta)) {
                if (!IS_ERR(sta))
                        tx->sta = sta;
-@@ -3501,6 +3501,7 @@ begin:
+@@ -3513,6 +3513,7 @@ begin:
        tx.local = local;
        tx.skb = skb;
        tx.sdata = vif_to_sdata(info->control.vif);
@@ -56,7 +56,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
  
        if (txq->sta)
                tx.sta = container_of(txq->sta, struct sta_info, sta);
-@@ -3837,6 +3838,7 @@ ieee80211_build_data_template(struct iee
+@@ -3850,6 +3851,7 @@ ieee80211_build_data_template(struct iee
        hdr = (void *)skb->data;
        tx.sta = sta_info_get(sdata, hdr->addr1);
        tx.skb = skb;
@@ -66,7 +66,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
                rcu_read_unlock();
 --- a/net/mac80211/util.c
 +++ b/net/mac80211/util.c
-@@ -1290,6 +1290,7 @@ void ieee80211_send_auth(struct ieee8021
+@@ -1390,6 +1390,7 @@ void ieee80211_send_auth(struct ieee8021
        struct ieee80211_local *local = sdata->local;
        struct sk_buff *skb;
        struct ieee80211_mgmt *mgmt;
@@ -74,7 +74,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
        int err;
  
        /* 24 + 6 = header + auth_algo + auth_transaction + status_code */
-@@ -1313,8 +1314,10 @@ void ieee80211_send_auth(struct ieee8021
+@@ -1413,8 +1414,10 @@ void ieee80211_send_auth(struct ieee8021
                skb_put_data(skb, extra, extra_len);
  
        if (auth_alg == WLAN_AUTH_SHARED_KEY && transaction == 3) {
index 42274cbab1c796c24f115c7e2172d6e4e21e4a02..f4048b0420c5d94bc40f2120e02f4bca38c31cdb 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
 
 --- a/include/net/mac80211.h
 +++ b/include/net/mac80211.h
-@@ -2127,6 +2127,9 @@ struct ieee80211_txq {
+@@ -2131,6 +2131,9 @@ struct ieee80211_txq {
   * @IEEE80211_HW_DOESNT_SUPPORT_QOS_NDP: The driver (or firmware) doesn't
   *    support QoS NDP for AP probing - that's most likely a driver bug.
   *
@@ -33,7 +33,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
   * @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
   */
  enum ieee80211_hw_flags {
-@@ -2172,6 +2175,7 @@ enum ieee80211_hw_flags {
+@@ -2176,6 +2179,7 @@ enum ieee80211_hw_flags {
        IEEE80211_HW_SUPPORTS_TDLS_BUFFER_STA,
        IEEE80211_HW_DEAUTH_NEED_MGD_TX_PREP,
        IEEE80211_HW_DOESNT_SUPPORT_QOS_NDP,
@@ -53,7 +53,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
  
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -1557,6 +1557,29 @@ ieee80211_vif_get_num_mcast_if(struct ie
+@@ -1559,6 +1559,29 @@ ieee80211_vif_get_num_mcast_if(struct ie
        return -1;
  }
  
@@ -147,7 +147,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
  
        if (likely(sta)) {
                if (!IS_ERR(sta))
-@@ -2209,7 +2208,7 @@ netdev_tx_t ieee80211_monitor_start_xmit
+@@ -2215,7 +2214,7 @@ netdev_tx_t ieee80211_monitor_start_xmit
                goto fail;
  
        hdr = (struct ieee80211_hdr *)(skb->data + len_rthdr);
@@ -156,7 +156,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
  
        if (skb->len < len_rthdr + hdrlen)
                goto fail;
-@@ -2427,7 +2426,7 @@ static struct sk_buff *ieee80211_build_h
+@@ -2433,7 +2432,7 @@ static struct sk_buff *ieee80211_build_h
        struct ieee80211_chanctx_conf *chanctx_conf;
        struct ieee80211_sub_if_data *ap_sdata;
        enum nl80211_band band;
@@ -165,7 +165,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
  
        if (IS_ERR(sta))
                sta = NULL;
-@@ -2647,6 +2646,9 @@ static struct sk_buff *ieee80211_build_h
+@@ -2653,6 +2652,9 @@ static struct sk_buff *ieee80211_build_h
                hdrlen += 2;
        }
  
@@ -175,7 +175,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
        /*
         * Drop unicast frames to unauthorised stations unless they are
         * EAPOL frames from the local station.
-@@ -2727,6 +2729,7 @@ static struct sk_buff *ieee80211_build_h
+@@ -2733,6 +2735,7 @@ static struct sk_buff *ieee80211_build_h
  
        skb_pull(skb, skip_header_bytes);
        head_need = hdrlen + encaps_len + meshhdrlen - skb_headroom(skb);
@@ -183,7 +183,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
  
        /*
         * So we need to modify the skb header and hence need a copy of
-@@ -2759,6 +2762,9 @@ static struct sk_buff *ieee80211_build_h
+@@ -2765,6 +2768,9 @@ static struct sk_buff *ieee80211_build_h
                memcpy(skb_push(skb, meshhdrlen), &mesh_hdr, meshhdrlen);
  #endif
  
@@ -193,7 +193,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
        if (ieee80211_is_data_qos(fc)) {
                __le16 *qos_control;
  
-@@ -2934,6 +2940,9 @@ void ieee80211_check_fast_xmit(struct st
+@@ -2940,6 +2946,9 @@ void ieee80211_check_fast_xmit(struct st
                fc |= cpu_to_le16(IEEE80211_STYPE_QOS_DATA);
        }
  
@@ -203,7 +203,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
        /* We store the key here so there's no point in using rcu_dereference()
         * but that's fine because the code that changes the pointers will call
         * this function after doing so. For a single CPU that would be enough,
-@@ -3528,7 +3537,7 @@ begin:
+@@ -3540,7 +3549,7 @@ begin:
  
                if (tx.key &&
                    (tx.key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV))
@@ -214,7 +214,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
                                           tx.key, skb);
 --- a/net/mac80211/util.c
 +++ b/net/mac80211/util.c
-@@ -1288,6 +1288,7 @@ void ieee80211_send_auth(struct ieee8021
+@@ -1388,6 +1388,7 @@ void ieee80211_send_auth(struct ieee8021
                         u32 tx_flags)
  {
        struct ieee80211_local *local = sdata->local;
@@ -222,7 +222,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
        struct sk_buff *skb;
        struct ieee80211_mgmt *mgmt;
        unsigned int hdrlen;
-@@ -1314,7 +1315,7 @@ void ieee80211_send_auth(struct ieee8021
+@@ -1414,7 +1415,7 @@ void ieee80211_send_auth(struct ieee8021
                skb_put_data(skb, extra, extra_len);
  
        if (auth_alg == WLAN_AUTH_SHARED_KEY && transaction == 3) {
index 055472206e548dd3f69cbb1b51317ebbcd911a37..9a233753ad8a334f71a2a0be5e78a5c076509622 100644 (file)
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  ccflags-y += -DDEBUG
 --- a/net/mac80211/main.c
 +++ b/net/mac80211/main.c
-@@ -1306,18 +1306,12 @@ static int __init ieee80211_init(void)
+@@ -1308,18 +1308,12 @@ static int __init ieee80211_init(void)
        if (ret)
                return ret;
  
@@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        rc80211_minstrel_exit();
  
        return ret;
-@@ -1325,7 +1319,6 @@ static int __init ieee80211_init(void)
+@@ -1327,7 +1321,6 @@ static int __init ieee80211_init(void)
  
  static void __exit ieee80211_exit(void)
  {
index fe0b98c3acf1f8634c6bdbc958b4bf75806b0052..4e83ff1ea068c0c64c938e507e46bb82d660557d 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -3188,6 +3188,7 @@ static bool ieee80211_amsdu_aggregate(st
+@@ -3194,6 +3194,7 @@ static bool ieee80211_amsdu_aggregate(st
        u8 max_subframes = sta->sta.max_amsdu_subframes;
        int max_frags = local->hw.max_tx_fragments;
        int max_amsdu_len = sta->sta.max_amsdu_len;
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        __be16 len;
        void *data;
        bool ret = false;
-@@ -3219,12 +3220,13 @@ static bool ieee80211_amsdu_aggregate(st
+@@ -3225,12 +3226,13 @@ static bool ieee80211_amsdu_aggregate(st
        flow = fq_flow_classify(fq, tin, skb, fq_flow_get_default_func);
        head = skb_peek_tail(&flow->queue);
        if (!head)
@@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        nfrags = 1 + skb_shinfo(skb)->nr_frags;
        nfrags += 1 + skb_shinfo(head)->nr_frags;
-@@ -3282,6 +3284,9 @@ out_recalc:
+@@ -3288,6 +3290,9 @@ out_recalc:
                fq_recalc_backlog(fq, tin, flow);
        }
  out:
diff --git a/package/kernel/mac80211/patches/subsys/379-mac80211-ignore-tx-status-for-PS-stations-in-ieee802.patch b/package/kernel/mac80211/patches/subsys/379-mac80211-ignore-tx-status-for-PS-stations-in-ieee802.patch
deleted file mode 100644 (file)
index ee2059f..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Tue, 13 Nov 2018 20:29:03 +0100
-Subject: [PATCH] mac80211: ignore tx status for PS stations in
- ieee80211_tx_status_ext
-
-Make it behave like regular ieee80211_tx_status calls, except for the lack of
-filtered frame processing.
-This fixes spurious low-ack triggered disconnections with powersave clients
-connected to an AP.
-
-Fixes: f027c2aca0cf4 ("mac80211: add ieee80211_tx_status_noskb")
-Cc: stable@vger.kernel.org
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/net/mac80211/status.c
-+++ b/net/mac80211/status.c
-@@ -984,6 +984,8 @@ void ieee80211_tx_status_ext(struct ieee
-                       /* Track when last TDLS packet was ACKed */
-                       if (test_sta_flag(sta, WLAN_STA_TDLS_PEER_AUTH))
-                               sta->status_stats.last_tdls_pkt_time = jiffies;
-+              } else if (test_sta_flag(sta, WLAN_STA_PS_STA)) {
-+                      return;
-               } else {
-                       ieee80211_lost_packet(sta, info);
-               }
diff --git a/package/kernel/mac80211/patches/subsys/380-mac80211-fix-reordering-of-buffered-broadcast-packet.patch b/package/kernel/mac80211/patches/subsys/380-mac80211-fix-reordering-of-buffered-broadcast-packet.patch
deleted file mode 100644 (file)
index 4257365..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Wed, 28 Nov 2018 22:36:06 +0100
-Subject: [PATCH] mac80211: fix reordering of buffered broadcast packets
-
-If the buffered broadcast queue contains packets, letting new packets bypass
-that queue can lead to heavy reordering, since the driver is probably throttling
-transmission of buffered multicast packets after beacons.
-
-Keep buffering packets until the buffer has been cleared (and no client
-is in powersave mode).
-
-Cc: stable@vger.kernel.org
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/net/mac80211/tx.c
-+++ b/net/mac80211/tx.c
-@@ -439,8 +439,8 @@ ieee80211_tx_h_multicast_ps_buf(struct i
-       if (ieee80211_hw_check(&tx->local->hw, QUEUE_CONTROL))
-               info->hw_queue = tx->sdata->vif.cab_queue;
--      /* no stations in PS mode */
--      if (!atomic_read(&ps->num_sta_ps))
-+      /* no stations in PS mode and no buffered packets */
-+      if (!atomic_read(&ps->num_sta_ps) && skb_queue_empty(&ps->bc_buf))
-               return TX_CONTINUE;
-       info->flags |= IEEE80211_TX_CTL_SEND_AFTER_DTIM;
diff --git a/package/kernel/mac80211/patches/subsys/381-mac80211-fix-a-kernel-panic-when-TXing-after-TXQ-tea.patch b/package/kernel/mac80211/patches/subsys/381-mac80211-fix-a-kernel-panic-when-TXing-after-TXQ-tea.patch
deleted file mode 100644 (file)
index 606897d..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-From a50e5fb8db83c5b57392204c21ea6c5c4ccefde6 Mon Sep 17 00:00:00 2001
-From: Sara Sharon <sara.sharon@intel.com>
-Date: Sat, 15 Dec 2018 11:03:10 +0200
-Subject: [PATCH 1/3] mac80211: fix a kernel panic when TXing after TXQ
- teardown
-
-Recently TXQ teardown was moved earlier in ieee80211_unregister_hw(),
-to avoid a use-after-free of the netdev data. However, interfaces
-aren't fully removed at the point, and cfg80211_shutdown_all_interfaces
-can for example, TX a deauth frame. Move the TXQ teardown to the
-point between cfg80211_shutdown_all_interfaces and the free of
-netdev queues, so we can be sure they are torn down before netdev
-is freed, but after there is no ongoing TX.
-
-Fixes: 77cfaf52eca5 ("mac80211: Run TXQ teardown code before de-registering interfaces")
-Signed-off-by: Sara Sharon <sara.sharon@intel.com>
-Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
----
- net/mac80211/iface.c | 3 +++
- net/mac80211/main.c  | 2 --
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
---- a/net/mac80211/iface.c
-+++ b/net/mac80211/iface.c
-@@ -7,6 +7,7 @@
-  * Copyright 2008, Johannes Berg <johannes@sipsolutions.net>
-  * Copyright 2013-2014  Intel Mobile Communications GmbH
-  * Copyright (c) 2016        Intel Deutschland GmbH
-+ * Copyright (C) 2018 Intel Corporation
-  *
-  * This program is free software; you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License version 2 as
-@@ -2035,6 +2036,8 @@ void ieee80211_remove_interfaces(struct
-       WARN(local->open_count, "%s: open count remains %d\n",
-            wiphy_name(local->hw.wiphy), local->open_count);
-+      ieee80211_txq_teardown_flows(local);
-+
-       mutex_lock(&local->iflist_mtx);
-       list_for_each_entry_safe(sdata, tmp, &local->interfaces, list) {
-               list_del(&sdata->list);
---- a/net/mac80211/main.c
-+++ b/net/mac80211/main.c
-@@ -1200,7 +1200,6 @@ int ieee80211_register_hw(struct ieee802
-       rtnl_unlock();
-       ieee80211_led_exit(local);
-       ieee80211_wep_free(local);
--      ieee80211_txq_teardown_flows(local);
-  fail_flows:
-       destroy_workqueue(local->workqueue);
-  fail_workqueue:
-@@ -1226,7 +1225,6 @@ void ieee80211_unregister_hw(struct ieee
- #if IS_ENABLED(__disabled__CONFIG_IPV6)
-       unregister_inet6addr_notifier(&local->ifa6_notifier);
- #endif
--      ieee80211_txq_teardown_flows(local);
-       rtnl_lock();
diff --git a/package/kernel/mac80211/patches/subsys/382-nl80211-fix-memory-leak-if-validate_pae_over_nl80211.patch b/package/kernel/mac80211/patches/subsys/382-nl80211-fix-memory-leak-if-validate_pae_over_nl80211.patch
deleted file mode 100644 (file)
index d31d45b..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From d350a0f431189517b1af0dbbb605c273231a8966 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg@intel.com>
-Date: Sat, 15 Dec 2018 11:03:22 +0200
-Subject: [PATCH 2/3] nl80211: fix memory leak if validate_pae_over_nl80211()
- fails
-
-If validate_pae_over_nl80211() were to fail in nl80211_crypto_settings(),
-we might leak the 'connkeys' allocation. Fix this.
-
-Fixes: 64bf3d4bc2b0 ("nl80211: Add CONTROL_PORT_OVER_NL80211 attribute")
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
----
- net/wireless/nl80211.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
---- a/net/wireless/nl80211.c
-+++ b/net/wireless/nl80211.c
-@@ -9002,8 +9002,10 @@ static int nl80211_join_ibss(struct sk_b
-       if (info->attrs[NL80211_ATTR_CONTROL_PORT_OVER_NL80211]) {
-               int r = validate_pae_over_nl80211(rdev, info);
--              if (r < 0)
-+              if (r < 0) {
-+                      kzfree(connkeys);
-                       return r;
-+              }
-               ibss.control_port_over_nl80211 = true;
-       }
diff --git a/package/kernel/mac80211/patches/subsys/383-mac80211-minstrel_ht-add-flag-to-indicate-missing-in.patch b/package/kernel/mac80211/patches/subsys/383-mac80211-minstrel_ht-add-flag-to-indicate-missing-in.patch
new file mode 100644 (file)
index 0000000..5b12e87
--- /dev/null
@@ -0,0 +1,121 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Wed, 16 Jan 2019 21:47:54 +0100
+Subject: [PATCH] mac80211: minstrel_ht: add flag to indicate
+ missing/inaccurate tx A-MPDU length
+
+Some hardware (e.g. MediaTek MT7603) cannot report A-MPDU length in tx status
+information. Add support for a flag to indicate that, to allow minstrel_ht
+to use a fixed value in its internal calculation (which gives better results
+than just defaulting to 1).
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/include/net/mac80211.h
++++ b/include/net/mac80211.h
+@@ -2134,6 +2134,9 @@ struct ieee80211_txq {
+  * @IEEE80211_HW_NEEDS_ALIGNED4_SKBS: Driver need aligned skbs to four-byte.
+  *    Padding will be added after ieee80211_hdr, before IV/LLC.
+  *
++ * @IEEE80211_HW_TX_STATUS_NO_AMPDU_LEN: Driver does not report accurate A-MPDU
++ *    length in tx status information
++ *
+  * @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
+  */
+ enum ieee80211_hw_flags {
+@@ -2180,6 +2183,7 @@ enum ieee80211_hw_flags {
+       IEEE80211_HW_DEAUTH_NEED_MGD_TX_PREP,
+       IEEE80211_HW_DOESNT_SUPPORT_QOS_NDP,
+       IEEE80211_HW_NEEDS_ALIGNED4_SKBS,
++      IEEE80211_HW_TX_STATUS_NO_AMPDU_LEN,
+       /* keep last, obviously */
+       NUM_IEEE80211_HW_FLAGS
+--- a/net/mac80211/debugfs.c
++++ b/net/mac80211/debugfs.c
+@@ -215,6 +215,7 @@ static const char *hw_flag_names[] = {
+       FLAG(DEAUTH_NEED_MGD_TX_PREP),
+       FLAG(DOESNT_SUPPORT_QOS_NDP),
+       FLAG(NEEDS_ALIGNED4_SKBS),
++      FLAG(TX_STATUS_NO_AMPDU_LEN),
+ #undef FLAG
+ };
+--- a/net/mac80211/rc80211_minstrel_ht.c
++++ b/net/mac80211/rc80211_minstrel_ht.c
+@@ -294,6 +294,15 @@ minstrel_get_ratestats(struct minstrel_h
+       return &mi->groups[index / MCS_GROUP_RATES].rates[index % MCS_GROUP_RATES];
+ }
++static unsigned int
++minstrel_ht_avg_ampdu_len(struct minstrel_ht_sta *mi)
++{
++      if (!mi->avg_ampdu_len)
++              return AVG_AMPDU_SIZE;
++
++      return MINSTREL_TRUNC(mi->avg_ampdu_len);
++}
++
+ /*
+  * Return current throughput based on the average A-MPDU length, taking into
+  * account the expected number of retransmissions and their expected length
+@@ -309,7 +318,7 @@ minstrel_ht_get_tp_avg(struct minstrel_h
+               return 0;
+       if (group != MINSTREL_CCK_GROUP)
+-              nsecs = 1000 * mi->overhead / MINSTREL_TRUNC(mi->avg_ampdu_len);
++              nsecs = 1000 * mi->overhead / minstrel_ht_avg_ampdu_len(mi);
+       nsecs += minstrel_mcs_groups[group].duration[rate] <<
+                minstrel_mcs_groups[group].shift;
+@@ -503,8 +512,12 @@ minstrel_ht_update_stats(struct minstrel
+       u16 tmp_cck_tp_rate[MAX_THR_RATES], index;
+       if (mi->ampdu_packets > 0) {
+-              mi->avg_ampdu_len = minstrel_ewma(mi->avg_ampdu_len,
+-                      MINSTREL_FRAC(mi->ampdu_len, mi->ampdu_packets), EWMA_LEVEL);
++              if (!ieee80211_hw_check(mp->hw, TX_STATUS_NO_AMPDU_LEN))
++                      mi->avg_ampdu_len = minstrel_ewma(mi->avg_ampdu_len,
++                              MINSTREL_FRAC(mi->ampdu_len, mi->ampdu_packets),
++                                            EWMA_LEVEL);
++              else
++                      mi->avg_ampdu_len = 0;
+               mi->ampdu_len = 0;
+               mi->ampdu_packets = 0;
+       }
+@@ -709,7 +722,9 @@ minstrel_ht_tx_status(void *priv, struct
+       mi->ampdu_len += info->status.ampdu_len;
+       if (!mi->sample_wait && !mi->sample_tries && mi->sample_count > 0) {
+-              mi->sample_wait = 16 + 2 * MINSTREL_TRUNC(mi->avg_ampdu_len);
++              int avg_ampdu_len = minstrel_ht_avg_ampdu_len(mi);
++
++              mi->sample_wait = 16 + 2 * avg_ampdu_len;
+               mi->sample_tries = 1;
+               mi->sample_count--;
+       }
+@@ -777,7 +792,7 @@ minstrel_calc_retransmit(struct minstrel
+       unsigned int cw = mp->cw_min;
+       unsigned int ctime = 0;
+       unsigned int t_slot = 9; /* FIXME */
+-      unsigned int ampdu_len = MINSTREL_TRUNC(mi->avg_ampdu_len);
++      unsigned int ampdu_len = minstrel_ht_avg_ampdu_len(mi);
+       unsigned int overhead = 0, overhead_rtscts = 0;
+       mrs = minstrel_get_ratestats(mi, index);
+--- a/net/mac80211/rc80211_minstrel_ht_debugfs.c
++++ b/net/mac80211/rc80211_minstrel_ht_debugfs.c
+@@ -163,9 +163,10 @@ minstrel_ht_stats_open(struct inode *ino
+                       "lookaround %d\n",
+                       max(0, (int) mi->total_packets - (int) mi->sample_packets),
+                       mi->sample_packets);
+-      p += sprintf(p, "Average # of aggregated frames per A-MPDU: %d.%d\n",
+-              MINSTREL_TRUNC(mi->avg_ampdu_len),
+-              MINSTREL_TRUNC(mi->avg_ampdu_len * 10) % 10);
++      if (mi->avg_ampdu_len)
++              p += sprintf(p, "Average # of aggregated frames per A-MPDU: %d.%d\n",
++                      MINSTREL_TRUNC(mi->avg_ampdu_len),
++                      MINSTREL_TRUNC(mi->avg_ampdu_len * 10) % 10);
+       ms->len = p - ms->buf;
+       WARN_ON(ms->len + sizeof(*ms) > 32768);
diff --git a/package/kernel/mac80211/patches/subsys/390-nl-mac-80211-allow-4addr-AP-operation-on-crypto-cont.patch b/package/kernel/mac80211/patches/subsys/390-nl-mac-80211-allow-4addr-AP-operation-on-crypto-cont.patch
new file mode 100644 (file)
index 0000000..3f933f8
--- /dev/null
@@ -0,0 +1,107 @@
+From 3ad31f4efe9674a8bda057c79995a9468281e77f Mon Sep 17 00:00:00 2001
+From: Manikanta Pubbisetty <mpubbise@codeaurora.org>
+Date: Wed, 21 Nov 2018 16:33:48 +0530
+Subject: [PATCH] {nl,mac}80211: allow 4addr AP operation on crypto controlled
+ devices
+
+As per the current design, for sw crypto controlled devices, it is
+the device which has to advertise the support for AP/VLAN iftype
+based on it's capability to tranmsit packets encrypted in software
+(In VLAN functionality, group traffic generated for a specific
+VLAN group is always encrypted in software). Commit db3bdcb9c3ff
+("mac80211: allow AP_VLAN operation on crypto controlled devices")
+has introduced this change.
+
+Since 4addr AP operation also uses AP/VLAN iftype, this conditional
+way of advertising AP/VLAN support has broken 4addr AP mode operation on
+crypto controlled devices which do not support VLAN functionality.
+
+For example:
+In the case of ath10k driver, not all firmwares have support for VLAN
+functionality but all can support 4addr AP operation. Because AP/VLAN
+support is not advertised for these devices, 4addr AP operations are
+also blocked.
+
+Fix this by allowing 4addr opertion on devices which do not advertise
+AP/VLAN iftype but which can support 4addr operation (the desicion is
+taken based on the wiphy flag WIPHY_FLAG_4ADDR_AP).
+
+Fixes: Commit db3bdcb9c3ff ("mac80211: allow AP_VLAN operation on
+crypto controlled devices")
+Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
+---
+ include/net/cfg80211.h |  3 ++-
+ net/mac80211/util.c    |  4 +++-
+ net/wireless/core.c    |  9 +++++++--
+ net/wireless/nl80211.c | 10 ++++++++--
+ 4 files changed, 20 insertions(+), 6 deletions(-)
+
+--- a/include/net/cfg80211.h
++++ b/include/net/cfg80211.h
+@@ -3448,7 +3448,8 @@ struct cfg80211_ops {
+  *    on wiphy_new(), but can be changed by the driver if it has a good
+  *    reason to override the default
+  * @WIPHY_FLAG_4ADDR_AP: supports 4addr mode even on AP (with a single station
+- *    on a VLAN interface)
++ *    on a VLAN interface). This flag also serves an extra purpose of
++ *    supporting 4ADDR AP mode on devices which do not support AP/VLAN iftype.
+  * @WIPHY_FLAG_4ADDR_STATION: supports 4addr mode even as a station
+  * @WIPHY_FLAG_CONTROL_PORT_PROTOCOL: This device supports setting the
+  *    control port protocol ethertype. The device also honours the
+--- a/net/mac80211/util.c
++++ b/net/mac80211/util.c
+@@ -3523,7 +3523,9 @@ int ieee80211_check_combinations(struct
+       }
+       /* Always allow software iftypes */
+-      if (local->hw.wiphy->software_iftypes & BIT(iftype)) {
++      if (local->hw.wiphy->software_iftypes & BIT(iftype) ||
++          (iftype == NL80211_IFTYPE_AP_VLAN &&
++           local->hw.wiphy->flags & WIPHY_FLAG_4ADDR_AP)) {
+               if (radar_detect)
+                       return -EINVAL;
+               return 0;
+--- a/net/wireless/core.c
++++ b/net/wireless/core.c
+@@ -1351,8 +1351,13 @@ static int cfg80211_netdev_notifier_call
+               }
+               break;
+       case NETDEV_PRE_UP:
+-              if (!(wdev->wiphy->interface_modes & BIT(wdev->iftype)))
+-                      return notifier_from_errno(-EOPNOTSUPP);
++              if (!(wdev->wiphy->interface_modes & BIT(wdev->iftype))) {
++                      if (!(wdev->iftype == NL80211_IFTYPE_AP_VLAN &&
++                            rdev->wiphy.flags & WIPHY_FLAG_4ADDR_AP &&
++                            wdev->use_4addr))
++                              return notifier_from_errno(-EOPNOTSUPP);
++              }
++
+               if (rfkill_blocked(rdev->rfkill))
+                       return notifier_from_errno(-ERFKILL);
+               break;
+--- a/net/wireless/nl80211.c
++++ b/net/wireless/nl80211.c
+@@ -3193,8 +3193,7 @@ static int nl80211_new_interface(struct
+                       return -EINVAL;
+       }
+-      if (!rdev->ops->add_virtual_intf ||
+-          !(rdev->wiphy.interface_modes & (1 << type)))
++      if (!rdev->ops->add_virtual_intf)
+               return -EOPNOTSUPP;
+       if ((type == NL80211_IFTYPE_P2P_DEVICE || type == NL80211_IFTYPE_NAN ||
+@@ -3213,6 +3212,13 @@ static int nl80211_new_interface(struct
+                       return err;
+       }
++      if (!(rdev->wiphy.interface_modes & (1 << type))) {
++              if (!(type == NL80211_IFTYPE_AP_VLAN &&
++                    rdev->wiphy.flags & WIPHY_FLAG_4ADDR_AP &&
++                    params.use_4addr))
++                      return -EOPNOTSUPP;
++      }
++
+       err = nl80211_parse_mon_options(rdev, type, info, &params);
+       if (err < 0)
+               return err;
index 86bd2905ae6724cf012ce8b35067d6096b604663..b68010bfe7a724cf3683472d4c33169d245c0a7d 100644 (file)
        u8 ps_dtim_period;
 --- a/include/uapi/linux/nl80211.h
 +++ b/include/uapi/linux/nl80211.h
-@@ -2241,6 +2241,9 @@ enum nl80211_commands {
+@@ -2241,6 +2241,26 @@ enum nl80211_commands {
   *    association request when used with NL80211_CMD_NEW_STATION). Can be set
   *    only if %NL80211_STA_FLAG_WME is set.
   *
++ * @NL80211_ATTR_FTM_RESPONDER: nested attribute which user-space can include
++ *    in %NL80211_CMD_START_AP or %NL80211_CMD_SET_BEACON for fine timing
++ *    measurement (FTM) responder functionality and containing parameters as
++ *    possible, see &enum nl80211_ftm_responder_attr
++ *
++ * @NL80211_ATTR_FTM_RESPONDER_STATS: Nested attribute with FTM responder
++ *    statistics, see &enum nl80211_ftm_responder_stats.
++ *
++ * @NL80211_ATTR_TIMEOUT: Timeout for the given operation in milliseconds (u32),
++ *    if the attribute is not given no timeout is requested. Note that 0 is an
++ *    invalid value.
++ *
++ * @NL80211_ATTR_PEER_MEASUREMENTS: peer measurements request (and result)
++ *    data, uses nested attributes specified in
++ *    &enum nl80211_peer_measurement_attrs.
++ *    This is also used for capability advertisement in the wiphy information,
++ *    with the appropriate sub-attributes.
 + * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
 + *    transmit power to stay within regulatory limits. u32, dBi.
 + *
   * @NUM_NL80211_ATTR: total number of nl80211_attrs available
   * @NL80211_ATTR_MAX: highest attribute number currently defined
   * @__NL80211_ATTR_AFTER_LAST: internal use
-@@ -2682,6 +2685,8 @@ enum nl80211_attrs {
+@@ -2682,6 +2702,16 @@ enum nl80211_attrs {
  
        NL80211_ATTR_HE_CAPABILITY,
  
++      NL80211_ATTR_FTM_RESPONDER,
++
++      NL80211_ATTR_FTM_RESPONDER_STATS,
++
++      NL80211_ATTR_TIMEOUT,
++
++      NL80211_ATTR_PEER_MEASUREMENTS,
++
 +      NL80211_ATTR_WIPHY_ANTENNA_GAIN,
 +
        /* add attributes here, update the policy in nl80211.c */
        CFG80211_TESTMODE_CMD(ieee80211_testmode_cmd)
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -1352,6 +1352,7 @@ struct ieee80211_local {
+@@ -1354,6 +1354,7 @@ struct ieee80211_local {
        int dynamic_ps_forced_timeout;
  
        int user_power_level; /* in dBm, for all interfaces */
index 885882669e4660a5f7a7064b0c0759b8c8ab73b1..0b3cecdfbd2a506c94e26a1655eecbf02a8d3394 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=elfutils
 PKG_VERSION:=0.175
-PKG_RELEASE:=1
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION)
@@ -33,24 +33,26 @@ define Package/elfutils/Default
   CATEGORY:=Libraries
   TITLE:=ELF manipulation libraries
   URL:=https://fedorahosted.org/elfutils/
+  ABI_VERSION:=1
 endef
 
 define Package/libasm
   $(call Package/elfutils/Default)
   TITLE+= (libasm)
-  DEPENDS:=libelf1 +libdw
+  DEPENDS:=+libelf +libdw
 endef
 
 define Package/libdw
   $(call Package/elfutils/Default)
-  DEPENDS:=libelf1 +libbz2
+  DEPENDS:=+libelf +libbz2
   TITLE+= (libdw)
 endef
 
-define Package/libelf1
+define Package/libelf
   $(call Package/elfutils/Default)
   DEPENDS:=$(INTL_DEPENDS) +zlib
   TITLE+= (libelf)
+  PROVIDES:=libelf1
 endef
 
 ifeq ($(CONFIG_BUILD_NLS),y)
@@ -79,19 +81,19 @@ endef
 
 define Package/libasm/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libasm*.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libasm{-*.so,*.so.*} $(1)/usr/lib/
 endef
 
 define Package/libdw/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdw*.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdw{-*.so,*.so.*} $(1)/usr/lib/
 endef
 
-define Package/libelf1/install
+define Package/libelf/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelf*.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelf{-*.so,*.so.*} $(1)/usr/lib/
 endef
 
 $(eval $(call BuildPackage,libasm))
 $(eval $(call BuildPackage,libdw))
-$(eval $(call BuildPackage,libelf1))
+$(eval $(call BuildPackage,libelf))
index 4cb8d8d618073f582828021c7846b6558c7205d6..2e65571701e4d7d602094afcfd7820820a2bc185 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gettext-full
 PKG_VERSION:=0.19.8.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=gettext-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/gettext
@@ -34,6 +34,7 @@ define Package/libintl-full
   CATEGORY:=Libraries
   TITLE:=GNU Internationalization library
   URL:=http://www.gnu.org/software/gettext/
+  ABI_VERSION:=8
 endef
 
 TARGET_CFLAGS += $(FPIC)
@@ -94,7 +95,7 @@ endef
 
 define Package/libintl-full/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libintl.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libintl.so.* $(1)/usr/lib/
 endef
 
 $(eval $(call HostBuild))
index b5737505b7a9fa759fe80281e342c129fda6db83..4ea69019f663126ab5fcef2776172767733f10dc 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gmp
 PKG_VERSION:=6.1.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)$(PKG_REVISION).tar.xz
 PKG_SOURCE_URL:=@GNU/gmp/
@@ -30,6 +30,7 @@ define Package/libgmp
   CATEGORY:=Libraries
   TITLE:=GNU multiprecision arithmetic library
   URL:=http://gmplib.org/
+  ABI_VERSION:=10
 endef
 
 define Package/libgmp/description
index a425b83398eb1f6140879dbab04fdad0a2509e87..4101d5e0eebd3c1dd8726a3488eb61a8816d76be 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libbsd
 PKG_VERSION:=0.8.7
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_HASH:=f548f10e5af5a08b1e22889ce84315b1ebe41505b015c9596bad03fd13a12b31
@@ -19,6 +19,7 @@ define Package/libbsd
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=common BSD library
+  ABI_VERSION:=0
 endef
 
 define Package/libbsd/description
@@ -36,7 +37,7 @@ endef
 
 define Package/libbsd/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libbsd.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libbsd.so.* $(1)/usr/lib/
 endef
 
 $(eval $(call BuildPackage,libbsd))
index d7b2f312b9ae7d67482692bfbb238dee6b1cc008..39fcddf082f397e3ca5809cdb8a72e02d4f1640f 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libconfig
 PKG_VERSION:=1.7.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://hyperrealm.github.io/libconfig/dist/
@@ -28,6 +28,7 @@ define Package/libconfig
   CATEGORY:=Libraries
   TITLE:=Configuration File Library
   URL:=http://www.hyperrealm.com/libconfig/
+  ABI_VERSION:=11
 endef
 
 define Package/libconfig/description
@@ -53,7 +54,7 @@ endef
 
 define Package/libconfig/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libconfig.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libconfig.so.* $(1)/usr/lib/
 endef
 
 $(eval $(call BuildPackage,libconfig))
index 26100d84bf5aae7e390e341f1a6dd54950adf19a..f7223a01d64bf9cda3037262d98cf87302b33c07 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libevent2
 PKG_VERSION:=2.1.8
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=libevent-$(PKG_VERSION)-stable.tar.gz
 PKG_SOURCE_URL:=https://github.com/libevent/libevent/releases/download/release-$(PKG_VERSION)-stable
@@ -31,6 +31,7 @@ define Package/libevent2/Default
   CATEGORY:=Libraries
   TITLE:=Event notification
   URL:=http://libevent.org
+  ABI_VERSION:=6
 endef
 
 define Package/libevent2/Default/description
index ac7bfddf561227b87bc2cc8979eb86bf1a374666..b01db76d2a50993138a6d611a3bf4a3734ae2a26 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libiconv-full
 PKG_VERSION:=1.11.1
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
 
@@ -34,6 +34,7 @@ define Package/libiconv-full
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE+= library
+  ABI_VERSION:=2
 endef
 
 define Package/libcharset
@@ -41,6 +42,7 @@ define Package/libcharset
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE+= library
+  ABI_VERSION:=1
 endef
 
 define Package/iconv
@@ -77,12 +79,12 @@ endef
 
 define Package/libcharset/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcharset.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcharset.so.* $(1)/usr/lib/
 endef
 
 define Package/libiconv-full/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libiconv.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libiconv.so.* $(1)/usr/lib/
 endef
 
 define Package/iconv/install
index 118d618a6f605de0ceaca7632020905c1b677bfd..23cc7b5de4595fba65c09143bd5ef47c2bdaef04 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=json-c
 PKG_VERSION:=0.12.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-nodoc.tar.gz
 PKG_SOURCE_URL:=https://s3.amazonaws.com/json-c_releases/releases/
@@ -38,6 +38,7 @@ define Package/libjson-c
   CATEGORY:=Libraries
   TITLE:=javascript object notation
   URL:=https://json-c.github.io/json-c/
+  ABI_VERSION:=2
 endef
 
 define Package/libjson-c/description
index 6d05e254405ea40628f596dc34a28d2e8cc75357..13628728e6fd55d7ea9db84a00ff3c1d4e3d999e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libmnl
 PKG_VERSION:=1.0.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:= \
@@ -30,6 +30,7 @@ define Package/libmnl
   CATEGORY:=Libraries
   TITLE:=Minimalistic user-space library for Netlink
   URL:=http://www.netfilter.org/projects/libmnl/
+  ABI_VERSION:=0
 endef
 
 define Package/libmnl/description
index be82285317f1c76a66a2b4900acede45c6667caa..a97482ecc09bf82dc2adfb776ed7b40d0974ce80 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnetfilter_conntrack
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://git.netfilter.org/libnetfilter_conntrack
-PKG_SOURCE_DATE:=2017-07-25
-PKG_SOURCE_VERSION:=e870432649955d377a73ee5a72cb23f0f6b5e4c5
-PKG_MIRROR_HASH:=6891e6bea956d5d3514524918f439dfe8b5806397d8d40d1afc69b9bfebc1d57
+PKG_SOURCE_DATE:=2018-05-01
+PKG_SOURCE_VERSION:=3ccae9f5b2a9564cd63699ba60e54a46bc0d73b6
+PKG_MIRROR_HASH:=c978ef0fa5b7379de2909ca5d9c599ac63b4f8166f5971d58f6e074a922d996f
 
 PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
 
@@ -31,6 +31,7 @@ define Package/libnetfilter-conntrack
   DEPENDS:=+libnfnetlink +kmod-nf-conntrack-netlink +libmnl
   TITLE:=API to the in-kernel connection tracking state table
   URL:=http://www.netfilter.org/projects/libnetfilter_conntrack/
+  ABI_VERSION:=3
 endef
 
 define Package/libnetfilter-conntrack/description
index a67296a1f22b5e11ab93ad518a45d2b9a28793a1..3a28f186aa3a02094ba20bd91ff5fbcf4193d727 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnetfilter_cthelper
 PKG_VERSION:=1.0.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:= \
@@ -30,6 +30,7 @@ define Package/libnetfilter-cthelper
   DEPENDS:=+libmnl
   TITLE:=API to the in-kernel connection tracking helper infrastructure
   URL:=http://www.netfilter.org/projects/libnetfilter_cthelper/
+  ABI_VERSION:=0
 endef
 
 define Package/libnetfilter-cthelper/description
index acd1b7b342892b48dba4e47dd42b3413cd39788a..3cb7d5cf937aaf0dbf987d8f179a4e40217c9de1 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnetfilter_cttimeout
 PKG_VERSION:=1.0.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:= \
@@ -30,6 +30,7 @@ define Package/libnetfilter-cttimeout
   DEPENDS:=+libmnl
   TITLE:=API to the in-kernel connection tracking timeout infrastructure
   URL:=http://www.netfilter.org/projects/libnetfilter_cttimeout/
+  ABI_VERSION:=1
 endef
 
 define Package/libnetfilter-cttimeout/description
index c80c46f930ee3c1dbe2950f9ce464de278767aef..642a462e15be5cdadf1317813e70150b0d9bfc2a 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnetfilter_log
 PKG_VERSION:=1.0.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:= \
@@ -31,6 +31,7 @@ define Package/libnetfilter-log
   DEPENDS:=+libnfnetlink +kmod-nfnetlink-log +libmnl
   TITLE:=API to receive to-be-logged packets from the kernel nfnetlink_log subsystem
   URL:=http://www.netfilter.org/projects/libnetfilter_log/
+  ABI_VERSION:=1
 endef
 
 define Package/libnetfilter-log/description
index 8a11d0798863ad2f30002f34de8ccc24471399db..5ce5b8ff5e9b074ff16e8a9d90dd8f300b757307 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnetfilter_queue
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=https://git.netfilter.org/libnetfilter_queue
@@ -29,6 +29,7 @@ define Package/libnetfilter-queue
   DEPENDS:=+libmnl +libnfnetlink
   TITLE:=API to the in-kernel connection tracking queue infrastructure
   URL:=http://www.netfilter.org/projects/libnetfilter_queue/
+  ABI_VERSION:=1
 endef
 
 define Package/libnetfilter-queue/description
index 3de556fa8597388f70d5500dd7a59a17df1414f3..cc797e6e2d17261cd82984d78e37eb05827e76b8 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnfnetlink
 PKG_VERSION:=1.0.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:= \
@@ -30,6 +30,7 @@ define Package/libnfnetlink
   CATEGORY:=Libraries
   TITLE:=A low-level library for netfilter related kernel/userspace communication
   URL:=http://netfilter.org/projects/libnfnetlink/
+  ABI_VERSION:=0
 endef
 
 define Package/libnfnetlink/description
index 0fafcb785868f473e42d1172ab0f9479b6cad759..e55780e0f6d4777b1f459e02edd1ecbf4a28db23 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnftnl
 PKG_VERSION:=1.1.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files
@@ -31,6 +31,7 @@ define Package/libnftnl
   DEPENDS:=+libmnl
   TITLE:=Low-level netlink library for the nf_tables subsystem
   URL:=http://www.netfilter.org/projects/libnftnl
+  ABI_VERSION:=7
 endef
 
 define Package/libnftnl/description
index 5ac2280491259b22ed98998aee1cde688f1ff1e0..a43485b8b2e2a3540df0807f77eca57e5aff4302 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnl
 PKG_VERSION:=3.4.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/thom311/libnl/releases/download/libnl3_4_0
@@ -25,6 +25,7 @@ define Package/libnl/default
   SECTION:=libs
   CATEGORY:=Libraries
   URL:=http://www.infradead.org/~tgr/libnl/
+  ABI_VERSION:=200
 endef
 
 define Package/libnl-core
@@ -98,26 +99,22 @@ endef
 
 define Package/libnl-core/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-3.so* $(1)/usr/lib/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-3.so $(1)/usr/lib/libnl.so
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-3.so.* $(1)/usr/lib/
 endef
 
 define Package/libnl-genl/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-genl-3.so* $(1)/usr/lib/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-genl-3.so $(1)/usr/lib/libnl-genl.so
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-genl-3.so.* $(1)/usr/lib/
 endef
 
 define Package/libnl-route/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-route-3.so* $(1)/usr/lib/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-route-3.so $(1)/usr/lib/libnl-route.so
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-route-3.so.* $(1)/usr/lib/
 endef
 
 define Package/libnl-nf/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-nf-3.so* $(1)/usr/lib/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-nf-3.so $(1)/usr/lib/libnl-nf.so
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-nf-3.so.* $(1)/usr/lib/
 endef
 
 define Package/libnl/install
index 1c0fb8e69426629aee252389992efbfc410909b6..0b525d0a89f0cd21eaab82a4d45b9267f1d7a770 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libpcap
 PKG_VERSION:=1.9.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.us.tcpdump.org/release/ \
@@ -32,6 +32,7 @@ define Package/libpcap
   TITLE:=Low-level packet capture library
   URL:=http://www.tcpdump.org/
   MENU:=1
+  ABI_VERSION:=1
 endef
 
 define Package/libpcap/description
@@ -95,7 +96,7 @@ endef
 
 define Package/libpcap/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcap.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcap.so.* $(1)/usr/lib/
 endef
 
 $(eval $(call BuildPackage,libpcap))
index 60d61716deeb374e6ea1d8f11682bcb729da09ce..d4d3e0e02e37a27a6290fc8b9b5145ce98efbdeb 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libroxml
 PKG_VERSION:=2.3.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://download.libroxml.net/pool/v2.x
@@ -27,6 +27,7 @@ define Package/libroxml
   CATEGORY:=Libraries
   TITLE:=Minimum, easy-to-use, C implementation for xml file parsing
   URL:=http://www.libroxml.net/
+  ABI_VERSION:=0
 endef
 
 CONFIGURE_ARGS += \
diff --git a/package/libs/librpc/Makefile b/package/libs/librpc/Makefile
deleted file mode 100644 (file)
index d894dd3..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=librpc
-PKG_RELEASE=1
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/librpc-uclibc.git
-PKG_SOURCE_DATE:=2015-11-04
-PKG_SOURCE_VERSION:=a921e3ded051746f9f7cd5e5a312fb6771716aac
-PKG_MIRROR_HASH:=22c8dc55e1c4e8e31635a37708a3ce622a6ca33ebd918a4321b0be6ffce89b21
-CMAKE_INSTALL:=1
-PKG_USE_MIPS16:=0
-PKG_BUILD_DEPENDS:=librpc/host
-
-PKG_LICENSE:=LGPL-2.1
-PKG_LICENSE_FILES:=
-
-PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/host-build.mk
-include $(INCLUDE_DIR)/cmake.mk
-
-define Package/librpc
-  SECTION:=libs
-  CATEGORY:=Libraries
-  TITLE:=uClibc RPC library
-endef
-
-define Package/librpc/install
-       $(INSTALL_DIR) $(1)/lib/
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/librpc.so $(1)/lib/
-endef
-
-define Host/Install
-       $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/include/rpc
-       $(INSTALL_DATA) $(HOST_BUILD_DIR)/rpc/types.h $(STAGING_DIR_HOSTPKG)/include/rpc
-       $(INSTALL_DATA) $(HOST_BUILD_DIR)/rpc/compat.h $(STAGING_DIR_HOSTPKG)/include/rpc
-endef
-
-$(eval $(call HostBuild))
-$(eval $(call BuildPackage,librpc))
index 37b91dce7a15cf1a47f0367a72375c0577d9d426..4b54ac495d003cb3f2a81eae05775da5df81ed37 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libtool
 PKG_VERSION:=2.4.6
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/libtool
@@ -31,6 +31,7 @@ define Package/libltdl
   CATEGORY:=Libraries
   TITLE:=A generic dynamic object loading library
   URL:=http://www.gnu.org/software/libtool/
+  ABI_VERSION:=7
 endef
 
 define Build/InstallDev
index 24bc14517f9341e85fc97f2f627d120f68b9daad..ef0e0e6b97125be2cfe49455e48eeccae1a282a5 100644 (file)
@@ -1,13 +1,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libubox
-PKG_RELEASE=2
+PKG_RELEASE=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/libubox.git
-PKG_SOURCE_DATE:=2018-07-25
-PKG_SOURCE_VERSION:=c83a84afbef2b24f960ddeda0b5e2ab01fba6981
-PKG_MIRROR_HASH:=4a9594d2ae3706174d182a21fe815f1d18c20beca6593707cc757994975dc670
+PKG_SOURCE_URL=$(PROJECT_GIT)/libubox.git
+PKG_SOURCE_DATE:=2019-02-27
+PKG_SOURCE_VERSION:=eeef7b50a06bc3c3218d560b4b513b4e7b19127f
+PKG_MIRROR_HASH:=0fa4c1299848717b983eb8b54110c6bd99447ed55f1d056192a181ced3ca32fc
 CMAKE_INSTALL:=1
 
 PKG_LICENSE:=ISC
@@ -27,7 +27,7 @@ define Package/libubox
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=Basic utility library
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=20170601
   DEPENDS:=
 endef
 
index ddb467f65618ab150516aca1ec19394faedc8ded..2e4b11b8bc044f65d32fd4335aec7e68220e6811 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libunwind
 PKG_VERSION:=1.2.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SAVANNAH/$(PKG_NAME)
@@ -33,6 +33,7 @@ define Package/libunwind
   TITLE:=The libunwind project
   URL:=http://www.nongnu.org/libunwind/
   DEPENDS:=@(mips||mipsel||powerpc||i386||x86_64||arm||aarch64)
+  ABI_VERSION:=8
 endef
 
 define Package/libunwind/description
@@ -46,7 +47,7 @@ CONFIGURE_ARGS += \
 
 define Package/libunwind/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libunwin*.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libunwin*.so.* $(1)/usr/lib/
 endef
 
 define Build/InstallDev
index 0dc93941a9a32ca2022a68665dd1fb5828be1aca..5f9b2385c84b9809bc2a5f260325e742a5141c91 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libusb-compat
 PKG_VERSION:=0.1.5
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/libusb
@@ -29,6 +29,7 @@ define Package/libusb-compat
   TITLE:=libusb-0.1 compatibility library
   DEPENDS:=+libusb-1.0
   URL:=http://libusb.wiki.sourceforge.net/
+  ABI_VERSION:=4
 endef
 
 define Package/libusb-compat/description
index 54008212b9692f8a742aea1bcc6d1cdb23d52932..6ce33d3f8624d98dffc3ef4bdcc3d16d9cd3249a 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libusb
 PKG_VERSION:=1.0.22
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=\
@@ -31,6 +31,7 @@ define Package/libusb-1.0
   TITLE:=A library for accessing Linux USB devices
   DEPENDS:=+libpthread +librt
   URL:=http://libusb.info/
+  ABI_VERSION:=0
 endef
 
 define Package/libusb-1.0/description
@@ -49,7 +50,7 @@ endef
 
 define Package/libusb-1.0/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libusb*.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libusb*.so.* $(1)/usr/lib/
 endef
 
 $(eval $(call BuildPackage,libusb-1.0))
index ef33619d88d5f6bfd06dfd004de4620c9afcae62..1ae2f3ce05a4c8790ba4da15733f84bbfc9ab111 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lzo
 PKG_VERSION:=2.10
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.oberhumer.com/opensource/lzo/download/
@@ -28,6 +28,7 @@ define Package/liblzo
   CATEGORY:=Libraries
   TITLE:=A real-time data compression library
   URL:=http://www.oberhumer.com/opensource/lzo/
+  ABI_VERSION:=2
 endef
 
 define Package/liblzo/description
@@ -50,7 +51,7 @@ endef
 
 define Package/liblzo/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/liblzo2.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/liblzo2.so.* $(1)/usr/lib/
 endef
 
 $(eval $(call BuildPackage,liblzo))
index e265cac575a9cb0bb16b24be04b68b46fa08d50f..de91ff20e91a1eb67245dd9f5854fc46b57f7d35 100644 (file)
@@ -8,18 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mbedtls
-PKG_VERSION:=2.14.1
-PKG_RELEASE:=1
+PKG_VERSION:=2.16.0
+PKG_RELEASE:=2
 PKG_USE_MIPS16:=0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-gpl.tgz
 PKG_SOURCE_URL:=https://tls.mbed.org/download/
-PKG_HASH:=baa1121952786f5b2c66c52226a8ca0e05126de920d1756266551df677915b7e
+PKG_HASH:=c8d7a4696287cb9533c455bdd65859106dbdd4472c125194387486e6d4df2799
 
 PKG_BUILD_PARALLEL:=1
 PKG_LICENSE:=GPL-2.0+
 PKG_CPE_ID:=cpe:/a:arm:mbed_tls
 
+PKG_CONFIG_DEPENDS:=CONFIG_LIBMBEDTLS_DEBUG_C
+
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
 
@@ -39,7 +41,21 @@ $(call Package/mbedtls/Default)
   CATEGORY:=Libraries
   SUBMENU:=SSL
   TITLE+= (library)
-  ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
+  ABI_VERSION:=12
+endef
+
+define Package/libmbedtls/config
+config LIBMBEDTLS_DEBUG_C
+       depends on PACKAGE_libmbedtls
+       bool "Enable debug functions"
+       default n
+       help
+        This option enables mbedtls library's debug functions.
+       
+        It increases the uncompressed libmbedtls binary size
+        by around 60 KiB (for an ARMv5 platform).
+       
+        Usually, you don't need this, so don't select this if you're unsure.
 endef
 
 define Package/mbedtls-util
@@ -71,6 +87,17 @@ CMAKE_OPTIONS += \
        -DENABLE_TESTING:Bool=OFF \
        -DENABLE_PROGRAMS:Bool=ON
 
+define Build/Configure
+       $(Build/Configure/Default)
+
+       awk 'BEGIN { rc = 1 } \
+            /#define MBEDTLS_DEBUG_C/ { $$$$0 = "$(if $(CONFIG_LIBMBEDTLS_DEBUG_C),,// )#define MBEDTLS_DEBUG_C"; rc = 0 } \
+            { print } \
+            END { exit(rc) }' $(PKG_BUILD_DIR)/include/mbedtls/config.h \
+            >$(PKG_BUILD_DIR)/include/mbedtls/config.h.new && \
+       mv $(PKG_BUILD_DIR)/include/mbedtls/config.h.new $(PKG_BUILD_DIR)/include/mbedtls/config.h
+endef
+
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/mbedtls $(1)/usr/include/
@@ -81,7 +108,7 @@ endef
 
 define Package/libmbedtls/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so.* $(1)/usr/lib/
 endef
 
 define Package/mbedtls-util/install
index 387d7ffc78e4652a336a55b49adb6037c7a2448c..825d407c6ff987e6dc52fa8f0da6a865516c420c 100644 (file)
@@ -1,6 +1,6 @@
 --- a/include/mbedtls/config.h
 +++ b/include/mbedtls/config.h
-@@ -557,14 +557,14 @@
+@@ -599,14 +599,14 @@
   *
   * Enable Output Feedback mode (OFB) for symmetric ciphers.
   */
@@ -17,7 +17,7 @@
  
  /**
   * \def MBEDTLS_CIPHER_NULL_CIPHER
-@@ -654,19 +654,19 @@
+@@ -696,19 +696,19 @@
   *
   * Comment macros to disable the curve and functions for it
   */
@@ -46,7 +46,7 @@
  
  /**
   * \def MBEDTLS_ECP_NIST_OPTIM
-@@ -768,7 +768,7 @@
+@@ -810,7 +810,7 @@
   *             See dhm.h for more details.
   *
   */
@@ -55,7 +55,7 @@
  
  /**
   * \def MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
-@@ -788,7 +788,7 @@
+@@ -830,7 +830,7 @@
   *      MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
   *      MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA
   */
@@ -64,7 +64,7 @@
  
  /**
   * \def MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
-@@ -813,7 +813,7 @@
+@@ -855,7 +855,7 @@
   *      MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
   *      MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA
   */
@@ -73,7 +73,7 @@
  
  /**
   * \def MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
-@@ -947,7 +947,7 @@
+@@ -989,7 +989,7 @@
   *      MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
   *      MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
   */
@@ -82,7 +82,7 @@
  
  /**
   * \def MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
-@@ -971,7 +971,7 @@
+@@ -1013,7 +1013,7 @@
   *      MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
   *      MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
   */
@@ -91,7 +91,7 @@
  
  /**
   * \def MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
-@@ -1075,7 +1075,7 @@
+@@ -1117,7 +1117,7 @@
   * This option is only useful if both MBEDTLS_SHA256_C and
   * MBEDTLS_SHA512_C are defined. Otherwise the available hash module is used.
   */
  
  /**
   * \def MBEDTLS_ENTROPY_NV_SEED
-@@ -1170,14 +1170,14 @@
+@@ -1212,14 +1212,14 @@
   * Uncomment this macro to disable the use of CRT in RSA.
   *
   */
  
  /**
   * \def MBEDTLS_SHA256_SMALLER
-@@ -1331,7 +1331,7 @@
+@@ -1373,7 +1373,7 @@
   *          configuration of this extension).
   *
   */
  
  /**
   * \def MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
-@@ -1506,7 +1506,7 @@
+@@ -1548,7 +1548,7 @@
   *
   * Comment this macro to disable support for SSL session tickets
   */
  
  /**
   * \def MBEDTLS_SSL_EXPORT_KEYS
-@@ -1536,7 +1536,7 @@
+@@ -1578,7 +1578,7 @@
   *
   * Comment this macro to disable support for truncated HMAC in SSL
   */
  
  /**
   * \def MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT
-@@ -1595,7 +1595,7 @@
+@@ -1637,7 +1637,7 @@
   *
   * Comment this to disable run-time checking and save ROM space
   */
  
  /**
   * \def MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
-@@ -1925,7 +1925,7 @@
+@@ -1967,7 +1967,7 @@
   *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
   *      MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
   */
  
  /**
   * \def MBEDTLS_ARIA_C
-@@ -1991,7 +1991,7 @@
+@@ -2033,7 +2033,7 @@
   * This module enables the AES-CCM ciphersuites, if other requisites are
   * enabled as well.
   */
  
  /**
   * \def MBEDTLS_CERTS_C
-@@ -2003,7 +2003,7 @@
+@@ -2045,7 +2045,7 @@
   *
   * This module is used for testing (ssl_client/server).
   */
  
  /**
   * \def MBEDTLS_CHACHA20_C
-@@ -2078,7 +2078,7 @@
-  *
-  * This module provides debugging functions.
-  */
--#define MBEDTLS_DEBUG_C
-+//#define MBEDTLS_DEBUG_C
- /**
-  * \def MBEDTLS_DES_C
-@@ -2107,7 +2107,7 @@
+@@ -2149,7 +2149,7 @@
   * \warning   DES is considered a weak cipher and its use constitutes a
   *            security risk. We recommend considering stronger ciphers instead.
   */
  
  /**
   * \def MBEDTLS_DHM_C
-@@ -2270,7 +2270,7 @@
+@@ -2312,7 +2312,7 @@
   * This module adds support for the Hashed Message Authentication Code
   * (HMAC)-based key derivation function (HKDF).
   */
  
  /**
   * \def MBEDTLS_HMAC_DRBG_C
-@@ -2580,7 +2580,7 @@
+@@ -2622,7 +2622,7 @@
   *
   * This module enables abstraction of common (libc) functions.
   */
  
  /**
   * \def MBEDTLS_POLY1305_C
-@@ -2601,7 +2601,7 @@
+@@ -2643,7 +2643,7 @@
   * Caller:  library/md.c
   *
   */
  
  /**
   * \def MBEDTLS_RSA_C
-@@ -2708,7 +2708,7 @@
+@@ -2750,7 +2750,7 @@
   *
   * Requires: MBEDTLS_CIPHER_C
   */
  
  /**
   * \def MBEDTLS_SSL_CLI_C
-@@ -2808,7 +2808,7 @@
+@@ -2850,7 +2850,7 @@
   *
   * This module provides run-time version information.
   */
  
  /**
   * \def MBEDTLS_X509_USE_C
-@@ -2918,7 +2918,7 @@
+@@ -2960,7 +2960,7 @@
   * Module:  library/xtea.c
   * Caller:
   */
index 904d3c1551ff6ba0f4651255064fa8cebbb2d838..8c961f30b23d863ef71bebd629c3c3f25741df91 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ncurses
 PKG_VERSION:=6.1
-PKG_RELEASE:=1
+PKG_RELEASE:=4
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -41,7 +41,7 @@ define Package/libncurses
   URL:=http://www.gnu.org/software/ncurses/
   PROVIDES:=libncursesw
   DEPENDS:= +terminfo
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=6
 endef
 
 define Package/libncurses-dev
@@ -76,6 +76,8 @@ CONFIGURE_ARGS += \
        --enable-widec \
        --with-build-cppflags=-D_GNU_SOURCE
 
+HOST_CFLAGS += $(HOST_FPIC)
+
 HOST_CONFIGURE_ARGS += \
        --without-cxx \
        --without-cxx-binding \
@@ -127,8 +129,10 @@ endef
 define Package/libncurses/install
        $(INSTALL_DIR) $(1)/usr/lib
        for lib in ncurses panel menu form; do \
-               $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib$$$${lib}w.so* $(1)/usr/lib/; \
-               ln -s lib$$$${lib}w.so $(1)/usr/lib/lib$$$${lib}.so; \
+               $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib$$$${lib}w.so.* $(1)/usr/lib/; \
+               for so in $(1)/usr/lib/lib$$$${lib}w.so.*; do \
+                       ln -s $$$${so##*/} $$$${so%w.so*}.so$$$${so##*w.so}; \
+               done; \
        done
 endef
 
@@ -146,7 +150,9 @@ endef
 define Build/InstallDev
        $(CP) $(PKG_INSTALL_DIR)/* $(1)
        for lib in ncurses panel menu form; do \
-               ln -s lib$$$${lib}w.so $(1)/usr/lib/lib$$$${lib}.so; \
+               for so in $(1)/usr/lib/lib$$$${lib}w.so*; do \
+                       ln -s $$$${so##*/} $$$${so%w.so*}.so$$$${so##*w.so}; \
+               done; \
        done
        ln -s . $(1)/usr/include/ncursesw
        $(TARGET_CROSS)ar rc $(1)/usr/lib/libtinfo.a
diff --git a/package/libs/ncurses/patches/103-ncurses-ar-determinism.patch b/package/libs/ncurses/patches/103-ncurses-ar-determinism.patch
new file mode 100644 (file)
index 0000000..d4c8f11
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -451,7 +451,7 @@ AC_REQUIRE([CF_PROG_AR])
+ AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
+       cf_cv_ar_flags=unknown
+-      for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
++      for cf_ar_flags in -curvD -curv curv -crv crv -cqv cqv -rv rv
+       do
+               # check if $ARFLAGS already contains this choice
+--- a/configure
++++ b/configure
+@@ -4503,7 +4503,7 @@ if test "${cf_cv_ar_flags+set}" = set; t
+ else
+       cf_cv_ar_flags=unknown
+-      for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
++      for cf_ar_flags in -curvD -curv curv -crv crv -cqv cqv -rv rv
+       do
+               # check if $ARFLAGS already contains this choice
index 19c0367f010fd22ce6780027dab48c036aec699b..f2bc283a8eac2c8736d68bff4b8691f9ca963451 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nettle
 PKG_VERSION:=3.4.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_USE_MIPS16:=0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -30,6 +30,7 @@ define Package/libnettle
   TITLE:=GNU crypto library
   URL:=http://www.lysator.liu.se/~nisse/nettle/
   DEPENDS+= +!LIBNETTLE_MINI:libgmp
+  ABI_VERSION:=6
 endef
 
 define Package/libnettle/config
index bd42db7c3f848ea4673aa17bc2bc51a9003d8c1b..7ebc83042ea8dc22fccad76808b844474ad9b93b 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nghttp2
-PKG_VERSION:=1.35.1
-PKG_RELEASE:=1
+PKG_VERSION:=1.36.0
+PKG_RELEASE:=2
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 
 PKG_SOURCE_URL:=https://github.com/nghttp2/nghttp2/releases/download/v$(PKG_VERSION)
-PKG_HASH:=9b7f5b09c3ca40a46118240bf476a5babf4bd93a1e4fde2337c308c4c5c3263a
+PKG_HASH:=e9bb86157b88eda5a6844a232e039febbb52c1aa44b640acbbfabe729b8287fc
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
@@ -20,6 +20,7 @@ define Package/libnghttp2
   CATEGORY:=Libraries
   TITLE:=Library implementing the framing layer of HTTP/2
   MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
+  ABI_VERSION:=14
 endef
 
 define Package/libnghttp2/description
@@ -39,7 +40,7 @@ endef
 
 define Package/libnghttp2/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libnghttp2.so* $(1)/usr/lib
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libnghttp2.so.* $(1)/usr/lib
 endef
 
 $(eval $(call BuildPackage,libnghttp2))
index c39e28510f002169c67a54df8d3ce1c797e19637..8946463b7f2bf7d1ea3e7209da8ce9a96fcd1160 100644 (file)
 if PACKAGE_libopenssl
 
-config OPENSSL_WITH_EC
+comment "Build Options"
+
+config OPENSSL_OPTIMIZE_SPEED
        bool
-       default y
-       prompt "Enable elliptic curve support"
+       default y if x86_64 || i386
+       prompt "Enable optimization for speed instead of size"
+       select OPENSSL_WITH_ASM
+       help
+               Enabling this option increases code size (around 20%) and
+               performance.  The increase in performance and size depends on the
+               target CPU. EC and AES seem to benefit the most, with EC speed
+               increased by 20%-50% (mipsel & x86).
+               AES-GCM is supposed to be 3x faster on x86. YMMV.
 
-config OPENSSL_WITH_EC2M
-        bool
-        depends on OPENSSL_WITH_EC
-        prompt "Enable ec2m support"
+config OPENSSL_WITH_ASM
+       bool
+       default y if !SMALL_FLASH || !arm
+       prompt "Compile with optimized assembly code"
+       depends on !arc
+       help
+               Disabling this option will reduce code size and performance.
+               The increase in performance and size depends on the target
+               CPU and on the algorithms being optimized.  As of 1.1.0i*:
+
+               Platform  Pkg Inc. Algorithms where assembly is used - ~% Speed Increase
+               aarch64   174K     BN, aes, sha1, sha256, sha512, nist256, poly1305
+               arm       152K     BN, aes, sha1, sha256, sha512, nist256, poly1305
+               i386      183K     BN+147%, aes+300%, rc4+55%, sha1+160%, sha256+114%, sha512+270%, nist256+282%, poly1305+292%
+               mipsel      1.5K   BN+97%, aes+4%, sha1+94%, sha256+60%
+               mips64      3.7K   BN, aes, sha1, sha256, sha512, poly1305
+               powerpc    20K     BN, aes, sha1, sha256, sha512, poly1305
+               x86_64    228K     BN+220%, aes+173%, rc4+38%, sha1+40%, sha256+64%, sha512+31%, nist256+354%, poly1305+228%
 
-config OPENSSL_WITH_SSL3
+               * Only most common algorithms shown. Your mileage may vary.
+                 BN (bignum) performance was measured using RSA sign/verify.
+
+config OPENSSL_WITH_SSE2
        bool
-       default n
-       prompt "Enable sslv3 support"
+       default y if !TARGET_x86_legacy && !TARGET_x86_geode
+       prompt "Enable use of x86 SSE2 instructions"
+       depends on OPENSSL_WITH_ASM && i386
+       help
+               Use of SSE2 instructions greatly increase performance (up to
+               3x faster) with a minimum (~0.2%, or 23KB) increase in package
+               size, but it will bring no benefit if your hardware does not
+               support them, such as Geode GX and LX.  In this case you may
+               save 23KB by saying yes here.  AMD Geode NX, and Intel
+               Pentium 4 and above support SSE2.
 
 config OPENSSL_WITH_DEPRECATED
        bool
        default y
-       prompt "Include deprecated APIs"
+       prompt "Include deprecated APIs (See help for a list of packages that need this)"
+       help
+               Since openssl 1.1.x is still new to librecmc, some packages
+               requiring this option do not list it as a requirement yet:
+                * freeswitch-stable, freeswitch, python, python3, squid.
 
 config OPENSSL_NO_DEPRECATED
        bool
        default !OPENSSL_WITH_DEPRECATED
 
-config OPENSSL_WITH_DTLS
+config OPENSSL_WITH_ERROR_MESSAGES
        bool
-       default n
-       prompt "Enable DTLS support"
+       default y if !SMALL_FLASH && !LOW_MEMORY_FOOTPRINT
+       prompt "Include error messages"
+       help
+               This option aids debugging, but increases package size and
+               memory usage.
 
-config OPENSSL_WITH_COMPRESSION
+comment "Protocol Support"
+
+config OPENSSL_WITH_TLS13
        bool
-       default n
-       prompt "Enable compression support"
+       default y
+       prompt "Enable support for TLS 1.3"
+       select OPENSSL_WITH_EC
+       help
+               TLS 1.3 is the newest version of the TLS specification.
+               It aims:
+                * to increase the overall security of the protocol,
+                  removing outdated algorithms, and encrypting more of the
+                  protocol;
+                * to increase performance by reducing the number of round-trips
+                  when performing a full handshake.
+               It increases package size by ~4KB.
+
+config OPENSSL_WITH_DTLS
+       bool
+       prompt "Enable DTLS support"
+       help
+               Datagram Transport Layer Security (DTLS) provides TLS-like security
+               for datagram-based (UDP, DCCP, CAPWAP, SCTP & SRTP) applications.
 
 config OPENSSL_WITH_NPN
        bool
        default y
        prompt "Enable NPN support"
+       help
+               NPN is a TLS extension, obsoleted and replaced with ALPN,
+               used to negotiate SPDY, and HTTP/2.
+
+config OPENSSL_WITH_SRP
+       bool
+       default y
+       prompt "Enable SRP support"
+       help
+               The Secure Remote Password protocol (SRP) is an augmented
+               password-authenticated key agreement (PAKE) protocol, specifically
+               designed to work around existing patents.
+
+config OPENSSL_WITH_CMS
+       bool
+       default y
+       prompt "Enable CMS (RFC 5652) support"
+       help
+               Cryptographic Message Syntax (CMS) is used to digitally sign,
+               digest, authenticate, or encrypt arbitrary message content.
+
+comment "Algorithm Selection"
+
+config OPENSSL_WITH_EC
+       bool
+       default y
+       prompt "Enable elliptic curve support"
+       help
+               Elliptic-curve cryptography (ECC) is an approach to public-key
+               cryptography based on the algebraic structure of elliptic curves
+               over finite fields. ECC requires smaller keys compared to non-ECC
+               cryptography to provide equivalent security.
+
+config OPENSSL_WITH_EC2M
+       bool
+       depends on OPENSSL_WITH_EC
+       prompt "Enable ec2m support"
+       help
+               This option enables the more efficient, yet less common, binary
+               field elliptic curves.
+
+config OPENSSL_WITH_CHACHA_POLY1305
+       bool
+       default y
+       prompt "Enable ChaCha20-Poly1305 ciphersuite support"
+       help
+               ChaCha20-Poly1305 is an AEAD ciphersuite with 256-bit keys,
+               combining ChaCha stream cipher with Poly1305 MAC.
+               It is 3x faster than AES, when not using a CPU with AES-specific
+               instructions, as is the case of most embedded devices.
+
+config OPENSSL_PREFER_CHACHA_OVER_GCM
+       bool
+       default y if !x86_64 && !aarch64
+       prompt "Prefer ChaCha20-Poly1305 over AES-GCM by default"
+       depends on OPENSSL_WITH_CHACHA_POLY1305
+       help
+               The default openssl preference is for AES-GCM before ChaCha, but
+               that takes into account AES-NI capable chips.  It is not the
+               case with most embedded chips, so it may be better to invert
+               that preference.  This is just for the default case. The
+               application can always override this.
 
 config OPENSSL_WITH_PSK
        bool
        default y
        prompt "Enable PSK support"
+       help
+               Build support for Pre-Shared Key based cipher suites.
 
-config OPENSSL_WITH_SRP
+comment "Less commonly used build options"
+
+config OPENSSL_WITH_ARIA
        bool
-       default y
-       prompt "Enable SRP support"
+       prompt "Enable ARIA support"
+       help
+               ARIA is a block cipher developed in South Korea, based on AES.
 
-config OPENSSL_ENGINE_DIGEST
+config OPENSSL_WITH_CAMELLIA
        bool
-       depends on OPENSSL_ENGINE_CRYPTO
-       prompt "Digests acceleration support"
+       prompt "Enable Camellia cipher support"
+       help
+               Camellia is a bock cipher with security levels and processing
+               abilities comparable to AES.
 
-config OPENSSL_HARDWARE_SUPPORT
+config OPENSSL_WITH_IDEA
        bool
-       default n
-       prompt "Enable hardware support"
+       prompt "Enable IDEA cipher support"
+       help
+               IDEA is a block cipher with 128-bit keys.
 
-config OPENSSL_OPTIMIZE_SPEED
+config OPENSSL_WITH_SEED
        bool
-       default n
-       prompt "Enable optimization for speed instead of size"
+       prompt "Enable SEED cipher support"
+       help
+               SEED is a block cipher with 128-bit keys broadly used in
+               South Korea, but seldom found elsewhere.
 
-endif
+config OPENSSL_WITH_SM234
+       bool
+       prompt "Enable SM2/3/4 algorithms support"
+       help
+               These algorithms are a set of "Commercial Cryptography"
+               algorithms approved for use in China.
+                 * SM2 is an EC algorithm equivalent to ECDSA P-256
+                 * SM3 is a hash function equivalent to SHA-256
+                 * SM4 is a 128-block cipher equivalent to AES-128
+
+config OPENSSL_WITH_BLAKE2
+       bool
+       prompt "Enable BLAKE2 digest support"
+       help
+               BLAKE2 is a cryptographic hash function based on the ChaCha
+               stream cipher.
+
+config OPENSSL_WITH_MDC2
+       bool
+       prompt "Enable MDC2 digest support"
+
+config OPENSSL_WITH_WHIRLPOOL
+       bool
+       prompt "Enable Whirlpool digest support"
+
+config OPENSSL_WITH_COMPRESSION
+       bool
+       prompt "Enable compression support"
+       help
+               TLS compression is not recommended, as it is deemed insecure.
+               The CRIME attack exploits this weakness.
+               Even with this option turned on, it is disabled by default, and the
+               application must explicitly turn it on.
+
+config OPENSSL_WITH_RFC3779
+       bool
+       prompt "Enable RFC3779 support (BGP)"
+       help
+               RFC 3779 defines two X.509 v3 certificate extensions.  The first
+               binds a list of IP address blocks, or prefixes, to the subject of a
+               certificate.  The second binds a list of autonomous system
+               identifiers to the subject of a certificate.  These extensions may be
+               used to convey the authorization of the subject to use the IP
+               addresses and autonomous system identifiers contained in the
+               extensions.
+
+comment "Engine/Hardware Support"
+
+config OPENSSL_ENGINE
+       bool "Enable engine support"
+       help
+               This enables alternative cryptography implementations,
+               most commonly for interfacing with external crypto devices,
+               or supporting new/alternative ciphers and digests.
+               Note that you need to enable KERNEL_AIO to be able to build the
+               afalg engine package.
 
 config OPENSSL_ENGINE_CRYPTO
        bool
-       select OPENSSL_HARDWARE_SUPPORT
-       prompt "Crypto acceleration support" if PACKAGE_libopenssl
+       select OPENSSL_ENGINE
+       select PACKAGE_kmod-cryptodev
+       select PACKAGE_libopenssl-conf
+       prompt "Acceleration support through /dev/crypto"
+       help
+               This enables use of hardware acceleration through OpenBSD
+               Cryptodev API (/dev/crypto) interface.
+               You must install kmod-cryptodev (under Kernel modules, Cryptographic
+               API modules) for /dev/crypto to show up and use hardware
+               acceleration; otherwise it falls back to software.
+
+config OPENSSL_WITH_ASYNC
+       bool
+       prompt "Enable asynchronous jobs support"
+       depends on OPENSSL_ENGINE && USE_GLIBC
+       help
+               Enables async-aware applications to be able to use OpenSSL to
+               initiate crypto operations asynchronously. In order to work
+               this will require the presence of an async capable engine.
+
+config OPENSSL_WITH_GOST
+       bool
+       prompt "Prepare library for GOST engine"
+       depends on OPENSSL_ENGINE
+       help
+               This option prepares the library to accept engine support
+               for Russian GOST crypto algorithms.
+               The gost engine is not included in standard librecmc feeds.
+               To build such engine yourself, see:
+               https://github.com/gost-engine/engine
+
+endif
index 16264666d781a07f2913a0a8c85c5515ffd0bdd2..7cde714f04a9b4d3aeb96b325d428493b8edf7ef 100644 (file)
@@ -8,41 +8,58 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openssl
-PKG_BASE:=1.0.2
-PKG_BUGFIX:=p
+PKG_BASE:=1.1.1
+PKG_BUGFIX:=b
 PKG_VERSION:=$(PKG_BASE)$(PKG_BUGFIX)
 PKG_RELEASE:=1
 PKG_USE_MIPS16:=0
+ENGINES_DIR=engines-1.1
 
 PKG_BUILD_PARALLEL:=0
-
+PKG_BUILD_DEPENDS:=cryptodev-linux
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= \
        http://ftp.fi.muni.cz/pub/openssl/source/ \
        http://ftp.linux.hr/pub/openssl/source/ \
-       http://gd.tuwien.ac.at/infosys/security/openssl/source/ \
+       ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/ \
        http://www.openssl.org/source/ \
        http://www.openssl.org/source/old/$(PKG_BASE)/
-PKG_HASH:=50a98e07b1a89eb8f6a99477f262df71c6fa7bef77df4dc83025a2845c827d00
+PKG_HASH:=5c557b023230413dfb0756f3137a13e6d726838ccd1430888ad15bfb2b43ea4b
 
 PKG_LICENSE:=OpenSSL
 PKG_LICENSE_FILES:=LICENSE
 PKG_CPE_ID:=cpe:/a:openssl:openssl
 PKG_CONFIG_DEPENDS:= \
+       CONFIG_OPENSSL_ENGINE \
        CONFIG_OPENSSL_ENGINE_CRYPTO \
-       CONFIG_OPENSSL_ENGINE_DIGEST \
-       CONFIG_OPENSSL_WITH_EC \
-       CONFIG_OPENSSL_WITH_EC2M \
-       CONFIG_OPENSSL_WITH_SSL3 \
-       CONFIG_OPENSSL_HARDWARE_SUPPORT \
        CONFIG_OPENSSL_NO_DEPRECATED \
-       CONFIG_OPENSSL_WITH_DTLS \
+       CONFIG_OPENSSL_OPTIMIZE_SPEED \
+       CONFIG_OPENSSL_PREFER_CHACHA_OVER_GCM \
+       CONFIG_OPENSSL_WITH_ARIA \
+       CONFIG_OPENSSL_WITH_ASM \
+       CONFIG_OPENSSL_WITH_ASYNC \
+       CONFIG_OPENSSL_WITH_BLAKE2 \
+       CONFIG_OPENSSL_WITH_CAMELLIA \
+       CONFIG_OPENSSL_WITH_CHACHA_POLY1305 \
+       CONFIG_OPENSSL_WITH_CMS \
        CONFIG_OPENSSL_WITH_COMPRESSION \
+       CONFIG_OPENSSL_WITH_DTLS \
+       CONFIG_OPENSSL_WITH_EC \
+       CONFIG_OPENSSL_WITH_EC2M \
+       CONFIG_OPENSSL_WITH_ERROR_MESSAGES \
+       CONFIG_OPENSSL_WITH_GOST \
+       CONFIG_OPENSSL_WITH_IDEA \
+       CONFIG_OPENSSL_WITH_MDC2 \
        CONFIG_OPENSSL_WITH_NPN \
        CONFIG_OPENSSL_WITH_PSK \
+       CONFIG_OPENSSL_WITH_RFC3779 \
+       CONFIG_OPENSSL_WITH_SEED \
+       CONFIG_OPENSSL_WITH_SM234 \
        CONFIG_OPENSSL_WITH_SRP \
-       CONFIG_OPENSSL_OPTIMIZE_SPEED
+       CONFIG_OPENSSL_WITH_SSE2 \
+       CONFIG_OPENSSL_WITH_TLS13 \
+       CONFIG_OPENSSL_WITH_WHIRLPOOL
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -54,6 +71,8 @@ endif
 define Package/openssl/Default
   TITLE:=Open source SSL toolkit
   URL:=http://www.openssl.org/
+  SECTION:=libs
+  CATEGORY:=Libraries
 endef
 
 define Package/libopenssl/config
@@ -62,19 +81,17 @@ endef
 
 define Package/openssl/Default/description
 The OpenSSL Project is a collaborative effort to develop a robust,
-commercial-grade, full-featured, and Open Source toolkit implementing the Secure
-Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well
-as a full-strength general purpose cryptography library.
+commercial-grade, full-featured, and Open Source toolkit implementing the
+Transport Layer Security (TLS) protocol as well as a full-strength
+general-purpose cryptography library.
 endef
 
 define Package/libopenssl
 $(call Package/openssl/Default)
-  SECTION:=libs
   SUBMENU:=SSL
-  CATEGORY:=Libraries
   DEPENDS:=+OPENSSL_WITH_COMPRESSION:zlib
   TITLE+= (libraries)
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=1.1
   MENU:=1
 endef
 
@@ -87,31 +104,78 @@ define Package/openssl-util
   $(call Package/openssl/Default)
   SECTION:=utils
   CATEGORY:=Utilities
-  DEPENDS:=+libopenssl
+  DEPENDS:=+libopenssl +libopenssl-conf
   TITLE+= (utility)
 endef
 
-define Package/openssl-util/conffiles
+define Package/openssl-util/description
+$(call Package/openssl/Default/description)
+This package contains the OpenSSL command-line utility.
+endef
+
+define Package/libopenssl-conf
+  $(call Package/openssl/Default)
+  SUBMENU:=SSL
+  TITLE:=/etc/ssl/openssl.cnf config file
+  DEPENDS:=libopenssl
+endef
+
+define Package/libopenssl-conf/conffiles
 /etc/ssl/openssl.cnf
 endef
 
-define Package/openssl-util/description
+define Package/libopenssl-conf/description
 $(call Package/openssl/Default/description)
-This package contains the OpenSSL command-line utility.
+This package installs the OpenSSL configuration file /etc/ssl/openssl.cnf.
+endef
+
+define Package/libopenssl-afalg
+  $(call Package/openssl/Default)
+  SUBMENU:=SSL
+  TITLE:=AFALG hardware acceleration engine
+  DEPENDS:=libopenssl @OPENSSL_ENGINE @KERNEL_AIO @!LINUX_3_18 +kmod-crypto-user \
+          +libopenssl-conf
 endef
 
+define Package/libopenssl-afalg/description
+This package adds an engine that enables hardware acceleration
+through the AF_ALG kernel interface.
+To use it, you need to configure the engine in /etc/ssl/openssl.cnf
+See https://www.openssl.org/docs/man1.1.1/man5/config.html#Engine-Configuration-Module
+The engine_id is "afalg"
+endef
 
-OPENSSL_NO_CIPHERS:= no-idea no-md2 no-mdc2 no-rc5 no-sha0 no-camellia no-krb5 \
- no-whrlpool no-whirlpool no-seed no-jpake
-OPENSSL_OPTIONS:= shared no-err no-sse2 no-ssl2 no-ssl2-method no-heartbeats
+define Package/libopenssl-padlock
+  $(call Package/openssl/Default)
+  SUBMENU:=SSL
+  TITLE:=VIA Padlock hardware acceleration engine
+  DEPENDS:=libopenssl @OPENSSL_ENGINE @TARGET_x86 +kmod-crypto-hw-padlock \
+          +libopenssl-conf
+endef
 
-ifdef CONFIG_OPENSSL_ENGINE_CRYPTO
-  OPENSSL_OPTIONS += -DHAVE_CRYPTODEV
-  ifdef CONFIG_OPENSSL_ENGINE_DIGEST
-    OPENSSL_OPTIONS += -DUSE_CRYPTODEV_DIGESTS
-  endif
+define Package/libopenssl-padlock/description
+This package adds an engine that enables VIA Padlock hardware acceleration.
+To use it, you need to configure it in /etc/ssl/openssl.cnf.
+See https://www.openssl.org/docs/man1.1.1/man5/config.html#Engine-Configuration-Module
+The engine_id is "padlock"
+endef
+
+OPENSSL_OPTIONS:= shared
+
+ifndef CONFIG_OPENSSL_WITH_BLAKE2
+  OPENSSL_OPTIONS += no-blake2
+endif
+
+ifndef CONFIG_OPENSSL_WITH_CHACHA_POLY1305
+  OPENSSL_OPTIONS += no-chacha no-poly1305
 else
-  OPENSSL_OPTIONS += no-engines
+  ifdef CONFIG_OPENSSL_PREFER_CHACHA_OVER_GCM
+    OPENSSL_OPTIONS += -DOPENSSL_PREFER_CHACHA_OVER_GCM
+  endif
+endif
+
+ifndef CONFIG_OPENSSL_WITH_ASYNC
+  OPENSSL_OPTIONS += no-async
 endif
 
 ifndef CONFIG_OPENSSL_WITH_EC
@@ -122,18 +186,78 @@ ifndef CONFIG_OPENSSL_WITH_EC2M
   OPENSSL_OPTIONS += no-ec2m
 endif
 
-ifndef CONFIG_OPENSSL_WITH_SSL3
-  OPENSSL_OPTIONS += no-ssl3 no-ssl3-method
+ifndef CONFIG_OPENSSL_WITH_ERROR_MESSAGES
+  OPENSSL_OPTIONS += no-err
+endif
+
+ifndef CONFIG_OPENSSL_WITH_TLS13
+  OPENSSL_OPTIONS += no-tls1_3
+endif
+
+ifndef CONFIG_OPENSSL_WITH_ARIA
+  OPENSSL_OPTIONS += no-aria
+endif
+
+ifndef CONFIG_OPENSSL_WITH_SM234
+  OPENSSL_OPTIONS += no-sm2 no-sm3 no-sm4
+endif
+
+ifndef CONFIG_OPENSSL_WITH_CAMELLIA
+  OPENSSL_OPTIONS += no-camellia
+endif
+
+ifndef CONFIG_OPENSSL_WITH_IDEA
+  OPENSSL_OPTIONS += no-idea
+endif
+
+ifndef CONFIG_OPENSSL_WITH_SEED
+  OPENSSL_OPTIONS += no-seed
+endif
+
+ifndef CONFIG_OPENSSL_WITH_MDC2
+  OPENSSL_OPTIONS += no-mdc2
+endif
+
+ifndef CONFIG_OPENSSL_WITH_WHIRLPOOL
+  OPENSSL_OPTIONS += no-whirlpool
+endif
+
+ifndef CONFIG_OPENSSL_WITH_CMS
+  OPENSSL_OPTIONS += no-cms
 endif
 
-ifndef CONFIG_OPENSSL_HARDWARE_SUPPORT
-  OPENSSL_OPTIONS += no-hw
+ifndef CONFIG_OPENSSL_WITH_RFC3779
+  OPENSSL_OPTIONS += no-rfc3779
 endif
 
 ifdef CONFIG_OPENSSL_NO_DEPRECATED
   OPENSSL_OPTIONS += no-deprecated
 endif
 
+ifeq ($(CONFIG_OPENSSL_OPTIMIZE_SPEED),y)
+  TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS)) -O3
+else
+  OPENSSL_OPTIONS += -DOPENSSL_SMALL_FOOTPRINT
+endif
+
+ifdef CONFIG_OPENSSL_ENGINE
+  ifdef CONFIG_OPENSSL_ENGINE_CRYPTO
+    OPENSSL_OPTIONS += enable-devcryptoeng
+  endif
+  ifndef CONFIG_PACKAGE_libopenssl-afalg
+    OPENSSL_OPTIONS += no-afalgeng
+  endif
+  ifndef CONFIG_PACKAGE_libopenssl-padlock
+    OPENSSL_OPTIONS += no-hw-padlock
+  endif
+else
+  OPENSSL_OPTIONS += no-engine
+endif
+
+ifndef CONFIG_OPENSSL_WITH_GOST
+  OPENSSL_OPTIONS += no-gost
+endif
+
 ifndef CONFIG_OPENSSL_WITH_DTLS
   OPENSSL_OPTIONS += no-dtls
 endif
@@ -156,88 +280,50 @@ ifndef CONFIG_OPENSSL_WITH_SRP
   OPENSSL_OPTIONS += no-srp
 endif
 
-ifeq ($(CONFIG_OPENSSL_OPTIMIZE_SPEED),y)
-  TARGET_CFLAGS := $(filter-out -Os,$(TARGET_CFLAGS)) -O3
+ifndef CONFIG_OPENSSL_WITH_ASM
+  OPENSSL_OPTIONS += no-asm
 endif
 
-ifeq ($(CONFIG_x86_64),y)
-  OPENSSL_TARGET:=linux-x86_64-librecmc
-  OPENSSL_MAKEFLAGS += LIBDIR=lib
-else
-  OPENSSL_OPTIONS+=no-sse2
-  ifeq ($(CONFIG_mips)$(CONFIG_mipsel),y)
-    OPENSSL_TARGET:=linux-mips-librecmc
-  else ifeq ($(CONFIG_aarch64),y)
-    OPENSSL_TARGET:=linux-aarch64-librecmc
-  else ifeq ($(CONFIG_arm)$(CONFIG_armeb),y)
-    OPENSSL_TARGET:=linux-armv4-librecmc
-  else
-    OPENSSL_TARGET:=linux-generic-librecmc
-    OPENSSL_OPTIONS+=no-perlasm
+ifdef CONFIG_i386
+  ifndef CONFIG_OPENSSL_WITH_SSE2
+    OPENSSL_OPTIONS += no-sse2
   endif
 endif
 
+OPENSSL_TARGET:=linux-$(call qstrip,$(CONFIG_ARCH))-librecmc
+
 STAMP_CONFIGURED := $(STAMP_CONFIGURED)_$(shell echo $(OPENSSL_OPTIONS) | mkhash md5)
 
 define Build/Configure
-       [ -f $(STAMP_CONFIGURED) ] || { \
-               rm -f $(PKG_BUILD_DIR)/*.so.* $(PKG_BUILD_DIR)/*.a; \
-               find $(PKG_BUILD_DIR) -name \*.o | xargs rm -f; \
-       }
        (cd $(PKG_BUILD_DIR); \
                ./Configure $(OPENSSL_TARGET) \
                        --prefix=/usr \
+                       --libdir=lib \
                        --openssldir=/etc/ssl \
                        $(TARGET_CPPFLAGS) \
-                       $(TARGET_LDFLAGS) -ldl \
-                       $(if $(CONFIG_OPENSSL_OPTIMIZE_SPEED),,-DOPENSSL_SMALL_FOOTPRINT) \
-                       $(OPENSSL_NO_CIPHERS) \
-                       $(OPENSSL_OPTIONS) \
+                       $(TARGET_LDFLAGS) \
+                       $(OPENSSL_OPTIONS) && \
+               { [ -f $(STAMP_CONFIGURED) ] || make clean; } \
        )
-       +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
-               CROSS_COMPILE="$(TARGET_CROSS)" \
-               MAKEDEPPROG="$(TARGET_CROSS)gcc" \
-               LIBRECMC_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \
-               $(OPENSSL_MAKEFLAGS) \
-               depend
 endef
 
-TARGET_CFLAGS += $(FPIC) -I$(CURDIR)/include -ffunction-sections -fdata-sections
+TARGET_CFLAGS += $(FPIC) -ffunction-sections -fdata-sections
 TARGET_LDFLAGS += -Wl,--gc-sections
 
 define Build/Compile
        +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
                CROSS_COMPILE="$(TARGET_CROSS)" \
                CC="$(TARGET_CC)" \
-               ASFLAGS="$(TARGET_ASFLAGS) -I$(PKG_BUILD_DIR)/crypto -c" \
-               AR="$(TARGET_CROSS)ar r" \
-               RANLIB="$(TARGET_CROSS)ranlib" \
+               SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
                LIBRECMC_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \
                $(OPENSSL_MAKEFLAGS) \
                all
-       +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
-               CROSS_COMPILE="$(TARGET_CROSS)" \
-               CC="$(TARGET_CC)" \
-               ASFLAGS="$(TARGET_ASFLAGS) -I$(PKG_BUILD_DIR)/crypto -c" \
-               AR="$(TARGET_CROSS)ar r" \
-               RANLIB="$(TARGET_CROSS)ranlib" \
-               LIBRECMC_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \
-               $(OPENSSL_MAKEFLAGS) \
-               build-shared
-       # Work around openssl build bug to link libssl.so with libcrypto.so.
-       -rm $(PKG_BUILD_DIR)/libssl.so.*.*.*
-       +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
-               CROSS_COMPILE="$(TARGET_CROSS)" \
-               CC="$(TARGET_CC)" \
-               LIBRECMC_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \
-               $(OPENSSL_MAKEFLAGS) \
-               do_linux-shared
        $(MAKE) -C $(PKG_BUILD_DIR) \
                CROSS_COMPILE="$(TARGET_CROSS)" \
                CC="$(TARGET_CC)" \
-               INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
                $(OPENSSL_MAKEFLAGS) \
-               install
+               install_sw install_ssldirs
 endef
 
 define Build/InstallDev
@@ -251,20 +337,37 @@ define Build/InstallDev
 endef
 
 define Package/libopenssl/install
+       $(INSTALL_DIR) $(1)/etc/ssl/certs
+       $(INSTALL_DIR) $(1)/etc/ssl/private
+       chmod 0700 $(1)/etc/ssl/private
        $(INSTALL_DIR) $(1)/usr/lib
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libcrypto.so.* $(1)/usr/lib/
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libssl.so.* $(1)/usr/lib/
+       $(if $(CONFIG_OPENSSL_ENGINE),$(INSTALL_DIR) $(1)/usr/lib/$(ENGINES_DIR))
 endef
 
-define Package/openssl-util/install
+define Package/libopenssl-conf/install
        $(INSTALL_DIR) $(1)/etc/ssl
        $(CP) $(PKG_INSTALL_DIR)/etc/ssl/openssl.cnf $(1)/etc/ssl/
-       $(INSTALL_DIR) $(1)/etc/ssl/certs
-       $(INSTALL_DIR) $(1)/etc/ssl/private
-       chmod 0700 $(1)/etc/ssl/private
+endef
+
+define Package/openssl-util/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/openssl $(1)/usr/bin/
 endef
 
+define Package/libopenssl-afalg/install
+       $(INSTALL_DIR) $(1)/usr/lib/$(ENGINES_DIR)
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/$(ENGINES_DIR)/afalg.so $(1)/usr/lib/$(ENGINES_DIR)
+endef
+
+define Package/libopenssl-padlock/install
+       $(INSTALL_DIR) $(1)/usr/lib/$(ENGINES_DIR)
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/$(ENGINES_DIR)/*padlock.so $(1)/usr/lib/$(ENGINES_DIR)
+endef
+
 $(eval $(call BuildPackage,libopenssl))
+$(eval $(call BuildPackage,libopenssl-conf))
+$(eval $(call BuildPackage,libopenssl-afalg))
+$(eval $(call BuildPackage,libopenssl-padlock))
 $(eval $(call BuildPackage,openssl-util))
diff --git a/package/libs/openssl/include/crypto/cryptodev.h b/package/libs/openssl/include/crypto/cryptodev.h
deleted file mode 100644 (file)
index 7fb9c7d..0000000
+++ /dev/null
@@ -1,292 +0,0 @@
-/* This is a source compatible implementation with the original API of
- * cryptodev by Angelos D. Keromytis, found at openbsd cryptodev.h.
- * Placed under public domain */
-
-#ifndef L_CRYPTODEV_H
-#define L_CRYPTODEV_H
-
-#include <linux/types.h>
-#ifndef __KERNEL__
-#define __user
-#endif
-
-/* API extensions for linux */
-#define CRYPTO_HMAC_MAX_KEY_LEN                512
-#define CRYPTO_CIPHER_MAX_KEY_LEN      64
-
-/* All the supported algorithms
- */
-enum cryptodev_crypto_op_t {
-       CRYPTO_DES_CBC = 1,
-       CRYPTO_3DES_CBC = 2,
-       CRYPTO_BLF_CBC = 3,
-       CRYPTO_CAST_CBC = 4,
-       CRYPTO_SKIPJACK_CBC = 5,
-       CRYPTO_MD5_HMAC = 6,
-       CRYPTO_SHA1_HMAC = 7,
-       CRYPTO_RIPEMD160_HMAC = 8,
-       CRYPTO_MD5_KPDK = 9,
-       CRYPTO_SHA1_KPDK = 10,
-       CRYPTO_RIJNDAEL128_CBC = 11,
-       CRYPTO_AES_CBC = CRYPTO_RIJNDAEL128_CBC,
-       CRYPTO_ARC4 = 12,
-       CRYPTO_MD5 = 13,
-       CRYPTO_SHA1 = 14,
-       CRYPTO_DEFLATE_COMP = 15,
-       CRYPTO_NULL = 16,
-       CRYPTO_LZS_COMP = 17,
-       CRYPTO_SHA2_256_HMAC = 18,
-       CRYPTO_SHA2_384_HMAC = 19,
-       CRYPTO_SHA2_512_HMAC = 20,
-       CRYPTO_AES_CTR = 21,
-       CRYPTO_AES_XTS = 22,
-       CRYPTO_AES_ECB = 23,
-       CRYPTO_AES_GCM = 50,
-
-       CRYPTO_CAMELLIA_CBC = 101,
-       CRYPTO_RIPEMD160,
-       CRYPTO_SHA2_224,
-       CRYPTO_SHA2_256,
-       CRYPTO_SHA2_384,
-       CRYPTO_SHA2_512,
-       CRYPTO_SHA2_224_HMAC,
-       CRYPTO_ALGORITHM_ALL, /* Keep updated - see below */
-};
-
-#define        CRYPTO_ALGORITHM_MAX    (CRYPTO_ALGORITHM_ALL - 1)
-
-/* Values for ciphers */
-#define DES_BLOCK_LEN          8
-#define DES3_BLOCK_LEN         8
-#define RIJNDAEL128_BLOCK_LEN  16
-#define AES_BLOCK_LEN          RIJNDAEL128_BLOCK_LEN
-#define CAMELLIA_BLOCK_LEN      16
-#define BLOWFISH_BLOCK_LEN     8
-#define SKIPJACK_BLOCK_LEN     8
-#define CAST128_BLOCK_LEN      8
-
-/* the maximum of the above */
-#define EALG_MAX_BLOCK_LEN     16
-
-/* Values for hashes/MAC */
-#define AALG_MAX_RESULT_LEN            64
-
-/* maximum length of verbose alg names (depends on CRYPTO_MAX_ALG_NAME) */
-#define CRYPTODEV_MAX_ALG_NAME         64
-
-#define HASH_MAX_LEN 64
-
-/* input of CIOCGSESSION */
-struct session_op {
-       /* Specify either cipher or mac
-        */
-       __u32   cipher;         /* cryptodev_crypto_op_t */
-       __u32   mac;            /* cryptodev_crypto_op_t */
-
-       __u32   keylen;
-       __u8    __user *key;
-       __u32   mackeylen;
-       __u8    __user *mackey;
-
-       __u32   ses;            /* session identifier */
-};
-
-struct session_info_op {
-       __u32 ses;              /* session identifier */
-
-       /* verbose names for the requested ciphers */
-       struct alg_info {
-               char cra_name[CRYPTODEV_MAX_ALG_NAME];
-               char cra_driver_name[CRYPTODEV_MAX_ALG_NAME];
-       } cipher_info, hash_info;
-
-       __u16   alignmask;      /* alignment constraints */
-       __u32   flags;          /* SIOP_FLAGS_* */
-};
-
-/* If this flag is set then this algorithm uses
- * a driver only available in kernel (software drivers,
- * or drivers based on instruction sets do not set this flag).
- *
- * If multiple algorithms are involved (as in AEAD case), then
- * if one of them is kernel-driver-only this flag will be set.
- */
-#define SIOP_FLAG_KERNEL_DRIVER_ONLY 1
-
-#define        COP_ENCRYPT     0
-#define COP_DECRYPT    1
-
-/* input of CIOCCRYPT */
-struct crypt_op {
-       __u32   ses;            /* session identifier */
-       __u16   op;             /* COP_ENCRYPT or COP_DECRYPT */
-       __u16   flags;          /* see COP_FLAG_* */
-       __u32   len;            /* length of source data */
-       __u8    __user *src;    /* source data */
-       __u8    __user *dst;    /* pointer to output data */
-       /* pointer to output data for hash/MAC operations */
-       __u8    __user *mac;
-       /* initialization vector for encryption operations */
-       __u8    __user *iv;
-};
-
-/* input of CIOCAUTHCRYPT */
-struct crypt_auth_op {
-       __u32   ses;            /* session identifier */
-       __u16   op;             /* COP_ENCRYPT or COP_DECRYPT */
-       __u16   flags;          /* see COP_FLAG_AEAD_* */
-       __u32   len;            /* length of source data */
-       __u32   auth_len;       /* length of auth data */
-       __u8    __user *auth_src;       /* authenticated-only data */
-
-       /* The current implementation is more efficient if data are
-        * encrypted in-place (src==dst). */
-       __u8    __user *src;    /* data to be encrypted and authenticated */
-       __u8    __user *dst;    /* pointer to output data. Must have
-                                * space for tag. For TLS this should be at least 
-                                * len + tag_size + block_size for padding */
-
-       __u8    __user *tag;    /* where the tag will be copied to. TLS mode
-                                 * doesn't use that as tag is copied to dst.
-                                 * SRTP mode copies tag there. */
-       __u32   tag_len;        /* the length of the tag. Use zero for digest size or max tag. */
-
-       /* initialization vector for encryption operations */
-       __u8    __user *iv;
-       __u32   iv_len;
-};
-
-/* In plain AEAD mode the following are required:
- *  flags   : 0
- *  iv      : the initialization vector (12 bytes)
- *  auth_len: the length of the data to be authenticated
- *  auth_src: the data to be authenticated
- *  len     : length of data to be encrypted
- *  src     : the data to be encrypted
- *  dst     : space to hold encrypted data. It must have
- *            at least a size of len + tag_size.
- *  tag_size: the size of the desired authentication tag or zero to use
- *            the maximum tag output.
- *
- * Note tag isn't being used because the Linux AEAD interface
- * copies the tag just after data.
- */
-
-/* In TLS mode (used for CBC ciphers that required padding) 
- * the following are required:
- *  flags   : COP_FLAG_AEAD_TLS_TYPE
- *  iv      : the initialization vector
- *  auth_len: the length of the data to be authenticated only
- *  len     : length of data to be encrypted
- *  auth_src: the data to be authenticated
- *  src     : the data to be encrypted
- *  dst     : space to hold encrypted data (preferably in-place). It must have
- *            at least a size of len + tag_size + blocksize.
- *  tag_size: the size of the desired authentication tag or zero to use
- *            the default mac output.
- *
- * Note that the padding used is the minimum padding.
- */
-
-/* In SRTP mode the following are required:
- *  flags   : COP_FLAG_AEAD_SRTP_TYPE
- *  iv      : the initialization vector
- *  auth_len: the length of the data to be authenticated. This must
- *            include the SRTP header + SRTP payload (data to be encrypted) + rest
- *            
- *  len     : length of data to be encrypted
- *  auth_src: pointer the data to be authenticated. Should point at the same buffer as src.
- *  src     : pointer to the data to be encrypted.
- *  dst     : This is mandatory to be the same as src (in-place only).
- *  tag_size: the size of the desired authentication tag or zero to use
- *            the default mac output.
- *  tag     : Pointer to an address where the authentication tag will be copied.
- */
-
-
-/* struct crypt_op flags */
-
-#define COP_FLAG_NONE          (0 << 0) /* totally no flag */
-#define COP_FLAG_UPDATE                (1 << 0) /* multi-update hash mode */
-#define COP_FLAG_FINAL         (1 << 1) /* multi-update final hash mode */
-#define COP_FLAG_WRITE_IV      (1 << 2) /* update the IV during operation */
-#define COP_FLAG_NO_ZC         (1 << 3) /* do not zero-copy */
-#define COP_FLAG_AEAD_TLS_TYPE  (1 << 4) /* authenticate and encrypt using the 
-                                          * TLS protocol rules */
-#define COP_FLAG_AEAD_SRTP_TYPE  (1 << 5) /* authenticate and encrypt using the 
-                                           * SRTP protocol rules */
-#define COP_FLAG_RESET         (1 << 6) /* multi-update reset the state.
-                                          * should be used in combination
-                                          * with COP_FLAG_UPDATE */
-
-
-/* Stuff for bignum arithmetic and public key
- * cryptography - not supported yet by linux
- * cryptodev.
- */
-
-#define        CRYPTO_ALG_FLAG_SUPPORTED       1
-#define        CRYPTO_ALG_FLAG_RNG_ENABLE      2
-#define        CRYPTO_ALG_FLAG_DSA_SHA         4
-
-struct crparam {
-       __u8    *crp_p;
-       __u32   crp_nbits;
-};
-
-#define CRK_MAXPARAM   8
-
-/* input of CIOCKEY */
-struct crypt_kop {
-       __u32   crk_op;         /* cryptodev_crk_op_t */
-       __u32   crk_status;
-       __u16   crk_iparams;
-       __u16   crk_oparams;
-       __u32   crk_pad1;
-       struct crparam  crk_param[CRK_MAXPARAM];
-};
-
-enum cryptodev_crk_op_t {
-       CRK_MOD_EXP = 0,
-       CRK_MOD_EXP_CRT = 1,
-       CRK_DSA_SIGN = 2,
-       CRK_DSA_VERIFY = 3,
-       CRK_DH_COMPUTE_KEY = 4,
-       CRK_ALGORITHM_ALL
-};
-
-#define CRK_ALGORITHM_MAX      (CRK_ALGORITHM_ALL-1)
-
-/* features to be queried with CIOCASYMFEAT ioctl
- */
-#define CRF_MOD_EXP            (1 << CRK_MOD_EXP)
-#define CRF_MOD_EXP_CRT                (1 << CRK_MOD_EXP_CRT)
-#define CRF_DSA_SIGN           (1 << CRK_DSA_SIGN)
-#define CRF_DSA_VERIFY         (1 << CRK_DSA_VERIFY)
-#define CRF_DH_COMPUTE_KEY     (1 << CRK_DH_COMPUTE_KEY)
-
-
-/* ioctl's. Compatible with old linux cryptodev.h
- */
-#define CRIOGET         _IOWR('c', 101, __u32)
-#define CIOCGSESSION    _IOWR('c', 102, struct session_op)
-#define CIOCFSESSION    _IOW('c', 103, __u32)
-#define CIOCCRYPT       _IOWR('c', 104, struct crypt_op)
-#define CIOCKEY         _IOWR('c', 105, struct crypt_kop)
-#define CIOCASYMFEAT    _IOR('c', 106, __u32)
-#define CIOCGSESSINFO  _IOWR('c', 107, struct session_info_op)
-
-/* to indicate that CRIOGET is not required in linux
- */
-#define CRIOGET_NOT_NEEDED 1
-
-/* additional ioctls for AEAD */
-#define CIOCAUTHCRYPT   _IOWR('c', 109, struct crypt_auth_op)
-
-/* additional ioctls for asynchronous operation.
- * These are conditionally enabled since version 1.6.
- */
-#define CIOCASYNCCRYPT    _IOW('c', 110, struct crypt_op)
-#define CIOCASYNCFETCH    _IOR('c', 111, struct crypt_op)
-
-#endif /* L_CRYPTODEV_H */
diff --git a/package/libs/openssl/patches/100-Configure-afalg-support.patch b/package/libs/openssl/patches/100-Configure-afalg-support.patch
new file mode 100644 (file)
index 0000000..69b2e7f
--- /dev/null
@@ -0,0 +1,23 @@
+From bf4f3a5696c65b4a48935599ccba43311c114c95 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Thu, 27 Sep 2018 08:29:21 -0300
+Subject: Do not use host kernel version to disable AFALG
+
+This patch prevents the Configure script from using the host kernel
+version to disable building the AFALG engine on librecmc targets.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+
+--- a/Configure
++++ b/Configure
+@@ -1554,7 +1554,9 @@ unless ($disabled{"crypto-mdebug-backtra
+ unless ($disabled{afalgeng}) {
+     $config{afalgeng}="";
+-    if (grep { $_ eq 'afalgeng' } @{$target{enable}}) {
++    if ($target =~ m/librecmc$/) {
++        push @{$config{engdirs}}, "afalg";
++    } elsif (grep { $_ eq 'afalgeng' } @{$target{enable}}) {
+         my $minver = 4*10000 + 1*100 + 0;
+         if ($config{CROSS_COMPILE} eq "") {
+             my $verstr = `uname -r`;
diff --git a/package/libs/openssl/patches/110-openwrt_targets.patch b/package/libs/openssl/patches/110-openwrt_targets.patch
new file mode 100644 (file)
index 0000000..0f86a1f
--- /dev/null
@@ -0,0 +1,60 @@
+From 9a83f8fb7c46215dfb8d6dc2e2cc612bc2a0fd01 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Thu, 27 Sep 2018 08:30:24 -0300
+Subject: Add librecmc targets
+
+Targets are named: linux-$(CONFIG_ARCH)-librecmc
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+
+--- /dev/null
++++ b/Configurations/25-librecmc.conf
+@@ -0,0 +1,48 @@
++## Openwrt "CONFIG_ARCH" matching targets.
++
++# The targets need to end in '-librecmc' for the AFALG patch to work
++
++my %targets = (
++    "librecmc" => {
++      template        => 1,
++      CFLAGS          => add("\$(LIBRECMC_OPTIMIZATION_FLAGS)"),
++    },
++    "linux-aarch64-librecmc" => {
++        inherit_from    => [ "linux-aarch64", "librecmc" ],
++    },
++    "linux-arc-librecmc" => {
++        inherit_from    => [ "linux-generic32", "librecmc" ],
++    },
++    "linux-arm-librecmc" => {
++        inherit_from    => [ "linux-armv4", "librecmc" ],
++    },
++    "linux-armeb-librecmc" => {
++        inherit_from    => [ "linux-armv4", "librecmc" ],
++    },
++    "linux-i386-librecmc" => {
++        inherit_from    => [ "linux-x86", "librecmc" ],
++    },
++    "linux-mips-librecmc" => {
++        inherit_from    => [ "linux-mips32", "librecmc" ],
++    },
++    "linux-mips64-librecmc" => {
++        inherit_from    => [ "linux64-mips64", "librecmc" ],
++    },
++    "linux-mips64el-librecmc" => {
++        inherit_from    => [ "linux64-mips64", "librecmc" ],
++    },
++    "linux-mipsel-librecmc" => {
++        inherit_from    => [ "linux-mips32", "librecmc" ],
++    },
++    "linux-powerpc-librecmc" => {
++        inherit_from    => [ "linux-ppc", "librecmc" ],
++    },
++    "linux-x86_64-librecmc" => {
++        inherit_from    => [ "linux-x86_64", "librecmc" ],
++    },
++
++### Basic default option
++    "linux-generic32-librecmc" => {
++        inherit_from    => [ "linux-generic32", "librecmc" ],
++    },
++);
diff --git a/package/libs/openssl/patches/110-optimize-for-size.patch b/package/libs/openssl/patches/110-optimize-for-size.patch
deleted file mode 100644 (file)
index 30694a9..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/Configure
-+++ b/Configure
-@@ -470,6 +470,13 @@ my %table=(
- "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
- "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
-+# libreCMC targets
-+"linux-armv4-librecmc","gcc:-DTERMIOS \$(LIBRECMC_OPTIMIZATION_FLAGS) -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-aarch64-librecmc","gcc:-DTERMIOS \$(LIBRECMC_OPTIMIZATION_FLAGS) -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-x86_64-librecmc",      "gcc:-m64 -DL_ENDIAN -DTERMIOS \$(LIBRECMC_OPTIMIZATION_FLAGS) -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
-+"linux-mips-librecmc","gcc:-DTERMIOS \$(LIBRECMC_OPTIMIZATION_FLAGS) -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips32_asm}:o32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-generic-librecmc","gcc:-DTERMIOS \$(LIBRECMC_OPTIMIZATION_FLAGS) -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+
- # Android: linux-* but without pointers to headers and libs.
- "android","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
- "android-x86","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:".eval{my $asm=${x86_elf_asm};$asm=~s/:elf/:android/;$asm}.":dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
diff --git a/package/libs/openssl/patches/120-strip-cflags-from-binary.patch b/package/libs/openssl/patches/120-strip-cflags-from-binary.patch
new file mode 100644 (file)
index 0000000..d6e35b7
--- /dev/null
@@ -0,0 +1,21 @@
+From f453f3eccb852740e37e9436dac5670d311c13b0 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Thu, 27 Sep 2018 08:31:38 -0300
+Subject: void exposing build directories
+
+The CFLAGS contain the build directories, and are shown by calling
+OpenSSL_version(OPENSSL_CFLAGS), or running openssl version -a
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+
+--- a/crypto/build.info
++++ b/crypto/build.info
+@@ -10,7 +10,7 @@ EXTRA=  ../ms/uplink-x86.pl ../ms/uplink
+         ppccpuid.pl pariscid.pl alphacpuid.pl arm64cpuid.pl armv4cpuid.pl
+ DEPEND[cversion.o]=buildinf.h
+-GENERATE[buildinf.h]=../util/mkbuildinf.pl "$(CC) $(LIB_CFLAGS) $(CPPFLAGS_Q)" "$(PLATFORM)"
++GENERATE[buildinf.h]=../util/mkbuildinf.pl "$(filter-out -I% -iremap% -fmacro-prefix-map%,$(CC) $(LIB_CFLAGS) $(CPPFLAGS_Q))" "$(PLATFORM)"
+ DEPEND[buildinf.h]=../configdata.pm
+ GENERATE[uplink-x86.s]=../ms/uplink-x86.pl $(PERLASM_SCHEME)
diff --git a/package/libs/openssl/patches/130-dont-build-tests-fuzz.patch b/package/libs/openssl/patches/130-dont-build-tests-fuzz.patch
new file mode 100644 (file)
index 0000000..7c61b1e
--- /dev/null
@@ -0,0 +1,29 @@
+From e2339aa9c68837089d17cf309022cee497fe2412 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Thu, 27 Sep 2018 08:34:38 -0300
+Subject: Do not build tests and fuzz directories
+
+This shortens build time.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+
+--- a/Configure
++++ b/Configure
+@@ -299,7 +299,7 @@ my $auto_threads=1;    # enable threads
+ my $default_ranlib;
+ # Top level directories to build
+-$config{dirs} = [ "crypto", "ssl", "engines", "apps", "test", "util", "tools", "fuzz" ];
++$config{dirs} = [ "crypto", "ssl", "engines", "apps", "util", "tools" ];
+ # crypto/ subdirectories to build
+ $config{sdirs} = [
+     "objects",
+@@ -311,7 +311,7 @@ $config{sdirs} = [
+     "cms", "ts", "srp", "cmac", "ct", "async", "kdf", "store"
+     ];
+ # test/ subdirectories to build
+-$config{tdirs} = [ "ossl_shim" ];
++$config{tdirs} = [];
+ # Known TLS and DTLS protocols
+ my @tls = qw(ssl3 tls1 tls1_1 tls1_2 tls1_3);
diff --git a/package/libs/openssl/patches/130-perl-path.patch b/package/libs/openssl/patches/130-perl-path.patch
deleted file mode 100644 (file)
index 2dbdc76..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
---- a/Configure
-+++ b/Configure
-@@ -1,4 +1,4 @@
--:
-+#!/usr/bin/perl
- eval 'exec perl -S $0 ${1+"$@"}'
-     if $running_under_some_shell;
- ##
---- a/tools/c_rehash.in
-+++ b/tools/c_rehash.in
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl
-+#!/usr/bin/perl
- # Perl c_rehash script, scan all files in a directory
- # and add symbolic links to their hash values.
---- a/util/clean-depend.pl
-+++ b/util/clean-depend.pl
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl -w
-+#!/usr/bin/perl
- # Clean the dependency list in a makefile of standard includes...
- # Written by Ben Laurie <ben@algroup.co.uk> 19 Jan 1999
---- a/util/mkdef.pl
-+++ b/util/mkdef.pl
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl -w
-+#!/usr/bin/perl
- #
- # generate a .def file
- #
---- a/util/mkerr.pl
-+++ b/util/mkerr.pl
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl -w
-+#!/usr/bin/perl
- my $config = "crypto/err/openssl.ec";
- my $hprefix = "openssl/";
---- a/util/mkstack.pl
-+++ b/util/mkstack.pl
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl -w
-+#!/usr/bin/perl
- # This is a utility that searches out "DECLARE_STACK_OF()"
- # declarations in .h and .c files, and updates/creates/replaces
---- a/util/pod2man.pl
-+++ b/util/pod2man.pl
-@@ -1,4 +1,4 @@
--: #!/usr/bin/perl-5.005
-+#!/usr/bin/perl
-     eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
-       if $running_under_some_shell;
---- a/util/selftest.pl
-+++ b/util/selftest.pl
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl -w
-+#!/usr/bin/perl
- #
- # Run the test suite and generate a report
- #
diff --git a/package/libs/openssl/patches/140-allow-prefer-chacha20.patch b/package/libs/openssl/patches/140-allow-prefer-chacha20.patch
new file mode 100644 (file)
index 0000000..9cbe221
--- /dev/null
@@ -0,0 +1,78 @@
+From 286e015bf0d30530707a5e7b3b871509f2ab50d7 Mon Sep 17 00:00:00 2001
+From: Eneas U de Queiroz <cote2004-github@yahoo.com>
+Date: Thu, 27 Sep 2018 08:44:39 -0300
+Subject: Add OPENSSL_PREFER_CHACHA_OVER_GCM option
+
+This enables a compile-time option to prefer ChaCha20-Poly1305 over
+AES-GCM in the openssl default ciphersuite, which is useful in systems
+without AES specific CPU instructions.
+OPENSSL_PREFER_CHACHA_OVER_GCM must be defined to enable it.
+
+Note that this does not have the same effect as the
+SL_OP_PRIORITIZE_CHACHA option, which prioritizes ChaCha20-Poly1305 only
+when the client has it on top of its ciphersuite preference.
+
+Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
+
+--- a/include/openssl/ssl.h
++++ b/include/openssl/ssl.h
+@@ -173,9 +173,15 @@ extern "C" {
+ # define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL"
+ /* This is the default set of TLSv1.3 ciphersuites */
+ # if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305)
+-#  define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \
+-                                   "TLS_CHACHA20_POLY1305_SHA256:" \
+-                                   "TLS_AES_128_GCM_SHA256"
++#  ifdef OPENSSL_PREFER_CHACHA_OVER_GCM
++#   define TLS_DEFAULT_CIPHERSUITES "TLS_CHACHA20_POLY1305_SHA256:" \
++                                    "TLS_AES_256_GCM_SHA384:" \
++                                    "TLS_AES_128_GCM_SHA256"
++#  else
++#   define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \
++                                    "TLS_CHACHA20_POLY1305_SHA256:" \
++                                    "TLS_AES_128_GCM_SHA256"
++#  endif
+ # else
+ #  define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \
+                                    "TLS_AES_128_GCM_SHA256"
+--- a/ssl/ssl_ciph.c
++++ b/ssl/ssl_ciph.c
+@@ -1464,11 +1464,29 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_
+     ssl_cipher_apply_rule(0, SSL_kECDHE, 0, 0, 0, 0, 0, CIPHER_DEL, -1, &head,
+                           &tail);
++    /*
++     * If OPENSSL_PREFER_CHACHA_OVER_GCM is defined, ChaCha20_Poly1305
++     * will be placed before AES-256.  Otherwise, the default behavior of
++     * preferring GCM over CHACHA is used.
++     * This is useful for systems that do not have AES-specific CPU
++     * instructions, where ChaCha20-Poly1305 is 3 times faster than AES.
++     * Note that this does not have the same effect as the SSL_OP_PRIORITIZE_CHACHA
++     * option, which prioritizes ChaCha20-Poly1305 only when the client has it on top
++     * of its ciphersuite preference.
++     */
++
++#ifdef OPENSSL_PREFER_CHACHA_OVER_GCM
++    ssl_cipher_apply_rule(0, 0, 0, SSL_CHACHA20, 0, 0, 0, CIPHER_ADD, -1,
++                          &head, &tail);
++    ssl_cipher_apply_rule(0, 0, 0, SSL_AESGCM, 0, 0, 0, CIPHER_ADD, -1,
++                          &head, &tail);
++#else
+     /* Within each strength group, we prefer GCM over CHACHA... */
+     ssl_cipher_apply_rule(0, 0, 0, SSL_AESGCM, 0, 0, 0, CIPHER_ADD, -1,
+                           &head, &tail);
+     ssl_cipher_apply_rule(0, 0, 0, SSL_CHACHA20, 0, 0, 0, CIPHER_ADD, -1,
+                           &head, &tail);
++#endif
+     /*
+      * ...and generally, our preferred cipher is AES.
+@@ -1524,7 +1542,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_
+      * Within each group, ciphers remain sorted by strength and previous
+      * preference, i.e.,
+      * 1) ECDHE > DHE
+-     * 2) GCM > CHACHA
++     * 2) GCM > CHACHA, reversed if OPENSSL_PREFER_CHACHA_OVER_GCM is defined
+      * 3) AES > rest
+      * 4) TLS 1.2 > legacy
+      *
diff --git a/package/libs/openssl/patches/140-makefile-dirs.patch b/package/libs/openssl/patches/140-makefile-dirs.patch
deleted file mode 100644 (file)
index 83c412f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile.org
-+++ b/Makefile.org
-@@ -137,7 +137,7 @@ FIPSCANLIB=
- BASEADDR=
--DIRS=   crypto ssl engines apps test tools
-+DIRS=   crypto ssl apps
- ENGDIRS= ccgost
- SHLIBDIRS= crypto ssl
diff --git a/package/libs/openssl/patches/150-no_engines.patch b/package/libs/openssl/patches/150-no_engines.patch
deleted file mode 100644 (file)
index a518a00..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
---- a/Configure
-+++ b/Configure
-@@ -2144,6 +2144,11 @@ EOF
-       close(OUT);
-   }
-   
-+# ugly hack to disable engines
-+if($target eq "mingwx") {
-+      system("sed -e s/^LIB/XLIB/g -i engines/Makefile");
-+}
-+
- print <<EOF;
- Configured for $target.
---- a/util/libeay.num
-+++ b/util/libeay.num
-@@ -2075,7 +2075,6 @@ PKCS7_ATTR_SIGN_it
- UI_add_error_string                     2633  EXIST::FUNCTION:
- KRB5_CHECKSUM_free                      2634  EXIST::FUNCTION:
- OCSP_REQUEST_get_ext                    2635  EXIST::FUNCTION:
--ENGINE_load_ubsec                       2636  EXIST::FUNCTION:ENGINE,STATIC_ENGINE
- ENGINE_register_all_digests             2637  EXIST::FUNCTION:ENGINE
- PKEY_USAGE_PERIOD_it                    2638  EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
- PKEY_USAGE_PERIOD_it                    2638  EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-@@ -2549,7 +2548,6 @@ OCSP_RESPONSE_new
- AES_set_encrypt_key                     3024  EXIST::FUNCTION:AES
- OCSP_resp_count                         3025  EXIST::FUNCTION:
- KRB5_CHECKSUM_new                       3026  EXIST::FUNCTION:
--ENGINE_load_cswift                      3027  EXIST::FUNCTION:ENGINE,STATIC_ENGINE
- OCSP_onereq_get0_id                     3028  EXIST::FUNCTION:
- ENGINE_set_default_ciphers              3029  EXIST::FUNCTION:ENGINE
- NOTICEREF_it                            3030  EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
-@@ -2580,7 +2578,6 @@ ASN1_primitive_free
- i2d_EXTENDED_KEY_USAGE                  3052  EXIST::FUNCTION:
- i2d_OCSP_SIGNATURE                      3053  EXIST::FUNCTION:
- asn1_enc_save                           3054  EXIST::FUNCTION:
--ENGINE_load_nuron                       3055  EXIST::FUNCTION:ENGINE,STATIC_ENGINE
- _ossl_old_des_pcbc_encrypt              3056  EXIST::FUNCTION:DES
- PKCS12_MAC_DATA_it                      3057  EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
- PKCS12_MAC_DATA_it                      3057  EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-@@ -2604,7 +2601,6 @@ asn1_get_choice_selector
- i2d_KRB5_CHECKSUM                       3072  EXIST::FUNCTION:
- ENGINE_set_table_flags                  3073  EXIST::FUNCTION:ENGINE
- AES_options                             3074  EXIST::FUNCTION:AES
--ENGINE_load_chil                        3075  EXIST::FUNCTION:ENGINE,STATIC_ENGINE
- OCSP_id_cmp                             3076  EXIST::FUNCTION:
- OCSP_BASICRESP_new                      3077  EXIST::FUNCTION:
- OCSP_REQUEST_get_ext_by_NID             3078  EXIST::FUNCTION:
-@@ -2671,7 +2667,6 @@ OCSP_CRLID_it
- OCSP_CRLID_it                           3127  EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
- i2d_KRB5_AUTHENTBODY                    3128  EXIST::FUNCTION:
- OCSP_REQUEST_get_ext_count              3129  EXIST::FUNCTION:
--ENGINE_load_atalla                      3130  EXIST::FUNCTION:ENGINE,STATIC_ENGINE
- X509_NAME_it                            3131  EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
- X509_NAME_it                            3131  EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
- USERNOTICE_it                           3132  EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
-@@ -2766,8 +2761,6 @@ DES_read_2passwords
- DES_read_password                       3207  EXIST::FUNCTION:DES
- UI_UTIL_read_pw                         3208  EXIST::FUNCTION:
- UI_UTIL_read_pw_string                  3209  EXIST::FUNCTION:
--ENGINE_load_aep                         3210  EXIST::FUNCTION:ENGINE,STATIC_ENGINE
--ENGINE_load_sureware                    3211  EXIST::FUNCTION:ENGINE,STATIC_ENGINE
- OPENSSL_add_all_algorithms_noconf       3212  EXIST:!VMS:FUNCTION:
- OPENSSL_add_all_algo_noconf             3212  EXIST:VMS:FUNCTION:
- OPENSSL_add_all_algorithms_conf         3213  EXIST:!VMS:FUNCTION:
-@@ -2776,7 +2769,6 @@ OPENSSL_load_builtin_modules
- AES_ofb128_encrypt                      3215  EXIST::FUNCTION:AES
- AES_ctr128_encrypt                      3216  EXIST::FUNCTION:AES
- AES_cfb128_encrypt                      3217  EXIST::FUNCTION:AES
--ENGINE_load_4758cca                     3218  EXIST::FUNCTION:ENGINE,STATIC_ENGINE
- _ossl_096_des_random_seed               3219  EXIST::FUNCTION:DES
- EVP_aes_256_ofb                         3220  EXIST::FUNCTION:AES
- EVP_aes_192_ofb                         3221  EXIST::FUNCTION:AES
-@@ -3111,7 +3103,6 @@ EC_GFp_nist_method
- STORE_meth_set_modify_fn                3530  NOEXIST::FUNCTION:
- STORE_method_set_modify_function        3530  NOEXIST::FUNCTION:
- STORE_parse_attrs_next                  3531  NOEXIST::FUNCTION:
--ENGINE_load_padlock                     3532  EXIST::FUNCTION:ENGINE,STATIC_ENGINE
- EC_GROUP_set_curve_name                 3533  EXIST::FUNCTION:EC
- X509_CERT_PAIR_it                       3534  EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
- X509_CERT_PAIR_it                       3534  EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
diff --git a/package/libs/openssl/patches/160-disable_doc_tests.patch b/package/libs/openssl/patches/160-disable_doc_tests.patch
deleted file mode 100644 (file)
index e38d44a..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -139,7 +139,7 @@ FIPSCANLIB=
- BASEADDR=0xFB00000
--DIRS=   crypto ssl engines apps test tools
-+DIRS=   crypto ssl engines apps tools
- ENGDIRS= ccgost
- SHLIBDIRS= crypto ssl
-@@ -157,7 +157,7 @@ SDIRS=  \
- # tests to perform.  "alltests" is a special word indicating that all tests
- # should be performed.
--TESTS = alltests
-+TESTS =
- MAKEFILE= Makefile
-@@ -171,7 +171,7 @@ SHELL=/bin/sh
- TOP=    .
- ONEDIRS=out tmp
--EDIRS=  times doc bugs util include certs ms shlib mt demos perl sf dep VMS
-+EDIRS=  times bugs util include certs ms shlib mt demos perl sf dep VMS
- WDIRS=  windows
- LIBS=   libcrypto.a libssl.a
- SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
-@@ -276,7 +276,7 @@ reflect:
- sub_all: build_all
--build_all: build_libs build_apps build_tests build_tools
-+build_all: build_libs build_apps build_tools
- build_libs: build_libcrypto build_libssl openssl.pc
-@@ -542,7 +542,7 @@ dist:
-       @$(MAKE) SDIRS='$(SDIRS)' clean
-       @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' $(DISTTARVARS) tar
--install: all install_docs install_sw
-+install: all install_sw
- install_sw:
-       @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
---- a/Makefile.org
-+++ b/Makefile.org
-@@ -540,7 +540,7 @@ dist:
-       @$(MAKE) SDIRS='$(SDIRS)' clean
-       @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' $(DISTTARVARS) tar
--install: all install_docs install_sw
-+install: all install_sw
- install_sw:
-       @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
diff --git a/package/libs/openssl/patches/170-bash_path.patch b/package/libs/openssl/patches/170-bash_path.patch
deleted file mode 100644 (file)
index c29b59a..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
---- a/util/domd
-+++ b/util/domd
-@@ -1,4 +1,4 @@
--#!/bin/sh
-+#!/usr/bin/env bash
- # Do a makedepend, only leave out the standard headers
- # Written by Ben Laurie <ben@algroup.co.uk> 19 Jan 1999
diff --git a/package/libs/openssl/patches/180-fix_link_segfault.patch b/package/libs/openssl/patches/180-fix_link_segfault.patch
deleted file mode 100644 (file)
index 3e36beb..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/Makefile.shared
-+++ b/Makefile.shared
-@@ -95,7 +95,6 @@ LINK_APP=    \
-     LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$${LDFLAGS:-$(CFLAGS)}"; \
-     LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \
-     LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
--    LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
-     $${LDCMD} $${LDFLAGS} -o $${APPNAME:=$(APPNAME)} $(OBJECTS) $${LIBDEPS} )
- LINK_SO=      \
-@@ -105,7 +104,6 @@ LINK_SO=   \
-     SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \
-     LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \
-     LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
--    LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
-     $${SHAREDCMD} $${SHAREDFLAGS} \
-       -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
-       $$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS \
diff --git a/package/libs/openssl/patches/190-remove_timestamp_check.patch b/package/libs/openssl/patches/190-remove_timestamp_check.patch
deleted file mode 100644 (file)
index 424e660..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/Makefile.org
-+++ b/Makefile.org
-@@ -185,7 +185,7 @@ TARFILE=        ../$(NAME).tar
- EXHEADER=       e_os2.h
- HEADER=         e_os.h
--all: Makefile build_all
-+all: build_all
- # as we stick to -e, CLEARENV ensures that local variables in lower
- # Makefiles remain local and variable. $${VAR+VAR} is tribute to Korn
-@@ -404,11 +404,6 @@ openssl.pc: Makefile
-           echo 'Version: '$(VERSION); \
-           echo 'Requires: libssl libcrypto' ) > openssl.pc
--Makefile: Makefile.org Configure config
--      @echo "Makefile is older than Makefile.org, Configure or config."
--      @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
--      @false
--
- libclean:
-       rm -f *.map *.so *.so.* *.dylib *.dll engines/*.so engines/*.dll engines/*.dylib *.a engines/*.a */lib */*/lib
diff --git a/package/libs/openssl/patches/200-parallel_build.patch b/package/libs/openssl/patches/200-parallel_build.patch
deleted file mode 100644 (file)
index 37134e4..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
---- a/Makefile.org
-+++ b/Makefile.org
-@@ -282,17 +282,17 @@ build_libcrypto: build_crypto build_engi
- build_libssl: build_ssl libssl.pc
- build_crypto:
--      @dir=crypto; target=all; $(BUILD_ONE_CMD)
-+      +@dir=crypto; target=all; $(BUILD_ONE_CMD)
- build_ssl: build_crypto
--      @dir=ssl; target=all; $(BUILD_ONE_CMD)
-+      +@dir=ssl; target=all; $(BUILD_ONE_CMD)
- build_engines: build_crypto
--      @dir=engines; target=all; $(BUILD_ONE_CMD)
-+      +@dir=engines; target=all; $(BUILD_ONE_CMD)
- build_apps: build_libs
--      @dir=apps; target=all; $(BUILD_ONE_CMD)
-+      +@dir=apps; target=all; $(BUILD_ONE_CMD)
- build_tests: build_libs
--      @dir=test; target=all; $(BUILD_ONE_CMD)
-+      +@dir=test; target=all; $(BUILD_ONE_CMD)
- build_tools: build_libs
--      @dir=tools; target=all; $(BUILD_ONE_CMD)
-+      +@dir=tools; target=all; $(BUILD_ONE_CMD)
- all_testapps: build_libs build_testapps
- build_testapps:
-@@ -473,7 +473,7 @@ update: errors stacks util/libeay.num ut
-       @set -e; target=update; $(RECURSIVE_BUILD_CMD)
- depend:
--      @set -e; target=depend; $(RECURSIVE_BUILD_CMD)
-+      +@set -e; target=depend; $(RECURSIVE_BUILD_CMD)
- lint:
-       @set -e; target=lint; $(RECURSIVE_BUILD_CMD)
-@@ -535,9 +535,9 @@ dist:
-       @$(MAKE) SDIRS='$(SDIRS)' clean
-       @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' $(DISTTARVARS) tar
--install: all install_sw
-+install: install_sw
--install_sw:
-+install_dirs:
-       @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
-               $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
-               $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
-@@ -546,12 +546,19 @@ install_sw:
-               $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
-               $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
-               $(INSTALL_PREFIX)$(OPENSSLDIR)/private
-+      @$(PERL) $(TOP)/util/mkdir-p.pl \
-+              $(INSTALL_PREFIX)$(MANDIR)/man1 \
-+              $(INSTALL_PREFIX)$(MANDIR)/man3 \
-+              $(INSTALL_PREFIX)$(MANDIR)/man5 \
-+              $(INSTALL_PREFIX)$(MANDIR)/man7
-+
-+install_sw: install_dirs
-       @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\
-       do \
-       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
-       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
-       done;
--      @set -e; target=install; $(RECURSIVE_BUILD_CMD)
-+      +@set -e; target=install; $(RECURSIVE_BUILD_CMD)
-       @set -e; liblist="$(LIBS)"; for i in $$liblist ;\
-       do \
-               if [ -f "$$i" ]; then \
-@@ -635,12 +642,7 @@ install_html_docs:
-               done; \
-       done
--install_docs:
--      @$(PERL) $(TOP)/util/mkdir-p.pl \
--              $(INSTALL_PREFIX)$(MANDIR)/man1 \
--              $(INSTALL_PREFIX)$(MANDIR)/man3 \
--              $(INSTALL_PREFIX)$(MANDIR)/man5 \
--              $(INSTALL_PREFIX)$(MANDIR)/man7
-+install_docs: install_dirs
-       @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \
-       here="`pwd`"; \
-       filecase=; \
---- a/Makefile.shared
-+++ b/Makefile.shared
-@@ -120,6 +120,7 @@ SYMLINK_SO=        \
-                       done; \
-               fi; \
-               if [ -n "$$SHLIB_SOVER" ]; then \
-+                      [ -e "$$SHLIB$$SHLIB_SUFFIX" ] || \
-                       ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \
-                         ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \
-               fi; \
---- a/crypto/Makefile
-+++ b/crypto/Makefile
-@@ -85,11 +85,11 @@ testapps:
-       @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
- subdirs:
--      @target=all; $(RECURSIVE_MAKE)
-+      +@target=all; $(RECURSIVE_MAKE)
- files:
-       $(PERL) $(TOP)/util/files.pl "CPUID_OBJ=$(CPUID_OBJ)" Makefile >> $(TOP)/MINFO
--      @target=files; $(RECURSIVE_MAKE)
-+      +@target=files; $(RECURSIVE_MAKE)
- links:
-       @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
-@@ -100,7 +100,7 @@ links:
- # lib: $(LIB): are splitted to avoid end-less loop
- lib:  $(LIB)
-       @touch lib
--$(LIB):       $(LIBOBJ)
-+$(LIB):       $(LIBOBJ) | subdirs
-       $(AR) $(LIB) $(LIBOBJ)
-       test -z "$(FIPSLIBDIR)" || $(AR) $(LIB) $(FIPSLIBDIR)fipscanister.o
-       $(RANLIB) $(LIB) || echo Never mind.
-@@ -111,7 +111,7 @@ shared: buildinf.h lib subdirs
-       fi
- libs:
--      @target=lib; $(RECURSIVE_MAKE)
-+      +@target=lib; $(RECURSIVE_MAKE)
- install:
-       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
-@@ -120,7 +120,7 @@ install:
-       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
-       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
-       done;
--      @target=install; $(RECURSIVE_MAKE)
-+      +@target=install; $(RECURSIVE_MAKE)
- lint:
-       @target=lint; $(RECURSIVE_MAKE)
---- a/engines/Makefile
-+++ b/engines/Makefile
-@@ -72,7 +72,7 @@ top:
- all:  lib subdirs
--lib:  $(LIBOBJ)
-+lib:  $(LIBOBJ) | subdirs
-       @if [ -n "$(SHARED_LIBS)" ]; then \
-               set -e; \
-               for l in $(LIBNAMES); do \
-@@ -89,7 +89,7 @@ lib: $(LIBOBJ)
- subdirs:
-       echo $(EDIRS)
--      @target=all; $(RECURSIVE_MAKE)
-+      +@target=all; $(RECURSIVE_MAKE)
- files:
-       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
-@@ -128,7 +128,7 @@ install:
-                         mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \
-               done; \
-       fi
--      @target=install; $(RECURSIVE_MAKE)
-+      +@target=install; $(RECURSIVE_MAKE)
- tags:
-       ctags $(SRC)
---- a/test/Makefile
-+++ b/test/Makefile
-@@ -145,7 +145,7 @@ install:
- tags:
-       ctags $(SRC)
--tests:        exe apps $(TESTS)
-+tests:        exe $(TESTS)
- apps:
-       @(cd ..; $(MAKE) DIRS=apps all)
-@@ -593,7 +593,7 @@ $(DTLSTEST)$(EXE_EXT): $(DTLSTEST).o ssl
- #     fi
- dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO)
--      @target=dummytest; $(BUILD_CMD)
-+      +@target=dummytest; $(BUILD_CMD)
- # DO NOT DELETE THIS LINE -- make depend depends on it.
index 10983d15866a6016167dcfb6e7bdb0c33206fe5e..34ae4d7c617daf5a01f237060f2b80a9435c5a5e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=popt
 PKG_VERSION:=1.16
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= \
@@ -34,14 +34,10 @@ define Package/libpopt
   CATEGORY:=Libraries
   TITLE:=A command line option parsing library
   URL:=http://rpm5.org/files/popt/
+  ABI_VERSION:=0
 endef
 
-define Build/Configure
-       $(call Build/Configure/Default, \
-               --enable-shared \
-               --enable-static \
-       )
-endef
+CONFIGURE_ARGS += --enable-shared --enable-static
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
index ca3a468637afd4954baf87ec64dbe73a1f924bf6..ddf05986a56458ec6c570a5449a563d3614f6c71 100644 (file)
@@ -8,19 +8,18 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=readline
-PKG_VERSION:=7.0
+PKG_VERSION:=8.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@GNU/readline
-PKG_HASH:=750d437185286f40a369e1e4f4764eda932b9459b5ec9a731628393dd3d32334
+PKG_HASH:=e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:gnu:readline
 
 PKG_BUILD_PARALLEL:=1
-PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
@@ -30,45 +29,39 @@ define Package/libreadline
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=Command lines edition library
+  DEPENDS:=+libncursesw
   URL:=http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=8
 endef
 
 define Package/libreadline/description
-       The Readline library provides a set of functions for use by applications 
-       that allow users to edit command lines as they are typed in. Both Emacs 
-       and vi editing modes are available. The Readline library includes 
-       additional functions to maintain a list of previously-entered command 
-       lines, to recall and perhaps reedit those lines, and perform csh-like 
+       The Readline library provides a set of functions for use by applications
+       that allow users to edit command lines as they are typed in. Both Emacs
+       and vi editing modes are available. The Readline library includes
+       additional functions to maintain a list of previously-entered command
+       lines, to recall and perhaps reedit those lines, and perform csh-like
        history expansion on previous commands.
 endef
 
-# prevent "autoreconf" from removing "aclocal.m4"
-PKG_REMOVE_FILES:=
-
-CONFIGURE_ARGS += \
-       --enable-shared \
-       --enable-static \
-       --with-curses \
+CONFIGURE_ARGS += --with-curses --disable-install-examples
 
 CONFIGURE_VARS += \
        bash_cv_wcwidth_broken=no \
        bash_cv_func_sigsetjmp=yes \
 
-TARGET_CPPFLAGS:=-I. -I.. $(TARGET_CPPFLAGS)
-
 TARGET_CFLAGS += $(FPIC)
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/readline $(1)/usr/include/
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{history,readline}.{a,so,so.7,so.7.0} $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{history,readline}.{a,so*} $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/readline.pc $(1)/usr/lib/pkgconfig/
 endef
 
 define Package/libreadline/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{history,readline}.{so,so.7,so.7.0} $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{history,readline}.so.* $(1)/usr/lib/
 endef
 
 $(eval $(call HostBuild))
diff --git a/package/libs/readline/patches/001-curses-link.patch b/package/libs/readline/patches/001-curses-link.patch
new file mode 100644 (file)
index 0000000..dc18931
--- /dev/null
@@ -0,0 +1,16 @@
+link readline directly to ncurses since it needs symbols from it
+
+upstream readline does this on purpose (no direct linking), but
+it doesn't make much sense in a Linux world
+
+--- a/support/shobj-conf
++++ b/support/shobj-conf
+@@ -42,7 +42,7 @@ SHOBJ_XLDFLAGS=
+ SHOBJ_LIBS=
+ SHLIB_XLDFLAGS=
+-SHLIB_LIBS=
++SHLIB_LIBS=-lncurses
+ SHLIB_DOT='.'
+ SHLIB_LIBPREF='lib'
diff --git a/package/libs/readline/patches/001-install_perm.patch b/package/libs/readline/patches/001-install_perm.patch
deleted file mode 100644 (file)
index 951ff73..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/support/shlib-install
-+++ b/support/shlib-install
-@@ -73,7 +73,7 @@ fi
- case "$host_os" in
- hpux*|darwin*|macosx*|linux*|solaris2*)
-       if [ -z "$uninstall" ]; then
--              chmod 555 ${INSTALLDIR}/${LIBNAME}
-+              chmod +x ${INSTALLDIR}/${LIBNAME}
-       fi ;;
- cygwin*|mingw*)
-       IMPLIBNAME=`echo ${LIBNAME} \
index 60275ec34336a11dace56d464b98824a91369e08..8ce9a40f9145ff4584c6979c71c1724941d968ea 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sysfsutils
 PKG_VERSION:=2.1.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/linux-diag
@@ -31,6 +31,7 @@ define Package/libsysfs
   SUBMENU:=Filesystem
   TITLE:=Sysfs library
   URL:=http://linux-diag.sourceforge.net/Sysfsutils.html
+  ABI_VERSION:=2
 endef
 
 define Package/sysfsutils
@@ -61,7 +62,7 @@ endef
 
 define Package/libsysfs/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsysfs.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsysfs.so.* $(1)/usr/lib/
 endef
 
 define Package/sysfsutils/install
index febc7c2dbcae69c9842ffb3c2546786c1ba125d4..d76b0a875cc54d0e8aa1408a663fbbf258f097eb 100644 (file)
@@ -33,6 +33,7 @@ endef
 define Package/libgcc
 $(call Package/gcc/Default)
   TITLE:=GCC support library
+  ABI_VERSION:=1
 endef
 
 define Package/libgcc/config
@@ -59,6 +60,7 @@ define Package/libatomic
 $(call Package/gcc/Default)
   DEPENDS:=+libgcc
   TITLE:=Atomic support library
+  ABI_VERSION:=1
 endef
 
 define Package/libatomic/config
@@ -112,6 +114,7 @@ define Package/libstdcpp
 $(call Package/gcc/Default)
   NAME:=libstdc++
   TITLE:=GNU Standard C++ Library v3
+  ABI_VERSION:=6
 endef
 
 define Package/libstdcpp/config
index 3f417fcd6db1d8319def97833c828dd37d13fa33..1e4129865850b6f5617795587545acdad9ce218d 100644 (file)
@@ -4,7 +4,7 @@ PKG_NAME:=uclient
 PKG_RELEASE=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/uclient.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/uclient.git
 PKG_SOURCE_DATE:=2018-11-24
 PKG_SOURCE_VERSION:=3ba74ebc9363993ea2a83fd73b4c1b1a96e73940
 PKG_MIRROR_HASH:=3c456a8ab965ed8db216ac1bfaf2b974e2f689137a7c35d0220e5b7d9c42a994
@@ -24,7 +24,7 @@ define Package/libuclient
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=HTTP/1.1 client library
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=20160123
   DEPENDS:=+libubox
 endef
 
index 2ea5bf0bd59a6319b63913a11477c0cd13376f41..811ef2f77f2a6bc207d51997cbbd667fcfbd78d7 100644 (file)
@@ -4,7 +4,7 @@ PKG_NAME:=ustream-ssl
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/ustream-ssl.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/ustream-ssl.git
 PKG_SOURCE_DATE:=2018-07-30
 PKG_SOURCE_VERSION:=23a3f2830341acd1db149175baf7315a33bd0edb
 PKG_MIRROR_HASH:=289bef5dac684015b6a40cfd72cf1c8c297bb77cf2efd54e562b628ba3afd83d
@@ -25,7 +25,7 @@ define Package/libustream/default
   CATEGORY:=Libraries
   TITLE:=ustream SSL Library
   DEPENDS:=+libubox
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=20150806
 endef
 
 define Package/libustream-openssl
index a01a8949aa5686fdc1746f9ab2097581426d975d..23bb1c52203038b92d17d1e0f319f43e601fe9a7 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=wolfssl
 PKG_VERSION:=3.15.3-stable
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip
 # PKG_SOURCE_URL:=https://www.wolfssl.com/
@@ -42,6 +42,7 @@ define Package/libwolfssl
   URL:=http://www.wolfssl.com/
   MENU:=1
   PROVIDES:=libcyassl
+  ABI_VERSION:=18
 endef
 
 define Package/libwolfssl/description
@@ -167,8 +168,7 @@ endef
 
 define Package/libwolfssl/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libwolfssl.so* $(1)/usr/lib/
-       ln -s libwolfssl.so $(1)/usr/lib/libcyassl.so
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libwolfssl.so.* $(1)/usr/lib/
 endef
 
 $(eval $(call BuildPackage,libwolfssl))
diff --git a/package/luci/.buildpath b/package/luci/.buildpath
deleted file mode 100644 (file)
index 81fa646..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<buildpath>
-       <buildpathentry kind="src" path="src"/>
-       <buildpathentry kind="con" path="org.eclipse.dltk.launching.INTERPRETER_CONTAINER"/>
-</buildpath>
diff --git a/package/luci/CONTRIBUTING.md b/package/luci/CONTRIBUTING.md
deleted file mode 100644 (file)
index db86dd8..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-# Contributing Guidelines
-
-## Patches and Pull requests:
-
-If you want to contribute a change to LuCI, please either send a patch using git send-email
-or open a "pull request" against the openwrt/luci repository.
-
-Regardless of whether you send a patch or open a pull request, please try to follow these rules:
-
-* Have a useful subject prefixed with the component name
-    (E.g.: "luci-mod-admin-full: fix wifi channel selection on multiple STA networks")
-* Shortly explain the changes made and - if applicable - the reasoning behind them
-* Commit message of each commit should include a Signed-off-by line
-    (See <https://openwrt.org/docs/guide-developer/submittingpatches-tomerge#sign_your_work>)
-
-In case you like to send patches by mail, please use the [LuCI mailinglist](https://lists.subsignal.org/mailman/listinfo/luci)
-or the [OpenWrt Development List](https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel).
-
-If you send via the OpenWrt list, include a `[luci]` tag in your subject line.
-For general information on patch submission, follow the [OpenWrt patch submission guideline](https://openwrt.org/submitting-patches).
-
-## Advice on pull requests:
-
-Pull requests are the easiest way to contribute changes to git repos at Github. They are the preferred contribution method, as they offer a nice way for commenting and amending the proposed changes.
-
-* You need a local "fork" of the Github repo.
-* Use a "feature branch" for your changes. That separates the changes in the pull request from your other changes and makes it easy to edit/amend commits in the pull request. Workflow using `feature_x` as the example:
-  - Update your local git fork to the tip (of the master, usually)
-  - Create the feature branch with `git checkout -b feature_x`
-  - Edit changes and commit them locally
-  - Push them to your Github fork by `git push -u origin feature_x`. That creates the `feature_x` branch at your Github fork and sets it as the remote of this branch
-  - When you now visit Github, you should see a proposal to create a pull request
-
-* If you later need to add new commits to the pull request, you can simply commit the changes to the local branch and then use `git push` to automatically update the pull request.
-
-* If you need to change something in the existing pull request (e.g. to add a missing signed-off-by line to the commit message), you can use `git push -f` to overwrite the original commits. That is easy and safe when using a feature branch. Example workflow:
-  - Checkout the feature branch by `git checkout feature_x`
-  - Edit changes and commit them locally. If you are just updating the commit message in the last commit, you can use `git commit --amend` to do that
-  - If you added several new commits or made other changes that require cleaning up, you can use `git rebase -i HEAD~X` (X = number of commits to edit) to possibly squash some commits
-  - Push the changed commits to Github with `git push -f` to overwrite the original commits in the "feature_x" branch with the new ones. The pull request gets automatically updated
-
-## If you have commit access:
-
-* Do NOT use `git push --force`.
-* Use Pull Requests if you are unsure and to suggest changes to other developers.
-
-## Gaining commit access:
-
-* Commit access will be granted to responsible contributors who have made
-  useful pull requests and / or feedback or patches to this repository or
-  OpenWrt in general. Please include your request for commit access in your
-  next pull request or ticket.
-
-## Release Branches:
-
-* Branches named `openwrt-xx.yy` (e.g. `openwrt-18.06`) are release branches.
-* These branches are built with the respective OpenWrt release and are created
-  during the release stabilisation phase.
-* Please ONLY cherry-pick or commit security and bug-fixes to these branches.
-* Do NOT add new packages and do NOT do major upgrades of packages here.
-* If you are unsure if your change is suitable, please use a pull request.
-
diff --git a/package/luci/LICENSE b/package/luci/LICENSE
deleted file mode 100644 (file)
index f49a4e1..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
\ No newline at end of file
diff --git a/package/luci/NOTICE b/package/luci/NOTICE
deleted file mode 100644 (file)
index 47e1969..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-LuCI - Lua Configuration Interface
-Copyright 2008 Steven Barth <steven@midlink.org>
-Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
-Licensed under the Apache License, Version 2.0.
-
-Contains code from:
-coxpcall       - Copyright 2005 - Kepler Project (www.keplerproject.org)
-ltn12/luasocket - Copyright 2004-2007 Diego Nehab
-axTLS          - Copyright 2008 Cameron Rich
diff --git a/package/luci/README.md b/package/luci/README.md
deleted file mode 100644 (file)
index 48863a4..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# OpenWrt luci feed
-
-## Description
-
-This is the OpenWrt "luci"-feed containing LuCI - OpenWrt Configuration Interface.
-
-## Usage
-
-This feed is enabled by default. Your feeds.conf.default (or feeds.conf) should contain a line like:
-```
-src-git luci https://github.com/openwrt/luci.git
-```
-
-To install all its package definitions, run:
-```
-./scripts/feeds update luci
-./scripts/feeds install -a -p luci
-```
-
-## API Reference
-
-You can browse the generated API documentation [directly on Github](http://htmlpreview.github.io/?http://raw.githubusercontent.com/openwrt/luci/master/documentation/api/index.html).
-
-## Development
-
-Documentation for developing and extending LuCI can be found [in the Wiki](https://github.com/openwrt/luci/wiki)
-
-## License
-
-See [LICENSE](LICENSE) file.
-## Package Guidelines
-
-See [CONTRIBUTING.md](CONTRIBUTING.md) file.
diff --git a/package/luci/THANKYOU b/package/luci/THANKYOU
deleted file mode 100644 (file)
index f0519bd..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-I'd like to thank the following people for contributing to this software:
-
-* Anton Popov
-       - for rewriting the openwrt.org theme
-
-* Florian Fainelli (OpenWrt)
-       - for the french translation
-
-* Alina Friedrichsen
-       - for the reworked translation system, help on standards compliance and accessibility
-       
-* Yanira
-       - several applications and bugreports
-
-
-Also a big thank you goes to:
-       
-* Mono (Freifunk Halle)
-       - for donating a Linksys WRT54GL for development purposes
-       
-* tetzlav (Freifunk Leipzig)
-       - for donating several boards for testing and his feedback
-       
-* Mickey (Freifunk Hannover)
-       - for his feedback and fixes for the OpenWrt builds
-       
diff --git a/package/luci/applications/luci-app-aria2/Makefile b/package/luci/applications/luci-app-aria2/Makefile
deleted file mode 100644 (file)
index 8035ea3..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# Copyright (C) 2016 Openwrt.org
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=luci-app-aria2
-
-# Version == major.minor.patch
-# increase "minor" on new functionality and "patch" on patches/optimization
-PKG_VERSION:=1.0.1
-
-# Release == build
-# increase on changes of translation files
-PKG_RELEASE:=4
-
-PKG_LICENSE:=Apache-2.0
-PKG_MAINTAINER:=Hsing-Wang Liao <kuoruan@gmail.com>
-
-# LuCI specific settings
-LUCI_TITLE:=LuCI Support for Aria2
-LUCI_DEPENDS:=+luci-lib-ipkg +aria2
-LUCI_PKGARCH:=all
-
-define Package/$(PKG_NAME)/config
-# shown in make menuconfig <Help>
-help
-               $(LUCI_TITLE)
-               .
-               Version: $(PKG_VERSION)-$(PKG_RELEASE)
-               $(PKG_MAINTAINER)
-endef
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
-
diff --git a/package/luci/applications/luci-app-aria2/luasrc/controller/aria2.lua b/package/luci/applications/luci-app-aria2/luasrc/controller/aria2.lua
deleted file mode 100644 (file)
index 56172ec..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
---[[
-LuCI - Lua Configuration Interface - aria2 support
-
-Copyright 2014-2015 nanpuyue <nanpuyue@gmail.com>
-Modified by kuoruan <kuoruan@gmail.com>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-]]--
-
-module("luci.controller.aria2", package.seeall)
-
-function index()
-       if not nixio.fs.access("/etc/config/aria2") then
-               return
-       end
-
-       local page = entry({"admin", "services", "aria2"}, cbi("aria2"), _("Aria2 Settings"))
-       page.dependent = true
-
-       entry({"admin", "services", "aria2", "status"}, call("status")).leaf = true
-
-end
-
-function status()
-       local sys  = require "luci.sys"
-       local ipkg = require "luci.model.ipkg"
-       local http = require "luci.http"
-       local uci  = require "luci.model.uci".cursor()
-
-       local status = {
-               running = (sys.call("pidof aria2c > /dev/null") == 0),
-               yaaw = ipkg.installed("yaaw"),
-               webui = ipkg.installed("webui-aria2"),
-               ariang = (ipkg.installed("ariang") or ipkg.installed("ariang-nginx"))
-       }
-
-       http.prepare_content("application/json")
-       http.write_json(status)
-end
diff --git a/package/luci/applications/luci-app-aria2/luasrc/model/cbi/aria2.lua b/package/luci/applications/luci-app-aria2/luasrc/model/cbi/aria2.lua
deleted file mode 100644 (file)
index 9e9df9a..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
---[[
-LuCI - Lua Configuration Interface - Aria2 support
-
-Copyright 2014-2016 nanpuyue <nanpuyue@gmail.com>
-Modified by maz-1 <ohmygod19993@gmail.com>
-Modified by kuoruan <kuoruan@gmail.com>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-]]--
-
-local sys  = require "luci.sys"
-local util = require "luci.util"
-local uci = require "luci.model.uci".cursor()
-
-local cfgbtn = "<input type=\"button\" value=\"" .. translate("Generate Randomly") .. "\" onclick=\"randomSecret(32);\" />"
-local sessionbtn = "<input class=\"cbi-button mar-10\" type=\"button\" value=\"" .. translate("View Json-RPC URL") .. "\" onclick=\"showRPCURL();\" />"
-local aria2rpctxt = "<input class=\"mar-10\" id=\"aria2rpcpath\" onmouseover=\"obj=document.getElementById(this.id);obj.focus();obj.select()\" />"
-local use_websocket = "<input id=\"use_websocket\" type=\"checkbox\" /><label for=\"use_websocket\">" .. translate("Use WebSocket") .. "</label>"
-
-function ipkg_ver(pkg)
-       local version = nil
-       local control = io.open("/usr/lib/opkg/info/%s.control" % pkg, "r")
-       if control then
-               local ln
-               repeat
-                       ln = control:read("*l")
-                       if ln and ln:match("^Version: ") then
-                               version = ln:gsub("^Version: ", ""):gsub("-%d", "")
-                               break
-                       end
-               until not ln
-               control:close()
-       end
-       return version
-end
-
-function ipkg_ver_lined(pkg)
-       return ipkg_ver(pkg):gsub("%.", "-")
-end
-
-m = Map("aria2", translate("Aria2"), translate("Aria2 is a multi-protocol &amp; multi-source download utility, here you can configure the settings."))
-
-m:section(SimpleSection).template  = "aria2/overview_status"
-
-s = m:section(TypedSection, "aria2", translate("Aria2 Settings"))
-s.addremove = false
-s.anonymous = true
-
-s:tab("general", translate("General Settings"))
-s:tab("file", translate("Files and Locations"))
-s:tab("task", translate("Task Settings"))
-s:tab("bittorrent", translate("BitTorrent Settings"))
-
-o = s:taboption("general", Flag, "enabled", translate("Enabled"))
-o.rmempty = false
-
-user = s:taboption("general", ListValue, "user", translate("Run daemon as user"))
-local p_user
-for _, p_user in util.vspairs(util.split(sys.exec("cat /etc/passwd | cut -f 1 -d :"))) do
-       user:value(p_user)
-end
-
-o = s:taboption("general", Value, "rpc_listen_port", translate("RPC port"))
-o.datatype = "port"
-o.placeholder = "6800"
-
-rpc_auth_method = s:taboption("general", ListValue, "rpc_auth_method", translate("RPC authentication method"))
-rpc_auth_method:value("none", translate("No Authentication"))
-rpc_auth_method:value("user_pass", translate("Username & Password"))
-rpc_auth_method:value("token", translate("Token"))
-
-o = s:taboption("general", Value, "rpc_user", translate("RPC username"))
-o:depends("rpc_auth_method", "user_pass")
-o.rmempty = false
-
-o = s:taboption("general", Value, "rpc_passwd", translate("RPC password"))
-o:depends("rpc_auth_method", "user_pass")
-o.password  =  true
-o.rmempty = true
-
-o = s:taboption("general", Value, "rpc_secret", translate("RPC Token"), "<br/>" .. cfgbtn)
-o:depends("rpc_auth_method", "token")
-o.rmempty = true
-
-o = s:taboption("file", Value, "config_dir", translate("Config file directory"))
-o.placeholder = "/var/etc/aria2"
-
-o = s:taboption("file", Flag, "enable_logging", translate("Enable log"), translate("The default log file is /var/log/aria2.log"))
-o.enabled = "true"
-o.disabled = "false"
-o = s:taboption("file", ListValue, "log_level", translate("Log level"))
-o:depends("enable_logging", "true")
-o:value("debug", translate("Debug"))
-o:value("info", translate("Info"))
-o:value("notice", translate("Notice"))
-o:value("warn", translate("Warn"))
-o:value("error", translate("Error"))
-
-o = s:taboption("file", Value, "dir", translate("Default download directory"))
-o.rmempty = false
-
-o = s:taboption("file", Value, "disk_cache", translate("Disk cache"), translate("in bytes, You can append K or M."))
-o.rmempty = true
-
-o = s:taboption("file", ListValue, "file_allocation", translate("Preallocation"), translate("\"Falloc\" is not available in all cases."))
-o:value("none", translate("Off"))
-o:value("prealloc", translate("Prealloc"))
-o:value("trunc", translate("Trunc"))
-o:value("falloc", translate("Falloc"))
-
-overall_speed_limit = s:taboption("task", Flag, "overall_speed_limit", translate("Overall speed limit enabled"))
-overall_speed_limit.rmempty = true
-
-o = s:taboption("task", Value, "max_overall_download_limit", translate("Overall download limit"), translate("in bytes/sec, You can append K or M."))
-o:depends("overall_speed_limit", "1")
-
-o = s:taboption("task", Value, "max_overall_upload_limit", translate("Overall upload limit"), translate("in bytes/sec, You can append K or M."))
-o:depends("overall_speed_limit", "1")
-
-task_speed_limit = s:taboption("task", Flag, "task_speed_limit", translate("Per task speed limit enabled"))
-task_speed_limit.rmempty = true
-
-o = s:taboption("task", Value, "max_download_limit", translate("Per task download limit"), translate("in bytes/sec, You can append K or M."))
-o:depends("task_speed_limit", "1")
-
-o = s:taboption("task", Value, "max_upload_limit", translate("Per task upload limit"), translate("in bytes/sec, You can append K or M."))
-o:depends("task_speed_limit", "1")
-
-o = s:taboption("task", Value, "max_concurrent_downloads", translate("Max concurrent downloads"))
-o.placeholder = "5"
-
-o = s:taboption("task", Value, "max_connection_per_server", translate("Max connection per server"), "1-16")
-o.datetype = "range(1, 16)"
-o.placeholder = "1"
-
-o = s:taboption("task", Value, "min_split_size", translate("Min split size"), "1M-1024M")
-o.placeholder = "20M"
-
-o = s:taboption("task", Value, "split", translate("Max number of split"))
-o.placeholder = "5"
-
-o = s:taboption("task", Value, "save_session_interval", translate("Autosave session interval"), translate("Sec"))
-o.default = "30"
-
-o = s:taboption("task", Value, "user_agent", translate("User agent value"))
-o.placeholder = "aria2/" .. ipkg_ver("aria2")
-
-o = s:taboption("bittorrent", Flag, "enable_dht", translate("<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"))
-o.enabled = "true"
-o.disabled = "false"
-
-o = s:taboption("bittorrent", Flag, "bt_enable_lpd", translate("<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"))
-o.enabled = "true"
-o.disabled = "false"
-
-o = s:taboption("bittorrent", Flag, "follow_torrent", translate("Follow torrent"))
-o.enabled = "true"
-o.disabled = "false"
-
-o = s:taboption("bittorrent", Value, "listen_port", translate("BitTorrent listen port"))
-o.placeholder = "6881-6999"
-
-o = s:taboption("bittorrent", Value, "bt_max_peers", translate("Max number of peers per torrent"))
-o.placeholder = "55"
-
-bt_tracker_enable = s:taboption("bittorrent", Flag, "bt_tracker_enable", translate("Additional Bt tracker enabled"))
-bt_tracker = s:taboption("bittorrent", DynamicList, "bt_tracker", translate("List of additional Bt tracker"))
-bt_tracker:depends("bt_tracker_enable", "1")
-bt_tracker.rmempty = true
-
-function bt_tracker.cfgvalue(self, section)
-       local rv = {}
-       local val = Value.cfgvalue(self, section)
-       if type(val) == "table" then
-               val = table.concat(val, ",")
-       elseif not val then
-               val = ""
-       end
-       for v in val:gmatch("[^,%s]+") do
-               rv[#rv+1] = v
-       end
-       return rv
-end
-
-function bt_tracker.write(self, section, value)
-       local rv = {}
-       for v in util.imatch(value) do
-               rv[#rv+1] = v
-       end
-       Value.write(self, section, table.concat(rv, ","))
-end
-
-o = s:taboption("bittorrent", Value, "peer_id_prefix", translate("Prefix of peer ID"))
-o.placeholder = "A2-" .. ipkg_ver_lined("aria2") .. "-"
-
-s = m:section(TypedSection, "aria2", translate("Extra Settings"))
-s.addremove = false
-s.anonymous = true
-
-o = s:option(DynamicList, "extra_settings", translate("List of extra settings"))
-o.placeholder = "option=value"
-o.rmempty = true
-
-m:section(SimpleSection, nil, sessionbtn .. use_websocket .. aria2rpctxt)
-
-return m
diff --git a/package/luci/applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm b/package/luci/applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm
deleted file mode 100644 (file)
index 9d9ffee..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<script type="text/javascript">//<![CDATA[
-XHR.poll(-1, '<%=luci.dispatcher.build_url("admin/services/aria2/status")%>', null,
-       function(x, data) {
-               var tb = document.getElementById('aria2_status');
-               if (data && tb) {
-                       if (data.running) {
-                               var links = '<em><%:The Aria2 service is running.%></em>';
-                               if (data.yaaw) {
-                                       links += '<input class="cbi-button mar-10" type="button" value="<%:Open YAAW%>" onclick="openWebUI(\'yaaw\');" />';
-                               }
-                               if (data.webui) {
-                                       links += '<input class="cbi-button mar-10" type="button" value="<%:Open WebUI-Aria2%>" onclick="openWebUI(\'webui-aria2\');" />';
-                               }
-                               if (data.ariang) {
-                                       links += '<input class="cbi-button mar-10" type="button" value="<%:Open AriaNg%>" onclick="openWebUI(\'ariang\');" />';
-                               }
-                               tb.innerHTML = links;
-                       } else {
-                               tb.innerHTML = '<em><%:The Aria2 service is not running.%></em>';
-                       }
-               }
-       }
-);
-
-function randomString(len) {
-       len = len || 32;
-       var $chars = 'abcdefghijklmnopqrstuvwxyz1234567890';
-       var maxPos = $chars.length;
-       var pwd = '';
-       for (var i = 0; i < len; i++) {
-               pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
-       }
-       return pwd;
-};
-
-function randomSecret() {
-       var Token = document.getElementById("cbid.aria2.main.rpc_secret");
-       Token.value = randomString(32);
-};
-
-function showRPCURL() {
-       var websocket = document.getElementById("use_websocket");
-       var protocol = (websocket.checked) ? "ws" : "http";
-       var newTextNode = document.getElementById("aria2rpcpath");
-       var auth_method = document.getElementById("cbid.aria2.main.rpc_auth_method");
-       var auth_port = document.getElementById("cbid.aria2.main.rpc_listen_port");
-       var auth_port_value;
-       if (window.location.protocol == "https:") {                                  
-               protocol += "s";                                                     
-       }
-       if (auth_port.value == "") {
-               auth_port_value = "6800";
-       } else {
-               auth_port_value = auth_port.value;
-       }
-       if (auth_method.value == "token") {
-               var auth_token = document.getElementById("cbid.aria2.main.rpc_secret");
-               newTextNode.value = protocol + "://token:" + auth_token.value + "@" + document.domain + ":" + auth_port_value + "/jsonrpc";
-       } else if (auth_method.value == "user_pass") {
-               var auth_user = document.getElementById("cbid.aria2.main.rpc_user");
-               var auth_passwd = document.getElementById("cbid.aria2.main.rpc_passwd");
-               newTextNode.value = protocol + "://" + auth_user.value + ":" + auth_passwd.value + "@" + document.domain + ":" + auth_port_value + "/jsonrpc";
-       } else {
-               newTextNode.value = protocol + "://" + document.domain + ":" + auth_port_value + "/jsonrpc";
-       }
-};
-
-function openWebUI(path) {
-       var curWwwPath = window.document.location.href;
-       var pathName = window.document.location.pathname;
-       var pos = curWwwPath.indexOf(pathName);
-       var localhostPath = curWwwPath.substring(0, pos);
-       var url = localhostPath + "/" + path;
-       window.open(url);
-};
-//]]>
-</script>
-<style>.mar-10 {margin-left: 10px; margin-right: 10px;}</style>
-<fieldset class="cbi-section">
-       <legend><%:Aria2 Status%></legend>
-       <p id="aria2_status">
-               <em><%:Collecting data...%></em>
-       </p>
-</fieldset>
diff --git a/package/luci/applications/luci-app-aria2/po/pt-br/aria2.po b/package/luci/applications/luci-app-aria2/po/pt-br/aria2.po
deleted file mode 100644 (file)
index 1c33b51..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: \n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.11\n"
-"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"Language: pt_BR\n"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
-msgid "\"Falloc\" is not available in all cases."
-msgstr "\"Falloc\" não está disponível em todas as classes."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:153
-msgid "<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"
-msgstr ""
-"<abbr title=\"Distributed Hash Table/Tabla de disperção distribuída\">DHT</"
-"abbr> habilitado"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:157
-msgid "<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"
-msgstr ""
-"<abbr title=\"Local Peer Discovery/Descoberta de Parceiros Locais\">LPD</"
-"abbr> habilitado"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:171
-msgid "Additional Bt tracker enabled"
-msgstr "Rastreadores BitTorrent adicionais habilitado"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
-msgid "Aria2"
-msgstr "Aria2"
-
-#: applications/luci-app-aria2/luasrc/controller/aria2.lua:21
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:49
-msgid "Aria2 Settings"
-msgstr "Configurações do Aria2"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:80
-msgid "Aria2 Status"
-msgstr "Estado do Aria2"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
-msgid ""
-"Aria2 is a multi-protocol &amp; multi-source download utility, here you can "
-"configure the settings."
-msgstr ""
-"Aria2 é um utilitário de transferência multi-protocolo de múltiplas fontes, "
-"aqui você pode configurá-lo."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
-msgid "Autosave session interval"
-msgstr "Intervalo para autossalvamento da sessão"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:56
-msgid "BitTorrent Settings"
-msgstr "Configurações do BitTorrent"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:165
-msgid "BitTorrent listen port"
-msgstr "Porta de escuta do BitTorrent"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:82
-msgid "Collecting data..."
-msgstr "Coletando dados..."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:89
-msgid "Config file directory"
-msgstr "Diretório dos arquivos de configuração"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:98
-msgid "Debug"
-msgstr "Depuração"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:104
-msgid "Default download directory"
-msgstr "Diretório padrão de arquivos baixados"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
-msgid "Disk cache"
-msgstr "Cache em Disco"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
-msgid "Enable log"
-msgstr "Habilitar registros"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:58
-msgid "Enabled"
-msgstr "Habilitado"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:102
-msgid "Error"
-msgstr "Erro"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:201
-msgid "Extra Settings"
-msgstr "Configurações Adicionais"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:114
-msgid "Falloc"
-msgstr "Falloc"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:54
-msgid "Files and Locations"
-msgstr "Arquivos e Locais"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:161
-msgid "Follow torrent"
-msgstr "Seguir torrent"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:53
-msgid "General Settings"
-msgstr "Configurações Gerais"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:19
-msgid "Generate Randomly"
-msgstr "Gerar aleatoriamente"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:99
-msgid "Info"
-msgstr "Informações"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:172
-msgid "List of additional Bt tracker"
-msgstr "Lista de rastreadores BitTorrent adicionais"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:205
-msgid "List of extra settings"
-msgstr "Lista de configurações adicionais"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:96
-msgid "Log level"
-msgstr "Nível do registro"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:134
-msgid "Max concurrent downloads"
-msgstr "Número máximo de transferencias simultâneas"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:137
-msgid "Max connection per server"
-msgstr "Numero máximo de conexões por servidor"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:168
-msgid "Max number of peers per torrent"
-msgstr "Numero máximo de parceiros por torrent"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:144
-msgid "Max number of split"
-msgstr "Numero máximo de divisões"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:141
-msgid "Min split size"
-msgstr "Tamanho mínimo da divisão"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:72
-msgid "No Authentication"
-msgstr "Sem Autenticação"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:100
-msgid "Notice"
-msgstr "Aviso"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:111
-msgid "Off"
-msgstr "Desligado"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:15
-msgid "Open AriaNg"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:12
-msgid "Open WebUI-Aria2"
-msgstr "Abrir WebUI-Aria2"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:9
-msgid "Open YAAW"
-msgstr "Abrir YAAW"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
-msgid "Overall download limit"
-msgstr "Limite global para baixar"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:116
-msgid "Overall speed limit enabled"
-msgstr "Limite da taxa de transferência global habilitado"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
-msgid "Overall upload limit"
-msgstr "Limite global para subir"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
-msgid "Per task download limit"
-msgstr "Limite por tarefa para baixar"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:125
-msgid "Per task speed limit enabled"
-msgstr "Limite da taxa de transferência por tarefa habilitado"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
-msgid "Per task upload limit"
-msgstr "Limite por tarefa para subir"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:112
-msgid "Prealloc"
-msgstr "Pré-alocação"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
-msgid "Preallocation"
-msgstr "Pré-alocação"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:198
-msgid "Prefix of peer ID"
-msgstr "Prefixo da identificação do paceiro"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:85
-msgid "RPC Token"
-msgstr ""
-"Chave eletrônica do <abbr title=\"Remote Procedure Call/Chamada de "
-"Procedimento Remoto\">RPC</abbr>"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:71
-msgid "RPC authentication method"
-msgstr ""
-"Método de autenticação do <abbr title=\"Remote Procedure Call/Chamada de "
-"Procedimento Remoto\">RPC</abbr>"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:80
-msgid "RPC password"
-msgstr ""
-"Senha do <abbr title=\"Remote Procedure Call/Chamada de Procedimento Remoto"
-"\">RPC</abbr>"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:67
-msgid "RPC port"
-msgstr ""
-"Porta do <abbr title=\"Remote Procedure Call/Chamada de Procedimento Remoto"
-"\">RPC</abbr>"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:76
-msgid "RPC username"
-msgstr ""
-"Nome do usuario do <abbr title=\"Remote Procedure Call/Chamada de "
-"Procedimento Remoto\">RPC</abbr>"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:61
-msgid "Run daemon as user"
-msgstr "Executar serviço como usuário"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
-msgid "Sec"
-msgstr "Segurança"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:55
-msgid "Task Settings"
-msgstr "Configurações das tarefas"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:19
-msgid "The Aria2 service is not running."
-msgstr "O serviço Aria2 está parado."
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:7
-msgid "The Aria2 service is running."
-msgstr "O serviço Aria2 está em execução."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
-msgid "The default log file is /var/log/aria2.log"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:74
-msgid "Token"
-msgstr "Chave eletrônica"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:113
-msgid "Trunc"
-msgstr "Truncar"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:22
-msgid "Use WebSocket"
-msgstr "Use WebSockets"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:150
-msgid "User agent value"
-msgstr "Valor da identificação do agente do usuário"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:73
-msgid "Username & Password"
-msgstr "Usuário & Senha"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:20
-msgid "View Json-RPC URL"
-msgstr "Visualizar URL do JSON-RPC"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:101
-msgid "Warn"
-msgstr "Atenção"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
-msgid "in bytes, You can append K or M."
-msgstr "em bytes. Você pode sufixar com K (quilo) ou M (mega)."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
-msgid "in bytes/sec, You can append K or M."
-msgstr "em bytes por segundo. Você pode sufixar com K (quilo) ou M (mega)."
-
-#~ msgid "Log file is in the config file dir."
-#~ msgstr ""
-#~ "Arquivo de registro (log) está no diretório do arquivo de configuração."
diff --git a/package/luci/applications/luci-app-aria2/po/ru/aria2.po b/package/luci/applications/luci-app-aria2/po/ru/aria2.po
deleted file mode 100644 (file)
index e751143..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: LuCI: aria2\n"
-"POT-Creation-Date: 2017-11-30 23:45+0300\n"
-"PO-Revision-Date: 2018-01-31 18:33+0300\n"
-"Language-Team: http://cyber-place.ru\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.7.1\n"
-"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"Language: ru\n"
-"Project-Info: Это технический перевод, не дословный. Главное-удобный русский "
-"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
-msgid "\"Falloc\" is not available in all cases."
-msgstr "'Falloc' возможен не всегда."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:153
-msgid "<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"
-msgstr "<abbr title=\"Распределенная Hash таблица\">DHT</abbr> включена"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:157
-msgid "<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"
-msgstr "<abbr title=\"Обнаружение локальных пиров\">LPD</abbr> включено"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:171
-msgid "Additional Bt tracker enabled"
-msgstr "Дополнительный<br />Bt tracker включен"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
-msgid "Aria2"
-msgstr "Aria2"
-
-#: applications/luci-app-aria2/luasrc/controller/aria2.lua:21
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:49
-msgid "Aria2 Settings"
-msgstr "Настройка Aria2"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:80
-msgid "Aria2 Status"
-msgstr "Состояние Aria2"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
-msgid ""
-"Aria2 is a multi-protocol &amp; multi-source download utility, here you can "
-"configure the settings."
-msgstr ""
-"Aria2 - это мульти-протокольная и мульти-платформенная утилита загрузки, "
-"здесь вы сможете ее настроить."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
-msgid "Autosave session interval"
-msgstr "Интервал сессии автосохранения"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:56
-msgid "BitTorrent Settings"
-msgstr "Настройки BitTorrent-а"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:165
-msgid "BitTorrent listen port"
-msgstr "Порты BitTorrent-а"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:82
-msgid "Collecting data..."
-msgstr "Сбор данных..."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:89
-msgid "Config file directory"
-msgstr "Папка расположения<br />сonfig файла"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:98
-msgid "Debug"
-msgstr "Отладка"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:104
-msgid "Default download directory"
-msgstr "Папка для загрузки<br />файлов по умолчанию"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
-msgid "Disk cache"
-msgstr "Дисковый кэш"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
-msgid "Enable log"
-msgstr "Включить ведение системного журнала"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:58
-msgid "Enabled"
-msgstr "Включено"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:102
-msgid "Error"
-msgstr "Ошибка"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:201
-msgid "Extra Settings"
-msgstr "Дополнительные настройки"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:114
-msgid "Falloc"
-msgstr "Falloc"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:54
-msgid "Files and Locations"
-msgstr "Файлы и папки"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:161
-msgid "Follow torrent"
-msgstr "Запустить<br />торрент-файл"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:53
-msgid "General Settings"
-msgstr "Основные настройки"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:19
-msgid "Generate Randomly"
-msgstr "Генерировать случайно"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:99
-msgid "Info"
-msgstr "Информация"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:172
-msgid "List of additional Bt tracker"
-msgstr "Список дополнительных BT tracker-ов"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:205
-msgid "List of extra settings"
-msgstr "Список дополнительных настроек"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:96
-msgid "Log level"
-msgstr "Записывать в журнал"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:134
-msgid "Max concurrent downloads"
-msgstr "Максимальное количество одновременных загрузок"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:137
-msgid "Max connection per server"
-msgstr "Максимальное количество<br />подключений на сервер"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:168
-msgid "Max number of peers per torrent"
-msgstr "Максимальное число<br />пиров на торрент-файл"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:144
-msgid "Max number of split"
-msgstr "Максимальное<br />число разделений"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:141
-msgid "Min split size"
-msgstr "Минимальный размер разделений"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:72
-msgid "No Authentication"
-msgstr "Без проверки подлинности"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:100
-msgid "Notice"
-msgstr "Заметка"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:111
-msgid "Off"
-msgstr "Выключено"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:15
-msgid "Open AriaNg"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:12
-msgid "Open WebUI-Aria2"
-msgstr "Открыть WebUI-Aria2"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:9
-msgid "Open YAAW"
-msgstr "Открыть YAAW"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
-msgid "Overall download limit"
-msgstr "Общее ограничение<br />скорости загрузки"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:116
-msgid "Overall speed limit enabled"
-msgstr "Общее ограничение скорости<br /> для утилиты включено"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
-msgid "Overall upload limit"
-msgstr "Общее ограничение<br />скорости раздачи"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
-msgid "Per task download limit"
-msgstr "Ограничить скорость загрузки"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:125
-msgid "Per task speed limit enabled"
-msgstr "Ограничить скорость для одной задачи включено"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
-msgid "Per task upload limit"
-msgstr "Ограничить скорость раздачи"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:112
-msgid "Prealloc"
-msgstr "Предварительно"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
-msgid "Preallocation"
-msgstr "Предварительное<br />распределение<br />места под файл"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:198
-msgid "Prefix of peer ID"
-msgstr "Префикс ID пира"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:85
-msgid "RPC Token"
-msgstr "Токен для доступа к удаленному управлению (RPC)"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:71
-msgid "RPC authentication method"
-msgstr "Метод аутентификации для доступа к удаленному управлению (RPC)"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:80
-msgid "RPC password"
-msgstr "Пароль для доступа к удаленному управлению (RPC)"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:67
-msgid "RPC port"
-msgstr "Порт для доступа к удаленному управлению (RPC)"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:76
-msgid "RPC username"
-msgstr "Логин для доступа к удаленному управлению (RPC)"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:61
-msgid "Run daemon as user"
-msgstr "Запуск демона<br />от имени пользователя"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
-msgid "Sec"
-msgstr "Секунды"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:55
-msgid "Task Settings"
-msgstr "Настройки задач"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:19
-msgid "The Aria2 service is not running."
-msgstr "Aria2 сервис не запущен."
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:7
-msgid "The Aria2 service is running."
-msgstr "Aria2 сервис запущен."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
-msgid "The default log file is /var/log/aria2.log"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:74
-msgid "Token"
-msgstr "Токен"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:113
-msgid "Trunc"
-msgstr "Сокращать"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:22
-msgid "Use WebSocket"
-msgstr "Использовать WebSockets"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:150
-msgid "User agent value"
-msgstr "Агент пользователя"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:73
-msgid "Username & Password"
-msgstr "Имя и пароль"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:20
-msgid "View Json-RPC URL"
-msgstr "Показать URL Json-RPC"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:101
-msgid "Warn"
-msgstr "Внимание"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
-msgid "in bytes, You can append K or M."
-msgstr ""
-"Дисковый кэш в байтах. Вы можете добавить суффикс K (кило) или М (мега)."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
-msgid "in bytes/sec, You can append K or M."
-msgstr "в байтах/секундах. Вы можете добавить суффикс K (кило) или М (мега)."
-
-#~ msgid "Log file is in the config file dir."
-#~ msgstr "Файл системного журнала находится в папке с config файлом."
diff --git a/package/luci/applications/luci-app-aria2/po/sv/aria2.po b/package/luci/applications/luci-app-aria2/po/sv/aria2.po
deleted file mode 100644 (file)
index ba8a588..0000000
+++ /dev/null
@@ -1,287 +0,0 @@
-msgid ""
-msgstr "Content-Type: text/plain; charset=UTF-8\n"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
-msgid "\"Falloc\" is not available in all cases."
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:153
-msgid "<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:157
-msgid "<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:171
-msgid "Additional Bt tracker enabled"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
-msgid "Aria2"
-msgstr "Aria2"
-
-#: applications/luci-app-aria2/luasrc/controller/aria2.lua:21
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:49
-msgid "Aria2 Settings"
-msgstr "Inställningar för Aria2"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:80
-msgid "Aria2 Status"
-msgstr "Status för Aria2"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
-msgid ""
-"Aria2 is a multi-protocol &amp; multi-source download utility, here you can "
-"configure the settings."
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
-msgid "Autosave session interval"
-msgstr "Autospara sessionintervall"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:56
-msgid "BitTorrent Settings"
-msgstr "Inställningar för BitTorrent"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:165
-msgid "BitTorrent listen port"
-msgstr "Lyssningsport för BitTorrent"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:82
-msgid "Collecting data..."
-msgstr "Samlar in data..."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:89
-msgid "Config file directory"
-msgstr "Ställ in fil-mapp"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:98
-msgid "Debug"
-msgstr "Avlusa"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:104
-msgid "Default download directory"
-msgstr "Standard nerladdningsmapp"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
-msgid "Disk cache"
-msgstr "Disk-cache"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
-msgid "Enable log"
-msgstr "Aktivera logg"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:58
-msgid "Enabled"
-msgstr "Aktiverad"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:102
-msgid "Error"
-msgstr "Fel"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:201
-msgid "Extra Settings"
-msgstr "Extra inställningar"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:114
-msgid "Falloc"
-msgstr "Falloc"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:54
-msgid "Files and Locations"
-msgstr "Filer och Platser"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:161
-msgid "Follow torrent"
-msgstr "Följ torrenten"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:53
-msgid "General Settings"
-msgstr "Generella inställningar"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:19
-msgid "Generate Randomly"
-msgstr "Generera slumpmässigt"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:99
-msgid "Info"
-msgstr "Info"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:172
-msgid "List of additional Bt tracker"
-msgstr "Lista över extra Bt-tracker"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:205
-msgid "List of extra settings"
-msgstr "Lista över extra inställningar"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:96
-msgid "Log level"
-msgstr "Loggnivå"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:134
-msgid "Max concurrent downloads"
-msgstr "Maximalt sammanhängande nerladdningar"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:137
-msgid "Max connection per server"
-msgstr "Max antalet anslutningar per server"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:168
-msgid "Max number of peers per torrent"
-msgstr "Maximalt antalet jämlikar per torrent"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:144
-msgid "Max number of split"
-msgstr "Högst antal split"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:141
-msgid "Min split size"
-msgstr "Minsta split-storlek"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:72
-msgid "No Authentication"
-msgstr "Ingen autentisering"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:100
-msgid "Notice"
-msgstr "Avisering"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:111
-msgid "Off"
-msgstr "Av"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:15
-msgid "Open AriaNg"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:12
-msgid "Open WebUI-Aria2"
-msgstr "Öppna WebUI-Aria2"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:9
-msgid "Open YAAW"
-msgstr "Öppna YAAW"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
-msgid "Overall download limit"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:116
-msgid "Overall speed limit enabled"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
-msgid "Overall upload limit"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
-msgid "Per task download limit"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:125
-msgid "Per task speed limit enabled"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
-msgid "Per task upload limit"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:112
-msgid "Prealloc"
-msgstr "Prealloc"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
-msgid "Preallocation"
-msgstr "Förallokering"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:198
-msgid "Prefix of peer ID"
-msgstr "Peer-ID prefix"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:85
-msgid "RPC Token"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:71
-msgid "RPC authentication method"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:80
-msgid "RPC password"
-msgstr "RPC-lösenord"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:67
-msgid "RPC port"
-msgstr "RPC-port"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:76
-msgid "RPC username"
-msgstr "RPC-användarnamn"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:61
-msgid "Run daemon as user"
-msgstr "Kör daemonen som användare"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
-msgid "Sec"
-msgstr "Sek"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:55
-msgid "Task Settings"
-msgstr "Inställningar för uppgifter"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:19
-msgid "The Aria2 service is not running."
-msgstr "Aria2-tjänsten körs inte."
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:7
-msgid "The Aria2 service is running."
-msgstr "Aria2-tjänsten körs."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
-msgid "The default log file is /var/log/aria2.log"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:74
-msgid "Token"
-msgstr "Tecken"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:113
-msgid "Trunc"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:22
-msgid "Use WebSocket"
-msgstr "Använd WebSocket"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:150
-msgid "User agent value"
-msgstr "Använd agent-värde"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:73
-msgid "Username & Password"
-msgstr "Användarnamn & Lösenord"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:20
-msgid "View Json-RPC URL"
-msgstr "Visa Json-RPC URL"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:101
-msgid "Warn"
-msgstr "Varna"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
-msgid "in bytes, You can append K or M."
-msgstr "i bytes, Du kan bifoga K eller M."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
-msgid "in bytes/sec, You can append K or M."
-msgstr "i bytes/sek, Du kan bifoga K eller M."
-
-#~ msgid "Log file is in the config file dir."
-#~ msgstr "Logg-filen är i konfigurationsfilens mapp."
diff --git a/package/luci/applications/luci-app-aria2/po/templates/aria2.pot b/package/luci/applications/luci-app-aria2/po/templates/aria2.pot
deleted file mode 100644 (file)
index 6bf1528..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-msgid ""
-msgstr "Content-Type: text/plain; charset=UTF-8"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
-msgid "\"Falloc\" is not available in all cases."
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:153
-msgid "<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:157
-msgid "<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:171
-msgid "Additional Bt tracker enabled"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
-msgid "Aria2"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/controller/aria2.lua:21
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:49
-msgid "Aria2 Settings"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:80
-msgid "Aria2 Status"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
-msgid ""
-"Aria2 is a multi-protocol &amp; multi-source download utility, here you can "
-"configure the settings."
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
-msgid "Autosave session interval"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:56
-msgid "BitTorrent Settings"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:165
-msgid "BitTorrent listen port"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:82
-msgid "Collecting data..."
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:89
-msgid "Config file directory"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:98
-msgid "Debug"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:104
-msgid "Default download directory"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
-msgid "Disk cache"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
-msgid "Enable log"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:58
-msgid "Enabled"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:102
-msgid "Error"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:201
-msgid "Extra Settings"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:114
-msgid "Falloc"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:54
-msgid "Files and Locations"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:161
-msgid "Follow torrent"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:53
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:19
-msgid "Generate Randomly"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:99
-msgid "Info"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:172
-msgid "List of additional Bt tracker"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:205
-msgid "List of extra settings"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:96
-msgid "Log level"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:134
-msgid "Max concurrent downloads"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:137
-msgid "Max connection per server"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:168
-msgid "Max number of peers per torrent"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:144
-msgid "Max number of split"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:141
-msgid "Min split size"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:72
-msgid "No Authentication"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:100
-msgid "Notice"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:111
-msgid "Off"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:15
-msgid "Open AriaNg"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:12
-msgid "Open WebUI-Aria2"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:9
-msgid "Open YAAW"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
-msgid "Overall download limit"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:116
-msgid "Overall speed limit enabled"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
-msgid "Overall upload limit"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
-msgid "Per task download limit"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:125
-msgid "Per task speed limit enabled"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
-msgid "Per task upload limit"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:112
-msgid "Prealloc"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
-msgid "Preallocation"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:198
-msgid "Prefix of peer ID"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:85
-msgid "RPC Token"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:71
-msgid "RPC authentication method"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:80
-msgid "RPC password"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:67
-msgid "RPC port"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:76
-msgid "RPC username"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:61
-msgid "Run daemon as user"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
-msgid "Sec"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:55
-msgid "Task Settings"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:19
-msgid "The Aria2 service is not running."
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:7
-msgid "The Aria2 service is running."
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
-msgid "The default log file is /var/log/aria2.log"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:74
-msgid "Token"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:113
-msgid "Trunc"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:22
-msgid "Use WebSocket"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:150
-msgid "User agent value"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:73
-msgid "Username & Password"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:20
-msgid "View Json-RPC URL"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:101
-msgid "Warn"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
-msgid "in bytes, You can append K or M."
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
-msgid "in bytes/sec, You can append K or M."
-msgstr ""
diff --git a/package/luci/applications/luci-app-aria2/po/zh-cn/aria2.po b/package/luci/applications/luci-app-aria2/po/zh-cn/aria2.po
deleted file mode 100644 (file)
index 0abebcf..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-#
-# Yangfl <mmyangfl@gmail.com>, 2017, 2018.
-# Zheng Qian <sotux82@gmail.com>, 2018.
-#
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
-"Language-Team:  <debian-l10n-chinese@lists.debian.org>\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"PO-Revision-Date: 2018-12-15 21:32+0800\n"
-"X-Generator: Gtranslator 2.91.7\n"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
-msgid "\"Falloc\" is not available in all cases."
-msgstr "\"Falloc\" 并不是在所有情况下都可用"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:153
-msgid "<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"
-msgstr "启用<abbr title=\"分布式哈希表\">DHT</abbr>"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:157
-msgid "<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"
-msgstr "启用<abbr title=\"本地节点发现\">LPD</abbr>"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:171
-msgid "Additional Bt tracker enabled"
-msgstr "额外添加的 Bt tracker"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
-msgid "Aria2"
-msgstr "Aria2"
-
-#: applications/luci-app-aria2/luasrc/controller/aria2.lua:21
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:49
-msgid "Aria2 Settings"
-msgstr "Aria2 配置"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:80
-msgid "Aria2 Status"
-msgstr "Aria2 状态"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
-msgid ""
-"Aria2 is a multi-protocol &amp; multi-source download utility, here you can "
-"configure the settings."
-msgstr "Aria2 是一个支持多协议多线程的下载器, 您可以在这里对其进行配置。"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
-msgid "Autosave session interval"
-msgstr "定时保存会话间隔"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:56
-msgid "BitTorrent Settings"
-msgstr "BitTorrent 设置"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:165
-msgid "BitTorrent listen port"
-msgstr "BitTorrent 监听端口"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:82
-msgid "Collecting data..."
-msgstr "正在收集数据..."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:89
-msgid "Config file directory"
-msgstr "配置文件目录"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:98
-msgid "Debug"
-msgstr "调试"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:104
-msgid "Default download directory"
-msgstr "默认下载目录"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
-msgid "Disk cache"
-msgstr "磁盘缓存"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
-msgid "Enable log"
-msgstr "启用日志"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:58
-msgid "Enabled"
-msgstr "启用"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:102
-msgid "Error"
-msgstr "错误"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:201
-msgid "Extra Settings"
-msgstr "附加选项"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:114
-msgid "Falloc"
-msgstr "快速 alloc(Falloc)"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:54
-msgid "Files and Locations"
-msgstr "文件和目录"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:161
-msgid "Follow torrent"
-msgstr "自动添加下载的种子"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:53
-msgid "General Settings"
-msgstr "常规设置"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:19
-msgid "Generate Randomly"
-msgstr "随机生成"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:99
-msgid "Info"
-msgstr "信息"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:172
-msgid "List of additional Bt tracker"
-msgstr "附加 Bt tracker 列表"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:205
-msgid "List of extra settings"
-msgstr "附加选项列表"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:96
-msgid "Log level"
-msgstr "日志记录等级"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:134
-msgid "Max concurrent downloads"
-msgstr "最大同时下载任务数"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:137
-msgid "Max connection per server"
-msgstr "单服务器最大连接数"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:168
-msgid "Max number of peers per torrent"
-msgstr "单个种子最大连接数"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:144
-msgid "Max number of split"
-msgstr "单文件最大线程数"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:141
-msgid "Min split size"
-msgstr "最小文件分片大小"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:72
-msgid "No Authentication"
-msgstr "无认证"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:100
-msgid "Notice"
-msgstr "注意"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:111
-msgid "Off"
-msgstr "关闭"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:15
-msgid "Open AriaNg"
-msgstr "打开 AriaNg"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:12
-msgid "Open WebUI-Aria2"
-msgstr "打开 WebUI-Aria2"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:9
-msgid "Open YAAW"
-msgstr "打开 YAAW"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
-msgid "Overall download limit"
-msgstr "全局下载限速"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:116
-msgid "Overall speed limit enabled"
-msgstr "启用全局限速"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
-msgid "Overall upload limit"
-msgstr "全局上传限速"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
-msgid "Per task download limit"
-msgstr "单任务下载限速"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:125
-msgid "Per task speed limit enabled"
-msgstr "启用单任务限速"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
-msgid "Per task upload limit"
-msgstr "单任务上传限速"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:112
-msgid "Prealloc"
-msgstr "预分配"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
-msgid "Preallocation"
-msgstr "磁盘预分配"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:198
-msgid "Prefix of peer ID"
-msgstr "Peer ID 前缀"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:85
-msgid "RPC Token"
-msgstr "RPC 令牌"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:71
-msgid "RPC authentication method"
-msgstr "RPC 认证方式"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:80
-msgid "RPC password"
-msgstr "RPC 密码"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:67
-msgid "RPC port"
-msgstr "RPC 端口"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:76
-msgid "RPC username"
-msgstr "RPC 用户名"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:61
-msgid "Run daemon as user"
-msgstr "以此用户权限运行"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
-msgid "Sec"
-msgstr "秒"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:55
-msgid "Task Settings"
-msgstr "任务设置"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:19
-msgid "The Aria2 service is not running."
-msgstr "Aria2 未运行"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:7
-msgid "The Aria2 service is running."
-msgstr "Aria2 正在运行"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
-msgid "The default log file is /var/log/aria2.log"
-msgstr "默认的 log 文件是 /var/log/aria2.log"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:74
-msgid "Token"
-msgstr "令牌"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:113
-msgid "Trunc"
-msgstr "Trunc"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:22
-msgid "Use WebSocket"
-msgstr "使用 WebSocket"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:150
-msgid "User agent value"
-msgstr "用户代理(UA)"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:73
-msgid "Username & Password"
-msgstr "用户名与密码"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:20
-msgid "View Json-RPC URL"
-msgstr "查看 Json-RPC URL"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:101
-msgid "Warn"
-msgstr "警告"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
-msgid "in bytes, You can append K or M."
-msgstr "单位 B, 您可以在数字后跟上 K 或 M。"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
-msgid "in bytes/sec, You can append K or M."
-msgstr "单位 B/s, 您可以在数字后跟上 K 或 M。"
-
-#~ msgid "Log file is in the config file dir."
-#~ msgstr "日志文件在配置文件目录下"
-
-#~ msgid "General settings"
-#~ msgstr "基本设置"
diff --git a/package/luci/applications/luci-app-aria2/po/zh-tw/aria2.po b/package/luci/applications/luci-app-aria2/po/zh-tw/aria2.po
deleted file mode 100644 (file)
index c911e0f..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-#
-# Yangfl <mmyangfl@gmail.com>, 2017, 2018.
-#
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
-"Language-Team:  <debian-l10n-chinese@lists.debian.org>\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"PO-Revision-Date: 2018-10-01 10:05+0800\n"
-"X-Generator: Gtranslator 2.91.7\n"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
-msgid "\"Falloc\" is not available in all cases."
-msgstr "\"Falloc\" 並不是在所有情況下都可用"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:153
-msgid "<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"
-msgstr "啟用<abbr title=\"分散式雜湊表\">DHT</abbr>"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:157
-msgid "<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"
-msgstr "啟用<abbr title=\"本地節點發現\">LPD</abbr>"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:171
-msgid "Additional Bt tracker enabled"
-msgstr "額外新增的 Bt tracker"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
-msgid "Aria2"
-msgstr "Aria2"
-
-#: applications/luci-app-aria2/luasrc/controller/aria2.lua:21
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:49
-msgid "Aria2 Settings"
-msgstr "Aria2 配置"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:80
-msgid "Aria2 Status"
-msgstr "Aria2 狀態"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
-msgid ""
-"Aria2 is a multi-protocol &amp; multi-source download utility, here you can "
-"configure the settings."
-msgstr "Aria2 是一個支援多協議多執行緒的下載器, 您可以在這裡對其進行配置。"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
-msgid "Autosave session interval"
-msgstr "定時儲存會話間隔"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:56
-msgid "BitTorrent Settings"
-msgstr "BitTorrent 設定"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:165
-msgid "BitTorrent listen port"
-msgstr "BitTorrent 監聽埠"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:82
-msgid "Collecting data..."
-msgstr "正在收集資料..."
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:89
-msgid "Config file directory"
-msgstr "配置檔案目錄"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:98
-msgid "Debug"
-msgstr "除錯"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:104
-msgid "Default download directory"
-msgstr "預設下載目錄"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
-msgid "Disk cache"
-msgstr "磁碟快取"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
-msgid "Enable log"
-msgstr "啟用日誌"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:58
-msgid "Enabled"
-msgstr "啟用"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:102
-msgid "Error"
-msgstr "錯誤"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:201
-msgid "Extra Settings"
-msgstr "附加選項"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:114
-msgid "Falloc"
-msgstr "快速 alloc(Falloc)"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:54
-msgid "Files and Locations"
-msgstr "檔案和目錄"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:161
-msgid "Follow torrent"
-msgstr "自動新增下載的種子"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:53
-msgid "General Settings"
-msgstr "常規設定"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:19
-msgid "Generate Randomly"
-msgstr "隨機生成"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:99
-msgid "Info"
-msgstr "資訊"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:172
-msgid "List of additional Bt tracker"
-msgstr "附加 Bt tracker 列表"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:205
-msgid "List of extra settings"
-msgstr "附加選項列表"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:96
-msgid "Log level"
-msgstr "日誌記錄等級"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:134
-msgid "Max concurrent downloads"
-msgstr "最大同時下載任務數"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:137
-msgid "Max connection per server"
-msgstr "單伺服器最大連線數"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:168
-msgid "Max number of peers per torrent"
-msgstr "單個種子最大連線數"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:144
-msgid "Max number of split"
-msgstr "單檔案最大執行緒數"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:141
-msgid "Min split size"
-msgstr "最小檔案分片大小"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:72
-msgid "No Authentication"
-msgstr "無認證"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:100
-msgid "Notice"
-msgstr "注意"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:111
-msgid "Off"
-msgstr "關閉"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:15
-msgid "Open AriaNg"
-msgstr "開啟 AriaNg"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:12
-msgid "Open WebUI-Aria2"
-msgstr "開啟 WebUI-Aria2"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:9
-msgid "Open YAAW"
-msgstr "開啟 YAAW"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
-msgid "Overall download limit"
-msgstr "全域性下載限速"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:116
-msgid "Overall speed limit enabled"
-msgstr "啟用全侷限速"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
-msgid "Overall upload limit"
-msgstr "全域性上傳限速"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
-msgid "Per task download limit"
-msgstr "單任務下載限速"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:125
-msgid "Per task speed limit enabled"
-msgstr "啟用單任務限速"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
-msgid "Per task upload limit"
-msgstr "單任務上傳限速"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:112
-msgid "Prealloc"
-msgstr "預分配"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
-msgid "Preallocation"
-msgstr "磁碟預分配"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:198
-msgid "Prefix of peer ID"
-msgstr "Peer ID 字首"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:85
-msgid "RPC Token"
-msgstr "RPC 令牌"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:71
-msgid "RPC authentication method"
-msgstr "RPC 認證方式"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:80
-msgid "RPC password"
-msgstr "RPC 密碼"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:67
-msgid "RPC port"
-msgstr "RPC 埠"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:76
-msgid "RPC username"
-msgstr "RPC 使用者名稱"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:61
-msgid "Run daemon as user"
-msgstr "以此使用者許可權執行"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
-msgid "Sec"
-msgstr "秒"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:55
-msgid "Task Settings"
-msgstr "任務設定"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:19
-msgid "The Aria2 service is not running."
-msgstr "Aria2 未執行"
-
-#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:7
-msgid "The Aria2 service is running."
-msgstr "Aria2 正在執行"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
-msgid "The default log file is /var/log/aria2.log"
-msgstr ""
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:74
-msgid "Token"
-msgstr "令牌"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:113
-msgid "Trunc"
-msgstr "Trunc"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:22
-msgid "Use WebSocket"
-msgstr "使用 WebSocket"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:150
-msgid "User agent value"
-msgstr "使用者代理(UA)"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:73
-msgid "Username & Password"
-msgstr "使用者名稱與密碼"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:20
-msgid "View Json-RPC URL"
-msgstr "檢視 Json-RPC URL"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:101
-msgid "Warn"
-msgstr "警告"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
-msgid "in bytes, You can append K or M."
-msgstr "單位 B, 您可以在數字後跟上 K 或 M。"
-
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
-#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
-msgid "in bytes/sec, You can append K or M."
-msgstr "單位 B/s, 您可以在數字後跟上 K 或 M。"
-
-#~ msgid "Log file is in the config file dir."
-#~ msgstr "日誌檔案在配置檔案目錄下"
-
-#~ msgid "General settings"
-#~ msgstr "基本設定"
diff --git a/package/luci/applications/luci-app-aria2/root/etc/uci-defaults/40_luci-aria2 b/package/luci/applications/luci-app-aria2/root/etc/uci-defaults/40_luci-aria2
deleted file mode 100755 (executable)
index 3a9ba5b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-uci -q batch <<-EOF >/dev/null
-       delete ucitrack.@aria2[-1]
-       add ucitrack aria2
-       set ucitrack.@aria2[-1].init=aria2
-       commit ucitrack
-EOF
-
-rm -f /tmp/luci-indexcache
-exit 0
diff --git a/package/luci/applications/luci-app-firewall/Makefile b/package/luci/applications/luci-app-firewall/Makefile
deleted file mode 100644 (file)
index 4fa85f2..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Firewall and Portforwarding application
-LUCI_DEPENDS:=+firewall
-
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/applications/luci-app-firewall/luasrc/controller/firewall.lua b/package/luci/applications/luci-app-firewall/luasrc/controller/firewall.lua
deleted file mode 100644 (file)
index 4fe7770..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-module("luci.controller.firewall", package.seeall)
-
-function index()
-       entry({"admin", "network", "firewall"},
-               alias("admin", "network", "firewall", "zones"),
-               _("Firewall"), 60)
-
-       entry({"admin", "network", "firewall", "zones"},
-               arcombine(cbi("firewall/zones"), cbi("firewall/zone-details")),
-               _("General Settings"), 10).leaf = true
-
-       entry({"admin", "network", "firewall", "forwards"},
-               arcombine(cbi("firewall/forwards"), cbi("firewall/forward-details")),
-               _("Port Forwards"), 20).leaf = true
-
-       entry({"admin", "network", "firewall", "rules"},
-               arcombine(cbi("firewall/rules"), cbi("firewall/rule-details")),
-               _("Traffic Rules"), 30).leaf = true
-
-       entry({"admin", "network", "firewall", "custom"},
-               form("firewall/custom"),
-               _("Custom Rules"), 40).leaf = true
-end
diff --git a/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua b/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua
deleted file mode 100644 (file)
index 21a1b27..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local fs = require "nixio.fs"
-
-local f = SimpleForm("firewall",
-       translate("Firewall - Custom Rules"),
-       translate("Custom rules allow you to execute arbitrary iptables commands \
-               which are not otherwise covered by the firewall framework. \
-               The commands are executed after each firewall restart, right after \
-               the default ruleset has been loaded."))
-
-local o = f:field(Value, "_custom")
-
-o.template = "cbi/tvalue"
-o.rows = 20
-
-function o.cfgvalue(self, section)
-       return fs.readfile("/etc/firewall.user")
-end
-
-function o.write(self, section, value)
-       value = value:gsub("\r\n?", "\n")
-       fs.writefile("/etc/firewall.user", value)
-       require("luci.sys").call("/etc/init.d/firewall restart >/dev/null 2<&1")
-       require("nixio").syslog('info', 'Restarting firewall on custom /etc/firewall.user change')
-end
-
-f.submit = translate("Restart Firewall")
-
-return f
diff --git a/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua b/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua
deleted file mode 100644 (file)
index d51f8fb..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local sys = require "luci.sys"
-local dsp = require "luci.dispatcher"
-local ft  = require "luci.tools.firewall"
-
-local m, s, o
-
-arg[1] = arg[1] or ""
-
-m = Map("firewall",
-       translate("Firewall - Port Forwards"),
-       translate("This page allows you to change advanced properties of the port \
-                  forwarding entry. In most cases there is no need to modify \
-                          those settings."))
-
-m.redirect = dsp.build_url("admin/network/firewall/forwards")
-
-if m.uci:get("firewall", arg[1]) ~= "redirect" then
-       luci.http.redirect(m.redirect)
-       return
-else
-       local name = m:get(arg[1], "name") or m:get(arg[1], "_name")
-       if not name or #name == 0 then
-               name = translate("(Unnamed Entry)")
-       end
-       m.title = "%s - %s" %{ translate("Firewall - Port Forwards"), name }
-end
-
-s = m:section(NamedSection, arg[1], "redirect", "")
-s.anonymous = true
-s.addremove = false
-
-ft.opt_enabled(s, Button)
-ft.opt_name(s, Value, translate("Name"))
-
-
-o = s:option(Value, "proto", translate("Protocol"))
-o:value("tcp udp", "TCP+UDP")
-o:value("tcp", "TCP")
-o:value("udp", "UDP")
-o:value("icmp", "ICMP")
-
-function o.cfgvalue(...)
-       local v = Value.cfgvalue(...)
-       if not v or v == "tcpudp" then
-               return "tcp udp"
-       end
-       return v
-end
-
-
-o = s:option(Value, "src", translate("Source zone"))
-o.nocreate = true
-o.default = "wan"
-o.template = "cbi/firewall_zonelist"
-o.rmempty = false
-
-
-o = s:option(DynamicList, "src_mac",
-       translate("Source MAC address"),
-       translate("Only match incoming traffic from these MACs."))
-o.rmempty = true
-o.datatype = "neg(macaddr)"
-o.placeholder = translate("any")
-
-luci.sys.net.mac_hints(function(mac, name)
-       o:value(mac, "%s (%s)" %{ mac, name })
-end)
-
-
-o = s:option(Value, "src_ip",
-       translate("Source IP address"),
-       translate("Only match incoming traffic from this IP or range."))
-o.rmempty = true
-o.datatype = "neg(ipmask4)"
-o.placeholder = translate("any")
-
-luci.sys.net.ipv4_hints(function(ip, name)
-       o:value(ip, "%s (%s)" %{ ip, name })
-end)
-
-
-o = s:option(Value, "src_port",
-       translate("Source port"),
-       translate("Only match incoming traffic originating from the given source port or port range on the client host"))
-o.rmempty = true
-o.datatype = "neg(portrange)"
-o.placeholder = translate("any")
-
-o:depends("proto", "tcp")
-o:depends("proto", "udp")
-o:depends("proto", "tcp udp")
-o:depends("proto", "tcpudp")
-
-o = s:option(Value, "src_dip",
-       translate("External IP address"),
-       translate("Only match incoming traffic directed at the given IP address."))
-
-luci.sys.net.ipv4_hints(function(ip, name)
-       o:value(ip, "%s (%s)" %{ ip, name })
-end)
-
-
-o.rmempty = true
-o.datatype = "neg(ipmask4)"
-o.placeholder = translate("any")
-
-
-o = s:option(Value, "src_dport", translate("External port"),
-       translate("Match incoming traffic directed at the given " ..
-               "destination port or port range on this host"))
-o.datatype = "neg(portrange)"
-
-o:depends("proto", "tcp")
-o:depends("proto", "udp")
-o:depends("proto", "tcp udp")
-o:depends("proto", "tcpudp")
-
-o = s:option(Value, "dest", translate("Internal zone"))
-o.nocreate = true
-o.default = "lan"
-o.template = "cbi/firewall_zonelist"
-
-
-o = s:option(Value, "dest_ip", translate("Internal IP address"),
-       translate("Redirect matched incoming traffic to the specified \
-               internal host"))
-o.datatype = "ipmask4"
-
-luci.sys.net.ipv4_hints(function(ip, name)
-       o:value(ip, "%s (%s)" %{ ip, name })
-end)
-
-
-o = s:option(Value, "dest_port",
-       translate("Internal port"),
-       translate("Redirect matched incoming traffic to the given port on \
-               the internal host"))
-o.placeholder = translate("any")
-o.datatype = "portrange"
-
-o:depends("proto", "tcp")
-o:depends("proto", "udp")
-o:depends("proto", "tcp udp")
-o:depends("proto", "tcpudp")
-
-o = s:option(Flag, "reflection", translate("Enable NAT Loopback"))
-o.rmempty = true
-o.default = o.enabled
-o.cfgvalue = function(...)
-       return Flag.cfgvalue(...) or "1"
-end
-
-
-s:option(Value, "extra",
-       translate("Extra arguments"),
-       translate("Passes additional arguments to iptables. Use with care!"))
-
-
-return m
diff --git a/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua b/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua
deleted file mode 100644 (file)
index 5d1ffe0..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2010-2012 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local ds = require "luci.dispatcher"
-local ft = require "luci.tools.firewall"
-
-m = Map("firewall", translate("Firewall - Port Forwards"),
-       translate("Port forwarding allows remote computers on the Internet to \
-                  connect to a specific computer or service within the \
-                  private LAN."))
-
---
--- Port Forwards
---
-
-s = m:section(TypedSection, "redirect", translate("Port Forwards"))
-s.template  = "cbi/tblsection"
-s.addremove = true
-s.anonymous = true
-s.sortable  = true
-s.extedit   = ds.build_url("admin/network/firewall/forwards/%s")
-s.template_addremove = "firewall/cbi_addforward"
-
-function s.create(self, section)
-       local n = m:formvalue("_newfwd.name")
-       local p = m:formvalue("_newfwd.proto")
-       local E = m:formvalue("_newfwd.extzone")
-       local e = m:formvalue("_newfwd.extport")
-       local I = m:formvalue("_newfwd.intzone")
-       local a = m:formvalue("_newfwd.intaddr")
-       local i = m:formvalue("_newfwd.intport")
-
-       if p == "other" or (p and a) then
-               created = TypedSection.create(self, section)
-
-               self.map:set(created, "target",    "DNAT")
-               self.map:set(created, "src",       E or "wan")
-               self.map:set(created, "dest",      I or "lan")
-               self.map:set(created, "proto",     (p ~= "other") and p or "all")
-               self.map:set(created, "src_dport", e)
-               self.map:set(created, "dest_ip",   a)
-               self.map:set(created, "dest_port", i)
-               self.map:set(created, "name",      n)
-       end
-
-       if p ~= "other" then
-               created = nil
-       end
-end
-
-function s.parse(self, ...)
-       TypedSection.parse(self, ...)
-       if created then
-               m.uci:save("firewall")
-               luci.http.redirect(ds.build_url(
-                       "admin/network/firewall/forwards", created
-               ))
-       end
-end
-
-function s.filter(self, sid)
-       return (self.map:get(sid, "target") ~= "SNAT")
-end
-
-function s.sectiontitle(self, sid)
-       return (self.map:get(sid, "name") or translate("Unnamed forward"))
-end
-
-
-local function forward_proto_txt(self, s)
-       return "%s-%s" %{
-               translate("IPv4"),
-               ft.fmt_proto(self.map:get(s, "proto"),
-                        self.map:get(s, "icmp_type")) or "TCP+UDP"
-       }
-end
-
-local function forward_src_txt(self, s)
-       local z = ft.fmt_zone(self.map:get(s, "src"), translate("any zone"))
-       local a = ft.fmt_ip(self.map:get(s, "src_ip"), translate("any host"))
-       local p = ft.fmt_port(self.map:get(s, "src_port"))
-       local m = ft.fmt_mac(self.map:get(s, "src_mac"))
-
-       if p and m then
-               return translatef("From %s in %s with source %s and %s", a, z, p, m)
-       elseif p or m then
-               return translatef("From %s in %s with source %s", a, z, p or m)
-       else
-               return translatef("From %s in %s", a, z)
-       end
-end
-
-local function forward_via_txt(self, s)
-       local a = ft.fmt_ip(self.map:get(s, "src_dip"), translate("any router IP"))
-       local p = ft.fmt_port(self.map:get(s, "src_dport"))
-
-       if p then
-               return translatef("Via %s at %s", a, p)
-       else
-               return translatef("Via %s", a)
-       end
-end
-
-match = s:option(DummyValue, "match", translate("Match"))
-match.rawhtml = true
-function match.cfgvalue(self, s)
-       return "<small>%s<br />%s<br />%s</small>" % {
-               forward_proto_txt(self, s),
-               forward_src_txt(self, s),
-               forward_via_txt(self, s)
-       }
-end
-
-
-dest = s:option(DummyValue, "dest", translate("Forward to"))
-dest.rawhtml = true
-function dest.cfgvalue(self, s)
-       local z = ft.fmt_zone(self.map:get(s, "dest"), translate("any zone"))
-       local a = ft.fmt_ip(self.map:get(s, "dest_ip"), translate("any host"))
-       local p = ft.fmt_port(self.map:get(s, "dest_port")) or
-               ft.fmt_port(self.map:get(s, "src_dport"))
-
-       if p then
-               return translatef("%s, %s in %s", a, p, z)
-       else
-               return translatef("%s in %s", a, z)
-       end
-end
-
-ft.opt_enabled(s, Flag, translate("Enable"))
-
-return m
diff --git a/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua b/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua
deleted file mode 100644 (file)
index def01c6..0000000
+++ /dev/null
@@ -1,365 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2010-2012 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-local dsp = require "luci.dispatcher"
-local ft = require "luci.tools.firewall"
-local nw = require "luci.model.network"
-local m, s, o, v, _
-
-arg[1] = arg[1] or ""
-
-m = Map("firewall",
-       translate("Firewall - Traffic Rules"),
-       translate("This page allows you to change advanced properties of the \
-                  traffic rule entry, such as matched source and destination \
-                          hosts."))
-
-m.redirect = dsp.build_url("admin/network/firewall/rules")
-
-nw.init(m.uci)
-
-local rule_type = m.uci:get("firewall", arg[1])
-if rule_type == "redirect" and m:get(arg[1], "target") ~= "SNAT" then
-       rule_type = nil
-end
-
-if not rule_type then
-       luci.http.redirect(m.redirect)
-       return
-
---
--- SNAT
---
-elseif rule_type == "redirect" then
-
-       local name = m:get(arg[1], "name") or m:get(arg[1], "_name")
-       if not name or #name == 0 then
-               name = translate("(Unnamed SNAT)")
-       else
-               name = "SNAT %s" % name
-       end
-
-       m.title = "%s - %s" %{ translate("Firewall - Traffic Rules"), name }
-
-       s = m:section(NamedSection, arg[1], "redirect", "")
-       s.anonymous = true
-       s.addremove = false
-
-
-       ft.opt_enabled(s, Button)
-       ft.opt_name(s, Value, translate("Name"))
-
-
-       o = s:option(Value, "proto",
-               translate("Protocol"),
-               translate("You may specify multiple by selecting \"-- custom --\" and \
-                          then entering protocols separated by space."))
-
-       o:value("all", "All protocols")
-       o:value("tcp udp", "TCP+UDP")
-       o:value("tcp", "TCP")
-       o:value("udp", "UDP")
-       o:value("icmp", "ICMP")
-
-       function o.cfgvalue(...)
-               local v = Value.cfgvalue(...)
-               if not v or v == "tcpudp" then
-                       return "tcp udp"
-               end
-               return v
-       end
-
-
-       o = s:option(Value, "src", translate("Source zone"))
-       o.nocreate = true
-       o.default = "wan"
-       o.template = "cbi/firewall_zonelist"
-
-
-       o = s:option(Value, "src_ip", translate("Source IP address"))
-       o.rmempty = true
-       o.datatype = "neg(ipmask4)"
-       o.placeholder = translate("any")
-
-       luci.sys.net.ipv4_hints(function(ip, name)
-               o:value(ip, "%s (%s)" %{ ip, name })
-       end)
-
-
-       o = s:option(Value, "src_port",
-               translate("Source port"),
-               translate("Match incoming traffic originating from the given source \
-                       port or port range on the client host."))
-       o.rmempty = true
-       o.datatype = "neg(portrange)"
-       o.placeholder = translate("any")
-
-       o:depends("proto", "tcp")
-       o:depends("proto", "udp")
-       o:depends("proto", "tcp udp")
-       o:depends("proto", "tcpudp")
-
-       o = s:option(Value, "dest", translate("Destination zone"))
-       o.nocreate = true
-       o.default = "lan"
-       o.template = "cbi/firewall_zonelist"
-
-
-       o = s:option(Value, "dest_ip", translate("Destination IP address"))
-       o.datatype = "neg(ipmask4)"
-
-       luci.sys.net.ipv4_hints(function(ip, name)
-               o:value(ip, "%s (%s)" %{ ip, name })
-       end)
-
-
-       o = s:option(Value, "dest_port",
-               translate("Destination port"),
-               translate("Match forwarded traffic to the given destination port or \
-                       port range."))
-
-       o.rmempty = true
-       o.placeholder = translate("any")
-       o.datatype = "neg(portrange)"
-
-       o:depends("proto", "tcp")
-       o:depends("proto", "udp")
-       o:depends("proto", "tcp udp")
-       o:depends("proto", "tcpudp")
-
-       o = s:option(Value, "src_dip",
-               translate("SNAT IP address"),
-               translate("Rewrite matched traffic to the given address."))
-       o.rmempty = false
-       o.datatype = "ip4addr"
-
-       for _, v in ipairs(nw:get_interfaces()) do
-               local a
-               for _, a in ipairs(v:ipaddrs()) do
-                       o:value(a:host():string(), '%s (%s)' %{
-                               a:host():string(), v:shortname()
-                       })
-               end
-       end
-
-
-       o = s:option(Value, "src_dport", translate("SNAT port"),
-               translate("Rewrite matched traffic to the given source port. May be \
-                       left empty to only rewrite the IP address."))
-       o.datatype = "portrange"
-       o.rmempty = true
-       o.placeholder = translate('Do not rewrite')
-
-       o:depends("proto", "tcp")
-       o:depends("proto", "udp")
-       o:depends("proto", "tcp udp")
-       o:depends("proto", "tcpudp")
-
-       s:option(Value, "extra",
-               translate("Extra arguments"),
-               translate("Passes additional arguments to iptables. Use with care!"))
-
-
---
--- Rule
---
-else
-       local name = m:get(arg[1], "name") or m:get(arg[1], "_name")
-       if not name or #name == 0 then
-               name = translate("(Unnamed Rule)")
-       end
-
-       m.title = "%s - %s" %{ translate("Firewall - Traffic Rules"), name }
-
-
-       s = m:section(NamedSection, arg[1], "rule", "")
-       s.anonymous = true
-       s.addremove = false
-
-       ft.opt_enabled(s, Button)
-       ft.opt_name(s, Value, translate("Name"))
-
-
-       o = s:option(ListValue, "family", translate("Restrict to address family"))
-       o.rmempty = true
-       o:value("", translate("IPv4 and IPv6"))
-       o:value("ipv4", translate("IPv4 only"))
-       o:value("ipv6", translate("IPv6 only"))
-
-
-       o = s:option(Value, "proto", translate("Protocol"))
-       o:value("all", translate("Any"))
-       o:value("tcp udp", "TCP+UDP")
-       o:value("tcp", "TCP")
-       o:value("udp", "UDP")
-       o:value("icmp", "ICMP")
-
-       function o.cfgvalue(...)
-               local v = Value.cfgvalue(...)
-               if not v or v == "tcpudp" then
-                       return "tcp udp"
-               end
-               return v
-       end
-
-
-       o = s:option(DropDown, "icmp_type", translate("Match ICMP type"))
-       o.multiple = true
-       o.display = 10
-       o.dropdown = 10
-       o.custom = true
-       o.cast = "table"
-
-       o:value("", "any")
-       o:value("echo-reply")
-       o:value("destination-unreachable")
-       o:value("network-unreachable")
-       o:value("host-unreachable")
-       o:value("protocol-unreachable")
-       o:value("port-unreachable")
-       o:value("fragmentation-needed")
-       o:value("source-route-failed")
-       o:value("network-unknown")
-       o:value("host-unknown")
-       o:value("network-prohibited")
-       o:value("host-prohibited")
-       o:value("TOS-network-unreachable")
-       o:value("TOS-host-unreachable")
-       o:value("communication-prohibited")
-       o:value("host-precedence-violation")
-       o:value("precedence-cutoff")
-       o:value("source-quench")
-       o:value("redirect")
-       o:value("network-redirect")
-       o:value("host-redirect")
-       o:value("TOS-network-redirect")
-       o:value("TOS-host-redirect")
-       o:value("echo-request")
-       o:value("router-advertisement")
-       o:value("router-solicitation")
-       o:value("time-exceeded")
-       o:value("ttl-zero-during-transit")
-       o:value("ttl-zero-during-reassembly")
-       o:value("parameter-problem")
-       o:value("ip-header-bad")
-       o:value("required-option-missing")
-       o:value("timestamp-request")
-       o:value("timestamp-reply")
-       o:value("address-mask-request")
-       o:value("address-mask-reply")
-
-       o:depends("proto", "icmp")
-
-
-       o = s:option(Value, "src", translate("Source zone"))
-       o.nocreate = true
-       o.allowany = true
-       o.allowlocal = "src"
-       o.template = "cbi/firewall_zonelist"
-
-
-       o = s:option(Value, "src_mac", translate("Source MAC address"))
-       o.datatype = "list(macaddr)"
-       o.placeholder = translate("any")
-
-       luci.sys.net.mac_hints(function(mac, name)
-               o:value(mac, "%s (%s)" %{ mac, name })
-       end)
-
-
-       o = s:option(Value, "src_ip", translate("Source address"))
-       o.datatype = "list(neg(ipmask))"
-       o.placeholder = translate("any")
-
-       luci.sys.net.ipv4_hints(function(ip, name)
-               o:value(ip, "%s (%s)" %{ ip, name })
-       end)
-
-
-       o = s:option(Value, "src_port", translate("Source port"))
-       o.datatype = "list(neg(portrange))"
-       o.placeholder = translate("any")
-
-       o:depends("proto", "tcp")
-       o:depends("proto", "udp")
-       o:depends("proto", "tcp udp")
-       o:depends("proto", "tcpudp")
-
-       o = s:option(Value, "dest_local", translate("Output zone"))
-       o.nocreate = true
-       o.allowany = true
-       o.template = "cbi/firewall_zonelist"
-       o.alias = "dest"
-       o:depends("src", "")
-
-       o = s:option(Value, "dest_remote", translate("Destination zone"))
-       o.nocreate = true
-       o.allowany = true
-       o.allowlocal = true
-       o.template = "cbi/firewall_zonelist"
-       o.alias = "dest"
-       o:depends({["src"] = "", ["!reverse"] = true})
-
-
-       o = s:option(Value, "dest_ip", translate("Destination address"))
-       o.datatype = "list(neg(ipmask))"
-       o.placeholder = translate("any")
-
-       luci.sys.net.ipv4_hints(function(ip, name)
-               o:value(ip, "%s (%s)" %{ ip, name })
-       end)
-
-
-       o = s:option(Value, "dest_port", translate("Destination port"))
-       o.datatype = "list(neg(portrange))"
-       o.placeholder = translate("any")
-
-       o:depends("proto", "tcp")
-       o:depends("proto", "udp")
-       o:depends("proto", "tcp udp")
-       o:depends("proto", "tcpudp")
-
-       o = s:option(ListValue, "target", translate("Action"))
-       o.default = "ACCEPT"
-       o:value("DROP", translate("drop"))
-       o:value("ACCEPT", translate("accept"))
-       o:value("REJECT", translate("reject"))
-       o:value("NOTRACK", translate("don't track"))
-
-
-       s:option(Value, "extra",
-               translate("Extra arguments"),
-               translate("Passes additional arguments to iptables. Use with care!"))
-end
-
-o = s:option(DropDown, "weekdays", translate("Week Days"))
-o.multiple = true
-o.display = 5
-o:value("Sun", translate("Sunday"))
-o:value("Mon", translate("Monday"))
-o:value("Tue", translate("Tuesday"))
-o:value("Wed", translate("Wednesday"))
-o:value("Thu", translate("Thursday"))
-o:value("Fri", translate("Friday"))
-o:value("Sat", translate("Saturday"))
-
-o = s:option(DropDown, "monthdays", translate("Month Days"))
-o.multiple = true
-o.display = 15
-for i = 1,31 do
-       o:value(translate(i))
-end
-
-o = s:option(Value, "start_time", translate("Start Time (hh:mm:ss)"))
-o.datatype = "timehhmmss"
-o = s:option(Value, "stop_time", translate("Stop Time (hh:mm:ss)"))
-o.datatype = "timehhmmss"
-o = s:option(Value, "start_date", translate("Start Date (yyyy-mm-dd)"))
-o.datatype = "dateyyyymmdd"
-o = s:option(Value, "stop_date", translate("Stop Date (yyyy-mm-dd)"))
-o.datatype = "dateyyyymmdd"
-
-o = s:option(Flag, "utc_time", translate("Time in UTC"))
-o.default = o.disabled
-
-return m
diff --git a/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua b/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua
deleted file mode 100644 (file)
index f4b6b2a..0000000
+++ /dev/null
@@ -1,273 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2010-2012 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local ds = require "luci.dispatcher"
-local ft = require "luci.tools.firewall"
-
-m = Map("firewall",
-       translate("Firewall - Traffic Rules"),
-       translate("Traffic rules define policies for packets traveling between \
-               different zones, for example to reject traffic between certain hosts \
-               or to open WAN ports on the router."))
-
---
--- Rules
---
-
-s = m:section(TypedSection, "rule", translate("Traffic Rules"))
-s.addremove = true
-s.anonymous = true
-s.sortable  = true
-s.template = "cbi/tblsection"
-s.extedit   = ds.build_url("admin/network/firewall/rules/%s")
-s.defaults.target = "ACCEPT"
-s.template_addremove = "firewall/cbi_addrule"
-
-
-function s.create(self, section)
-       created = TypedSection.create(self, section)
-end
-
-function s.parse(self, ...)
-       TypedSection.parse(self, ...)
-
-       local i_n = m:formvalue("_newopen.name")
-       local i_p = m:formvalue("_newopen.proto")
-       local i_e = m:formvalue("_newopen.extport")
-       local i_x = m:formvalue("_newopen.submit")
-
-       local f_n = m:formvalue("_newfwd.name")
-       local f_s = m:formvalue("_newfwd.src")
-       local f_d = m:formvalue("_newfwd.dest")
-       local f_x = m:formvalue("_newfwd.submit")
-
-       if i_x then
-               created = TypedSection.create(self, section)
-
-               self.map:set(created, "target",    "ACCEPT")
-               self.map:set(created, "src",       "wan")
-               self.map:set(created, "proto",     (i_p ~= "other") and i_p or "all")
-               self.map:set(created, "dest_port", i_e)
-               self.map:set(created, "name",      i_n)
-
-               if i_p ~= "other" and i_e and #i_e > 0 then
-                       created = nil
-               end
-
-       elseif f_x then
-               created = TypedSection.create(self, section)
-
-               self.map:set(created, "target", "ACCEPT")
-               self.map:set(created, "src",    f_s)
-               self.map:set(created, "dest",   f_d)
-               self.map:set(created, "name",   f_n)
-       end
-
-       if created then
-               m.uci:save("firewall")
-               luci.http.redirect(ds.build_url(
-                       "admin/network/firewall/rules", created
-               ))
-       end
-end
-
-function s.sectiontitle(self, sid)
-       return (self.map:get(sid, "name") or translate("Unnamed rule"))
-end
-
-local function rule_proto_txt(self, s)
-       local f = self.map:get(s, "family")
-       local p = ft.fmt_proto(self.map:get(s, "proto"),
-                              self.map:get(s, "icmp_type")) or translate("traffic")
-
-       if f and f:match("4") then
-               return "%s-%s" %{ translate("IPv4"), p }
-       elseif f and f:match("6") then
-               return "%s-%s" %{ translate("IPv6"), p }
-       else
-               return "%s %s" %{ translate("Any"), p }
-       end
-end
-
-local function rule_src_txt(self, s)
-       local z = ft.fmt_zone(self.map:get(s, "src"))
-       local p = ft.fmt_port(self.map:get(s, "src_port"))
-       local m = ft.fmt_mac(self.map:get(s, "src_mac"))
-
-       -- Forward/Input
-       if z and #z > 0 then
-               local a = ft.fmt_ip(self.map:get(s, "src_ip"), translate("any host"))
-               if p and m then
-                       return translatef("From %s in %s with source %s and %s", a, z, p, m)
-               elseif p or m then
-                       return translatef("From %s in %s with source %s", a, z, p or m)
-               else
-                       return translatef("From %s in %s", a, z)
-               end
-
-       -- Output
-       else
-               local a = ft.fmt_ip(self.map:get(s, "src_ip"), translate("any router IP"))
-               if p and m then
-                       return translatef("From %s on <var>this device</var> with source %s and %s", a, p, m)
-               elseif p or m then
-                       return translatef("From %s on <var>this device</var> with source %s", a, p or m)
-               else
-                       return translatef("From %s on <var>this device</var>", a)
-               end
-       end
-end
-
-local function rule_dest_txt(self, s)
-       local z = ft.fmt_zone(self.map:get(s, "dest"))
-       local p = ft.fmt_port(self.map:get(s, "dest_port"))
-
-       -- Forward
-       if z then
-               local a = ft.fmt_ip(self.map:get(s, "dest_ip"), translate("any host"))
-               if p then
-                       return translatef("To %s, %s in %s", a, p, z)
-               else
-                       return translatef("To %s in %s", a, z)
-               end
-
-       -- Input
-       else
-               local a = ft.fmt_ip(self.map:get(s, "dest_ip"),
-                       translate("any router IP"))
-
-               if p then
-                       return translatef("To %s at %s on <var>this device</var>", a, p)
-               else
-                       return translatef("To %s on <var>this device</var>", a)
-               end
-       end
-end
-
-local function snat_dest_txt(self, s)
-       local z = ft.fmt_zone(self.map:get(s, "dest"), translate("any zone"))
-       local a = ft.fmt_ip(self.map:get(s, "dest_ip"), translate("any host"))
-       local p = ft.fmt_port(self.map:get(s, "dest_port")) or
-               ft.fmt_port(self.map:get(s, "src_dport"))
-
-       if p then
-               return translatef("To %s, %s in %s", a, p, z)
-       else
-               return translatef("To %s in %s", a, z)
-       end
-end
-
-
-match = s:option(DummyValue, "match", translate("Match"))
-match.rawhtml = true
-function match.cfgvalue(self, s)
-       return "<small>%s<br />%s<br />%s</small>" % {
-               rule_proto_txt(self, s),
-               rule_src_txt(self, s),
-               rule_dest_txt(self, s)
-       }
-end
-
-target = s:option(DummyValue, "target", translate("Action"))
-target.rawhtml = true
-function target.cfgvalue(self, s)
-       local t = ft.fmt_target(self.map:get(s, "target"), self.map:get(s, "src"), self.map:get(s, "dest"))
-       local l = ft.fmt_limit(self.map:get(s, "limit"),
-               self.map:get(s, "limit_burst"))
-
-       if l then
-               return translatef("<var>%s</var> and limit to %s", t, l)
-       else
-               return "<var>%s</var>" % t
-       end
-end
-
-ft.opt_enabled(s, Flag, translate("Enable"))
-
-
---
--- SNAT
---
-
-s = m:section(TypedSection, "redirect",
-       translate("Source NAT"),
-       translate("Source NAT is a specific form of masquerading which allows \
-               fine grained control over the source IP used for outgoing traffic, \
-               for example to map multiple WAN addresses to internal subnets."))
-s.template  = "cbi/tblsection"
-s.addremove = true
-s.anonymous = true
-s.sortable  = true
-s.extedit   = ds.build_url("admin/network/firewall/rules/%s")
-s.template_addremove = "firewall/cbi_addsnat"
-
-function s.create(self, section)
-       created = TypedSection.create(self, section)
-end
-
-function s.parse(self, ...)
-       TypedSection.parse(self, ...)
-
-       local n = m:formvalue("_newsnat.name")
-       local s = m:formvalue("_newsnat.src")
-       local d = m:formvalue("_newsnat.dest")
-       local a = m:formvalue("_newsnat.dip")
-       local p = m:formvalue("_newsnat.dport")
-       local x = m:formvalue("_newsnat.submit")
-
-       if x and a and #a > 0 then
-               created = TypedSection.create(self, section)
-
-               self.map:set(created, "target",    "SNAT")
-               self.map:set(created, "src",       s)
-               self.map:set(created, "dest",      d)
-               self.map:set(created, "proto",     "all")
-               self.map:set(created, "src_dip",   a)
-               self.map:set(created, "src_dport", p)
-               self.map:set(created, "name",      n)
-       end
-
-       if created then
-               m.uci:save("firewall")
-               luci.http.redirect(ds.build_url(
-                       "admin/network/firewall/rules", created
-               ))
-       end
-end
-
-function s.filter(self, sid)
-       return (self.map:get(sid, "target") == "SNAT")
-end
-
-function s.sectiontitle(self, sid)
-       return (self.map:get(sid, "name") or translate("Unnamed SNAT"))
-end
-
-match = s:option(DummyValue, "match", translate("Match"))
-match.rawhtml = true
-function match.cfgvalue(self, s)
-       return "<small>%s<br />%s<br />%s</small>" % {
-               rule_proto_txt(self, s),
-               rule_src_txt(self, s),
-               snat_dest_txt(self, s)
-       }
-end
-
-snat = s:option(DummyValue, "via", translate("Action"))
-snat.rawhtml = true
-function snat.cfgvalue(self, s)
-       local a = ft.fmt_ip(self.map:get(s, "src_dip"))
-       local p = ft.fmt_port(self.map:get(s, "src_dport"))
-
-       if a and p then
-               return translatef("Rewrite to source %s, %s", a, p)
-       else
-               return translatef("Rewrite to source %s", a or p)
-       end
-end
-
-ft.opt_enabled(s, Flag, translate("Enable"))
-
-
-return m
diff --git a/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua b/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua
deleted file mode 100644 (file)
index e168c3c..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2010-2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local nw = require "luci.model.network"
-local fw = require "luci.model.firewall"
-local ds = require "luci.dispatcher"
-local ut = require "luci.util"
-
-local m, p, i, v
-local s, name, net, family, msrc, mdest, log, lim
-local s2, out, inp
-
-
-m = Map("firewall", translate("Firewall - Zone Settings"))
-m.redirect = luci.dispatcher.build_url("admin/network/firewall/zones")
-
-fw.init(m.uci)
-nw.init(m.uci)
-
-
-local zone = fw:get_zone(arg[1])
-if not zone then
-       luci.http.redirect(ds.build_url("admin/network/firewall/zones"))
-       return
-else
-       m.title = "%s - %s" %{
-               translate("Firewall - Zone Settings"),
-               translatef("Zone %q", zone:name() or "?")
-       }
-end
-
-
-s = m:section(NamedSection, zone.sid, "zone",
-       translatef("Zone %q", zone:name()),
-       translatef("This section defines common properties of %q. \
-               The <em>input</em> and <em>output</em> options set the default \
-               policies for traffic entering and leaving this zone while the \
-               <em>forward</em> option describes the policy for forwarded traffic \
-               between different networks within the zone. \
-               <em>Covered networks</em> specifies which available networks are \
-               members of this zone.", zone:name()))
-
-s.anonymous = true
-s.addremove = false
-
-m.on_commit = function(map)
-       local zone = fw:get_zone(arg[1])
-       if zone then
-               s.section  = zone.sid
-               s2.section = zone.sid
-       end
-end
-
-
-s:tab("general", translate("General Settings"))
-s:tab("advanced", translate("Advanced Settings"))
-
-
-name = s:taboption("general", Value, "name", translate("Name"))
-name.optional = false
-name.forcewrite = true
-name.datatype = "and(uciname,maxlength(11))"
-
-function name.write(self, section, value)
-       if zone:name() ~= value then
-               fw:rename_zone(zone:name(), value)
-               out.exclude = value
-               inp.exclude = value
-       end
-end
-
-p = {
-       s:taboption("general", ListValue, "input", translate("Input")),
-       s:taboption("general", ListValue, "output", translate("Output")),
-       s:taboption("general", ListValue, "forward", translate("Forward"))
-}
-
-for i, v in ipairs(p) do
-       v:value("REJECT", translate("reject"))
-       v:value("DROP", translate("drop"))
-       v:value("ACCEPT", translate("accept"))
-end
-
-s:taboption("general", Flag, "masq", translate("Masquerading"))
-s:taboption("general", Flag, "mtu_fix", translate("MSS clamping"))
-
-net = s:taboption("general", Value, "network", translate("Covered networks"))
-net.template = "cbi/network_netlist"
-net.widget = "checkbox"
-net.cast = "string"
-
-function net.formvalue(self, section)
-       return Value.formvalue(self, section) or "-"
-end
-
-function net.cfgvalue(self, section)
-       return Value.cfgvalue(self, section) or name:cfgvalue(section)
-end
-
-function net.write(self, section, value)
-       zone:clear_networks()
-
-       local net
-       for net in ut.imatch(value) do
-               local n = nw:get_network(net) or nw:add_network(net, { proto = "none" })
-               if n then
-                       zone:add_network(n:name())
-               end
-       end
-end
-
-
-family = s:taboption("advanced", ListValue, "family",
-       translate("Restrict to address family"))
-
-family.rmempty = true
-family:value("", translate("IPv4 and IPv6"))
-family:value("ipv4", translate("IPv4 only"))
-family:value("ipv6", translate("IPv6 only"))
-
-msrc = s:taboption("advanced", DynamicList, "masq_src",
-       translate("Restrict Masquerading to given source subnets"))
-
-msrc.optional = true
-msrc.datatype = "list(neg(or(uciname,hostname,ipmask4)))"
-msrc.placeholder = "0.0.0.0/0"
-msrc:depends("family", "")
-msrc:depends("family", "ipv4")
-
-mdest = s:taboption("advanced", DynamicList, "masq_dest",
-       translate("Restrict Masquerading to given destination subnets"))
-
-mdest.optional = true
-mdest.datatype = "list(neg(or(uciname,hostname,ipmask4)))"
-mdest.placeholder = "0.0.0.0/0"
-mdest:depends("family", "")
-mdest:depends("family", "ipv4")
-
-s:taboption("advanced", Flag, "conntrack",
-       translate("Force connection tracking"))
-
-log = s:taboption("advanced", Flag, "log",
-       translate("Enable logging on this zone"))
-
-log.rmempty = true
-log.enabled = "1"
-
-lim = s:taboption("advanced", Value, "log_limit",
-       translate("Limit log messages"))
-
-lim.placeholder = "10/minute"
-lim:depends("log", "1")
-
-
-s2 = m:section(NamedSection, zone.sid, "fwd_out",
-       translate("Inter-Zone Forwarding"),
-       translatef("The options below control the forwarding policies between \
-               this zone (%s) and other zones. <em>Destination zones</em> cover \
-               forwarded traffic <strong>originating from %q</strong>. \
-               <em>Source zones</em> match forwarded traffic from other zones \
-               <strong>targeted at %q</strong>. The forwarding rule is \
-               <em>unidirectional</em>, e.g. a forward from lan to wan does \
-               <em>not</em> imply a permission to forward from wan to lan as well.",
-               zone:name(), zone:name(), zone:name()
-
-       ))
-
-out = s2:option(Value, "out",
-       translate("Allow forward to <em>destination zones</em>:"))
-
-out.nocreate = true
-out.widget = "checkbox"
-out.exclude = zone:name()
-out.template = "cbi/firewall_zonelist"
-
-inp = s2:option(Value, "in",
-       translate("Allow forward from <em>source zones</em>:"))
-
-inp.nocreate = true
-inp.widget = "checkbox"
-inp.exclude = zone:name()
-inp.template = "cbi/firewall_zonelist"
-
-function out.cfgvalue(self, section)
-       local v = { }
-       local f
-       for _, f in ipairs(zone:get_forwardings_by("src")) do
-               v[#v+1] = f:dest()
-       end
-       return table.concat(v, " ")
-end
-
-function inp.cfgvalue(self, section)
-       local v = { }
-       local f
-       for _, f in ipairs(zone:get_forwardings_by("dest")) do
-               v[#v+1] = f:src()
-       end
-       return v
-end
-
-function out.formvalue(self, section)
-       return Value.formvalue(self, section) or "-"
-end
-
-function inp.formvalue(self, section)
-       return Value.formvalue(self, section) or "-"
-end
-
-function out.write(self, section, value)
-       zone:del_forwardings_by("src")
-
-       local f
-       for f in ut.imatch(value) do
-               zone:add_forwarding_to(f)
-       end
-end
-
-function inp.write(self, section, value)
-       zone:del_forwardings_by("dest")
-
-       local f
-       for f in ut.imatch(value) do
-               zone:add_forwarding_from(f)
-       end
-end
-
-return m
diff --git a/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua b/package/luci/applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua
deleted file mode 100644 (file)
index 46402a8..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local ds = require "luci.dispatcher"
-local fw = require "luci.model.firewall"
-local fs = require "nixio.fs"
-
-local m, s, o, p, i, v
-
-m = Map("firewall",
-       translate("Firewall - Zone Settings"),
-       translate("The firewall creates zones over your network interfaces to control network traffic flow."))
-
-fw.init(m.uci)
-
-s = m:section(TypedSection, "defaults", translate("General Settings"))
-s.anonymous = true
-s.addremove = false
-
-s:option(Flag, "syn_flood", translate("Enable SYN-flood protection"))
-
-o = s:option(Flag, "drop_invalid", translate("Drop invalid packets"))
-
-p = {
-       s:option(ListValue, "input", translate("Input")),
-       s:option(ListValue, "output", translate("Output")),
-       s:option(ListValue, "forward", translate("Forward"))
-}
-
-for i, v in ipairs(p) do
-       v:value("REJECT", translate("reject"))
-       v:value("DROP", translate("drop"))
-       v:value("ACCEPT", translate("accept"))
-end
-
--- Netfilter flow offload support
-
-local offload = fs.access("/sys/module/xt_FLOWOFFLOAD/refcnt")
-
-if offload then
-       s:option(DummyValue, "offload_advice",
-               translate("Routing/NAT Offloading"),
-               translate("Experimental feature. Not fully compatible with QoS/SQM."))
-
-       o = s:option(Flag, "flow_offloading",
-               translate("Software flow offloading"),
-               translate("Software based offloading for routing/NAT"))
-       o.optional = true
-
-       o = s:option(Flag, "flow_offloading_hw",
-               translate("Hardware flow offloading"),
-               translate("Requires hardware NAT support. Implemented at least for mt7621"))
-       o.optional = true
-       o:depends( "flow_offloading", 1)
-end
-
--- Firewall zones
-
-s = m:section(TypedSection, "zone", translate("Zones"))
-s.template = "cbi/tblsection"
-s.anonymous = true
-s.addremove = true
-s.extedit   = ds.build_url("admin", "network", "firewall", "zones", "%s")
-
-function s.sectiontitle(self, sid)
-       local z = fw:get_zone(sid)
-       return z:name()
-end
-
-function s.create(self)
-       local z = fw:new_zone()
-       if z then
-               luci.http.redirect(
-                       ds.build_url("admin", "network", "firewall", "zones", z.sid)
-               )
-       end
-end
-
-function s.remove(self, section)
-       return fw:del_zone(section)
-end
-
-o = s:option(DummyValue, "_info", translate("Zone ⇒ Forwardings"))
-o.template = "cbi/firewall_zoneforwards"
-o.cfgvalue = function(self, section)
-       return self.map:get(section, "name")
-end
-
-p = {
-       s:option(ListValue, "input", translate("Input")),
-       s:option(ListValue, "output", translate("Output")),
-       s:option(ListValue, "forward", translate("Forward"))
-}
-
-for i, v in ipairs(p) do
-       v:value("REJECT", translate("reject"))
-       v:value("DROP", translate("drop"))
-       v:value("ACCEPT", translate("accept"))
-end
-
-s:option(Flag, "masq", translate("Masquerading"))
-s:option(Flag, "mtu_fix", translate("MSS clamping"))
-
-return m
diff --git a/package/luci/applications/luci-app-firewall/luasrc/tools/firewall.lua b/package/luci/applications/luci-app-firewall/luasrc/tools/firewall.lua
deleted file mode 100644 (file)
index 055342b..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
--- Copyright 2011-2012 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.tools.firewall", package.seeall)
-
-local ut = require "luci.util"
-local ip = require "luci.ip"
-local nx = require "nixio"
-
-local translate, translatef = luci.i18n.translate, luci.i18n.translatef
-
-local function _(...)
-       return tostring(translate(...))
-end
-
-function fmt_neg(x)
-       if type(x) == "string" then
-               local v, neg = x:gsub("^ *! *", "")
-               if neg > 0 then
-                       return v, "%s " % _("not")
-               else
-                       return x, ""
-               end
-       end
-       return x, ""
-end
-
-function fmt_mac(x)
-       if x and #x > 0 then
-               local m, n
-               local l = { _("MAC"), " " }
-               for m in ut.imatch(x) do
-                       m, n = fmt_neg(m)
-                       l[#l+1] = "<var>%s%s</var>" %{ n, m }
-                       l[#l+1] = ", "
-               end
-               if #l > 1 then
-                       l[#l] = nil
-                       if #l > 3 then
-                               l[1] = _("MACs")
-                       end
-                       return table.concat(l, "")
-               end
-       end
-end
-
-function fmt_port(x, d)
-       if x and #x > 0 then
-               local p, n
-               local l = { _("port"), " " }
-               for p in ut.imatch(x) do
-                       p, n = fmt_neg(p)
-                       local a, b = p:match("(%d+)%D+(%d+)")
-                       if a and b then
-                               l[1] = _("ports")
-                               l[#l+1] = "<var>%s%d-%d</var>" %{ n, a, b }
-                       else
-                               l[#l+1] = "<var>%s%d</var>" %{ n, p }
-                       end
-                       l[#l+1] = ", "
-               end
-               if #l > 1 then
-                       l[#l] = nil
-                       if #l > 3 then
-                               l[1] = _("ports")
-                       end
-                       return table.concat(l, "")
-               end
-       end
-       return d and "<var>%s</var>" % d
-end
-
-function fmt_ip(x, d)
-       if x and #x > 0 then
-               local l = { _("IP"), " " }
-               local v, a, n
-               for v in ut.imatch(x) do
-                       v, n = fmt_neg(v)
-                       a, m = v:match("(%S+)/(%d+%.%S+)")
-                       a = a or v
-                       a = a:match(":") and ip.IPv6(a, m) or ip.IPv4(a, m)
-                       if a and (a:is6() and a:prefix() < 128 or a:prefix() < 32) then
-                               l[1] = _("IP range")
-                               l[#l+1] = "<var title='%s - %s'>%s%s</var>" %{
-                                       a:minhost():string(),
-                                       a:maxhost():string(),
-                                       n, a:string()
-                               }
-                       else
-                               l[#l+1] = "<var>%s%s</var>" %{
-                                       n,
-                                       a and a:string() or v
-                               }
-                       end
-                       l[#l+1] = ", "
-               end
-               if #l > 1 then
-                       l[#l] = nil
-                       if #l > 3 then
-                               l[1] = _("IPs")
-                       end
-                       return table.concat(l, "")
-               end
-       end
-       return d and "<var>%s</var>" % d
-end
-
-function fmt_zone(x, d)
-       if x == "*" then
-               return "<var>%s</var>" % _("any zone")
-       elseif x and #x > 0 then
-               return "<var>%s</var>" % x
-       elseif d then
-               return "<var>%s</var>" % d
-       end
-end
-
-function fmt_icmp_type(x)
-       if x and #x > 0 then
-               local t, v, n
-               local l = { _("type"), " " }
-               for v in ut.imatch(x) do
-                       v, n = fmt_neg(v)
-                       l[#l+1] = "<var>%s%s</var>" %{ n, v }
-                       l[#l+1] = ", "
-               end
-               if #l > 1 then
-                       l[#l] = nil
-                       if #l > 3 then
-                               l[1] = _("types")
-                       end
-                       return table.concat(l, "")
-               end
-       end
-end
-
-function fmt_proto(x, icmp_types)
-       if x and #x > 0 then
-               local v, n
-               local l = { }
-               local t = fmt_icmp_type(icmp_types)
-               for v in ut.imatch(x) do
-                       v, n = fmt_neg(v)
-                       if v == "tcpudp" then
-                               l[#l+1] = "TCP"
-                               l[#l+1] = ", "
-                               l[#l+1] = "UDP"
-                               l[#l+1] = ", "
-                       elseif v ~= "all" then
-                               local p = nx.getproto(v)
-                               if p then
-                                       -- ICMP
-                                       if (p.proto == 1 or p.proto == 58) and t then
-                                               l[#l+1] = translatef(
-                                                       "%s%s with %s",
-                                                       n, p.aliases[1] or p.name, t
-                                               )
-                                       else
-                                               l[#l+1] = "%s%s" %{
-                                                       n,
-                                                       p.aliases[1] or p.name
-                                               }
-                                       end
-                                       l[#l+1] = ", "
-                               end
-                       end
-               end
-               if #l > 0 then
-                       l[#l] = nil
-                       return table.concat(l, "")
-               end
-       end
-end
-
-function fmt_limit(limit, burst)
-       burst = tonumber(burst)
-       if limit and #limit > 0 then
-               local l, u = limit:match("(%d+)/(%w+)")
-               l = tonumber(l or limit)
-               u = u or "second"
-               if l then
-                       if u:match("^s") then
-                               u = _("second")
-                       elseif u:match("^m") then
-                               u = _("minute")
-                       elseif u:match("^h") then
-                               u = _("hour")
-                       elseif u:match("^d") then
-                               u = _("day")
-                       end
-                       if burst and burst > 0 then
-                               return translatef("<var>%d</var> pkts. per <var>%s</var>, \
-                                   burst <var>%d</var> pkts.", l, u, burst)
-                       else
-                               return translatef("<var>%d</var> pkts. per <var>%s</var>", l, u)
-                       end
-               end
-       end
-end
-
-function fmt_target(x, src, dest)
-       if not src or #src == 0 then
-               if x == "ACCEPT" then
-                       return _("Accept output")
-               elseif x == "REJECT" then
-                       return _("Refuse output")
-               elseif x == "NOTRACK" then
-                       return _("Do not track output")
-               else --if x == "DROP" then
-                       return _("Discard output")
-               end
-       elseif dest and #dest > 0 then
-               if x == "ACCEPT" then
-                       return _("Accept forward")
-               elseif x == "REJECT" then
-                       return _("Refuse forward")
-               elseif x == "NOTRACK" then
-                       return _("Do not track forward")
-               else --if x == "DROP" then
-                       return _("Discard forward")
-               end
-       else
-               if x == "ACCEPT" then
-                       return _("Accept input")
-               elseif x == "REJECT" then
-                       return _("Refuse input")
-               elseif x == "NOTRACK" then
-                       return _("Do not track input")
-               else --if x == "DROP" then
-                       return _("Discard input")
-               end
-       end
-end
-
-
-function opt_enabled(s, t, ...)
-       if t == luci.cbi.Button then
-               local o = s:option(t, "__enabled")
-               function o.render(self, section)
-                       if self.map:get(section, "enabled") ~= "0" then
-                               self.title      = _("Rule is enabled")
-                               self.inputtitle = _("Disable")
-                               self.inputstyle = "reset"
-                       else
-                               self.title      = _("Rule is disabled")
-                               self.inputtitle = _("Enable")
-                               self.inputstyle = "apply"
-                       end
-                       t.render(self, section)
-               end
-               function o.write(self, section, value)
-                       if self.map:get(section, "enabled") ~= "0" then
-                               self.map:set(section, "enabled", "0")
-                       else
-                               self.map:del(section, "enabled")
-                       end
-               end
-               return o
-       else
-               local o = s:option(t, "enabled", ...)
-               o.default = "1"
-               return o
-       end
-end
-
-function opt_name(s, t, ...)
-       local o = s:option(t, "name", ...)
-
-       function o.cfgvalue(self, section)
-               return self.map:get(section, "name") or
-                       self.map:get(section, "_name") or "-"
-       end
-
-       function o.write(self, section, value)
-               if value ~= "-" then
-                       self.map:set(section, "name", value)
-                       self.map:del(section, "_name")
-               else
-                       self:remove(section)
-               end
-       end
-
-       function o.remove(self, section)
-               self.map:del(section, "name")
-               self.map:del(section, "_name")
-       end
-
-       return o
-end
diff --git a/package/luci/applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm b/package/luci/applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm
deleted file mode 100644 (file)
index 38f36b4..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-<%-
-       local fw = require "luci.model.firewall".init()
-       local izl = { }
-       local ezl = { }
-       local _, z
-       for _, z in ipairs(fw:get_zones()) do
-               if z:name() ~= "wan" then
-                       izl[#izl+1] = z
-               end
-               if z:name() ~= "lan" then
-                       ezl[#ezl+1] = z
-               end
-       end
-
-       local keys, vals = { }, { }
-       luci.sys.net.ipv4_hints(function(ip, name)
-               keys[#keys+1] = ip
-               vals[#vals+1] = '%s (%s)' %{ ip, name }
-       end)
--%>
-
-<h4><%:New port forward%></h4>
-<div class="table">
-       <div class="tr table-titles">
-               <div class="th"><%:Name%></div>
-               <div class="th"><%:Protocol%></div>
-               <div class="th"><%:External zone%></div>
-               <div class="th"><%:External port%></div>
-               <div class="th"><%:Internal zone%></div>
-               <div class="th"><%:Internal IP address%></div>
-               <div class="th"><%:Internal port%></div>
-               <div class="th"></div>
-       </div>
-       <div class="tr">
-               <div class="td">
-                       <input type="text" class="cbi-input-text" id="_newfwd.name" name="_newfwd.name" placeholder="<%:New port forward%>" />
-               </div>
-               <div class="td">
-                       <select class="cbi-input-select" id="_newfwd.proto" name="_newfwd.proto">
-                               <option value="tcp udp">TCP+UDP</option>
-                               <option value="tcp">TCP</option>
-                               <option value="udp">UDP</option>
-                               <option value="other"><%:Other...%></option>
-                       </select>
-               </div>
-               <div class="td">
-                       <select class="cbi-input-select" id="_newfwd.extzone" name="_newfwd.extzone">
-                               <% for _, z in ipairs(ezl) do -%><option value="<%=z:name()%>"><%=z:name()%></option><%- end %>
-                       </select>
-               </div>
-               <div class="td">
-                       <input type="text" class="cbi-input-text" id="_newfwd.extport" name="_newfwd.extport" data-type="portrange" data-optional="true" />
-               </div>
-               <div class="td">
-                       <select class="cbi-input-select" id="_newfwd.intzone" name="_newfwd.intzone">
-                               <% for _, z in ipairs(izl) do -%><option value="<%=z:name()%>"><%=z:name()%></option><%- end %>
-                       </select>
-               </div>
-               <div class="td">
-                       <input type="text" class="cbi-input-text" id="_newfwd.intaddr" name="_newfwd.intaddr" data-type="host" data-optional="true"<%=
-                               ifattr(#keys > 0, "data-choices", {keys, vals})
-                       %>/>
-               </div>
-               <div class="td">
-                       <input type="text" class="cbi-input-text" id="_newfwd.intport" name="_newfwd.intport" data-type="portrange" data-optional="true" />
-               </div>
-               <div class="td bottom">
-                       <input type="submit" class="cbi-button cbi-button-add" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" value="<%:Add%>" />
-               </div>
-       </div>
-</div>
-
-<script type="text/javascript">//<![CDATA[
-       document.getElementById('_newfwd.extport').addEventListener('blur',
-               function() {
-                       var n = document.getElementById('_newfwd.name');
-                       var p = document.getElementById('_newfwd.proto');
-                       var i = document.getElementById('_newfwd.intport');
-
-                       if (!this.className.match(/invalid/))
-                       {
-                               if (!i.value) i.value = this.value;
-
-                               if (!n.value)
-                               {
-                                       n.value = 'Forward' + this.value;
-                               }
-                       }
-               });
-//]]></script>
diff --git a/package/luci/applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm b/package/luci/applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm
deleted file mode 100644 (file)
index e0092a7..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-<%
-       local fw = require "luci.model.firewall".init()
-       local zones = fw:get_zones()
-%>
-
-<% if #zones > 0 then %>
-       <h4><%:Open ports on router%></h4>
-       <div class="table">
-               <div class="tr cbi-section-table-titles">
-                       <div class="th"><%:Name%></div>
-                       <div class="th"><%:Protocol%></div>
-                       <div class="th"><%:External port%></div>
-                       <div class="th"></div>
-               </div>
-               <div class="tr">
-                       <div class="td">
-                               <input type="text" class="cbi-input-text" id="_newopen.name" name="_newopen.name" placeholder="<%:New input rule%>" />
-                       </div>
-                       <div class="td">
-                               <select class="cbi-input-select" id="_newopen.proto" name="_newopen.proto">
-                                       <option value="tcp udp">TCP+UDP</option>
-                                       <option value="tcp">TCP</option>
-                                       <option value="udp">UDP</option>
-                                       <option value="other"><%:Other...%></option>
-                               </select>
-                       </div>
-                       <div class="td">
-                               <input type="text" class="cbi-input-text" id="_newopen.extport" name="_newopen.extport" />
-                       </div>
-                       <div class="td bottom">
-                               <input type="submit" class="cbi-button cbi-button-add" name="_newopen.submit" value="<%:Add%>" />
-                       </div>
-               </div>
-       </div>
-<% end %>
-<% if #zones > 1 then %>
-       <h4><%:New forward rule%></h4>
-       <div class="table">
-               <div class="tr cbi-section-table-titles">
-                       <div class="th"><%:Name%></div>
-                       <div class="th"><%:Source zone%></div>
-                       <div class="th"><%:Destination zone%></div>
-                       <div class="th"></div>
-               </div>
-               <div class="tr">
-                       <div class="td">
-                               <input type="text" class="cbi-input-text" id="_newfwd.name" name="_newfwd.name" placeholder="<%:New forward rule%>" />
-                       </div>
-                       <div class="td">
-                               <select class="cbi-input-text" id="_newfwd.src" name="_newfwd.src">
-                                       <% local k, v; for k, v in ipairs(fw:get_zones()) do -%>
-                                               <option<%=ifattr(v:name() == "wan", "selected", "selected")%> value="<%=v:name()%>"><%=v:name()%></option>
-                                       <%- end %>
-                               </select>
-                       </div>
-                       <div class="td">
-                               <select class="cbi-input-text" id="_newfwd.dest" name="_newfwd.dest">
-                                       <% local k, v; for k, v in ipairs(fw:get_zones()) do -%>
-                                               <option<%=ifattr(v:name() == "lan", "selected", "selected")%> value="<%=v:name()%>"><%=v:name()%></option>
-                                       <%- end %>
-                               </select>
-                       </div>
-                       <div class="td bottom">
-                               <input type="submit" class="cbi-button cbi-button-link" name="_newfwd.submit" value="<%:Add and edit...%>" />
-                       </div>
-               </div>
-       </div>
-<% else %>
-       <input type="submit" class="cbi-button cbi-button-add" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" value="<%:Add%>" />
-<% end %>
-
-<% if #zones > 0 then %>
-       <script type="text/javascript">//<![CDATA[
-               cbi_validate_field('_newopen.extport', true, 'list(neg(portrange))');
-               document.getElementById('_newopen.extport').addEventListener('blur',
-                       function() {
-                               var n = document.getElementById('_newopen.name');
-                               var p = document.getElementById('_newopen.proto');
-
-                               if (!this.className.match(/invalid/))
-                               {
-                                       if (!n.value && this.value)
-                                       {
-                                               n.value = 'Open' + this.value;
-                                       }
-                               }
-                       });
-       //]]></script>
-<% end %>
diff --git a/package/luci/applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm b/package/luci/applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm
deleted file mode 100644 (file)
index 0b4774c..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<%
-       local fw = require "luci.model.firewall".init()
-       local nw = require "luci.model.network".init()
-       local zones = fw:get_zones()
-
-       local keys, vals, a, k, v = {}, {}
-       for k, v in ipairs(nw:get_interfaces()) do
-               for k, a in ipairs(v:ipaddrs()) do
-                       keys[#keys+1] = a:host():string()
-                       vals[#vals+1] = '%s (%s)' %{ a:host(), v:shortname() }
-               end
-       end
-%>
-
-<% if #zones > 1 then %>
-       <h4><%:New source NAT%></h4>
-       <div class="table">
-               <div class="tr cbi-section-table-titles">
-                       <div class="th"><%:Name%></div>
-                       <div class="th"><%:Source zone%></div>
-                       <div class="th"><%:Destination zone%></div>
-                       <div class="th"><%:To source IP%></div>
-                       <div class="th"><%:To source port%></div>
-                       <div class="th"></div>
-               </div>
-               <div class="tr">
-                       <div class="td">
-                               <input type="text" class="cbi-input-text" id="_newsnat.name" name="_newsnat.name" placeholder="<%:New SNAT rule%>" />
-                       </div>
-                       <div class="td">
-                               <select class="cbi-input-text" id="_newsnat.src" name="_newsnat.src">
-                                       <% local k, v; for k, v in ipairs(fw:get_zones()) do -%>
-                                               <option<%=ifattr(v:name() == "lan", "selected", "selected")%> value="<%=v:name()%>"><%=v:name()%></option>
-                                       <%- end %>
-                               </select>
-                       </div>
-                       <div class="td">
-                               <select class="cbi-input-text" id="_newsnat.dest" name="_newsnat.dest">
-                                       <% local k, v; for k, v in ipairs(fw:get_zones()) do -%>
-                                               <option<%=ifattr(v:name() == "wan", "selected", "selected")%> value="<%=v:name()%>"><%=v:name()%></option>
-                                       <%- end %>
-                               </select>
-                       </div>
-                       <div class="td">
-                               <input type="text" class="cbi-input-text" id="_newsnat.dip" name="_newsnat.dip" placeholder="<%:Do not rewrite%>" data-type="ip4addr" data-optional="true"<%=
-                                       ifattr(#keys > 0, "data-choices", { keys, vals })
-                               %> />
-                       </div>
-                       <div class="td">
-                               <input type="text" class="cbi-input-text" id="_newsnat.dport" name="_newsnat.dport" placeholder="<%:Do not rewrite%>" data-type="portrange" data-optional="true" />
-                       </div>
-                       <div class="td bottom">
-                               <input type="submit" class="cbi-button cbi-button-link" name="_newsnat.submit" value="<%:Add and edit...%>" />
-                       </div>
-               </div>
-       </div>
-<% else %>
-       <input type="submit" class="cbi-button cbi-button-add" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" value="<%:Add%>" />
-<% end %>
diff --git a/package/luci/applications/luci-app-firewall/po/ca/firewall.po b/package/luci/applications/luci-app-firewall/po/ca/firewall.po
deleted file mode 100644 (file)
index 10ce1ce..0000000
+++ /dev/null
@@ -1,940 +0,0 @@
-#  luci-fw.pot
-#  generated from ./applications/luci-fw/luasrc/i18n/luci-fw.en.lua
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2014-06-17 09:40+0200\n"
-"Last-Translator: Alex <alexhenrie24@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: ca\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s en %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s amb %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s en %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(Entrada sense nom)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(Regla sense nom)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(SNAT sense nom)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> paquets al <var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> i limita a %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Acció"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Afegeix"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Afegeix i edita..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Ajusts avançats"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Permet el reenviament des dels <em>zones d'origen</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Permet el reenviament als <em>zones de destí</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Qualsevol"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Xarxes cobertes"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Regles personalitzades"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"Les regles personalitzades us permet executar ordres del iptables arbitraris "
-"que la infraestructura de tallafocs no cobreix d'altra manera. Aquests "
-"ordres s'executen després de cada reinici de tallafocs, just després el "
-"conjunt de regles per defecte s'ha carregat."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Adreça IP de destí"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Adreça de destí"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Port de destí"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Zona de destí"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "No reescriguis"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Descarta els paquets invàlids"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Habilita"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Habilita protecció contra la inundació SYN"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Habilita el registre d'aquesta zona"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Adreça IP extern"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Port extern"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Zona extern"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "Paràmetres extres"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Tallafocs"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Tallafocs - Regles personalitzades"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Tallafocs - Reenviaments de port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Tallafocs - Regles de tràfic"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Tallafocs - Ajusts de zona"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Força el rastreig de connexió"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Reenvia"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Reenvia a"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "Des de %s en %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "Des de %s en %s amb origen %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "Des de %s en %s amb orígens %s i %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Ajusts generals"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 i IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "Només IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "Només IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Entrada"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Reenviament interzonal"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Adreça IP interna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Port intern"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Zona interna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Limita els missatges de registre"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "Fixació MSS"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "Mascarada"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Coincideix"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Coincideix amb el tipus ICMP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-"Coincideix amb trànsit reenviat al port o rang de ports de destí donat."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Coincideix amb trànsit entrant dirigit al port o rang de ports de destí en "
-"aquest host donat"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-"Coincideix amb trànsit entrant originant en el host client des del port o "
-"rang de ports d'origen donat."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Nom"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Nova regla SNAT"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Nova regla de reenviament"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Nova regla d'entrada"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Nou reenviament de port"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Nou origen NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr "Només coincideix amb trànsit entrant dirigit a la adreça IP donada."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "Només coincideix amb trànsit entrant des d'aquests MAC."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr "Només coincideix amb trànsit entrant des d'aquest IP o rang."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-"Només coincideix amb trànsit originant en el host client des del port o del "
-"rang de ports d'origen donat"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Obre els ports en el encaminador"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Altre..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Sortida"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr "Passa paràmetres addicionals al iptables. Utilitzeu-ho amb cura!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Reenviaments de port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"El reenviament de ports permet que els ordinadors remots en el Internet "
-"connectin a un ordinador o servei específic dins del LAN privat."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protocol"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr "Redirigeix trànsit entrant coincidit al port donat en el host intern"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Redirigeix trànsit entrant coincidit al host intern especificat"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "Restringeix la mascarada a les subxarxes de destí donades"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "Restringeix la mascarada a les subxarxes d'origen donades"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Restringeix a la família d'adreces"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "Reescriu el trànsit coincidint cap a la adreça donada."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-"Reescriu el trànsit coincidint cap al port d'origen donat. Pot ser deixat en "
-"blanc per només reescriure l'adreça IP."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "Reescriu a l'origen %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "Reescriu als orígens %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "Adreça IP de SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "Port SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Adreça IP d'origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "Adreça MAC d'origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "NAT d'origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"El NAT d'origen és un forma específic de mascarada que permet control de gra "
-"fi sobre l'IP d'origen utilitzat pel trànsit sortint, per exemple per "
-"associar múltiples adreces WAN a subxarxes internes."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Adreça d'origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Port d'origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Zona d'origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"El tallafocs crea zones a les teves interfícies de xarxa per controlar el "
-"flux de tràfic de xarxa."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"Les opcions a sota controlen les polítiques de reenviament entre aquesta "
-"zona (%s) i altres zones. <em>Zones de destí</em> cobreixen trànsit reenviat "
-"<strong>originant des de %q</strong>. <em>Zones d'origen</em> coincideixen "
-"amb trànsit reenviat des de altres zones <strong>apuntat a %q</strong>. La "
-"regla de reenviament es <em>unidirectional</em>, per exemple un reenviament "
-"de lan a wan <em>no</em> implica permís per reenviar de wan a lan també."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"Aquesta pàgina us permet canviar propietats avançats de l'entrada de "
-"reenviament de port. En la majoria dels casos no hi ha necessitat de "
-"modificar aquests ajusts."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"Aquesta pàgina us permet canviar propietats avançats de l'entrada de regla "
-"de trànsit, com als hosts d'origen i de destí coincidits."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-#, fuzzy
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"Aquesta secció defineix propietats comuns de %q. Les opcions <em>entrada</"
-"em> i <em>sortida</em> estableixen les polítiques per defecte per a trànsit "
-"entrant i sortint aquesta zona mentre l'opció <em>reenvia</em> descriu la "
-"política de trànsit reenviat entre xarxes distintes dins de la zona. "
-"<em>Xarxes cobertes</em> especifica quines xarxes disponibles són membres "
-"d'aquesta zona."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "A %s a %s en <var>aquest dispositiu</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "A %s en %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "A %s en <var>aquest dispositiu</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "A %s, %s en %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "A l'IP d'origen"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "Al port d'origen"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Regles de trànsit"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"Les regles de trànsit defineixen polítiques per als paquets viatjant entre "
-"zones distintes, per exemple per a rebutjar trànsit entre certs hosts o "
-"obrir ports WAN en el encaminador."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "Via %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "Via %s a %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"Podeu especificar múltiples per seleccionar \"-- personalitzat --\" i "
-"llavors introduir protocols separats per espai."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Zona %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "Zona ⇒ Reenviaments"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zones"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "accepta"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "qualsevol"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "qualsevol host"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "qualsevol IP d'encaminador"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "qualsevol zona"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "no rastregis"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "descarta"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "rebutja"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr "trànsit"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/cs/firewall.po b/package/luci/applications/luci-app-firewall/po/cs/firewall.po
deleted file mode 100644 (file)
index dce2378..0000000
+++ /dev/null
@@ -1,935 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-06-21 11:22+0200\n"
-"Last-Translator: koli <lukas.koluch@gmail.com>\n"
-"Language-Team: none\n"
-"Language: cs\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s v %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s s %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s v %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(Nepojmenovaný vstup)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(Nepojmenované pravidlo)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(Nepojmenovaný SNAT)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> paketů za <var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> paketů za <var>%s</var>, burst <var>%d</var> paketů."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> a omezit na %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Akce"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Přidat"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Přidat a upravit"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Pokročilé nastavení"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Povolit přesměrování ze <em>zdrojových oblastí</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Povolit přesměrování do <em>zdrojových oblastí</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Libovolné"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Pokryté sítě"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Vlastní pravidla"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"Vlastní pravidla vám umožňují spustit libovolné iptables příkazy, které "
-"nejsou jinak pokryté frameworkem firewallu. Příkazy jsou spuštěny po každém "
-"restartu firewallu, právě po načtení výchozí sady pravidel."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Cílová IP adresa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Cílová adresa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Cílový port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Cílová oblast"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "Nepřepisovat"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Zahazovat neplatné pakety"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Povolit"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "Povolit NAT Loopback"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Povolit ochranu proti SYN-flood"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Povolit logování v této oblasti"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Vnější IP adresa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Vnější port"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Vnější zóna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "Dodatečné argumenty"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Firewall"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Firewall - Vlastní pravidla"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Firewall - Přesměrování portů"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Firewall - Pravidla síťového provozu"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Firewall - Nastavení zón"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Vynutit sledování připojení"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Přesměrování"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Přesměrovat na"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "Z %s v %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "Z %s v %s se zdrojovou %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "Z %s v %s se zdrojovou %s a %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Obecné nastavení"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 a IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "pouze IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "pouze IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Vstup"
-
-# nebo mimo zóny?
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Přesměrování mezi zónami"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Vnitřní IP adresa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Vnitřní port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Vnitřní zóna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Omezit logovací zprávy"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "MSS clamping"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "Maškárádování"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Shoda"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Odpovídá ICMP typu"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr "Vybrat provoz, přesměrovaný na zadaný port nebo rozsah portů"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Vybrat příchozí provoz, směrovaný na zadaný cílový port nebo rozsah portů "
-"tohoto hostitele"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-"Vybrat příchozí provoz, pocházející ze zadaného portu nebo rozsahu portů "
-"klienta."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Název"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Nové pravidlo SNAT"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Nové přesměrovací pravidlo"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Nové vstupní pravidlo"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Nové přesměrování portu"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Nový zdrojový NAT (SNAT)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr "Vybrat pouze příchozí provoz, směrovaný na danou IP adresu."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "Vybrat pouze příchozí provoz z těchto MAC adres."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr "Vybrat pouze příchozí provoz z této IP nebo rozsahu IP adres."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-"Vybrat pouze příchozí provoz, pocházející ze zadaného portu nebo rozsahu "
-"portů klienta."
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Otevřené porty na routeru"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Ostatní ..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Výstup"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr "Předává další argumenty iptables. Používat opatrně!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Přesměrování portů"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"Přesměrování portů (port forwarding) umožňuje vzdáleným počítačům z "
-"Internetu připojení k vybraným počítačům nebo službám uvnitř privátní sítě "
-"LAN."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protokol"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-"Přesměrovat vybraný příchozí provoz na uvedený port vnitřního hostitele."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Přesměrovat vybraný příchozí provoz na uvedeného vnitřního hostitele."
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "Omezit maškarádování na uvedené cílové podsítě"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "Omezit maškarádování na uvedené zdrojové podsítě"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Omezit na rodinu adres"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "Přepsat shodný provoz na uvedenou adresu."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-"Přepsat shodný provoz na uvedený zdrojový port. Může zůstat prázdné, pak "
-"bude přepsána pouze IP adresa."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "Přepsat na zdrojovou %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "Přepsat na zdrojovou %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "IP adresa SNATu"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "Port SNATu"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Zdrojová IP adresa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "Zdrojová MAC adresa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "Zdrojový NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"Zdrojový NAT je specifická forma maškarádování, která umožňuje jemnozrnnou "
-"kontrolu nad zdrojovými IP, použitými pro odchozí provoz. Využívá se "
-"například pro mapování množství WAN adres do vnitřních podsítí."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Zdrojová adresa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Zdrojový port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Zdrojová zóna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"Firewall vytváří zóny přes vaše síťová rozhraní za účelem řízení síťového "
-"provozu."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"Níže uvedené možnosti řídí přesměrovací politiky mezi touto zónou (%s) a "
-"ostatními zónami. <em>Cílové zóny</em> pokrývají přesměrovávaný provoz, "
-"<strong>pocházející z %q</strong>. <em>Zdrojové zóny</em> porovnávají "
-"přesměrovávaný provoz z ostatních zón, <strong>zaměřený na %q</strong>. "
-"Přesměrovávací pravidlo je <em>jednosměrné</em>, například přesměrování z "
-"lan do wan <em>nepovoluje</em> přesměrování z wan do lan (a naopak)."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"Tato stránka vám umožňuje změnit pokročilé vlastností přesměrování portů. Ve "
-"většině případů není potřeba upravovat tato nastavení."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"Tato stránka vám umožňuje změnit pokročilé vlastnosti pravidla síťového "
-"provozu, například zdrojové a cílové hostitele."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-#, fuzzy
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"Tato sekce definuje běžné možnosti %q. <em>Vstupní</em> a <em>výstupní</em> "
-"možnosti nastavují výchozí politiky pro provoz, vstupující do této zóny a "
-"vystupující z ní, zatímco <em>přesměrovací</em> možnosti popisují politiku "
-"pro přesměrování provozu mezi rozdílnými sítěmi uvnitř jedné zóny.<em> "
-"Pokryté sítě</em> určuje, které z dostupných sítí jsou členy této zóny."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Na %s v %s na <var>tomto zařízení</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "Na %s v %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "Na %s na <var>tomto zařízení</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "Na %s, %s v %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "Na zdrojovou IP"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "Na zdrojový port"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Pravidla síťového provozu"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"Pravidla síťového provozu definují politiky pro cestování paketů mezi "
-"různými zónami, například pro odmítnutí provozu mezi jistými hostiteli nebo "
-"pro otevření WAN portů na routeru."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "Prostřednictvím %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"Lze určit více protokolů. Vyberte \"-- vlastní --\" a vkládejte protokoly "
-"oddělené mezerou."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Zóna %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "Zóna ⇒ Přesměrování"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zóny"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "přijmout"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "libovolný"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "libovolný hostitel"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "libovolná IP routeru"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "libovolná zóna"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "nesledovat"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "zahodit"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "odmítnout"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr "provoz"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/de/firewall.po b/package/luci/applications/luci-app-firewall/po/de/firewall.po
deleted file mode 100644 (file)
index ad0cc1f..0000000
+++ /dev/null
@@ -1,941 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2014-03-25 02:04+0200\n"
-"Last-Translator: laryllian <my-lucl@laryllian.de>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: de\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s in %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s mit %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s in %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(Unbenannter Eintrag)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(Unbenannte Regel)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(Unbennanter SNAT-Eintrag)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> Pkte. pro <var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> Pkte. pro <var>%s</var>, Häufung <var>%d</var> Pkte."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> und limitieren auf %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Aktion"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Hinzufügen"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Hinzufügen und bearbeiten..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Erweiterte Einstellungen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Erlaube Weiterleitung von <em>Quellzone</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Erlaube Weiterleitung zu <em>Zielzone</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "beliebig"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Abgedeckte Netzwerke"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Benutzerdefinierte Regeln"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"Benutzerdefinierte Regeln ermöglichen das Ausführen belieber iptables-"
-"Befehle welche durch das Firewall-Framework nicht unterstützt werden. Die "
-"Befehle werden mit jedem Firewall-Neustart abgearbeitet, direkt nach dem "
-"Laden der Basisregeln."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Ziel IP-Adresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Zieladresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Zielport"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Ziel-Zone"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "Nicht umschreiben"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Ungültige Pakete verwerfen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Aktivieren"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "NAT-Loopback aktivieren"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Schutz vor SYN-flood-Attacken"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Protokollierung innerhalb der Zone aktivieren"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Externe IP-Adresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Externer Port"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Externe Zone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "Zusätzliche Argumente"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Firewall"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Firewall - Benutzerdefinierte Regeln"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Firewall - Portweiterleitungen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Firewall - Verkehrsregeln"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Firewall - Zoneneinstellungen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Connectiontracking erzwingen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Weitergeleitet"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Weiterleiten an"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "Von %s in %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "Von %s in %s mit Quell-%s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "Von %s in %s mit Quell-%s und %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Allgemein"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 und IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "nur IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "nur IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Eingang"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Weiterleitungen zwischen Zonen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Interne IP-Adresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Interner Port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Interne Zone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Protokollnachrichten limitieren"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "MSS Korrektur"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "NAT aktivieren"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Filter"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Nach ICMP-Typ filtern"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr "Selektiert weitergeleiteten Verkehr nach den angegebenen Ziel-Ports."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Eingehende Verbindungen filtern welche an den angegebenen Port oder "
-"Portbereich auf dem lokalen Gerät gerichtet sind"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr "Selektiert eingehenden Verkehr nach den angegebenen Quell-Ports."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Name"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Neue SNAT-Regel"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Neuer Weiterleitungsregel"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Neue Eingangsregel"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Neue Portweiterleitung"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Neues SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr "Selektiere nur Verkehr der an die angegebene IP-Adresse gerichtet ist."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "Selektiere nur Verkehr von den angegebenen MAC-Adressen."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr "Selektiere nur Verkehr vom angebenem Quell-IP-Adressbereich."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr "Selektiere nur Verkehr von den angegebenen Quell-Ports auf dem Client."
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Ports auf dem Router öffnen"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Anderes..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Ausgang"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-"Gibt zusätzliche Kommandozeilenargumente an iptables weiter. Mit Vorsicht "
-"benutzen!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Portweiterleitungen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"Portweiterleitungen ermöglichen es entfernten Rechnern im Internet auf "
-"bestimmte Computer oder Dienste im lokalen LAN zuzugreifen."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protokoll"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-"Gefilterte Verbindungen an den angegeben Port auf dem internen Host "
-"weiterleiten"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Gefilterte Verbindungen an den angegeben internen Host weiterleiten"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "NAT auf die angegebenen Ziel-Subnetze beschränken"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "NAT auf die angegebenen Quell-Subnetze beschränken"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Beschränke auf Adressfamilie"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "Schreibe selektierten Verkehr auf die angegebene Quell-IP-Adresse um."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-"Schreibe selektierten Verkehr auf den angegebenen Qull-Port um. Kann leer "
-"gelassen werden um nur die IP-Adresse umzuschreiben."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "Schreibe um auf Quell-%s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "Schreibe um auf Quell-%s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "SNAT-IP-Adresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "SNAT-Port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Quell-IP-Adresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "Quell-MAC-Adresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "Source NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"Source NAT ist eine spezifische From von NAT, welche volle Kontrolle über "
-"die verwendete Quell-IP-Adresse für ausgehenden Verkehr zulässt, zum "
-"Beispiel um mehrere WAN-IP-Adressen auf interne Subnetze abzubilden."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Quelladresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Quellport"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Quell-Zone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"Die Firewall erstellt Netzwerkzonen über bestimmte Netzwerkschnittstellen um "
-"den Netzverkehr zu trennen."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"Die untenstehenen Optionen regeln die Verfahreinsweisen für Verkehr zwischen "
-"dieser Zone (%s) und anderen Zonen. <em>Ziel-Zonen</em> decken "
-"weitergeleiteten Verkehr <strong>von %q</strong> ab. <em>Quell-Zonen</em> "
-"treffen auf weitergeleiteten Verkehr aus anderen Zonen zu, welcher "
-"<strong>an %q gerichtet</strong> ist. Die Weiterleitung gilt nur in eine "
-"Richtung, d.h. eine erlaubte Weiterleitung von LAN nach WAN impliziert "
-"<em>nicht</em> zusätzlich die Erlaubnis, auch von WAN nach LAN "
-"weiterzuleiten."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"Diese Seite bietet Zugriff auf die erweiterten Eigenschaften der "
-"Portweiterleitung. In den meisten Fällen ist es unnötig die Eigenschaften zu "
-"ändern."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"Diese Seite bietet Zugriff auf die erweiterten Eigenschaften der "
-"Verkehrsregel, zum Beispiel die Selektion nach Quell- und Zieladressen."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-#, fuzzy
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"Diese Sektion definiert allgemeine Eigenschaften der %q Zone. Die "
-"<em>Eingang</em> und <em>Ausgang</em> Optionen regeln die Verfahrensweise "
-"für Verkehr der in diese Zone eintritt oder diese verlässt. "
-"<em>Weitergeleitet</em> trifft auf Verkehr zwischen verschiedenen "
-"Schnittstellen innerhalb dieser Zone zu. <em>Abgedeckte Netzwerke</em> "
-"definieren die Zugehörigkeit von Schnittstellen zu dieser Zone."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Zu %s an %s auf <var>diesem Gerät</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "Zu %s in %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "Zu %s auf <var>diesem Gerät</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "Zu %s, %s in %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "Zu Quell-IP"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "Zu Quell-Port"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Verkehrsregeln"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"Verkehrsregeln bestimmen den Fluss der Pakete zwischen verschiedenen Zonen, "
-"zum Beispiel um Verkehr zwischen bestimmten Rechnern zu unterbinden oder um "
-"WAN-Ports auf dem Router zu öffnen."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "Über %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "Über %s an %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"Durch die Auswahl von \"-- benutzerdefiniert --\" könnene mehrere Werte "
-"durch Leerzeichen getrennt angegeben werden."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Zone %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "Zone ⇒ Weiterleitungen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zonen"
-
-# Die richtige Übersetzung von ACCEPT im Firewallkontext ist nicht "Annehmen" sondern "Zulassen". Man kann ja keinen
-# ausgehenden Verkehr annehmen. 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "zulassen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "beliebig"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "beliebiger Rechner"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "beliebige Router-IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "beliebige Zone"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "nicht verfolgen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "verwerfen"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "zurückweisen"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/el/firewall.po b/package/luci/applications/luci-app-firewall/po/el/firewall.po
deleted file mode 100644 (file)
index 4fa25b9..0000000
+++ /dev/null
@@ -1,905 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2012-03-31 15:40+0200\n"
-"Last-Translator: Vasilis <acinonyx@openwrt.gr>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: el\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s με %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> πκτ. ανά <var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Ενέργεια"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Προσθήκη"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Προσθήκη και επεξεργασία..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Ρυθμίσεις για προχωρημένους"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Οποιοδήποτε"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Προσαρμοσμένοι Κανόνες"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Διεύθυνση IP προορισμού"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Διεύθυνση προορισμού"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Θύρα προορισμού"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-#, fuzzy
-msgid "Destination zone"
-msgstr "Ζώνη προορισμού"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Αγνόηση μη-έγκυρων πακετών"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Ενεργοποίηση"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-#, fuzzy
-msgid "Enable SYN-flood protection"
-msgstr "Προστασία SYN-flood"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Εξωτερική διεύθυνση IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Εξωτερική θύρα"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "Επιπλέον παράμετροι"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Τείχος προστασίας"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Τείχος προστασίας - Προσαρμοσμένοι Κανόνες"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Τείχος προστασίας - Προώθηση Θυρών"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Τείχος προστασίας - Κανόνες Κίνησεις"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Τείχος προστασίας - Ρυθμίσεις Ζώνης"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Επιβολή παρακολούθησης σύνδεσης"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Προώθηση"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "Απο %s στο %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Γενικές Ρυθμίσεις"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 και IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "Μόνο IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "Μόνο IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Είσοδος"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-#, fuzzy
-msgid "Internal IP address"
-msgstr "Εσωτερική διεύθυνση"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-#, fuzzy
-msgid "Internal port"
-msgstr "Εξωτερική θύρα"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Εσωτερική ζώνη"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Περιορισμός καταγραφών συστήματος"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-#, fuzzy
-msgid "MSS clamping"
-msgstr "Περιορισμός MSS"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Όνομα"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Άλλο..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Έξοδος"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Προώθηση Θυρών"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Πρωτόκολλο"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-#, fuzzy
-msgid "Source IP address"
-msgstr "Διεύθυνση MAC πηγής"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-#, fuzzy
-msgid "Source address"
-msgstr "Διεύθυνση MAC πηγής"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Θύρα πηγής"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-#, fuzzy
-msgid "Source zone"
-msgstr "Θύρα πηγής"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"Το τείχος προστασίας δημιουργεί ζώνες πάνω στις διεπαφές δικτύου για να "
-"ελέγχει την δικτυακή κίνηση."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Ζώνες"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "αποδοχή"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "αγνόηση"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "απόρριψη"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/en/firewall.po b/package/luci/applications/luci-app-firewall/po/en/firewall.po
deleted file mode 100644 (file)
index 5c1e66d..0000000
+++ /dev/null
@@ -1,932 +0,0 @@
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Action"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Destination address"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Destination port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Destination zone"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Drop invalid packets"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Enable SYN-flood protection"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "External port"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr ""
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/zones.lua      #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Firewall"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Forward"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Input"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Internal IP address"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Internal port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "MSS clamping"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "Masquerading"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Name"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Output"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protocol"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-"Redirect matched incoming traffic to the given port on the internal host"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Redirect matched incoming traffic to the specified internal host"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/rrule.lua      #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-# msgid "Traffic Redirection"
-# msgstr ""
-#
-# msgid ""
-# "Traffic redirection allows you to change the destination address of "
-# "forwarded packets."
-# msgstr ""
-#
-# msgid "Overview"
-# msgstr ""
-#
-# msgid "Name"
-# msgstr ""
-#
-# msgid "Source zone"
-# msgstr ""
-#
-# msgid "Source MAC-address"
-# msgstr ""
-#
-# msgid "Source port"
-# msgstr ""
-#
-# msgid "Protocol"
-# msgstr ""
-#
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Source IP address"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Source address"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Source port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Source zone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zones"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "accept"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "any"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "drop"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "reject"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/es/firewall.po b/package/luci/applications/luci-app-firewall/po/es/firewall.po
deleted file mode 100644 (file)
index ff277c1..0000000
+++ /dev/null
@@ -1,938 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2014-06-15 09:00+0200\n"
-"Last-Translator: José Vicente <josevteg@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: es\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s en %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s con %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s en %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(Entrada sin nombre)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(Reglas sin nombre)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(SNAT sin nombre)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> paquetes por <var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-"<var>%d</var> paquetes por <var>%s</var>, máximo <var>%d</var> paquetes."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> y límite a %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Acción"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Añadir"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Añadir y editar..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Configuración avanzada"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Permitir traspaso desde <em>zonas de origen</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Permitir traspaso a <em>zonas de destino</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Cualquiera"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Redes cubiertas"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Reglas propias"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"Las reglas propias le permiten ejecutar comandos de iptables que no están "
-"disponibles en el marco del cortafuegos. Los comandos se ejecutarán tras "
-"cualquier rearranque del cortafuegos, justo tras haber cargado el conjunto "
-"de reglas por defecto."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Dirección IP destino"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Dirección de destino"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Puerto de destino"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Zona de destino"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "No reescribir"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Descartar paquetes no válidos"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Activar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "Activar bucle NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Activar protección a inundación-SYN"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Activar registro en esta zona"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Dirección IP externa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Puerto externo"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Zona externa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "Parámetros extra"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Cortafuegos"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Cortafuegos - Reglas propias"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Cortafuegos - traspasos de puerto"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Cortafuegos - Reglas de tráfico"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Cortafuegos - Configuración de la zona"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Forzar seguimiento de conexión"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Traspasar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Traspasar a"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "Desde %s en %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "Desde %s en %s con origen %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "Desde %s en %s con origen %s y %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Configuración general"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 e IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "Sólo IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "Sñolo IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Entrada"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Traspaso entre zonas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Dirección IP interna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Puerto interno"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Zona interna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Limitar registro de mensajes"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "Fijado de MSS"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "Enmascaramiento"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Coincidir"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Coincidir con tipo ICMP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr "Coincidir con tráfico traspasado al puerto o rango de puertos destino."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Coincidir con tráfico de entrada dirigido al puerto o rango de puertos "
-"destino en esta máquina"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-"Coincidir con tráfico de entrada originado desde el puerto o rango de "
-"puertos origen en la máquina cliente."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Nombre"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Nueva regla SNAT"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Nueva regla de traspaso"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Nueva regla de entrada"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Nuevo traspaso de puerto"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Nuevo origen NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr "Coincidir sólo con tráfico de entrada a esta dirección IP."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "Coincidir sólo con tráfico de entrada desde estas MACs."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr "Coincidir sólo con tráfico de entrada desde esta IP o rango."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-"Coincidir sólo con tráfico de entrada originado desde el puerto o rango de "
-"puertos origen en la máquina cliente"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Abrir puertos en el router"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Otros..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Salida"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr "Pasa más parámetros a IPTables. ¡Usar con cuidado!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Traspasos de puerto"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"El traspaso de puertos permite a ordenadores remotos en internet conectar a "
-"un ordenador o servicio específico en la LAN privada."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protocolo"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-"Redirigir el tráfico de entrada que coincida al puerto en la máquina interna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Redirigir el tráfico de entrada que coincida a la máquina interna"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "Restringir enmascaramiento a las subredes destino"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "Restringir enmascaramiento a las subredes origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Restringir a la familia de direcciones"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "Reescribir el tráfico que coincida a estas direcciones."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-"Reescribir el tráfico que coincida con este puerto origen. Deje en blanco "
-"para reescribir sólo la dirección IP."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "Reescribir a origen %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "Reescribir a origen %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "Dirección IP SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "Puerto SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Dirección IP origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "Dirección MAC origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "NAT origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"NAT origen es una forma específica de enmascaramiento que permite el control "
-"fino del origen IP que se usa en el tráfico de salida por ejemplo para "
-"dirigir múltiples direcciones WAN a las subredes internas."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Dirección origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Puerto origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Zona origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"El cortafuegos crea zonas sobre sus interfaces de red para controlar el "
-"flujo del tráfico."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"Estas opciones controlan las políticas de traspaso entre esta zona (%s) y "
-"otras. <em>Las zonas origen</em> cubren el tráfico traspasado <strong>desde "
-"%q</strong>. <em>Las zonas origen</em> coinciden con el tráfico traspasado "
-"desde otras zonas <strong>dirigido a %q</strong>. La regla de traspaso es "
-"<em>unidireccional</em>, por ejemplo una regla de traspaso desde la LAN a la "
-"WAN <em>no</em> implica permiso para traspasar desde la WAN a la LAN también."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"Propiedades avanzadas de la entrada \"traspaso de puertos\". No suele ser "
-"necesario modificar esta configuración."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"Propiedades avanzadas de la entrada \"reglas de tráfico\", como "
-"coincidencias en puertos de origen y destino."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-#, fuzzy
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"Esta sección define propierdades comunes de %q. Las opciones de <em>entrada</"
-"em> y la <em>salida</em> marcan las políticas por defecto para el tráfico "
-"que entra y deja esta zona mientras que la opción <em>traspaso</em> describe "
-"la política para tráfico traspasado desde diferentes redes en la zona. "
-"<em>Redes cubiertas</em> especifican qué redes disponibles son miembros de "
-"esta zona."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "A %s en %s por <var>este dispositivo</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "A %s en %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "A %s por <var>este dispositivo</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "A %s, %s en %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "A IP origen"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "A puerto origen"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Reglas de tráfico"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"Las reglas de tráfico definen políticas para tramas que se mueven entre "
-"zonas diferentes, por ejemplo para rechazar tráfico entre ciertas máquinas o "
-"puertos WAN abiertos en el router."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "Vía %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "Vía %s a %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"Puede poner varios seleccionando \"-- propio --\" e introduciendo los "
-"protocolos separados por espacio."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Zona %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "Zona ⇒ Traspasos"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zonas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "aceptar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "cualquiera"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "cualquier máquina"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "cualquier router IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "cualquier zona"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "no seguir"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "descartar"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "rechazar"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr "tráfico"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/fr/firewall.po b/package/luci/applications/luci-app-firewall/po/fr/firewall.po
deleted file mode 100644 (file)
index ac136a5..0000000
+++ /dev/null
@@ -1,959 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2013-02-26 00:44+0200\n"
-"Last-Translator: val56 <valentin_sonet@hotmail.fr>\n"
-"Language-Team: French\n"
-"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Action"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Paramètres avancés"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Permettre la transmission des <em>zones source</em> :"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Permettre la transmission vers les <em>zones destination</em> :"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "N'importe lequel"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Réseaux couverts"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Régles spécifiques"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Adresse IP de destination"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Adresse de destination"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Port de destination"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Zone de destination"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Supprimer les paquets invalides"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Activer"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "Activer le NAT sur la boucle-locale"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Activer la protection contre le SYN-flood"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Activer les traces (logs) sur cette zone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Adresse IP externe"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Port externe"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Zone externe"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr ""
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#  applications/luci-fw/luasrc/model/cbi/luci_fw/zones.lua                    #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Pare-feu"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Pare-feu -- Règles personnalisées"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Pare-feu -- Redirections de ports"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Pare-feu -- Règles de trafic"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Pare-feu - Configuration des zones"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Forcer le suivi des connexions"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Transfert"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Transférer à"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Paramètres généraux"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 et IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "IPv4 seulement"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "IPv6 seulement"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Entrée"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Transmission entre zones"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Adresse IP interne"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Port interne"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Zone interne"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Limiter les messages de journalisation"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "Contrainte du MSS"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "Masquage"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Type ICMP correspondant"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Prendre en compte le trafic dirigé vers le port de destination donné (ou la "
-"gamme de ports) sur cet hôte"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Nom"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Nouvelle règle SNAT"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Nouvelle règle d'entrée"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Nouvelle redirection de port"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Nouvelle source NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "Montrer seulement le trafic entrant provenant de ces adresses MAC."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Ports ouverts sur le routeur"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Autre..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Sortie"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Redirections de port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"La redirection de port permet aux ordinateurs distants sur Internet, de se "
-"connecter à un ordinateur ou service spécifié dans le réseau local privé."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protocole"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-"Rediriger le trafic entrant correspondant vers le port donné sur l'hôte "
-"interne"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Rediriger le trafic entrant correspondant vers l'hôte interne spécifié"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr ""
-"Restreindre la substitution d'adresses (Masquerade) à ces sous-réseaux "
-"destinataires"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr ""
-"Restreindre la substitution d'adresses (Masquerade) à ces sous-réseaux "
-"sources"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Restreindre à cette famille d'adresses"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "Adresse IP SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "Port SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#  applications/luci-fw/luasrc/model/cbi/luci_fw/rrule.lua                    #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-# msgid "Traffic Redirection"
-# msgstr ""
-#
-# msgid ""
-# "Traffic redirection allows you to change the destination address of "
-# "forwarded packets."
-# msgstr ""
-#
-# msgid "Overview"
-# msgstr ""
-#
-# msgid "Name"
-# msgstr ""
-#
-# msgid "Source zone"
-# msgstr ""
-#
-# msgid "Source MAC-address"
-# msgstr ""
-#
-# msgid "Source port"
-# msgstr ""
-#
-# msgid "Protocol"
-# msgstr ""
-#
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Adresse IP source"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "Adresse MAC source"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "Source NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Adresse source"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Port source"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Zone source"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"Le pare-feu crée des zones sur les interfaces réseau pour contrôler le flux "
-"du trafic réseau."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"Les options ci-dessous contrôlent les politiques de transmission entre cette "
-"zone (%s) et les autres zones. <em>Zones de destination</em> couvre le "
-"trafic transfmis <strong>venant de %q</strong>. <em>Zones source</em> "
-"correspond au trafic transféré d'autres zones <strong> à destination de %q</"
-"strong>. La règle de transmission est <em>unidirectionnelle</em>, la "
-"transmission du LAN au WAN n'implique <em>pas</em> également l'autorisation "
-"de transmission du WAN au LAN."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"Cette page vous permet de modifier les propriétés avancées parmi les entrées "
-"de redirection de port. Dans la plupart des cas, cela n'est pas nécessaire "
-"de modifier ces paramètres."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-#, fuzzy
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"Cette section définit des propriétés communes de %q. Les options <em>entrée</"
-"em> et <em>sortie</em> définissent les politiques par défaut pour le trafic "
-"entrant et sortant de cette zone, tandis que l'option <em>transmission</em> "
-"décrit la politique pour le trafic transmis entre différents réseaux dans "
-"cette zone. Les <em>réseaux couverts</em> indiquent quels réseaux "
-"disponibles sont membre de cette zone."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Règles de trafic"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Zone %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "Zone ⇒ Transmissions"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zones"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "accepter"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-#, fuzzy
-msgid "any"
-msgstr "tous"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "ignorer"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "rejeter"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/he/firewall.po b/package/luci/applications/luci-app-firewall/po/he/firewall.po
deleted file mode 100644 (file)
index 7878ee5..0000000
+++ /dev/null
@@ -1,890 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/hu/firewall.po b/package/luci/applications/luci-app-firewall/po/hu/firewall.po
deleted file mode 100644 (file)
index 4f8a783..0000000
+++ /dev/null
@@ -1,942 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-01-31 16:54+0200\n"
-"Last-Translator: Gabor <juhosg@openwrt.org>\n"
-"Language-Team: none\n"
-"Language: hu\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s %s-ban"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s %s-el"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s %s-ben"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(Névtelen bejegyzés)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(Névtelen szabály)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(Névtelen SNAT)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> csomag/<var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> csom. <var>%s</var>-enként, burst <var>%d</var> csom."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> és korlátozás %s-re"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Művelet"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Hozzáadás"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Hozzáadás és szerkesztés..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Haladó beállítások"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Továbbítás engedélyezése ezekből a <em>forrás zónákból</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Továbbítás engedélyezése ezekbe a <em>cél zónákba</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Bármelyik"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Lefedett hálózatok"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Egyéni szabályok"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"Az egyedi szabályok lehetővé teszik tetszőleges iptables parancsok "
-"futtatását melyekre a tűzfal keretrendszer egyébként nem biztosít "
-"lehetőséget. A parancsok a tűzfal minden újraindításakor futtatásra "
-"kerülnek, közvetlenül az alapértelmezett szabálykészletek betöltése után."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Cél IP-cím"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Cél cím"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Cél port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Cél zóna"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "Ne írja felül"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Érvénytelen csomagok eldobása"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Engedélyezés"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "NAT visszacsatolás engedélyezése"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "SYN-flood védelem engedélyezése"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Naplózás engeélyezése ezen a zónán"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Külső IP cím"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Külső port"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Külső zóna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "További argumentumok"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Tűzfal"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Tűzfal - Egyéni szabályok"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Tűzfal - Port továbbítások"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Tűzfal - Forgalmi szabályok"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Tűzfal - Zóna beállítások"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Kapcsolat követés kényszerítése"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Továbbítás"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Továbbítás ennek"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "%s felől %s-ben"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "%s felől %s-ben %s forrással"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "%s felől %s-ben %s és %s forrással"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Általános beállítások"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 és IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "csak IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "csak IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Bemenet"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Zónák-közötti továbbítás"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Belső IP cím"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Belső port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Belső zóna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Napló üzenetek korlátozása"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "MSS clamping engegélyezése"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "Álcázás"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Szűrés"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Szűrés ICMP típus alapján"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-"Továbbított forgalom szűrése a megadott cél port, vagy port tartomány "
-"szerint."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Adott portra vagy port tartományra irányított bejövő forgalom szűrése ezen a "
-"gépen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-"Az ügyfél gép megadott portjáról, vagy port tartományából indított forgalom "
-"szűrése. "
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Név"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Új SNAT szabály"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Új továbbítási szabály"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Új bemeneti szabály"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Új port továbbítás"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Új forrás NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr "Csak a megadott IP címre irányított bejövő forgalmat egyeztesse."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "Csak a megadott MAC címekről érkező bejövő forgalmat egyeztesse."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-"Csak a megadott IP címről illetve IP címtartományból érkező bejövő forgalmat "
-"egyeztesse."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-"Csak az ügyfél gép megadott forrás portjáról illetve forrás port "
-"tartományába tartozó portról indított bejövő forgalmat egyeztesse."
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Port megnyitása a routeren"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Egyéb..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Kimenet"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-"További argumentumok küldése az iptables részére. Használja körültekintően!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Port továbbítás"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"A port továbbítás lehetővé teszi az interneten lévő távoli számítógépeknek a "
-"privát helyi hálózat bizonyos számítógépéhez vagy szolgáltatásához történő "
-"csatlakozását."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protokoll"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr "Átirányítja az egyező bejövő forgalmat a belső gép megadott portjához"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Átirányítja az egyező bejövő forgalmat a megadott belső géphez"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "Álcázás korlátozása a megadott cél alhálózatokra"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "Álcázás korlátozása a megadott forrás alhálózatokra"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Korlátozás cím családra"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "Az összeíllő forgalom átírása a megadott címre."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-"Az összeillő forgalom átírása a megadott forrás portra. Amennyibe üresen van "
-"hagyva, csak az IP cím kerül átírásra."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "Átírás %s forrásra"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "Átírás %s, %s forrásra"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "SNAT IP cím"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "SNAT port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Forrás IP cím"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "Forrás MAC cím"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "Forrás NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"A forrás NAT az álcázás olyan speciális formája, mely lehetővé teszi a "
-"kimenő forgalomhoz használt forrás IP címek aprólékos szabályozását, például "
-"több WAN cím hozzárendelését a belső alhálózatokhoz."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Forrás cím"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Forrás port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Forrás zóna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"A tűzfal zónákat határoz meg a hálózati interfészek fölött a hálózati "
-"forgalom áramlásának szabályozására."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"Az alábbi beállítások vezérlik a továbbítási irányelveket a jelenlegi zóna "
-"(%s) és a többi zóna között. A <em>cél zónák</em> fedik le a továbbított "
-"forgalmat <strong>amelynek forrása %q</strong>. A <em>forrás zónák</em> "
-"szűrik a továbbított forgalmat más zónákból <strong>melynek célja %q</"
-"strong>. A továbbítási szabály <em>egyirányú</em>, tehát pl. egy továbbítás "
-"LAN-ból WAN-ba <em>nem</em> jelenti azt, hogy a továbbítás WAN-ból LAN-ba is "
-"engedélyezett."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"Ez a lap lehetővé teszi a port továbbítási bejegyzések speciális "
-"tulajdonságainak módosítását. A legtöbb esetben ezeknek a beállításoknak a "
-"módosítása nem szükséges."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"Ez a lap lehetővé teszi a forgalmi szabály bejegyzés speciális "
-"tulajdonságainak módosítását, mint a forrás- és célgépek megfeleltetése."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-#, fuzzy
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"Ez a rész a(z) %q általános beállításait határozza meg. A <em>bejövő</em> és "
-"<em>kimenő</em> beállítások határozzák meg a zónába be- és kilépő forgalom "
-"alapértelmezett szabályait, míg a <em>továbbítási</em> beállítás a különböző "
-"hálózatok közötti forgalomtovábbítás szabályát írja le a zónán belül. A "
-"<em>lefedett hálózatok</em> adják meg, hogy mely elérhető hálózatok tagjai "
-"ennek a zónának."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "%s-re %s-nél a <var>eszközön</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "%s-re %s-ben"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "%s-re a <var>eszközön</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "%s-re, %s %s-ben"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "Forrás IP-re"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "Forrás portra"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Forgalmi szabályok"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"A forgalmi szabályok a különböző zónák között utazó csomagokra vonatkozó "
-"házirendet határozzák meg, például bizonyos gépek közötti forgalom "
-"megakadályozához vagy WAN portok megnyitásához a routeren."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "%s-en át"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "%s-en át %s-nél"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"Az \"-- egyéni --\" lehetőség választásával több protokoll megadása "
-"lehetséges egymástól szóközzell elválasztva."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Zóna %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "Zóna ⇒ Továbbítások"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zónák"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "elfogadás"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "bármelyik"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "bármelyik gép"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "bármelyik router IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "bármelyik zóna"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "ne kövesse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "eldobás"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "visszautasítás"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/it/firewall.po b/package/luci/applications/luci-app-firewall/po/it/firewall.po
deleted file mode 100644 (file)
index 4064148..0000000
+++ /dev/null
@@ -1,958 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2017-09-02 23:05+0200\n"
-"Last-Translator: bubu83 <bubu83@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: it\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s con %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> e limita a %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Azione"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Aggiungi"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Aggiungi e modifica..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Opzioni Avanzate"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Permetti routing da <em>zone di origine</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Permetti rounting a <em>zone di destinazione</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Qualsiasi"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Reti coperte"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Regole Personalizzate"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"Le regole personalizzate ti permettorno di eseguire comandi iptables "
-"arbitrari che non sono altrimenti coperti dall'applicazione firewall. I "
-"comandi sono eseguiti dopo ogni riavvio del firewall, giusto dopo le altre "
-"regole che sono state caricate."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Indirizzo IP destinazione"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Indirizzo di destinazione"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Porta di destinazione"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Zona di destinazione"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "Non riscrivere"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Scarta pacchetti invalidi"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Attiva"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "Attiva NAT Loopback"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Attiva protezione SYN-flood"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Attiva registro su questa zona"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Indirizzo IP Esterno"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Porta Esterna"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Zona Esterna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "Comandi extra"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Firewall"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Firewall - Regole Personalizzate"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Firewall - Inoltro Porte"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Firewall - Regole Traffico"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Firewall - Opzioni delle Zone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Forza tracciamento connessione"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Inoltra"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Inoltra a"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr "Venerdì"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "Da %s a %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "Da %s a %s con sorgente %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "Da %s a %s con sorgente %s e %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Opzioni Generali"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 e IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "Solo IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "Solo IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Ingresso"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Inoltro tra le zone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Indirizzo IP interno"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Porta interna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Zona Interna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Limita messaggi del registro"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Corrispondenza"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Corrispondenza tipo ICMP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr "Corrispondi traffico inoltrato alla porta o intervallo di porte dato."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Corrispondi traffico in entrata diretto alla porta o intervallo di porte "
-"dato su questo host"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-"Corrispondi traffico in entrata originato dalla porta o intervallo di porte "
-"dato su host cliente"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr "Lunedì"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr "Giorni del Mese"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Nome"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Nuova regola SNAT"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Nuova regola di inoltro"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Nuova regola di ingresso"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Nuova porta di inoltro"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Nuova sorgente NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr "Corrispondi solo traffico in entrata diretto al dato indirizzo IP."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "Corrispondi solo traffico in entrata da questi MAC."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr "Corrispondi solo traffico in entrata da questo IP o intervallo."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-"Corrispondi solo traffico in entrata originato dalla porta o intervallo di "
-"porte sorgenti su host cliente"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Porte aperte sul router"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Altri..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr "Passa comandi addizionali a iptables. Usare con cura!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Inoltri Porta"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"L'inoltro delle porte permette ai computer in remoto su Internet di "
-"connettersi a uno specifico computer o servizio presente nella LAN privata"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protocollo"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr "Reindirizza il traffico in entrata alla porta data su host interno"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Reindirizza il traffico in entrata allo specifico host interno"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr "Riavvia Firewall"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "Limita il Masquerading alle subnet di destinazione date"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "Limita il Masquerading alle subnet sorgente date"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Limita agli indirizzi famiglia"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "Riscrivi il traffico verso l'indirizzo dato."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-"Riscrivi il traffico corrispondente alla porta sorgente data. Può essere "
-"lasciato vuoto per riscrivere solo l'indirizzo IP."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "Riscrivi alla sorgente %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "Riscrivi alla sorgente %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "Indirizzo IP SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "Porta SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr "Sabato"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/rrule.lua      #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# msgid "Traffic Redirection"
-# msgstr ""
-# msgid ""
-# "Traffic redirection allows you to change the destination address of "
-# "forwarded packets."
-# msgstr ""
-# msgid "Overview"
-# msgstr ""
-# msgid "Name"
-# msgstr ""
-# msgid "Source zone"
-# msgstr ""
-# msgid "Source MAC-address"
-# msgstr ""
-# msgid "Source port"
-# msgstr ""
-# msgid "Protocol"
-# msgstr ""
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Indirizzo IP di origine"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "Indirizzo MAC di origine"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "NAT di origine"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"La sorgente NAT è una forma specifica di masquerading che consente un "
-"controllo preciso sull'IP sorgente usato per il traffico in uscita, per "
-"esempio per mappare indirizzi WAN multipli verso le subnet interne."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Indirizzo di origine"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Porta di origine"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Zona di origine"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr "Data di Inizio (yyyy-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr "Ora di Inizio (hh:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr "Data di Stop (yyyy-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr "Ora di Stop (hh:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr "Domenica"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"Il firewall crea delle zone nelle tue interfacce di rete per controllare il "
-"flusso del traffico."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"Queste opzioni controllano le regole di inoltro tra questa zona (%s) e altre "
-"zone. Le <em>zone di destinazione</em> coprono il traffico inoltrato "
-"<strong>originato da %q</strong>. Le <em>zone di origine</em> corrispondono "
-"il traffico inoltrato da altre zone <strong>che puntano a %q</strong>. La "
-"regola di inoltro è <em>unidirezionale</em>, esempio: un inoltro dalla lan "
-"alla wan <em>non</em> implica anche un permesso da inoltrare dalla wan alla "
-"lan."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"Questa pagina ti consente di cambiare le opzioni avanzate della voce porta "
-"di inoltro. Nella maggioranza dei casi non serve modificare queste "
-"impostazioni."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"Questa pagina ti consente di cambiare le opzioni avanzate della voce regola "
-"del traffico, come la sorgente corrispondente e gli host di destinazione."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"Questa sezione definisce le proprietà comuni di %q. Le opzioni "
-"di<em>ingresso</em> e <em>uscita</em> definiscono le regole di default per "
-"il traffico in entrata e uscita di questa zona mentre l'opzione di "
-"<em>inoltro</em> descrive il metodo per il traffico inoltrato tra reti "
-"differenti nella zona. Le <em>reti coperte</em> specificano quali reti "
-"disponibili sono membri di questa zona."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr "Giovedì"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr "Orario in UTC"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Verso %s a %s su <var>questo dispositivo</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "Verso %s in %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "Verso %s su <var>questo dispositivo</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "Verso %s, %s in %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "Verso IP sorgente"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "Verso la porta sorgente"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Regole di Traffico"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"Le regole del traffico definiscono il metodo per il viaggio dei pacchetti "
-"tra zone differenti, per esempio per rifiutare il traffico tra certi host o "
-"per aprire porte WAN sul router."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr "Martedì"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "Via %s a %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr "Mercoledì"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr "Giorni della Settimana"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"Puoi specificare multipli selezionando \"-- custom --\" e poi inserendo i "
-"protocolli separati da uno spazio."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Zona %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "Zona ⇒ Inoltri"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "accetta"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "qualsiasi"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "qualsiasi host"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "qualsiasi router IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "qualsiasi zona"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "non tracciare"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "scarta"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "rifiuta"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr "traffico"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/ja/firewall.po b/package/luci/applications/luci-app-firewall/po/ja/firewall.po
deleted file mode 100644 (file)
index dda7c2e..0000000
+++ /dev/null
@@ -1,975 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2018-06-30 23:19+0900\n"
-"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
-"Language: ja\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 2.0.7\n"
-"Language-Team: \n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s (%s)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s ,%s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s (%s)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(名前設定の無いエントリー)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(名前設定の無いルール)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(名前設定の無いSNAT)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> パケット / <var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-"<var>%d</var> パケット / <var>%s</var>, バースト <var>%d</var> パケット"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var>, %s を上限に設定"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr "転送を許可"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr "入力を許可"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr "出力を許可"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "動作"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "追加"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "追加及び編集..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "詳細設定"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "<em>送信元ゾーン</em>からの転送を許可する:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "<em>宛先ゾーン</em>への転送を許可する:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "全て"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "対象ネットワーク"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "手動設定ルール"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"手動設定ルールの設定では、ファイアウォールの設定画面ではサポートされていない"
-"ような、任意のiptablesコマンドを実行することが可能です。これらの任意のコマン"
-"ドは、ファイアウォール機能の起動ごとに、標準のルールが読み込まれた後に実行さ"
-"れます。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "宛先IPアドレス"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "宛先アドレス"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "宛先ポート"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "宛先ゾーン"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr "無効"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr "転送を破棄"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr "入力を破棄"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr "出力を破棄"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "リライトしない"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr "転送を追跡しない"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr "入力を追跡しない"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr "出力を追跡しない"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "無効なパケットを遮断する"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "有効"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "NATループバックを有効にする"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "SYN-Floodプロテクションを有効にする"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "このゾーンのログ記録を有効にする"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr "実験的な機能です。 QoS/SQM との完全な互換性はありません。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "外部IPアドレス"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "外部ポート"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "外部ゾーン"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "追加設定"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "ファイアウォール"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "ファイアウォール - 手動設定ルール"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "ファイアウォール - ポートフォワーディング"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "ファイアウォール - トラフィック・ルール"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "ファイアウォール - ゾーン設定"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "強制的にコネクション追跡を行う"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "転送"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "転送先"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr "金曜日"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "送信元 %s (%s)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "送信元 %s (%s) , %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "送信元 %s (%s) , %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr "送信元 %s (<var>デバイス</var>)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "送信元 %s, %s (<var>デバイス</var>)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "送信元 %s, %s, %s (<var>デバイス</var>)"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "一般設定"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr "ハードウェア フローオフロード"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr "IP の範囲"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr "IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4及びIPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "IPv4のみ"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "IPv6のみ"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "受信"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "内部ゾーン転送"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "内部IPアドレス"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "内部ポート"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "内部ゾーン"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "ログメッセージを制限"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "MSSクランプ"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "マスカレード"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "対象"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "ICMPタイプの一致"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-"設定された宛先ポート(またはポート範囲)に一致した転送トラフィックが対象になり"
-"ます"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"設定された宛先ポート(またはポート範囲)に一致した受信トラフィックが対象になり"
-"ます"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-"設定されたクライアントホストの送信元ポート(またはポート範囲)からの受信トラ"
-"フィックと一致したトラフィックが対象になります。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr "月曜日"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr "月間"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "名前"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "SNATルールの新規作成"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "転送ルールの新規作成"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "受信ルールの新規作成"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "転送設定の新規作成"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "SNATルールの新規作成"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr "設定された宛先IPアドレスと一致した受信トラフィックが対象になります。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "設定されたMACアドレスと一致した受信したトラフィックが対象になります。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-"設定されたIPアドレス (または範囲) と一致した受信したトラフィックが対象になり"
-"ます。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-"設定されたクライアントホストの送信元ポート(またはポート範囲)からの受信トラ"
-"フィックと一致したトラフィックのみを対象にします。"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "ポートの開放"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "その他のプロトコル"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "送信"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr "出力ゾーン"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-"iptablesにパススルーする追加の引数を設定してください。ただし、注意して設定し"
-"てください!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "ポートフォワーディング"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"ポートフォワーディングは、インターネット上のリモートコンピュータから、プライ"
-"ベートなネットワーク上の、特定のコンピュータやサービスへのアクセスを可能にし"
-"ます。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "プロトコル"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-"ルールに一致した受信トラフィックを、内部ホストの設定されたポートへ転送します"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "ルールに一致した受信トラフィックを、設定された内部ホストへ転送します"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr "転送を拒否"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr "入力を拒否"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr "出力を拒否"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-"ハードウェア NAT サポートが必要です。 mt7621 のみにおいて実装されています。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr "ファイアウォールの再起動"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "設定された宛先サブネットへのマスカレードを制限する"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "設定された送信元サブネットへのマスカレードを制限する"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "アドレスファミリの制限"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-"ルールに一致したトラフィックの送信元アドレスを設定した値にリライトします。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-"ルールに一致したトラフィックの送信元ポートを設定した値にリライトします。空欄"
-"にした場合、IPアドレスのみを書き直します。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "送信元 %s にリライト"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "送信元 %s, %s にリライト"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr "ルーティング/NAT オフロード"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr "ルールは無効です"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr "ルールは有効です"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "SNAT IPアドレス"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "SNAT ポート"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr "土曜日"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr "ルーティング/NAT のための、ソフトウェアベースのオフロードです。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr "ソフトウェア フローオフロード"
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/rrule.lua      #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-# msgid "Traffic Redirection"
-# msgstr ""
-#
-# msgid ""
-# "Traffic redirection allows you to change the destination address of "
-# "forwarded packets."
-# msgstr ""
-#
-# msgid "Overview"
-# msgstr ""
-#
-# msgid "Name"
-# msgstr ""
-#
-# msgid "Source zone"
-# msgstr ""
-#
-# msgid "Source MAC-address"
-# msgstr ""
-#
-# msgid "Source port"
-# msgstr ""
-#
-# msgid "Protocol"
-# msgstr ""
-#
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "送信元IPアドレス"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "送信元MACアドレス"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "送信元NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"送信元NAT設定は、複数のWANアドレスを内部のサブネットにマッピングするような、"
-"出力トラフィックに対する送信元IPアドレスのきめ細かい制御を行うマスカレードの"
-"設定フォームです。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "送信元アドレス"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "送信元ポート"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "送信元ゾーン"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr "開始日 (yyyy-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr "開始時刻 (hh:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr "停止日 (yyyy-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr "停止時刻 (hh:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr "日曜日"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"ファイアウォール機能は、各ネットワークインターフェース上にゾーンを作成してト"
-"ラフィックの制御を行います。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"下記の設定は、このゾーン (%s)とその他のゾーン間の転送ポリシーを制御します。"
-"<em>宛先ゾーンへの転送</em> は、<strong>%q から</strong>転送されたトラフィッ"
-"クに対して転送を許可します。 <em>送信元ゾーンからの転送</em> は、別のゾーンか"
-"ら<strong>%qへ</strong> の転送を許可します。トラフィック転送設定は、<em>一方"
-"向</em>であり、例えばlanからwanへの転送設定は、wanからlanへの転送を<em>許可し"
-"ません。</em>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"このページでは、各転送ルールの詳細設定を行うことができます。ただし、ほとんど"
-"のケースは、これらの設定を変更する必要はありません。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"このページでは、各トラフィックルールの送信元・宛先ホストの設定などの詳細設定"
-"を行うことができます。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"このセクションでは、%sの標準的な動作を設定します。<em>受信</em>及び<em>送信</"
-"em>オプションは、このゾーンに対して入出力するトラフィックに対する標準のポリ"
-"シーを設定し、<em>転送</em>オプションは、ゾーン間の転送トラフィックに対する標"
-"準のポリシーになります。<em>対象ネットワーク</em>は、どのネットワーク設定がこ"
-"のゾーンに属するかを設定します。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr "木曜日"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr "UTC時刻を使用"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "宛先 %s, %s (<var>デバイス</var>)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "宛先 %s (%s)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "宛先 %s (<var>デバイス</var>)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "宛先 %s, %s (%s)"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "変換後送信元IP"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "変換後送信元ポート"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "トラフィック・ルール"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"トラフィック・ルールの設定では、ゾーン間を行き来するパケットのポリシーを設定"
-"します。例えば、特定のホスト間や、ルーターのWANポートへのトラフィックの拒否を"
-"設定することができます。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr "火曜日"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr "名称未設定の SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr "名称未設定の転送"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr "名称未設定のルール"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "経由 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "経由 %s , %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr "水曜日"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr "曜日"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"\"-- 手動設定 --\"を選択し、プロトコルをスペースで区切って入力することで複数"
-"のプロトコルを指定することができます。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "ゾーン %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "ゾーン ⇒ 転送"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "ゾーン"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "許可"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "全て"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "全てのホスト"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "全てのルーターIP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "全てのゾーン"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr "日"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "コネクション追跡を行わない"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "破棄"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr "時間"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr "分"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr "ポート"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr "ポート"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "拒否"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr "秒"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr "トラフィック"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr "タイプ"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr "タイプ"
diff --git a/package/luci/applications/luci-app-firewall/po/ko/firewall.po b/package/luci/applications/luci-app-firewall/po/ko/firewall.po
deleted file mode 100644 (file)
index 2d8cbbf..0000000
+++ /dev/null
@@ -1,924 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2012-11-14 17:32+0200\n"
-"Last-Translator: Weongyo Jeong <weongyo@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: ko\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s ,%s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "추가 후 수정..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "<em>Source zone</em> 로부터의 forward 허용:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "<em>Destination zone</em> 으로 forward 허용:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Custom Rule"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"Custom rule 은 방화벽 UI 로 해결이 되지 않는 임의의 iptables 명령을 실행할 "
-"수 있도록 합니다.  입력된 명령어들은 매 방화벽 재시작시 실행되는데 default "
-"ruleset 이 load 된 후 시점입니다."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Destination IP 주소"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Destination 주소"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "활성화"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "NAT Loopback 활성화"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "SYN-flood protection 활성화"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "zone 의 logging 활성화"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "외부 IP 주소"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "외부 port"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "외부 zone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "추가 argument"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "방화벽"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "방화벽 - Custom Rules"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "방화벽 - Port Forwards"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "방화벽 - Traffic Rules"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "방화벽 - Zone 설정"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr "금요일"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "내부 IP 주소"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "내부 port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "내부 zone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr "월요일"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "이름"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "새로운 SNAT rule"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "새로운 forward rule"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "새로운 input rule"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "새로운 port forward"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "새로운 source NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr "iptables 명령에 추가 인자들을 더합니다.  조심해 사용하세요!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Port Forward"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"Port forwarding 기능은 인터넷 상의 원격 컴퓨터가 내부 LAN 에 속한 특정 컴퓨터"
-"나 서비스에 접속할 수 있도록 합니다."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "주어진 destination subnet 으로 Masquerading 제한"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "주어진 source subnet 으로 Masquerading 제한"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Address family 제한"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr "토요일"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Source IP 주소"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "Source MAC 주소"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"Source NAT 기능은 masquerading 의 한 형태로써 outgoing 트래픽이 사용할 "
-"source IP 를 세밀하게 제어할 수 있습니다.  예를 들어 다수의 WAN 주소들을 내"
-"부 subnet 에 매핑(mapping) 할 경우 사용됩니다."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Source 주소"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr "시작 날짜 (yyyy-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr "시작 시간 (hh:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr "종료 날짜 (yyyy-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr "종료 시간 (hh:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr "일요일"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"방화벽 기능을 이용하여 네트워크 인터페이스와 연결된 zone 을 생성할 수 있고 이"
-"를 이용하여 네트워크 traffic flow 를 제어할 수 있습니다."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"이 zone (%s) 과 다른 zone 들 사이의 forwarding 정책을 제어하는 옵션들입니다. "
-"<em>Destination zones</em> 은 <strong>%q 에서 출발한 </strong> forward "
-"traffic 을 뜻하고, <em>Source zones</em> 은 다른 zone 들에서 <strong>%q 로 전"
-"달되는</strong> forward traffic 을 뜻합니다. Forwarding rule 은 "
-"<em>unidirectional</em> 인데, 예를 들어 LAN 에서 WAN 으로의 forward 규칙이 "
-"WAN 에서 LAN 으로의 forward 를 허락하는 것이 아닙니다."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"이 메뉴에서는 port forwarding 의 고급 설정 정보를 변경할 수 있습니다. 대부분"
-"의 경우 이 설정을 수정할 일이 없습니다."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"이 메뉴에서는 traffic rule 항목의 고급 설정, 예를 들어 source host 와 "
-"destination host 매칭, 을 변경할 수 있습니다."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-#, fuzzy
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"이 섹션은 %q 의 공통 속성을 설정할 수 있습니다.  <em>input</em> 과 "
-"<em>output</em> 옵션은 이 zone 으로 전달되어 들오거나 나가는 트래픽에 대한 기"
-"본 정책을 뜻합니다. <em>forward</em> 옵션은 zone 내에서 다른 네트워크들 사이"
-"를 오가는 forward traffic 에 대한 정책을 뜻합니다. <em>Covered networks</em> "
-"에서는 zone 의 영향을 받을 네트워크들을 지정할 수 있습니다."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr "목요일"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr "UTC 기준시"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Traffic Rule"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"Traffic rule 은 서로 다른 zone 사이를 오가는 패킷들에 대한 정책을 정의합니"
-"다. 예를 들어 특정 host 들 사이의 트래픽을 차단하거나 공유기의 WAN port 를 "
-"open 할때 사용됩니다."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr "화요일"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr "수요일"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr "주일"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zone 내역"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/ms/firewall.po b/package/luci/applications/luci-app-firewall/po/ms/firewall.po
deleted file mode 100644 (file)
index ed239a5..0000000
+++ /dev/null
@@ -1,889 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/no/firewall.po b/package/luci/applications/luci-app-firewall/po/no/firewall.po
deleted file mode 100644 (file)
index 11ed8e8..0000000
+++ /dev/null
@@ -1,936 +0,0 @@
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2013-03-25 16:42+0200\n"
-"Last-Translator: protx <lars.hardy@gmail.com>\n"
-"Language: no\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s i %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s med %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s i %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(oppføring uten navn)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(regel uten navn)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(SNAT uten navn)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> pakker per <var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> pakker per <var>%s</var>, burst <var>%d</var>pakker."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> og begrens til %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Handling"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Legg til"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Legg til og redigere..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Avanserte Innstillinger"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Tillat videresending fra <em>kilde soner</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Tillat videresending til <em>destinasjon soner</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Enhver"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Gjeldene nettverk"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Egendefinerte Regler"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"Egendefinerte regler tillater deg å utføre vilkårlige iptables kommandoer "
-"som ikke dekkes av brannmurens standardoppsett. Kommandoene utføres etter "
-"hver omstart av brannmuren, rett etter at standard regelsett er lastet."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Destinasjon IP adresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Destinasjon adresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Destinasjon port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Destinasjon sone"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "Ikke omskriv"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Forkast ugyldige pakker"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Aktiver"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "Aktiver NAT <abbr title=\"Loopback\">Tilbakekobling</abbr>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Aktiver SYN-flood beskyttelse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Aktiver logging av denne sonen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Ekstern IP adressse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Ekstern port"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Ekstern sone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "Ekstra argumenter"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Brannmur"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Brannmur - Egendefinerte Regler"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Brannmur - Port Videresending"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Brannmur - Trafikk Regler"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Brannmur - Sone Innstillinger"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr ""
-"Bruk <abbr title=\\\"connection tracking\\\">forbindelse sporing</abbr>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Videresend"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Videresend til"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "Fra %s i %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "Fra %s i %s med kilde %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "Fra %s i %s med kilde %s og %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Generelle Innstillinger"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 og IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "Kun IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "Kun IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Inndata"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Sone til Sone Videresending"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Intern IP adresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Intern port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Intern sone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Begrens logging"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "MSS Kontroll (Clamping)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "Masquerading"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Match"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Match ICMP type"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-"Match videresendt trafikk til den oppgitte destinasjonsport eller "
-"portområdet."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Match innkommende trafikk rettet mot den oppgitte destinasjonsport eller "
-"portområdet på denne verten"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-"Match innkommende trafikk som kommer fra den oppgitte kildeport eller "
-"portområdet på klienten."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Navn"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Ny SNAT regel"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Ny videresending regel"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Ny inndata regel"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Ny port videresending"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Ny kilde NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr "Match kun innkommende trafikk rettet mot den oppgitt IP adresse."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "Match kun innkommende trafikk fra disse MAC adresser."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr "Match kun innkommende trafikk fra denne IP eller IP område."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-"Match kun innkommende trafikk som kommer fra den oppgitte kildeport eller "
-"fra portområdet til klienten"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Åpne porter på ruteren"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Andre..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Utdata"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr "Sender flere argumenter til iptables. Bruk med forsiktighet!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Port Videresendinger"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"Port videresending tillater at eksterne datamaskiner på Internett kan koble "
-"seg til en bestemt maskin eller tjeneste innenfor det private LAN."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protokoll"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-"Viderekoble matchet innkommende trafikk til den oppgitte porten på intern "
-"vert"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Viderekoble matchet innkommende trafikk til den angitte interne vert"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "Begrens Masquerading til oppgitt destinasjons subnett"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "Begrens Masqeuerading til oppgitt kilde subnett"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Begrens til adresse familie"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "Omskriv matchet trafikk til den oppgitte adressen."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-"Omskriv matchet trafikk til den oppgitte kildeport. Kan stå tom for kun "
-"omskriving av IP adressen."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "Omskriv til kilde %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "Omskriv til kilde %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "SNAT IP adresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "SNAT port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Kilde IP adresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "Kilde MAC adresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "Kilde NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"Kilde NAT er en spesifikk form for masquerading som tillater finkornet "
-"kontroll over kilde IP adressen som brukes for utgående trafikk, for "
-"eksempel for å mappe flere WAN adresser til interne subnett."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Kilde adresse"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Kilde port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Kilde sone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"Brannmuren skaper soner over nettverkets grensesnitt for å styre "
-"nettverkstrafikken."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"Med valgene under konfigurerer man videresending mellom denne sone (%s) og "
-"andre soner. <em>Destinasjons soner</em> omhandler videresendt trafikk "
-"<strong>med opprinnelse fra %q</strong>. <em>Kilde soner</em> matcher "
-"videresendt trafikk fra andre soner <strong>rettet mot %q</strong>. Reglene "
-"ved videresending er <em>enveis</em>, d.v.s at videresending fra LAN til WAN "
-"<em>ikke</em> automatisk også tillater videresending fra WAN til LAN."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"Denne siden lar deg endre avanserte egenskaper til port videresending "
-"oppføringer. I de fleste tilfeller er det ikke nødvendig å endre disse "
-"innstillingene."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"Denne siden lar deg endre de avanserte egenskapene til trafikken regel "
-"oppføringer, som for eksempel matchet kilde og destinasjons vert."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-#, fuzzy
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"Denne seksjonen definerer de vanligste valg for %q. Med <em>Inndata</em> og "
-"<em>Utdata</em> fastsetter man vanlige regler for trafikk gjennom sonen, "
-"mens <em>videresend</em> valget definerer regler for videresendt trafikk "
-"mellom forskjellige nettverk i sonen. <em>Gjeldene nettverk</em> "
-"spesifiserer hvilken av de tilgjengelige nettverk som er medlem av denne "
-"sone."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Til %s på %s på <var>denne enheten</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "Til %s i %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "Til %s på <var>denne enheten</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "Til %s, %s i %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "Til kilde IP"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "Til kilde port"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Trafikk Regler"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"Trafikk regler definerer regler for sending av pakker mellom ulike soner, "
-"for eksempel for å avvise trafikk mellom visse verter eller for å åpne WAN "
-"porter på ruteren."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "Via %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "Via %s på %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"Du kan spesifisere flere ved å velge \"-- egendefinert --\" og deretter "
-"skrive flere protokoller atskilt med mellomrom."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Sone %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "Sone = Videresendinger"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Soner"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "godta"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "enhver"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "enhver vert"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "enhver ruter IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "enhver sone"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "ikke track"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "forkast"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "avslå"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/pl/firewall.po b/package/luci/applications/luci-app-firewall/po/pl/firewall.po
deleted file mode 100644 (file)
index a3c7b1f..0000000
+++ /dev/null
@@ -1,949 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2013-06-22 15:49+0200\n"
-"Last-Translator: obsy <cezary@eko.one.pl>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: pl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s w %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s z %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s w %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(Nienazwany wpis)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(Nienazwana reguła)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(Nienazwany SNAT)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> pakiet. na <var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-"<var>%d</var> pakiet. na <var>%s</var>, popsutych <var>%d</var> pakiet."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> i ograniczone do %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Działanie"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Dodaj"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Dodaj i edytuj..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Ustawienia zaawansowane"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Zezwól na przekazywanie z <em>source zones</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Zezwól na przekazywanie do <em>destination zones</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Każdy"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Objęte sieci"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Własne reguły"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"Własne reguły pozwalają na arbitralne wykonanie poleceń iptables, które nie "
-"są objęte składnią zapory. Polecenia wykonywane są po każdym restarcie "
-"zapory, zaraz po załadowaniu zestawu reguł domyślnych."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Docelowy adres IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Adres docelowy"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Port docelowy"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Strefa docelowa"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "Nie przepisuj"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Porzuć wadliwe pakiety"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Włącz"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "Włącz NAT Loopback"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Włącz ochronę przed atakiem SYN-flood"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Włącz logowanie na tej strefy"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Zewnętrzne adresy IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Port zewnętrzny"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Strefa zewnętrzna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "Dodatkowe argumenty"
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/zones.lua      #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Zapora"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Zapora - Reguły własne"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Zapora - Przekazywanie portów"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Zapora - Reguły ruchu"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Zapora - Ustawienia strefy"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Wymuś śledzenie połączeń"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Przekazuj"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Przekazuj do"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "Z %s w %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "Z %s w %s ze źródłem %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "Z %s w %s ze źródłem %s i %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Ustawienia ogólne"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 i IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "Tylko IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "Tylko IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Ruch przychodzący"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Przekazywanie pomiędzy strefami"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Wewnętrzny adres IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Wewnętrzny port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Strefa wewnętrzna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Ograniczenie logowania"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "Dostosuj MSS"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "Maskarada"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Dopasuj"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Dopasuj typ ICMP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-"Dopasuj przekazywany ruch do danego docelowego portu lub zakresu portów"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Dopasuj ruch przychodzący do danego portu docelowego lub zakresu portów na "
-"tym hoście"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-"Dopasuj przychodzący ruch pochodzący z danego portu źródłowego lub zakresu "
-"portów na hoście klienta."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Nazwa"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Nowa reguła SNAT"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Nowa reguła przekazywania (forward)"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Nowa reguła wejściowa (input)"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Nowe przekierowanie portu"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Nowy NAT źródłowy"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr "Dopasuj tylko przychodzący ruch skierowany do danego adresu IP."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "Dopasuj tylko ruch z tych adresów MAC."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr "Dopasuj tylko ruch przychodzący z tego adresu IP lub zakresu adresów."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-"Dopasuj tylko ruch przychodzący z podanego portu źródłowego lub zakresu "
-"portów na hoście klienta"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Otwarte porty na routerze"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Inne..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Wyjście (Output)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-"Przekazuje dodatkowe argumenty do iptables. Zachowaj szczególną ostrożność!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Przekierowania portów"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"Przekierowanie portów pozwala komputerom z internetu na połączenia z "
-"komputerami z sieci LAN."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protokół"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-"Przekieruj ruch przychodzący na podany port do wskazanego hosta w sieci "
-"wewnętrznej"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Przekieruj ruch przychodzący do wskazanego hosta w sieci wewnętrznej"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "Ogranicz maskaradę do wskazanych sieci docelowych"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "Ogranicz maskaradę do wskazanych sieci źródłowych"
-
-# Wstawiłem rodzinę gdyż gdzieś wcześniej było tak opisane ale klasa pasuje mi tu bardziej.
-# Obsy - niestety ale "rodzina". W gui dotyczy to wyboru IPv4/IPv6, więc "rodzina" a nie klasa.
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Ogranicz do rodziny adresów"
-
-# Dosłownie przetłumaczone, nie bardzo wiem czy chodzi o czynność przepisywania pakietu przez usługę czy to jakieś ogólne sformułowanie...
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "Przepisz dopasowany ruch do wskazanych adresów."
-
-# Jak wyżej chodzi o przepisanie pakietu przez usługę?
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-"Przepisz dopasowany ruch do danego portu źródłowego. Można zostawić puste "
-"aby przepisać tylko adres IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "Przepisz do źródła %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "Przepisz do źródła %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "Adres IP SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "Port SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Źródłowy adres IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "Źródłowy adres MAC"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "NAT źródłowy"
-
-# http://www.digipedia.pl/def/doc/id/677604507/name/SNAT/
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"SNAT używany jest wtedy, gdy zmieniane są adresy pakietów połączenia "
-"wychodzącego, czyli pakiety źródłowe. Wykonywany jest zawsze po routowaniu "
-"(POSTROUTING), a więc w chwili, gdy pakiety są gotowe opuścić host. "
-"IPmasquerading jest formą SNAT."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Adres źródłowy"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Port źródłowy"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Strefa źródłowa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"Firewall tworzy strefy z Twoich interfejsów sieciowych, aby kontrolować ruch "
-"sieciowy."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"Opcje poniżej kontrolują politykę przekazywania pomiędzy tą strefą (%s) a "
-"innymi strefami. <em>Strefy docelowe</em> obejmują przekazywany ruch "
-"<strong>pochodzący z %q</strong>. <em>Strefy źródłowe</em> match forwarded "
-"traffic from other zones <strong>skierowane do %q</strong>. Reguła "
-"przekazywania jest <em>jednokierunkowa</em>, np. przekazywanie z sieci LAN "
-"do WAN <em>nie</em> implikuje pozwolenia na przekazywanie z sieci WAN do LAN."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"Ta strona pozwala zmienić zaawansowane ustawienia przekierowania portów. W "
-"większości przypadków nie ma potrzeby zmieniać tych ustawień."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"Ta strona pozwala zmienić zaawansowane ustawienia reguły ruchu sieciowego, "
-"takie jak pasujące źródło i hosty docelowe."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-#, fuzzy
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"Ta sekcja definiuje ustawienia ogólne %q. Opcje <em>\"wejście\"</em> i <em>"
-"\"wyjście\"</em> określają domyślną politykę dla ruchu przychodzącego i "
-"wychodzącego w tej strefie, podczas gdy <em>\"przekazywanie\"</em> opisuje "
-"politykę ruchu przekazywanego pomiędzy różnymi sieciami wewnątrz strefy. "
-"<em>Objęte sieci</em> określają dostępne sieci będące członkami tej strefy."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Do %s w %s na <var>tym urządzeniu</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "Do %s w %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "Do %s na <var>tym urządzeniu</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "Do %s, %s w %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "Do źródłowego IP"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "Do źródłowego portu"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Reguły ruchu sieciowego"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"Reguły ruchu sieciowego definiują politykę dla pakietów przechodzących "
-"między strefami, na przykład aby odrzucać ruch między konkretnymi hostami "
-"albo otworzyć porty WAN routera."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "Przez %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "Przez %s w %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"Możesz określić kilka wybierając \"-- własne --\" i wpisując protokoły "
-"rozdzielone spacją."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Strefa %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "Strefa ⇒ Przekazywanie"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Strefy"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "akceptuj"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "dowolny"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "dowolny host"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "dowolne IP routera"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "dowolna strefa"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "nie śledź"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "porzucaj"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "odrzucaj"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/pt-br/firewall.po b/package/luci/applications/luci-app-firewall/po/pt-br/firewall.po
deleted file mode 100644 (file)
index e6be5d0..0000000
+++ /dev/null
@@ -1,941 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2018-09-20 19:57-0300\n"
-"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
-"Language: pt_BR\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Poedit 2.1.1\n"
-"Language-Team: \n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s in %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s com %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s em %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(Entrada Sem Nome)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(Regra Sem Nome)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(SNAT Sem Nome)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> pcts. por <var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> pcts. por <var>%s</var>, pico <var>%d</var> pcts."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> e limite a %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr "Aceitar o encaminhamento"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr "Aceitar a entrada"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr "Aceitar a saída"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Ação"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Adicionar"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Adicionar e editar..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Configurações Avançadas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Permite o encaminhamento da <em>zona de origem</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Permite o encaminhamento para a <em>zona de destino</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Qualquer"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Redes cobertas"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Regras Personalizadas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"As regras personalizadas permitem executar comandos iptables arbitrários não "
-"cobertos por esta ferramenta. Os comandos serão executados após cada "
-"reinício do firewall, logo após a carga do conjunto de regras padrão."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Endereço IP de destino"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Endereço de destino"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Porta de destino"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Zona de destino"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr "Desabilitar"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr "Descartar o encaminhamento"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr "Descartar a entrada"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr "Descartar a saída"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "Não sobrescreva"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr "Não rastrear o encaminhamento"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr "Não rastrear a entrada"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr "Não rastrear a saída"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Descartar pacotes inválidos"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Habilitar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "Habilite o Loopback do NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Habilite proteção contra SYN-flood"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Habilite o registro nesta zona"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-"Funcionalidade experimental. Ela não é totalmente compatível com QoS/SQM."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Endereço IP externo"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Porta Externa"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Zona externa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "Argumentos extras"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Firewall"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Firewall - Regras personalizadas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Firewall - Encaminhamento de Portas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Firewall - Regras de Tráfego"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Firewall - Configurações de Zona"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Force o rastreamento da conexão"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Encaminhar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Encaminhar para"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr "Sexta-feira"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "Vindo de %s em %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "Vindo de %s em %s com origem %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "Vindo de %s em %s com origem %s e %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr "De %s <var>neste dispositivo</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "De %s <var>neste dispositivo</var> com origem %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "De %s <var>neste dispositivo</var> com origem %s e %s"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Configurações Gerais"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr "Aceleração de fluxo de dados via Hardware"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr "Faixa IP"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr "IPs"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 e IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "Somente IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "Somente IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Entrada"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Encaminhamento entre Zonas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Endereço IP interno"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Porta Interna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Zona interna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Limita as mensagens de registro"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr "MACs"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "Ajuste do MSS"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "Mascaramento"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Casa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Casa com ICMP tipo"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-"Casa o tráfego encaminhado para uma porta ou faixa de portas de destino "
-"específica."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Casa o tráfego entrante direcionado para uma porta ou faixa de portas de "
-"destino específica neste computador"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-"Casa o tráfego entrante originado de uma porta ou faixa de portas no "
-"equipamento cliente."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr "Segunda-Feira"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr "Dias do mês"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Nome"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Nova regra de SNAT"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Nova regra de encaminhamento"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Nova regra de entrada"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Novo encaminhamento de porta"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Nova origem NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-"Somente case o tráfego entrante direcionado para o endereço IP fornecido."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "Somente case o tráfego entrante destes endereços MAC."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr "Somente case o tráfego entrante desta faixa de endereços IP."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-"Somente case o tráfego entrante vindo da porta de origem fornecida ou "
-"intervalo de portas no equipamento cliente"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Abrir portas no roteador"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Outro..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Saída"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr "Zona de saída"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr "Passa argumentos adicionais para o iptables. Use com cuidado!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Encaminhamentos de Porta"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"O encaminhamento de portas permite que computadores remotos na Internet "
-"conectem a um computador ou serviço específico dentro da rede local privada."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protocolo"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-"Redireciona tráfego entrante para a porta especificada no computador interno"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Redireciona tráfego entrante para o computador interno especificado"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr "Recusar encaminhamento"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr "Recusar entrada"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr "Recusar saída"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr "Requer suporte de NAT em hardware. Implementado ao menos para mt7621"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr "Reiniciar o Firewall"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "Restringe o mascaramento para uma subrede de destino específica"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "Restringe o mascaramento para uma subrede de origem específica"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Restringe para uma família de endereços"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "Reescreva o tráfego correspondente para o endereço fornecido."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-"Reescreva o tráfego correspondente para a porta de origem fornecida. Pode "
-"ficar em branco para somente reescrever o endereço IP."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "Reescrever para a origem %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "Reescrever para a origem %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr "Aceleração de Roteamento/NAT"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr "A regra está desabilitada"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr "A regra está habilitada"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "Endereço IP da SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "Porta da SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr "Sábado"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr "Aceleração de roteamento/NAT baseada em Software"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr "Aceleração de fluxo de dados via Software"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Endereço IP de origem"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "Endereço MAC de origem"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "NAT origem"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"NAT origem é uma forma específica de mascaramento que permite o controle "
-"fino do endereço IP de origem usado no tráfego sainte. Por exemplo, para "
-"mapear múltiplos endereços WAN para subredes internas."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Endereço de origem"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Porta de origem"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Zona de origem"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr "Dia inicial (aaaa-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr "Hora inicial (hh:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr "Dia final (aaaa-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr "Hora final (hh:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr "Domingo"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"O firewall cria zonas sobre as interfaces de rede para controlar o fluxo do "
-"tráfego de rede."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"As opções abaixo controlam as políticas de encaminhamento entre esta zona "
-"(%s) e outras zonas. <em>Zonas de destino</em> incluem tráfego encaminhado "
-"<strong>originado de %q</strong>. <em>Zonas de origem</em> casam com tráfego "
-"encaminhado de outras zonas <strong>apontando para %q</strong>. A regra de "
-"encaminhamento é <em>unidirecional</em>, ex: um encaminhamento da LAN para "
-"WAN <em>não</em> implica na permissão de encaminhar da WAN para LAN."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"Esta página permite que você mude propriedades avançadas da entrada do "
-"encaminhamento de porta. Na maioria dos casos, não é necessário modificar "
-"estas configurações."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"Esta página permite que você mude propriedades avançadas da entrada da regra "
-"de tráfego, como os equipamentos de origem e destino."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"Esta seção define as propriedades comuns de %q. As opções de <em>entrada</"
-"em> e <em>saída</em> definem as políticas padrão para o tráfego entrando e "
-"saindo desta zona, enquanto a opção de <em>encaminhamento</em> descreve a "
-"política para encaminhar o tráfego entre diferentes redes dentro da zona. "
-"<em>Redes Cobertas</em> especificam que redes disponíveis são membros desta "
-"zona."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr "Quita-feira"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr "Hora em UTC"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Para %s em %s <var>neste dispositivo</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "Para %s em %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "Para %s <var>neste dispositivo</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "Para %s, %s em %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "Para o endereço IP de origem"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "Para a porta de origem"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Regras de tráfego"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"Regras de tráfego definem políticas para a passagem de pacotes entre as "
-"diferentes zonas. Por exemplo, rejeitar o tráfego entre certos equipamentos "
-"ou abrir portas WAN no roteador."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr "Terça-feira"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr "SNAT sem nome"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr "Encaminhamento sem nome"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr "Regra sem nome"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "Via %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "Via %s at %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr "Quarta-feira"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr "Dias da semana"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"Você pode especificar múltiplas entradas selecionando \"-- personalizado --"
-"\" e então entrando os protocolos separados por espaço."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Zona %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "Zona ⇒ Encaminhamentos"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zonas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "aceitar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "qualquer"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "qualquer equipamento"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "qualquer endereço IP do roteador"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "qualquer zona"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr "dia"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "não rastrear"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "descartar"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr "hora"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr "minuto"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr "não"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr "porta"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr "portas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "rejeitar"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr "segundo"
-
-# 20140621: edersg: tradução
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr "tráfego"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr "tipo"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr "tipos"
diff --git a/package/luci/applications/luci-app-firewall/po/pt/firewall.po b/package/luci/applications/luci-app-firewall/po/pt/firewall.po
deleted file mode 100644 (file)
index 907dd7e..0000000
+++ /dev/null
@@ -1,924 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2013-06-03 13:37+0200\n"
-"Last-Translator: joao.f.vieira <joao.f.vieira@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: pt\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s em %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s with %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s em %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(Entrada Sem Nome)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(Regra Sem Nome)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(SNAT Sem Nome)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> pkts. por <var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Acção"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Adicionar"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Adicionar e editar..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Definições Avançadas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Permitir encaminhamento de <em>zonas de origem</em>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Permitir encaminhamento para <em>zonas de destino</em>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Qualquer"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Redes abrangidas"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Regras Personalizadas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"As regras personalizadas permitem-lhe executar comandos arbitrários iptables "
-"os quais não são possiveis de aplicar usando a framework da firewall. Os "
-"comandos são executados a seguir ao reinicio da firewall, logo a seguir ao "
-"conjunto de regras predefinidas serem carregadas."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Endereço IP de destino"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Endereço de destino"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Porta de destino"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Zona de destino"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "Não re-escrever"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Cancelar pacotes inválidos"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Ativar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "Ativar NAT Loopback"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Ativar a Proteção SYN-flood"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Ativar registo nesta zona"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Endereço IP externo"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Porta externa"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Zona externa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "Argumentos extra"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Firewall"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Firewall - Regras Personalizadas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Firewall - Encaminhamento de Portas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Firewall - Regras de Tráfego"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Firewall - Definições de Zona"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Forçar rasto de ligação"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Encaminhar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Encaminhar para"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "De %s em %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "De %s em %s com origem %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "De %s em %s com origem %s e %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Definições Gerais"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 e IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "Só IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "Só IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Entrada"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Encaminhamento Inter-Zona"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Endereço IP interno"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Porta interna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Zona Interna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Limitar registo de mensagens"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-#, fuzzy
-msgid "MSS clamping"
-msgstr "MSS-Correction"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Corresponder"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-"O tráfego encaminhado corresponde a uma determinada porta de destino ou "
-"intervalo de portas."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"O tráfego de entrada corresponde a uma dada porta de destino ou intervalo de "
-"portas neste host"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-"O tráfego de entrada corresponde a uma dada porta ou de um intervalo de "
-"portas no host cliente."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Nome"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Nova regra SNAT"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Nova regra de encaminhamento"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Nova regra de entrada"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Novo encaminhamento de porta"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Nova origem de NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr "Só se tráfego de entrada corresponder ao endereço IP fornecido."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "Só se o tráfego de entrada corresponder a um destes MACs."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr "Só se o tráfego de entrada corresponder a este IP ou intervalo."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-"Só se o tráfego de entrada corresponder à porta de origem fornecida ou de um "
-"intervalo de portas no host cliente"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Abrir portas no router"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Outro..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Saída"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr "Passa argumentos adicionais para o iptables. Usar com cuidado!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Encaminhamento de Portas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"O Encaminhamento de Portas permite que computadores remotos na internet se "
-"liguem a um computador ou serviço especifico na rede privada (LAN)."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protocolo"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-"Redirecionar a entrada de trafego correspondente à porta fornecida no host "
-"interno"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Redirecionar o tráfego de entrada correspondente para o host interno"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Restringir a família de endereços"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "Re-escrever para a origem %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "Re-escrever para a origem %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "Endereço IP da SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "Porta SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Endereço IP de origem"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "Endereço MAC de origem"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "NAT de origem"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"NAT de origem é uma forma especifica de mascarar que permite um controlo "
-"melhorado sobre o IP de origem usado para o tráfego de saída, por exemplo, "
-"para mapear múltiplos endereços para as sub-redes internas."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Endereço de origem"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Porta de origem"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Zona de origem"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"A firewall cria zonas sobre as interfaces de rede para controlar o fluxo do "
-"tráfego."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"Esta página permite-lhe alterar as definições avançadas da regra de entrada "
-"de tráfego, tal como correspondências de hosts de origem e destino."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Para %s no %s em <var>este dispositivo</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "Para %s em %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "Para %s em <var>este dispositivo</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "Para %s, %s em %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "Para o IP de origem"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "Para a porta de origem"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Regras de Tráfego"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"As Regras de Tráfego definem políticas para os pacotes que viajam entre "
-"diferentes zonas, por exemplo, para rejeitar trafego entre certos hosts ou "
-"para abrir portas WAN no router."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "Via %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "Via %s no %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"Pode especificar múltiplos seleccionando \"-- personalizado --\" e depois "
-"introduzir os protocolos separados por espaço."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Zona %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "Zona ⇒ Encaminhamentos"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zonas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "aceitar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "qualquer"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "qualquer host"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "qualquer IP do router"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "qualquer zona"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "não seguir"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "drop"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "rejeitar"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/ro/firewall.po b/package/luci/applications/luci-app-firewall/po/ro/firewall.po
deleted file mode 100644 (file)
index 555d9d7..0000000
+++ /dev/null
@@ -1,894 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-06-29 19:33+0200\n"
-"Last-Translator: xxvirusxx <condor20_05@yahoo.it>\n"
-"Language-Team: none\n"
-"Language: ro\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
-"20)) ? 1 : 2);;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s în %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s cu %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s în %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(Intrare fără nume)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(Regulă fără nume)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(SNAT fără nume)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Acţiune"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Adaugă"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Adaugă şi editează..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Setări avansate"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Permite trecerea din <em>zonele sursa</em>."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Permite trecerea catre <em>zonele sursa</em>."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Oricare"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Retele acoperite"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Reguli suplimentare"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Destinaţie adresă IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Destinaţie adresă"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Portul destinatie"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Zona destinatie"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "Nu rescrie"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Descarcă pachetele invalide"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Activează"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "Activează loopback NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Activează protecţia SYN-flood"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Activeaza log in aceasta zona"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Adresă IP externă"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Port extern"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Zonă externă"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Firewall"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Firewall - Reguli particularizate"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Setari zona la firewall"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Forteaza urmarirea conexiunilor"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Forward"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Setari generale"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 şi IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "doar IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "doar IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Intrare"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Forwardare intre-zone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Adresa IP interna"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Port intern"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Zonă internă"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Limitează mesaje în log"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "Ajustare MSS"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "Translatare"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Potrivire"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Potriveste pe tipul de ICMP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Nume"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Regulă nouă SNAT"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Altele..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Ieşire"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protocol"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "Sursă adresă IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "Sursă adresă MAC"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "Sursă NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Adresa sursa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Port sursa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Zona sursa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Zona %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zone"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "accept"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "oricare"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/ru/firewall.po b/package/luci/applications/luci-app-firewall/po/ru/firewall.po
deleted file mode 100644 (file)
index e049d9f..0000000
+++ /dev/null
@@ -1,946 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: LuCI: firewall\n"
-"POT-Creation-Date: 2013-09-05 16:02+0200\n"
-"PO-Revision-Date: 2018-09-06 09:29+0300\n"
-"Language-Team: http://cyber-place.ru\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.7.1\n"
-"Last-Translator: Anton Kikin <a.kikin@tano-systems.com>\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n"
-"%100<10 || n%100>=20) ? 1 : 2);\n"
-"Language: ru\n"
-"Project-Info: Это технический перевод, не дословный. Главное-удобный русский "
-"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s в %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s с %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s в %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(Запись без имени)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(Правило без имени)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(SNAT без имени)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> пакетов за <var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> пакетов за <var>%s</var>, подряд <var>%d</var> пакетов"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> с пределом в %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr "Принимать перенаправляемый трафик"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr "Принимать входящий трафик"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr "Принимать исходящий трафик"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Действие"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Добавить"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Добавить и редактировать..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Дополнительные настройки"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Разрешить перенаправление из <em>'зон источников'</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Разрешить перенаправление в <em>'зоны назначения'</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Любой"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Использовать сети"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Пользовательские правила"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"Пользовательские правила позволяют выполнять произвольные команды iptables, "
-"которые не охвачены рамками межсетевого экрана. Команды выполняются после "
-"каждой перезагрузки межсетевого экрана, сразу после загрузки набора правил "
-"по умолчанию."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "IP-адрес назначения"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Адрес назначения"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Порт назначения"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Зона назначения"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr "Отключить"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr "Отклонять перенаправляемый трафик"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr "Отклонять входящий трафик"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr "Отклонять исходящий трафик"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "Не перезаписывать"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr "Не отслеживать перенаправляемый трафик"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr "Не отслеживать входящий трафик"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr "Не отслеживать исходящий трафик"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Отбрасывать некорректные пакеты"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Включить"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "Включить NAT Loopback"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Включить защиту от SYN-flood атак"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Включить журналирование в этой зоне"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr "Экспериментальный функционал. Не полностью совместим с QoS/SQM."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Внешний IP-адрес"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Внешний порт"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Внешняя зона"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "Дополнительные аргументы"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Межсетевой экран"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Межсетевой экран - Пользовательские правила"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Межсетевой экран - Перенаправление портов"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Межсетевой экран - Правила для трафика"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Межсетевой экран - Настройка зон"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Включить отслеживание соединений"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Перенаправление"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Перенаправлять на"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr "Пятница"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "Из %s в %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "Из %s в %s с источником %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "Из %s в %s с источниками %s и %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr "Из %s в <var>это устройство</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "Из %s в <var>это устройство</var> с источником %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "Из %s в <var>это устройство</var> с источниками %s and %s"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Основные настройки"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr "Аппаратный flow offloading"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr "IP-адрес"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr "Диапазон IP-адресов"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr "IP-адреса"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 и IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "Только IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "Только IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Входящий трафик"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Перенаправление между зонами"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Внутренний IP-адрес"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Внутренний порт"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Внутренняя зона"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Ограничить журнал сообщений"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr "MAC-адрес"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr "MAC-адреса"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "Ограничение MSS"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "Маскарадинг"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Входящий трафик"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Соответствовать ICMP типу"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-"Перенаправлять соответствующий трафик на указанный порт или диапазон портов."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Порт или диапазон портов, входящие подключения на который будут "
-"перенаправляться на внутренний порт внутреннего IP-адреса (см. ниже)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-"Выбирать входящий трафик, исходящий из порта или диапазона портов "
-"клиентского хоста."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr "Понедельник"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr "Дни месяца"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Имя"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Новое правило SNAT"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Новое правило перенаправления"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Новое правило для входящего трафика"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Новое перенаправление порта"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Новый SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-"Применять правило только для входящих подключений на указанный IP-адрес"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "Применять правило только для входящего трафика от этих MAC-адресов."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-"Применять правило только для входящего трафика от этого IP-адреса или "
-"диапазона адресов."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-"Применять правило только для входящего трафика от указанного порта или "
-"диапазона портов клиентского хоста"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Открыть порты на маршрутизаторе"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Другое..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Исходящий трафик"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr "Исходящая зона"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-"Передаёт дополнительные аргументы таблице iptables. Используйте с "
-"осторожностью!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Перенаправление портов"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"Перенаправленные портов позволяет удалённым компьютерам из Интернета "
-"соединяться с компьютером или службой внутри частной локальной сети."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Протокол"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-"Перенаправлять трафик на указанный порт или диапазон портов внутреннего IP-"
-"адреса"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Перенаправлять трафик на указанный IP-адрес"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr "Сбрасывать перенаправляемый трафик"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr "Сбрасывать входящий трафик"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr "Сбрасывать исходящий трафик"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-"Требуется аппаратная поддержка NAT. Реализовано, по крайней мере, для mt7621"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr "Перезапустить межсетевой экран"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "Использовать маскарадинг только для указанных подсетей-получателей"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "Использовать маскарадинг только для указанных подсетей-отправителей"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Использовать протокол"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "Перенаправлять соответствующий трафик к указанному адресу."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-"Перенаправлять соответствующий трафик к указанному порту источника. Может "
-"быть пустым в случае, если необходимо перенаправить только IP-адрес."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "Перенаправлять к источнику %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "Перенаправлять к источнику %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr "Маршрутизация/NAT offloading"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr "Правило отключено"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr "Правило включено"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "IP-адрес SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "Порт SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr "Суббота"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr "Программная реализация offloading для маршрутизации/NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr "Программный flow offloading"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "IP-адрес источника"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "MAC-адрес источника"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "NAT источника"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"SNAT - это особая форма маскарадинга (masquerading), позволяющая "
-"осуществлять детальный контроль над IP-адресом источника для исходящего "
-"трафика, например, перенаправление нескольких WAN-адресов во внутреннюю "
-"подсеть."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Адрес источника"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Порт источника"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Зона источника"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr "Дата начала (год-мес-день)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr "Время начала (чч:мм:сс)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr "Дата окончания (год-мес-день)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr "Время окончания (чч:мм:сс)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr "Воскресенье"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr "Межсетевой экран создает зоны в вашей сети для контроля трафика."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"Данные настройки управляют политиками перенаправления трафика между этой "
-"(%s) и другими зонами. Трафиком <em>'зон-назначения'</em> является "
-"перенаправленный трафик <strong>'исходящий из %q'</strong>. Трафиком "
-"<em>'зон-источников'</em> является трафик <strong>'направленый в %q'</"
-"strong>. Перенаправление является <em>'однонаправленным'</em>, то есть "
-"перенаправление из lan в wan <em>'не'</em> допускает перенаправление трафика "
-"из wan в lan."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"На этой странице можно изменить расширенные настройки перенаправления портов."
-"В большинстве случаев нет необходимости изменять эти параметры."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"На этой странице можно изменить расширенные настройки правил для трафика.В "
-"большинстве случаев нет необходимости изменять эти параметры."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"Страница содержит общие свойства %q. Режимы <em>'Входящий трафик'</em> и "
-"<em>'Исходящий трафик'</em> устанавливают политики по умолчанию для трафика, "
-"поступающего и покидающего эту зону, в то время как режим "
-"<em>'Перенаправление'</em> описывает политику перенаправления трафика между "
-"различными сетями внутри зоны. <em>'Использовать сети'</em> указывает, какие "
-"доступные сети являются членами этой зоны."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr "Четверг"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr "Время UTC"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "К %s, %s на <var>этом устройстве</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "К %s в %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "К %s на <var>этом устройстве</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "К %s, %s в %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "К IP-адресу источника"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "К порту источника"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Правила для трафика"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"Правила для трафика определяют политику прохождения пакетов между разными "
-"зонами, например, запрет трафика между некоторыми хостами или открытие WAN-"
-"портов маршрутизатора."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr "Вторник"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr "SNAT без имени"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr "Перенаправление без имени"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr "Правило без имени"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "Через %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "Через %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr "Среда"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr "Дни недели"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"Вы можете указать несколько, выбрав '-- пользовательский --' и перечислив "
-"через пробел названия протоколов."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Зона %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "Зона ⇒ Перенаправления"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Зоны"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "принимать"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "любой"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "любого хоста"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "любой IP-адрес маршрутизатора"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "любой зоны"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr "день"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "не отслеживать"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "не обрабатывать"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr "час"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr "минута"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr "нет"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr "порт"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr "порты"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "отвергать"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr "секунда"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr "трафик"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr "тип"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr "типы"
diff --git a/package/luci/applications/luci-app-firewall/po/sk/firewall.po b/package/luci/applications/luci-app-firewall/po/sk/firewall.po
deleted file mode 100644 (file)
index ee7b7c9..0000000
+++ /dev/null
@@ -1,890 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/sv/firewall.po b/package/luci/applications/luci-app-firewall/po/sv/firewall.po
deleted file mode 100644 (file)
index f74da09..0000000
+++ /dev/null
@@ -1,896 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Kristoffer Grundström <hamnisdude@gmail.com>\n"
-"Language-Team: none\n"
-"Language: sv\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s i %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s med %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%2, %s i %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(Namnlös post)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(Namnlös regel)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(Namnlös SNAT)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> pkt. per <var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> pkt. per <var>%s</var>, brustna <var>%d</var> pkt."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> och gränsen till %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Åtgärd"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Lägg till"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Lägg till och redigera..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Avancerade inställningar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Tillåt vidarebefordring från <em>källzonerna</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Till vidarebefordring till <em>destinationszonerna:</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Alla"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Nätverk som omfattas"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Anpassade regler"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Destinationens IP-adress"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Destinationens adress"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Destinationsport"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Destinationens zon"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "Skriv inte om igen"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Släpp ogiltiga paket"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Aktivera"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Aktivera loggning i den här zonen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Extern IP-adress"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Extern port"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Extern zon"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "Extra argument"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Brandvägg"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Brandvägg - Anpassade regler"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Brandvägg - Vidarebefordring av port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Brandvägg - Trafikregler"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Brandvägg - Zoninställningar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Vidarebefordra"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Vidarebefordra till"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr "Fredag"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "Från %s i %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "Från %s i %s med källa %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "Från %s i %s med källa %s och %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Generella inställningar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 och IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "Endast IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "Endast IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Inmatning"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Intern IP-adress"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Intern port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Intern zon"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Begränsa loggmeddelanden"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "Maskering"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Matcha"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Matchar ICMP-typ"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-"Matcha vidarebefordrad trafik till den angivna destinationsporten eller "
-"portens räckvidd."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Matcha inkommande trafik dirigerad till den angivna destinationsporten eller "
-"portens räckvidd på den här värden"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr "Måndag"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr "Dagar i månaden"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Namn"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Ny SNAT-regel"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Ny regel för vidarebefordring"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Ny inmatningsregel"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Ny vidarebefordring av port"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Ny käll-NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-"Matcha endast inkommande trafik från den här IP-adressen eller räckvidden."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Öppna portar i router"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Andra..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Utmatning"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Vidarebefordringar av port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Protokoll"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr "Starta om brandvägg"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Begränsa till adressfamilj"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "Skriv om igen till källan %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "IP-adress för SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "SNAT-port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr "Lördag"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "IP-adress för källa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "MAC-adress för källa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr "Startdatum (åååå-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr "Starttid (tt:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr "Stopptid (åååå-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr "Stopptid (tt:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr "Söndag"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr "Torsdag"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr "Tid enligt UTC"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Till %s vid %s på <var>den här enheten</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "Till %s i %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "Till %s på <var>den här enheten</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "Till %s, %s i %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Trafikregler"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr "Tisdag"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "Via %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr "Onsdag"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr "Veckodagar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Zon %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zoner"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "acceptera"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "alla"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "alla värdar"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "alla zoner"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "spåra inte"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "släpp"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "neka"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr "trafik"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/templates/firewall.pot b/package/luci/applications/luci-app-firewall/po/templates/firewall.pot
deleted file mode 100644 (file)
index e08ff3f..0000000
+++ /dev/null
@@ -1,883 +0,0 @@
-msgid ""
-msgstr "Content-Type: text/plain; charset=UTF-8"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/tr/firewall.po b/package/luci/applications/luci-app-firewall/po/tr/firewall.po
deleted file mode 100644 (file)
index f5c95b9..0000000
+++ /dev/null
@@ -1,890 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/uk/firewall.po b/package/luci/applications/luci-app-firewall/po/uk/firewall.po
deleted file mode 100644 (file)
index 40b3fb9..0000000
+++ /dev/null
@@ -1,936 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2018-12-29 23:25+0200\n"
-"Last-Translator: Yurii <yuripet@gmail.com>\n"
-"Language-Team: none\n"
-"Language: uk\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s у %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s із %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s у %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(Запис без назви)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(Правило без назви)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(SNAT без назви)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> пакетів за <var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> пакетів за <var>%s</var>, підряд <var>%d</var> пакетів"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> з лімітом %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr "Приймати переспрямовування"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr "Приймати вхідний"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr "Приймати вихідний"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Дія"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Додати"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Додати та редагувати..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "Розширені настройки"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "Дозволити переспрямовування від <em>зон джерела</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "Дозволити переспрямовування до <em>зон призначення</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "Будь-який"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "Покриті мережі"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "Настроювані правила"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"Настроювані правила дозволяють виконувати довільні команди <em>iptables</"
-"em>, які в іншому випадку не охоплені в межах брандмауера. Команди "
-"виконуються після кожного перезавантаження брандмауера, відразу після "
-"завантаження типового набору правил."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "IP-адреса призначення"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Адреса призначення"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Порт призначення"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "Зона призначення"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr "Вимкнути"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr "Відкидати переспрямовування"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr "Відкидати вхідний"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr "Відкидати вихідний"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "Не перезаписувати"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr "Не відслідковувати переспрямовування"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr "Не відслідковувати вхідний"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr "Не відслідковувати вихідний"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Відкидати помилкові пакети"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "Увімкнути"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "Увімкнути NAT Loopback"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "Увімкнути захист від SYN-flood"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "Увімкнути реєстрування у цій зоні"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr "Експериментальна функція. Не повністю сумісно з QoS / SQM."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "Зовнішня IP-адреса"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "Зовнішній порт"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Зовнішня зона"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "Додаткові аргументи"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Брандмауер"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "Брандмауер — Настроювані правила"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "Брандмауер — Переспрямовування портів"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "Брандмауер — Правила трафіка"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "Брандмауер — Параметри зон"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Увімкнути відстеження з'єднань"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "Переспрямовування"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "переспрямовування до"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr "П'ятниця"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "%s у %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "%s у %s з джерелом %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "%s у %s з джерелом %s та %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr "Від %s на <var>цьому пристрої</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "Від %s на <var>цьому пристрої</var> з джерелом %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "Від %s на <var>цьому пристрої</var> з джерелом %s та %s"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "Загальні настройки"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr "Апаратні засоби розвантаження потоку"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr "IP-адреса"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr "Діапазон IP"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr "IP-адреси"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 та IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "Лише IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "Лише IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Вхідний"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Переспрямовування між зонами"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "Внутрішня IP-адреса"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "Внутрішній порт"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "Внутрішня зона"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "Обмеження повідомлень журналу"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr "MAC-адреса"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr "MAC-адреси"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "Затискання MSS"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "Підміна"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "Зіставляти"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "Зіставляти ICMP типу"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-"Зіставляти трафік, що переспрямовується на заданий порт призначення або "
-"діапазон портів."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-"Зіставляти вхідний трафік, спрямований на заданий порт призначення або "
-"діапазон портів цього вузла."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-"Зіставляти вхідний трафік, що виникає на заданому порту джерела або "
-"діапазоні портів вузла клієнта."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr "Понеділок"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr "Дні місяця"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Ім'я"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Нове правило SNAT"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Нове правило переспрямовування"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Нове вхідне правило"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Нове переспрямовування порту"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Новий NAT джерела"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr "Зіставляти тільки вхідний трафік, спрямований на задану IP-адресу."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "Зіставляти тільки вхідний трафік від цих MAC-адрес."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr "Зіставляти тільки вхідний трафік від цього IP чи діапазону."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-"Зіставляти тільки вхідний трафік, що виникає на заданому порту джерела або "
-"діапазоні портів вузла клієнта."
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Відкрити порти на роутері"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Інше..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Вихідний"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr "Вихідна зона"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-"Передача додаткових аргументів для IPTables. Використовуйте з обережністю!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "Переспрямовування портів"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"Переспрямовування портів дозволяє віддаленим комп'ютерам з Інтернету "
-"підключатися до певного комп'ютера або служби у приватній мережі."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "Протокол"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-"Переспрямувати відповідний вхідний трафік на заданий порт внутрішнього вузла"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "Переспрямувати відповідний вхідний трафік на заданий внутрішній вузол"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr "Відхиляти переспрямовування"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr "Відхиляти вхідний"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr "Відхиляти вихідний"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr "Необхідна апаратна підтримка NAT. Упроваджено принаймні для mt7621"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr "Перезавантажити брандмауер"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "Обмежити підміну заданими підмережами призначення"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "Обмежити підміну заданими підмережами джерела"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "Обмежити сімейство протоколів"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "Переписувати зіставлений трафік на вказану адресу."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-"Переписувати зіставлений трафік на вказаний порт джерела. Може залишатися "
-"порожнім, щоб переписувати тільки IP-адресу."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "перезапис на джерело %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "перезапис на джерело %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr "Розвантаження маршрутизації/NAT"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr "Правило вимкнено"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr "Правило ввімкнено"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "IP-адреса SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "Порт SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr "Субота"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr "Програмне розвантаження для маршрутизації/NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr "Програмне розвантаження потоку"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "IP-адреса джерела"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "MAC-адреса джерела"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "NAT джерела"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"NAT джерела є специфічною формою маскування, яка дозволяє мати детальний "
-"контроль над IP джерела, що використовуються для вихідного трафіку, "
-"наприклад, для зіставлення кількох WAN-адрес внутрішнім підмережам."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "Адреса джерела"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Порт джерела"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "Зона джерела"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr "Дата початку (рррр-мм-дд)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr "Час початку (гг:хх:сс)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr "Дата зупинки (рррр-мм-дд)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr "Час зупинки (гг:хх:сс)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr "Неділя"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"Брандмауер створює зони поверх ваших мережевих інтерфейсів для управління "
-"потоком мережевого трафіку."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"Опції, наведені нижче, керують політиками переспрямовування між цією (%s) та "
-"іншими зонами. <em>Зони призначення</em> покриваються переспрямованим "
-"трафіком, що <strong>виходить з %q</strong>. <em>Зони джерела</em> "
-"покриваються трафіком з інших зон, <strong>переспрямованим на %q</strong>. "
-"Правило переспрямовування є <em>односпрямованим</em>, тобто, спрямовування "
-"від LAN до WAN <em>не</em> означає, що є також дозвіл спрямовувати від WAN "
-"до LAN."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"На цій сторінці можна змінити додаткові властивості елемента "
-"переспрямовування портів. У більшості випадків змінювати ці параметри немає "
-"потреби."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"На цій сторінці можна змінити додаткові властивості елемента правил трафіка, "
-"таких як відповідні параметри джерела та вузлів призначення."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"Цей розділ визначає загальні властивості %q. Параметри <em>вхідний</em> і "
-"<em>вихідний</em> задають типову політику для трафіку на вході й виході з "
-"цієї зони, а параметр \"переспрямовування\" описує політику спрямовування "
-"трафіку між різними мережами в межах зони. Пункт <em>Покриті мережі</em> "
-"визначає, які доступні мережі є членами цієї зони."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr "Четвер"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr "Час в UTC"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "%s на %s <var>цього пристрою</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "%s у %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "%s на <var>цього пристрою</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "%s, %s у %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "До IP джерела"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "До порту джерела"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "Правила трафіка"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"Правила трафіка визначають політику для пакетів, що пересилаються між "
-"різними зонами, наприклад, відхиляти трафік між певними вузлами або відкрити "
-"порти WAN на маршрутизаторі."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr "Вівторок"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr "SNAT без назви"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr "Переспрямовування без назви"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr "Правило без назви"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "Через %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "Через %s на %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr "Середа"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr "Дні тижня"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"Ви можете вказати кілька протоколів, вибравши \"-- додатково --\", а потім "
-"увівши їх, розділяючи пробілами."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Зона %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "Зона ⇒ Переспрямовування"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Зони"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "приймати"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "будь-який"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "будь-який вузол"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "будь-який IP роутера"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "будь-якій зоні"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr "день"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "не відстеж."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "опускати"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr "година"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr "хвилина"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr "не"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr "порт"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr "порти"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "відкидати"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr "секунда"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr "трафік"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr "типом"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr "типами"
diff --git a/package/luci/applications/luci-app-firewall/po/vi/firewall.po b/package/luci/applications/luci-app-firewall/po/vi/firewall.po
deleted file mode 100644 (file)
index d25d15b..0000000
+++ /dev/null
@@ -1,905 +0,0 @@
-#  luci-fw.pot
-#  generated from ./applications/luci-fw/luasrc/i18n/luci-fw.en.lua
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2009-08-16 14:02+0200\n"
-"Last-Translator: Hong Phuc Dang <dhppat@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "Action"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "Địa chỉ điểm đến"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "Cổng điểm đến"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-#, fuzzy
-msgid "Destination zone"
-msgstr "Điểm đến"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "Bỏ qua nhưng gói không hợp lý"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-#, fuzzy
-msgid "Enable SYN-flood protection"
-msgstr "SYN-flood bảo vệ "
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "External port"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "Firewall"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "Input"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-#, fuzzy
-msgid "Internal IP address"
-msgstr "Internal address"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-#, fuzzy
-msgid "Internal port"
-msgstr "External port"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-#, fuzzy
-msgid "MSS clamping"
-msgstr "MSS Clamping"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "Output"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-#, fuzzy
-msgid "Source IP address"
-msgstr "Đỉa chỉ MAC nguồn"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-#, fuzzy
-msgid "Source address"
-msgstr "Đỉa chỉ MAC nguồn"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "Cổng nguồn"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-#, fuzzy
-msgid "Source zone"
-msgstr "Cổng nguồn"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr ""
-"The firewall tạo zones trên giao diện mạng lưới để điều triển sự dòng lưu "
-"thông của mạng."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "Zones"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "chấp nhận"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "drop"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "Không chấp nhận"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr ""
diff --git a/package/luci/applications/luci-app-firewall/po/zh-cn/firewall.po b/package/luci/applications/luci-app-firewall/po/zh-cn/firewall.po
deleted file mode 100644 (file)
index 3df951c..0000000
+++ /dev/null
@@ -1,907 +0,0 @@
-#
-# Yangfl <mmyangfl@gmail.com>, 2017, 2018.
-#
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
-"Language-Team:  <debian-l10n-chinese@lists.debian.org>\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"PO-Revision-Date: 2018-08-08 08:28+0800\n"
-"X-Generator: Gtranslator 2.91.7\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s 位于 %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s 和 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s 位于 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(未命名条目)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(未命名规则)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(未命名 SNAT)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> 数据包/<var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> 数据包/<var>%s</var>,突发 <var>%d</var> 数据包。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> 并限制到 %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr "接受转发"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr "接受入站"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr "接受出站"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "动作"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "添加"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "添加并编辑…"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "高级设置"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "允许从<em>源区域</em>转发:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "允许转发到<em>目标区域</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "任何"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "覆盖网络"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "自定义规则"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"自定义规则允许您执行不属于防火墙框架的任意 iptables 命令。每次重启防火墙时,"
-"在默认的规则运行后这些命令将立即执行。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "目标 IP 地址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "目标地址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "目标端口"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "目标区域"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr "禁用"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr "丢弃转发"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr "丢弃入站"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr "丢弃出站"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "不重写"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr "不跟踪转发"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr "不跟踪入站"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr "不跟踪出站"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "丢弃无效数据包"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "启用"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "启用 NAT 环回"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "启用 SYN-flood 防御"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "启用此区域的日志记录"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr "实验特性。与 QoS/SQM 不完全兼容。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "外部 IP 地址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "外部端口"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "外部区域"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "附加参数"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "防火墙"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "防火墙 - 自定义规则"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "防火墙 - 端口转发"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "防火墙 - 通信规则"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "防火墙 - 区域设置"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "强制连接追踪"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "转发"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "转发到"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr "星期五"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "来自 %s 位于 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "来自 %s 位于 %s 源于 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "来自 %s 位于 %s 源端口 %s 源 MAC %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr "来自 %s 位于<var>本设备</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "来自 %s 位于<var>本设备</var>源于 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "来自 %s 位于<var>本设备</var>源端口 %s 源 MAC %s"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "基本设置"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr "硬件流量分载"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr "IP 范围"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr "IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 和 IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "仅 IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "仅 IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "入站数据"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "端口触发"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "内部 IP 地址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "内部端口"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "内部区域"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "限制日志信息"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "MSS 钳制"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "IP 动态伪装"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "匹配规则"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "匹配 ICMP 类型"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr "匹配指定目标端口或目标端口范围的转发流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr "匹配指向此主机上指定目标端口或目标端口范围的入站流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr "匹配来自客户端主机上指定源端口或源端口范围的入站流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr "星期一"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr "日期"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "名字"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "新建 SNAT 规则"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "新建转发规则"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "新建进入规则"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "新建端口转发"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "新建 Source NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr "仅匹配指定目的 IP 地址的入站流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "仅匹配来自这些 MAC 的入站流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr "仅匹配来自此 IP 或 IP 范围的入站流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr "仅匹配源自客户端主机上给定源端口或源端口范围的入站流量。"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "打开路由器端口"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "其它..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "出站数据"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr "出站区域"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr "传递到 iptables 的额外参数。小心使用!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "端口转发"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr ""
-"端口转发允许 Internet 上的远程计算机连接到内部网络中的特定计算机或服务。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "协议"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr "重定向匹配的入站流量到内部主机的端口"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "重定向匹配的入站流量到指定的内部主机"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr "拒绝转发"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr "拒绝入站"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr "拒绝出站"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr "需要硬件 NAT 支持。目前 mt7621 已实现"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr "重启防火墙"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "要限制 IP 动态伪装的目标子网"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "要限制 IP 动态伪装的源子网"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "限制地址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "将匹配流量的源地址改写成指定地址。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr "将匹配流量的源端口改写成指定端口。留空只改写 IP 地址。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "源地址改写成 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "源地址改写成 %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr "Routing/NAT 分载"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr "规则已禁用"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr "规则已启用"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "SNAT IP 地址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "SNAT 端口"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr "星期六"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr "基于软件的 Routing/NAT 分载"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr "软件流量分载"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "源 IP 地址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "源 MAC 地址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "Source NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"Source NAT 是一种特殊形式的封包伪装,它允许精细的控制传出流量的源 IP,例如:"
-"将多个 WAN 地址映射到内部子网。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "源地址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "源端口"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "源区域"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr "开始日期(yyyy-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr "开始时间(hh:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr "停止日期(yyyy-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr "停止时间(hh:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr "星期日"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr "防火墙通过在网络接口上创建区域来控制网络流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"以下选项可以控制区域(%s)和其它区域间的转发规则。<em>目标区域</em>接收"
-"<strong>源自 %q</strong> 的转发流量。<em>源区域</em>匹配从<strong>目标为 %q</"
-"strong> 的区域的需转发流量。转发规则的作用是<em>单向</em>的,例如:一条允许"
-"从 lan 到 wan 的转发规则并不隐含有允许相反方向从 wan 到 lan 的流量转发。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr "本页面可以更改端口转发的高级设置。大多数情况下,不需要更改这些设置。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr "本页面可以更改通信规则的高级设置,比如:需匹配的源主机和目标主机。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"本节定义 %q 的通用属性,<em>入站数据</em>和<em>出站数据</em>选项用于设置此区"
-"域入站和出站流量的默认策略,<em>转发</em>选项描述该区域内不同网络之间的流量转"
-"发策略。<em>覆盖网络</em>指定从属于这个区域的网络。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr "星期四"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr "UTC 时间"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "到 %s 在 %s 位于<var>本设备</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "到 %s 位于 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "到 %s 位于<var>本设备</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "到 %s, %s 位于 %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "到源 IP"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "到源端口"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "通信规则"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"通信规则定义了不同区域间的数据包传输策略,例如:拒绝一些主机之间的通信,开放"
-"路由器 WAN 上的端口。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr "星期二"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr "未命名 SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr "未命名转发"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr "未命名规则"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "通过 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "通过 %s 在 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr "星期三"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr "星期"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr "您也可以选择“--自定义--”来定义多个协议,在多个协议间需加空格。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "区域 %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "区域 ⇒ 转发"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "区域"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "接受"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "所有"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "所有主机"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "所有路由 IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "所有区域"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr "日"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "不跟踪"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "丢弃"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr "小时"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr "分钟"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr "非"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr "端口"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr "端口"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "拒绝"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr "秒"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr "通信"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr "类型"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr "类型"
diff --git a/package/luci/applications/luci-app-firewall/po/zh-tw/firewall.po b/package/luci/applications/luci-app-firewall/po/zh-tw/firewall.po
deleted file mode 100644 (file)
index 5816626..0000000
+++ /dev/null
@@ -1,906 +0,0 @@
-#
-# Yangfl <mmyangfl@gmail.com>, 2017, 2018.
-#
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
-"Language-Team:  <debian-l10n-chinese@lists.debian.org>\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"PO-Revision-Date: 2018-08-08 08:28+0800\n"
-"X-Generator: Gtranslator 2.91.7\n"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s 位於 %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s 和 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s 位於 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(未命名條目)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(未命名規則)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(未命名 SNAT)"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> 資料包/<var>%s</var>"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> 資料包/<var>%s</var>,突發 <var>%d</var> 資料包。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> 並限制到 %s"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr "接受轉發"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr "接受入站"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr "接受出站"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
-msgid "Action"
-msgstr "動作"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "新增"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "新增並編輯…"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
-msgid "Advanced Settings"
-msgstr "高階設定"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
-msgid "Allow forward from <em>source zones</em>:"
-msgstr "允許從<em>源區域</em>轉發:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
-msgid "Allow forward to <em>destination zones</em>:"
-msgstr "允許轉發到<em>目標區域</em>:"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
-msgid "Any"
-msgstr "任何"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
-msgid "Covered networks"
-msgstr "覆蓋網路"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
-msgid "Custom Rules"
-msgstr "自訂規則"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
-msgid ""
-"Custom rules allow you to execute arbitrary iptables commands which are not "
-"otherwise covered by the firewall framework. The commands are executed after "
-"each firewall restart, right after the default ruleset has been loaded."
-msgstr ""
-"自訂規則允許您執行不屬於防火牆框架的任意 iptables 指令。每次重啟防火牆時,在"
-"預設的規則執行後這些指令將立即執行。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "目標 IP 位址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
-msgid "Destination address"
-msgstr "目標位址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
-msgid "Destination port"
-msgstr "目標埠"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
-msgid "Destination zone"
-msgstr "目標區域"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr "禁用"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr "丟棄轉發"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr "丟棄入站"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr "丟棄出站"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "不重寫"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr "不跟蹤轉發"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr "不跟蹤入站"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr "不跟蹤出站"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
-msgid "Drop invalid packets"
-msgstr "丟棄無效資料包"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
-msgid "Enable"
-msgstr "啟用"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
-msgid "Enable NAT Loopback"
-msgstr "啟用 NAT 環回"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
-msgid "Enable SYN-flood protection"
-msgstr "啟用 SYN-flood 防禦"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
-msgid "Enable logging on this zone"
-msgstr "啟用此區域的日誌記錄"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
-msgid "Experimental feature. Not fully compatible with QoS/SQM."
-msgstr "實驗特性。與 QoS/SQM 不完全相容。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
-msgid "External IP address"
-msgstr "外部 IP 位址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
-msgid "External port"
-msgstr "外部埠"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "外部區域"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
-msgid "Extra arguments"
-msgstr "附加引數"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
-msgid "Firewall"
-msgstr "防火牆"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
-msgid "Firewall - Custom Rules"
-msgstr "防火牆 - 自訂規則"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
-msgid "Firewall - Port Forwards"
-msgstr "防火牆 - 埠轉發"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
-msgid "Firewall - Traffic Rules"
-msgstr "防火牆 - 通訊規則"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
-msgid "Firewall - Zone Settings"
-msgstr "防火牆 - 區域設定"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "強制連線追蹤"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
-msgid "Forward"
-msgstr "轉發"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "轉發到"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
-msgid "Friday"
-msgstr "星期五"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "來自 %s 位於 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "來自 %s 位於 %s 源於 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "來自 %s 位於 %s 源埠 %s 源 MAC %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr "來自 %s 位於<var>本裝置</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "來自 %s 位於<var>本裝置</var>源於 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "來自 %s 位於<var>本裝置</var>源埠 %s 源 MAC %s"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
-msgid "General Settings"
-msgstr "基本設定"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
-msgid "Hardware flow offloading"
-msgstr "硬體流量分載"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr "IP 範圍"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr "IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
-msgid "IPv4 and IPv6"
-msgstr "IPv4 和 IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
-msgid "IPv4 only"
-msgstr "僅 IPv4"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
-msgid "IPv6 only"
-msgstr "僅 IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
-msgid "Input"
-msgstr "入站資料"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "埠觸發"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
-msgid "Internal IP address"
-msgstr "內部 IP 位址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
-msgid "Internal port"
-msgstr "內部埠"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
-msgid "Internal zone"
-msgstr "內部區域"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
-msgid "Limit log messages"
-msgstr "限制日誌資訊"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
-msgid "MSS clamping"
-msgstr "MSS 鉗制"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
-msgid "Masquerading"
-msgstr "IP 動態偽裝"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
-msgid "Match"
-msgstr "匹配規則"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
-msgid "Match ICMP type"
-msgstr "匹配 ICMP 型別"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr "匹配指定目標埠或目標埠範圍的轉發流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
-msgid ""
-"Match incoming traffic directed at the given destination port or port range "
-"on this host"
-msgstr "匹配指向此主機上指定目標埠或目標埠範圍的入站流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
-msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
-msgstr "匹配來自客戶端主機上指定源埠或源埠範圍的入站流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
-msgid "Monday"
-msgstr "星期一"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
-msgid "Month Days"
-msgstr "日期"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "名字"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "新建 SNAT 規則"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "新建轉發規則"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "新建進入規則"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "新建埠轉發"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "新建 Source NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
-msgid "Only match incoming traffic directed at the given IP address."
-msgstr "僅匹配指定目的 IP 位址的入站流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
-msgid "Only match incoming traffic from these MACs."
-msgstr "僅匹配來自這些 MAC 的入站流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
-msgid "Only match incoming traffic from this IP or range."
-msgstr "僅匹配來自此 IP 或 IP 範圍的入站流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
-msgid ""
-"Only match incoming traffic originating from the given source port or port "
-"range on the client host"
-msgstr "僅匹配源自客戶端主機上給定源埠或源埠範圍的入站流量。"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "開啟路由器埠"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "其它..."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
-msgid "Output"
-msgstr "出站資料"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr "出站區域"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
-msgid "Passes additional arguments to iptables. Use with care!"
-msgstr "傳遞到 iptables 的額外引數。小心使用!"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
-msgid "Port Forwards"
-msgstr "埠轉發"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
-msgid ""
-"Port forwarding allows remote computers on the Internet to connect to a "
-"specific computer or service within the private LAN."
-msgstr "埠轉發允許 Internet 上的遠端計算機連線到內部網路中的特定計算機或服務。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
-msgid "Protocol"
-msgstr "協議"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
-msgid ""
-"Redirect matched incoming traffic to the given port on the internal host"
-msgstr "重定向匹配的入站流量到內部主機的埠"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
-msgid "Redirect matched incoming traffic to the specified internal host"
-msgstr "重定向匹配的入站流量到指定的內部主機"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr "拒絕轉發"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr "拒絕入站"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr "拒絕出站"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
-msgid "Requires hardware NAT support. Implemented at least for mt7621"
-msgstr "需要硬體 NAT 支援。目前 mt7621 已實現"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr "重啟防火牆"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
-msgid "Restrict Masquerading to given destination subnets"
-msgstr "要限制 IP 動態偽裝的目標子網"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
-msgid "Restrict Masquerading to given source subnets"
-msgstr "要限制 IP 動態偽裝的源子網"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
-msgid "Restrict to address family"
-msgstr "限制位址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "將匹配流量的源位址改寫成指定位址。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
-msgstr "將匹配流量的源埠改寫成指定埠。留空只改寫 IP 位址。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "源位址改寫成 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "源位址改寫成 %s, %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
-msgid "Routing/NAT Offloading"
-msgstr "Routing/NAT 分載"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr "規則已禁用"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr "規則已啟用"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "SNAT IP 位址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "SNAT 埠"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
-msgid "Saturday"
-msgstr "星期六"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
-msgid "Software based offloading for routing/NAT"
-msgstr "基於軟體的 Routing/NAT 分載"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
-msgid "Software flow offloading"
-msgstr "軟體流量分載"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
-msgid "Source IP address"
-msgstr "源 IP 位址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
-msgid "Source MAC address"
-msgstr "源 MAC 位址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "Source NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"Source NAT 是一種特殊形式的封包偽裝,它允許精細的控制傳出流量的源 IP,例如:"
-"將多個 WAN 位址對映到內部子網。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
-msgid "Source address"
-msgstr "源位址"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
-msgid "Source port"
-msgstr "源埠"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
-msgid "Source zone"
-msgstr "源區域"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
-msgid "Start Date (yyyy-mm-dd)"
-msgstr "開始日期(yyyy-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr "開始時間(hh:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
-msgid "Stop Date (yyyy-mm-dd)"
-msgstr "停止日期(yyyy-mm-dd)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr "停止時間(hh:mm:ss)"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
-msgid "Sunday"
-msgstr "星期日"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
-msgid ""
-"The firewall creates zones over your network interfaces to control network "
-"traffic flow."
-msgstr "防火牆通過在網路介面上建立區域來控制網路流量。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
-msgid ""
-"The options below control the forwarding policies between this zone (%s) and "
-"other zones. <em>Destination zones</em> cover forwarded traffic "
-"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
-"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
-"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
-"<em>not</em> imply a permission to forward from wan to lan as well."
-msgstr ""
-"以下選項可以控制區域(%s)和其它區域間的轉發規則。<em>目標區域</em>接收"
-"<strong>源自 %q</strong> 的轉發流量。<em>源區域</em>匹配從<strong>目標為 %q</"
-"strong> 的區域的需轉發流量。轉發規則的作用是<em>單向</em>的,例如:一條允許"
-"從 lan 到 wan 的轉發規則並不隱含有允許相反方向從 wan 到 lan 的流量轉發。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr "本頁面可以更改埠轉發的高階設定。大多數情況下,不需要更改這些設定。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr "本頁面可以更改通訊規則的高階設定,比如:需匹配的源主機和目標主機。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
-msgid ""
-"This section defines common properties of %q. The <em>input</em> and "
-"<em>output</em> options set the default policies for traffic entering and "
-"leaving this zone while the <em>forward</em> option describes the policy for "
-"forwarded traffic between different networks within the zone. <em>Covered "
-"networks</em> specifies which available networks are members of this zone."
-msgstr ""
-"本節定義 %q 的通用屬性,<em>入站資料</em>和<em>出站資料</em>選項用於設定此區"
-"域入站和出站流量的預設策略,<em>轉發</em>選項描述該區域內不同網路之間的流量轉"
-"發策略。<em>覆蓋網路</em>指定從屬於這個區域的網路。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
-msgid "Thursday"
-msgstr "星期四"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
-msgid "Time in UTC"
-msgstr "UTC 時間"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "到 %s 在 %s 位於<var>本裝置</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "到 %s 位於 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "到 %s 位於<var>本裝置</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "到 %s, %s 位於 %s"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "到源 IP"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "到源埠"
-
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
-msgid "Traffic Rules"
-msgstr "通訊規則"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
-msgid ""
-"Traffic rules define policies for packets traveling between different zones, "
-"for example to reject traffic between certain hosts or to open WAN ports on "
-"the router."
-msgstr ""
-"通訊規則定義了不同區域間的資料包傳輸策略,例如:拒絕一些主機之間的通訊,開放"
-"路由器 WAN 上的埠。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
-msgid "Tuesday"
-msgstr "星期二"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr "未命名 SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
-msgid "Unnamed forward"
-msgstr "未命名轉發"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
-msgid "Unnamed rule"
-msgstr "未命名規則"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "通過 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "通過 %s 在 %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
-msgid "Wednesday"
-msgstr "星期三"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
-msgid "Week Days"
-msgstr "星期"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr "您也可以選擇“--自訂--”來定義多個協議,在多個協議間需加空格。"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "區域 %q"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
-msgid "Zone ⇒ Forwardings"
-msgstr "區域 ⇒ 轉發"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
-msgid "Zones"
-msgstr "區域"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
-msgid "accept"
-msgstr "接受"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
-msgid "any"
-msgstr "所有"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "所有主機"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "所有路由 IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
-msgid "any zone"
-msgstr "所有區域"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
-msgid "day"
-msgstr "日"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
-msgid "don't track"
-msgstr "不跟蹤"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
-msgid "drop"
-msgstr "丟棄"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
-msgid "hour"
-msgstr "小時"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
-msgid "minute"
-msgstr "分鐘"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr "非"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr "埠"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr "埠"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
-msgid "reject"
-msgstr "拒絕"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
-msgid "second"
-msgstr "秒"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr "通訊"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr "型別"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr "型別"
diff --git a/package/luci/applications/luci-app-opkg/Makefile b/package/luci/applications/luci-app-opkg/Makefile
deleted file mode 100644 (file)
index 5763e91..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2018 Jo-Philipp Wich <jo@mein.io>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=OPKG package management application
-LUCI_DEPENDS:=+opkg
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js b/package/luci/applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js
deleted file mode 100644 (file)
index 4a36b0a..0000000
+++ /dev/null
@@ -1,815 +0,0 @@
-var packages = {
-       available: { providers: {}, pkgs: {} },
-       installed: { providers: {}, pkgs: {} }
-};
-
-var currentDisplayMode = 'available', currentDisplayRows = [];
-
-function parseList(s, dest)
-{
-       var re = /([^\n]*)\n/g,
-           pkg = null, key = null, val = null, m;
-
-       while ((m = re.exec(s)) !== null) {
-               if (m[1].match(/^\s(.*)$/)) {
-                       if (pkg !== null && key !== null && val !== null)
-                               val += '\n' + RegExp.$1.trim();
-
-                       continue;
-               }
-
-               if (key !== null && val !== null) {
-                       switch (key) {
-                       case 'package':
-                               pkg = { name: val };
-                               break;
-
-                       case 'depends':
-                       case 'provides':
-                               var list = val.split(/\s*,\s*/);
-                               if (list.length !== 1 || list[0].length > 0)
-                                       pkg[key] = list;
-                               break;
-
-                       case 'installed-time':
-                               pkg.installtime = new Date(+val * 1000);
-                               break;
-
-                       case 'installed-size':
-                               pkg.installsize = +val;
-                               break;
-
-                       case 'status':
-                               var stat = val.split(/\s+/),
-                                   mode = stat[1],
-                                   installed = stat[2];
-
-                               switch (mode) {
-                               case 'user':
-                               case 'hold':
-                                       pkg[mode] = true;
-                                       break;
-                               }
-
-                               switch (installed) {
-                               case 'installed':
-                                       pkg.installed = true;
-                                       break;
-                               }
-                               break;
-
-                       case 'essential':
-                               if (val === 'yes')
-                                       pkg.essential = true;
-                               break;
-
-                       case 'size':
-                               pkg.size = +val;
-                               break;
-
-                       case 'architecture':
-                       case 'auto-installed':
-                       case 'filename':
-                       case 'sha256sum':
-                       case 'section':
-                               break;
-
-                       default:
-                               pkg[key] = val;
-                               break;
-                       }
-
-                       key = val = null;
-               }
-
-               if (m[1].trim().match(/^([\w-]+)\s*:(.+)$/)) {
-                       key = RegExp.$1.toLowerCase();
-                       val = RegExp.$2.trim();
-               }
-               else {
-                       dest.pkgs[pkg.name] = pkg;
-
-                       var provides = dest.providers[pkg.name] ? [] : [ pkg.name ];
-
-                       if (pkg.provides)
-                               provides.push.apply(provides, pkg.provides);
-
-                       provides.forEach(function(p) {
-                               dest.providers[p] = dest.providers[p] || [];
-                               dest.providers[p].push(pkg);
-                       });
-               }
-       }
-}
-
-function display(pattern)
-{
-       var src = packages[currentDisplayMode === 'updates' ? 'installed' : currentDisplayMode],
-           table = document.querySelector('#packages'),
-           pager = document.querySelector('#pager');
-
-       currentDisplayRows.length = 0;
-
-       if (typeof(pattern) === 'string' && pattern.length > 0)
-               pattern = new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'ig');
-
-       for (var name in src.pkgs) {
-               var pkg = src.pkgs[name],
-                   desc = pkg.description || '',
-                   altsize = null;
-
-               if (!pkg.size && packages.available.pkgs[name])
-                       altsize = packages.available.pkgs[name].size;
-
-               if (!desc && packages.available.pkgs[name])
-                       desc = packages.available.pkgs[name].description || '';
-
-               desc = desc.split(/\n/);
-               desc = desc[0].trim() + (desc.length > 1 ? '…' : '');
-
-               if ((pattern instanceof RegExp) &&
-                   !name.match(pattern) && !desc.match(pattern))
-                       continue;
-
-               var btn, ver;
-
-               if (currentDisplayMode === 'updates') {
-                       var avail = packages.available.pkgs[name];
-                       if (!avail || compareVersion(avail.version, pkg.version) <= 0)
-                               continue;
-
-                       ver = '%s » %s'.format(
-                               truncateVersion(pkg.version || '-'),
-                               truncateVersion(avail.version || '-'));
-
-                       btn = E('div', {
-                               'class': 'btn cbi-button-positive',
-                               'data-package': name,
-                               'click': handleInstall
-                       }, _('Upgrade…'));
-               }
-               else if (currentDisplayMode === 'installed') {
-                       ver = truncateVersion(pkg.version || '-');
-                       btn = E('div', {
-                               'class': 'btn cbi-button-negative',
-                               'data-package': name,
-                               'click': handleRemove
-                       }, _('Remove'));
-               }
-               else {
-                       ver = truncateVersion(pkg.version || '-');
-
-                       if (!packages.installed.pkgs[name])
-                               btn = E('div', {
-                                       'class': 'btn cbi-button-action',
-                                       'data-package': name,
-                                       'click': handleInstall
-                               }, _('Install…'));
-                       else if (packages.installed.pkgs[name].version != pkg.version)
-                               btn = E('div', {
-                                       'class': 'btn cbi-button-positive',
-                                       'data-package': name,
-                                       'click': handleInstall
-                               }, _('Upgrade…'));
-                       else
-                               btn = E('div', {
-                                       'class': 'btn cbi-button-neutral',
-                                       'disabled': 'disabled'
-                               }, _('Installed'));
-               }
-
-               name = '%h'.format(name);
-               desc = '%h'.format(desc || '-');
-
-               if (pattern) {
-                       name = name.replace(pattern, '<ins>$&</ins>');
-                       desc = desc.replace(pattern, '<ins>$&</ins>');
-               }
-
-               currentDisplayRows.push([
-                       name,
-                       ver,
-                       pkg.size ? '%.1024mB'.format(pkg.size)
-                                : (altsize ? '~%.1024mB'.format(altsize) : '-'),
-                       desc,
-                       btn
-               ]);
-       }
-
-       currentDisplayRows.sort(function(a, b) {
-               if (a[0] < b[0])
-                       return -1;
-               else if (a[0] > b[0])
-                       return 1;
-               else
-                       return 0;
-       });
-
-       pager.parentNode.style.display = '';
-       pager.setAttribute('data-offset', 100);
-       handlePage({ target: pager.querySelector('.prev') });
-}
-
-function handlePage(ev)
-{
-       var filter = document.querySelector('input[name="filter"]'),
-           pager = ev.target.parentNode,
-           offset = +pager.getAttribute('data-offset'),
-           next = ev.target.classList.contains('next');
-
-       if ((next && (offset + 100) >= currentDisplayRows.length) ||
-           (!next && (offset < 100)))
-           return;
-
-       offset += next ? 100 : -100;
-       pager.setAttribute('data-offset', offset);
-       pager.querySelector('.text').firstChild.data = currentDisplayRows.length
-               ? _('Displaying %d-%d of %d').format(1 + offset, Math.min(offset + 100, currentDisplayRows.length), currentDisplayRows.length)
-               : _('No packages');
-
-       if (offset < 100)
-               pager.querySelector('.prev').setAttribute('disabled', 'disabled');
-       else
-               pager.querySelector('.prev').removeAttribute('disabled');
-
-       if ((offset + 100) >= currentDisplayRows.length)
-               pager.querySelector('.next').setAttribute('disabled', 'disabled');
-       else
-               pager.querySelector('.next').removeAttribute('disabled');
-
-       var placeholder = _('No information available');
-
-       if (filter.value)
-               placeholder = [
-                       E('span', {}, _('No packages matching "<strong>%h</strong>".').format(filter.value)), ' (',
-                       E('a', { href: '#', onclick: 'handleReset(event)' }, _('Reset')), ')'
-               ];
-
-       cbi_update_table('#packages', currentDisplayRows.slice(offset, offset + 100),
-               placeholder);
-}
-
-function handleMode(ev)
-{
-       var tab = findParent(ev.target, 'li');
-       if (tab.getAttribute('data-mode') === currentDisplayMode)
-               return;
-
-       tab.parentNode.querySelectorAll('li').forEach(function(li) {
-               li.classList.remove('cbi-tab');
-               li.classList.add('cbi-tab-disabled');
-       });
-
-       tab.classList.remove('cbi-tab-disabled');
-       tab.classList.add('cbi-tab');
-
-       currentDisplayMode = tab.getAttribute('data-mode');
-
-       display(document.querySelector('input[name="filter"]').value);
-
-       ev.target.blur();
-       ev.preventDefault();
-}
-
-function orderOf(c)
-{
-       if (c === '~')
-               return -1;
-       else if (c === '' || c >= '0' && c <= '9')
-               return 0;
-       else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
-               return c.charCodeAt(0);
-       else
-               return c.charCodeAt(0) + 256;
-}
-
-function compareVersion(val, ref)
-{
-       var vi = 0, ri = 0,
-           isdigit = { 0:1, 1:1, 2:1, 3:1, 4:1, 5:1, 6:1, 7:1, 8:1, 9:1 };
-
-       val = val || '';
-       ref = ref || '';
-
-       if (val === ref)
-               return 0;
-
-       while (vi < val.length || ri < ref.length) {
-               var first_diff = 0;
-
-               while ((vi < val.length && !isdigit[val.charAt(vi)]) ||
-                      (ri < ref.length && !isdigit[ref.charAt(ri)])) {
-                       var vc = orderOf(val.charAt(vi)), rc = orderOf(ref.charAt(ri));
-                       if (vc !== rc)
-                               return vc - rc;
-
-                       vi++; ri++;
-               }
-
-               while (val.charAt(vi) === '0')
-                       vi++;
-
-               while (ref.charAt(ri) === '0')
-                       ri++;
-
-               while (isdigit[val.charAt(vi)] && isdigit[ref.charAt(ri)]) {
-                       first_diff = first_diff || (val.charCodeAt(vi) - ref.charCodeAt(ri));
-                       vi++; ri++;
-               }
-
-               if (isdigit[val.charAt(vi)])
-                       return 1;
-               else if (isdigit[ref.charAt(ri)])
-                       return -1;
-               else if (first_diff)
-                       return first_diff;
-       }
-
-       return 0;
-}
-
-function versionSatisfied(ver, ref, vop)
-{
-       var r = compareVersion(ver, ref);
-
-       switch (vop) {
-       case '<':
-       case '<=':
-               return r <= 0;
-
-       case '>':
-       case '>=':
-               return r >= 0;
-
-       case '<<':
-               return r < 0;
-
-       case '>>':
-               return r > 0;
-
-       case '=':
-               return r == 0;
-       }
-
-       return false;
-}
-
-function pkgStatus(pkg, vop, ver, info)
-{
-       info.errors = info.errors || [];
-       info.install = info.install || [];
-
-       if (pkg.installed) {
-               if (vop && !versionSatisfied(pkg.version, ver, vop)) {
-                       var repl = null;
-
-                       (packages.available.providers[pkg.name] || []).forEach(function(p) {
-                               if (!repl && versionSatisfied(p.version, ver, vop))
-                                       repl = p;
-                       });
-
-                       if (repl) {
-                               info.install.push(repl);
-                               return E('span', {
-                                       'class': 'label',
-                                       'data-tooltip': _('Requires update to %h %h')
-                                               .format(repl.name, repl.version)
-                               }, _('Needs upgrade'));
-                       }
-
-                       info.errors.push(_('The installed version of package <em>%h</em> is not compatible, require %s while %s is installed.').format(pkg.name, truncateVersion(ver, vop), truncateVersion(pkg.version)));
-
-                       return E('span', {
-                               'class': 'label warning',
-                               'data-tooltip': _('Require version %h %h,\ninstalled %h')
-                                       .format(vop, ver, pkg.version)
-                       }, _('Version incompatible'));
-               }
-
-               return E('span', { 'class': 'label notice' }, _('Installed'));
-       }
-       else if (!pkg.missing) {
-               if (!vop || versionSatisfied(pkg.version, ver, vop)) {
-                       info.install.push(pkg);
-                       return E('span', { 'class': 'label' }, _('Not installed'));
-               }
-
-               info.errors.push(_('The repository version of package <em>%h</em> is not compatible, require %s but only %s is available.')
-                               .format(pkg.name, truncateVersion(ver, vop), truncateVersion(pkg.version)));
-
-               return E('span', {
-                       'class': 'label warning',
-                       'data-tooltip': _('Require version %h %h,\ninstalled %h')
-                               .format(vop, ver, pkg.version)
-               }, _('Version incompatible'));
-       }
-       else {
-               info.errors.push(_('Required dependency package <em>%h</em> is not available in any repository.').format(pkg.name));
-
-               return E('span', { 'class': 'label warning' }, _('Not available'));
-       }
-}
-
-function renderDependencyItem(dep, info)
-{
-       var li = E('li'),
-           vop = dep.version ? dep.version[0] : null,
-           ver = dep.version ? dep.version[1] : null,
-           depends = [];
-
-       for (var i = 0; dep.pkgs && i < dep.pkgs.length; i++) {
-               var pkg = packages.installed.pkgs[dep.pkgs[i]] ||
-                         packages.available.pkgs[dep.pkgs[i]] ||
-                         { name: dep.name };
-
-               if (i > 0)
-                       li.appendChild(document.createTextNode(' | '));
-
-               var text = pkg.name;
-
-               if (pkg.installsize)
-                       text += ' (%.1024mB)'.format(pkg.installsize);
-               else if (pkg.size)
-                       text += ' (~%.1024mB)'.format(pkg.size);
-
-               li.appendChild(E('span', { 'data-tooltip': pkg.description },
-                       [ text, ' ', pkgStatus(pkg, vop, ver, info) ]));
-
-               (pkg.depends || []).forEach(function(d) {
-                       if (depends.indexOf(d) === -1)
-                               depends.push(d);
-               });
-       }
-
-       if (!li.firstChild)
-               li.appendChild(E('span', {},
-                       [ dep.name, ' ',
-                         pkgStatus({ name: dep.name, missing: true }, vop, ver, info) ]));
-
-       var subdeps = renderDependencies(depends, info);
-       if (subdeps)
-               li.appendChild(subdeps);
-
-       return li;
-}
-
-function renderDependencies(depends, info)
-{
-       var deps = depends || [],
-           items = [];
-
-       info.seen = info.seen || [];
-
-       for (var i = 0; i < deps.length; i++) {
-               if (deps[i] === 'libc')
-                       continue;
-
-               if (deps[i].match(/^(.+)\s+\((<=|<|>|>=|=|<<|>>)(.+)\)$/)) {
-                       dep = RegExp.$1.trim();
-                       vop = RegExp.$2.trim();
-                       ver = RegExp.$3.trim();
-               }
-               else {
-                       dep = deps[i].trim();
-                       vop = ver = null;
-               }
-
-               if (info.seen[dep])
-                       continue;
-
-               var pkgs = [];
-
-               (packages.installed.providers[dep] || []).forEach(function(p) {
-                       if (pkgs.indexOf(p.name) === -1) pkgs.push(p.name);
-               });
-
-               (packages.available.providers[dep] || []).forEach(function(p) {
-                       if (pkgs.indexOf(p.name) === -1) pkgs.push(p.name);
-               });
-
-               info.seen[dep] = {
-                       name:    dep,
-                       pkgs:    pkgs,
-                       version: [vop, ver]
-               };
-
-               items.push(renderDependencyItem(info.seen[dep], info));
-       }
-
-       if (items.length)
-               return E('ul', { 'class': 'deps' }, items);
-
-       return null;
-}
-
-function truncateVersion(v, op)
-{
-       v = v.replace(/\b(([a-f0-9]{8})[a-f0-9]{24,32})\b/,
-               '<span data-tooltip="$1">$2…</span>');
-
-       if (!op || op === '=')
-               return v;
-
-       return '%h %h'.format(op, v);
-}
-
-function handleReset(ev)
-{
-       var filter = document.querySelector('input[name="filter"]');
-
-       filter.value = '';
-       display();
-}
-
-function handleInstall(ev)
-{
-       var name = ev.target.getAttribute('data-package'),
-           pkg = packages.available.pkgs[name],
-           depcache = {},
-           size;
-
-       if (pkg.installsize)
-               size = _('~%.1024mB installed').format(pkg.installsize);
-       else if (pkg.size)
-               size = _('~%.1024mB compressed').format(pkg.size);
-       else
-               size = _('unknown');
-
-       var deps = renderDependencies(pkg.depends, depcache),
-           tree = null, errs = null, inst = null, desc = null;
-
-       if (depcache.errors && depcache.errors.length) {
-               errs = E('ul', { 'class': 'errors' });
-               depcache.errors.forEach(function(err) {
-                       errs.appendChild(E('li', {}, err));
-               });
-       }
-
-       var totalsize = pkg.installsize || pkg.size || 0,
-           totalpkgs = 1;
-
-       if (depcache.install && depcache.install.length)
-               depcache.install.forEach(function(ipkg) {
-                       totalsize += ipkg.installsize || ipkg.size || 0;
-                       totalpkgs++;
-               });
-
-       inst = E('p', {},
-               _('Require approx. %.1024mB size for %d package(s) to install.')
-                       .format(totalsize, totalpkgs));
-
-       if (deps) {
-               tree = E('li', '<strong>%s:</strong>'.format(_('Dependencies')));
-               tree.appendChild(deps);
-       }
-
-       if (pkg.description) {
-               desc = E('div', {}, [
-                       E('h5', {}, _('Description')),
-                       E('p', {}, pkg.description)
-               ]);
-       }
-
-       L.showModal(_('Details for package <em>%h</em>').format(pkg.name), [
-               E('ul', {}, [
-                       E('li', '<strong>%s:</strong> %h'.format(_('Version'), pkg.version)),
-                       E('li', '<strong>%s:</strong> %h'.format(_('Size'), size)),
-                       tree || '',
-               ]),
-               desc || '',
-               errs || inst || '',
-               E('div', { 'class': 'right' }, [
-                       E('div', {
-                               'class': 'btn',
-                               'click': L.hideModal
-                       }, _('Cancel')),
-                       ' ',
-                       E('div', {
-                               'data-command': 'install',
-                               'data-package': name,
-                               'class': 'btn cbi-button-action',
-                               'click': handleOpkg
-                       }, _('Install'))
-               ])
-       ]);
-}
-
-function handleManualInstall(ev)
-{
-       var name_or_url = document.querySelector('input[name="install"]').value,
-           install = E('div', {
-                       'class': 'btn cbi-button-action',
-                       'data-command': 'install',
-                       'data-package': name_or_url,
-                       'click': function(ev) {
-                               document.querySelector('input[name="install"]').value = '';
-                               handleOpkg(ev);
-                       }
-               }, _('Install')), warning;
-
-       if (!name_or_url.length) {
-               return;
-       }
-       else if (name_or_url.indexOf('/') !== -1) {
-               warning = E('p', {}, _('Installing packages from untrusted sources is a potential security risk! Really attempt to install <em>%h</em>?').format(name_or_url));
-       }
-       else if (!packages.available.providers[name_or_url]) {
-               warning = E('p', {}, _('The package <em>%h</em> is not available in any configured repository.').format(name_or_url));
-               install = '';
-       }
-       else {
-               warning = E('p', {}, _('Really attempt to install <em>%h</em>?').format(name_or_url));
-       }
-
-       L.showModal(_('Manually install package'), [
-               warning,
-               E('div', { 'class': 'right' }, [
-                       E('div', {
-                               'click': L.hideModal,
-                               'class': 'btn cbi-button-neutral'
-                       }, _('Cancel')),
-                       ' ', install
-               ])
-       ]);
-}
-
-function handleConfig(ev)
-{
-       L.showModal(_('OPKG Configuration'), [
-               E('p', { 'class': 'spinning' }, _('Loading configuration data…'))
-       ]);
-
-       L.get('admin/system/opkg/config', null, function(xhr, conf) {
-               var body = [
-                       E('p', {}, _('Below is a listing of the various configuration files used by <em>opkg</em>. Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for custom repository entries. The configuration in the other files may be changed but is usually not preserved by <em>sysupgrade</em>.'))
-               ];
-
-               Object.keys(conf).sort().forEach(function(file) {
-                       body.push(E('h5', {}, '%h'.format(file)));
-                       body.push(E('textarea', {
-                               'name': file,
-                               'rows': Math.max(Math.min(conf[file].match(/\n/g).length, 10), 3)
-                       }, '%h'.format(conf[file])));
-               });
-
-               body.push(E('div', { 'class': 'right' }, [
-                       E('div', {
-                               'class': 'btn cbi-button-neutral',
-                               'click': L.hideModal
-                       }, _('Cancel')),
-                       ' ',
-                       E('div', {
-                               'class': 'btn cbi-button-positive',
-                               'click': function(ev) {
-                                       var data = {};
-                                       findParent(ev.target, '.modal').querySelectorAll('textarea[name]')
-                                               .forEach(function(textarea) {
-                                                       data[textarea.getAttribute('name')] = textarea.value
-                                               });
-
-                                       L.showModal(_('OPKG Configuration'), [
-                                               E('p', { 'class': 'spinning' }, _('Saving configuration data…'))
-                                       ]);
-
-                                       L.post('admin/system/opkg/config', { data: JSON.stringify(data) }, L.hideModal);
-                               }
-                       }, _('Save')),
-               ]));
-
-               L.showModal(_('OPKG Configuration'), body);
-       });
-}
-
-function handleRemove(ev)
-{
-       var name = ev.target.getAttribute('data-package'),
-           pkg = packages.installed.pkgs[name],
-           avail = packages.available.pkgs[name] || {},
-           size, desc;
-
-       if (avail.installsize)
-               size = _('~%.1024mB installed').format(avail.installsize);
-       else if (avail.size)
-               size = _('~%.1024mB compressed').format(avail.size);
-       else
-               size = _('unknown');
-
-       if (avail.description) {
-               desc = E('div', {}, [
-                       E('h5', {}, _('Description')),
-                       E('p', {}, avail.description)
-               ]);
-       }
-
-       L.showModal(_('Remove package <em>%h</em>').format(pkg.name), [
-               E('ul', {}, [
-                       E('li', '<strong>%s:</strong> %h'.format(_('Version'), pkg.version)),
-                       E('li', '<strong>%s:</strong> %h'.format(_('Size'), size))
-               ]),
-               desc || '',
-               E('div', { 'style': 'display:flex; justify-content:space-between; flex-wrap:wrap' }, [
-                       E('label', {}, [
-                               E('input', { type: 'checkbox', checked: 'checked', name: 'autoremove' }),
-                               _('Automatically remove unused dependencies')
-                       ]),
-                       E('div', { 'style': 'flex-grow:1', 'class': 'right' }, [
-                               E('div', {
-                                       'class': 'btn',
-                                       'click': L.hideModal
-                               }, _('Cancel')),
-                               ' ',
-                               E('div', {
-                                       'data-command': 'remove',
-                                       'data-package': name,
-                                       'class': 'btn cbi-button-negative',
-                                       'click': handleOpkg
-                               }, _('Remove'))
-                       ])
-               ])
-       ]);
-}
-
-function handleOpkg(ev)
-{
-       var cmd = ev.target.getAttribute('data-command'),
-           pkg = ev.target.getAttribute('data-package'),
-           rem = document.querySelector('input[name="autoremove"]'),
-           url = 'admin/system/opkg/exec/' + encodeURIComponent(cmd);
-
-       var dlg = L.showModal(_('Executing package manager'), [
-               E('p', { 'class': 'spinning' },
-                       _('Waiting for the <em>opkg %h</em> command to complete…').format(cmd))
-       ]);
-
-       L.post(url, { package: pkg, autoremove: rem ? rem.checked : false }, function(xhr, res) {
-               dlg.removeChild(dlg.lastChild);
-
-               if (res.stdout)
-                       dlg.appendChild(E('pre', [ res.stdout ]));
-
-               if (res.stderr) {
-                       dlg.appendChild(E('h5', _('Errors')));
-                       dlg.appendChild(E('pre', { 'class': 'errors' }, [ res.stderr ]));
-               }
-
-               if (res.code !== 0)
-                       dlg.appendChild(E('p', _('The <em>opkg %h</em> command failed with code <code>%d</code>.').format(cmd, (res.code & 0xff) || -1)));
-
-               dlg.appendChild(E('div', { 'class': 'right' },
-                       E('div', {
-                               'class': 'btn',
-                               'click': function() {
-                                       L.hideModal();
-                                       updateLists();
-                               }
-                       }, _('Dismiss'))));
-       });
-}
-
-function updateLists()
-{
-       cbi_update_table('#packages', [],
-               E('div', { 'class': 'spinning' }, _('Loading package information…')));
-
-       packages.available = { providers: {}, pkgs: {} };
-       packages.installed = { providers: {}, pkgs: {} };
-
-       L.get('admin/system/opkg/statvfs', null, function(xhr, stat) {
-               var pg = document.querySelector('.cbi-progressbar'),
-                   total = stat.blocks || 0,
-                   free = stat.bfree || 0;
-
-               pg.firstElementChild.style.width = Math.floor(total ? ((100 / total) * free) : 100) + '%';
-               pg.setAttribute('title', '%s (%.1024mB)'.format(pg.firstElementChild.style.width, free * (stat.frsize || 0)));
-
-               L.get('admin/system/opkg/list/available', null, function(xhr) {
-                       parseList(xhr.responseText, packages.available);
-                       L.get('admin/system/opkg/list/installed', null, function(xhr) {
-                               parseList(xhr.responseText, packages.installed);
-                               display(document.querySelector('input[name="filter"]').value);
-                       });
-               });
-       });
-}
-
-window.requestAnimationFrame(function() {
-       var filter = document.querySelector('input[name="filter"]'),
-           keyTimeout = null;
-
-       filter.value = filter.getAttribute('value');
-       filter.addEventListener('keyup',
-               function(ev) {
-                       if (keyTimeout !== null)
-                               window.clearTimeout(keyTimeout);
-
-                       keyTimeout = window.setTimeout(function() {
-                               display(ev.target.value);
-                       }, 250);
-               });
-
-       document.querySelector('#pager > .prev').addEventListener('click', handlePage);
-       document.querySelector('#pager > .next').addEventListener('click', handlePage);
-       document.querySelector('.cbi-tabmenu.mode').addEventListener('click', handleMode);
-
-       updateLists();
-});
diff --git a/package/luci/applications/luci-app-opkg/luasrc/controller/opkg.lua b/package/luci/applications/luci-app-opkg/luasrc/controller/opkg.lua
deleted file mode 100644 (file)
index 74aa166..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
--- Copyright 2018 Jo-Philipp Wich <jo@mein.io>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.opkg", package.seeall)
-
-function index()
-       entry({"admin", "system", "opkg"}, template("opkg"), _("Software"), 30)
-       entry({"admin", "system", "opkg", "list"}, call("action_list")).leaf = true
-       entry({"admin", "system", "opkg", "exec"}, post("action_exec")).leaf = true
-       entry({"admin", "system", "opkg", "statvfs"}, call("action_statvfs")).leaf = true
-       entry({"admin", "system", "opkg", "config"}, post_on({ data = true }, "action_config")).leaf = true
-end
-
-function action_list(mode)
-       local cmd
-
-       if mode == "installed" then
-               cmd = { "/bin/cat", "/usr/lib/opkg/status" }
-       else
-               cmd = { "/bin/sh", "-c", [[find /tmp/opkg-lists/ -type f '!' -name '*.sig' | xargs -r gzip -cd]] }
-       end
-
-       luci.http.prepare_content("text/plain; charset=utf-8")
-       luci.sys.process.exec(cmd, luci.http.write)
-end
-
-function action_exec(command, package)
-       local sys = require "luci.sys"
-       local cmd = { "/bin/opkg", "--force-removal-of-dependent-packages", "--force-overwrite" }
-       local pkg = luci.http.formvalue("package")
-
-       if luci.http.formvalue("autoremove") == "true" then
-               cmd[#cmd + 1] = "--autoremove"
-       end
-
-       cmd[#cmd + 1] = command
-
-       if pkg then
-               cmd[#cmd + 1] = pkg
-       end
-
-       luci.http.prepare_content("application/json")
-       luci.http.write_json(sys.process.exec(cmd, true, true))
-end
-
-function action_statvfs()
-       local fs = require "nixio.fs"
-
-       luci.http.prepare_content("application/json")
-       luci.http.write_json(fs.statvfs("/") or {})
-end
-
-function action_config()
-       local fs = require "nixio.fs"
-       local js = require "luci.jsonc"
-       local data = luci.http.formvalue("data")
-
-       if data then
-               data = js.parse(data)
-
-               if not data then
-                       luci.http.status(400, "Bad Request")
-                       return
-               end
-
-               local file, content
-               for file, content in pairs(data) do
-                       if type(content) ~= "string" or
-                          (file ~= "opkg.conf" and not file:match("^opkg/[^/]+%.conf$"))
-                       then
-                               luci.http.status(400, "Bad Request")
-                               return
-                       end
-
-                       local path = "/etc/%s" % file
-                       if not fs.access(path, "w") then
-                               luci.http.status(403, "Permission denied")
-                               return
-                       end
-
-                       fs.writefile(path, content:gsub("\r\n", "\n"))
-               end
-
-               luci.http.status(204, "Saved")
-       else
-               local rv = { ["opkg.conf"] = fs.readfile("/etc/opkg.conf") }
-               local entries = fs.dir("/etc/opkg")
-               if entries then
-                       local entry
-                       for entry in entries do
-                               if entry:match("%.conf$") then
-                                       rv["opkg/%s" % entry] = fs.readfile("/etc/opkg/%s" % entry)
-                               end
-                       end
-               end
-
-               luci.http.prepare_content("application/json")
-               luci.http.write_json(rv)
-       end
-end
diff --git a/package/luci/applications/luci-app-opkg/luasrc/view/opkg.htm b/package/luci/applications/luci-app-opkg/luasrc/view/opkg.htm
deleted file mode 100644 (file)
index 0d2a4e2..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-<%#
- Copyright 2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<style type="text/css">
-       .controls {
-               display: flex;
-               margin: .5em 0 1em 0;
-               flex-wrap: wrap;
-               justify-content: space-around;
-       }
-
-       .controls > * {
-               padding: .25em;
-               white-space: nowrap;
-               flex: 1 1 33%;
-               box-sizing: border-box;
-               display: flex;
-               flex-wrap: wrap;
-       }
-
-       .controls > *:first-child,
-       .controls > * > label {
-               flex-basis: 100%;
-               min-width: 250px;
-       }
-
-       .controls > * > .btn {
-               flex-basis: 20px;
-               text-align: center;
-       }
-
-       .controls > * > * {
-               flex-grow: 1;
-               align-self: center;
-       }
-
-       .controls > div > input {
-               width: auto;
-       }
-
-       .td.version,
-       .td.size {
-               white-space: nowrap;
-       }
-
-       ul.deps, ul.deps ul, ul.errors {
-               margin-left: 1em;
-       }
-
-       ul.deps li, ul.errors li {
-               list-style: none;
-       }
-
-       ul.deps li:before {
-               content: "↳";
-               display: inline-block;
-               width: 1em;
-               margin-left: -1em;
-       }
-
-       ul.deps li > span {
-               white-space: nowrap;
-       }
-
-       ul.errors li {
-               color: #c44;
-               font-size: 90%;
-               font-weight: bold;
-               padding-left: 1.5em;
-       }
-
-       ul.errors li:before {
-               content: "⚠";
-               display: inline-block;
-               width: 1.5em;
-               margin-left: -1.5em;
-       }
-</style>
-
-<h2><%:Software%></h2>
-
-<div class="controls">
-       <div>
-               <label><%:Free space%>:</label>
-               <div class="cbi-progressbar" title="<%:unknown%>">
-                       <div>&#160;</div>
-               </div>
-       </div>
-
-       <div>
-               <label><%:Filter%>:</label>
-               <input type="text" name="filter" placeholder="<%:Type to filter…%>"<%=attr("value", luci.http.formvalue("query") or "")%> /><!--
-               --><button class="btn cbi-button" onclick="handleReset(event)"><%:Clear%></button>
-       </div>
-
-       <div>
-               <label><%:Download and install package%>:</label>
-               <input type="text" name="install" placeholder="<%:Package name or URL…%>" onkeydown="if (event.keyCode === 13) handleManualInstall(event)" /><!--
-               --><button class="btn cbi-button cbi-button-action" onclick="handleManualInstall(event)"><%:OK%></button>
-       </div>
-
-       <div>
-               <label><%:Actions%>:</label>
-               <button class="btn cbi-button-positive" data-command="update" onclick="handleOpkg(event)"><%:Update lists…%></button>
-               &#160;
-               <button class="btn cbi-button-neutral" onclick="handleConfig(event)"><%:Configure opkg…%></button>
-       </div>
-</div>
-
-<ul class="cbi-tabmenu mode">
-       <li data-mode="available" class="available cbi-tab"><a href="#"><%:Available%></a></li>
-       <li data-mode="installed" class="installed cbi-tab-disabled"><a href="#"><%:Installed%></a></li>
-       <li data-mode="updates" class="installed cbi-tab-disabled"><a href="#"><%:Updates%></a></li>
-</ul>
-
-<div class="controls" style="display:none">
-       <div id="pager" class="center">
-               <button class="btn cbi-button-neutral prev" aria-label="<%:Previous page%>">«</button>
-               <div class="text">dummy</div>
-               <button class="btn cbi-button-neutral next" aria-label="<%:Next page%>">»</button>
-       </div>
-</div>
-
-<div class="table" id="packages">
-       <div class="tr cbi-section-table-titles">
-               <div class="th col-2 left"><%:Package name%></div>
-               <div class="th col-2 left version"><%:Version%></div>
-               <div class="th col-1 center size"><%:Size (.ipk)%></div>
-               <div class="th col-10 left"><%:Description%></div>
-               <div class="th right">&#160;</div>
-       </div>
-</div>
-
-<script type="text/javascript" src="<%=resource%>/view/opkg.js"></script>
-
-<%+footer%>
diff --git a/package/luci/applications/luci-app-opkg/po/ca/opkg.po b/package/luci/applications/luci-app-opkg/po/ca/opkg.po
deleted file mode 100644 (file)
index 58aead3..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2014-06-06 11:17+0200\n"
-"Last-Translator: Alex <alexhenrie24@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: ca\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Accions"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Disponible"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Cancel·la"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Configuració"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Descripció"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Descarrega i instal·la el paquet"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Error"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Filtre"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Espai lliure"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Instal·la"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Instal·la"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Instal·la"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Vés a la pàgina de configuració"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Descarrega i instal·la el paquet"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "No hi ha informació disponible"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Cerca paquet"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Total disponible"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "No connectat"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "D'acord"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "Configuració d&#39;OPKG"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Nom del paquet"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Nom del paquet"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Treu"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Restableix"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Desa"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Configuració de dispositiu"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Mida"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr "Mida (.ipk)"
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Programari"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-#, fuzzy
-msgid "Update lists…"
-msgstr "Actualitza les llistes"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-#, fuzzy
-msgid "Updates"
-msgstr "Actualitza les llistes"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Versió"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-#, fuzzy
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "Esperant que s'acabi l'ordre..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "desconegut"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/cs/opkg.po b/package/luci/applications/luci-app-opkg/po/cs/opkg.po
deleted file mode 100644 (file)
index 3ef3943..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-05-31 13:59+0200\n"
-"Last-Translator: koli <lukas.koluch@gmail.com>\n"
-"Language-Team: none\n"
-"Language: cs\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Akce"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Dostupné"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Storno"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Nastavení"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Popis"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Stáhnout a nainstalovat balíček"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Chyba"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Filtr"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Volné místo"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Instalovat"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Instalovat"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Instalovat"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Přejít na související konfigurační stránku"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Stáhnout a nainstalovat balíček"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Údaje nejsou k dispozici"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Vyhledat balíček"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Dostupná celkem"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Nepřipojeno"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "Konfigurace balíčků OPKG"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Název balíčku"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Název balíčku"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Odstranit"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Reset"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Uložit"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Nastavení zařízení"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Velikost"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Software"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-#, fuzzy
-msgid "Update lists…"
-msgstr "Aktualizovat seznamy"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-#, fuzzy
-msgid "Updates"
-msgstr "Aktualizovat seznamy"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Verze"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-#, fuzzy
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "Čekání na dokončení příkazu..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "neznámý"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/de/opkg.po b/package/luci/applications/luci-app-opkg/po/de/opkg.po
deleted file mode 100644 (file)
index 875dbd1..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-26 17:57+0200\n"
-"PO-Revision-Date: 2018-11-20 11:44+0100\n"
-"Last-Translator: Jo-Philipp Wich <jo@mein.io>\n"
-"Language-Team: \n"
-"Language: de\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.0.5\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Aktionen"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr "Unbenutzte Abhängigkeiten automatisch entfernen"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Verfügbar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-"Dies ist eine Auflistung der verschiedenen von <em>opkg</em> genutzten "
-"Konfigurationsdateien. Die <em>opkg.conf</em>-Datei sollte für globale "
-"Einstellungen und die <em>customfeeds.conf</em>-Datei für benutzerdefinierte "
-"Repository-Einträge verwendet werden. Der Inhalt der anderen "
-"Konfigurationsdateien kann zwar geändert werden, wird aber überlicherweise "
-"bei Systemupdates zurückgesetzt."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr "Zurücksetzen"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-msgid "Configure opkg…"
-msgstr "Konfiguriere opkg…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr "Abhängigkeiten"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Beschreibung"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr "Details für Paket <em>%h</em>"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr "Schließen"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr "Einträge %d-%d von %d"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Paket herunterladen und installieren"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-msgid "Errors"
-msgstr "Fehler"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr "Paketmanager ausführen"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Filter"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Freier Platz"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Installieren"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-msgid "Installed"
-msgstr "Installiert"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-"Die Installation von Paketen aus unbekannten Quellen ist ein mögliches "
-"Sicherheitsrisiko! Soll wirklich versucht werden, <em>%h</em> zu "
-"installieren?"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-msgid "Install…"
-msgstr "Installieren…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-msgid "Loading configuration data…"
-msgstr "Lade Konfigurationsdaten…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr "Lade Paketinformationen…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-msgid "Manually install package"
-msgstr "Paket manuell installieren"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr "Aktualisierung benötigt"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr "Nächste Seite"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Keine Informationen verfügbar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-msgid "No packages"
-msgstr "Keine Pakete"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr "Keine auf \"<strong>%h</strong>\" zutreffenden Pakete."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-msgid "Not available"
-msgstr "Nicht verfügbar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-msgid "Not installed"
-msgstr "Nicht installiert"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-msgid "OPKG Configuration"
-msgstr "OPKG-Konfiguration"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Paketname"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-msgid "Package name or URL…"
-msgstr "Paketname oder URL…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr "Vorige Seite"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr "Soll wirklich versucht werden, <em>%h</em> zu installieren?"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Entfernen"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr "Paket <em>%h</em> entfernen"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-"Benötige etwa %.1024mB Speicherplatz für die Installation von %d Pakete(n)."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-"Benötige Version %h %h,\n"
-"aber %h installiert"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-"Benötigtes abhängiges Paket <em>%h</em> ist in keinem Repository verfügbar."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr "Benötigt Update auf Version %h %h"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Zurücksetzen"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Speichern"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-msgid "Saving configuration data…"
-msgstr "Speichere Konfigurationsdaten…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Größe"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr "Größe (.ipk)"
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Paketverwaltung"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-"Das <em>opkg %h</em> Kommando wurde mit Fehlercode <code>%d</code> beendet."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-"Die installierte Version von Paket <em>%h</em> ist nicht kompatibel, "
-"benötige Version %s während %s installiert ist."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-"Das Paket <em>%h</em> ist in keinem konfiguriertem Repository verfügbar."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-"Die Repository-Version von Paket <em>%h</em> ist nicht kompatibel, benötige "
-"Version %s aber nur %s ist verfügbar."
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr "Tippen zum Filtern…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr "Listen aktualisieren…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr "Aktualisierungen"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr "Aktualisieren…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Version"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr "Version inkompatibel"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "Warte auf das <em>opkg %h</em> Kommando…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "unbekannt"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr "ca. %.1024mB komprimiert"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr "ca. %.1024mB installiert"
diff --git a/package/luci/applications/luci-app-opkg/po/el/opkg.po b/package/luci/applications/luci-app-opkg/po/el/opkg.po
deleted file mode 100644 (file)
index e560415..0000000
+++ /dev/null
@@ -1,313 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2012-03-31 15:35+0200\n"
-"Last-Translator: Vasilis <acinonyx@openwrt.gr>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: el\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Ενέργειες"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Διαθέσιμο"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Ακύρωση"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Παραμετροποίηση"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Περιγραφή"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Κατέβασμα και εγκατάσταση πακέτου"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Σφάλμα"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Φίλτρο"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Ελεύθερος χώρος"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Εγκατάσταση"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Εγκατάσταση"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Εγκατάσταση"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Μετάβαση στη σχετική σελίδα ρυθμίσεων"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Κατέβασμα και εγκατάσταση πακέτου"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Δεν υπάρχουν πληροφορίες διαθέσιμες"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Εύρεση πακέτου"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Διαθέσιμο Συνολικά"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Εγκατάσταση"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "Εντάξει"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "Παραμετροποίηση OPKG"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Όνομα πακέτου"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Όνομα πακέτου"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Αφαίρεση"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Αρχικοποίηση"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Αποθήκευση"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Παραμετροποίηση Συσκευής"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Μέγεθος"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Λογισμικό"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Έκδοση"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/en/opkg.po b/package/luci/applications/luci-app-opkg/po/en/opkg.po
deleted file mode 100644 (file)
index 34da1d1..0000000
+++ /dev/null
@@ -1,313 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2012-04-03 08:44+0200\n"
-"Last-Translator: juhosg <juhosg@openwrt.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: en\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Actions"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Available"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Cancel"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Configuration"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Description"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Download and install package"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Error"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Filter"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Install"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Install"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Install"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Go to relevant configuration page"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Download and install package"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Find package"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "(%s available)"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Install"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "OPKG-Configuration"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Package name"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Package name"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Remove"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Reset"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Save"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Device Configuration"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Size"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Software"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Version"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/es/opkg.po b/package/luci/applications/luci-app-opkg/po/es/opkg.po
deleted file mode 100644 (file)
index 2167345..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2014-05-04 11:38+0200\n"
-"Last-Translator: José Vicente <josevteg@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: es\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Acciones"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Disponible"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Configuración"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Descripción"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Descargar e instalar paquete"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Error"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Filtro"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Espacio libre"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Instalar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Instalar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Instalar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Ir a la página principal de configuración"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Descargar e instalar paquete"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "No hay información disponible"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Buscar paquete"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Total disponible"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "No conectado"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "Aceptar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "Configuración de OPKG"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Nombre del paquete"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Nombre del paquete"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Desinstalar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Reiniciar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Guardar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Configuración del dispositivo"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Tamaño"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Instalación de programas"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-#, fuzzy
-msgid "Update lists…"
-msgstr "Actualizar listas"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-#, fuzzy
-msgid "Updates"
-msgstr "Actualizar listas"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Versión"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-#, fuzzy
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "Esperando a que termine el comando..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "desconocido"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/fr/opkg.po b/package/luci/applications/luci-app-opkg/po/fr/opkg.po
deleted file mode 100644 (file)
index f760599..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2013-12-22 17:11+0200\n"
-"Last-Translator: goofy <pierre.gaufillet@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Actions"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Disponible"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Annuler"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Configuration"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Description"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Télécharge et installe le paquet"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Erreur"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Filtrer"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Espace libre"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Installer"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Installer"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Installer"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Aller à la page de configuration correspondante"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Télécharge et installe le paquet"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Information indisponible"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Trouver un paquet"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Total disponible"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Non connecté"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "Configuration OPKG"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Nom du paquet"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Nom du paquet"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Désinstaller"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Remise à zéro"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Sauvegarder"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Configuration de l'équipement"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Taille"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Logiciels"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-#, fuzzy
-msgid "Update lists…"
-msgstr "Mettre les listes à jour"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-#, fuzzy
-msgid "Updates"
-msgstr "Mettre les listes à jour"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Version"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-#, fuzzy
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "En attente de la fin de la commande..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "inconnu"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/he/opkg.po b/package/luci/applications/luci-app-opkg/po/he/opkg.po
deleted file mode 100644 (file)
index 9979167..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2013-02-02 14:32+0200\n"
-"Last-Translator: oranav <oranav@gmail.com>\n"
-"Language-Team: none\n"
-"Language: he\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "פעולות"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "זמין"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "בטל"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "הגדרות"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "תיאור"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "הורד והתקן חבילות"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "שגיאה"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-msgid "Installed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-msgid "Install…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "הגדרות נפוצות"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "הורד והתקן חבילות"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "חבילות זמינות"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "סה\"כ פנוי"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "לא מחובר"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "הגדרות"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "שם החבילה"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "שם החבילה"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "הגדרות מכשיר"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "תוכנה"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "גרסה"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/hu/opkg.po b/package/luci/applications/luci-app-opkg/po/hu/opkg.po
deleted file mode 100644 (file)
index ea87247..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-01-31 09:59+0200\n"
-"Last-Translator: Gabor <juhosg@openwrt.org>\n"
-"Language-Team: none\n"
-"Language: hu\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Műveletek"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Elérhető"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Mégsem"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Beállítás"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Leírás"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Csomag letöltése és telepítése"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Hiba"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Szűrő"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Szabad hely"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Telepítés"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Telepítés"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Telepítés"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Ugrás a tárgyhoz tartozó beállításokhoz"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Csomag letöltése és telepítése"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Nincs elérhető információ"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Csomag keresése"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Összes elérhető"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Nincs kapcsolódva"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "OPKG-Beállítások"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Csomagnév"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Csomagnév"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Eltávolítás"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Visszaállítás"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Mentés"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Eszköz beállítások"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Méret"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Szoftver"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-#, fuzzy
-msgid "Update lists…"
-msgstr "Listák frissítése"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-#, fuzzy
-msgid "Updates"
-msgstr "Listák frissítése"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Verzió"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-#, fuzzy
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "Várakozás a parancs befejezésére..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "ismeretlen"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/it/opkg.po b/package/luci/applications/luci-app-opkg/po/it/opkg.po
deleted file mode 100644 (file)
index 7304e44..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: LuCI\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2017-09-05 00:33+0100\n"
-"Last-Translator: bubu83 <bubu83@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: it\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.6.10\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Azioni"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Disponibile"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Annulla"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Configurazione"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Descrizione"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Scarica e installa pacchetto"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Errore"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Filtro"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Spazio libero"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Installa"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Installa"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Installa"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Vai alla pagina di configurazione relativa"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Scarica e installa pacchetto"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Nessuna informazione disponibile"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Cerca pacchetto"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Totale"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Non connesso"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "Configurazione di OPKG"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Nome pacchetto"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Nome pacchetto"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Rimuovi"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Reset"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Salva"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Configurazione del dispositivo"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Dimensione"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Software"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-#, fuzzy
-msgid "Update lists…"
-msgstr "Aggiorna liste"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-#, fuzzy
-msgid "Updates"
-msgstr "Aggiorna liste"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Versione"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-#, fuzzy
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "In attesa del comando da completare..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "sconosciuto"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/ja/opkg.po b/package/luci/applications/luci-app-opkg/po/ja/opkg.po
deleted file mode 100644 (file)
index d7b2621..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2018-11-21 12:29+0900\n"
-"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
-"Language-Team: \n"
-"Language: ja\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 2.2\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "操作"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr "使用されない依存パッケージを自動的に削除"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "利用可能"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-"以下は <em>opkg</em> によって使用される、様々な設定ファイルの一覧です。 "
-"<em>opkg.conf</em> は全般的な設定に、 <em>customfeeds.conf</em> はカスタム リ"
-"ポジトリの登録に使用します。これら以外のファイル内の設定を変更しても、通常は "
-"<em>sysupgrade</em> 時に保持されません。"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "キャンセル"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr "クリア"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-msgid "Configure opkg…"
-msgstr "opkg を設定…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr "依存関係"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "詳細"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr "<em>%h</em> パッケージの詳細"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr "閉じる"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr "%d - %d を表示中(全 %d)"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "パッケージのダウンロードとインストール"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-msgid "Errors"
-msgstr "エラー"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr "パッケージ マネージャーを実行中"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "フィルタ"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "ディスクの空き容量"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "インストール"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-msgid "Installed"
-msgstr "インストール済"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-"信頼されていない提供元からのパッケージのインストールは、セキュリティ リスクを"
-"伴います! <em>%h</em> のインストールを試行してもよろしいですか?"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-msgid "Install…"
-msgstr "インストール…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-msgid "Loading configuration data…"
-msgstr "設定データをロード中…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr "パッケージ情報をロード中…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-msgid "Manually install package"
-msgstr "パッケージの手動インストール"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr "要アップグレード"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr "次のページ"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "情報がありません"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-msgid "No packages"
-msgstr "パッケージがありません"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr "\"<strong>%h</strong>\" に一致するパッケージはありません。"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-msgid "Not available"
-msgstr "利用不可"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-msgid "Not installed"
-msgstr "未インストール"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-msgid "OPKG Configuration"
-msgstr "OPKG 設定"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "パッケージ名"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-msgid "Package name or URL…"
-msgstr "パッケージ名または URL…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr "前のページ"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr "<em>%h</em> のインストールを試行してもよろしいですか?"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "削除"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr "<em>%h</em> パッケージを削除"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr "インストールには約 %.1024mB の領域が必要です(上記 %d パッケージ)。"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-"必要バージョン: %h %h,\n"
-"インストール済: %h"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-"必須の依存パッケージ <em>%h</em> は、設定済みのリポジトリでは利用できません。"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr "%h %h への更新が必要です"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "リセット"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "保存"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-msgid "Saving configuration data…"
-msgstr "設定データを保存中…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "サイズ"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr "サイズ (.ipk)"
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "ソフトウェア"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr "<em>opkg %h</em> コマンドが失敗しました。(コード <code>%d</code>)"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-"<em>%h</em> のインストール済みバージョンは互換性がありません。 %s が、インス"
-"トールされている %s には必要です。"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr "<em>%h</em> パッケージは、設定済みのリポジトリでは利用できません。"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-"<em>%h</em> パッケージのリポジトリ バージョンは互換性がありません。 %s が必要"
-"ですが、 %s のみ利用可能です。"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr "入力して検索…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr "リストを更新…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr "更新"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr "アップグレード…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "バージョン"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr "互換性の無いバージョン"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "<em>opkg %h</em コマンドを実行中です…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "不明"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr "~ %.1024mB(圧縮後)"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr "~ %.1024mB(インストール後)"
diff --git a/package/luci/applications/luci-app-opkg/po/ko/opkg.po b/package/luci/applications/luci-app-opkg/po/ko/opkg.po
deleted file mode 100644 (file)
index ddc3c34..0000000
+++ /dev/null
@@ -1,313 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2012-04-03 08:44+0200\n"
-"Last-Translator: Weongyo Jeong <weongyo@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: en\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "관리 도구"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "설정"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "설명"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "패키지 다운로드 후 설치"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-msgid "Errors"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "필터"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "여유 공간"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "설치"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "설치"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "설치"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "공통 설정"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "패키지 다운로드 후 설치"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "이용 가능한 정보가 없습니다"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "패키지 찾기"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "총 이용 가능한 양"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "연결되지 않음"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "OPKG-설정"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "패키지 이름"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "패키지 이름"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "제거"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "초기화"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "저장"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "장치 설정"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Size"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr "크기 (.ipk)"
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "소프트웨어"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "버전"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-#, fuzzy
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "실행한 명령이 끝나기를 기다리는 중입니다..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/ms/opkg.po b/package/luci/applications/luci-app-opkg/po/ms/opkg.po
deleted file mode 100644 (file)
index 897bae2..0000000
+++ /dev/null
@@ -1,312 +0,0 @@
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-05-07 17:57+1000\n"
-"PO-Revision-Date: 2010-05-07 17:57+1000\n"
-"Last-Translator: Wai Chet Teow <waichet@hotmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Aksi"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Boleh didapati"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Batal"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Konfigurasi"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Keterangan"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Turun dan memasang pakej"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Kesalahan"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Penapis"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Memasang"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Memasang"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Memasang"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Menuju ke halaman konfigurasi yang relevan"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Turun dan memasang pakej"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Cari pakej"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "(%s sedia)"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Memasang"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "Baik"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "OPKG-Konfigurasi"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Nama pakej"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Nama pakej"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Menghapuskan"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Reset"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Simpan"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-msgid "Saving configuration data…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Saiz"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Perisian"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Versi"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/no/opkg.po b/package/luci/applications/luci-app-opkg/po/no/opkg.po
deleted file mode 100644 (file)
index 8c53b4f..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2013-03-25 23:36+0200\n"
-"Last-Translator: protx <lars.hardy@gmail.com>\n"
-"Language: no\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Handlinger"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Tilgjengelig"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Konfigurasjon"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Beskrivelse"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Last ned og installer pakken"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Feil"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Filter"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Ledig plass"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Installer"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Installer"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Installer"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Gå til relevant konfigurasjonen side"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Last ned og installer pakken"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Ingen informasjon tilgjengelig"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Finn pakke"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Totalt Tilgjengelig"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Ikke tilkoblet"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "<abbr title=\"Open PacKaGe Management\">OPKG</abbr>-Konfigurasjon"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Pakkenavn"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Pakkenavn"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Avinstaller"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Nullstill"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Lagre"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Enhet Konfigurasjon"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Størrelse"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Programvare"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-#, fuzzy
-msgid "Update lists…"
-msgstr "Oppdater lister"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-#, fuzzy
-msgid "Updates"
-msgstr "Oppdater lister"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Versjon"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-#, fuzzy
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "Venter på at kommando fullføres..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "ukjent"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/pl/opkg.po b/package/luci/applications/luci-app-opkg/po/pl/opkg.po
deleted file mode 100644 (file)
index 033a4bd..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: LuCI\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-20 09:40+0200\n"
-"PO-Revision-Date: 2019-01-05 19:35+0200\n"
-"Last-Translator: Rixerx <krystian.kozak20@gmail.com>\n"
-"Language-Team: Polish\n"
-"Language: pl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Akcje"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr "Automatycznie usuwaj nieużywane zależności"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Dostępne"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-"Poniżej znajduje się lista różnych plików konfiguracyjnych używanych przez "
-"<em>opkg</em>. Użyj <em>opkg.conf</em> dla ustawień globalnych i "
-"<em>customfeeds.conf</em> dla niestandardowych wpisów w repozytorium. "
-"Konfiguracja w innych plikach może zostać zmieniona, ale zwykle nie jest "
-"zachowywana przez <em>sysupgrade</em>."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Anuluj"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr "Wyczyść"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Konfiguruj opkg…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr "Zależności"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Opis"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr "Szczegóły pakietu <em>%h</em>"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr "Odrzuć"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr "Wyświetlanie %d-%d z %d"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Pobierz i zainstaluj pakiet"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Błąd"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr "Wykonywanie menedżera pakietów"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Filtr"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Wolna przestrzeń"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Instaluj"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Zainstalowane"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-"Instalowanie pakietów z niezaufanych źródeł jest potencjalnym zagrożeniem "
-"bezpieczeństwa! Czy na pewno chcesz zainstalować pakiet <em>%h</em>?"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Instaluj…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Ładowanie danych konfiguracyjnych…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr "Ładowanie informacji o pakiecie…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Zainstaluj ręcznie pakiet"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-#, fuzzy
-msgid "Needs upgrade"
-msgstr "Wymuś uaktualnienie"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr "Następna strona"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Brak dostępnych informacji"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Brak pakietów"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr "Brak pasujących pakietów \"<strong>%h</strong>\"."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Niedostępne"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Nie zainstalowany"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "Konfiguracja OPKG"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Nazwa pakietu"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Nazwa pakietu lub URL…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr "Poprzednia strona"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr "Czy na pewno chcesz zainstalować pakiet <em>%h</em>?"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Usuń"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr "Usuń pakiet <em>%h</em>"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr "Wymaga ok. %.1024mB rozmiaru pakietu %d do zainstalowania."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-"Wymaga wersji %h %h,\n"
-"zainstalowanej %h"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-"Wymagana zależność <em>%h</em> nie jest dostępna w żadnym repozytorium."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr "Wymaga aktualizacji do %h %h"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Resetuj"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Zapisz"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Zatwierdzanie konfiguracji…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Rozmiar"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr "Rozmiar (.ipk)"
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Oprogramowanie"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-"Polecenie <em>opkg %h</em> zakończyło się niepomyślnie z kodem <code>%d</"
-"code>."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-"Zainstalowana wersja pakietu <em>%h</em> nie jest zgodna, wymaga %s podczas "
-"gdy %s jest już zainstalowana."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-"Pakiet <em>%h</em> nie jest dostępny w żadnym skonfigurowanym repozytorium."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-"Wersja pakietu w repozytorium <em>%h</em> nie jest zgodna, wymaga %s ale "
-"tylko %s jest dostępna."
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr "Wpisz, by przefiltrować…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-#, fuzzy
-msgid "Update lists…"
-msgstr "Aktualizuj listy…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-#, fuzzy
-msgid "Updates"
-msgstr "Aktualizacje"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr "Zaktualizuj…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Wersja"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr "Wersja niekompatybilna"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-#, fuzzy
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "Oczekiwanie na wykonanie polecenia <em>opkg %h</em>…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "nieznane"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr "~%.1024mB skompresowany"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr "~%.1024mB zainstalowany"
diff --git a/package/luci/applications/luci-app-opkg/po/pt-br/opkg.po b/package/luci/applications/luci-app-opkg/po/pt-br/opkg.po
deleted file mode 100644 (file)
index 4e35a5e..0000000
+++ /dev/null
@@ -1,317 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2018-09-20 21:19-0300\n"
-"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
-"Language-Team: \n"
-"Language: pt_BR\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Poedit 2.1.1\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Ações"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Disponível"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Configuração"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Descrição"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr "Dispensar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Baixe e instale o pacote"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Erro"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Filtro"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Espaço livre"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Instalar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Instalar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Instalar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Iniciando a aplicação da configuração..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Baixe e instale o pacote"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-#, fuzzy
-msgid "Needs upgrade"
-msgstr "Forçar a atualização"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Nenhuma informação disponível"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Procurar pacote"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Total Disponível"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Não conectado"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "Configuração-OPKG"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Nome do Pacote"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Nome do Pacote"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Remover"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Limpar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Salvar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Iniciando a aplicação da configuração..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Tamanho"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr "Tamanho (.ipk)"
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Software"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-#, fuzzy
-msgid "Update lists…"
-msgstr "Atualizar listas"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-#, fuzzy
-msgid "Updates"
-msgstr "Atualizar listas"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Versão"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-#, fuzzy
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "Esperando o término do comando..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "desconhecido"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/pt/opkg.po b/package/luci/applications/luci-app-opkg/po/pt/opkg.po
deleted file mode 100644 (file)
index b3bc227..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-26 19:03+0200\n"
-"PO-Revision-Date: 2013-09-22 18:50+0200\n"
-"Last-Translator: Low <pedroloureiro1@sapo.pt>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: pt\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Acções"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Disponível"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Configuração"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Descrição"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Descarregar e instalar pacote"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Erro"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Filtro"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Espaço livre"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Instalar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Instalar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Instalar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Ir para a página respectiva de configuração"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Descarregar e instalar pacote"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Sem informação disponível"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Procurar pacote"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Total Disponível"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Não ligado"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "Configuração-OPKG"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Nome do pacote"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Nome do pacote"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Remover"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Reset"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Salvar"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Configuração do Dispositivo"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Tamanho"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Software"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-#, fuzzy
-msgid "Update lists…"
-msgstr "Actualizar listas"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-#, fuzzy
-msgid "Updates"
-msgstr "Actualizar listas"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Versão"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-#, fuzzy
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "A aguardar que o comando termine..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "desconhecido"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/ro/opkg.po b/package/luci/applications/luci-app-opkg/po/ro/opkg.po
deleted file mode 100644 (file)
index 8f2f75f..0000000
+++ /dev/null
@@ -1,312 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-04-01 23:12+0200\n"
-"Last-Translator: xcentric <webcctvservice@gmail.com>\n"
-"Language-Team: none\n"
-"Language: ro\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
-"20)) ? 1 : 2);;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Actiune"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Disponibil"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Anuleaza"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Configurare"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Descriere"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Descarca si instaleaza pachetul"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Eroare"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Filtreaza"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Spatiu liber"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Instalati"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Instalati"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Instalati"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Configurarea obisnuita"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Descarca si instaleaza pachetul"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Nici o informatie disponibila"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Gaseste pachet"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Total disponibil"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Nu este conectat"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "Configuratia-OPKG"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Numele pachetului"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Numele pachetului"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Elimina"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Reset"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Salveaza"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Configurarea dispozitivului"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Marime"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Software"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Versiune"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "necunoscut"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/ru/opkg.po b/package/luci/applications/luci-app-opkg/po/ru/opkg.po
deleted file mode 100644 (file)
index b8ba3d6..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: LuCI: base\n"
-"POT-Creation-Date: 2010-05-09 01:01+0300\n"
-"PO-Revision-Date: 2019-01-15 13:35+0300\n"
-"Last-Translator: Anton Kikin <a.kikin@tano-systems.com>\n"
-"Language-Team: http://cyber-place.ru\n"
-"Language: ru\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.2\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"Project-Info: Это технический перевод, не дословный. Главное-удобный русский "
-"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Действия"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr "Автоматически удалять неиспользуемые зависимости"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Доступно"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-"Ниже приведен список различных файлов конфигурации, используемых <em>opkg</"
-"em>. Используйте файл <em>opkg.conf</em> для глобальных настроек и "
-"<em>customfeeds.conf</em> для пользовательских настроек репозиториев. "
-"Конфигурация в других файлах может производтся, но такие настройки могут не "
-"сохраняться утилитой <em>sysupgrade</em>."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Отменить"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr "Очистить"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-msgid "Configure opkg…"
-msgstr "Настройки менеджера пакетов..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr "Зависимости"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Описание"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr "Подробная информация о пакете <em>%h</em>"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr "Отклонить"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr "Показано %d-%d из %d"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Загрузить и установить пакет"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-msgid "Errors"
-msgstr "Ошибки"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr "Запуск менеджера пакетов"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Фильтр"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Свободное место"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Установить"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-msgid "Installed"
-msgstr "Установлено"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-"Установка пакетов из недоверенных источников может привести к угрозе "
-"безопасности! Вы действительно хотите установить <em>%h</em>?"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-msgid "Install…"
-msgstr "Установить..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-msgid "Loading configuration data…"
-msgstr "Загрузка данных конфигурации..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr "Загрузка информации о пакете..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-msgid "Manually install package"
-msgstr "Ручная установка пакета"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr "Требуется обновление"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr "Следующая страница"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Нет доступной информации"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-msgid "No packages"
-msgstr "Нет пакетов"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr "Нет пакетов соответствующих запросу «<strong>%h</strong>»."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-msgid "Not available"
-msgstr "Не доступно"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-msgid "Not installed"
-msgstr "Не установлено"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-msgid "OPKG Configuration"
-msgstr "Настройка OPKG"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Имя пакета"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-msgid "Package name or URL…"
-msgstr "Имя пакета или URL..."
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr "Предыдущая страница"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr "Вы действительно хотите установить <em>%h</em>?"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Удалить"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr "Удалить пакет <em>%h</em>"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-"Требуется примерно %.1024mБ свободного пространства для установки %d пакетов"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-"Требуется версия %h %h,\n"
-"установлен %h"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-"Требуемый в качестве зависимости пакет <em>%h</em> не доступен ни в одном из "
-"сконфигурированных репозиториев."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr "Требуется обновить до %h %h"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Сбросить"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Сохранить"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-msgid "Saving configuration data…"
-msgstr "Сохранение данных конфигурации..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Размер"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr "Размер (.ipk)"
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Программное обеспечение"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr "Команда <em>opkg %h</em> завершилась с кодом ошибки <code>%d</code>."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-"Установленная версия пакета <em>%h</em> не совместима. Требуется установка "
-"%s для установки %s"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-"Пакет <em>%h</em> не доступен ни в одном из сконфигурированных репозиториев."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-"Версия пакета <em>%h</em>, доступная в репозитории, несовместима. Требуется "
-"%s, но доступна только %s."
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr "Введите для фильтрации..."
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr "Обновить списки..."
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr "Обновления"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr "Обновление..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Версия"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr "Версия несовместима"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "Ожидание завершения выполнения команды <em>opkg %h</em>..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "неизвестный"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr "~%.1024mБ сжато"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr "~%.1024mБ установлено"
diff --git a/package/luci/applications/luci-app-opkg/po/sk/opkg.po b/package/luci/applications/luci-app-opkg/po/sk/opkg.po
deleted file mode 100644 (file)
index 8db8ffd..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-msgid "Configure opkg…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-msgid "Errors"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-msgid "Installed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-msgid "Install…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-msgid "Loading configuration data…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-msgid "Manually install package"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-msgid "No packages"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-msgid "Not available"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-msgid "Not installed"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-msgid "OPKG Configuration"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-msgid "Package name or URL…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-msgid "Saving configuration data…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/sv/opkg.po b/package/luci/applications/luci-app-opkg/po/sv/opkg.po
deleted file mode 100644 (file)
index 8c34ebc..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-04-28 09:22+0200\n"
-"Last-Translator: Kristoffer Grundström <hamnisdude@gmail.com>\n"
-"Language-Team: none\n"
-"Language: sv\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Åtgärder"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Tillgänglig"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Konfiguration"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Beskrivning"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Ladda ner och installera paket"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Fel"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Filtrera"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Fritt utrymme"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Installera"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Installera"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Installera"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Gå till relevant konfigurationssida"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Ladda ner och installera paket"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Ingen information tillgänglig"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Hitta paket"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Totalt tillgängligt"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Inte ansluten"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "Konfiguration"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Paketnamn"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Paketnamn"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Ta bort"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Återställ"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Spara"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Enhetskonfiguration"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Storlek"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr "Storlek (.ipk)"
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Mjukvara"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-#, fuzzy
-msgid "Update lists…"
-msgstr "Uppdatera listor"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-#, fuzzy
-msgid "Updates"
-msgstr "Uppdatera listor"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Version"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-#, fuzzy
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "Väntar på att kommandot ska avsluta..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "okänd"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/templates/opkg.pot b/package/luci/applications/luci-app-opkg/po/templates/opkg.pot
deleted file mode 100644 (file)
index 37f5154..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
-msgid ""
-msgstr "Content-Type: text/plain; charset=UTF-8"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-msgid "Configure opkg…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-msgid "Errors"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-msgid "Installed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-msgid "Install…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-msgid "Loading configuration data…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-msgid "Manually install package"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-msgid "No packages"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-msgid "Not available"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-msgid "Not installed"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-msgid "OPKG Configuration"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-msgid "Package name or URL…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-msgid "Saving configuration data…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/tr/opkg.po b/package/luci/applications/luci-app-opkg/po/tr/opkg.po
deleted file mode 100644 (file)
index ce0142e..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: 2018-09-13 22:59+0300\n"
-"Last-Translator: Yusuf Soyipek <yusuf@soyipek.com>\n"
-"Language-Team: none\n"
-"Language: tr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 2.1.1\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Eylemler"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Kullanılabilir"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Vazgeç"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-msgid "Configure opkg…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Açıklama"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr "Reddet"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-msgid "Errors"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Boş alan"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-msgid "Installed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-msgid "Install…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Yapılandırmaya dön"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-msgid "Manually install package"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Kullanılabilir Paketler"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "Toplam Mevcut"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-msgid "Not installed"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "Cihaz Yapılandırması"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-msgid "Package name or URL…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Sıfırla"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Kaydet"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "Cihaz Yapılandırması"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Boyut"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr "Boyut (.ipk)"
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Yazılım"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Versiyon"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "bilinmeyen"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/uk/opkg.po b/package/luci/applications/luci-app-opkg/po/uk/opkg.po
deleted file mode 100644 (file)
index 1345838..0000000
+++ /dev/null
@@ -1,313 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"PO-Revision-Date: 2018-12-29 23:30+0200\n"
-"Last-Translator: Yurii <yuripet@gmail.com>\n"
-"Language-Team: none\n"
-"Language: uk\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Дії"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr "Автоматичне видалення невикористовуваних залежностей"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Доступно"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-"Нижче наведено список різних файлів конфігурації, котрі використовуються "
-"<em>opkg</em>. Використовуйте <em>opkg.conf</em> для глобальних налаштувань "
-"і <em>customfeeds.conf</em> для записів власного репозиторію. Конфігурацію в "
-"інших файлах може бути змінено, але вона зазвичай не зберігається при "
-"<em>оновленні системи</em>."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Скасувати"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr "Очистити"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-msgid "Configure opkg…"
-msgstr "Налаштування opkg…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr "Залежності"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Опис"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr "Подробиці про пакет <em>%h</em>"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr "Відхилити"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr "Відображається %d-%d із %d"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Завантажити та інсталювати пакети"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-msgid "Errors"
-msgstr "Помилки"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr "Виконання менеджера пакетів"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Фільтр"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "Вільне місце"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Інсталювати"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-msgid "Installed"
-msgstr "Інстальовано"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-"Інсталяція пакетів з ненадійних джерел є потенційною загрозою безпеці! "
-"Дійсно спробувати інсталювати <em>%h</em>?"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-msgid "Install…"
-msgstr "Інсталювати…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-msgid "Loading configuration data…"
-msgstr "Завантаження даних конфігурації…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr "Завантаження інформації про пакети…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-msgid "Manually install package"
-msgstr "Інсталяція пакета вручну"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr "Потребує оновлення"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr "Наступна сторінка"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "Інформація відсутня"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-msgid "No packages"
-msgstr "Немає пакетів"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr "Немає пакетів, що відповідають \"<strong>%h</strong>\"."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-msgid "Not available"
-msgstr "Недоступно"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-msgid "Not installed"
-msgstr "Не інстальовано"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-msgid "OPKG Configuration"
-msgstr "Конфігурація OPKG"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Назва пакета"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-msgid "Package name or URL…"
-msgstr "Назва пакета чи URL-адреса…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr "Попередня сторінка"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr "Дійсно спробувати інсталювати <em>%h</em>?"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Видалити"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr "Видалити пакет <em>%h</em>"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr "Потрібно приблизно %.1024mB для інсталяції %d пакетів."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-"Потрібна версія %h %h,\n"
-"інстальовано %h"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-"Необхідний за залежністю пакет <em>%h</em> не доступний ні в одному "
-"репозиторії."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr "Потрібно оновити до %h %h"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Скинути"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Зберегти"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-msgid "Saving configuration data…"
-msgstr "Збереження даних конфігурації…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Розмір"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr "Розмір (.ipk)"
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Програмне забезпечення"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr "Помилка виконання команди <em>opkg %h</em> з кодом <code>%d</code>."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-"Інстальована версія пакета <em>%h</em> несумісна, потрібно %s, а "
-"інстальовано %s."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-"Пакет <em>%h</em> не доступний ні в одному сконфігурованому репозиторії."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-"Версія пакету <em>%h</em> у репозиторії несумісна, потрібно %s, але доступна "
-"лише %s."
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr "Введіть текст для фільтра…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr "Оновити списки…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr "Оновлення"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr "Оновлення…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Версія"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr "Несумісна версія"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "Очікуємо завершення виконання команди <em>opkg %h</em> …"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "невідомий"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr "~%.1024mB стиснуто"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr "~%.1024mB інстальовано"
diff --git a/package/luci/applications/luci-app-opkg/po/vi/opkg.po b/package/luci/applications/luci-app-opkg/po/vi/opkg.po
deleted file mode 100644 (file)
index f98b0f1..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-16 06:59+0200\n"
-"PO-Revision-Date: 2009-08-14 12:23+0200\n"
-"Last-Translator: Hong Phuc Dang <dhppat@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "Hành động"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "Sẵn có"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "Bỏ qua"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "Cấu hình"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "Mô tả"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "Tải và cài đặt gói"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "Lỗi"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "Lọc"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "Cài đặt "
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "Cài đặt "
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "Cài đặt "
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "Đi tới trang cấu hình thích hợp"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "Tải và cài đặt gói"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "Tìm gói"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "(%s available)"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "Cài đặt "
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "OK "
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "Cấu hình OPKG-"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "Tên gói"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "Tên gói"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "Loại bỏ"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "Reset"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "Lưu"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-msgid "Saving configuration data…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "Dung lượng "
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "Phần mềm"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "Phiên bản"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-opkg/po/zh-cn/opkg.po b/package/luci/applications/luci-app-opkg/po/zh-cn/opkg.po
deleted file mode 100644 (file)
index 012da09..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-#
-# Yangfl <mmyangfl@gmail.com>, 2018.
-# Zheng Qian <sotux82@gmail.com>, 2018.
-#
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2018-12-11 09:07+0800\n"
-"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
-"Language-Team:  <debian-l10n-chinese@lists.debian.org>\n"
-"Language: \n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Gtranslator 2.91.7\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "动作"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr "自动移除未使用的依赖"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "可用"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-"以下列出了 <em>opkg</em> 所使用的各个配置文件。<em>opkg.conf</em> 用于全局配"
-"置,<em>customfeeds.conf</em> 用于描述自定义仓库。其他配置文件的变更在系统升"
-"级时默认不被保留。"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "取消"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr "清除"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-msgid "Configure opkg…"
-msgstr "配置 opkg…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr "依赖"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "描述"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr "软件包 <em>%h</em> 详情"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr "解除"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr "正在显示 %d-%d,共 %d"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "下载并安装软件包"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-msgid "Errors"
-msgstr "错误"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr "正在执行软件包管理器"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "过滤器"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "空闲空间"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "安装"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-msgid "Installed"
-msgstr "已安装"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr "从未信任的源安装软件包有潜在的安全隐患!您确定要安装 <em>%h</em> 吗?"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-msgid "Install…"
-msgstr "安装…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-msgid "Loading configuration data…"
-msgstr "载入配置数据…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr "载入软件包信息…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-msgid "Manually install package"
-msgstr "手动安装软件包"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr "需要升级"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr "下一页"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "无可用信息"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-msgid "No packages"
-msgstr "没有软件包"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr "没有匹配“<strong>%h</strong>”的软件包。"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-msgid "Not available"
-msgstr "不可用"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-msgid "Not installed"
-msgstr "未安装"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "确认"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-msgid "OPKG Configuration"
-msgstr "OPKG 配置"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "软件包名称"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-msgid "Package name or URL…"
-msgstr "软件包名称或 URL…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr "上一页"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr "真的要安装 <em>%h</em> 吗?"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "移除"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr "移除软件包 <em>%h</em>"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr "需要大约 %.1024mB 空间来安装 %d 个软件包。"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-"要求 %h %h 版本,\n"
-"已安装 %h"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr "依赖的软件包 <em>%h</em> 在所有仓库都未提供。"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr "需要更新到 %h %h"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "复位"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "保存"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-msgid "Saving configuration data…"
-msgstr "正在保存配置数据…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "大小"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr "大小(.ipk)"
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "软件包"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr "<em>opkg %h</em> 命令失败,代码 <code>%d</code>。"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr "已安装的软件包 <em>%h</em> 版本不兼容,要求 %s 而 %s 已安装。"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr "软件包 <em>%h</em> 在所有已配置的仓库中都不存在。"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr "软件包 <em>%h</em> 在仓库中的版本不兼容,要求 %s 但仅可提供 %s。"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr "输入以过滤…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-msgid "Update lists…"
-msgstr "更新列表…"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-msgid "Updates"
-msgstr "更新"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr "升级…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "版本"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr "版本不兼容"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "等待命令 <em>opkg %h</em> 执行完成…"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "未知"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr "~%.1024mB 已压缩"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr "~%.1024mB 已安装"
diff --git a/package/luci/applications/luci-app-opkg/po/zh-tw/opkg.po b/package/luci/applications/luci-app-opkg/po/zh-tw/opkg.po
deleted file mode 100644 (file)
index 320e186..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-05-21 10:34+0200\n"
-"Last-Translator: omnistack <omnistack@gmail.com>\n"
-"Language-Team: none\n"
-"Language: zh_TW\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:107
-msgid "Actions"
-msgstr "動作"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:713
-msgid "Automatically remove unused dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:115
-msgid "Available"
-msgstr "可用"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:644
-msgid ""
-"Below is a listing of the various configuration files used by <em>opkg</em>. "
-"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
-"custom repository entries. The configuration in the other files may be "
-"changed but is usually not preserved by <em>sysupgrade</em>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:585
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:630
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:659
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:719
-msgid "Cancel"
-msgstr "取消"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:97
-msgid "Clear"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:110
-#, fuzzy
-msgid "Configure opkg…"
-msgstr "設定"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:562
-msgid "Dependencies"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:568
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:699
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:133
-msgid "Description"
-msgstr "描述"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:573
-msgid "Details for package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:765
-msgid "Dismiss"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:227
-msgid "Displaying %d-%d of %d"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:101
-msgid "Download and install package"
-msgstr "下載並安裝軟體包"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:751
-#, fuzzy
-msgid "Errors"
-msgstr "錯誤"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:739
-msgid "Executing package manager"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:95
-msgid "Filter"
-msgstr "過濾器"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:88
-msgid "Free space"
-msgstr "剩餘空間"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:592
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:608
-msgid "Install"
-msgstr "安裝"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:178
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:389
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:116
-#, fuzzy
-msgid "Installed"
-msgstr "安裝"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:614
-msgid ""
-"Installing packages from untrusted sources is a potential security risk! "
-"Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:167
-#, fuzzy
-msgid "Install…"
-msgstr "安裝"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:639
-#, fuzzy
-msgid "Loading configuration data…"
-msgstr "到相應設定頁"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:772
-msgid "Loading package information…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:624
-#, fuzzy
-msgid "Manually install package"
-msgstr "下載並安裝軟體包"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:377
-msgid "Needs upgrade"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:124
-msgid "Next page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:240
-msgid "No information available"
-msgstr "尚無可運用資訊"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:228
-#, fuzzy
-msgid "No packages"
-msgstr "搜尋軟體包"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:244
-msgid "No packages matching \"<strong>%h</strong>\"."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:409
-#, fuzzy
-msgid "Not available"
-msgstr "全部可用"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:394
-#, fuzzy
-msgid "Not installed"
-msgstr "尚未連線"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:103
-msgid "OK"
-msgstr "行"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:638
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:670
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:679
-#, fuzzy
-msgid "OPKG Configuration"
-msgstr "OPKG-設定值"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:130
-msgid "Package name"
-msgstr "軟體包名稱"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:102
-#, fuzzy
-msgid "Package name or URL…"
-msgstr "軟體包名稱"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:122
-msgid "Previous page"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:621
-msgid "Really attempt to install <em>%h</em>?"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:157
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:726
-msgid "Remove"
-msgstr "移除"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:704
-msgid "Remove package <em>%h</em>"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:558
-msgid "Require approx. %.1024mB size for %d package(s) to install."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:384
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:402
-msgid ""
-"Require version %h %h,\n"
-"installed %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:407
-msgid ""
-"Required dependency package <em>%h</em> is not available in any repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:375
-msgid "Requires update to %h %h"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:245
-msgid "Reset"
-msgstr "重置"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:676
-msgid "Save"
-msgstr "保存"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
-#, fuzzy
-msgid "Saving configuration data…"
-msgstr "設定設備"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:576
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:707
-msgid "Size"
-msgstr "大小"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:132
-msgid "Size (.ipk)"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/controller/opkg.lua:7
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:84
-msgid "Software"
-msgstr "軟體"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
-msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:380
-msgid ""
-"The installed version of package <em>%h</em> is not compatible, require %s "
-"while %s is installed."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:617
-msgid "The package <em>%h</em> is not available in any configured repository."
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:397
-msgid ""
-"The repository version of package <em>%h</em> is not compatible, require %s "
-"but only %s is available."
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:96
-msgid "Type to filter…"
-msgstr ""
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:108
-#, fuzzy
-msgid "Update lists…"
-msgstr "上傳清單"
-
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:117
-#, fuzzy
-msgid "Updates"
-msgstr "上傳清單"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:149
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:173
-msgid "Upgrade…"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:575
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:706
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:131
-msgid "Version"
-msgstr "版本"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:386
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:404
-msgid "Version incompatible"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:741
-#, fuzzy
-msgid "Waiting for the <em>opkg %h</em> command to complete…"
-msgstr "等待完整性指令..."
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:695
-#: applications/luci-app-opkg/luasrc/view/opkg.htm:89
-msgid "unknown"
-msgstr "未知"
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:534
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:693
-msgid "~%.1024mB compressed"
-msgstr ""
-
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:532
-#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:691
-msgid "~%.1024mB installed"
-msgstr ""
diff --git a/package/luci/applications/luci-app-qos/Makefile b/package/luci/applications/luci-app-qos/Makefile
deleted file mode 100644 (file)
index fd12557..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Quality of Service configuration module
-LUCI_DEPENDS:=+qos-scripts
-
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/applications/luci-app-qos/luasrc/controller/qos.lua b/package/luci/applications/luci-app-qos/luasrc/controller/qos.lua
deleted file mode 100644 (file)
index 250a039..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.qos", package.seeall)
-
-function index()
-       if not nixio.fs.access("/etc/config/qos") then
-               return
-       end
-       
-       local page
-
-       page = entry({"admin", "network", "qos"}, cbi("qos/qos"), _("QoS"))
-       page.dependent = true
-end
diff --git a/package/luci/applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua b/package/luci/applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua
deleted file mode 100644 (file)
index 177b17b..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local wa = require "luci.tools.webadmin"
-local fs = require "nixio.fs"
-
-m = Map("qos", translate("Quality of Service"),
-       translate("With <abbr title=\"Quality of Service\">QoS</abbr> you " ..
-               "can prioritize network traffic selected by addresses, " ..
-               "ports or services."))
-
-s = m:section(TypedSection, "interface", translate("Interfaces"))
-s.addremove = true
-s.anonymous = false
-
-e = s:option(Flag, "enabled", translate("Enable"))
-e.rmempty = false
-
-c = s:option(ListValue, "classgroup", translate("Classification group"))
-c:value("Default", translate("default"))
-c.default = "Default"
-
-s:option(Flag, "overhead", translate("Calculate overhead"))
-
-s:option(Flag, "halfduplex", translate("Half-duplex"))
-
-dl = s:option(Value, "download", translate("Download speed (kbit/s)"))
-dl.datatype = "and(uinteger,min(1))"
-
-ul = s:option(Value, "upload", translate("Upload speed (kbit/s)"))
-ul.datatype = "and(uinteger,min(1))"
-
-s = m:section(TypedSection, "classify", translate("Classification Rules"))
-s.template = "cbi/tblsection"
-s.anonymous = true
-s.addremove = true
-s.sortable  = true
-
-t = s:option(ListValue, "target", translate("Target"))
-t:value("Priority", translate("priority"))
-t:value("Express", translate("express"))
-t:value("Normal", translate("normal"))
-t:value("Bulk", translate("low"))
-
-local uci = require "luci.model.uci"
-uci.cursor():foreach("qos", "class",
-    function (section)
-        local n = section[".name"]
-        if string.sub(n,-string.len("_down"))~="_down" then
-            t:value(n)
-        end
-    end)
-
-t.default = "Normal"
-
-srch = s:option(Value, "srchost", translate("Source host"))
-srch.rmempty = true
-srch:value("", translate("all"))
-wa.cbi_add_knownips(srch)
-
-dsth = s:option(Value, "dsthost", translate("Destination host"))
-dsth.rmempty = true
-dsth:value("", translate("all"))
-wa.cbi_add_knownips(dsth)
-
-p = s:option(Value, "proto", translate("Protocol"))
-p:value("", translate("all"))
-p:value("tcp", "TCP")
-p:value("udp", "UDP")
-p:value("icmp", "ICMP")
-p.rmempty = true
-
-ports = s:option(Value, "ports", translate("Ports"))
-ports.rmempty = true
-ports:value("", translate("all"))
-
-bytes = s:option(Value, "connbytes", translate("Number of bytes"))
-
-comment = s:option(Value, "comment", translate("Comment"))
-
-return m
diff --git a/package/luci/applications/luci-app-qos/po/ca/qos.po b/package/luci/applications/luci-app-qos/po/ca/qos.po
deleted file mode 100644 (file)
index 8f5bceb..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-#  qos.pot
-#  generated from ./applications/luci-qos/luasrc/i18n/qos.en.lua
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2014-07-17 23:39+0200\n"
-"Last-Translator: Alex <alexhenrie24@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: ca\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-#, fuzzy
-msgid "Calculate overhead"
-msgstr "Calcula càrrega (overhead)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Regles de classificació"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Grup de classificació"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr "Comentari"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Host de destí"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Velocitat de baixada (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Habilita"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-#, fuzzy
-msgid "Half-duplex"
-msgstr "Half-duplex"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Interfícies"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Nombre de bytes"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Ports"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Protocol"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Qualitat de Servei"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Host d'origen"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Host de destí"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Velocitat de pujada (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-#, fuzzy
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Amb QoS pots prioritzar el tràfic de xarxa seleccionat per adreces, ports o "
-"serveis."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "tots"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "per defecte"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "exprés"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "baix"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normal"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "prioritat"
-
-#~ msgid "Service"
-#~ msgstr "Servei"
-
-#~ msgid "Downlink"
-#~ msgstr "Enllaç de baixada"
-
-#~ msgid "Internet Connection"
-#~ msgstr "Connexió a Internet"
-
-#~ msgid "Uplink"
-#~ msgstr "Enllaç de pujada"
-
-#~ msgid "Prioritization"
-#~ msgstr "Priorització"
-
-#~ msgid "source network / source host"
-#~ msgstr "xarxa d'origen / màquina d'origen"
-
-#~ msgid "target network / target host"
-#~ msgstr "xarxa de destí / màquina de destí"
-
-#~ msgid "portrange"
-#~ msgstr "rang de ports"
-
-#~ msgid "Bytes sent"
-#~ msgstr "Bytes enviats"
diff --git a/package/luci/applications/luci-app-qos/po/cs/qos.po b/package/luci/applications/luci-app-qos/po/cs/qos.po
deleted file mode 100644 (file)
index b530df8..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-# Generated from applications/luci-qos/luasrc/model/cbi/qos/qos.lua
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2014-06-20 23:36+0200\n"
-"Last-Translator: koli <lukas.koluch@gmail.com>\n"
-"Language-Team: none\n"
-"Language: cs\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr ""
-"Snažit se zabránit zahlcení linky snížením jejího maximálního povoleného "
-"zatížení síťovým provozem"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Klasifikační pravidla"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Klasifikační skupina"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr "Komentář"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Cílová adresa"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Rychlost stahování dat (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Povolit"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Poloviční duplex"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Síťová rozhraní"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Počet bajtů"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Porty"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Protokol"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Quality of Service"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Zdrojová adresa"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Cílová třída priority"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Rychlost odesílání dat (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Pomocí služby \"<abbr title=\"Quality of Service\">QoS</abbr>\" můžete "
-"nastavit prioritu síťového provozu na základě specifikace adres, portů či "
-"služeb."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "vše"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "výchozí"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "nejvyšší priorita (velké rámce)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "nízká priorita"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normální priorita"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "nejvyšší priorita (malé rámce)"
-
-#~ msgid "Service"
-#~ msgstr "Služba"
-
-#~ msgid "Downlink"
-#~ msgstr "Stahování"
-
-#~ msgid "Internet Connection"
-#~ msgstr "Připojení k internetu"
-
-#~ msgid "Uplink"
-#~ msgstr "Odesílání"
-
-#, fuzzy
-#~ msgid "allf"
-#~ msgstr "allf"
-
-#~ msgid "qos_connbytes"
-#~ msgstr "qos_connbytes"
diff --git a/package/luci/applications/luci-app-qos/po/de/qos.po b/package/luci/applications/luci-app-qos/po/de/qos.po
deleted file mode 100644 (file)
index cbe1470..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-#  qos.po
-#  generated from ./applications/luci-qos/luasrc/i18n/qos.en.lua
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2013-01-28 22:18+0200\n"
-"Last-Translator: DAC324 <gerd_roethig@web.de>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: de\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "Overheadberechnung"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Klassifizierungsregeln"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Klassifizierungsgruppe"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Zieladresse"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Downloadgeschwindigkeit (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Aktivieren"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Halb-Duplex"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Schnittstellen"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Byteanzahl"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Ports"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Protokoll"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Quality of Service"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Quelladresse"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Zieladresse"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Uploadgeschwindigkeit (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Mit Hilfe von <abbr title=\"Quality of Service\">QoS</abbr> kann "
-"Netzwerkverkehr anhand von Adressen, Ports oder Diensten priorisiert werden."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "alle"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "Standardeinstellung"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "express"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "niedrig"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normal"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "Priorität"
-
-#~ msgid "Service"
-#~ msgstr "Dienst"
-
-#~ msgid "Downlink"
-#~ msgstr "Downlink"
-
-#~ msgid "Internet Connection"
-#~ msgstr "Internetverbindung"
-
-#~ msgid "Uplink"
-#~ msgstr "Uplink"
-
-#~ msgid "allf"
-#~ msgstr "alle f"
-
-#~ msgid "qos_connbytes"
-#~ msgstr "Bytes gesendet"
-
-#~ msgid "Prioritization"
-#~ msgstr "Priorisierung"
-
-#~ msgid "source network / source host"
-#~ msgstr "Quellnetz / Quellhost"
-
-#~ msgid "target network / target host"
-#~ msgstr "Zielnetz / Zielhost"
-
-#~ msgid "portrange"
-#~ msgstr "Portbereich"
diff --git a/package/luci/applications/luci-app-qos/po/el/qos.po b/package/luci/applications/luci-app-qos/po/el/qos.po
deleted file mode 100644 (file)
index 3f9293f..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2012-03-18 15:29+0200\n"
-"Last-Translator: Vasilis <acinonyx@openwrt.gr>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: el\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-#, fuzzy
-msgid "Calculate overhead"
-msgstr "Υπολογισμός Overhead"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-#, fuzzy
-msgid "Classification Rules"
-msgstr "Κατηγοριοποίηση"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-#, fuzzy
-msgid "Classification group"
-msgstr "Κατηγοριοποίηση"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Ενεργοποίηση"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-#, fuzzy
-msgid "Half-duplex"
-msgstr "Μη-ταυτόχρονη αμφίδρομη επικοινωνία"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Διεπαφές"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-#, fuzzy
-msgid "Ports"
-msgstr "Προτεραιότητα"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Πρωτόκολλο"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Ποιότητα Υπηρεσίας"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-#, fuzzy
-msgid "Source host"
-msgstr "Διεύθυνση πηγής"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-#, fuzzy
-msgid "Target"
-msgstr "Διεύθυνση στόχου"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-#, fuzzy
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Με το QoS μπορείτε να ορίσετε προτεραιότητες στην κίνηση του δικτύου με βάση "
-"διευθύνσεις, θύρες ή υπηρεσίες."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "προεπιλογή"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "εξπρές"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "χαμηλή"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "κανονική"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "προτεραιότητα"
-
-#~ msgid "Service"
-#~ msgstr "Υπηρεσία"
-
-#, fuzzy
-#~ msgid "Downlink"
-#~ msgstr "Ταχύτητα κατεβάσματος"
-
-#, fuzzy
-#~ msgid "Uplink"
-#~ msgstr "Ταχύτητα ανεβάσματος"
-
-#~ msgid "Prioritization"
-#~ msgstr "Προτεραιότητες"
-
-#~ msgid "source network / source host"
-#~ msgstr "πηγαίο δίκτυο / πηγαίος υπολογιστής"
-
-#~ msgid "target network / target host"
-#~ msgstr "δίκτυο στόχος / υπολογιστής στόχος"
-
-#~ msgid "portrange"
-#~ msgstr "εύρος θυρών"
-
-#~ msgid "Bytes sent"
-#~ msgstr "Απεσταλμένα byte"
diff --git a/package/luci/applications/luci-app-qos/po/en/qos.po b/package/luci/applications/luci-app-qos/po/en/qos.po
deleted file mode 100644 (file)
index 7c9fba5..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2010-03-25 22:10+0100\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "Calculate overhead"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Classification Rules"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Classification group"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Destination host"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Download speed (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Enable"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Half-duplex"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Interfaces"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Number of bytes"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Ports"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Protocol"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Quality of Service"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Source host"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Target"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Upload speed (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "all"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "default"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "express"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "low"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normal"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "priority"
-
-#~ msgid "Service"
-#~ msgstr "Service"
diff --git a/package/luci/applications/luci-app-qos/po/es/qos.po b/package/luci/applications/luci-app-qos/po/es/qos.po
deleted file mode 100644 (file)
index a405d31..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2014-06-15 09:13+0200\n"
-"Last-Translator: José Vicente <josevteg@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: es\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "Calcular sobrecarga"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Reglas de clasificación"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Grupo de clasificación"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr "Comentario"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Máquina de destino"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Velocidad de descarga (Kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Activar"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Semi dúplex"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Interfaces"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Número de bytes"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Puertos"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Protocolo"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Calidad de Servicio"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Máquina origen"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Objetivo"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Velocidad de subida (Kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Con QoS puede priorizar el tráfico de la red seleccionando por direcciones, "
-"puertos o servicios."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "todos"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "por defecto"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "exprés"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "bajo"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normal"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "prioritario"
-
-#~ msgid "Service"
-#~ msgstr "Servicio"
-
-#~ msgid "Downlink"
-#~ msgstr "Enlace de bajada"
-
-#~ msgid "Internet Connection"
-#~ msgstr "Conexión a Internet"
-
-#~ msgid "Uplink"
-#~ msgstr "Enlace de subida"
-
-#~ msgid "allf"
-#~ msgstr "-- ¿allf? --"
-
-#~ msgid "qos_connbytes"
-#~ msgstr "-- ¿qos_connbytes? --"
-
-#~ msgid "Prioritization"
-#~ msgstr "Priorización"
-
-#~ msgid "source network / source host"
-#~ msgstr "red de origen / host de origen"
-
-#~ msgid "target network / target host"
-#~ msgstr "red de destino / host de destino"
-
-#~ msgid "portrange"
-#~ msgstr "rango de puerto"
-
-#~ msgid "Bytes sent"
-#~ msgstr "Bytes enviados"
diff --git a/package/luci/applications/luci-app-qos/po/fr/qos.po b/package/luci/applications/luci-app-qos/po/fr/qos.po
deleted file mode 100644 (file)
index b129ce2..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2012-11-06 16:08+0200\n"
-"Last-Translator: hogsim <hogsim@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "Calculer la surcharge"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Règles de classification"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Groupe de classification"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Hôte destinataire"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Vitesse de téléchargement (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Activer"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Demi-duplex"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Interfaces"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Nombre d'octets"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Ports"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Protocole"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Qualité de service"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Hôte source"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Cible"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Vitesse de téléversement (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Avec la <abbr title=\"Quality of Service\">QoS</abbr>, vous pouvez donner "
-"des priorités au trafic réseau en fonction des adresses, des ports ou des "
-"services concernés."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "tous"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "par défaut"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "express"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "lent"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normal"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "prioritaire"
-
-#~ msgid "Service"
-#~ msgstr "Service"
-
-#~ msgid "qos_connbytes"
-#~ msgstr "qos_connbytes"
diff --git a/package/luci/applications/luci-app-qos/po/he/qos.po b/package/luci/applications/luci-app-qos/po/he/qos.po
deleted file mode 100644 (file)
index a8b76c8..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-# Generated from applications/luci-qos/luasrc/model/cbi/qos/qos.lua
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2010-03-25 22:10+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr ""
diff --git a/package/luci/applications/luci-app-qos/po/hu/qos.po b/package/luci/applications/luci-app-qos/po/hu/qos.po
deleted file mode 100644 (file)
index bac2d64..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# Generated from applications/luci-qos/luasrc/model/cbi/qos/qos.lua
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2012-12-30 19:18+0200\n"
-"Last-Translator: romboyco <romboyco@gmail.com>\n"
-"Language-Team: none\n"
-"Language: hu\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "Többletforgalom számítása"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Besorolási szabályok"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Besorolási csoport"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Cél gép"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Letöltési sebesség (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Engedélyezés"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Fél-duplex"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Interfészek"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Bájtok száma"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Portok"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Protokoll"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Quality of Service"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Forrás gép"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Cél"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Feltöltési sebesség (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"A <abbr title=\"Quality of Service\">QoS</abbr> segítségével beállítható "
-"cím, portok vagy szolgáltatások alapján kiválasztott hálózati forgalom "
-"prioritása."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "összes"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "alapértelmezett"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "sürgős"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "alacsony"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normál"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "prioritás"
-
-#~ msgid "Service"
-#~ msgstr "Szolgáltatás"
-
-#~ msgid "Downlink"
-#~ msgstr "Downlink"
-
-#~ msgid "Internet Connection"
-#~ msgstr "Internet kapcsolat"
-
-#~ msgid "Uplink"
-#~ msgstr "Uplink"
-
-#~ msgid "allf"
-#~ msgstr "allf"
-
-#~ msgid "qos_connbytes"
-#~ msgstr "qos_connbytes"
diff --git a/package/luci/applications/luci-app-qos/po/it/qos.po b/package/luci/applications/luci-app-qos/po/it/qos.po
deleted file mode 100644 (file)
index e03e68e..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2014-07-19 16:26+0200\n"
-"Last-Translator: clagir <cgirlanda@girtech.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: it\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "Calcola l'overhead"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Regole di classificazione"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Gruppo di Priorità"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr "Commento"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Host di destinazione"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Velocità di download (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Abilita"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Half-duplex"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Interfacce"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Numeri di bytes"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Porte"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Protocollo"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Qualità del Servizio"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Host sorgente"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Target"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Velocità di upload (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Con <abbr title=\"Qualità del Servizio\">QoS</abbr> puoi dare priorità al "
-"traffico di rete in base ad un ip, una porta o dei servizi."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "tutti"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "default"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "express"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "basso"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normale"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "priorità"
-
-#~ msgid "Service"
-#~ msgstr "Servizi"
-
-#~ msgid "Downlink"
-#~ msgstr "Collegamento discendente"
-
-#~ msgid "Internet Connection"
-#~ msgstr "Connessione Internet"
-
-#~ msgid "Uplink"
-#~ msgstr "Collegamento ascendente"
-
-#~ msgid "allf"
-#~ msgstr "allf"
-
-#~ msgid "qos_connbytes"
-#~ msgstr "qos_connbytes"
diff --git a/package/luci/applications/luci-app-qos/po/ja/qos.po b/package/luci/applications/luci-app-qos/po/ja/qos.po
deleted file mode 100644 (file)
index 76c8057..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2016-12-22 01:54+0900\n"
-"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
-"Language: ja\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 1.8.11\n"
-"Language-Team: \n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "オーバーヘッドを考慮する"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "区分ルール"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "区分グループ"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr "コメント"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "宛先ホスト"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "ダウンロード速度 (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "有効"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "半二重"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "インターフェース"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "バイト数"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "ポート"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "プロトコル"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Quality of Service"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "送信元ホスト"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "対象"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "アップロード速度 (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"<abbr title=\"Quality of Service\">QoS</abbr>はアドレス、ポート、サービスで区"
-"別して、ネットワークトラフィックに優先度を付与することが可能です。"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "全て"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "標準"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "高速"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "低速"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "標準"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "最優先"
-
-#~ msgid "Service"
-#~ msgstr "サービス"
diff --git a/package/luci/applications/luci-app-qos/po/ms/qos.po b/package/luci/applications/luci-app-qos/po/ms/qos.po
deleted file mode 100644 (file)
index 6eeb529..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-# Generated from applications/luci-qos/luasrc/model/cbi/qos/qos.lua
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2010-03-25 22:10+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr ""
diff --git a/package/luci/applications/luci-app-qos/po/no/qos.po b/package/luci/applications/luci-app-qos/po/no/qos.po
deleted file mode 100644 (file)
index b929bdb..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2013-03-21 23:04+0200\n"
-"Last-Translator: protx <lars.hardy@gmail.com>\n"
-"Language: no\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "Beregn overhead"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Klassifisering Regler"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Klassifisering gruppe"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Destinasjon vert"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Nedlasting hastighet (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Aktiver"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Halv dupleks"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Grensesnitt"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Antall bytes"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Porter"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Protokoll"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Quality of Service"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Kilde vert"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Mål"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Opplasting hastighet (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Med <abbr title=\"Quality of Service\">QoS</abbr> kan du prioritere "
-"nettverkstrafikk valgt av adresser, porter eller tjenester."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "alle"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "standard"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "ekspress"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "lav"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normal"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "prioritet"
-
-#~ msgid "Service"
-#~ msgstr "Service"
-
-#~ msgid "Downlink"
-#~ msgstr "Nedlinje"
-
-#~ msgid "Internet Connection"
-#~ msgstr "Internett Tilkobling"
-
-#~ msgid "Uplink"
-#~ msgstr "Opplinje"
-
-#~ msgid "allf"
-#~ msgstr "alle"
-
-#~ msgid "qos_connbytes"
-#~ msgstr "Bytes sendt"
-
-#~ msgid "Half-Duplex"
-#~ msgstr "Halvdupleks"
diff --git a/package/luci/applications/luci-app-qos/po/pl/qos.po b/package/luci/applications/luci-app-qos/po/pl/qos.po
deleted file mode 100644 (file)
index 9d8cd16..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2012-08-31 18:14+0200\n"
-"Last-Translator: obsy <cezary@eko.one.pl>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: pl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "Oblicz narzut"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Reguły klasyfikacji"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Grupa klasyfikacji"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Host docelowy"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Prędkość pobierania (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Włącz"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Półdupleks"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Interfejsy"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Ilość bajtów"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Porty"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Protokół"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Jakość usługi (ang. Quality of Service)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Host źródłowy"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Cel"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Prędkość wysyłania (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Z <abbr title=\"Quality of Service\">QoS</abbr> można ustalać priorytet "
-"ruchu sieciowego na podstawie adresów, portów lub usług."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "wszystko"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "domyślna"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "ekspresowy"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "niski"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normalny"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "priorytetowy"
-
-#~ msgid "Service"
-#~ msgstr "Usługa"
-
-#~ msgid "Downlink"
-#~ msgstr "Ruch przychodzący"
-
-#~ msgid "Internet Connection"
-#~ msgstr "Połączenie Internetowe"
-
-#~ msgid "Uplink"
-#~ msgstr "Ruch wychodzący"
-
-# Jeśli w ogóle jest to gdzieś używane, to i w angielskiej wersji jest błąd. W takiej sytuacji należy udawać idiotę.
-#~ msgid "allf"
-#~ msgstr "allf"
-
-# Patrz - allf.
-#~ msgid "qos_connbytes"
-#~ msgstr "qos_connbytes"
diff --git a/package/luci/applications/luci-app-qos/po/pt-br/qos.po b/package/luci/applications/luci-app-qos/po/pt-br/qos.po
deleted file mode 100644 (file)
index efc5410..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-#  qos.po
-#  generated from ./applications/luci-qos/luasrc/i18n/qos.en.lua
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2014-06-21 19:00+0200\n"
-"Last-Translator: Éder <eder.grigorio@openmailbox.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: pt_BR\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "Calcular overhead"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Classificação"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Classificação"
-
-# 20140621: edersg: tradução
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr "Comentário"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Endereço de destino"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Velocidade de recebimento (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Habilitado"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Half-duplex"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Interfaces"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Número de bytes"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Portas"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Prococolo"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "<abbr title=\"Quality of Service, Qualidade de serviço\">QoS</abbr>"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Qualidade de Serviço"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Endereço de origem"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Alvo"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Velocidade de envio (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Com <abbr title=\"Quality of Service, Qualidade de serviço\">QoS</abbr>, "
-"você pode priorizar o tráfego da rede selecionada por endereços, portas ou "
-"serviços."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "todos"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "padrão"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "expressa"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "baixa"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normal"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "prioritário"
-
-#~ msgid "Service"
-#~ msgstr "Serviço"
-
-#~ msgid "Downlink"
-#~ msgstr "Link para download"
-
-#~ msgid "Internet Connection"
-#~ msgstr "Conexão com a Internet"
-
-#~ msgid "Uplink"
-#~ msgstr "Link para upload"
-
-#~ msgid "allf"
-#~ msgstr "allf"
-
-#~ msgid "qos_connbytes"
-#~ msgstr "qos_connbytes"
-
-#~ msgid "Prioritization"
-#~ msgstr "Priorização"
-
-#~ msgid "source network / source host"
-#~ msgstr "rede de origem / host de origem"
-
-#~ msgid "target network / target host"
-#~ msgstr "rede de destino / host de destino"
-
-#~ msgid "portrange"
-#~ msgstr "faixa de portas"
-
-#~ msgid "Bytes sent"
-#~ msgstr "Bytes enviados"
diff --git a/package/luci/applications/luci-app-qos/po/pt/qos.po b/package/luci/applications/luci-app-qos/po/pt/qos.po
deleted file mode 100644 (file)
index 55a1ccf..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-#  qos.po
-#  generated from ./applications/luci-qos/luasrc/i18n/qos.en.lua
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2013-05-31 23:49+0200\n"
-"Last-Translator: joao.f.vieira <joao.f.vieira@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: pt\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "Calcular Overhead"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Regras de Classificação"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Grupo de Classificação"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Host de destino"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Velocidade de Download (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Ativar"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Half-duplex"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Interfaces"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Número de bytes"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Portas"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Protocolo"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Qualidade de Serviço"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Host de origem"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Host de destino"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Velocidade de Upload (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Com o <abbr title=\"Qualidade de Serviço\">QoS</abbr> pode dar prioridade ao "
-"tráfego na rede por endereço, portas ou serviço."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "todos"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "Por defeito"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "expressa"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "baixa"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normal"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "prioridade"
-
-#~ msgid "Service"
-#~ msgstr "Serviço"
-
-#~ msgid "Downlink"
-#~ msgstr "Link para download"
-
-#~ msgid "Internet Connection"
-#~ msgstr "Ligação à Internet"
-
-#~ msgid "Uplink"
-#~ msgstr "Link para upload"
-
-#~ msgid "qos_connbytes"
-#~ msgstr "qos_connbytes"
-
-#~ msgid "Prioritization"
-#~ msgstr "Priorização"
-
-#~ msgid "source network / source host"
-#~ msgstr "rede de origem / host de origem"
-
-#~ msgid "target network / target host"
-#~ msgstr "rede de destino / host de destino"
-
-#~ msgid "portrange"
-#~ msgstr "faixa de portas"
-
-#~ msgid "Bytes sent"
-#~ msgstr "Bytes enviados"
diff --git a/package/luci/applications/luci-app-qos/po/ro/qos.po b/package/luci/applications/luci-app-qos/po/ro/qos.po
deleted file mode 100644 (file)
index 3d2119f..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-# Generated from applications/luci-qos/luasrc/model/cbi/qos/qos.lua
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2013-09-25 19:25+0200\n"
-"Last-Translator: Mihai <WyRwSyK@gmail.com>\n"
-"Language-Team: none\n"
-"Language: ro\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
-"20)) ? 1 : 2);;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Interfete"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Numarul de bytes"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Porturi"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Protocol"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Quality of Service"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "toate"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "expres"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "scazuta"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normala"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "ridicata"
-
-#~ msgid "Service"
-#~ msgstr "Serviciu"
-
-#~ msgid "Internet Connection"
-#~ msgstr "Conexiune internet"
diff --git a/package/luci/applications/luci-app-qos/po/ru/qos.po b/package/luci/applications/luci-app-qos/po/ru/qos.po
deleted file mode 100644 (file)
index 3335564..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: LuCI: qos\n"
-"POT-Creation-Date: 2012-08-15 12:02+0300\n"
-"PO-Revision-Date: 2018-01-18 22:40+0300\n"
-"Language-Team: http://cyber-place.ru\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.7.1\n"
-"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"Language: ru\n"
-"Project-Info: Это технический перевод, не дословный. Главное-удобный русский "
-"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "Подсчитывать возможное<br />превышение трафика"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Правила классификации"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Классификация групп"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr "Комментарий"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Хост назначения"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Скорость получения<br />данных (кбит/с)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Включить"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Полудуплекс"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Интерфейсы"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Количество байт"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Порты"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Протокол"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Качество обслуживания (QoS)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Хост источника"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Назначение"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Cкорость передачи<br />данных (кбит/с)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Используя <abbr title=\"Качество обслуживания\">QoS</abbr>, вы можете  "
-"уделять первостепенное внимание сетевому трафику по адресам, портам и "
-"сервисам."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "все"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "по умолчанию"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "экспресс"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "низкий"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "нормально"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "приоритетный"
diff --git a/package/luci/applications/luci-app-qos/po/sk/qos.po b/package/luci/applications/luci-app-qos/po/sk/qos.po
deleted file mode 100644 (file)
index 5088a9a..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr ""
diff --git a/package/luci/applications/luci-app-qos/po/sv/qos.po b/package/luci/applications/luci-app-qos/po/sv/qos.po
deleted file mode 100644 (file)
index ec32f4c..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"Language: sv\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Klassificeringsregler"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Klassificeringsgrupp"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr "Kommentera"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Värd för destination"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Nerladdningshastighet (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Aktivera"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Halv-duplex"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Gränssnitt"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Antalet bytes"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Portar"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Protokoll"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Mål"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Uppladdningshastighet (kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Med <abbr title=\"Quality of Service\">QoS</abbr> så kan du prioritera "
-"nätverkstrafiken som valts av adresser, portar eller tjänster."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "alla"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "standard"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "express"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "låg"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "normal"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "prioritet"
diff --git a/package/luci/applications/luci-app-qos/po/templates/qos.pot b/package/luci/applications/luci-app-qos/po/templates/qos.pot
deleted file mode 100644 (file)
index cc84948..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-msgid ""
-msgstr "Content-Type: text/plain; charset=UTF-8"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr ""
diff --git a/package/luci/applications/luci-app-qos/po/tr/qos.po b/package/luci/applications/luci-app-qos/po/tr/qos.po
deleted file mode 100644 (file)
index cc29a86..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-# Generated from applications/luci-qos/luasrc/model/cbi/qos/qos.lua
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2010-03-25 22:10+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr ""
diff --git a/package/luci/applications/luci-app-qos/po/uk/qos.po b/package/luci/applications/luci-app-qos/po/uk/qos.po
deleted file mode 100644 (file)
index 0ee6c68..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-# Generated from applications/luci-qos/luasrc/model/cbi/qos/qos.lua
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2013-08-13 15:27+0200\n"
-"Last-Translator: zubr_139 <zubr139@ukr.net>\n"
-"Language-Team: none\n"
-"Language: uk\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "Розраховувати додаткові витрати"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "Правила класифікації"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "Класифікаційна група"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "Вузол призначення"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "Швидкість завантаження (Кбіт/с)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "Увімкнути"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "Напівдуплекс"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "Інтерфейси"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "Кількість байт"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "Порти"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "Протокол"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Якість обслуговування (QoS)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "Вихідний вузол"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "Мета"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "Швидкість відвантаження (Кбіт/с)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Використовуючи фунцію <abbr title=\"Quality of Service — Якість "
-"обслуговування)\">QoS</abbr> можна визначити пріоритети мережевого трафіку "
-"для певних адрес, портів або сервісів."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "усі"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "типова"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "експрес"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "низький"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "звичайний"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "пріоритетний"
-
-#~ msgid "Service"
-#~ msgstr "Сервіс"
-
-#~ msgid "Downlink"
-#~ msgstr "Низхідний канал"
-
-#~ msgid "Internet Connection"
-#~ msgstr "З'єднання з інтернетом"
-
-#~ msgid "Uplink"
-#~ msgstr "Висхідний канал"
-
-#, fuzzy
-#~ msgid "allf"
-#~ msgstr "додаткова функція"
diff --git a/package/luci/applications/luci-app-qos/po/vi/qos.po b/package/luci/applications/luci-app-qos/po/vi/qos.po
deleted file mode 100644 (file)
index c888bd8..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-#  qos.pot
-#  generated from ./applications/luci-qos/luasrc/i18n/qos.en.lua
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2009-08-13 03:56+0200\n"
-"Last-Translator: Hong Phuc Dang <dhppat@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-#, fuzzy
-msgid "Calculate overhead"
-msgstr "Tính toán tổng quát"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-#, fuzzy
-msgid "Classification Rules"
-msgstr "Phân loại"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-#, fuzzy
-msgid "Classification group"
-msgstr "Phân loại"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-#, fuzzy
-msgid "Half-duplex"
-msgstr "Half-Duplex"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-#, fuzzy
-msgid "Ports"
-msgstr "Ưu tiên"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "Chất lượng dịch vụ "
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-#, fuzzy
-msgid "Source host"
-msgstr "Địa chỉ nguồn"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-#, fuzzy
-msgid "Target"
-msgstr "Địa chỉ mục tiêu"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-#, fuzzy
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"Với QoS, bạn có thể ưu tiên cho mạng lưới giao thông được chọn bởi địa chỉ, "
-"cổng hay dịch vụ."
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr ""
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "cấp tốc"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "thấp"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "bình thường"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "ưu tiên"
-
-#~ msgid "Downlink"
-#~ msgstr "Downlink"
-
-#~ msgid "Uplink"
-#~ msgstr "Uplink"
-
-#~ msgid "Prioritization"
-#~ msgstr "Quá trình ưu tiên"
-
-#~ msgid "source network / source host"
-#~ msgstr "nguồn mạng/ nguồn host"
-
-#~ msgid "target network / target host"
-#~ msgstr "Mục tiêu mạng/ mục tiêu host"
-
-#~ msgid "portrange"
-#~ msgstr "portrange"
-
-#~ msgid "Bytes sent"
-#~ msgstr "Bytes đã gửi"
diff --git a/package/luci/applications/luci-app-qos/po/zh-cn/qos.po b/package/luci/applications/luci-app-qos/po/zh-cn/qos.po
deleted file mode 100644 (file)
index 67974e7..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-#
-# Yangfl <mmyangfl@gmail.com>, 2017.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: LuCi Chinese Translation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2017-10-29 14:58+0800\n"
-"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
-"Language-Team:  <debian-l10n-chinese@lists.debian.org>\n"
-"Language: zh_CN\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Gtranslator 2.91.7\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "计算开销"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "分类规则"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "分类组"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr "注解"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "目的主机"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "下载速度(kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "开启"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "半双工"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "接口"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "字节数"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "端口"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "协议"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "服务质量(QoS)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "源主机"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "目标"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "上传速度(kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"使用 <abbr title=\"Quality of Service\">QoS</abbr>,根据网络地址、端口或服"
-"务,为流量数据包排序。"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "全部"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "默认"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "高"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "低"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "普通"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "最高"
-
-#~ msgid "Service"
-#~ msgstr "服务"
-
-#~ msgid "Downlink"
-#~ msgstr "下行"
-
-#~ msgid "Internet Connection"
-#~ msgstr "Internet连接"
-
-#~ msgid "Uplink"
-#~ msgstr "上行"
-
-#~ msgid "allf"
-#~ msgstr "全部"
-
-#~ msgid "qos_connbytes"
-#~ msgstr "Qos连接字节数"
diff --git a/package/luci/applications/luci-app-qos/po/zh-tw/qos.po b/package/luci/applications/luci-app-qos/po/zh-tw/qos.po
deleted file mode 100644 (file)
index 6767f45..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-#
-# Yangfl <mmyangfl@gmail.com>, 2017.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: LuCi Chinese Translation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2017-10-29 15:00+0800\n"
-"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
-"Language-Team:  <debian-l10n-chinese@lists.debian.org>\n"
-"Language: zh_TW\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Gtranslator 2.91.7\n"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:23
-msgid "Calculate overhead"
-msgstr "計算開銷"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:33
-msgid "Classification Rules"
-msgstr "分類規則"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:19
-msgid "Classification group"
-msgstr "分類組"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:79
-msgid "Comment"
-msgstr "註解"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:61
-msgid "Destination host"
-msgstr "目的主機"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:27
-msgid "Download speed (kbit/s)"
-msgstr "下載速度(kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:16
-msgid "Enable"
-msgstr "開啟"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:25
-msgid "Half-duplex"
-msgstr "半雙工"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:12
-msgid "Interfaces"
-msgstr "介面"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:77
-msgid "Number of bytes"
-msgstr "位元組數"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:73
-msgid "Ports"
-msgstr "埠"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:66
-msgid "Protocol"
-msgstr "協議"
-
-#: applications/luci-app-qos/luasrc/controller/qos.lua:13
-msgid "QoS"
-msgstr "QoS"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:7
-msgid "Quality of Service"
-msgstr "服務品質(QoS)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:56
-msgid "Source host"
-msgstr "源主機"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:39
-msgid "Target"
-msgstr "目標"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:30
-msgid "Upload speed (kbit/s)"
-msgstr "上傳速度(kbit/s)"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:8
-msgid ""
-"With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
-"network traffic selected by addresses, ports or services."
-msgstr ""
-"使用 <abbr title=\"Quality of Service\">QoS</abbr>,根據網路位址、埠或服務,"
-"為流量資料包排序。"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:58
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:63
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:67
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:75
-msgid "all"
-msgstr "全部"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:20
-msgid "default"
-msgstr "預設"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:41
-msgid "express"
-msgstr "高"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:43
-msgid "low"
-msgstr "低"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:42
-msgid "normal"
-msgstr "普通"
-
-#: applications/luci-app-qos/luasrc/model/cbi/qos/qos.lua:40
-msgid "priority"
-msgstr "最高"
-
-#~ msgid "Service"
-#~ msgstr "服務"
-
-#~ msgid "Downlink"
-#~ msgstr "下行"
-
-#~ msgid "Internet Connection"
-#~ msgstr "Internet連線"
-
-#~ msgid "Uplink"
-#~ msgstr "上行"
-
-#~ msgid "allf"
-#~ msgstr "全部"
-
-#~ msgid "qos_connbytes"
-#~ msgstr "Qos連線位元組數"
diff --git a/package/luci/applications/luci-app-samba/Makefile b/package/luci/applications/luci-app-samba/Makefile
deleted file mode 100644 (file)
index ba599b3..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Network Shares - Samba SMB/CIFS module
-LUCI_DEPENDS:=+samba36-server
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/applications/luci-app-samba/luasrc/controller/samba.lua b/package/luci/applications/luci-app-samba/luasrc/controller/samba.lua
deleted file mode 100644 (file)
index 397af6a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.samba", package.seeall)
-
-function index()
-       if not nixio.fs.access("/etc/config/samba") then
-               return
-       end
-
-       local page
-
-       page = entry({"admin", "services", "samba"}, cbi("samba"), _("Network Shares"))
-       page.dependent = true
-end
diff --git a/package/luci/applications/luci-app-samba/luasrc/model/cbi/samba.lua b/package/luci/applications/luci-app-samba/luasrc/model/cbi/samba.lua
deleted file mode 100644 (file)
index 2e533c3..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-m = Map("samba", translate("Network Shares"))
-
-s = m:section(TypedSection, "samba", "Samba")
-s.anonymous = true
-
-s:tab("general",  translate("General Settings"))
-s:tab("template", translate("Edit Template"))
-
-s:taboption("general", Value, "name", translate("Hostname"))
-s:taboption("general", Value, "description", translate("Description"))
-s:taboption("general", Value, "workgroup", translate("Workgroup"))
-h = s:taboption("general", Flag, "homes", translate("Share home-directories"),
-        translate("Allow system users to reach their home directories via " ..
-                "network shares"))
-h.rmempty = false
-
-tmpl = s:taboption("template", Value, "_tmpl",
-       translate("Edit the template that is used for generating the samba configuration."), 
-       translate("This is the content of the file '/etc/samba/smb.conf.template' from which your samba configuration will be generated. " ..
-               "Values enclosed by pipe symbols ('|') should not be changed. They get their values from the 'General Settings' tab."))
-
-tmpl.template = "cbi/tvalue"
-tmpl.rows = 20
-
-function tmpl.cfgvalue(self, section)
-       return nixio.fs.readfile("/etc/samba/smb.conf.template")
-end
-
-function tmpl.write(self, section, value)
-       value = value:gsub("\r\n?", "\n")
-       nixio.fs.writefile("//etc/samba/smb.conf.template", value)
-end
-
-
-s = m:section(TypedSection, "sambashare", translate("Shared Directories")
-  , translate("Please add directories to share. Each directory refers to a folder on a mounted device."))
-s.anonymous = true
-s.addremove = true
-s.template = "cbi/tblsection"
-
-s:option(Value, "name", translate("Name"))
-pth = s:option(Value, "path", translate("Path"))
-if nixio.fs.access("/etc/config/fstab") then
-        pth.titleref = luci.dispatcher.build_url("admin", "system", "fstab")
-end
-
-s:option(Value, "users", translate("Allowed users")).rmempty = true
-
-ro = s:option(Flag, "read_only", translate("Read-only"))
-ro.rmempty = false
-ro.enabled = "yes"
-ro.disabled = "no"
-
-br = s:option(Flag, "browseable", translate("Browseable"))
-br.rmempty = false
-br.default = "yes"
-br.enabled = "yes"
-br.disabled = "no"
-
-go = s:option(Flag, "guest_ok", translate("Allow guests"))
-go.rmempty = false
-go.enabled = "yes"
-go.disabled = "no"
-
-cm = s:option(Value, "create_mask", translate("Create mask"),
-        translate("Mask for new files"))
-cm.rmempty = true
-cm.size = 4
-
-dm = s:option(Value, "dir_mask", translate("Directory mask"),
-        translate("Mask for new directories"))
-dm.rmempty = true
-dm.size = 4
-
-
-return m
diff --git a/package/luci/applications/luci-app-samba/po/ca/samba.po b/package/luci/applications/luci-app-samba/po/ca/samba.po
deleted file mode 100644 (file)
index e85da7a..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-#  samba.pot
-#  generated from ./applications/luci-samba/luasrc/i18n/samba.en.lua
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2014-07-01 05:47+0200\n"
-"Last-Translator: Alex <alexhenrie24@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: ca\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Permet convidats"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"Permet que els usuaris del sistema pugin arribar als seus directoris d'inici "
-"via comparticions de xarxa"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Usuaris permesos"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Crea màscara"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Descripció"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Màscara de directori"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Edita plantilla"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr "Edita la plantilla que s'usa per generar la configuració de samba."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Ajusts generals"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Nom de màquina"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Màscara per directoris nous"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Màscara per fitxers nous"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Nom"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Comparticions de xarxa"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Ruta"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Només lectura"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Comparteix directoris d'inici"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Directoris compartits"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"Això és el contingut del fitxer '/etc/samba/smb.conf.template' del qual la "
-"vostra configuració de samba es generarà. Valors encerclats per símbols de "
-"barra ('|') no es deuen canviar. Reben els seus valors de la pestanya "
-"'Ajusts generals'."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Grup de treball"
-
-#~ msgid "Shared Directory"
-#~ msgstr "Directori compartit"
-
-#~ msgid "Physical Path"
-#~ msgstr "Ruta física"
-
-#~ msgid "optional"
-#~ msgstr "opcional"
diff --git a/package/luci/applications/luci-app-samba/po/cs/samba.po b/package/luci/applications/luci-app-samba/po/cs/samba.po
deleted file mode 100644 (file)
index 9de7783..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-05-31 13:56+0200\n"
-"Last-Translator: koli <lukas.koluch@gmail.com>\n"
-"Language-Team: none\n"
-"Language: cs\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Povolení hosté"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"Povoluje systémovým uživatelům přístup do jejich domácích adresářů skrze "
-"sdílení přes síť."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Povolení uživatelé"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Vytvořit masku"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Popis"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Maska adresáře"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Editovat šablonu"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr ""
-"Editovat šablonu, která je použita pro generování konfiguračního souboru pro "
-"sambu."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Obecné nastavení"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Název počítače."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Maska pro nové adresáře"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Maska pro nové soubory"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Jméno"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Síťová sdílení"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Cesta"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Pouze pro čtení"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Sdílet domácí adresáře"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Sdílené adresáře"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"Toto je obsah souboru \"/etc/samba/smb.conf.template\", ze kterého je "
-"konfigurace samby generována. Hodnoty uzavřené rourou (\"|\"), by se neměly "
-"měnit. Tyto hodnoty jsou brány ze záložky \"Obecná nastavení\"."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Skupina"
diff --git a/package/luci/applications/luci-app-samba/po/de/samba.po b/package/luci/applications/luci-app-samba/po/de/samba.po
deleted file mode 100644 (file)
index d8b57b1..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-26 17:57+0200\n"
-"PO-Revision-Date: 2011-10-18 13:13+0200\n"
-"Last-Translator: Manuel <freifunk@somakoma.de>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: de\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Gastzugang"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"Systembenutzer dürfen ihre Heimatverzeichnis über Netzwerkfreigaben "
-"erreichen."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Legitimierte Benutzer"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Berechtigungsmaske für neue Dateien"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Beschreibung"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Verzeichnismaske"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Template bearbeiten"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr ""
-"Hier kann das Template bearbeitet werden, das zur Erstellung der Samba-"
-"Konfigurationsdateien verwendet wird."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Allgemeine Einstellungen"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Hostname"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Maske für neue Verzeichnisse"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Maske für neue Dateien"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Name"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Netzwerkfreigaben"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Pfad"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Nur Lesen"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Heimatverzeichnisse freigeben"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Freigegebene Verzeichnisse"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"Dieses Fenster zeigt den Inhalt der Datei '/etc/samba/smb.conf.template', "
-"die als Template zum Erstellen der Samba-Konfiguration verwendet wird. Werte "
-"die von Pipe Symbolen (|) eingeschlossen sind sollten nicht verändert "
-"werden, da diese beim Erstellen der Konfiguration mit den Werten aus dem Tab "
-"'Allgemeine Einstellungen' ersetzt werden."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Arbeitsgruppe"
diff --git a/package/luci/applications/luci-app-samba/po/el/samba.po b/package/luci/applications/luci-app-samba/po/el/samba.po
deleted file mode 100644 (file)
index 014632a..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-28 02:08+0200\n"
-"PO-Revision-Date: 2012-03-18 15:31+0200\n"
-"Last-Translator: Vasilis <acinonyx@openwrt.gr>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: el\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Όνομα"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr ""
diff --git a/package/luci/applications/luci-app-samba/po/en/samba.po b/package/luci/applications/luci-app-samba/po/en/samba.po
deleted file mode 100644 (file)
index 1a9ed39..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-22 15:23+0100\n"
-"PO-Revision-Date: 2011-10-25 21:26+0200\n"
-"Last-Translator: awm1 <awm1klimes8vladimir@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: en\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Allow guests"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr "Allow system users to reach their home directories via network shares"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Allowed users"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Create mask"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Description"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Directory mask"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Edit template"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr "Edit the template that is used for generating the Samba configuration."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "General settings"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Hostname"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Mask for new directories"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Mask for new files"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Name"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Network Shares"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Path"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Read-only"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Share home-directories"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Shared Directories"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your Samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"settings' tab."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Workgroup"
diff --git a/package/luci/applications/luci-app-samba/po/es/samba.po b/package/luci/applications/luci-app-samba/po/es/samba.po
deleted file mode 100644 (file)
index 5feceb7..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2012-08-22 17:45+0200\n"
-"Last-Translator: José Vicente <josevteg@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: es\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Permitir invitados"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"Permitir a los usuarios acceder a sus directorios de inicio vía "
-"comparticiones de red"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Usuarios permitidos"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Crear máscara"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Descripción"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Máscara de directorio"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Editar plantilla"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr "Editar la plantilla usada para generar la configuración de samba."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Configuración general"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Nombre de máquina"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Máscara para directorios nuevos"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Máscara para archivos nuevos"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Nombre"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Comparticiones de red"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Dirección"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Solo lectura"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Compartir directorios personales"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Directorios compartidos"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"Contenido del fichero '/etc/samba/smb.conf.template' desde el que se "
-"generará la configuración de samba. Los valores entre tuberías ('|') no "
-"deben cambiarse. Su valor se toma desde la pestaña 'Configuración General'."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Grupo de trabajo"
-
-#~ msgid "Shared Directory"
-#~ msgstr "Directorio compatido"
-
-#~ msgid "Physical Path"
-#~ msgstr "Ruta Física"
-
-#~ msgid "optional"
-#~ msgstr "opcional"
diff --git a/package/luci/applications/luci-app-samba/po/fr/samba.po b/package/luci/applications/luci-app-samba/po/fr/samba.po
deleted file mode 100644 (file)
index 77aa873..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: 2011-11-23 22:36+0200\n"
-"Last-Translator: fredb <fblistes+luci@free.fr>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Invités autorisés"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"Autoriser les utilisateurs système à atteindre leurs dossiers personnels via "
-"les partages réseau"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Utilisateurs autorisés"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Maque de création"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Description"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Masque des dossiers"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Éditer le modèle"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr "Éditer le modèle utilisé pour générer la configuration Samba."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Paramètres généraux"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Nom d'hôte"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Masque pour les nouveaux dossiers"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Masque pour les nouveaux fichiers"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Nom"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Partages réseau"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Chemin"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Lecture seule"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Partager les dossiers personnels"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Dossiers partagés"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"Voici le contenu du fichier '/etc/samba/smb.conf.template' d'où sera généré "
-"votre configuration Samba. Les valeurs entre les symboles barre-verticale "
-" (« | ») ne doivent pas être modifiées, elles proviennent de l'onglet "
-"« Paramètres généraux »."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Groupe de travail"
diff --git a/package/luci/applications/luci-app-samba/po/he/samba.po b/package/luci/applications/luci-app-samba/po/he/samba.po
deleted file mode 100644 (file)
index 5eca060..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr ""
diff --git a/package/luci/applications/luci-app-samba/po/hu/samba.po b/package/luci/applications/luci-app-samba/po/hu/samba.po
deleted file mode 100644 (file)
index 8eac23f..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-04-06 10:56+0200\n"
-"Last-Translator: juhosg <juhosg@openwrt.org>\n"
-"Language-Team: none\n"
-"Language: hu\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Vendég hozzáférés"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"A rendszerfelhasználók hálózati megosztáson keresztül hozzáférhetnek a home "
-"könyvtárukhoz."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Engedélyezett felhasználók"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Létrehozási maszk"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Leírás"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Könyvtár maszk"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Sablon szerkesztése"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr ""
-"Itt szerkesztheti a sablont, ami a végleges samba konfiguráció "
-"elkészítéséhez kerül felhasználásra."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Általános beállítások"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Gépnév"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Új könyvtárak maszkja"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Új fájlok maszkja"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Név"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Hálózati megosztások"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Elérési út"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Csak olvasható"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Home könyvtárak megosztása"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Megosztott könyvtárak"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"Itt látható a /etc/samba/smb.conf.template file tartalma, ami a samba "
-"konfiguráció előállításához kerül felhasználásra. A pipe szimbólumok ('|') "
-"közé zárt értékek módosítása nem szükséges, az értéküket az általános "
-"beállítások fülről kapják."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Munkacsoport"
diff --git a/package/luci/applications/luci-app-samba/po/it/samba.po b/package/luci/applications/luci-app-samba/po/it/samba.po
deleted file mode 100644 (file)
index 9e4fdf1..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: 2017-09-06 01:28+0200\n"
-"Last-Translator: bubu83 <bubu83@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: it\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Permetti ospiti"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"Autorizza gli utenti del sistema a raggiungere la loro cartella home "
-"attraverso le condivisioni di rete"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Utenti ammessi"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr "Sfogliabile"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Crea maschera"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Descrizione"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Maschera della cartella"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Modifica Template"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr ""
-"Modifica il template utilizzato per generare la configurazione di samba."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Opzioni Generali"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Hostname"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Maschera per le nuove cartelle"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Maschera per i nuovi files"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Nome"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Condivisioni di rete"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Percorso"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-"Per favore aggiungi le directory da condividere. Ogni directory si riferisce "
-"a una cartella su un dispositivo montato."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Solo lettura"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Condividi cartelle home"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Cartelle Condivise"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"Questo è il contenuto del file '/etc/samba/smb.conf.template' dal quale sarà "
-"generata la tua configurazione di samba. I valori racchiusi tra il simbolo "
-"('|') non dovrebbero essere toccati. Essi vengono generati dalla schermata "
-"'Opzioni Generali'."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Gruppo di lavoro"
diff --git a/package/luci/applications/luci-app-samba/po/ja/samba.po b/package/luci/applications/luci-app-samba/po/ja/samba.po
deleted file mode 100644 (file)
index bae4dad..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: 2017-08-16 00:41+0900\n"
-"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
-"Language: ja\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 2.0.3\n"
-"Language-Team: \n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "ゲストアクセスを許可"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr "sambaを介してユーザーのホームディレクトリへのアクセスを許可します"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "許可されたユーザー"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "マスクの作成"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "説明"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "ディレクトリのマスク"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "テンプレートの編集"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr "samba設定を生成するテンプレートを編集します。"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "一般設定"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "ホスト名"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "新規ディレクトリのマスク"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "新規ファイルのマスク"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "名前"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "ネットワーク共有"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "パス"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-"共有するディレクトリを追加してください。マウントされたデバイス等のディレクト"
-"リを設定し、公開することができます。"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "読み込みのみ"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "ホームディレクトリの共有"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "共有ディレクトリ"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"これは、samba設定を生成するための'/etc/samba/smb.conf.template' ファイルの内"
-"容です。パイプ('|')で閉じられた値は変更しないでください。これらの値は'一般設"
-"定'タブ内の値によって置き換えられます。"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "ワークグループ"
diff --git a/package/luci/applications/luci-app-samba/po/ms/samba.po b/package/luci/applications/luci-app-samba/po/ms/samba.po
deleted file mode 100644 (file)
index 22959a1..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr ""
diff --git a/package/luci/applications/luci-app-samba/po/no/samba.po b/package/luci/applications/luci-app-samba/po/no/samba.po
deleted file mode 100644 (file)
index 25874b8..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-msgid ""
-msgstr ""
-"Last-Translator: Lars Hardy <lars.hardy@gmail.com>\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Tillat gjester"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr "Tillat systembrukere å nå sine hjemmekataloger via nettverks mapper."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Tillatte brukere"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Opprett Maske"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Beskrivelse"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Katalog maske"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Rediger Mal"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr "Rediger malen som brukes til å generere samba konfigurasjonen."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Generelle Innstillinger"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Vertsnavn"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Maske for nye kataloger"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Maske for nye filer"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Navn"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Nettverks Mapper"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Fysisk bane"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Skrivebeskyttet"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Del Hjemmekataloger"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Delte Kataloger"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"Dette er innholdet av filen '/etc/samba/smb.conf.template' som din samba "
-"konfigurasjon vil bli generert fra. Verdier omsluttet av ('|') bør ikke "
-"endres. De får sine verdier fra 'Generelle Innstillinger' fanen."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Arbeidsgruppe"
diff --git a/package/luci/applications/luci-app-samba/po/pl/samba.po b/package/luci/applications/luci-app-samba/po/pl/samba.po
deleted file mode 100644 (file)
index 8eb3ef3..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2011-08-26 09:51+0200\n"
-"Last-Translator: Staszek <fistaszek@tlen.pl>\n"
-"Language-Team: none\n"
-"Language: pl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Zezwalaj Gościom"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"Użytkownicy systemu mogą dostać się do swoich katalogów domowych za "
-"pośrednictwem udziałów sieciowych."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Użytkownicy z prawem dostępu"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Utwórz maskę"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Opis"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Maska katalogu"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Edytuj szablon"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr "Edytuj szablon, który jest używany do generowania konfiguracji samby."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Ustawienia ogólne"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Nazwa hosta"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Maska dla nowych katalogów"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Maska dla nowych plików"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Nazwa"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Udziały sieciowe"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Ścieżka"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Tylko do odczytu"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Udostępniaj katalogi domowe"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Udostępniane katalogi"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"To jest zawartość pliku '/etc/samba/smb.conf.template\", na podstawie "
-"którego zostanie wygenerowana konfiguracja samby. Wartości otoczone symbolem "
-"kreski pionowej ('|') nie powinny być zmieniane. Wartości ich zostaną "
-"pobrane z zakładki \"Ustawienia ogólne\"."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Grupa robocza"
diff --git a/package/luci/applications/luci-app-samba/po/pt-br/samba.po b/package/luci/applications/luci-app-samba/po/pt-br/samba.po
deleted file mode 100644 (file)
index da0f8f4..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2018-09-20 19:33-0300\n"
-"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
-"Language: pt_BR\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Poedit 2.1.1\n"
-"Language-Team: \n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Permitir convidados"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"Usuários do sistema poderão acessar seu diretório home através dos "
-"compartilhamentos de rede"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Usuários permitidos"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr "Navegável"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Máscara de criação"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Descrição"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Máscara do diretório"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Editar modelo"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr "Edita o modelo que é usado para gerar a configuração do samba."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Configurações Gerais"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Nome do equipamento"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Máscara para novos diretórios"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Máscara para novos arquivos"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Nome"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Compartilhamentos de Rede"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Caminho"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-"Por favor, adicione diretórios para serem compartilhados. Cada diretório se "
-"refere a uma pasta em um dispositivo montado."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Somente leitura"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Compartilhar diretórios home"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Diretórios Compartilhados"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"Este é o conteúdo do arquivo '/etc/samba/smb.conf.template' a partir do qual "
-"sua configuração do samba será gerada. Valores entre simbolos de pipe ('|') "
-"não devem ser alterados. Estes valores serão obtidos a partir da aba "
-"'Configurações Gerais'."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Grupo de trabalho"
-
-#~ msgid "Shared Directory"
-#~ msgstr "Diretório Compartilhado"
-
-#~ msgid "Physical Path"
-#~ msgstr "Caminho Físico"
-
-#~ msgid "optional"
-#~ msgstr "opcional"
diff --git a/package/luci/applications/luci-app-samba/po/pt/samba.po b/package/luci/applications/luci-app-samba/po/pt/samba.po
deleted file mode 100644 (file)
index f74fc47..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-26 19:03+0200\n"
-"PO-Revision-Date: 2013-05-01 01:13+0200\n"
-"Last-Translator: pedromrgoncalves <pedromrgoncalves@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: pt\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Permitir Convidados"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"Utilizadores do sistema poderão aceder ao seu directório home através das "
-"partilhas de rede."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Utilizadores Permitidos"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Criar Máscara"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Descrição"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Máscara do Directório"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Editar Template"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr "Editar a template que é utilizada para gerar a configuração samba"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Definições Gerais"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Nome do host"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Máscara para novos directórios"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Máscara para novos ficheiros"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Nome"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Partilhas da Rede"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Caminho"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Apenas Leitura"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Partilha de directórios home"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Directórios Partilhados"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"Isto é o conteúdo do ficheiro 'etc/samba/smb.conf.template' a partir do qual "
-"será gerado o ficheiro de configuração do samba. Os valores entre o símbolo "
-"| não devem ser alterados. Eles recebem os valores do separador 'Definições "
-"Gerais'."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Grupo de trabalho"
-
-#~ msgid "Shared Directory"
-#~ msgstr "Diretório Compartilhado"
-
-#~ msgid "Physical Path"
-#~ msgstr "Caminho Físico"
-
-#~ msgid "optional"
-#~ msgstr "opcional"
diff --git a/package/luci/applications/luci-app-samba/po/ro/samba.po b/package/luci/applications/luci-app-samba/po/ro/samba.po
deleted file mode 100644 (file)
index 3c344f0..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2011-10-07 17:16+0200\n"
-"Last-Translator: Daniel <daniel.petre@pitesti.rcs-rds.ro>\n"
-"Language-Team: none\n"
-"Language: ro\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
-"20)) ? 1 : 2);;\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Permite oaspeti"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"Permite utilizatorii de sistem sa acceseze directoarele lor peste "
-"partajarile de retea"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Utilizatori acceptati"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Creaza masca"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Descriere"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Masca director"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Editeaza sablon"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr "Editeaza sablonul care e folosit pentru generarea configuratiei samba."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Setari generale"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Numele de host"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Masca pentru directoarele noi"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Masca pentru fisierele noi"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Nume"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Partajari pe retea"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Cale"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Doar citire"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Partajeaza directoarele proprii"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Directoare partajate"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"Acesta este continutul fisierului '/etc/samba/smb.conf.template' din care se "
-"genereaza configuratia samba. Valorile dintre liniuta verticala ('|') n-ar "
-"trebui schimbate, ele iau valorile direct din tab-ul de \"Setari generale\"."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Workgroup"
diff --git a/package/luci/applications/luci-app-samba/po/ru/samba.po b/package/luci/applications/luci-app-samba/po/ru/samba.po
deleted file mode 100644 (file)
index e65241c..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: LuCI: samba\n"
-"POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: 2018-01-19 15:28+0300\n"
-"Language-Team: http://cyber-place.ru\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.7.1\n"
-"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"Language: ru\n"
-"Project-Info: Это технический перевод, не дословный. Главное-удобный русский "
-"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Разрешить гостевой вход"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"Разрешить пользователям получать доступ к их домашним папкам, через "
-"локальную сеть."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Разрешенные пользователи"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr "Виден в списке доступных ресурсов"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Создать маску"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Описание"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Маска папок"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Настройка шаблона"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr "Настройка config<br />файла samba"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Основные настройки"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Имя хоста"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Маска для новых папок"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Маска для новых файлов"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Имя"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Сетевые ресурсы"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Путь"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-"Добавьте папки для совместного доступа. Каждая папка - соответствует разделу "
-"на подключенном устройстве."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Только для чтения"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Совместно использовать домашние папки"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Совместно используемые папки"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"Это содержимое файла '/etc/samba/smb.conf.template', из которого "
-"генерируется config файл - samba.<br />Значения, заключенные в символы "
-"('|'), не должны быть изменены.<br />Они будут автоматически заменены на "
-"значения со страницы 'Основные настройки'."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Рабочая группа"
diff --git a/package/luci/applications/luci-app-samba/po/sk/samba.po b/package/luci/applications/luci-app-samba/po/sk/samba.po
deleted file mode 100644 (file)
index 393b5f9..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr ""
diff --git a/package/luci/applications/luci-app-samba/po/sv/samba.po b/package/luci/applications/luci-app-samba/po/sv/samba.po
deleted file mode 100644 (file)
index 34157a8..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"Language: sv\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Tillåt gäster"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr "Tillåt systemanvändare att nå deras hem-mappar via nätverksdelningar"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Tillåtna användare"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Skapa mask"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Beskrivning"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Mask för mapp"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Redigera mall"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr ""
-"Redigera mallen som används för att generera konfigurationen för samba."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Generella inställningar"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Värdnamn"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Mask för nya mappar"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Mask för nya filer"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Namn"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Nätverksdelningar"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Genväg"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Endast läsbar"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Dela hem-mappar"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Delade mappar"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Arbetsgrupp"
diff --git a/package/luci/applications/luci-app-samba/po/templates/samba.pot b/package/luci/applications/luci-app-samba/po/templates/samba.pot
deleted file mode 100644 (file)
index 395928a..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-msgid ""
-msgstr "Content-Type: text/plain; charset=UTF-8"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr ""
diff --git a/package/luci/applications/luci-app-samba/po/tr/samba.po b/package/luci/applications/luci-app-samba/po/tr/samba.po
deleted file mode 100644 (file)
index 583b35a..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr ""
diff --git a/package/luci/applications/luci-app-samba/po/uk/samba.po b/package/luci/applications/luci-app-samba/po/uk/samba.po
deleted file mode 100644 (file)
index 843d883..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-03-18 20:35+0200\n"
-"Last-Translator: YuriPet <yuripet@gmail.com>\n"
-"Language-Team: none\n"
-"Language: uk\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "Дозволити гостьовий вхід"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"Дозволити користувачам системи досягати своїх домашніх каталогів через "
-"загальні мережеві ресурси"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "Дозволені користувачі"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "Створити маску"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Опис"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "Маска каталогу"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "Редагувати шаблон"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr ""
-"Редагувати шаблон, який використовується для створення конфігурації samba."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "Загальні настройки"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "Назва (ім'я) вузла"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Маска для нових каталогів"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Маска для нових файлів"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "Ім'я"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Загальні мережеві ресурси"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "Шлях"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "Тільки читання"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Спільно використовувати домашні каталоги"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Загальні каталоги"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"Це вміст файлу '/etc/samba/smb.conf.template', з якого буде генеруватися "
-"ваша конфігурація samba. Значення, укладені в символи \"вертикальна риска"
-"\" (\"|\") не повинні змінюватися. Вони отримують свої значення з вкладки "
-"\"Загальні налаштування\"."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Робоча група"
diff --git a/package/luci/applications/luci-app-samba/po/vi/samba.po b/package/luci/applications/luci-app-samba/po/vi/samba.po
deleted file mode 100644 (file)
index a3f65cf..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-#  samba.pot
-#  generated from ./applications/luci-samba/luasrc/i18n/samba.en.lua
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-16 06:59+0200\n"
-"PO-Revision-Date: 2009-08-13 03:54+0200\n"
-"Last-Translator: Hong Phuc Dang <dhppat@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-#, fuzzy
-msgid "Allow guests"
-msgstr "Cho phép khách"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-#, fuzzy
-msgid "Allow system users to reach their home directories via network shares"
-msgstr ""
-"Những người sử dụng hệ thống có thể tiếp cận những thư mục tại nhà thông qua "
-"mạng lưới chia sẻ trực tuyến."
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-#, fuzzy
-msgid "Allowed users"
-msgstr "Người sử dụng được cho phép"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-#, fuzzy
-msgid "Create mask"
-msgstr "Tạo Mask"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "Mô tả"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-#, fuzzy
-msgid "Directory mask"
-msgstr "Thư mục Mask"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "tên máy chủ"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "Mask cho thư mục mới"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "Mask cho tập tin mới"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "Mạng chia sẻ"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-#, fuzzy
-msgid "Read-only"
-msgstr "Chỉ đọc "
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "Chia sẻ danh bạ chính"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "Thư mục chia sẻ"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "Nhóm làm việc "
-
-#~ msgid "Shared Directory"
-#~ msgstr "Đã chia sẻ thư mục"
-
-#~ msgid "Physical Path"
-#~ msgstr "Đường dẫn vật lý"
-
-#~ msgid "optional"
-#~ msgstr "Tùy thích"
diff --git a/package/luci/applications/luci-app-samba/po/zh-cn/samba.po b/package/luci/applications/luci-app-samba/po/zh-cn/samba.po
deleted file mode 100644 (file)
index 3307bf8..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-#
-# Yangfl <mmyangfl@gmail.com>, 2017.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2017-10-29 15:36+0800\n"
-"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
-"Language-Team:  <debian-l10n-chinese@lists.debian.org>\n"
-"Language: zh_CN\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Gtranslator 2.91.7\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "允许匿名用户"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr "允许系统用户通过网络共享访问他们的家目录"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "允许用户"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr "可浏览"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "创建权限掩码"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "描述"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "目录权限掩码"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "编辑模板"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr "编辑用来生成 samba 设置的模板"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "基本设置"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "主机名"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "新目录权限掩码"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "新文件权限掩码"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "共享名"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "网络共享"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "目录"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr "请添加要共享的目录。每个目录指到已挂载设备上的文件夹。"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "只读"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "共享家目录"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "共享目录"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"这是将从其上生成 samba 配置的文件“/etc/samba/smb.conf.template”的内容。由管道"
-"符(“|”)包围的值不应更改。它们将从“常规设置”标签中获取其值。"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "工作组"
-
-#~ msgid "Physical Path"
-#~ msgstr "物理路径"
diff --git a/package/luci/applications/luci-app-samba/po/zh-tw/samba.po b/package/luci/applications/luci-app-samba/po/zh-tw/samba.po
deleted file mode 100644 (file)
index fa644b7..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-#
-# Yangfl <mmyangfl@gmail.com>, 2017.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2017-10-29 15:36+0800\n"
-"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
-"Language-Team:  <debian-l10n-chinese@lists.debian.org>\n"
-"Language: zh_TW\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Gtranslator 2.91.7\n"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:64
-msgid "Allow guests"
-msgstr "允許匿名使用者"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:17
-msgid "Allow system users to reach their home directories via network shares"
-msgstr "允許系統使用者通過網路共享訪問他們的家目錄"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:51
-msgid "Allowed users"
-msgstr "允許使用者"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:58
-msgid "Browseable"
-msgstr "可瀏覽"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:69
-msgid "Create mask"
-msgstr "建立權限掩碼"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:14
-msgid "Description"
-msgstr "描述"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:74
-msgid "Directory mask"
-msgstr "目錄權限掩碼"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:11
-msgid "Edit Template"
-msgstr "編輯模板"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:22
-msgid "Edit the template that is used for generating the samba configuration."
-msgstr "編輯用來生成 samba 設定的模板"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:10
-msgid "General Settings"
-msgstr "基本設定"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:13
-msgid "Hostname"
-msgstr "主機名"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:75
-msgid "Mask for new directories"
-msgstr "新目錄權限掩碼"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:70
-msgid "Mask for new files"
-msgstr "新檔案權限掩碼"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:45
-msgid "Name"
-msgstr "共享名"
-
-#: applications/luci-app-samba/luasrc/controller/samba.lua:14
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:5
-msgid "Network Shares"
-msgstr "網路共享"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:46
-msgid "Path"
-msgstr "目錄"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:40
-msgid ""
-"Please add directories to share. Each directory refers to a folder on a "
-"mounted device."
-msgstr "請新增要共享的目錄。每個目錄指到已掛載裝置上的資料夾。"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:53
-msgid "Read-only"
-msgstr "只讀"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:16
-msgid "Share home-directories"
-msgstr "共享家目錄"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:39
-msgid "Shared Directories"
-msgstr "共享目錄"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:23
-msgid ""
-"This is the content of the file '/etc/samba/smb.conf.template' from which "
-"your samba configuration will be generated. Values enclosed by pipe symbols "
-"('|') should not be changed. They get their values from the 'General "
-"Settings' tab."
-msgstr ""
-"這是將從其上生成 samba 配置的檔案“/etc/samba/smb.conf.template”的內容。由管道"
-"符(“|”)包圍的值不應更改。它們將從“常規設定”標籤中獲取其值。"
-
-#: applications/luci-app-samba/luasrc/model/cbi/samba.lua:15
-msgid "Workgroup"
-msgstr "工作組"
-
-#~ msgid "Physical Path"
-#~ msgstr "物理路徑"
diff --git a/package/luci/applications/luci-app-uhttpd/Makefile b/package/luci/applications/luci-app-uhttpd/Makefile
deleted file mode 100644 (file)
index 3014770..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# Copyright (C) 2015 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=uHTTPd Webserver Configuration
-LUCI_DEPENDS:=+uhttpd
-LUCI_PKGARCH:=all
-
-PKG_LICENSE:=Apache-2.0
-PKG_MAINTAINER:=Daniel Dickinson <openwrt@daniel.thecshore.com>
-
-LUA_TARGET:=source
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/applications/luci-app-uhttpd/luasrc/controller/uhttpd/uhttpd.lua b/package/luci/applications/luci-app-uhttpd/luasrc/controller/uhttpd/uhttpd.lua
deleted file mode 100644 (file)
index 2e80dd6..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
--- Copyright 2015 Daniel Dickinson <openwrt@daniel.thecshore.com>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.uhttpd.uhttpd", package.seeall)
-
-function index()
-       if not nixio.fs.access("/etc/config/uhttpd") then
-               return
-       end
-
-       local page
-
-       page = entry({"admin", "services", "uhttpd"}, cbi("uhttpd/uhttpd"), _("uHTTPd"))
-       page.leaf = true
-
-end
-
diff --git a/package/luci/applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua b/package/luci/applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua
deleted file mode 100644 (file)
index eadf9b5..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
--- Copyright 2015 Daniel Dickinson <openwrt@daniel.thecshore.com>
--- Licensed to the public under the Apache License 2.0.
-
-local fs = require("nixio.fs")
-
-local m = Map("uhttpd", translate("uHTTPd"),
-             translate("A lightweight single-threaded HTTP(S) server"))
-
-local ucs = m:section(TypedSection, "uhttpd", "")
-ucs.addremove = true
-ucs.anonymous = false
-
-local lhttp = nil
-local lhttps = nil
-local cert_file = nil
-local key_file = nil
-
-ucs:tab("general", translate("General Settings"))
-ucs:tab("server", translate("Full Web Server Settings"), translate("For settings primarily geared to serving more than the web UI"))
-ucs:tab("advanced", translate("Advanced Settings"), translate("Settings which are either rarely needed or which affect serving the WebUI"))
-
-lhttp = ucs:taboption("general", DynamicList, "listen_http", translate("HTTP listeners (address:port)"), translate("Bind to specific interface:port (by specifying interface address"))
-lhttp.datatype = "list(ipaddrport(1))"
-
-function lhttp.validate(self, value, section)
-        local have_https_listener = false
-        local have_http_listener = false
-       if lhttp and lhttp:formvalue(section) and (#(lhttp:formvalue(section)) > 0) then
-               for k, v in pairs(lhttp:formvalue(section)) do
-                       if v and (v ~= "") then
-                               have_http_listener = true
-                               break
-                       end
-               end
-       end
-       if lhttps and lhttps:formvalue(section) and (#(lhttps:formvalue(section)) > 0) then
-               for k, v in pairs(lhttps:formvalue(section)) do
-                       if v and (v ~= "") then
-                               have_https_listener = true
-                               break
-                       end
-               end
-       end
-       if not (have_http_listener or have_https_listener) then
-               return nil, "must listen on at least one address:port"
-       end
-       return DynamicList.validate(self, value, section)
-end
-
-lhttps = ucs:taboption("general", DynamicList, "listen_https", translate("HTTPS listener (address:port)"), translate("Bind to specific interface:port (by specifying interface address"))
-lhttps.datatype = "list(ipaddrport(1))"
-lhttps:depends("cert")
-lhttps:depends("key")
-
-function lhttps.validate(self, value, section)
-        local have_https_listener = false
-        local have_http_listener = false
-       if lhttps and lhttps:formvalue(section) and (#(lhttps:formvalue(section)) > 0) then
-               for k, v in pairs(lhttps:formvalue(section)) do
-                       if v and (v ~= "") then
-                               have_https_listener = true
-                               break
-                       end
-               end
-               if have_https_listener and ((not cert_file) or (not cert_file:formvalue(section)) or (cert_file:formvalue(section) == ""))  then
-                       return nil, "must have certificate when using https"
-               end
-               if have_https_listener and ((not key_file) or (not key_file:formvalue(section)) or (key_file:formvalue(section) == "")) then
-                       return nil, "must have key when using https"
-               end
-       end
-       if lhttp and (lhttp:formvalue(section)) and (#lhttp:formvalue(section) > 0) then
-               for k, v in pairs(lhttp:formvalue(section)) do
-                       if v and (v ~= "") then
-                               have_http_listener = true
-                               break
-                       end
-               end
-       end
-       if not (have_http_listener or have_https_listener) then
-               return nil, "must listen on at least one address:port"
-       end
-       return DynamicList.validate(self, value, section)
-end
-
-o = ucs:taboption("general", Flag, "redirect_https", translate("Redirect all HTTP to HTTPS"))
-o.default = o.enabled
-o.rmempty = false
-
-o = ucs:taboption("general", Flag, "rfc1918_filter", translate("Ignore private IPs on public interface"), translate("Prevent access from private (RFC1918) IPs on an interface if it has an public IP address"))
-o.default = o.enabled
-o.rmempty = false
-
-cert_file = ucs:taboption("general", FileUpload, "cert", translate("HTTPS Certificate (DER Encoded)"))
-
-key_file = ucs:taboption("general", FileUpload, "key", translate("HTTPS Private Key (DER Encoded)"))
-
-o = ucs:taboption("general", Button, "remove_old", translate("Remove old certificate and key"),
-                 translate("uHTTPd will generate a new self-signed certificate using the configuration shown below."))
-o.inputstyle = "remove"
-
-function o.write(self, section)
-       if cert_file:cfgvalue(section) and fs.access(cert_file:cfgvalue(section)) then fs.unlink(cert_file:cfgvalue(section)) end
-       if key_file:cfgvalue(section) and fs.access(key_file:cfgvalue(section)) then fs.unlink(key_file:cfgvalue(section)) end
-       luci.sys.call("/etc/init.d/uhttpd restart")
-       luci.http.redirect(luci.dispatcher.build_url("admin", "services", "uhttpd"))
-end
-
-o = ucs:taboption("general", Button, "remove_conf", translate("Remove configuration for certificate and key"),
-       translate("This permanently deletes the cert, key, and configuration to use same."))
-o.inputstyle = "remove"
-
-function o.write(self, section)
-       if cert_file:cfgvalue(section) and fs.access(cert_file:cfgvalue(section)) then fs.unlink(cert_file:cfgvalue(section)) end
-       if key_file:cfgvalue(section) and fs.access(key_file:cfgvalue(section)) then fs.unlink(key_file:cfgvalue(section)) end
-       self.map:del(section, "cert")
-       self.map:del(section, "key")
-       self.map:del(section, "listen_https")
-       luci.http.redirect(luci.dispatcher.build_url("admin", "services", "uhttpd"))
-end
-
-o = ucs:taboption("server", DynamicList, "index_page", translate("Index page(s)"), translate("E.g specify with index.html and index.php when using PHP"))
-o.optional = true
-o.placeholder = "index.html"
-
-o = ucs:taboption("server", DynamicList, "interpreter", translate("CGI filetype handler"), translate("Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/usr/bin/php-cgi')"))
-o.optional = true
-
-o = ucs:taboption("server", Flag, "no_symlinks", translate("Do not follow symlinks outside document root"))
-o.optional = true
-
-o = ucs:taboption("server", Flag, "no_dirlists", translate("Do not generate directory listings."))
-o.default = o.disabled
-
-o = ucs:taboption("server", DynamicList, "alias", translate("Aliases"), translate("(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"))
-o.optional = true
-
-o = ucs:taboption("server", Value, "realm", translate("Realm for Basic Auth"))
-o.optional = true
-o.placeholder = luci.sys.hostname() or "OpenWrt"
-
-local httpconfig = ucs:taboption("server", Value, "config", translate("Config file (e.g. for credentials for Basic Auth)"), translate("Will not use HTTP authentication if not present"))
-httpconfig.optional = true
-
-o = ucs:taboption("server", Value, "error_page", translate("404 Error"), translate("Virtual URL or CGI script to display on status '404 Not Found'.  Must begin with '/'"))
-o.optional = true
-
-o = ucs:taboption("advanced", Value, "home", translate("Document root"),
-                 translate("Base directory for files to be served"))
-o.default = "/www"
-o.datatype = "directory"
-
-o = ucs:taboption("advanced", Value, "cgi_prefix", translate("Path prefix for CGI scripts"), translate("CGI is disabled if not present."))
-o.optional = true
-
-o = ucs:taboption("advanced", Value, "lua_prefix", translate("Virtual path prefix for Lua scripts"))
-o.placeholder = "/lua"
-o.optional = true
-
-o = ucs:taboption("advanced", Value, "lua_handler", translate("Full real path to handler for Lua scripts"), translate("Embedded Lua interpreter is disabled if not present."))
-o.optional = true
-
-o = ucs:taboption("advanced", Value, "ubus_prefix", translate("Virtual path prefix for ubus via JSON-RPC integration"), translate("ubus integration is disabled if not present"))
-o.optional = true
-
-o = ucs:taboption("advanced", Value, "ubus_socket", translate("Override path for ubus socket"))
-o.optional = true
-
-o = ucs:taboption("advanced", Flag, "ubus_cors", translate("Enable JSON-RPC Cross-Origin Resource Support"))
-o.default = o.disabled
-o.optional = true
-
-o = ucs:taboption("advanced", Flag, "no_ubusauth", translate("Disable JSON-RPC authorization via ubus session API"))
-o.optional= true
-o.default = o.disabled
-
-o = ucs:taboption("advanced", Value, "script_timeout", translate("Maximum wait time for Lua, CGI, or ubus execution"))
-o.placeholder = 60
-o.datatype = "uinteger"
-o.optional = true
-
-o = ucs:taboption("advanced", Value, "network_timeout", translate("Maximum wait time for network activity"))
-o.placeholder = 30
-o.datatype = "uinteger"
-o.optional = true
-
-o = ucs:taboption("advanced", Value, "http_keepalive", translate("Connection reuse"))
-o.placeholder = 20
-o.datatype = "uinteger"
-o.optional = true
-
-o = ucs:taboption("advanced", Value, "tcp_keepalive", translate("TCP Keepalive"))
-o.optional = true
-o.datatype = "uinteger"
-o.default = 1
-
-o = ucs:taboption("advanced", Value, "max_connections", translate("Maximum number of connections"))
-o.optional = true
-o.datatype = "uinteger"
-
-o = ucs:taboption("advanced", Value, "max_requests", translate("Maximum number of script requests"))
-o.optional = true
-o.datatype = "uinteger"
-
-local s = m:section(TypedSection, "cert", translate("uHTTPd Self-signed Certificate Parameters"))
-
-s.template  = "cbi/tsection"
-s.anonymous = true
-
-o = s:option(Value, "days", translate("Valid for # of Days"))
-o.default = 730
-o.datatype = "uinteger"
-
-o = s:option(Value, "bits", translate("Length of key in bits"))
-o.default = 2048
-o.datatype = "min(1024)"
-
-o = s:option(Value, "commonname", translate("Server Hostname"), translate("a.k.a CommonName"))
-o.default = luci.sys.hostname()
-
-o = s:option(Value, "country", translate("Country"))
-o.default = "ZZ"
-
-o = s:option(Value, "state", translate("State"))
-o.default = "Unknown"
-
-o = s:option(Value, "location", translate("Location"))
-o.default = "Unknown"
-
-return m
diff --git a/package/luci/applications/luci-app-uhttpd/po/en/uhttpd.po b/package/luci/applications/luci-app-uhttpd/po/en/uhttpd.po
deleted file mode 100644 (file)
index 67c06d8..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2019-01-09 07:00-0500\n"
-"Last-Translator: Daniel F. Dickinson <cshored@theshore.com>\n"
-"Language-Team: English\n"
-"Language: en\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid ""
-"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
-msgstr ""
-"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid "404 Error"
-msgstr "404 Error"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:7
-msgid "A lightweight single-threaded HTTP(S) server"
-msgstr "A lightweight single-threaded HTTP(S) server"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid "Advanced Settings"
-msgstr "Advanced Settings"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid "Aliases"
-msgstr "Aliases"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:149
-msgid "Base directory for files to be served"
-msgstr "Base directory for files to be served"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "Bind to specific interface:port (by specifying interface address"
-msgstr "Bind to specific interface:port (by specifying interface address"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid "CGI filetype handler"
-msgstr "CGI filetype handler"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "CGI is disabled if not present."
-msgstr "CGI is disabled if not present."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Config file (e.g. for credentials for Basic Auth)"
-msgstr "Config file (e.g. for credentials for Basic Auth)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:187
-msgid "Connection reuse"
-msgstr "Connection reuse"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:221
-msgid "Country"
-msgstr "Country"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:173
-msgid "Disable JSON-RPC authorization via ubus session API"
-msgstr "Disable JSON-RPC authorization via ubus session API"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:129
-msgid "Do not follow symlinks outside document root"
-msgstr "Do not follow symlinks outside document root"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:132
-msgid "Do not generate directory listings."
-msgstr "Do not generate directory listings."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:148
-msgid "Document root"
-msgstr "Document root"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "E.g specify with index.html and index.php when using PHP"
-msgstr "E.g specify with index.html and index.php when using PHP"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Embedded Lua interpreter is disabled if not present."
-msgstr "Embedded Lua interpreter is disabled if not present."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:169
-msgid "Enable JSON-RPC Cross-Origin Resource Support"
-msgstr "Enable JSON-RPC Cross-Origin Resource Support"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "For settings primarily geared to serving more than the web UI"
-msgstr "For settings primarily geared to serving more than the web UI"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "Full Web Server Settings"
-msgstr "Full Web Server Settings"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Full real path to handler for Lua scripts"
-msgstr "Full real path to handler for Lua scripts"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:18
-msgid "General Settings"
-msgstr "General Settings"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-msgid "HTTP listeners (address:port)"
-msgstr "HTTP listeners (address:port)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:94
-msgid "HTTPS Certificate (DER Encoded)"
-msgstr "HTTPS Certificate (DER Encoded)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:96
-msgid "HTTPS Private Key (DER Encoded)"
-msgstr "HTTPS Private Key (DER Encoded)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "HTTPS listener (address:port)"
-msgstr "HTTPS listener (address:port)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid "Ignore private IPs on public interface"
-msgstr "Ignore private IPs on public interface"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "Index page(s)"
-msgstr "Index page(s)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid ""
-"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
-"usr/bin/php-cgi')"
-msgstr ""
-"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
-"usr/bin/php-cgi')"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:214
-msgid "Length of key in bits"
-msgstr "Length of key in bits"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:227
-msgid "Location"
-msgstr "Location"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:197
-msgid "Maximum number of connections"
-msgstr "Maximum number of connections"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:201
-msgid "Maximum number of script requests"
-msgstr "Maximum number of script requests"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:177
-msgid "Maximum wait time for Lua, CGI, or ubus execution"
-msgstr "Maximum wait time for Lua, CGI, or ubus execution"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:182
-msgid "Maximum wait time for network activity"
-msgstr "Maximum wait time for network activity"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:166
-msgid "Override path for ubus socket"
-msgstr "Override path for ubus socket"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "Path prefix for CGI scripts"
-msgstr "Path prefix for CGI scripts"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid ""
-"Prevent access from private (RFC1918) IPs on an interface if it has an "
-"public IP address"
-msgstr ""
-"Prevent access from private (RFC1918) IPs on an interface if it has an "
-"public IP address"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:138
-msgid "Realm for Basic Auth"
-msgstr "Realm for Basic Auth"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:86
-msgid "Redirect all HTTP to HTTPS"
-msgstr "Redirect all HTTP to HTTPS"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:109
-msgid "Remove configuration for certificate and key"
-msgstr "Remove configuration for certificate and key"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:98
-msgid "Remove old certificate and key"
-msgstr "Remove old certificate and key"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "Server Hostname"
-msgstr "Server Hostname"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid ""
-"Settings which are either rarely needed or which affect serving the WebUI"
-msgstr ""
-"Settings which are either rarely needed or which affect serving the WebUI"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:224
-msgid "State"
-msgstr "State"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:192
-msgid "TCP Keepalive"
-msgstr "TCP Keepalive"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:110
-msgid "This permanently deletes the cert, key, and configuration to use same."
-msgstr "This permanently deletes the cert, key, and configuration to use same."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:210
-msgid "Valid for # of Days"
-msgstr "Valid for # of Days"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid ""
-"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
-"with '/'"
-msgstr ""
-"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
-"with '/'"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:156
-msgid "Virtual path prefix for Lua scripts"
-msgstr "Virtual path prefix for Lua scripts"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "Virtual path prefix for ubus via JSON-RPC integration"
-msgstr "Virtual path prefix for ubus via JSON-RPC integration"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Will not use HTTP authentication if not present"
-msgstr "Will not use HTTP authentication if not present"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "a.k.a CommonName"
-msgstr "a.k.a CommonName"
-
-#: applications/luci-app-uhttpd/luasrc/controller/uhttpd/uhttpd.lua:13
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:6
-msgid "uHTTPd"
-msgstr "uHTTPd"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:205
-msgid "uHTTPd Self-signed Certificate Parameters"
-msgstr "uHTTPd Self-signed Certificate Parameters"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:99
-msgid ""
-"uHTTPd will generate a new self-signed certificate using the configuration "
-"shown below."
-msgstr ""
-"uHTTPd will generate a new self-signed certificate using the configuration "
-"shown below."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "ubus integration is disabled if not present"
-msgstr "ubus integration is disabled if not present"
diff --git a/package/luci/applications/luci-app-uhttpd/po/ja/uhttpd.po b/package/luci/applications/luci-app-uhttpd/po/ja/uhttpd.po
deleted file mode 100644 (file)
index 0833005..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: 2018-02-05 14:54+0900\n"
-"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
-"Language-Team: \n"
-"Language: ja\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.0.6\n"
-"X-Poedit-Basepath: .\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid ""
-"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
-msgstr ""
-"(/old/path=/new/path) または (just /old/path which becomes /cgi-prefix/old/"
-"path)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid "404 Error"
-msgstr "404 エラー"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:7
-msgid "A lightweight single-threaded HTTP(S) server"
-msgstr "軽量なシングル スレッド HTTP(S) サーバーです。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid "Advanced Settings"
-msgstr "詳細設定"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid "Aliases"
-msgstr "エイリアス"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:149
-msgid "Base directory for files to be served"
-msgstr "サーバーがホストするファイルのベースディレクトリです。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "Bind to specific interface:port (by specifying interface address"
-msgstr ""
-"インターフェースのアドレスを用いて、特定の インターフェース:ポート にバインド"
-"します。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid "CGI filetype handler"
-msgstr "CGIファイル形式 ハンドラー"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "CGI is disabled if not present."
-msgstr "指定しない場合、CGIは無効になります。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Config file (e.g. for credentials for Basic Auth)"
-msgstr "設定ファイル(例: 基本認証用の資格情報)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:187
-msgid "Connection reuse"
-msgstr "接続の再使用"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:221
-msgid "Country"
-msgstr "国"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:173
-msgid "Disable JSON-RPC authorization via ubus session API"
-msgstr "ubus セッションAPI経由のJSON-RPC認証を無効にする"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:129
-msgid "Do not follow symlinks outside document root"
-msgstr "ドキュメント ルート外へのシンボリックリンクを追随しない"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:132
-msgid "Do not generate directory listings."
-msgstr "ディレクトリの待ち受けを生成しない"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:148
-msgid "Document root"
-msgstr "ドキュメント ルート"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "E.g specify with index.html and index.php when using PHP"
-msgstr "index.html や、PHPを使用しているときは index.php を設定します。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Embedded Lua interpreter is disabled if not present."
-msgstr "指定しない場合、組込 Lua インタープリタは無効になります。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:169
-msgid "Enable JSON-RPC Cross-Origin Resource Support"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "For settings primarily geared to serving more than the web UI"
-msgstr "主に、Web UI以上のものを提供することを対象とした設定です。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "Full Web Server Settings"
-msgstr "完全なWebサーバー設定"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Full real path to handler for Lua scripts"
-msgstr "Lua スクリプト用ハンドラへの絶対パス"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:18
-msgid "General Settings"
-msgstr "一般設定"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-msgid "HTTP listeners (address:port)"
-msgstr "HTTP 待ち受け(アドレス:ポート)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:94
-msgid "HTTPS Certificate (DER Encoded)"
-msgstr "HTTPS 証明書(DER エンコード)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:96
-msgid "HTTPS Private Key (DER Encoded)"
-msgstr "HTTPS 秘密鍵(DER エンコード)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "HTTPS listener (address:port)"
-msgstr "HTTPS 待ち受け(アドレス:ポート)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid "Ignore private IPs on public interface"
-msgstr "公開側インターフェースでのプライベートIPを無視する"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "Index page(s)"
-msgstr "インデックス ページ"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid ""
-"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
-"usr/bin/php-cgi')"
-msgstr ""
-"ファイル拡張子に関連付けるインタープリタです。('suffix=handler'、例: '.php=/"
-"usr/bin/php-cgi')"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:214
-msgid "Length of key in bits"
-msgstr "鍵のビット数"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:227
-msgid "Location"
-msgstr "市区町村"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:197
-msgid "Maximum number of connections"
-msgstr "最大接続数"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:201
-msgid "Maximum number of script requests"
-msgstr "スクリプトの最大リクエスト数"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:177
-msgid "Maximum wait time for Lua, CGI, or ubus execution"
-msgstr "LuaやCGI、ubus実行の最大待機時間"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:182
-msgid "Maximum wait time for network activity"
-msgstr "ネットワークアクティビティの最大待機時間"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:166
-msgid "Override path for ubus socket"
-msgstr "ubus ソケットのパスを上書きする"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "Path prefix for CGI scripts"
-msgstr "CGI スクリプトのパスプレフィクス"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid ""
-"Prevent access from private (RFC1918) IPs on an interface if it has an "
-"public IP address"
-msgstr ""
-"グローバル IPアドレスを持つインターフェースでは、プライベート IP (RFC1918) か"
-"らのアクセスをブロックします。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:138
-msgid "Realm for Basic Auth"
-msgstr "基本認証の領域名"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:86
-msgid "Redirect all HTTP to HTTPS"
-msgstr "全ての HTTP を HTTPS にリダイレクトする"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:109
-msgid "Remove configuration for certificate and key"
-msgstr "証明書と鍵の設定を削除する"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:98
-msgid "Remove old certificate and key"
-msgstr "古い証明書と鍵を削除する"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "Server Hostname"
-msgstr "サーバー ホスト名"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid ""
-"Settings which are either rarely needed or which affect serving the WebUI"
-msgstr "まれに必要とされる設定、または Web UI の提供に影響する設定です。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:224
-msgid "State"
-msgstr "都道府県"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:192
-msgid "TCP Keepalive"
-msgstr "TCP キープアライブ"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:110
-msgid "This permanently deletes the cert, key, and configuration to use same."
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:210
-msgid "Valid for # of Days"
-msgstr "有効日数"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid ""
-"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
-"with '/'"
-msgstr ""
-"'404 Not Found' ステータスを表示するための仮想 URL または CGI スクリプトで"
-"す。 '/' から始まる必要があります。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:156
-msgid "Virtual path prefix for Lua scripts"
-msgstr "Lua スクリプトへの仮想パスプレフィクス"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "Virtual path prefix for ubus via JSON-RPC integration"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Will not use HTTP authentication if not present"
-msgstr "指定しない場合、HTTP 認証は使用されません。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "a.k.a CommonName"
-msgstr "共通名"
-
-#: applications/luci-app-uhttpd/luasrc/controller/uhttpd/uhttpd.lua:13
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:6
-msgid "uHTTPd"
-msgstr "uHTTPd"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:205
-msgid "uHTTPd Self-signed Certificate Parameters"
-msgstr "uHTTPd 自己署名証明書 パラメーター"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:99
-msgid ""
-"uHTTPd will generate a new self-signed certificate using the configuration "
-"shown below."
-msgstr "uHTTPd は、下に表示されている設定で新しい自己署名証明書を生成します。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "ubus integration is disabled if not present"
-msgstr "指定しない場合、ubus 統合は無効になります。"
diff --git a/package/luci/applications/luci-app-uhttpd/po/pt-br/uhttpd.po b/package/luci/applications/luci-app-uhttpd/po/pt-br/uhttpd.po
deleted file mode 100644 (file)
index 0f1aca5..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: \n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.11\n"
-"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"Language: pt_BR\n"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid ""
-"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
-msgstr ""
-"(/old/path=/new/path) ou (just /old/path que se torna /cgi-prefix/old/path)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid "404 Error"
-msgstr "Erro 404"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:7
-msgid "A lightweight single-threaded HTTP(S) server"
-msgstr "Um servidor HTTP(S) leve de únida thread."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid "Advanced Settings"
-msgstr "Opções Avançadas"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid "Aliases"
-msgstr "Pseudônimos (Aliases)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:149
-msgid "Base directory for files to be served"
-msgstr "Diretório Base para publicar arquivos"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "Bind to specific interface:port (by specifying interface address"
-msgstr ""
-"Escute em uma interface:porta específica (especificando o endereço da "
-"interface"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid "CGI filetype handler"
-msgstr "Interpretador de tipo de arquivo CGI"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "CGI is disabled if not present."
-msgstr "O CGI estará desabilitado se não presente."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Config file (e.g. for credentials for Basic Auth)"
-msgstr "Arquivo de configuração (ex: credenciais para autenticação básica)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:187
-msgid "Connection reuse"
-msgstr "Reutilizar conexão"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:221
-msgid "Country"
-msgstr "País"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:173
-msgid "Disable JSON-RPC authorization via ubus session API"
-msgstr "Desabilita a autorização JSON-RPC através da API de sessão ubus"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:129
-msgid "Do not follow symlinks outside document root"
-msgstr "Não siga ligações simbólicas (symlinks) para fora do documento raiz"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:132
-msgid "Do not generate directory listings."
-msgstr "Não gere listagens de diretórios"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:148
-msgid "Document root"
-msgstr "Documento Raiz"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "E.g specify with index.html and index.php when using PHP"
-msgstr "Ex: use index.html e index.php quando usar PHP"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Embedded Lua interpreter is disabled if not present."
-msgstr "O interpretador Lua embutido será desabilitado se não presente."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:169
-msgid "Enable JSON-RPC Cross-Origin Resource Support"
-msgstr "Habilite o suporte para recursos JSON-RPC de origem cruzada"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "For settings primarily geared to serving more than the web UI"
-msgstr "Para ajustes envolvidos com mais do que prover a interface web"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "Full Web Server Settings"
-msgstr "Configurações Completas do Servidor Web"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Full real path to handler for Lua scripts"
-msgstr "Caminho completo para o interpretador de scripts Lua"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:18
-msgid "General Settings"
-msgstr "Configurações Gerais"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-msgid "HTTP listeners (address:port)"
-msgstr "Escutas do HTTP (endereço:porta)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:94
-msgid "HTTPS Certificate (DER Encoded)"
-msgstr "Certificado do HTTPS (codificado em formato PEM)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:96
-msgid "HTTPS Private Key (DER Encoded)"
-msgstr "Chave Privada do HTTPS (codificado como DER)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "HTTPS listener (address:port)"
-msgstr "Escuta do HTTPS (endereço:porta)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid "Ignore private IPs on public interface"
-msgstr "Ignore endereços IP privados na interface pública"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "Index page(s)"
-msgstr "Página(s) Índice(s)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid ""
-"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
-"usr/bin/php-cgi')"
-msgstr ""
-"Interpretador para associar com extensões de arquivos "
-"('extensão=interpretador', ex: '.php=/usr/bin/php-cgi')"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:214
-msgid "Length of key in bits"
-msgstr "Comprimento da chave em bits"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:227
-msgid "Location"
-msgstr "Localização"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:197
-msgid "Maximum number of connections"
-msgstr "Número máximo de requisições para script"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:201
-msgid "Maximum number of script requests"
-msgstr "Número máximo de requisições para script"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:177
-msgid "Maximum wait time for Lua, CGI, or ubus execution"
-msgstr "Tempo máximo de espera para execuções de Lua, CGI ou ubus"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:182
-msgid "Maximum wait time for network activity"
-msgstr "Tempo máximo de espera para atividade na rede"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:166
-msgid "Override path for ubus socket"
-msgstr "Sobrescrever o caminho do socket ubus"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "Path prefix for CGI scripts"
-msgstr "Prefixo do caminho para scripts CGI"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid ""
-"Prevent access from private (RFC1918) IPs on an interface if it has an "
-"public IP address"
-msgstr ""
-"Evite acesso de endereços privados (RFC1918) na interface que tem um "
-"endereço IP público"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:138
-msgid "Realm for Basic Auth"
-msgstr "Reino para Autenticação Simples"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:86
-msgid "Redirect all HTTP to HTTPS"
-msgstr "Redirecionar todo tráfego HTTP para HTTPS"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:109
-msgid "Remove configuration for certificate and key"
-msgstr "Remove a configuração para o certificado e chave"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:98
-msgid "Remove old certificate and key"
-msgstr "Remove os certificados e chaves antigas"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "Server Hostname"
-msgstr "Nome do Servidor"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid ""
-"Settings which are either rarely needed or which affect serving the WebUI"
-msgstr "Ajustes que são raramente usadas ou que afetam a interface web"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:224
-msgid "State"
-msgstr "Estado"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:192
-msgid "TCP Keepalive"
-msgstr "Manter conexões TCP abertas (Keepalive)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:110
-msgid "This permanently deletes the cert, key, and configuration to use same."
-msgstr "Isto apaga permanentemente o certificado, a chave e a configuração."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:210
-msgid "Valid for # of Days"
-msgstr "Valido por # dias"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid ""
-"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
-"with '/'"
-msgstr ""
-"URL virtual ou script CGI para mostrar quando ocorrer erro '404 Não "
-"Encontrado'. Deve começar com '/'"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:156
-msgid "Virtual path prefix for Lua scripts"
-msgstr "Prefixo do caminho virtual para scripts Lua"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "Virtual path prefix for ubus via JSON-RPC integration"
-msgstr "Prefixo do caminho virtual para o ubus através da integração JSON-RPC"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Will not use HTTP authentication if not present"
-msgstr "Não usar autenticação HTTP se não presente"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "a.k.a CommonName"
-msgstr "também conhecido como Nome Comum"
-
-#: applications/luci-app-uhttpd/luasrc/controller/uhttpd/uhttpd.lua:13
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:6
-msgid "uHTTPd"
-msgstr "uHTTPd"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:205
-msgid "uHTTPd Self-signed Certificate Parameters"
-msgstr "Parâmetros do Certificado Auto-assinado do uHTTPd"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:99
-msgid ""
-"uHTTPd will generate a new self-signed certificate using the configuration "
-"shown below."
-msgstr ""
-"o uHTTPd gerará um certificado auto-assinado usando a configuração mostrada "
-"abaixo."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "ubus integration is disabled if not present"
-msgstr "A integração com o ubus será desativada se não presente"
diff --git a/package/luci/applications/luci-app-uhttpd/po/ru/uhttpd.po b/package/luci/applications/luci-app-uhttpd/po/ru/uhttpd.po
deleted file mode 100644 (file)
index 3e2834f..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: LuCI: uhttpd\n"
-"POT-Creation-Date: 2017-12-06 22:30+0300\n"
-"PO-Revision-Date: 2018-01-24 15:00+0300\n"
-"Language-Team: http://cyber-place.ru\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.7.1\n"
-"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"Language: ru\n"
-"Project-Info: Это технический перевод, не дословный. Главное-удобный русский "
-"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid ""
-"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
-msgstr ""
-"(/старый/путь=/новый/путь) или (просто /старый/путь становится /cgi-prefix/"
-"старый/путь)."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid "404 Error"
-msgstr "Ошибка 404"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:7
-msgid "A lightweight single-threaded HTTP(S) server"
-msgstr "Легкий однопоточный HTTP(S) сервер."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid "Advanced Settings"
-msgstr "Дополнительные настройки"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid "Aliases"
-msgstr "Псевдонимы (Aliases)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:149
-msgid "Base directory for files to be served"
-msgstr "Основная папка для файлов, которые будут обслуживаться сервером."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "Bind to specific interface:port (by specifying interface address"
-msgstr ""
-"Привязка к конкретному интерфейсу:порту (путем указания адреса интерфейса)."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid "CGI filetype handler"
-msgstr "Обработчик<br />типа файла CGI"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "CGI is disabled if not present."
-msgstr "CGI отключается, если он отсутствует."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Config file (e.g. for credentials for Basic Auth)"
-msgstr "Config файл"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:187
-msgid "Connection reuse"
-msgstr "Повторное использование соединения"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:221
-msgid "Country"
-msgstr "Страна"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:173
-msgid "Disable JSON-RPC authorization via ubus session API"
-msgstr "Отключение авторизации<br />JSON-RPC через API<br />в систему ubus"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:129
-msgid "Do not follow symlinks outside document root"
-msgstr ""
-"Не следовать по символическим ссылкам<br />вне корневого каталога документов"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:132
-msgid "Do not generate directory listings."
-msgstr "Не создавать списки папок"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:148
-msgid "Document root"
-msgstr "Основная папка"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "E.g specify with index.html and index.php when using PHP"
-msgstr "Например, укажите index.html и index.php если использовуется PHP."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Embedded Lua interpreter is disabled if not present."
-msgstr ""
-"Встроенный обработчик скриптов Lua отключается, если скрипт отсутствует."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:169
-msgid "Enable JSON-RPC Cross-Origin Resource Support"
-msgstr "Включение поддержки JSON-RPC разных источников"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "For settings primarily geared to serving more than the web UI"
-msgstr ""
-"Страница в основном предназначена для настройки параметров обслуживания "
-"сервера, а не веб-интерфейса."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "Full Web Server Settings"
-msgstr "Полные настройки web сервера"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Full real path to handler for Lua scripts"
-msgstr "Полный путь<br />к обработчику<br />скриптов Lua"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:18
-msgid "General Settings"
-msgstr "Основные настройки"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-msgid "HTTP listeners (address:port)"
-msgstr "Входящие HTTP<br />(адрес:порт)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:94
-msgid "HTTPS Certificate (DER Encoded)"
-msgstr "Сертификат HTTPS (кодировка DER)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:96
-msgid "HTTPS Private Key (DER Encoded)"
-msgstr "Приватный ключ HTTPS (кодировка DER)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "HTTPS listener (address:port)"
-msgstr "Входящие HTTPS<br />(адрес:порт)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid "Ignore private IPs on public interface"
-msgstr "Игнорировать приватные<br />IP-адреса на<br />публичном интерфейсе"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "Index page(s)"
-msgstr "Страница(ы) индекса"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid ""
-"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
-"usr/bin/php-cgi')"
-msgstr ""
-"Обработчик для сопоставления расширений файлов ('суффикс=обработчик', "
-"например: '.php=/usr/bin/php-cgi')."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:214
-msgid "Length of key in bits"
-msgstr "Длина ключа в битах"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:227
-msgid "Location"
-msgstr "Расположение"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:197
-msgid "Maximum number of connections"
-msgstr "Максимальное количество соединений"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:201
-msgid "Maximum number of script requests"
-msgstr "Максимальное количество запросов скрипта"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:177
-msgid "Maximum wait time for Lua, CGI, or ubus execution"
-msgstr "Максимальное время ожидания для Lua, CGI,<br />или выполнение ubus"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:182
-msgid "Maximum wait time for network activity"
-msgstr "Максимальное время ожидания сетевой активности"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:166
-msgid "Override path for ubus socket"
-msgstr "Переопределить<br />путь для сокета ubus"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "Path prefix for CGI scripts"
-msgstr "Префикс пути<br />для CGI скриптов"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid ""
-"Prevent access from private (RFC1918) IPs on an interface if it has an "
-"public IP address"
-msgstr ""
-"Запретить доступ к приватному интерфейсу IPS (RFC1918), если он имеет "
-"публичный IP-адрес."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:138
-msgid "Realm for Basic Auth"
-msgstr "Хост для аутентификации"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:86
-msgid "Redirect all HTTP to HTTPS"
-msgstr "Перенаправление всех<br />HTTP на HTTPS"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:109
-msgid "Remove configuration for certificate and key"
-msgstr "Удалить настройки для сертификата и ключа"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:98
-msgid "Remove old certificate and key"
-msgstr "Удалить старый сертификат и ключ"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "Server Hostname"
-msgstr "Имя хоста"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid ""
-"Settings which are either rarely needed or which affect serving the WebUI"
-msgstr ""
-"Страница содержит параметры, которые редко используются или влияют на "
-"обслуживание веб-интерфейса."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:224
-msgid "State"
-msgstr "Указывать"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:192
-msgid "TCP Keepalive"
-msgstr "TCP активность"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:110
-msgid "This permanently deletes the cert, key, and configuration to use same."
-msgstr "Полное удаление сертификата, ключа и настроек вкладки меню cнизу."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:210
-msgid "Valid for # of Days"
-msgstr "Действителен в течение указанного кол-ва дней"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid ""
-"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
-"with '/'"
-msgstr ""
-"Виртуальный URL-адрес или CGI скрипт для отображения статуса '404 не "
-"найдено'. Надо начинать с '/'."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:156
-msgid "Virtual path prefix for Lua scripts"
-msgstr "Виртуальный путь<br />префикса<br />для скриптов Lua"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "Virtual path prefix for ubus via JSON-RPC integration"
-msgstr "Виртуальный префикс<br />пути для ubus через<br />интеграцию JSON-RPC"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Will not use HTTP authentication if not present"
-msgstr ""
-"Например, учетные данные для основной авторизации.<br />Не будет "
-"использоваться проверка подлинности HTTP, если она отсутствует."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "a.k.a CommonName"
-msgstr "Имя хоста сервера, так называемое - 'CommonName'."
-
-#: applications/luci-app-uhttpd/luasrc/controller/uhttpd/uhttpd.lua:13
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:6
-msgid "uHTTPd"
-msgstr "uHTTPd"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:205
-msgid "uHTTPd Self-signed Certificate Parameters"
-msgstr "Параметры самозаверяющего сертификата uHTTPd"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:99
-msgid ""
-"uHTTPd will generate a new self-signed certificate using the configuration "
-"shown below."
-msgstr ""
-"uHTTPd создаст самозаверяющий сертификат используя вкладку расположенную "
-"ниже."
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "ubus integration is disabled if not present"
-msgstr "Интеграция с ubus будет отключена, если она отсутствует."
diff --git a/package/luci/applications/luci-app-uhttpd/po/templates/uhttpd.pot b/package/luci/applications/luci-app-uhttpd/po/templates/uhttpd.pot
deleted file mode 100644 (file)
index 627d079..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-msgid ""
-msgstr "Content-Type: text/plain; charset=UTF-8"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid ""
-"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid "404 Error"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:7
-msgid "A lightweight single-threaded HTTP(S) server"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid "Advanced Settings"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid "Aliases"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:149
-msgid "Base directory for files to be served"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "Bind to specific interface:port (by specifying interface address"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid "CGI filetype handler"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "CGI is disabled if not present."
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Config file (e.g. for credentials for Basic Auth)"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:187
-msgid "Connection reuse"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:221
-msgid "Country"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:173
-msgid "Disable JSON-RPC authorization via ubus session API"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:129
-msgid "Do not follow symlinks outside document root"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:132
-msgid "Do not generate directory listings."
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:148
-msgid "Document root"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "E.g specify with index.html and index.php when using PHP"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Embedded Lua interpreter is disabled if not present."
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:169
-msgid "Enable JSON-RPC Cross-Origin Resource Support"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "For settings primarily geared to serving more than the web UI"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "Full Web Server Settings"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Full real path to handler for Lua scripts"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:18
-msgid "General Settings"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-msgid "HTTP listeners (address:port)"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:94
-msgid "HTTPS Certificate (DER Encoded)"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:96
-msgid "HTTPS Private Key (DER Encoded)"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "HTTPS listener (address:port)"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid "Ignore private IPs on public interface"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "Index page(s)"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid ""
-"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
-"usr/bin/php-cgi')"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:214
-msgid "Length of key in bits"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:227
-msgid "Location"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:197
-msgid "Maximum number of connections"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:201
-msgid "Maximum number of script requests"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:177
-msgid "Maximum wait time for Lua, CGI, or ubus execution"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:182
-msgid "Maximum wait time for network activity"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:166
-msgid "Override path for ubus socket"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "Path prefix for CGI scripts"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid ""
-"Prevent access from private (RFC1918) IPs on an interface if it has an "
-"public IP address"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:138
-msgid "Realm for Basic Auth"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:86
-msgid "Redirect all HTTP to HTTPS"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:109
-msgid "Remove configuration for certificate and key"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:98
-msgid "Remove old certificate and key"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "Server Hostname"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid ""
-"Settings which are either rarely needed or which affect serving the WebUI"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:224
-msgid "State"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:192
-msgid "TCP Keepalive"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:110
-msgid "This permanently deletes the cert, key, and configuration to use same."
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:210
-msgid "Valid for # of Days"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid ""
-"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
-"with '/'"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:156
-msgid "Virtual path prefix for Lua scripts"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "Virtual path prefix for ubus via JSON-RPC integration"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Will not use HTTP authentication if not present"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "a.k.a CommonName"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/controller/uhttpd/uhttpd.lua:13
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:6
-msgid "uHTTPd"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:205
-msgid "uHTTPd Self-signed Certificate Parameters"
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:99
-msgid ""
-"uHTTPd will generate a new self-signed certificate using the configuration "
-"shown below."
-msgstr ""
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "ubus integration is disabled if not present"
-msgstr ""
diff --git a/package/luci/applications/luci-app-uhttpd/po/zh-cn/uhttpd.po b/package/luci/applications/luci-app-uhttpd/po/zh-cn/uhttpd.po
deleted file mode 100644 (file)
index cefc3aa..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-#
-# Yangfl <mmyangfl@gmail.com>, 2018.
-#
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
-"Language-Team:  <debian-l10n-chinese@lists.debian.org>\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"PO-Revision-Date: 2018-08-17 17:20+0800\n"
-"X-Generator: Gtranslator 2.91.7\n"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid ""
-"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
-msgstr ""
-"(/old/path=/new/path)或(只写 /old/path,将变成 /cgi-prefix/old/path)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid "404 Error"
-msgstr "404 错误"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:7
-msgid "A lightweight single-threaded HTTP(S) server"
-msgstr "轻量级单线程 HTTP(S) 服务器"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid "Advanced Settings"
-msgstr "高级设置"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid "Aliases"
-msgstr "别名"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:149
-msgid "Base directory for files to be served"
-msgstr "基本文件提供目录"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "Bind to specific interface:port (by specifying interface address"
-msgstr "绑定到特定接口:端口(通过指定接口地址"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid "CGI filetype handler"
-msgstr "CGI 文件类型处理程序"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "CGI is disabled if not present."
-msgstr "如果不存在,CGI 将被禁用。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Config file (e.g. for credentials for Basic Auth)"
-msgstr "配置文件(例如,基本身份验证的凭据)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:187
-msgid "Connection reuse"
-msgstr "连接重用"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:221
-msgid "Country"
-msgstr "国家"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:173
-msgid "Disable JSON-RPC authorization via ubus session API"
-msgstr "通过 ubus 会话 API 禁用 JSON-RPC 授权"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:129
-msgid "Do not follow symlinks outside document root"
-msgstr "不要跟随符号链接到文档根目录之外"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:132
-msgid "Do not generate directory listings."
-msgstr "不要生成目录列表。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:148
-msgid "Document root"
-msgstr "文档根"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "E.g specify with index.html and index.php when using PHP"
-msgstr "例如,使用 PHP 时可指定为 index.html 和 index.php"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Embedded Lua interpreter is disabled if not present."
-msgstr "如果不存在,嵌入式 Lua 解释器将被禁用。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:169
-msgid "Enable JSON-RPC Cross-Origin Resource Support"
-msgstr "启用 JSON-RPC 跨域资源支持"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "For settings primarily geared to serving more than the web UI"
-msgstr "适用于主要服务于 Web UI 的设置"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "Full Web Server Settings"
-msgstr "完整的 Web 服务器设置"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Full real path to handler for Lua scripts"
-msgstr "Lua 脚本处理程序的完整真实路径"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:18
-msgid "General Settings"
-msgstr "常规设置"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-msgid "HTTP listeners (address:port)"
-msgstr "HTTP 监听(地址:端口)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:94
-msgid "HTTPS Certificate (DER Encoded)"
-msgstr "HTTPS 证书(DER 编码)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:96
-msgid "HTTPS Private Key (DER Encoded)"
-msgstr "HTTPS 私钥(DER 编码)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "HTTPS listener (address:port)"
-msgstr "HTTPS 监听(地址:端口)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid "Ignore private IPs on public interface"
-msgstr "忽略公共接口上的私有 IP"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "Index page(s)"
-msgstr "索引页面"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid ""
-"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
-"usr/bin/php-cgi')"
-msgstr "文件结尾关联的解释器(“后缀=处理程序”,例如“.php=/usr/bin/php-cgi”)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:214
-msgid "Length of key in bits"
-msgstr "密钥长度"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:227
-msgid "Location"
-msgstr "位置"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:197
-msgid "Maximum number of connections"
-msgstr "最大连接数"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:201
-msgid "Maximum number of script requests"
-msgstr "最大脚本请求数"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:177
-msgid "Maximum wait time for Lua, CGI, or ubus execution"
-msgstr "Lua、CGI 或 ubus 执行的最长等待时间"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:182
-msgid "Maximum wait time for network activity"
-msgstr "网络活动的最长等待时间"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:166
-msgid "Override path for ubus socket"
-msgstr "覆盖 ubus 套接字路径"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "Path prefix for CGI scripts"
-msgstr "CGI 脚本的路径前缀"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid ""
-"Prevent access from private (RFC1918) IPs on an interface if it has an "
-"public IP address"
-msgstr "如果接口上具有公有 IP 地址,则阻止从接口上的私有(RFC1918)IP 地址访问"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:138
-msgid "Realm for Basic Auth"
-msgstr "基本身份验证领域"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:86
-msgid "Redirect all HTTP to HTTPS"
-msgstr "将所有 HTTP 重定向到 HTTPS"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:109
-msgid "Remove configuration for certificate and key"
-msgstr "删除证书和密钥的配置"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:98
-msgid "Remove old certificate and key"
-msgstr "删除旧证书和密钥"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "Server Hostname"
-msgstr "服务器主机名"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid ""
-"Settings which are either rarely needed or which affect serving the WebUI"
-msgstr "很少需要或影响 WebUI 服务的设置"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:224
-msgid "State"
-msgstr "州"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:192
-msgid "TCP Keepalive"
-msgstr "TCP Keepalive"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:110
-msgid "This permanently deletes the cert, key, and configuration to use same."
-msgstr "这将永久删除证书、密钥及使用它的配置。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:210
-msgid "Valid for # of Days"
-msgstr "有效天数"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid ""
-"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
-"with '/'"
-msgstr "要在状态“404 Not Found”上显示的虚拟 URL 或 CGI 脚本。必须以“/”开头"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:156
-msgid "Virtual path prefix for Lua scripts"
-msgstr "Lua 脚本的虚拟路径前缀"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "Virtual path prefix for ubus via JSON-RPC integration"
-msgstr "ubus 通过 JSON-RPC 集成的虚拟路径前缀"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Will not use HTTP authentication if not present"
-msgstr "如果不存在,将不使用 HTTP 身份验证"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "a.k.a CommonName"
-msgstr "又名 CommonName"
-
-#: applications/luci-app-uhttpd/luasrc/controller/uhttpd/uhttpd.lua:13
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:6
-msgid "uHTTPd"
-msgstr "uHTTPd"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:205
-msgid "uHTTPd Self-signed Certificate Parameters"
-msgstr "uHTTPd 自签名证书参数"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:99
-msgid ""
-"uHTTPd will generate a new self-signed certificate using the configuration "
-"shown below."
-msgstr "uHTTPd 将使用下面显示的配置生成新的自签名证书。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "ubus integration is disabled if not present"
-msgstr "如果不存在,则禁用 ubus 集成"
diff --git a/package/luci/applications/luci-app-uhttpd/po/zh-tw/uhttpd.po b/package/luci/applications/luci-app-uhttpd/po/zh-tw/uhttpd.po
deleted file mode 100644 (file)
index 2e2e916..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-#
-# Yangfl <mmyangfl@gmail.com>, 2018.
-#
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
-"Language-Team:  <debian-l10n-chinese@lists.debian.org>\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"PO-Revision-Date: 2018-08-17 17:21+0800\n"
-"X-Generator: Gtranslator 2.91.7\n"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid ""
-"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
-msgstr ""
-"(/old/path=/new/path)或(只寫 /old/path,將變成 /cgi-prefix/old/path)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid "404 Error"
-msgstr "404 錯誤"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:7
-msgid "A lightweight single-threaded HTTP(S) server"
-msgstr "輕量級單執行緒 HTTP(S) 伺服器"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid "Advanced Settings"
-msgstr "高階設定"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:135
-msgid "Aliases"
-msgstr "別名"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:149
-msgid "Base directory for files to be served"
-msgstr "基本檔案提供目錄"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "Bind to specific interface:port (by specifying interface address"
-msgstr "繫結到特定介面:埠(通過指定介面位址"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid "CGI filetype handler"
-msgstr "CGI 檔案型別處理程式"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "CGI is disabled if not present."
-msgstr "如果不存在,CGI 將被禁用。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Config file (e.g. for credentials for Basic Auth)"
-msgstr "配置檔案(例如,基本身份驗證的憑據)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:187
-msgid "Connection reuse"
-msgstr "連線重用"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:221
-msgid "Country"
-msgstr "國家"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:173
-msgid "Disable JSON-RPC authorization via ubus session API"
-msgstr "通過 ubus 會話 API 禁用 JSON-RPC 授權"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:129
-msgid "Do not follow symlinks outside document root"
-msgstr "不要跟隨符號連結到文件根目錄之外"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:132
-msgid "Do not generate directory listings."
-msgstr "不要生成目錄列表。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:148
-msgid "Document root"
-msgstr "文件根"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "E.g specify with index.html and index.php when using PHP"
-msgstr "例如,使用 PHP 時可指定為 index.html 和 index.php"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Embedded Lua interpreter is disabled if not present."
-msgstr "如果不存在,嵌入式 Lua 直譯器將被禁用。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:169
-msgid "Enable JSON-RPC Cross-Origin Resource Support"
-msgstr "啟用 JSON-RPC 跨域資源支援"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "For settings primarily geared to serving more than the web UI"
-msgstr "適用於主要服務於 Web UI 的設定"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:19
-msgid "Full Web Server Settings"
-msgstr "完整的 Web 伺服器設定"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:160
-msgid "Full real path to handler for Lua scripts"
-msgstr "Lua 指令碼處理程式的完整真實路徑"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:18
-msgid "General Settings"
-msgstr "常規設定"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:22
-msgid "HTTP listeners (address:port)"
-msgstr "HTTP 監聽(位址:埠)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:94
-msgid "HTTPS Certificate (DER Encoded)"
-msgstr "HTTPS 證書(DER 編碼)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:96
-msgid "HTTPS Private Key (DER Encoded)"
-msgstr "HTTPS 私鑰(DER 編碼)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:50
-msgid "HTTPS listener (address:port)"
-msgstr "HTTPS 監聽(位址:埠)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid "Ignore private IPs on public interface"
-msgstr "忽略公共介面上的私有 IP"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:122
-msgid "Index page(s)"
-msgstr "索引頁面"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:126
-msgid ""
-"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
-"usr/bin/php-cgi')"
-msgstr "檔案結尾關聯的直譯器(“字尾=處理程式”,例如“.php=/usr/bin/php-cgi”)"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:214
-msgid "Length of key in bits"
-msgstr "金鑰長度"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:227
-msgid "Location"
-msgstr "位置"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:197
-msgid "Maximum number of connections"
-msgstr "最大連線數"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:201
-msgid "Maximum number of script requests"
-msgstr "最大指令碼請求數"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:177
-msgid "Maximum wait time for Lua, CGI, or ubus execution"
-msgstr "Lua、CGI 或 ubus 執行的最長等待時間"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:182
-msgid "Maximum wait time for network activity"
-msgstr "網路活動的最長等待時間"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:166
-msgid "Override path for ubus socket"
-msgstr "覆蓋 ubus 套接字路徑"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:153
-msgid "Path prefix for CGI scripts"
-msgstr "CGI 指令碼的路徑字首"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:90
-msgid ""
-"Prevent access from private (RFC1918) IPs on an interface if it has an "
-"public IP address"
-msgstr "如果介面上具有公有 IP 位址,則阻止從介面上的私有(RFC1918)IP 位址訪問"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:138
-msgid "Realm for Basic Auth"
-msgstr "基本身份驗證領域"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:86
-msgid "Redirect all HTTP to HTTPS"
-msgstr "將所有 HTTP 重定向到 HTTPS"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:109
-msgid "Remove configuration for certificate and key"
-msgstr "刪除證書和金鑰的配置"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:98
-msgid "Remove old certificate and key"
-msgstr "刪除舊證書和金鑰"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "Server Hostname"
-msgstr "伺服器主機名"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:20
-msgid ""
-"Settings which are either rarely needed or which affect serving the WebUI"
-msgstr "很少需要或影響 WebUI 服務的設定"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:224
-msgid "State"
-msgstr "州"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:192
-msgid "TCP Keepalive"
-msgstr "TCP Keepalive"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:110
-msgid "This permanently deletes the cert, key, and configuration to use same."
-msgstr "這將永久刪除證書、金鑰及使用它的配置。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:210
-msgid "Valid for # of Days"
-msgstr "有效天數"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:145
-msgid ""
-"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
-"with '/'"
-msgstr "要在狀態“404 Not Found”上顯示的虛擬 URL 或 CGI 指令碼。必須以“/”開頭"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:156
-msgid "Virtual path prefix for Lua scripts"
-msgstr "Lua 指令碼的虛擬路徑字首"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "Virtual path prefix for ubus via JSON-RPC integration"
-msgstr "ubus 通過 JSON-RPC 整合的虛擬路徑字首"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:142
-msgid "Will not use HTTP authentication if not present"
-msgstr "如果不存在,將不使用 HTTP 身份驗證"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:218
-msgid "a.k.a CommonName"
-msgstr "又名 CommonName"
-
-#: applications/luci-app-uhttpd/luasrc/controller/uhttpd/uhttpd.lua:13
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:6
-msgid "uHTTPd"
-msgstr "uHTTPd"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:205
-msgid "uHTTPd Self-signed Certificate Parameters"
-msgstr "uHTTPd 自簽名證書引數"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:99
-msgid ""
-"uHTTPd will generate a new self-signed certificate using the configuration "
-"shown below."
-msgstr "uHTTPd 將使用下面顯示的配置生成新的自簽名證書。"
-
-#: applications/luci-app-uhttpd/luasrc/model/cbi/uhttpd/uhttpd.lua:163
-msgid "ubus integration is disabled if not present"
-msgstr "如果不存在,則禁用 ubus 整合"
diff --git a/package/luci/build/check-controllers.sh b/package/luci/build/check-controllers.sh
deleted file mode 100755 (executable)
index 47f66ea..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env bash
-
-[ -d build ] || {
-       echo "Execute as ./build/check-controllers.sh" >&2
-       exit 1
-}
-
-find . -type f -name '*.lua' -path '*/controller/*' | while read controller; do
-       controller="${controller#./}"
-       base="${controller%%/controller/*}"
-
-       sed -rne 's#^.*\b(cbi|form)\([[:space:]]*("([^"]*)"|\047([^\047]*)\047)[[:space:]]*[,)].*$#\1 \3\4#gp' "$controller" | while read type map; do
-               model="$base/model/cbi/$map.lua"
-               package="${controller##*/controller/}"; package="${package%.lua}"; package="luci.controller.${package//\//.}"
-
-               if ! grep -sqE '\bmodule[[:space:]]*\(?[[:space:]]*("|\047|\[=*\[)'"$package" "$controller"; then
-                       echo "'$controller' does not contain the expected\n\t'module(\"$package\", ...)' line.\n"
-               fi
-
-               grep -sqE '\b(Form|SimpleForm)[[:space:]]*\(' "$model" && ! grep -sqE '\bMap[[:space:]]*\(' "$model" && is_form=1 || is_form=0
-
-               if [ ! -f "$model" ]; then
-                       echo -e "'$controller' references $type('$map')\n\tbut expected file '$model' does not exist.\n"
-               elif [ $type = "cbi" -a $is_form = 1 ]; then
-                       echo -e "'$controller' references $type('$map')\n\tbut '$model' looks like a Form or SimpleForm.\n"
-               elif [ $type = "form" -a $is_form = 0 ]; then
-                       echo -e "'$controller' references $type('$map')\n\tbut '$model' does not look like a Form or SimpleForm.\n"
-               fi
-       done
-done
diff --git a/package/luci/build/i18n-add-language.sh b/package/luci/build/i18n-add-language.sh
deleted file mode 100755 (executable)
index 24203c2..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env bash
-
-LANG=$1
-
-case "$LANG" in
-       [a-z][a-z]|[a-z][a-z]-[a-z][a-z]) : ;;
-       *)
-               echo "Usage: $0 <ISO_CODE>\n" >&2
-               exit 1
-       ;;
-esac
-
-ADDED=0
-
-for podir in ./*/*/po; do
-       [ -d "$podir/templates" ] || continue
-
-       mkdir "$podir/$LANG"
-       for catalog in $(cd "$podir/templates"; echo *.pot); do
-               if [ -f "$podir/templates/$catalog" -a ! -f "$podir/$LANG/${catalog%.pot}.po" ]; then
-                       msginit --no-translator -l "$LANG" -i "$podir/templates/$catalog" -o "$podir/$LANG/${catalog%.pot}.po"
-                       git add "$podir/$LANG/${catalog%.pot}.po"
-                       ADDED=$((ADDED + 1))
-               fi
-       done
-done
-
-if [ $ADDED -gt 0 ]; then
-       echo ""
-       echo "Added $ADDED new translation catalogs for language '$LANG'."
-       echo "Please also edit 'luci.mk' and add"
-       echo ""
-       echo "  LUCI_LANG.$LANG=Native Language Name"
-       echo ""
-       echo "to properly package the translation files."
-       echo ""
-fi
diff --git a/package/luci/build/i18n-init.sh b/package/luci/build/i18n-init.sh
deleted file mode 100755 (executable)
index b20fbc3..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-PATTERN=$1
-SCM=
-
-[ -d .svn ] && SCM="svn"
-git=$( which git 2>/dev/null )
-[ "$git" ] && "$git" status >/dev/null && SCM="git"
-
-[ -z "$SCM" ] && {
-       echo "Unsupported SCM tool" >&2
-       exit 1
-}
-
-[ -z "$PATTERN" ] && PATTERN="*.pot"
-
-for lang in $(cd po; echo ?? ??_??); do
-       for file in $(cd po/templates; echo $PATTERN); do
-               if [ -f po/templates/$file -a ! -f "po/$lang/${file%.pot}.po" ]; then
-                       msginit --no-translator -l "$lang" -i "po/templates/$file" -o "po/$lang/${file%.pot}.po"
-                       $SCM add "po/$lang/${file%.pot}.po"
-               fi
-       done
-done
diff --git a/package/luci/build/i18n-po2lua.pl b/package/luci/build/i18n-po2lua.pl
deleted file mode 100755 (executable)
index 5129055..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/perl
-
-@ARGV == 2 || die "Usage: $0 <source-dir> <dest-dir>\n";
-
-my $source_dir  = shift @ARGV;
-my $target_dir  = shift @ARGV;
-
-if( ! -d $target_dir )
-{
-       system('mkdir', '-p', $target_dir);
-}
-
-if( open F, "find $source_dir -type f -name '*.po' |" )
-{
-       while( chomp( my $file = readline F ) )
-       {
-               my ( $lang, $basename ) = $file =~ m{.+/(\w+)/([^/]+)\.po$};
-               $lang = lc $lang;
-               $lang =~ s/_/-/g;
-
-               printf "Generating %-40s ", "$target_dir/$basename.$lang.lmo";
-               system("./build/po2lmo", $file, "$target_dir/$basename.$lang.lmo");
-               print ( -f "$target_dir/$basename.$lang.lmo" ? "done\n" : "empty\n" );
-       }
-
-       close F;
-}
diff --git a/package/luci/build/i18n-scan.pl b/package/luci/build/i18n-scan.pl
deleted file mode 100755 (executable)
index f47fc35..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-use Text::Balanced qw(extract_bracketed extract_delimited extract_tagged);
-use POSIX;
-
-POSIX::setlocale(POSIX::LC_ALL, "C");
-
-@ARGV >= 1 || die "Usage: $0 <source directory>\n";
-
-
-my %stringtable;
-
-sub dec_lua_str
-{
-       my $s = shift;
-       $s =~ s/[\s\n]+/ /g;
-       $s =~ s/\\n/\n/g;
-       $s =~ s/\\t/\t/g;
-       $s =~ s/\\(.)/$1/g;
-       $s =~ s/^ //;
-       $s =~ s/ $//;
-       return $s;
-}
-
-sub dec_tpl_str
-{
-       my $s = shift;
-       $s =~ s/-$//;
-       $s =~ s/[\s\n]+/ /g;
-       $s =~ s/^ //;
-       $s =~ s/ $//;
-       $s =~ s/\\/\\\\/g;
-       return $s;
-}
-
-
-if( open F, "find @ARGV -type f '(' -name '*.htm' -o -name '*.lua' -o -name '*.js' ')' | sort |" )
-{
-       while( defined( my $file = readline F ) )
-       {
-               chomp $file;
-
-               if( open S, "< $file" )
-               {
-                       local $/ = undef;
-                       my $raw = <S>;
-                       close S;
-
-
-                       my $text = $raw;
-                       my $line = 1;
-
-                       while( $text =~ s/ ^ (.*?) (?:translate|translatef|i18n|_) ([\n\s]*) \( /(/sgx )
-                       {
-                               my ($prefix, $suffix) = ($1, $2);
-
-                               ( my $code, $text ) = extract_bracketed($text, q{('")});
-
-                               $line += () = $prefix =~ /\n/g;
-
-                               my $position = "$file:$line";
-
-                               $line += () = $suffix =~ /\n/g;
-                               $line += () = $code   =~ /\n/g;
-
-                               $code =~ s/\\\n/ /g;
-                               $code =~ s/^\([\n\s]*//;
-                               $code =~ s/[\n\s]*\)$//;
-
-                               my $res = "";
-                               my $sub = "";
-
-                               if( $code =~ /^['"]/ )
-                               {
-                                       while( defined $sub )
-                                       {
-                                               ( $sub, $code ) = extract_delimited($code, q{'"}, q{\s*(?:\.\.\s*)?});
-
-                                               if( defined $sub && length($sub) > 2 )
-                                               {
-                                                       $res .= substr $sub, 1, length($sub) - 2;
-                                               }
-                                               else
-                                               {
-                                                       undef $sub;
-                                               }
-                                       }
-                               }
-                               elsif( $code =~ /^(\[=*\[)/ )
-                               {
-                                       my $stag = quotemeta $1;
-                                       my $etag = $stag;
-                                          $etag =~ s/\[/]/g;
-
-                                       ( $res ) = extract_tagged($code, $stag, $etag);
-
-                                       $res =~ s/^$stag//;
-                                       $res =~ s/$etag$//;
-                               }
-
-                               $res = dec_lua_str($res);
-
-                               if ($res) {
-                                       $stringtable{$res} ||= [ ];
-                                       push @{$stringtable{$res}}, $position;
-                               }
-                       }
-
-
-                       $text = $raw;
-                       $line = 1;
-
-                       while( $text =~ s/ ^ (.*?) <% -? [:_] /<%/sgx )
-                       {
-                               $line += () = $1 =~ /\n/g;
-
-                               ( my $code, $text ) = extract_tagged($text, '<%', '%>');
-
-                               if( defined $code )
-                               {
-                                       my $position = "$file:$line";
-
-                                       $line += () = $code =~ /\n/g;
-
-                                       $code = dec_tpl_str(substr $code, 2, length($code) - 4);
-
-                                       $stringtable{$code} ||= [];
-                                       push @{$stringtable{$code}}, $position;
-                               }
-                       }
-               }
-       }
-
-       close F;
-}
-
-
-if( open C, "| msgcat -" )
-{
-       printf C "msgid \"\"\nmsgstr \"Content-Type: text/plain; charset=UTF-8\"\n\n";
-
-       foreach my $key ( sort keys %stringtable )
-       {
-               if( length $key )
-               {
-                       my @positions = @{$stringtable{$key}};
-
-                       $key =~ s/\\/\\\\/g;
-                       $key =~ s/\n/\\n/g;
-                       $key =~ s/\t/\\t/g;
-                       $key =~ s/"/\\"/g;
-
-                       printf C "#: %s\nmsgid \"%s\"\nmsgstr \"\"\n\n",
-                               join(' ', @positions), $key;
-               }
-       }
-
-       close C;
-}
diff --git a/package/luci/build/i18n-sync.sh b/package/luci/build/i18n-sync.sh
deleted file mode 100755 (executable)
index ad8c46c..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-
-[ -d ./build ] || {
-       echo "Execute as ./build/i18n-sync.sh" >&2
-       exit 1
-}
-
-./build/mkbasepot.sh
-
-find . -name '*.pot' -and -not -name base.pot | \
-       while read path; do
-               dir="${path%/po/templates/*}"
-               echo -n "Updating ${path#./} ... "
-               ./build/i18n-scan.pl "$dir" > "$path"
-               echo "done"
-       done
-
-./build/i18n-update.pl
diff --git a/package/luci/build/i18n-update.pl b/package/luci/build/i18n-update.pl
deleted file mode 100755 (executable)
index c82b4fe..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/perl
-
-@ARGV <= 2 || die "Usage: $0 [<po directory>] [<file pattern>]\n";
-
-my $source  = shift @ARGV;
-my $pattern = shift @ARGV || '*.po';
-
-sub read_header
-{
-       my $file = shift || return;
-       local $/;
-
-       open P, "< $file" || die "open(): $!";
-       my $data = readline P;
-       close P;
-
-       $data =~ /
-               ^ (
-               msgid \s "" \n
-               msgstr \s "" \n
-               (?: " [^\n]+ " \n )+
-               \n )
-       /mx;
-
-       return $1;
-}
-
-sub write_header
-{
-       my $file = shift || return;
-       my $head = shift || return;
-       local $/;
-
-       open P, "< $file" || die "open(): $!";
-       my $data = readline P;
-       close P;
-
-       $data =~ s/
-               ^ (
-               msgid \s "" \n
-               msgstr \s "" \n
-               (?: " [^\n]+ " \n )+
-               \n )
-       /$head/mx;
-
-       open P, "> $file" || die "open(): $!";
-       print P $data;
-       close P;
-}
-
-my @dirs;
-
-if( ! $source )
-{
-       @dirs = glob("./*/*/po/");
-}
-else
-{
-       @dirs = ( $source );
-}
-
-foreach my $dir (@dirs)
-{
-       if( open F, "find $dir -type f -name '$pattern' |" )
-       {
-               while( chomp( my $file = readline F ) )
-               {
-                       my ( $basename ) = $file =~ m{.+/([^/]+)\.po$};
-               
-                       if( -f "$dir/templates/$basename.pot" )
-                       {
-                               my $head = read_header($file);
-
-                               printf "Updating %-40s", $file;
-                               system("msgmerge", "-U", "-N", $file, "$dir/templates/$basename.pot");
-
-                               write_header($file, $head);
-                       }
-               }
-
-               close F;
-       }
-}
diff --git a/package/luci/build/luadoc/doc.lua b/package/luci/build/luadoc/doc.lua
deleted file mode 100755 (executable)
index 383dde2..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/usr/bin/env lua
--------------------------------------------------------------------------------
--- LuaDoc launcher.
--- @release $Id: luadoc.lua.in,v 1.1 2008/02/17 06:42:51 jasonsantos Exp $
--------------------------------------------------------------------------------
-
---local source = debug.getinfo(1).source or ""
---local mypath = source:match("@(.+)/[^/]+")
-
---package.path = package.path .. ";" .. mypath .. "/?.lua;" .. mypath .. "/?/init.lua"
-
-require "luadoc.init"
-
--------------------------------------------------------------------------------
--- Print version number.
-
-local function print_version ()
-       print (string.format("%s\n%s\n%s", 
-               luadoc._VERSION, 
-               luadoc._DESCRIPTION, 
-               luadoc._COPYRIGHT))
-end
-
--------------------------------------------------------------------------------
--- Print usage message.
-
-local function print_help ()
-       print ("Usage: "..arg[0]..[[ [options|files]
-Generate documentation from files. Available options are:
-  -d path                      output directory path
-  -t path                      template directory path
-  -h, --help                   print this help and exit
-      --noindexpage            do not generate global index page
-      --nofiles                do not generate documentation for files
-      --nomodules              do not generate documentation for modules
-      --doclet doclet_module   doclet module to generate output
-      --taglet taglet_module   taglet module to parse input code
-  -q, --quiet                  suppress all normal output
-  -v, --version                print version information]])
-end
-
-local function off_messages (arg, i, options)
-       options.verbose = nil
-end
-
--------------------------------------------------------------------------------
--- Process options. TODO: use getopts.
--- @class table
--- @name OPTIONS
-
-local OPTIONS = {
-       d = function (arg, i, options)
-               local dir = arg[i+1]
-               if string.sub (dir, -2) ~= "/" then
-                       dir = dir..'/'
-               end
-               options.output_dir = dir
-               return 1
-       end,
-       t = function (arg, i, options)
-               local dir = arg[i+1]
-               if string.sub (dir, -2) ~= "/" then
-                       dir = dir..'/'
-               end
-               options.template_dir = dir
-               return 1
-       end,
-       h = print_help,
-       help = print_help,
-       q = off_messages,
-       quiet = off_messages,
-       v = print_version,
-       version = print_version,
-       doclet = function (arg, i, options)
-               options.doclet = arg[i+1]
-               return 1
-       end,
-       taglet = function (arg, i, options)
-               options.taglet = arg[i+1]
-               return 1
-       end,
-}
-
--------------------------------------------------------------------------------
-
-local function process_options (arg)
-       local files = {}
-       local options = require "luadoc.config"
-       local i = 1
-       while i <= #arg do
-               local argi = arg[i]
-               if string.sub (argi, 1, 1) ~= '-' then
-                       table.insert (files, argi)
-               else
-                       local opt = string.sub (argi, 2)
-                       if string.sub (opt, 1, 1) == '-' then
-                               opt = string.gsub (opt, "%-", "")
-                       end
-                       if OPTIONS[opt] then
-                               if OPTIONS[opt] (arg, i, options) then
-                                       i = i + 1
-                               end
-                       else
-                               options[opt] = 1
-                       end
-               end
-               i = i+1
-       end
-       return files, options
-end 
-
--------------------------------------------------------------------------------
--- Main function. Process command-line parameters and call luadoc processor.
-
-function main (arg)
-       -- Process options
-       local argc = #arg
-       if argc < 1 then
-               print_help ()
-               return
-       end
-       local files, options = process_options (arg)
-       return luadoc.main(files, options)
-end
-
-main(arg)
diff --git a/package/luci/build/luadoc/luadoc/config.lua b/package/luci/build/luadoc/luadoc/config.lua
deleted file mode 100644 (file)
index 319e1cb..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
--------------------------------------------------------------------------------
--- LuaDoc configuration file. This file contains the default options for 
--- luadoc operation. These options can be overridden by the command line tool
--- @see luadoc.print_help
--- @release $Id: config.lua,v 1.6 2007/04/18 14:28:39 tomas Exp $
--------------------------------------------------------------------------------
-
-module "luadoc.config"
-
--------------------------------------------------------------------------------
--- Default options
--- @class table
--- @name default_options
--- @field output_dir default output directory for generated documentation, used
--- by several doclets
--- @field taglet parser used to analyze source code input
--- @field doclet documentation generator
--- @field template_dir directory with documentation templates, used by the html
--- doclet
--- @field verbose command line tool configuration to output processing 
--- information
-
-local default_options = {
-       output_dir = "",
-       taglet = "luadoc.taglet.standard",
-       doclet = "luadoc.doclet.html",
-       -- TODO: find a way to define doclet specific options
-       template_dir = "luadoc/doclet/html/",
-       nomodules = false,
-       nofiles = false,
-       verbose = true,
-}
-
-return default_options
diff --git a/package/luci/build/luadoc/luadoc/doclet/debug.lua b/package/luci/build/luadoc/luadoc/doclet/debug.lua
deleted file mode 100644 (file)
index 0b75f84..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
------------------------------------------------------------------
--- LuaDoc debugging facilities.
--- @release $Id: debug.lua,v 1.3 2007/04/18 14:28:39 tomas Exp $
------------------------------------------------------------------
-
-module "luadoc.doclet.debug"
-
-function printline()
-       print(string.rep('-', 79))
-end
-
------------------------------------------------------------------
--- Print debug information about document
--- @param doc Table with the structured documentation.
-
-function start (doc)
-       print("Files:")
-       for _, filepath in ipairs(doc.files) do
-               print('\t', filepath)
-       end
-       printline()
-
-       print("Modules:")
-       for _, modulename in ipairs(doc.modules) do
-               print('\t', modulename)
-       end
-       printline()
-       
-       for i, v in pairs(doc.files) do
-               print('\t', i, v)
-       end
-       printline()
-       for i, v in pairs(doc.files[doc.files[1]]) do
-               print(i, v)
-       end
-       
-       printline()
-       for i, v in pairs(doc.files[doc.files[1]].doc[1]) do
-               print(i, v)
-       end
-       printline()
-       print("Params")
-       for i, v in pairs(doc.files[doc.files[1]].doc[1].param) do
-               print(i, v)
-       end
-end
diff --git a/package/luci/build/luadoc/luadoc/doclet/formatter.lua b/package/luci/build/luadoc/luadoc/doclet/formatter.lua
deleted file mode 100644 (file)
index 2d72538..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
--------------------------------------------------------------------------------
--- Doclet to format source code according to LuaDoc standard tags. This doclet
--- (re)write .lua files adding missing standard tags. Texts are formatted to
--- 80 columns and function parameters are added based on code analysis.
---
--- @release $Id: formatter.lua,v 1.5 2007/04/18 14:28:39 tomas Exp $
--------------------------------------------------------------------------------
-
-local util = require "luadoc.util"
-local assert, ipairs, pairs, type = assert, ipairs, pairs, type
-local string = require"string"
-local table = require"table"
-
-module "luadoc.doclet.formatter"
-
-options = {
-       output_dir = "./",
-}
-
--------------------------------------------------------------------------------
--- Assembly the output filename for an input file.
--- TODO: change the name of this function
-function out_file (filename)
-       local h = filename
-       h = options.output_dir..h
-       return h
-end
-
--------------------------------------------------------------------------------
--- Generate a new lua file for each input lua file. If the user does not 
--- specify a different output directory input files will be rewritten.
--- @param doc documentation table
-
-function start (doc)
-       local todo = "<TODO>"
-       
-       -- Process files
-       for i, file_doc in ipairs(doc.files) do
-               -- assembly the filename
-               local filename = out_file(file_doc.name)
-               luadoc.logger:info(string.format("generating file `%s'", filename))
-
-               -- TODO: confirm file overwrite
-               local f = posix.open(filename, "w")
-               assert(f, string.format("could not open `%s' for writing", filename))
-
-               for _, block in ipairs(file_doc.doc) do
-
-                       -- write reorganized comments
-                       f:write(string.rep("-", 80).."\n")
-                       
-                       -- description
-                       f:write(util.comment(util.wrap(block.description, 77)))
-                       f:write("\n")
-                       
-                       if block.class == "function" then
-                               -- parameters
-                               table.foreachi(block.param, function (_, param_name)
-                                       f:write(util.comment(util.wrap(string.format("@param %s %s", param_name, block.param[param_name] or todo), 77)))
-                                       f:write("\n")
-                               end)
-                               
-                               -- return
-                               if type(block.ret) == "table" then
-                                       table.foreachi(block.ret, function (_, ret)
-                                               f:write(util.comment(util.wrap(string.format("@return %s", ret), 77)).."\n")
-                                       end)
-                               else
-                                       f:write(util.comment(util.wrap(string.format("@return %s", block.ret or todo), 77)).."\n")
-                               end
-                       end
-                       
-                       -- TODO: usage
-                       -- TODO: see
-
-                       -- write code
-                       for _, line in ipairs(block.code) do
-                               f:write(line.."\n")
-                       end
-               end
-               
-               f:close()
-       end
-end
diff --git a/package/luci/build/luadoc/luadoc/doclet/html.lua b/package/luci/build/luadoc/luadoc/doclet/html.lua
deleted file mode 100644 (file)
index e77fb74..0000000
+++ /dev/null
@@ -1,275 +0,0 @@
--------------------------------------------------------------------------------
--- Doclet that generates HTML output. This doclet generates a set of html files
--- based on a group of templates. The main templates are:
--- <ul>
--- <li>index.lp: index of modules and files;</li>
--- <li>file.lp: documentation for a lua file;</li>
--- <li>module.lp: documentation for a lua module;</li>
--- <li>function.lp: documentation for a lua function. This is a
--- sub-template used by the others.</li>
--- </ul>
---
--- @release $Id: html.lua,v 1.29 2007/12/21 17:50:48 tomas Exp $
--------------------------------------------------------------------------------
-
-local assert, getfenv, ipairs, loadstring, pairs, setfenv, tostring, tonumber, type = assert, getfenv, ipairs, loadstring, pairs, setfenv, tostring, tonumber, type
-local io = require"io"
-local posix = require "nixio.fs"
-local lp = require "luadoc.lp"
-local luadoc = require"luadoc"
-local package = package
-local string = require"string"
-local table = require"table"
-
-module "luadoc.doclet.html"
-
--------------------------------------------------------------------------------
--- Looks for a file `name' in given path. Removed from compat-5.1
--- @param path String with the path.
--- @param name String with the name to look for.
--- @return String with the complete path of the file found
---     or nil in case the file is not found.
-
-local function search (path, name)
-  for c in string.gfind(path, "[^;]+") do
-    c = string.gsub(c, "%?", name)
-    local f = io.open(c)
-    if f then   -- file exist?
-      f:close()
-      return c
-    end
-  end
-  return nil    -- file not found
-end
-
--------------------------------------------------------------------------------
--- Include the result of a lp template into the current stream.
-
-function include (template, env)
-       -- template_dir is relative to package.path
-       local templatepath = options.template_dir .. template
-
-       -- search using package.path (modified to search .lp instead of .lua
-       local search_path = string.gsub(package.path, "%.lua", "")
-       local templatepath = search(search_path, templatepath)
-       assert(templatepath, string.format("template `%s' not found", template))
-
-       env = env or {}
-       env.table = table
-       env.io = io
-       env.lp = lp
-       env.ipairs = ipairs
-       env.tonumber = tonumber
-       env.tostring = tostring
-       env.type = type
-       env.luadoc = luadoc
-       env.options = options
-
-       return lp.include(templatepath, env)
-end
-
--------------------------------------------------------------------------------
--- Returns a link to a html file, appending "../" to the link to make it right.
--- @param html Name of the html file to link to
--- @return link to the html file
-
-function link (html, from)
-       local h = html
-       from = from or ""
-       string.gsub(from, "/", function () h = "../" .. h end)
-       return h
-end
-
--------------------------------------------------------------------------------
--- Returns the name of the html file to be generated from a module.
--- Files with "lua" or "luadoc" extensions are replaced by "html" extension.
--- @param modulename Name of the module to be processed, may be a .lua file or
--- a .luadoc file.
--- @return name of the generated html file for the module
-
-function module_link (modulename, doc, from)
-       -- TODO: replace "." by "/" to create directories?
-       -- TODO: how to deal with module names with "/"?
-       assert(modulename)
-       assert(doc)
-       from = from or ""
-
-       if doc.modules[modulename] == nil then
---             logger:error(string.format("unresolved reference to module `%s'", modulename))
-               return
-       end
-
-       local href = "modules/" .. modulename .. ".html"
-       string.gsub(from, "/", function () href = "../" .. href end)
-       return href
-end
-
--------------------------------------------------------------------------------
--- Returns the name of the html file to be generated from a lua(doc) file.
--- Files with "lua" or "luadoc" extensions are replaced by "html" extension.
--- @param to Name of the file to be processed, may be a .lua file or
--- a .luadoc file.
--- @param from path of where am I, based on this we append ..'s to the
--- beginning of path
--- @return name of the generated html file
-
-function file_link (to, from)
-       assert(to)
-       from = from or ""
-
-       local href = to
-       href = string.gsub(href, "lua$", "html")
-       href = string.gsub(href, "luadoc$", "html")
-       href = "files/" .. href
-       string.gsub(from, "/", function () href = "../" .. href end)
-       return href
-end
-
--------------------------------------------------------------------------------
--- Returns a link to a function or to a table
--- @param fname name of the function or table to link to.
--- @param doc documentation table
--- @param kind String specying the kinf of element to link ("functions" or "tables").
-
-function link_to (fname, doc, module_doc, file_doc, from, kind)
-       assert(fname)
-       assert(doc)
-       from = from or ""
-       kind = kind or "functions"
-
-       if file_doc then
-               for _, func_name in pairs(file_doc[kind]) do
-                       if func_name == fname then
-                               return file_link(file_doc.name, from) .. "#" .. fname
-                       end
-               end
-       end
-
-       if module_doc and module_doc[kind] then
-               for func_name, tbl in pairs(module_doc[kind]) do
-                       if func_name == fname then
-                               return "#" .. fname
-                       end
-               end
-       end
-
-       local _, _, modulename, fname = string.find(fname, "^(.-)[%.%:]?([^%.%:]*)$")
-       assert(fname)
-
-       -- if fname does not specify a module, use the module_doc
-       if string.len(modulename) == 0 and module_doc then
-               modulename = module_doc.name
-       end
-
-       local module_doc = doc.modules[modulename]
-       if not module_doc then
---             logger:error(string.format("unresolved reference to function `%s': module `%s' not found", fname, modulename))
-               return
-       end
-
-       for _, func_name in pairs(module_doc[kind]) do
-               if func_name == fname then
-                       return module_link(modulename, doc, from) .. "#" .. fname
-               end
-       end
-
---     logger:error(string.format("unresolved reference to function `%s' of module `%s'", fname, modulename))
-end
-
--------------------------------------------------------------------------------
--- Make a link to a file, module or function
-
-function symbol_link (symbol, doc, module_doc, file_doc, from)
-       assert(symbol)
-       assert(doc)
-
-       local href =
---             file_link(symbol, from) or
-               module_link(symbol, doc, from) or
-               link_to(symbol, doc, module_doc, file_doc, from, "functions") or
-               link_to(symbol, doc, module_doc, file_doc, from, "tables")
-
-       if not href then
-               logger:error(string.format("unresolved reference to symbol `%s'", symbol))
-       end
-
-       return href or ""
-end
-
--------------------------------------------------------------------------------
--- Assembly the output filename for an input file.
--- TODO: change the name of this function
-function out_file (filename)
-       local h = filename
-       h = string.gsub(h, "lua$", "html")
-       h = string.gsub(h, "luadoc$", "html")
-       h = "files/" .. h
---     h = options.output_dir .. string.gsub (h, "^.-([%w_]+%.html)$", "%1")
-       h = options.output_dir .. h
-       return h
-end
-
--------------------------------------------------------------------------------
--- Assembly the output filename for a module.
--- TODO: change the name of this function
-function out_module (modulename)
-       local h = modulename .. ".html"
-       h = "modules/" .. h
-       h = options.output_dir .. h
-       return h
-end
-
------------------------------------------------------------------
--- Generate the output.
--- @param doc Table with the structured documentation.
-
-function start (doc)
-       -- Generate index file
-       if (#doc.files > 0 or #doc.modules > 0) and (not options.noindexpage) then
-               local filename = options.output_dir.."index.html"
-               logger:info(string.format("generating file `%s'", filename))
-               local f = posix.open(filename, "w")
-               assert(f, string.format("could not open `%s' for writing", filename))
-               io.output(f)
-               include("index.lp", { doc = doc })
-               f:close()
-       end
-
-       -- Process modules
-       if not options.nomodules then
-               for _, modulename in ipairs(doc.modules) do
-                       local module_doc = doc.modules[modulename]
-                       -- assembly the filename
-                       local filename = out_module(modulename)
-                       logger:info(string.format("generating file `%s'", filename))
-
-                       local f = posix.open(filename, "w")
-                       assert(f, string.format("could not open `%s' for writing", filename))
-                       io.output(f)
-                       include("module.lp", { doc = doc, module_doc = module_doc })
-                       f:close()
-               end
-       end
-
-       -- Process files
-       if not options.nofiles then
-               for _, filepath in ipairs(doc.files) do
-                       local file_doc = doc.files[filepath]
-                       -- assembly the filename
-                       local filename = out_file(file_doc.name)
-                       logger:info(string.format("generating file `%s'", filename))
-
-                       local f = posix.open(filename, "w")
-                       assert(f, string.format("could not open `%s' for writing", filename))
-                       io.output(f)
-                       include("file.lp", { doc = doc, file_doc = file_doc} )
-                       f:close()
-               end
-       end
-
-       -- copy extra files
-       local f = posix.open(options.output_dir.."luadoc.css", "w")
-       io.output(f)
-       include("luadoc.css")
-       f:close()
-end
diff --git a/package/luci/build/luadoc/luadoc/doclet/html/constant.lp b/package/luci/build/luadoc/luadoc/doclet/html/constant.lp
deleted file mode 100644 (file)
index 2e35392..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<%
-if module_doc then
-       from = "modules/"..module_doc.name
-elseif file_doc then
-       from = "files/.."..file_doc.name
-else
-       from = ""
-end
-%>
-
-<dt><%=const.private and "local " or ""%><a name="<%=const.name%>"></a><strong><%=const.name:gsub(".+%.","")%></strong></dt>
-<dd>
-<%=const.description or ""%>
-
-<%if type(const.see) == "string" then %>
-<h3>See also:</h3>
-       <a href="<%=const.see%>"><%=const.see%></a>
-<%elseif type(const.see) == "table" and #const.see > 0 then %>
-<h3>See also:</h3>
-<ul>
-       <%for i = 1, #const.see do%>
-       <li><a href="<%=luadoc.doclet.html.symbol_link(const.see[i], doc, module_doc, file_doc, from)%>">
-               <%=const.see[i]:gsub(".+%.","")%>
-       </a>
-       <%end%>
-</ul
-<%end%>
-</dd>
diff --git a/package/luci/build/luadoc/luadoc/doclet/html/file.lp b/package/luci/build/luadoc/luadoc/doclet/html/file.lp
deleted file mode 100644 (file)
index 68f4864..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="<%=luadoc.doclet.html.link('luadoc.css', 'files/'..file_doc.name)%>" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-<%=luadoc.doclet.html.include("menu.lp", { doc=doc, file_doc=file_doc })%>
-
-</div> <!-- id="navigation" -->
-
-<div id="content">
-
-<h1>File <code><%=file_doc.name%></code></h1>
-
-<%if file_doc.description then%>
-<p><%=file_doc.description%></p>
-<%end%>
-<%if file_doc.author then%>
-<p><b><%= #file_doc.author>1 and "Authors" or "Author" %>:</b>
-<table class="authors_list">
-<%for _, author in ipairs(file_doc.author) do%>
-       <tr><td class="name"><%= author %></td></tr>
-<%end%>
-</table>
-</p>
-<%end%>
-<%if file_doc.copyright then%>
-<p>Copyright &copy;<%=file_doc.copyright%></p>
-<%end%>
-<%if file_doc.release then%>
-<p><small><b>Release:</b> <%=file_doc.release%></small></p>
-<%end%>
-
-<%if #file_doc.functions > 0 then%>
-<h2>Functions</h2>
-<table class="function_list">
-<%for _, func_name in ipairs(file_doc.functions) do
-  local func_data = file_doc.functions[func_name]%>
-       <tr>
-       <td class="name" nowrap><%=func_data.private and "local " or ""%><a href="#<%=func_name%>"><%=func_name%></a>&nbsp;(<%=table.concat(func_data.param or {}, ", ")%>)</td>
-       <td class="summary"><%=func_data.summary%></td>
-       </tr>
-<%end%>
-</table>
-<%end%>
-
-
-<%if #file_doc.tables > 0 then%>
-<h2>Tables</h2>
-<table class="table_list">
-<%for _, tab_name in ipairs(file_doc.tables) do%>
-       <tr>
-       <td class="name" nowrap><a href="#<%=tab_name%>"><%=tab_name%></a></td>
-       <td class="summary"><%=file_doc.tables[tab_name].summary%></td>
-       </tr>
-<%end%>
-</table>
-<%end%>
-
-
-<br/>
-<br/>
-
-
-
-<%if #file_doc.functions > 0 then%>
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-<%for _, func_name in ipairs(file_doc.functions) do%>
-<%=luadoc.doclet.html.include("function.lp", { doc=doc, file_doc=file_doc, func=file_doc.functions[func_name] })%>
-<%end%>
-</dl>
-<%end%>
-
-
-<%if #file_doc.tables > 0 then%>
-<h2><a name="tables"></a>Tables</h2>
-<dl class="table">
-<%for _, tab_name in ipairs(file_doc.tables) do%>
-<%=luadoc.doclet.html.include("table.lp", { doc=doc, file_doc=file_doc, tab=file_doc.tables[tab_name] })%>
-<%end%>
-</dl>
-<%end%>
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" --> 
-</body>
-</html>
diff --git a/package/luci/build/luadoc/luadoc/doclet/html/function.lp b/package/luci/build/luadoc/luadoc/doclet/html/function.lp
deleted file mode 100644 (file)
index 29d403e..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<%
-if module_doc then
-       from = "modules/"..module_doc.name
-elseif file_doc then
-       from = "files/.."..file_doc.name
-else
-       from = ""
-end
-%>
-
-<dt><%=func.private and "local " or ""%><a name="<%=func.name%>"></a><strong><%=func.printname%></strong>&nbsp;(<%=table.concat(func.param or {}, ", ")%>)</dt>
-<dd>
-<%=func.description or ""%>
-
-<%if type(func.param) == "table" and #func.param > 0 then%>
-<h3>Parameters</h3>
-<ul>
-       <%for p = 1, #func.param do%>
-       <li>
-         <%=func.param[p]%>: <%=func.param[func.param[p]] or ""%>
-       </li>
-       <%end%>
-</ul>
-<%end%>
-
-
-<%if type(func.usage) == "string" then%>
-<h3>Usage:</h3>
-<%=func.usage%>
-<%elseif type(func.usage) == "table" then%>
-<h3>Usage</h3>
-<ul>
-       <%for _, usage in ipairs(func.usage) do%>
-       <li><%= usage %>
-       <%end%>
-</ul>
-<%end%>
-
-<%if type(func.ret) == "string" then%>
-<h3>Return value:</h3>
-<%=func.ret%>
-<%elseif type(func.ret) == "table" then%>
-<h3>Return values:</h3>
-<ol>
-       <%for _, ret in ipairs(func.ret) do%>
-       <li><%= ret %>
-       <%end%>
-</ol>
-<%end%>
-
-<%if type(func.see) == "string" then %>
-<h3>See also:</h3>
-       <a href="<%=func.see%>"><%=func.see%></a>
-<%elseif type(func.see) == "table" and #func.see > 0 then %>
-<h3>See also:</h3>
-<ul>
-       <%for i = 1, #func.see do%>
-       <li><a href="<%=luadoc.doclet.html.symbol_link(func.see[i], doc, module_doc, file_doc, from)%>">
-               <%=(oop and func.see[i]:gsub("%.",":") or func.see[i]:gsub(".+%.",""))%>
-       </a>
-       <%end%>
-</ul>
-<%end%>
-</dd>
diff --git a/package/luci/build/luadoc/luadoc/doclet/html/index.lp b/package/luci/build/luadoc/luadoc/doclet/html/index.lp
deleted file mode 100644 (file)
index b4b9f5c..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="<%=luadoc.doclet.html.link("luadoc.css")%>" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-<%=luadoc.doclet.html.include("menu.lp", { doc=doc })%>
-
-</div> <!-- id="navigation" -->
-
-<div id="content">
-
-
-<%if not options.nomodules and #doc.modules > 0 then%>
-<h2>Modules</h2>
-<table class="module_list">
-<!--<tr><td colspan="2">Modules</td></tr>-->
-<%for _, modulename in ipairs(doc.modules) do%>
-       <tr>
-               <td class="name"><a href="<%=luadoc.doclet.html.module_link(modulename, doc)%>"><%=modulename%></a></td>
-               <td class="summary"><%=doc.modules[modulename].summary%></td>
-       </tr>
-<%end%>
-</table>
-<%end%>
-
-
-
-<%if not options.nofiles and #doc.files > 0 then%>
-<h2>Files</h2>
-<table class="file_list">
-<!--<tr><td colspan="2">Files</td></tr>-->
-<%for _, filepath in ipairs(doc.files) do%>
-       <tr>
-               <td class="name"><a href="<%=luadoc.doclet.html.file_link(filepath)%>"><%=filepath%></a></td>
-               <td class="summary"></td>
-       </tr>
-<%end%>
-</table>
-<%end%>
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" --> 
-</body>
-</html>
diff --git a/package/luci/build/luadoc/luadoc/doclet/html/luadoc.css b/package/luci/build/luadoc/luadoc/doclet/html/luadoc.css
deleted file mode 100644 (file)
index f9f9749..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-body { 
-    margin-left: 1em; 
-    margin-right: 1em; 
-    font-family: arial, helvetica, geneva, sans-serif;
-       background-color:#ffffff; margin:0px;
-}
-
-code {
-    font-family: "Andale Mono", monospace; 
-}
-
-tt {
-    font-family: "Andale Mono", monospace; 
-}
-
-body, td, th { font-size: 11pt; }
-
-h1, h2, h3, h4 { margin-left: 0em; }
-
-textarea, pre, tt { font-size:10pt; }
-body, td, th { color:#000000; }
-small { font-size:0.85em; }
-h1 { font-size:1.5em; }
-h2 { font-size:1.25em; }
-h3 { font-size:1.15em; }
-h4 { font-size:1.06em; }
-
-a:link { font-weight:bold; color: #004080; text-decoration: none; }
-a:visited { font-weight:bold; color: #006699; text-decoration: none; }
-a:link:hover { text-decoration:underline; }
-hr { color:#cccccc }
-img { border-width: 0px; }
-
-
-h3 { padding: 1em 0 0.5em; }
-
-p { margin-left: 1em; }
-
-p.name { 
-    font-family: "Andale Mono", monospace; 
-    padding-top: 1em;
-    margin-left: 0em; 
-}
-
-blockquote { margin-left: 3em; }
-
-pre.example {
-    background-color: rgb(245, 245, 245);
-    border-top-width: 1px;
-    border-right-width: 1px;
-    border-bottom-width: 1px;
-    border-left-width: 1px;
-    border-top-style: solid;
-    border-right-style: solid;
-    border-bottom-style: solid;
-    border-left-style: solid;
-    border-top-color: silver;
-    border-right-color: silver;
-    border-bottom-color: silver;
-    border-left-color: silver;
-    padding: 1em;
-    margin-left: 1em;
-    margin-right: 1em;
-    font-family: "Andale Mono", monospace; 
-    font-size: smaller;
-}
-
-
-hr { 
-    margin-left: 0em;
-       background: #00007f; 
-       border: 0px;
-       height: 1px;
-}
-
-ul { list-style-type: disc; }
-
-table.index { border: 1px #00007f; }
-table.index td { text-align: left; vertical-align: top; }
-table.index ul { padding-top: 0em; margin-top: 0em; }
-
-table {
-    border: 1px solid black;
-    border-collapse: collapse;
-    margin: 1em auto;
-}
-th {
-    border: 1px solid black;
-    padding: 0.5em;
-}
-td {
-    border: 1px solid black;
-    padding: 0.5em;
-}
-div.header, div.footer { margin-left: 0em; }
-
-#container
-{
-       margin-left: 1em;
-       margin-right: 1em;
-       background-color: #f0f0f0;
-}
-
-#product
-{
-       text-align: center;
-       border-bottom: 1px solid #cccccc;
-       background-color: #ffffff;
-}
-
-#product big {
-       font-size: 2em;
-}
-
-#product_logo
-{
-}
-
-#product_name
-{
-}
-
-#product_description
-{
-}
-
-#main
-{
-       background-color: #f0f0f0;
-       border-left: 2px solid #cccccc;
-}
-
-#navigation
-{
-       float: left;
-       width: 18em;
-       margin: 0;
-       vertical-align: top;
-       background-color: #f0f0f0;
-       overflow:visible;
-}
-
-#navigation h1 {
-       background-color:#e7e7e7;
-       font-size:1.1em;
-       color:#000000;
-       text-align:left;
-       margin:0px;
-       padding:0.2em;
-       border-top:1px solid #dddddd;
-       border-bottom:1px solid #dddddd;
-}
-
-#navigation ul
-{
-       font-size:1em;
-       list-style-type: none;
-       padding: 0;
-       margin: 1px;
-}
-
-#navigation li
-{
-       text-indent: -1em;
-       margin: 0em 0em 0em 0.5em;
-       display: block;
-       padding: 3px 0px 0px 12px;
-}
-
-#navigation li li a
-{
-       padding: 0px 3px 0px -1em;
-}
-
-#content
-{
-       margin-left: 18em;
-       padding: 1em;
-       border-left: 2px solid #cccccc;
-       border-right: 2px solid #cccccc;
-       background-color: #ffffff;
-}
-
-#about
-{
-       clear: both;
-       margin: 0;
-       padding: 5px;
-       border-top: 2px solid #cccccc;
-       background-color: #ffffff;
-}
-
-@media print {
-       body { 
-               font: 12pt "Times New Roman", "TimeNR", Times, serif;
-       }
-       a { font-weight:bold; color: #004080; text-decoration: underline; }
-       
-       #main\r  {\r              background-color: #ffffff;\r             border-left: 0px;\r      }\r      
-       #container\r     {\r              margin-left: 2%;\r               margin-right: 2%;\r              background-color: #ffffff;\r     }
-       
-       #content\r       {\r              margin-left: 0px;\r              padding: 1em;\r          border-left: 0px;\r              border-right: 0px;\r             background-color: #ffffff;\r     }
-       
-       #navigation\r    {\r              display: none;
-       }
-       pre.example {
-               font-family: "Andale Mono", monospace; 
-               font-size: 10pt;
-               page-break-inside: avoid;
-       }
-}
-
-table.module_list td
-{
-       border-width: 1px;
-       padding: 3px;
-       border-style: solid;
-       border-color: #cccccc;
-}
-table.module_list td.name { background-color: #f0f0f0; }
-table.module_list td.summary { width: 100%; }
-
-table.file_list
-{
-       border-width: 1px;
-       border-style: solid;
-       border-color: #cccccc;
-       border-collapse: collapse;
-}
-table.file_list td
-{
-       border-width: 1px;
-       padding: 3px;
-       border-style: solid;
-       border-color: #cccccc;
-}
-table.file_list td.name { background-color: #f0f0f0; }
-table.file_list td.summary { width: 100%; }
-
-
-table.function_list
-{
-       border-width: 1px;
-       border-style: solid;
-       border-color: #cccccc;
-       border-collapse: collapse;
-}
-table.function_list td
-{
-       border-width: 1px;
-       padding: 3px;
-       border-style: solid;
-       border-color: #cccccc;
-}
-table.function_list td.name { background-color: #f0f0f0; }
-table.function_list td.summary { width: 100%; }
-
-
-table.table_list
-{
-       border-width: 1px;
-       border-style: solid;
-       border-color: #cccccc;
-       border-collapse: collapse;
-}
-table.table_list td
-{
-       border-width: 1px;
-       padding: 3px;
-       border-style: solid;
-       border-color: #cccccc;
-}
-table.table_list td.name { background-color: #f0f0f0; }
-table.table_list td.summary { width: 100%; }
-
-dl.function dt {border-top: 1px solid #ccc; padding-top: 1em;}
-dl.function dd {padding: 0.5em 0;}
-dl.function h3 {margin: 0; font-size: medium;}
-
-dl.table dt {border-top: 1px solid #ccc; padding-top: 1em;}
-dl.table dd {padding-bottom: 1em;}
-dl.table h3 {padding: 0; margin: 0; font-size: medium;}
-
-#TODO: make module_list, file_list, function_list, table_list inherit from a list
-
diff --git a/package/luci/build/luadoc/luadoc/doclet/html/menu.lp b/package/luci/build/luadoc/luadoc/doclet/html/menu.lp
deleted file mode 100644 (file)
index 0fe3652..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<%
-if module_doc then
-       from = "modules/"..module_doc.name
-elseif file_doc then
-       from = "files/.."..file_doc.name
-else
-       from = ""
-end
-%>
-
-<h1>LuaDoc</h1>
-<ul>
-       <%if not module_doc and not file_doc then%>
-       <li><strong>Index</strong></li>
-       <%else%>
-       <li><a href="<%=luadoc.doclet.html.link("index.html", from)%>">Index</a></li>
-       <%end%>
-</ul>
-
-
-<!-- Module list -->
-<%if not options.nomodules and #doc.modules > 0 then%>
-<h1>Modules</h1>
-<ul>
-<%for _, modulename in ipairs(doc.modules) do
-       if module_doc and module_doc.name == modulename then%>
-       <li><strong><%=modulename%></strong></li>
-       <%else%>
-       <li>
-               <a href="<%=luadoc.doclet.html.module_link(modulename, doc, from)%>"><%=modulename%></a>
-       </li>
-<%     end
-end%>
-</ul>
-<%end%>
-
-
-<!-- File list -->
-<%if not options.nofiles and #doc.files > 0 then%>
-<h1>Files</h1>
-<ul>
-<%for _, filepath in ipairs(doc.files) do
-       if file_doc and file_doc.name == filepath then%>
-       <li><strong><%=filepath%></strong></li>
-       <%else%>
-       <li>
-               <a href="<%=luadoc.doclet.html.file_link(filepath, from)%>"><%=filepath%></a>
-       </li>
-<%     end
-end%>
-</ul>
-<%end%>
-
-
-
diff --git a/package/luci/build/luadoc/luadoc/doclet/html/module.lp b/package/luci/build/luadoc/luadoc/doclet/html/module.lp
deleted file mode 100644 (file)
index 0798c1b..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="<%=luadoc.doclet.html.link('luadoc.css', 'modules/'..module_doc.name)%>" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-<%=luadoc.doclet.html.include("menu.lp", { doc=doc, module_doc=module_doc })%>
-<% oop = not not ( module_doc.doc[1] and module_doc.doc[1].cstyle == "instance" ) %>
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1><%=( oop and "Object Instance" or "Class" )%> <code><%=module_doc.name%></code></h1>
-
-<p><%=module_doc.description%></p>
-<%if module_doc.author then%>
-<p><b><%= #module_doc.author>1 and "Authors" or "Author" %>:</b>
-<table class="authors_list">
-<%for _, author in ipairs(module_doc.author) do%>
-       <tr><td class="name"><%= author %></td></tr>
-<%end%>
-</table>
-</p>
-<%end%>
-<%if module_doc.copyright then%>
-<p>Copyright&copy; <%=module_doc.copyright%></p>
-<%end%>
-<%if module_doc.release then%>
-<p><small><b>Release:</b> <%=module_doc.release%></small></p>
-<%end%>
-
-<%if #module_doc.constants > 0 then %>
-<h2>Constants</h2>
-<table class="function_list">
-<%for _, const_name in ipairs(module_doc.constants) do
-  local const_data = module_doc.constants[const_name]%>
-       <tr>
-       <td class="name" nowrap><code><%=const_data.private and "local " or ""%><%=(const_name:gsub(".+%.",""))%></code></td>
-       <td class="summary"><%=const_data.summary%></td>
-       </tr>
-<%end%>
-</table>
-<%end%>
-
-<% local funcs = { }; if #module_doc.functions > 0 then %>
-<h2>Functions</h2>
-<table class="function_list">
-<%
-for _, func_name in ipairs(module_doc.functions) do
-  funcs[#funcs+1] = func_name
-end
-
-table.sort(funcs, function(a, b)
-  local func_data_a = module_doc.functions[a]
-  local func_data_b = module_doc.functions[b]
-  local x = func_data_a.sort or a
-  local y = func_data_b.sort or b
-  return x < y
-end)
-
-for _, func_name in ipairs(funcs) do
-  local func_data = module_doc.functions[func_name]
-
-  func_data.printname = func_name:gsub("^%d+#", "")
-  if oop then
-       func_data.printname = func_data.printname:gsub("%.", ":")
-  else
-    func_data.printname = func_data.printname:gsub("^.+%.", "")
-  end
-%>
-       <tr>
-       <td class="name" nowrap><%=func_data.private and "local " or ""%><a href="#<%=func_name%>"><%=func_data.printname%></a>&nbsp;(<%=table.concat(module_doc.functions[func_name].param or {}, ", ")%>)</td>
-       <td class="summary"><%=module_doc.functions[func_name].summary%></td>
-       </tr>
-<%end%>
-</table>
-<%end%>
-
-
-<% local tabs = { }; if #module_doc.tables > 0 then%>
-<h2>Tables</h2>
-<table class="table_list">
-<%
-for _, tab_name in ipairs(module_doc.tables) do
-  tabs[#tabs+1] = tab_name
-end
-
-table.sort(tabs, function(a, b)
-  local tab_data_a = module_doc.tables[a]
-  local tab_data_b = module_doc.tables[b]
-  local x = tab_data_a.sort or a
-  local y = tab_data_b.sort or b
-  return x < y
-end)
-
-for _, tab_name in ipairs(tabs) do
-%>
-       <tr>
-       <td class="name" nowrap><a href="#<%=tab_name%>"><%=tab_name%></a></td>
-       <td class="summary"><%=module_doc.tables[tab_name].summary%></td>
-       </tr>
-<%end%>
-</table>
-<%end%>
-
-
-<br/>
-<br/>
-
-<%if #module_doc.functions > 0 then%>
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-<%for _, func_name in ipairs(funcs) do%>
-<%=luadoc.doclet.html.include("function.lp", { doc=doc, module_doc=module_doc, func=module_doc.functions[func_name], oop=oop })%>
-<%end%>
-</dl>
-<%end%>
-
-<%if #module_doc.tables > 0 then%>
-<h2><a name="tables"></a>Tables</h2>
-<dl class="table">
-<%for _, tab_name in ipairs(tabs) do%>
-<%=luadoc.doclet.html.include("table.lp", { doc=doc, module_doc=module_doc, tab=module_doc.tables[tab_name] })%>
-<%end%>
-</dl>
-<%end%>
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/build/luadoc/luadoc/doclet/html/table.lp b/package/luci/build/luadoc/luadoc/doclet/html/table.lp
deleted file mode 100644 (file)
index 5cd0239..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<dt><a name="<%=tab.name%>"></a><strong><%=tab.name%></strong></dt>
-<dd><%=tab.description%>
-
-<%if type(tab.field) == "table" and #tab.field > 0 then%>
-<em>Fields</em>
-<ul>
-       <%for p = 1, #tab.field do%>
-       <li>
-         <%=tab.field[p]%>: <%=tab.field[tab.field[p]] or ""%>
-       </li>
-       <%end%>
-</ul>
-<%end%>
-
-</dd>
diff --git a/package/luci/build/luadoc/luadoc/doclet/raw.lua b/package/luci/build/luadoc/luadoc/doclet/raw.lua
deleted file mode 100644 (file)
index 1e880b8..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
------------------------------------------------------------------
--- @release $Id: raw.lua,v 1.5 2007/04/18 14:28:39 tomas Exp $
------------------------------------------------------------------
-
-module "luadoc.doclet.raw"
-
------------------------------------------------------------------
--- Generate the output.
--- @param doc Table with the structured documentation.
-
-function start (doc)
-end
diff --git a/package/luci/build/luadoc/luadoc/init.lua b/package/luci/build/luadoc/luadoc/init.lua
deleted file mode 100644 (file)
index 649515d..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
--------------------------------------------------------------------------------
--- LuaDoc main function.
--- @release $Id: init.lua,v 1.4 2008/02/17 06:42:51 jasonsantos Exp $
--------------------------------------------------------------------------------
-
-local require = require
-
-local util = require "luadoc.util"
-
-logger = {}
-
-module ("luadoc")
-
--------------------------------------------------------------------------------
--- LuaDoc version number.
-
-_COPYRIGHT = "Copyright (c) 2003-2007 The Kepler Project"
-_DESCRIPTION = "Documentation Generator Tool for the Lua language"
-_VERSION = "LuaDoc 3.0.1"
-
--------------------------------------------------------------------------------
--- Main function
--- @see luadoc.doclet.html, luadoc.doclet.formatter, luadoc.doclet.raw
--- @see luadoc.taglet.standard
-
-function main (files, options)
-       logger = util.loadlogengine(options)
-
-       -- load config file
-       if options.config ~= nil then
-               -- load specified config file
-               dofile(options.config)
-       else
-               -- load default config file
-               require("luadoc.config")
-       end
-       
-       local taglet = require(options.taglet)
-       local doclet = require(options.doclet)
-
-       -- analyze input
-       taglet.options = options
-       taglet.logger = logger
-       local doc = taglet.start(files)
-
-       -- generate output
-       doclet.options = options
-       doclet.logger = logger
-       doclet.start(doc)
-end
diff --git a/package/luci/build/luadoc/luadoc/lp.lua b/package/luci/build/luadoc/luadoc/lp.lua
deleted file mode 100644 (file)
index adf84f9..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-----------------------------------------------------------------------------
--- Lua Pages Template Preprocessor.
---
--- @release $Id: lp.lua,v 1.7 2007/04/18 14:28:39 tomas Exp $
-----------------------------------------------------------------------------
-
-local assert, error, getfenv, loadstring, setfenv = assert, error, getfenv, loadstring, setfenv
-local find, format, gsub, strsub = string.find, string.format, string.gsub, string.sub
-local concat, tinsert = table.concat, table.insert
-local open = io.open
-
-module (...)
-
-----------------------------------------------------------------------------
--- function to do output
-local outfunc = "io.write"
--- accepts the old expression field: `$| <Lua expression> |$'
-local compatmode = true
-
---
--- Builds a piece of Lua code which outputs the (part of the) given string.
--- @param s String.
--- @param i Number with the initial position in the string.
--- @param f Number with the final position in the string (default == -1).
--- @return String with the correspondent Lua code which outputs the part of the string.
---
-local function out (s, i, f)
-       s = strsub(s, i, f or -1)
-       if s == "" then return s end
-       -- we could use `%q' here, but this way we have better control
-       s = gsub(s, "([\\\n\'])", "\\%1")
-       -- substitute '\r' by '\'+'r' and let `loadstring' reconstruct it
-       s = gsub(s, "\r", "\\r")
-       return format(" %s('%s'); ", outfunc, s)
-end
-
-
-----------------------------------------------------------------------------
--- Translate the template to Lua code.
--- @param s String to translate.
--- @return String with translated code.
-----------------------------------------------------------------------------
-function translate (s)
-       if compatmode then
-               s = gsub(s, "$|(.-)|%$", "<?lua = %1 ?>")
-               s = gsub(s, "<!%-%-$$(.-)$$%-%->", "<?lua %1 ?>")
-       end
-       s = gsub(s, "<%%(.-)%%>", "<?lua %1 ?>")
-       local res = {}
-       local start = 1   -- start of untranslated part in `s'
-       while true do
-               local ip, fp, target, exp, code = find(s, "<%?(%w*)[ \t]*(=?)(.-)%?>", start)
-               if not ip then break end
-               tinsert(res, out(s, start, ip-1))
-               if target ~= "" and target ~= "lua" then
-                       -- not for Lua; pass whole instruction to the output
-                       tinsert(res, out(s, ip, fp))
-               else
-                       if exp == "=" then   -- expression?
-                               tinsert(res, format(" %s(%s);", outfunc, code))
-                       else  -- command
-                               tinsert(res, format(" %s ", code))
-                       end
-               end
-               start = fp + 1
-       end
-       tinsert(res, out(s, start))
-       return concat(res)
-end
-
-
-----------------------------------------------------------------------------
--- Defines the name of the output function.
--- @param f String with the name of the function which produces output.
-
-function setoutfunc (f)
-       outfunc = f
-end
-
-----------------------------------------------------------------------------
--- Turns on or off the compatibility with old CGILua 3.X behavior.
--- @param c Boolean indicating if the compatibility mode should be used.
-
-function setcompatmode (c)
-       compatmode = c
-end
-
-----------------------------------------------------------------------------
--- Internal compilation cache.
-
-local cache = {}
-
-----------------------------------------------------------------------------
--- Translates a template into a Lua function.
--- Does NOT execute the resulting function.
--- Uses a cache of templates.
--- @param string String with the template to be translated.
--- @param chunkname String with the name of the chunk, for debugging purposes.
--- @return Function with the resulting translation.
-
-function compile (string, chunkname)
-       local f, err = cache[string]
-       if f then return f end
-       f, err = loadstring (translate (string), chunkname)
-       if not f then error (err, 3) end
-       cache[string] = f
-       return f
-end
-
-----------------------------------------------------------------------------
--- Translates and executes a template in a given file.
--- The translation creates a Lua function which will be executed in an
--- optionally given environment.
--- @param filename String with the name of the file containing the template.
--- @param env Table with the environment to run the resulting function.
-
-function include (filename, env)
-       -- read the whole contents of the file
-       local fh = assert (open (filename))
-       local src = fh:read("*a")
-       fh:close()
-       -- translates the file into a function
-       local prog = compile (src, '@'..filename)
-       local _env
-       if env then
-               _env = getfenv (prog)
-               setfenv (prog, env)
-       end
-       prog ()
-end
diff --git a/package/luci/build/luadoc/luadoc/taglet/standard.lua b/package/luci/build/luadoc/luadoc/taglet/standard.lua
deleted file mode 100644 (file)
index ef925f8..0000000
+++ /dev/null
@@ -1,567 +0,0 @@
--------------------------------------------------------------------------------
--- @release $Id: standard.lua,v 1.39 2007/12/21 17:50:48 tomas Exp $
--------------------------------------------------------------------------------
-
-local assert, pairs, tostring, type = assert, pairs, tostring, type
-local io = require "io"
-local posix = require "nixio.fs"
-local luadoc = require "luadoc"
-local util = require "luadoc.util"
-local tags = require "luadoc.taglet.standard.tags"
-local string = require "string"
-local table = require "table"
-
-module 'luadoc.taglet.standard'
-
--------------------------------------------------------------------------------
--- Creates an iterator for an array base on a class type.
--- @param t array to iterate over
--- @param class name of the class to iterate over
-
-function class_iterator (t, class)
-       return function ()
-               local i = 1
-               return function ()
-                       while t[i] and t[i].class ~= class do
-                               i = i + 1
-                       end
-                       local v = t[i]
-                       i = i + 1
-                       return v
-               end
-       end
-end
-
--- Patterns for function recognition
-local identifiers_list_pattern = "%s*(.-)%s*"
-local identifier_pattern = "[^%(%s]+"
-local function_patterns = {
-       "^()%s*function%s*("..identifier_pattern..")%s*%("..identifiers_list_pattern.."%)",
-       "^%s*(local%s)%s*function%s*("..identifier_pattern..")%s*%("..identifiers_list_pattern.."%)",
-       "^()%s*("..identifier_pattern..")%s*%=%s*function%s*%("..identifiers_list_pattern.."%)",
-}
-
--------------------------------------------------------------------------------
--- Checks if the line contains a function definition
--- @param line string with line text
--- @return function information or nil if no function definition found
-
-local function check_function (line)
-       line = util.trim(line)
-
-       local info = table.foreachi(function_patterns, function (_, pattern)
-               local r, _, l, id, param = string.find(line, pattern)
-               if r ~= nil then
-                       return {
-                               name = id,
-                               private = (l == "local"),
-                               param = { } --util.split("%s*,%s*", param),
-                       }
-               end
-       end)
-
-       -- TODO: remove these assert's?
-       if info ~= nil then
-               assert(info.name, "function name undefined")
-               assert(info.param, string.format("undefined parameter list for function `%s'", info.name))
-       end
-
-       return info
-end
-
--------------------------------------------------------------------------------
--- Checks if the line contains a module definition.
--- @param line string with line text
--- @param currentmodule module already found, if any
--- @return the name of the defined module, or nil if there is no module
--- definition
-
-local function check_module (line, currentmodule)
-       line = util.trim(line)
-
-       -- module"x.y"
-       -- module'x.y'
-       -- module[[x.y]]
-       -- module("x.y")
-       -- module('x.y')
-       -- module([[x.y]])
-       -- module(...)
-
-       local r, _, modulename = string.find(line, "^module%s*[%s\"'(%[]+([^,\"')%]]+)")
-       if r then
-               -- found module definition
-               logger:debug(string.format("found module `%s'", modulename))
-               return modulename
-       end
-       return currentmodule
-end
-
--- Patterns for constant recognition
-local constant_patterns = {
-       "^()%s*([A-Z][A-Z0-9_]*)%s*=",
-       "^%s*(local%s)%s*([A-Z][A-Z0-9_]*)%s*=",
-}
-
--------------------------------------------------------------------------------
--- Checks if the line contains a constant definition
--- @param line string with line text
--- @return constant information or nil if no constant definition found
-
-local function check_constant (line)
-       line = util.trim(line)
-
-       local info = table.foreachi(constant_patterns, function (_, pattern)
-               local r, _, l, id = string.find(line, pattern)
-               if r ~= nil then
-                       return {
-                               name = id,
-                               private = (l == "local"),
-                       }
-               end
-       end)
-
-       -- TODO: remove these assert's?
-       if info ~= nil then
-               assert(info.name, "constant name undefined")
-       end
-
-       return info
-end
-
--------------------------------------------------------------------------------
--- Extracts summary information from a description. The first sentence of each
--- doc comment should be a summary sentence, containing a concise but complete
--- description of the item. It is important to write crisp and informative
--- initial sentences that can stand on their own
--- @param description text with item description
--- @return summary string or nil if description is nil
-
-local function parse_summary (description)
-       -- summary is never nil...
-       description = description or ""
-
-       -- append an " " at the end to make the pattern work in all cases
-       description = description.." "
-
-       -- read until the first period followed by a space or tab
-       local summary = string.match(description, "(.-%.)[%s\t]")
-
-       -- if pattern did not find the first sentence, summary is the whole description
-       summary = summary or description
-
-       return summary
-end
-
--------------------------------------------------------------------------------
--- @param f file handle
--- @param line current line being parsed
--- @param modulename module already found, if any
--- @return current line
--- @return code block
--- @return modulename if found
-
-local function parse_code (f, line, modulename)
-       local code = {}
-       while line ~= nil do
-               if string.find(line, "^[\t ]*%-%-%-") then
-                       -- reached another luadoc block, end this parsing
-                       return line, code, modulename
-               else
-                       -- look for a module definition
-                       modulename = check_module(line, modulename)
-
-                       table.insert(code, line)
-                       line = f:read()
-               end
-       end
-       -- reached end of file
-       return line, code, modulename
-end
-
--------------------------------------------------------------------------------
--- Parses the information inside a block comment
--- @param block block with comment field
--- @return block parameter
-
-local function parse_comment (block, first_line, modulename)
-
-       -- get the first non-empty line of code
-       local code = table.foreachi(block.code, function(_, line)
-               if not util.line_empty(line) then
-                       -- `local' declarations are ignored in two cases:
-                       -- when the `nolocals' option is turned on; and
-                       -- when the first block of a file is parsed (this is
-                       --      necessary to avoid confusion between the top
-                       --      local declarations and the `module' definition.
-                       if (options.nolocals or first_line) and line:find"^%s*local" then
-                               return
-                       end
-                       return line
-               end
-       end)
-
-       -- parse first line of code
-       if code ~= nil then
-               local func_info = check_function(code)
-               local module_name = check_module(code)
-               local const_info = check_constant(code)
-               if func_info then
-                       block.class = "function"
-                       block.name = func_info.name
-                       block.param = func_info.param
-                       block.private = func_info.private
-               elseif const_info then
-                       block.class = "constant"
-                       block.name = const_info.name
-                       block.private = const_info.private
-               elseif module_name then
-                       block.class = "module"
-                       block.name = module_name
-                       block.param = {}
-               else
-                       block.param = {}
-               end
-       else
-               -- TODO: comment without any code. Does this means we are dealing
-               -- with a file comment?
-       end
-
-       -- parse @ tags
-       local currenttag = "description"
-       local currenttext
-
-       table.foreachi(block.comment, function (_, line)
-               line = util.trim_comment(line)
-
-               local r, _, tag, text = string.find(line, "@([_%w%.]+)%s+(.*)")
-               if r ~= nil then
-                       -- found new tag, add previous one, and start a new one
-                       -- TODO: what to do with invalid tags? issue an error? or log a warning?
-                       tags.handle(currenttag, block, currenttext)
-
-                       currenttag = tag
-                       currenttext = text
-               else
-                       currenttext = util.concat(currenttext, "\n" .. line)
-                       assert(string.sub(currenttext, 1, 1) ~= " ", string.format("`%s', `%s'", currenttext, line))
-               end
-       end)
-       tags.handle(currenttag, block, currenttext)
-
-       -- extracts summary information from the description
-       block.summary = parse_summary(block.description)
-       assert(string.sub(block.description, 1, 1) ~= " ", string.format("`%s'", block.description))
-
-       if block.name and block.class == "module" then
-               modulename = block.name
-       end
-
-       return block, modulename
-end
-
--------------------------------------------------------------------------------
--- Parses a block of comment, started with ---. Read until the next block of
--- comment.
--- @param f file handle
--- @param line being parsed
--- @param modulename module already found, if any
--- @return line
--- @return block parsed
--- @return modulename if found
-
-local function parse_block (f, line, modulename, first)
-       local multiline = not not (line and line:match("%[%["))
-       local block = {
-               comment = {},
-               code = {},
-       }
-
-       while line ~= nil do
-               if (multiline == true and string.find(line, "%]%]") ~= nil) or
-                  (multiline == false and string.find(line, "^[\t ]*%-%-") == nil) then
-                       -- reached end of comment, read the code below it
-                       -- TODO: allow empty lines
-                       line, block.code, modulename = parse_code(f, line, modulename)
-
-                       -- parse information in block comment
-                       block, modulename = parse_comment(block, first, modulename)
-
-                       return line, block, modulename
-               else
-                       table.insert(block.comment, line)
-                       line = f:read()
-               end
-       end
-       -- reached end of file
-
-       -- parse information in block comment
-       block, modulename = parse_comment(block, first, modulename)
-
-       return line, block, modulename
-end
-
--------------------------------------------------------------------------------
--- Parses a file documented following luadoc format.
--- @param filepath full path of file to parse
--- @param doc table with documentation
--- @return table with documentation
-
-function parse_file (filepath, doc, handle, prev_line, prev_block, prev_modname)
-       local blocks = { prev_block }
-       local modulename = prev_modname
-
-       -- read each line
-       local f = handle or io.open(filepath, "r")
-       local i = 1
-       local line = prev_line or f:read()
-       local first = true
-       while line ~= nil do
-
-               if string.find(line, "^[\t ]*%-%-%-") then
-                       -- reached a luadoc block
-                       local block, newmodname
-                       line, block, newmodname = parse_block(f, line, modulename, first)
-
-                       if modulename and newmodname and newmodname ~= modulename then
-                               doc = parse_file( nil, doc, f, line, block, newmodname )
-                       else
-                               table.insert(blocks, block)
-                               modulename = newmodname
-                       end
-               else
-                       -- look for a module definition
-                       local newmodname = check_module(line, modulename)
-
-                       if modulename and newmodname and newmodname ~= modulename then
-                               parse_file( nil, doc, f )
-                       else
-                               modulename = newmodname
-                       end
-
-                       -- TODO: keep beginning of file somewhere
-
-                       line = f:read()
-               end
-               first = false
-               i = i + 1
-       end
-
-       if not handle then
-               f:close()
-       end
-
-       if filepath then
-               -- store blocks in file hierarchy
-               assert(doc.files[filepath] == nil, string.format("doc for file `%s' already defined", filepath))
-               table.insert(doc.files, filepath)
-               doc.files[filepath] = {
-                       type = "file",
-                       name = filepath,
-                       doc = blocks,
-       --              functions = class_iterator(blocks, "function"),
-       --              tables = class_iterator(blocks, "table"),
-               }
-       --
-               local first = doc.files[filepath].doc[1]
-               if first and modulename then
-                       doc.files[filepath].author = first.author
-                       doc.files[filepath].copyright = first.copyright
-                       doc.files[filepath].description = first.description
-                       doc.files[filepath].release = first.release
-                       doc.files[filepath].summary = first.summary
-               end
-       end
-
-       -- if module definition is found, store in module hierarchy
-       if modulename ~= nil then
-               if modulename == "..." then
-                       assert( filepath, "Can't determine name for virtual module from filepatch" )
-                       modulename = string.gsub (filepath, "%.lua$", "")
-                       modulename = string.gsub (modulename, "/", ".")
-               end
-               if doc.modules[modulename] ~= nil then
-                       -- module is already defined, just add the blocks
-                       table.foreachi(blocks, function (_, v)
-                               table.insert(doc.modules[modulename].doc, v)
-                       end)
-               else
-                       -- TODO: put this in a different module
-                       table.insert(doc.modules, modulename)
-                       doc.modules[modulename] = {
-                               type = "module",
-                               name = modulename,
-                               doc = blocks,
---                             functions = class_iterator(blocks, "function"),
---                             tables = class_iterator(blocks, "table"),
-                               author = first and first.author,
-                               copyright = first and first.copyright,
-                               description = "",
-                               release = first and first.release,
-                               summary = "",
-                       }
-
-                       -- find module description
-                       for m in class_iterator(blocks, "module")() do
-                               doc.modules[modulename].description = util.concat(
-                                       doc.modules[modulename].description,
-                                       m.description)
-                               doc.modules[modulename].summary = util.concat(
-                                       doc.modules[modulename].summary,
-                                       m.summary)
-                               if m.author then
-                                       doc.modules[modulename].author = m.author
-                               end
-                               if m.copyright then
-                                       doc.modules[modulename].copyright = m.copyright
-                               end
-                               if m.release then
-                                       doc.modules[modulename].release = m.release
-                               end
-                               if m.name then
-                                       doc.modules[modulename].name = m.name
-                               end
-                       end
-                       doc.modules[modulename].description = doc.modules[modulename].description or (first and first.description) or ""
-                       doc.modules[modulename].summary = doc.modules[modulename].summary or (first and first.summary) or ""
-               end
-
-               -- make functions table
-               doc.modules[modulename].functions = {}
-               for f in class_iterator(blocks, "function")() do
-                       if f and f.name then
-                               table.insert(doc.modules[modulename].functions, f.name)
-                               doc.modules[modulename].functions[f.name] = f
-                       end
-               end
-
-               -- make tables table
-               doc.modules[modulename].tables = {}
-               for t in class_iterator(blocks, "table")() do
-                       if t and t.name then
-                               table.insert(doc.modules[modulename].tables, t.name)
-                               doc.modules[modulename].tables[t.name] = t
-                       end
-               end
-
-               -- make constants table
-               doc.modules[modulename].constants = {}
-               for c in class_iterator(blocks, "constant")() do
-                       if c and c.name then
-                               table.insert(doc.modules[modulename].constants, c.name)
-                               doc.modules[modulename].constants[c.name] = c
-                       end
-               end
-       end
-
-       if filepath then
-               -- make functions table
-               doc.files[filepath].functions = {}
-               for f in class_iterator(blocks, "function")() do
-                       if f and f.name then
-                               table.insert(doc.files[filepath].functions, f.name)
-                               doc.files[filepath].functions[f.name] = f
-                       end
-               end
-
-               -- make tables table
-               doc.files[filepath].tables = {}
-               for t in class_iterator(blocks, "table")() do
-                       if t and t.name then
-                               table.insert(doc.files[filepath].tables, t.name)
-                               doc.files[filepath].tables[t.name] = t
-                       end
-               end
-       end
-
-       return doc
-end
-
--------------------------------------------------------------------------------
--- Checks if the file is terminated by ".lua" or ".luadoc" and calls the
--- function that does the actual parsing
--- @param filepath full path of the file to parse
--- @param doc table with documentation
--- @return table with documentation
--- @see parse_file
-
-function file (filepath, doc)
-       local patterns = { "%.lua$", "%.luadoc$" }
-       local valid = table.foreachi(patterns, function (_, pattern)
-               if string.find(filepath, pattern) ~= nil then
-                       return true
-               end
-       end)
-
-       if valid then
-               logger:info(string.format("processing file `%s'", filepath))
-               doc = parse_file(filepath, doc)
-       end
-
-       return doc
-end
-
--------------------------------------------------------------------------------
--- Recursively iterates through a directory, parsing each file
--- @param path directory to search
--- @param doc table with documentation
--- @return table with documentation
-
-function directory (path, doc)
-       for f in posix.dir(path) do
-               local fullpath = path .. "/" .. f
-               local attr = posix.stat(fullpath)
-               assert(attr, string.format("error stating file `%s'", fullpath))
-
-               if attr.type == "reg" then
-                       doc = file(fullpath, doc)
-               elseif attr.type == "dir" and f ~= "." and f ~= ".." then
-                       doc = directory(fullpath, doc)
-               end
-       end
-       return doc
-end
-
--- Recursively sorts the documentation table
-local function recsort (tab)
-       table.sort (tab)
-       -- sort list of functions by name alphabetically
-       for f, doc in pairs(tab) do
-               if doc.functions then
-                       table.sort(doc.functions)
-               end
-               if doc.tables then
-                       table.sort(doc.tables)
-               end
-       end
-end
-
--------------------------------------------------------------------------------
-
-function start (files, doc)
-       assert(files, "file list not specified")
-
-       -- Create an empty document, or use the given one
-       doc = doc or {
-               files = {},
-               modules = {},
-       }
-       assert(doc.files, "undefined `files' field")
-       assert(doc.modules, "undefined `modules' field")
-
-       table.foreachi(files, function (_, path)
-               local attr = posix.stat(path)
-               assert(attr, string.format("error stating path `%s'", path))
-
-               if attr.type == "reg" then
-                       doc = file(path, doc)
-               elseif attr.type == "dir" then
-                       doc = directory(path, doc)
-               end
-       end)
-
-       -- order arrays alphabetically
-       recsort(doc.files)
-       recsort(doc.modules)
-
-       return doc
-end
diff --git a/package/luci/build/luadoc/luadoc/taglet/standard/tags.lua b/package/luci/build/luadoc/luadoc/taglet/standard/tags.lua
deleted file mode 100644 (file)
index b46d685..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
--------------------------------------------------------------------------------
--- Handlers for several tags
--- @release $Id: tags.lua,v 1.8 2007/09/05 12:39:09 tomas Exp $
--------------------------------------------------------------------------------
-
-local luadoc = require "luadoc"
-local util = require "luadoc.util"
-local string = require "string"
-local table = require "table"
-local assert, type, tostring, tonumber = assert, type, tostring, tonumber
-
-module "luadoc.taglet.standard.tags"
-
--------------------------------------------------------------------------------
-
-local function author (tag, block, text)
-       block[tag] = block[tag] or {}
-       if not text then
-               luadoc.logger:warn("author `name' not defined [["..text.."]]: skipping")
-               return
-       end
-       table.insert (block[tag], text)
-end
-
--------------------------------------------------------------------------------
--- Set the class of a comment block. Classes can be "module", "function",
--- "table". The first two classes are automatic, extracted from the source code
-
-local function class (tag, block, text)
-       block[tag] = text
-end
-
--------------------------------------------------------------------------------
-
-local function cstyle (tag, block, text)
-       block[tag] = text
-end
-
--------------------------------------------------------------------------------
-
-local function sort (tag, block, text)
-       block[tag] = tonumber(text) or 0
-end
-
--------------------------------------------------------------------------------
-
-local function copyright (tag, block, text)
-       block[tag] = text
-end
-
--------------------------------------------------------------------------------
-
-local function description (tag, block, text)
-       block[tag] = text
-end
-
--------------------------------------------------------------------------------
-
-local function field (tag, block, text)
-       if block["class"] ~= "table" then
-               luadoc.logger:warn("documenting `field' for block that is not a `table'")
-       end
-       block[tag] = block[tag] or {}
-
-       local _, _, name, desc = string.find(text, "^([_%w%.]+)%s+(.*)")
-       assert(name, "field name not defined")
-
-       table.insert(block[tag], name)
-       block[tag][name] = desc
-end
-
--------------------------------------------------------------------------------
--- Set the name of the comment block. If the block already has a name, issue
--- an error and do not change the previous value
-
-local function name (tag, block, text)
-       if block[tag] and block[tag] ~= text then
-               luadoc.logger:error(string.format("block name conflict: `%s' -> `%s'", block[tag], text))
-       end
-
-       block[tag] = text
-end
-
--------------------------------------------------------------------------------
--- Processes a parameter documentation.
--- @param tag String with the name of the tag (it must be "param" always).
--- @param block Table with previous information about the block.
--- @param text String with the current line being processed.
-
-local function param (tag, block, text)
-       block[tag] = block[tag] or {}
-       -- TODO: make this pattern more flexible, accepting empty descriptions
-       local _, _, name, desc = string.find(text, "^([_%w%.]+)%s+(.*)")
-       if not name then
-               luadoc.logger:warn("parameter `name' not defined [["..text.."]]: skipping")
-               return
-       end
-       local i = table.foreachi(block[tag], function (i, v)
-               if v == name then
-                       return i
-               end
-       end)
-       if i == nil then
-               luadoc.logger:warn(string.format("documenting undefined parameter `%s'", name))
-               table.insert(block[tag], name)
-       end
-       block[tag][name] = desc
-end
-
--------------------------------------------------------------------------------
-
-local function release (tag, block, text)
-       block[tag] = text
-end
-
--------------------------------------------------------------------------------
-
-local function ret (tag, block, text)
-       tag = "ret"
-       if type(block[tag]) == "string" then
-               block[tag] = { block[tag], text }
-       elseif type(block[tag]) == "table" then
-               table.insert(block[tag], text)
-       else
-               block[tag] = text
-       end
-end
-
--------------------------------------------------------------------------------
--- @see ret
-
-local function see (tag, block, text)
-       -- see is always an array
-       block[tag] = block[tag] or {}
-
-       -- remove trailing "."
-       text = string.gsub(text, "(.*)%.$", "%1")
-
-       local s = util.split("%s*,%s*", text)
-
-       table.foreachi(s, function (_, v)
-               table.insert(block[tag], v)
-       end)
-end
-
--------------------------------------------------------------------------------
--- @see ret
-
-local function usage (tag, block, text)
-       if type(block[tag]) == "string" then
-               block[tag] = { block[tag], text }
-       elseif type(block[tag]) == "table" then
-               table.insert(block[tag], text)
-       else
-               block[tag] = text
-       end
-end
-
--------------------------------------------------------------------------------
-
-local handlers = {}
-handlers["author"] = author
-handlers["class"] = class
-handlers["cstyle"] = cstyle
-handlers["copyright"] = copyright
-handlers["description"] = description
-handlers["field"] = field
-handlers["name"] = name
-handlers["param"] = param
-handlers["release"] = release
-handlers["return"] = ret
-handlers["see"] = see
-handlers["sort"] = sort
-handlers["usage"] = usage
-
--------------------------------------------------------------------------------
-
-function handle (tag, block, text)
-       if not handlers[tag] then
-               luadoc.logger:error(string.format("undefined handler for tag `%s'", tag))
-               return
-       end
-
-       if text then
-               text = text:gsub("`([^\n]-)`", "<code>%1</code>")
-               text = text:gsub("`(.-)`", "<pre>%1</pre>")
-       end
-
---     assert(handlers[tag], string.format("undefined handler for tag `%s'", tag))
-       return handlers[tag](tag, block, text)
-end
diff --git a/package/luci/build/luadoc/luadoc/util.lua b/package/luci/build/luadoc/luadoc/util.lua
deleted file mode 100644 (file)
index 7e9cac6..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
--------------------------------------------------------------------------------
--- General utilities.
--- @release $Id: util.lua,v 1.16 2008/02/17 06:42:51 jasonsantos Exp $
--------------------------------------------------------------------------------
-
-local posix = require "nixio.fs"
-local type, table, string, io, assert, tostring, setmetatable, pcall = type, table, string, io, assert, tostring, setmetatable, pcall
-
--------------------------------------------------------------------------------
--- Module with several utilities that could not fit in a specific module
-
-module "luadoc.util"
-
--------------------------------------------------------------------------------
--- Removes spaces from the beginning and end of a given string
--- @param s string to be trimmed
--- @return trimmed string
-
-function trim (s)
-       return (string.gsub(s, "^%s*(.-)%s*$", "%1"))
-end
-
--------------------------------------------------------------------------------
--- Removes spaces from the beginning and end of a given string, considering the
--- string is inside a lua comment.
--- @param s string to be trimmed
--- @return trimmed string
--- @see trim
--- @see string.gsub
-
-function trim_comment (s)
-       s = string.gsub(s, "^%s*%-%-+%[%[(.*)$", "%1")
-       s = string.gsub(s, "^%s*%-%-+(.*)$", "%1")
-       return s
-end
-
--------------------------------------------------------------------------------
--- Checks if a given line is empty
--- @param line string with a line
--- @return true if line is empty, false otherwise
-
-function line_empty (line)
-       return (string.len(trim(line)) == 0)
-end
-
--------------------------------------------------------------------------------
--- Appends two string, but if the first one is nil, use to second one
--- @param str1 first string, can be nil
--- @param str2 second string
--- @return str1 .. " " .. str2, or str2 if str1 is nil
-
-function concat (str1, str2)
-       if str1 == nil or string.len(str1) == 0 then
-               return str2
-       else
-               return str1 .. " " .. str2
-       end
-end
-
--------------------------------------------------------------------------------
--- Split text into a list consisting of the strings in text,
--- separated by strings matching delim (which may be a pattern).
--- @param delim if delim is "" then action is the same as %s+ except that
--- field 1 may be preceded by leading whitespace
--- @usage split(",%s*", "Anna, Bob, Charlie,Dolores")
--- @usage split(""," x y") gives {"x","y"}
--- @usage split("%s+"," x y") gives {"", "x","y"}
--- @return array with strings
--- @see table.concat
-
-function split(delim, text)
-       local list = {}
-       if string.len(text) > 0 then
-               delim = delim or ""
-               local pos = 1
-               -- if delim matches empty string then it would give an endless loop
-               if string.find("", delim, 1) and delim ~= "" then
-                       error("delim matches empty string!")
-               end
-               local first, last
-               while 1 do
-                       if delim ~= "" then
-                               first, last = string.find(text, delim, pos)
-                       else
-                               first, last = string.find(text, "%s+", pos)
-                               if first == 1 then
-                                       pos = last+1
-                                       first, last = string.find(text, "%s+", pos)
-                               end
-                       end
-                       if first then -- found?
-                               table.insert(list, string.sub(text, pos, first-1))
-                               pos = last+1
-                       else
-                               table.insert(list, string.sub(text, pos))
-                               break
-                       end
-               end
-       end
-       return list
-end
-
--------------------------------------------------------------------------------
--- Comments a paragraph.
--- @param text text to comment with "--", may contain several lines
--- @return commented text
-
-function comment (text)
-       text = string.gsub(text, "\n", "\n-- ")
-       return "-- " .. text
-end
-
--------------------------------------------------------------------------------
--- Wrap a string into a paragraph.
--- @param s string to wrap
--- @param w width to wrap to [80]
--- @param i1 indent of first line [0]
--- @param i2 indent of subsequent lines [0]
--- @return wrapped paragraph
-
-function wrap(s, w, i1, i2)
-       w = w or 80
-       i1 = i1 or 0
-       i2 = i2 or 0
-       assert(i1 < w and i2 < w, "the indents must be less than the line width")
-       s = string.rep(" ", i1) .. s
-       local lstart, len = 1, string.len(s)
-       while len - lstart > w do
-               local i = lstart + w
-               while i > lstart and string.sub(s, i, i) ~= " " do i = i - 1 end
-               local j = i
-               while j > lstart and string.sub(s, j, j) == " " do j = j - 1 end
-               s = string.sub(s, 1, j) .. "\n" .. string.rep(" ", i2) ..
-                       string.sub(s, i + 1, -1)
-               local change = i2 + 1 - (i - j)
-               lstart = j + change
-               len = len + change
-       end
-       return s
-end
-
--------------------------------------------------------------------------------
--- Opens a file, creating the directories if necessary
--- @param filename full path of the file to open (or create)
--- @param mode mode of opening
--- @return file handle
-
-function posix.open (filename, mode)
-       local f = io.open(filename, mode)
-       if f == nil then
-               filename = string.gsub(filename, "\\", "/")
-               local dir = ""
-               for d in string.gfind(filename, ".-/") do
-                       dir = dir .. d
-                       posix.mkdir(dir)
-               end
-               f = io.open(filename, mode)
-       end
-       return f
-end
-
-
-----------------------------------------------------------------------------------
--- Creates a Logger with LuaLogging, if present. Otherwise, creates a mock logger.
--- @param options a table with options for the logging mechanism
--- @return logger object that will implement log methods
-
-function loadlogengine(options)
-       local logenabled = pcall(function()
-               require "logging"
-               require "logging.console"
-       end)
-
-       local logging = logenabled and logging
-
-       if logenabled then
-               if options.filelog then
-                       logger = logging.file("luadoc.log") -- use this to get a file log
-               else
-                       logger = logging.console("[%level] %message\n")
-               end
-
-               if options.verbose then
-                       logger:setLevel(logging.INFO)
-               else
-                       logger:setLevel(logging.WARN)
-               end
-
-       else
-               noop = {__index=function(...)
-                       return function(...)
-                               -- noop
-                       end
-               end}
-
-               logger = {}
-               setmetatable(logger, noop)
-       end
-
-       return logger
-end
diff --git a/package/luci/build/makedocs.sh b/package/luci/build/makedocs.sh
deleted file mode 100755 (executable)
index 955c58c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-
-topdir=$(pwd)
-
-[ -f "$topdir/build/makedocs.sh" -a -n "$1" ] || {
-       echo "Please execute as ./build/makedocs.sh [output directory]" >&2
-       exit 1
-}
-
-outdir=$(readlink -f "$1")
-
-mkdir -p "$outdir" || {
-       echo "Unable to mkdir '$outdir'" >&2
-       exit 1
-}
-
-(
-       cd "$topdir/build/luadoc/"
-       find "$topdir/libs/" "$topdir/modules/" -type f -name '*.lua' -or -name '*.luadoc' | \
-               xargs grep -l '@return' | xargs ./doc.lua --no-files -d "$outdir"
-)
diff --git a/package/luci/build/mkbasepot.sh b/package/luci/build/mkbasepot.sh
deleted file mode 100755 (executable)
index ce41e30..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-[ -d ./build ] || {
-       echo "Please execute as ./build/mkbasepot.sh" >&2
-       exit 1
-}
-
-echo -n "Updating modules/luci-base/po/templates/base.pot ... "
-
-./build/i18n-scan.pl \
-       modules/luci-base/ modules/luci-mod-admin-full/ \
-       modules/luci-mod-network modules/luci-mod-status modules/luci-mod-system/ \
-       protocols/ themes/ \
-> modules/luci-base/po/templates/base.pot
-
-echo "done"
diff --git a/package/luci/build/mkrevision.sh b/package/luci/build/mkrevision.sh
deleted file mode 100755 (executable)
index 02b7fa3..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-TOPDIR="${0%mkrevision.sh}"
-
-[ -d "$TOPDIR/../build" ] || {
-       echo "Please execute as ./build/mkrevision.sh" >&2
-       exit 1
-}
-
-(
-       cd "$TOPDIR"
-       if svn info >/dev/null 2>/dev/null; then
-               revision="svn-r$(LC_ALL=C svn info | sed -ne 's/^Revision: //p')"
-       elif git log -1 >/dev/null 2>/dev/null; then
-               revision="svn-r$(LC_ALL=C git log -1 | sed -ne 's/.*git-svn-id: .*@\([0-9]\+\) .*/\1/p')"
-               if [ "$revision" = "svn-r" ]; then
-                       set -- $(git log -1 --format="%ct %h")
-                       secs="$(($1 % 86400))"
-                       yday="$(date --utc --date="@$1" "+%y.%j")"
-                       revision="$(printf 'git-%s.%05d-%s' "$yday" "$secs" "$2")"
-               fi
-       else
-               revision="unknown"
-       fi
-
-       echo "$revision"
-)
diff --git a/package/luci/build/zoneinfo2lua.pl b/package/luci/build/zoneinfo2lua.pl
deleted file mode 100755 (executable)
index 1a0bee1..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-#!/usr/bin/perl
-# zoneinfo2lua.pl - Make Lua module from /usr/share/zoneinfo
-# Execute from within root of Luci feed, usually feeds/luci
-# $Id$
-
-use strict;
-
-my %TZ;
-
-my $tzdin  = $ARGV[0] || "/usr/share/zoneinfo";
-my $tzdout = $ARGV[1] || "./modules/luci-base/luasrc/sys/zoneinfo";
-
-local $/ = "\012";
-open( ZTAB, "< $tzdin/zone.tab" ) || die "open($tzdin/zone.tab): $!";
-
-while( ! eof ZTAB ) {
-       chomp( my $line = readline ZTAB );
-       next if $line =~ /^#/ || $line =~ /^\s+$/;
-
-       my ( undef, undef, $zone, @comment ) = split /\s+/, $line;
-
-       printf STDERR "%-40s", $zone;
-
-       if( open ZONE, "< $tzdin/$zone" ) {
-               seek ZONE, -2, 2;
-
-               while( tell(ZONE) > 0 ) {
-                       read ZONE, my $char, 1;
-                       ( $char eq "\012" ) ? last : seek ZONE, -2, 1;
-               }
-
-               chomp( my $tz = readline ZONE );
-               print STDERR ( $tz || "(no tzinfo found)" ), "\n";
-               close ZONE;
-
-               if( $tz ) {
-                       $zone =~ s/_/ /g;
-                       $TZ{$zone} = $tz;
-               }
-       }
-       else
-       {
-               print STDERR "open($tzdin/$zone): $!\n";
-       }
-}
-
-close ZTAB;
-
-# Add Etc/GMT zones from manually as they are not in zone.tab
-$TZ{"Etc/GMT"} = "GMT0";
-$TZ{"Etc/GMT-1"} = "<+01>-1";
-$TZ{"Etc/GMT-2"} = "<+02>-2";
-$TZ{"Etc/GMT-3"} = "<+03>-3";
-$TZ{"Etc/GMT-4"} = "<+04>-4";
-$TZ{"Etc/GMT-5"} = "<+05>-5";
-$TZ{"Etc/GMT-6"} = "<+06>-6";
-$TZ{"Etc/GMT-7"} = "<+07>-7";
-$TZ{"Etc/GMT-8"} = "<+08>-8";
-$TZ{"Etc/GMT-9"} = "<+09>-9";
-$TZ{"Etc/GMT-10"} = "<+10>-10";
-$TZ{"Etc/GMT-11"} = "<+11>-11";
-$TZ{"Etc/GMT-12"} = "<+12>-12";
-$TZ{"Etc/GMT-13"} = "<+13>-13";
-$TZ{"Etc/GMT-14"} = "<+14>-14";
-$TZ{"Etc/GMT+1"} = "<-01>1";
-$TZ{"Etc/GMT+2"} = "<-02>2";
-$TZ{"Etc/GMT+3"} = "<-03>3";
-$TZ{"Etc/GMT+4"} = "<-04>4";
-$TZ{"Etc/GMT+5"} = "<-05>5";
-$TZ{"Etc/GMT+6"} = "<-06>6";
-$TZ{"Etc/GMT+7"} = "<-07>7";
-$TZ{"Etc/GMT+8"} = "<-08>8";
-$TZ{"Etc/GMT+9"} = "<-09>9";
-$TZ{"Etc/GMT+10"} = "<-10>10";
-$TZ{"Etc/GMT+11"} = "<-11>11";
-$TZ{"Etc/GMT+12"} = "<-12>12";
-
-open(O, "> $tzdout/tzdata.lua") || die "open($tzdout/tzdata.lua): $!\n";
-
-print STDERR "Writing time zones to $tzdout/tzdata.lua ... ";
-print O <<HEAD;
--- Licensed to the public under the Apache License 2.0.
-
-module "luci.sys.zoneinfo.tzdata"
-
-TZ = {
-HEAD
-
-foreach my $zone ( sort keys %TZ ) {
-       printf O "\t{ '%s', '%s' },\n", $zone, $TZ{$zone}
-}
-
-print O "}\n";
-close O;
-
-print STDERR "done\n";
-
-
-open (O, "> $tzdout/tzoffset.lua") || die "open($tzdout/tzoffset.lua): $!\n";
-
-print STDERR "Writing time offsets to $tzdout/tzoffset.lua ... ";
-print O <<HEAD;
--- Licensed to the public under the Apache License 2.0.
-
-module "luci.sys.zoneinfo.tzoffset"
-
-OFFSET = {
-HEAD
-
-my %seen;
-foreach my $tz ( sort keys %TZ ) {
-       my $zone = $TZ{$tz};
-
-       if( $zone =~ /^
-               ([A-Z]+)
-               (?:
-                       ( -? \d+ (?: : \d+ )? )
-                       (?:
-                               ([A-Z]+)
-                               ( -? \d+ (?: : \d+ )? )? 
-                       )?
-               )?
-       \b /xo ) {
-               my ( $offset, $s, $h, $m ) = ( 0, 1, 0, 0 );
-               my ( $std, $soffset, $dst, $doffset ) = ( $1, $2, $3, $4 );
-
-               next if $seen{$std}; # and ( !$dst or $seen{$dst} );
-
-               if ( $soffset ) {
-                       ( $s, $h, $m ) = $soffset =~ /^(-)?(\d+)(?::(\d+))?$/;
-
-                       $s = $s ? 1 : -1;
-                       $h ||= 0;
-                       $m ||= 0;
-
-                       $offset  = $s * $h * 60 * 60;
-                       $offset += $s * $m * 60;
-
-                       printf O "\t%-5s = %6d,\t-- %s\n",
-                               lc($std), $offset, $std;
-
-                       $seen{$std} = 1;
-
-                       if( $dst ) {
-                               if( $doffset ) {
-                                       ( $s, $h, $m ) = $doffset =~ /^(-)?(\d+)(?::(\d+))?$/;
-
-                                       $s = $s ? 1 : -1;
-                                       $h ||= 0;
-                                       $m ||= 0;
-
-                                       $offset  = $s * $h * 60 * 60;
-                                       $offset += $s * $m * 60;
-                               } else  {
-                                       $offset += 60 * 60;
-                               }
-
-                               printf O "\t%-5s = %6d,\t-- %s\n",
-                                       lc($dst), $offset, $dst;
-       
-                               $seen{$dst} = 1;
-                       }
-               }
-               else {
-                       printf O "\t%-5s = %6d,\t-- %s\n",
-                               lc($std), $offset, $std;
-
-                       $seen{$std} = 1;
-               }
-
-       }
-}
-
-print O "}\n";
-close O;
-
-print STDERR "done\n";
diff --git a/package/luci/collections/luci-light/Makefile b/package/luci/collections/luci-light/Makefile
deleted file mode 100644 (file)
index 9eee97b..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TYPE:=col
-LUCI_BASENAME:=light
-
-LUCI_TITLE:=Minimum package set using only admin mini and the standard theme
-LUCI_DEPENDS:=+uhttpd +luci-mod-admin-mini +luci-theme-openwrt @BROKEN
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/collections/luci-ssl-openssl/Makefile b/package/luci/collections/luci-ssl-openssl/Makefile
deleted file mode 100644 (file)
index d1e752e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# Copyright (C) 2016 The LuCI Team
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TYPE:=col
-LUCI_BASENAME:=ssl-openssl
-
-LUCI_TITLE:=LuCI with HTTPS support (OpenSSL as SSL backend)
-LUCI_DESCRIPTION:=LuCI with OpenSSL as the SSL backend (libustream-openssl). \
- OpenSSL cmd tools (openssl-util) are used by uhttpd for SSL key generation \
- instead of the default px5g. (If px5g is installed, uhttpd will prefer that.)
-
-LUCI_DEPENDS:=+luci +libustream-openssl +openssl-util
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/collections/luci-ssl/Makefile b/package/luci/collections/luci-ssl/Makefile
deleted file mode 100644 (file)
index 399c982..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 2008-2016 The LuCI Team
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TYPE:=col
-LUCI_BASENAME:=ssl
-
-LUCI_TITLE:=LuCI with HTTPS support (mbedTLS as SSL backend)
-LUCI_DEPENDS:=+luci +libustream-mbedtls +px5g
-
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/collections/luci/Makefile b/package/luci/collections/luci/Makefile
deleted file mode 100644 (file)
index 739eb51..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TYPE:=col
-LUCI_BASENAME:=luci
-
-LUCI_TITLE:=LuCI interface with Uhttpd as Webserver (default)
-LUCI_DESCRIPTION:=Standard OpenWrt set including full admin with ppp support and the default Bootstrap theme
-LUCI_DEPENDS:= \
-       +uhttpd +luci-mod-admin-full +luci-theme-bootstrap \
-       +luci-app-firewall +luci-app-opkg +luci-proto-ppp +libiwinfo-lua +IPV6:luci-proto-ipv6 \
-       +rpcd-mod-rrdns
-
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/contrib/package/Makefile b/package/luci/contrib/package/Makefile
deleted file mode 100644 (file)
index f7fac77..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-include ../../build/config.mk
-include ../../build/module.mk
diff --git a/package/luci/contrib/package/community-profiles/Makefile b/package/luci/contrib/package/community-profiles/Makefile
deleted file mode 100644 (file)
index 1992b7c..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (C) 2011 Manuel Munz <freifunk at somakoma de>
-# This is free software, licensed under the Apache 2.0 license.
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=community-profiles
-PKG_RELEASE:=2
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/community-profiles
-  SECTION:=luci
-  CATEGORY:=LuCI
-  SUBMENU:=9. Freifunk
-  TITLE:=Community profiles
-  DEPENDS:=freifunk-common
-endef
-
-define Package/community-profiles/description
-  These community profiles set defaults for various free network/freifunk communities and are used by wizards like ffwizard and meshwizard.
-endef
-
-define Build/Prepare
-       mkdir -p $(PKG_BUILD_DIR)
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/community-profiles/install
-       $(CP) ./files/* $(1)/
-endef
-
-$(eval $(call BuildPackage,community-profiles))
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_Freifunk b/package/luci/contrib/package/community-profiles/files/etc/config/profile_Freifunk
deleted file mode 100644 (file)
index b8f445a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk'
-       option 'homepage' 'http://freifunk.net'
-       option 'ssid' 'www.freifunk.net'
-       option 'splash_network' '10.104.0.0/16'
-       option 'latitude' '52.000'
-       option 'longitude' '10.000'
-       option 'splash_prefix' '28'
-       option 'mesh_network' '10.0.0.0/8'
-
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_altmark b/package/luci/contrib/package/community-profiles/files/etc/config/profile_altmark
deleted file mode 100644 (file)
index 20d51b2..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Altmark'
-       option 'homepage' 'http://altmark.freifunk.net'
-       option 'ssid' 'altmark.freifunk.net'
-       option 'mesh_network' '10.59.0.0/16'
-       option 'latitude' '52.885'
-       option 'longitude' '11.15'
-       option 'suffix' 'olsr.altmark.freifunk.net'
-       option 'vap' '1'
-       option 'adhoc_dhcp_when_vap' '0'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.255.255'
-
-
-config 'defaults' 'bssidscheme'
-        option '1' '02:CA:FF:EE:BA:BE'
-        option '40' '02:40:CA:FF:EE:EE'
-
-config 'defaults' 'wifi_device'
-    option 'country' 'DE'
-
-config 'defaults' 'wifi_iface'
-    option 'mcast_rate' '6000'
-
-config 'defaults' 'olsrd'
-    option 'LinkQualityAlgorithm' 'etx_ff'
-
-
-config widget 'customindex'
-    option enabled '1'
-    option width '50%'
-    option paddingright '5%'
-    option template 'html'
-
-config widget 'rssffl'
-    option enabled '1'
-    option max '10'
-    option cache '3600'
-    option width '100%'
-    option title 'Freifunk Blog'
-    option template 'iframe'
-    option url 'http://freifunk.net'
-
-config widget 'rssbundesweit'
-    option cache '3600'
-    option width '50%'
-    option title 'bundesweiter Freifunk Blog'
-    option template 'rssfeed'
-    option enabled '1'
-    option max '10'
-    option url 'http://blog.freifunk.net/rss.xml'
-
-config widget 'clear1'
-    option template 'clear'
-    option enabled '1'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_arig_arad b/package/luci/contrib/package/community-profiles/files/etc/config/profile_arig_arad
deleted file mode 100644 (file)
index 55d012f..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-config 'community' 'profile'
-        option 'name' 'arig Arad'
-        option 'homepage' 'http://arig.org.il'
-        option 'ssid' 'arig.org.il'
-        option 'latitude' '31.26'
-        option 'longitude' '35.21'
-        option 'splash_prefix' '28'
-        option 'suffix' 'arig'
-        option 'mesh_network' '10.81.8.0/22'
-
-config 'defaults' 'bssidscheme'
-        option '1' '02:CA:FF:EE:BA:BE'
-        option '13' '13:CA:FF:EE:BA:BE'
-
-config 'defaults' 'wifi_device'
-        option 'channel' '13'
-        option 'country' 'IL'
-        option 'beacon_int' '5000'
-        option 'distance' '1500'
-
-config 'defaults' 'wifi_iface'
-        option 'mcast_rate' '6000'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_arig_neot_semadar b/package/luci/contrib/package/community-profiles/files/etc/config/profile_arig_neot_semadar
deleted file mode 100644 (file)
index 062b18e..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-config 'community' 'profile'
-        option 'name' 'arig Neot Semadar'
-        option 'homepage' 'http://www.neot-semadar.com'
-        option 'ssid' 'arig.org.il'
-        option 'latitude' '30.05'
-        option 'longitude' '35.02'
-        option 'splash_prefix' '272'
-        option 'suffix' 'arig'
-        option 'mesh_network' '10.81.12.0/22'
-
-config 'defaults' 'bssidscheme'
-        option '1' '02:CA:FF:EE:BA:BE'
-        option '13' '13:CA:FF:EE:BA:BE'
-
-config 'defaults' 'wifi_device'
-        option 'channel' '13'
-        option 'country' 'IL'
-        option 'beacon_int' '5000'
-        option 'distance' '1500'
-
-config 'defaults' 'wifi_iface'
-        option 'mcast_rate' '6000'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_arig_tel-aviv b/package/luci/contrib/package/community-profiles/files/etc/config/profile_arig_tel-aviv
deleted file mode 100644 (file)
index fe7df22..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-config 'community' 'profile'
-        option 'name' 'arig Tel Aviv'
-        option 'homepage' 'http://arig.org.il'
-        option 'ssid' 'arig.org.il'
-        option 'latitude' '32.056'
-        option 'longitude' '34.772'
-        option 'splash_prefix' '28'
-        option 'suffix' 'arig'
-        option 'mesh_network' '10.81.0.0/21'
-
-config 'defaults' 'bssidscheme'
-        option '1' '02:CA:FF:EE:BA:BE'
-        option '13' '13:CA:FF:EE:BA:BE'
-
-config 'defaults' 'wifi_device'
-        option 'channel' '13'
-        option 'country' 'IL'
-        option 'beacon_int' '5000'
-        option 'distance' '1500'
-
-config 'defaults' 'wifi_iface'
-        option 'mcast_rate' '6000'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_augsburg b/package/luci/contrib/package/community-profiles/files/etc/config/profile_augsburg
deleted file mode 100644 (file)
index 4ab82cf..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Augsburg'
-       option 'homepage' 'http://augsburg.freifunk.net'
-       option 'ssid' 'augsburg.freifunk.net'
-       option 'mesh_network' '10.11.0.0/18'
-       option 'splash_network' '10.104.0.0/16'
-       option 'latitude' '48.37071'
-       option 'longitude' '10.89475'
-       option 'suffix' 'ffa'
-       option 'splash_prefix' '27'
-       option 'vap' '1'
-       option adhoc_dhcp_when_vap '1'
-       option 'ipv6' '1'
-       option 'ipv6_config' 'auto-ipv6-fromv4'
-       option 'ipv6_prefix' 'fdca:ffee:ffa::/48'
-       #option 'extrapackages' ''
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.192.0'
-
-config 'defaults' 'bssidscheme'
-       option '1'      '02:CA:FF:EE:BA:BE'
-
-config 'defaults' 'luci_splash'
-       option 'limit_up' '40'
-       option 'limit_down' '120'
-       option 'leasetime' '8'
-
-config widget 'customindex'
-       option enabled '1'
-       option width '50%'
-       option paddingright '5%'
-       option template 'html'
-
-config widget 'rssffa'
-       option enabled '1'
-       option max '10'
-       option cache '3600'
-       option width '50%'
-       option title 'Freifunk Augsburg Blog'
-       option template 'rssfeed'
-       option url 'http://augsburg.freifunk.net/blog?type=100'
-
-config widget 'rssaugsburg'
-       option cache '3600'
-       option width '50%'
-       option title 'Augsburger Blogs'
-       option template 'rssfeed'
-       option enabled '1'
-       option max '10'
-       option url 'http://wgaugsburg.de/augsburg/rss20.xml'
-
-config widget 'search'
-       option template 'search'
-       option title 'Search'
-       option enabled '1'
-       option width '50%'
-       list engine 'Google|http://www.google.de/search?q=' 
-       list engine 'Freifunk&#160;Augsburg|http://www.google.de/search?q=site:augsburg.freifunk.net+'
-       list engine 'Freifunk&#160;Wiki|http://wiki.freifunk.net/index.php?search='
-
-config widget 'clear1'
-       option template 'clear'
-       option enabled '1'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_bayreuth b/package/luci/contrib/package/community-profiles/files/etc/config/profile_bayreuth
deleted file mode 100644 (file)
index 90fccbd..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-config 'community' 'profile'
-        option 'name' 'Freifunk Bayreuth'
-        option 'homepage' 'http://bayreuth.freifunk.net'
-        option 'ssid' 'bayreuth.freifunk.net'
-        option 'mesh_network' '10.195.0.0/16'
-        option 'splash_network' '10.104.0.0/16'
-        option 'latitude' '49.945812'
-        option 'longitude' '11.575045'
-        option 'suffix' 'ffbt'
-        option 'splash_prefix' '28'
-
-config 'defaults' 'interface'
-        option 'netmask' '255.255.192.0'
-
-config 'defaults' 'wifi_device'
-        option 'channel' '4'
-
-config 'defaults' 'wifi_iface'
-        option 'bssid' '42:CA:FF:EE:BA:BE'
-
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_bergischesland b/package/luci/contrib/package/community-profiles/files/etc/config/profile_bergischesland
deleted file mode 100644 (file)
index 0de4543..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-config 'community'     'profile'
-       option 'name' 'Piratenfreifunk Bergisches Land'
-       option 'homepage' 'http://www.piraten-bergisches-land.de'
-       option 'ssid' 'PiratenfunkBL'
-       option 'mesh_network' '10.3.0.0/16'
-       option 'splash_network' '192.168.0.0/16'
-       option 'splash_prefix' '27'
-       option 'latitude' '51.26849'
-       option 'longitude' '7.19476'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '11'
-
-config 'defaults' 'wifi_iface'
-       option 'bssid' '02:40:00:42:42:42'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_berlin b/package/luci/contrib/package/community-profiles/files/etc/config/profile_berlin
deleted file mode 100644 (file)
index e4388c7..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Berlin'
-       option 'homepage' 'http://berlin.freifunk.net'
-       option 'ssid' 'berlin.freifunk.net'
-       option 'ssid_scheme' 'addchannelbefore'
-       option 'mesh_network' '10.0.0.0/8'
-       option 'splash_network' '10.104.0.0/16'
-       option 'splash_prefix' '27'
-       option 'latitude' '52.52075'
-       option 'longitude' '13.40948'
-       option 'owm_api' 'http://util.berlin.freifunk.net'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '13'
-
-config 'defaults' 'wifi_device_5'
-       option 'channel' '36'
-
-config 'defaults' 'wifi_iface'
-       option 'mcast_rate' '6000'
-
-config 'defaults' 'wifi_iface_5'
-       option 'mcast_rate' '12000'
-
-config 'defaults' 'bssidscheme'
-       option '10'     '02:CA:FF:EE:BA:BE'
-       option '13'     'D2:CA:FF:EE:BA:BE'
-       option '36'     '02:36:CA:FF:EE:EE'
-
-config 'defaults' 'ssidscheme'
-       option '13'     'intern-ch13.freifunk.net'
-       option '36'     'intern-ch36.freifunk.net'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.255.255'
-       option 'dns' '85.214.20.141 80.67.169.40 194.150.168.168 2001:4ce8::53 2001:910:800::12'
-
-config 'dhcp' 'dhcp'
-       option leasetime '5m'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_carbodebit b/package/luci/contrib/package/community-profiles/files/etc/config/profile_carbodebit
deleted file mode 100644 (file)
index 0b263f9..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'carbodebit'
-       option 'homepage' 'http://carbodebit.net'
-       option 'ssid' 'VHDCARBES'
-       option 'mesh_network' '10.72.1.0/24'
-       option 'latitude' '43.633683'
-       option 'longitude' '2.160894'
-
-config 'defaults' 'wifi_iface'
-       option 'bssid' 'DE:78:70:E4:FA:B8'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.255.0'
-       option 'dns' '10.70.1.1 213.190.64.170 213.190.64.166'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '11'
-       option 'country' 'FR'
-       option 'distance' '2000'
-
-config 'defaults' 'bssidscheme'
-       option 'all'      'DE:78:70:E4:FA:B8'
-
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_cottbus b/package/luci/contrib/package/community-profiles/files/etc/config/profile_cottbus
deleted file mode 100644 (file)
index 6c7f4b6..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Cottbus'
-       option 'homepage' 'http://cottbus.freifunk.net'
-       option 'ssid' 'cottbus.freifunk.net'
-       option 'ssid_scheme' 'ssidonly'
-       option 'mesh_network' '10.35.0.0/16'
-       option 'splash_network' '10.104.0.0/16'
-       option 'splash_prefix' '27'
-       option 'latitude' '51.757689'
-       option 'longitude' '13.40948'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '13'
-
-config 'defaults' 'wifi_device_5'
-       option 'channel' '36'
-
-config 'defaults' 'wifi_iface'
-       option 'mcast_rate' '6000'
-
-config 'defaults' 'wifi_iface_5'
-       option 'mcast_rate' '12000'
-
-config 'defaults' 'bssidscheme'
-       option '13'     'D2:CA:FF:EE:BA:BE'
-       option '36'     '02:36:CA:FF:EE:EE'
-
-config 'defaults' 'ssidscheme'
-       option '13'     'intern-ch13.cottbus.freifunk.net'
-       option '36'     'intern-ch36.cottbus.freifunk.net'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.255.255'
-       option 'dns' '85.214.20.141 80.67.169.40 194.150.168.168 2001:4ce8::53 2001:910:800::12'
-
-config 'dhcp' 'dhcp'
-       option 'leasetime' '5m'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_demo b/package/luci/contrib/package/community-profiles/files/etc/config/profile_demo
deleted file mode 100644 (file)
index c11a74f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Demo'
-       option 'homepage' 'http://www.freifunk.net'
-       option 'ssid' 'demo.freifunk.net'
-       option 'mesh_network' '10.11.12.0/24'
-       option 'latitude' '51.163375'
-       option 'longitude' '10.447683'
-       option 'suffix' 'ff'
-       option 'vap' '1'
-       option adhoc_dhcp_when_vap '1'
-       option 'ipv6' '1'
-       option 'ipv6_config' 'auto-ipv6-fromv4'
-       option 'ipv6_prefix' 'fdca:ffff:ffff::/48'
-       #option 'extrapackages' ''
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.255.0'
-
-config 'defaults' 'luci_splash'
-       option 'limit_up' '50'
-       option 'limit_down' '200'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_duesseldorf b/package/luci/contrib/package/community-profiles/files/etc/config/profile_duesseldorf
deleted file mode 100644 (file)
index cb36aab..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Duesseldorf'
-       option 'homepage' 'http://freifunk-duesseldorf.de'
-       option 'ssid' 'duesseldorf.freifunk.net'
-       option 'mesh_network' '10.40.0.0/16'
-       option 'splash_network' '10.104.0.0/16'
-       option 'splash_prefix' '27'
-       option 'latitude' '51.217812'
-       option 'longitude' '6.761564'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '3'
-
-config 'defaults' 'wifi_iface'
-       option 'bssid' '02:CA:FF:EE:BA:BE'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_erfurt b/package/luci/contrib/package/community-profiles/files/etc/config/profile_erfurt
deleted file mode 100644 (file)
index dba31a0..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Erfurt'
-       option 'homepage' 'http://erfurt.freifunk.net'
-       option 'ssid' 'erfurt.freifunk.net'
-       option 'mesh_network' '10.99.0.0/16'
-       option 'latitude' '50.9768'
-       option 'longitude' '11.02367'
-       option 'suffix' 'olsr.erfurt.freifunk.net'
-       option 'vap' '1'
-       option 'adhoc_dhcp_when_vap' '0'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.0.0'
-
-config 'defaults' 'bssidscheme'
-       option '1' '02:CA:FF:EE:BA:BE'
-
-config 'defaults' 'olsrd'
-    option 'LinkQualityAlgorithm' 'etx_ff'
-
-
-config widget 'customindex'
-    option enabled '1'
-    option width '50%'
-    option paddingright '5%'
-    option template 'html'
-
-config widget 'rssffl'
-    option enabled '1'
-    option max '10'
-    option cache '3600'
-    option width '100%'
-    option title 'Freifunk Blog'
-    option template 'iframe'
-    option url 'http://freifunk.net'
-
-config widget 'rssbundesweit'
-    option cache '3600'
-    option width '50%'
-    option title 'bundesweiter Freifunk Blog'
-    option template 'rssfeed'
-    option enabled '1'
-    option max '10'
-    option url 'http://blog.freifunk.net/rss.xml'
-
-config widget 'clear1'
-    option template 'clear'
-    option enabled '1'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_evernet b/package/luci/contrib/package/community-profiles/files/etc/config/profile_evernet
deleted file mode 100644 (file)
index 0545360..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Evernet eG'
-       option 'homepage' 'http://www.evernet-eg.de'
-       option 'ssid' 'evernet.freifunk.net'
-       option 'mesh_network' '10.0.0.0/8'
-       option 'latitude' '51.15692062509162'
-       option 'longitude' '10.716041922569275'
-       option 'suffix' 'evernet'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.0.0.0'
-
-config 'defaults' 'bssidscheme'
-       option 'all'    '02:CA:FF:EE:BA:BE'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '13'
-       option 'country' 'DE'
-       option 'txpower' '19'
-       option 'beacon_int' '5000'
-       option 'distance' '1500'
-       option 'noscan' '0'
-
-config 'defaults' 'wifi_iface'
-       option 'mcast_rate' '6000'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_freiburg b/package/luci/contrib/package/community-profiles/files/etc/config/profile_freiburg
deleted file mode 100644 (file)
index eee3d6a..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-config 'community' 'profile'
-  option 'name' 'Freifunk Freiburg'
-  option 'homepage' 'http://freiburg.freifunk.net'
-  option 'ssid' '02:CA:FF:EE:BA:BE'
-  option 'mesh_network' '10.60.0.0/16'
-  option 'latitude' '47.994841'
-  option 'longitude' '7.849772'
-  option 'suffix' 'olsr.freiburg.freifunk.net'
-  option 'vap' '1'
-  option 'adhoc_dhcp_when_vap' '0'
-
-config 'defaults' 'interface'
-  option 'netmask' '255.255.255.255'
-
-config 'defaults' 'bssidscheme'
-  option '1' '02:CA:FF:EE:BA:BE'
-  option '40' '02:40:CA:FF:EE:EE'
-
-config 'defaults' 'wifi_device'
-  option 'country' 'DE'
-
-config 'defaults' 'wifi_iface'
-  option 'mcast_rate' '6000'
-
-config 'defaults' 'olsrd'
-  option 'LinkQualityAlgorithm' 'etx_ff'
-
-config widget 'customindex'
-  option enabled '1'
-  option width '50%'
-  option paddingright '5%'
-  option template 'html'
-
-config widget 'rssbundesweit'
-  option cache '3600'
-  option width '50%'
-  option title 'bundesweiter Freifunk Blog'
-  option template 'rssfeed'
-  option enabled '1'
-  option max '10'
-  option url 'http://blog.freifunk.net/rss.xml'
-
-config widget 'clear1'
-  option template 'clear'
-  option enabled '1'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_fuerstenwalde b/package/luci/contrib/package/community-profiles/files/etc/config/profile_fuerstenwalde
deleted file mode 100644 (file)
index f7df7ba..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Fürstenwalde'
-       option 'homepage' 'http://fuerstenwalde.freifunk.net'
-       option 'ssid' 'fuerstenwalde.freifunk.net'
-       option 'ssid_scheme' 'addchannelbefore'
-       option 'mesh_network' '10.0.0.0/8'
-       option 'splash_network' '10.104.0.0/16'
-       option 'splash_prefix' '27'
-       option 'latitude' '52.35844'
-       option 'longitude' '14.063696'
-       option 'owm_api' 'http://util.berlin.freifunk.net'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '13'
-
-config 'defaults' 'wifi_device_5'
-       option 'channel' '36'
-
-config 'defaults' 'wifi_iface'
-       option 'mcast_rate' '6000'
-
-config 'defaults' 'wifi_iface_5'
-       option 'mcast_rate' '12000'
-
-config 'defaults' 'bssidscheme'
-       option '13'     'D2:CA:FF:EE:BA:BE'
-       option '36'     '02:36:CA:FF:EE:EE'
-
-config 'defaults' 'ssidscheme'
-       option '13'     'intern-ch13.freifunk.net'
-       option '36'     'intern-ch36.freifunk.net'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.255.255'
-       option 'dns' '85.214.20.141 80.67.169.40 194.150.168.168 2001:4ce8::53 2001:910:800::12'
-
-config 'dhcp' 'dhcp'
-option leasetime '5m'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_gadow b/package/luci/contrib/package/community-profiles/files/etc/config/profile_gadow
deleted file mode 100644 (file)
index bc4a203..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Gadow'
-       option 'homepage' 'http://gadow.freifunk.net'
-       option 'ssid' 'gadow.freifunk.net'
-       option 'mesh_network' '10.61.0.0/16'
-       option 'latitude' '53.11'
-       option 'longitude' '12.61'
-       option 'vap' '1'
-       option 'adhoc_dhcp_when_vap' '0'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.255.255'
-
-
-config 'defaults' 'bssidscheme'
-        option '1' '02:CA:FF:EE:BA:BE'
-        option '40' '02:40:CA:FF:EE:EE'
-
-config 'defaults' 'wifi_device'
-    option 'country' 'DE'
-
-config 'defaults' 'wifi_iface'
-    option 'mcast_rate' '6000'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_guifibages b/package/luci/contrib/package/community-profiles/files/etc/config/profile_guifibages
deleted file mode 100644 (file)
index a0fc4fc..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-config 'community' 'profile'
-        option 'name' 'Guifi Bages'
-        option 'homepage' 'http://guifi.net/PlaBages'
-        option 'ssid' 'guifibages'
-        option 'mesh_network' '10.224.3.0/16'
-        option 'splash_network' '10.104.0.0/16'
-       option 'theme' 'luci-theme-freifunk-generic'
-        option 'latitude' '41.718437'
-        option 'longitude' '1.826477'
-        option 'suffix' 'guifibages.cat'
-        option 'splash_prefix' '27'
-       option 'extrapackages' 'luci-app-olsr-viz luci-i18n-catalan'
-
-config 'defaults' 'interface'
-        option 'netmask' '255.255.0.0'
-
-config 'defaults' 'bssidscheme'
-       option 'all'    '12:34:56:78:9a:bc'
-
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_halle b/package/luci/contrib/package/community-profiles/files/etc/config/profile_halle
deleted file mode 100644 (file)
index 30d0e8f..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Halle'
-       option 'homepage' 'http://freifunk-halle.org'
-       option 'ssid' 'halle.freifunk.net'
-       option 'mesh_network' '10.62.0.0/16'
-       option 'splash_network' '6.0.0.0/8'
-       option 'splash_prefix' '27'
-       option 'latitude' '51.47911'
-       option 'longitude' '11.96901'
-       option 'adhoc_dhcp_when_vap' '0'
-       option 'suffix' 'ffhal'
-       option 'vap' '1'
-       option 'batman' '1'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '13'
-       option 'country' 'DE'
-
-config 'defaults' 'bssidscheme'
-       option 'all' '02:CA:FF:EE:BA:BE'
-
-config 'defaults' 'luci_splash'
-       option 'redirect_url' 'http://freifunk-halle.org/willkommen.php'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.255.255'
-
-config 'defaults' 'wifi_iface'
-       option 'mcast_rate' '6000'
-
-config 'defaults' 'dhcp'
-       option 'leasetime' '5m'
-
-config 'defaults' 'olsrd'
-       option 'AllowNoInt' 'yes'
-       option 'FIBMetric' 'flat'
-       option 'Pollrate' '0.025'
-       option 'TcRedundancy' '2'
-       option 'NatThreshold' '0.75'
-       option 'LinkQualityAlgorithm' 'etx_ff'
-       option 'LinkQualityFishEye' '1'
-       option 'Willingness' '3'
-
-config 'defaults' 'olsr_interface'
-       option 'Ip4Broadcast' '255.255.255.255'
-       option 'HelloInterval' '5.0'
-       option 'HelloValidityTime' '125.0'
-       option 'TcInterval'  '3.0'
-       option 'TcValidityTime' '375.0'
-       option 'MidInterval' '25.0'
-       option 'MidValidityTime'  '375.0'
-       option 'HnaInterval' '25.0'
-       option 'HnaValidityTime' '375.0'
-
-config widget 'rsshalle'
-       option cache '3600'
-       option width '50%'
-       option title 'neuste Foreneinträge in Halle'
-       option template 'rssfeed'
-       option enabled '1'
-       option max '5'
-       option url 'http://www.freifunk-halle.org/rss.php'
-
-config widget 'rssbundesweit'
-       option cache '3600'
-       option width '50%'
-       option title 'bundesweiter Freifunk Blog'
-       option template 'rssfeed'
-       option enabled '1'
-       option max '10'
-       option url 'http://blog.freifunk.net/rss.xml'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_hameln b/package/luci/contrib/package/community-profiles/files/etc/config/profile_hameln
deleted file mode 100644 (file)
index f305b59..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Hameln'
-       option 'homepage' 'http://freifunk-hameln.de'
-       option 'ssid' 'hameln.freifunk.net'
-       option 'suffix' 'ffhm'
-       option 'latitude' '52.1030706'
-       option 'longitude' '9.3514778'
-       option 'mesh_network' '10.31.0.0/16'
-       option 'splash_network' '10.104.0.0/16'
-       option 'splash_prefix' '27'
-       option 'vap' '1'
-       option adhoc_dhcp_when_vap '1'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.0.0'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_hooge b/package/luci/contrib/package/community-profiles/files/etc/config/profile_hooge
deleted file mode 100644 (file)
index 62f6fa9..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Hooge'
-       option 'homepage' 'http://hooge.freifunk.net'
-       option 'ssid' 'hooge.freifunk.net'
-       option 'mesh_network' '10.11.128.0/24'
-       option 'splash_network' '10.104.0.0/16'
-       option 'latitude' '54.572161'
-       option 'longitude' '8.559551'
-       option 'suffix' 'hooge'
-       option 'splash_prefix' '27'
-        option 'vap' '1'
-       option 'extrapackages' ''
-        list 'owm_api' 'http://api.openwifimap.net'
-        list 'owm_api' 'http://owmapi.pberg.freifunk.net'
-        option 'mapserver' 'http://openwifimap.net/'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.255.0'
-
-config 'defaults' 'luci_splash'
-       option 'limit_up' '20'
-       option 'limit_down' '50'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_kiberpipa b/package/luci/contrib/package/community-profiles/files/etc/config/profile_kiberpipa
deleted file mode 100644 (file)
index c2a96e4..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Kiberpipa.net'
-       option 'homepage' 'http://www.kiberpipa.net'
-       option 'ssid' 'open.kiberpipa.net'
-       option 'mesh_network' '10.14.0.0/16'
-       option 'splash_network' '10.14.128.0/17'
-       option 'splash_prefix' '27'
-       option 'latitude' '46.05063'
-       option 'longitude' '14.50402'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '8'
-
-config 'defaults' 'interface'
-       option 'dns' '10.14.0.1 208.67.222.220 208.67.220.222'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_kyritz b/package/luci/contrib/package/community-profiles/files/etc/config/profile_kyritz
deleted file mode 100644 (file)
index f97e79f..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Kyritz'
-       option 'homepage' 'http://kyritz.freifunk.net'
-       option 'ssid' 'mesh.freifunk.net'
-       option 'mesh_network' '104.59.0.0/16'
-       option 'latitude' '52.94'
-       option 'longitude' '12.4'
-       option 'suffix' 'olsr.kyritz.freifunk.net'
-       option 'vap' '1'
-       option 'adhoc_dhcp_when_vap' '0'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.255.255'
-
-
-config 'defaults' 'bssidscheme'
-        option '1' '02:CA:FF:EE:BA:BE'
-        option '40' '02:40:CA:FF:EE:EE'
-
-config 'defaults' 'wifi_device'
-    option 'country' 'DE'
-
-config 'defaults' 'wifi_iface'
-    option 'mcast_rate' '6000'
-
-
-config 'defaults' 'olsrd'
-    option 'LinkQualityAlgorithm' 'etx_ff'
-
-
-config widget 'customindex'
-    option enabled '1'
-    option width '50%'
-    option paddingright '5%'
-    option template 'html'
-
-config widget 'rssffl'
-    option enabled '1'
-    option max '10'
-    option cache '3600'
-    option width '100%'
-    option title 'Freifunk Blog'
-    option template 'iframe'
-    option url 'http://freifunk.net'
-
-config widget 'rssbundesweit'
-    option cache '3600'
-    option width '50%'
-    option title 'bundesweiter Freifunk Blog'
-    option template 'rssfeed'
-    option enabled '1'
-    option max '10'
-    option url 'http://blog.freifunk.net/rss.xml'
-
-config widget 'clear1'
-    option template 'clear'
-    option enabled '1'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_l59 b/package/luci/contrib/package/community-profiles/files/etc/config/profile_l59
deleted file mode 100644 (file)
index 5e6f472..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk L59'
-       option 'homepage' 'http://freifunk.net'
-       option 'ssid' 'freifunk.net'
-       option 'mesh_network' '10.59.0.0/16'
-       option 'splash_network' '6.59.0.0/16'
-       option 'splash_prefix' '27'
-       option 'latitude' '52.26337'
-       option 'longitude' '10.52103'
-       option 'vap' '1'
-       option 'adhoc_dhcp_when_vap' '0'
-
-config 'defaults' 'interface'
-    option 'netmask' '255.255.255.255'
-
-
-config 'defaults' 'bssidscheme'
-        option '1' '02:CA:FF:EE:BA:BE'
-        option '40' '02:40:CA:FF:EE:EE'
-
-config 'defaults' 'wifi_device'
-    option 'country' 'DE'
-
-config 'defaults' 'wifi_iface'
-    option 'mcast_rate' '6000'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_leipzig b/package/luci/contrib/package/community-profiles/files/etc/config/profile_leipzig
deleted file mode 100644 (file)
index 671f3e8..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Leipzig'
-       option 'homepage' 'http://leipzig.freifunk.net'
-       option 'ssid' 'leipzig.freifunk.net'
-       option 'mesh_network' '10.61.0.0/16'
-       option 'latitude' '51.33348'
-       option 'longitude' '12.40297'
-       option 'suffix' 'olsr.leipzig.freifunk.net'
-       option 'vap' '1'
-       option 'adhoc_dhcp_when_vap' '0'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.255.255'
-
-config 'defaults' 'bssidscheme'
-       option '1' '02:CA:FF:EE:BA:BE'
-       option '40' '02:40:CA:FF:EE:EE'
-
-config 'defaults' 'wifi_device'
-    option 'country' 'DE'
-
-config 'defaults' 'wifi_iface'
-    option 'mcast_rate' '6000'
-
-config 'defaults' 'olsrd'
-    option 'LinkQualityAlgorithm' 'etx_ff'
-
-
-config widget 'customindex'
-    option enabled '1'
-    option width '50%'
-    option paddingright '5%'
-    option template 'html'
-
-config widget 'rssffl'
-    option enabled '1'
-    option max '10'
-    option cache '3600'
-    option width '100%'
-    option title 'Freifunk Leipzig Blog'
-    option template 'iframe'
-    option url 'http://leipzig.freifunk.net'
-
-config widget 'rssbundesweit'
-    option cache '3600'
-    option width '50%'
-    option title 'bundesweiter Freifunk Blog'
-    option template 'rssfeed'
-    option enabled '1'
-    option max '10'
-    option url 'http://blog.freifunk.net/rss.xml'
-
-config widget 'clear1'
-    option template 'clear'
-    option enabled '1'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_marburg b/package/luci/contrib/package/community-profiles/files/etc/config/profile_marburg
deleted file mode 100644 (file)
index 18cff80..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Marburg'
-       option 'homepage' ' http://marburg.freifunk.de'
-       option 'ssid' 'marburg.freifunk.net'
-       option 'mesh_network' '10.128.0.0/16'
-       option 'splash_network' '10.104.0.0/16'
-       option 'splash_prefix' '29'
-       option 'latitude' '49.63939'
-       option 'longitude' '8.633718'
-
-config 'defaults' 'interface'
-       option 'dns' '8.8.8.8 212.204.49.83'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_oldenburg b/package/luci/contrib/package/community-profiles/files/etc/config/profile_oldenburg
deleted file mode 100644 (file)
index e967fdb..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Oldenburg'
-       option 'homepage' 'http://oldenburg.freifunk.net'
-       option 'ssid' 'oldenburg.freifunk.net'
-       option 'mesh_network' '10.18.0.0/16'
-       option 'splash_network' '10.104.0.0/16'
-       option 'splash_prefix' '27'
-       option 'latitude' '53.14083'
-       option 'longitude' '8.21314'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '6'
-
-config 'defaults' 'wifi_iface'
-       option 'bssid' '02:CA:FF:EE:BA:BE'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_openwireless_bern b/package/luci/contrib/package/community-profiles/files/etc/config/profile_openwireless_bern
deleted file mode 100644 (file)
index 810ad8f..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Openwireless Bern'
-       option 'homepage' 'http://bern.openwireless.ch/'
-       option 'ssid' 'www.openwireless.ch'
-       option 'mesh_network' '10.247.0.0/16'
-       option 'splash_network' '10.104.0.0/16'
-       option 'splash_prefix' '27'
-       option 'latitude' '50.814788'
-       option 'longitude' '8.769239'
-
-config 'defaults' 'interface'
-       option 'dns' '208.67.222.222 208.67.220.220'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '10'
-       option 'country' '756'
-
-
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_piraten_dresden b/package/luci/contrib/package/community-profiles/files/etc/config/profile_piraten_dresden
deleted file mode 100644 (file)
index 2af0e31..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Piratenfreifunk Dresden'
-       option 'homepage' 'http://www.piraten-sachsen.de/'
-       option 'ssid' 'dresden.freifunk.net'
-       option 'mesh_network' '10.12.0.0/16'
-       option 'splash_network' '10.104.0.0/16'
-       option 'splash_prefix' '27'
-       option 'latitude' '51.05081'
-       option 'longitude' '13.73420'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '1'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_potsdam b/package/luci/contrib/package/community-profiles/files/etc/config/profile_potsdam
deleted file mode 100644 (file)
index 78db579..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Potsdam'
-       option 'homepage' 'http://potsdam.freifunk.net'
-       option 'ssid' 'freifunk-potsdam.de'
-       option 'mesh_network' '10.22.0.0/16'
-       option 'splash_network' '192.168.22.0/24'
-       option 'splash_prefix' '24'
-       option 'latitude' '52.39349'
-       option 'longitude' '13.06489'
-       option 'ipv6' '0'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.0.0'
-       option 'dns' '85.214.20.141 80.67.169.40 194.150.168.168'
-       option 'delegate' '0'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '5'
-
-config 'defaults' 'wifi_device_5'
-       option 'channel' '44'
-
-config 'defaults' 'bssidscheme'
-       option '5' '02:CA:FF:EE:BA:BE'
-       option '44' '02:CA:FF:EE:BA:BE'
-
-config 'defaults' 'ssidscheme'
-       option '5' 'Mesh23'
-       option '44' 'Mesh23'
-
-config 'defaults' 'dhcp'
-       option 'leasetime' '15m'
-
-config 'defaults' 'olsrd'
-       option 'LinkQualityAlgorithm' 'etx_ffeth'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_reihen b/package/luci/contrib/package/community-profiles/files/etc/config/profile_reihen
deleted file mode 100644 (file)
index a05d6a2..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Reihen'
-       option 'homepage' 'http://freifunk.reihen.de'
-       option 'ssid' 'freifunk.reihen.de'
-       option 'mesh_network' '172.23.0.0/16'
-       option 'splash_network' '172.23.26.0/29'
-       option 'latitude' '49.21'
-       option 'longitude' '8.91'
-       option 'splash_prefix' '29'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.0.0'
-       option 'dns' '172.23.25.204 172.23.31.237 141.1.1.1'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '13'
-       option 'bssid' '02:07:04:08:08:09'
-
-config 'defaults' 'bssidscheme'
-       option '13'     '02:07:04:08:08:09'
-       option '36'     '02:36:CA:FF:EE:EE'
-
-config 'defaults' 'ssidscheme'
-       option '13'     'ch13.freifunk.net'
-       option '36'     'ch36.freifunk.net'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_rosbach b/package/luci/contrib/package/community-profiles/files/etc/config/profile_rosbach
deleted file mode 100644 (file)
index 4444f70..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Rosbach'
-       option 'homepage' 'freifunk-rosbach.de'
-       option 'ssid' 'rosbach.freifunk.net'
-       option 'mesh_network' '10.212.0.0/16'
-       option 'splash_network' '10.104.0.0/16'
-       option 'splash_prefix' '27'
-       option 'latitude' '50.18'
-       option 'longitude' '8.42'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '13'
-
-config 'defaults' 'wifi_iface'
-       option 'bssid' 'D2:CA:FF:EE:BA:BE'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_schwarzach b/package/luci/contrib/package/community-profiles/files/etc/config/profile_schwarzach
deleted file mode 100644 (file)
index c973ca0..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Schwarzach'
-       option 'homepage' 'http://schwarzach.freifunk.net'
-       option 'ssid' 'schwarzach.freifunk.net'
-       option 'mesh_network' '10.81.0.0/20'
-       option 'splash_network' '10.104.0.0/16'
-       option 'latitude' '49.373'
-       option 'longitude' '8.983'
-       option 'splash_prefix' '27'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.240.0'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_stuttgart b/package/luci/contrib/package/community-profiles/files/etc/config/profile_stuttgart
deleted file mode 100644 (file)
index 28d60d8..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-config 'community' 'profile'
-        option 'name' 'Freifunk Stuttgart'
-        option 'homepage' 'http://freifunk-stuttgart.de'
-        option 'ssid' 'Freifunk Stuttgart'
-        option 'mesh_network' '172.21.0.0/16'
-        option 'splash_network' '10.104.0.0/16'
-        option 'latitude' '48'
-        option 'longitude' '9'
-        option 'splash_prefix' '27'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '5'
-       option 'bssid' '52:CA:FF:EE:BA:BE'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_tulumlibre b/package/luci/contrib/package/community-profiles/files/etc/config/profile_tulumlibre
deleted file mode 100644 (file)
index ceaff2a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'tulumlibre'
-       option 'ssid' 'tulumlibre'
-       option 'mesh_network' '10.39.128.0/18'
-       option 'latitude' '20.2106708'
-       option 'longitude' '-87.4629471'
-       option 'splash_prefix' '28'
-
-config 'defaults' 'interface'
-       option 'dns' '80.67.169.40 216.87.84.211'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_vogtland b/package/luci/contrib/package/community-profiles/files/etc/config/profile_vogtland
deleted file mode 100644 (file)
index 8baeec6..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Vogtland'
-       option 'homepage' 'http://wiki.freifunk.net/Freifunk_Vogtland'
-       option 'ssid' 'vogtland.freifunk.net'
-       option 'mesh_network' '10.204.0.0/16'
-       option 'splash_network' '6.204.0.0/16'
-       option 'splash_prefix' '27'
-       option 'latitude' '53.11'
-       option 'longitude' '12.61'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.255.255'
-
-
-config 'defaults' 'bssidscheme'
-        option '1' '02:CA:FF:EE:BA:BE'
-        option '40' '02:40:CA:FF:EE:EE'
-
-config 'defaults' 'wifi_device'
-    option 'country' 'DE'
-
-config 'defaults' 'wifi_iface'
-    option 'mcast_rate' '6000'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_weil b/package/luci/contrib/package/community-profiles/files/etc/config/profile_weil
deleted file mode 100644 (file)
index ddba1f3..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-config 'community' 'profile'
-        option 'name' 'Freifunk Weil am Rhein'
-        option 'homepage' 'http://weil-am-rhein.freifunk.net'
-        option 'ssid' 'mesh.freifunk.net'
-        option 'mesh_network' '10.119.0.0/18'
-        option 'latitude' '47.6056'
-        option 'longitude' '7.6083'
-        option 'suffix' 'ffwr'
-        option 'vap' '1'
-        option 'adhoc_dhcp_when_vap' '0'
-        list 'owm_api' 'http://api.openwifimap.net'
-        list 'owm_api' 'http://owmapi.pberg.freifunk.net'
-        option 'mapserver' 'http://openwifimap.net/'
-
-config 'defaults' 'interface'
-        option 'netmask' '255.255.192.0'
-
-config 'defaults' 'wifi_device'
-        option 'country' 'DE'
-        option 'channel' '10'
-
-config 'defaults' 'luci_splash'
-        option 'leasetime' '24'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_weimar b/package/luci/contrib/package/community-profiles/files/etc/config/profile_weimar
deleted file mode 100644 (file)
index 65938e7..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Weimarnetz e.V.'
-       option 'homepage' 'http://www.weimarnetz.de'
-       option 'ssid' 'weimarnetz'
-       option 'mesh_network' '10.63.0.0/16'
-       option 'latitude' '50.989530'
-       option 'longitude' '11.338675'
-
-config 'defaults' 'interface'
-       option 'dns' '217.11.48.200 217.11.49.200 8.8.8.8'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_weinstadt b/package/luci/contrib/package/community-profiles/files/etc/config/profile_weinstadt
deleted file mode 100644 (file)
index 49a42fa..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Weinstadt'
-       option 'homepage' 'http://freifunk-weinstadt.de'
-       option 'ssid' 'freifunk-weinstadt'
-       option 'mesh_network' '172.21.0.0/16'
-       option 'splash_network' '172.21.85.0/30'
-       option 'latitude' '48.81'
-       option 'longitude' '9.39'
-       option 'splash_prefix' '30'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '13'
-       option 'bssid' '02:07:01:03:08:04'
-
-config 'defaults' 'bssidscheme'
-       option '13'      '02:07:01:03:08:04'
-
-config 'defaults' 'interface'
-       option 'dns' '172.21.77.4 172.21.84.235 141.1.1.1'
diff --git a/package/luci/contrib/package/community-profiles/files/etc/config/profile_wlanljubljana b/package/luci/contrib/package/community-profiles/files/etc/config/profile_wlanljubljana
deleted file mode 100644 (file)
index eeefbd2..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'wlan ljubljana'
-       option 'homepage' 'http://wlan-lj.net'
-       option 'ssid' 'open.wlan-lj.net'
-       option 'mesh_network' '10.254.0.0/16'
-       option 'splash_network' '10.254.120.0/21'
-       option 'splash_prefix' '27'
-       option 'latitude' '46.05063'
-       option 'longitude' '14.50402'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '8'
-
-config 'defaults' 'interface'
-       option 'dns' '10.254.0.1 10.254.0.2'
diff --git a/package/luci/contrib/package/csstidy/Makefile b/package/luci/contrib/package/csstidy/Makefile
deleted file mode 100644 (file)
index 83f8f08..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=csstidy
-PKG_RELEASE:=1
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=https://github.com/jow-/csstidy-cpp.git
-PKG_SOURCE_DATE:=2018-12-20
-PKG_SOURCE_VERSION:=1d5620149ae35c0d49fb2014d4e63a23ecfb6f69
-PKG_MIRROR_HASH:=3210d475f6ae966d4dfcd3e1f7fcbf0ad9507a37878d50de015ffe795c1d160e
-
-PKG_LICENSE:=LGPL-2.1
-PKG_LICENSE_FILES:=COPYING
-
-PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
-
-include $(INCLUDE_DIR)/host-build.mk
-include $(INCLUDE_DIR)/package.mk
-
-define Package/csstidy
-  SECTION:=utils
-  CATEGORY:=Utilities
-  TITLE:=CSSTidy parser and optimiser
-  DEPENDS:=+libstdcpp
-endef
-
-define Package/csstidy/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/csstidy/csstidy $(1)/usr/bin/
-endef
-
-
-define Host/Install
-       $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin/
-       $(INSTALL_BIN) $(HOST_BUILD_DIR)/csstidy/csstidy $(1)/bin/
-endef
-
-$(eval $(call HostBuild))
-$(eval $(call BuildPackage,csstidy))
diff --git a/package/luci/contrib/package/freifunk-common/Makefile b/package/luci/contrib/package/freifunk-common/Makefile
deleted file mode 100644 (file)
index f7128b6..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (C) 2011 Manuel Munz <freifunk at somakoma de>
-# This is free software, licensed under the Apache 2.0 license.
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=freifunk-common
-PKG_RELEASE:=3
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/freifunk-common
-  SECTION:=luci
-  CATEGORY:=LuCI
-  SUBMENU:=9. Freifunk
-  TITLE:=Freifunk common files
-  DEPENDS:=+libuci-lua
-endef
-
-define Package/freifunk-common/description
-  Common files and scripts that are needed to run free wireless mesh networks.
-endef
-
-define Package/luci-mod-freifunk/conffiles
-/etc/config/freifunk
-endef
-
-define Build/Prepare
-       mkdir -p $(PKG_BUILD_DIR)
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/freifunk-common/install
-       $(CP) ./files/* $(1)/
-endef
-
-$(eval $(call BuildPackage,freifunk-common))
diff --git a/package/luci/contrib/package/freifunk-common/files/etc/config/freifunk b/package/luci/contrib/package/freifunk-common/files/etc/config/freifunk
deleted file mode 100644 (file)
index b1a2e41..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-package 'freifunk'
-
-config 'public' 'contact'
-       option 'nickname' ''
-       option 'name' ''
-       option 'mail' ''
-       option 'phone' ''
-       option 'note' ''
-
-config 'public' 'community'
-       option 'name' 'Freifunk'
-       option 'homepage' 'http://freifunk.net'
-
-config 'fw_zone' 'zone_freifunk'
-       option 'name' 'freifunk'
-       option 'input' 'REJECT'
-       option 'forward' 'REJECT'
-       option 'output' 'ACCEPT'
-
-config 'fw_rule' 'fficmp'
-       option 'src' 'freifunk'
-       option 'target' 'ACCEPT'
-       option 'proto' 'icmp'
-
-config 'fw_rule' 'ffhttp'
-       option 'src' 'freifunk'
-       option 'target' 'ACCEPT'
-       option 'proto' 'tcp'
-       option 'dest_port' '80'
-
-config 'fw_rule' 'ffhttps'
-       option 'src' 'freifunk'
-       option 'target' 'ACCEPT'
-       option 'proto' 'tcp'
-       option 'dest_port' '443'
-
-config 'fw_rule' 'ffssh'
-       option 'src' 'freifunk'
-       option 'target' 'ACCEPT'
-       option 'proto' 'tcp'
-       option 'dest_port' '22'
-
-config 'fw_rule' 'ffolsr'
-       option 'src' 'freifunk'
-       option 'target' 'ACCEPT'
-       option 'proto' 'udp'
-       option 'dest_port' '698'
-
-config 'fw_rule' 'ffwprobe'
-       option 'src' 'freifunk'
-       option 'target' 'ACCEPT'
-       option 'proto' 'tcp'
-       option 'dest_port' '17990'
-
-config 'fw_rule' 'ffdns'
-       option 'dest_port' '53'
-       option 'src' 'freifunk'
-       option 'target' 'ACCEPT'
-       option 'proto' 'udp'
-
-config 'fw_rule' 'ffdhcp'
-       option 'src_port' '68'
-       option 'src' 'freifunk'
-       option 'target' 'ACCEPT'
-       option 'dest_port' '67'
-       option 'proto' 'udp'
-       option 'leasetime' '30m'
-
-config 'fw_rule' 'ffsplash'
-       option 'dest_port' '8082'
-       option 'src' 'freifunk'
-       option 'target' 'ACCEPT'
-       option 'proto' 'tcp'
-
-config 'fw_forwarding' 'lanfffwd'
-       option 'src' 'lan'
-       option 'dest' 'freifunk'
-
-config 'fw_forwarding' 'ffwanfwd'
-       option 'src' 'freifunk'
-       option 'dest' 'wan'
-
-config 'fw_forwarding' 'fffwd'
-       option 'src' 'freifunk'
-       option 'dest' 'freifunk'
-
-config 'include' 'freifunk'
-       option 'path' '/etc/firewall.freifunk'
-
-config 'defaults' 'system'
-       option 'zonename' 'Europe/Berlin'
-       option 'timezone' 'CET-1CEST,M3.5.0,M10.5.0/3'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '1'
-       option 'diversity' '1'
-       option 'disabled' '0'
-       option 'country' 'DE'
-       option 'distance' '1000'
-
-config 'defaults' 'wifi_iface'
-       option 'mode' 'adhoc'
-       option 'encryption' 'none'
-       option 'bssid' '12:CA:FF:EE:BA:BE'
-       option 'mcast_rate' '6000'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.255.0.0'
-       option 'dns' '8.8.8.8 212.204.49.83 141.1.1.1'
-
-config 'defaults' 'alias'
-       option 'netmask' '255.255.255.0'
-
-config 'defaults' 'dhcp'
-       option 'leasetime' '30m'
-       option 'start' '2'
-       option 'force' '1'
-
-config 'defaults' 'olsr_interfacedefaults'
-       option 'Ip4Broadcast' '255.255.255.255'
diff --git a/package/luci/contrib/package/freifunk-common/files/etc/init.d/freifunk b/package/luci/contrib/package/freifunk-common/files/etc/init.d/freifunk
deleted file mode 100755 (executable)
index dbe648a..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Freifunk Init
-# $Id$
-
-START=99
-
-boot() {
-       test -f /etc/crontabs/root || touch /etc/crontabs/root
-
-       grep -q 'killall -HUP dnsmasq' /etc/crontabs/root || {
-               echo "*/5 * * * *       killall -HUP dnsmasq" >> /etc/crontabs/root
-       }
-
-       grep -q '/usr/sbin/ff_olsr_watchdog' /etc/crontabs/root || {
-               echo "*/5 * * * *       /usr/sbin/ff_olsr_watchdog" >> /etc/crontabs/root
-       }
-
-       [ -d /etc/rc.local.d ] && {
-               for file in /etc/rc.local.d/*; do
-                       test -f "$file" && . "$file"
-               done
-       }
-
-       /etc/init.d/cron restart &
-}
diff --git a/package/luci/contrib/package/freifunk-common/files/etc/rc.local.d/01-config-migration b/package/luci/contrib/package/freifunk-common/files/etc/rc.local.d/01-config-migration
deleted file mode 100644 (file)
index 11f1ad6..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-# Fixup various configurations to remove quirks
-# from former versions.
-
-_log() {
-       logger -t "Config Migration" "$1"
-}
-
-_uci() {
-       uci ${2:+-c $2} get "$1" 2>/dev/null
-}
-
-
-# Splash redirector had a wrong virtual url match
-# which resulted in "No such handler"
-
-[ "$(_uci lucid.splashredir.virtual)" == "/" ] && {
-       _log "Fix splash redirector configuration"
-       uci set lucid.splashredir.virtual=''
-       uci commit lucid
-       /etc/init.d/lucid restart
-}
-
-
-# Newer OLSR versions have the MinTCVtime hack active,
-# ensure proper timings or olsrd won't start
-
-FIX=0
-for i in 0 1 2 3 4; do
-       [ -z "$(_uci olsrd.@Interface[$i].TcInterval)" ] && \
-       [ -z "$(_uci olsrd.@Interface[$i].TcValidityTime)" ] || {
-               uci delete olsrd.@Interface[$i].TcInterval
-               uci delete olsrd.@Interface[$i].TcValidityTime
-               FIX=1
-       }
-done
-
-[ "$FIX" == 1 ] && {
-       _log "Fix olsrd configuration for MinTCVTime hack"
-       uci commit olsrd
-       /etc/init.d/olsrd restart
-}
-
-
-# Ensure that the community definitions are in the
-# new format
-
-[ -z "$(_uci freifunk.leipzig.mesh_network)" ] && \
-[ -n "$(_uci freifunk.leipzig.mesh_network /rom/etc/config)" ] && {
-       _log "Converting freifunk configuration to new format"
-       cp /rom/etc/config/freifunk /etc/config/freifunk
-}
diff --git a/package/luci/contrib/package/freifunk-common/files/etc/uci-defaults/freifunk b/package/luci/contrib/package/freifunk-common/files/etc/uci-defaults/freifunk
deleted file mode 100644 (file)
index fe6586c..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-uci set uhttpd.main.rfc1918_filter=0
-uci commit uhttpd
diff --git a/package/luci/contrib/package/freifunk-common/files/usr/bin/ffdzero b/package/luci/contrib/package/freifunk-common/files/usr/bin/ffdzero
deleted file mode 100755 (executable)
index 24e8c2e..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-test "$1" = "-h" && echo -e "Usage:\n\t$0 -h\n\t$0 [ { ip | hostname } ]" >&2 && exit 1
-
-host="${1:-leipzig.freifunk.net}"
-
-wget -O /dev/null http://$host/cgi-bin-dev-zero.bin
-test "$?" = "1" && wget -O /dev/null http://$host/cgi-bin/dev-zero.bin
-test "$?" = "1" && wget -O /dev/null http://$host/cgi-bin/luci/freifunk/status/zeroes
-test "$?" = "1" && echo "$host: no zero download found..." && exit 1
diff --git a/package/luci/contrib/package/freifunk-common/files/usr/bin/neigh.sh b/package/luci/contrib/package/freifunk-common/files/usr/bin/neigh.sh
deleted file mode 100755 (executable)
index 82589ec..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/bin/sh
-
-. /usr/share/libubox/jshn.sh
-
-hostsfile_getname()
-{
-       local config="$1"
-       local i=0
-       local value file
-
-       while value="$( uci -q get $config.@LoadPlugin[$i].library )"; do {
-               case "$value" in
-                       'olsrd_nameservice'*)
-                               file="$( uci -q get $config.@LoadPlugin[$i].hosts_file )"
-                               break
-                       ;;
-               esac
-
-               i=$(( i + 1 ))
-       } done
-
-       echo "${file:-/var/run/hosts_olsr}"
-}
-
-read_hostnames()
-{
-       local file_list=" $( hostsfile_getname 'olsrd' ) $(hostsfile_getname 'olsrd6' ) "
-       local line ip hostname file file_list_uniq
-
-       for file in $file_list; do {
-               case " $file_list_uniq " in
-                       *" $file "*)
-                       ;;
-                       *)
-                               file_list_uniq="$file_list_uniq $file"
-                       ;;
-               esac
-       } done
-
-       for file in $file_list_uniq; do {
-               [ -e "$file" ] || continue
-
-               while read -r line; do {
-                       case "$line" in
-                               [0-9]*)
-                                       # 2001:bf7:820:901::1 stuttgarter-core.olsr   # myself
-                                       # 10.63.160.161  AlexLaterne    # 10.63.160.161
-                                       set -f
-                                       set +f -- $line
-                                       ip="$1"
-                                       hostname="$2"
-
-                                       # global vars, e.g.
-                                       # IP_1_2_3_4='foo' or IP_2001_bf7_820_901__1='bar'
-                                       eval IP_${ip//[.:]/_}="$hostname"
-                               ;;
-                       esac
-               } done <"$file"
-       } done
-}
-
-read_hostnames
-
-VARS='localIP:Local remoteIP:Remote validityTime:vTime linkQuality:LQ'
-VARS="$VARS neighborLinkQuality:NLQ linkCost:Cost remoteHostname:Host"
-
-for HOST in '127.0.0.1' '::1';do
-       json_init
-       json_load "$( echo /links | nc $HOST 9090 | sed -n '/^[}{ ]/p' )"       # remove header/non-json
-
-       if json_is_a links array;then
-               json_select links
-               for v in ${VARS};do
-                       eval _${v%:*}=0
-               done
-               for j in 0 1;do
-                       case ${j} in 1)
-                               for v in ${VARS};do
-                                       eval printf \"%-\${_${v%:*}}s \" ${v#*:}
-                               done
-                               echo
-                       ;;esac
-                       i=1;while json_is_a ${i} object;do
-                               json_select ${i}
-                               json_get_vars $(for v in ${VARS};do echo ${v%:*};done)
-                               case ${j} in 0)
-                                       for v in ${VARS};do
-                                               eval "test \${_${v%:*}} -lt \${#${v%:*}} && _${v%:*}=\${#${v%:*}}"
-                                       done
-                               ;;*)
-                                       for v in ${VARS};do
-                                               eval printf \"%-\${_${v%:*}}s \" \$${v%:*}
-                                               eval remoteHostname="\$IP_${remoteIP//[.:]/_}"
-                                       done
-                                       echo
-                               ;;esac
-                               json_select ..
-                               i=$(( i + 1 ))
-                       done
-               done
-       fi
-       echo
-done
diff --git a/package/luci/contrib/package/freifunk-common/files/usr/bin/watch.sh b/package/luci/contrib/package/freifunk-common/files/usr/bin/watch.sh
deleted file mode 100755 (executable)
index 728526b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-command="$1"
-interval="$2"; [ -z "$interval" ] && interval=1
-
-if [ -z $command ]; then
-        echo 'Usage: watch.sh "command [options]" [interval], e.g. watch "ifconfig ath0" 2'
-        echo 'interval is optional and defaults to 1'
-        exit 1
-fi
-
-while true; do clear; $command; sleep $interval; done
diff --git a/package/luci/contrib/package/freifunk-common/files/usr/sbin/ff_olsr_watchdog b/package/luci/contrib/package/freifunk-common/files/usr/sbin/ff_olsr_watchdog
deleted file mode 100755 (executable)
index af1d7ca..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/lua
-
-require "os"
-require "io"
-require "uci"
-local fs = require "nixio.fs"
-
-if fs.access("/var/run/olsrd.pid") or fs.access("/var/run/olsrd4.pid") then
-       local stamp, intv
-       local x = uci.cursor()
-
-       x:foreach("olsrd", "LoadPlugin",
-               function(s)
-                       if s.library == "olsrd_watchdog" then
-                               intv  = tonumber(s.interval)
-                               stamp = s.file
-                       end
-               end)
-
-       if intv and fs.access(stamp) then
-               local systime = os.time()
-               local wdgtime = tonumber(io.lines(stamp)())
-
-               if not wdgtime or ( systime - wdgtime ) > ( intv * 2 ) then
-                       os.execute("logger -t 'OLSR watchdog' 'Process died - restarting!'")
-                       local tnls = io.popen("ip tunnel show | cut -d : -f 1")
-                       while true do
-                               tnl = tnls:read("*line")
-                               if tnl == nil then break end
-                               if string.find(tnl, "tnl_") == 1 then
-                                       os.execute(string.format("logger -t 'OLSR watchdog' 'Deleting stale tunnel %s'", tnl))
-                                       os.execute(string.format("ip link del %s", tnl))
-                               end
-                       end
-                       os.execute("/etc/init.d/olsrd restart")
-               end
-       end
-end
diff --git a/package/luci/contrib/package/freifunk-firewall/Makefile b/package/luci/contrib/package/freifunk-firewall/Makefile
deleted file mode 100644 (file)
index b9d328c..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# Copyright (C) 2009 Jo-Philipp Wich <jow@openwrt.org>
-#
-# This is free software, licensed under the Apache 2.0 license.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=freifunk-firewall
-PKG_RELEASE:=3
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/freifunk-firewall
-  SECTION:=luci
-  CATEGORY:=LuCI
-  SUBMENU:=9. Freifunk
-  TITLE:=Freifunk Firewall Addon
-  DEPENDS:=+firewall
-endef
-
-define Package/freifunk-firewall/description
-  Various firewall extensions for Freifunk. Includes NAT fixes and advanced settings.
-endef
-
-define Build/Prepare
-       mkdir -p $(PKG_BUILD_DIR)
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/freifunk-firewall/postinst
-#!/bin/sh
-[ -n "$${IPKG_INSTROOT}" ] || {
-  if ! grep -q /etc/firewall.freifunk /etc/config/firewall; then
-    uci add firewall include >/dev/null
-    uci set firewall.@include[-1].path=/etc/firewall.freifunk
-    uci commit firewall
-  fi
-}
-endef
-
-define Package/freifunk-firewall/install
-       $(CP) ./files/* $(1)/
-endef
-
-$(eval $(call BuildPackage,freifunk-firewall))
diff --git a/package/luci/contrib/package/freifunk-firewall/files/etc/firewall.freifunk b/package/luci/contrib/package/freifunk-firewall/files/etc/firewall.freifunk
deleted file mode 100644 (file)
index d2805f6..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh
-# Freifunk Firewall addons
-
-. /lib/functions.sh
-
-#
-# Apply advanced settings
-#
-apply_advanced() {
-       local tcp_ecn
-       local tcp_window_scaling
-       local accept_redirects
-       local accept_source_route
-
-       config_get_bool tcp_ecn $1 tcp_ecn 1
-       config_get_bool tcp_window_scaling $1 tcp_window_scaling 1
-       config_get_bool accept_redirects $1 accept_redirects 0
-       config_get_bool accept_source_route $1 accept_source_route 0
-
-       logger -t firewall.freifunk "tcp_ecn is $tcp_ecn"
-       logger -t firewall.freifunk "tcp_window_scaling is $tcp_window_scaling"
-       logger -t firewall.freifunk "accept_redirects is $accept_redirects"
-       logger -t firewall.freifunk "accept_source_route is $accept_source_route"
-
-       sysctl -w net.ipv4.tcp_ecn=$tcp_ecn >/dev/null
-       sysctl -w net.ipv4.tcp_window_scaling=$tcp_window_scaling >/dev/null
-
-       for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
-               echo $accept_redirects > $f
-       done
-
-       for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
-               echo $accept_source_route > $f
-       done
-}
-
-config_foreach apply_advanced advanced
-
-[ -x /etc/init.d/freifunk-p2pblock ] && /etc/init.d/freifunk-p2pblock enabled && \
-       ( sleep 3; /etc/init.d/freifunk-p2pblock restart )&
diff --git a/package/luci/contrib/package/freifunk-firewall/files/etc/hotplug.d/firewall/23-restricted-wan b/package/luci/contrib/package/freifunk-firewall/files/etc/hotplug.d/firewall/23-restricted-wan
deleted file mode 100644 (file)
index e71c852..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/sh
-
-clear_restricted_gw()
-{
-       local state="$1"
-       local iface
-       local ifname
-       local subnet
-
-       config_get iface "$state" iface
-
-       if [ "$iface" = "$INTERFACE" ]; then
-               config_get ifname "$state" ifname
-               config_get subnet "$state" subnet
-
-               logger -t firewall.freifunk "removing local restriction to the network connected to $ifname ($iface)"
-               iptables -D forwarding_freifunk_rule -o $ifname -d $subnet -j REJECT --reject-with icmp-host-prohibited
-               uci_revert_state firewall "$state"
-       fi
-}
-
-get_enabled()
-{
-       local name
-       config_get name "$1" name
-
-       if [ "$name" = "$ZONE" ]; then
-               config_get_bool local_restrict "$1" local_restrict
-       fi
-}
-
-if [ "$ACTION" = add ]; then
-       local enabled
-       local subnet
-
-       . /lib/functions/network.sh
-
-       network_find_wan wan
-
-       [ "$INTERFACE" = "$wan" ] || return 0
-
-       network_get_subnet subnet $INTERFACE
-
-       if [ -n "$subnet" ]; then
-               config_load firewall
-
-               local_restrict=0
-               config_foreach get_enabled zone
-               
-               if [ "$local_restrict" = 1 ]; then
-                       logger -t firewall.freifunk "restricting local access to the network connected to $INTERFACE ($DEVICE)"
-                       iptables -I forwarding_freifunk_rule -o $DEVICE -d $subnet -j REJECT --reject-with icmp-host-prohibited
-                       local state="restricted_gw_${INTERFACE}"
-                       uci_set_state firewall "$state" "" restricted_gw_state
-                       uci_set_state firewall "$state" iface "$INTERFACE"
-                       uci_set_state firewall "$state" ifname "$DEVICE"
-                       uci_set_state firewall "$state" subnet "$subnet"
-               fi
-       fi
-
-elif [ "$ACTION" = remove ]; then
-       config_load firewall
-       config_foreach clear_restricted_gw restricted_gw_state   
-fi
-
diff --git a/package/luci/contrib/package/freifunk-gwcheck/Makefile b/package/luci/contrib/package/freifunk-gwcheck/Makefile
deleted file mode 100644 (file)
index 6c2affe..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (C) 2011 Manuel Munz <freifunk at somakoma de>
-# This is free software, licensed under the Apache 2.0 license.
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=freifunk-gwcheck
-PKG_RELEASE:=4
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/freifunk-gwcheck
-  SECTION:=luci
-  CATEGORY:=LuCI
-  SUBMENU:=9. Freifunk
-  TITLE:=Freifunk gateway check script
-  DEPENDS:=firewall +ip +iptables-mod-ipopt +olsrd-mod-dyn-gw-plain
-endef
-
-define Package/freifunk-gwcheck/description
-  This script periodically checks if internet is available via your own gateway. If it detects that it is broken, then the defaultroute is removed from the main table and temporarilly placed in table gw-check until your internet works again. Config file is /etc/config/freifunk-gwcheck.
-endef
-
-define Build/Prepare
-       mkdir -p $(PKG_BUILD_DIR)
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/freifunk-gwcheck/install
-       $(CP) ./files/* $(1)/
-       $(CP) ./root/* $(1)/
-endef
-
-$(eval $(call BuildPackage,freifunk-gwcheck))
diff --git a/package/luci/contrib/package/freifunk-gwcheck/files/etc/config/freifunk-gwcheck b/package/luci/contrib/package/freifunk-gwcheck/files/etc/config/freifunk-gwcheck
deleted file mode 100644 (file)
index b174dd6..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-config 'gwcheck' 'hosts'
-       list 'host' 'augsburg.freifunk.net'
-       list 'host' 'vpn4.leipzig.freifunk.net'
-       list 'host' 'luci.subsignal.org'
-       list 'host' 'bbb-vpn.berlin.freifunk.net'
diff --git a/package/luci/contrib/package/freifunk-gwcheck/files/usr/sbin/ff_olsr_test_gw.sh b/package/luci/contrib/package/freifunk-gwcheck/files/usr/sbin/ff_olsr_test_gw.sh
deleted file mode 100755 (executable)
index b86b668..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/bin/sh
-# Copyright 2013 Manuel Munz <freifunk at somakoma dot de>
-# Licensed under the GNU General Public License (GPL) v3
-# This script monitors the local internet gateway
-
-. /lib/functions.sh
-. /lib/functions/network.sh
-. /usr/share/libubox/jshn.sh
-
-# exit if dyngw_plain is not enabled or RtTable is not (254 or unset)
-config_load olsrd
-
-check_dyngw_plain()
-{
-        local cfg="$1"
-       config_get library "$cfg" library
-       if [ "${library#olsrd_dyn_gw_plain}" != "$library" ]; then
-               config_get ignore "$cfg" ignore
-               config_get RtTable "$cfg" RtTable
-               if [ "$ignore" != "1" ] && [ -z "$RtTable" -o "$RtTable" = "254" ]; then
-                       exit=0
-               fi
-       fi
-}
-
-exit=1
-config_foreach check_dyngw_plain LoadPlugin
-[ "$exit" = "1" ] && exit 1
-
-#Exit if this script is already running
-pid="$(pidof ff_olsr_test_gw.sh)"
-if [ ${#pid} -gt 5 ]; then
-       logger -p debug -t gwcheck "Gateway check script is already running, exit now"
-       exit 1
-fi
-
-# exit if there is no defaultroute with metric=0 in main or gw-check table.
-defroutemain="$(ip route show |grep default |grep -v metric)"
-defroutegwcheck="$(ip route show table gw-check |grep default |grep -v metric)"
-if [ -z "$defroutegwcheck" -a -z "$defroutemain" ]; then
-       exit 1
-fi
-
-# get and shuffle list of testservers
-testserver="$(uci -q get freifunk-gwcheck.hosts.host)"
-[ -z "$testserver" ] && echo "No testservers found, exit" && exit
-
-testserver="$(for t in $testserver; do echo $t; done | awk 'BEGIN {
-       srand();
-}
-{
-       l[NR] = $0;
-}
-
-END {
-       for (i = 1; i <= NR; i++) {
-               n = int(rand() * (NR - i + 1)) + i;
-               print l[n];
-               l[n] = l[i];
-       }
-}')"
-
-check_internet() {
-       for t in $testserver; do
-               local test
-               test=$(wget -q http://$t/conntest.html -O -| grep "Internet_works")
-               if [ "$test" == "Internet_works" ]; then
-                       echo 0
-                       break
-               else
-                       logger -p debug -t gw-check "Could not fetch http://$t/conntest.html"
-               fi
-       done
-}
-
-resolve() {
-       echo "$(nslookup $1 2>/dev/null |grep 'Address' |grep -v '127.0.0.1' |awk '{ print $3 }')"
-}
-
-get_dnsservers() {
-       # this gets all dns servers for the interface which has the default route
-
-       dns=""
-       if [ ! -x /bin/ubus ]; then
-               # ubus not present (versions before Attitude): fallback to get these from /var/state/network.
-               # We always assume that wan is the default route interface here
-               dns="$(grep network.wan.resolv_dns /var/state/network | cut -d "=" -f 2)"
-       else
-               network_find_wan wan
-               network_get_dnsserver dns $wan
-       fi
-}
-
-iw=$(check_internet)
-
-if [ "$iw" == 0 ]; then
-       # Internet available again, restore default route and remove ip rules
-       if [ -n "$defroutegwcheck" ]; then
-               ip route add $defroutegwcheck
-               ip route del $defroutegwcheck table gw-check
-               for host in $testserver; do
-                       ips="$(resolve $host)"
-                       for ip in $ips; do
-                               [ -n "$(ip rule show | grep "to $ip lookup gw-check")" ] && ip rule del to $ip table gw-check
-                       done
-               done
-               get_dnsservers
-               for d in $dns; do
-                       [ -n "$(ip rule show | grep "to $d lookup gw-check")" ] && ip rule del to $d table gw-check
-               done
-               logger -p err -t gw-check "Internet is available again, default route restored ( $defroutegwcheck)"
-       fi
-
-else
-       # Check failed. Move default route to table gw-check and setup ip rules.
-       if [ -z "$(ip rule show | grep gw-check)" -a -n "$defroutemain" ]; then
-               ip route add $defroutemain table gw-check
-               ip route del $defroutemain
-               logger -p err -t gw-check "Internet is not available, default route deactivated ( $defroutemain)"
-       fi
-       for host in $testserver; do
-               ips="$(resolve $host)"
-               for ip in $ips; do
-                       [ -z "$(ip rule show | grep "to $ip lookup gw-check")" ] && ip rule add to $ip table gw-check
-               done
-       done
-       get_dnsservers
-       for d in $dns; do
-               [ -z "$(ip rule show | grep "to $d lookup gw-check")" ] && ip rule add to $d table gw-check
-       done
-       logger -p err -t gw-check "Check your internet connection!"
-fi
diff --git a/package/luci/contrib/package/freifunk-gwcheck/root/etc/uci-defaults/50_freifunk-gwcheck b/package/luci/contrib/package/freifunk-gwcheck/root/etc/uci-defaults/50_freifunk-gwcheck
deleted file mode 100644 (file)
index 33b1b99..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-tables="/etc/iproute2/rt_tables"
-test -d /etc/iproute2/ || mkdir -p /etc/iproute2/
-grep -q "gw-check" $tables || echo "200 gw-check" >> $tables
-test -f /etc/crontabs/root || touch /etc/crontabs/root
-grep -q "ff_olsr_test_gw.sh" /etc/crontabs/root || echo "* * * * *     /usr/sbin/ff_olsr_test_gw.sh" >> /etc/crontabs/root
-/etc/init.d/cron restart
diff --git a/package/luci/contrib/package/freifunk-mapupdate/Makefile b/package/luci/contrib/package/freifunk-mapupdate/Makefile
deleted file mode 100644 (file)
index a9281ca..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (C) 2011 Manuel Munz <freifunk at somakoma de>
-# This is free software, licensed under the Apache 2.0 license.
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=freifunk-mapupdate
-PKG_RELEASE:=1
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/freifunk-mapupdate
-  SECTION:=luci
-  CATEGORY:=LuCI
-  SUBMENU:=9. Freifunk
-  TITLE:=Update script for freifunkmap
-  DEPENDS:=+olsrd-mod-nameservice
-endef
-
-define Package/freifunk-mapupdate/description
-  This script updates the freifunkmap (also known as the global map, see http://map.berlin.freifunk.net) every hour. Config file is /etc/config/freifunk-mapupdate.
-endef
-
-define Build/Prepare
-       mkdir -p $(PKG_BUILD_DIR)
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/freifunk-mapupdate/install
-       $(CP) ./files/* $(1)/
-endef
-
-$(eval $(call BuildPackage,freifunk-mapupdate))
diff --git a/package/luci/contrib/package/freifunk-mapupdate/files/etc/config/freifunk-mapupdate b/package/luci/contrib/package/freifunk-mapupdate/files/etc/config/freifunk-mapupdate
deleted file mode 100644 (file)
index 7e98f95..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-config 'mapupdate' 'mapupdate'
-       option 'enabled' '1'
-       option 'mapserver' 'http://map.berlin.freifunk.net/freifunkmap.php'
diff --git a/package/luci/contrib/package/freifunk-mapupdate/files/usr/sbin/ff_mapupdate.sh b/package/luci/contrib/package/freifunk-mapupdate/files/usr/sbin/ff_mapupdate.sh
deleted file mode 100755 (executable)
index b06e145..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/sh
-
-if [ ! "$(uci -q get freifunk-mapupdate.mapupdate.enabled)" == 1 ]; then
-       exit 1
-fi
-
-MAPSERVER="$(uci -q get freifunk-mapupdate.mapupdate.mapserver)"
-[ -z "$MAPSERVER" ] && logger -t "freifunk-mapupdate:" "No mapserver configured" && exit 1
-
-#check if nameservice plugin is installed and enabled, else exit
-nslib=`uci show olsrd |grep olsrd_nameservice |awk {' FS="."; print $1"."$2 '}`
-if [ -n "$nslib" ]; then
-               LATLONFILE="$(uci -q get $nslib.latlon_file)"
-               if [ -z "$LATLONFILE" ]; then
-                       LATLONFILE="/var/run/latlon.js"
-               fi
-               if [ ! -p "$LATLONFILE" ]; then
-                       logger -t "freifunk-mapupdate:" "latlon_file not found."; exit 1
-               fi
-else
-        logger -t "freifunk-mapupdate:" "nameservice plugin not found in olsrd config."
-        exit 1
-fi
-
-HOSTNAME="$(uci show system |grep hostname |cut -d "=" -f 2)"
-HF_INFO=""
-
-# Get info for myself
-SELF=$(cat $LATLONFILE |grep ^Self | sed -e 's/Self(//' -e 's/);//' -e "s/'//g")
-OLSR_IP="$(echo $SELF |awk '{ FS=",";print $1 }')"
-LOCATION="$(uci show system |grep .location |cut -d "=" -f 2)"
-[ -n "$LOCATION" ] && NOTE="$LOCATION<br>"
-FFNOTE="$(uci -q get freifunk.contact.note)"
-[ -n "$FFNOTE" ] && NOTE="$NOTE $FFNOTE"
-NOTE="<h3><a href='http://$OLSR_IP' target='_blank'>$HOSTNAME</a></h3><p>$NOTE"
-NOTE=`echo -e "$NOTE" | sed -e 's/\ /%20/g' -e 's/&/%26/g' -e 's/"/%22/g'`
-
-UPDATESTRING="$(echo $SELF |awk '{ FS=",";print $2 }'), $(echo $SELF |awk '{ FS=",";print $3 }')"
-
-# write our coordinates to mygooglemapscoords.txt to make Freifunk Firmware happy
-echo "$UPDATESTRING" > /tmp/mygooglemapscoords.txt
-[ ! -L /www/mygooglemapscoords.txt ] && ln -s /tmp/mygooglemapscoords.txt /www/mygooglemapscoords.txt
-
-# get neighbor Info (lat, lon, lq)
-while read line; do
-       NEIGHUPD="$(echo $line |awk '{ FS=","; print $6 }'), $(echo $line |awk '{ FS=","; print $7 }'), $(echo $line |awk '{ FS=",";print $4 }')"
-       UPDATESTRING="${UPDATESTRING}, ${NEIGHUPD}"
-done << EOF
-`grep "PLink('$OLSR_IP" $LATLONFILE | sed -e 's/PLink(//' -e 's/);//' -e "s/'//g"`
-EOF
-
-# Send UPDATESTRING
-UPDATE=`echo -e "$UPDATESTRING" | sed s/\ /%20/g`
-result="$(wget "$MAPSERVER?update=$UPDATE&updateiv=3600&olsrip=$OLSR_IP&note=${NOTE}${HF_INFO}" -qO -)"
-
-if [ ! "$result" == "success update" ]; then
-       logger -t "freifunk-mapupdate:" "Update failed: $result"
-fi
-       
diff --git a/package/luci/contrib/package/freifunk-mapupdate/root/etc/uci-defaults/50_freifunk-mapupdate b/package/luci/contrib/package/freifunk-mapupdate/root/etc/uci-defaults/50_freifunk-mapupdate
deleted file mode 100644 (file)
index dee7f1b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-test -f /etc/crontabs/root || touch /etc/crontabs/root
-SEED="$( dd if=/dev/urandom bs=2 count=1 2>&- | hexdump | if read line; then echo 0x${line#* }; fi )"
-MIN="$(( $SEED % 59 ))"
-grep -q "ff_mapupdate.sh" /etc/crontabs/root || echo "$MIN * * * *     /usr/sbin/ff_mapupdate.sh" >> /etc/crontabs/root
-/etc/init.d/cron restart
diff --git a/package/luci/contrib/package/freifunk-policyrouting/Makefile b/package/luci/contrib/package/freifunk-policyrouting/Makefile
deleted file mode 100644 (file)
index a9301ce..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (C) 2011 Manuel Munz <freifunk at somakoma de>
-# This is free software, licensed under the Apache 2.0 license.
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=freifunk-policyrouting
-PKG_RELEASE:=6
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/freifunk-policyrouting
-  SECTION:=luci
-  CATEGORY:=LuCI
-  SUBMENU:=9. Freifunk
-  TITLE:=Freifunk policy routing addon
-  DEPENDS:=+ip
-endef
-
-define Package/freifunk-policyrouting/description
-  Allows you to send your own traffic via your own default gateway while sending traffic received from the mesh to a gateway in the mesh.
-endef
-
-define Build/Prepare
-       mkdir -p $(PKG_BUILD_DIR)
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/freifunk-policyrouting/install
-       $(CP) ./files/* $(1)/
-endef
-
-define Package/freifunk-policyrouting/postinst
-#!/bin/sh
-[ -n "$${IPKG_INSTROOT}" ] || {
-       /etc/init.d/freifunk-policyrouting enabled || /etc/init.d/freifunk-policyrouting enable
-       exit 0
-}
-endef
-
-$(eval $(call BuildPackage,freifunk-policyrouting))
diff --git a/package/luci/contrib/package/freifunk-policyrouting/files/etc/config/freifunk-policyrouting b/package/luci/contrib/package/freifunk-policyrouting/files/etc/config/freifunk-policyrouting
deleted file mode 100644 (file)
index 3dd2998..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-
-config 'settings' 'pr'
-       option 'enable' '0'
-       option 'strict' '1'
-        option 'fallback' '1'
-       option 'zones' ''
-
diff --git a/package/luci/contrib/package/freifunk-policyrouting/files/etc/hotplug.d/iface/30-policyrouting b/package/luci/contrib/package/freifunk-policyrouting/files/etc/hotplug.d/iface/30-policyrouting
deleted file mode 100644 (file)
index 327e879..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/bin/sh
-
-. /lib/functions.sh
-. /lib/functions/network.sh
-
-proto="4"
-[ -f /proc/net/ipv6_route ] && proto="4 6"
-
-config_load freifunk-policyrouting
-config_get enable pr enable
-config_get fallback pr fallback
-config_get strict pr strict
-config_get zones pr zones
-
-if [ "$ACTION" = "ifup" ] && [ "$enable" = "1" ]; then
-       network_get_subnet net $INTERFACE
-       network_get_subnet6 net6 $INTERFACE
-       network_get_physdev dev $INTERFACE
-
-       if [ "$net" != "" -a -n "$dev" ]; then
-               eval $(/bin/ipcalc.sh $net)
-               if [ "$PREFIX" != "0" -a "$NETWORK" != "127.0.0.0" ]; then
-                       if [ ! "$(ip r s t localnets |grep "$NETWORK/$PREFIX dev")" ]; then
-                               cmd="ip r a $NETWORK/$PREFIX dev $dev table localnets"
-                               $cmd
-                               if [ "$?" = 0 ]; then
-                                       logger -s -t policyrouting "Add route: $cmd"
-                               else
-                                       logger -s -t policyrouting "Error! Could not add route: $cmd"
-                               fi
-                       fi
-
-               fi
-
-               if [ -n "$net6" ]; then
-                       cmd="ip -6 r a $net6 dev $dev table localnets"
-                       $cmd 2>&1 > /dev/null
-                       if [ "$?" = 0 ]; then
-                               logger -s -t policyrouting "Add route: $cmd (IPv6)"
-                       fi
-
-               fi
-
-               networks=""
-               for z in $zones; do
-                       network_zone="$(uci -q get firewall.zone_${z}.network)"
-                       if [ -z "$network_zone" ]; then
-                               network_zone="$z"
-                       fi
-                       networks="$networks $network_zone"
-               done
-               for n in $networks; do
-                       if [ "$INTERFACE" = "$n" ]; then
-                               for p in $proto; do
-                                       if [ ! "$(ip -$p ru s | grep "from all iif $dev lookup olsr-default")" ]; then
-                                               ip -$p rule add dev "$dev" lookup olsr-default prio 20000
-                                               if [ "$strict" != 0 ]; then
-                                                       ip -$p rule add dev "$dev" unreachable prio 20001
-                                               fi
-                                               if [ "$?" = 0 ]; then
-                                                       logger -s -t policyrouting "Use mesh gateway for interface $dev (IPv$p)"
-                                                       if [ -z "$(uci -P /var/state get freifunk-policyrouting.${INTERFACE})" ]; then
-                                                               uci -P /var/state set freifunk-policyrouting.${INTERFACE}="state"
-                                                       fi
-                                                       uci -P /var/state set freifunk-policyrouting.${INTERFACE}.device="$dev"
-                                               else
-                                                       logger -s -t policyrouting "Error: Could not add rule: dev "$dev" lookup olsr-default prio 20000 (IPv$p)"
-                                               fi
-                                       fi
-                               done
-                       fi
-               done
-       fi
-
-fi
-
-if [ "$ACTION" = "ifdown" ]; then
-       dev="$(uci -q -P /var/state get freifunk-policyrouting.${INTERFACE}.device)"
-       if [ -n "$dev" ]; then
-               networks=""
-               for z in $zones; do
-                       network_zone="$(uci -q get firewall.zone_${z}.network)"
-                       if [ -z "$network_zone" ]; then
-                               network_zone="$z"
-                       fi
-                       networks="$networks $network_zone"
-               done
-               for n in $networks; do
-                       if [ "$INTERFACE" = "$n" ]; then
-                               for p in $proto; do
-                                       if [ "$(ip -$p ru s | grep "from all iif $dev lookup olsr-default")" ]; then
-                                               ip -$p rule del dev "$dev" lookup olsr-default prio 20000
-                                               ip -$p rule del dev "$dev" unreachable prio 20001
-                                               if [ "$?" = 0 ]; then
-                                                       logger -s -t policyrouting "Remove rule: dev "$dev" lookup olsr-default prio 20000 (IPv$p)"
-                                               else
-                                                       logger -s -t policyrouting "Error! Could not remove rule: dev "$dev" lookup olsr-default prio 20000 (IPv$p)"
-                                               fi
-                                       fi
-                               done
-                       fi
-               done
-       fi
-fi
diff --git a/package/luci/contrib/package/freifunk-policyrouting/files/etc/init.d/freifunk-policyrouting b/package/luci/contrib/package/freifunk-policyrouting/files/etc/init.d/freifunk-policyrouting
deleted file mode 100755 (executable)
index 4c91724..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/bin/sh /etc/rc.common
-
-START=15
-. /lib/functions/network.sh
-. /lib/functions.sh
-
-proto="4"
-[ -f /proc/net/ipv6_route ] && proto="4 6"
-[ -f /etc/config/olsrd ] && cfgs="olsrd"
-[ -f /etc/config/olsrd6 ] && cfgs="$cfgs olsrd6"
-
-config_load freifunk-policyrouting
-config_get enable pr enable
-config_get fallback pr fallback
-config_get zones pr zones
-
-
-olsrd_rmtables() {
-       for cfg in $cfgs; do
-               # Remove custom routing tables from olsrd 
-               if [ "`uci -q get $cfg.@olsrd[0].RtTable`" == "111" ] || [ "`uci -q get $cfg.@olsrd[0].RtTableDefault`" == "112" ]; then
-                       uci delete $cfg.@olsrd[0].RtTable
-                       uci delete $cfg.@olsrd[0].RtTableDefault
-                       uci commit
-               fi
-       done
-}
-
-olsrd_intalltables() {
-       for cfg in $cfgs; do
-               if [ ! "`uci -q get $cfg.@olsrd[0].RtTable`" == "111" ] || [ ! "`uci -q get $cfg.@olsrd[0].RtTableDefault`" == "112" ]; then
-                       uci set $cfg.@olsrd[0].RtTable='111'
-                       uci set $cfg.@olsrd[0].RtTableDefault='112'
-                       uci commit $cfg
-                       /etc/init.d/$cfg restart 2&> /dev/null
-               fi
-       done
-}
-
-rt_tables() {
-       tables="/etc/iproute2/rt_tables"
-       if [ -z "`grep "110" $tables`" ]; then
-               echo "110 localnets" >> $tables
-       fi
-       if [ -z "`grep "111" $tables`" ]; then
-               echo "111 olsr" >> $tables
-       fi
-       if [ -z "`grep "112" $tables`" ]; then
-               echo "112 olsr-default" >> $tables
-       fi
-
-}
-
-handle_disable_dyngw() {
-       local cfg="$1"
-       local olsrd_cfg="$2"
-       config_get library "$cfg" library
-       case "$library" in
-               olsrd_dyn_gw_plain*)
-                       config_get RtTable "$cfg" RtTable
-                       if [ -z "$RtTable" ] || [ "$RtTable" = "254" ]; then
-                               config_set "$cfg" ignore '1'
-                               uci set $olsrd_cfg.$cfg.ignore="1"
-                               uci commit $olsrd_cfg
-                               logger -s -t policyrouting -p info "dyngw_plain plugin disabled."
-                       fi
-               ;;
-               olsrd_dyn_gw.so*)
-                       logger -s -t policyrouting -p info "$cfg"
-                       uci set $olsrd_cfg.$cfg.ignore="1"
-                               uci commit $olsrd_cfg
-                       logger -s -t policyrouting -p info "dyngw plugin disabled."
-               ;;
-       esac
-}
-
-disable_dyngw() {
-       for olsrd_cfg in $cfgs; do
-               config_load $olsrd_cfg
-               config_foreach handle_disable_dyngw LoadPlugin $olsrd_cfg
-       done
-}
-
-restart_services() {
-       logger -s -t policyrouting -p info "Restarting services"
-       /etc/init.d/network restart 2&> /dev/null
-       for cfg in $cfgs; do
-               /etc/init.d/$cfg restart 2&> /dev/null
-       done
-}
-
-boot() {
-       if [ "$enable" = "1" ]; then
-               [ -d /var/state ] || mkdir -p /var/state
-               touch /var/state/freifunk-policyrouting
-               start noservicerestart
-       else
-               olsrd_rmtables
-       fi
-}
-
-add_lookup_rule() {
-       name=${1/-/_}
-       lookup=$2
-       prio=$3
-
-       if [ -z "$name" -o -z "$lookup" -o -z "$prio" ]; then
-               logger -s -t policyrouting "Missing parameters for add_rule!"
-       else
-               for p in $proto; do
-                       if [ "$p" = "6" ]; then
-                               rule="rule6"
-                       else
-                               rule="rule"
-                       fi
-
-                       uci batch <<- EOF
-                               set network.${name}ipv${p}="$rule"
-                               set network.${name}ipv${p}.lookup="$lookup"
-                               set network.${name}ipv${p}.priority="$prio"
-                       EOF
-               done
-       fi
-}
-
-del_lookup_rule() {
-       name=${1/-/_}
-       for p in $proto; do
-               uci -q delete network.${name}ipv${p}
-       done
-}
-
-start() {
-       if [ $enable = "1" ]; then
-               logger -s -t policyrouting "Starting policy routing."
-               rt_tables
-               olsrd_intalltables
-               disable_dyngw
-
-               add_lookup_rule olsr olsr 1000
-               add_lookup_rule localnets localnets 2000
-
-               if [ "$fallback" = 1 ]; then
-                       add_lookup_rule olsr-default olsr-default 100000
-               fi
-       fi
-       uci commit network
-       if [ ! "$1" = "noservicerestart" ]; then
-               restart_services
-       fi
-}
-
-stop() {
-       logger -s -t policyrouting "Stopping policy routing"
-       olsrd_rmtables
-       del_lookup_rule olsr-default
-       del_lookup_rule olsr
-       del_lookup_rule localnets
-       uci commit network
-       restart_services
-       echo "Hint: To completely disable freifunk-policyrouting set enable=0 in /etc/config/freifunk-policyrouting."
-}
-
-restart() {
-       logger -s -t policyrouting "Restarting policy routing"
-       olsrd_rmtables
-       del_lookup_rule olsr-default
-       del_lookup_rule olsr
-       del_lookup_rule localnets
-       uci commit network
-       start
-}
diff --git a/package/luci/contrib/package/freifunk-policyrouting/files/etc/uci-defaults/freifunk-policyrouting b/package/luci/contrib/package/freifunk-policyrouting/files/etc/uci-defaults/freifunk-policyrouting
deleted file mode 100644 (file)
index a1e6310..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-uci batch <<-EOF
-        add ucitrack freifunk-policyrouting
-        add_list ucitrack.@freifunk-policyrouting[-1].exec="/etc/init.d/freifunk-policyrouting restart"
-        commit ucitrack
-EOF
-
diff --git a/package/luci/contrib/package/freifunk-watchdog/Makefile b/package/luci/contrib/package/freifunk-watchdog/Makefile
deleted file mode 100644 (file)
index c720c25..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#
-# Copyright (C) 2009-2012 Jo-Philipp Wich <jow@openwrt.org>
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=freifunk-watchdog
-PKG_RELEASE:=8
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-PKG_BUILD_DEPENDS := uci
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/freifunk-watchdog
-  SECTION:=luci
-  CATEGORY:=LuCI
-  SUBMENU:=9. Freifunk
-  TITLE:=Freifunk Ad-Hoc watchdog daemon
-  DEPENDS:=libuci
-endef
-
-define Package/freifunk-watchdog/description
-  A watchdog daemon that monitors wireless interfaces to ensure the correct bssid and channel.
-  The process will initiate a wireless restart as soon as it detects a bssid or channel mismatch.
-endef
-
-define Build/Prepare
-       mkdir -p $(PKG_BUILD_DIR)
-       $(CP) ./src/* $(PKG_BUILD_DIR)/
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               CC="$(TARGET_CC)" \
-               CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include" \
-               LDFLAGS="$(TARGET_LDFLAGS)"
-endef
-
-define Package/freifunk-watchdog/install
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/freifunk-watchdog.init $(1)/etc/init.d/freifunk-watchdog
-       $(INSTALL_DIR) $(1)/etc/config
-       $(INSTALL_CONF) ./files/freifunk-watchdog.config $(1)/etc/config/freifunk-watchdog
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/ffwatchd $(1)/usr/sbin/
-endef
-
-$(eval $(call BuildPackage,freifunk-watchdog))
diff --git a/package/luci/contrib/package/freifunk-watchdog/files/freifunk-watchdog.config b/package/luci/contrib/package/freifunk-watchdog/files/freifunk-watchdog.config
deleted file mode 100644 (file)
index b6e6543..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-config process
-       option process 'dropbear'
-       option initscript '/etc/init.d/dropbear'
-
-config process
-       option process 'crond'
-       option initscript '/etc/init.d/cron'
diff --git a/package/luci/contrib/package/freifunk-watchdog/files/freifunk-watchdog.init b/package/luci/contrib/package/freifunk-watchdog/files/freifunk-watchdog.init
deleted file mode 100755 (executable)
index d6ede09..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sh /etc/rc.common
-
-START=99
-PID=/var/run/ffwatchd.pid
-BIN=/usr/sbin/ffwatchd
-
-boot()
-{
-       # If watchdog service is enabled, install cronjob, create device node and start daemon
-       if /etc/init.d/freifunk-watchdog enabled 2>/dev/null; then
-               if ! grep -q "$BIN" /etc/crontabs/root 2>/dev/null; then
-                       echo "* * * * * $BIN running || /etc/init.d/freifunk-watchdog restart" >> /etc/crontabs/root
-               fi
-
-               mknod /dev/watchdog c 10 130
-
-               start
-               
-       # If service is disabled, find and remove related cronjob
-       elif grep -q "$BIN" /etc/crontabs/root 2>/dev/null; then
-               sed -i -e "\\'$BIN'd" /etc/crontabs/root
-       fi
-}
-
-start()
-{
-       start-stop-daemon -q -b -m -p $PID -x $BIN -S
-}
-
-stop()
-{
-       start-stop-daemon -q -p $PID -x $BIN -K
-
-       if ! /etc/init.d/freifunk-watchdog enabled; then
-               if grep -q "$BIN" /etc/crontabs/root 2>/dev/null; then
-                       sed -i -e "\\'$BIN'd" /etc/crontabs/root
-               fi
-       fi
-}
diff --git a/package/luci/contrib/package/freifunk-watchdog/src/Makefile b/package/luci/contrib/package/freifunk-watchdog/src/Makefile
deleted file mode 100644 (file)
index e049ebc..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-WD_BINARY:=ffwatchd
-WD_CFLAGS:=$(CFLAGS) -c -DBINARY=\"$(WD_BINARY)\"
-WD_LDFLAGS:=$(LDFLAGS) -lm -luci
-
-watchdog:
-       $(CC) $(WD_CFLAGS) -o ucix.o ucix.c
-       $(CC) $(WD_CFLAGS) -o watchdog.o watchdog.c
-       $(CC) $(WD_LDFLAGS) -o $(WD_BINARY) watchdog.o ucix.o
-
-clean:
-       rm -f *~ $(WD_BINARY) *.o
-
diff --git a/package/luci/contrib/package/freifunk-watchdog/src/ucix.c b/package/luci/contrib/package/freifunk-watchdog/src/ucix.c
deleted file mode 100644 (file)
index f2f69fc..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program 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 General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- *
- *   Copyright (C) 2008 John Crispin <blogic@openwrt.org> 
- *
- *   Changed by Jo-Philipp Wich <jow@openwrt.org>
- */
-
-#include <string.h>
-#include <stdlib.h>
-
-#include <uci_config.h>
-#include <uci.h>
-#include "ucix.h"
-
-static struct uci_ptr ptr;
-
-static inline int ucix_get_ptr(struct uci_context *ctx, const char *p, const char *s, const char *o, const char *t)
-{
-       memset(&ptr, 0, sizeof(ptr));
-       ptr.package = p;
-       ptr.section = s;
-       ptr.option = o;
-       ptr.value = t;
-       return uci_lookup_ptr(ctx, &ptr, NULL, true);
-}
-
-struct uci_context* ucix_init(const char *config_file)
-{
-       struct uci_context *ctx = uci_alloc_context();
-#ifdef uci_to_delta
-       uci_add_delta_path(ctx, "/var/state");
-#else
-       uci_add_history_path(ctx, "/var/state");
-#endif
-       if(uci_load(ctx, config_file, NULL) != UCI_OK)
-       {
-               return NULL;
-       }
-       return ctx;
-}
-
-void ucix_cleanup(struct uci_context *ctx)
-{
-       uci_free_context(ctx);
-}
-
-const char* ucix_get_option(struct uci_context *ctx, const char *p, const char *s, const char *o)
-{
-       struct uci_element *e = NULL;
-       const char *value = NULL;
-       if(ucix_get_ptr(ctx, p, s, o, NULL))
-               return NULL;
-       if (!(ptr.flags & UCI_LOOKUP_COMPLETE))
-               return NULL;
-       e = ptr.last;
-       switch (e->type)
-       {
-       case UCI_TYPE_SECTION:
-               value = uci_to_section(e)->type;
-               break;
-       case UCI_TYPE_OPTION:
-               switch(ptr.o->type) {
-                       case UCI_TYPE_STRING:
-                               value = ptr.o->v.string;
-                               break;
-                       default:
-                               value = NULL;
-                               break;
-               }
-               break;
-       default:
-               return 0;
-       }
-
-       return value;
-}
-
-void ucix_for_each_section_type(struct uci_context *ctx,
-       const char *p, const char *t,
-       void (*cb)(const char*, void*), void *priv)
-{
-       struct uci_element *e;
-       if(ucix_get_ptr(ctx, p, NULL, NULL, NULL))
-               return;
-       uci_foreach_element(&ptr.p->sections, e)
-               if (!strcmp(t, uci_to_section(e)->type))
-                       cb(e->name, priv);
-}
-
diff --git a/package/luci/contrib/package/freifunk-watchdog/src/ucix.h b/package/luci/contrib/package/freifunk-watchdog/src/ucix.h
deleted file mode 100644 (file)
index b1f5ec3..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program 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 General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- *
- *   Copyright (C) 2008 John Crispin <blogic@openwrt.org> 
- */
-
-#ifndef _UCI_H__
-#define _UCI_H__
-struct uci_context* ucix_init(const char *config_file);
-
-void ucix_for_each_section_type(struct uci_context *ctx,
-       const char *p, const char *t,
-       void (*cb)(const char*, void*), void *priv);
-
-const char* ucix_get_option(struct uci_context *ctx,
-       const char *p, const char *s, const char *o);
-#endif
diff --git a/package/luci/contrib/package/freifunk-watchdog/src/watchdog.c b/package/luci/contrib/package/freifunk-watchdog/src/watchdog.c
deleted file mode 100644 (file)
index 4bc3ab0..0000000
+++ /dev/null
@@ -1,527 +0,0 @@
-/*
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program 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 General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- *
- *   Copyright (C) 2009 Jo-Philipp Wich <jow@openwrt.org>
- */
-
-#include "watchdog.h"
-
-/* Global watchdog fd, required by signal handler */
-int wdfd = -1;
-
-/* Handle finished children */
-static void sigchld_handler(int sig)
-{
-       pid_t pid;
-
-       while( (pid = waitpid(-1, NULL, WNOHANG)) > 0 )
-               syslog(LOG_INFO, "Child returned (pid %d)", pid);
-}
-
-/* Watchdog shutdown helper */
-static void shutdown_watchdog(int sig)
-{
-       static const char wshutdown = WATCH_SHUTDOWN;
-
-       if( wdfd > -1 )
-       {
-               syslog(LOG_INFO, "Stopping watchdog timer");
-               write(wdfd, &wshutdown, 1);
-               close(wdfd);
-               wdfd = -1;
-       }
-
-       exit(0);
-}
-
-/* Get BSSID of given interface */
-static int iw_get_bssid(int iwfd, const char *ifname, char *bssid)
-{
-       struct iwreq iwrq;
-
-       if( iw_ioctl(iwfd, ifname, SIOCGIWAP, &iwrq) >= 0 )
-       {
-               unsigned char *addr = (unsigned char *)iwrq.u.ap_addr.sa_data;
-
-               sprintf(bssid, "%02X:%02X:%02X:%02X:%02X:%02X",
-                       addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
-
-               return 0;
-       }
-
-       return -1;
-}
-
-/* Get channel of given interface */
-static int iw_get_channel(int iwfd, const char *ifname, int *channel)
-{
-       int i;
-       char buffer[sizeof(struct iw_range)];
-       double cur_freq, cmp_freq;
-       struct iwreq iwrq;
-       struct iw_range *range;
-
-       memset(buffer, 0, sizeof(buffer));
-
-       iwrq.u.data.pointer = (char *)buffer;
-       iwrq.u.data.length = sizeof(buffer);
-       iwrq.u.data.flags = 0;
-
-       if( iw_ioctl(iwfd, ifname, SIOCGIWRANGE, &iwrq) < 0)
-       {
-               *channel = -1;
-               return -1;
-       }
-
-       range = (struct iw_range *)buffer;
-
-       if( iw_ioctl(iwfd, ifname, SIOCGIWFREQ, &iwrq) >= 0 )
-       {
-               cur_freq = ((double)iwrq.u.freq.m) * pow(10, iwrq.u.freq.e);
-               if( cur_freq < 1000.00 )
-               {
-                       *channel = (int)cur_freq;
-                       return 0;
-               }
-
-               for(i = 0; i < range->num_frequency; i++)
-               {
-                       cmp_freq = ((double)range->freq[i].m) * pow(10, range->freq[i].e);
-                       if( cmp_freq == cur_freq )
-                       {
-                               *channel = (int)range->freq[i].i;
-                               return 0;
-                       }
-               }
-       }
-
-       *channel = -1;
-       return -1;
-}
-
-/* Get the (first) pid of given process name */
-static int find_process(const char *name)
-{
-       int pid = -1;
-       int file;
-       char buffer[128];
-       char cmpname[128];
-       DIR *dir;
-       struct dirent *entry;
-
-       if( (dir = opendir("/proc")) != NULL )
-       {
-               snprintf(cmpname, sizeof(cmpname), "Name:\t%s\n", name);
-
-               while( (entry = readdir(dir)) != NULL )
-               {
-                       if( !strcmp(entry->d_name, "..") || !isdigit(*entry->d_name) )
-                               continue;
-
-                       sprintf(buffer, "/proc/%s/status", entry->d_name);
-                       if( (file = open(buffer, O_RDONLY)) > -1 )
-                       {
-                               read(file, buffer, sizeof(buffer));
-                               close(file);
-
-                               if( strstr(buffer, cmpname) == buffer )
-                               {
-                                       pid = atoi(entry->d_name);
-
-                                       /* Skip myself ... */
-                                       if( pid == getpid() )
-                                               pid = -1;
-                                       else
-                                               break;
-                               }
-                       }
-               }
-
-               closedir(dir);
-               return pid;
-       }
-
-       syslog(LOG_CRIT, "Unable to open /proc: %s",
-               strerror(errno));
-
-       return -1;
-}
-
-/* Get the 5 minute load average */
-static double find_loadavg(void)
-{
-       int fd;
-       char buffer[10];
-       double load = 0.00;
-
-       if( (fd = open("/proc/loadavg", O_RDONLY)) > -1 )
-       {
-               if( read(fd, buffer, sizeof(buffer)) == sizeof(buffer) )
-                       load = atof(&buffer[5]);
-
-               close(fd);
-       }
-
-       return load;
-}
-
-/* Check if given uci file was updated */
-static int check_uci_update(const char *config, time_t *mtime)
-{
-       struct stat s;
-       char path[128];
-
-       snprintf(path, sizeof(path), "/var/state/%s", config);
-       if( stat(path, &s) > -1 )
-       {
-               if( (*mtime == 0) || (s.st_mtime > *mtime) )
-               {
-                       *mtime = s.st_mtime;
-                       return 1;
-               }
-       }
-
-       return 0;
-}
-
-/* Add tuple */
-static void load_wifi_uci_add_iface(const char *section, struct uci_wifi_iface_itr_ctx *itr)
-{
-       wifi_tuple_t *t;
-       const char *ucitmp;
-       int val = 0;
-
-       ucitmp = ucix_get_option(itr->ctx, "wireless", section, "mode");
-       if( ucitmp && !strncmp(ucitmp, "adhoc", 5) )
-       {
-               if( (t = (wifi_tuple_t *)malloc(sizeof(wifi_tuple_t))) != NULL )
-               {
-                       ucitmp = ucix_get_option(itr->ctx, "wireless", section, "ifname");
-                       if(ucitmp)
-                       {
-                               strncpy(t->ifname, ucitmp, sizeof(t->ifname));
-                               val++;
-                       }
-
-                       ucitmp = ucix_get_option(itr->ctx, "wireless", section, "bssid");
-                       if(ucitmp)
-                       {
-                               strncpy(t->bssid, ucitmp, sizeof(t->bssid));
-                               val++;
-                       }
-
-                       ucitmp = ucix_get_option(itr->ctx, "wireless", section, "device");
-                       if(ucitmp)
-                       {
-                               ucitmp = ucix_get_option(itr->ctx, "wireless", ucitmp, "channel");
-                               if(ucitmp)
-                               {
-                                       t->channel = atoi(ucitmp);
-                                       val++;
-                               }
-                       }
-
-                       if( val == 3 )
-                       {
-                               syslog(LOG_INFO, "Monitoring %s: bssid=%s channel=%d",
-                                       t->ifname, t->bssid, t->channel);
-
-                               t->next = itr->list;
-                               itr->list = t;
-                       }
-                       else
-                       {
-                               free(t);
-                       }
-               }
-       }
-}
-
-/* Load config */
-static wifi_tuple_t * load_wifi_uci(wifi_tuple_t *ifs, time_t *modtime)
-{
-       struct uci_context *ctx;
-       struct uci_wifi_iface_itr_ctx itr;
-       wifi_tuple_t *cur, *next;
-
-       if( check_uci_update("wireless", modtime) )
-       {
-               syslog(LOG_INFO, "Wireless config changed, reloading");
-
-               if( (ctx = ucix_init("wireless")) != NULL )
-               {
-                       if( ifs != NULL )
-                       {
-                               for(cur = ifs; cur; cur = next)
-                               {
-                                       next = cur->next;
-                                       free(cur);
-                               }
-                       }
-
-                       itr.list = NULL;
-                       itr.ctx = ctx;
-
-                       ucix_for_each_section_type(ctx, "wireless", "wifi-iface",
-                               (void *)load_wifi_uci_add_iface, &itr);
-
-                       return itr.list;
-               }
-       }
-
-       return ifs;
-}
-
-/* Add tuple */
-static void load_watchdog_uci_add_process(const char *section, struct uci_process_itr_ctx *itr)
-{
-       process_tuple_t *t;
-       const char *ucitmp;
-       int val = 0;
-
-       if( (t = (process_tuple_t *)malloc(sizeof(process_tuple_t))) != NULL )
-       {
-               t->restart = 0;
-
-               ucitmp = ucix_get_option(itr->ctx, "freifunk-watchdog", section, "process");
-               if(ucitmp)
-               {
-                       strncpy(t->process, ucitmp, sizeof(t->process));
-                       val++;
-               }
-
-               ucitmp = ucix_get_option(itr->ctx, "freifunk-watchdog", section, "initscript");
-               if(ucitmp)
-               {
-                       strncpy(t->initscript, ucitmp, sizeof(t->initscript));
-                       val++;
-               }
-
-               if( val == 2 )
-               {
-                       syslog(LOG_INFO, "Monitoring %s: initscript=%s",
-                               t->process, t->initscript);
-
-                               t->next = itr->list;
-                               itr->list = t;
-               }
-               else
-               {
-                       free(t);
-               }
-       }
-}
-
-/* Load config */
-static process_tuple_t * load_watchdog_uci(process_tuple_t *procs)
-{
-       struct uci_context *ctx;
-       struct uci_process_itr_ctx itr;
-       process_tuple_t *cur, *next;
-
-       syslog(LOG_INFO, "Loading watchdog config");
-
-       if( (ctx = ucix_init("freifunk-watchdog")) != NULL )
-       {
-               if( procs != NULL )
-               {
-                       for(cur = procs; cur; cur = next)
-                       {
-                               next = cur->next;
-                               free(cur);
-                       }
-               }
-
-               itr.list = NULL;
-               itr.ctx = ctx;
-
-               ucix_for_each_section_type(ctx, "freifunk-watchdog", "process",
-                       (void *)load_watchdog_uci_add_process, &itr);
-
-               return itr.list;
-       }
-
-       return procs;
-}
-
-/* Daemon implementation */
-static int do_daemon(void)
-{
-       static int wdtrigger = 1;
-       static int wdtimeout = BASE_INTERVAL * 2;
-       static const char wdkeepalive = WATCH_KEEPALIVE;
-
-       int iwfd;
-       int channel;
-       char bssid[18];
-       struct sigaction sa;
-
-       wifi_tuple_t *ifs = NULL, *curr_if;
-       process_tuple_t *procs = NULL, *curr_proc;
-       time_t wireless_modtime = 0;
-
-       int action_intv = 0;
-       int restart_wifi = 0;
-       int loadavg_panic = 0;
-
-       openlog(SYSLOG_IDENT, 0, LOG_DAEMON);
-       memset(&sa, 0, sizeof(sa));
-
-       if( (iwfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1 )
-       {
-               syslog(LOG_ERR, "Can not open wireless control socket: %s",
-                       strerror(errno));
-
-               return 1;
-       }
-
-       if( (wdfd = open(WATCH_DEVICE, O_WRONLY)) > -1 )
-       {
-               syslog(LOG_INFO, "Opened %s - polling every %i seconds",
-                       WATCH_DEVICE, BASE_INTERVAL);
-
-               /* Install signal handler to halt watchdog on shutdown */
-               sa.sa_handler = shutdown_watchdog;
-               sa.sa_flags = SA_NOCLDWAIT | SA_RESTART;
-               sigaction(SIGHUP,  &sa, NULL);
-               sigaction(SIGINT,  &sa, NULL);
-               sigaction(SIGPIPE, &sa, NULL);
-               sigaction(SIGTERM, &sa, NULL);
-               sigaction(SIGUSR1, &sa, NULL);
-               sigaction(SIGUSR2, &sa, NULL);
-
-               /* Set watchdog timeout to twice the interval */
-               ioctl(wdfd, WDIOC_SETTIMEOUT, &wdtimeout);
-       }
-
-       /* Install signal handler to reap children */
-       sa.sa_handler = sigchld_handler;
-       sa.sa_flags = 0;
-       sigaction(SIGCHLD, &sa, NULL);
-
-       /* Load watchdog configuration only once */
-       procs = load_watchdog_uci(procs);
-
-       while( 1 )
-       {
-               /* Check/increment action interval */
-               if( ++action_intv >= ACTION_INTERVAL )
-               {
-                       /* Reset action interval */
-                       action_intv = 0;
-
-                       /* Check average load */
-                       if( find_loadavg() >= LOAD_TRESHOLD )
-                               loadavg_panic++;
-                       else
-                               loadavg_panic = 0;
-
-                       /* Check wireless interfaces */
-                       ifs = load_wifi_uci(ifs, &wireless_modtime);
-                       for( curr_if = ifs; curr_if; curr_if = curr_if->next )
-                       {
-                               /* Get current channel and bssid */
-                               if( (iw_get_bssid(iwfd, curr_if->ifname, bssid) == 0) &&
-                           (iw_get_channel(iwfd, curr_if->ifname, &channel) == 0) )
-                               {
-                                       /* Check BSSID */
-                                       if( strcasecmp(bssid, curr_if->bssid) != 0 )
-                                       {
-                                               syslog(LOG_WARNING, "BSSID mismatch on %s: current=%s wanted=%s",
-                                                       curr_if->ifname, bssid, curr_if->bssid);
-
-                                               restart_wifi++;
-                                       }
-
-                                       /* Check channel */
-                                       else if( channel != curr_if->channel )
-                                       {
-                                               syslog(LOG_WARNING, "Channel mismatch on %s: current=%d wanted=%d",
-                                                       curr_if->ifname, channel, curr_if->channel);
-
-                                               restart_wifi++;
-                                       }
-                               }
-                               else
-                               {
-                                       syslog(LOG_WARNING, "Requested interface %s not present", curr_if->ifname);
-                               }
-                       }
-
-                       /* Check processes */
-                       for( curr_proc = procs; curr_proc; curr_proc = curr_proc->next )
-                       {
-                               if( find_process(curr_proc->process) < 0 )
-                                       curr_proc->restart++;
-                               else
-                                       curr_proc->restart = 0;
-
-                               /* Process restart required? */
-                               if( curr_proc->restart >= HYSTERESIS )
-                               {
-                                       curr_proc->restart = 0;
-                                       syslog(LOG_WARNING, "The %s process died, restarting", curr_proc->process);
-                                       EXEC(PROC_ACTION);
-                               }
-                       }
-
-
-                       /* Wifi restart required? */
-                       if( restart_wifi >= HYSTERESIS )
-                       {
-                               restart_wifi = 0;
-                               syslog(LOG_WARNING, "Channel or BSSID mismatch on wireless interface, restarting");
-                               EXEC(WIFI_ACTION);
-                       }
-
-                       /* Is there a load problem? */
-                       if( loadavg_panic >= HYSTERESIS )
-                       {
-                               syslog(LOG_EMERG, "Critical system load level, triggering reset!");
-
-                               /* Try watchdog, fall back to reboot */
-                               if( wdfd > -1 )
-                                       ioctl(wdfd, WDIOC_SETTIMEOUT, &wdtrigger);
-                               else
-                                       EXEC(LOAD_ACTION);
-                       }
-               }
-
-
-               /* Reset watchdog timer */
-               if( wdfd > -1 )
-                       write(wdfd, &wdkeepalive, 1);
-
-               sleep(BASE_INTERVAL);
-       }
-
-       shutdown_watchdog(0);
-       closelog();
-
-       return 0;
-}
-
-
-int main(int argc, char *argv[])
-{
-       /* Check if watchdog is running ... */
-       if( (argc > 1) && (strcmp(argv[1], "running") == 0) )
-       {
-               return (find_process(BINARY) == -1);
-       }
-
-       /* Start daemon */
-       return do_daemon();
-}
diff --git a/package/luci/contrib/package/freifunk-watchdog/src/watchdog.h b/package/luci/contrib/package/freifunk-watchdog/src/watchdog.h
deleted file mode 100644 (file)
index c622856..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program 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 General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- *
- *   Copyright (C) 2009 Jo-Philipp Wich <jow@openwrt.org>
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <syslog.h>
-#include <ctype.h>
-#include <errno.h>
-#include <dirent.h>
-#include <fcntl.h>
-#include <math.h>
-#include <time.h>
-#include <signal.h>
-#include <limits.h>
-#include <sys/wait.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <linux/types.h>
-#include <linux/watchdog.h>
-
-#include "ucix.h"
-#include "wireless.22.h"
-
-
-/* Watchdog poll interval */
-#define BASE_INTERVAL  5
-
-/* Action interval (N * BASE_INTERVAL) */
-#define ACTION_INTERVAL        6
-
-/* Hysteresis */
-#define HYSTERESIS             3
-
-/* How to call myself in the logs */
-#define SYSLOG_IDENT   "Freifunk Watchdog"
-
-/* Process error action */
-#define PROC_ACTION            curr_proc->initscript, curr_proc->initscript, "restart"
-
-/* Wifi error action */
-#define WIFI_ACTION            "/sbin/wifi", "/sbin/wifi"
-
-/* Watchdog device */
-#define WATCH_DEVICE   "/dev/watchdog"
-#define WATCH_SHUTDOWN 'V'
-#define WATCH_KEEPALIVE        '\0'
-
-/* System load error action and threshold */
-#define LOAD_TRESHOLD  15.00
-#define LOAD_ACTION            "/sbin/reboot", "/sbin/reboot"
-
-/* Fallback binary name (passed by makefile) */
-#ifndef BINARY
-#define BINARY "ffwatchd"
-#endif
-
-
-/* ifname/bssid/channel tuples */
-struct wifi_tuple {
-       char ifname[16];
-       char bssid[18];
-       int channel;
-       struct wifi_tuple *next;
-};
-
-/* structure to hold tuple-list and uci context during iteration */
-struct uci_wifi_iface_itr_ctx {
-       struct wifi_tuple *list;
-       struct uci_context *ctx;
-};
-
-typedef struct wifi_tuple wifi_tuple_t;
-
-
-/* process name/exec tuples */
-struct process_tuple {
-       char process[PATH_MAX + 1];
-       char initscript[PATH_MAX + 1];
-       int restart;
-       struct process_tuple *next;
-};
-
-/* structure to hold tuple-list and uci context during iteration */
-struct uci_process_itr_ctx {
-       struct process_tuple *list;
-       struct uci_context *ctx;
-};
-
-typedef struct process_tuple process_tuple_t;
-
-
-/* ioctl() helper (stolen from iwlib) */
-static inline int
-iw_ioctl(int                  skfd,           /* Socket to the kernel */
-         const char *         ifname,         /* Device name */
-         int                  request,        /* WE ID */
-         struct iwreq *       pwrq)           /* Fixed part of the request */
-{
-  /* Set device name */
-  strncpy(pwrq->ifr_ifrn.ifrn_name, ifname, 16);
-
-  /* Do the request */
-  return(ioctl(skfd, request, pwrq));
-}
-
-/* fork() & execl() helper */
-#define EXEC(x)                                                                                                                \
-       do {                                                                                                                    \
-               switch(fork())                                                                                          \
-               {                                                                                                                       \
-                       case -1:                                                                                                \
-                               syslog(LOG_CRIT, "Unable to fork child: %s",            \
-                                       strerror(errno));                                                               \
-                               break;                                                                                          \
-                                                                                                                                       \
-                       case 0:                                                                                                 \
-                               execl(x, NULL);                                                                         \
-                               syslog(LOG_CRIT, "Unable to execute action: %s",        \
-                                       strerror(errno));                                                               \
-                               return 1;                                                                                       \
-               }                                                                                                                       \
-       } while(0)
-
diff --git a/package/luci/contrib/package/freifunk-watchdog/src/wireless.22.h b/package/luci/contrib/package/freifunk-watchdog/src/wireless.22.h
deleted file mode 100644 (file)
index 1d19243..0000000
+++ /dev/null
@@ -1,1139 +0,0 @@
-/*
- * This file define a set of standard wireless extensions
- *
- * Version :   22      16.3.07
- *
- * Authors :   Jean Tourrilhes - HPL - <jt@hpl.hp.com>
- * Copyright (c) 1997-2007 Jean Tourrilhes, All Rights Reserved.
- */
-
-#ifndef _LINUX_WIRELESS_H
-#define _LINUX_WIRELESS_H
-
-/************************** DOCUMENTATION **************************/
-/*
- * Initial APIs (1996 -> onward) :
- * -----------------------------
- * Basically, the wireless extensions are for now a set of standard ioctl
- * call + /proc/net/wireless
- *
- * The entry /proc/net/wireless give statistics and information on the
- * driver.
- * This is better than having each driver having its entry because
- * its centralised and we may remove the driver module safely.
- *
- * Ioctl are used to configure the driver and issue commands.  This is
- * better than command line options of insmod because we may want to
- * change dynamically (while the driver is running) some parameters.
- *
- * The ioctl mechanimsm are copied from standard devices ioctl.
- * We have the list of command plus a structure descibing the
- * data exchanged...
- * Note that to add these ioctl, I was obliged to modify :
- *     # net/core/dev.c (two place + add include)
- *     # net/ipv4/af_inet.c (one place + add include)
- *
- * /proc/net/wireless is a copy of /proc/net/dev.
- * We have a structure for data passed from the driver to /proc/net/wireless
- * Too add this, I've modified :
- *     # net/core/dev.c (two other places)
- *     # include/linux/netdevice.h (one place)
- *     # include/linux/proc_fs.h (one place)
- *
- * New driver API (2002 -> onward) :
- * -------------------------------
- * This file is only concerned with the user space API and common definitions.
- * The new driver API is defined and documented in :
- *     # include/net/iw_handler.h
- *
- * Note as well that /proc/net/wireless implementation has now moved in :
- *     # net/core/wireless.c
- *
- * Wireless Events (2002 -> onward) :
- * --------------------------------
- * Events are defined at the end of this file, and implemented in :
- *     # net/core/wireless.c
- *
- * Other comments :
- * --------------
- * Do not add here things that are redundant with other mechanisms
- * (drivers init, ifconfig, /proc/net/dev, ...) and with are not
- * wireless specific.
- *
- * These wireless extensions are not magic : each driver has to provide
- * support for them...
- *
- * IMPORTANT NOTE : As everything in the kernel, this is very much a
- * work in progress. Contact me if you have ideas of improvements...
- */
-
-/***************************** INCLUDES *****************************/
-
-/* This header is used in user-space, therefore need to be sanitised
- * for that purpose. Those includes are usually not compatible with glibc.
- * To know which includes to use in user-space, check iwlib.h. */
-#ifdef __KERNEL__
-#include <linux/types.h>               /* for "caddr_t" et al          */
-#include <linux/socket.h>              /* for "struct sockaddr" et al  */
-#include <linux/if.h>                  /* for IFNAMSIZ and co... */
-#endif /* __KERNEL__ */
-
-/***************************** VERSION *****************************/
-/*
- * This constant is used to know the availability of the wireless
- * extensions and to know which version of wireless extensions it is
- * (there is some stuff that will be added in the future...)
- * I just plan to increment with each new version.
- */
-#define WIRELESS_EXT   22
-
-/*
- * Changes :
- *
- * V2 to V3
- * --------
- *     Alan Cox start some incompatibles changes. I've integrated a bit more.
- *     - Encryption renamed to Encode to avoid US regulation problems
- *     - Frequency changed from float to struct to avoid problems on old 386
- *
- * V3 to V4
- * --------
- *     - Add sensitivity
- *
- * V4 to V5
- * --------
- *     - Missing encoding definitions in range
- *     - Access points stuff
- *
- * V5 to V6
- * --------
- *     - 802.11 support (ESSID ioctls)
- *
- * V6 to V7
- * --------
- *     - define IW_ESSID_MAX_SIZE and IW_MAX_AP
- *
- * V7 to V8
- * --------
- *     - Changed my e-mail address
- *     - More 802.11 support (nickname, rate, rts, frag)
- *     - List index in frequencies
- *
- * V8 to V9
- * --------
- *     - Support for 'mode of operation' (ad-hoc, managed...)
- *     - Support for unicast and multicast power saving
- *     - Change encoding to support larger tokens (>64 bits)
- *     - Updated iw_params (disable, flags) and use it for NWID
- *     - Extracted iw_point from iwreq for clarity
- *
- * V9 to V10
- * ---------
- *     - Add PM capability to range structure
- *     - Add PM modifier : MAX/MIN/RELATIVE
- *     - Add encoding option : IW_ENCODE_NOKEY
- *     - Add TxPower ioctls (work like TxRate)
- *
- * V10 to V11
- * ----------
- *     - Add WE version in range (help backward/forward compatibility)
- *     - Add retry ioctls (work like PM)
- *
- * V11 to V12
- * ----------
- *     - Add SIOCSIWSTATS to get /proc/net/wireless programatically
- *     - Add DEV PRIVATE IOCTL to avoid collisions in SIOCDEVPRIVATE space
- *     - Add new statistics (frag, retry, beacon)
- *     - Add average quality (for user space calibration)
- *
- * V12 to V13
- * ----------
- *     - Document creation of new driver API.
- *     - Extract union iwreq_data from struct iwreq (for new driver API).
- *     - Rename SIOCSIWNAME as SIOCSIWCOMMIT
- *
- * V13 to V14
- * ----------
- *     - Wireless Events support : define struct iw_event
- *     - Define additional specific event numbers
- *     - Add "addr" and "param" fields in union iwreq_data
- *     - AP scanning stuff (SIOCSIWSCAN and friends)
- *
- * V14 to V15
- * ----------
- *     - Add IW_PRIV_TYPE_ADDR for struct sockaddr private arg
- *     - Make struct iw_freq signed (both m & e), add explicit padding
- *     - Add IWEVCUSTOM for driver specific event/scanning token
- *     - Add IW_MAX_GET_SPY for driver returning a lot of addresses
- *     - Add IW_TXPOW_RANGE for range of Tx Powers
- *     - Add IWEVREGISTERED & IWEVEXPIRED events for Access Points
- *     - Add IW_MODE_MONITOR for passive monitor
- *
- * V15 to V16
- * ----------
- *     - Increase the number of bitrates in iw_range to 32 (for 802.11g)
- *     - Increase the number of frequencies in iw_range to 32 (for 802.11b+a)
- *     - Reshuffle struct iw_range for increases, add filler
- *     - Increase IW_MAX_AP to 64 for driver returning a lot of addresses
- *     - Remove IW_MAX_GET_SPY because conflict with enhanced spy support
- *     - Add SIOCSIWTHRSPY/SIOCGIWTHRSPY and "struct iw_thrspy"
- *     - Add IW_ENCODE_TEMP and iw_range->encoding_login_index
- *
- * V16 to V17
- * ----------
- *     - Add flags to frequency -> auto/fixed
- *     - Document (struct iw_quality *)->updated, add new flags (INVALID)
- *     - Wireless Event capability in struct iw_range
- *     - Add support for relative TxPower (yick !)
- *
- * V17 to V18 (From Jouni Malinen <jkmaline@cc.hut.fi>)
- * ----------
- *     - Add support for WPA/WPA2
- *     - Add extended encoding configuration (SIOCSIWENCODEEXT and
- *       SIOCGIWENCODEEXT)
- *     - Add SIOCSIWGENIE/SIOCGIWGENIE
- *     - Add SIOCSIWMLME
- *     - Add SIOCSIWPMKSA
- *     - Add struct iw_range bit field for supported encoding capabilities
- *     - Add optional scan request parameters for SIOCSIWSCAN
- *     - Add SIOCSIWAUTH/SIOCGIWAUTH for setting authentication and WPA
- *       related parameters (extensible up to 4096 parameter values)
- *     - Add wireless events: IWEVGENIE, IWEVMICHAELMICFAILURE,
- *       IWEVASSOCREQIE, IWEVASSOCRESPIE, IWEVPMKIDCAND
- *
- * V18 to V19
- * ----------
- *     - Remove (struct iw_point *)->pointer from events and streams
- *     - Remove header includes to help user space
- *     - Increase IW_ENCODING_TOKEN_MAX from 32 to 64
- *     - Add IW_QUAL_ALL_UPDATED and IW_QUAL_ALL_INVALID macros
- *     - Add explicit flag to tell stats are in dBm : IW_QUAL_DBM
- *     - Add IW_IOCTL_IDX() and IW_EVENT_IDX() macros
- *
- * V19 to V20
- * ----------
- *     - RtNetlink requests support (SET/GET)
- *
- * V20 to V21
- * ----------
- *     - Remove (struct net_device *)->get_wireless_stats()
- *     - Change length in ESSID and NICK to strlen() instead of strlen()+1
- *     - Add IW_RETRY_SHORT/IW_RETRY_LONG retry modifiers
- *     - Power/Retry relative values no longer * 100000
- *     - Add explicit flag to tell stats are in 802.11k RCPI : IW_QUAL_RCPI
- *
- * V21 to V22
- * ----------
- *     - Prevent leaking of kernel space in stream on 64 bits.
- */
-
-/**************************** CONSTANTS ****************************/
-
-/* -------------------------- IOCTL LIST -------------------------- */
-
-/* Wireless Identification */
-#define SIOCSIWCOMMIT  0x8B00          /* Commit pending changes to driver */
-#define SIOCGIWNAME    0x8B01          /* get name == wireless protocol */
-/* SIOCGIWNAME is used to verify the presence of Wireless Extensions.
- * Common values : "IEEE 802.11-DS", "IEEE 802.11-FH", "IEEE 802.11b"...
- * Don't put the name of your driver there, it's useless. */
-
-/* Basic operations */
-#define SIOCSIWNWID    0x8B02          /* set network id (pre-802.11) */
-#define SIOCGIWNWID    0x8B03          /* get network id (the cell) */
-#define SIOCSIWFREQ    0x8B04          /* set channel/frequency (Hz) */
-#define SIOCGIWFREQ    0x8B05          /* get channel/frequency (Hz) */
-#define SIOCSIWMODE    0x8B06          /* set operation mode */
-#define SIOCGIWMODE    0x8B07          /* get operation mode */
-#define SIOCSIWSENS    0x8B08          /* set sensitivity (dBm) */
-#define SIOCGIWSENS    0x8B09          /* get sensitivity (dBm) */
-
-/* Informative stuff */
-#define SIOCSIWRANGE   0x8B0A          /* Unused */
-#define SIOCGIWRANGE   0x8B0B          /* Get range of parameters */
-#define SIOCSIWPRIV    0x8B0C          /* Unused */
-#define SIOCGIWPRIV    0x8B0D          /* get private ioctl interface info */
-#define SIOCSIWSTATS   0x8B0E          /* Unused */
-#define SIOCGIWSTATS   0x8B0F          /* Get /proc/net/wireless stats */
-/* SIOCGIWSTATS is strictly used between user space and the kernel, and
- * is never passed to the driver (i.e. the driver will never see it). */
-
-/* Spy support (statistics per MAC address - used for Mobile IP support) */
-#define SIOCSIWSPY     0x8B10          /* set spy addresses */
-#define SIOCGIWSPY     0x8B11          /* get spy info (quality of link) */
-#define SIOCSIWTHRSPY  0x8B12          /* set spy threshold (spy event) */
-#define SIOCGIWTHRSPY  0x8B13          /* get spy threshold */
-
-/* Access Point manipulation */
-#define SIOCSIWAP      0x8B14          /* set access point MAC addresses */
-#define SIOCGIWAP      0x8B15          /* get access point MAC addresses */
-#define SIOCGIWAPLIST  0x8B17          /* Deprecated in favor of scanning */
-#define SIOCSIWSCAN    0x8B18          /* trigger scanning (list cells) */
-#define SIOCGIWSCAN    0x8B19          /* get scanning results */
-
-/* 802.11 specific support */
-#define SIOCSIWESSID   0x8B1A          /* set ESSID (network name) */
-#define SIOCGIWESSID   0x8B1B          /* get ESSID */
-#define SIOCSIWNICKN   0x8B1C          /* set node name/nickname */
-#define SIOCGIWNICKN   0x8B1D          /* get node name/nickname */
-/* As the ESSID and NICKN are strings up to 32 bytes long, it doesn't fit
- * within the 'iwreq' structure, so we need to use the 'data' member to
- * point to a string in user space, like it is done for RANGE... */
-
-/* Other parameters useful in 802.11 and some other devices */
-#define SIOCSIWRATE    0x8B20          /* set default bit rate (bps) */
-#define SIOCGIWRATE    0x8B21          /* get default bit rate (bps) */
-#define SIOCSIWRTS     0x8B22          /* set RTS/CTS threshold (bytes) */
-#define SIOCGIWRTS     0x8B23          /* get RTS/CTS threshold (bytes) */
-#define SIOCSIWFRAG    0x8B24          /* set fragmentation thr (bytes) */
-#define SIOCGIWFRAG    0x8B25          /* get fragmentation thr (bytes) */
-#define SIOCSIWTXPOW   0x8B26          /* set transmit power (dBm) */
-#define SIOCGIWTXPOW   0x8B27          /* get transmit power (dBm) */
-#define SIOCSIWRETRY   0x8B28          /* set retry limits and lifetime */
-#define SIOCGIWRETRY   0x8B29          /* get retry limits and lifetime */
-
-/* Encoding stuff (scrambling, hardware security, WEP...) */
-#define SIOCSIWENCODE  0x8B2A          /* set encoding token & mode */
-#define SIOCGIWENCODE  0x8B2B          /* get encoding token & mode */
-/* Power saving stuff (power management, unicast and multicast) */
-#define SIOCSIWPOWER   0x8B2C          /* set Power Management settings */
-#define SIOCGIWPOWER   0x8B2D          /* get Power Management settings */
-/* Modulation bitmask */
-#define SIOCSIWMODUL   0x8B2E          /* set Modulations settings */
-#define SIOCGIWMODUL   0x8B2F          /* get Modulations settings */
-
-/* WPA : Generic IEEE 802.11 informatiom element (e.g., for WPA/RSN/WMM).
- * This ioctl uses struct iw_point and data buffer that includes IE id and len
- * fields. More than one IE may be included in the request. Setting the generic
- * IE to empty buffer (len=0) removes the generic IE from the driver. Drivers
- * are allowed to generate their own WPA/RSN IEs, but in these cases, drivers
- * are required to report the used IE as a wireless event, e.g., when
- * associating with an AP. */
-#define SIOCSIWGENIE   0x8B30          /* set generic IE */
-#define SIOCGIWGENIE   0x8B31          /* get generic IE */
-
-/* WPA : IEEE 802.11 MLME requests */
-#define SIOCSIWMLME    0x8B16          /* request MLME operation; uses
-                                        * struct iw_mlme */
-/* WPA : Authentication mode parameters */
-#define SIOCSIWAUTH    0x8B32          /* set authentication mode params */
-#define SIOCGIWAUTH    0x8B33          /* get authentication mode params */
-
-/* WPA : Extended version of encoding configuration */
-#define SIOCSIWENCODEEXT 0x8B34                /* set encoding token & mode */
-#define SIOCGIWENCODEEXT 0x8B35                /* get encoding token & mode */
-
-/* WPA2 : PMKSA cache management */
-#define SIOCSIWPMKSA   0x8B36          /* PMKSA cache operation */
-
-/* -------------------- DEV PRIVATE IOCTL LIST -------------------- */
-
-/* These 32 ioctl are wireless device private, for 16 commands.
- * Each driver is free to use them for whatever purpose it chooses,
- * however the driver *must* export the description of those ioctls
- * with SIOCGIWPRIV and *must* use arguments as defined below.
- * If you don't follow those rules, DaveM is going to hate you (reason :
- * it make mixed 32/64bit operation impossible).
- */
-#define SIOCIWFIRSTPRIV        0x8BE0
-#define SIOCIWLASTPRIV 0x8BFF
-/* Previously, we were using SIOCDEVPRIVATE, but we now have our
- * separate range because of collisions with other tools such as
- * 'mii-tool'.
- * We now have 32 commands, so a bit more space ;-).
- * Also, all 'even' commands are only usable by root and don't return the
- * content of ifr/iwr to user (but you are not obliged to use the set/get
- * convention, just use every other two command). More details in iwpriv.c.
- * And I repeat : you are not forced to use them with iwpriv, but you
- * must be compliant with it.
- */
-
-/* ------------------------- IOCTL STUFF ------------------------- */
-
-/* The first and the last (range) */
-#define SIOCIWFIRST    0x8B00
-#define SIOCIWLAST     SIOCIWLASTPRIV          /* 0x8BFF */
-#define IW_IOCTL_IDX(cmd)      ((cmd) - SIOCIWFIRST)
-
-/* Odd : get (world access), even : set (root access) */
-#define IW_IS_SET(cmd) (!((cmd) & 0x1))
-#define IW_IS_GET(cmd) ((cmd) & 0x1)
-
-/* ----------------------- WIRELESS EVENTS ----------------------- */
-/* Those are *NOT* ioctls, do not issue request on them !!! */
-/* Most events use the same identifier as ioctl requests */
-
-#define IWEVTXDROP     0x8C00          /* Packet dropped to excessive retry */
-#define IWEVQUAL       0x8C01          /* Quality part of statistics (scan) */
-#define IWEVCUSTOM     0x8C02          /* Driver specific ascii string */
-#define IWEVREGISTERED 0x8C03          /* Discovered a new node (AP mode) */
-#define IWEVEXPIRED    0x8C04          /* Expired a node (AP mode) */
-#define IWEVGENIE      0x8C05          /* Generic IE (WPA, RSN, WMM, ..)
-                                        * (scan results); This includes id and
-                                        * length fields. One IWEVGENIE may
-                                        * contain more than one IE. Scan
-                                        * results may contain one or more
-                                        * IWEVGENIE events. */
-#define IWEVMICHAELMICFAILURE 0x8C06   /* Michael MIC failure
-                                        * (struct iw_michaelmicfailure)
-                                        */
-#define IWEVASSOCREQIE 0x8C07          /* IEs used in (Re)Association Request.
-                                        * The data includes id and length
-                                        * fields and may contain more than one
-                                        * IE. This event is required in
-                                        * Managed mode if the driver
-                                        * generates its own WPA/RSN IE. This
-                                        * should be sent just before
-                                        * IWEVREGISTERED event for the
-                                        * association. */
-#define IWEVASSOCRESPIE        0x8C08          /* IEs used in (Re)Association
-                                        * Response. The data includes id and
-                                        * length fields and may contain more
-                                        * than one IE. This may be sent
-                                        * between IWEVASSOCREQIE and
-                                        * IWEVREGISTERED events for the
-                                        * association. */
-#define IWEVPMKIDCAND  0x8C09          /* PMKID candidate for RSN
-                                        * pre-authentication
-                                        * (struct iw_pmkid_cand) */
-
-#define IWEVFIRST      0x8C00
-#define IW_EVENT_IDX(cmd)      ((cmd) - IWEVFIRST)
-
-/* ------------------------- PRIVATE INFO ------------------------- */
-/*
- * The following is used with SIOCGIWPRIV. It allow a driver to define
- * the interface (name, type of data) for its private ioctl.
- * Privates ioctl are SIOCIWFIRSTPRIV -> SIOCIWLASTPRIV
- */
-
-#define IW_PRIV_TYPE_MASK      0x7000  /* Type of arguments */
-#define IW_PRIV_TYPE_NONE      0x0000
-#define IW_PRIV_TYPE_BYTE      0x1000  /* Char as number */
-#define IW_PRIV_TYPE_CHAR      0x2000  /* Char as character */
-#define IW_PRIV_TYPE_INT       0x4000  /* 32 bits int */
-#define IW_PRIV_TYPE_FLOAT     0x5000  /* struct iw_freq */
-#define IW_PRIV_TYPE_ADDR      0x6000  /* struct sockaddr */
-
-#define IW_PRIV_SIZE_FIXED     0x0800  /* Variable or fixed number of args */
-
-#define IW_PRIV_SIZE_MASK      0x07FF  /* Max number of those args */
-
-/*
- * Note : if the number of args is fixed and the size < 16 octets,
- * instead of passing a pointer we will put args in the iwreq struct...
- */
-
-/* ----------------------- OTHER CONSTANTS ----------------------- */
-
-/* Maximum frequencies in the range struct */
-#define IW_MAX_FREQUENCIES     32
-/* Note : if you have something like 80 frequencies,
- * don't increase this constant and don't fill the frequency list.
- * The user will be able to set by channel anyway... */
-
-/* Maximum bit rates in the range struct */
-#define IW_MAX_BITRATES                32
-
-/* Maximum tx powers in the range struct */
-#define IW_MAX_TXPOWER         8
-/* Note : if you more than 8 TXPowers, just set the max and min or
- * a few of them in the struct iw_range. */
-
-/* Maximum of address that you may set with SPY */
-#define IW_MAX_SPY             8
-
-/* Maximum of address that you may get in the
-   list of access points in range */
-#define IW_MAX_AP              64
-
-/* Maximum size of the ESSID and NICKN strings */
-#define IW_ESSID_MAX_SIZE      32
-
-/* Modes of operation */
-#define IW_MODE_AUTO   0       /* Let the driver decides */
-#define IW_MODE_ADHOC  1       /* Single cell network */
-#define IW_MODE_INFRA  2       /* Multi cell network, roaming, ... */
-#define IW_MODE_MASTER 3       /* Synchronisation master or Access Point */
-#define IW_MODE_REPEAT 4       /* Wireless Repeater (forwarder) */
-#define IW_MODE_SECOND 5       /* Secondary master/repeater (backup) */
-#define IW_MODE_MONITOR        6       /* Passive monitor (listen only) */
-
-/* Statistics flags (bitmask in updated) */
-#define IW_QUAL_QUAL_UPDATED   0x01    /* Value was updated since last read */
-#define IW_QUAL_LEVEL_UPDATED  0x02
-#define IW_QUAL_NOISE_UPDATED  0x04
-#define IW_QUAL_ALL_UPDATED    0x07
-#define IW_QUAL_DBM            0x08    /* Level + Noise are dBm */
-#define IW_QUAL_QUAL_INVALID   0x10    /* Driver doesn't provide value */
-#define IW_QUAL_LEVEL_INVALID  0x20
-#define IW_QUAL_NOISE_INVALID  0x40
-#define IW_QUAL_RCPI           0x80    /* Level + Noise are 802.11k RCPI */
-#define IW_QUAL_ALL_INVALID    0x70
-
-/* Frequency flags */
-#define IW_FREQ_AUTO           0x00    /* Let the driver decides */
-#define IW_FREQ_FIXED          0x01    /* Force a specific value */
-
-/* Maximum number of size of encoding token available
- * they are listed in the range structure */
-#define IW_MAX_ENCODING_SIZES  8
-
-/* Maximum size of the encoding token in bytes */
-#define IW_ENCODING_TOKEN_MAX  64      /* 512 bits (for now) */
-
-/* Flags for encoding (along with the token) */
-#define IW_ENCODE_INDEX                0x00FF  /* Token index (if needed) */
-#define IW_ENCODE_FLAGS                0xFF00  /* Flags defined below */
-#define IW_ENCODE_MODE         0xF000  /* Modes defined below */
-#define IW_ENCODE_DISABLED     0x8000  /* Encoding disabled */
-#define IW_ENCODE_ENABLED      0x0000  /* Encoding enabled */
-#define IW_ENCODE_RESTRICTED   0x4000  /* Refuse non-encoded packets */
-#define IW_ENCODE_OPEN         0x2000  /* Accept non-encoded packets */
-#define IW_ENCODE_NOKEY                0x0800  /* Key is write only, so not present */
-#define IW_ENCODE_TEMP         0x0400  /* Temporary key */
-
-/* Power management flags available (along with the value, if any) */
-#define IW_POWER_ON            0x0000  /* No details... */
-#define IW_POWER_TYPE          0xF000  /* Type of parameter */
-#define IW_POWER_PERIOD                0x1000  /* Value is a period/duration of  */
-#define IW_POWER_TIMEOUT       0x2000  /* Value is a timeout (to go asleep) */
-#define IW_POWER_SAVING                0x4000  /* Value is relative (how aggressive)*/
-#define IW_POWER_MODE          0x0F00  /* Power Management mode */
-#define IW_POWER_UNICAST_R     0x0100  /* Receive only unicast messages */
-#define IW_POWER_MULTICAST_R   0x0200  /* Receive only multicast messages */
-#define IW_POWER_ALL_R         0x0300  /* Receive all messages though PM */
-#define IW_POWER_FORCE_S       0x0400  /* Force PM procedure for sending unicast */
-#define IW_POWER_REPEATER      0x0800  /* Repeat broadcast messages in PM period */
-#define IW_POWER_MODIFIER      0x000F  /* Modify a parameter */
-#define IW_POWER_MIN           0x0001  /* Value is a minimum  */
-#define IW_POWER_MAX           0x0002  /* Value is a maximum */
-#define IW_POWER_RELATIVE      0x0004  /* Value is not in seconds/ms/us */
-
-/* Transmit Power flags available */
-#define IW_TXPOW_TYPE          0x00FF  /* Type of value */
-#define IW_TXPOW_DBM           0x0000  /* Value is in dBm */
-#define IW_TXPOW_MWATT         0x0001  /* Value is in mW */
-#define IW_TXPOW_RELATIVE      0x0002  /* Value is in arbitrary units */
-#define IW_TXPOW_RANGE         0x1000  /* Range of value between min/max */
-
-/* Retry limits and lifetime flags available */
-#define IW_RETRY_ON            0x0000  /* No details... */
-#define IW_RETRY_TYPE          0xF000  /* Type of parameter */
-#define IW_RETRY_LIMIT         0x1000  /* Maximum number of retries*/
-#define IW_RETRY_LIFETIME      0x2000  /* Maximum duration of retries in us */
-#define IW_RETRY_MODIFIER      0x00FF  /* Modify a parameter */
-#define IW_RETRY_MIN           0x0001  /* Value is a minimum  */
-#define IW_RETRY_MAX           0x0002  /* Value is a maximum */
-#define IW_RETRY_RELATIVE      0x0004  /* Value is not in seconds/ms/us */
-#define IW_RETRY_SHORT         0x0010  /* Value is for short packets  */
-#define IW_RETRY_LONG          0x0020  /* Value is for long packets */
-
-/* Scanning request flags */
-#define IW_SCAN_DEFAULT                0x0000  /* Default scan of the driver */
-#define IW_SCAN_ALL_ESSID      0x0001  /* Scan all ESSIDs */
-#define IW_SCAN_THIS_ESSID     0x0002  /* Scan only this ESSID */
-#define IW_SCAN_ALL_FREQ       0x0004  /* Scan all Frequencies */
-#define IW_SCAN_THIS_FREQ      0x0008  /* Scan only this Frequency */
-#define IW_SCAN_ALL_MODE       0x0010  /* Scan all Modes */
-#define IW_SCAN_THIS_MODE      0x0020  /* Scan only this Mode */
-#define IW_SCAN_ALL_RATE       0x0040  /* Scan all Bit-Rates */
-#define IW_SCAN_THIS_RATE      0x0080  /* Scan only this Bit-Rate */
-/* struct iw_scan_req scan_type */
-#define IW_SCAN_TYPE_ACTIVE 0
-#define IW_SCAN_TYPE_PASSIVE 1
-/* Maximum size of returned data */
-#define IW_SCAN_MAX_DATA       4096    /* In bytes */
-
-/* Max number of char in custom event - use multiple of them if needed */
-#define IW_CUSTOM_MAX          256     /* In bytes */
-
-/* Generic information element */
-#define IW_GENERIC_IE_MAX      1024
-
-/* MLME requests (SIOCSIWMLME / struct iw_mlme) */
-#define IW_MLME_DEAUTH         0
-#define IW_MLME_DISASSOC       1
-#define IW_MLME_AUTH           2
-#define IW_MLME_ASSOC          3
-
-/* SIOCSIWAUTH/SIOCGIWAUTH struct iw_param flags */
-#define IW_AUTH_INDEX          0x0FFF
-#define IW_AUTH_FLAGS          0xF000
-/* SIOCSIWAUTH/SIOCGIWAUTH parameters (0 .. 4095)
- * (IW_AUTH_INDEX mask in struct iw_param flags; this is the index of the
- * parameter that is being set/get to; value will be read/written to
- * struct iw_param value field) */
-#define IW_AUTH_WPA_VERSION            0
-#define IW_AUTH_CIPHER_PAIRWISE                1
-#define IW_AUTH_CIPHER_GROUP           2
-#define IW_AUTH_KEY_MGMT               3
-#define IW_AUTH_TKIP_COUNTERMEASURES   4
-#define IW_AUTH_DROP_UNENCRYPTED       5
-#define IW_AUTH_80211_AUTH_ALG         6
-#define IW_AUTH_WPA_ENABLED            7
-#define IW_AUTH_RX_UNENCRYPTED_EAPOL   8
-#define IW_AUTH_ROAMING_CONTROL                9
-#define IW_AUTH_PRIVACY_INVOKED                10
-
-/* IW_AUTH_WPA_VERSION values (bit field) */
-#define IW_AUTH_WPA_VERSION_DISABLED   0x00000001
-#define IW_AUTH_WPA_VERSION_WPA                0x00000002
-#define IW_AUTH_WPA_VERSION_WPA2       0x00000004
-
-/* IW_AUTH_PAIRWISE_CIPHER and IW_AUTH_GROUP_CIPHER values (bit field) */
-#define IW_AUTH_CIPHER_NONE    0x00000001
-#define IW_AUTH_CIPHER_WEP40   0x00000002
-#define IW_AUTH_CIPHER_TKIP    0x00000004
-#define IW_AUTH_CIPHER_CCMP    0x00000008
-#define IW_AUTH_CIPHER_WEP104  0x00000010
-
-/* IW_AUTH_KEY_MGMT values (bit field) */
-#define IW_AUTH_KEY_MGMT_802_1X        1
-#define IW_AUTH_KEY_MGMT_PSK   2
-
-/* IW_AUTH_80211_AUTH_ALG values (bit field) */
-#define IW_AUTH_ALG_OPEN_SYSTEM        0x00000001
-#define IW_AUTH_ALG_SHARED_KEY 0x00000002
-#define IW_AUTH_ALG_LEAP       0x00000004
-
-/* IW_AUTH_ROAMING_CONTROL values */
-#define IW_AUTH_ROAMING_ENABLE 0       /* driver/firmware based roaming */
-#define IW_AUTH_ROAMING_DISABLE        1       /* user space program used for roaming
-                                        * control */
-
-/* SIOCSIWENCODEEXT definitions */
-#define IW_ENCODE_SEQ_MAX_SIZE 8
-/* struct iw_encode_ext ->alg */
-#define IW_ENCODE_ALG_NONE     0
-#define IW_ENCODE_ALG_WEP      1
-#define IW_ENCODE_ALG_TKIP     2
-#define IW_ENCODE_ALG_CCMP     3
-/* struct iw_encode_ext ->ext_flags */
-#define IW_ENCODE_EXT_TX_SEQ_VALID     0x00000001
-#define IW_ENCODE_EXT_RX_SEQ_VALID     0x00000002
-#define IW_ENCODE_EXT_GROUP_KEY                0x00000004
-#define IW_ENCODE_EXT_SET_TX_KEY       0x00000008
-
-/* IWEVMICHAELMICFAILURE : struct iw_michaelmicfailure ->flags */
-#define IW_MICFAILURE_KEY_ID   0x00000003 /* Key ID 0..3 */
-#define IW_MICFAILURE_GROUP    0x00000004
-#define IW_MICFAILURE_PAIRWISE 0x00000008
-#define IW_MICFAILURE_STAKEY   0x00000010
-#define IW_MICFAILURE_COUNT    0x00000060 /* 1 or 2 (0 = count not supported)
-                                           */
-
-/* Bit field values for enc_capa in struct iw_range */
-#define IW_ENC_CAPA_WPA                0x00000001
-#define IW_ENC_CAPA_WPA2       0x00000002
-#define IW_ENC_CAPA_CIPHER_TKIP        0x00000004
-#define IW_ENC_CAPA_CIPHER_CCMP        0x00000008
-
-/* Event capability macros - in (struct iw_range *)->event_capa
- * Because we have more than 32 possible events, we use an array of
- * 32 bit bitmasks. Note : 32 bits = 0x20 = 2^5. */
-#define IW_EVENT_CAPA_BASE(cmd)                ((cmd >= SIOCIWFIRSTPRIV) ? \
-                                        (cmd - SIOCIWFIRSTPRIV + 0x60) : \
-                                        (cmd - SIOCSIWCOMMIT))
-#define IW_EVENT_CAPA_INDEX(cmd)       (IW_EVENT_CAPA_BASE(cmd) >> 5)
-#define IW_EVENT_CAPA_MASK(cmd)                (1 << (IW_EVENT_CAPA_BASE(cmd) & 0x1F))
-/* Event capability constants - event autogenerated by the kernel
- * This list is valid for most 802.11 devices, customise as needed... */
-#define IW_EVENT_CAPA_K_0      (IW_EVENT_CAPA_MASK(0x8B04) | \
-                                IW_EVENT_CAPA_MASK(0x8B06) | \
-                                IW_EVENT_CAPA_MASK(0x8B1A))
-#define IW_EVENT_CAPA_K_1      (IW_EVENT_CAPA_MASK(0x8B2A))
-/* "Easy" macro to set events in iw_range (less efficient) */
-#define IW_EVENT_CAPA_SET(event_capa, cmd) (event_capa[IW_EVENT_CAPA_INDEX(cmd)] |= IW_EVENT_CAPA_MASK(cmd))
-#define IW_EVENT_CAPA_SET_KERNEL(event_capa) {event_capa[0] |= IW_EVENT_CAPA_K_0; event_capa[1] |= IW_EVENT_CAPA_K_1; }
-
-/* Modulations bitmasks */
-#define IW_MODUL_ALL           0x00000000      /* Everything supported */
-#define IW_MODUL_FH            0x00000001      /* Frequency Hopping */
-#define IW_MODUL_DS            0x00000002      /* Original Direct Sequence */
-#define IW_MODUL_CCK           0x00000004      /* 802.11b : 5.5 + 11 Mb/s */
-#define IW_MODUL_11B           (IW_MODUL_DS | IW_MODUL_CCK)
-#define IW_MODUL_PBCC          0x00000008      /* TI : 5.5 + 11 + 22 Mb/s */
-#define IW_MODUL_OFDM_A                0x00000010      /* 802.11a : 54 Mb/s */
-#define IW_MODUL_11A           (IW_MODUL_OFDM_A)
-#define IW_MODUL_11AB          (IW_MODUL_11B | IW_MODUL_11A)
-#define IW_MODUL_OFDM_G                0x00000020      /* 802.11g : 54 Mb/s */
-#define IW_MODUL_11G           (IW_MODUL_11B | IW_MODUL_OFDM_G)
-#define IW_MODUL_11AG          (IW_MODUL_11G | IW_MODUL_11A)
-#define IW_MODUL_TURBO         0x00000040      /* ATH : bonding, 108 Mb/s */
-/* In here we should define MIMO stuff. Later... */
-#define IW_MODUL_CUSTOM                0x40000000      /* Driver specific */
-
-/* Bitrate flags available */
-#define IW_BITRATE_TYPE                0x00FF  /* Type of value */
-#define IW_BITRATE_UNICAST     0x0001  /* Maximum/Fixed unicast bitrate */
-#define IW_BITRATE_BROADCAST   0x0002  /* Fixed broadcast bitrate */
-
-/****************************** TYPES ******************************/
-
-/* --------------------------- SUBTYPES --------------------------- */
-/*
- *     Generic format for most parameters that fit in an int
- */
-struct iw_param
-{
-  int32_t              value;          /* The value of the parameter itself */
-  uint8_t              fixed;          /* Hardware should not use auto select */
-  uint8_t              disabled;       /* Disable the feature */
-  uint16_t             flags;          /* Various specifc flags (if any) */
-};
-
-/*
- *     For all data larger than 16 octets, we need to use a
- *     pointer to memory allocated in user space.
- */
-struct iw_point
-{
-  void                         *pointer;       /* Pointer to the data  (in user space) */
-  uint16_t             length;         /* number of fields or size in bytes */
-  uint16_t             flags;          /* Optional params */
-};
-
-/*
- *     A frequency
- *     For numbers lower than 10^9, we encode the number in 'm' and
- *     set 'e' to 0
- *     For number greater than 10^9, we divide it by the lowest power
- *     of 10 to get 'm' lower than 10^9, with 'm'= f / (10^'e')...
- *     The power of 10 is in 'e', the result of the division is in 'm'.
- */
-struct iw_freq
-{
-       int32_t         m;              /* Mantissa */
-       int16_t         e;              /* Exponent */
-       uint8_t         i;              /* List index (when in range struct) */
-       uint8_t         flags;          /* Flags (fixed/auto) */
-};
-
-/*
- *     Quality of the link
- */
-struct iw_quality
-{
-       uint8_t         qual;           /* link quality (%retries, SNR,
-                                          %missed beacons or better...) */
-       uint8_t         level;          /* signal level (dBm) */
-       uint8_t         noise;          /* noise level (dBm) */
-       uint8_t         updated;        /* Flags to know if updated */
-};
-
-/*
- *     Packet discarded in the wireless adapter due to
- *     "wireless" specific problems...
- *     Note : the list of counter and statistics in net_device_stats
- *     is already pretty exhaustive, and you should use that first.
- *     This is only additional stats...
- */
-struct iw_discarded
-{
-       uint32_t                nwid;           /* Rx : Wrong nwid/essid */
-       uint32_t                code;           /* Rx : Unable to code/decode (WEP) */
-       uint32_t                fragment;       /* Rx : Can't perform MAC reassembly */
-       uint32_t                retries;        /* Tx : Max MAC retries num reached */
-       uint32_t                misc;           /* Others cases */
-};
-
-/*
- *     Packet/Time period missed in the wireless adapter due to
- *     "wireless" specific problems...
- */
-struct iw_missed
-{
-       uint32_t                beacon;         /* Missed beacons/superframe */
-};
-
-/*
- *     Quality range (for spy threshold)
- */
-struct iw_thrspy
-{
-       struct sockaddr         addr;           /* Source address (hw/mac) */
-       struct iw_quality       qual;           /* Quality of the link */
-       struct iw_quality       low;            /* Low threshold */
-       struct iw_quality       high;           /* High threshold */
-};
-
-/*
- *     Optional data for scan request
- *
- *     Note: these optional parameters are controlling parameters for the
- *     scanning behavior, these do not apply to getting scan results
- *     (SIOCGIWSCAN). Drivers are expected to keep a local BSS table and
- *     provide a merged results with all BSSes even if the previous scan
- *     request limited scanning to a subset, e.g., by specifying an SSID.
- *     Especially, scan results are required to include an entry for the
- *     current BSS if the driver is in Managed mode and associated with an AP.
- */
-struct iw_scan_req
-{
-       uint8_t         scan_type; /* IW_SCAN_TYPE_{ACTIVE,PASSIVE} */
-       uint8_t         essid_len;
-       uint8_t         num_channels; /* num entries in channel_list;
-                                      * 0 = scan all allowed channels */
-       uint8_t         flags; /* reserved as padding; use zero, this may
-                               * be used in the future for adding flags
-                               * to request different scan behavior */
-       struct sockaddr bssid; /* ff:ff:ff:ff:ff:ff for broadcast BSSID or
-                               * individual address of a specific BSS */
-
-       /*
-        * Use this ESSID if IW_SCAN_THIS_ESSID flag is used instead of using
-        * the current ESSID. This allows scan requests for specific ESSID
-        * without having to change the current ESSID and potentially breaking
-        * the current association.
-        */
-       uint8_t         essid[IW_ESSID_MAX_SIZE];
-
-       /*
-        * Optional parameters for changing the default scanning behavior.
-        * These are based on the MLME-SCAN.request from IEEE Std 802.11.
-        * TU is 1.024 ms. If these are set to 0, driver is expected to use
-        * reasonable default values. min_channel_time defines the time that
-        * will be used to wait for the first reply on each channel. If no
-        * replies are received, next channel will be scanned after this. If
-        * replies are received, total time waited on the channel is defined by
-        * max_channel_time.
-        */
-       uint32_t                min_channel_time; /* in TU */
-       uint32_t                max_channel_time; /* in TU */
-
-       struct iw_freq  channel_list[IW_MAX_FREQUENCIES];
-};
-
-/* ------------------------- WPA SUPPORT ------------------------- */
-
-/*
- *     Extended data structure for get/set encoding (this is used with
- *     SIOCSIWENCODEEXT/SIOCGIWENCODEEXT. struct iw_point and IW_ENCODE_*
- *     flags are used in the same way as with SIOCSIWENCODE/SIOCGIWENCODE and
- *     only the data contents changes (key data -> this structure, including
- *     key data).
- *
- *     If the new key is the first group key, it will be set as the default
- *     TX key. Otherwise, default TX key index is only changed if
- *     IW_ENCODE_EXT_SET_TX_KEY flag is set.
- *
- *     Key will be changed with SIOCSIWENCODEEXT in all cases except for
- *     special "change TX key index" operation which is indicated by setting
- *     key_len = 0 and ext_flags |= IW_ENCODE_EXT_SET_TX_KEY.
- *
- *     tx_seq/rx_seq are only used when respective
- *     IW_ENCODE_EXT_{TX,RX}_SEQ_VALID flag is set in ext_flags. Normal
- *     TKIP/CCMP operation is to set RX seq with SIOCSIWENCODEEXT and start
- *     TX seq from zero whenever key is changed. SIOCGIWENCODEEXT is normally
- *     used only by an Authenticator (AP or an IBSS station) to get the
- *     current TX sequence number. Using TX_SEQ_VALID for SIOCSIWENCODEEXT and
- *     RX_SEQ_VALID for SIOCGIWENCODEEXT are optional, but can be useful for
- *     debugging/testing.
- */
-struct iw_encode_ext
-{
-       uint32_t                ext_flags; /* IW_ENCODE_EXT_* */
-       uint8_t         tx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */
-       uint8_t         rx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */
-       struct sockaddr addr; /* ff:ff:ff:ff:ff:ff for broadcast/multicast
-                              * (group) keys or unicast address for
-                              * individual keys */
-       uint16_t                alg; /* IW_ENCODE_ALG_* */
-       uint16_t                key_len;
-       uint8_t         key[0];
-};
-
-/* SIOCSIWMLME data */
-struct iw_mlme
-{
-       uint16_t                cmd; /* IW_MLME_* */
-       uint16_t                reason_code;
-       struct sockaddr addr;
-};
-
-/* SIOCSIWPMKSA data */
-#define IW_PMKSA_ADD           1
-#define IW_PMKSA_REMOVE                2
-#define IW_PMKSA_FLUSH         3
-
-#define IW_PMKID_LEN   16
-
-struct iw_pmksa
-{
-       uint32_t                cmd; /* IW_PMKSA_* */
-       struct sockaddr bssid;
-       uint8_t         pmkid[IW_PMKID_LEN];
-};
-
-/* IWEVMICHAELMICFAILURE data */
-struct iw_michaelmicfailure
-{
-       uint32_t                flags;
-       struct sockaddr src_addr;
-       uint8_t         tsc[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */
-};
-
-/* IWEVPMKIDCAND data */
-#define IW_PMKID_CAND_PREAUTH  0x00000001 /* RNS pre-authentication enabled */
-struct iw_pmkid_cand
-{
-       uint32_t                flags; /* IW_PMKID_CAND_* */
-       uint32_t                index; /* the smaller the index, the higher the
-                               * priority */
-       struct sockaddr bssid;
-};
-
-/* ------------------------ WIRELESS STATS ------------------------ */
-/*
- * Wireless statistics (used for /proc/net/wireless)
- */
-struct iw_statistics
-{
-       uint16_t                status;         /* Status
-                                        * - device dependent for now */
-
-       struct iw_quality       qual;           /* Quality of the link
-                                                * (instant/mean/max) */
-       struct iw_discarded     discard;        /* Packet discarded counts */
-       struct iw_missed        miss;           /* Packet missed counts */
-};
-
-/* ------------------------ IOCTL REQUEST ------------------------ */
-/*
- * This structure defines the payload of an ioctl, and is used 
- * below.
- *
- * Note that this structure should fit on the memory footprint
- * of iwreq (which is the same as ifreq), which mean a max size of
- * 16 octets = 128 bits. Warning, pointers might be 64 bits wide...
- * You should check this when increasing the structures defined
- * above in this file...
- */
-union  iwreq_data
-{
-       /* Config - generic */
-       char            name[16];
-       /* Name : used to verify the presence of  wireless extensions.
-        * Name of the protocol/provider... */
-
-       struct iw_point essid;          /* Extended network name */
-       struct iw_param nwid;           /* network id (or domain - the cell) */
-       struct iw_freq  freq;           /* frequency or channel :
-                                        * 0-1000 = channel
-                                        * > 1000 = frequency in Hz */
-
-       struct iw_param sens;           /* signal level threshold */
-       struct iw_param bitrate;        /* default bit rate */
-       struct iw_param txpower;        /* default transmit power */
-       struct iw_param rts;            /* RTS threshold threshold */
-       struct iw_param frag;           /* Fragmentation threshold */
-       uint32_t                mode;           /* Operation mode */
-       struct iw_param retry;          /* Retry limits & lifetime */
-
-       struct iw_point encoding;       /* Encoding stuff : tokens */
-       struct iw_param power;          /* PM duration/timeout */
-       struct iw_quality qual;         /* Quality part of statistics */
-
-       struct sockaddr ap_addr;        /* Access point address */
-       struct sockaddr addr;           /* Destination address (hw/mac) */
-
-       struct iw_param param;          /* Other small parameters */
-       struct iw_point data;           /* Other large parameters */
-};
-
-/*
- * The structure to exchange data for ioctl.
- * This structure is the same as 'struct ifreq', but (re)defined for
- * convenience...
- * Do I need to remind you about structure size (32 octets) ?
- */
-struct iwreq 
-{
-       union
-       {
-               char    ifrn_name[16];  /* if name, e.g. "eth0" */
-       } ifr_ifrn;
-
-       /* Data part (defined just above) */
-       union   iwreq_data      u;
-};
-
-/* -------------------------- IOCTL DATA -------------------------- */
-/*
- *     For those ioctl which want to exchange mode data that what could
- *     fit in the above structure...
- */
-
-/*
- *     Range of parameters
- */
-
-struct iw_range
-{
-       /* Informative stuff (to choose between different interface) */
-       uint32_t                throughput;     /* To give an idea... */
-       /* In theory this value should be the maximum benchmarked
-        * TCP/IP throughput, because with most of these devices the
-        * bit rate is meaningless (overhead an co) to estimate how
-        * fast the connection will go and pick the fastest one.
-        * I suggest people to play with Netperf or any benchmark...
-        */
-
-       /* NWID (or domain id) */
-       uint32_t                min_nwid;       /* Minimal NWID we are able to set */
-       uint32_t                max_nwid;       /* Maximal NWID we are able to set */
-
-       /* Old Frequency (backward compat - moved lower ) */
-       uint16_t                old_num_channels;
-       uint8_t         old_num_frequency;
-
-       /* Wireless event capability bitmasks */
-       uint32_t                event_capa[6];
-
-       /* signal level threshold range */
-       int32_t         sensitivity;
-
-       /* Quality of link & SNR stuff */
-       /* Quality range (link, level, noise)
-        * If the quality is absolute, it will be in the range [0 ; max_qual],
-        * if the quality is dBm, it will be in the range [max_qual ; 0].
-        * Don't forget that we use 8 bit arithmetics... */
-       struct iw_quality       max_qual;       /* Quality of the link */
-       /* This should contain the average/typical values of the quality
-        * indicator. This should be the threshold between a "good" and
-        * a "bad" link (example : monitor going from green to orange).
-        * Currently, user space apps like quality monitors don't have any
-        * way to calibrate the measurement. With this, they can split
-        * the range between 0 and max_qual in different quality level
-        * (using a geometric subdivision centered on the average).
-        * I expect that people doing the user space apps will feedback
-        * us on which value we need to put in each driver... */
-       struct iw_quality       avg_qual;       /* Quality of the link */
-
-       /* Rates */
-       uint8_t         num_bitrates;   /* Number of entries in the list */
-       int32_t         bitrate[IW_MAX_BITRATES];       /* list, in bps */
-
-       /* RTS threshold */
-       int32_t         min_rts;        /* Minimal RTS threshold */
-       int32_t         max_rts;        /* Maximal RTS threshold */
-
-       /* Frag threshold */
-       int32_t         min_frag;       /* Minimal frag threshold */
-       int32_t         max_frag;       /* Maximal frag threshold */
-
-       /* Power Management duration & timeout */
-       int32_t         min_pmp;        /* Minimal PM period */
-       int32_t         max_pmp;        /* Maximal PM period */
-       int32_t         min_pmt;        /* Minimal PM timeout */
-       int32_t         max_pmt;        /* Maximal PM timeout */
-       uint16_t                pmp_flags;      /* How to decode max/min PM period */
-       uint16_t                pmt_flags;      /* How to decode max/min PM timeout */
-       uint16_t                pm_capa;        /* What PM options are supported */
-
-       /* Encoder stuff */
-       uint16_t        encoding_size[IW_MAX_ENCODING_SIZES];   /* Different token sizes */
-       uint8_t num_encoding_sizes;     /* Number of entry in the list */
-       uint8_t max_encoding_tokens;    /* Max number of tokens */
-       /* For drivers that need a "login/passwd" form */
-       uint8_t encoding_login_index;   /* token index for login token */
-
-       /* Transmit power */
-       uint16_t                txpower_capa;   /* What options are supported */
-       uint8_t         num_txpower;    /* Number of entries in the list */
-       int32_t         txpower[IW_MAX_TXPOWER];        /* list, in bps */
-
-       /* Wireless Extension version info */
-       uint8_t         we_version_compiled;    /* Must be WIRELESS_EXT */
-       uint8_t         we_version_source;      /* Last update of source */
-
-       /* Retry limits and lifetime */
-       uint16_t                retry_capa;     /* What retry options are supported */
-       uint16_t                retry_flags;    /* How to decode max/min retry limit */
-       uint16_t                r_time_flags;   /* How to decode max/min retry life */
-       int32_t         min_retry;      /* Minimal number of retries */
-       int32_t         max_retry;      /* Maximal number of retries */
-       int32_t         min_r_time;     /* Minimal retry lifetime */
-       int32_t         max_r_time;     /* Maximal retry lifetime */
-
-       /* Frequency */
-       uint16_t                num_channels;   /* Number of channels [0; num - 1] */
-       uint8_t         num_frequency;  /* Number of entry in the list */
-       struct iw_freq  freq[IW_MAX_FREQUENCIES];       /* list */
-       /* Note : this frequency list doesn't need to fit channel numbers,
-        * because each entry contain its channel index */
-
-       uint32_t                enc_capa;       /* IW_ENC_CAPA_* bit field */
-
-       /* More power management stuff */
-       int32_t         min_pms;        /* Minimal PM saving */
-       int32_t         max_pms;        /* Maximal PM saving */
-       uint16_t                pms_flags;      /* How to decode max/min PM saving */
-
-       /* All available modulations for driver (hw may support less) */
-       int32_t         modul_capa;     /* IW_MODUL_* bit field */
-
-       /* More bitrate stuff */
-       uint32_t                bitrate_capa;   /* Types of bitrates supported */
-};
-
-/*
- * Private ioctl interface information
- */
-struct iw_priv_args
-{
-       uint32_t                cmd;            /* Number of the ioctl to issue */
-       uint16_t                set_args;       /* Type and number of args */
-       uint16_t                get_args;       /* Type and number of args */
-       char            name[16];       /* Name of the extension */
-};
-
-/* ----------------------- WIRELESS EVENTS ----------------------- */
-/*
- * Wireless events are carried through the rtnetlink socket to user
- * space. They are encapsulated in the IFLA_WIRELESS field of
- * a RTM_NEWLINK message.
- */
-
-/*
- * A Wireless Event. Contains basically the same data as the ioctl...
- */
-struct iw_event
-{
-       uint16_t                len;                    /* Real lenght of this stuff */
-       uint16_t                cmd;                    /* Wireless IOCTL */
-       union iwreq_data        u;              /* IOCTL fixed payload */
-};
-
-/* Size of the Event prefix (including padding and alignement junk) */
-#define IW_EV_LCP_LEN  (sizeof(struct iw_event) - sizeof(union iwreq_data))
-/* Size of the various events */
-#define IW_EV_CHAR_LEN (IW_EV_LCP_LEN + IFNAMSIZ)
-#define IW_EV_UINT_LEN (IW_EV_LCP_LEN + sizeof(uint32_t))
-#define IW_EV_FREQ_LEN (IW_EV_LCP_LEN + sizeof(struct iw_freq))
-#define IW_EV_PARAM_LEN        (IW_EV_LCP_LEN + sizeof(struct iw_param))
-#define IW_EV_ADDR_LEN (IW_EV_LCP_LEN + sizeof(struct sockaddr))
-#define IW_EV_QUAL_LEN (IW_EV_LCP_LEN + sizeof(struct iw_quality))
-
-/* iw_point events are special. First, the payload (extra data) come at
- * the end of the event, so they are bigger than IW_EV_POINT_LEN. Second,
- * we omit the pointer, so start at an offset. */
-#define IW_EV_POINT_OFF (((char *) &(((struct iw_point *) NULL)->length)) - \
-                         (char *) NULL)
-#define IW_EV_POINT_LEN        (IW_EV_LCP_LEN + sizeof(struct iw_point) - \
-                        IW_EV_POINT_OFF)
-
-/* Size of the Event prefix when packed in stream */
-#define IW_EV_LCP_PK_LEN       (4)
-/* Size of the various events when packed in stream */
-#define IW_EV_CHAR_PK_LEN      (IW_EV_LCP_PK_LEN + IFNAMSIZ)
-#define IW_EV_UINT_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(uint32_t))
-#define IW_EV_FREQ_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(struct iw_freq))
-#define IW_EV_PARAM_PK_LEN     (IW_EV_LCP_PK_LEN + sizeof(struct iw_param))
-#define IW_EV_ADDR_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(struct sockaddr))
-#define IW_EV_QUAL_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(struct iw_quality))
-#define IW_EV_POINT_PK_LEN     (IW_EV_LCP_LEN + 4)
-
-#endif /* _LINUX_WIRELESS_H */
diff --git a/package/luci/contrib/package/lucihttp/Makefile b/package/luci/contrib/package/lucihttp/Makefile
deleted file mode 100644 (file)
index fd448e0..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=lucihttp
-PKG_RELEASE:=1
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=https://github.com/jow-/lucihttp.git
-PKG_SOURCE_DATE:=2019-01-24
-PKG_SOURCE_VERSION:=1afbdcc31016fac9e85285d032d27184db884bfd
-PKG_MIRROR_HASH:=7fe11f0e0cb6dc810a47c708d38865124324660a8986305d299f5b8d771fc5e9
-CMAKE_INSTALL:=1
-
-PKG_LICENSE:=ISC
-PKG_LICENSE_FILES:=LICENSE
-
-PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
-PKG_CONFIG_DEPENDS:=CONFIG_PACKAGE_liblucihttp-lua
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/cmake.mk
-
-define Package/liblucihttp
-  SECTION:=libs
-  CATEGORY:=Libraries
-  TITLE:=LuCI HTTP utility library
-  ABI_VERSION:=0
-endef
-
-define Package/liblucihttp-lua
-  SECTION:=libs
-  CATEGORY:=Libraries
-  DEPENDS:=+liblucihttp +liblua
-  TITLE:=Lua binding for the LuCI HTTP utility library
-endef
-
-TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
-
-CMAKE_OPTIONS = \
-       -DLUAPATH=/usr/lib/lua \
-       -DBUILD_LUA=$(if $(CONFIG_PACKAGE_liblucihttp-lua),ON,OFF) \
-       -DBUILD_TESTS=OFF
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_DIR) $(1)/usr/include
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/liblucihttp.so* $(1)/usr/lib/
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
-endef
-
-define Package/liblucihttp/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/liblucihttp.so.* $(1)/usr/lib/
-endef
-
-define Package/liblucihttp-lua/install
-       $(INSTALL_DIR) $(1)/usr/lib/lua
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lua/lucihttp.so $(1)/usr/lib/lua/
-endef
-
-$(eval $(call BuildPackage,liblucihttp))
-$(eval $(call BuildPackage,liblucihttp-lua))
diff --git a/package/luci/contrib/package/meshwizard/Makefile b/package/luci/contrib/package/meshwizard/Makefile
deleted file mode 100644 (file)
index 6298346..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (C) 2011 Manuel Munz <freifunk at somakoma de>
-# This is free software, licensed under the Apache 2.0 license.
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=meshwizard
-PKG_RELEASE:=0.3.3
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/meshwizard
-  SECTION:=luci
-  CATEGORY:=LuCI
-  SUBMENU:=9. Freifunk
-  TITLE:=Shell script based wizard for Mesh networks
-  DEPENDS:=+firewall
-endef
-
-define Package/meshwizard/description
-  A shellscript based wizard to simplify the setup of a typical mesh node (e.g. for Freifunk.net)
-endef
-
-define Build/Prepare
-       mkdir -p $(PKG_BUILD_DIR)
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/meshwizard/install
-       $(CP) ./files/* $(1)/
-endef
-
-$(eval $(call BuildPackage,meshwizard))
diff --git a/package/luci/contrib/package/meshwizard/files/etc/config/meshwizard b/package/luci/contrib/package/meshwizard/files/etc/config/meshwizard
deleted file mode 100644 (file)
index a60b0cc..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-config 'netconfig' 'netconfig'
-
-config 'general' 'general'
-       option 'sharenet' '0'
-       option 'local_restrict' '1'
-       option 'cleanup' '1'
-
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/functions.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/functions.sh
deleted file mode 100644 (file)
index 0b99530..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-uci_remove_list_element() {
-       local option="$1"
-       local value="$2"
-       local list="$(uci get $option)"
-       local elem
-
-       uci delete $option
-       for elem in $list; do
-               if [ "$elem" != "$value" ]; then
-                       uci add_list $option=$elem
-               fi
-       done
-}
-
-# string_contains(string, substring)
-#
-# Returns 0 if the specified string contains the specified substring,
-# otherwise returns 1.
-string_contains() {
-    string="$1"
-    substring="$2"
-    if test "${string#*$substring}" != "$string"
-    then
-        return 0    # $substring is in $string
-    else
-        return 1    # $substring is not in $string
-    fi
-}
-
-# Takes 2 arguments
-# $1 = text to be displayed in the output for this section
-# $2 = section (optional)
-uci_commitverbose() {
-       echo "+ $1"
-       uci changes $2 | while read line; do
-               echo "    $line"
-       done
-       uci commit $2
-}
-
-set_defaults() {
-       for def in $(env |grep "^$1" | sed 's/ /_/g'); do
-               option="${def/$1/}"
-               a="$(echo $option |cut -d '=' -f1)"
-               b="$(echo $option |cut -d '=' -f2-)"
-               b="${b//_/ }"
-               string_contains "$a" "_LENGTH" && continue
-               string_contains "$a" "_ITEM" && {
-                   # special treatment for lists. use add_list and remove the
-                   # item index (_ITEMx).
-                   uci add_list $2.${a//_ITEM[0-9]*/}="$b"
-               } || {
-                   uci set $2.$a="$b"
-               }
-       done
-}
-
-# 3 arguments: 1=config name 2=oldname 3=newname
-section_rename() {
-       uci -q rename $1.$2=$3 && msg_rename $1.$2 $1.$3 || msg_rename_error $1.$2 $1.$3
-}
-
-msg_missing_value() {
-       echo -e "    \033[1mWarning:\033[0m Configuration option for $2 is missing in $1."
-}
-
-msg_success() {
-       echo "    Finished."
-}
-
-msg_error() {
-       echo "    \033[1mError: \033[0mThere was a problem."
-}
-
-msg_rename() {
-       echo "    Renamed unnamed section $1 to $2."
-}
-
-msg_rename_error() {
-       echo "    \033[1mWarning:\033[0m Could not rename $1 to $2."
-}
-
-
-restore_factory_defaults() {
-    echo "+ Restore default config as requested with cleanup=1"
-    cp -f /rom/etc/config/* /etc/config/
-    rm /etc/config/wireless
-    wifi detect > /etc/config/wireless
-    rm /etc/config/network
-    if [ -f /etc/init.d/defconfig ]; then
-        # legacy (AA)
-        /etc/init.d/defconfig start
-       [ -f /rom/etc/uci-defaults/network ] && sh /rom/etc/uci-defaults/network
-    else
-        sh /rom/etc/uci-defaults/02_network
-    fi
-}
-
-is_in_list() {
-    # checks if an item is in a list
-    local list="$1"
-    local item="$2"
-    for word in $list; do
-       [ $word = "$item" ] && return 0
-    done
-    return 1
-}
-
-add_to_list() {
-    local list="$1"
-    local item="$2"
-    is_in_list "$list" "$item" && echo $list
-    if [ -z "$list" ]; then
-       echo "$item"
-    else
-       echo "$list $item"
-    fi
-}
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/check-range-in-range.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/check-range-in-range.sh
deleted file mode 100755 (executable)
index c889c55..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-# Checks whether a netrange is inside another netrange, returns 1 if true
-# Takes two arguments: $1: net from which we want to know if it is inside $2
-# nets need to be given in CIDR notation
-
-dir=$(dirname $0)
-
-awk -f $dir/common.awk -f - $* <<EOF
-BEGIN {
-
-       slpos=index(ARGV[1],"/")
-       ipaddr=ip2int(substr(ARGV[1],0,slpos-1))
-       netmask=compl(2**(32-int(substr(ARGV[1],slpos+1)))-1)
-       network=and(ipaddr,netmask)
-       broadcast=or(network,compl(netmask))
-
-       slpos2=index(ARGV[2],"/")
-       ipaddr2=ip2int(substr(ARGV[2],0,slpos2-1))
-       netmask2=compl(2**(32-int(substr(ARGV[2],slpos2+1)))-1)
-       network2=and(ipaddr2,netmask2)
-       broadcast2=or(network2,compl(netmask2))
-
-       if (network >= network2) {
-               if (network <= broadcast2) {
-                       if (broadcast <= broadcast2) {
-                               print "1"
-                       }
-               }
-       }
-}
-EOF
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/common.awk b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/common.awk
deleted file mode 100644 (file)
index 5b03d06..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-function bitcount(c) {
-       c=and(rshift(c, 1),0x55555555)+and(c,0x55555555)
-       c=and(rshift(c, 2),0x33333333)+and(c,0x33333333)
-       c=and(rshift(c, 4),0x0f0f0f0f)+and(c,0x0f0f0f0f)
-       c=and(rshift(c, 8),0x00ff00ff)+and(c,0x00ff00ff)
-       c=and(rshift(c,16),0x0000ffff)+and(c,0x0000ffff)
-       return c
-}
-
-function ip2int(ip) {
-       for (ret=0,n=split(ip,a,"\."),x=1;x<=n;x++) ret=or(lshift(ret,8),a[x]) 
-       return ret
-}
-
-function int2ip(ip,ret,x) {
-       ret=and(ip,255)
-       ip=rshift(ip,8)
-       for(;x<3;ret=and(ip,255)"."ret,ip=rshift(ip,8),x++);
-       return ret
-}
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/gen_auto-ipv6-dhcpv6-ip.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/gen_auto-ipv6-dhcpv6-ip.sh
deleted file mode 100755 (executable)
index 9eca11b..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-netrenamed=$1
-
-PREFIX="$(echo $ipv6_prefix| cut -d "/" -f 1| sed 's/::/:/')"
-
-# Get the devices mac address
-device="$(uci -p/var/state -q get network.$1.ifname)"
-if [ -n "$device" ]; then
-       MAC="$(ifconfig $netrenamed |grep HWaddr | awk '{ print $5 '})"
-else 
-       MAC="$(cat /sys/class/net/$1/address)"
-       IPV6_UNIQ="$(echo $MAC | awk -F: '{ print $1$2":"$3$4":"$5$6 }')"
-fi
-
-echo "${PREFIX}${IPV6_UNIQ}:1"
-
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/gen_bssid.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/gen_bssid.sh
deleted file mode 100755 (executable)
index efe101f..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-# create essid from channel, takes two args:
-# $1 = channel (integer)
-# $2 = community (optional)
-channel=$1
-community=$2
-
-. /lib/functions.sh
-
-
-# Try to get BSSID from profile first
-config_load profile_$community
-config_get bssid bssidscheme $channel
-if [ -z "$bssid" ]; then
-       config_get bssid bssidscheme "all"
-fi
-
-if [ -z "$bssid" ]; then
-       case $channel in
-       [1-9])
-               bssid="$(printf "%X\n" $channel)2:CA:FF:EE:BA:BE"
-               ;;
-       1[0-4])
-               bssid="$(printf "%X\n" $channel)2:CA:FF:EE:BA:BE"
-               ;;
-       [3-9][0-9])
-               bssid="02:$channel:CA:FF:EE:EE"
-               ;;
-       1[0-9][0-9])
-               bssid="${channel/1/12:}:CA:FF:EE:EE"
-               ;;
-       *)      bssid="02:CA:FF:EE:BA:BE"
-               ;;
-       esac
-fi
-echo $bssid
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/gen_dhcp_ip.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/gen_dhcp_ip.sh
deleted file mode 100755 (executable)
index e559166..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# generates a dhcp-ip and netrange from a given ip/subnet
-# takes 2 arguments:
-# $1: Ip Address (of the Interface for which we want to generate an ip)
-
-echo "$1" | awk 'BEGIN { FS = "." } ; { print "6."$3"."$4".1" }'
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/initial_config.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/initial_config.sh
deleted file mode 100755 (executable)
index c1e5522..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh
-# This is only run once (usually after flashing an image from the imagebuilder)
-# It sets up the initial config for this node.
-
-. /lib/functions.sh
-. $dir/functions.sh
-
-config_load system
-
-# Rename system config
-handle_system() {
-       if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
-               section_rename system $1 system
-       fi
-}
-config_foreach handle_system system
-
-if [ -n "$(uci -q get meshwizard.community)" ]; then
-       set_defaults "community_" freifunk.community
-       uci -q delete meshwizard.community
-fi
-
-[ -n "$profile_homepage" ] && uci set freifunk.community.homepage="$profile_homepage"
-
-[ -n "$profile_mapserver" ] && {
-       uci -q delete freifunk.community.mapserver
-       for m in $profile_mapserver; do
-               uci add_list freifunk.community.mapserver="$m"
-       done
-}
-
-uci_commitverbose "Setup community" freifunk
-
-if [ -n "$(uci -q get meshwizard.contact)" ]; then
-       set_defaults "contact_" freifunk.contact
-       uci -q delete meshwizard.contact && uci_commitverbose "Setup contact" freifunk
-fi
-
-if [ "$has_luci" == TRUE ]; then
-       set_defaults "luci_main_" luci.main
-       uci -q delete meshwizard.luci_main && uci_commitverbose "Setup luci" luci
-fi
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/ipcalc-cidr.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/ipcalc-cidr.sh
deleted file mode 100755 (executable)
index 6d7a1fb..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh
-dir=$(dirname $0)
-awk -f $dir/common.awk -f - $* <<EOF
-BEGIN {
-       slpos=index(ARGV[1],"/")
-       if (slpos == 0) {
-               ipaddr=ip2int(ARGV[1])
-               netmask=ip2int(ARGV[2])
-       } else {
-               ipaddr=ip2int(substr(ARGV[1],0,slpos-1))
-               netmask=compl(2**(32-int(substr(ARGV[1],slpos+1)))-1)
-               ARGV[4]=ARGV[3]
-               ARGV[3]=ARGV[2]
-       }
-
-       network=and(ipaddr,netmask)
-       broadcast=or(network,compl(netmask))
-       
-       start=or(network,and(ip2int(ARGV[3]),compl(netmask)))
-       limit=network+1
-       if (start<limit) start=limit
-       
-       end=start+ARGV[4]
-       limit=or(network,compl(netmask))-1
-       if (end>limit) end=limit
-
-       print "IP="int2ip(ipaddr)
-       print "NETMASK="int2ip(netmask)
-       print "BROADCAST="int2ip(broadcast)
-       print "NETWORK="int2ip(network)
-       print "NEXTNET="int2ip(broadcast + 1)
-       print "PREFIX="32-bitcount(compl(netmask))
-       
-       # range calculations:
-       # ipcalc <ip> <netmask> <start> <num>
-       
-       if (ARGC > 3) {
-               print "START="int2ip(start)
-               print "END="int2ip(end)
-       }
-}
-EOF
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/read_defaults.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/read_defaults.sh
deleted file mode 100755 (executable)
index b6ffb62..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/sh
-# These functions read the settings we need for configuration of the router
-
-read_defaults() {
-       # read default values from the 3 relevant config files and export them
-       # into the environment. Later loaded configs overwrite earlier ones. The
-       # The ordering here is from most generic to most specific:
-       # freifunk (most generic defaults)
-       # profile_* (community defaults)
-       # nodes custom config from meshwizard config file
-
-       local community="$1"
-
-       config_cb() {
-       local type="$1"
-       local name="$2"
-       local allowed_section_types="widget"
-       local allowed_section_names="
-               system
-               wifi_device
-               wifi_iface
-               interface
-               alias
-               dhcp
-               olsr_interface
-               olsr_interfacedefaults
-               profile
-               zone_freifunk
-               include
-               luci_splash
-               ipv6
-               luci_main
-               contact
-               community
-               wan
-               lan
-               general
-               ipv6
-               qos
-       "
-
-       if [ "$type" = "widget" ]; then
-               widgets=$(add_to_list "$widgets" "$name")
-       fi
-
-       if ([ -n "$name" ] && is_in_list "$allowed_section_names" $name) \
-               || is_in_list "$allowed_section_types" $type ; then
-               option_cb() {
-               local option="$1"
-               local value="$2"
-               export "${CONFIG_SECTION}_${option}"="$value"
-               }
-       else
-               option_cb() { return; }
-       fi
-       }
-       config_load freifunk
-       config_load profile_${community}
-       config_load meshwizard
-       export widgets="$widgets"
-}
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/rename-wifi.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/rename-wifi.sh
deleted file mode 100755 (executable)
index f2d10cc..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-# This script renames IB_wifi_ interface names into real interface names used on this system.
-# E.g. wireless.IB_wifi0 would become wireless.radio0 on mac80211
-
-. $dir/functions.sh
-
-posIB=-1
-
-IBwifis="$(uci show meshwizard.netconfig | grep 'IB_' | sed 's/meshwizard.netconfig\.\(IB_wifi.*\)_.*/\1/' |uniq)"
-[ -z "$(echo $IBwifis |grep IB_wifi)" ] && exit
-
-for w in $IBwifis; do
-       posIB=$(( $posIB + 1 ))
-       export IB_wifi$posIB="$w"
-done
-
-pos=0
-syswifis="$(uci show wireless |grep wifi-device | sed 's/wireless\.\(.*\)=.*/\1/' |uniq)"
-
-for s in $syswifis; do
-       export syswifi$pos="$s"
-       pos=$(( $pos + 1 ))
-done
-
-for i in `seq 0 $posIB`; do
-       IBwifi=$(eval echo \$IB_wifi$i)
-       syswifi=$(eval echo \$syswifi$i)
-
-       if [ -n "$syswifi" ]; then
-               case $IBwifi in
-               IB_wifi* )
-                       # replace IB_wifi_* with actual wifi interface names, delete old ones first
-                       uci show meshwizard.netconfig | grep $IBwifi | while read line; do
-                               oldline=$(echo $line | cut -d "=" -f 1)
-                               uci set $oldline=""
-                               newline=$(echo $line |sed -e "s/$IBwifi/$syswifi/g" -e "s/'//g")
-                               uci set $newline
-                       done
-               ;;
-               esac
-               unset IBwifi
-               unset syswifi
-       fi
-done
-
-uci_commitverbose "Renaming wifi-devices in /etc/config/meshwizard" meshwizard
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_auto-ipv6-interface.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_auto-ipv6-interface.sh
deleted file mode 100755 (executable)
index adf3429..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-net=$1
-. $dir/functions.sh
-
-ra="$(uci -q get meshwizard.netconfig.${net}_ipv6ra)"
-uci set autoipv6.${netrenamed}="interface"
-if [ -n "$ra" ]; then
-       uci set autoipv6.${netrenamed}.ra=1
-fi
-
-uci_commitverbose "Setup auto-ipv6 for interface $netrenamed" autoipv6
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_auto-ipv6.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_auto-ipv6.sh
deleted file mode 100755 (executable)
index 8e3f015..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-. $dir/functions.sh
-
-if [ "$ipv6_config" = "auto-ipv6-fromv4" ]; then
-       mode="fromv4"
-else
-       mode="random"
-fi
-
-uci set autoipv6.olsr_node.enabled=1
-uci set autoipv6.olsr_node.mode="$mode"
-uci_commitverbose "Setup auto-ipv6" autoipv6
-
-uci set network.wan.accept_ra=0
-uci_commitverbose "Do not accept ra's on wan when using auto-ipv6" network
-
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_dhcp.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_dhcp.sh
deleted file mode 100755 (executable)
index 8cce831..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-# Sets up the dhcp part of dnsmasq
-
-. /lib/functions.sh
-. $dir/functions.sh
-
-net="$1"
-vap="$(uci -q get meshwizard.netconfig.${net}_vap)"
-
-handle_dnsmasq() {
-       config_get interface "$1" interface
-       if [ "$interface" == "${netrenamed}dhcp" ]; then
-               if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
-                       section_rename dhcp $1 ${netrenamed}dhcp
-               fi
-       fi
-}
-config_load dhcp
-config_foreach handle_dnsmasq dhcp
-
-[ "$net" == "lan" ] && uci -q delete dhcp.lan
-
-if [ "$supports_vap" = 1 -a "$vap" = 1 ]; then
-       uci batch <<- EOF
-               set dhcp.${netrenamed}dhcp="dhcp"
-               set dhcp.${netrenamed}dhcp.ignore="0"
-               set dhcp.${netrenamed}dhcp.interface="${netrenamed}dhcp"
-       EOF
-       set_defaults "dhcp_" dhcp.${netrenamed}dhcp
-fi
-
-ahdhcp_when_vap="$(uci get profile_$community.profile.adhoc_dhcp_when_vap)"
-if [ "$supports_vap" = 0 ] || \
-       [ "$supports_vap" = 1 -a "$vap" = 1 -a "$ahdhcp_when_vap" = 1 ] || \
-       [ "$lan_is_olsr" = "1" -a "$lan_dhcp" = 1 ]; then
-       uci batch <<- EOF
-               set dhcp.${netrenamed}ahdhcp="dhcp"
-               set dhcp.${netrenamed}ahdhcp.ignore="0"
-               set dhcp.${netrenamed}ahdhcp.interface="${netrenamed}ahdhcp"
-       EOF
-fi
-set_defaults "dhcp_" dhcp.${netrenamed}ahdhcp
-
-uci_commitverbose "Setup DHCP for $netrenamed" dhcp
-
-
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_dnsmasq.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_dnsmasq.sh
deleted file mode 100755 (executable)
index 9297f91..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-. /lib/functions.sh
-. $dir/functions.sh
-
-# Set dnsmasq config
-handle_dhcp() {
-       if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
-               section_rename dhcp $1 dnsmasq
-       fi
-}
-
-config_load dhcp
-config_foreach handle_dhcp dnsmasq
-
-uci batch << EOF
-       set dhcp.dnsmasq.local="/$profile_suffix/"
-       set dhcp.dnsmasq.domain="$profile_suffix"
-EOF
-
-config_get addnhosts dnsmasq addnhosts
-if [ -z "${addnhosts/\var\/etc\/hosts.olsr/}" ]; then
-       uci add_list dhcp.dnsmasq.addnhosts="/var/etc/hosts.olsr"
-       if [ "$ipv6_enabled" = 1 ]; then
-               uci add_list dhcp.dnsmasq.addnhosts="/var/etc/hosts.olsr.ipv6"
-       fi
-fi
-
-uci_commitverbose "Setup dnsmasq" dhcp
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_firewall.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_firewall.sh
deleted file mode 100755 (executable)
index 154b2b6..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/bin/sh
-# Add "freifunk" firewall zone
-# If wan/lan is used for olsr then remove these networks from wan/lan zones
-# Also setup rules defined in /etc/config/freifunk and /etc/config/profile_<community>
-
-. /lib/functions.sh
-. $dir/functions.sh
-
-wan_is_olsr=$(uci -q get meshwizard.netconfig.wan_config)
-
-config_load firewall
-
-# Rename firewall zone for freifunk if unnamed
-# If wan is used for olsr then set network for the firewall zone wan to ' ' to remove the wan interface from it, else add local restrict to it
-# If lan is used for olsr then set network for the firewall zone lan to ' ' to remove the lan interface from it
-
-handle_fwzone() {
-       config_get name "$1" name
-       config_get network "$1" network
-
-       if [ "$name" == "freifunk" ]; then
-               # rename section if unnamed
-               if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
-                       section_rename firewall $1 zone_freifunk
-               fi
-       fi
-
-       if [ "$name" == "wan" ]; then
-               if  [ "$wan_is_olsr" == 1 ]; then
-                       uci set firewall.$1.network=' ' && uci_commitverbose "WAN is used for olsr, removed the wan interface from zone wan" firewall
-               else
-                       uci set firewall.$1.local_restrict=1 && uci_commitverbose "Enable local_restrict for zone wan" firewall
-               fi
-       fi
-
-       if [ "$name" == "lan" ] && [ "$lan_is_olsr" == "1" ]; then
-                       uci set firewall.$1.network=' ' && uci_commitverbose "LAN is used for olsr, removed the lan interface from zone lan" firewall
-       fi
-}
-
-config_foreach handle_fwzone zone
-
-uci batch << EOF
-       set firewall.zone_freifunk="zone"
-       set firewall.zone_freifunk.name="freifunk"
-       set firewall.zone_freifunk.input="$zone_freifunk_input"
-       set firewall.zone_freifunk.forward="$zone_freifunk_forward"
-       set firewall.zone_freifunk.output="$zone_freifunk_output"
-EOF
-
-uci_commitverbose "Setup firewall zones" firewall
-
-# Usually we need to setup masquerading for lan, except lan is an olsr interface or has an olsr hna-entry
-
-handle_interface() {
-        config_get interface "$1" interface
-        if [ "$interface" == "lan" ]; then
-                no_masq_lan=1
-        fi
-}
-config_load olsrd
-config_foreach handle_interface Interface
-
-LANIP="$(uci -q get network.lan.ipaddr)"
-if [ -n "$LANIP" ]; then
-       handle_hna() {
-               config_get netaddr "$1" netaddr
-                       if [ "$LANIP" == "$netaddr" ]; then
-                       no_masq_lan=1
-               fi
-       }
-       config_foreach handle_hna Hna4
-fi
-
-currms=$(uci -q get firewall.zone_freifunk.masq_src)
-if [ ! "$no_masq_lan" == "1" ] && [ ! "$(uci -q get meshwizard.netconfig.lan_config)" == 1 ]; then
-       uci set firewall.zone_freifunk.masq="1"
-       [ -z "$(echo $currms |grep lan)" ] && uci add_list firewall.zone_freifunk.masq_src="lan"
-fi
-
-
-# Rules, Forwardings, advanced config and includes from freifunk and
-# profile_$community config files.
-
-add_fw_rules() {
-    config_cb() {
-       local type="$1"
-       local name="$2"
-       local allowed_section_types="advanced include fw_rule fw_forwarding"
-       if is_in_list "$allowed_section_types" $type ; then
-           uci set firewall.${name}="${type/fw_/}"
-           option_cb() {
-               local option="$1"
-               local value="$2"
-               uci set firewall.${CONFIG_SECTION}.${option}="$value"
-           }
-       else
-           option_cb() { return; }
-       fi
-    }
-    config_load freifunk
-    config_load profile_${community}
-}
-add_fw_rules
-
-
-# If we use auto-ipv6-dhcp then allow 547/udp on the freifunk zone
-if [ "$ipv6_config" = "auto-ipv6-dhcpv6" ]; then
-       uci batch <<- EOF
-               set firewall.dhcpv6=rule
-               set firewall.dhcpv6.src=freifunk
-               set firewall.dhcpv6.target=ACCEPT
-               set firewall.dhcpv6.dest_port=547
-               set firewall.dhcpv6.proto=udp
-       EOF
-fi
-
-# Firewall rules to allow incoming ssh and web if enabled
-
-if [ "$wan_allowssh" == 1 ]; then
-       uci batch <<- EOF
-               set firewall.wanssh=rule
-               set firewall.wanssh.src=wan
-               set firewall.wanssh.target=ACCEPT
-               set firewall.wanssh.proto=tcp
-               set firewall.wanssh.dest_port=22
-       EOF
-fi
-
-if [ "$wan_allowweb" == 1 ]; then
-       uci batch <<- EOF
-               set firewall.wanweb=rule
-               set firewall.wanweb.src=wan
-               set firewall.wanweb.target=ACCEPT
-               set firewall.wanweb.proto=tcp
-               set firewall.wanweb.dest_port=80
-               set firewall.wanwebhttps=rule
-               set firewall.wanwebhttps.src=wan
-               set firewall.wanwebhttps.target=ACCEPT
-               set firewall.wanwebhttps.proto=tcp
-               set firewall.wanwebhttps.dest_port=443
-       EOF
-fi
-
-uci_commitverbose "Setup rules, forwardings, advanced config and includes." firewall
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_firewall_interface.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_firewall_interface.sh
deleted file mode 100755 (executable)
index 8ca5d3b..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/bin/sh
-# This will add $net to the zone firewall (and remove it from other zones where it is referenced)
-# It will also setup rules defined in /etc/config/freifunk and /etc/config/profile_<community>
-# Arg $1 = $net
-
-net=$1
-. /lib/functions.sh
-. $dir/functions.sh
-config_load firewall
-
-# Get some variables
-type="$(uci -q get wireless.$net.type)"
-vap="$(uci -q get meshwizard.netconfig.$net\_vap)"
-wan_is_olsr=$(uci -q get meshwizard.netconfig.wan_config)
-
-# Delete old firewall zone for freifunk
-handle_fwzone() {
-       config_get name "$1" name
-       config_get network "$1" network
-
-       if [ "$2" == "zoneconf" ]; then
-               if [ "$name" == "freifunk" ]; then
-                       # rename section if unnamed
-                       if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
-                               section_rename firewall $1 zone_freifunk
-                       fi
-               else
-                       if [ ! "$name" == "freifunk" ] && [ -n "$netrenamed" -a -n "$(echo $network | grep $netrenamed)" ]; then
-                               echo "    Removed $netrenamed from firewall zone $name."
-                               network_new=$(echo $network | sed -e 's/'$netrenamed'//' -e 's/^ //' -e 's/  / /' -e 's/ $//')
-                               uci set firewall.$1.network="$network_new"
-                       fi
-               fi
-       fi
-}
-
-config_foreach handle_fwzone zone zoneconf
-
-# Add $netrenamed and if needed ${netrenamed}dhcp to the "freifunk" zone
-config_get network zone_freifunk network
-
-# remove ${netrenamed}dhcp from networks list
-[ -n "$network" -a -n "$net" ] && network="${network/${netrenamed}dhcp/}"
-network=$(echo $network) # Removes leading and trailing whitespaces
-
-[ -n "$netrenamed" ] && [ -z "$(echo $network | grep $netrenamed)" ] && network="$network $netrenamed"
-
-if [ "$supports_vap" == "1" -a "$vap" == 1 ]; then
-        [ -n "$netrenamed" ] && [ "$network" == "${network/${netrenamed}dhcp/}" ] && network="$network ${netrenamed}dhcp"
-fi
-
-uci set firewall.zone_freifunk.network="$network"
-
-uci_commitverbose "Add '$netrenamed' to freifunk firewall zone" firewall
-
-currms=$(uci -q get firewall.zone_freifunk.masq_src)
-
-# If interfaces are outside of the mesh network they should be natted
-
-if [ "$vap" == 1 ]; then
-       # Get dhcprange and meshnet for the dhcp interface
-       if_ip="$(uci -q get network.${netrenamed}dhcp.ipaddr)"
-       if_mask="$(uci -q get network.${netrenamed}dhcp.netmask)"
-
-       [ -n "$if_ip" -a "$if_mask" ] && export $(ipcalc.sh $if_ip $if_mask)
-       [ -n "$NETWORK" -a "$PREFIX" ] && dhcprange="$NETWORK/$PREFIX"
-
-       if [ -n "$dhcprange" ]; then
-               meshnet="$(uci get profile_$community.profile.mesh_network)"
-               # check if the dhcprange is inside meshnet
-               dhcpinmesh="$($dir/helpers/check-range-in-range.sh $dhcprange $meshnet)"
-               if [ "$dhcpinmesh" == 1 ]; then
-                       # needed or splash will not work
-                       if [ "$has_luci_splash" == TRUE ]; then
-                               uci set firewall.zone_freifunk.contrack="1"
-                       fi
-               else
-                       uci set firewall.zone_freifunk.masq=1
-                       [ -z "$(echo $currms |grep ${netrenamed}dhcp)" ] && uci add_list firewall.zone_freifunk.masq_src="${netrenamed}dhcp"
-               fi
-       fi
-fi
-
-# Get dhcprange and meshnet for the adhoc dhcp interface
-if_ip="$(uci -q get network.${netrenamed}ahdhcp.ipaddr)"
-if_mask="$(uci -q get network.${netrenamed}ahdhcp.netmask)"
-
-[ -n "$if_ip" -a "$if_mask" ] && export $(ipcalc.sh $if_ip $if_mask)
-[ -n "$NETWORK" -a "$PREFIX" ] && dhcprangeah="$NETWORK/$PREFIX"
-
-if [ -n "$dhcprangeah" ]; then
-       meshnet="$(uci get profile_$community.profile.mesh_network)"
-       # check if the dhcprange is inside meshnet
-       dhcpinmesh="$($dir/helpers/check-range-in-range.sh $dhcprangeah $meshnet)"
-       if [ "$dhcpinmesh" == 1 ]; then
-               # needed or splash will not work
-               if [ "$has_luci_splash" == TRUE ]; then
-                       uci set firewall.zone_freifunk.contrack="1"
-               fi
-       else
-               uci set firewall.zone_freifunk.masq=1
-               [ -z "$(echo $currms |grep ${netrenamed}ahdhcp)" ] && uci add_list firewall.zone_freifunk.masq_src="${netrenamed}ahdhcp"
-       fi
-fi
-
-
-for i in IP NETMASK BROADCAST NETWORK PREFIX; do
-       unset $i
-done
-
-uci_commitverbose "Setup masquerading rules for '$netrenamed'" firewall
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_lan_ipv6.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_lan_ipv6.sh
deleted file mode 100755 (executable)
index 1b4f9b1..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-
-[ ! "$(uci -q get network.lan)" == "interface" ] && exit
-
-. /lib/functions.sh
-. $dir/functions.sh
-
-# Setup IPv6 for the lan interface
-
-ip6addr=""
-if [ "$ipv6_config" = "auto-ipv6-dhcpv6" ]; then
-       # get lan mac
-       device="$(uci -p/var/state -q get network.lan.ifname)"
-       if [ -n "device" ]; then
-               ip6addr="$($dir/helpers/gen_auto-ipv6-dhcpv6-ip.sh $device)"
-       fi
-       uci set network.lan.ip6addr="${ip6addr}/112"
-fi
-
-uci_commitverbose "Setup ipv6 address for lan" network
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_lan_static.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_lan_static.sh
deleted file mode 100755 (executable)
index 172dcf1..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-# Setup static interface settings for lan if lan is not an olsr interface
-
-[ ! "$(uci -q get network.lan)" == "interface" ] && exit
-
-. /lib/functions.sh
-. $dir/functions.sh
-
-uci batch << EOF
-       set network.lan.proto='$lan_proto'
-       set network.lan.ipaddr='$lan_ip4addr'
-       set network.lan.netmask='$lan_netmask'
-EOF
-
-uci_commitverbose "Setup static ip settings for lan" network
-
-uci delete meshwizard.lan && uci commit meshwizard
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_network.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_network.sh
deleted file mode 100755 (executable)
index 3ad977e..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-# setup entry in /etc/config/network for a interface
-# Argument $1: network interface
-
-net="$1"
-. /lib/functions.sh
-. $dir/functions.sh
-
-# Setup a (new) interface section for $net
-
-ipaddr=$(uci -q get meshwizard.netconfig.$net\_ip4addr)
-ip6addr=$(uci -q get meshwizard.netconfig.$net\_ip6addr)
-[ -z "$ipaddr" ] && msg_missing_value meshwizard $net\_ip4addr
-
-netmask=$(uci -q get meshwizard.netconfig.$net\_netmask)
-[ -z "$netmask" ] && netmask="$interface_netmask"
-[ -z "$netmask" ] && netmask="255.255.0.0"
-
-uci set network.$netrenamed="interface"
-set_defaults "interface_" network.$netrenamed
-
-uci batch << EOF
-       set network.$netrenamed.proto="static"
-       set network.$netrenamed.ipaddr="$ipaddr"
-       set network.$netrenamed.netmask="$netmask"
-EOF
-
-if [ "$netrenamed" = "lan" ]; then
-       # remove the bridge if the interface is used for olsr
-       # since this script is only run in this case, no need
-       # to check for lan_proto = "olsr" currently.
-       uci -q delete network.lan.type
-fi
-
-# Setup IPv6 for the interface
-if [ "$ipv6_enabled" = 1 ]; then
-       if [ "$ipv6_config" = "auto-ipv6-dhcpv6" ]; then
-               ip6addr="$($dir/helpers/gen_auto-ipv6-dhcpv6-ip.sh $netrenamed)"
-               uci set network.$netrenamed.ip6addr="${ip6addr}/112"
-       fi
-       if [ "$ipv6_config" = "static" ] && [ -n "$ip6addr" ]; then
-               uci set network.$netrenamed.ip6addr="$ip6addr"
-       fi
-fi
-
-uci_commitverbose "Setup interface $netrenamed" network
-
-# setup dhcp alias/interface
-
-net_dhcp=$(uci -q get meshwizard.netconfig.${net}_dhcp)
-if [ "$net_dhcp" == 1 ]; then
-
-       # Load meshwizard_settings
-       dhcprange="$(uci -q get meshwizard.netconfig.${net}_dhcprange)"
-       interface_ip="$(uci -q get meshwizard.netconfig.${net}_ip4addr)"
-       vap=$(uci -q get meshwizard.netconfig.${net}_vap)
-
-       # Rename config
-       handle_dhcpalias() {
-                       config_get interface "$1" interface
-                       if [ "$interface" == "$netrenamed" ]; then
-                               if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
-                                       section_rename network $1 ${netrenamed}dhcp
-                               fi
-                       fi
-       }
-       config_load network
-       config_foreach handle_dhcpalias interface
-
-       # Get IP/netmask and start-ip for $net dhcp
-       # If no dhcprange is given in /etc/config/meshwizard we autogenerate one
-
-       if [ -z "$dhcprange" ]; then
-               dhcprange="$($dir/helpers/gen_dhcp_ip.sh $interface_ip)/24"
-               uci set meshwizard.netconfig.${net}_dhcprange="$dhcprange"
-       fi
-
-       # If we use VAP and also offer dhcp on the adhoc interface then cut the dhcp
-       # range in two halves. one for the adhoc, one for the managed VAP interface
-       ahdhcp_when_vap="$(uci get profile_$community.profile.adhoc_dhcp_when_vap)"
-
-       if [ "$supports_vap" = 1 -a "$vap" = 1 -a "$ahdhcp_when_vap" = 1 ]; then
-               # VAPs are enabled for this interface, supported and we want to
-               # also use DHCP on the adhoc interface
-               network=${dhcprange%%/*}
-               mask=${dhcprange##*/}
-               # Divide network size by adding 1 to the netmask
-               mask=$(($mask + 1))
-               # Get first ip and netmask for the adhoc dhcp network
-               eval $(sh $dir/helpers/ipcalc-cidr.sh ${network}/${mask} 1 0)
-               STARTADHOC=$START
-               NETMASKADHOC=$NETMASK
-               # Get first ip and netmask for the managed dhcp network
-               eval $(sh $dir/helpers/ipcalc-cidr.sh ${NEXTNET}/${mask} 1 0)
-               STARTVAP=$START
-               NETMASKVAP=$NETMASK
-               # Add dhcp interface
-               uci batch <<- EOF
-                       set network.${netrenamed}dhcp=interface
-                       set network.${netrenamed}dhcp.proto=static
-                       set network.${netrenamed}dhcp.ipaddr="$STARTVAP"
-                       set network.${netrenamed}dhcp.netmask="$NETMASKVAP"
-               EOF
-               uci_commitverbose  "Setup interface for ${netrenamed}dhcp" network
-       else
-               eval $(sh $dir/helpers/ipcalc-cidr.sh $dhcprange 1 0)
-               STARTADHOC=$START
-               NETMASKADHOC=$NETMASK
-       fi
-       if [ "$supports_vap" = 1 -a "$vap" = 1 -a "$ahdhcp_when_vap" != 1 ]; then
-               # vaps are enabled and supported and we do not use DHCP on adhoc
-               # Add dhcp interface
-               uci batch <<- EOF
-                       set network.${netrenamed}dhcp=interface
-                       set network.${netrenamed}dhcp.proto=static
-                       set network.${netrenamed}dhcp.ipaddr="$STARTADHOC"
-                       set network.${netrenamed}dhcp.netmask="$NETMASKADHOC"
-               EOF
-               uci_commitverbose  "Setup interface for ${netrenamed}dhcp" network
-       fi
-
-
-       # Setup alias for $net adhoc interface 
-       if  [ "$supports_vap" = 0 ] || \
-               [ "$vap" = 0 ] || \
-               [ "$supports_vap" = 1 -a "$vap" = 1 -a "$ahdhcp_when_vap" = 1 ] || \
-               [ "$lan_is_olsr" = "1" ]; then
-               # setup an alias interface for the main interface to use as a network for clients
-               # when one of the following conditions is met
-               # * vaps are not supported
-               # * or not enabled
-               # * or they are supported and enabled but we also want to use DHCP on the adhoc interface
-               # * or this is the lan interface and it is used for olsrd (and dhcp is enabled)
-               uci batch <<- EOF
-                       set network.${netrenamed}ahdhcp=interface
-                       set network.${netrenamed}ahdhcp.ifname="@${netrenamed}"
-                       set network.${netrenamed}ahdhcp.proto=static
-                       set network.${netrenamed}ahdhcp.ipaddr="$STARTADHOC"
-                       set network.${netrenamed}ahdhcp.netmask="$NETMASKADHOC"
-               EOF
-               uci_commitverbose  "Setup interface for ${netrenamed}ahdhcp" network
-       fi
-fi
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh
deleted file mode 100755 (executable)
index a435e4b..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/bin/sh
-# Sets up olsrd
-
-. /lib/functions.sh
-. $dir/functions.sh
-
-protocols="4"
-if [ "$ipv6_enabled" = 1 ] && [ "$has_ipv6" == "1" ]; then
-    protocols="4 6"
-fi
-
-clean_config() {
-    # Clean the config, remove interface wlan
-    handle_interface() {
-            config_get interface "$1" interface
-            if [ "$interface" = "wlan" ]; then
-                    uci delete $cfg.$1
-            fi
-    }
-    config_foreach handle_interface Interface
-}
-
-rename_olsrd() {
-    #Rename olsrd basic settings
-    handle_olsrd() {
-       if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
-               section_rename $cfg $1 olsrd
-       fi
-    }
-    config_foreach handle_olsrd olsrd
-}
-
-rename_interface_defaults() {
-    # Rename interface defaults
-    handle_interfacedefaults() {
-            if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
-                    section_rename $cfg $1 InterfaceDefaults
-            fi
-    }
-    config_foreach handle_interfacedefaults InterfaceDefaults
-}
-
-cleanup_plugins() {
-    # Rename nameservice, dyngw and httpinfo plugins
-    handle_plugin() {
-            config_get library "$1" library
-            if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
-                    new="$(echo $library | cut -d '.' -f 1)"
-                    section_rename $cfg "$1" "$new"
-            fi
-    }
-    config_foreach handle_plugin LoadPlugin
-    uci -q delete $cfg.olsrd_httpinfo
-    uci -q delete $cfg.olsrd_dyn_gw
-}
-
-setup_nameservice() {
-    # Setup nameservice plugin
-    if [ -n "$profile_suffix" ]; then
-            suffix=".$profile_suffix"
-    else
-            suffix=".olsr"
-    fi
-    local llfile="/var/run/latlon.js"
-    local hosts="/var/etc/hosts.olsr"
-    local services="/var/run/services_olsr"
-
-    if [ "$proto" = "6" ]; then
-        local llfile="/var/run/latlon.js.ipv6"
-        local hosts="/var/etc/hosts.olsr.ipv6"
-        local services="/var/run/services_olsr.ipv6"
-    fi
-
-       uci batch <<- EOF
-               set $cfg.olsrd_nameservice=LoadPlugin
-               set $cfg.olsrd_nameservice.library="olsrd_nameservice"
-               set $cfg.olsrd_nameservice.latlon_file="$llfile"
-               set $cfg.olsrd_nameservice.hosts_file="$hosts"
-               set $cfg.olsrd_nameservice.sighup_pid_file="/var/run/dnsmasq.pid"
-               set $cfg.olsrd_nameservice.services_file="$services"
-               set $cfg.olsrd_nameservice.suffix="$suffix"
-       EOF
-
-    uci_commitverbose "Setup olsr nameservice plugin" $cfg
-}
-
-setup_dyngw_plain() {
-    # Setup dyngw_plain
-    # If Sharing of Internet is enabled then enable dyngw_plain plugin
-
-    if [ "$general_sharenet" == 1 ]; then
-       uci set $cfg.dyngw_plain=LoadPlugin
-       uci set $cfg.dyngw_plain.ignore=0
-       uci set $cfg.dyngw_plain.library="olsrd_dyn_gw_plain"
-       uci_commitverbose "Setup olsrd_dyngw_plain plugin" $cfg
-    fi
-
-}
-
-setup_watchdog() {
-    # Setup watchdog
-    local watchdogfile="/var/run/olsrd.watchdog"
-    if [ "$proto" = "6" ]; then
-        watchdogfile="/var/run/olsrd.watchdog.ipv6"
-    fi
-
-       uci batch <<- EOF
-               set $cfg.olsrd_watchdog=LoadPlugin
-               set $cfg.olsrd_watchdog.library="olsrd_watchdog"
-               set $cfg.olsrd_watchdog.file="$watchdogfile"
-               set $cfg.olsrd_watchdog.interval=30
-       EOF
-    uci_commitverbose "Setup olsr watchdog plugin" $cfg
-
-}
-
-setup_jsoninfo() {
-       proto="$1"
-       uci batch <<- EOF
-               set $cfg.olsrd_jsoninfo=LoadPlugin
-               set $cfg.olsrd_jsoninfo.library="olsrd_jsoninfo"
-       EOF
-       if [ "$proto" = "6" ]; then
-               uci set $cfg.olsrd_jsoninfo.ipv6only='1'
-       fi
-       uci_commitverbose "Setup olsr jsoninfo plugin" $cfg
-}
-
-setup_txtinfo() {
-       proto="$1"
-       uci batch <<- EOF
-           set $cfg.olsrd_txtinfo=LoadPlugin
-           set $cfg.olsrd_txtinfo.library="olsrd_txtinfo"
-       EOF
-       if [ "$proto" = "6" ]; then
-               uci set $cfg.olsrd_txtinfo.ipv6only='1'
-       fi
-       uci_commitverbose "Setup olsr txtinfo plugin" $cfg
-} 
-
-
-for proto in $protocols; do
-    cfg="olsrd"
-    [ "$proto" == "6" ] && cfg="olsrd6"
-    config_load $cfg
-    clean_config
-    rename_olsrd
-    cleanup_plugins
-
-    uci set $cfg.olsrd.IpVersion="$proto"
-    uci set $cfg.InterfaceDefaults=InterfaceDefaults
-    set_defaults "olsr_interfacedefaults_" $cfg.InterfaceDefaults
-    uci_commitverbose "Cleanup olsrd config" $cfg
-
-    setup_nameservice
-    setup_dyngw_plain
-    setup_watchdog
-    setup_jsoninfo $proto
-    setup_txtinfo $proto
-done
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd_interface.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd_interface.sh
deleted file mode 100755 (executable)
index 59f99bd..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/bin/sh
-# Sets up olsrd interfaces
-# arg $1 = net
-
-net=$1
-
-. /lib/functions.sh
-. $dir/functions.sh
-
-protocols="4"
-if [ "$ipv6_enabled" = 1 ] && [ "$has_ipv6" == "1" ]; then
-       protocols="4 6"
-fi
-
-for proto in $protocols; do
-
-       cfg="olsrd"
-       [ "$proto" == "6" ] && cfg="olsrd6"
-
-       # Rename interface for $netrenamed
-       handle_interface() {
-               config_get interface "$1" Interface
-               if [ "$interface" == "$netrenamed" ]; then
-                       if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
-                               section_rename $cfg $1 $netrenamed
-                       fi
-               fi
-       }
-
-       config_foreach handle_interface Interface
-
-       # Setup new interface for $netrenamed
-
-       uci set $cfg.$netrenamed=Interface
-       set_defaults "olsr_interface_" $cfg.$net
-       uci set $cfg.$netrenamed.interface="$netrenamed"
-
-       uci_commitverbose "Setup olsr interface for $netrenamed." $cfg
-
-       if [ "$proto" = "4" ]; then
-               # If dhcp-network is inside the mesh_network then add HNA for it
-
-               dhcprange=$(uci -q get meshwizard.netconfig.$net\_dhcprange)
-               uci -q delete $cfg.${netrenamed}clients
-
-               if [ -n "$dhcprange" ]; then
-                       meshnet="$(uci get profile_$community.profile.mesh_network)"
-                       dhcpinmesh="$($dir/helpers/check-range-in-range.sh $dhcprange $meshnet)"
-
-                       if [ "$dhcpinmesh" == 1 ] && [ -n "$meshnet" ]; then
-                               uci set $cfg.${netrenamed}clients="Hna4"
-                               eval $(sh $dir/helpers/ipcalc-cidr.sh $dhcprange)
-                               uci set $cfg.${netrenamed}clients.netaddr="$NETWORK"
-                               uci set $cfg.${netrenamed}clients.netmask="$NETMASK"
-                               uci_commitverbose "Setup HNA for network $dhcprange" $cfg
-                       fi
-               fi
-       fi
-
-       if [ "$proto" = "6" ]; then
-               # Set Hna entry for ipv6 net for static ipv6 config
-               uci -q delete $cfg.${netrenamed}static
-               if [ "$ipv6_config" = "static" ]; then
-                       v6range="$(uci -q get meshwizard.netconfig.$net\_ip6addr)"
-                       v6net="$(echo $v6range | cut -d '/' -f 1)"
-                       v6mask="$(echo $v6range | cut -d '/' -f 2)"
-                       if [ -n "$v6net" ] && [ -n "$v6mask" ]; then
-                               uci set $cfg.${netrenamed}static="Hna6"
-                               uci set $cfg.${netrenamed}static.netaddr="$v6net"
-                               uci set $cfg.${netrenamed}static.prefix="$v6mask"
-                               uci_commitverbose "Setup HNA for network $v6range" $cfg
-                       fi
-               fi
-       fi
-
-done
\ No newline at end of file
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_policyrouting.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_policyrouting.sh
deleted file mode 100755 (executable)
index f898bd6..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-. $dir/functions.sh
-
-uci batch << EOF
-       set freifunk-policyrouting.pr.enable=1
-       set freifunk-policyrouting.pr.strict=1
-       set freifunk-policyrouting.pr.zones="freifunk"
-EOF
-
-uci_commitverbose "Setup policyrouting" freifunk-policyrouting
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_qos.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_qos.sh
deleted file mode 100755 (executable)
index 25884b3..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-# sets up qos-scripts for the wan interface
-
-. /lib/functions.sh
-. $dir/functions.sh
-
-if [ ! -f /etc/config/qos ]; then
-       echo "NOT setting up QOS because /etc/config/qos-scripts was not found"
-else
-       uci batch <<- EOF
-               set qos.wan.enabled=1
-               set qos.wan.upload=$wan_up
-               set qos.wan.download=$wan_down
-       EOF
-       uci_commitverbose "Setup QOS on WAN interface." qos
-
-fi
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_splash.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_splash.sh
deleted file mode 100755 (executable)
index 3c3e6a3..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/sh
-# Setup_splash, takes 1 argument: 1=net
-
-. /lib/functions.sh
-. $dir/functions.sh
-
-net=$1
-vap=$(uci -q get meshwizard.netconfig.${net}_vap)
-
-if [ ! "$has_luci_splash" == TRUE ]; then
-       echo "    Luci Splash is not installed, skipping setup of it."
-       exit
-fi
-
-set_defaults "luci_splash_" luci_splash.general
-uci_commitverbose "Setup general splash settings" luci_splash
-
-dhcprange=$(uci -q get meshwizard.netconfig.$net\_dhcprange)
-
-splash_net_add() {
-       uci batch <<- EOF
-               set luci_splash.$1="iface"
-               set luci_splash.$1.network="$1"
-               set luci_splash.$1.zone="freifunk"
-       EOF
-}
-
-if [ "$(uci -q get meshwizard.netconfig.$net\_dhcp)" = 1 ] && [ -n "$dhcprange" ]; then
-       handle_splash() {
-               config_get network "$1" network
-               if [ "$network" == "${netrenamed}dhcp" ]; then
-                       if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
-                               section_rename luci_splash $1 ${netrenamed}dhcp
-                       fi
-               fi
-       }
-       config_load luci_splash
-       config_foreach handle_splash iface
-
-       if [ "$supports_vap" = 1 -a "$vap" = 1 ]; then
-               splash_net_add ${netrenamed}dhcp
-               uci_commitverbose "Setup dhcpsplash for ${netrenamed}dhcp" luci_splash
-       fi
-
-       ahdhcp_when_vap="$(uci get profile_$community.profile.adhoc_dhcp_when_vap)"
-       if [ "$supports_vap" = 0 ] || \
-               [ "$supports_vap" = 1 -a "$vap" = 1 -a "$ahdhcp_when_vap" = 1 ] || \
-               [ "$lan_dhcp" = 1 ]; then
-               splash_net_add ${netrenamed}ahdhcp
-               uci_commitverbose "Setup dhcpsplash for ${netrenamed}ahdhcp" luci_splash
-       fi
-       /etc/init.d/luci_splash enable
-fi
-
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_ssh.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_ssh.sh
deleted file mode 100755 (executable)
index 38b331e..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-# Setup ssh. At this point only used to store pubkeys.
-
-[ ! "$(uci -q get meshwizard.ssh)" == "system" ] && exit
-
-. /lib/functions.sh
-. $dir/functions.sh
-authorized="/etc/dropbear/authorized_keys"
-
-
-config_load meshwizard
-
-i=0
-handle_pubkeys() {
-       local k="$1"
-       ( [ -f "$authorized" ] && grep -q "$k" $authorized) || {
-               echo "$k" >> $authorized
-               i=`expr $i + 1`
-       }
-}
-
-config_list_foreach ssh pubkey handle_pubkeys
-
-uci delete meshwizard.ssh
-uci_commitverbose "Added $i pubkeys to authorized_keys" meshwizard
-
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_system.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_system.sh
deleted file mode 100755 (executable)
index e9ce953..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. $dir/functions.sh
-
-set_defaults "system_" system.system
-uci -q delete meshwizard.system && uci commit meshwizard
-uci_commitverbose "System config" system
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_uhttpd.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_uhttpd.sh
deleted file mode 100755 (executable)
index b25a175..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-. $dir/functions.sh
-if [ "$ipv6_enabled" = "1" ]; then
-       uci batch <<- EOF
-               set uhttpd.main.listen_http="80"
-               set uhttpd.main.listen_https="443"
-       EOF
-fi
-
-uci_commitverbose "Setup uhttpd" uhttpd
-
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wan_dhcp.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wan_dhcp.sh
deleted file mode 100755 (executable)
index 91fc1d8..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-# Setup dhcp interface settings for wan. This is the OpenWrt default,
-# so all we need to do here is to delete wan from meshwizard after setup.
-# Also disallow ra on wan if ipv6 is enabled
-
-[ ! "$(uci -q get network.wan)" == "interface" ] && exit
-
-. /lib/functions.sh
-. $dir/functions.sh
-
-if [ "$ipv6_enabled" = "1" ]; then
-       uci set network.wan.accept_ra='0'
-       uci_commitverbose "Do not accept ra on wan interface" network
-fi
-
-
-uci delete meshwizard.wan && uci commit meshwizard
-
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wan_static.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wan_static.sh
deleted file mode 100755 (executable)
index 570470a..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-# Setup static interface settings for wan if wan is not an olsr interface
-
-[ ! "$(uci -q get network.wan)" == "interface" ] && exit
-
-. /lib/functions.sh
-. $dir/functions.sh
-
-uci batch << EOF
-set network.wan.proto='$wan_proto'
-set network.wan.ipaddr='$wan_ip4addr'
-set network.wan.netmask='$wan_netmask'
-set network.wan.gateway='$wan_gateway'
-set network.wan.dns='$wan_dns'
-EOF
-
-uci_commitverbose "Setup static ip settings for wan" network
-
-uci delete meshwizard.wan && uci commit meshwizard
-
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_widgets.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_widgets.sh
deleted file mode 100755 (executable)
index 288252f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-. /lib/functions.sh
- . $dir/functions.sh
-
-if [ -n "$widgets" ]; then
-       [ ! -f "/etc/config/freifunk-widgets" ] && touch /etc/config/freifunk-widgets
-       for w in $widgets; do
-               uci set freifunk-widgets.${w}=widget
-               set_defaults "${w}_" freifunk-widgets.${w}
-               uci delete profile_$community.${w}
-       done
-       uci commit profile_$community
-       uci_commitverbose "Added widget config." freifunk-widgets
-fi
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi.sh
deleted file mode 100755 (executable)
index 707b7b7..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/bin/sh
-# sets up a wifi interface for meshing
-# Arguments: $1 = network interface
-
-net="$1"
-. /lib/functions.sh
-. $dir/functions.sh
-
-##### wifi-device #####
-
-# Get the type before we delete the wifi-device
-config_load wireless
-config_get type $net type
-
-# Rename wifi-device for $net
-
-handle_wifidevice() {
-       if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
-               section_rename wireless $1 $net
-       fi
-}
-config_foreach handle_wifidevice wifi-device
-
-# create new wifi-device for $net
-uci set wireless.${net}=wifi-device
-
-# get and set wifi-device defaults
-set_defaults "wifi_device_" wireless.${net}
-
-channel="$(uci -q get meshwizard.netconfig.$net\_channel)"
-
-if [ -z "$channel" -o "$channel" == "default" ]; then
-       channel=$wifi_device_channel
-fi
-
-uci batch << EOF
-       set wireless.${net}.type="$type"
-       set wireless.${net}.channel="$channel"
-EOF
-
-uci_commitverbose "Setup wifi device for $netrenamed" wireless
-
-##### wifi iface
-
-# Rename wifi-iface for $net
-handle_interface() {
-       config_get device "$1" device
-       if [ "$device" == "$net" ]; then
-               if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
-                       section_rename wireless $1 ${net}_iface
-               fi
-       fi
-} 
-config_foreach handle_interface wifi-iface
-
-# create new wifi-device for $net
-uci set wireless.$net\_iface=wifi-iface
-
-# create new wifi-iface for $net from defaults
-set_defaults "wifi_iface_" wireless.$net\_iface
-
-# overwrite defaults
-bssid="$($dir/helpers/gen_bssid.sh $channel $community)"
-
-ssid="$profile_ssid"
-if [ "$profile_ssid_scheme" == "addchannel" ]; then
-       ssid="$ssid - ch$channel"
-elif [ "$profile_ssid_scheme" == "addchannelbefore" ]; then
-       ssid="ch$channel.$ssid"
-fi
-
-uci batch << EOF
-       set wireless.$net\_iface.device="${net}"
-       set wireless.$net\_iface.network="$netrenamed"
-       set wireless.$net\_iface.ssid="$ssid"
-       set wireless.$net\_iface.bssid="$bssid"
-EOF
-
-uci_commitverbose "Setup wifi interface for $netrenamed" wireless
-
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi_vap.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi_vap.sh
deleted file mode 100755 (executable)
index df58ad7..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-# sets up a wifi interface for meshing
-# Arguments: $1 = network interface
-
-net="$1"
-. /lib/functions.sh
-. $dir/functions.sh
-
-## Setup a VAP interface in AP Mode
-ip4addr="$(uci get meshwizard.netconfig.$net\_ip4addr)"
-vap="$(uci -q get meshwizard.netconfig.$net\_vap)"
-
-if [ "$supports_vap" == 1 -a "$vap" == 1 ]; then
-       uci batch <<- EOF
-               set wireless.$net\_iface_dhcp="wifi-iface"
-               set wireless.$net\_iface_dhcp.device="$net"
-               set wireless.$net\_iface_dhcp.mode="ap"
-               set wireless.$net\_iface_dhcp.encryption="none"
-               set wireless.$net\_iface_dhcp.network="${netrenamed}dhcp"
-               set wireless.$net\_iface_dhcp.ssid="Freifunk-$ip4addr"
-       EOF
-       uci_commitverbose "Setup VAP interface for $netrenamed" wireless
-fi
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/supports_vap.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/supports_vap.sh
deleted file mode 100755 (executable)
index 7fdff3c..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-# checks if a given device can be used for a VAP interface (1 adhoc + 1 ap)
-dev="$1"
-type="$2"
-
-
-if [ -z "$dev" -o -z "$type" ]; then
-       exit 1
-fi
-
-if [ "$type" = "mac80211" ]; then
-       # not hostapd[-mini], no VAP
-       if [ ! -x /usr/sbin/hostapd ]; then
-               echo "WARNING: hostapd[-mini] is required to be able to use VAP with mac80211."
-               exit 1
-       fi
-        # get driver in use
-        netindex="$(echo $dev |sed 's/[a-zA-z]*//')"
-       if [ -d /sys/class/net/wlan${netindex}/device/driver/module ]; then
-               driver="$(basename $(ls -l /sys/class/net/wlan${netindex}/device/driver/module | sed -ne 's/.* -> //p'))"
-               if [ "$driver" = "ath9k" -o  "$driver" = "ath5k" ]; then
-                       exit 0
-               else
-                       exit 1
-               fi
-       else
-               exit 1
-       fi
-else
-       exit 1
-fi
-
diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/wizard.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/wizard.sh
deleted file mode 100755 (executable)
index 4504738..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-#!/bin/sh
-
-# This collection of scripts will take settings from /etc/config/meshwizard, /etc/config/freifunk
-# and /etc/config/profile_<community> and setup the router to participate in wireless mesh networks
-
-# Copyright 2011 Manuel Munz <freifunk at somakoma dot de>
-
-# Licensed under the Apache License, Version 2.0 (the "License")
-# You may not use this file except in compliance with the License.
-# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
-
-echo "
-/* Meshwizard 0.3.1 */
-"
-
-# config
-export dir="/usr/bin/meshwizard"
-
-. /lib/functions.sh
-. $dir/functions.sh
-. $dir/helpers/read_defaults.sh
-[ -f /proc/net/ipv6_route ] && export has_ipv6=1
-
-# Check which packages we have installed
-export has_luci=FALSE
-opkg list_installed |grep luci-mod-admin > /dev/null && export has_luci=TRUE
-export has_luci_splash=FALSE
-opkg list_installed |grep luci-app-splash > /dev/null && export has_luci_splash=TRUE
-
-# Check whether we want to cleanup/restore uci config before setting new options
-cleanup=$(uci -q get meshwizard.general.cleanup)
-[ "$cleanup" == 1 ] && restore_factory_defaults
-
-# Rename wifi interfaces
-$dir/helpers/rename-wifi.sh
-
-export lan_is_olsr="$(uci -q get meshwizard.netconfig.lan_config)"
-
-# Get community
-community="$(uci -q get meshwizard.community.name || uci -q get freifunk.community.name)"
-[ -z "$community" ] && echo "Error: Community is not set in /etc/config/freifunk, aborting now." && exit 1
-export community="$community"
-
-# we need a list of widgets later on. It will be populated in read_defaults.sh
-widgets=""
-
-# Get a list of networks we need to setup
-networks=$(uci show meshwizard.netconfig | grep -v "netconfig=" | sed -e 's/meshwizard.netconfig\.\(.*\)\_.*/\1/' |sort|uniq)
-export networks
-[ -z "$networks" ] && echo "Error: No networks to setup could be found in /etc/config/meshwizard, aborting now." && exit 1
-
-# Read defaults and node config
-read_defaults $community
-
-# Do config
-$dir/helpers/initial_config.sh
-$dir/helpers/setup_dnsmasq.sh
-$dir/helpers/setup_system.sh
-$dir/helpers/setup_olsrd.sh
-$dir/helpers/setup_firewall.sh
-$dir/helpers/setup_ssh.sh
-$dir/helpers/setup_uhttpd.sh
-$dir/helpers/setup_widgets.sh
-
-if [ "$wan_proto" == "static" ] && [ -n "$wan_ip4addr" ] && [ -n "$wan_netmask" ]; then
-       $dir/helpers/setup_wan_static.sh
-fi
-
-if [ "$wan_proto" == "dhcp" ]; then
-       $dir/helpers/setup_wan_dhcp.sh
-fi
-
-if [ -n "$wan_down" -a -n "$wan_up" ]; then
-       $dir/helpers/setup_qos.sh
-fi
-
-if [ "$lan_proto" == "static" ] && [ -n "$lan_ip4addr" ] && [ -n "$lan_netmask" ]; then
-       $dir/helpers/setup_lan_static.sh
-fi
-
-if [ "$ipv6_enabled" == 1 ] && [ "$has_ipv6" = 1 ]; then
-       $dir/helpers/setup_lan_ipv6.sh
-       # Setup auto-ipv6
-       if [ -n "$(echo "$ipv6_config" |grep auto-ipv6)" ]; then
-               $dir/helpers/setup_auto-ipv6.sh
-       fi
-fi
-
-# Setup policyrouting if internet sharing is disabled and wan is not used for olsrd
-# Always disable it first to make sure its disabled when the user decied to share his internet
-uci set freifunk-policyrouting.pr.enable=0
-if [ ! "$general_sharenet" == 1 ] && [ ! "$(uci -q get meshwizard.netconfig.wan_proto)" == "olsr" ]; then
-       $dir/helpers/setup_policyrouting.sh
-fi
-
-# Configure found networks
-for net in $networks; do
-       # radioX devices need to be renamed
-       netrenamed="${net/radio/wireless}"
-       export netrenamed
-
-       if [ ! "$net" == "wan" ] && [ ! "$net" == "lan" ]; then
-               $dir/helpers/setup_wifi.sh $net
-               # check if this net supports vap
-               /sbin/wifi # wifi needs to be up for the check
-               export supports_vap="0"
-               type="$(uci -q get wireless.$net.type)"
-               [ -n "$type" ] && $dir/helpers/supports_vap.sh $net $type && export supports_vap=1
-               if [ "$supports_vap" = 1 ]; then
-                       $dir/helpers/setup_wifi_vap.sh $net
-               fi
-       fi
-
-       $dir/helpers/setup_network.sh $net
-
-       $dir/helpers/setup_olsrd_interface.sh $net
-
-       net_dhcp=$(uci -q get meshwizard.netconfig.${net}_dhcp)
-       export ${net}_dhcp=$net_dhcp
-
-        if [ "$net" = "lan" ] && [ "$lan_is_olsr" = "1" ]; then
-                uci -q set dhcp.lan.ignore="1"
-                uci_commitverbose "Disable DHCP on LAN because it is an olsr interface." dhcp
-        fi
-
-       if [ "$net_dhcp" == 1 ]; then
-               $dir/helpers/setup_dhcp.sh $net
-       fi
-
-       $dir/helpers/setup_splash.sh $net
-       $dir/helpers/setup_firewall_interface.sh $net
-
-       if [ -n "$(echo "$ipv6_config" |grep auto-ipv6)" ]; then
-               $dir/helpers/setup_auto-ipv6-interface.sh $net
-       fi
-done
-
-##### postinstall script
-
-[ -f /etc/rc.local.meshkitpostinstall ] && /etc/rc.local.meshkitpostinstall
-
-
-##### Reboot the router (because simply restarting services gave errors)
-
-echo "+ The wizard has finished and the router will reboot now."
-
-reboot
diff --git a/package/luci/documentation/CBI.md b/package/luci/documentation/CBI.md
deleted file mode 100644 (file)
index 933380d..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-
-# CBI models
-are Lua files describing the structure of an UCI config file and the resulting HTML form to be evaluated by the CBI parser.<br />
-All CBI model files must return an object of type **luci.cbi.Map**.<br />
-For a commented example of a CBI model, see the [Writing Modules tutorial](ModulesHowTo.md#cbimodels).
-
-The scope of a CBI model file is automatically extended by the contents of the module **luci.cbi** and the _translate_ function from **luci.i18n**
-
-This Reference covers **the basics** of the CBI system.
-
-
-## class Map (_config, title, description_)
-This is the root object of the model.
-
-* **config:** configuration filename to be mapped, see [UCI documentation](https://openwrt.org/docs/guide-user/base-system/uci) and the files in /etc/config
-* **title:** title shown in the UI
-* **description:** description shown in the UI
-
-#### function :section (_sectionclass_, ...)
-Creates a new section
-* **sectionclass**: a class object of the section
-* _additional parameters passed to the constructor of the section class_
-
-----
-
-## class NamedSection (_name, type, title, description_)
-An object describing an UCI section selected by the name.<br />
-To instantiate use: `Map:section(NamedSection, "name", "type", "title", "description")`
-
-* **name:** UCI section name
-* **type:** UCI section type
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### function :option(_optionclass_, ...)
-Creates a new option
-* **optionclass:** a class object of the section
-* _additional parameters passed to the constructor of the option class_
-
-#### property .addremove = false
-Allows the user to remove and recreate the configuration section.
-
-#### property .dynamic = false
-Marks this section as dynamic. Dynamic sections can contain an undefinded number of completely userdefined options.
-
-#### property .optional = true
-Parse optional options
-
-----
-
-## class TypedSection (_type, title, description_)
-An object describing a group of UCI sections selected by their type.<br />
-To instantiate use: `Map:section(TypedSection, "type", "title", "description")`
-* **type:** UCI section type
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### function :option(_optionclass_, ...)
-Creates a new option
- **optionclass:** a class object of the section
- _additional parameters passed to the constructor of the option class_
-
-#### function :depends(_key, value_)
-Only select those sections where _key == value_ <br />
-If you call this function several times the dependencies will be linked with **"or"**
-
-#### function .filter(_self, section_) -abstract-
-You can override this function to filter certain sections that will not be parsed.
-The filter function will be called for every section that should be parsed and returns **nil** for sections that should be filtered. For all other sections it should return the section name as given in the second parameter.
-
-#### property .addremove = false
-Allows the user to remove and recreate the configuration section
-
-#### property .dynamic = false
-Marks this section as dynamic. Dynamic sections can contain an undefinded number of completely userdefined options.
-
-#### property .optional = true
-Parse optional options
-
-#### property .anonymous = false
-Do not show UCI section names
-
-----
-
-## class Value (_option, title, description_)
-An object describing an option in a section of a UCI File. Creates a standard text field in the formular.<br />
-To instantiate use: `NamedSection:option(Value, "option", "title", "description")`<br />
- or `TypedSection:option(Value, "option", "title", "description")`
-* **option:** UCI option name
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### function :depends(key, value)
-Only show this option field if another option _key_ is set to _value_ in the same section.<br />
-If you call this function several times the dependencies will be linked with **"or"**
-
-#### function :value(key, value)
-Convert this text field into a combobox if possible and add a selection option.
-
-#### property .default = nil
-The default value
-
-#### property .maxlength = nil
-The maximum inputlength (of chars) of the value
-
-#### property .optional = false
-Marks this option as optional, implies .rmempty = true
-
-#### property .rmempty = true
-Removes this option from the configuration file when the user enters an empty value
-
-#### property .size = nil
-The maximum number of chars displayed by form field
-
-----
-
-## class ListValue (_option, title, description_)
-An object describing an option in a section of a UCI File.<br />
-Creates a list box or list of radio (for selecting one of many choices) in the formular.<br />
-To instantiate use: `NamedSection:option(ListValue, "option", "title", "description")`<br />
-or `TypedSection:option(ListValue, "option", "title", "description")`
-* **option:** UCI option name
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### function :depends(key, value)
-Only show this option field if another option _key_ is set to _value_ in the same section.<br />
-If you call this function several times the dependencies will be linked with **"or"**
-
-#### function :value(_key, value_)
-Adds an entry to the selection list
-
-#### property .widget = "select"
-**"select"** shows a selection list, **"radio"** shows a list of radio buttons inside form
-
-#### property .default = nil
-The default value
-
-#### property .optional = false
-Marks this option as optional, implies .rmempty = true
-
-#### property .rmempty = true
-Removes this option from the configuration file when the user enters an empty value
-
-#### property .size = nil
-The size of the form field
-
-----
-
-## class Flag (_option, title, description_)
-An object describing an option with two possible values in a section of a UCI File.<br />
-Creates a checkbox field in the formular.<br />
-To instantiate use: `NamedSection:option(Flag, "option", ""title", "description")`<br />
- or `TypedSection:option(Flag, "option", "title", "description")`
-* **option:** UCI option name
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### function :depends (_key, value_)
-Only show this option field if another option _key_ is set to _value_ in the same section.<br />
-If you call this function several times the dependencies will be linked with **"or"**
-
-#### property .default = nil
-The default value
-
-#### property .disabled = 0
-the value that should be set if the checkbox is unchecked
-
-#### property .enabled = 1
-the value that should be set if the checkbox is checked
-
-#### property .optional = false
-Marks this option as optional, implies .rmempty = true
-
-#### property .rmempty = true
-Removes this option from the configuration file when the user enters an empty value
-
-----
-
-## class MultiValue (_option'', ''title'', ''description_)
-An object describing an option in a section of a UCI File.<br />
-Creates a list of checkboxed or a multiselectable list as form fields.<br />
-To instantiate use: `NamedSection:option(MultiValue, "option", ""title", "description")`<br />
- or `TypedSection:option(MultiValue, "option", "title", "description")`
-* **option:** UCI option name
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### function :depends (_key, value_)
-Only show this option field if another option _key_ is set to _value_ in the same section.<br />
-If you call this function several times the dependencies will be linked with **"or"**
-
-#### function :value(_key, value_)
-Adds an entry to the list
-
-#### property .widget = "checkbox"
-**"select"** shows a selection list, **"checkbox"** shows a list of checkboxes inside form
-
-#### property .delimiter = " "
-The string which will be used to delimit the values inside stored option
-
-#### property .default = nil
-The default value
-
-#### property .optional = false
-Marks this option as optional, implies .rmempty = true
-
-#### property .rmempty = true
-Removes this option from the configuration file when the user enters an empty value
-
-#### property .size = nil
-The size of the form field (only used if property _.widget = "select"_)
-
-----
-
-## class StaticList (_option, title, description_)
-Similar to the MultiValue, but stores selected Values into a UCI list instead of a character-separated option.
-
-----
-
-## class DynamicList (_option, title, description_)
-A extensible list of user-defined values. Stores Values into a UCI list
-
-----
-
-## class DummyValue (_option, title, description_)
-Creates a readonly text in the form. !It writes no data to UCI!<br />
-To instantiate use: `NamedSection:option(DummyValue, "option", ""title", "description")`<br />
- or `TypedSection:option(DummyValue, "option", "title", "description")`
-* **option:** UCI option name
-* **title:** The title shown in the UI
-* **description:** description shown in the UI
-
-#### property :depends (_key, value_)
-Only show this option field if another option _key_ is set to _value_ in the same section.<br />
-If you call this function several times the dependencies will be linked with **"or"**
-
-----
-
-## class TextValue (_option, title, description_)
-An object describing a multi-line textbox in a section in a non-UCI form.
-
-----
-
-## class Button (_option, title, description_)
-An object describing a Button in a section in a non-UCI form.
diff --git a/package/luci/documentation/JsonRpcHowTo.md b/package/luci/documentation/JsonRpcHowTo.md
deleted file mode 100644 (file)
index 76d61f8..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-LuCI provides some of its libraries to external applications through a JSON-RPC API.
-This Howto shows how to use it and provides information about available functions.
-
-
-# Basics
-LuCI comes with an efficient JSON De-/Encoder together with a JSON-RPC-Server which implements the *JSON-RPC 1.0_' and 2.0 (partly) specifications. The LuCI JSON-RPC server offers several independent APIs. Therefore you have to use '_different URLs for every exported library*.
-Assuming your LuCI-Installation can be reached through */cgi-bin/luci_' any exported library can be reached via '''/cgi-bin/luci/rpc/''LIBRARY_*.
-
-
-# Authentication
-Most exported libraries will require a valid authentication to be called with. If you get an *HTTP 403 Forbidden_' status code you are probably missing a valid authentication token. To get such a token you have to call the function '''login''' of the RPC-Library '''auth'''. Following our example from above this login function would be provided at '_/cgi-bin/luci/rpc/auth*. The function accepts 2 parameters: username and password (of a valid user account on the host system) and returns an authentication token.
-
-If you want to call any exported library which requires an authentication token you have to *append it as an URL parameter _auth''''' to the RPC-Server URL. So instead of calling '''/cgi-bin/luci/rpc/''LIBRARY''''' you have to call '''/cgi-bin/luci/rpc/''LIBRARY''?auth=''TOKEN_*.
-
-If your JSON-RPC client is Cookie-aware (like most browsers are) you will receive the authentication token also with a session cookie and probably don't have to append it to the RPC-Server URL.
-
-
-# Exported Libraries
-## uci
-The UCI-Library */rpc/uci* offers functionality to interact with the Universal Configuration Interface.
-*Exported Functions:*
-* [(string) add(config, type)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.add)
-* [(integer) apply(config)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.apply)
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.changes (object) changes([config])]
-* [(boolean) commit(config)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.commit)
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.delete (boolean) delete(config, section[, option])]
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.delete_all (boolean) delete_all(config[, type])]
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.foreach (array) foreach(config[, type])]
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.get (mixed) get(config, section[, option])]
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.get_all (object) get_all(config[, section])]
-* [http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.get (mixed) get_state(config, section[, option])]
-* [(boolean) revert(config)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.revert)
-* [(name) section(config, type, name, values)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.section)
-* [(boolean) set(config, section, option, value)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.set)
-* [(boolean) tset(config, section, values)](http://luci.subsignal.org/api/luci/modules/luci.model.uci.html#Cursor.tset)
-
-## uvl
-The UVL-Library */rpc/uvl* offers functionality to validate UCI files and get schemes describing UCI files.
-*Exported Functions:*
-* [(array) get_scheme(scheme)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.get_scheme)
-* [(array) validate(config, section, option)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate)
-* [(array) validate_config(config)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate_config)
-* [(array) validate_section(config, section)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate_section)
-* [(array) validate(config, section, option)](http://luci.subsignal.org/api/luci/modules/luci.uvl.html#UVL.validate_option)
-
-## fs
-The Filesystem library */rpc/fs* offers functionality to interact with the filesystem on the host machine.
-*Exported Functions:*
-
-* [Complete luci.fs library](http://luci.subsignal.org/api/luci/modules/luci.fs.html)
-*Note:* All functions are exported as they are except for _readfile'' which encodes its return value in base64 and ''writefile'' which only accepts base64 encoded data as second argument. Note that both functions will only be available when the ''luasocket_ packet is installed on the hostsystem.
-
-## sys
-The System library */rpc/sys* offers functionality to interact with the operating system on the host machine.
-*Exported Functions:*
-* [Complete luci.sys library](http://luci.subsignal.org/api/luci/modules/luci.sys.html)
-* [Complete luci.sys.group library](http://luci.subsignal.org/api/luci/modules/luci.sys.group.html) with prefix *group.*
-* [Complete luci.sys.net library](http://luci.subsignal.org/api/luci/modules/luci.sys.net.html) with prefix *net.*
-* [Complete luci.sys.process library](http://luci.subsignal.org/api/luci/modules/luci.sys.process.html) with prefix *process.*
-* [Complete luci.sys.user library](http://luci.subsignal.org/api/luci/modules/luci.sys.user.html) with prefix *user.*
-* [Complete luci.sys.wifi library](http://luci.subsignal.org/api/luci/modules/luci.sys.wifi.html) with prefix *wifi.*
-
-## ipkg
-The IPKG library */rpc/ipkg* offers functionality to interact with the package manager (IPKG or OPKG) on the host machine.
-*Exported Functions:*
-* [Complete luci.model.ipkg library](http://luci.subsignal.org/api/luci/modules/luci.model.ipkg.html)
diff --git a/package/luci/documentation/LAR.md b/package/luci/documentation/LAR.md
deleted file mode 100644 (file)
index 457b076..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-LAR is a simple archive format to pack multiple lua source files and arbitrary other resources into a single file.
-
-
-# Format Specification
-
-A LAR archive file is divided into two parts: the payload and the index lookup table.
-All segments of the archive are 4 Byte aligned to ease reading and processing of the format.
-All integers are stored in network byte order, so an implementation has to use htonl() and htons() to properly read them.
-
-Schema:
-       
-       <payload:
-         <member:
-           <N*4 bytes: path of file #1>
-           <N*4 bytes: data of file #1>
-         >
-         
-         <member:
-           <N*4 bytes: path of file #2>
-           <N*4 bytes: data of file #2>
-         >
-       
-         ...
-       
-         <member:
-           <N*4 bytes: path of file #N>
-           <N*4 bytes: data of file #N>
-         >
-       >
-       
-       <index table:
-         <entry:
-           <uint32: offset for path of file #1> <uint32: length for path of file #1>
-           <uint32: offset for data of file #1> <uint32: length for data of file #1>
-           <uint16: type of file #1> <uint16: flags of file #1>
-         >
-       
-         <entry:
-           <uint32: offset for path of file #2> <uint32: length for path of file #2>
-           <uint32: offset for data of file #2> <uint32: length for data of file #2>
-           <uint16: type of file #2> <uint16: flags of file #2>
-         >
-       
-         ...
-       
-         <entry:
-           <uint32: offset for path of file #N> <uint32: length for path of file #N>
-           <uint32: offset for data of file #N> <uint32: length for data of file #N>
-           <uint16: type of file #N> <uint16: flags of file #N>
-         >
-       >
-       
-       <uint32: offset for begin of index table>
-       
-
-
-# Processing
-
-In order to process an LAR archive, an implementation would have to do the following steps:
-
-## Read Index
-
-1. Locate and open the archive file
-1. Seek to end of file - 4 bytes
-1. Read 32bit index offset and swap from network to native byte order
-1. Seek to index offset, calculate index length: filesize - index offset - 4
-1. Initialize a linked list for index table entries
-1. Read each index entry until the index length is reached, read and byteswap 4 * 32bit int and 2 * 16bit int
-1. Seek to begin of file
-
-## Read Member
-
-1. Read the archive index
-1. Iterate through the linked index list, perform the following steps for each entry
-1. Seek to the specified file path offset
-1. Read as much bytes as specified in the file path length into a buffer
-1. Compare the contents of the buffer against the path of the searched member
-1. If buffer and searched path are equal, seek to the specified file data offset
-1. Read data until the file data length is reached, return
-1. Select the next index table entry and repeat from step 3, if there is no next entry then return
-
-# Reference implementation
-
-A reference implementation can be found here:
-http://luci.subsignal.org/trac/browser/luci/trunk/contrib/lar
-
-The lar.pl script is a simple packer for LAR archives and cli.c provides a utility to list and dump packed LAR archives.
diff --git a/package/luci/documentation/LMO.md b/package/luci/documentation/LMO.md
deleted file mode 100644 (file)
index 961a45b..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-LMO is a simple binary format to pack language strings into a more efficient form. Although it's suitable to store any kind of key-value table, it's only used for the LuCI *.po based translation system at the moment. The abbreviation "LMO" stands for "Lua Machine Objects" in the style of the GNU gettext *.mo format.
-
-
-# Format Specification
-
-A LMO file is divided into two parts: the payload and the index lookup table.
-All segments of the file are 4 Byte aligned to ease reading and processing of the format.
-Only unsigned 32bit integers are used and stored in network byte order, so an implementation has to use htonl() to properly read them.
-
-Schema:
-       
-       <file:
-         <payload:
-           <entry #1: 4 byte aligned data>
-       
-           <entry #2: 4 byte aligned data>
-       
-           ...
-       
-           <entry #N: 4 byte aligned data>
-         >
-       
-         <index table:
-           <entry #1:
-             <uint32_t: hash of the first key>
-             <uint32_t: hash of the first value>
-             <uint32_t: file offset of the first value>
-             <uint32_t: length of the first value>
-           >
-       
-           <entry #2:
-             <uint32_t: hash of the second key>
-             <uint32_t: hash of the second value>
-             <uint32_t: file offset of the second value>
-             <uint32_t: length of the second value>
-           >
-       
-           ...
-       
-           <entry #N:
-             <uint32_t: hash of the Nth key>
-             <uint32_t: hash of the Nth value>
-             <uint32_t: file offset of the Nth value>
-             <uint32_t: length of the Nth value>
-           >
-         >
-       
-         <uint32_t: offset of the begin of index table>
-       >
-       
-
-
-# Processing
-
-In order to process a LMO file, an implementation would have to do the following steps:
-
-## Read Index
-
-1. Locate and open the archive file
-1. Seek to end of file - 4 bytes (sizeof(uint32_t))
-1. Read 32bit index offset and swap from network to native byte order
-1. Seek to index offset, calculate index length: filesize - index offset - 4
-1. Initialize a linked list for index table entries
-1. Read each index entry until the index length is reached, read and byteswap 4 * uint32_t for each step
-1. Seek to begin of file
-
-## Read Entry
-
-1. Calculate the unsigned 32bit hash of the entries key value (see "Hash Function" section below)
-1. Obtain the archive index
-1. Iterate through the linked index list, perform the following steps for each entry:
-  1. Compare the entry hash value with the calculated hash from step 1
-  2. If the hash values are equal proceed with step 4
-  3. Select the next entry and repeat from step 3.1
-1. Seek to the file offset specified in the selected entry
-1. Read as much bytes as specified in the entry length into a buffer
-1. Return the buffer value
-
-# Hash Function
-
-The current LuCI-LMO implementation uses the "Super Fast Hash" function which was kindly put in the public domain by it's original author. See http://www.azillionmonkeys.com/qed/hash.html for details. Below is the C-Implementation of this function:
-
-       
-       #if (defined(__GNUC__) && defined(__i386__))
-       #define sfh_get16(d) (*((const uint16_t *) (d)))
-       #else
-       #define sfh_get16(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\
-                                                  +(uint32_t)(((const uint8_t *)(d))[0]) )
-       #endif
-       
-       uint32_t sfh_hash(const char * data, int len)
-       {
-               uint32_t hash = len, tmp;
-               int rem;
-       
-               if (len <= NULL) return 0;
-       
-               rem = len & 3;
-               len >>= 2;
-       
-               /* Main loop */
-               for (;len > 0; len--) {
-                       hash  += sfh_get16(data);
-                       tmp    = (sfh_get16(data+2) << 11) ^ hash;
-                       hash   = (hash << 16) ^ tmp;
-                       data  += 2*sizeof(uint16_t);
-                       hash  += hash >> 11;
-               }
-       
-               /* Handle end cases */
-               switch (rem) {
-                       case 3: hash += sfh_get16(data);
-                               hash ^= hash << 16;
-                               hash ^= data[sizeof(uint16_t)] << 18;
-                               hash += hash >> 11;
-                               break;
-                       case 2: hash += sfh_get16(data);
-                               hash ^= hash << 11;
-                               hash += hash >> 17;
-                               break;
-                       case 1: hash += *data;
-                               hash ^= hash << 10;
-                               hash += hash >> 1;
-               }
-       
-               /* Force "avalanching" of final 127 bits */
-               hash ^= hash << 3;
-               hash += hash >> 5;
-               hash ^= hash << 4;
-               hash += hash >> 17;
-               hash ^= hash << 25;
-               hash += hash >> 6;
-       
-               return hash;
-       }
-       
-
-# Reference Implementation
-
-A reference implementation can be found here:
-http://luci.subsignal.org/trac/browser/luci/trunk/libs/lmo/src
-
-The lmo_po2lmo.c executable implements a *.po to *.lmo conversation utility and lmo_lookup.c is a simple *.lmo test utility.
-Lua bindings for lmo are defined in lmo_lualib.c and associated headers.
diff --git a/package/luci/documentation/LuCI-0.10.md b/package/luci/documentation/LuCI-0.10.md
deleted file mode 100644 (file)
index 5db9895..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-[[PageOutline(2-5, Table of Contents, floated)]]
-
-
-This document describes new features and incompatibilities to LuCI 0.9.x.
-It is targeted at module authors developing external addons to LuCI.
-
-# I18N Changes
-
-## API
-
-The call conventions for the i18n api changed, there is no dedicated translation
-key anymore and the english text is used for lookup instead. This was done to
-ease the maintenance of language files.
-
-Code that uses _translate()'' or ''i18n()_ must be changed as follows:
-
-       
-       -- old style:
-       translate("some_text", "Some Text")
-       translatef("some_format_text", "Some formatted Text: %d", 123)
-       
-       -- new style:
-       translate("Some Text")
-       translatef("Some formatted Text: %d", 123)
-       
-
-Likewise for templates:
-
-       
-       <!-- old style: -->
-       <%:some_text Some Text%>
-       
-       <!-- new style: -->
-       <%:Some Text%>
-       
-
-If code must support both LuCI 0.9.x and 0.10.x versions, it is suggested to write the calls as follows:
-       
-       translate("Some Text", "Some Text")
-       
-
-An alternative is wrapping translate() calls into a helper function:
-       
-       function tr(key, alt)
-           return translate(key) or translate(alt) or alt
-       end
-       
-
-... which is used as follows:
-       
-       tr("some_key", "Some Text")
-       
-
-## Translation File Format
-
-Translation catalogs are now maintained in *.po format files. During build those get translated
-into [*.lmo archives](http://luci.subsignal.org/trac/wiki/Documentation/LMO).
-
-LuCI ships a [utility script](http://luci.subsignal.org/trac/browser/luci/branches/luci-0.10/build/i18n-lua2po.pl)
-in the build/ directory to convert old Lua translation files to the *.po format. The generated *.po files should
-be placed in the appropriate subdirectories within the top po/ file in the LuCI source tree.
-
-### Components built within the LuCI tree
-
-If components using translations are built along with the LuCI tree, the newly added *.po file are automatically
-compiled into *.lmo archives during the build process. In order to bundle the appropriate *.lmo files into the
-corresponding *.ipk packages, component Makefiles must include a "PO" variable specifying the files to include.
-
-Given a module _applications/example/'' which uses ''po/en/example.po'' and ''po/en/example-extra.po_,
-the _applications/example/Makefile_ must be changed as follows:
-
-       
-       PO = example example-extra
-       
-       include ../../build/config.mk
-       include ../../build/module.mk
-       
-
-### Standalone components
-
-Authors who externally package LuCI components must prepare required *.lmo archives themselves.
-To convert existing Lua based message catalogs to the *.po format, the build/i18n-lua2po.pl helper script can be used.
-In order to convert *.po files into *.lmo files, the standalone "po2lmo" utility must be compiled as follows:
-
-       
-       $ svn co http://svn.luci.subsignal.org/luci/branches/luci-0.10/libs/lmo
-       $ cd lmo/
-       $ make
-       $ ./src/po2lmo translations.po translations.lmo
-       
-
-Note that at the time of writing, the utility program needs Lua headers installed on the system in order to compile properly.
-
-# CBI
-
-## Datatypes
-
-The server side UVL validation has been dropped to reduce space requirements on the target.
-Instead it is possible to define datatypes for CBI widgets now:
-
-       
-       opt = section:option(Value, "optname", "Title Text")
-       opt.datatype = "ip4addr"
-       
-
-User provided data is validated once on the frontend via JavaScript and on the server side prior to saving it.
-A list of possible datatypes can be found in the [luci.cbi.datatypes](http://luci.subsignal.org/trac/browser/luci/branches/luci-0.10/libs/web/luasrc/cbi/datatypes.lua#L26) class.
-
-## Validation
-
-Server-sided validator function can now return custom error messages to provide better feedback on invalid input.
-
-       
-       opt = section:option(Value, "optname", "Title Text")
-       
-       function opt.validate(self, value, section)
-           if input_is_valid(value) then
-               return value
-           else
-               return nil, "The value is invalid because ..."
-           end
-       end
-       
-
-## Tabs
-
-It is now possible to break up CBI sections into multiple tabs to better organize longer forms.
-The TypedSection and NamedSection classes gained two new functions to define tabs, _tab()'' and ''taboption()_.
-
-       
-       sct = map:section(TypedSection, "name", "type", "Title Text")
-       
-       sct:tab("general", "General Tab Title", "General Tab Description")
-       sct:tab("advanced", "Advanced Tab Title", "Advanced Tab Description")
-       
-       opt = sct:taboption("general", Value, "optname", "Title Text")
-       ...
-       
-
-The _tab()_ function is declares a new tab and takes up to three arguments:
-  * Internal name of the tab, must be unique within the section
-  * Title text of the tab
-  * Optional description text for the tab
-
-The _taboption()'' function wraps ''option()_ and assigns the option object to the given tab.
-It takes up to five arguments:
-
-  * Name of the tab to assign the option to
-  * Option type, e.g. Value or DynamicList
-  * Option name
-  * Title text of the option
-  * Optional description text of the option
-
-If tabs are used within a particular section, the _option()_ function must not be used,
-doing so results in undefined behaviour.
-
-## Hooks
-
-The CBI gained support for _hooks_ which can be used to trigger additional actions during the
-life-cycle of a map:
-
-       
-       map = Map("config", "Title Text")
-       
-       function map.on_commit(self)
-           -- do something if the UCI configuration got committed
-       end
-       
-
-The following hooks are defined:
-
-|| on_cancel || The user pressed cancel within a multi-step Delegator or a SimpleForm instance || 
-|| on_init || The CBI is about to render the Map object ||
-|| on_parse || The CBI is about to read received HTTP form values ||
-|| on_save, on_before_save || The CBI is about to save modified UCI configuration files ||
-|| on_after_save || Modified UCI configuration files just got saved
-|| on_before_commit || The CBI is about to commit the changes ||
-|| on_commit, on_after_commit, on_before_apply || Modified configurations got committed and the CBI is about to restart associated services ||
-|| on_apply, on_after_apply || All changes where completely applied (only works on Map instances with the apply_on_parse attribute set) ||
-
-## Sortable Tables
-
-TypedSection instances which use the "cbi/tblsection" template may now use a new attribute _sortable_ to allow the user to reorder table rows.
-
-       
-       sct = map:section(TypedSection, "name", "type", "Title Text")
-       sct.template = "cbi/tblsection"
-       sct.sortable = true
-       
-       ...
-       
-
-# JavaScript
-
-The LuCI 0.10 branch introduced a new JavaScript file _xhr.js_ which provides support routines for XMLHttpRequest operations.
-Each theme must include this file in the <head> area of the document for forms to work correctly.
-
-It should be included like this:
-
-       
-       <script type="text/javascript" src="<%=resource%>/xhr.js"></script>
-       
\ No newline at end of file
diff --git a/package/luci/documentation/Modules.md b/package/luci/documentation/Modules.md
deleted file mode 100644 (file)
index 2897df9..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-# Categories
-
-The LuCI modules are divided into several category directories, namely:
-* applications (Single applications or plugins for other modules or applications)
-* i18n (Translation files)
-* libs (Independent libraries)
-* modules (Collections of applications)
-* themes (Frontend themes)
-
-Each module goes into a subdirectory of any of this category-directories.
-
-# Module directory
-The contents of a module directory are as follows:
-
-## Makefile
-This is the module's makefile. If the module just contains Lua sourcecode or resources then the following Makefile should suffice.
-       
-       include ../../build/config.mk
-       include ../../build/module.mk
-       
-
-If you have C(++) code in your module your Makefile should at least contain the following things.
-       
-       include ../../build/config.mk
-       include ../../build/gccconfig.mk
-       include ../../build/module.mk
-       
-       compile:
-           # Commands to compile and link your C-code
-           # and to install them under the dist/ hierarchy
-       
-       clean: luaclean
-           # Commands to clean your compiled objects
-       
-
-## src
-The *src* directory is reserved for C sourcecode.
-
-## luasrc
-*luasrc* contains all Lua sourcecode files. These will automatically be stripped or compiled depending on the Make target and are installed in the LuCI installation directory.
-
-## lua
-*lua* is equivalent to _luasrc_ but containing Lua files will be installed in the Lua document root.
-
-## htdocs
-All files under *htdocs* will be copied to the document root of the target webserver.
-
-## root
-All directories and files under *root* will be copied to the installation target as they are.
-
-## dist
-*dist* is reserved for the builder to create a working installation tree that will represent the filesystem on the target machine.
-*DO NOT* put any files there as they will get deleted.
-
-## ipkg
-*ipkg* contains IPKG package control files, like _preinst'', ''posinst'', ''prerm'', ''postrm''. ''conffiles_.
-See IPKG documentation for details.
-
-
-# OpenWRT feed integration
-If you want to add your module to the LuCI OpenWRT feed you have to add several sections to the contrib/package/luci/Makefile.
-
-For a Web UI applications this is:
-
-A package description:
-       
-       define Package/luci-app-YOURMODULE
-         $(call Package/luci/webtemplate)
-         DEPENDS+=+some-package +some-other-package
-         TITLE:=SHORT DESCRIPTION OF YOURMODULE
-       endef
-       
-       
-
-A package installation target:
-       
-       define Package/luci-app-YOURMODULE/install
-               $(call Package/luci/install/template,$(1),applications/YOURMODULE)
-       endef
-       
-
-A module build instruction:
-       
-       ifneq ($(CONFIG_PACKAGE_luci-app-YOURMODULE),)
-               PKG_SELECTED_MODULES+=applications/YOURMODULE
-       endif
-       
-
-
-A build package call:
-       
-       $(eval $(call BuildPackage,luci-app-YOURMODULE))
-       
diff --git a/package/luci/documentation/ModulesHowTo.md b/package/luci/documentation/ModulesHowTo.md
deleted file mode 100644 (file)
index 7efed83..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-*Note:* If you plan to integrate your module into LuCI, you should read the [wiki:Documentation/Modules Module Reference] before.
-
-This tutorial describes how to write your own modules for the LuCI WebUI.
-For this tutorial we refer to your LuCI installation directory as *lucidir_' (/usr/lib/lua/luci if you are working with an installed version) and assume your LuCI installation is reachable through your webserver via '_/cgi-bin/luci*.
-
-If you are working with the development environment replace *lucidir_' with '''''/path/to/your/luci/checkout''/applications/myapplication/luasrc''' (this is a default empty module you can use for your experiments) and your LuCI installation can probably be reached via http://localhost:8080/luci/ after you ran '_make runhttpd*.
-
-
-
-# Show me the way (The dispatching process)
-To write a module you need to understand the basics of the dispatching process in LuCI.
-LuCI uses a dispatching tree that will be built by executing the index-Function of every available controller.
-The CGI-environment variable *PATH_INFO* will be used as the path in this dispatching tree, e.g.: /cgi-bin/luci/foo/bar/baz
-will be resolved to foo.bar.baz
-
-To register a function in the dispatching tree, you can use the *entry*-function of _luci.dispatcher_. entry takes 4 arguments (2 are optional):
-       
-       entry(path, target, title=nil, order=nil)
-       
-
-* *path* is a table that describes the position in the dispatching tree: For example a path of {"foo", "bar", "baz"} would insert your node in foo.bar.baz.
-* *target* describes the action that will be taken when a user requests the node. There are several predefined ones of which the 3 most important (call, template, cbi) are described later on on this page
-* *title* defines the title that will be visible to the user in the menu (optional)
-* *order* is a number with which nodes on the same level will be sorted in the menu (optional)
-
-You can assign more attributes by manipulating the node table returned by the entry-function. A few example attributes:
-
-* *i18n* defines which translation file should be automatically loaded when the page gets requested
-* *dependent* protects plugins to be called out of their context if a parent node is missing
-* *leaf* stops parsing the request at this node and goes no further in the dispatching tree
-* *sysauth* requires the user to authenticate with a given system user account
-
-
-# It's all about names (Naming and the module file)
-Now that you know the basics about dispatching, we can start writing modules. But before you have to choose the category and name of your new digital child.
-
-We assume you want to create a new application "myapp" with a module "mymodule".
-
-So you have to create a new subdirectory *_lucidir''/controller/myapp''' with a file '_mymodule.lua* with the following content:
-       
-       module("luci.controller.myapp.mymodule", package.seeall)
-       
-       function index()
-       
-       end
-       
-
-The first line is required for Lua to correctly identify the module and create its scope.
-The index-Function will be used to register actions in the dispatching tree.
-
-
-
-# Teaching your new child (Actions)
-So it is there and has a name but it has no actions.
-
-We assume you want to reuse your module myapp.mymodule that you begun in the last step.
-
-
-## Actions
-Reopen *_lucidir_/controller/myapp/mymodule.lua* and just add a function to it so that its content looks like this example:
-
-       
-       module("luci.controller.myapp.mymodule", package.seeall)
-       
-       function index()
-           entry({"click", "here", "now"}, call("action_tryme"), "Click here", 10).dependent=false
-       end
-        
-       function action_tryme()
-           luci.http.prepare_content("text/plain")
-           luci.http.write("Haha, rebooting now...")
-           luci.sys.reboot()
-       end
-       
-
-And now type */cgi-bin/luci/click/here/now_' ('_[http://localhost:8080/luci/click/here/now]* if you are using the development environment) in your browser.
-
-You see these action functions simple have to be added to a dispatching entry.
-
-As you might or might not know: CGI specification requires you to send a Content-Type header before you can send your content. You will find several shortcuts (like the one used above) as well as redirecting functions in the module *luci.http*
-
-## Views
-If you only want to show the user a text or some interesting familiy photos it may be enough to use a HTML-template. These templates can also include some Lua code but be aware that writing whole office suites by only using these templates might be called "dirty" by other developers.
-
-Now let's create a little template *_lucidir_/view/myapp-mymodule/helloworld.htm* with the content:
-
-       
-       <%+header%>
-       <h1><%:Hello World%></h1> 
-       <%+footer%>
-       
-
-
-and add the following line to the index-Function of your module file.
-       
-       entry({"my", "new", "template"}, template("myapp-mymodule/helloworld"), "Hello world", 20).dependent=false
-       
-
-Now type */cgi-bin/luci/my/new/template_' ('_[http://localhost:8080/luci/my/new/template]* if you are using the development environment) in your browser.
-
-You may notice those fancy <% %>-Tags, these are [wiki:Documentation/Templates|template markups] used by the LuCI template processor.
-It is always good to include header and footer at the beginning and end of a template as those create the default design and menu.
-
-## <a name=cbimodels></a> CBI models
-The CBI is one of the uber coolest features of LuCI. It creates a formular based user interface and saves its contents to a specific UCI config file. You only have to describe the structure of the configuration file in a CBI model file and Luci does the rest of the work. This includes generating, parsing and validating a XHTML form and reading and writing the UCI file.
-
-So let's be serious at least for this paragraph and create a real pratical example *_lucidir_/model/cbi/myapp-mymodule/netifaces.lua* with the following contents:
-
-       
-       m = Map("network", "Network") -- We want to edit the uci config file /etc/config/network
-       
-       s = m:section(TypedSection, "interface", "Interfaces") -- Especially the "interface"-sections
-       s.addremove = true -- Allow the user to create and remove the interfaces
-       function s:filter(value)
-          return value ~= "loopback" and value -- Don't touch loopback
-       end 
-       s:depends("proto", "static") -- Only show those with "static"
-       s:depends("proto", "dhcp") -- or "dhcp" as protocol and leave PPPoE and PPTP alone
-       
-       p = s:option(ListValue, "proto", "Protocol") -- Creates an element list (select box)
-       p:value("static", "static") -- Key and value pairs
-       p:value("dhcp", "DHCP")
-       p.default = "static"
-       
-       s:option(Value, "ifname", "interface", "the physical interface to be used") -- This will give a simple textbox
-       
-       s:option(Value, "ipaddr", translate("ip", "IP Address")) -- Ja, das ist eine i18n-Funktion ;-)
-       
-       s:option(Value, "netmask", "Netmask"):depends("proto", "static") -- You may remember this "depends" function from above
-       
-       mtu = s:option(Value, "mtu", "MTU")
-       mtu.optional = true -- This one is very optional
-       
-       dns = s:option(Value, "dns", "DNS-Server")
-       dns:depends("proto", "static")
-       dns.optional = true
-       function dns:validate(value) -- Now, that's nifty, eh?
-           return value:match("[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+") -- Returns nil if it doesn't match otherwise returns match
-       end
-       
-       gw = s:option(Value, "gateway", "Gateway")
-       gw:depends("proto", "static")
-       gw.rmempty = true -- Remove entry if it is empty
-       
-       return m -- Returns the map
-       
-
-and of course don't forget to add something like this to your module's index-Function.
-       
-       entry({"admin", "network", "interfaces"}, cbi("myapp-mymodule/netifaces"), "Network interfaces", 30).dependent=false
-       
-
-There are many more features, see [wiki:Documentation/CBI the CBI reference] and the modules shipped with LuCI.
diff --git a/package/luci/documentation/Templates.md b/package/luci/documentation/Templates.md
deleted file mode 100644 (file)
index adf019c..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-LuCI has a simple regex based template processor which parses HTML-files to Lua functions and allows to store precompiled template files.
-The simplest form of a template is just an ordinary HTML-file. It will be printed out to the user as is.
-
-In LuCI every template is an object with an own scope. It can therefore be instantiated and each instance can has a different scope. As every template processor. LuCI supports several special markups. Those are enclosed in `<% %>`-Tags.
-
-By adding `-` (dash) right after the opening `<%` every whitespace before the markup will be stripped. Adding a `-` right before the closing `%>` will equivalently strip every whitespace behind the markup.
-
-
-# Builtin functions and markups
-## Including Lua code
-*Markup:*
-       
-       <% code %>
-       
-
-
-## Writing variables and function values
-*Syntax:*
-       
-       <% write (value) %>
-       
-
-*Short-Markup:*
-       
-       <%=value%>
-       
-
-## Including templates
-*Syntax:*
-       
-       <% include (templatename) %>
-       
-
-*Short-Markup:*
-       
-       <%+templatename%>
-       
-
-
-## Translating
-*Syntax:*
-       
-       <%= translate("Text to translate") %>
-       
-
-
-*Short-Markup:*
-       
-       <%:Text to translate%>
-       
-
-
-## Commenting
-*Markup:*
-       
-       <%# comment %>
-       
-
-# Builtin constants
-| Name | Value |
----------|---------
-|`REQUEST_URI`|The current URL (without server part)|
-|`controller`|Path to the Luci main dispatcher|
-|`resource`|Path to the resource directory|
-|`media`|Path to the active theme directory|
diff --git a/package/luci/documentation/ThemesHowTo.md b/package/luci/documentation/ThemesHowTo.md
deleted file mode 100644 (file)
index ae6f8e0..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-# HowTo: Create Themes
-*Note:* You should read the [Module Reference](Modules.md) and the [Template Reference](Templates.md) before.
-
-We assume you want to call your new theme _mytheme_. Make sure you replace this by your module name every time this is mentionend in this Howto.
-
-
-
-# Creating the structure
-At first create a new theme directory *themes/_mytheme_*.
-
-Create a _Makefile_ inside your theme directory with the following content:
-       
-       include ../../build/config.mk
-       include ../../build/module.mk
-       
-
-Create the following directory structure inside your theme directory.
-* ipkg
-* htdocs
-  * luci-static
-   * _mytheme_
-* luasrc
-  * view
-   * themes
-    * _mytheme_
-* root
-  * etc
-   * uci-defaults
-
-
-
-# Designing
-Create two LuCI HTML-Templates named _header.htm'' and ''footer.htm'' under *luasrc/view/themes/''mytheme_*.
-The _header.htm'' will be included at the beginning of each rendered page and the ''footer.htm_ at the end.
-So your _header.htm'' will probably contain a DOCTYPE description, headers, the menu and layout of the page and the ''footer.htm_ will close all remaining open tags and may add a footer bar but hey that's your choice you are the designer ;-).
-
-Just make sure your _header.htm_ *begins* with the following lines:
-       
-       <%
-       require("luci.http").prepare_content("text/html")
-       -%>
-       
-
-This makes sure your content will be sent to the client with the right content type. Of course you can adapt _text/html_ to your needs.
-
-
-Put any stylesheets, Javascripts, images, ... into *htdocs/luci-static/_mytheme_*.
-You should refer to this directory in your header and footer templates as: _<%=media%>''. That means for a stylesheet *htdocs/luci-static/''mytheme_/cascade.css* you would write:
-       
-       <link rel="stylesheet" type="text/css" href="<%=media%>/cascade.css" />
-       
-
-
-
-# Making the theme selectable
-If you are done with your work there are two last steps to do.
-To make your theme OpenWRT-capable and selectable on the settings page you should now create a file *root/etc/uci-defaults/luci-theme-_mytheme_* with the following contents:
-       
-       #!/bin/sh
-       uci batch <<-EOF
-               set luci.themes.MyTheme=/luci-static/mytheme
-               commit luci
-       EOF
-       
-
-and another file *ipkg/postinst* with the following content:
-       
-       #!/bin/sh
-       [ -n "${IPKG_INSTROOT}" ] || {
-               ( . /etc/uci-defaults/luci-theme-mytheme ) &&        rm -f /etc/uci-defaults/luci-theme-mytheme
-       }
-       
-
-This is some OpenWRT magic to correctly register the template with LuCI when it gets installed.
-
-That's all. Now send your theme to the LuCI developers to get it into the development repository - if you like.
diff --git a/package/luci/documentation/api/index.html b/package/luci/documentation/api/index.html
deleted file mode 100644 (file)
index 5e3f3c2..0000000
+++ /dev/null
@@ -1,426 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><strong>Index</strong></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-</div> <!-- id="navigation" -->
-
-<div id="content">
-
-
-
-<h2>Modules</h2>
-<table class="module_list">
-<!--<tr><td colspan="2">Modules</td></tr>-->
-
-       <tr>
-               <td class="name"><a href="modules/luci.dispatcher.html">luci.dispatcher</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.http.html">luci.http</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.http.conditionals.html">luci.http.conditionals</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.http.date.html">luci.http.date</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.http.mime.html">luci.http.mime</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.i18n.html">luci.i18n</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.ip.html">luci.ip</a></td>
-               <td class="summary">
- LuCI IP calculation and netlink access library.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.ip.cidr.html">luci.ip.cidr</a></td>
-               <td class="summary">
- IP CIDR Object.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.json.html">luci.json</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.jsonc.html">luci.jsonc</a></td>
-               <td class="summary">
- LuCI JSON parsing and serialization library.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.jsonc.parser.html">luci.jsonc.parser</a></td>
-               <td class="summary">
- LuCI JSON parser instance.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.model.ipkg.html">luci.model.ipkg</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.model.uci.html">luci.model.uci</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.rpcc.html">luci.rpcc</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.html">luci.sys</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.init.html">luci.sys.init</a></td>
-               <td class="summary">
-LuCI system utilities / init related functions.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.iptparser.html">luci.sys.iptparser</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.net.html">luci.sys.net</a></td>
-               <td class="summary">
-LuCI system utilities / network related functions.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.process.html">luci.sys.process</a></td>
-               <td class="summary">
-LuCI system utilities / process related functions.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.user.html">luci.sys.user</a></td>
-               <td class="summary">
-LuCI system utilities / user related functions.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.sys.wifi.html">luci.sys.wifi</a></td>
-               <td class="summary">
-LuCI system utilities / wifi related functions.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/luci.util.html">luci.util</a></td>
-               <td class="summary"></td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.html">nixio</a></td>
-               <td class="summary">
- General POSIX IO library.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a></td>
-               <td class="summary">
- Changes and improvements.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.CryptoHash.html">nixio.CryptoHash</a></td>
-               <td class="summary">
- Cryptographical Hash and HMAC object.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.File.html">nixio.File</a></td>
-               <td class="summary">
- Large File Object.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.README.html">nixio.README</a></td>
-               <td class="summary">
- General Information.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.Socket.html">nixio.Socket</a></td>
-               <td class="summary">
- Socket Object.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.TLSContext.html">nixio.TLSContext</a></td>
-               <td class="summary">
- Transport Layer Security Context Object.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.TLSSocket.html">nixio.TLSSocket</a></td>
-               <td class="summary">
- TLS Socket Object.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a></td>
-               <td class="summary">
- Unified high-level I/O utility API for Files, Sockets and TLS-Sockets.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.bin.html">nixio.bin</a></td>
-               <td class="summary">
- Binary operations and conversion.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.bit.html">nixio.bit</a></td>
-               <td class="summary">
- Bitfield operators and mainpulation functions.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.crypto.html">nixio.crypto</a></td>
-               <td class="summary">
- Cryptographical library.</td>
-       </tr>
-
-       <tr>
-               <td class="name"><a href="modules/nixio.fs.html">nixio.fs</a></td>
-               <td class="summary">
- Low-level and high-level filesystem manipulation library.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" --> 
-</body>
-</html>
diff --git a/package/luci/documentation/api/luadoc.css b/package/luci/documentation/api/luadoc.css
deleted file mode 100644 (file)
index f9f9749..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-body { 
-    margin-left: 1em; 
-    margin-right: 1em; 
-    font-family: arial, helvetica, geneva, sans-serif;
-       background-color:#ffffff; margin:0px;
-}
-
-code {
-    font-family: "Andale Mono", monospace; 
-}
-
-tt {
-    font-family: "Andale Mono", monospace; 
-}
-
-body, td, th { font-size: 11pt; }
-
-h1, h2, h3, h4 { margin-left: 0em; }
-
-textarea, pre, tt { font-size:10pt; }
-body, td, th { color:#000000; }
-small { font-size:0.85em; }
-h1 { font-size:1.5em; }
-h2 { font-size:1.25em; }
-h3 { font-size:1.15em; }
-h4 { font-size:1.06em; }
-
-a:link { font-weight:bold; color: #004080; text-decoration: none; }
-a:visited { font-weight:bold; color: #006699; text-decoration: none; }
-a:link:hover { text-decoration:underline; }
-hr { color:#cccccc }
-img { border-width: 0px; }
-
-
-h3 { padding: 1em 0 0.5em; }
-
-p { margin-left: 1em; }
-
-p.name { 
-    font-family: "Andale Mono", monospace; 
-    padding-top: 1em;
-    margin-left: 0em; 
-}
-
-blockquote { margin-left: 3em; }
-
-pre.example {
-    background-color: rgb(245, 245, 245);
-    border-top-width: 1px;
-    border-right-width: 1px;
-    border-bottom-width: 1px;
-    border-left-width: 1px;
-    border-top-style: solid;
-    border-right-style: solid;
-    border-bottom-style: solid;
-    border-left-style: solid;
-    border-top-color: silver;
-    border-right-color: silver;
-    border-bottom-color: silver;
-    border-left-color: silver;
-    padding: 1em;
-    margin-left: 1em;
-    margin-right: 1em;
-    font-family: "Andale Mono", monospace; 
-    font-size: smaller;
-}
-
-
-hr { 
-    margin-left: 0em;
-       background: #00007f; 
-       border: 0px;
-       height: 1px;
-}
-
-ul { list-style-type: disc; }
-
-table.index { border: 1px #00007f; }
-table.index td { text-align: left; vertical-align: top; }
-table.index ul { padding-top: 0em; margin-top: 0em; }
-
-table {
-    border: 1px solid black;
-    border-collapse: collapse;
-    margin: 1em auto;
-}
-th {
-    border: 1px solid black;
-    padding: 0.5em;
-}
-td {
-    border: 1px solid black;
-    padding: 0.5em;
-}
-div.header, div.footer { margin-left: 0em; }
-
-#container
-{
-       margin-left: 1em;
-       margin-right: 1em;
-       background-color: #f0f0f0;
-}
-
-#product
-{
-       text-align: center;
-       border-bottom: 1px solid #cccccc;
-       background-color: #ffffff;
-}
-
-#product big {
-       font-size: 2em;
-}
-
-#product_logo
-{
-}
-
-#product_name
-{
-}
-
-#product_description
-{
-}
-
-#main
-{
-       background-color: #f0f0f0;
-       border-left: 2px solid #cccccc;
-}
-
-#navigation
-{
-       float: left;
-       width: 18em;
-       margin: 0;
-       vertical-align: top;
-       background-color: #f0f0f0;
-       overflow:visible;
-}
-
-#navigation h1 {
-       background-color:#e7e7e7;
-       font-size:1.1em;
-       color:#000000;
-       text-align:left;
-       margin:0px;
-       padding:0.2em;
-       border-top:1px solid #dddddd;
-       border-bottom:1px solid #dddddd;
-}
-
-#navigation ul
-{
-       font-size:1em;
-       list-style-type: none;
-       padding: 0;
-       margin: 1px;
-}
-
-#navigation li
-{
-       text-indent: -1em;
-       margin: 0em 0em 0em 0.5em;
-       display: block;
-       padding: 3px 0px 0px 12px;
-}
-
-#navigation li li a
-{
-       padding: 0px 3px 0px -1em;
-}
-
-#content
-{
-       margin-left: 18em;
-       padding: 1em;
-       border-left: 2px solid #cccccc;
-       border-right: 2px solid #cccccc;
-       background-color: #ffffff;
-}
-
-#about
-{
-       clear: both;
-       margin: 0;
-       padding: 5px;
-       border-top: 2px solid #cccccc;
-       background-color: #ffffff;
-}
-
-@media print {
-       body { 
-               font: 12pt "Times New Roman", "TimeNR", Times, serif;
-       }
-       a { font-weight:bold; color: #004080; text-decoration: underline; }
-       
-       #main\r  {\r              background-color: #ffffff;\r             border-left: 0px;\r      }\r      
-       #container\r     {\r              margin-left: 2%;\r               margin-right: 2%;\r              background-color: #ffffff;\r     }
-       
-       #content\r       {\r              margin-left: 0px;\r              padding: 1em;\r          border-left: 0px;\r              border-right: 0px;\r             background-color: #ffffff;\r     }
-       
-       #navigation\r    {\r              display: none;
-       }
-       pre.example {
-               font-family: "Andale Mono", monospace; 
-               font-size: 10pt;
-               page-break-inside: avoid;
-       }
-}
-
-table.module_list td
-{
-       border-width: 1px;
-       padding: 3px;
-       border-style: solid;
-       border-color: #cccccc;
-}
-table.module_list td.name { background-color: #f0f0f0; }
-table.module_list td.summary { width: 100%; }
-
-table.file_list
-{
-       border-width: 1px;
-       border-style: solid;
-       border-color: #cccccc;
-       border-collapse: collapse;
-}
-table.file_list td
-{
-       border-width: 1px;
-       padding: 3px;
-       border-style: solid;
-       border-color: #cccccc;
-}
-table.file_list td.name { background-color: #f0f0f0; }
-table.file_list td.summary { width: 100%; }
-
-
-table.function_list
-{
-       border-width: 1px;
-       border-style: solid;
-       border-color: #cccccc;
-       border-collapse: collapse;
-}
-table.function_list td
-{
-       border-width: 1px;
-       padding: 3px;
-       border-style: solid;
-       border-color: #cccccc;
-}
-table.function_list td.name { background-color: #f0f0f0; }
-table.function_list td.summary { width: 100%; }
-
-
-table.table_list
-{
-       border-width: 1px;
-       border-style: solid;
-       border-color: #cccccc;
-       border-collapse: collapse;
-}
-table.table_list td
-{
-       border-width: 1px;
-       padding: 3px;
-       border-style: solid;
-       border-color: #cccccc;
-}
-table.table_list td.name { background-color: #f0f0f0; }
-table.table_list td.summary { width: 100%; }
-
-dl.function dt {border-top: 1px solid #ccc; padding-top: 1em;}
-dl.function dd {padding: 0.5em 0;}
-dl.function h3 {margin: 0; font-size: medium;}
-
-dl.table dt {border-top: 1px solid #ccc; padding-top: 1em;}
-dl.table dd {padding-bottom: 1em;}
-dl.table h3 {padding: 0; margin: 0; font-size: medium;}
-
-#TODO: make module_list, file_list, function_list, table_list inherit from a list
-
diff --git a/package/luci/documentation/api/modules/luci.dispatcher.html b/package/luci/documentation/api/modules/luci.dispatcher.html
deleted file mode 100644 (file)
index e4b12e6..0000000
+++ /dev/null
@@ -1,1185 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li><strong>luci.dispatcher</strong></li>
-       
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.dispatcher</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#_">_</a>&nbsp;()</td>
-       <td class="summary">
-No-op function used to mark translation entries for menu labels.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#alias">alias</a>&nbsp;(...)</td>
-       <td class="summary">
-Create a redirect to another dispatching node.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#arcombine">arcombine</a>&nbsp;(trg1, trg2)</td>
-       <td class="summary">
-Create a combined dispatching target for non argv and argv requests.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#assign">assign</a>&nbsp;(path, clone, title, order)</td>
-       <td class="summary">
-Clone a node of the dispatching tree to another position.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#build_url">build_url</a>&nbsp;(...)</td>
-       <td class="summary">
-Build the URL relative to the server webroot from given virtual path.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#call">call</a>&nbsp;(name, ...)</td>
-       <td class="summary">
-Create a function-call dispatching target.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cbi">cbi</a>&nbsp;(model)</td>
-       <td class="summary">
-Create a CBI model dispatching target.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#createindex">createindex</a>&nbsp;()</td>
-       <td class="summary">
-Generate the dispatching index using the native file-cache based strategy.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#createtree">createtree</a>&nbsp;()</td>
-       <td class="summary">
-Create the dispatching tree from the index.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#dispatch">dispatch</a>&nbsp;(request)</td>
-       <td class="summary">
-Dispatches a LuCI virtual path.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#entry">entry</a>&nbsp;(path, target, title, order)</td>
-       <td class="summary">
-Create a new dispatching node and define common parameters.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#error404">error404</a>&nbsp;(message)</td>
-       <td class="summary">
-Send a 404 error code and render the "error404" template if available.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#error500">error500</a>&nbsp;(message)</td>
-       <td class="summary">
-Send a 500 error code and render the "error500" template if available.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#firstchild">firstchild</a>&nbsp;()</td>
-       <td class="summary">
-Alias the first (lowest order) page automatically 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#form">form</a>&nbsp;(model)</td>
-       <td class="summary">
-Create a CBI form model dispatching target.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#get">get</a>&nbsp;(...)</td>
-       <td class="summary">
-Fetch or create a dispatching node without setting the target module or 
-enabling the node.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#httpdispatch">httpdispatch</a>&nbsp;(request)</td>
-       <td class="summary">
-Dispatch an HTTP request.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#lookup">lookup</a>&nbsp;(...)</td>
-       <td class="summary">
-Lookup node in dispatching tree.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#modifier">modifier</a>&nbsp;(func, order)</td>
-       <td class="summary">
-Register a tree modifier.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#node">node</a>&nbsp;(...)</td>
-       <td class="summary">
-Fetch or create a new dispatching node.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#node_childs">node_childs</a>&nbsp;(node)</td>
-       <td class="summary">
-Return a sorted table of visible childs within a given node 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#node_visible">node_visible</a>&nbsp;(node)</td>
-       <td class="summary">
-Check whether a dispatch node shall be visible 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#rewrite">rewrite</a>&nbsp;(n, ...)</td>
-       <td class="summary">
-Rewrite the first x path values of the request.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#template">template</a>&nbsp;(name)</td>
-       <td class="summary">
-Create a template render dispatching target.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#translate">translate</a>&nbsp;(text)</td>
-       <td class="summary">
-Access the luci.i18n translate() api.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="_"></a><strong>_</strong>&nbsp;()</dt>
-<dd>
-
-No-op function used to mark translation entries for menu labels. 
-This function does not actually translate the given argument but 
-is used by build/i18n-scan.pl to find translatable entries. 
-
-
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="alias"></a><strong>alias</strong>&nbsp;(...)</dt>
-<dd>
-
-Create a redirect to another dispatching node. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: Virtual path destination
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="arcombine"></a><strong>arcombine</strong>&nbsp;(trg1, trg2)</dt>
-<dd>
-
-Create a combined dispatching target for non argv and argv requests. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         trg1: Overview Target
-       </li>
-       
-       <li>
-         trg2: Detail Target
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="assign"></a><strong>assign</strong>&nbsp;(path, clone, title, order)</dt>
-<dd>
-
-Clone a node of the dispatching tree to another position. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Virtual path destination
-       </li>
-       
-       <li>
-         clone: Virtual path source
-       </li>
-       
-       <li>
-         title: Destination node title (optional)
-       </li>
-       
-       <li>
-         order: Destination node order value (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Dispatching tree node
-
-
-
-</dd>
-
-
-
-
-<dt><a name="build_url"></a><strong>build_url</strong>&nbsp;(...)</dt>
-<dd>
-
-Build the URL relative to the server webroot from given virtual path. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: Virtual path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Relative URL
-
-
-
-</dd>
-
-
-
-
-<dt><a name="call"></a><strong>call</strong>&nbsp;(name, ...)</dt>
-<dd>
-
-Create a function-call dispatching target. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Target function of local controller
-       </li>
-       
-       <li>
-         ...: Additional parameters passed to the function
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cbi"></a><strong>cbi</strong>&nbsp;(model)</dt>
-<dd>
-
-Create a CBI model dispatching target. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         model: CBI model to be rendered
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="createindex"></a><strong>createindex</strong>&nbsp;()</dt>
-<dd>
-
-Generate the dispatching index using the native file-cache based strategy. 
-
-
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="createtree"></a><strong>createtree</strong>&nbsp;()</dt>
-<dd>
-
-Create the dispatching tree from the index. 
-Build the index before if it does not exist yet. 
-
-
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="dispatch"></a><strong>dispatch</strong>&nbsp;(request)</dt>
-<dd>
-
-Dispatches a LuCI virtual path. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         request: Virtual path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="entry"></a><strong>entry</strong>&nbsp;(path, target, title, order)</dt>
-<dd>
-
-Create a new dispatching node and define common parameters. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Virtual path
-       </li>
-       
-       <li>
-         target: Target function to call when dispatched.
-       </li>
-       
-       <li>
-         title: Destination node title
-       </li>
-       
-       <li>
-         order: Destination node order value (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Dispatching tree node
-
-
-
-</dd>
-
-
-
-
-<dt><a name="error404"></a><strong>error404</strong>&nbsp;(message)</dt>
-<dd>
-
-Send a 404 error code and render the "error404" template if available. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         message: Custom error message (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-false
-
-
-
-</dd>
-
-
-
-
-<dt><a name="error500"></a><strong>error500</strong>&nbsp;(message)</dt>
-<dd>
-
-Send a 500 error code and render the "error500" template if available. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         message: Custom error message (optional)#
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-false
-
-
-
-</dd>
-
-
-
-
-<dt><a name="firstchild"></a><strong>firstchild</strong>&nbsp;()</dt>
-<dd>
-
-Alias the first (lowest order) page automatically 
-
-
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="form"></a><strong>form</strong>&nbsp;(model)</dt>
-<dd>
-
-Create a CBI form model dispatching target. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         model: CBI form model tpo be rendered
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="get"></a><strong>get</strong>&nbsp;(...)</dt>
-<dd>
-
-Fetch or create a dispatching node without setting the target module or 
-enabling the node. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: Virtual path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Dispatching tree node
-
-
-
-</dd>
-
-
-
-
-<dt><a name="httpdispatch"></a><strong>httpdispatch</strong>&nbsp;(request)</dt>
-<dd>
-
-Dispatch an HTTP request. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         request: LuCI HTTP Request object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="lookup"></a><strong>lookup</strong>&nbsp;(...)</dt>
-<dd>
-
-Lookup node in dispatching tree. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: Virtual path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Node object, canonical url or nil if the path was not found.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="modifier"></a><strong>modifier</strong>&nbsp;(func, order)</dt>
-<dd>
-
-Register a tree modifier. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         func: Modifier function
-       </li>
-       
-       <li>
-         order: Modifier order value (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="node"></a><strong>node</strong>&nbsp;(...)</dt>
-<dd>
-
-Fetch or create a new dispatching node. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: Virtual path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Dispatching tree node
-
-
-
-</dd>
-
-
-
-
-<dt><a name="node_childs"></a><strong>node_childs</strong>&nbsp;(node)</dt>
-<dd>
-
-Return a sorted table of visible childs within a given node 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         node: Dispatch node
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Ordered table of child node names
-
-
-
-</dd>
-
-
-
-
-<dt><a name="node_visible"></a><strong>node_visible</strong>&nbsp;(node)</dt>
-<dd>
-
-Check whether a dispatch node shall be visible 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         node: Dispatch node
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating whether the node should be visible
-
-
-
-</dd>
-
-
-
-
-<dt><a name="rewrite"></a><strong>rewrite</strong>&nbsp;(n, ...)</dt>
-<dd>
-
-Rewrite the first x path values of the request. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         n: Number of path values to replace
-       </li>
-       
-       <li>
-         ...: Virtual path to replace removed path values with
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="template"></a><strong>template</strong>&nbsp;(name)</dt>
-<dd>
-
-Create a template render dispatching target. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Template to be rendered
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="translate"></a><strong>translate</strong>&nbsp;(text)</dt>
-<dd>
-
-Access the luci.i18n translate() api. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         text: Text to translate
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.http.html b/package/luci/documentation/api/modules/luci.http.html
deleted file mode 100644 (file)
index d75863f..0000000
+++ /dev/null
@@ -1,1267 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li><strong>luci.http</strong></li>
-       
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.http</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#build_querystring">build_querystring</a>&nbsp;(table)</td>
-       <td class="summary">
-Create a querystring out of a table of key - value pairs.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#close">close</a>&nbsp;()</td>
-       <td class="summary">
-Close the HTTP-Connection.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#content">content</a>&nbsp;()</td>
-       <td class="summary">
-Return the request content if the request was of unknown type.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#formvalue">formvalue</a>&nbsp;(name, noparse)</td>
-       <td class="summary">
-Get a certain HTTP input value or a table of all input values.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#formvaluetable">formvaluetable</a>&nbsp;(prefix)</td>
-       <td class="summary">
-Get a table of all HTTP input values with a certain prefix.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#getcookie">getcookie</a>&nbsp;(name)</td>
-       <td class="summary">
-Get the value of a certain HTTP-Cookie.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#getenv">getenv</a>&nbsp;(name)</td>
-       <td class="summary">
-Get the value of a certain HTTP environment variable 
-or the environment table itself.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#header">header</a>&nbsp;(key, value)</td>
-       <td class="summary">
-Send a HTTP-Header.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#mimedecode_message_body">mimedecode_message_body</a>&nbsp;(src, msg, filecb)</td>
-       <td class="summary">
-Decode a mime encoded http message body with multipart/form-data Content-Type.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parse_message_body">parse_message_body</a>&nbsp;(src, msg, filecb)</td>
-       <td class="summary">
-Try to extract and decode a http message body from the given ltn12 source.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#prepare_content">prepare_content</a>&nbsp;(mime)</td>
-       <td class="summary">
-Set the mime type of following content data.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#redirect">redirect</a>&nbsp;(url)</td>
-       <td class="summary">
-Redirects the client to a new URL and closes the connection.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#setfilehandler">setfilehandler</a>&nbsp;(callback)</td>
-       <td class="summary">
-Set a handler function for incoming user file uploads.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#source">source</a>&nbsp;()</td>
-       <td class="summary">
-Get the RAW HTTP input source 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#splice">splice</a>&nbsp;(fp, size)</td>
-       <td class="summary">
-Splice data from a filedescriptor to the client.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#status">status</a>&nbsp;(code, message)</td>
-       <td class="summary">
-Set the HTTP status code and status message.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urldecode">urldecode</a>&nbsp;(str, no_plus)</td>
-       <td class="summary">
-Return the URL-decoded equivalent of a string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urldecode_message_body">urldecode_message_body</a>&nbsp;(src, msg)</td>
-       <td class="summary">
-Decode an urlencoded http message body with application/x-www-urlencoded 
-Content-Type.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urldecode_params">urldecode_params</a>&nbsp;(url, tbl)</td>
-       <td class="summary">
-Extract and split urlencoded data pairs, separated bei either "&" or ";" 
-from given url or string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urlencode">urlencode</a>&nbsp;(str)</td>
-       <td class="summary">
-Return the URL-encoded equivalent of a string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urlencode_params">urlencode_params</a>&nbsp;(tbl)</td>
-       <td class="summary">
-Encode each key-value-pair in given table to x-www-urlencoded format, 
-separated by "&".</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#write">write</a>&nbsp;(content, src_err)</td>
-       <td class="summary">
-Send a chunk of content data to the client.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#write_json">write_json</a>&nbsp;(data)</td>
-       <td class="summary">
-Send the given data as JSON encoded string.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="build_querystring"></a><strong>build_querystring</strong>&nbsp;(table)</dt>
-<dd>
-
-Create a querystring out of a table of key - value pairs. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         table: Query string source table
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Encoded HTTP query string
-
-
-
-</dd>
-
-
-
-
-<dt><a name="close"></a><strong>close</strong>&nbsp;()</dt>
-<dd>
-
-Close the HTTP-Connection. 
-
-
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="content"></a><strong>content</strong>&nbsp;()</dt>
-<dd>
-
-Return the request content if the request was of unknown type. 
-
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>HTTP request body
-       
-       <li>HTTP request body length
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="formvalue"></a><strong>formvalue</strong>&nbsp;(name, noparse)</dt>
-<dd>
-
-Get a certain HTTP input value or a table of all input values. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the GET or POST variable to fetch
-       </li>
-       
-       <li>
-         noparse: Don't parse POST data before getting the value
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-HTTP input value or table of all input value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="formvaluetable"></a><strong>formvaluetable</strong>&nbsp;(prefix)</dt>
-<dd>
-
-Get a table of all HTTP input values with a certain prefix. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         prefix: Prefix
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of all HTTP input values with given prefix
-
-
-
-</dd>
-
-
-
-
-<dt><a name="getcookie"></a><strong>getcookie</strong>&nbsp;(name)</dt>
-<dd>
-
-Get the value of a certain HTTP-Cookie. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Cookie Name
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing cookie data
-
-
-
-</dd>
-
-
-
-
-<dt><a name="getenv"></a><strong>getenv</strong>&nbsp;(name)</dt>
-<dd>
-
-Get the value of a certain HTTP environment variable 
-or the environment table itself. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Environment variable
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-HTTP environment value or environment table
-
-
-
-</dd>
-
-
-
-
-<dt><a name="header"></a><strong>header</strong>&nbsp;(key, value)</dt>
-<dd>
-
-Send a HTTP-Header. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         key: Header key
-       </li>
-       
-       <li>
-         value: Header value
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="mimedecode_message_body"></a><strong>mimedecode_message_body</strong>&nbsp;(src, msg, filecb)</dt>
-<dd>
-
-Decode a mime encoded http message body with multipart/form-data Content-Type. 
-Stores all extracted data associated with its parameter name 
-in the params table within the given message object. Multiple parameter 
-values are stored as tables, ordinary ones as strings. 
-If an optional file callback function is given then it is feeded with the 
-file contents chunk by chunk and only the extracted file name is stored 
-within the params table. The callback function will be called subsequently 
-with three arguments: 
- o Table containing decoded (name, file) and raw (headers) mime header data 
- o String value containing a chunk of the file data 
- o Boolean which indicates wheather the current chunk is the last one (eof) 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Ltn12 source function
-       </li>
-       
-       <li>
-         msg: HTTP message object
-       </li>
-       
-       <li>
-         filecb: File callback function (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Value indicating successful operation (not nil means "ok")
-       
-       <li>String containing the error if unsuccessful
-       
-</ol>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="">
-               parse_message_header
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="parse_message_body"></a><strong>parse_message_body</strong>&nbsp;(src, msg, filecb)</dt>
-<dd>
-
-Try to extract and decode a http message body from the given ltn12 source. 
-This function will examine the Content-Type within the given message object 
-to select the appropriate content decoder. 
-Currently the application/x-www-urlencoded and application/form-data 
-mime types are supported. If the encountered content encoding can't be 
-handled then the whole message body will be stored unaltered as "content" 
-property within the given message object. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Ltn12 source function
-       </li>
-       
-       <li>
-         msg: HTTP message object
-       </li>
-       
-       <li>
-         filecb: File data callback (optional, see mimedecode_message_body())
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Value indicating successful operation (not nil means "ok")
-       
-       <li>String containing the error if unsuccessful
-       
-</ol>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="">
-               parse_message_header
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="prepare_content"></a><strong>prepare_content</strong>&nbsp;(mime)</dt>
-<dd>
-
-Set the mime type of following content data. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mime: Mimetype of following content
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="redirect"></a><strong>redirect</strong>&nbsp;(url)</dt>
-<dd>
-
-Redirects the client to a new URL and closes the connection. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         url: Target URL
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="setfilehandler"></a><strong>setfilehandler</strong>&nbsp;(callback)</dt>
-<dd>
-
-Set a handler function for incoming user file uploads. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         callback: Handler function
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="source"></a><strong>source</strong>&nbsp;()</dt>
-<dd>
-
-Get the RAW HTTP input source 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-HTTP LTN12 source
-
-
-
-</dd>
-
-
-
-
-<dt><a name="splice"></a><strong>splice</strong>&nbsp;(fp, size)</dt>
-<dd>
-
-Splice data from a filedescriptor to the client. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         fp: File descriptor
-       </li>
-       
-       <li>
-         size: Bytes to splice (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="status"></a><strong>status</strong>&nbsp;(code, message)</dt>
-<dd>
-
-Set the HTTP status code and status message. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         code: Status code
-       </li>
-       
-       <li>
-         message: Status message
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="urldecode"></a><strong>urldecode</strong>&nbsp;(str, no_plus)</dt>
-<dd>
-
-Return the URL-decoded equivalent of a string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: URL-encoded string
-       </li>
-       
-       <li>
-         no_plus: Don't decode + to " "
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-URL-decoded string
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urlencode">
-               urlencode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urldecode_message_body"></a><strong>urldecode_message_body</strong>&nbsp;(src, msg)</dt>
-<dd>
-
-Decode an urlencoded http message body with application/x-www-urlencoded 
-Content-Type. 
-Stores all extracted data associated with its parameter name in the params 
-table within the given message object. Multiple parameter values are stored 
-as tables, ordinary ones as strings. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Ltn12 source function
-       </li>
-       
-       <li>
-         msg: HTTP message object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Value indicating successful operation (not nil means "ok")
-       
-       <li>String containing the error if unsuccessful
-       
-</ol>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="">
-               parse_message_header
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urldecode_params"></a><strong>urldecode_params</strong>&nbsp;(url, tbl)</dt>
-<dd>
-
-Extract and split urlencoded data pairs, separated bei either "&" or ";" 
-from given url or string. Returns a table with urldecoded values. 
-Simple parameters are stored as string values associated with the parameter 
-name within the table. Parameters with multiple values are stored as array 
-containing the corresponding values. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         url: The url or string which contains x-www-urlencoded form data
-       </li>
-       
-       <li>
-         tbl: Use the given table for storing values (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing the urldecoded parameters
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urlencode_params">
-               urlencode_params
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urlencode"></a><strong>urlencode</strong>&nbsp;(str)</dt>
-<dd>
-
-Return the URL-encoded equivalent of a string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: Source string
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-URL-encoded string
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urldecode">
-               urldecode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urlencode_params"></a><strong>urlencode_params</strong>&nbsp;(tbl)</dt>
-<dd>
-
-Encode each key-value-pair in given table to x-www-urlencoded format, 
-separated by "&". 
-Tables are encoded as parameters with multiple values by repeating the 
-parameter name with each value. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         tbl: Table with the values
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing encoded values
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urldecode_params">
-               urldecode_params
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="write"></a><strong>write</strong>&nbsp;(content, src_err)</dt>
-<dd>
-
-Send a chunk of content data to the client. 
-This function is as a valid LTN12 sink. 
-If the content chunk is nil this function will automatically invoke close. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         content: Content chunk
-       </li>
-       
-       <li>
-         src_err: Error object from source (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#close">
-               close
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="write_json"></a><strong>write_json</strong>&nbsp;(data)</dt>
-<dd>
-
-Send the given data as JSON encoded string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data: Data to send
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.http.protocol.conditionals.html b/package/luci/documentation/api/modules/luci.http.protocol.conditionals.html
deleted file mode 100644 (file)
index 9728815..0000000
+++ /dev/null
@@ -1,556 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
-       </li>
-
-       <li><strong>luci.http.protocol.conditionals</strong></li>
-       
-       <li>
-               <a href="../modules/luci.http.protocol.date.html">luci.http.protocol.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.protocol.mime.html">luci.http.protocol.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.http.protocol.conditionals</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#if_match">if_match</a>&nbsp;(req, stat)</td>
-       <td class="summary">
-14.24 / If-Match 
-Test whether the given message object contains an "If-Match" header and 
-compare it against the given stat object.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#if_modified_since">if_modified_since</a>&nbsp;(req, stat)</td>
-       <td class="summary">
-14.25 / If-Modified-Since 
-Test whether the given message object contains an "If-Modified-Since" header 
-and compare it against the given stat object.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#if_none_match">if_none_match</a>&nbsp;(req, stat)</td>
-       <td class="summary">
-14.26 / If-None-Match 
-Test whether the given message object contains an "If-None-Match" header and 
-compare it against the given stat object.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#if_range">if_range</a>&nbsp;(req, stat)</td>
-       <td class="summary">
-14.27 / If-Range 
-The If-Range header is currently not implemented due to the lack of general 
-byte range stuff in luci.http.protocol .</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#if_unmodified_since">if_unmodified_since</a>&nbsp;(req, stat)</td>
-       <td class="summary">
-14.28 / If-Unmodified-Since 
-Test whether the given message object contains an "If-Unmodified-Since" 
-header and compare it against the given stat object.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#mk_etag">mk_etag</a>&nbsp;(stat)</td>
-       <td class="summary">
-Implement 14.19 / ETag.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="if_match"></a><strong>if_match</strong>&nbsp;(req, stat)</dt>
-<dd>
-
-14.24 / If-Match 
-Test whether the given message object contains an "If-Match" header and 
-compare it against the given stat object.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         req: HTTP request message object
-       </li>
-       
-       <li>
-         stat: A file.stat object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating whether the precondition is ok
-       
-       <li>Alternative status code if the precondition failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="if_modified_since"></a><strong>if_modified_since</strong>&nbsp;(req, stat)</dt>
-<dd>
-
-14.25 / If-Modified-Since 
-Test whether the given message object contains an "If-Modified-Since" header 
-and compare it against the given stat object.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         req: HTTP request message object
-       </li>
-       
-       <li>
-         stat: A file.stat object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating whether the precondition is ok
-       
-       <li>Alternative status code if the precondition failed
-       
-       <li>Table containing extra HTTP headers if the precondition failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="if_none_match"></a><strong>if_none_match</strong>&nbsp;(req, stat)</dt>
-<dd>
-
-14.26 / If-None-Match 
-Test whether the given message object contains an "If-None-Match" header and 
-compare it against the given stat object.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         req: HTTP request message object
-       </li>
-       
-       <li>
-         stat: A file.stat object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating whether the precondition is ok
-       
-       <li>Alternative status code if the precondition failed
-       
-       <li>Table containing extra HTTP headers if the precondition failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="if_range"></a><strong>if_range</strong>&nbsp;(req, stat)</dt>
-<dd>
-
-14.27 / If-Range 
-The If-Range header is currently not implemented due to the lack of general 
-byte range stuff in luci.http.protocol . This function will always return 
-false, 412 to indicate a failed precondition.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         req: HTTP request message object
-       </li>
-       
-       <li>
-         stat: A file.stat object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating whether the precondition is ok
-       
-       <li>Alternative status code if the precondition failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="if_unmodified_since"></a><strong>if_unmodified_since</strong>&nbsp;(req, stat)</dt>
-<dd>
-
-14.28 / If-Unmodified-Since 
-Test whether the given message object contains an "If-Unmodified-Since" 
-header and compare it against the given stat object.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         req: HTTP request message object
-       </li>
-       
-       <li>
-         stat: A file.stat object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating whether the precondition is ok
-       
-       <li>Alternative status code if the precondition failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="mk_etag"></a><strong>mk_etag</strong>&nbsp;(stat)</dt>
-<dd>
-
-Implement 14.19 / ETag. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         stat: A file.stat structure
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the generated tag suitable for ETag headers
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.http.protocol.date.html b/package/luci/documentation/api/modules/luci.http.protocol.date.html
deleted file mode 100644 (file)
index d89a723..0000000
+++ /dev/null
@@ -1,410 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
-       </li>
-
-       <li><strong>luci.http.protocol.date</strong></li>
-       
-       <li>
-               <a href="../modules/luci.http.protocol.mime.html">luci.http.protocol.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.http.protocol.date</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#compare">compare</a>&nbsp;(d1, d2)</td>
-       <td class="summary">
-Compare two dates which can either be unix epoch times or HTTP date strings.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#to_http">to_http</a>&nbsp;(time)</td>
-       <td class="summary">
-Convert the given unix epoch time to valid HTTP date string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#to_unix">to_unix</a>&nbsp;(data)</td>
-       <td class="summary">
-Parse given HTTP date string and convert it to unix epoch time.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#tz_offset">tz_offset</a>&nbsp;(tz)</td>
-       <td class="summary">
-Return the time offset in seconds between the UTC and given time zone.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="compare"></a><strong>compare</strong>&nbsp;(d1, d2)</dt>
-<dd>
-
-Compare two dates which can either be unix epoch times or HTTP date strings. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         d1: The first date or epoch time to compare
-       </li>
-       
-       <li>
-         d2: The first date or epoch time to compare
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>-1  -  if d1 is lower then d2
-       
-       <li>0   -  if both dates are equal
-       
-       <li>1   -  if d1 is higher then d2
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="to_http"></a><strong>to_http</strong>&nbsp;(time)</dt>
-<dd>
-
-Convert the given unix epoch time to valid HTTP date string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         time: Unix epoch time
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the formatted date
-
-
-
-</dd>
-
-
-
-
-<dt><a name="to_unix"></a><strong>to_unix</strong>&nbsp;(data)</dt>
-<dd>
-
-Parse given HTTP date string and convert it to unix epoch time. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data: String containing the date
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Unix epoch time
-
-
-
-</dd>
-
-
-
-
-<dt><a name="tz_offset"></a><strong>tz_offset</strong>&nbsp;(tz)</dt>
-<dd>
-
-Return the time offset in seconds between the UTC and given time zone. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         tz: Symbolic or numeric timezone specifier
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Time offset to UTC in seconds
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.http.protocol.html b/package/luci/documentation/api/modules/luci.http.protocol.html
deleted file mode 100644 (file)
index e6e93ad..0000000
+++ /dev/null
@@ -1,753 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li><strong>luci.http.protocol</strong></li>
-       
-       <li>
-               <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.protocol.date.html">luci.http.protocol.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.protocol.mime.html">luci.http.protocol.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.http.protocol</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#header_source">header_source</a>&nbsp;(sock)</td>
-       <td class="summary">
-Creates a ltn12 source from the given socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#mimedecode_message_body">mimedecode_message_body</a>&nbsp;(src, msg, filecb)</td>
-       <td class="summary">
-Decode a mime encoded http message body with multipart/form-data 
-Content-Type.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parse_message_body">parse_message_body</a>&nbsp;(src, msg, filecb)</td>
-       <td class="summary">
-Try to extract and decode a http message body from the given ltn12 source.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parse_message_header">parse_message_header</a>&nbsp;(src)</td>
-       <td class="summary">
-Try to extract an http message header including information like protocol 
-version, message headers and resulting CGI environment variables from the 
-given ltn12 source.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urldecode">urldecode</a>&nbsp;(str, no_plus)</td>
-       <td class="summary">
-Decode an urlencoded string - optionally without decoding 
-the "+" sign to " " - and return the decoded string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urldecode_message_body">urldecode_message_body</a>&nbsp;(src, msg)</td>
-       <td class="summary">
-Decode an urlencoded http message body with application/x-www-urlencoded 
-Content-Type.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urldecode_params">urldecode_params</a>&nbsp;(url, tbl)</td>
-       <td class="summary">
-Extract and split urlencoded data pairs, separated bei either "&" or ";" 
-from given url or string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urlencode">urlencode</a>&nbsp;(str)</td>
-       <td class="summary">
-Encode given string to x-www-urlencoded format.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urlencode_params">urlencode_params</a>&nbsp;(tbl)</td>
-       <td class="summary">
-Encode each key-value-pair in given table to x-www-urlencoded format, 
-separated by "&".</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="header_source"></a><strong>header_source</strong>&nbsp;(sock)</dt>
-<dd>
-
-Creates a ltn12 source from the given socket. The source will return it's 
-data line by line with the trailing \r\n stripped of.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         sock: Readable network socket
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Ltn12 source function
-
-
-
-</dd>
-
-
-
-
-<dt><a name="mimedecode_message_body"></a><strong>mimedecode_message_body</strong>&nbsp;(src, msg, filecb)</dt>
-<dd>
-
-Decode a mime encoded http message body with multipart/form-data 
-Content-Type. Stores all extracted data associated with its parameter name 
-in the params table within the given message object. Multiple parameter 
-values are stored as tables, ordinary ones as strings. 
-If an optional file callback function is given then it is feeded with the 
-file contents chunk by chunk and only the extracted file name is stored 
-within the params table. The callback function will be called subsequently 
-with three arguments: 
- o Table containing decoded (name, file) and raw (headers) mime header data 
- o String value containing a chunk of the file data 
- o Boolean which indicates wheather the current chunk is the last one (eof)
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Ltn12 source function
-       </li>
-       
-       <li>
-         msg: HTTP message object
-       </li>
-       
-       <li>
-         filecb: File callback function (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Value indicating successful operation (not nil means "ok")
-       
-       <li>String containing the error if unsuccessful
-       
-</ol>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#parse_message_header">
-               parse_message_header
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="parse_message_body"></a><strong>parse_message_body</strong>&nbsp;(src, msg, filecb)</dt>
-<dd>
-
-Try to extract and decode a http message body from the given ltn12 source. 
-This function will examine the Content-Type within the given message object 
-to select the appropriate content decoder. 
-Currently the application/x-www-urlencoded and application/form-data 
-mime types are supported. If the encountered content encoding can't be 
-handled then the whole message body will be stored unaltered as "content" 
-property within the given message object.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Ltn12 source function
-       </li>
-       
-       <li>
-         msg: HTTP message object
-       </li>
-       
-       <li>
-         filecb: File data callback (optional, see mimedecode_message_body())
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Value indicating successful operation (not nil means "ok")
-       
-       <li>String containing the error if unsuccessful
-       
-</ol>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#parse_message_header">
-               parse_message_header
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="parse_message_header"></a><strong>parse_message_header</strong>&nbsp;(src)</dt>
-<dd>
-
-Try to extract an http message header including information like protocol 
-version, message headers and resulting CGI environment variables from the 
-given ltn12 source.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Ltn12 source function
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-HTTP message object
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#parse_message_body">
-               parse_message_body
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urldecode"></a><strong>urldecode</strong>&nbsp;(str, no_plus)</dt>
-<dd>
-
-Decode an urlencoded string - optionally without decoding 
-the "+" sign to " " - and return the decoded string.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: Input string in x-www-urlencoded format
-       </li>
-       
-       <li>
-         no_plus: Don't decode "+" signs to spaces
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-The decoded string
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urlencode">
-               urlencode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urldecode_message_body"></a><strong>urldecode_message_body</strong>&nbsp;(src, msg)</dt>
-<dd>
-
-Decode an urlencoded http message body with application/x-www-urlencoded 
-Content-Type. Stores all extracted data associated with its parameter name 
-in the params table within the given message object. Multiple parameter 
-values are stored as tables, ordinary ones as strings.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Ltn12 source function
-       </li>
-       
-       <li>
-         msg: HTTP message object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Value indicating successful operation (not nil means "ok")
-       
-       <li>String containing the error if unsuccessful
-       
-</ol>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#parse_message_header">
-               parse_message_header
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urldecode_params"></a><strong>urldecode_params</strong>&nbsp;(url, tbl)</dt>
-<dd>
-
-Extract and split urlencoded data pairs, separated bei either "&" or ";" 
-from given url or string. Returns a table with urldecoded values. 
-Simple parameters are stored as string values associated with the parameter 
-name within the table. Parameters with multiple values are stored as array 
-containing the corresponding values.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         url: The url or string which contains x-www-urlencoded form data
-       </li>
-       
-       <li>
-         tbl: Use the given table for storing values (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing the urldecoded parameters
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urlencode_params">
-               urlencode_params
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urlencode"></a><strong>urlencode</strong>&nbsp;(str)</dt>
-<dd>
-
-Encode given string to x-www-urlencoded format. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: String to encode
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the encoded data
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urldecode">
-               urldecode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urlencode_params"></a><strong>urlencode_params</strong>&nbsp;(tbl)</dt>
-<dd>
-
-Encode each key-value-pair in given table to x-www-urlencoded format, 
-separated by "&". Tables are encoded as parameters with multiple values by 
-repeating the parameter name with each value.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         tbl: Table with the values
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing encoded values
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urldecode_params">
-               urldecode_params
-       </a>
-       
-</ul>
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.http.protocol.mime.html b/package/luci/documentation/api/modules/luci.http.protocol.mime.html
deleted file mode 100644 (file)
index 0b5ce0c..0000000
+++ /dev/null
@@ -1,326 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.protocol.date.html">luci.http.protocol.date</a>
-       </li>
-
-       <li><strong>luci.http.protocol.mime</strong></li>
-       
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.http.protocol.mime</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#to_ext">to_ext</a>&nbsp;(mimetype)</td>
-       <td class="summary">
-Return corresponding extension for a given mime type or nil if the 
-given mime-type is unknown.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#to_mime">to_mime</a>&nbsp;(filename)</td>
-       <td class="summary">
-Extract extension from a filename and return corresponding mime-type or 
-"application/octet-stream" if the extension is unknown.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="to_ext"></a><strong>to_ext</strong>&nbsp;(mimetype)</dt>
-<dd>
-
-Return corresponding extension for a given mime type or nil if the 
-given mime-type is unknown.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mimetype: The mimetype to retrieve the extension from
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String with the extension or nil for unknown type
-
-
-
-</dd>
-
-
-
-
-<dt><a name="to_mime"></a><strong>to_mime</strong>&nbsp;(filename)</dt>
-<dd>
-
-Extract extension from a filename and return corresponding mime-type or 
-"application/octet-stream" if the extension is unknown.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         filename: The filename for which the mime type is guessed
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containign the determined mime type
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.i18n.html b/package/luci/documentation/api/modules/luci.i18n.html
deleted file mode 100644 (file)
index 3f0738b..0000000
+++ /dev/null
@@ -1,560 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li><strong>luci.i18n</strong></li>
-       
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.i18n</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#clear">clear</a>&nbsp;()</td>
-       <td class="summary">
-Clear the translation table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#load">load</a>&nbsp;(file, lang, force)</td>
-       <td class="summary">
-Load a translation and copy its data into the translation table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#loadc">loadc</a>&nbsp;(file, force)</td>
-       <td class="summary">
-Load a translation file using the default translation language.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#setlanguage">setlanguage</a>&nbsp;(lang)</td>
-       <td class="summary">
-Set the context default translation language.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#string">string</a>&nbsp;(key)</td>
-       <td class="summary">
-Return the translated value for a specific translation key 
-and ensure that the returned value is a Lua string value.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#stringf">stringf</a>&nbsp;(key, ...)</td>
-       <td class="summary">
-Return the translated value for a specific translation key and use it as sprintf pattern.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#translate">translate</a>&nbsp;(key)</td>
-       <td class="summary">
-Return the translated value for a specific translation key.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#translatef">translatef</a>&nbsp;(key, ...)</td>
-       <td class="summary">
-Return the translated value for a specific translation key and use it as sprintf pattern.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="clear"></a><strong>clear</strong>&nbsp;()</dt>
-<dd>
-
-Clear the translation table. 
-
-
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="load"></a><strong>load</strong>&nbsp;(file, lang, force)</dt>
-<dd>
-
-Load a translation and copy its data into the translation table. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         file: Language file
-       </li>
-       
-       <li>
-         lang: Two-letter language code
-       </li>
-       
-       <li>
-         force: Force reload even if already loaded (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Success status
-
-
-
-</dd>
-
-
-
-
-<dt><a name="loadc"></a><strong>loadc</strong>&nbsp;(file, force)</dt>
-<dd>
-
-Load a translation file using the default translation language. 
-Alternatively load the translation of the fallback language.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         file: Language file
-       </li>
-       
-       <li>
-         force: Force reload even if already loaded (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="setlanguage"></a><strong>setlanguage</strong>&nbsp;(lang)</dt>
-<dd>
-
-Set the context default translation language. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         lang: Two-letter language code
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="string"></a><strong>string</strong>&nbsp;(key)</dt>
-<dd>
-
-Return the translated value for a specific translation key 
-and ensure that the returned value is a Lua string value. 
-This is the same as calling <code>tostring(translate(...))</code>
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         key: Default translation text
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Translated string
-
-
-
-</dd>
-
-
-
-
-<dt><a name="stringf"></a><strong>stringf</strong>&nbsp;(key, ...)</dt>
-<dd>
-
-Return the translated value for a specific translation key and use it as sprintf pattern. 
-Ensure that the returned value is a Lua string value. 
-This is the same as calling <code>tostring(translatef(...))</code>
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         key: Default translation text
-       </li>
-       
-       <li>
-         ...: Format parameters
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Translated and formatted string
-
-
-
-</dd>
-
-
-
-
-<dt><a name="translate"></a><strong>translate</strong>&nbsp;(key)</dt>
-<dd>
-
-Return the translated value for a specific translation key. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         key: Default translation text
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Translated string
-
-
-
-</dd>
-
-
-
-
-<dt><a name="translatef"></a><strong>translatef</strong>&nbsp;(key, ...)</dt>
-<dd>
-
-Return the translated value for a specific translation key and use it as sprintf pattern. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         key: Default translation text
-       </li>
-       
-       <li>
-         ...: Format parameters
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Translated and formatted string
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.ip.cidr.html b/package/luci/documentation/api/modules/luci.ip.cidr.html
deleted file mode 100644 (file)
index 50633a7..0000000
+++ /dev/null
@@ -1,1511 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li><strong>luci.ip.cidr</strong></li>
-       
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.ip.cidr</code></h1>
-
-<p>
- IP CIDR Object. 
- Represents an IPv4 or IPv6 address range.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.is4">cidr:is4</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is an IPv4 address range 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.is4rfc1918">cidr:is4rfc1918</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is within the private RFC1918 address space 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.is4linklocal">cidr:is4linklocal</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is an IPv4 link local (Zeroconf) address 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.is6">cidr:is6</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is an IPv6 address range 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.is6linklocal">cidr:is6linklocal</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is an IPv6 link local address 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.is6mapped4">cidr:is6mapped4</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is an IPv6 mapped IPv4 address 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.ismac">cidr:ismac</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is an ethernet MAC address range 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.ismaclocal">cidr:ismaclocal</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is a locally administered (LAA) MAC address 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.ismacmcast">cidr:ismacmcast</a>&nbsp;()</td>
-       <td class="summary">
-Checks whether the CIDR instance is a multicast MAC address 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.lower">cidr:lower</a>&nbsp;(addr)</td>
-       <td class="summary">
-Checks whether this CIDR instance is lower than the given argument.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.higher">cidr:higher</a>&nbsp;(addr)</td>
-       <td class="summary">
-Checks whether this CIDR instance is higher than the given argument.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.equal">cidr:equal</a>&nbsp;(addr)</td>
-       <td class="summary">
-Checks whether this CIDR instance is equal to the given argument.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.prefix">cidr:prefix</a>&nbsp;(mask)</td>
-       <td class="summary">
-Get or set prefix size of CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.network">cidr:network</a>&nbsp;(mask)</td>
-       <td class="summary">
-Derive network address of CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.host">cidr:host</a>&nbsp;()</td>
-       <td class="summary">
-Derive host address of CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.mask">cidr:mask</a>&nbsp;(mask)</td>
-       <td class="summary">
-Derive netmask of CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.broadcast">cidr:broadcast</a>&nbsp;(mask)</td>
-       <td class="summary">
-Derive broadcast address of CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.mapped4">cidr:mapped4</a>&nbsp;()</td>
-       <td class="summary">
-Derive mapped IPv4 address of CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.tomac">cidr:tomac</a>&nbsp;()</td>
-       <td class="summary">
-Derive MAC address of IPv6 link local CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.tolinklocal">cidr:tolinklocal</a>&nbsp;()</td>
-       <td class="summary">
-Derive IPv6 link local address from MAC address CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.contains">cidr:contains</a>&nbsp;(addr)</td>
-       <td class="summary">
-Test whether CIDR contains given range.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.add">cidr:add</a>&nbsp;(amount, inplace)</td>
-       <td class="summary">
-Add given amount to CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.sub">cidr:sub</a>&nbsp;(amount, inplace)</td>
-       <td class="summary">
-Subtract given amount from CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.minhost">cidr:minhost</a>&nbsp;()</td>
-       <td class="summary">
-Calculate the lowest possible host address within this CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.maxhost">cidr:maxhost</a>&nbsp;()</td>
-       <td class="summary">
-Calculate the highest possible host address within this CIDR instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cidr.string">cidr:string</a>&nbsp;()</td>
-       <td class="summary">
-Convert CIDR instance into string representation.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="cidr.is4"></a><strong>cidr:is4</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is an IPv4 address range 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the CIDR is an IPv4 range, else <code>false</code>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#cidr.is6">
-               cidr:is6
-       </a>
-       
-       <li><a href="#cidr.ismac">
-               cidr:ismac
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cidr.is4rfc1918"></a><strong>cidr:is4rfc1918</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is within the private RFC1918 address space 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.45.2/24") 
-if addr:is4rfc1918() then 
-       print("Is a private address") 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the entire range of this CIDR lies within one of 
-       the ranges <code>10.0.0.0-10.255.255.255</code>, 
-       <code>172.16.0.0-172.31.0.0</code> or 
-       <code>192.168.0.0-192.168.255.255</code>, else <code>false</code>.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.is4linklocal"></a><strong>cidr:is4linklocal</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is an IPv4 link local (Zeroconf) address 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("169.254.34.125") 
-if addr:is4linklocal() then 
-       print("Is a zeroconf address") 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the entire range of this CIDR lies within the range 
-       the range <code>169.254.0.0-169.254.255.255</code>, else <code>false</code>.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.is6"></a><strong>cidr:is6</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is an IPv6 address range 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the CIDR is an IPv6 range, else <code>false</code>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#cidr.is4">
-               cidr:is4
-       </a>
-       
-       <li><a href="#cidr.ismac">
-               cidr:ismac
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cidr.is6linklocal"></a><strong>cidr:is6linklocal</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is an IPv6 link local address 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("fe92:53a:3216:af01:221:63ff:fe75:aa17/64") 
-if addr:is6linklocal() then 
-       print("Is a linklocal address") 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the entire range of this CIDR lies within the range 
-       the <code>fe80::/10</code> range, else <code>false</code>.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.is6mapped4"></a><strong>cidr:is6mapped4</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is an IPv6 mapped IPv4 address 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("::ffff:192.168.1.1") 
-if addr:is6mapped4() then 
-       print("Is a mapped IPv4 address") 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the address is an IPv6 mapped IPv4 address in the 
-       form <code>::ffff:1.2.3.4</code>.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.ismac"></a><strong>cidr:ismac</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is an ethernet MAC address range 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the CIDR is a MAC address range, else <code>false</code>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#cidr.is4">
-               cidr:is4
-       </a>
-       
-       <li><a href="#cidr.is6">
-               cidr:is6
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cidr.ismaclocal"></a><strong>cidr:ismaclocal</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is a locally administered (LAA) MAC address 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local mac = luci.ip.new("02:C0:FF:EE:00:01") 
-if mac:ismaclocal() then 
-  print("Is an LAA MAC address") 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the MAC address sets the locally administered bit.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.ismacmcast"></a><strong>cidr:ismacmcast</strong>&nbsp;()</dt>
-<dd>
-
-Checks whether the CIDR instance is a multicast MAC address 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local mac = luci.ip.new("01:00:5E:7F:00:10") 
-if addr:ismacmcast() then 
-  print("Is a multicast MAC address") 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if the MAC address sets the multicast bit.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.lower"></a><strong>cidr:lower</strong>&nbsp;(addr)</dt>
-<dd>
-
-Checks whether this CIDR instance is lower than the given argument. 
-The comparisation follows these rules: 
-<ul><li>An IPv4 address is always lower than an IPv6 address and IPv6 addresses 
-are considered lower than MAC addresses</li> 
-<li>Prefix sizes are ignored</li></ul> 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         addr: A <code>luci.ip.cidr</code> instance or a string convertable by 
-       <code>luci.ip.new()</code> to compare against.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.1.1") 
-print(addr:lower(addr)) -- false 
-print(addr:lower("10.10.10.10/24")) -- false 
-print(addr:lower(luci.ip.new("::1"))) -- true 
-print(addr:lower(luci.ip.new("192.168.200.1"))) -- true 
-print(addr:lower(luci.ip.new("00:14:22:01:23:45"))) -- true</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if this CIDR is lower than the given address, 
-       else <code>false</code>.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#cidr.higher">
-               cidr:higher
-       </a>
-       
-       <li><a href="#cidr.equal">
-               cidr:equal
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cidr.higher"></a><strong>cidr:higher</strong>&nbsp;(addr)</dt>
-<dd>
-
-Checks whether this CIDR instance is higher than the given argument. 
-The comparisation follows these rules: 
-<ul><li>An IPv4 address is always lower than an IPv6 address and IPv6 addresses 
-are considered lower than MAC addresses</li> 
-<li>Prefix sizes are ignored</li></ul> 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         addr: A <code>luci.ip.cidr</code> instance or a string convertable by 
-       <code>luci.ip.new()</code> to compare against.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.1.1") 
-print(addr:higher(addr)) -- false 
-print(addr:higher("10.10.10.10/24")) -- true 
-print(addr:higher(luci.ip.new("::1"))) -- false 
-print(addr:higher(luci.ip.new("192.168.200.1"))) -- false 
-print(addr:higher(luci.ip.new("00:14:22:01:23:45"))) -- false</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if this CIDR is higher than the given address, 
-       else <code>false</code>.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#cidr.lower">
-               cidr:lower
-       </a>
-       
-       <li><a href="#cidr.equal">
-               cidr:equal
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cidr.equal"></a><strong>cidr:equal</strong>&nbsp;(addr)</dt>
-<dd>
-
-Checks whether this CIDR instance is equal to the given argument. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         addr: A <code>luci.ip.cidr</code> instance or a string convertable by 
-       <code>luci.ip.new()</code> to compare against.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.1.1") 
-print(addr:equal(addr)) -- true 
-print(addr:equal("192.168.1.1")) -- true 
-print(addr:equal(luci.ip.new("::1"))) -- false 
-local addr6 = luci.ip.new("::1") 
-print(addr6:equal("0:0:0:0:0:0:0:1/64")) -- true 
-print(addr6:equal(luci.ip.new("fe80::221:63ff:fe75:aa17"))) -- false 
-local mac = luci.ip.new("00:14:22:01:23:45") 
-print(mac:equal("0:14:22:1:23:45")) -- true 
-print(mac:equal(luci.ip.new("01:23:45:67:89:AB")) -- false</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if this CIDR is equal to the given address, 
-       else <code>false</code>.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#cidr.lower">
-               cidr:lower
-       </a>
-       
-       <li><a href="#cidr.higher">
-               cidr:higher
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cidr.prefix"></a><strong>cidr:prefix</strong>&nbsp;(mask)</dt>
-<dd>
-
-Get or set prefix size of CIDR instance. 
-If the optional mask parameter is given, the prefix size of this CIDR is altered 
-else the current prefix size is returned. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mask: Either a number containing the number of bits (<code>0..32</code> 
-       for IPv4, <code>0..128</code> for IPv6 or <code>0..48</code> for MAC addresses) or a string 
-  containing a valid netmask (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local range = luci.ip.new("192.168.1.1/255.255.255.0") 
-print(range:prefix()) -- 24 
-range:prefix(16) 
-print(range:prefix()) -- 16 
-range:prefix("255.255.255.255") 
-print(range:prefix()) -- 32</pre>
-
-
-
-<h3>Return value:</h3>
-Bit count of the current prefix size
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.network"></a><strong>cidr:network</strong>&nbsp;(mask)</dt>
-<dd>
-
-Derive network address of CIDR instance. 
-Returns a new CIDR instance representing the network address of this instance 
-with all host parts masked out. The used prefix size can be overridden by the 
-optional mask parameter. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mask: Either a number containing the number of bits (<code>0..32</code> 
-       for IPv4, <code>0..128</code> for IPv6 or <code>0..48</code> for MAC addresses) or a string 
-  containing a valid netmask (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local range = luci.ip.new("192.168.62.243/255.255.0.0") 
-print(range:network())                -- "192.168.0.0" 
-print(range:network(24))              -- "192.168.62.0" 
-print(range:network("255.255.255.0")) -- "192.168.62.0" 
-local range6 = luci.ip.new("fd9b:62b3:9cc5:0:221:63ff:fe75:aa17/64") 
-print(range6:network())               -- "fd9b:62b3:9cc5::"</pre>
-
-
-
-<h3>Return value:</h3>
-CIDR instance representing the network address
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.host"></a><strong>cidr:host</strong>&nbsp;()</dt>
-<dd>
-
-Derive host address of CIDR instance. 
-This function essentially constructs a copy of this CIDR with the prefix size 
-set to <code>32</code> for IPv4, <code>128</code> for IPv6 or <code>48</code> for MAC addresses. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local range = luci.ip.new("172.19.37.45/16") 
-print(range)        -- "172.19.37.45/16" 
-print(range:host()) -- "172.19.37.45"</pre>
-
-
-
-<h3>Return value:</h3>
-CIDR instance representing the host address
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.mask"></a><strong>cidr:mask</strong>&nbsp;(mask)</dt>
-<dd>
-
-Derive netmask of CIDR instance. 
-Constructs a CIDR instance representing the netmask of this instance. The used 
-prefix size can be overridden by the optional mask parameter. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mask: Either a number containing the number of bits (<code>0..32</code> 
-       for IPv4, <code>0..128</code> for IPv6 or <code>0..48</code> for MAC addresses) or a string 
-  containing a valid netmask (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local range = luci.ip.new("172.19.37.45/16") 
-print(range:mask())            -- "255.255.0.0" 
-print(range:mask(24))          -- "255.255.255.0" 
-print(range:mask("255.0.0.0")) -- "255.0.0.0"</pre>
-
-
-
-<h3>Return value:</h3>
-CIDR instance representing the netmask
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.broadcast"></a><strong>cidr:broadcast</strong>&nbsp;(mask)</dt>
-<dd>
-
-Derive broadcast address of CIDR instance. 
-Constructs a CIDR instance representing the broadcast address of this instance. 
-The used prefix size can be overridden by the optional mask parameter. 
-This function has no effect on IPv6 or MAC address instances, it will return 
-nothing in this case. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mask: Either a number containing the number of bits (<code>0..32</code> for IPv4) or 
-  a string containing a valid netmask (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local range = luci.ip.new("172.19.37.45/16") 
-print(range:broadcast())            -- "172.19.255.255" 
-print(range:broadcast(24))          -- "172.19.37.255" 
-print(range:broadcast("255.0.0.0")) -- "172.255.255.255"</pre>
-
-
-
-<h3>Return value:</h3>
-Return a new CIDR instance representing the broadcast address if this 
-       instance is an IPv4 range, else return nothing.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.mapped4"></a><strong>cidr:mapped4</strong>&nbsp;()</dt>
-<dd>
-
-Derive mapped IPv4 address of CIDR instance. 
-Constructs a CIDR instance representing the IPv4 address of the IPv6 mapped 
-IPv4 address in this instance. 
-This function has no effect on IPv4 instances, MAC address instances or IPv6 
-instances which are not a mapped address, it will return nothing in this case. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("::ffff:172.16.19.1") 
-print(addr:mapped4()) -- "172.16.19.1"</pre>
-
-
-
-<h3>Return value:</h3>
-Return a new CIDR instance representing the IPv4 address if this 
-       instance is an IPv6 mapped IPv4 address, else return nothing.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.tomac"></a><strong>cidr:tomac</strong>&nbsp;()</dt>
-<dd>
-
-Derive MAC address of IPv6 link local CIDR instance. 
-Constructs a CIDR instance representing the MAC address contained in the IPv6 
-link local address of this instance. 
-This function has no effect on IPv4 instances, MAC address instances or IPv6 
-instances which are not a link local address, it will return nothing in this 
-case. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("fe80::6666:b3ff:fe47:e1b9") 
-print(addr:tomac()) -- "64:66:B3:47:E1:B9"</pre>
-
-
-
-<h3>Return value:</h3>
-Return a new CIDR instance representing the MAC address if this 
-  instance is an IPv6 link local address, else return nothing.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.tolinklocal"></a><strong>cidr:tolinklocal</strong>&nbsp;()</dt>
-<dd>
-
-Derive IPv6 link local address from MAC address CIDR instance. 
-Constructs a CIDR instance representing the IPv6 link local address of the 
-MAC address represented by this instance. 
-This function has no effect on IPv4 instances or IPv6 instances, it will return 
-nothing in this case. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local mac = luci.ip.new("64:66:B3:47:E1:B9") 
-print(mac:tolinklocal()) -- "fe80::6666:b3ff:fe47:e1b9"</pre>
-
-
-
-<h3>Return value:</h3>
-Return a new CIDR instance representing the IPv6 link local address.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.contains"></a><strong>cidr:contains</strong>&nbsp;(addr)</dt>
-<dd>
-
-Test whether CIDR contains given range. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         addr: A <code>luci.ip.cidr</code> instance or a string convertable by 
-       <code>luci.ip.new()</code> to test.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local range = luci.ip.new("10.24.0.0/255.255.0.0") 
-print(range:contains("10.24.5.1"))  -- true 
-print(range:contains("::1"))        -- false 
-print(range:contains("10.0.0.0/8")) -- false 
-local range6 = luci.ip.new("fe80::/10") 
-print(range6:contains("fe80::221:63f:fe75:aa17/64"))         -- true 
-print(range6:contains("fd9b:6b3:c5:0:221:63f:fe75:aa17/64")) -- false 
-local intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/24") 
-print(intel_macs:contains("C0:B6:F9:A3:C:11"))  -- true 
-print(intel_macs:contains("64:66:B3:47:E1:B9")) -- false</pre>
-
-
-
-<h3>Return value:</h3>
-<code>true</code> if this instance fully contains the given address else 
-       <code>false</code>.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.add"></a><strong>cidr:add</strong>&nbsp;(amount, inplace)</dt>
-<dd>
-
-Add given amount to CIDR instance. If the result would overflow the maximum 
-address space, the result is set to the highest possible address. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         amount: A numeric value between 0 and 0xFFFFFFFF, a 
-       <code>luci.ip.cidr</code> instance or a string convertable by 
-       <code>luci.ip.new()</code>.
-       </li>
-       
-       <li>
-         inplace: If <code>true</code>, modify this instance instead of returning 
-       a new derived CIDR instance.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.1.1/24") 
-print(addr:add(250))           -- "192.168.1.251/24" 
-print(addr:add("0.0.99.0"))    -- "192.168.100.1/24" 
-addr:add(256, true)            -- true 
-print(addr)                    -- "192.168.2.1/24 
-addr:add("255.0.0.0", true)    -- false (overflow) 
-print(addr)                    -- "255.255.255.255/24 
-local addr6 = luci.ip.new("fe80::221:63f:fe75:aa17/64") 
-print(addr6:add(256))          -- "fe80::221:63f:fe75:ab17/64" 
-print(addr6:add("::ffff:0"))   -- "fe80::221:640:fe74:aa17/64" 
-addr6:add(256, true)           -- true 
-print(addr6)                   -- "fe80::221:63f:fe75:ab17/64 
-addr6:add("ffff::", true)      -- false (overflow) 
-print(addr6)                   -- "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/64" 
-local mac = luci.ip.new("00:14:22:01:23:45") 
-print(mac:add(256))            -- "00:14:22:01:24:45" 
-print(mac:add("0:0:0:0:FF:0")  -- "00:14:22:02:22:45" 
-mac:add(256, true)             -- true 
-print(mac)                     -- "00:14:22:01:24:45" 
-mac:add("FF:FF:0:0:0:0", true) -- false (overflow) 
-print(mac)                     -- "FF:FF:FF:FF:FF:FF"</pre>
-
-
-
-<h3>Return value:</h3>
-<ul> 
-       <li>When adding inplace: Return <code>true</code> if the addition succeded 
-           or <code>false</code> when the addition overflowed.</li> 
-       <li>When deriving new CIDR: Return new instance representing the value of 
-        this instance plus the added amount or the highest possible address if 
-           the addition overflowed the available address space.</li></ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.sub"></a><strong>cidr:sub</strong>&nbsp;(amount, inplace)</dt>
-<dd>
-
-Subtract given amount from CIDR instance. If the result would under, the lowest 
-possible address is returned. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         amount: A numeric value between 0 and 0xFFFFFFFF, a 
-       <code>luci.ip.cidr</code> instance or a string convertable by 
-       <code>luci.ip.new()</code>.
-       </li>
-       
-       <li>
-         inplace: If <code>true</code>, modify this instance instead of returning 
-       a new derived CIDR instance.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.1.1/24") 
-print(addr:sub(256))         -- "192.168.0.1/24" 
-print(addr:sub("0.168.0.0")) -- "192.0.1.1/24" 
-addr:sub(256, true)          -- true 
-print(addr)                  -- "192.168.0.1/24 
-addr:sub("255.0.0.0", true)  -- false (underflow) 
-print(addr)                  -- "0.0.0.0/24 
-local addr6 = luci.ip.new("fe80::221:63f:fe75:aa17/64") 
-print(addr6:sub(256))        -- "fe80::221:63f:fe75:a917/64" 
-print(addr6:sub("::ffff:0")) -- "fe80::221:63e:fe76:aa17/64" 
-addr:sub(256, true)          -- true 
-print(addr)                  -- "fe80::221:63f:fe75:a917/64" 
-addr:sub("ffff::", true)     -- false (underflow) 
-print(addr)                  -- "::/64" 
-local mac = luci.ip.new("00:14:22:01:23:45") 
-print(mac:sub(256))            -- "00:14:22:01:22:45" 
-print(mac:sub("0:0:0:0:FF:0")  -- "00:14:22:00:24:45" 
-mac:sub(256, true)             -- true 
-print(mac)                     -- "00:14:22:01:22:45" 
-mac:sub("FF:FF:0:0:0:0", true) -- false (overflow) 
-print(mac)                     -- "00:00:00:00:00:00"</pre>
-
-
-
-<h3>Return value:</h3>
-<ul> 
-       <li>When subtracting inplace: Return <code>true</code> if the subtraction 
-           succeeded or <code>false</code> when the subtraction underflowed.</li> 
-       <li>When deriving new CIDR: Return new instance representing the value of 
-        this instance minus the subtracted amount or the lowest address if 
-           the subtraction underflowed.</li></ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.minhost"></a><strong>cidr:minhost</strong>&nbsp;()</dt>
-<dd>
-
-Calculate the lowest possible host address within this CIDR instance. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.123.56/24") 
-print(addr:minhost())  -- "192.168.123.1" 
-local addr6 = luci.ip.new("fd9b:62b3:9cc5:0:221:63ff:fe75:aa17/64") 
-print(addr6:minhost()) -- "fd9b:62b3:9cc5::1" 
-local mac = luci.ip.new("00:14:22:01:22:45/32") 
-print(mac:minhost())   -- "00:14:22:01:00:01"</pre>
-
-
-
-<h3>Return value:</h3>
-Returns a new CIDR instance representing the lowest host address 
-       within this range.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.maxhost"></a><strong>cidr:maxhost</strong>&nbsp;()</dt>
-<dd>
-
-Calculate the highest possible host address within this CIDR instance. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>local addr = luci.ip.new("192.168.123.56/24") 
-print(addr:maxhost())  -- "192.168.123.254" (.255 is broadcast) 
-local addr6 = luci.ip.new("fd9b:62b3:9cc5:0:221:63ff:fe75:aa17/64") 
-print(addr6:maxhost()) -- "fd9b:62b3:9cc5:0:ffff:ffff:ffff:ffff" 
-local mac = luci.ip.new("00:14:22:01:22:45/32") 
-print(mac:maxhost())   -- "00:14:22:01:FF:FF"</pre>
-
-
-
-<h3>Return value:</h3>
-Returns a new CIDR instance representing the highest host address 
-       within this range.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cidr.string"></a><strong>cidr:string</strong>&nbsp;()</dt>
-<dd>
-
-Convert CIDR instance into string representation. 
-If the prefix size of instance is less than 32 for IPv4, 128 for IPv6 or 48 for 
-MACs, the address is returned in the form "address/prefix" otherwise just 
-"address". 
-It is usually not required to call this function directly as CIDR objects 
-define it as __tostring function in the associated metatable. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Returns a string representing the range or address of this CIDR instance
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.ip.html b/package/luci/documentation/api/modules/luci.ip.html
deleted file mode 100644 (file)
index fc13e31..0000000
+++ /dev/null
@@ -1,1212 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li><strong>luci.ip</strong></li>
-       
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.ip</code></h1>
-
-<p>
- LuCI IP calculation and netlink access library.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#new">new</a>&nbsp;(address, netmask)</td>
-       <td class="summary">
-Construct a new luci.ip.cidr instance and autodetect the address family.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IPv4">IPv4</a>&nbsp;(address, netmask)</td>
-       <td class="summary">
-Construct a new IPv4 luci.ip.cidr instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IPv6">IPv6</a>&nbsp;(address, netmask)</td>
-       <td class="summary">
-Construct a new IPv6 luci.ip.cidr instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#MAC">MAC</a>&nbsp;(address, netmask)</td>
-       <td class="summary">
-Construct a new MAC luci.ip.cidr instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#checkip4">checkip4</a>&nbsp;(address)</td>
-       <td class="summary">
-Verify an IPv4 address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#checkip6">checkip6</a>&nbsp;(address)</td>
-       <td class="summary">
-Verify an IPv6 address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#checkmac">checkmac</a>&nbsp;(address)</td>
-       <td class="summary">
-Verify an ethernet MAC address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#route">route</a>&nbsp;(address)</td>
-       <td class="summary">
-Determine the route leading to the given destination.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#routes">routes</a>&nbsp;(filter, callback)</td>
-       <td class="summary">
-Fetch all routes, optionally matching the given criteria.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#neighbors">neighbors</a>&nbsp;(filter, callback)</td>
-       <td class="summary">
-Fetches entries from the IPv4 ARP and IPv6 neighbour kernel table </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#link">link</a>&nbsp;(device)</td>
-       <td class="summary">
-Fetch basic device information </td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="new"></a><strong>new</strong>&nbsp;(address, netmask)</dt>
-<dd>
-
-Construct a new luci.ip.cidr instance and autodetect the address family. 
-Throws an error if the given strings do not represent a valid address or 
-if the given optional netmask is of a different family.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid IPv4 or IPv6 address, optionally 
-with prefix size (CIDR notation) or netmask separated by slash.
-       </li>
-       
-       <li>
-         netmask: String containing a valid IPv4 or IPv6 netmask or number 
-containing a prefix size in bits (<code>0..32</code> for IPv4, 
-<code>0..128</code> for IPv6). Overrides mask embedded in the first argument 
-if specified. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>addr = luci.ip.new("10.24.0.1/24") 
-addr = luci.ip.new("10.24.0.1/255.255.255.0") 
-addr = luci.ip.new("10.24.0.1", "255.255.255.0")        -- separate netmask 
-addr = luci.ip.new("10.24.0.1/24", 16)                  -- override netmask 
-addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17/64") 
-addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17/ffff:ffff:ffff:ffff::") 
-addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17", "ffff:ffff:ffff:ffff::") 
-addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17/64", 128) -- override netmask</pre>
-
-
-
-<h3>Return value:</h3>
-A <code>luci.ip.cidr</code> object representing the given 
-address/mask range.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#IPv4">
-               IPv4
-       </a>
-       
-       <li><a href="#IPv6">
-               IPv6
-       </a>
-       
-       <li><a href="#MAC">
-               MAC
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="IPv4"></a><strong>IPv4</strong>&nbsp;(address, netmask)</dt>
-<dd>
-
-Construct a new IPv4 luci.ip.cidr instance. 
-Throws an error if the given string does not represent a valid IPv4 address or 
-if the given optional netmask is of a different family.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid IPv4, optionally with prefix size 
-(CIDR notation) or netmask separated by slash.
-       </li>
-       
-       <li>
-         netmask: String containing a valid IPv4 netmask or number 
-containing a prefix size between <code>0</code> and <code>32</code> bit. 
-Overrides mask embedded in the first argument if specified. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>addr = luci.ip.IPv4("10.24.0.1/24") 
-addr = luci.ip.IPv4("10.24.0.1/255.255.255.0") 
-addr = luci.ip.IPv4("10.24.0.1", "255.255.255.0")        -- separate netmask 
-addr = luci.ip.IPv4("10.24.0.1/24", 16)                  -- override netmask</pre>
-
-
-
-<h3>Return value:</h3>
-A <code>luci.ip.cidr</code> object representing the given IPv4 range.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#IPv6">
-               IPv6
-       </a>
-       
-       <li><a href="#MAC">
-               MAC
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="IPv6"></a><strong>IPv6</strong>&nbsp;(address, netmask)</dt>
-<dd>
-
-Construct a new IPv6 luci.ip.cidr instance. 
-Throws an error if the given string does not represent a valid IPv6 address or 
-if the given optional netmask is of a different family.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid IPv6, optionally with prefix size 
-(CIDR notation) or netmask separated by slash.
-       </li>
-       
-       <li>
-         netmask: String containing a valid IPv4 netmask or number 
-containing a prefix size between <code>0</code> and <code>128</code> bit. 
-Overrides mask embedded in the first argument if specified. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17/64") 
-addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17/ffff:ffff:ffff:ffff::") 
-addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17", "ffff:ffff:ffff:ffff::") 
-addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17/64", 128) -- override netmask</pre>
-
-
-
-<h3>Return value:</h3>
-A <code>luci.ip.cidr</code> object representing the given IPv6 range.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#IPv4">
-               IPv4
-       </a>
-       
-       <li><a href="#MAC">
-               MAC
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="MAC"></a><strong>MAC</strong>&nbsp;(address, netmask)</dt>
-<dd>
-
-Construct a new MAC luci.ip.cidr instance. 
-Throws an error if the given string does not represent a valid ethernet MAC 
-address or if the given optional mask is of a different family.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid ethernet MAC address, optionally with 
-prefix size (CIDR notation) or mask separated by slash.
-       </li>
-       
-       <li>
-         netmask: String containing a valid MAC address mask or number 
-containing a prefix size between <code>0</code> and <code>48</code> bit. 
-Overrides mask embedded in the first argument if specified. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/24") 
-intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/FF:FF:FF:0:0:0") 
-intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00", "FF:FF:FF:0:0:0") 
-intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/24", 48) -- override mask</pre>
-
-
-
-<h3>Return value:</h3>
-A <code>luci.ip.cidr</code> object representing the given MAC address range.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#IPv4">
-               IPv4
-       </a>
-       
-       <li><a href="#IPv6">
-               IPv6
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="checkip4"></a><strong>checkip4</strong>&nbsp;(address)</dt>
-<dd>
-
-Verify an IPv4 address. 
-Checks whether given argument is a preexisting luci.ip.cidr IPv4 address 
-instance or a string literal convertible to an IPv4 address and returns a 
-plain Lua string containing the canonical representation of the address. 
-If the argument is not a valid address, returns nothing. This function is 
-intended to aid in safely verifying address literals without having to deal 
-with exceptions.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid IPv4 address or existing 
-luci.ip.cidr IPv4 instance.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>ipv4 = luci.ip.checkip4(luci.ip.new("127.0.0.1"))  -- "127.0.0.1" 
-ipv4 = luci.ip.checkip4("127.0.0.1")               -- "127.0.0.1" 
-ipv4 = luci.ip.checkip4("nonesense")               -- nothing 
-ipv4 = luci.ip.checkip4(123)                       -- nothing 
-ipv4 = luci.ip.checkip4(nil)                       -- nothing 
-ipv4 = luci.ip.checkip4()                          -- nothing</pre>
-
-
-
-<h3>Return value:</h3>
-A string representing the given IPv4 address.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#checkip6">
-               checkip6
-       </a>
-       
-       <li><a href="#checkmac">
-               checkmac
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="checkip6"></a><strong>checkip6</strong>&nbsp;(address)</dt>
-<dd>
-
-Verify an IPv6 address. 
-Checks whether given argument is a preexisting luci.ip.cidr IPv6 address 
-instance or a string literal convertible to an IPv6 address and returns a 
-plain Lua string containing the canonical representation of the address. 
-If the argument is not a valid address, returns nothing. This function is 
-intended to aid in safely verifying address literals without having to deal 
-with exceptions.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid IPv6 address or existing 
-luci.ip.cidr IPv6 instance.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>ipv6 = luci.ip.checkip6(luci.ip.new("0:0:0:0:0:0:0:1"))  -- "::1" 
-ipv6 = luci.ip.checkip6("0:0:0:0:0:0:0:1")               -- "::1" 
-ipv6 = luci.ip.checkip6("nonesense")                     -- nothing 
-ipv6 = luci.ip.checkip6(123)                             -- nothing 
-ipv6 = luci.ip.checkip6(nil)                             -- nothing 
-ipv6 = luci.ip.checkip6()                                -- nothing</pre>
-
-
-
-<h3>Return value:</h3>
-A string representing the given IPv6 address.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#checkip4">
-               checkip4
-       </a>
-       
-       <li><a href="#checkmac">
-               checkmac
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="checkmac"></a><strong>checkmac</strong>&nbsp;(address)</dt>
-<dd>
-
-Verify an ethernet MAC address. 
-Checks whether given argument is a preexisting luci.ip.cidr MAC address 
-instance or a string literal convertible to an ethernet MAC and returns a 
-plain Lua string containing the canonical representation of the address. 
-If the argument is not a valid address, returns nothing. This function is 
-intended to aid in safely verifying address literals without having to deal 
-with exceptions.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: String containing a valid MAC address or existing luci.ip.cidr 
-MAC address instance.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>mac = luci.ip.checkmac(luci.ip.new("00-11-22-cc-dd-ee"))  -- "00:11:22:CC:DD:EE" 
-mac = luci.ip.checkmac("00:11:22:cc:dd:ee")               -- "00:11:22:CC:DD:EE" 
-mac = luci.ip.checkmac("nonesense")                       -- nothing 
-mac = luci.ip.checkmac(123)                               -- nothing 
-mac = luci.ip.checkmac(nil)                               -- nothing 
-mac = luci.ip.checkmac()                                  -- nothing</pre>
-
-
-
-<h3>Return value:</h3>
-A string representing the given MAC address.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#checkip4">
-               checkip4
-       </a>
-       
-       <li><a href="#checkip6">
-               checkip6
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="route"></a><strong>route</strong>&nbsp;(address)</dt>
-<dd>
-
-Determine the route leading to the given destination.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         address: A <code>luci.ip.cidr</code> instance or a string containing 
-a valid IPv4 or IPv6 range as specified by <code>luci.ip.new()</code>.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<ul> 
-<li>Find default gateway by getting route to Google's public NS server 
-<pre>rt = luci.ip.route("8.8.8.8") 
-if rt ~= nil then 
-       print("gateway is", rt.gw) 
-end</pre></li> 
-<li>Determine IPv6 upstream interface <pre>rt = luci.ip.route("2001::/7") 
-if rt ~= nil then 
-       print("ipv6 upstream device is", rt.dev) 
-end</pre></li> 
-</ul>
-
-
-
-<h3>Return value:</h3>
-<p>Table containing the fields described below.</p> 
-<table id="routetable"> 
-<tr><th>Field</th><th>Description</th></tr> 
-<tr><td><code>type</code><td> 
-  <p>Route type with one of the following numeric values:</p> 
-  <table> 
-  <tr> 
-       <td><code>1</code></td> 
-       <td><code>RTN_UNICAST</code> - Gateway or direct route</td> 
-  </tr> 
-  <tr> 
-       <td><code>2</code></td> 
-       <td><code>RTN_LOCAL</code> - Accept locally</td> 
-  </tr> 
-  <tr> 
-       <td><code>3</code></td> 
-       <td><code>RTN_BROADCAST</code> - 
-           Accept locally as broadcast send as broadcast</td> 
-  </tr> 
-  <tr> 
-       <td><code>4</code></td> 
-       <td><code>RTN_ANYCAST</code> - 
-        Accept locally as broadcast but send as unicast</td> 
-  </tr> 
-  <tr> 
-       <td><code>5</code></td> 
-       <td><code>RTN_MULTICAST</code> - Multicast route</td> 
-  </tr> 
-  </table> 
-</td></tr> 
-<tr> 
-  <td><code>family</code></td> 
-  <td>Number containing the route family, <code>4</code> for IPv4 or 
-      <code>6</code> for IPv6</td> 
-</tr> 
-<tr> 
-  <td><code>dest</code></td> 
-  <td>Destination <code>luci.ip.cidr</code> instance</td> 
-</tr> 
-<tr> 
-  <td><code>gw</code></td> 
-  <td>Gateway <code>luci.ip.cidr</code> instance (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>from</code></td> 
-  <td>Source address <code>luci.ip.cidr</code> instance (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>src</code></td> 
-  <td>Preferred source <code>luci.ip.cidr</code> instance (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>dev</code></td> 
-  <td>String containing the name of the outgoing interface</td> 
-</tr> 
-<tr> 
-  <td><code>iif</code></td> 
-  <td>String containing the name of the incoming interface (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>table</code></td> 
-  <td>Number of the associated routing table (<code>0..65535</code>)</td> 
-</tr> 
-<tr> 
-  <td><code>proto</code></td> 
-  <td>Number of the associated routing protocol</td> 
-</tr> 
-<tr> 
-  <td><code>scope</code></td> 
-  <td>Number describing the scope of the route, most commonly 
-      <code>0</code> for global or <code>253</code> for on-link</td> 
-</tr> 
-<tr> 
-  <td><code>metric</code></td> 
-  <td>Number describing the route metric (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>expires</code></td> 
-  <td>Number of seconds the prefix is valid (IPv6 only, optional)</td> 
-</tr> 
-<tr> 
-  <td><code>error</code></td> 
-  <td>Route destination error code (optional)</td> 
-</tr> 
-</table>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#routes">
-               routes
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="routes"></a><strong>routes</strong>&nbsp;(filter, callback)</dt>
-<dd>
-
-Fetch all routes, optionally matching the given criteria.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         filter: <p>Table containing one or more of the possible filter 
-critera described below (optional)</p><table> 
-<tr><th>Field</th><th>Description</th></tr> 
-<tr><td><code>family</code></td><td> 
- Number describing the address family to return - <code>4</code> selects 
- IPv4 routes, <code>6</code> IPv6 ones. Any other value selects both. 
-</td></tr> 
-<tr><td><code>iif</code></td><td> 
- String containing the incoming route interface to match. 
-</td></tr> 
-<tr><td><code>oif</code></td><td> 
- String containing the outgoing route interface to match. 
-</td></tr> 
-<tr><td><code>type</code></td><td> 
- Numeric type to match, e.g. <code>1</code> for unicast. 
-</td></tr> 
-<tr><td><code>scope</code></td><td> 
- Numeric scope to match, e.g. <code>253</code> for onlink. 
-</td></tr> 
-<tr><td><code>proto</code></td><td> 
- Numeric protocol to match, e.g. <code>2</code> for boot. 
-</td></tr> 
-<tr><td><code>table</code></td><td> 
- Numeric routing table to match (<code>0..65535</code>). 
-</td></tr> 
-<tr><td><code>gw</code></td><td> 
- String containing the gateway address to match. Can be in any notation 
- specified by <code>luci.ip.new()</code>. Prefix matching is performed when 
- comparing the routes, e.g. "192.168.1.0/24" would select routes with gateway 
- addresses <code>192.168.1.1 .. 192.168.1.255</code>. 
-</td></tr> 
-<tr><td><code>dest</code></td><td> 
- String containing the destination to match. Prefix matching is performed. 
-</td></tr> 
-<tr><td><code>from</code></td><td> 
- String containing the source address to match. Prefix matching is performed. 
-</td></tr> 
-<tr><td><code>src</code></td><td> 
- String containing the preferred source address to match. 
- Prefix matching is performed. 
-</td></tr> 
-<tr><td><code>dest_exact</code></td><td> 
- String containing the destination to match. Exact matching is performed, 
- e.g. <code>dest = "0.0.0.0/0"</code> would match <em>any</em> IPv4 route 
- while <code>dest_exact = "0.0.0.0/0"</code> will <em>only</em> match the 
- default route. 
-</td></tr> 
-<tr><td><code>from_exact</code></td><td> 
- String containing the source address to match. Exact matching is performed. 
-</td></tr> 
-</table>
-       </li>
-       
-       <li>
-         callback: <p>Callback function to invoke for each found route 
-instead of returning one table of route objects (optional)</p>
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<ul> 
-<li>Find all IPv4 default routes: 
-<pre>luci.ip.routes({ dest_exact = "0.0.0.0/0" }, function(rt) 
-       print(rt.type, rt.gw, rt.dev) 
-end)</pre></li> 
-<li>Find all global IPv6 prefixes on the current system: 
-<pre>luci.ip.routes({ from = "2001::/7" }, function(rt) 
-       print(rt.from) 
-end)</pre></li> 
-<li>Fetch all IPv4 routes: 
-<pre>routes = luci.ip.routes({ family = 4 }) 
-for _, rt in ipairs(routes) do 
-       print(rt.dest, rt.gw, rt.dev) 
-end</pre></li> 
-</ul>
-
-
-
-<h3>Return value:</h3>
-If no callback function is provided, a table of routes 
-<a href="#routetable">as specified by <code>luci.ip.route()</code></a> 
-is returned. If a callback function is given, it is invoked for each route 
-and nothing is returned.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#route">
-               route
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="neighbors"></a><strong>neighbors</strong>&nbsp;(filter, callback)</dt>
-<dd>
-
-Fetches entries from the IPv4 ARP and IPv6 neighbour kernel table
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         filter: <p>Table containing one or more of the possible filter 
-critera described below (optional)</p><table> 
-<tr><th>Field</th><th>Description</th></tr> 
-<tr><td><code>family</code></td><td> 
- Number describing the address family to return - <code>4</code> selects 
- IPv4 ARP, <code>6</code> select IPv6 neighbour entries. Any other value 
- selects both. 
-</td></tr> 
-<tr><td><code>dev</code></td><td> 
- String containing the associated interface to match. 
-</td></tr> 
-<tr><td><code>dest</code></td><td> 
- String containing the associated address to match. Can be in any notation 
- specified by <code>luci.ip.new()</code>. Prefix matching is performed when 
- comparing the addresses, e.g. "192.168.1.0/24" would select ARP entries 
- for <code>192.168.1.1 .. 192.168.1.255</code>. 
-</td></tr> 
-<tr><td><code>mac</code></td><td> 
- String containing MAC address to match. 
-</td></tr> 
-</table>
-       </li>
-       
-       <li>
-         callback: <p>Callback function to invoke for each found neighbour 
-entry instead of returning one table of neighbour entries (optional)</p>
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<ul> 
-<li>Find all ARP neighbours in the LAN: 
-<pre>luci.ip.neighbors({ dest = "192.168.0.0/16" }, function(n) 
-       print(n.dest, n.mac) 
-end)</pre></li> 
-<li>Find all active IPv6 addresses of host with given MAC: 
-<pre>luci.ip.neighbors({ family = 6, mac = "00:21:63:75:aa:17" }, 
-       function(n) 
-               print(n.dest) 
-       end)</pre></li> 
-</ul>
-
-
-
-<h3>Return value:</h3>
-If no callback function is provided, a table of neighbour entries 
-is returned. If a callback function is given, it is invoked for each entry 
-and nothing is returned. 
-A neighbour entry is a table containing the following fields: 
-<table> 
-<tr><th>Field</th><th>Description</th></tr> 
-<tr> 
-  <td><code>family</code></td> 
-  <td>Number containing the neighbour entry family, <code>4</code> for IPv4 
-      ARP or <code>6</code> for IPv6 NDP</td> 
-</tr> 
-<tr> 
-  <td><code>dev</code></td> 
-  <td>String containing the associated device of the neighbour entry</td> 
-</tr> 
-<tr> 
-  <td><code>dest</code></td> 
-  <td>IP address <code>luci.ip.cidr</code> instance</td> 
-</tr> 
-<tr> 
-  <td><code>mac</code></td> 
-  <td>MAC address <code>luci.ip.cidr</code> instance</td> 
-</tr> 
-<tr> 
-  <td><code>router</code></td> 
-  <td>Boolean "true" if the neighbour entry is a router (IPv6, optional)</td> 
-</tr> 
-<tr> 
-  <td><code>proxy</code></td> 
-  <td>Boolean "true" if this is a proxy entry (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>incomplete</code></td> 
-  <td>Boolean "true" if the entry is in incomplete state (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>reachable</code></td> 
-  <td>Boolean "true" if the entry is in reachable state (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>stale</code></td> 
-  <td>Boolean "true" if the entry is stale (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>delay</code></td> 
-  <td>Boolean "true" if the entry is delayed (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>probe</code></td> 
-  <td>Boolean "true" if the entry is in probe state (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>failed</code></td> 
-  <td>Boolean "true" if the entry is in failed state (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>noarp</code></td> 
-  <td>Boolean "true" if the entry is not caused by NDP or 
-      ARP (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>permanent</code></td> 
-  <td>Boolean "true" if the entry was statically configured from 
-      userspace (optional)</td> 
-</tr> 
-</table>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="link"></a><strong>link</strong>&nbsp;(device)</dt>
-<dd>
-
-Fetch basic device information
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         device: String containing the network device to query
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<ul> 
-<li>Test whether device br-lan exists: 
-<pre>print(luci.ip.link("br-lan").name ~= nil) 
-</pre></li> 
-<li>Query MAC address of eth0: 
-<pre>print(luci.ip.link("eth0").mac) 
-</pre></li> 
-</ul>
-
-
-
-<h3>Return value:</h3>
-If the given interface is found, a table containing the fields 
-described below is returned, else an empty table. 
-<table> 
-<tr><th>Field</th><th>Description</th></tr> 
-<tr> 
-  <td><code>up</code></td> 
-  <td>Boolean indicating whether the device is in IFF_RUNNING state</td> 
-</tr> 
-<tr> 
-  <td><code>type</code></td> 
-  <td>Numeric value indicating the type of the device, e.g. <code>1</code> 
-      for ethernet.</td> 
-</tr> 
-<tr> 
-  <td><code>name</code></td> 
-  <td>String containing the name of the device</td> 
-</tr> 
-<tr> 
-  <td><code>master</code></td> 
-  <td>If queried device is a bridge port, string containing the name of 
-      parent bridge device (optional)</td> 
-</tr> 
-<tr> 
-  <td><code>mtu</code></td> 
-  <td>Number containing the current MTU of the device</td> 
-</tr> 
-<tr> 
-  <td><code>qlen</code></td> 
-  <td>Number containing the TX queue length of the device</td> 
-</tr> 
-<tr> 
-  <td><code>mac</code></td> 
-  <td>MAC address <code>luci.ip.cidr</code> instance representing the device ethernet 
-      address</td> 
-</tr> 
-</table>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.json.html b/package/luci/documentation/api/modules/luci.json.html
deleted file mode 100644 (file)
index db2d1da..0000000
+++ /dev/null
@@ -1,594 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li><strong>luci.json</strong></li>
-       
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.json</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#ActiveDecoder">ActiveDecoder</a>&nbsp;(customnull)</td>
-       <td class="summary">
-Create a new Active JSON-Decoder.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#ActiveDecoder.get">ActiveDecoder:get</a>&nbsp;()</td>
-       <td class="summary">
-Fetches one JSON-object from given source 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Decoder">Decoder</a>&nbsp;(customnull)</td>
-       <td class="summary">
-Create a new JSON-Decoder.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Decoder.get">Decoder:get</a>&nbsp;()</td>
-       <td class="summary">
-Get the decoded data packets after the rawdata has been sent to the sink.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Decoder.sink">Decoder:sink</a>&nbsp;()</td>
-       <td class="summary">
-Create an LTN12 sink from the decoder object which accepts the JSON-Data.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Encoder">Encoder</a>&nbsp;(data, buffersize, fastescape)</td>
-       <td class="summary">
-Create a new JSON-Encoder.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Encoder.source">Encoder:source</a>&nbsp;()</td>
-       <td class="summary">
-Create an LTN12 source providing the encoded JSON-Data.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#decode">decode</a>&nbsp;(json)</td>
-       <td class="summary">
-Directly decode a JSON string 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#encode">encode</a>&nbsp;(obj)</td>
-       <td class="summary">
-Direcly encode a Lua object into a JSON string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#null">null</a>&nbsp;()</td>
-       <td class="summary">
-Null replacement function 
- </td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="ActiveDecoder"></a><strong>ActiveDecoder</strong>&nbsp;(customnull)</dt>
-<dd>
-
-Create a new Active JSON-Decoder. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         customnull: Use luci.json.null instead of nil for decoding null
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Active JSON-Decoder
-
-
-
-</dd>
-
-
-
-
-<dt><a name="ActiveDecoder.get"></a><strong>ActiveDecoder:get</strong>&nbsp;()</dt>
-<dd>
-
-Fetches one JSON-object from given source 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Decoded object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Decoder"></a><strong>Decoder</strong>&nbsp;(customnull)</dt>
-<dd>
-
-Create a new JSON-Decoder. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         customnull: Use luci.json.null instead of nil for decoding null
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-JSON-Decoder
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Decoder.get"></a><strong>Decoder:get</strong>&nbsp;()</dt>
-<dd>
-
-Get the decoded data packets after the rawdata has been sent to the sink. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Decoded data
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Decoder.sink"></a><strong>Decoder:sink</strong>&nbsp;()</dt>
-<dd>
-
-Create an LTN12 sink from the decoder object which accepts the JSON-Data. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-LTN12 sink
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Encoder"></a><strong>Encoder</strong>&nbsp;(data, buffersize, fastescape)</dt>
-<dd>
-
-Create a new JSON-Encoder. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data: Lua-Object to be encoded.
-       </li>
-       
-       <li>
-         buffersize: Blocksize of returned data source.
-       </li>
-       
-       <li>
-         fastescape: Use non-standard escaping (don't escape control chars)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-JSON-Encoder
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Encoder.source"></a><strong>Encoder:source</strong>&nbsp;()</dt>
-<dd>
-
-Create an LTN12 source providing the encoded JSON-Data. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-LTN12 source
-
-
-
-</dd>
-
-
-
-
-<dt><a name="decode"></a><strong>decode</strong>&nbsp;(json)</dt>
-<dd>
-
-Directly decode a JSON string 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         json: JSON-String
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Lua object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="encode"></a><strong>encode</strong>&nbsp;(obj)</dt>
-<dd>
-
-Direcly encode a Lua object into a JSON string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         obj: Lua Object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-JSON string
-
-
-
-</dd>
-
-
-
-
-<dt><a name="null"></a><strong>null</strong>&nbsp;()</dt>
-<dd>
-
-Null replacement function 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-null
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.jsonc.html b/package/luci/documentation/api/modules/luci.jsonc.html
deleted file mode 100644 (file)
index 79deb93..0000000
+++ /dev/null
@@ -1,393 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li><strong>luci.jsonc</strong></li>
-       
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.jsonc</code></h1>
-
-<p>
- LuCI JSON parsing and serialization library. 
- The luci.jsonc class is a high level Lua binding to the JSON-C library to 
- allow reading and writing JSON data with minimal overhead.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#new">new</a>&nbsp;()</td>
-       <td class="summary">
-Construct a new luci.jsonc.parser instance.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parse">parse</a>&nbsp;(json)</td>
-       <td class="summary">
-Parse a complete JSON string and convert it into a Lua data structure.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#stringify">stringify</a>&nbsp;(data, pretty)</td>
-       <td class="summary">
-Convert given Lua data into a JSON string.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="new"></a><strong>new</strong>&nbsp;()</dt>
-<dd>
-
-Construct a new luci.jsonc.parser instance.
-
-
-
-
-
-<h3>Usage:</h3>
-<code>parser = luci.jsonc.new()</code>
-
-
-
-<h3>Return value:</h3>
-A <code>luci.jsonc.parser</code> object representing a JSON-C tokener.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="parse"></a><strong>parse</strong>&nbsp;(json)</dt>
-<dd>
-
-Parse a complete JSON string and convert it into a Lua data structure.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         json: A string containing the JSON data to parse, must be either a 
-       JSON array or a JSON object.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>data = luci.jsonc.parse('{ "name": "John", "age": 34 }') 
-print(data.name)  -- "John"</pre>
-
-
-
-<h3>Return value:</h3>
-On success, a table containing the parsed JSON data is returned, on 
-       failure the function returns <code>nil</code> and a string containing the reason of 
-       the parse error.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#stringify">
-               stringify
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="stringify"></a><strong>stringify</strong>&nbsp;(data, pretty)</dt>
-<dd>
-
-Convert given Lua data into a JSON string. 
-This function recursively converts the given Lua data into a JSON string, 
-ignoring any unsupported data. Lua tables are converted into JSON arrays if they 
-only contain integer keys, mixed tables are turned into JSON objects with any 
-existing numeric keys converted into strings. 
-Lua functions, coroutines and userdata objects are ignored and Lua numbers are 
-converted to integers if they do not contain fractional values. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data: The Lua data to convert, can be a table, string, boolean or number.
-       </li>
-       
-       <li>
-         pretty: A boolean value indicating whether the resulting JSON should be 
-       pretty printed.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>json = luci.jsonc.stringify({ item = true, values = { 1, 2, 3 } }) 
-print(json)  -- '{"item":true,"values":[1,2,3]}'</pre>
-
-
-
-<h3>Return value:</h3>
-Returns a string containing the JSON representation of the given Lua 
-       data.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#parse">
-               parse
-       </a>
-       
-</ul>
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.jsonc.parser.html b/package/luci/documentation/api/modules/luci.jsonc.parser.html
deleted file mode 100644 (file)
index 709cb9a..0000000
+++ /dev/null
@@ -1,491 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li><strong>luci.jsonc.parser</strong></li>
-       
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.jsonc.parser</code></h1>
-
-<p>
- LuCI JSON parser instance. 
- A JSON parser instance is useful to parse JSON data chunk by chunk, without 
- the need to assemble all data in advance.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#parser.parse">parser:parse</a>&nbsp;(json)</td>
-       <td class="summary">
-Parses one chunk of JSON data.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parser.get">parser:get</a>&nbsp;()</td>
-       <td class="summary">
-Convert parsed JSON data into Lua table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parser.set">parser:set</a>&nbsp;(data)</td>
-       <td class="summary">
-Put Lua data into the parser.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parser.sink">parser:sink</a>&nbsp;()</td>
-       <td class="summary">
-Generate an ltn12-compatible sink.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parser.stringify">parser:stringify</a>&nbsp;(pretty)</td>
-       <td class="summary">
-Serialize current parser state as JSON.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="parser.parse"></a><strong>parser:parse</strong>&nbsp;(json)</dt>
-<dd>
-
-Parses one chunk of JSON data. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         json: String containing the JSON fragment to parse
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>parser = luci.jsonc.new() 
-while true do 
-       chunk = ...  -- fetch a cunk of data, e.g. from a socket 
-       finish, errmsg = <b>parser.parse(chunk)</b> 
-       if finish == nil then 
-               error("Cannot parse JSON: " .. errmsg) 
-       end 
-       if finish == true then 
-               break 
-       end 
-end</pre>
-
-
-
-<h3>Return value:</h3>
-<ul> 
-       <li><code>true</code> if a complete JSON object has been parsed and no further input is 
-           expected.</li> 
-       <li><code>false</code> if further input is required</li> 
-       <li><code>nil</code> if an error was encountered while parsing the current chunk. 
-           In this case a string describing the parse error is returned as second 
-           value.</li></ul>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#parser.get">
-               parser:get
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="parser.get"></a><strong>parser:get</strong>&nbsp;()</dt>
-<dd>
-
-Convert parsed JSON data into Lua table. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>parser = luci.jsonc.new() 
-parser:parse('{ "example": "test" }') 
-data = parser:get() 
-print(data.example)  -- "test"</pre>
-
-
-
-<h3>Return value:</h3>
-Parsed JSON object converted into a Lua table or <code>nil</code> if the parser 
-       didn't finish or encountered an error.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#parser.parse">
-               parser:parse
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="parser.set"></a><strong>parser:set</strong>&nbsp;(data)</dt>
-<dd>
-
-Put Lua data into the parser. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data: Lua data to put into the parser object. The data is converted to an 
-       internal JSON representation that can be dumped with <code>stringify()</code>. 
-       The conversion follows the rules described in <code>luci.jsonc.stringify</code>.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>parser = luci.jsonc.new() 
-parser:set({ "some", "data" })</pre>
-
-
-
-<h3>Return value:</h3>
-Nothing is returned.
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#parser.stringify">
-               parser:stringify
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="parser.sink"></a><strong>parser:sink</strong>&nbsp;()</dt>
-<dd>
-
-Generate an ltn12-compatible sink. 
-
-
-
-
-
-
-<h3>Usage:</h3>
-<pre>parser = luci.jsonc.new() 
-ltn12.pump.all(ltn12.source.file(io.input()), parser:sink()) 
-print(parser:get())</pre>
-
-
-
-<h3>Return value:</h3>
-Returns a function that can be used as an ltn12 sink.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="parser.stringify"></a><strong>parser:stringify</strong>&nbsp;(pretty)</dt>
-<dd>
-
-Serialize current parser state as JSON. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pretty: A boolean value indicating whether the resulting JSON should be pretty printed.
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-<pre>parser = luci.jsonc.new() 
-parser:parse('{ "example": "test" }') 
-print(parser:serialize())  -- '{"example":"test"}'</pre>
-
-
-
-<h3>Return value:</h3>
-Returns the serialized JSON data of this parser instance.
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.model.ipkg.html b/package/luci/documentation/api/modules/luci.model.ipkg.html
deleted file mode 100644 (file)
index a0af318..0000000
+++ /dev/null
@@ -1,730 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li><strong>luci.model.ipkg</strong></li>
-       
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.model.ipkg</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#compare_versions">compare_versions</a>&nbsp;(ver1, ver2, comp)</td>
-       <td class="summary">
-lua version of opkg compare-versions 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#find">find</a>&nbsp;(pat, cb)</td>
-       <td class="summary">
-Find packages that match the given pattern.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#info">info</a>&nbsp;(pkg)</td>
-       <td class="summary">
-Return information about installed and available packages.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#install">install</a>&nbsp;(...)</td>
-       <td class="summary">
-Install one or more packages.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#installed">installed</a>&nbsp;(pkg)</td>
-       <td class="summary">
-Determine whether a given package is installed.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#list_all">list_all</a>&nbsp;(pat, cb)</td>
-       <td class="summary">
-List all packages known to opkg.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#list_installed">list_installed</a>&nbsp;(pat, cb)</td>
-       <td class="summary">
-List installed packages.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#overlay_root">overlay_root</a>&nbsp;()</td>
-       <td class="summary">
-Determines the overlay root used by opkg.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#remove">remove</a>&nbsp;(...)</td>
-       <td class="summary">
-Remove one or more packages.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#status">status</a>&nbsp;(pkg)</td>
-       <td class="summary">
-Return the package status of one or more packages.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#update">update</a>&nbsp;()</td>
-       <td class="summary">
-Update package lists.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#upgrade">upgrade</a>&nbsp;()</td>
-       <td class="summary">
-Upgrades all installed packages.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="compare_versions"></a><strong>compare_versions</strong>&nbsp;(ver1, ver2, comp)</dt>
-<dd>
-
-lua version of opkg compare-versions 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ver1: string version 1
-       </li>
-       
-       <li>
-         ver2: string version 2
-       </li>
-       
-       <li>
-         comp: string compare versions using 
-               "<=" or "<" lower-equal 
-               ">" or ">=" greater-equal 
-               "=" equal 
-               "<<" lower 
-               ">>" greater 
-               "~=" not equal
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating the status of the compare
-
-
-
-</dd>
-
-
-
-
-<dt><a name="find"></a><strong>find</strong>&nbsp;(pat, cb)</dt>
-<dd>
-
-Find packages that match the given pattern. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pat: Find packages whose names or descriptions match this pattern, nil results in zero results
-       </li>
-       
-       <li>
-         cb: Callback function invoked for each patckage, receives name, version and description as arguments
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-nothing
-
-
-
-</dd>
-
-
-
-
-<dt><a name="info"></a><strong>info</strong>&nbsp;(pkg)</dt>
-<dd>
-
-Return information about installed and available packages. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pkg: Limit output to a (set of) packages
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing package information
-
-
-
-</dd>
-
-
-
-
-<dt><a name="install"></a><strong>install</strong>&nbsp;(...)</dt>
-<dd>
-
-Install one or more packages. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: List of packages to install
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating the status of the action
-       
-       <li>OPKG return code, STDOUT and STDERR
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="installed"></a><strong>installed</strong>&nbsp;(pkg)</dt>
-<dd>
-
-Determine whether a given package is installed. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pkg: Package
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean
-
-
-
-</dd>
-
-
-
-
-<dt><a name="list_all"></a><strong>list_all</strong>&nbsp;(pat, cb)</dt>
-<dd>
-
-List all packages known to opkg. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pat: Only find packages matching this pattern, nil lists all packages
-       </li>
-       
-       <li>
-         cb: Callback function invoked for each package, receives name, version and description as arguments
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-nothing
-
-
-
-</dd>
-
-
-
-
-<dt><a name="list_installed"></a><strong>list_installed</strong>&nbsp;(pat, cb)</dt>
-<dd>
-
-List installed packages. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pat: Only find packages matching this pattern, nil lists all packages
-       </li>
-       
-       <li>
-         cb: Callback function invoked for each package, receives name, version and description as arguments
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-nothing
-
-
-
-</dd>
-
-
-
-
-<dt><a name="overlay_root"></a><strong>overlay_root</strong>&nbsp;()</dt>
-<dd>
-
-Determines the overlay root used by opkg. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the directory path of the overlay root.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="remove"></a><strong>remove</strong>&nbsp;(...)</dt>
-<dd>
-
-Remove one or more packages. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: List of packages to install
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating the status of the action
-       
-       <li>OPKG return code, STDOUT and STDERR
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="status"></a><strong>status</strong>&nbsp;(pkg)</dt>
-<dd>
-
-Return the package status of one or more packages. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pkg: Limit output to a (set of) packages
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing package status information
-
-
-
-</dd>
-
-
-
-
-<dt><a name="update"></a><strong>update</strong>&nbsp;()</dt>
-<dd>
-
-Update package lists. 
-
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating the status of the action
-       
-       <li>OPKG return code, STDOUT and STDERR
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="upgrade"></a><strong>upgrade</strong>&nbsp;()</dt>
-<dd>
-
-Upgrades all installed packages. 
-
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating the status of the action
-       
-       <li>OPKG return code, STDOUT and STDERR
-       
-</ol>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.model.uci.html b/package/luci/documentation/api/modules/luci.model.uci.html
deleted file mode 100644 (file)
index 77a81fd..0000000
+++ /dev/null
@@ -1,1511 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li><strong>luci.model.uci</strong></li>
-       
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.model.uci</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.add">Cursor:add</a>&nbsp;(config, type)</td>
-       <td class="summary">
-Add an anonymous section.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.apply">Cursor:apply</a>&nbsp;(configlist, command)</td>
-       <td class="summary">
-Applies UCI configuration changes 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.changes">Cursor:changes</a>&nbsp;(config)</td>
-       <td class="summary">
-Get a table of saved but uncommitted changes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.commit">Cursor:commit</a>&nbsp;(config)</td>
-       <td class="summary">
-Commit saved changes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.delete">Cursor:delete</a>&nbsp;(config, section, option)</td>
-       <td class="summary">
-Deletes a section or an option.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.delete_all">Cursor:delete_all</a>&nbsp;(config, type, comparator)</td>
-       <td class="summary">
-Delete all sections of a given type that match certain criteria.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.foreach">Cursor:foreach</a>&nbsp;(config, type, callback)</td>
-       <td class="summary">
-Call a function for every section of a certain type.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get">Cursor:get</a>&nbsp;(config, section, option)</td>
-       <td class="summary">
-Get a section type or an option 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_all">Cursor:get_all</a>&nbsp;(config, section)</td>
-       <td class="summary">
-Get all sections of a config or all values of a section.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_bool">Cursor:get_bool</a>&nbsp;(config, section, option)</td>
-       <td class="summary">
-Get a boolean option and return it's value as true or false.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_confdir">Cursor:get_confdir</a>&nbsp;()</td>
-       <td class="summary">
-Get the configuration directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_first">Cursor:get_first</a>&nbsp;(config, type, option, default)</td>
-       <td class="summary">
-Get the given option from the first section with the given type.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_list">Cursor:get_list</a>&nbsp;(config, section, option)</td>
-       <td class="summary">
-Get an option or list and return values as table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_savedir">Cursor:get_savedir</a>&nbsp;()</td>
-       <td class="summary">
-Get the directory for uncomitted changes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.get_session_id">Cursor:get_session_id</a>&nbsp;()</td>
-       <td class="summary">
-Get the effective session ID.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.load">Cursor:load</a>&nbsp;(config)</td>
-       <td class="summary">
-Manually load a config.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.revert">Cursor:revert</a>&nbsp;(config)</td>
-       <td class="summary">
-Revert saved but uncommitted changes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.save">Cursor:save</a>&nbsp;(config)</td>
-       <td class="summary">
-Saves changes made to a config to make them committable.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.section">Cursor:section</a>&nbsp;(config, type, name, values)</td>
-       <td class="summary">
-Create a new section and initialize it with data.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.set">Cursor:set</a>&nbsp;(config, section, option, value)</td>
-       <td class="summary">
-Set a value or create a named section.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.set_confdir">Cursor:set_confdir</a>&nbsp;(directory)</td>
-       <td class="summary">
-Set the configuration directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.set_list">Cursor:set_list</a>&nbsp;(config, section, option, value)</td>
-       <td class="summary">
-Set given values as list.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.set_savedir">Cursor:set_savedir</a>&nbsp;(directory)</td>
-       <td class="summary">
-Set the directory for uncommited changes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.set_session_id">Cursor:set_session_id</a>&nbsp;(id)</td>
-       <td class="summary">
-Set the effective session ID.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.substate">Cursor:substate</a>&nbsp;()</td>
-       <td class="summary">
-Create a sub-state of this cursor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.tset">Cursor:tset</a>&nbsp;(config, section, values)</td>
-       <td class="summary">
-Updated the data of a section using data from a table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Cursor.unload">Cursor:unload</a>&nbsp;(config)</td>
-       <td class="summary">
-Discard changes made to a config.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cursor">cursor</a>&nbsp;()</td>
-       <td class="summary">
-Create a new UCI-Cursor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cursor_state">cursor_state</a>&nbsp;()</td>
-       <td class="summary">
-Create a new Cursor initialized to the state directory.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="Cursor.add"></a><strong>Cursor:add</strong>&nbsp;(config, type)</dt>
-<dd>
-
-Add an anonymous section. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         type: UCI section type
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Name of created section
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.apply"></a><strong>Cursor:apply</strong>&nbsp;(configlist, command)</dt>
-<dd>
-
-Applies UCI configuration changes 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         configlist: List of UCI configurations
-       </li>
-       
-       <li>
-         command: Don't apply only return the command
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.changes"></a><strong>Cursor:changes</strong>&nbsp;(config)</dt>
-<dd>
-
-Get a table of saved but uncommitted changes. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of changes
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Cursor.save">
-               Cursor:save
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.commit"></a><strong>Cursor:commit</strong>&nbsp;(config)</dt>
-<dd>
-
-Commit saved changes. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Cursor.revert">
-               Cursor:revert
-       </a>
-       
-       <li><a href="#Cursor.save">
-               Cursor:save
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.delete"></a><strong>Cursor:delete</strong>&nbsp;(config, section, option)</dt>
-<dd>
-
-Deletes a section or an option. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name
-       </li>
-       
-       <li>
-         option: UCI option (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.delete_all"></a><strong>Cursor:delete_all</strong>&nbsp;(config, type, comparator)</dt>
-<dd>
-
-Delete all sections of a given type that match certain criteria. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         type: UCI section type
-       </li>
-       
-       <li>
-         comparator: Function that will be called for each section and returns 
-                                       a boolean whether to delete the current section (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.foreach"></a><strong>Cursor:foreach</strong>&nbsp;(config, type, callback)</dt>
-<dd>
-
-Call a function for every section of a certain type. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         type: UCI section type
-       </li>
-       
-       <li>
-         callback: Function to be called
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get"></a><strong>Cursor:get</strong>&nbsp;(config, section, option)</dt>
-<dd>
-
-Get a section type or an option 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name
-       </li>
-       
-       <li>
-         option: UCI option (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-UCI value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_all"></a><strong>Cursor:get_all</strong>&nbsp;(config, section)</dt>
-<dd>
-
-Get all sections of a config or all values of a section. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of UCI sections or table of UCI values
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_bool"></a><strong>Cursor:get_bool</strong>&nbsp;(config, section, option)</dt>
-<dd>
-
-Get a boolean option and return it's value as true or false. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name
-       </li>
-       
-       <li>
-         option: UCI option
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_confdir"></a><strong>Cursor:get_confdir</strong>&nbsp;()</dt>
-<dd>
-
-Get the configuration directory. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Configuration directory
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_first"></a><strong>Cursor:get_first</strong>&nbsp;(config, type, option, default)</dt>
-<dd>
-
-Get the given option from the first section with the given type. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         type: UCI section type
-       </li>
-       
-       <li>
-         option: UCI option (optional)
-       </li>
-       
-       <li>
-         default: Default value (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-UCI value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_list"></a><strong>Cursor:get_list</strong>&nbsp;(config, section, option)</dt>
-<dd>
-
-Get an option or list and return values as table. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name
-       </li>
-       
-       <li>
-         option: UCI option
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-table.         If the option was not found, you will simply get an empty 
-                                       table.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_savedir"></a><strong>Cursor:get_savedir</strong>&nbsp;()</dt>
-<dd>
-
-Get the directory for uncomitted changes. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Save directory
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.get_session_id"></a><strong>Cursor:get_session_id</strong>&nbsp;()</dt>
-<dd>
-
-Get the effective session ID. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the session ID
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.load"></a><strong>Cursor:load</strong>&nbsp;(config)</dt>
-<dd>
-
-Manually load a config. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Cursor.save">
-               Cursor:save
-       </a>
-       
-       <li><a href="#Cursor.unload">
-               Cursor:unload
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.revert"></a><strong>Cursor:revert</strong>&nbsp;(config)</dt>
-<dd>
-
-Revert saved but uncommitted changes. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Cursor.commit">
-               Cursor:commit
-       </a>
-       
-       <li><a href="#Cursor.save">
-               Cursor:save
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.save"></a><strong>Cursor:save</strong>&nbsp;(config)</dt>
-<dd>
-
-Saves changes made to a config to make them committable. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Cursor.load">
-               Cursor:load
-       </a>
-       
-       <li><a href="#Cursor.unload">
-               Cursor:unload
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.section"></a><strong>Cursor:section</strong>&nbsp;(config, type, name, values)</dt>
-<dd>
-
-Create a new section and initialize it with data. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         type: UCI section type
-       </li>
-       
-       <li>
-         name: UCI section name (optional)
-       </li>
-       
-       <li>
-         values: Table of key - value pairs to initialize the section with
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Name of created section
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.set"></a><strong>Cursor:set</strong>&nbsp;(config, section, option, value)</dt>
-<dd>
-
-Set a value or create a named section. 
-When invoked with three arguments <code>config</code>, <code>sectionname</code>, <code>sectiontype</code>, 
-then a named section of the given type is created. 
-When invoked with four arguments <code>config</code>, <code>sectionname</code>, <code>optionname</code> and 
-<code>optionvalue</code> then the value of the specified option is set to the given value. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name
-       </li>
-       
-       <li>
-         option: UCI option or UCI section type
-       </li>
-       
-       <li>
-         value: UCI value or nothing if you want to create a section
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.set_confdir"></a><strong>Cursor:set_confdir</strong>&nbsp;(directory)</dt>
-<dd>
-
-Set the configuration directory. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         directory: UCI configuration directory
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.set_list"></a><strong>Cursor:set_list</strong>&nbsp;(config, section, option, value)</dt>
-<dd>
-
-Set given values as list. Setting a list option to an empty list 
-has the same effect as deleting the option. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name
-       </li>
-       
-       <li>
-         option: UCI option
-       </li>
-       
-       <li>
-         value: Value or table. Non-table values will be set as single 
-                                       item UCI list.
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.set_savedir"></a><strong>Cursor:set_savedir</strong>&nbsp;(directory)</dt>
-<dd>
-
-Set the directory for uncommited changes. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         directory: UCI changes directory
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.set_session_id"></a><strong>Cursor:set_session_id</strong>&nbsp;(id)</dt>
-<dd>
-
-Set the effective session ID. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         id: String containing the session ID to set
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.substate"></a><strong>Cursor:substate</strong>&nbsp;()</dt>
-<dd>
-
-Create a sub-state of this cursor. 
-The sub-state is tied to the parent curser, means it the parent unloads or 
-loads configs, the sub state will do so as well. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-UCI state cursor tied to the parent cursor
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.tset"></a><strong>Cursor:tset</strong>&nbsp;(config, section, values)</dt>
-<dd>
-
-Updated the data of a section using data from a table. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-       <li>
-         section: UCI section name (optional)
-       </li>
-       
-       <li>
-         values: Table of key - value pairs to update the section with
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Cursor.unload"></a><strong>Cursor:unload</strong>&nbsp;(config)</dt>
-<dd>
-
-Discard changes made to a config. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         config: UCI config
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean whether operation succeeded
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Cursor.load">
-               Cursor:load
-       </a>
-       
-       <li><a href="#Cursor.save">
-               Cursor:save
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="cursor"></a><strong>cursor</strong>&nbsp;()</dt>
-<dd>
-
-Create a new UCI-Cursor. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-UCI-Cursor
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cursor_state"></a><strong>cursor_state</strong>&nbsp;()</dt>
-<dd>
-
-Create a new Cursor initialized to the state directory. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-UCI cursor
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.rpcc.html b/package/luci/documentation/api/modules/luci.rpcc.html
deleted file mode 100644 (file)
index 1806578..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li><strong>luci.rpcc</strong></li>
-       
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.rpcc</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#Client.proxy">Client:proxy</a>&nbsp;(prefix)</td>
-       <td class="summary">
-Create a transparent RPC proxy.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Client.request">Client:request</a>&nbsp;(method, params, notification)</td>
-       <td class="summary">
-Request an RP call and get the response.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="Client.proxy"></a><strong>Client:proxy</strong>&nbsp;(prefix)</dt>
-<dd>
-
-Create a transparent RPC proxy. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         prefix: Method prefix
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-RPC Proxy object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Client.request"></a><strong>Client:request</strong>&nbsp;(method, params, notification)</dt>
-<dd>
-
-Request an RP call and get the response. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         method: Remote method
-       </li>
-       
-       <li>
-         params: Parameters
-       </li>
-       
-       <li>
-         notification: Notification only?
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-response 
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.rpcc.ruci.html b/package/luci/documentation/api/modules/luci.rpcc.ruci.html
deleted file mode 100644 (file)
index 7348f19..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li><strong>luci.rpcc.ruci</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.rpcc.ruci</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#factory">factory</a>&nbsp;(rpccl)</td>
-       <td class="summary">
-Create a new UCI over RPC proxy.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="factory"></a><strong>factory</strong>&nbsp;(rpccl)</dt>
-<dd>
-
-Create a new UCI over RPC proxy. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         rpccl: RPC client
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Network transparent UCI module 
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.sys.html b/package/luci/documentation/api/modules/luci.sys.html
deleted file mode 100644 (file)
index 6342a51..0000000
+++ /dev/null
@@ -1,641 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li><strong>luci.sys</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.sys</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#call">call</a>&nbsp;(...)</td>
-       <td class="summary">
-Execute a given shell command and return the error code 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#dmesg">dmesg</a>&nbsp;()</td>
-       <td class="summary">
-Retrieves the output of the "dmesg" command.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#exec">exec</a>&nbsp;(command)</td>
-       <td class="summary">
-Execute a given shell command and capture its standard output 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#getenv">getenv</a>&nbsp;(var)</td>
-       <td class="summary">
-Retrieve environment variables.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#hostname">hostname</a>&nbsp;(String)</td>
-       <td class="summary">
-Get or set the current hostname.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#httpget">httpget</a>&nbsp;(url, stream, target)</td>
-       <td class="summary">
-Returns the contents of a documented referred by an URL.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#mounts">mounts</a>&nbsp;()</td>
-       <td class="summary">
-Retrieve information about currently mounted file systems.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#reboot">reboot</a>&nbsp;()</td>
-       <td class="summary">
-Initiate a system reboot.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#syslog">syslog</a>&nbsp;()</td>
-       <td class="summary">
-Retrieves the output of the "logread" command.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#uniqueid">uniqueid</a>&nbsp;(bytes)</td>
-       <td class="summary">
-Generates a random id with specified length.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#uptime">uptime</a>&nbsp;()</td>
-       <td class="summary">
-Returns the current system uptime stats.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="call"></a><strong>call</strong>&nbsp;(...)</dt>
-<dd>
-
-Execute a given shell command and return the error code 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ...: Command to call
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Error code of the command
-
-
-
-</dd>
-
-
-
-
-<dt><a name="dmesg"></a><strong>dmesg</strong>&nbsp;()</dt>
-<dd>
-
-Retrieves the output of the "dmesg" command. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the current log buffer
-
-
-
-</dd>
-
-
-
-
-<dt><a name="exec"></a><strong>exec</strong>&nbsp;(command)</dt>
-<dd>
-
-Execute a given shell command and capture its standard output 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         command: Command to call
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containg the return the output of the command
-
-
-
-</dd>
-
-
-
-
-<dt><a name="getenv"></a><strong>getenv</strong>&nbsp;(var)</dt>
-<dd>
-
-Retrieve environment variables. If no variable is given then a table 
-containing the whole environment is returned otherwise this function returns 
-the corresponding string value for the given name or nil if no such variable 
-exists.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         var: Name of the environment variable to retrieve (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>String containg the value of the specified variable
-       
-       <li>Table containing all variables if no variable name is given
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="hostname"></a><strong>hostname</strong>&nbsp;(String)</dt>
-<dd>
-
-Get or set the current hostname. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         String: containing a new hostname to set (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the system hostname
-
-
-
-</dd>
-
-
-
-
-<dt><a name="httpget"></a><strong>httpget</strong>&nbsp;(url, stream, target)</dt>
-<dd>
-
-Returns the contents of a documented referred by an URL. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         url: The URL to retrieve
-       </li>
-       
-       <li>
-         stream: Return a stream instead of a buffer
-       </li>
-       
-       <li>
-         target: Directly write to target file name
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the contents of given the URL
-
-
-
-</dd>
-
-
-
-
-<dt><a name="mounts"></a><strong>mounts</strong>&nbsp;()</dt>
-<dd>
-
-Retrieve information about currently mounted file systems. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing mount information
-
-
-
-</dd>
-
-
-
-
-<dt><a name="reboot"></a><strong>reboot</strong>&nbsp;()</dt>
-<dd>
-
-Initiate a system reboot. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Return value of os.execute()
-
-
-
-</dd>
-
-
-
-
-<dt><a name="syslog"></a><strong>syslog</strong>&nbsp;()</dt>
-<dd>
-
-Retrieves the output of the "logread" command. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the current log buffer
-
-
-
-</dd>
-
-
-
-
-<dt><a name="uniqueid"></a><strong>uniqueid</strong>&nbsp;(bytes)</dt>
-<dd>
-
-Generates a random id with specified length. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         bytes: Number of bytes for the unique id
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing hex encoded id
-
-
-
-</dd>
-
-
-
-
-<dt><a name="uptime"></a><strong>uptime</strong>&nbsp;()</dt>
-<dd>
-
-Returns the current system uptime stats. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing total uptime in seconds
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.sys.init.html b/package/luci/documentation/api/modules/luci.sys.init.html
deleted file mode 100644 (file)
index e2c51f9..0000000
+++ /dev/null
@@ -1,512 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li><strong>luci.sys.init</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.sys.init</code></h1>
-
-<p>
-LuCI system utilities / init related functions. 
-</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#init.disable">disable</a>&nbsp;(name)</td>
-       <td class="summary">
-Disable the given init script 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#init.enable">enable</a>&nbsp;(name)</td>
-       <td class="summary">
-Enable the given init script 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#init.enabled">enabled</a>&nbsp;(name)</td>
-       <td class="summary">
-Test whether the given init script is enabled 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#init.index">index</a>&nbsp;(name)</td>
-       <td class="summary">
-Get the index of he given init script 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#init.names">names</a>&nbsp;()</td>
-       <td class="summary">
-Get the names of all installed init scripts 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#init.start">start</a>&nbsp;(name)</td>
-       <td class="summary">
-Start the given init script 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#init.stop">stop</a>&nbsp;(name)</td>
-       <td class="summary">
-Stop the given init script 
- </td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="init.disable"></a><strong>disable</strong>&nbsp;(name)</dt>
-<dd>
-
-Disable the given init script 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the init script
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating success
-
-
-
-</dd>
-
-
-
-
-<dt><a name="init.enable"></a><strong>enable</strong>&nbsp;(name)</dt>
-<dd>
-
-Enable the given init script 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the init script
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating success
-
-
-
-</dd>
-
-
-
-
-<dt><a name="init.enabled"></a><strong>enabled</strong>&nbsp;(name)</dt>
-<dd>
-
-Test whether the given init script is enabled 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the init script
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating whether init is enabled
-
-
-
-</dd>
-
-
-
-
-<dt><a name="init.index"></a><strong>index</strong>&nbsp;(name)</dt>
-<dd>
-
-Get the index of he given init script 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the init script
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Numeric index value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="init.names"></a><strong>names</strong>&nbsp;()</dt>
-<dd>
-
-Get the names of all installed init scripts 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing the names of all inistalled init scripts
-
-
-
-</dd>
-
-
-
-
-<dt><a name="init.start"></a><strong>start</strong>&nbsp;(name)</dt>
-<dd>
-
-Start the given init script 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the init script
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating success
-
-
-
-</dd>
-
-
-
-
-<dt><a name="init.stop"></a><strong>stop</strong>&nbsp;(name)</dt>
-<dd>
-
-Stop the given init script 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: Name of the init script
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating success
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.sys.iptparser.html b/package/luci/documentation/api/modules/luci.sys.iptparser.html
deleted file mode 100644 (file)
index 5928281..0000000
+++ /dev/null
@@ -1,462 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li><strong>luci.sys.iptparser</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>luci.sys.iptparser</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#IptParser">IptParser</a>&nbsp;(family)</td>
-       <td class="summary">
-Create a new iptables parser object.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IptParser.chain">IptParser:chain</a>&nbsp;(table, chain)</td>
-       <td class="summary">
-Return the given firewall chain within the given table name.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IptParser.chains">IptParser:chains</a>&nbsp;(table)</td>
-       <td class="summary">
-Find the names of all chains within the given table name.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IptParser.is_custom_target">IptParser:is_custom_target</a>&nbsp;(target)</td>
-       <td class="summary">
-Test whether the given target points to a custom chain.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IptParser.resync">IptParser:resync</a>&nbsp;()</td>
-       <td class="summary">
-Rebuild the internal lookup table, for example when rules have changed 
-through external commands.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#IptParser.tables">IptParser:tables</a>&nbsp;()</td>
-       <td class="summary">
-Find the names of all tables.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="IptParser"></a><strong>IptParser</strong>&nbsp;(family)</dt>
-<dd>
-
-Create a new iptables parser object. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         family: Number specifying the address family. 4 for IPv4, 6 for IPv6
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-IptParser instance
-
-
-
-</dd>
-
-
-
-
-<dt><a name="IptParser.chain"></a><strong>IptParser:chain</strong>&nbsp;(table, chain)</dt>
-<dd>
-
-Return the given firewall chain within the given table name. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         table: String containing the table name
-       </li>
-       
-       <li>
-         chain: String containing the chain name
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing the fields "policy", "packets", "bytes" 
-                               and "rules". The "rules" field is a table of rule tables.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="IptParser.chains"></a><strong>IptParser:chains</strong>&nbsp;(table)</dt>
-<dd>
-
-Find the names of all chains within the given table name. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         table: String containing the table name
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of chain names in the order they occur.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="IptParser.is_custom_target"></a><strong>IptParser:is_custom_target</strong>&nbsp;(target)</dt>
-<dd>
-
-Test whether the given target points to a custom chain. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         target: String containing the target action
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating whether target is a custom chain.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="IptParser.resync"></a><strong>IptParser:resync</strong>&nbsp;()</dt>
-<dd>
-
-Rebuild the internal lookup table, for example when rules have changed 
-through external commands.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-nothing
-
-
-
-</dd>
-
-
-
-
-<dt><a name="IptParser.tables"></a><strong>IptParser:tables</strong>&nbsp;()</dt>
-<dd>
-
-Find the names of all tables. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of table names.
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.sys.net.html b/package/luci/documentation/api/modules/luci.sys.net.html
deleted file mode 100644 (file)
index e7802bb..0000000
+++ /dev/null
@@ -1,597 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li><strong>luci.sys.net</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.sys.net</code></h1>
-
-<p>
-LuCI system utilities / network related functions. 
-</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#net.arptable">arptable</a>&nbsp;()</td>
-       <td class="summary">
-Returns the current arp-table entries as two-dimensional table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.conntrack">conntrack</a>&nbsp;()</td>
-       <td class="summary">
-Returns conntrack information 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.deviceinfo">deviceinfo</a>&nbsp;()</td>
-       <td class="summary">
-Return information about available network interfaces.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.devices">devices</a>&nbsp;()</td>
-       <td class="summary">
-Determine the names of available network interfaces.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.host_hints">host_hints</a>&nbsp;()</td>
-       <td class="summary">
-Returns a two-dimensional table of host hints.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.ipv4_hints">ipv4_hints</a>&nbsp;()</td>
-       <td class="summary">
-Returns a two-dimensional table of IPv4 address hints.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.ipv6_hints">ipv6_hints</a>&nbsp;()</td>
-       <td class="summary">
-Returns a two-dimensional table of IPv6 address hints.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.mac_hints">mac_hints</a>&nbsp;()</td>
-       <td class="summary">
-Returns a two-dimensional table of mac address hints.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.pingtest">pingtest</a>&nbsp;(host)</td>
-       <td class="summary">
-Tests whether the given host responds to ping probes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.routes">routes</a>&nbsp;()</td>
-       <td class="summary">
-Returns the current kernel routing table entries.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#net.routes6">routes6</a>&nbsp;()</td>
-       <td class="summary">
-Returns the current ipv6 kernel routing table entries.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="net.arptable"></a><strong>arptable</strong>&nbsp;()</dt>
-<dd>
-
-Returns the current arp-table entries as two-dimensional table. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of table containing the current arp entries. 
-                       The following fields are defined for arp entry objects: 
-                       { "IP address", "HW address", "HW type", "Flags", "Mask", "Device" }
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.conntrack"></a><strong>conntrack</strong>&nbsp;()</dt>
-<dd>
-
-Returns conntrack information 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table with the currently tracked IP connections
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.deviceinfo"></a><strong>deviceinfo</strong>&nbsp;()</dt>
-<dd>
-
-Return information about available network interfaces. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing all current interface names and their information
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.devices"></a><strong>devices</strong>&nbsp;()</dt>
-<dd>
-
-Determine the names of available network interfaces. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing all current interface names
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.host_hints"></a><strong>host_hints</strong>&nbsp;()</dt>
-<dd>
-
-Returns a two-dimensional table of host hints. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of table containing known hosts from various sources, 
-         indexed by mac address. Each subtable contains at least one 
-         of the fields "name", "ipv4" or "ipv6".
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.ipv4_hints"></a><strong>ipv4_hints</strong>&nbsp;()</dt>
-<dd>
-
-Returns a two-dimensional table of IPv4 address hints. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of table containing known hosts from various sources. 
-         Each entry contains the values in the following order: 
-         [ "ip", "name" ]
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.ipv6_hints"></a><strong>ipv6_hints</strong>&nbsp;()</dt>
-<dd>
-
-Returns a two-dimensional table of IPv6 address hints. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of table containing known hosts from various sources. 
-         Each entry contains the values in the following order: 
-         [ "ip", "name" ]
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.mac_hints"></a><strong>mac_hints</strong>&nbsp;()</dt>
-<dd>
-
-Returns a two-dimensional table of mac address hints. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of table containing known hosts from various sources. 
-         Each entry contains the values in the following order: 
-         [ "mac", "name" ]
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.pingtest"></a><strong>pingtest</strong>&nbsp;(host)</dt>
-<dd>
-
-Tests whether the given host responds to ping probes. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         host: String containing a hostname or IPv4 address
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Number containing 0 on success and >= 1 on error
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.routes"></a><strong>routes</strong>&nbsp;()</dt>
-<dd>
-
-Returns the current kernel routing table entries. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of tables with properties of the corresponding routes. 
-                       The following fields are defined for route entry tables: 
-                       { "dest", "gateway", "metric", "refcount", "usecount", "irtt", 
-                         "flags", "device" }
-
-
-
-</dd>
-
-
-
-
-<dt><a name="net.routes6"></a><strong>routes6</strong>&nbsp;()</dt>
-<dd>
-
-Returns the current ipv6 kernel routing table entries. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table of tables with properties of the corresponding routes. 
-                       The following fields are defined for route entry tables: 
-                       { "source", "dest", "nexthop", "metric", "refcount", "usecount", 
-                         "flags", "device" }
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.sys.process.html b/package/luci/documentation/api/modules/luci.sys.process.html
deleted file mode 100644 (file)
index ffe09bd..0000000
+++ /dev/null
@@ -1,444 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li><strong>luci.sys.process</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.sys.process</code></h1>
-
-<p>
-LuCI system utilities / process related functions. 
-</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#process.info">info</a>&nbsp;()</td>
-       <td class="summary">
-Get the current process id.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#process.list">list</a>&nbsp;()</td>
-       <td class="summary">
-Retrieve information about currently running processes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#process.setgroup">setgroup</a>&nbsp;(gid)</td>
-       <td class="summary">
-Set the gid of a process identified by given pid.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#process.setuser">setuser</a>&nbsp;(uid)</td>
-       <td class="summary">
-Set the uid of a process identified by given pid.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#process.signal">signal</a>&nbsp;(pid, sig)</td>
-       <td class="summary">
-Send a signal to a process identified by given pid.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="process.info"></a><strong>info</strong>&nbsp;()</dt>
-<dd>
-
-Get the current process id. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Number containing the current pid
-
-
-
-</dd>
-
-
-
-
-<dt><a name="process.list"></a><strong>list</strong>&nbsp;()</dt>
-<dd>
-
-Retrieve information about currently running processes. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing process information
-
-
-
-</dd>
-
-
-
-
-<dt><a name="process.setgroup"></a><strong>setgroup</strong>&nbsp;(gid)</dt>
-<dd>
-
-Set the gid of a process identified by given pid. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         gid: Number containing the Unix group id
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating successful operation
-       
-       <li>String containing the error message if failed
-       
-       <li>Number containing the error code if failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="process.setuser"></a><strong>setuser</strong>&nbsp;(uid)</dt>
-<dd>
-
-Set the uid of a process identified by given pid. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         uid: Number containing the Unix user id
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating successful operation
-       
-       <li>String containing the error message if failed
-       
-       <li>Number containing the error code if failed
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="process.signal"></a><strong>signal</strong>&nbsp;(pid, sig)</dt>
-<dd>
-
-Send a signal to a process identified by given pid. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pid: Number containing the process id
-       </li>
-       
-       <li>
-         sig: Signal to send (default: 15 [SIGTERM])
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Boolean indicating successful operation
-       
-       <li>Number containing the error code if failed
-       
-</ol>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.sys.user.html b/package/luci/documentation/api/modules/luci.sys.user.html
deleted file mode 100644 (file)
index 04f8bf0..0000000
+++ /dev/null
@@ -1,412 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li><strong>luci.sys.user</strong></li>
-       
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.sys.user</code></h1>
-
-<p>
-LuCI system utilities / user related functions. 
-</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#getuser">getuser</a>&nbsp;(uid)</td>
-       <td class="summary">
-Retrieve user informations for given uid.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#user.checkpasswd">checkpasswd</a>&nbsp;(username, pass)</td>
-       <td class="summary">
-Test whether given string matches the password of a given system user.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#user.getpasswd">getpasswd</a>&nbsp;(username)</td>
-       <td class="summary">
-Retrieve the current user password hash.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#user.setpasswd">setpasswd</a>&nbsp;(username, password)</td>
-       <td class="summary">
-Change the password of given user.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="getuser"></a><strong>getuser</strong>&nbsp;(uid)</dt>
-<dd>
-
-Retrieve user informations for given uid. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         uid: Number containing the Unix user id
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing the following fields: 
-                               { "uid", "gid", "name", "passwd", "dir", "shell", "gecos" }
-
-
-
-</dd>
-
-
-
-
-<dt><a name="user.checkpasswd"></a><strong>checkpasswd</strong>&nbsp;(username, pass)</dt>
-<dd>
-
-Test whether given string matches the password of a given system user. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         username: String containing the Unix user name
-       </li>
-       
-       <li>
-         pass: String containing the password to compare
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating wheather the passwords are equal
-
-
-
-</dd>
-
-
-
-
-<dt><a name="user.getpasswd"></a><strong>getpasswd</strong>&nbsp;(username)</dt>
-<dd>
-
-Retrieve the current user password hash. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         username: String containing the username to retrieve the password for
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>String containing the hash or nil if no password is set.
-       
-       <li>Password database entry
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="user.setpasswd"></a><strong>setpasswd</strong>&nbsp;(username, password)</dt>
-<dd>
-
-Change the password of given user. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         username: String containing the Unix user name
-       </li>
-       
-       <li>
-         password: String containing the password to compare
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Number containing 0 on success and >= 1 on error
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.sys.wifi.html b/package/luci/documentation/api/modules/luci.sys.wifi.html
deleted file mode 100644 (file)
index 6c89324..0000000
+++ /dev/null
@@ -1,280 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li><strong>luci.sys.wifi</strong></li>
-       
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.sys.wifi</code></h1>
-
-<p>
-LuCI system utilities / wifi related functions. 
-</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#wifi.getiwinfo">getiwinfo</a>&nbsp;(ifname)</td>
-       <td class="summary">
-Get wireless information for given interface.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="wifi.getiwinfo"></a><strong>getiwinfo</strong>&nbsp;(ifname)</dt>
-<dd>
-
-Get wireless information for given interface. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ifname: String containing the interface name
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-A wrapped iwinfo object instance
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/luci.util.html b/package/luci/documentation/api/modules/luci.util.html
deleted file mode 100644 (file)
index d3d45a1..0000000
+++ /dev/null
@@ -1,1830 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li><strong>luci.util</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>luci.util</code></h1>
-
-<p></p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#append">append</a>&nbsp;(src, ...)</td>
-       <td class="summary">
-Appends numerically indexed tables or single objects to a given table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#bigendian">bigendian</a>&nbsp;()</td>
-       <td class="summary">
-Test whether the current system is operating in big endian mode.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#class">class</a>&nbsp;(base)</td>
-       <td class="summary">
-Create a Class object (Python-style object model).</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#clone">clone</a>&nbsp;(object, deep)</td>
-       <td class="summary">
-Clones the given object and return it's copy.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cmatch">cmatch</a>&nbsp;(str, pattern)</td>
-       <td class="summary">
-Count the occurrences of given substring in given string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#combine">combine</a>&nbsp;(tbl1, tbl2, ...)</td>
-       <td class="summary">
-Combines two or more numerically indexed tables and single objects into one table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#contains">contains</a>&nbsp;(table, value)</td>
-       <td class="summary">
-Checks whether the given table contains the given value.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#copcall">copcall</a>&nbsp;(f, ...)</td>
-       <td class="summary">
-This is a coroutine-safe drop-in replacement for Lua's "pcall"-function 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#coxpcall">coxpcall</a>&nbsp;(f, err, ...)</td>
-       <td class="summary">
-This is a coroutine-safe drop-in replacement for Lua's "xpcall"-function 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#dumptable">dumptable</a>&nbsp;(t, maxdepth)</td>
-       <td class="summary">
-Recursively dumps a table to stdout, useful for testing and debugging.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#exec">exec</a>&nbsp;(command)</td>
-       <td class="summary">
-Execute given commandline and gather stdout.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#execi">execi</a>&nbsp;(command)</td>
-       <td class="summary">
-Return a line-buffered iterator over the output of given command.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#get_bytecode">get_bytecode</a>&nbsp;(val)</td>
-       <td class="summary">
-Return the current runtime bytecode of the given data.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#imatch">imatch</a>&nbsp;(val)</td>
-       <td class="summary">
-Return a matching iterator for the given value.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#instanceof">instanceof</a>&nbsp;(object, class)</td>
-       <td class="summary">
-Test whether the given object is an instance of the given class.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#keys">keys</a>&nbsp;(t)</td>
-       <td class="summary">
-Retrieve all keys of given associative table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#kspairs">kspairs</a>&nbsp;(t)</td>
-       <td class="summary">
-Return a key, value iterator for the given table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#libpath">libpath</a>&nbsp;()</td>
-       <td class="summary">
-Returns the absolute path to LuCI base directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#parse_units">parse_units</a>&nbsp;(ustr)</td>
-       <td class="summary">
-Parse certain units from the given string and return the canonical integer 
-value or 0 if the unit is unknown.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#pcdata">pcdata</a>&nbsp;(value)</td>
-       <td class="summary">
-Create valid XML PCDATA from given string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#perror">perror</a>&nbsp;(obj)</td>
-       <td class="summary">
-Write given object to stderr.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#restore_data">restore_data</a>&nbsp;(str)</td>
-       <td class="summary">
-Restore data previously serialized with serialize_data().</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#serialize_data">serialize_data</a>&nbsp;(val)</td>
-       <td class="summary">
-Recursively serialize given data to lua code, suitable for restoring 
-with loadstring().</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#serialize_json">serialize_json</a>&nbsp;(data, writer)</td>
-       <td class="summary">
-Convert data structure to JSON 
- </td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#shellquote">shellquote</a>&nbsp;(value)</td>
-       <td class="summary">
-Safely quote value for use in shell commands.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#spairs">spairs</a>&nbsp;(t, f)</td>
-       <td class="summary">
-Return a key, value iterator which returns the values sorted according to 
-the provided callback function.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#split">split</a>&nbsp;(str, pat, max, regex)</td>
-       <td class="summary">
-Splits given string on a defined separator sequence and return a table 
-containing the resulting substrings.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#strip_bytecode">strip_bytecode</a>&nbsp;(code)</td>
-       <td class="summary">
-Strips unnescessary lua bytecode from given string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#striptags">striptags</a>&nbsp;(value)</td>
-       <td class="summary">
-Strip HTML tags from given string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#threadlocal">threadlocal</a>&nbsp;()</td>
-       <td class="summary">
-Create a new or get an already existing thread local store associated with 
-the current active coroutine.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#trim">trim</a>&nbsp;(str)</td>
-       <td class="summary">
-Remove leading and trailing whitespace from given string value.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#ubus">ubus</a>&nbsp;(object, method, values)</td>
-       <td class="summary">
-Issue an ubus call.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#update">update</a>&nbsp;(t, updates)</td>
-       <td class="summary">
-Update values in given table with the values from the second given table.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urldecode">urldecode</a>&nbsp;(str, decode_plus)</td>
-       <td class="summary">
-Decode an URL-encoded string - optionally decoding the "+" sign to space.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#urlencode">urlencode</a>&nbsp;(str)</td>
-       <td class="summary">
-URL-encode given string.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#vspairs">vspairs</a>&nbsp;(t)</td>
-       <td class="summary">
-Return a key, value iterator for the given table.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="append"></a><strong>append</strong>&nbsp;(src, ...)</dt>
-<dd>
-
-Appends numerically indexed tables or single objects to a given table. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Target table
-       </li>
-       
-       <li>
-         ...: Objects to insert
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Target table
-
-
-
-</dd>
-
-
-
-
-<dt><a name="bigendian"></a><strong>bigendian</strong>&nbsp;()</dt>
-<dd>
-
-Test whether the current system is operating in big endian mode. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean value indicating whether system is big endian
-
-
-
-</dd>
-
-
-
-
-<dt><a name="class"></a><strong>class</strong>&nbsp;(base)</dt>
-<dd>
-
-Create a Class object (Python-style object model). 
-The class object can be instantiated by calling itself. 
-Any class functions or shared parameters can be attached to this object. 
-Attaching a table to the class object makes this table shared between 
-all instances of this class. For object parameters use the __init__ function. 
-Classes can inherit member functions and values from a base class. 
-Class can be instantiated by calling them. All parameters will be passed 
-to the __init__ function of this class - if such a function exists. 
-The __init__ function must be used to set any object parameters that are not shared 
-with other objects of this class. Any return values will be ignored. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         base: The base class to inherit from (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-A class object
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#instanceof">
-               instanceof
-       </a>
-       
-       <li><a href="#clone">
-               clone
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="clone"></a><strong>clone</strong>&nbsp;(object, deep)</dt>
-<dd>
-
-Clones the given object and return it's copy. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         object: Table value to clone
-       </li>
-       
-       <li>
-         deep: Boolean indicating whether to do recursive cloning
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Cloned table value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cmatch"></a><strong>cmatch</strong>&nbsp;(str, pattern)</dt>
-<dd>
-
-Count the occurrences of given substring in given string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: String to search in
-       </li>
-       
-       <li>
-         pattern: String containing pattern to find
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Number of found occurrences
-
-
-
-</dd>
-
-
-
-
-<dt><a name="combine"></a><strong>combine</strong>&nbsp;(tbl1, tbl2, ...)</dt>
-<dd>
-
-Combines two or more numerically indexed tables and single objects into one table. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         tbl1: Table value to combine
-       </li>
-       
-       <li>
-         tbl2: Table value to combine
-       </li>
-       
-       <li>
-         ...: More tables to combine
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table value containing all values of given tables
-
-
-
-</dd>
-
-
-
-
-<dt><a name="contains"></a><strong>contains</strong>&nbsp;(table, value)</dt>
-<dd>
-
-Checks whether the given table contains the given value. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         table: Table value
-       </li>
-       
-       <li>
-         value: Value to search within the given table
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Number indicating the first index at which the given value occurs 
-                                       within table or false.
-
-
-
-</dd>
-
-
-
-
-<dt><a name="copcall"></a><strong>copcall</strong>&nbsp;(f, ...)</dt>
-<dd>
-
-This is a coroutine-safe drop-in replacement for Lua's "pcall"-function 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         f: Lua function to be called protected
-       </li>
-       
-       <li>
-         ...: Parameters passed to the function
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-A boolean whether the function call succeeded and the returns 
-                                       values of the function or the error object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="coxpcall"></a><strong>coxpcall</strong>&nbsp;(f, err, ...)</dt>
-<dd>
-
-This is a coroutine-safe drop-in replacement for Lua's "xpcall"-function 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         f: Lua function to be called protected
-       </li>
-       
-       <li>
-         err: Custom error handler
-       </li>
-       
-       <li>
-         ...: Parameters passed to the function
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-A boolean whether the function call succeeded and the return 
-                                       values of either the function or the error handler
-
-
-
-</dd>
-
-
-
-
-<dt><a name="dumptable"></a><strong>dumptable</strong>&nbsp;(t, maxdepth)</dt>
-<dd>
-
-Recursively dumps a table to stdout, useful for testing and debugging. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         t: Table value to dump
-       </li>
-       
-       <li>
-         maxdepth: Maximum depth
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Always nil
-
-
-
-</dd>
-
-
-
-
-<dt><a name="exec"></a><strong>exec</strong>&nbsp;(command)</dt>
-<dd>
-
-Execute given commandline and gather stdout. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         command: String containing command to execute
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the command's stdout
-
-
-
-</dd>
-
-
-
-
-<dt><a name="execi"></a><strong>execi</strong>&nbsp;(command)</dt>
-<dd>
-
-Return a line-buffered iterator over the output of given command. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         command: String containing the command to execute
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Iterator
-
-
-
-</dd>
-
-
-
-
-<dt><a name="get_bytecode"></a><strong>get_bytecode</strong>&nbsp;(val)</dt>
-<dd>
-
-Return the current runtime bytecode of the given data. The byte code 
-will be stripped before it is returned. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         val: Value to return as bytecode
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String value containing the bytecode of the given data
-
-
-
-</dd>
-
-
-
-
-<dt><a name="imatch"></a><strong>imatch</strong>&nbsp;(val)</dt>
-<dd>
-
-Return a matching iterator for the given value. 
-The iterator will return one token per invocation, the tokens are separated by 
-whitespace. If the input value is a table, it is transformed into a string first. 
-A nil value will result in a valid interator which aborts with the first invocation. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         val: The value to scan (table, string or nil)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Iterator which returns one token per call
-
-
-
-</dd>
-
-
-
-
-<dt><a name="instanceof"></a><strong>instanceof</strong>&nbsp;(object, class)</dt>
-<dd>
-
-Test whether the given object is an instance of the given class. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         object: Object instance
-       </li>
-       
-       <li>
-         class: Class object to test against
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating whether the object is an instance
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#class">
-               class
-       </a>
-       
-       <li><a href="#clone">
-               clone
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="keys"></a><strong>keys</strong>&nbsp;(t)</dt>
-<dd>
-
-Retrieve all keys of given associative table. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         t: Table to extract keys from
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Sorted table containing the keys
-
-
-
-</dd>
-
-
-
-
-<dt><a name="kspairs"></a><strong>kspairs</strong>&nbsp;(t)</dt>
-<dd>
-
-Return a key, value iterator for the given table. 
-The table pairs are sorted by key. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         t: The table to iterate
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Function value containing the corresponding iterator
-
-
-
-</dd>
-
-
-
-
-<dt><a name="libpath"></a><strong>libpath</strong>&nbsp;()</dt>
-<dd>
-
-Returns the absolute path to LuCI base directory. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the directory path
-
-
-
-</dd>
-
-
-
-
-<dt><a name="parse_units"></a><strong>parse_units</strong>&nbsp;(ustr)</dt>
-<dd>
-
-Parse certain units from the given string and return the canonical integer 
-value or 0 if the unit is unknown. 
-Upper- or lower case is irrelevant. 
-Recognized units are: 
-       o "y"   - one year   (60*60*24*366) 
- o "m" - one month  (60*60*24*31) 
- o "w" - one week   (60*60*24*7) 
- o "d" - one day    (60*60*24) 
- o "h" - one hour       (60*60) 
- o "min"       - one minute (60) 
- o "kb"  - one kilobyte (1024) 
- o "mb"        - one megabyte (1024*1024) 
- o "gb"        - one gigabyte (1024*1024*1024) 
- o "kib" - one si kilobyte (1000) 
- o "mib"       - one si megabyte (1000*1000) 
- o "gib"       - one si gigabyte (1000*1000*1000) 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ustr: String containing a numerical value with trailing unit
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Number containing the canonical value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="pcdata"></a><strong>pcdata</strong>&nbsp;(value)</dt>
-<dd>
-
-Create valid XML PCDATA from given string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         value: String value containing the data to escape
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String value containing the escaped data
-
-
-
-</dd>
-
-
-
-
-<dt><a name="perror"></a><strong>perror</strong>&nbsp;(obj)</dt>
-<dd>
-
-Write given object to stderr. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         obj: Value to write to stderr
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Boolean indicating whether the write operation was successful
-
-
-
-</dd>
-
-
-
-
-<dt><a name="restore_data"></a><strong>restore_data</strong>&nbsp;(str)</dt>
-<dd>
-
-Restore data previously serialized with serialize_data(). 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: String containing the data to restore
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Value containing the restored data structure
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#serialize_data">
-               serialize_data
-       </a>
-       
-       <li><a href="#get_bytecode">
-               get_bytecode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="serialize_data"></a><strong>serialize_data</strong>&nbsp;(val)</dt>
-<dd>
-
-Recursively serialize given data to lua code, suitable for restoring 
-with loadstring(). 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         val: Value containing the data to serialize
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String value containing the serialized code
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#restore_data">
-               restore_data
-       </a>
-       
-       <li><a href="#get_bytecode">
-               get_bytecode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="serialize_json"></a><strong>serialize_json</strong>&nbsp;(data, writer)</dt>
-<dd>
-
-Convert data structure to JSON 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data: The data to serialize
-       </li>
-       
-       <li>
-         writer: A function to write a chunk of JSON data (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the JSON if called without write callback
-
-
-
-</dd>
-
-
-
-
-<dt><a name="shellquote"></a><strong>shellquote</strong>&nbsp;(value)</dt>
-<dd>
-
-Safely quote value for use in shell commands. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         value: String containing the value to quote
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Single-quote enclosed string with embedded quotes escaped
-
-
-
-</dd>
-
-
-
-
-<dt><a name="spairs"></a><strong>spairs</strong>&nbsp;(t, f)</dt>
-<dd>
-
-Return a key, value iterator which returns the values sorted according to 
-the provided callback function. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         t: The table to iterate
-       </li>
-       
-       <li>
-         f: A callback function to decide the order of elements
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Function value containing the corresponding iterator
-
-
-
-</dd>
-
-
-
-
-<dt><a name="split"></a><strong>split</strong>&nbsp;(str, pat, max, regex)</dt>
-<dd>
-
-Splits given string on a defined separator sequence and return a table 
-containing the resulting substrings. 
-The optional max parameter specifies the number of bytes to process, 
-regardless of the actual length of the given string. The optional last 
-parameter, regex, specifies whether the separator sequence is 
-nterpreted as regular expression. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: String value containing the data to split up
-       </li>
-       
-       <li>
-         pat: String with separator pattern (optional, defaults to "\n")
-       </li>
-       
-       <li>
-         max: Maximum times to split (optional)
-       </li>
-       
-       <li>
-         regex: Boolean indicating whether to interpret the separator 
-                                       pattern as regular expression (optional, default is false)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing the resulting substrings
-
-
-
-</dd>
-
-
-
-
-<dt><a name="strip_bytecode"></a><strong>strip_bytecode</strong>&nbsp;(code)</dt>
-<dd>
-
-Strips unnescessary lua bytecode from given string. 
-Information like line numbers and debugging numbers will be discarded. 
-Original version by Peter Cawley (http://lua-users.org/lists/lua-l/2008-02/msg01158.html) 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         code: String value containing the original lua byte code
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String value containing the stripped lua byte code
-
-
-
-</dd>
-
-
-
-
-<dt><a name="striptags"></a><strong>striptags</strong>&nbsp;(value)</dt>
-<dd>
-
-Strip HTML tags from given string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         value: String containing the HTML text
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String with HTML tags stripped of
-
-
-
-</dd>
-
-
-
-
-<dt><a name="threadlocal"></a><strong>threadlocal</strong>&nbsp;()</dt>
-<dd>
-
-Create a new or get an already existing thread local store associated with 
-the current active coroutine. 
-A thread local store is private a table object 
-whose values can't be accessed from outside of the running coroutine. 
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table value representing the corresponding thread local store
-
-
-
-</dd>
-
-
-
-
-<dt><a name="trim"></a><strong>trim</strong>&nbsp;(str)</dt>
-<dd>
-
-Remove leading and trailing whitespace from given string value. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: String value containing whitespace padded data
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String value with leading and trailing space removed
-
-
-
-</dd>
-
-
-
-
-<dt><a name="ubus"></a><strong>ubus</strong>&nbsp;(object, method, values)</dt>
-<dd>
-
-Issue an ubus call. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         object: String containing the ubus object to call
-       </li>
-       
-       <li>
-         method: String containing the ubus method to call
-       </li>
-       
-       <li>
-         values: Table containing the values to pass
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containin the ubus result
-
-
-
-</dd>
-
-
-
-
-<dt><a name="update"></a><strong>update</strong>&nbsp;(t, updates)</dt>
-<dd>
-
-Update values in given table with the values from the second given table. 
-Both table are - in fact - merged together. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         t: Table which should be updated
-       </li>
-       
-       <li>
-         updates: Table containing the values to update
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Always nil
-
-
-
-</dd>
-
-
-
-
-<dt><a name="urldecode"></a><strong>urldecode</strong>&nbsp;(str, decode_plus)</dt>
-<dd>
-
-Decode an URL-encoded string - optionally decoding the "+" sign to space. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: Input string in x-www-urlencoded format
-       </li>
-       
-       <li>
-         decode_plus: Decode "+" signs to spaces if true (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-The decoded string
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urlencode">
-               urlencode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="urlencode"></a><strong>urlencode</strong>&nbsp;(str)</dt>
-<dd>
-
-URL-encode given string. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         str: String to encode
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the encoded data
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#urldecode">
-               urldecode
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="vspairs"></a><strong>vspairs</strong>&nbsp;(t)</dt>
-<dd>
-
-Return a key, value iterator for the given table. 
-The table pairs are sorted by value. 
-
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         t: The table to iterate
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Function value containing the corresponding iterator
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/nixio.CHANGELOG.html b/package/luci/documentation/api/modules/nixio.CHANGELOG.html
deleted file mode 100644 (file)
index 7d98747..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li><strong>nixio.CHANGELOG</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio.CHANGELOG</code></h1>
-
-<p>
- Changes and improvements.</p>
-
-
-
-
-
-
-
-
-
-
-<h2>Tables</h2>
-<table class="table_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#0.2">0.2</a></td>
-       <td class="summary">
- Initial Release.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#0.3">0.3</a></td>
-       <td class="summary">
- Service Release.</td>
-       </tr>
-
-</table>
-
-
-
-<br/>
-<br/>
-
-
-
-
-<h2><a name="tables"></a>Tables</h2>
-<dl class="table">
-
-<dt><a name="0.2"></a><strong>0.2</strong></dt>
-<dd>
- Initial Release. 
- <ul> 
- <li>Initial Release</li>   
- </ul>
-
-
-
-</dd>
-
-
-<dt><a name="0.3"></a><strong>0.3</strong></dt>
-<dd>
- Service Release. 
- <ul> 
- <li>Added getifaddrs() function.</li> 
- <li>Added getsockopt(), setsockopt(), getsockname() and getpeername() 
- directly to TLS-socket objects unifying the socket interface.</li> 
- <li>Added support for CyaSSL as cryptographical backend.</li> 
- <li>Added support for x509 certificates in DER format.</li> 
- <li>Added support for splice() in UnifiedIO.copyz().</li> 
- <li>Added interface to inject chunks into UnifiedIO.linesource() buffer.</li> 
- <li>Changed TLS behaviour to explicitely separate servers and clients.</li> 
- <li>Fixed usage of signed datatype breaking Base64 decoding.</li> 
- <li>Fixed namespace clashes for nixio.fs.</li> 
- <li>Fixed splice() support for some exotic C libraries.</li> 
- <li>Reconfigure axTLS cryptographical provider and mark it as obsolete.</li> 
- </ul>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/nixio.CryptoHash.html b/package/luci/documentation/api/modules/nixio.CryptoHash.html
deleted file mode 100644 (file)
index 7d2f48b..0000000
+++ /dev/null
@@ -1,312 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li><strong>nixio.CryptoHash</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>nixio.CryptoHash</code></h1>
-
-<p>
- Cryptographical Hash and HMAC object.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#CryptoHash.final">CryptoHash:final</a>&nbsp;()</td>
-       <td class="summary">
- Finalize the hash and return the digest.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#CryptoHash.update">CryptoHash:update</a>&nbsp;(chunk)</td>
-       <td class="summary">
- Add another chunk of data to be hashed.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="CryptoHash.final"></a><strong>CryptoHash:final</strong>&nbsp;()</dt>
-<dd>
-
- Finalize the hash and return the digest.
-
-
-
-
-
-<h3>Usage:</h3>
-You cannot call update on a hash object that was already finalized 
- you can however call final multiple times to get the digest.
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>hexdigest
-       
-       <li>buffer containing binary digest
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="CryptoHash.update"></a><strong>CryptoHash:update</strong>&nbsp;(chunk)</dt>
-<dd>
-
- Add another chunk of data to be hashed.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         chunk: Chunk of data
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-CryptoHash object (self)
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/nixio.File.html b/package/luci/documentation/api/modules/nixio.File.html
deleted file mode 100644 (file)
index 7a7500a..0000000
+++ /dev/null
@@ -1,669 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li><strong>nixio.File</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>nixio.File</code></h1>
-
-<p>
- Large File Object. 
- Large file operations are supported up to 52 bits if the Lua number type is 
- double (default).</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#File.close">File:close</a>&nbsp;()</td>
-       <td class="summary">
- Close the file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.fileno">File:fileno</a>&nbsp;()</td>
-       <td class="summary">
- Get the number of the filedescriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.lock">File:lock</a>&nbsp;(command, length)</td>
-       <td class="summary">
- Apply or test a lock on the file.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.read">File:read</a>&nbsp;(length)</td>
-       <td class="summary">
- Read from a file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.seek">File:seek</a>&nbsp;(offset, whence)</td>
-       <td class="summary">
- Reposition read / write offset of the file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.setblocking">File:setblocking</a>&nbsp;(blocking)</td>
-       <td class="summary">
- (POSIX) Set the blocking mode of the file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.stat">File:stat</a>&nbsp;(field)</td>
-       <td class="summary">
- Get file status and attributes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.sync">File:sync</a>&nbsp;(data_only)</td>
-       <td class="summary">
- Synchronizes the file with the storage device.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.tell">File:tell</a>&nbsp;()</td>
-       <td class="summary">
- Return the current read / write offset of the file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#File.write">File:write</a>&nbsp;(buffer, offset, length)</td>
-       <td class="summary">
- Write to the file descriptor.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="File.close"></a><strong>File:close</strong>&nbsp;()</dt>
-<dd>
-
- Close the file descriptor.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.fileno"></a><strong>File:fileno</strong>&nbsp;()</dt>
-<dd>
-
- Get the number of the filedescriptor.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-file descriptor number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.lock"></a><strong>File:lock</strong>&nbsp;(command, length)</dt>
-<dd>
-
- Apply or test a lock on the file.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         command: Locking Command ["lock", "tlock", "ulock", "test"]
-       </li>
-       
-       <li>
-         length: Amount of Bytes to lock from current offset (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls lockf() on POSIX and _locking() on Windows.
-       
-       <li>The "lock" command is blocking, "tlock" is non-blocking, 
- "ulock" unlocks and "test" only tests for the lock.
-       
-       <li>The "test" command is not available on Windows.
-       
-       <li>Locks are by default advisory on POSIX, but mandatory on Windows.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.read"></a><strong>File:read</strong>&nbsp;(length)</dt>
-<dd>
-
- Read from a file descriptor.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Amount of data to read (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li><strong>Warning:</strong> It is not guaranteed that all requested data 
- is read at once especially when dealing with pipes. 
- You have to check the return value - the length of the buffer actually read - 
- or use the safe IO functions in the high-level IO utility module.
-       
-       <li>The length of the return buffer is limited by the (compile time)  
- nixio buffersize which is <em>nixio.const.buffersize</em> (8192 by default). 
- Any read request greater than that will be safely truncated to this value.  
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-buffer containing data successfully read
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.seek"></a><strong>File:seek</strong>&nbsp;(offset, whence)</dt>
-<dd>
-
- Reposition read / write offset of the file descriptor. 
- The seek will be done either from the beginning of the file or relative 
- to the current position or relative to the end.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         offset: File Offset
-       </li>
-       
-       <li>
-         whence: Starting point [<strong>"set"</strong>, "cur", "end"]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls lseek().
-
-
-
-<h3>Return value:</h3>
-new (absolute) offset position
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.setblocking"></a><strong>File:setblocking</strong>&nbsp;(blocking)</dt>
-<dd>
-
- (POSIX) Set the blocking mode of the file descriptor.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         blocking: (boolean)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.stat"></a><strong>File:stat</strong>&nbsp;(field)</dt>
-<dd>
-
- Get file status and attributes.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         field: Only return a specific field, not the whole table (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls fstat().
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>atime = Last access timestamp</li> 
- <li>blksize = Blocksize (POSIX only)</li> 
- <li>blocks = Blocks used (POSIX only)</li> 
- <li>ctime = Creation timestamp</li> 
- <li>dev = Device ID</li> 
- <li>gid = Group ID</li> 
- <li>ino = Inode</li> 
- <li>modedec = Mode converted into a decimal number</li> 
- <li>modestr = Mode as string as returned by <code>ls -l</code></li> 
- <li>mtime = Last modification timestamp</li> 
- <li>nlink = Number of links</li> 
- <li>rdev = Device ID (if special file)</li> 
- <li>size = Size in bytes</li> 
- <li>type = ["reg", "dir", "chr", "blk", "fifo", "lnk", "sock"]</li> 
- <li>uid = User ID</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.sync"></a><strong>File:sync</strong>&nbsp;(data_only)</dt>
-<dd>
-
- Synchronizes the file with the storage device. 
- Returns when the file is successfully written to the disk.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         data_only: Do not synchronize the metadata. (optional, boolean)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls fsync() when data_only equals false 
- otherwise fdatasync(), on Windows _commit() is used instead.
-       
-       <li>fdatasync() is only supported by Linux and Solaris. For other systems 
- the <em>data_only</em> parameter is ignored and fsync() is always called.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.tell"></a><strong>File:tell</strong>&nbsp;()</dt>
-<dd>
-
- Return the current read / write offset of the file descriptor.
-
-
-
-
-
-<h3>Usage:</h3>
-This function calls lseek() with offset 0 from the current position.
-
-
-
-<h3>Return value:</h3>
-offset position
-
-
-
-</dd>
-
-
-
-
-<dt><a name="File.write"></a><strong>File:write</strong>&nbsp;(buffer, offset, length)</dt>
-<dd>
-
- Write to the file descriptor.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer holding the data to be written.
-       </li>
-       
-       <li>
-         offset: Offset to start reading the buffer from. (optional)
-       </li>
-       
-       <li>
-         length: Length of chunk to read from the buffer. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li><strong>Warning:</strong> It is not guaranteed that all data 
- in the buffer is written at once especially when dealing with pipes. 
- You have to check the return value - the number of bytes actually written - 
- or use the safe IO functions in the high-level IO utility module.
-       
-       <li>Unlike standard Lua indexing the lowest offset and default is 0.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-number of bytes written
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/nixio.README.html b/package/luci/documentation/api/modules/nixio.README.html
deleted file mode 100644 (file)
index 22dd793..0000000
+++ /dev/null
@@ -1,370 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li><strong>nixio.README</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio.README</code></h1>
-
-<p>
- General Information.</p>
-
-
-
-
-
-
-
-
-
-
-<h2>Tables</h2>
-<table class="table_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#Errorhandling">Errorhandling</a></td>
-       <td class="summary">
- General error handling information.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Functions">Functions</a></td>
-       <td class="summary">
- Function conventions.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Platforms">Platforms</a></td>
-       <td class="summary">
- Platform information.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLS-Crypto">TLS-Crypto</a></td>
-       <td class="summary">
- Cryptography and TLS libraries.</td>
-       </tr>
-
-</table>
-
-
-
-<br/>
-<br/>
-
-
-
-
-<h2><a name="tables"></a>Tables</h2>
-<dl class="table">
-
-<dt><a name="Errorhandling"></a><strong>Errorhandling</strong></dt>
-<dd>
- General error handling information. 
- <ul> 
- <li> Most of the functions available in this library may fail. If any error 
- occurs the function returns <strong>nil or false</strong>, an error code 
- (usually errno) and an additional error message text (if avaialable).</li> 
- <li>At the moment false is only returned when a non-blocking I/O function 
- fails with EAGAIN, EWOULDBLOCK or WSAEWOULDBLOCK for any others nil is 
- returned as first parameter. Therefore you can use false to write portable 
- non-blocking I/O applications.</li> 
- <li>Note that the function documentation does only mention the return values 
- in case of a successful operation.</li>  
- <li>You can find a table of common error numbers and other useful constants 
- like signal numbers in <strong>nixio.const</strong> e.g. nixio.const.EINVAL, 
- nixio.const.SIGTERM, etc. For portability there is a second error constant 
- table <strong>nixio.const_sock</strong> for socket error codes. This might 
- be important if you are dealing with Windows applications, on POSIX however 
- const_sock is just an alias for const.</li> 
- <li>With some exceptions - which are explicitely stated in the function 
- documentation - all blocking functions are signal-protected and will not fail 
- with EINTR.</li> 
- <li>On POSIX the SIGPIPE signal will be set to ignore upon initialization. 
- You should restore the default behaviour or set a custom signal handler 
- in your program after loading nixio if you need this behaviour.</li> 
- </ul>
-
-
-
-</dd>
-
-
-<dt><a name="Functions"></a><strong>Functions</strong></dt>
-<dd>
- Function conventions. 
- <br />In general all functions are namend and behave like their POSIX API 
- counterparts - where applicable - applying the following rules: 
- <ul> 
- <li>Functions should be named like the underlying POSIX API function omitting 
- prefixes or suffixes - especially when placed in an object-context ( 
- lockf -> File:lock, fsync -> File:sync, dup2 -> dup, ...)</li> 
- <li>If you are unclear about the behaviour of a function you should consult 
- your OS API documentation (e.g. the manpages).</li> 
- <li>If the name is significantly different from the POSIX-function, the 
- underlying function(s) are stated in the documentation.</li> 
- <li>Parameters should reflect those of the C-API, buffer length arguments and  
- by-reference parameters should be omitted for practical purposes.</li> 
- <li>If a C function accepts a bitfield as parameter, it should be translated 
- into lower case string flags representing the flags if the bitfield is the  
- last parameter and also omitting prefixes or suffixes. (e.g.  waitpid 
- (pid, &s, WNOHANG | WUNTRACED) -> waitpid(pid, "nohang", "untraced"),  
- getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) -> 
- Socket:getopt("socket", "reuseaddr"), etc.) </li> 
- <li>If it is not applicable to provide a string representation of the 
- bitfield a bitfield generator helper is provided. It is named FUNCTION_flags. 
- (open("/tmp/test", O_RDONLY | O_NONBLOCK) -> open("/tmp/test", open_flags( 
- "rdonly", "nonblock")))</li>   
- </ul>
-
-
-
-</dd>
-
-
-<dt><a name="Platforms"></a><strong>Platforms</strong></dt>
-<dd>
- Platform information. 
- <ul> 
- <li>The minimum platform requirements are a decent POSIX 2001 support. 
- Builds are more or less tested on Linux, Solaris and FreeBSD. Builds for 
- Windows XP SP1 and later can be compiled with MinGW either from Windows 
- itself or using the MinGW cross-compiler. Earlier versions of Windows are not 
- supported.</li> 
- <li>In general all functions which don't have any remarks  
- in their documentation are available on all platforms.</li> 
- <li>Functions with a (POSIX), (Linux) or similar prefix are only available 
- on these specific platforms. Same appplies to parameters of functions 
- with a similar suffix.</li> 
- <li>Some functions might have limitations on some platforms. This should 
- be stated in the documentation. Please also consult your OS API  
- documentation.</li>    
- </ul>
-
-
-
-</dd>
-
-
-<dt><a name="TLS-Crypto"></a><strong>TLS-Crypto</strong></dt>
-<dd>
- Cryptography and TLS libraries. 
- <ul> 
- <li>Currently 3 underlying cryptography libraries are supported: openssl, 
- cyassl and axTLS. The name of the library in use is written to  
- <strong>nixio.tls_provider</strong></li> 
- <li>You should whenever possible use openssl or cyassl as axTLS has only  
- limited support. It does not provide support for non-blocking sockets and 
- is probably less audited than the other ones.</li> 
- <li>As the supported Windows versions are not suitable for embedded devices 
- axTLS is at the moment not supported on Windows.</li>   
- </ul>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/nixio.Socket.html b/package/luci/documentation/api/modules/nixio.Socket.html
deleted file mode 100644 (file)
index 1850991..0000000
+++ /dev/null
@@ -1,1029 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li><strong>nixio.Socket</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>nixio.Socket</code></h1>
-
-<p>
- Socket Object. 
- Supports IPv4, IPv6 and UNIX (POSIX only) families.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.accept">Socket:accept</a>&nbsp;()</td>
-       <td class="summary">
- Accept a connection on the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.bind">Socket:bind</a>&nbsp;(host, port)</td>
-       <td class="summary">
- Bind the socket to a network address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.close">Socket:close</a>&nbsp;()</td>
-       <td class="summary">
- Close the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.connect">Socket:connect</a>&nbsp;(host, port)</td>
-       <td class="summary">
- Connect the socket to a network address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.fileno">Socket:fileno</a>&nbsp;()</td>
-       <td class="summary">
- Get the number of the filedescriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.getopt">Socket:getopt</a>&nbsp;(level, option)</td>
-       <td class="summary">
- Get a socket option.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.getpeername">Socket:getpeername</a>&nbsp;()</td>
-       <td class="summary">
- Get the peer address of a socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.getsockname">Socket:getsockname</a>&nbsp;()</td>
-       <td class="summary">
- Get the local address of a socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.listen">Socket:listen</a>&nbsp;(backlog)</td>
-       <td class="summary">
- Listen for connections on the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.read  ">Socket:read  </a>&nbsp;(length)</td>
-       <td class="summary">
- Receive a message on the socket (This is an alias for recv).</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.recv  ">Socket:recv  </a>&nbsp;(length)</td>
-       <td class="summary">
- Receive a message on the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.recvfrom">Socket:recvfrom</a>&nbsp;(length)</td>
-       <td class="summary">
- Receive a message on the socket including the senders source address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.send">Socket:send</a>&nbsp;(buffer, offset, length)</td>
-       <td class="summary">
- Send a message on the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.sendto">Socket:sendto</a>&nbsp;(buffer, host, port, offset, length)</td>
-       <td class="summary">
- Send a message on the socket specifying the destination.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.setblocking">Socket:setblocking</a>&nbsp;(blocking)</td>
-       <td class="summary">
- Set the blocking mode of the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.setopt">Socket:setopt</a>&nbsp;(level, option, value)</td>
-       <td class="summary">
- Set a socket option.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.shutdown">Socket:shutdown</a>&nbsp;(how)</td>
-       <td class="summary">
- Shut down part of a full-duplex connection.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#Socket.write">Socket:write</a>&nbsp;(buffer, offset, length)</td>
-       <td class="summary">
- Send a message on the socket (This is an alias for send).</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="Socket.accept"></a><strong>Socket:accept</strong>&nbsp;()</dt>
-<dd>
-
- Accept a connection on the socket.
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>Socket Object
-       
-       <li>Peer IP-Address
-       
-       <li>Peer Port
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.bind"></a><strong>Socket:bind</strong>&nbsp;(host, port)</dt>
-<dd>
-
- Bind the socket to a network address.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         host: Host (optional, default: all addresses)
-       </li>
-       
-       <li>
-         port: Port or service description
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls getaddrinfo() and bind() but NOT listen().
-       
-       <li>If <em>host</em> is a domain name it will be looked up and bind()  
- tries the IP-Addresses in the order returned by the DNS resolver 
- until the bind succeeds. 
-       
-       <li>UNIX sockets ignore the <em>port</em>, 
- and interpret <em>host</em> as a socket path.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.close"></a><strong>Socket:close</strong>&nbsp;()</dt>
-<dd>
-
- Close the socket.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.connect"></a><strong>Socket:connect</strong>&nbsp;(host, port)</dt>
-<dd>
-
- Connect the socket to a network address.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         host: Hostname or IP-Address (optional, default: localhost)
-       </li>
-       
-       <li>
-         port: Port or service description
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls getaddrinfo() and connect().
-       
-       <li>If <em>host</em> is a domain name it will be looked up and connect()  
- tries the IP-Addresses in the order returned by the DNS resolver 
- until the connect succeeds. 
-       
-       <li>UNIX sockets ignore the <em>port</em>, 
- and interpret <em>host</em> as a socket path.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.fileno"></a><strong>Socket:fileno</strong>&nbsp;()</dt>
-<dd>
-
- Get the number of the filedescriptor.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-file descriptor number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.getopt"></a><strong>Socket:getopt</strong>&nbsp;(level, option)</dt>
-<dd>
-
- Get a socket option.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         level: Level ["socket", "tcp", "ip", "ipv6"]
-       </li>
-       
-       <li>
-         option: Option        ["keepalive", "reuseaddr", "sndbuf", "rcvbuf",  
- "priority", "broadcast", "linger", "sndtimeo", "rcvtimeo", "dontroute",  
- "bindtodevice", "error", "oobinline", "cork" (TCP),  "nodelay" (TCP), 
- "mtu" (IP, IPv6), "hdrincl" (IP), "multicast_ttl" (IP), "multicast_loop" 
- (IP, IPv6), "multicast_if" (IP, IPv6), "v6only" (IPv6), "multicast_hops" 
- (IPv6), "add_membership" (IP, IPv6), "drop_membership" (IP, IPv6)]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.getpeername"></a><strong>Socket:getpeername</strong>&nbsp;()</dt>
-<dd>
-
- Get the peer address of a socket.
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>IP-Address
-       
-       <li>Port
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.getsockname"></a><strong>Socket:getsockname</strong>&nbsp;()</dt>
-<dd>
-
- Get the local address of a socket.
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>IP-Address
-       
-       <li>Port
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.listen"></a><strong>Socket:listen</strong>&nbsp;(backlog)</dt>
-<dd>
-
- Listen for connections on the socket.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         backlog: Length of queue for pending connections
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.read  "></a><strong>Socket:read  </strong>&nbsp;(length)</dt>
-<dd>
-
- Receive a message on the socket (This is an alias for recv). 
- See the recvfrom description for more details.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Amount of data to read (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-buffer containing data successfully read
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Socket.recvfrom">
-               Socket:recvfrom
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Socket.recv  "></a><strong>Socket:recv  </strong>&nbsp;(length)</dt>
-<dd>
-
- Receive a message on the socket. 
- This function is identical to recvfrom except that it does not return  
- the sender's source address. See the recvfrom description for more details.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Amount of data to read (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-buffer containing data successfully read
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Socket.recvfrom">
-               Socket:recvfrom
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Socket.recvfrom"></a><strong>Socket:recvfrom</strong>&nbsp;(length)</dt>
-<dd>
-
- Receive a message on the socket including the senders source address.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Amount of data to read (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li><strong>Warning:</strong> It is not guaranteed that all requested data 
- is read at once. 
- You have to check the return value - the length of the buffer actually read - 
- or use the safe IO functions in the high-level IO utility module.
-       
-       <li>The length of the return buffer is limited by the (compile time)  
- nixio buffersize which is <em>nixio.const.buffersize</em> (8192 by default). 
- Any read request greater than that will be safely truncated to this value.  
-       
-</ul>
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>buffer containing data successfully read
-       
-       <li>host                IP-Address of the sender
-       
-       <li>port                Port of the sender
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.send"></a><strong>Socket:send</strong>&nbsp;(buffer, offset, length)</dt>
-<dd>
-
- Send a message on the socket. 
- This function is identical to sendto except for the missing destination 
- parameters. See the sendto description for a detailed description.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer holding the data to be written.
-       </li>
-       
-       <li>
-         offset: Offset to start reading the buffer from. (optional)
-       </li>
-       
-       <li>
-         length: Length of chunk to read from the buffer. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number of bytes written
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Socket.sendto">
-               Socket:sendto
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="Socket.sendto"></a><strong>Socket:sendto</strong>&nbsp;(buffer, host, port, offset, length)</dt>
-<dd>
-
- Send a message on the socket specifying the destination.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer holding the data to be written.
-       </li>
-       
-       <li>
-         host: Target IP-Address
-       </li>
-       
-       <li>
-         port: Target Port
-       </li>
-       
-       <li>
-         offset: Offset to start reading the buffer from. (optional)
-       </li>
-       
-       <li>
-         length: Length of chunk to read from the buffer. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li><strong>Warning:</strong> It is not guaranteed that all data 
- in the buffer is written at once. 
- You have to check the return value - the number of bytes actually written - 
- or use the safe IO functions in the high-level IO utility module.
-       
-       <li>Unlike standard Lua indexing the lowest offset and default is 0.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-number of bytes written
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.setblocking"></a><strong>Socket:setblocking</strong>&nbsp;(blocking)</dt>
-<dd>
-
- Set the blocking mode of the socket.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         blocking: (boolean)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.setopt"></a><strong>Socket:setopt</strong>&nbsp;(level, option, value)</dt>
-<dd>
-
- Set a socket option.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         level: Level ["socket", "tcp", "ip", "ipv6"]
-       </li>
-       
-       <li>
-         option: Option        ["keepalive", "reuseaddr", "sndbuf", "rcvbuf",  
- "priority", "broadcast", "linger", "sndtimeo", "rcvtimeo", "dontroute",  
- "bindtodevice", "error", "oobinline", "cork" (TCP),  "nodelay" (TCP), 
- "mtu" (IP, IPv6), "hdrincl" (IP), "multicast_ttl" (IP), "multicast_loop" 
- (IP, IPv6), "multicast_if" (IP, IPv6), "v6only" (IPv6), "multicast_hops" 
- (IPv6), "add_membership" (IP, IPv6), "drop_membership" (IP, IPv6)]
-       </li>
-       
-       <li>
-         value: Value
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.shutdown"></a><strong>Socket:shutdown</strong>&nbsp;(how)</dt>
-<dd>
-
- Shut down part of a full-duplex connection.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         how: (optional, default: rdwr) ["rdwr", "rd", "wr"] 
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="Socket.write"></a><strong>Socket:write</strong>&nbsp;(buffer, offset, length)</dt>
-<dd>
-
- Send a message on the socket (This is an alias for send). 
- See the sendto description for a detailed description.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer holding the data to be written.
-       </li>
-       
-       <li>
-         offset: Offset to start reading the buffer from. (optional)
-       </li>
-       
-       <li>
-         length: Length of chunk to read from the buffer. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number of bytes written
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#Socket.sendto">
-               Socket:sendto
-       </a>
-       
-</ul>
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/nixio.TLSContext.html b/package/luci/documentation/api/modules/nixio.TLSContext.html
deleted file mode 100644 (file)
index c84d318..0000000
+++ /dev/null
@@ -1,475 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li><strong>nixio.TLSContext</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>nixio.TLSContext</code></h1>
-
-<p>
- Transport Layer Security Context Object.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSContext.create">TLSContext:create</a>&nbsp;(socket)</td>
-       <td class="summary">
- Create a TLS Socket from a socket descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSContext.set_cert">TLSContext:set_cert</a>&nbsp;(path)</td>
-       <td class="summary">
- Assign a PEM certificate to this context.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSContext.set_ciphers">TLSContext:set_ciphers</a>&nbsp;(cipherlist)</td>
-       <td class="summary">
- Set the available ciphers for this context.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSContext.set_key">TLSContext:set_key</a>&nbsp;(path)</td>
-       <td class="summary">
- Assign a PEM private key to this context.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSContext.set_verify">TLSContext:set_verify</a>&nbsp;(flag1, ...)</td>
-       <td class="summary">
- Set the verification flags of this context.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSContext.set_verify_depth">TLSContext:set_verify_depth</a>&nbsp;(depth)</td>
-       <td class="summary">
- Set the verification depth of this context.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="TLSContext.create"></a><strong>TLSContext:create</strong>&nbsp;(socket)</dt>
-<dd>
-
- Create a TLS Socket from a socket descriptor.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         socket: Socket Object
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-TLSSocket Object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSContext.set_cert"></a><strong>TLSContext:set_cert</strong>&nbsp;(path)</dt>
-<dd>
-
- Assign a PEM certificate to this context.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Certificate File path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls SSL_CTX_use_certificate_chain_file().
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSContext.set_ciphers"></a><strong>TLSContext:set_ciphers</strong>&nbsp;(cipherlist)</dt>
-<dd>
-
- Set the available ciphers for this context.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         cipherlist: String containing a list of ciphers
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls SSL_CTX_set_cipher_list().
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSContext.set_key"></a><strong>TLSContext:set_key</strong>&nbsp;(path)</dt>
-<dd>
-
- Assign a PEM private key to this context.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Private Key File path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls SSL_CTX_use_PrivateKey_file().
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSContext.set_verify"></a><strong>TLSContext:set_verify</strong>&nbsp;(flag1, ...)</dt>
-<dd>
-
- Set the verification flags of this context.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         flag1: First Flag     ["none", "peer", "verify_fail_if_no_peer_cert",  
- "client_once"]
-       </li>
-       
-       <li>
-         ...: More Flags       [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls SSL_CTX_set_verify().
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSContext.set_verify_depth"></a><strong>TLSContext:set_verify_depth</strong>&nbsp;(depth)</dt>
-<dd>
-
- Set the verification depth of this context.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         depth: Depth
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls SSL_CTX_set_verify_depth().
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/nixio.TLSSocket.html b/package/luci/documentation/api/modules/nixio.TLSSocket.html
deleted file mode 100644 (file)
index 5d6098a..0000000
+++ /dev/null
@@ -1,571 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li><strong>nixio.TLSSocket</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>nixio.TLSSocket</code></h1>
-
-<p>
- TLS Socket Object. 
- TLS Sockets contain the underlying socket and context in the fields 
- "socket" and "context".</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.accept">TLSSocket:accept</a>&nbsp;()</td>
-       <td class="summary">
- Wait for a TLS handshake from a client.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.connect">TLSSocket:connect</a>&nbsp;()</td>
-       <td class="summary">
- Initiate the TLS handshake as client with the server.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.read  ">TLSSocket:read  </a>&nbsp;(length)</td>
-       <td class="summary">
- Receive a message on the socket (This is an alias for recv).</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.recv">TLSSocket:recv</a>&nbsp;(length)</td>
-       <td class="summary">
- Receive a message on the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.send">TLSSocket:send</a>&nbsp;(buffer, offset, length)</td>
-       <td class="summary">
- Send a message to the socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.shutdown">TLSSocket:shutdown</a>&nbsp;()</td>
-       <td class="summary">
- Shut down the TLS connection.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#TLSSocket.write">TLSSocket:write</a>&nbsp;(buffer, offset, length)</td>
-       <td class="summary">
- Send a message on the socket (This is an alias for send).</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="TLSSocket.accept"></a><strong>TLSSocket:accept</strong>&nbsp;()</dt>
-<dd>
-
- Wait for a TLS handshake from a client.
-
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls SSL_accept().
-       
-       <li>You have to call either connect or accept before transmitting data.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#TLSSocket.connect">
-               TLSSocket:connect
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="TLSSocket.connect"></a><strong>TLSSocket:connect</strong>&nbsp;()</dt>
-<dd>
-
- Initiate the TLS handshake as client with the server.
-
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls SSL_connect().
-       
-       <li>You have to call either connect or accept before transmitting data.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#TLSSocket.accept">
-               TLSSocket:accept
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="TLSSocket.read  "></a><strong>TLSSocket:read  </strong>&nbsp;(length)</dt>
-<dd>
-
- Receive a message on the socket (This is an alias for recv). 
- See the recv description for more details.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Amount of data to read (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-buffer containing data successfully read
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#TLSSocket.recv">
-               TLSSocket:recv
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="TLSSocket.recv"></a><strong>TLSSocket:recv</strong>&nbsp;(length)</dt>
-<dd>
-
- Receive a message on the socket.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Amount of data to read (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls SSL_read().
-       
-       <li><strong>Warning:</strong> It is not guaranteed that all requested data 
- is read at once. 
- You have to check the return value - the length of the buffer actually read - 
- or use the safe IO functions in the high-level IO utility module.
-       
-       <li>The length of the return buffer is limited by the (compile time)  
- nixio buffersize which is <em>nixio.const.buffersize</em> (8192 by default). 
- Any read request greater than that will be safely truncated to this value.  
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-buffer containing data successfully read
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSSocket.send"></a><strong>TLSSocket:send</strong>&nbsp;(buffer, offset, length)</dt>
-<dd>
-
- Send a message to the socket.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer holding the data to be written.
-       </li>
-       
-       <li>
-         offset: Offset to start reading the buffer from. (optional)
-       </li>
-       
-       <li>
-         length: Length of chunk to read from the buffer. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function calls SSL_write().
-       
-       <li><strong>Warning:</strong> It is not guaranteed that all data 
- in the buffer is written at once. 
- You have to check the return value - the number of bytes actually written - 
- or use the safe IO functions in the high-level IO utility module.
-       
-       <li>Unlike standard Lua indexing the lowest offset and default is 0.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-number of bytes written
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSSocket.shutdown"></a><strong>TLSSocket:shutdown</strong>&nbsp;()</dt>
-<dd>
-
- Shut down the TLS connection.
-
-
-
-
-
-<h3>Usage:</h3>
-This function calls SSL_shutdown().
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="TLSSocket.write"></a><strong>TLSSocket:write</strong>&nbsp;(buffer, offset, length)</dt>
-<dd>
-
- Send a message on the socket (This is an alias for send). 
- See the send description for a detailed description.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer holding the data to be written.
-       </li>
-       
-       <li>
-         offset: Offset to start reading the buffer from. (optional)
-       </li>
-       
-       <li>
-         length: Length of chunk to read from the buffer. (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number of bytes written
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#TLSSocket.send">
-               TLSSocket:send
-       </a>
-       
-</ul>
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/nixio.UnifiedIO.html b/package/luci/documentation/api/modules/nixio.UnifiedIO.html
deleted file mode 100644 (file)
index 6410ffb..0000000
+++ /dev/null
@@ -1,763 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li><strong>nixio.UnifiedIO</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Object Instance <code>nixio.UnifiedIO</code></h1>
-
-<p>
- Unified high-level I/O utility API for Files, Sockets and TLS-Sockets. 
- These functions are added to the object function tables by doing <strong> 
- require "nixio.util"</strong>, can be used on all nixio IO  Descriptors and 
- are based on the shared low-level read() and write() functions.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.blocksource">UnifiedIO:blocksource</a>&nbsp;(blocksize, limit)</td>
-       <td class="summary">
- Create a block-based iterator.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.close">UnifiedIO:close</a>&nbsp;()</td>
-       <td class="summary">
- Close the descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.copy">UnifiedIO:copy</a>&nbsp;(fdout, size)</td>
-       <td class="summary">
- Copy data from the current descriptor to another one.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.copyz">UnifiedIO:copyz</a>&nbsp;(fdout, size)</td>
-       <td class="summary">
- Copy data from the current descriptor to another one using kernel-space 
- copying if possible.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.is_file">UnifiedIO:is_file</a>&nbsp;()</td>
-       <td class="summary">
- Test whether the I/O-Descriptor is a file.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.is_socket">UnifiedIO:is_socket</a>&nbsp;()</td>
-       <td class="summary">
- Test whether the I/O-Descriptor is a socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.is_tls_socket">UnifiedIO:is_tls_socket</a>&nbsp;()</td>
-       <td class="summary">
- Test whether the I/O-Descriptor is a TLS socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.linesource">UnifiedIO:linesource</a>&nbsp;(limit)</td>
-       <td class="summary">
- Create a line-based iterator.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.readall">UnifiedIO:readall</a>&nbsp;(length)</td>
-       <td class="summary">
- Read a block of data and wait until all data is available.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.sink">UnifiedIO:sink</a>&nbsp;(close_when_done)</td>
-       <td class="summary">
- Create a sink.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#UnifiedIO.writeall">UnifiedIO:writeall</a>&nbsp;(block)</td>
-       <td class="summary">
- Write a block of data and wait until all data is written.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="UnifiedIO.blocksource"></a><strong>UnifiedIO:blocksource</strong>&nbsp;(blocksize, limit)</dt>
-<dd>
-
- Create a block-based iterator.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         blocksize: Advisory blocksize (optional)
-       </li>
-       
-       <li>
-         limit: Amount of data to consume (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the low-level read function of the descriptor.
-       
-       <li>The blocksize given is only advisory and to be seen as an upper limit, 
- if an underlying read returns less bytes the chunk is nevertheless returned.
-       
-       <li>If the limit parameter is omitted, the iterator returns data 
- until an end-of-file, end-of-stream, connection shutdown or similar happens.
-       
-       <li>The iterator will not buffer so it is safe to mix with calls to read.
-       
-       <li>If the descriptor is non-blocking the iterator may fail with EAGAIN.
-       
-       <li>The iterator can be used as an LTN12 source.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-Block-based Iterator
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.close"></a><strong>UnifiedIO:close</strong>&nbsp;()</dt>
-<dd>
-
- Close the descriptor.
-
-
-
-
-
-<h3>Usage:</h3>
-If the descriptor is a TLS-socket the underlying descriptor is 
- closed without touching the TLS connection.
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.copy"></a><strong>UnifiedIO:copy</strong>&nbsp;(fdout, size)</dt>
-<dd>
-
- Copy data from the current descriptor to another one.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         fdout: Target Descriptor
-       </li>
-       
-       <li>
-         size: Bytes to copy (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the blocksource function of the source descriptor 
- and the sink function of the target descriptor.
-       
-       <li>If the limit parameter is omitted, data is copied 
- until an end-of-file, end-of-stream, connection shutdown or similar happens.
-       
-       <li>If the descriptor is non-blocking the function may fail with EAGAIN.
-       
-</ul>
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>bytes that were successfully written if no error occurred
-       
-       <li>- reserved for error code -
-       
-       <li>- reserved for error message -
-       
-       <li>bytes that were successfully written even if an error occurred
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.copyz"></a><strong>UnifiedIO:copyz</strong>&nbsp;(fdout, size)</dt>
-<dd>
-
- Copy data from the current descriptor to another one using kernel-space 
- copying if possible.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         fdout: Target Descriptor
-       </li>
-       
-       <li>
-         size: Bytes to copy (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the sendfile() syscall to copy the data or the 
- blocksource function of the source descriptor and the sink function 
- of the target descriptor as a fallback mechanism.
-       
-       <li>If the limit parameter is omitted, data is copied 
- until an end-of-file, end-of-stream, connection shutdown or similar happens.
-       
-       <li>If the descriptor is non-blocking the function may fail with EAGAIN.
-       
-</ul>
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>bytes that were successfully written if no error occurred
-       
-       <li>- reserved for error code -
-       
-       <li>- reserved for error message -
-       
-       <li>bytes that were successfully written even if an error occurred
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.is_file"></a><strong>UnifiedIO:is_file</strong>&nbsp;()</dt>
-<dd>
-
- Test whether the I/O-Descriptor is a file. 
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-boolean
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.is_socket"></a><strong>UnifiedIO:is_socket</strong>&nbsp;()</dt>
-<dd>
-
- Test whether the I/O-Descriptor is a socket. 
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-boolean
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.is_tls_socket"></a><strong>UnifiedIO:is_tls_socket</strong>&nbsp;()</dt>
-<dd>
-
- Test whether the I/O-Descriptor is a TLS socket. 
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-boolean
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.linesource"></a><strong>UnifiedIO:linesource</strong>&nbsp;(limit)</dt>
-<dd>
-
- Create a line-based iterator. 
- Lines may end with either \n or \r\n, these control chars are not included 
- in the return value.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         limit: Line limit
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the low-level read function of the descriptor.
-       
-       <li><strong>Note:</strong> This function uses an internal buffer to read 
- ahead. Do NOT mix calls to read(all) and the returned iterator. If you want 
- to stop reading line-based and want to use the read(all) functions instead 
- you can pass "true" to the iterator which will flush the buffer  
- and return the bufferd data.
-       
-       <li>If the limit parameter is omitted, this function uses the nixio 
- buffersize (8192B by default).
-       
-       <li>If the descriptor is non-blocking the iterator may fail with EAGAIN.
-       
-       <li>The iterator can be used as an LTN12 source.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-Line-based Iterator
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.readall"></a><strong>UnifiedIO:readall</strong>&nbsp;(length)</dt>
-<dd>
-
- Read a block of data and wait until all data is available.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         length: Bytes to read (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the low-level read function of the descriptor.
-       
-       <li>If the length parameter is omitted, this function returns all data 
- that can be read before an end-of-file, end-of-stream, connection shutdown 
- or similar happens.
-       
-       <li>If the descriptor is non-blocking this function may fail with EAGAIN.
-       
-</ul>
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>data that was successfully read if no error occurred
-       
-       <li>- reserved for error code -
-       
-       <li>- reserved for error message -
-       
-       <li>data that was successfully read even if an error occurred
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.sink"></a><strong>UnifiedIO:sink</strong>&nbsp;(close_when_done)</dt>
-<dd>
-
- Create a sink. 
- This sink will simply write all data that it receives and optionally 
- close the descriptor afterwards.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         close_when_done: (optional, boolean)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the writeall function of the descriptor.
-       
-       <li>If the descriptor is non-blocking the sink may fail with EAGAIN.
-       
-       <li>The iterator can be used as an LTN12 sink.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-Sink
-
-
-
-</dd>
-
-
-
-
-<dt><a name="UnifiedIO.writeall"></a><strong>UnifiedIO:writeall</strong>&nbsp;(block)</dt>
-<dd>
-
- Write a block of data and wait until all data is written.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         block: Bytes to write
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function uses the low-level write function of the descriptor.
-       
-       <li>If the descriptor is non-blocking this function may fail with EAGAIN.
-       
-</ul>
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>bytes that were successfully written if no error occurred
-       
-       <li>- reserved for error code -
-       
-       <li>- reserved for error message -
-       
-       <li>bytes that were successfully written even if an error occurred
-       
-</ol>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/nixio.bin.html b/package/luci/documentation/api/modules/nixio.bin.html
deleted file mode 100644 (file)
index 48e6fcd..0000000
+++ /dev/null
@@ -1,423 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li><strong>nixio.bin</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio.bin</code></h1>
-
-<p>
- Binary operations and conversion.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#b64decode">b64decode</a>&nbsp;(buffer)</td>
-       <td class="summary">
- Base64 decode a given buffer.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#b64encode">b64encode</a>&nbsp;(buffer)</td>
-       <td class="summary">
- Base64 encode a given buffer.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#crc32">crc32</a>&nbsp;(buffer, initial)</td>
-       <td class="summary">
- Calculate the CRC32 value of a buffer.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#hexlify">hexlify</a>&nbsp;(buffer)</td>
-       <td class="summary">
- Return a hexadecimal ASCII represantation of the content of a buffer.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#unhexlify">unhexlify</a>&nbsp;(hexvalue)</td>
-       <td class="summary">
- Return a binary buffer from a hexadecimal ASCII representation.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="b64decode"></a><strong>b64decode</strong>&nbsp;(buffer)</dt>
-<dd>
-
- Base64 decode a given buffer.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Base 64 Encoded data
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-binary data
-
-
-
-</dd>
-
-
-
-
-<dt><a name="b64encode"></a><strong>b64encode</strong>&nbsp;(buffer)</dt>
-<dd>
-
- Base64 encode a given buffer.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-base64 encoded buffer
-
-
-
-</dd>
-
-
-
-
-<dt><a name="crc32"></a><strong>crc32</strong>&nbsp;(buffer, initial)</dt>
-<dd>
-
- Calculate the CRC32 value of a buffer. 
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer
-       </li>
-       
-       <li>
-         initial: Initial CRC32 value (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-crc32 value
-
-
-
-</dd>
-
-
-
-
-<dt><a name="hexlify"></a><strong>hexlify</strong>&nbsp;(buffer)</dt>
-<dd>
-
- Return a hexadecimal ASCII represantation of the content of a buffer. 
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         buffer: Buffer
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-representation using characters [0-9a-f]
-
-
-
-</dd>
-
-
-
-
-<dt><a name="unhexlify"></a><strong>unhexlify</strong>&nbsp;(hexvalue)</dt>
-<dd>
-
- Return a binary buffer from a hexadecimal ASCII representation. 
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         hexvalue: representation using characters [0-9a-f]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-binary data
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/nixio.bit.html b/package/luci/documentation/api/modules/nixio.bit.html
deleted file mode 100644 (file)
index 4197363..0000000
+++ /dev/null
@@ -1,740 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li><strong>nixio.bit</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio.bit</code></h1>
-
-<p>
- Bitfield operators and mainpulation functions. 
- Can be used as a drop-in replacement for bitlib.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#arshift">arshift</a>&nbsp;(oper, shift)</td>
-       <td class="summary">
- Arithmetically right shift a number.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#band">band</a>&nbsp;(oper1, oper2, ...)</td>
-       <td class="summary">
- Bitwise AND several numbers.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#bnot">bnot</a>&nbsp;(oper)</td>
-       <td class="summary">
- Invert given number.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#bor">bor</a>&nbsp;(oper1, oper2, ...)</td>
-       <td class="summary">
- Bitwise OR several numbers.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#bxor">bxor</a>&nbsp;(oper1, oper2, ...)</td>
-       <td class="summary">
- Bitwise XOR several numbers.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#cast">cast</a>&nbsp;(oper)</td>
-       <td class="summary">
- Cast a number to the bit-operating range.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#check">check</a>&nbsp;(bitfield, flag1, ...)</td>
-       <td class="summary">
- Checks whether given flags are set in a bitfield.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#div">div</a>&nbsp;(oper1, oper2, ...)</td>
-       <td class="summary">
- Integer division of 2 or more numbers.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#lshift">lshift</a>&nbsp;(oper, shift)</td>
-       <td class="summary">
- Left shift a number.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#rshift">rshift</a>&nbsp;(oper, shift)</td>
-       <td class="summary">
- Right shift a number.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#set">set</a>&nbsp;(bitfield, flag1, ...)</td>
-       <td class="summary">
- Sets one or more flags of a bitfield.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#unset">unset</a>&nbsp;(bitfield, flag1, ...)</td>
-       <td class="summary">
- Unsets one or more flags of a bitfield.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="arshift"></a><strong>arshift</strong>&nbsp;(oper, shift)</dt>
-<dd>
-
- Arithmetically right shift a number.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper: number
-       </li>
-       
-       <li>
-         shift: bits to shift 
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="band"></a><strong>band</strong>&nbsp;(oper1, oper2, ...)</dt>
-<dd>
-
- Bitwise AND several numbers.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper1: First Operand
-       </li>
-       
-       <li>
-         oper2: Second Operand
-       </li>
-       
-       <li>
-         ...: More Operands
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="bnot"></a><strong>bnot</strong>&nbsp;(oper)</dt>
-<dd>
-
- Invert given number.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper: Operand
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="bor"></a><strong>bor</strong>&nbsp;(oper1, oper2, ...)</dt>
-<dd>
-
- Bitwise OR several numbers.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper1: First Operand
-       </li>
-       
-       <li>
-         oper2: Second Operand
-       </li>
-       
-       <li>
-         ...: More Operands
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="bxor"></a><strong>bxor</strong>&nbsp;(oper1, oper2, ...)</dt>
-<dd>
-
- Bitwise XOR several numbers.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper1: First Operand
-       </li>
-       
-       <li>
-         oper2: Second Operand
-       </li>
-       
-       <li>
-         ...: More Operands
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="cast"></a><strong>cast</strong>&nbsp;(oper)</dt>
-<dd>
-
- Cast a number to the bit-operating range.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper: number
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="check"></a><strong>check</strong>&nbsp;(bitfield, flag1, ...)</dt>
-<dd>
-
- Checks whether given flags are set in a bitfield.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         bitfield: Bitfield
-       </li>
-       
-       <li>
-         flag1: First Flag
-       </li>
-       
-       <li>
-         ...: More Flags
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true when all flags are set, otherwise false
-
-
-
-</dd>
-
-
-
-
-<dt><a name="div"></a><strong>div</strong>&nbsp;(oper1, oper2, ...)</dt>
-<dd>
-
- Integer division of 2 or more numbers.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper1: Operand 1
-       </li>
-       
-       <li>
-         oper2: Operand 2
-       </li>
-       
-       <li>
-         ...: More Operands
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="lshift"></a><strong>lshift</strong>&nbsp;(oper, shift)</dt>
-<dd>
-
- Left shift a number.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper: number
-       </li>
-       
-       <li>
-         shift: bits to shift 
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="rshift"></a><strong>rshift</strong>&nbsp;(oper, shift)</dt>
-<dd>
-
- Right shift a number.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oper: number
-       </li>
-       
-       <li>
-         shift: bits to shift 
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-number
-
-
-
-</dd>
-
-
-
-
-<dt><a name="set"></a><strong>set</strong>&nbsp;(bitfield, flag1, ...)</dt>
-<dd>
-
- Sets one or more flags of a bitfield.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         bitfield: Bitfield
-       </li>
-       
-       <li>
-         flag1: First Flag
-       </li>
-       
-       <li>
-         ...: More Flags
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-altered bitfield
-
-
-
-</dd>
-
-
-
-
-<dt><a name="unset"></a><strong>unset</strong>&nbsp;(bitfield, flag1, ...)</dt>
-<dd>
-
- Unsets one or more flags of a bitfield.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         bitfield: Bitfield
-       </li>
-       
-       <li>
-         flag1: First Flag
-       </li>
-       
-       <li>
-         ...: More Flags
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-altered bitfield
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/nixio.crypto.html b/package/luci/documentation/api/modules/nixio.crypto.html
deleted file mode 100644 (file)
index b91fe28..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li><strong>nixio.crypto</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio.crypto</code></h1>
-
-<p>
- Cryptographical library.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.crypto.hash">hash</a>&nbsp;(algo)</td>
-       <td class="summary">
- Create a hash object.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.crypto.hmac">hmac</a>&nbsp;(algo, key)</td>
-       <td class="summary">
- Create a HMAC object.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="nixio.crypto.hash"></a><strong>hash</strong>&nbsp;(algo)</dt>
-<dd>
-
- Create a hash object. 
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         algo: Algorithm ["sha1", "md5"]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-CryptoHash Object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.crypto.hmac"></a><strong>hmac</strong>&nbsp;(algo, key)</dt>
-<dd>
-
- Create a HMAC object. 
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         algo: Algorithm ["sha1", "md5"]
-       </li>
-       
-       <li>
-         key: HMAC-Key
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-CryptoHash Object
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/nixio.fs.html b/package/luci/documentation/api/modules/nixio.fs.html
deleted file mode 100644 (file)
index c9d3459..0000000
+++ /dev/null
@@ -1,1558 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.html">nixio</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li><strong>nixio.fs</strong></li>
-       
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio.fs</code></h1>
-
-<p>
- Low-level and high-level filesystem manipulation library.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.access">access</a>&nbsp;(path, mode1, ...)</td>
-       <td class="summary">
- Check user's permission on a file.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.basename">basename</a>&nbsp;(path)</td>
-       <td class="summary">
- Strip the directory part from a path.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.chmod">chmod</a>&nbsp;(path, mode)</td>
-       <td class="summary">
- Change the file mode.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.chown">chown</a>&nbsp;(path, user, group)</td>
-       <td class="summary">
- (POSIX) Change owner and group of a file.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.copy">copy</a>&nbsp;(src, dest)</td>
-       <td class="summary">
- Copy a file, directory or symlink non-recursively preserving file mode, 
- timestamps, owner and group.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.copyr">copyr</a>&nbsp;(src, dest)</td>
-       <td class="summary">
- Copy a file, directory or symlink recursively preserving file mode, 
- timestamps, owner and group.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.datacopy">datacopy</a>&nbsp;(src, dest, limit)</td>
-       <td class="summary">
- Copy data between files.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.dir">dir</a>&nbsp;(path)</td>
-       <td class="summary">
- Iterate over the entries of a directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.dirname">dirname</a>&nbsp;(path)</td>
-       <td class="summary">
- Strip the base from a path.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.glob">glob</a>&nbsp;(pattern)</td>
-       <td class="summary">
- (POSIX) Find pathnames matching a pattern.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.lchown">lchown</a>&nbsp;(path, user, group)</td>
-       <td class="summary">
- (POSIX) Change owner and group of a file and do not resolve 
- if target is a symlink.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.link">link</a>&nbsp;(oldpath, newpath)</td>
-       <td class="summary">
- Create a hard link.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.lstat">lstat</a>&nbsp;(path, field)</td>
-       <td class="summary">
- Get file status and attributes and do not resolve if target is a symlink.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.mkdir">mkdir</a>&nbsp;(path, mode)</td>
-       <td class="summary">
- Create a new directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.mkdirr">mkdirr</a>&nbsp;(dest, mode)</td>
-       <td class="summary">
- Create a directory and all needed parent directories recursively.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.mkfifo">mkfifo</a>&nbsp;(path, mode)</td>
-       <td class="summary">
- (POSIX) Create a FIFO (named pipe).</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.move">move</a>&nbsp;(src, dest)</td>
-       <td class="summary">
- Rename a file, directory or symlink non-recursively across filesystems.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.mover">mover</a>&nbsp;(src, dest)</td>
-       <td class="summary">
- Rename a file, directory or symlink recursively across filesystems.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.readfile">readfile</a>&nbsp;(path, limit)</td>
-       <td class="summary">
- Read the contents of a file into a buffer.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.readlink">readlink</a>&nbsp;(path)</td>
-       <td class="summary">
- (POSIX) Read the target of a symbolic link.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.realpath">realpath</a>&nbsp;(path)</td>
-       <td class="summary">
- Return the cannonicalized absolute pathname.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.remove">remove</a>&nbsp;(path)</td>
-       <td class="summary">
- Remove a file or directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.rename">rename</a>&nbsp;(src, dest)</td>
-       <td class="summary">
- Renames a file or directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.rmdir">rmdir</a>&nbsp;(path)</td>
-       <td class="summary">
- Remove an empty directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.stat">stat</a>&nbsp;(path, field)</td>
-       <td class="summary">
- Get file status and attributes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.statvfs">statvfs</a>&nbsp;(path)</td>
-       <td class="summary">
- (POSIX) Get filesystem statistics.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.symlink">symlink</a>&nbsp;(oldpath, newpath)</td>
-       <td class="summary">
- (POSIX) Create a symbolic link.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.unlink">unlink</a>&nbsp;(path)</td>
-       <td class="summary">
- Delete a name and - if no links are left - the associated file.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.utimes">utimes</a>&nbsp;(path, actime, mtime)</td>
-       <td class="summary">
- Change file last access and last modification time.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fs.writefile">writefile</a>&nbsp;(path, data)</td>
-       <td class="summary">
- Write a buffer into a file truncating the file first.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="nixio.fs.access"></a><strong>access</strong>&nbsp;(path, mode1, ...)</dt>
-<dd>
-
- Check user's permission on a file.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         mode1: First Mode to check ["f", "r", "w", "x"]
-       </li>
-       
-       <li>
-         ...: More Modes to check      [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.basename"></a><strong>basename</strong>&nbsp;(path)</dt>
-<dd>
-
- Strip the directory part from a path.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function cannot fail and will never return nil.
-
-
-
-<h3>Return value:</h3>
-basename
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.chmod"></a><strong>chmod</strong>&nbsp;(path, mode)</dt>
-<dd>
-
- Change the file mode.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         mode: File mode        
- [decimal mode number, "[-r][-w][-xsS][-r][-w][-xsS][-r][-w][-xtT]"]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>Windows only supports setting the write-protection through the 
- "Writable to others" bit.
-       
-       <li><strong>Notice:</strong> The mode-flag for the functions 
- open, mkdir, mkfifo are affected by the umask. 
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="">
-               umask
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.chown"></a><strong>chown</strong>&nbsp;(path, user, group)</dt>
-<dd>
-
- (POSIX) Change owner and group of a file.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         user: User ID or Username             (optional)
-       </li>
-       
-       <li>
-         group: Group ID or Groupname  (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.copy"></a><strong>copy</strong>&nbsp;(src, dest)</dt>
-<dd>
-
- Copy a file, directory or symlink non-recursively preserving file mode, 
- timestamps, owner and group.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Source path
-       </li>
-       
-       <li>
-         dest: Destination path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-The destination must always be a full destination path e.g. do not 
- omit the basename even if source and destination basename are equal. 
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.copyr"></a><strong>copyr</strong>&nbsp;(src, dest)</dt>
-<dd>
-
- Copy a file, directory or symlink recursively preserving file mode, 
- timestamps, owner and group.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Source path
-       </li>
-       
-       <li>
-         dest: Destination path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-The destination must always be a full destination path e.g. do not 
- omit the basename even if source and destination basename are equal. 
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.datacopy"></a><strong>datacopy</strong>&nbsp;(src, dest, limit)</dt>
-<dd>
-
- Copy data between files.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Source file path
-       </li>
-       
-       <li>
-         dest: Destination file path
-       </li>
-       
-       <li>
-         limit: Maximum bytes to copy (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.dir"></a><strong>dir</strong>&nbsp;(path)</dt>
-<dd>
-
- Iterate over the entries of a directory.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-The special entries "." and ".." are omitted.
-
-
-
-<h3>Return value:</h3>
-directory iterator returning one entry per call
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.dirname"></a><strong>dirname</strong>&nbsp;(path)</dt>
-<dd>
-
- Strip the base from a path.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function cannot fail and will never return nil.
-
-
-
-<h3>Return value:</h3>
-dirname
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.glob"></a><strong>glob</strong>&nbsp;(pattern)</dt>
-<dd>
-
- (POSIX) Find pathnames matching a pattern.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pattern: Pattern
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>path iterator
-       
-       <li>number of matches
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.lchown"></a><strong>lchown</strong>&nbsp;(path, user, group)</dt>
-<dd>
-
- (POSIX) Change owner and group of a file and do not resolve 
- if target is a symlink.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         user: User ID or Username             (optional)
-       </li>
-       
-       <li>
-         group: Group ID or Groupname  (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.link"></a><strong>link</strong>&nbsp;(oldpath, newpath)</dt>
-<dd>
-
- Create a hard link.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oldpath: Path
-       </li>
-       
-       <li>
-         newpath: Path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function calls link() on POSIX and CreateHardLink() on Windows.
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.lstat"></a><strong>lstat</strong>&nbsp;(path, field)</dt>
-<dd>
-
- Get file status and attributes and do not resolve if target is a symlink.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         field: Only return a specific field, not the whole table (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing attributes (see stat for a detailed description)
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.fs.stat">
-               stat
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.mkdir"></a><strong>mkdir</strong>&nbsp;(path, mode)</dt>
-<dd>
-
- Create a new directory.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         mode: File mode (optional, see chmod and umask)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.fs.chmod">
-               chmod
-       </a>
-       
-       <li><a href="">
-               umask
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.mkdirr"></a><strong>mkdirr</strong>&nbsp;(dest, mode)</dt>
-<dd>
-
- Create a directory and all needed parent directories recursively. 
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         dest: Destination path
-       </li>
-       
-       <li>
-         mode: File mode (optional, see chmod and umask)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.fs.chmod">
-               chmod
-       </a>
-       
-       <li><a href="">
-               umask
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.mkfifo"></a><strong>mkfifo</strong>&nbsp;(path, mode)</dt>
-<dd>
-
- (POSIX) Create a FIFO (named pipe).
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         mode: File mode (optional, see chmod and umask)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.fs.chmod">
-               chmod
-       </a>
-       
-       <li><a href="">
-               umask
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.move"></a><strong>move</strong>&nbsp;(src, dest)</dt>
-<dd>
-
- Rename a file, directory or symlink non-recursively across filesystems.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Source path
-       </li>
-       
-       <li>
-         dest: Destination path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-The destination must always be a full destination path e.g. do not 
- omit the basename even if source and destination basename are equal. 
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.mover"></a><strong>mover</strong>&nbsp;(src, dest)</dt>
-<dd>
-
- Rename a file, directory or symlink recursively across filesystems.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Source path
-       </li>
-       
-       <li>
-         dest: Destination path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-The destination must always be a full destination path e.g. do not 
- omit the basename even if source and destination basename are equal. 
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.readfile"></a><strong>readfile</strong>&nbsp;(path, limit)</dt>
-<dd>
-
- Read the contents of a file into a buffer.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         limit: Maximum bytes to read (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-file contents
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.readlink"></a><strong>readlink</strong>&nbsp;(path)</dt>
-<dd>
-
- (POSIX) Read the target of a symbolic link.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-target path
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.realpath"></a><strong>realpath</strong>&nbsp;(path)</dt>
-<dd>
-
- Return the cannonicalized absolute pathname.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-absolute path
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.remove"></a><strong>remove</strong>&nbsp;(path)</dt>
-<dd>
-
- Remove a file or directory.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.rename"></a><strong>rename</strong>&nbsp;(src, dest)</dt>
-<dd>
-
- Renames a file or directory.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         src: Source path
-       </li>
-       
-       <li>
-         dest: Destination path
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-It is normally not possible to rename files across filesystems.
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.rmdir"></a><strong>rmdir</strong>&nbsp;(path)</dt>
-<dd>
-
- Remove an empty directory.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.stat"></a><strong>stat</strong>&nbsp;(path, field)</dt>
-<dd>
-
- Get file status and attributes.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         field: Only return a specific field, not the whole table (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>atime = Last access timestamp</li> 
- <li>blksize = Blocksize (POSIX only)</li> 
- <li>blocks = Blocks used (POSIX only)</li> 
- <li>ctime = Creation timestamp</li> 
- <li>dev = Device ID</li> 
- <li>gid = Group ID</li> 
- <li>ino = Inode</li> 
- <li>modedec = Mode converted into a decimal number</li> 
- <li>modestr = Mode as string as returned by <code>ls -l</code></li> 
- <li>mtime = Last modification timestamp</li> 
- <li>nlink = Number of links</li> 
- <li>rdev = Device ID (if special file)</li> 
- <li>size = Size in bytes</li> 
- <li>type = ["reg", "dir", "chr", "blk", "fifo", "lnk", "sock"]</li> 
- <li>uid = User ID</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.statvfs"></a><strong>statvfs</strong>&nbsp;(path)</dt>
-<dd>
-
- (POSIX) Get filesystem statistics.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path to any file within the filesystem.
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>bavail = available blocks</li> 
- <li>bfree = free blocks</li> 
- <li>blocks = number of fragments</li> 
- <li>frsize = fragment size</li> 
- <li>favail = available inodes</li> 
- <li>ffree = free inodes</li> 
- <li>files = inodes</li> 
- <li>flag = flags</li> 
- <li>fsid = filesystem ID</li> 
- <li>namemax = maximum filename length</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.symlink"></a><strong>symlink</strong>&nbsp;(oldpath, newpath)</dt>
-<dd>
-
- (POSIX) Create a symbolic link.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oldpath: Path
-       </li>
-       
-       <li>
-         newpath: Path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.unlink"></a><strong>unlink</strong>&nbsp;(path)</dt>
-<dd>
-
- Delete a name and - if no links are left - the associated file.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.utimes"></a><strong>utimes</strong>&nbsp;(path, actime, mtime)</dt>
-<dd>
-
- Change file last access and last modification time.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         actime: Last access timestamp (optional, default: current time)
-       </li>
-       
-       <li>
-         mtime: Last modification timestamp (optional, default: actime)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fs.writefile"></a><strong>writefile</strong>&nbsp;(path, data)</dt>
-<dd>
-
- Write a buffer into a file truncating the file first.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Path
-       </li>
-       
-       <li>
-         data: Data to write
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/api/modules/nixio.html b/package/luci/documentation/api/modules/nixio.html
deleted file mode 100644 (file)
index 65294a6..0000000
+++ /dev/null
@@ -1,2401 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-    <title>Reference</title>
-    <link rel="stylesheet" href="../luadoc.css" type="text/css" />
-       <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
-</head>
-
-<body>
-<div id="container">
-
-<div id="product">
-       <div id="product_logo"></div>
-       <div id="product_name"><big><b></b></big></div>
-       <div id="product_description"></div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-
-
-<h1>LuaDoc</h1>
-<ul>
-       
-       <li><a href="../index.html">Index</a></li>
-       
-</ul>
-
-
-<!-- Module list -->
-
-<h1>Modules</h1>
-<ul>
-
-       <li>
-               <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.html">luci.http</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.date.html">luci.http.date</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.http.mime.html">luci.http.mime</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.i18n.html">luci.i18n</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.html">luci.ip</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.json.html">luci.json</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.html">luci.jsonc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.model.uci.html">luci.model.uci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.html">luci.rpcc</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.html">luci.sys</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.init.html">luci.sys.init</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.net.html">luci.sys.net</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.process.html">luci.sys.process</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.user.html">luci.sys.user</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
-       </li>
-
-       <li>
-               <a href="../modules/luci.util.html">luci.util</a>
-       </li>
-
-       <li><strong>nixio</strong></li>
-       
-       <li>
-               <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.File.html">nixio.File</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.README.html">nixio.README</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.Socket.html">nixio.Socket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bin.html">nixio.bin</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.bit.html">nixio.bit</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.crypto.html">nixio.crypto</a>
-       </li>
-
-       <li>
-               <a href="../modules/nixio.fs.html">nixio.fs</a>
-       </li>
-
-</ul>
-
-
-
-<!-- File list -->
-
-
-
-
-
-
-
-</div><!-- id="navigation" -->
-
-<div id="content">
-
-<h1>Class <code>nixio</code></h1>
-
-<p>
- General POSIX IO library.</p>
-
-
-
-
-
-
-
-<h2>Functions</h2>
-<table class="function_list">
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.bind">bind</a>&nbsp;(host, port, family, socktype)</td>
-       <td class="summary">
- Create a new socket and bind it to a network address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.chdir">chdir</a>&nbsp;(path)</td>
-       <td class="summary">
- Change the working directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.closelog">closelog</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Close the connection to the system logger.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.connect">connect</a>&nbsp;(host, port, family, socktype)</td>
-       <td class="summary">
- Create a new socket and connect to a network address.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.crypt">crypt</a>&nbsp;(key, salt)</td>
-       <td class="summary">
- (POSIX) Encrypt a user password.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.dup">dup</a>&nbsp;(oldfd, newfd)</td>
-       <td class="summary">
- Duplicate a file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.errno">errno</a>&nbsp;()</td>
-       <td class="summary">
- Get the last system error code.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.exec">exec</a>&nbsp;(executable, ...)</td>
-       <td class="summary">
- Execute a file to replace the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.exece">exece</a>&nbsp;(executable, arguments, environment)</td>
-       <td class="summary">
- Execute a file with a custom environment to replace the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.execp">execp</a>&nbsp;(executable, ...)</td>
-       <td class="summary">
- Invoke the shell and execute a file to replace the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.fork">fork</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Clone the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getaddrinfo">getaddrinfo</a>&nbsp;(host, family, service)</td>
-       <td class="summary">
- Look up a hostname and service via DNS.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getcwd">getcwd</a>&nbsp;()</td>
-       <td class="summary">
- Get the current working directory.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getenv">getenv</a>&nbsp;(variable)</td>
-       <td class="summary">
- Get the current environment table or a specific environment variable.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getgid">getgid</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Get the group id of the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getgr">getgr</a>&nbsp;(group)</td>
-       <td class="summary">
- (POSIX) Get all or a specific user group.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getifaddrs">getifaddrs</a>&nbsp;()</td>
-       <td class="summary">
- (Linux, BSD) Get a list of available network interfaces and their addresses.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getnameinfo">getnameinfo</a>&nbsp;(ipaddr)</td>
-       <td class="summary">
- Reverse look up an IP-Address via DNS.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getpid">getpid</a>&nbsp;()</td>
-       <td class="summary">
- Get the ID of the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getppid">getppid</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Get the parent process id of the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getproto">getproto</a>&nbsp;(proto)</td>
-       <td class="summary">
- Get all or a specifc proto entry.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getprotobyname">getprotobyname</a>&nbsp;(name)</td>
-       <td class="summary">
- Get protocol entry by name.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getprotobynumber">getprotobynumber</a>&nbsp;(proto)</td>
-       <td class="summary">
- Get protocol entry by number.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getpw">getpw</a>&nbsp;(user)</td>
-       <td class="summary">
- (POSIX) Get all or a specific user account.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getsp">getsp</a>&nbsp;(user)</td>
-       <td class="summary">
- (Linux, Solaris) Get all or a specific shadow password entry.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.getuid">getuid</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Get the user id of the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.kill">kill</a>&nbsp;(target, signal)</td>
-       <td class="summary">
- (POSIX) Send a signal to one or more processes.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.nanosleep">nanosleep</a>&nbsp;(seconds, nanoseconds)</td>
-       <td class="summary">
- Sleep for a specified amount of time.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.nice">nice</a>&nbsp;(nice)</td>
-       <td class="summary">
- (POSIX) Change priority of current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.open">open</a>&nbsp;(path, flags, mode)</td>
-       <td class="summary">
- Open a file.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.open_flags">open_flags</a>&nbsp;(flag1, ...)</td>
-       <td class="summary">
- Generate flags for a call to open().</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.openlog">openlog</a>&nbsp;(ident, flag1, ...)</td>
-       <td class="summary">
- (POSIX) Open a connection to the system logger.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.pipe">pipe</a>&nbsp;()</td>
-       <td class="summary">
- Create a pipe.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.poll">poll</a>&nbsp;(fds, timeout)</td>
-       <td class="summary">
- Wait for some event on a file descriptor.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.poll_flags">poll_flags</a>&nbsp;(mode1, ...)</td>
-       <td class="summary">
- Generate events-bitfield or parse revents-bitfield for poll.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.sendfile">sendfile</a>&nbsp;(socket, file, length)</td>
-       <td class="summary">
- (POSIX) Send data from a file to a socket in kernel-space.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.setenv">setenv</a>&nbsp;(variable, value)</td>
-       <td class="summary">
- Set or unset a environment variable.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.setgid">setgid</a>&nbsp;(gid)</td>
-       <td class="summary">
- (POSIX) Set the group id of the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.setlogmask">setlogmask</a>&nbsp;(priority)</td>
-       <td class="summary">
- (POSIX) Set the logmask of the system logger for current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.setsid">setsid</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Create a new session and set the process group ID.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.setuid">setuid</a>&nbsp;(gid)</td>
-       <td class="summary">
- (POSIX) Set the user id of the current process.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.signal">signal</a>&nbsp;(signal, handler)</td>
-       <td class="summary">
- Ignore or use set the default handler for a signal.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.socket">socket</a>&nbsp;(domain, type)</td>
-       <td class="summary">
- Create a new socket.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.splice">splice</a>&nbsp;(fdin, fdout, length, flags)</td>
-       <td class="summary">
- (Linux) Send data from / to a pipe in kernel-space.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.splice_flags">splice_flags</a>&nbsp;(flag1, ...)</td>
-       <td class="summary">
- (Linux) Generate a flag bitfield for a call to splice.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.strerror">strerror</a>&nbsp;(errno)</td>
-       <td class="summary">
- Get the error message for the corresponding error code.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.sysinfo">sysinfo</a>&nbsp;()</td>
-       <td class="summary">
- (Linux) Get overall system statistics.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.syslog">syslog</a>&nbsp;(priority)</td>
-       <td class="summary">
- (POSIX) Write a message to the system logger.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.times">times</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Get process times.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.tls">tls</a>&nbsp;(mode)</td>
-       <td class="summary">
- Create a new TLS context.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.umask">umask</a>&nbsp;(mask)</td>
-       <td class="summary">
- Sets the file mode creation mask.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.uname">uname</a>&nbsp;()</td>
-       <td class="summary">
- (POSIX) Get information about current system and kernel.</td>
-       </tr>
-
-       <tr>
-       <td class="name" nowrap><a href="#nixio.waitpid">waitpid</a>&nbsp;(pid, flag1, ...)</td>
-       <td class="summary">
- (POSIX) Wait for a process to change state.</td>
-       </tr>
-
-</table>
-
-
-
-
-
-
-<br/>
-<br/>
-
-
-<h2><a name="functions"></a>Functions</h2>
-<dl class="function">
-
-
-
-<dt><a name="nixio.bind"></a><strong>bind</strong>&nbsp;(host, port, family, socktype)</dt>
-<dd>
-
- Create a new socket and bind it to a network address. 
- This function is a shortcut for calling nixio.socket and then bind() 
- on the socket object.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         host: Hostname or IP-Address (optional, default: all addresses)
-       </li>
-       
-       <li>
-         port: Port or service description
-       </li>
-       
-       <li>
-         family: Address family [<strong>"any"</strong>, "inet", "inet6"]
-       </li>
-       
-       <li>
-         socktype: Socket Type [<strong>"stream"</strong>, "dgram"]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This functions calls getaddrinfo(), socket(), 
- setsockopt() and bind() but NOT listen().
-       
-       <li>The <em>reuseaddr</em>-option is automatically set before binding.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-Socket Object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.chdir"></a><strong>chdir</strong>&nbsp;(path)</dt>
-<dd>
-
- Change the working directory.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: New working directory
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.closelog"></a><strong>closelog</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Close the connection to the system logger.
-
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.connect"></a><strong>connect</strong>&nbsp;(host, port, family, socktype)</dt>
-<dd>
-
- Create a new socket and connect to a network address. 
- This function is a shortcut for calling nixio.socket and then connect() 
- on the socket object.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         host: Hostname or IP-Address (optional, default: localhost)
-       </li>
-       
-       <li>
-         port: Port or service description
-       </li>
-       
-       <li>
-         family: Address family [<strong>"any"</strong>, "inet", "inet6"]
-       </li>
-       
-       <li>
-         socktype: Socket Type [<strong>"stream"</strong>, "dgram"]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This functions calls getaddrinfo(), socket() and connect().
-
-
-
-<h3>Return value:</h3>
-Socket Object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.crypt"></a><strong>crypt</strong>&nbsp;(key, salt)</dt>
-<dd>
-
- (POSIX) Encrypt a user password.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         key: Key
-       </li>
-       
-       <li>
-         salt: Salt
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-password hash
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.dup"></a><strong>dup</strong>&nbsp;(oldfd, newfd)</dt>
-<dd>
-
- Duplicate a file descriptor.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         oldfd: Old descriptor [File Object, Socket Object (POSIX only)]
-       </li>
-       
-       <li>
-         newfd: New descriptor to serve as copy (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This funcation calls dup2() if <em>newfd</em> is set, otherwise dup().
-
-
-
-<h3>Return value:</h3>
-File Object of new descriptor
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.errno"></a><strong>errno</strong>&nbsp;()</dt>
-<dd>
-
- Get the last system error code.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Error code
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.exec"></a><strong>exec</strong>&nbsp;(executable, ...)</dt>
-<dd>
-
- Execute a file to replace the current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         executable: Executable
-       </li>
-       
-       <li>
-         ...: Parameters
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>The name of the executable is automatically passed as argv[0]
-       
-       <li>This function does not return on success.
-       
-</ul>
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.exece"></a><strong>exece</strong>&nbsp;(executable, arguments, environment)</dt>
-<dd>
-
- Execute a file with a custom environment to replace the current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         executable: Executable
-       </li>
-       
-       <li>
-         arguments: Argument Table
-       </li>
-       
-       <li>
-         environment: Environment Table (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>The name of the executable is automatically passed as argv[0]
-       
-       <li>This function does not return on success.
-       
-</ul>
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.execp"></a><strong>execp</strong>&nbsp;(executable, ...)</dt>
-<dd>
-
- Invoke the shell and execute a file to replace the current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         executable: Executable
-       </li>
-       
-       <li>
-         ...: Parameters
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>The name of the executable is automatically passed as argv[0]
-       
-       <li>This function does not return on success.
-       
-</ul>
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.fork"></a><strong>fork</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Clone the current process.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-the child process id for the parent process, 0 for the child process
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getaddrinfo"></a><strong>getaddrinfo</strong>&nbsp;(host, family, service)</dt>
-<dd>
-
- Look up a hostname and service via DNS.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         host: hostname to lookup      (optional)
-       </li>
-       
-       <li>
-         family: address family [<strong>"any"</strong>, "inet", "inet6"]  
-       </li>
-       
-       <li>
-         service: service name or port (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing one or more tables containing: <ul> 
- <li>family = ["inet", "inet6"]</li> 
- <li>socktype = ["stream", "dgram", "raw"]</li> 
- <li>address = Resolved IP-Address</li> 
- <li>port = Resolved Port (if service was given)</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getcwd"></a><strong>getcwd</strong>&nbsp;()</dt>
-<dd>
-
- Get the current working directory.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-workign directory
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getenv"></a><strong>getenv</strong>&nbsp;(variable)</dt>
-<dd>
-
- Get the current environment table or a specific environment variable.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         variable: Variable (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-environment table or single environment variable
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getgid"></a><strong>getgid</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Get the group id of the current process.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-process group id
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getgr"></a><strong>getgr</strong>&nbsp;(group)</dt>
-<dd>
-
- (POSIX) Get all or a specific user group.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         group: Group ID or groupname (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>name = Group Name</li> 
- <li>gid = Group ID</li> 
- <li>passwd = Password</li> 
- <li>mem = {Member #1, Member #2, ...}</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getifaddrs"></a><strong>getifaddrs</strong>&nbsp;()</dt>
-<dd>
-
- (Linux, BSD) Get a list of available network interfaces and their addresses.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing one or more tables containing: <ul> 
- <li>name = Interface Name</li> 
- <li>family = ["inet", "inet6", "packet"]</li> 
- <li>addr = Interface Address (IPv4, IPv6, MAC, ...)</li> 
- <li>broadaddr = Broadcast Address</li> 
- <li>dstaddr = Destination Address (Point-to-Point)</li> 
- <li>netmask = Netmask (if available)</li> 
- <li>prefix = Prefix (if available)</li> 
- <li>flags = Table of interface flags (up, multicast, loopback, ...)</li> 
- <li>data = Statistics (Linux, "packet"-family)</li> 
- <li>hatype = Hardware Type Identifier (Linix, "packet"-family)</li> 
- <li>ifindex = Interface Index (Linux, "packet"-family)</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getnameinfo"></a><strong>getnameinfo</strong>&nbsp;(ipaddr)</dt>
-<dd>
-
- Reverse look up an IP-Address via DNS.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ipaddr: IPv4 or IPv6-Address
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-FQDN
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getpid"></a><strong>getpid</strong>&nbsp;()</dt>
-<dd>
-
- Get the ID of the current process.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-process id
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getppid"></a><strong>getppid</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Get the parent process id of the current process.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-parent process id
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getproto"></a><strong>getproto</strong>&nbsp;(proto)</dt>
-<dd>
-
- Get all or a specifc proto entry.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         proto: protocol number or name to lookup (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table (or if no parameter is given, a table of tables) 
-                  containing the following fields: <ul> 
- <li>name = Protocol Name</li> 
- <li>proto = Protocol Number</li> 
- <li>aliases = Table of alias names</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getprotobyname"></a><strong>getprotobyname</strong>&nbsp;(name)</dt>
-<dd>
-
- Get protocol entry by name.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         name: protocol name to lookup
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function returns nil if the given protocol is unknown.
-
-
-
-<h3>Return value:</h3>
-Table containing the following fields: <ul> 
- <li>name = Protocol Name</li> 
- <li>proto = Protocol Number</li> 
- <li>aliases = Table of alias names</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getprotobynumber"></a><strong>getprotobynumber</strong>&nbsp;(proto)</dt>
-<dd>
-
- Get protocol entry by number.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         proto: protocol number to lookup
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-This function returns nil if the given protocol is unknown.
-
-
-
-<h3>Return value:</h3>
-Table containing the following fields: <ul> 
- <li>name = Protocol Name</li> 
- <li>proto = Protocol Number</li> 
- <li>aliases = Table of alias names</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getpw"></a><strong>getpw</strong>&nbsp;(user)</dt>
-<dd>
-
- (POSIX) Get all or a specific user account.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         user: User ID or username (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>name = Name</li> 
- <li>uid = ID</li> 
- <li>gid = Group ID</li> 
- <li>passwd = Password</li> 
- <li>dir = Home directory</li> 
- <li>gecos = Information</li> 
- <li>shell = Shell</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getsp"></a><strong>getsp</strong>&nbsp;(user)</dt>
-<dd>
-
- (Linux, Solaris) Get all or a specific shadow password entry.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         user: username (optional)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>namp = Name</li> 
- <li>expire = Expiration Date</li> 
- <li>flag = Flags</li> 
- <li>inact = Inactivity Date</li> 
- <li>lstchg = Last change</li> 
- <li>max = Maximum</li> 
- <li>min = Minimum</li> 
- <li>warn = Warning</li> 
- <li>pwdp = Password Hash</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.getuid"></a><strong>getuid</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Get the user id of the current process.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-process user id
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.kill"></a><strong>kill</strong>&nbsp;(target, signal)</dt>
-<dd>
-
- (POSIX) Send a signal to one or more processes.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         target: Target process of process group.
-       </li>
-       
-       <li>
-         signal: Signal to send
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.nanosleep"></a><strong>nanosleep</strong>&nbsp;(seconds, nanoseconds)</dt>
-<dd>
-
- Sleep for a specified amount of time.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         seconds: Seconds to wait (optional)
-       </li>
-       
-       <li>
-         nanoseconds: Nanoseconds to wait (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>Not all systems support nanosecond precision but you can expect 
- to have at least maillisecond precision.
-       
-       <li>This function is not signal-protected and may fail with EINTR.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.nice"></a><strong>nice</strong>&nbsp;(nice)</dt>
-<dd>
-
- (POSIX) Change priority of current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         nice: Nice Value
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.open"></a><strong>open</strong>&nbsp;(path, flags, mode)</dt>
-<dd>
-
- Open a file.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         path: Filesystem path to open
-       </li>
-       
-       <li>
-         flags: Flag string or number (see open_flags). 
- [<strong>"r"</strong>, "r+", "w", "w+", "a", "a+"]
-       </li>
-       
-       <li>
-         mode: File mode for newly created files (see chmod, umask).
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-Although this function also supports the traditional fopen()  
- file flags it does not create a file stream but uses the open() syscall.
-
-
-
-<h3>Return value:</h3>
-File Object
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.umask">
-               umask
-       </a>
-       
-       <li><a href="#nixio.open_flags">
-               open_flags
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.open_flags"></a><strong>open_flags</strong>&nbsp;(flag1, ...)</dt>
-<dd>
-
- Generate flags for a call to open().
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         flag1: First Flag ["append", "creat", "excl", "nonblock", "ndelay", 
- "sync", "trunc", "rdonly", "wronly", "rdwr"]
-       </li>
-       
-       <li>
-         ...: More Flags [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function cannot fail and will never return nil.
-       
-       <li>The "nonblock" and "ndelay" flags are aliases.
-       
-       <li>The "nonblock", "ndelay" and "sync" flags are no-ops on Windows.
-       
-</ul>
-
-
-
-<h3>Return value:</h3>
-flag to be used as second parameter to open
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.openlog"></a><strong>openlog</strong>&nbsp;(ident, flag1, ...)</dt>
-<dd>
-
- (POSIX) Open a connection to the system logger.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         ident: Identifier
-       </li>
-       
-       <li>
-         flag1: Flag 1 ["cons", "nowait", "pid", "perror", "ndelay", "odelay"]
-       </li>
-       
-       <li>
-         ...: More flags [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.pipe"></a><strong>pipe</strong>&nbsp;()</dt>
-<dd>
-
- Create a pipe.
-
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>File Object of the read end
-       
-       <li>File Object of the write end
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.poll"></a><strong>poll</strong>&nbsp;(fds, timeout)</dt>
-<dd>
-
- Wait for some event on a file descriptor. 
- poll() sets the revents-field of the tables provided by fds to a bitfield 
- indicating the events that occurred.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         fds: Table containing one or more tables containing <ul> 
- <li> fd = I/O Descriptor [Socket Object, File Object (POSIX)]</li> 
- <li> events = events to wait for (bitfield generated with poll_flags)</li> 
- </ul>
-       </li>
-       
-       <li>
-         timeout: Timeout in milliseconds
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage</h3>
-<ul>
-       
-       <li>This function works in-place on the provided table and only 
- writes the revents field, you can use other fields on your demand.
-       
-       <li>All metamethods on the tables provided as fds are ignored.
-       
-       <li>The revents-fields are not reset when the call times out. 
- You have to check the first return value to be 0 to handle this case.
-       
-       <li>If you want to wait on a TLS-Socket you have to use the underlying 
- socket instead.
-       
-       <li>On Windows poll is emulated through select(), can only be used 
- on socket descriptors and cannot take more than 64 descriptors per call.
-       
-       <li>This function is not signal-protected and may fail with EINTR.
-       
-</ul>
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>number of ready IO descriptors
-       
-       <li>the fds-table with revents-fields set
-       
-</ol>
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.poll_flags">
-               poll_flags
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.poll_flags"></a><strong>poll_flags</strong>&nbsp;(mode1, ...)</dt>
-<dd>
-
- Generate events-bitfield or parse revents-bitfield for poll.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mode1: revents-Flag bitfield returned from poll to parse OR  
- ["in", "out", "err", "pri" (POSIX), "hup" (POSIX), "nval" (POSIX)]
-       </li>
-       
-       <li>
-         ...: More mode strings for generating the flag [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-table with boolean fields reflecting the mode parameter  
- <strong>OR</strong> bitfield to use for the events-Flag field
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.poll">
-               poll
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.sendfile"></a><strong>sendfile</strong>&nbsp;(socket, file, length)</dt>
-<dd>
-
- (POSIX) Send data from a file to a socket in kernel-space.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         socket: Socket Object
-       </li>
-       
-       <li>
-         file: File Object
-       </li>
-       
-       <li>
-         length: Amount of data to send (in Bytes).
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-bytes sent
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.setenv"></a><strong>setenv</strong>&nbsp;(variable, value)</dt>
-<dd>
-
- Set or unset a environment variable.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         variable: Variable
-       </li>
-       
-       <li>
-         value: Value (optional)
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-The environment variable will be unset if value is omitted.
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.setgid"></a><strong>setgid</strong>&nbsp;(gid)</dt>
-<dd>
-
- (POSIX) Set the group id of the current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         gid: New Group ID
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.setlogmask"></a><strong>setlogmask</strong>&nbsp;(priority)</dt>
-<dd>
-
- (POSIX) Set the logmask of the system logger for current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         priority: Priority ["emerg", "alert", "crit", "err", "warning", 
- "notice", "info", "debug"]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.setsid"></a><strong>setsid</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Create a new session and set the process group ID.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-session id
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.setuid"></a><strong>setuid</strong>&nbsp;(gid)</dt>
-<dd>
-
- (POSIX) Set the user id of the current process.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         gid: New User ID
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.signal"></a><strong>signal</strong>&nbsp;(signal, handler)</dt>
-<dd>
-
- Ignore or use set the default handler for a signal.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         signal: Signal
-       </li>
-       
-       <li>
-         handler: ["ign", "dfl"]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-true
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.socket"></a><strong>socket</strong>&nbsp;(domain, type)</dt>
-<dd>
-
- Create a new socket.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         domain: Domain ["inet", "inet6", "unix"]
-       </li>
-       
-       <li>
-         type: Type   ["stream", "dgram", "raw"]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Socket Object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.splice"></a><strong>splice</strong>&nbsp;(fdin, fdout, length, flags)</dt>
-<dd>
-
- (Linux) Send data from / to a pipe in kernel-space.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         fdin: Input I/O descriptor 
-       </li>
-       
-       <li>
-         fdout: Output I/O descriptor
-       </li>
-       
-       <li>
-         length: Amount of data to send (in Bytes).
-       </li>
-       
-       <li>
-         flags: (optional, bitfield generated by splice_flags)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-bytes sent
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.splice_flags">
-               splice_flags
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.splice_flags"></a><strong>splice_flags</strong>&nbsp;(flag1, ...)</dt>
-<dd>
-
- (Linux) Generate a flag bitfield for a call to splice.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         flag1: First Flag     ["move", "nonblock", "more"]
-       </li>
-       
-       <li>
-         ...: More flags       [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Flag bitfield
-
-
-
-<h3>See also:</h3>
-<ul>
-       
-       <li><a href="#nixio.splice">
-               splice
-       </a>
-       
-</ul>
-
-</dd>
-
-
-
-
-<dt><a name="nixio.strerror"></a><strong>strerror</strong>&nbsp;(errno)</dt>
-<dd>
-
- Get the error message for the corresponding error code.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         errno: System error code
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Error message
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.sysinfo"></a><strong>sysinfo</strong>&nbsp;()</dt>
-<dd>
-
- (Linux) Get overall system statistics.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>uptime = system uptime in seconds</li> 
- <li>loads = {loadavg1, loadavg5, loadavg15}</li> 
- <li>totalram = total RAM</li> 
- <li>freeram = free RAM</li> 
- <li>sharedram = shared RAM</li> 
- <li>bufferram = buffered RAM</li> 
- <li>totalswap = total SWAP</li> 
- <li>freeswap = free SWAP</li> 
- <li>procs = number of running processes</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.syslog"></a><strong>syslog</strong>&nbsp;(priority)</dt>
-<dd>
-
- (POSIX) Write a message to the system logger.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         priority: Priority ["emerg", "alert", "crit", "err", "warning", 
- "notice", "info", "debug"]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.times"></a><strong>times</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Get process times.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>utime = user time</li> 
- <li>utime = system time</li> 
- <li>cutime = children user time</li> 
- <li>cstime = children system time</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.tls"></a><strong>tls</strong>&nbsp;(mode)</dt>
-<dd>
-
- Create a new TLS context.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mode: TLS-Mode ["client", "server"]
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-TLSContext Object
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.umask"></a><strong>umask</strong>&nbsp;(mask)</dt>
-<dd>
-
- Sets the file mode creation mask.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         mask: New creation mask (see chmod for format specifications)
-       </li>
-       
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>the old umask as decimal mode number
-       
-       <li>the old umask as mode string
-       
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.uname"></a><strong>uname</strong>&nbsp;()</dt>
-<dd>
-
- (POSIX) Get information about current system and kernel.
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing: <ul> 
- <li>sysname = operating system</li> 
- <li>nodename = network name (usually hostname)</li> 
- <li>release = OS release</li> 
- <li>version = OS version</li> 
- <li>machine = hardware identifier</li> 
- </ul>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="nixio.waitpid"></a><strong>waitpid</strong>&nbsp;(pid, flag1, ...)</dt>
-<dd>
-
- (POSIX) Wait for a process to change state.
-
-
-<h3>Parameters</h3>
-<ul>
-       
-       <li>
-         pid: Process ID       (optional, default: any childprocess)
-       </li>
-       
-       <li>
-         flag1: Flag   (optional) ["nohang", "untraced", "continued"]
-       </li>
-       
-       <li>
-         ...: More Flags [-"-]
-       </li>
-       
-</ul>
-
-
-
-
-<h3>Usage:</h3>
-If the "nohang" is given this function becomes non-blocking.
-
-
-
-<h3>Return values:</h3>
-<ol>
-       
-       <li>process id of child or 0 if no child has changed state
-       
-       <li>["exited", "signaled", "stopped"]
-       
-       <li>[exit code, terminate signal, stop signal]
-       
-</ol>
-
-
-
-</dd>
-
-
-</dl>
-
-
-
-
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
-       <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-</body>
-</html>
diff --git a/package/luci/documentation/i18n.md b/package/luci/documentation/i18n.md
deleted file mode 100644 (file)
index 226a406..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# General
-Translations are saved in the folder po/ for each module and application. You find the reference in po/templates/<package>.pot. The actual translation files can be found at po/[lang]/[package].po .
-
-In order to use the commands below you need to have the _gettext'' utilities (''msgcat'', ''msgfmt'', ''msgmerge_) installed on your system.
-
-# Rebuild po files
-If you want to rebuild the translations after you made changes to a package this is an easy way:
-       
-       ./build/i18n-scan.pl applications/[application] > applications/[application]/po/templates/[application_basename].pot
-       ./build/i18n-update.pl applications/[application]/po
-
-       Example:
-       ./build/i18n-scan.pl applications/luci-app-firewall > applications/luci-app-firewall/po/templates/firewall.pot
-       ./build/i18n-update.pl applications/luci-app-firewall/po
-       (note that the directory argument can be omitted for i18n-update.pl to update all apps)
-       
-*Note:* Some packages share translation files, in this case you need to scan through all their folders. The first command from above should then be:
-       
-       ./build/i18n-scan.pl applications/[package-1] applications/[package-2] applications/[package-n] > [location of shared template]/[application].pot
diff --git a/package/luci/libs/luci-lib-httpclient/Makefile b/package/luci/libs/luci-lib-httpclient/Makefile
deleted file mode 100644 (file)
index b8bd428..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=HTTP(S) client library
-LUCI_DEPENDS:=+luci-base +luci-lib-nixio +luci-lib-httpprotoutils
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/libs/luci-lib-httpclient/luasrc/httpclient.lua b/package/luci/libs/luci-lib-httpclient/luasrc/httpclient.lua
deleted file mode 100644 (file)
index 79ce412..0000000
+++ /dev/null
@@ -1,419 +0,0 @@
--- Copyright 2009 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-require "nixio.util"
-local nixio = require "nixio"
-
-local ltn12 = require "luci.ltn12"
-local util = require "luci.util"
-local table = require "table"
-local http = require "luci.http"
-local date = require "luci.http.date"
-local ip = require "luci.ip"
-
-local type, pairs, ipairs, tonumber, tostring = type, pairs, ipairs, tonumber, tostring
-local unpack, string = unpack, string
-
-module "luci.httpclient"
-
-function chunksource(sock, buffer)
-       buffer = buffer or ""
-       return function()
-               local output
-               local _, endp, count = buffer:find("^([0-9a-fA-F]+);?.-\r\n")
-               while not count and #buffer <= 1024 do
-                       local newblock, code = sock:recv(1024 - #buffer)
-                       if not newblock then
-                               return nil, code
-                       end
-                       buffer = buffer .. newblock
-                       _, endp, count = buffer:find("^([0-9a-fA-F]+);?.-\r\n")
-               end
-               count = tonumber(count, 16)
-               if not count then
-                       return nil, -1, "invalid encoding"
-               elseif count == 0 then
-                       return nil
-               elseif count + 2 <= #buffer - endp then
-                       output = buffer:sub(endp+1, endp+count)
-                       buffer = buffer:sub(endp+count+3)
-                       return output
-               else
-                       output = buffer:sub(endp+1, endp+count)
-                       buffer = ""
-                       if count - #output > 0 then
-                               local remain, code = sock:recvall(count-#output)
-                               if not remain then
-                                       return nil, code
-                               end
-                               output = output .. remain
-                               count, code = sock:recvall(2)
-                       else
-                               count, code = sock:recvall(count+2-#buffer+endp)
-                       end
-                       if not count then
-                               return nil, code
-                       end
-                       return output
-               end
-       end
-end
-
-
-function request_to_buffer(uri, options)
-       local source, code, msg = request_to_source(uri, options)
-       local output = {}
-
-       if not source then
-               return nil, code, msg
-       end
-
-       source, code = ltn12.pump.all(source, (ltn12.sink.table(output)))
-
-       if not source then
-               return nil, code
-       end
-
-       return table.concat(output)
-end
-
-function request_to_source(uri, options)
-       local status, response, buffer, sock = request_raw(uri, options)
-       if not status then
-               return status, response, buffer
-       elseif status ~= 200 and status ~= 206 then
-               return nil, status, buffer
-       end
-
-       if response.headers["Transfer-Encoding"] == "chunked" then
-               return chunksource(sock, buffer)
-       else
-               return ltn12.source.cat(ltn12.source.string(buffer), sock:blocksource())
-       end
-end
-
-function parse_url(uri)
-       local url, rest, tmp = {}, nil, nil
-
-       url.scheme, rest = uri:match("^(%w+)://(.+)$")
-       if not (url.scheme and rest) then
-               return nil
-       end
-
-       url.auth, tmp = rest:match("^([^@]+)@(.+)$")
-       if url.auth and tmp then
-               rest = tmp
-       end
-
-       url.host, tmp = rest:match("^%[([0-9a-fA-F:]+)%](.*)$")
-       if url.host and tmp then
-               url.ip6addr = ip.IPv6(url.host)
-               if not url.ip6addr then
-                       return nil
-               end
-               url.host = string.format("[%s]", url.ip6addr:string())
-               rest = tmp
-       else
-               url.host, tmp = rest:match("^(%d+%.%d+%.%d+%.%d+)(.*)$")
-               if url.host and tmp then
-                       url.ipaddr = ip.IPv4(url.host)
-                       if not url.ipaddr then
-                               return nil
-                       end
-                       url.host = url.ipaddr:string()
-                       rest = tmp
-               else
-                       url.host, tmp = rest:match("^([0-9a-zA-Z%.%-]+)(.*)$")
-                       if url.host and tmp then
-                               rest = tmp
-                       else
-                               return nil
-                       end
-               end
-       end
-
-       url.port, tmp = rest:match("^:(%d+)(.*)$")
-       if url.port and tmp then
-               url.port = tonumber(url.port)
-               rest = tmp
-               if url.port < 1 or url.port > 65535 then
-                       return nil
-               end
-       end
-
-       if url.scheme == "http" then
-               url.port = url.port or 80
-               url.default_port = (url.port == 80)
-       elseif url.scheme == "https" then
-               url.port = url.port or 443
-               url.default_port = (url.port == 443)
-       end
-
-       if rest == "" then
-               url.path = "/"
-       else
-               url.path = rest
-       end
-
-       return url
-end
-
---
--- GET HTTP-resource
---
-function request_raw(uri, options)
-       options = options or {}
-
-       if options.params then
-               uri = uri .. '?' .. http.urlencode_params(options.params)
-       end
-
-       local url = parse_url(uri)
-
-       if not url then
-               return nil, -1, "unable to parse URI"
-       end
-
-       if url.scheme ~= "http" and url.scheme ~= "https" then
-               return nil, -2, "protocol not supported"
-       end
-
-       options.depth = options.depth or 10
-       local headers = options.headers or {}
-       local protocol = options.protocol or "HTTP/1.1"
-       headers["User-Agent"] = headers["User-Agent"] or "LuCI httpclient 0.1"
-
-       if headers.Connection == nil then
-               headers.Connection = "close"
-       end
-
-       if url.auth and not headers.Authorization then
-               headers.Authorization = "Basic " .. nixio.bin.b64encode(url.auth)
-       end
-
-       local addr = tostring(url.ip6addr or url.ipaddr or url.host)
-       local sock, code, msg = nixio.connect(addr, url.port)
-       if not sock then
-               return nil, code, msg
-       end
-
-       sock:setsockopt("socket", "sndtimeo", options.sndtimeo or 15)
-       sock:setsockopt("socket", "rcvtimeo", options.rcvtimeo or 15)
-
-       if url.scheme == "https" then
-               local tls = options.tls_context or nixio.tls()
-               sock = tls:create(sock)
-               local stat, code, error = sock:connect()
-               if not stat then
-                       return stat, code, error
-               end
-       end
-
-       -- Pre assemble fixes
-       if protocol == "HTTP/1.1" then
-               headers.Host = headers.Host or
-                       (url.default_port and url.host or string.format("%s:%d", url.host, url.port))
-       end
-
-       if type(options.body) == "table" then
-               options.body = http.urlencode_params(options.body)
-       end
-
-       if type(options.body) == "string" then
-               headers["Content-Length"] = headers["Content-Length"] or #options.body
-               headers["Content-Type"] = headers["Content-Type"] or
-                       "application/x-www-form-urlencoded"
-               options.method = options.method or "POST"
-       end
-
-       if type(options.body) == "function" then
-               options.method = options.method or "POST"
-       end
-
-       if options.cookies then
-               local cookiedata = {}
-               for _, c in ipairs(options.cookies) do
-                       local cdo = c.flags.domain
-                       local cpa = c.flags.path
-                       if   (cdo == url.host or cdo == "."..url.host or url.host:sub(-#cdo) == cdo)
-                        and (cpa == url.path or cpa == "/" or cpa .. "/" == url.path:sub(#cpa+1))
-                        and (not c.flags.secure or url.scheme == "https")
-                       then
-                               cookiedata[#cookiedata+1] = c.key .. "=" .. c.value
-                       end
-               end
-               if headers["Cookie"] then
-                       headers["Cookie"] = headers["Cookie"] .. "; " .. table.concat(cookiedata, "; ")
-               else
-                       headers["Cookie"] = table.concat(cookiedata, "; ")
-               end
-       end
-
-       -- Assemble message
-       local message = {(options.method or "GET") .. " " .. url.path .. " " .. protocol}
-
-       for k, v in pairs(headers) do
-               if type(v) == "string" or type(v) == "number" then
-                       message[#message+1] = k .. ": " .. v
-               elseif type(v) == "table" then
-                       for i, j in ipairs(v) do
-                               message[#message+1] = k .. ": " .. j
-                       end
-               end
-       end
-
-       message[#message+1] = ""
-       message[#message+1] = ""
-
-       -- Send request
-       sock:sendall(table.concat(message, "\r\n"))
-
-       if type(options.body) == "string" then
-               sock:sendall(options.body)
-       elseif type(options.body) == "function" then
-               local res = {options.body(sock)}
-               if not res[1] then
-                       sock:close()
-                       return unpack(res)
-               end
-       end
-
-       -- Create source and fetch response
-       local linesrc = sock:linesource()
-       local line, code, error = linesrc()
-
-       if not line then
-               sock:close()
-               return nil, code, error
-       end
-
-       local protocol, status, msg = line:match("^([%w./]+) ([0-9]+) (.*)")
-
-       if not protocol then
-               sock:close()
-               return nil, -3, "invalid response magic: " .. line
-       end
-
-       local response = {
-               status = line, headers = {}, code = 0, cookies = {}, uri = uri
-       }
-
-       line = linesrc()
-       while line and line ~= "" do
-               local key, val = line:match("^([%w-]+)%s?:%s?(.*)")
-               if key and key ~= "Status" then
-                       if type(response.headers[key]) == "string" then
-                               response.headers[key] = {response.headers[key], val}
-                       elseif type(response.headers[key]) == "table" then
-                               response.headers[key][#response.headers[key]+1] = val
-                       else
-                               response.headers[key] = val
-                       end
-               end
-               line = linesrc()
-       end
-
-       if not line then
-               sock:close()
-               return nil, -4, "protocol error"
-       end
-
-       -- Parse cookies
-       if response.headers["Set-Cookie"] then
-               local cookies = response.headers["Set-Cookie"]
-               for _, c in ipairs(type(cookies) == "table" and cookies or {cookies}) do
-                       local cobj = cookie_parse(c)
-                       cobj.flags.path = cobj.flags.path or url.path:match("(/.*)/?[^/]*")
-                       if not cobj.flags.domain or cobj.flags.domain == "" then
-                               cobj.flags.domain = url.host
-                               response.cookies[#response.cookies+1] = cobj
-                       else
-                               local hprt, cprt = {}, {}
-
-                               -- Split hostnames and save them in reverse order
-                               for part in url.host:gmatch("[^.]*") do
-                                       table.insert(hprt, 1, part)
-                               end
-                               for part in cobj.flags.domain:gmatch("[^.]*") do
-                                       table.insert(cprt, 1, part)
-                               end
-
-                               local valid = true
-                               for i, part in ipairs(cprt) do
-                                       -- If parts are different and no wildcard
-                                       if hprt[i] ~= part and #part ~= 0 then
-                                               valid = false
-                                               break
-                                       -- Wildcard on invalid position
-                                       elseif hprt[i] ~= part and #part == 0 then
-                                               if i ~= #cprt or (#hprt ~= i and #hprt+1 ~= i) then
-                                                       valid = false
-                                                       break
-                                               end
-                                       end
-                               end
-                               -- No TLD cookies
-                               if valid and #cprt > 1 and #cprt[2] > 0 then
-                                       response.cookies[#response.cookies+1] = cobj
-                               end
-                       end
-               end
-       end
-
-       -- Follow
-       response.code = tonumber(status)
-       if response.code and options.depth > 0 then
-               if (response.code == 301 or response.code == 302 or response.code == 307)
-                and response.headers.Location then
-                       local nuri = response.headers.Location or response.headers.location
-                       if not nuri then
-                               return nil, -5, "invalid reference"
-                       end
-                       if not nuri:match("^%w+://") then
-                               nuri = url.default_port and string.format("%s://%s%s", url.scheme, url.host, nuri)
-                                       or string.format("%s://%s:%d%s", url.scheme, url.host, url.port, nuri)
-                       end
-
-                       options.depth = options.depth - 1
-                       if options.headers then
-                               options.headers.Host = nil
-                       end
-                       sock:close()
-
-                       return request_raw(nuri, options)
-               end
-       end
-
-       return response.code, response, linesrc(true)..sock:readall(), sock
-end
-
-function cookie_parse(cookiestr)
-       local key, val, flags = cookiestr:match("%s?([^=;]+)=?([^;]*)(.*)")
-       if not key then
-               return nil
-       end
-
-       local cookie = {key = key, value = val, flags = {}}
-       for fkey, fval in flags:gmatch(";%s?([^=;]+)=?([^;]*)") do
-               fkey = fkey:lower()
-               if fkey == "expires" then
-                       fval = date.to_unix(fval:gsub("%-", " "))
-               end
-               cookie.flags[fkey] = fval
-       end
-
-       return cookie
-end
-
-function cookie_create(cookie)
-       local cookiedata = {cookie.key .. "=" .. cookie.value}
-
-       for k, v in pairs(cookie.flags) do
-               if k == "expires" then
-                       v = date.to_http(v):gsub(", (%w+) (%w+) (%w+) ", ", %1-%2-%3 ")
-               end
-               cookiedata[#cookiedata+1] = k .. ((#v > 0) and ("=" .. v) or "")
-       end
-
-       return table.concat(cookiedata, "; ")
-end
diff --git a/package/luci/libs/luci-lib-httpclient/luasrc/httpclient/receiver.lua b/package/luci/libs/luci-lib-httpclient/luasrc/httpclient/receiver.lua
deleted file mode 100644 (file)
index b886e96..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
--- Copyright 2009 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-require "nixio.util"
-local nixio = require "nixio"
-local httpc = require "luci.httpclient"
-local ltn12 = require "luci.ltn12"
-
-local print, tonumber, require, unpack = print, tonumber, require, unpack
-
-module "luci.httpclient.receiver"
-
-local function prepare_fd(target)
-       -- Open fd for appending
-       local oflags = nixio.open_flags("wronly", "creat")
-       local file, code, msg = nixio.open(target, oflags)
-       if not file then
-               return file, code, msg
-       end
-       
-       -- Acquire lock
-       local stat, code, msg = file:lock("tlock")
-       if not stat then
-               return stat, code, msg
-       end
-       
-       file:seek(0, "end") 
-       
-       return file
-end
-
-local function splice_async(sock, pipeout, pipein, file, cb)
-       local ssize = 65536
-       local smode = nixio.splice_flags("move", "more", "nonblock")
-
-       -- Set pipe non-blocking otherwise we might end in a deadlock
-       local stat, code, msg = pipein:setblocking(false)
-       if stat then
-               stat, code, msg = pipeout:setblocking(false)
-       end
-       if not stat then
-               return stat, code, msg
-       end
-       
-       
-       local pollsock = {
-               {fd=sock, events=nixio.poll_flags("in")}
-       }
-       
-       local pollfile = {
-               {fd=file, events=nixio.poll_flags("out")}
-       }
-       
-       local done
-       local active -- Older splice implementations sometimes don't detect EOS
-       
-       repeat
-               active = false
-               
-               -- Socket -> Pipe
-               repeat
-                       nixio.poll(pollsock, 15000)
-               
-                       stat, code, msg = nixio.splice(sock, pipeout, ssize, smode)
-                       if stat == nil then
-                               return stat, code, msg
-                       elseif stat == 0 then
-                               done = true
-                               break
-                       elseif stat then
-                               active = true
-                       end
-               until stat == false
-               
-               -- Pipe -> File
-               repeat
-                       nixio.poll(pollfile, 15000)
-               
-                       stat, code, msg = nixio.splice(pipein, file, ssize, smode)
-                       if stat == nil then
-                               return stat, code, msg
-                       elseif stat then
-                               active = true
-                       end
-               until stat == false
-               
-               if cb then
-                       cb(file)
-               end
-               
-               if not active then
-                       -- We did not splice any data, maybe EOS, fallback to default
-                       return false
-               end
-       until done
-       
-       pipein:close()
-       pipeout:close()
-       sock:close()
-       file:close()
-       return true
-end
-
-local function splice_sync(sock, pipeout, pipein, file, cb)
-       local os = require "os"
-       local ssize = 65536
-       local smode = nixio.splice_flags("move", "more")
-       local stat
-       
-       -- This is probably the only forking http-client ;-)
-       local pid, code, msg = nixio.fork()
-       if not pid then
-               return pid, code, msg
-       elseif pid == 0 then
-               pipein:close()
-               file:close()
-
-               repeat
-                       stat, code = nixio.splice(sock, pipeout, ssize, smode)
-               until not stat or stat == 0
-       
-               pipeout:close()
-               sock:close()
-               os.exit(stat or code)
-       else
-               pipeout:close()
-               sock:close()
-               
-               repeat
-                       stat, code, msg = nixio.splice(pipein, file, ssize, smode)
-                       if cb then
-                               cb(file)
-                       end
-               until not stat or stat == 0
-               
-               pipein:close()
-               file:close()
-               
-               if not stat then
-                       nixio.kill(pid, 15)
-                       nixio.wait(pid)
-                       return stat, code, msg
-               else
-                       pid, msg, code = nixio.wait(pid)
-                       if msg == "exited" then
-                               if code == 0 then
-                                       return true
-                               else
-                                       return nil, code, nixio.strerror(code)
-                               end
-                       else
-                               return nil, -0x11, "broken pump"
-                       end
-               end
-       end
-end
-
-function request_to_file(uri, target, options, cbs)
-       options = options or {}
-       cbs = cbs or {}
-       options.headers = options.headers or {}
-       local hdr = options.headers
-       local file, code, msg
-       
-       if target then
-               file, code, msg = prepare_fd(target)
-               if not file then
-                       return file, code, msg
-               end
-       
-               local off = file:tell()
-               
-               -- Set content range
-               if off > 0 then
-                       hdr.Range = hdr.Range or ("bytes=" .. off .. "-")  
-               end
-       end
-       
-       local code, resp, buffer, sock = httpc.request_raw(uri, options)
-       if not code then
-               -- No success
-               if file then
-                       file:close()
-               end
-               return code, resp, buffer
-       elseif hdr.Range and code ~= 206 then
-               -- We wanted a part but we got the while file
-               sock:close()
-               if file then
-                       file:close()
-               end
-               return nil, -4, code, resp
-       elseif not hdr.Range and code ~= 200 then
-               -- We encountered an error
-               sock:close()
-               if file then
-                       file:close()
-               end
-               return nil, -4, code, resp
-       end
-       
-       if cbs.on_header then
-               local stat = {cbs.on_header(file, code, resp)}
-               if stat[1] == false then
-                       if file then
-                               file:close()
-                       end
-                       sock:close()
-                       return unpack(stat)
-               elseif stat[2] then
-                       file = file and stat[2]
-               end
-       end
-       
-       if not file then
-               return nil, -5, "no target given"
-       end
-
-       local chunked = resp.headers["Transfer-Encoding"] == "chunked"
-       local stat
-
-       -- Write the buffer to file
-       file:writeall(buffer)
-       
-       repeat
-               if not options.splice or not sock:is_socket() or chunked then
-                       break
-               end
-               
-               -- This is a plain TCP socket and there is no encoding so we can splice
-       
-               local pipein, pipeout, msg = nixio.pipe()
-               if not pipein then
-                       sock:close()
-                       file:close()
-                       return pipein, pipeout, msg
-               end
-               
-               
-               -- Adjust splice values
-               local ssize = 65536
-               local smode = nixio.splice_flags("move", "more")
-               
-               -- Splicing 512 bytes should never block on a fresh pipe
-               local stat, code, msg = nixio.splice(sock, pipeout, 512, smode)
-               if stat == nil then
-                       break
-               end
-               
-               -- Now do the real splicing
-               local cb = cbs.on_write
-               if options.splice == "asynchronous" then
-                       stat, code, msg = splice_async(sock, pipeout, pipein, file, cb)
-               elseif options.splice == "synchronous" then
-                       stat, code, msg = splice_sync(sock, pipeout, pipein, file, cb)
-               else
-                       break
-               end
-               
-               if stat == false then
-                       break
-               end
-
-               return stat, code, msg
-       until true
-       
-       local src = chunked and httpc.chunksource(sock) or sock:blocksource()
-       local snk = file:sink()
-       
-       if cbs.on_write then
-               src = ltn12.source.chain(src, function(chunk)
-                       cbs.on_write(file)
-                       return chunk
-               end)
-       end
-       
-       -- Fallback to read/write
-       stat, code, msg = ltn12.pump.all(src, snk)
-
-       file:close()
-       sock:close()
-       return stat and true, code, msg
-end
-
diff --git a/package/luci/libs/luci-lib-httpprotoutils/Makefile b/package/luci/libs/luci-lib-httpprotoutils/Makefile
deleted file mode 100644 (file)
index 851a362..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2018 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=HTTP protocol utility functions
-LUCI_DEPENDS:=+luci-base
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/libs/luci-lib-httpprotoutils/luasrc/http/conditionals.lua b/package/luci/libs/luci-lib-httpprotoutils/luasrc/http/conditionals.lua
deleted file mode 100644 (file)
index 86b4db2..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
--- Copyright 2008 Freifunk Leipzig / Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
--- This class provides basic ETag handling and implements most of the
--- conditional HTTP/1.1 headers specified in RFC2616 Sct. 14.24 - 14.28 .
-module("luci.http.conditionals", package.seeall)
-
-local date = require("luci.http.date")
-
-
-function mk_etag( stat )
-       if stat ~= nil then
-               return string.format( '"%x-%x-%x"', stat.ino, stat.size, stat.mtime )
-       end
-end
-
--- Test whether the given message object contains an "If-Match" header and
--- compare it against the given stat object.
-function if_match( req, stat )
-       local h    = req.headers
-       local etag = mk_etag( stat )
-
-       -- Check for matching resource
-       if type(h['If-Match']) == "string" then
-               for ent in h['If-Match']:gmatch("([^, ]+)") do
-                       if ( ent == '*' or ent == etag ) and stat ~= nil then
-                               return true
-                       end
-               end
-
-               return false, 412
-       end
-
-       return true
-end
-
--- Test whether the given message object contains an "If-Modified-Since" header
--- and compare it against the given stat object.
-function if_modified_since( req, stat )
-       local h = req.headers
-
-       -- Compare mtimes
-       if type(h['If-Modified-Since']) == "string" then
-               local since = date.to_unix( h['If-Modified-Since'] )
-
-               if stat == nil or since < stat.mtime then
-                       return true
-               end
-
-               return false, 304, {
-                       ["ETag"]          = mk_etag( stat );
-                       ["Date"]          = date.to_http( os.time() );
-                       ["Last-Modified"] = date.to_http( stat.mtime )
-               }
-       end
-
-       return true
-end
-
--- Test whether the given message object contains an "If-None-Match" header and
--- compare it against the given stat object.
-function if_none_match( req, stat )
-       local h      = req.headers
-       local etag   = mk_etag( stat )
-       local method = req.env and req.env.REQUEST_METHOD or "GET"
-
-       -- Check for matching resource
-       if type(h['If-None-Match']) == "string" then
-               for ent in h['If-None-Match']:gmatch("([^, ]+)") do
-                       if ( ent == '*' or ent == etag ) and stat ~= nil then
-                               if method == "GET" or method == "HEAD" then
-                                       return false, 304, {
-                                               ["ETag"]          = etag;
-                                               ["Date"]          = date.to_http( os.time() );
-                                               ["Last-Modified"] = date.to_http( stat.mtime )
-                                       }
-                               else
-                                       return false, 412
-                               end
-                       end
-               end
-       end
-
-       return true
-end
-
--- The If-Range header is currently not implemented due to the lack of general
--- byte range stuff in luci.http.protocol . This function will always return
--- false, 412 to indicate a failed precondition.
-function if_range( req, stat )
-       -- Sorry, no subranges (yet)
-       return false, 412
-end
-
--- Test whether the given message object contains an "If-Unmodified-Since"
--- header and compare it against the given stat object.
-function if_unmodified_since( req, stat )
-       local h = req.headers
-
-       -- Compare mtimes
-       if type(h['If-Unmodified-Since']) == "string" then
-               local since = date.to_unix( h['If-Unmodified-Since'] )
-
-               if stat ~= nil and since <= stat.mtime then
-                       return false, 412
-               end
-       end
-
-       return true
-end
diff --git a/package/luci/libs/luci-lib-httpprotoutils/luasrc/http/conditionals.luadoc b/package/luci/libs/luci-lib-httpprotoutils/luasrc/http/conditionals.luadoc
deleted file mode 100644 (file)
index 7ce0b5e..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
----[[
-LuCI http protocol implementation - HTTP/1.1 bits.
-
-This class provides basic ETag handling and implements most of the
-conditional HTTP/1.1 headers specified in RFC2616 Sct. 14.24 - 14.28 .
-]]
-module "luci.http.conditionals"
-
----[[
-Implement 14.19 / ETag.
-
-@class function
-@name mk_etag
-@param stat    A file.stat structure
-@return                String containing the generated tag suitable for ETag headers
-]]
-
----[[
-14.24 / If-Match
-
-Test whether the given message object contains an "If-Match" header and
-compare it against the given stat object.
-@class function
-@name if_match
-@param req     HTTP request message object
-@param stat    A file.stat object
-@return                Boolean indicating whether the precondition is ok
-@return                Alternative status code if the precondition failed
-]]
-
----[[
-14.25 / If-Modified-Since
-
-Test whether the given message object contains an "If-Modified-Since" header
-and compare it against the given stat object.
-@class function
-@name if_modified_since
-@param req     HTTP request message object
-@param stat    A file.stat object
-@return                Boolean indicating whether the precondition is ok
-@return                Alternative status code if the precondition failed
-@return                Table containing extra HTTP headers if the precondition failed
-]]
-
----[[
-14.26 / If-None-Match
-
-Test whether the given message object contains an "If-None-Match" header and
-compare it against the given stat object.
-@class function
-@name if_none_match
-@param req     HTTP request message object
-@param stat    A file.stat object
-@return                Boolean indicating whether the precondition is ok
-@return                Alternative status code if the precondition failed
-@return                Table containing extra HTTP headers if the precondition failed
-]]
-
----[[
-14.27 / If-Range
-
-The If-Range header is currently not implemented due to the lack of general
-byte range stuff in luci.http.protocol . This function will always return
-false, 412 to indicate a failed precondition.
-@class function
-@name if_range
-@param req     HTTP request message object
-@param stat    A file.stat object
-@return                Boolean indicating whether the precondition is ok
-@return                Alternative status code if the precondition failed
-]]
-
----[[
-14.28 / If-Unmodified-Since
-
-Test whether the given message object contains an "If-Unmodified-Since"
-header and compare it against the given stat object.
-@class function
-@name if_unmodified_since
-@param req     HTTP request message object
-@param stat    A file.stat object
-@return                Boolean indicating whether the precondition is ok
-@return                Alternative status code if the precondition failed
-]]
-
diff --git a/package/luci/libs/luci-lib-httpprotoutils/luasrc/http/date.lua b/package/luci/libs/luci-lib-httpprotoutils/luasrc/http/date.lua
deleted file mode 100644 (file)
index 72f1bdb..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
--- Copyright 2008 Freifunk Leipzig / Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
--- This class contains functions to parse, compare and format http dates.
-module("luci.http.date", package.seeall)
-
-require("luci.sys.zoneinfo")
-
-
-MONTHS = {
-       "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
-       "Sep", "Oct", "Nov", "Dec"
-}
-
-function tz_offset(tz)
-
-       if type(tz) == "string" then
-
-               -- check for a numeric identifier
-               local s, v = tz:match("([%+%-])([0-9]+)")
-               if s == '+' then s = 1 else s = -1 end
-               if v then v = tonumber(v) end
-
-               if s and v then
-                       return s * 60 * ( math.floor( v / 100 ) * 60 + ( v % 100 ) )
-
-               -- lookup symbolic tz
-               elseif luci.sys.zoneinfo.OFFSET[tz:lower()] then
-                       return luci.sys.zoneinfo.OFFSET[tz:lower()]
-               end
-
-       end
-
-       -- bad luck
-       return 0
-end
-
-function to_unix(date)
-
-       local wd, day, mon, yr, hr, min, sec, tz = date:match(
-               "([A-Z][a-z][a-z]), ([0-9]+) " ..
-               "([A-Z][a-z][a-z]) ([0-9]+) " ..
-               "([0-9]+):([0-9]+):([0-9]+) " ..
-               "([A-Z0-9%+%-]+)"
-       )
-
-       if day and mon and yr and hr and min and sec then
-               -- find month
-               local month = 1
-               for i = 1, 12 do
-                       if MONTHS[i] == mon then
-                               month = i
-                               break
-                       end
-               end
-
-               -- convert to epoch time
-               return tz_offset(tz) + os.time( {
-                       year  = yr,
-                       month = month,
-                       day   = day,
-                       hour  = hr,
-                       min   = min,
-                       sec   = sec
-               } )
-       end
-
-       return 0
-end
-
-function to_http(time)
-       return os.date( "%a, %d %b %Y %H:%M:%S GMT", time )
-end
-
-function compare(d1, d2)
-
-       if d1:match("[^0-9]") then d1 = to_unix(d1) end
-       if d2:match("[^0-9]") then d2 = to_unix(d2) end
-
-       if d1 == d2 then
-               return 0
-       elseif d1 < d2 then
-               return -1
-       else
-               return 1
-       end
-end
diff --git a/package/luci/libs/luci-lib-httpprotoutils/luasrc/http/date.luadoc b/package/luci/libs/luci-lib-httpprotoutils/luasrc/http/date.luadoc
deleted file mode 100644 (file)
index 6028fb4..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
----[[
-LuCI http protocol implementation - date helper class.
-
-This class contains functions to parse, compare and format http dates.
-]]
-module "luci.http.date"
-
----[[
-Return the time offset in seconds between the UTC and given time zone.
-
-@class function
-@name tz_offset
-@param tz      Symbolic or numeric timezone specifier
-@return                Time offset to UTC in seconds
-]]
-
----[[
-Parse given HTTP date string and convert it to unix epoch time.
-
-@class function
-@name to_unix
-@param data    String containing the date
-@return                Unix epoch time
-]]
-
----[[
-Convert the given unix epoch time to valid HTTP date string.
-
-@class function
-@name to_http
-@param time    Unix epoch time
-@return                String containing the formatted date
-]]
-
----[[
-Compare two dates which can either be unix epoch times or HTTP date strings.
-
-@class function
-@name compare
-@param d1      The first date or epoch time to compare
-@param d2      The first date or epoch time to compare
-@return                -1  -  if d1 is lower then d2
-@return                0   -  if both dates are equal
-@return                1   -  if d1 is higher then d2
-]]
-
diff --git a/package/luci/libs/luci-lib-httpprotoutils/luasrc/http/mime.lua b/package/luci/libs/luci-lib-httpprotoutils/luasrc/http/mime.lua
deleted file mode 100644 (file)
index 0bcff8a..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
--- Copyright 2008 Freifunk Leipzig / Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
--- This class provides functions to guess mime types from file extensions and
--- vice versa.
-module("luci.http.mime", package.seeall)
-
-require("luci.util")
-
-MIME_TYPES = {
-    ["txt"]   = "text/plain";
-    ["js"]    = "text/javascript";
-    ["css"]   = "text/css";
-    ["htm"]   = "text/html";
-    ["html"]  = "text/html";
-    ["patch"] = "text/x-patch";
-    ["c"]     = "text/x-csrc";
-    ["h"]     = "text/x-chdr";
-    ["o"]     = "text/x-object";
-    ["ko"]    = "text/x-object";
-
-    ["bmp"]   = "image/bmp";
-    ["gif"]   = "image/gif";
-    ["png"]   = "image/png";
-    ["jpg"]   = "image/jpeg";
-    ["jpeg"]  = "image/jpeg";
-    ["svg"]   = "image/svg+xml";
-
-    ["zip"]   = "application/zip";
-    ["pdf"]   = "application/pdf";
-    ["xml"]   = "application/xml";
-    ["xsl"]   = "application/xml";
-    ["doc"]   = "application/msword";
-    ["ppt"]   = "application/vnd.ms-powerpoint";
-    ["xls"]   = "application/vnd.ms-excel";
-    ["odt"]   = "application/vnd.oasis.opendocument.text";
-    ["odp"]   = "application/vnd.oasis.opendocument.presentation";
-    ["pl"]    = "application/x-perl";
-    ["sh"]    = "application/x-shellscript";
-    ["php"]   = "application/x-php";
-    ["deb"]   = "application/x-deb";
-    ["iso"]   = "application/x-cd-image";
-    ["tgz"]   = "application/x-compressed-tar";
-
-    ["mp3"]   = "audio/mpeg";
-    ["ogg"]   = "audio/x-vorbis+ogg";
-    ["wav"]   = "audio/x-wav";
-
-    ["mpg"]   = "video/mpeg";
-    ["mpeg"]  = "video/mpeg";
-    ["avi"]   = "video/x-msvideo";
-}
-
--- "application/octet-stream" if the extension is unknown.
-function to_mime(filename)
-       if type(filename) == "string" then
-               local ext = filename:match("[^%.]+$")
-
-               if ext and MIME_TYPES[ext:lower()] then
-                       return MIME_TYPES[ext:lower()]
-               end
-       end
-
-       return "application/octet-stream"
-end
-
--- given mime-type is unknown.
-function to_ext(mimetype)
-       if type(mimetype) == "string" then
-               for ext, type in luci.util.kspairs( MIME_TYPES ) do
-                       if type == mimetype then
-                               return ext
-                       end
-               end
-       end
-
-       return nil
-end
diff --git a/package/luci/libs/luci-lib-httpprotoutils/luasrc/http/mime.luadoc b/package/luci/libs/luci-lib-httpprotoutils/luasrc/http/mime.luadoc
deleted file mode 100644 (file)
index 9c7f01a..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
----[[
-LuCI http protocol implementation - mime helper class.
-
-This class provides functions to guess mime types from file extensions and
-vice versa.
-]]
-module "luci.http.mime"
-
----[[
-MIME mapping table containing extension - mimetype relations.
-
-@class table
-]]
-
----[[
-Extract extension from a filename and return corresponding mime-type or
-
-"application/octet-stream" if the extension is unknown.
-@class function
-@name to_mime
-@param filename        The filename for which the mime type is guessed
-@return                        String containign the determined mime type
-]]
-
----[[
-Return corresponding extension for a given mime type or nil if the
-
-given mime-type is unknown.
-@class function
-@name to_ext
-@param mimetype        The mimetype to retrieve the extension from
-@return                        String with the extension or nil for unknown type
-]]
-
diff --git a/package/luci/libs/luci-lib-ip/Makefile b/package/luci/libs/luci-lib-ip/Makefile
deleted file mode 100644 (file)
index 15cb537..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Copyright (C) 2015 LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Lua library for IP calculation and routing information
-LUCI_DEPENDS:=+liblua +libnl-tiny
-
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/libs/luci-lib-ip/src/Makefile b/package/luci/libs/luci-lib-ip/src/Makefile
deleted file mode 100644 (file)
index 76abd27..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-IP_CFLAGS = -std=gnu99 -I$(STAGING_DIR)/usr/include/libnl-tiny/
-IP_LDFLAGS = -llua -lm -lnl-tiny
-IP_OBJ = ip.o
-IP_LIB = ip.so
-
-%.o: %.c
-       $(CC) $(CPPFLAGS) $(CFLAGS) $(LUA_CFLAGS) $(IP_CFLAGS) $(FPIC) -c -o $@ $<
-
-compile: $(IP_OBJ)
-       $(CC) $(LDFLAGS) -shared -o $(IP_LIB) $(IP_OBJ) $(IP_LDFLAGS)
-
-install: compile
-       mkdir -p $(DESTDIR)/usr/lib/lua/luci
-       cp $(IP_LIB) $(DESTDIR)/usr/lib/lua/luci/$(IP_LIB)
-
-clean:
-       rm -f *.o *.so
diff --git a/package/luci/libs/luci-lib-ip/src/ip.c b/package/luci/libs/luci-lib-ip/src/ip.c
deleted file mode 100644 (file)
index 854a0c0..0000000
+++ /dev/null
@@ -1,1613 +0,0 @@
-/*
-Copyright 2015-2018 Jo-Philipp Wich <jo@mein.io>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-#define _GNU_SOURCE
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stdbool.h>
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-#include <limits.h>
-
-#include <lua.h>
-#include <lualib.h>
-#include <lauxlib.h>
-
-#include <net/if.h>
-#include <netinet/ether.h>
-#include <arpa/inet.h>
-#include <netlink/msg.h>
-#include <netlink/attr.h>
-#include <netlink/socket.h>
-#include <linux/rtnetlink.h>
-
-#define LUCI_IP "luci.ip"
-#define LUCI_IP_CIDR "luci.ip.cidr"
-
-#define RTA_INT(x)     (*(int *)RTA_DATA(x))
-#define RTA_U32(x)     (*(uint32_t *)RTA_DATA(x))
-
-#define AF_BITS(f) \
-       ((f) == AF_INET ? 32 : \
-               ((f) == AF_INET6 ? 128 : \
-                       ((f) == AF_PACKET ? 48 : 0)))
-
-#define AF_BYTES(f) \
-       ((f) == AF_INET ? 4 : \
-               ((f) == AF_INET6 ? 16 : \
-                       ((f) == AF_PACKET ? 6 : 0)))
-
-static int hz = 0;
-static struct nl_sock *sock = NULL;
-
-typedef struct {
-       union {
-               struct in_addr v4;
-               struct in6_addr v6;
-               struct ether_addr mac;
-               uint8_t u8[16];
-       } addr;
-       uint16_t family;
-       int16_t bits;
-} cidr_t;
-
-struct dump_filter {
-       bool get;
-       int family;
-       int iif;
-       int oif;
-       int type;
-       int scope;
-       int proto;
-       int table;
-       cidr_t gw;
-       cidr_t from;
-       cidr_t src;
-       cidr_t dst;
-       struct ether_addr mac;
-       bool from_exact;
-       bool dst_exact;
-};
-
-struct dump_state {
-       int index;
-       int pending;
-       int callback;
-       struct lua_State *L;
-       struct dump_filter *filter;
-};
-
-
-static int _cidr_new(lua_State *L, int index, int family, bool mask);
-
-static cidr_t *L_checkcidr (lua_State *L, int index, cidr_t *p)
-{
-       if (lua_type(L, index) == LUA_TUSERDATA)
-               return luaL_checkudata(L, index, LUCI_IP_CIDR);
-
-       if (_cidr_new(L, index, p ? p->family : 0, false))
-               return lua_touserdata(L, -1);
-
-       luaL_error(L, "Invalid operand");
-       return NULL;
-}
-
-static bool parse_mac(const char *mac, struct ether_addr *ea)
-{
-       unsigned long int n;
-       char *e, sep = 0;
-       int i;
-
-       for (i = 0; i < 6; i++)
-       {
-               if (i > 0)
-               {
-                       if (sep == 0 && (mac[0] == ':' || mac[0] == '-'))
-                               sep = mac[0];
-
-                       if (sep == 0 || mac[0] != sep)
-                               return false;
-
-                       mac++;
-               }
-
-               n = strtoul(mac, &e, 16);
-
-               if (n > 0xFF)
-                       return false;
-
-               mac += (e - mac);
-               ea->ether_addr_octet[i] = n;
-       }
-
-       if (mac[0] != 0)
-               return false;
-
-       return true;
-}
-
-static bool parse_mask(int family, const char *mask, int16_t *bits)
-{
-       char *e;
-       union {
-               struct in_addr v4;
-               struct in6_addr v6;
-               struct ether_addr mac;
-               uint8_t u8[16];
-       } m;
-
-       if (family == AF_INET && inet_pton(AF_INET, mask, &m.v4))
-       {
-               for (*bits = 0, m.v4.s_addr = ntohl(m.v4.s_addr);
-                        *bits < AF_BITS(AF_INET) && (m.v4.s_addr << *bits) & 0x80000000;
-                        ++*bits);
-       }
-       else if ((family == AF_INET6 && inet_pton(AF_INET6, mask, &m.v6)) ||
-                (family == AF_PACKET && parse_mac(mask, &m.mac)))
-       {
-               for (*bits = 0;
-                        *bits < AF_BITS(family) && (m.u8[*bits / 8] << (*bits % 8)) & 128;
-                        ++*bits);
-       }
-       else
-       {
-               *bits = strtoul(mask, &e, 10);
-
-               if (e == mask || *e != 0 || *bits > AF_BITS(family))
-                       return false;
-       }
-
-       return true;
-}
-
-static bool parse_cidr(const char *dest, cidr_t *pp)
-{
-       char *p, buf[INET6_ADDRSTRLEN * 2 + 2];
-
-       strncpy(buf, dest, sizeof(buf) - 1);
-
-       p = strchr(buf, '/');
-
-       if (p)
-               *p++ = 0;
-
-       if (inet_pton(AF_INET, buf, &pp->addr.v4))
-               pp->family = AF_INET;
-       else if (inet_pton(AF_INET6, buf, &pp->addr.v6))
-               pp->family = AF_INET6;
-       else if (parse_mac(buf, &pp->addr.mac))
-               pp->family = AF_PACKET;
-       else
-               return false;
-
-       if (p)
-       {
-               if (!parse_mask(pp->family, p, &pp->bits))
-                       return false;
-       }
-       else
-       {
-               pp->bits = AF_BITS(pp->family);
-       }
-
-       return true;
-}
-
-static int format_cidr(lua_State *L, cidr_t *p)
-{
-       char buf[INET6_ADDRSTRLEN];
-
-       if (p->family == AF_PACKET)
-       {
-               snprintf(buf, sizeof(buf), "%02X:%02X:%02X:%02X:%02X:%02X",
-                        p->addr.mac.ether_addr_octet[0],
-                        p->addr.mac.ether_addr_octet[1],
-                        p->addr.mac.ether_addr_octet[2],
-                        p->addr.mac.ether_addr_octet[3],
-                        p->addr.mac.ether_addr_octet[4],
-                        p->addr.mac.ether_addr_octet[5]);
-
-               if (p->bits < AF_BITS(AF_PACKET))
-                       lua_pushfstring(L, "%s/%d", buf, p->bits);
-               else
-                       lua_pushstring(L, buf);
-       }
-       else
-       {
-               if (p->bits < AF_BITS(p->family))
-                       lua_pushfstring(L, "%s/%d",
-                                       inet_ntop(p->family, &p->addr.v6, buf, sizeof(buf)),
-                                       p->bits);
-               else
-                       lua_pushstring(L,
-                                      inet_ntop(p->family, &p->addr.v6, buf, sizeof(buf)));
-       }
-
-       return 1;
-}
-
-static int L_getint(lua_State *L, int index, const char *name)
-{
-       int rv = 0;
-
-       lua_getfield(L, index, name);
-
-       if (lua_type(L, -1) == LUA_TNUMBER)
-               rv = lua_tonumber(L, -1);
-
-       lua_pop(L, 1);
-
-       return rv;
-}
-
-static const char * L_getstr(lua_State *L, int index, const char *name)
-{
-       const char *rv = NULL;
-
-       lua_getfield(L, index, name);
-
-       if (lua_type(L, -1) == LUA_TSTRING)
-               rv = lua_tostring(L, -1);
-
-       lua_pop(L, 1);
-
-       return rv;
-}
-
-static void L_setint(struct lua_State *L, const char *name, uint32_t n)
-{
-       lua_pushinteger(L, n);
-       lua_setfield(L, -2, name);
-}
-
-static void L_setbool(struct lua_State *L, const char *name, bool val)
-{
-       lua_pushboolean(L, val);
-       lua_setfield(L, -2, name);
-}
-
-static void L_setaddr(struct lua_State *L, const char *name,
-                      int family, void *addr, int bits)
-{
-       cidr_t *p;
-
-       if (!addr)
-               return;
-
-       p = lua_newuserdata(L, sizeof(*p));
-
-       if (!p)
-               return;
-
-       if (family == AF_INET)
-       {
-               p->family = AF_INET;
-               p->bits = (bits < 0) ? AF_BITS(AF_INET) : bits;
-               p->addr.v4 = *(struct in_addr *)addr;
-       }
-       else if (family == AF_INET6)
-       {
-               p->family = AF_INET6;
-               p->bits = (bits < 0) ? AF_BITS(AF_INET6) : bits;
-               p->addr.v6 = *(struct in6_addr *)addr;
-       }
-       else
-       {
-               p->family = AF_PACKET;
-               p->bits = (bits < 0) ? AF_BITS(AF_PACKET) : bits;
-               p->addr.mac = *(struct ether_addr *)addr;
-       }
-
-       luaL_getmetatable(L, LUCI_IP_CIDR);
-       lua_setmetatable(L, -2);
-       lua_setfield(L, -2, name);
-}
-
-static void L_setstr(struct lua_State *L, const char *name, const char *val)
-{
-       lua_pushstring(L, val);
-       lua_setfield(L, -2, name);
-}
-
-static void L_setdev(struct lua_State *L, const char *name,
-                     struct nlattr *attr)
-{
-       char buf[32];
-
-       if (if_indextoname(RTA_INT(attr), buf))
-               L_setstr(L, name, buf);
-}
-
-static int L_checkbits(lua_State *L, int index, cidr_t *p)
-{
-       int16_t s16;
-       int bits;
-
-       if (lua_gettop(L) < index || lua_isnil(L, index))
-       {
-               bits = p->bits;
-       }
-       else if (lua_type(L, index) == LUA_TNUMBER)
-       {
-               bits = lua_tointeger(L, index);
-
-               if (bits < 0 || bits > AF_BITS(p->family))
-                       return luaL_error(L, "Invalid prefix size");
-       }
-       else if (lua_type(L, index) == LUA_TSTRING)
-       {
-               if (!parse_mask(p->family, lua_tostring(L, index), &s16))
-                       return luaL_error(L, "Invalid netmask format");
-
-               bits = s16;
-       }
-       else
-       {
-               return luaL_error(L, "Invalid data type");
-       }
-
-       return bits;
-}
-
-static int _cidr_new(lua_State *L, int index, int family, bool mask)
-{
-       uint32_t n;
-       const char *addr;
-       cidr_t cidr = { }, *cidrp;
-
-       if (lua_type(L, index) == LUA_TNUMBER)
-       {
-               n = htonl(lua_tointeger(L, index));
-
-               if (family == AF_INET6)
-               {
-                       cidr.family = AF_INET6;
-                       cidr.addr.v6.s6_addr[12] = n;
-                       cidr.addr.v6.s6_addr[13] = (n >> 8);
-                       cidr.addr.v6.s6_addr[14] = (n >> 16);
-                       cidr.addr.v6.s6_addr[15] = (n >> 24);
-               }
-               else if (family == AF_INET)
-               {
-                       cidr.family = AF_INET;
-                       cidr.addr.v4.s_addr = n;
-               }
-               else
-               {
-                       cidr.family = AF_PACKET;
-                       cidr.addr.mac.ether_addr_octet[2] = n;
-                       cidr.addr.mac.ether_addr_octet[3] = (n >> 8);
-                       cidr.addr.mac.ether_addr_octet[4] = (n >> 16);
-                       cidr.addr.mac.ether_addr_octet[5] = (n >> 24);
-               }
-
-               cidr.bits = AF_BITS(cidr.family);
-       }
-       else
-       {
-               addr = luaL_checkstring(L, index);
-
-               if (!parse_cidr(addr, &cidr))
-                       return 0;
-
-               if (family && cidr.family != family)
-                       return 0;
-
-               if (mask)
-                       cidr.bits = L_checkbits(L, index + 1, &cidr);
-       }
-
-       if (!(cidrp = lua_newuserdata(L, sizeof(*cidrp))))
-               return 0;
-
-       *cidrp = cidr;
-       luaL_getmetatable(L, LUCI_IP_CIDR);
-       lua_setmetatable(L, -2);
-       return 1;
-}
-
-static int cidr_new(lua_State *L)
-{
-       return _cidr_new(L, 1, 0, true);
-}
-
-static int cidr_ipv4(lua_State *L)
-{
-       return _cidr_new(L, 1, AF_INET, true);
-}
-
-static int cidr_ipv6(lua_State *L)
-{
-       return _cidr_new(L, 1, AF_INET6, true);
-}
-
-static int cidr_mac(lua_State *L)
-{
-       return _cidr_new(L, 1, AF_PACKET, true);
-}
-
-static int cidr_check(lua_State *L, int family)
-{
-       cidr_t cidr = { }, *cidrp;
-       const char *addr;
-
-       if (lua_type(L, 1) == LUA_TSTRING)
-       {
-               addr = lua_tostring(L, 1);
-
-               if (addr && parse_cidr(addr, &cidr) && cidr.family == family)
-                       return format_cidr(L, &cidr);
-       }
-       else
-       {
-               cidrp = lua_touserdata(L, 1);
-
-               if (cidrp == NULL)
-                       return 0;
-
-               if (!lua_getmetatable(L, 1))
-                       return 0;
-
-               lua_getfield(L, LUA_REGISTRYINDEX, LUCI_IP_CIDR);
-
-               if (!lua_rawequal(L, -1, -2))
-                       cidrp = NULL;
-
-               lua_pop(L, 2);
-
-               if (cidrp != NULL && cidrp->family == family)
-                       return format_cidr(L, cidrp);
-       }
-
-       return 0;
-}
-
-static int cidr_checkip4(lua_State *L)
-{
-       return cidr_check(L, AF_INET);
-}
-
-static int cidr_checkip6(lua_State *L)
-{
-       return cidr_check(L, AF_INET6);
-}
-
-static int cidr_checkmac(lua_State *L)
-{
-       return cidr_check(L, AF_PACKET);
-}
-
-static int cidr_is4(lua_State *L)
-{
-       cidr_t *p = L_checkcidr(L, 1, NULL);
-
-       lua_pushboolean(L, p->family == AF_INET);
-       return 1;
-}
-
-static int cidr_is4rfc1918(lua_State *L)
-{
-       cidr_t *p = L_checkcidr(L, 1, NULL);
-       uint32_t a = htonl(p->addr.v4.s_addr);
-
-       lua_pushboolean(L, (p->family == AF_INET &&
-                           ((a >= 0x0A000000 && a <= 0x0AFFFFFF) ||
-                            (a >= 0xAC100000 && a <= 0xAC1FFFFF) ||
-                            (a >= 0xC0A80000 && a <= 0xC0A8FFFF))));
-
-       return 1;
-}
-
-static int cidr_is4linklocal(lua_State *L)
-{
-       cidr_t *p = L_checkcidr(L, 1, NULL);
-       uint32_t a = htonl(p->addr.v4.s_addr);
-
-       lua_pushboolean(L, (p->family == AF_INET &&
-                           a >= 0xA9FE0000 &&
-                           a <= 0xA9FEFFFF));
-
-       return 1;
-}
-
-static bool _is_mapped4(cidr_t *p)
-{
-       return (p->family == AF_INET6 &&
-               p->addr.v6.s6_addr[0] == 0 &&
-               p->addr.v6.s6_addr[1] == 0 &&
-               p->addr.v6.s6_addr[2] == 0 &&
-               p->addr.v6.s6_addr[3] == 0 &&
-               p->addr.v6.s6_addr[4] == 0 &&
-               p->addr.v6.s6_addr[5] == 0 &&
-               p->addr.v6.s6_addr[6] == 0 &&
-               p->addr.v6.s6_addr[7] == 0 &&
-               p->addr.v6.s6_addr[8] == 0 &&
-               p->addr.v6.s6_addr[9] == 0 &&
-               p->addr.v6.s6_addr[10] == 0xFF &&
-               p->addr.v6.s6_addr[11] == 0xFF);
-}
-
-static int cidr_is6mapped4(lua_State *L)
-{
-       cidr_t *p = L_checkcidr(L, 1, NULL);
-
-       lua_pushboolean(L, _is_mapped4(p));
-       return 1;
-}
-
-static int cidr_is6(lua_State *L)
-{
-       cidr_t *p = L_checkcidr(L, 1, NULL);
-
-       lua_pushboolean(L, p->family == AF_INET6);
-       return 1;
-}
-
-static int cidr_is6linklocal(lua_State *L)
-{
-       cidr_t *p = L_checkcidr(L, 1, NULL);
-
-       lua_pushboolean(L, (p->family == AF_INET6 &&
-                           p->addr.v6.s6_addr[0] == 0xFE &&
-                           p->addr.v6.s6_addr[1] >= 0x80 &&
-                           p->addr.v6.s6_addr[1] <= 0xBF));
-
-       return 1;
-}
-
-static int cidr_ismac(lua_State *L)
-{
-       cidr_t *p = L_checkcidr(L, 1, NULL);
-
-       lua_pushboolean(L, p->family == AF_PACKET);
-       return 1;
-}
-
-static int cidr_ismacmcast(lua_State *L)
-{
-       cidr_t *p = L_checkcidr(L, 1, NULL);
-
-       lua_pushboolean(L, (p->family == AF_PACKET &&
-                           (p->addr.mac.ether_addr_octet[0] & 0x1)));
-
-       return 1;
-}
-
-static int cidr_ismaclocal(lua_State *L)
-{
-       cidr_t *p = L_checkcidr(L, 1, NULL);
-
-       lua_pushboolean(L, (p->family == AF_PACKET &&
-                           (p->addr.mac.ether_addr_octet[0] & 0x2)));
-
-       return 1;
-}
-
-static int _cidr_cmp(lua_State *L)
-{
-       cidr_t *a = L_checkcidr(L, 1, NULL);
-       cidr_t *b = L_checkcidr(L, 2, NULL);
-
-       if (a->family != b->family)
-               return (a->family - b->family);
-
-       return memcmp(&a->addr.v6, &b->addr.v6, AF_BYTES(a->family));
-}
-
-static int cidr_lower(lua_State *L)
-{
-       lua_pushboolean(L, _cidr_cmp(L) < 0);
-       return 1;
-}
-
-static int cidr_higher(lua_State *L)
-{
-       lua_pushboolean(L, _cidr_cmp(L) > 0);
-       return 1;
-}
-
-static int cidr_equal(lua_State *L)
-{
-       lua_pushboolean(L, _cidr_cmp(L) == 0);
-       return 1;
-}
-
-static int cidr_lower_equal(lua_State *L)
-{
-       lua_pushboolean(L, _cidr_cmp(L) <= 0);
-       return 1;
-}
-
-static int cidr_prefix(lua_State *L)
-{
-       cidr_t *p = L_checkcidr(L, 1, NULL);
-       int bits = L_checkbits(L, 2, p);
-
-       p->bits = bits;
-       lua_pushinteger(L, p->bits);
-       return 1;
-}
-
-static void _apply_mask(cidr_t *p, int bits, bool inv)
-{
-       uint8_t b, i;
-
-       if (bits <= 0)
-       {
-               memset(&p->addr.u8, inv * 0xFF, AF_BYTES(p->family));
-       }
-       else if (p->family == AF_INET && bits <= AF_BITS(AF_INET))
-       {
-               if (inv)
-                       p->addr.v4.s_addr |= ntohl((1 << (AF_BITS(AF_INET) - bits)) - 1);
-               else
-                       p->addr.v4.s_addr &= ntohl(~((1 << (AF_BITS(AF_INET) - bits)) - 1));
-       }
-       else if (bits <= AF_BITS(p->family))
-       {
-               for (i = 0; i < AF_BYTES(p->family); i++)
-               {
-                       b = (bits > 8) ? 8 : bits;
-                       if (inv)
-                               p->addr.u8[i] |= ~((uint8_t)(0xFF << (8 - b)));
-                       else
-                               p->addr.u8[i] &= (uint8_t)(0xFF << (8 - b));
-                       bits -= b;
-               }
-       }
-}
-
-static int cidr_network(lua_State *L)
-{
-       cidr_t *p1 = L_checkcidr(L, 1, NULL), *p2;
-       int bits = L_checkbits(L, 2, p1);
-
-       if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
-               return 0;
-
-       *p2 = *p1;
-       p2->bits = AF_BITS(p1->family);
-       _apply_mask(p2, bits, false);
-
-       luaL_getmetatable(L, LUCI_IP_CIDR);
-       lua_setmetatable(L, -2);
-       return 1;
-}
-
-static int cidr_host(lua_State *L)
-{
-       cidr_t *p1 = L_checkcidr(L, 1, NULL);
-       cidr_t *p2 = lua_newuserdata(L, sizeof(*p2));
-
-       if (!p2)
-               return 0;
-
-       *p2 = *p1;
-       p2->bits = AF_BITS(p1->family);
-
-       luaL_getmetatable(L, LUCI_IP_CIDR);
-       lua_setmetatable(L, -2);
-       return 1;
-}
-
-static int cidr_mask(lua_State *L)
-{
-       cidr_t *p1 = L_checkcidr(L, 1, NULL), *p2;
-       int bits = L_checkbits(L, 2, p1);
-
-       if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
-               return 0;
-
-       p2->bits = AF_BITS(p1->family);
-       p2->family = p1->family;
-
-       memset(&p2->addr.v6.s6_addr, 0xFF, sizeof(p2->addr.v6.s6_addr));
-       _apply_mask(p2, bits, false);
-
-       luaL_getmetatable(L, LUCI_IP_CIDR);
-       lua_setmetatable(L, -2);
-       return 1;
-}
-
-static int cidr_broadcast(lua_State *L)
-{
-       cidr_t *p1 = L_checkcidr(L, 1, NULL);
-       cidr_t *p2;
-       int bits = L_checkbits(L, 2, p1);
-
-       if (p1->family != AF_INET)
-               return 0;
-
-       if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
-               return 0;
-
-       *p2 = *p1;
-       p2->bits = AF_BITS(AF_INET);
-       _apply_mask(p2, bits, true);
-
-       luaL_getmetatable(L, LUCI_IP_CIDR);
-       lua_setmetatable(L, -2);
-       return 1;
-}
-
-static int cidr_mapped4(lua_State *L)
-{
-       cidr_t *p1 = L_checkcidr(L, 1, NULL);
-       cidr_t *p2;
-
-       if (!_is_mapped4(p1))
-               return 0;
-
-       if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
-               return 0;
-
-       p2->family = AF_INET;
-       p2->bits = (p1->bits > AF_BITS(AF_INET)) ? AF_BITS(AF_INET) : p1->bits;
-       memcpy(&p2->addr.v4, p1->addr.v6.s6_addr + 12, sizeof(p2->addr.v4));
-
-       luaL_getmetatable(L, LUCI_IP_CIDR);
-       lua_setmetatable(L, -2);
-       return 1;
-}
-
-static int cidr_tolinklocal(lua_State *L)
-{
-       cidr_t *p1 = L_checkcidr(L, 1, NULL);
-       cidr_t *p2;
-       int i;
-
-       if (p1->family != AF_PACKET)
-               return 0;
-
-       if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
-               return 0;
-
-       p2->family = AF_INET6;
-       p2->bits = AF_BITS(AF_INET6);
-       p2->addr.u8[0] = 0xFE;
-       p2->addr.u8[1] = 0x80;
-       p2->addr.u8[8] = p1->addr.u8[0] ^ 0x02;
-       p2->addr.u8[9] = p1->addr.u8[1];
-       p2->addr.u8[10] = p1->addr.u8[2];
-       p2->addr.u8[11] = 0xFF;
-       p2->addr.u8[12] = 0xFE;
-       p2->addr.u8[13] = p1->addr.u8[3];
-       p2->addr.u8[14] = p1->addr.u8[4];
-       p2->addr.u8[15] = p1->addr.u8[5];
-
-       luaL_getmetatable(L, LUCI_IP_CIDR);
-       lua_setmetatable(L, -2);
-       return 1;
-}
-
-static int cidr_tomac(lua_State *L)
-{
-       cidr_t *p1 = L_checkcidr(L, 1, NULL);
-       cidr_t *p2;
-       int i;
-
-       if (p1->family != AF_INET6 ||
-           p1->addr.u8[0] != 0xFE ||
-           p1->addr.u8[1] != 0x80 ||
-           p1->addr.u8[2] != 0x00 ||
-           p1->addr.u8[3] != 0x00 ||
-           p1->addr.u8[4] != 0x00 ||
-           p1->addr.u8[5] != 0x00 ||
-           p1->addr.u8[6] != 0x00 ||
-           p1->addr.u8[7] != 0x00 ||
-           p1->addr.u8[11] != 0xFF ||
-           p1->addr.u8[12] != 0xFE)
-           return 0;
-
-       if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
-               return 0;
-
-       p2->family = AF_PACKET;
-       p2->bits = AF_BITS(AF_PACKET);
-       p2->addr.u8[0] = p1->addr.u8[8] ^ 0x02;
-       p2->addr.u8[1] = p1->addr.u8[9];
-       p2->addr.u8[2] = p1->addr.u8[10];
-       p2->addr.u8[3] = p1->addr.u8[13];
-       p2->addr.u8[4] = p1->addr.u8[14];
-       p2->addr.u8[5] = p1->addr.u8[15];
-
-       luaL_getmetatable(L, LUCI_IP_CIDR);
-       lua_setmetatable(L, -2);
-       return 1;
-}
-
-static int cidr_contains(lua_State *L)
-{
-       cidr_t *p1 = L_checkcidr(L, 1, NULL);
-       cidr_t *p2 = L_checkcidr(L, 2, NULL);
-       cidr_t a = *p1, b = *p2;
-       bool rv = false;
-
-       if (p1->family == p2->family && p1->bits <= p2->bits)
-       {
-               _apply_mask(&a, p1->bits, false);
-               _apply_mask(&b, p1->bits, false);
-
-               rv = !memcmp(&a.addr.v6, &b.addr.v6, AF_BYTES(a.family));
-       }
-
-       lua_pushboolean(L, rv);
-       return 1;
-}
-
-#define BYTE(a, i) \
-       (a)->addr.u8[AF_BYTES((a)->family) - (i) - 1]
-
-static int _cidr_add_sub(lua_State *L, bool add)
-{
-       cidr_t *p1 = L_checkcidr(L, 1, NULL);
-       cidr_t *p2 = L_checkcidr(L, 2, p1);
-       cidr_t r = *p1;
-       bool inplace = lua_isboolean(L, 3) ? lua_toboolean(L, 3) : false;
-       bool ok = true;
-       uint8_t i, carry;
-       uint32_t a, b;
-
-       if (p1->family == p2->family)
-       {
-               if (p1->family == AF_INET)
-               {
-                       a = ntohl(p1->addr.v4.s_addr);
-                       b = ntohl(p2->addr.v4.s_addr);
-
-                       /* would over/underflow */
-                       if ((add && (UINT_MAX - a) < b) || (!add && a < b))
-                       {
-                               r.addr.v4.s_addr = add * 0xFFFFFFFF;
-                               ok = false;
-                       }
-                       else
-                       {
-                               r.addr.v4.s_addr = add ? htonl(a + b) : htonl(a - b);
-                       }
-               }
-               else
-               {
-                       for (i = 0, carry = 0; i < AF_BYTES(p1->family); i++)
-                       {
-                               if (add)
-                               {
-                                       BYTE(&r, i) = BYTE(p1, i) + BYTE(p2, i) + carry;
-                                       carry = (BYTE(p1, i) + BYTE(p2, i) + carry) / 256;
-                               }
-                               else
-                               {
-                                       BYTE(&r, i) = (BYTE(p1, i) - BYTE(p2, i) - carry);
-                                       carry = (BYTE(p1, i) < (BYTE(p2, i) + carry));
-                               }
-                       }
-
-                       /* would over/underflow */
-                       if (carry)
-                       {
-                               memset(&r.addr.u8, add * 0xFF, AF_BYTES(r.family));
-                               ok = false;
-                       }
-               }
-       }
-       else
-       {
-               ok = false;
-       }
-
-       if (inplace)
-       {
-               *p1 = r;
-               lua_pushboolean(L, ok);
-               return 1;
-       }
-
-       if (!(p1 = lua_newuserdata(L, sizeof(*p1))))
-               return 0;
-
-       *p1 = r;
-
-       luaL_getmetatable(L, LUCI_IP_CIDR);
-       lua_setmetatable(L, -2);
-       return 1;
-}
-
-static int cidr_add(lua_State *L)
-{
-       return _cidr_add_sub(L, true);
-}
-
-static int cidr_sub(lua_State *L)
-{
-       return _cidr_add_sub(L, false);
-}
-
-static int cidr_minhost(lua_State *L)
-{
-       cidr_t *p = L_checkcidr(L, 1, NULL);
-       cidr_t r = *p;
-       uint8_t i, rest, carry;
-
-       _apply_mask(&r, r.bits, false);
-
-       if (r.family == AF_INET && r.bits < AF_BITS(AF_INET))
-       {
-               r.bits = AF_BITS(AF_INET);
-               r.addr.v4.s_addr = htonl(ntohl(r.addr.v4.s_addr) + 1);
-       }
-       else if (r.bits < AF_BITS(r.family))
-       {
-               r.bits = AF_BITS(r.family);
-
-               for (i = 0, carry = 1; i < AF_BYTES(r.family); i++)
-               {
-                       rest = (BYTE(&r, i) + carry) > 255;
-                       BYTE(&r, i) += carry;
-                       carry = rest;
-               }
-       }
-
-       if (!(p = lua_newuserdata(L, sizeof(*p))))
-               return 0;
-
-       *p = r;
-
-       luaL_getmetatable(L, LUCI_IP_CIDR);
-       lua_setmetatable(L, -2);
-       return 1;
-}
-
-static int cidr_maxhost(lua_State *L)
-{
-       cidr_t *p = L_checkcidr(L, 1, NULL);
-       cidr_t r = *p;
-
-       _apply_mask(&r, r.bits, true);
-
-       if (r.family == AF_INET && r.bits < AF_BITS(AF_INET))
-       {
-               r.bits = AF_BITS(AF_INET);
-               r.addr.v4.s_addr = htonl(ntohl(r.addr.v4.s_addr) - 1);
-       }
-       else
-       {
-               r.bits = AF_BITS(r.family);
-       }
-
-       if (!(p = lua_newuserdata(L, sizeof(*p))))
-               return 0;
-
-       *p = r;
-
-       luaL_getmetatable(L, LUCI_IP_CIDR);
-       lua_setmetatable(L, -2);
-       return 1;
-}
-
-static int cidr_gc (lua_State *L)
-{
-       return 0;
-}
-
-static int cidr_tostring (lua_State *L)
-{
-       cidr_t *p = L_checkcidr(L, 1, NULL);
-       return format_cidr(L, p);
-}
-
-/*
- * route functions
- */
-
-static bool diff_prefix(int family, void *addr, int bits, bool exact, cidr_t *p)
-{
-       uint8_t i, b, r, *a;
-       uint32_t m;
-
-       if (!p->family)
-               return false;
-
-       if (!addr || p->family != family || p->bits > bits)
-               return true;
-
-       if (family == AF_INET)
-       {
-               m = p->bits ? htonl(~((1 << (AF_BITS(AF_INET) - p->bits)) - 1)) : 0;
-
-               if ((((struct in_addr *)addr)->s_addr & m) != (p->addr.v4.s_addr & m))
-                       return true;
-       }
-       else
-       {
-               for (i = 0, a = addr, r = p->bits; i < AF_BYTES(p->family); i++)
-               {
-                       b = r ? (0xFF << (8 - ((r > 8) ? 8 : r))) : 0;
-
-                       if ((a[i] & b) != (p->addr.u8[i] & b))
-                               return true;
-
-                       r -= ((r > 8) ? 8 : r);
-               }
-       }
-
-       return (exact && p->bits != bits);
-}
-
-static int cb_dump_route(struct nl_msg *msg, void *arg)
-{
-       struct dump_state *s = arg;
-       struct dump_filter *f = s->filter;
-       struct nlmsghdr *hdr = nlmsg_hdr(msg);
-       struct rtmsg *rt = NLMSG_DATA(hdr);
-       struct nlattr *tb[RTA_MAX+1];
-       struct in6_addr *src, *dst, *gw, *from, def = { };
-       int iif, oif, bitlen;
-       uint32_t table;
-
-       if (hdr->nlmsg_type != RTM_NEWROUTE ||
-           (rt->rtm_family != AF_INET && rt->rtm_family != AF_INET6))
-               return NL_SKIP;
-
-       nlmsg_parse(hdr, sizeof(*rt), tb, RTA_MAX, NULL);
-
-       iif   = tb[RTA_IIF]     ? RTA_INT(tb[RTA_IIF])      : 0;
-       oif   = tb[RTA_OIF]     ? RTA_INT(tb[RTA_OIF])      : 0;
-       table = tb[RTA_TABLE]   ? RTA_U32(tb[RTA_TABLE])    : rt->rtm_table;
-       from  = tb[RTA_SRC]     ? RTA_DATA(tb[RTA_SRC])     : NULL;
-       src   = tb[RTA_PREFSRC] ? RTA_DATA(tb[RTA_PREFSRC]) : NULL;
-       dst   = tb[RTA_DST]     ? RTA_DATA(tb[RTA_DST])     : &def;
-       gw    = tb[RTA_GATEWAY] ? RTA_DATA(tb[RTA_GATEWAY]) : NULL;
-
-       bitlen = AF_BITS(rt->rtm_family);
-
-       if ((f->type   && rt->rtm_type     != f->type)   ||
-           (f->family && rt->rtm_family   != f->family) ||
-           (f->proto  && rt->rtm_protocol != f->proto)  ||
-           (f->scope  && rt->rtm_scope    != f->scope)  ||
-               (f->iif    && iif              != f->iif)    ||
-               (f->oif    && oif              != f->oif)    ||
-               (f->table  && table            != f->table)  ||
-           diff_prefix(rt->rtm_family, from, rt->rtm_src_len,
-                       f->from_exact, &f->from)         ||
-           diff_prefix(rt->rtm_family, dst,  rt->rtm_dst_len,
-                       f->dst_exact, &f->dst)           ||
-           diff_prefix(rt->rtm_family, gw,   bitlen,
-                       false, &f->gw)                   ||
-           diff_prefix(rt->rtm_family, src,  bitlen,
-                       false, &f->src))
-               goto out;
-
-       if (s->callback)
-               lua_pushvalue(s->L, 2);
-
-       lua_newtable(s->L);
-
-       L_setint(s->L, "type", rt->rtm_type);
-       L_setint(s->L, "family", (rt->rtm_family == AF_INET) ? 4 : 6);
-
-       L_setaddr(s->L, "dest", rt->rtm_family, dst, rt->rtm_dst_len);
-
-       if (gw)
-               L_setaddr(s->L, "gw", rt->rtm_family, gw, -1);
-
-       if (from)
-               L_setaddr(s->L, "from", rt->rtm_family, from, rt->rtm_src_len);
-
-       if (iif)
-               L_setdev(s->L, "iif", tb[RTA_IIF]);
-
-       if (oif)
-               L_setdev(s->L, "dev", tb[RTA_OIF]);
-
-       L_setint(s->L, "table", table);
-       L_setint(s->L, "proto", rt->rtm_protocol);
-       L_setint(s->L, "scope", rt->rtm_scope);
-
-       if (src)
-               L_setaddr(s->L, "src", rt->rtm_family, src, -1);
-
-       if (tb[RTA_PRIORITY])
-               L_setint(s->L, "metric", RTA_U32(tb[RTA_PRIORITY]));
-
-       if (rt->rtm_family == AF_INET6 && tb[RTA_CACHEINFO])
-       {
-               struct rta_cacheinfo *ci = RTA_DATA(tb[RTA_CACHEINFO]);
-
-               if (ci->rta_expires)
-               {
-                       if (ci->rta_expires)
-                               L_setint(s->L, "expires", ci->rta_expires / hz);
-
-                       if (ci->rta_error != 0)
-                               L_setint(s->L, "error", ci->rta_error);
-               }
-       }
-
-       s->index++;
-
-       if (s->callback)
-               lua_call(s->L, 1, 0);
-       else if (hdr->nlmsg_flags & NLM_F_MULTI)
-               lua_rawseti(s->L, -2, s->index);
-
-out:
-       s->pending = !!(hdr->nlmsg_flags & NLM_F_MULTI);
-       return NL_SKIP;
-}
-
-static int
-cb_done(struct nl_msg *msg, void *arg)
-{
-       struct dump_state *s = arg;
-       s->pending = 0;
-       return NL_STOP;
-}
-
-static int
-cb_error(struct sockaddr_nl *nla, struct nlmsgerr *err, void *arg)
-{
-       struct dump_state *s = arg;
-       s->pending = 0;
-       return NL_STOP;
-}
-
-static int _error(lua_State *L, int code, const char *msg)
-{
-       lua_pushnil(L);
-       lua_pushnumber(L, code ? code : errno);
-       lua_pushstring(L, msg ? msg : strerror(errno));
-
-       return 3;
-}
-
-static int _route_dump(lua_State *L, struct dump_filter *filter)
-{
-       int flags = NLM_F_REQUEST;
-       struct dump_state s = {
-               .L = L,
-               .pending = 1,
-               .index = 0,
-               .callback = lua_isfunction(L, 2),
-               .filter = filter
-       };
-
-       if (!hz)
-               hz = sysconf(_SC_CLK_TCK);
-
-       if (!sock)
-       {
-               sock = nl_socket_alloc();
-               if (!sock)
-                       return _error(L, -1, "Out of memory");
-
-               if (nl_connect(sock, NETLINK_ROUTE))
-                       return _error(L, 0, NULL);
-       }
-
-       struct nl_msg *msg;
-       struct nl_cb *cb = nl_cb_alloc(NL_CB_DEFAULT);
-       struct rtmsg rtm = {
-               .rtm_family = filter->family,
-               .rtm_dst_len = filter->dst.bits,
-               .rtm_src_len = filter->src.bits
-       };
-
-       if (!filter->get)
-               flags |= NLM_F_DUMP;
-
-       msg = nlmsg_alloc_simple(RTM_GETROUTE, flags);
-       if (!msg)
-               goto out;
-
-       nlmsg_append(msg, &rtm, sizeof(rtm), 0);
-
-       if (filter->get)
-               nla_put(msg, RTA_DST, AF_BYTES(filter->dst.family),
-                       &filter->dst.addr.v6);
-
-       nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM, cb_dump_route, &s);
-       nl_cb_set(cb, NL_CB_FINISH, NL_CB_CUSTOM, cb_done, &s);
-       nl_cb_err(cb, NL_CB_CUSTOM, cb_error, &s);
-
-       nl_send_auto_complete(sock, msg);
-
-       if (!filter->get && !s.callback)
-               lua_newtable(L);
-
-       while (s.pending > 0)
-               nl_recvmsgs(sock, cb);
-
-       nlmsg_free(msg);
-
-out:
-       nl_cb_put(cb);
-       return (s.callback == 0);
-}
-
-static int route_get(lua_State *L)
-{
-       struct dump_filter filter = { .get = true };
-       const char *dest = luaL_checkstring(L, 1);
-
-       if (!parse_cidr(dest, &filter.dst))
-               return _error(L, -1, "Invalid destination");
-
-       filter.family = filter.dst.family;
-
-       return _route_dump(L, &filter);
-}
-
-static int route_dump(lua_State *L)
-{
-       const char *s;
-       cidr_t p = { };
-       struct dump_filter filter = { };
-
-       if (lua_type(L, 1) == LUA_TTABLE)
-       {
-               filter.family = L_getint(L, 1, "family");
-
-               if (filter.family == 4)
-                       filter.family = AF_INET;
-               else if (filter.family == 6)
-                       filter.family = AF_INET6;
-               else
-                       filter.family = 0;
-
-               if ((s = L_getstr(L, 1, "iif")) != NULL)
-                       filter.iif = if_nametoindex(s);
-
-               if ((s = L_getstr(L, 1, "oif")) != NULL)
-                       filter.oif = if_nametoindex(s);
-
-               filter.type = L_getint(L, 1, "type");
-               filter.scope = L_getint(L, 1, "scope");
-               filter.proto = L_getint(L, 1, "proto");
-               filter.table = L_getint(L, 1, "table");
-
-               if ((s = L_getstr(L, 1, "gw")) != NULL && parse_cidr(s, &p))
-                       filter.gw = p;
-
-               if ((s = L_getstr(L, 1, "from")) != NULL && parse_cidr(s, &p))
-                       filter.from = p;
-
-               if ((s = L_getstr(L, 1, "src")) != NULL && parse_cidr(s, &p))
-                       filter.src = p;
-
-               if ((s = L_getstr(L, 1, "dest")) != NULL && parse_cidr(s, &p))
-                       filter.dst = p;
-
-               if ((s = L_getstr(L, 1, "from_exact")) != NULL && parse_cidr(s, &p))
-                       filter.from = p, filter.from_exact = true;
-
-               if ((s = L_getstr(L, 1, "dest_exact")) != NULL && parse_cidr(s, &p))
-                       filter.dst = p, filter.dst_exact = true;
-       }
-
-       return _route_dump(L, &filter);
-}
-
-
-static bool diff_macaddr(struct ether_addr *mac1, struct ether_addr *mac2)
-{
-       struct ether_addr empty = { };
-
-       if (!memcmp(mac2, &empty, sizeof(empty)))
-               return false;
-
-       if (!mac1 || memcmp(mac1, mac2, sizeof(empty)))
-               return true;
-
-       return false;
-}
-
-static int cb_dump_neigh(struct nl_msg *msg, void *arg)
-{
-       char buf[32];
-       struct ether_addr *mac;
-       struct in6_addr *dst;
-       struct dump_state *s = arg;
-       struct dump_filter *f = s->filter;
-       struct nlmsghdr *hdr = nlmsg_hdr(msg);
-       struct ndmsg *nd = NLMSG_DATA(hdr);
-       struct nlattr *tb[NDA_MAX+1];
-       int bitlen;
-
-       if (hdr->nlmsg_type != RTM_NEWNEIGH ||
-           (nd->ndm_family != AF_INET && nd->ndm_family != AF_INET6))
-               return NL_SKIP;
-
-       nlmsg_parse(hdr, sizeof(*nd), tb, NDA_MAX, NULL);
-
-       mac = tb[NDA_LLADDR] ? RTA_DATA(tb[NDA_LLADDR]) : NULL;
-       dst = tb[NDA_DST]    ? RTA_DATA(tb[NDA_DST])    : NULL;
-
-       bitlen = AF_BITS(nd->ndm_family);
-
-       if ((f->family && nd->ndm_family  != f->family) ||
-           (f->iif    && nd->ndm_ifindex != f->iif) ||
-               (f->type   && !(f->type & nd->ndm_state)) ||
-           diff_prefix(nd->ndm_family, dst, bitlen, false, &f->dst) ||
-           diff_macaddr(mac, &f->mac))
-               goto out;
-
-       if (s->callback)
-               lua_pushvalue(s->L, 2);
-
-       lua_newtable(s->L);
-
-       L_setint(s->L, "family", (nd->ndm_family == AF_INET) ? 4 : 6);
-       L_setstr(s->L, "dev", if_indextoname(nd->ndm_ifindex, buf));
-
-       L_setbool(s->L, "router", (nd->ndm_flags & NTF_ROUTER));
-       L_setbool(s->L, "proxy", (nd->ndm_flags & NTF_PROXY));
-
-       L_setbool(s->L, "incomplete", (nd->ndm_state & NUD_INCOMPLETE));
-       L_setbool(s->L, "reachable", (nd->ndm_state & NUD_REACHABLE));
-       L_setbool(s->L, "stale", (nd->ndm_state & NUD_STALE));
-       L_setbool(s->L, "delay", (nd->ndm_state & NUD_DELAY));
-       L_setbool(s->L, "probe", (nd->ndm_state & NUD_PROBE));
-       L_setbool(s->L, "failed", (nd->ndm_state & NUD_FAILED));
-       L_setbool(s->L, "noarp", (nd->ndm_state & NUD_NOARP));
-       L_setbool(s->L, "permanent", (nd->ndm_state & NUD_PERMANENT));
-
-       if (dst)
-               L_setaddr(s->L, "dest", nd->ndm_family, dst, -1);
-
-       if (mac)
-               L_setaddr(s->L, "mac", AF_PACKET, mac, -1);
-
-       s->index++;
-
-       if (s->callback)
-               lua_call(s->L, 1, 0);
-       else if (hdr->nlmsg_flags & NLM_F_MULTI)
-               lua_rawseti(s->L, -2, s->index);
-
-out:
-       s->pending = !!(hdr->nlmsg_flags & NLM_F_MULTI);
-       return NL_SKIP;
-}
-
-static int neighbor_dump(lua_State *L)
-{
-       cidr_t p = { };
-       const char *s;
-       struct ether_addr *mac;
-       struct dump_filter filter = { .type = 0xFF & ~NUD_NOARP };
-       struct dump_state st = {
-               .callback = lua_isfunction(L, 2),
-               .pending = 1,
-               .filter = &filter,
-               .L = L
-       };
-
-       if (lua_type(L, 1) == LUA_TTABLE)
-       {
-               filter.family = L_getint(L, 1, "family");
-
-               if (filter.family == 4)
-                       filter.family = AF_INET;
-               else if (filter.family == 6)
-                       filter.family = AF_INET6;
-               else
-                       filter.family = 0;
-
-               if ((s = L_getstr(L, 1, "dev")) != NULL)
-                       filter.iif = if_nametoindex(s);
-
-               if ((s = L_getstr(L, 1, "dest")) != NULL && parse_cidr(s, &p))
-                       filter.dst = p;
-
-               if ((s = L_getstr(L, 1, "mac")) != NULL &&
-                   (mac = ether_aton(s)) != NULL)
-                       filter.mac = *mac;
-       }
-
-       if (!sock)
-       {
-               sock = nl_socket_alloc();
-               if (!sock)
-                       return _error(L, -1, "Out of memory");
-
-               if (nl_connect(sock, NETLINK_ROUTE))
-                       return _error(L, 0, NULL);
-       }
-
-       struct nl_msg *msg;
-       struct nl_cb *cb = nl_cb_alloc(NL_CB_DEFAULT);
-       struct ndmsg ndm = {
-               .ndm_family = filter.family
-       };
-
-       msg = nlmsg_alloc_simple(RTM_GETNEIGH, NLM_F_REQUEST | NLM_F_DUMP);
-       if (!msg)
-               goto out;
-
-       nlmsg_append(msg, &ndm, sizeof(ndm), 0);
-
-       nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM, cb_dump_neigh, &st);
-       nl_cb_set(cb, NL_CB_FINISH, NL_CB_CUSTOM, cb_done, &st);
-       nl_cb_err(cb, NL_CB_CUSTOM, cb_error, &st);
-
-       nl_send_auto_complete(sock, msg);
-
-       if (!st.callback)
-               lua_newtable(L);
-
-       while (st.pending > 0)
-               nl_recvmsgs(sock, cb);
-
-       nlmsg_free(msg);
-
-out:
-       nl_cb_put(cb);
-       return (st.callback == 0);
-}
-
-
-static int cb_dump_link(struct nl_msg *msg, void *arg)
-{
-       char buf[48];
-       struct dump_state *s = arg;
-       struct nlmsghdr *hdr = nlmsg_hdr(msg);
-       struct ifinfomsg *ifm = NLMSG_DATA(hdr);
-       struct nlattr *tb[IFLA_MAX+1];
-       int i, len;
-
-       if (hdr->nlmsg_type != RTM_NEWLINK)
-               return NL_SKIP;
-
-       nlmsg_parse(hdr, sizeof(*ifm), tb, IFLA_MAX, NULL);
-
-       L_setbool(s->L, "up", (ifm->ifi_flags & IFF_RUNNING));
-       L_setint(s->L, "type", ifm->ifi_type);
-       L_setstr(s->L, "name", if_indextoname(ifm->ifi_index, buf));
-
-       if (tb[IFLA_MTU])
-               L_setint(s->L, "mtu", RTA_U32(tb[IFLA_MTU]));
-
-       if (tb[IFLA_TXQLEN])
-               L_setint(s->L, "qlen", RTA_U32(tb[IFLA_TXQLEN]));
-
-       if (tb[IFLA_MASTER])
-               L_setdev(s->L, "master", tb[IFLA_MASTER]);
-
-       if (tb[IFLA_ADDRESS] && nla_len(tb[IFLA_ADDRESS]) == AF_BYTES(AF_PACKET))
-               L_setaddr(s->L, "mac", AF_PACKET, nla_get_string(tb[IFLA_ADDRESS]), -1);
-
-       s->pending = 0;
-       return NL_SKIP;
-}
-
-static int link_get(lua_State *L)
-{
-       const char *dev = luaL_checkstring(L, 1);
-       struct dump_state st = {
-               .pending = 1,
-               .L = L
-       };
-
-       if (!sock)
-       {
-               sock = nl_socket_alloc();
-               if (!sock)
-                       return _error(L, -1, "Out of memory");
-
-               if (nl_connect(sock, NETLINK_ROUTE))
-                       return _error(L, 0, NULL);
-       }
-
-       struct nl_msg *msg = nlmsg_alloc_simple(RTM_GETLINK, NLM_F_REQUEST);
-       struct nl_cb *cb = nl_cb_alloc(NL_CB_DEFAULT);
-       struct ifinfomsg ifm = { .ifi_index = if_nametoindex(dev) };
-
-       if (!msg || !cb)
-               return 0;
-
-       nlmsg_append(msg, &ifm, sizeof(ifm), 0);
-
-       nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM, cb_dump_link, &st);
-       nl_cb_set(cb, NL_CB_FINISH, NL_CB_CUSTOM, cb_done, &st);
-       nl_cb_err(cb, NL_CB_CUSTOM, cb_error, &st);
-
-       lua_newtable(L);
-
-       nl_send_auto_complete(sock, msg);
-
-       while (st.pending > 0)
-               nl_recvmsgs(sock, cb);
-
-       nlmsg_free(msg);
-       nl_cb_put(cb);
-
-       return 1;
-}
-
-
-static const luaL_reg ip_methods[] = {
-       { "new",                        cidr_new          },
-       { "IPv4",                       cidr_ipv4         },
-       { "IPv6",                       cidr_ipv6         },
-       { "MAC",                        cidr_mac          },
-
-       { "checkip4",                   cidr_checkip4     },
-       { "checkip6",                   cidr_checkip6     },
-       { "checkmac",                   cidr_checkmac     },
-
-       { "route",                      route_get         },
-       { "routes",                     route_dump        },
-
-       { "neighbors",          neighbor_dump     },
-
-       { "link",                       link_get          },
-
-       { }
-};
-
-static const luaL_reg ip_cidr_methods[] = {
-       { "is4",                        cidr_is4          },
-       { "is4rfc1918",         cidr_is4rfc1918   },
-       { "is4linklocal",       cidr_is4linklocal },
-       { "is6",                        cidr_is6          },
-       { "is6linklocal",       cidr_is6linklocal },
-       { "is6mapped4",         cidr_is6mapped4   },
-       { "ismac",                      cidr_ismac        },
-       { "ismaclocal",         cidr_ismaclocal   },
-       { "ismacmcast",         cidr_ismacmcast   },
-       { "lower",                      cidr_lower        },
-       { "higher",                     cidr_higher       },
-       { "equal",                      cidr_equal        },
-       { "prefix",                     cidr_prefix       },
-       { "network",            cidr_network      },
-       { "host",                       cidr_host         },
-       { "mask",                       cidr_mask         },
-       { "broadcast",          cidr_broadcast    },
-       { "mapped4",            cidr_mapped4      },
-       { "tomac",                      cidr_tomac        },
-       { "tolinklocal",        cidr_tolinklocal  },
-       { "contains",           cidr_contains     },
-       { "add",                        cidr_add          },
-       { "sub",                        cidr_sub          },
-       { "minhost",            cidr_minhost      },
-       { "maxhost",            cidr_maxhost      },
-       { "string",                     cidr_tostring     },
-
-       { "__lt",                       cidr_lower        },
-       { "__le",                       cidr_lower_equal  },
-       { "__eq",                       cidr_equal        },
-       { "__add",                      cidr_add          },
-       { "__sub",                      cidr_sub          },
-       { "__gc",                       cidr_gc           },
-       { "__tostring",         cidr_tostring     },
-
-       { }
-};
-
-int luaopen_luci_ip(lua_State *L)
-{
-       luaL_register(L, LUCI_IP, ip_methods);
-
-       luaL_newmetatable(L, LUCI_IP_CIDR);
-       luaL_register(L, NULL, ip_cidr_methods);
-       lua_pushvalue(L, -1);
-       lua_setfield(L, -2, "__index");
-       lua_pop(L, 1);
-
-       return 1;
-}
diff --git a/package/luci/libs/luci-lib-ip/src/ip.luadoc b/package/luci/libs/luci-lib-ip/src/ip.luadoc
deleted file mode 100644 (file)
index a2df96c..0000000
+++ /dev/null
@@ -1,1046 +0,0 @@
---- LuCI IP calculation and netlink access library.
-module "luci.ip"
-
----[[
-Construct a new luci.ip.cidr instance and autodetect the address family.
-Throws an error if the given strings do not represent a valid address or
-if the given optional netmask is of a different family.
-@class function
-@sort 1
-@name new
-@param address String containing a valid IPv4 or IPv6 address, optionally
-with prefix size (CIDR notation) or netmask separated by slash.
-@param netmask String containing a valid IPv4 or IPv6 netmask or number
-containing a prefix size in bits (`0..32` for IPv4,
-`0..128` for IPv6). Overrides mask embedded in the first argument
-if specified. (optional)
-@return A `luci.ip.cidr` object representing the given
-address/mask range.
-@usage `addr = luci.ip.new("10.24.0.1/24")
-addr = luci.ip.new("10.24.0.1/255.255.255.0")
-addr = luci.ip.new("10.24.0.1", "255.255.255.0")        -- separate netmask
-addr = luci.ip.new("10.24.0.1/24", 16)                  -- override netmask
-
-addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17/64")
-addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17/ffff:ffff:ffff:ffff::")
-addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17", "ffff:ffff:ffff:ffff::")
-addr6 = luci.ip.new("fe80::221:63ff:fe75:aa17/64", 128) -- override netmask`
-@see IPv4
-@see IPv6
-@see MAC
-]]
-
----[[
-Construct a new IPv4 luci.ip.cidr instance.
-Throws an error if the given string does not represent a valid IPv4 address or
-if the given optional netmask is of a different family.
-@class function
-@sort 2
-@name IPv4
-@param address String containing a valid IPv4, optionally with prefix size
-(CIDR notation) or netmask separated by slash.
-@param netmask String containing a valid IPv4 netmask or number
-containing a prefix size between `0` and `32` bit.
-Overrides mask embedded in the first argument if specified. (optional)
-@return A `luci.ip.cidr` object representing the given IPv4 range.
-@usage `addr = luci.ip.IPv4("10.24.0.1/24")
-addr = luci.ip.IPv4("10.24.0.1/255.255.255.0")
-addr = luci.ip.IPv4("10.24.0.1", "255.255.255.0")        -- separate netmask
-addr = luci.ip.IPv4("10.24.0.1/24", 16)                  -- override netmask`
-@see IPv6
-@see MAC
-]]
-
----[[
-Construct a new IPv6 luci.ip.cidr instance.
-Throws an error if the given string does not represent a valid IPv6 address or
-if the given optional netmask is of a different family.
-@class function
-@sort 3
-@name IPv6
-@param address String containing a valid IPv6, optionally with prefix size
-(CIDR notation) or netmask separated by slash.
-@param netmask String containing a valid IPv4 netmask or number
-containing a prefix size between `0` and `128` bit.
-Overrides mask embedded in the first argument if specified. (optional)
-@return A `luci.ip.cidr` object representing the given IPv6 range.
-@usage `addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17/64")
-addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17/ffff:ffff:ffff:ffff::")
-addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17", "ffff:ffff:ffff:ffff::")
-addr6 = luci.ip.IPv6("fe80::221:63ff:fe75:aa17/64", 128) -- override netmask`
-@see IPv4
-@see MAC
-]]
-
----[[
-Construct a new MAC luci.ip.cidr instance.
-Throws an error if the given string does not represent a valid ethernet MAC
-address or if the given optional mask is of a different family.
-@class function
-@sort 4
-@name MAC
-@param address  String containing a valid ethernet MAC address, optionally with
-prefix size (CIDR notation) or mask separated by slash.
-@param netmask  String containing a valid MAC address mask or number
-containing a prefix size between `0` and `48` bit.
-Overrides mask embedded in the first argument if specified. (optional)
-@return A `luci.ip.cidr` object representing the given MAC address range.
-@usage `intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/24")
-intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/FF:FF:FF:0:0:0")
-intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00", "FF:FF:FF:0:0:0")
-intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/24", 48) -- override mask`
-@see IPv4
-@see IPv6
-]]
-
----[[
-Verify an IPv4 address.
-
-Checks whether given argument is a preexisting luci.ip.cidr IPv4 address
-instance or a string literal convertible to an IPv4 address and returns a
-plain Lua string containing the canonical representation of the address.
-
-If the argument is not a valid address, returns nothing. This function is
-intended to aid in safely verifying address literals without having to deal
-with exceptions.
-@class function
-@sort 5
-@name checkip4
-@param address  String containing a valid IPv4 address or existing
-luci.ip.cidr IPv4 instance.
-@return A string representing the given IPv4 address.
-@usage `ipv4 = luci.ip.checkip4(luci.ip.new("127.0.0.1"))  -- "127.0.0.1"
-ipv4 = luci.ip.checkip4("127.0.0.1")               -- "127.0.0.1"
-ipv4 = luci.ip.checkip4("nonesense")               -- nothing
-ipv4 = luci.ip.checkip4(123)                       -- nothing
-ipv4 = luci.ip.checkip4(nil)                       -- nothing
-ipv4 = luci.ip.checkip4()                          -- nothing`
-@see checkip6
-@see checkmac
-]]
-
----[[
-Verify an IPv6 address.
-
-Checks whether given argument is a preexisting luci.ip.cidr IPv6 address
-instance or a string literal convertible to an IPv6 address and returns a
-plain Lua string containing the canonical representation of the address.
-
-If the argument is not a valid address, returns nothing. This function is
-intended to aid in safely verifying address literals without having to deal
-with exceptions.
-@class function
-@sort 6
-@name checkip6
-@param address  String containing a valid IPv6 address or existing
-luci.ip.cidr IPv6 instance.
-@return A string representing the given IPv6 address.
-@usage `ipv6 = luci.ip.checkip6(luci.ip.new("0:0:0:0:0:0:0:1"))  -- "::1"
-ipv6 = luci.ip.checkip6("0:0:0:0:0:0:0:1")               -- "::1"
-ipv6 = luci.ip.checkip6("nonesense")                     -- nothing
-ipv6 = luci.ip.checkip6(123)                             -- nothing
-ipv6 = luci.ip.checkip6(nil)                             -- nothing
-ipv6 = luci.ip.checkip6()                                -- nothing`
-@see checkip4
-@see checkmac
-]]
-
----[[
-Verify an ethernet MAC address.
-
-Checks whether given argument is a preexisting luci.ip.cidr MAC address
-instance or a string literal convertible to an ethernet MAC and returns a
-plain Lua string containing the canonical representation of the address.
-
-If the argument is not a valid address, returns nothing. This function is
-intended to aid in safely verifying address literals without having to deal
-with exceptions.
-@class function
-@sort 7
-@name checkmac
-@param address  String containing a valid MAC address or existing luci.ip.cidr
-MAC address instance.
-@return A string representing the given MAC address.
-@usage `mac = luci.ip.checkmac(luci.ip.new("00-11-22-cc-dd-ee"))  -- "00:11:22:CC:DD:EE"
-mac = luci.ip.checkmac("00:11:22:cc:dd:ee")               -- "00:11:22:CC:DD:EE"
-mac = luci.ip.checkmac("nonesense")                       -- nothing
-mac = luci.ip.checkmac(123)                               -- nothing
-mac = luci.ip.checkmac(nil)                               -- nothing
-mac = luci.ip.checkmac()                                  -- nothing`
-@see checkip4
-@see checkip6
-]]
-
----[[
-Determine the route leading to the given destination.
-@class function
-@sort 8
-@name route
-@param address A `luci.ip.cidr` instance or a string containing
-a valid IPv4 or IPv6 range as specified by `luci.ip.new()`.
-@return <p>Table containing the fields described below.</p>
-<table id="routetable">
-<tr><th>Field</th><th>Description</th></tr>
-<tr><td>`type`<td>
-  <p>Route type with one of the following numeric values:</p>
-  <table>
-  <tr>
-       <td>`1`</td>
-       <td>`RTN_UNICAST` - Gateway or direct route</td>
-  </tr>
-  <tr>
-       <td>`2`</td>
-       <td>`RTN_LOCAL` - Accept locally</td>
-  </tr>
-  <tr>
-       <td>`3`</td>
-       <td>`RTN_BROADCAST` -
-           Accept locally as broadcast send as broadcast</td>
-  </tr>
-  <tr>
-       <td>`4`</td>
-       <td>`RTN_ANYCAST` -
-        Accept locally as broadcast but send as unicast</td>
-  </tr>
-  <tr>
-       <td>`5`</td>
-       <td>`RTN_MULTICAST` - Multicast route</td>
-  </tr>
-  </table>
-</td></tr>
-<tr>
-  <td>`family`</td>
-  <td>Number containing the route family, `4` for IPv4 or
-      `6` for IPv6</td>
-</tr>
-<tr>
-  <td>`dest`</td>
-  <td>Destination `luci.ip.cidr` instance</td>
-</tr>
-<tr>
-  <td>`gw`</td>
-  <td>Gateway `luci.ip.cidr` instance (optional)</td>
-</tr>
-<tr>
-  <td>`from`</td>
-  <td>Source address `luci.ip.cidr` instance (optional)</td>
-</tr>
-<tr>
-  <td>`src`</td>
-  <td>Preferred source `luci.ip.cidr` instance (optional)</td>
-</tr>
-<tr>
-  <td>`dev`</td>
-  <td>String containing the name of the outgoing interface</td>
-</tr>
-<tr>
-  <td>`iif`</td>
-  <td>String containing the name of the incoming interface (optional)</td>
-</tr>
-<tr>
-  <td>`table`</td>
-  <td>Number of the associated routing table (`0..65535`)</td>
-</tr>
-<tr>
-  <td>`proto`</td>
-  <td>Number of the associated routing protocol</td>
-</tr>
-<tr>
-  <td>`scope`</td>
-  <td>Number describing the scope of the route, most commonly
-      `0` for global or `253` for on-link</td>
-</tr>
-<tr>
-  <td>`metric`</td>
-  <td>Number describing the route metric (optional)</td>
-</tr>
-<tr>
-  <td>`expires`</td>
-  <td>Number of seconds the prefix is valid (IPv6 only, optional)</td>
-</tr>
-<tr>
-  <td>`error`</td>
-  <td>Route destination error code (optional)</td>
-</tr>
-</table>
-@usage <ul>
-<li>Find default gateway by getting route to Google's public NS server
-`rt = luci.ip.route("8.8.8.8")
-if rt ~= nil then
-       print("gateway is", rt.gw)
-end`</li>
-<li>Determine IPv6 upstream interface `rt = luci.ip.route("2001::/7")
-if rt ~= nil then
-       print("ipv6 upstream device is", rt.dev)
-end`</li>
-</ul>
-@see routes
-]]
-
----[[
-Fetch all routes, optionally matching the given criteria.
-@class function
-@sort 9
-@name routes
-@param filter  <p>Table containing one or more of the possible filter
-criteria described below (optional)</p><table>
-<tr><th>Field</th><th>Description</th></tr>
-<tr><td>`family`</td><td>
- Number describing the address family to return - `4` selects
- IPv4 routes, `6` IPv6 ones. Any other value selects both.
-</td></tr>
-<tr><td>`iif`</td><td>
- String containing the incoming route interface to match.
-</td></tr>
-<tr><td>`oif`</td><td>
- String containing the outgoing route interface to match.
-</td></tr>
-<tr><td>`type`</td><td>
- Numeric type to match, e.g. `1` for unicast.
-</td></tr>
-<tr><td>`scope`</td><td>
- Numeric scope to match, e.g. `253` for onlink.
-</td></tr>
-<tr><td>`proto`</td><td>
- Numeric protocol to match, e.g. `2` for boot.
-</td></tr>
-<tr><td>`table`</td><td>
- Numeric routing table to match (`0..65535`).
-</td></tr>
-<tr><td>`gw`</td><td>
- String containing the gateway address to match. Can be in any notation
- specified by `luci.ip.new()`. Prefix matching is performed when
- comparing the routes, e.g. "192.168.1.0/24" would select routes with gateway
- addresses `192.168.1.1 .. 192.168.1.255`.
-</td></tr>
-<tr><td>`dest`</td><td>
- String containing the destination to match. Prefix matching is performed.
-</td></tr>
-<tr><td>`from`</td><td>
- String containing the source address to match. Prefix matching is performed.
-</td></tr>
-<tr><td>`src`</td><td>
- String containing the preferred source address to match.
- Prefix matching is performed.
-</td></tr>
-<tr><td>`dest_exact`</td><td>
- String containing the destination to match. Exact matching is performed,
- e.g. `dest = "0.0.0.0/0"` would match <em>any</em> IPv4 route
- while `dest_exact = "0.0.0.0/0"` will <em>only</em> match the
- default route.
-</td></tr>
-<tr><td>`from_exact`</td><td>
- String containing the source address to match. Exact matching is performed.
-</td></tr>
-</table>
-@param callback  <p>Callback function to invoke for each found route
-instead of returning one table of route objects (optional)</p>
-@return If no callback function is provided, a table of routes
-<a href="#routetable">as specified by `luci.ip.route()`</a>
-is returned. If a callback function is given, it is invoked for each route
-and nothing is returned.
-@see route
-@usage <ul>
-<li>Find all IPv4 default routes:
-`luci.ip.routes({ dest_exact = "0.0.0.0/0" }, function(rt)
-       print(rt.type, rt.gw, rt.dev)
-end)`</li>
-<li>Find all global IPv6 prefixes on the current system:
-`luci.ip.routes({ from = "2001::/7" }, function(rt)
-       print(rt.from)
-end)`</li>
-<li>Fetch all IPv4 routes:
-`routes = luci.ip.routes({ family = 4 })
-for _, rt in ipairs(routes) do
-       print(rt.dest, rt.gw, rt.dev)
-end`</li>
-</ul>
-]]
-
----[[
-Fetches entries from the IPv4 ARP and IPv6 neighbour kernel table
-@class function
-@sort 10
-@name neighbors
-@param filter  <p>Table containing one or more of the possible filter
-criteria described below (optional)</p><table>
-<tr><th>Field</th><th>Description</th></tr>
-<tr><td>`family`</td><td>
- Number describing the address family to return - `4` selects
- IPv4 ARP, `6` select IPv6 neighbour entries. Any other value
- selects both.
-</td></tr>
-<tr><td>`dev`</td><td>
- String containing the associated interface to match.
-</td></tr>
-<tr><td>`dest`</td><td>
- String containing the associated address to match. Can be in any notation
- specified by `luci.ip.new()`. Prefix matching is performed when
- comparing the addresses, e.g. "192.168.1.0/24" would select ARP entries
- for `192.168.1.1 .. 192.168.1.255`.
-</td></tr>
-<tr><td>`mac`</td><td>
- String containing MAC address to match.
-</td></tr>
-</table>
-@param callback  <p>Callback function to invoke for each found neighbour
-entry instead of returning one table of neighbour entries (optional)</p>
-@return If no callback function is provided, a table of neighbour entries
-is returned. If a callback function is given, it is invoked for each entry
-and nothing is returned.
-
-A neighbour entry is a table containing the following fields:
-
-<table>
-<tr><th>Field</th><th>Description</th></tr>
-<tr>
-  <td>`family`</td>
-  <td>Number containing the neighbour entry family, `4` for IPv4
-      ARP or `6` for IPv6 NDP</td>
-</tr>
-<tr>
-  <td>`dev`</td>
-  <td>String containing the associated device of the neighbour entry</td>
-</tr>
-<tr>
-  <td>`dest`</td>
-  <td>IP address `luci.ip.cidr` instance</td>
-</tr>
-<tr>
-  <td>`mac`</td>
-  <td>MAC address `luci.ip.cidr` instance</td>
-</tr>
-<tr>
-  <td>`router`</td>
-  <td>Boolean "true" if the neighbour entry is a router (IPv6, optional)</td>
-</tr>
-<tr>
-  <td>`proxy`</td>
-  <td>Boolean "true" if this is a proxy entry (optional)</td>
-</tr>
-<tr>
-  <td>`incomplete`</td>
-  <td>Boolean "true" if the entry is in incomplete state (optional)</td>
-</tr>
-<tr>
-  <td>`reachable`</td>
-  <td>Boolean "true" if the entry is in reachable state (optional)</td>
-</tr>
-<tr>
-  <td>`stale`</td>
-  <td>Boolean "true" if the entry is stale (optional)</td>
-</tr>
-<tr>
-  <td>`delay`</td>
-  <td>Boolean "true" if the entry is delayed (optional)</td>
-</tr>
-<tr>
-  <td>`probe`</td>
-  <td>Boolean "true" if the entry is in probe state (optional)</td>
-</tr>
-<tr>
-  <td>`failed`</td>
-  <td>Boolean "true" if the entry is in failed state (optional)</td>
-</tr>
-<tr>
-  <td>`noarp`</td>
-  <td>Boolean "true" if the entry is not caused by NDP or
-      ARP (optional)</td>
-</tr>
-<tr>
-  <td>`permanent`</td>
-  <td>Boolean "true" if the entry was statically configured from
-      userspace (optional)</td>
-</tr>
-</table>
-@usage <ul>
-<li>Find all ARP neighbours in the LAN:
-`luci.ip.neighbors({ dest = "192.168.0.0/16" }, function(n)
-       print(n.dest, n.mac)
-end)`</li>
-<li>Find all active IPv6 addresses of host with given MAC:
-`luci.ip.neighbors({ family = 6, mac = "00:21:63:75:aa:17" },
-       function(n)
-               print(n.dest)
-       end)`</li>
-</ul>
-]]
-
----[[
-Fetch basic device information
-@class function
-@sort 11
-@name link
-@param device  String containing the network device to query
-@return  If the given interface is found, a table containing the fields
-described below is returned, else an empty table.
-
-<table>
-<tr><th>Field</th><th>Description</th></tr>
-<tr>
-  <td>`up`</td>
-  <td>Boolean indicating whether the device is in IFF_RUNNING state</td>
-</tr>
-<tr>
-  <td>`type`</td>
-  <td>Numeric value indicating the type of the device, e.g. `1`
-      for ethernet.</td>
-</tr>
-<tr>
-  <td>`name`</td>
-  <td>String containing the name of the device</td>
-</tr>
-<tr>
-  <td>`master`</td>
-  <td>If queried device is a bridge port, string containing the name of
-      parent bridge device (optional)</td>
-</tr>
-<tr>
-  <td>`mtu`</td>
-  <td>Number containing the current MTU of the device</td>
-</tr>
-<tr>
-  <td>`qlen`</td>
-  <td>Number containing the TX queue length of the device</td>
-</tr>
-<tr>
-  <td>`mac`</td>
-  <td>MAC address `luci.ip.cidr` instance representing the device ethernet
-      address</td>
-</tr>
-</table>
-@usage <ul>
-<li>Test whether device br-lan exists:
-`print(luci.ip.link("br-lan").name ~= nil)
-`</li>
-<li>Query MAC address of eth0:
-`print(luci.ip.link("eth0").mac)
-`</li>
-</ul>
-]]
-
-
---- IP CIDR Object.
--- Represents an IPv4 or IPv6 address range.
--- @cstyle instance
-module "luci.ip.cidr"
-
----[[
-Checks whether the CIDR instance is an IPv4 address range
-
-@class function
-@sort 1
-@name cidr.is4
-@see cidr.is6
-@see cidr.ismac
-@return `true` if the CIDR is an IPv4 range, else `false`
-]]
-
----[[
-Checks whether the CIDR instance is within the private RFC1918 address space
-
-@class function
-@sort 2
-@name cidr.is4rfc1918
-@return `true` if the entire range of this CIDR lies within one of
-       the ranges `10.0.0.0-10.255.255.255`,
-       `172.16.0.0-172.31.0.0` or
-       `192.168.0.0-192.168.255.255`, else `false`.
-@usage `local addr = luci.ip.new("192.168.45.2/24")
-if addr:is4rfc1918() then
-       print("Is a private address")
-end`
-]]
-
----[[
-Checks whether the CIDR instance is an IPv4 link local (Zeroconf) address
-
-@class function
-@sort 3
-@name cidr.is4linklocal
-@return `true` if the entire range of this CIDR lies within the range
-       the range `169.254.0.0-169.254.255.255`, else `false`.
-@usage `local addr = luci.ip.new("169.254.34.125")
-if addr:is4linklocal() then
-       print("Is a zeroconf address")
-end`
-]]
-
----[[
-Checks whether the CIDR instance is an IPv6 address range
-
-@class function
-@sort 4
-@name cidr.is6
-@see cidr.is4
-@see cidr.ismac
-@return `true` if the CIDR is an IPv6 range, else `false`
-]]
-
----[[
-Checks whether the CIDR instance is an IPv6 link local address
-
-@class function
-@sort 5
-@name cidr.is6linklocal
-@return `true` if the entire range of this CIDR lies within the range
-       the `fe80::/10` range, else `false`.
-@usage `local addr = luci.ip.new("fe92:53a:3216:af01:221:63ff:fe75:aa17/64")
-if addr:is6linklocal() then
-       print("Is a linklocal address")
-end`
-]]
-
----[[
-Checks whether the CIDR instance is an IPv6 mapped IPv4 address
-
-@class function
-@sort 6
-@name cidr.is6mapped4
-@return `true` if the address is an IPv6 mapped IPv4 address in the
-       form `::ffff:1.2.3.4`.
-@usage `local addr = luci.ip.new("::ffff:192.168.1.1")
-if addr:is6mapped4() then
-       print("Is a mapped IPv4 address")
-end`
-]]
-
----[[
-Checks whether the CIDR instance is an ethernet MAC address range
-
-@class function
-@sort 7
-@name cidr.ismac
-@see cidr.is4
-@see cidr.is6
-@return `true` if the CIDR is a MAC address range, else `false`
-]]
-
----[[
-Checks whether the CIDR instance is a locally administered (LAA) MAC address
-
-@class function
-@sort 8
-@name cidr.ismaclocal
-@return `true` if the MAC address sets the locally administered bit.
-@usage `local mac = luci.ip.new("02:C0:FF:EE:00:01")
-if mac:ismaclocal() then
-  print("Is an LAA MAC address")
-end`
-]]
-
----[[
-Checks whether the CIDR instance is a multicast MAC address
-
-@class function
-@sort 9
-@name cidr.ismacmcast
-@return `true` if the MAC address sets the multicast bit.
-@usage `local mac = luci.ip.new("01:00:5E:7F:00:10")
-if addr:ismacmcast() then
-  print("Is a multicast MAC address")
-end`
-]]
-
----[[
-Checks whether this CIDR instance is lower than the given argument.
-The comparisation follows these rules:
-<ul><li>An IPv4 address is always lower than an IPv6 address and IPv6 addresses
-are considered lower than MAC addresses</li>
-<li>Prefix sizes are ignored</li></ul>
-
-@class function
-@sort 10
-@name cidr.lower
-@param addr A `luci.ip.cidr` instance or a string convertible by
-       `luci.ip.new()` to compare against.
-@return `true` if this CIDR is lower than the given address,
-       else `false`.
-@usage `local addr = luci.ip.new("192.168.1.1")
-print(addr:lower(addr)) -- false
-print(addr:lower("10.10.10.10/24")) -- false
-print(addr:lower(luci.ip.new("::1"))) -- true
-print(addr:lower(luci.ip.new("192.168.200.1"))) -- true
-print(addr:lower(luci.ip.new("00:14:22:01:23:45"))) -- true`
-@see cidr.higher
-@see cidr.equal
-]]
-
----[[
-Checks whether this CIDR instance is higher than the given argument.
-The comparisation follows these rules:
-<ul><li>An IPv4 address is always lower than an IPv6 address and IPv6 addresses
-are considered lower than MAC addresses</li>
-<li>Prefix sizes are ignored</li></ul>
-
-@class function
-@sort 11
-@name cidr.higher
-@param addr A `luci.ip.cidr` instance or a string convertible by
-       `luci.ip.new()` to compare against.
-@return `true` if this CIDR is higher than the given address,
-       else `false`.
-@usage `local addr = luci.ip.new("192.168.1.1")
-print(addr:higher(addr)) -- false
-print(addr:higher("10.10.10.10/24")) -- true
-print(addr:higher(luci.ip.new("::1"))) -- false
-print(addr:higher(luci.ip.new("192.168.200.1"))) -- false
-print(addr:higher(luci.ip.new("00:14:22:01:23:45"))) -- false`
-@see cidr.lower
-@see cidr.equal
-]]
-
----[[
-Checks whether this CIDR instance is equal to the given argument.
-
-@class function
-@sort 12
-@name cidr.equal
-@param addr A `luci.ip.cidr` instance or a string convertible by
-       `luci.ip.new()` to compare against.
-@return `true` if this CIDR is equal to the given address,
-       else `false`.
-@usage `local addr = luci.ip.new("192.168.1.1")
-print(addr:equal(addr)) -- true
-print(addr:equal("192.168.1.1")) -- true
-print(addr:equal(luci.ip.new("::1"))) -- false
-
-local addr6 = luci.ip.new("::1")
-print(addr6:equal("0:0:0:0:0:0:0:1/64")) -- true
-print(addr6:equal(luci.ip.new("fe80::221:63ff:fe75:aa17"))) -- false
-
-local mac = luci.ip.new("00:14:22:01:23:45")
-print(mac:equal("0:14:22:1:23:45")) -- true
-print(mac:equal(luci.ip.new("01:23:45:67:89:AB")) -- false`
-@see cidr.lower
-@see cidr.higher
-]]
-
----[[
-Get or set prefix size of CIDR instance.
-If the optional mask parameter is given, the prefix size of this CIDR is altered
-else the current prefix size is returned.
-
-@class function
-@sort 13
-@name cidr.prefix
-@param mask Either a number containing the number of bits (`0..32`
-       for IPv4, `0..128` for IPv6 or `0..48` for MAC addresses) or a string
-  containing a valid netmask (optional)
-@return Bit count of the current prefix size
-@usage `local range = luci.ip.new("192.168.1.1/255.255.255.0")
-print(range:prefix()) -- 24
-
-range:prefix(16)
-print(range:prefix()) -- 16
-
-range:prefix("255.255.255.255")
-print(range:prefix()) -- 32`
-]]
-
----[[
-Derive network address of CIDR instance.
-
-Returns a new CIDR instance representing the network address of this instance
-with all host parts masked out. The used prefix size can be overridden by the
-optional mask parameter.
-
-@class function
-@sort 14
-@name cidr.network
-@param mask Either a number containing the number of bits (`0..32`
-       for IPv4, `0..128` for IPv6 or `0..48` for MAC addresses) or a string
-  containing a valid netmask (optional)
-@return CIDR instance representing the network address
-@usage `local range = luci.ip.new("192.168.62.243/255.255.0.0")
-print(range:network())                -- "192.168.0.0"
-print(range:network(24))              -- "192.168.62.0"
-print(range:network("255.255.255.0")) -- "192.168.62.0"
-
-local range6 = luci.ip.new("fd9b:62b3:9cc5:0:221:63ff:fe75:aa17/64")
-print(range6:network())               -- "fd9b:62b3:9cc5::"`
-]]
-
----[[
-Derive host address of CIDR instance.
-
-This function essentially constructs a copy of this CIDR with the prefix size
-set to `32` for IPv4, `128` for IPv6 or `48` for MAC addresses.
-
-@class function
-@sort 15
-@name cidr.host
-@return CIDR instance representing the host address
-@usage `local range = luci.ip.new("172.19.37.45/16")
-print(range)        -- "172.19.37.45/16"
-print(range:host()) -- "172.19.37.45"`
-]]
-
----[[
-Derive netmask of CIDR instance.
-
-Constructs a CIDR instance representing the netmask of this instance. The used
-prefix size can be overridden by the optional mask parameter.
-
-@class function
-@sort 16
-@name cidr.mask
-@param mask Either a number containing the number of bits (`0..32`
-       for IPv4, `0..128` for IPv6 or `0..48` for MAC addresses) or a string
-  containing a valid netmask (optional)
-@return CIDR instance representing the netmask
-@usage `local range = luci.ip.new("172.19.37.45/16")
-print(range:mask())            -- "255.255.0.0"
-print(range:mask(24))          -- "255.255.255.0"
-print(range:mask("255.0.0.0")) -- "255.0.0.0"`
-]]
-
----[[
-Derive broadcast address of CIDR instance.
-
-Constructs a CIDR instance representing the broadcast address of this instance.
-The used prefix size can be overridden by the optional mask parameter.
-
-This function has no effect on IPv6 or MAC address instances, it will return
-nothing in this case.
-
-@class function
-@sort 17
-@name cidr.broadcast
-@param mask Either a number containing the number of bits (`0..32` for IPv4) or
-  a string containing a valid netmask (optional)
-@return Return a new CIDR instance representing the broadcast address if this
-       instance is an IPv4 range, else return nothing.
-@usage `local range = luci.ip.new("172.19.37.45/16")
-print(range:broadcast())            -- "172.19.255.255"
-print(range:broadcast(24))          -- "172.19.37.255"
-print(range:broadcast("255.0.0.0")) -- "172.255.255.255"`
-]]
-
----[[
-Derive mapped IPv4 address of CIDR instance.
-
-Constructs a CIDR instance representing the IPv4 address of the IPv6 mapped
-IPv4 address in this instance.
-
-This function has no effect on IPv4 instances, MAC address instances or IPv6
-instances which are not a mapped address, it will return nothing in this case.
-
-@class function
-@sort 18
-@name cidr.mapped4
-@return Return a new CIDR instance representing the IPv4 address if this
-       instance is an IPv6 mapped IPv4 address, else return nothing.
-@usage `local addr = luci.ip.new("::ffff:172.16.19.1")
-print(addr:mapped4()) -- "172.16.19.1"`
-]]
-
----[[
-Derive MAC address of IPv6 link local CIDR instance.
-
-Constructs a CIDR instance representing the MAC address contained in the IPv6
-link local address of this instance.
-
-This function has no effect on IPv4 instances, MAC address instances or IPv6
-instances which are not a link local address, it will return nothing in this
-case.
-
-@class function
-@sort 19
-@name cidr.tomac
-@return Return a new CIDR instance representing the MAC address if this
-  instance is an IPv6 link local address, else return nothing.
-@usage `local addr = luci.ip.new("fe80::6666:b3ff:fe47:e1b9")
-print(addr:tomac()) -- "64:66:B3:47:E1:B9"`
-]]
-
----[[
-Derive IPv6 link local address from MAC address CIDR instance.
-
-Constructs a CIDR instance representing the IPv6 link local address of the
-MAC address represented by this instance.
-
-This function has no effect on IPv4 instances or IPv6 instances, it will return
-nothing in this case.
-
-@class function
-@sort 20
-@name cidr.tolinklocal
-@return Return a new CIDR instance representing the IPv6 link local address.
-@usage `local mac = luci.ip.new("64:66:B3:47:E1:B9")
-print(mac:tolinklocal()) -- "fe80::6666:b3ff:fe47:e1b9"`
-]]
-
----[[
-Test whether CIDR contains given range.
-
-@class function
-@sort 21
-@name cidr.contains
-@param addr A `luci.ip.cidr` instance or a string convertible by
-       `luci.ip.new()` to test.
-@return `true` if this instance fully contains the given address else
-       `false`.
-@usage `local range = luci.ip.new("10.24.0.0/255.255.0.0")
-print(range:contains("10.24.5.1"))  -- true
-print(range:contains("::1"))        -- false
-print(range:contains("10.0.0.0/8")) -- false
-
-local range6 = luci.ip.new("fe80::/10")
-print(range6:contains("fe80::221:63f:fe75:aa17/64"))         -- true
-print(range6:contains("fd9b:6b3:c5:0:221:63f:fe75:aa17/64")) -- false
-
-local intel_macs = luci.ip.MAC("C0:B6:F9:00:00:00/24")
-print(intel_macs:contains("C0:B6:F9:A3:C:11"))  -- true
-print(intel_macs:contains("64:66:B3:47:E1:B9")) -- false`
-]]
-
----[[
-Add given amount to CIDR instance. If the result would overflow the maximum
-address space, the result is set to the highest possible address.
-
-@class function
-@sort 22
-@name cidr.add
-@param amount A numeric value between 0 and 0xFFFFFFFF, a
-       `luci.ip.cidr` instance or a string convertible by
-       `luci.ip.new()`.
-@param inplace If `true`, modify this instance instead of returning
-       a new derived CIDR instance.
-@return <ul>
-       <li>When adding inplace: Return `true` if the addition succeeded
-           or `false` when the addition overflowed.</li>
-       <li>When deriving new CIDR: Return new instance representing the value of
-        this instance plus the added amount or the highest possible address if
-           the addition overflowed the available address space.</li></ul>
-@usage `local addr = luci.ip.new("192.168.1.1/24")
-print(addr:add(250))           -- "192.168.1.251/24"
-print(addr:add("0.0.99.0"))    -- "192.168.100.1/24"
-
-addr:add(256, true)            -- true
-print(addr)                    -- "192.168.2.1/24
-
-addr:add("255.0.0.0", true)    -- false (overflow)
-print(addr)                    -- "255.255.255.255/24
-
-local addr6 = luci.ip.new("fe80::221:63f:fe75:aa17/64")
-print(addr6:add(256))          -- "fe80::221:63f:fe75:ab17/64"
-print(addr6:add("::ffff:0"))   -- "fe80::221:640:fe74:aa17/64"
-
-addr6:add(256, true)           -- true
-print(addr6)                   -- "fe80::221:63f:fe75:ab17/64
-
-addr6:add("ffff::", true)      -- false (overflow)
-print(addr6)                   -- "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/64"
-
-local mac = luci.ip.new("00:14:22:01:23:45")
-print(mac:add(256))            -- "00:14:22:01:24:45"
-print(mac:add("0:0:0:0:FF:0")  -- "00:14:22:02:22:45"
-
-mac:add(256, true)             -- true
-print(mac)                     -- "00:14:22:01:24:45"
-
-mac:add("FF:FF:0:0:0:0", true) -- false (overflow)
-print(mac)                     -- "FF:FF:FF:FF:FF:FF"`
-]]
-
----[[
-Subtract given amount from CIDR instance. If the result would under, the lowest
-possible address is returned.
-
-@class function
-@sort 23
-@name cidr.sub
-@param amount A numeric value between 0 and 0xFFFFFFFF, a
-       `luci.ip.cidr` instance or a string convertible by
-       `luci.ip.new()`.
-@param inplace If `true`, modify this instance instead of returning
-       a new derived CIDR instance.
-@return <ul>
-       <li>When subtracting inplace: Return `true` if the subtraction
-           succeeded or `false` when the subtraction underflowed.</li>
-       <li>When deriving new CIDR: Return new instance representing the value of
-        this instance minus the subtracted amount or the lowest address if
-           the subtraction underflowed.</li></ul>
-@usage `local addr = luci.ip.new("192.168.1.1/24")
-print(addr:sub(256))         -- "192.168.0.1/24"
-print(addr:sub("0.168.0.0")) -- "192.0.1.1/24"
-
-addr:sub(256, true)          -- true
-print(addr)                  -- "192.168.0.1/24
-
-addr:sub("255.0.0.0", true)  -- false (underflow)
-print(addr)                  -- "0.0.0.0/24
-
-local addr6 = luci.ip.new("fe80::221:63f:fe75:aa17/64")
-print(addr6:sub(256))        -- "fe80::221:63f:fe75:a917/64"
-print(addr6:sub("::ffff:0")) -- "fe80::221:63e:fe76:aa17/64"
-
-addr:sub(256, true)          -- true
-print(addr)                  -- "fe80::221:63f:fe75:a917/64"
-
-addr:sub("ffff::", true)     -- false (underflow)
-print(addr)                  -- "::/64"
-
-local mac = luci.ip.new("00:14:22:01:23:45")
-print(mac:sub(256))            -- "00:14:22:01:22:45"
-print(mac:sub("0:0:0:0:FF:0")  -- "00:14:22:00:24:45"
-
-mac:sub(256, true)             -- true
-print(mac)                     -- "00:14:22:01:22:45"
-
-mac:sub("FF:FF:0:0:0:0", true) -- false (overflow)
-print(mac)                     -- "00:00:00:00:00:00"`
-]]
-
----[[
-Calculate the lowest possible host address within this CIDR instance.
-
-@class function
-@sort 24
-@name cidr.minhost
-@return Returns a new CIDR instance representing the lowest host address
-       within this range.
-@usage `local addr = luci.ip.new("192.168.123.56/24")
-print(addr:minhost())  -- "192.168.123.1"
-
-local addr6 = luci.ip.new("fd9b:62b3:9cc5:0:221:63ff:fe75:aa17/64")
-print(addr6:minhost()) -- "fd9b:62b3:9cc5::1"
-
-local mac = luci.ip.new("00:14:22:01:22:45/32")
-print(mac:minhost())   -- "00:14:22:01:00:01"`
-]]
-
----[[
-Calculate the highest possible host address within this CIDR instance.
-
-@class function
-@sort 25
-@name cidr.maxhost
-@return Returns a new CIDR instance representing the highest host address
-       within this range.
-@usage `local addr = luci.ip.new("192.168.123.56/24")
-print(addr:maxhost())  -- "192.168.123.254" (.255 is broadcast)
-
-local addr6 = luci.ip.new("fd9b:62b3:9cc5:0:221:63ff:fe75:aa17/64")
-print(addr6:maxhost()) -- "fd9b:62b3:9cc5:0:ffff:ffff:ffff:ffff"
-
-local mac = luci.ip.new("00:14:22:01:22:45/32")
-print(mac:maxhost())   -- "00:14:22:01:FF:FF"`
-]]
-
----[[
-Convert CIDR instance into string representation.
-
-If the prefix size of instance is less than 32 for IPv4, 128 for IPv6 or 48 for
-MACs, the address is returned in the form "address/prefix" otherwise just
-"address".
-
-It is usually not required to call this function directly as CIDR objects
-define it as __tostring function in the associated metatable.
-
-@class function
-@sort 26
-@name cidr.string
-@return Returns a string representing the range or address of this CIDR instance
-]]
diff --git a/package/luci/libs/luci-lib-ipkg/Makefile b/package/luci/libs/luci-lib-ipkg/Makefile
deleted file mode 100644 (file)
index 52fcf6f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2018 Jo-Philipp Wich <jo@mein.io>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Legacy opkg interface class
-LUCI_DEPENDS:=+luci-base
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/libs/luci-lib-ipkg/luasrc/model/ipkg.lua b/package/luci/libs/luci-lib-ipkg/luasrc/model/ipkg.lua
deleted file mode 100644 (file)
index e27ea52..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
--- Copyright 2008-2011 Jo-Philipp Wich <jow@openwrt.org>
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local os   = require "os"
-local io   = require "io"
-local fs   = require "nixio.fs"
-local util = require "luci.util"
-
-local type  = type
-local pairs = pairs
-local error = error
-local table = table
-
-local ipkg = "opkg --force-removal-of-dependent-packages --force-overwrite --nocase"
-local icfg = "/etc/opkg.conf"
-
-module "luci.model.ipkg"
-
-
--- Internal action function
-local function _action(cmd, ...)
-       local cmdline = { ipkg, cmd }
-
-       local k, v
-       for k, v in pairs({...}) do
-               cmdline[#cmdline+1] = util.shellquote(v)
-       end
-
-       local c = "%s >/tmp/opkg.stdout 2>/tmp/opkg.stderr" % table.concat(cmdline, " ")
-       local r = os.execute(c)
-       local e = fs.readfile("/tmp/opkg.stderr")
-       local o = fs.readfile("/tmp/opkg.stdout")
-
-       fs.unlink("/tmp/opkg.stderr")
-       fs.unlink("/tmp/opkg.stdout")
-
-       return r, o or "", e or ""
-end
-
--- Internal parser function
-local function _parselist(rawdata)
-       if type(rawdata) ~= "function" then
-               error("OPKG: Invalid rawdata given")
-       end
-
-       local data = {}
-       local c = {}
-       local l = nil
-
-       for line in rawdata do
-               if line:sub(1, 1) ~= " " then
-                       local key, val = line:match("(.-): ?(.*)%s*")
-
-                       if key and val then
-                               if key == "Package" then
-                                       c = {Package = val}
-                                       data[val] = c
-                               elseif key == "Status" then
-                                       c.Status = {}
-                                       for j in val:gmatch("([^ ]+)") do
-                                               c.Status[j] = true
-                                       end
-                               else
-                                       c[key] = val
-                               end
-                               l = key
-                       end
-               else
-                       -- Multi-line field
-                       c[l] = c[l] .. "\n" .. line
-               end
-       end
-
-       return data
-end
-
--- Internal lookup function
-local function _lookup(cmd, pkg)
-       local cmdline = { ipkg, cmd }
-       if pkg then
-               cmdline[#cmdline+1] = util.shellquote(pkg)
-       end
-
-       -- OPKG sometimes kills the whole machine because it sucks
-       -- Therefore we have to use a sucky approach too and use
-       -- tmpfiles instead of directly reading the output
-       local tmpfile = os.tmpname()
-       os.execute("%s >%s 2>/dev/null" %{ table.concat(cmdline, " "), tmpfile })
-
-       local data = _parselist(io.lines(tmpfile))
-       os.remove(tmpfile)
-       return data
-end
-
-
-function info(pkg)
-       return _lookup("info", pkg)
-end
-
-function status(pkg)
-       return _lookup("status", pkg)
-end
-
-function install(...)
-       return _action("install", ...)
-end
-
-function installed(pkg)
-       local p = status(pkg)[pkg]
-       return (p and p.Status and p.Status.installed)
-end
-
-function remove(...)
-       return _action("remove", ...)
-end
-
-function update()
-       return _action("update")
-end
-
-function upgrade()
-       return _action("upgrade")
-end
-
--- List helper
-local function _list(action, pat, cb)
-       local cmdline = { ipkg, action }
-       if pat then
-               cmdline[#cmdline+1] = util.shellquote(pat)
-       end
-
-       local fd = io.popen(table.concat(cmdline, " "))
-       if fd then
-               local name, version, sz, desc
-               while true do
-                       local line = fd:read("*l")
-                       if not line then break end
-
-                       name, version, sz, desc = line:match("^(.-) %- (.-) %- (.-) %- (.+)")
-
-                       if not name then
-                               name, version, sz = line:match("^(.-) %- (.-) %- (.+)")
-                               desc = ""
-                       end
-
-                       if name and version then
-                               if #version > 26 then
-                                       version = version:sub(1,21) .. ".." .. version:sub(-3,-1)
-                               end
-
-                               cb(name, version, sz, desc)
-                       end
-
-                       name    = nil
-                       version = nil
-                       sz      = nil
-                       desc    = nil
-               end
-
-               fd:close()
-       end
-end
-
-function list_all(pat, cb)
-       _list("list --size", pat, cb)
-end
-
-function list_installed(pat, cb)
-       _list("list_installed --size", pat, cb)
-end
-
-function find(pat, cb)
-       _list("find --size", pat, cb)
-end
-
-
-function overlay_root()
-       local od = "/"
-       local fd = io.open(icfg, "r")
-
-       if fd then
-               local ln
-
-               repeat
-                       ln = fd:read("*l")
-                       if ln and ln:match("^%s*option%s+overlay_root%s+") then
-                               od = ln:match("^%s*option%s+overlay_root%s+(%S+)")
-
-                               local s = fs.stat(od)
-                               if not s or s.type ~= "dir" then
-                                       od = "/"
-                               end
-
-                               break
-                       end
-               until not ln
-
-               fd:close()
-       end
-
-       return od
-end
-
-function compare_versions(ver1, comp, ver2)
-       if not ver1 or not ver2
-       or not comp or not (#comp > 0) then
-               error("Invalid parameters")
-               return nil
-       end
-       -- correct compare string
-       if comp == "<>" or comp == "><" or comp == "!=" or comp == "~=" then comp = "~="
-       elseif comp == "<=" or comp == "<" or comp == "=<" then comp = "<="
-       elseif comp == ">=" or comp == ">" or comp == "=>" then comp = ">="
-       elseif comp == "="  or comp == "==" then comp = "=="
-       elseif comp == "<<" then comp = "<"
-       elseif comp == ">>" then comp = ">"
-       else
-               error("Invalid compare string")
-               return nil
-       end
-
-       local av1 = util.split(ver1, "[%.%-]", nil, true)
-       local av2 = util.split(ver2, "[%.%-]", nil, true)
-
-       local max = table.getn(av1)
-       if (table.getn(av1) < table.getn(av2)) then
-               max = table.getn(av2)
-       end
-
-       for i = 1, max, 1  do
-               local s1 = av1[i] or ""
-               local s2 = av2[i] or ""
-
-               -- first "not equal" found return true
-               if comp == "~=" and (s1 ~= s2) then return true end
-               -- first "lower" found return true
-               if (comp == "<" or comp == "<=") and (s1 < s2) then return true end
-               -- first "greater" found return true
-               if (comp == ">" or comp == ">=") and (s1 > s2) then return true end
-               -- not equal then return false
-               if (s1 ~= s2) then return false end
-       end
-
-       -- all equal and not compare greater or lower then true
-       return not (comp == "<" or comp == ">")
-end
diff --git a/package/luci/libs/luci-lib-ipkg/luasrc/model/ipkg.luadoc b/package/luci/libs/luci-lib-ipkg/luasrc/model/ipkg.luadoc
deleted file mode 100644 (file)
index 4e1548d..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
----[[
-LuCI OPKG call abstraction library
-]]
-module "luci.model.ipkg"
-
----[[
-Return information about installed and available packages.
-
-@class function
-@name info
-@param pkg Limit output to a (set of) packages
-@return Table containing package information
-]]
-
----[[
-Return the package status of one or more packages.
-
-@class function
-@name status
-@param pkg Limit output to a (set of) packages
-@return Table containing package status information
-]]
-
----[[
-Install one or more packages.
-
-@class function
-@name install
-@param ... List of packages to install
-@return Boolean indicating the status of the action
-@return OPKG return code, STDOUT and STDERR
-]]
-
----[[
-Determine whether a given package is installed.
-
-@class function
-@name installed
-@param pkg Package
-@return Boolean
-]]
-
----[[
-Remove one or more packages.
-
-@class function
-@name remove
-@param ... List of packages to install
-@return Boolean indicating the status of the action
-@return OPKG return code, STDOUT and STDERR
-]]
-
----[[
-Update package lists.
-
-@class function
-@name update
-@return Boolean indicating the status of the action
-@return OPKG return code, STDOUT and STDERR
-]]
-
----[[
-Upgrades all installed packages.
-
-@class function
-@name upgrade
-@return Boolean indicating the status of the action
-@return OPKG return code, STDOUT and STDERR
-]]
-
----[[
-List all packages known to opkg.
-
-@class function
-@name list_all
-@param pat     Only find packages matching this pattern, nil lists all packages
-@param cb      Callback function invoked for each package, receives name, version and description as arguments
-@return        nothing
-]]
-
----[[
-List installed packages.
-
-@class function
-@name list_installed
-@param pat     Only find packages matching this pattern, nil lists all packages
-@param cb      Callback function invoked for each package, receives name, version and description as arguments
-@return        nothing
-]]
-
----[[
-Find packages that match the given pattern.
-
-@class function
-@name find
-@param pat     Find packages whose names or descriptions match this pattern, nil results in zero results
-@param cb      Callback function invoked for each patckage, receives name, version and description as arguments
-@return        nothing
-]]
-
----[[
-Determines the overlay root used by opkg.
-
-@class function
-@name overlay_root
-@return                String containing the directory path of the overlay root.
-]]
-
----[[
-lua version of opkg compare-versions
-
-@class function
-@name compare_versions
-@param ver1    string version 1
-@param ver2    string version 2
-@param comp    string compare versions using
-               "<=" or "<" lower-equal
-               ">" or ">=" greater-equal
-               "=" equal
-               "<<" lower
-               ">>" greater
-               "~=" not equal
-@return Boolean indicating the status of the compare
-]]
-
diff --git a/package/luci/libs/luci-lib-iptparser/Makefile b/package/luci/libs/luci-lib-iptparser/Makefile
deleted file mode 100644 (file)
index 06748ad..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2018 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Iptables listing parser class
-LUCI_DEPENDS:=+luci-base
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/libs/luci-lib-iptparser/luasrc/sys/iptparser.lua b/package/luci/libs/luci-lib-iptparser/luasrc/sys/iptparser.lua
deleted file mode 100644 (file)
index 7ff665e..0000000
+++ /dev/null
@@ -1,374 +0,0 @@
---[[
-
-Iptables parser and query library
-(c) 2008-2009 Jo-Philipp Wich <jow@openwrt.org>
-(c) 2008-2009 Steven Barth <steven@midlink.org>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-        http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-
-]]--
-
-local luci  = {}
-luci.util   = require "luci.util"
-luci.sys    = require "luci.sys"
-luci.ip     = require "luci.ip"
-
-local pcall = pcall
-local io = require "io"
-local tonumber, ipairs, table = tonumber, ipairs, table
-
-module("luci.sys.iptparser")
-
-IptParser = luci.util.class()
-
-function IptParser.__init__( self, family )
-       self._family = (tonumber(family) == 6) and 6 or 4
-       self._rules  = { }
-       self._chains = { }
-       self._tables = { }
-
-       local t = self._tables
-       local s = self:_supported_tables(self._family)
-
-       if s.filter then t[#t+1] = "filter" end
-       if s.nat    then t[#t+1] = "nat"    end
-       if s.mangle then t[#t+1] = "mangle" end
-       if s.raw    then t[#t+1] = "raw"    end
-
-       if self._family == 4 then
-               self._nulladdr = "0.0.0.0/0"
-               self._command  = "iptables -t %s --line-numbers -nxvL"
-       else
-               self._nulladdr = "::/0"
-               self._command  = "ip6tables -t %s --line-numbers -nxvL"
-       end
-
-       self:_parse_rules()
-end
-
-function IptParser._supported_tables( self, family )
-       local tables = { }
-       local ok, lines = pcall(io.lines,
-               (family == 6) and "/proc/net/ip6_tables_names"
-                              or "/proc/net/ip_tables_names")
-
-       if ok and lines then
-               local line
-               for line in lines do
-                       tables[line] = true
-               end
-       end
-
-       return tables
-end
-
--- search criteria as only argument. If args is nil or an empty table then all
--- rules will be returned.
---
--- The following keys in the args table are recognized:
--- <ul>
---  <li> table          - Match rules that are located within the given table
---  <li> chain          - Match rules that are located within the given chain
---  <li> target                 - Match rules with the given target
---  <li> protocol       - Match rules that match the given protocol, rules with
---                                             protocol "all" are always matched
---  <li> source                 - Match rules with the given source, rules with source
---                                             "0.0.0.0/0" (::/0) are always matched
---  <li> destination - Match rules with the given destination, rules with
---                                             destination "0.0.0.0/0" (::/0) are always matched
---  <li> inputif        - Match rules with the given input interface, rules
---                                             with input      interface "*" (=all) are always matched
---  <li> outputif       - Match rules with the given output interface, rules
---                                             with output     interface "*" (=all) are always matched
---  <li> flags          - Match rules that match the given flags, current
---                                             supported values are "-f" (--fragment)
---                                             and "!f" (! --fragment)
---  <li> options        - Match rules containing all given options
--- </ul>
--- The return value is a list of tables representing the matched rules.
--- Each rule table contains the following fields:
--- <ul>
---  <li> index          - The index number of the rule
---  <li> table          - The table where the rule is located, can be one
---                                             of "filter", "nat" or "mangle"
---  <li> chain          - The chain where the rule is located, e.g. "INPUT"
---                                             or "postrouting_wan"
---  <li> target                 - The rule target, e.g. "REJECT" or "DROP"
---  <li> protocol              The matching protocols, e.g. "all" or "tcp"
---  <li> flags          - Special rule options ("--", "-f" or "!f")
---  <li> inputif        - Input interface of the rule, e.g. "eth0.0"
---                                             or "*" for all interfaces
---  <li> outputif       - Output interface of the rule,e.g. "eth0.0"
---                                             or "*" for all interfaces
---  <li> source                 - The source ip range, e.g. "0.0.0.0/0" (::/0)
---  <li> destination - The destination ip range, e.g. "0.0.0.0/0" (::/0)
---  <li> options        - A list of specific options of the rule,
---                                             e.g. { "reject-with", "tcp-reset" }
---  <li> packets        - The number of packets matched by the rule
---  <li> bytes          - The number of total bytes matched by the rule
--- </ul>
--- Example:
--- <pre>
--- ip = luci.sys.iptparser.IptParser()
--- result = ip.find( {
---     target="REJECT",
---     protocol="tcp",
---     options={ "reject-with", "tcp-reset" }
--- } )
--- </pre>
--- This will match all rules with target "-j REJECT",
--- protocol "-p tcp" (or "-p all")
--- and the option "--reject-with tcp-reset".
-function IptParser.find( self, args )
-
-       local args = args or { }
-       local rv   = { }
-
-       args.source      = args.source      and self:_parse_addr(args.source)
-       args.destination = args.destination and self:_parse_addr(args.destination)
-
-       for i, rule in ipairs(self._rules) do
-               local match = true
-
-               -- match table
-               if not ( not args.table or args.table:lower() == rule.table ) then
-                       match = false
-               end
-
-               -- match chain
-               if not ( match == true and (
-                       not args.chain or args.chain == rule.chain
-               ) ) then
-                       match = false
-               end
-
-               -- match target
-               if not ( match == true and (
-                       not args.target or args.target == rule.target
-               ) ) then
-                       match = false
-               end
-
-               -- match protocol
-               if not ( match == true and (
-                       not args.protocol or rule.protocol == "all" or
-                       args.protocol:lower() == rule.protocol
-               ) ) then
-                       match = false
-               end
-
-               -- match source
-               if not ( match == true and (
-                       not args.source or rule.source == self._nulladdr or
-                       self:_parse_addr(rule.source):contains(args.source)
-               ) ) then
-                       match = false
-               end
-
-               -- match destination
-               if not ( match == true and (
-                       not args.destination or rule.destination == self._nulladdr or
-                       self:_parse_addr(rule.destination):contains(args.destination)
-               ) ) then
-                       match = false
-               end
-
-               -- match input interface
-               if not ( match == true and (
-                       not args.inputif or rule.inputif == "*" or
-                       args.inputif == rule.inputif
-               ) ) then
-                       match = false
-               end
-
-               -- match output interface
-               if not ( match == true and (
-                       not args.outputif or rule.outputif == "*" or
-                       args.outputif == rule.outputif
-               ) ) then
-                       match = false
-               end
-
-               -- match flags (the "opt" column)
-               if not ( match == true and (
-                       not args.flags or rule.flags == args.flags
-               ) ) then
-                       match = false
-               end
-
-               -- match specific options
-               if not ( match == true and (
-                       not args.options or
-                       self:_match_options( rule.options, args.options )
-               ) ) then
-                       match = false
-               end
-
-               -- insert match
-               if match == true then
-                       rv[#rv+1] = rule
-               end
-       end
-
-       return rv
-end
-
-
--- through external commands.
-function IptParser.resync( self )
-       self._rules = { }
-       self._chain = nil
-       self:_parse_rules()
-end
-
-
-function IptParser.tables( self )
-       return self._tables
-end
-
-
-function IptParser.chains( self, table )
-       local lookup = { }
-       local chains = { }
-       for _, r in ipairs(self:find({table=table})) do
-               if not lookup[r.chain] then
-                       lookup[r.chain]   = true
-                       chains[#chains+1] = r.chain
-               end
-       end
-       return chains
-end
-
-
---                             and "rules". The "rules" field is a table of rule tables.
-function IptParser.chain( self, table, chain )
-       return self._chains[table:lower()] and self._chains[table:lower()][chain]
-end
-
-
-function IptParser.is_custom_target( self, target )
-       for _, r in ipairs(self._rules) do
-               if r.chain == target then
-                       return true
-               end
-       end
-       return false
-end
-
-
--- [internal] Parse address according to family.
-function IptParser._parse_addr( self, addr )
-       if self._family == 4 then
-               return luci.ip.IPv4(addr)
-       else
-               return luci.ip.IPv6(addr)
-       end
-end
-
--- [internal] Parse iptables output from all tables.
-function IptParser._parse_rules( self )
-
-       for i, tbl in ipairs(self._tables) do
-
-               self._chains[tbl] = { }
-
-               for i, rule in ipairs(luci.util.execl(self._command % tbl)) do
-
-                       if rule:find( "^Chain " ) == 1 then
-
-                               local crefs
-                               local cname, cpol, cpkt, cbytes = rule:match(
-                                       "^Chain ([^%s]*) %(policy (%w+) " ..
-                                       "(%d+) packets, (%d+) bytes%)"
-                               )
-
-                               if not cname then
-                                       cname, crefs = rule:match(
-                                               "^Chain ([^%s]*) %((%d+) references%)"
-                                       )
-                               end
-
-                               self._chain = cname
-                               self._chains[tbl][cname] = {
-                                       policy     = cpol,
-                                       packets    = tonumber(cpkt or 0),
-                                       bytes      = tonumber(cbytes or 0),
-                                       references = tonumber(crefs or 0),
-                                       rules      = { }
-                               }
-
-                       else
-                               if rule:find("%d") == 1 then
-
-                                       local rule_parts   = luci.util.split( rule, "%s+", nil, true )
-                                       local rule_details = { }
-
-                                       -- cope with rules that have no target assigned
-                                       if rule:match("^%d+%s+%d+%s+%d+%s%s") then
-                                               table.insert(rule_parts, 4, nil)
-                                       end
-
-                                       -- ip6tables opt column is usually zero-width
-                                       if self._family == 6 then
-                                               table.insert(rule_parts, 6, "--")
-                                       end
-
-                                       rule_details["table"]       = tbl
-                                       rule_details["chain"]       = self._chain
-                                       rule_details["index"]       = tonumber(rule_parts[1])
-                                       rule_details["packets"]     = tonumber(rule_parts[2])
-                                       rule_details["bytes"]       = tonumber(rule_parts[3])
-                                       rule_details["target"]      = rule_parts[4]
-                                       rule_details["protocol"]    = rule_parts[5]
-                                       rule_details["flags"]       = rule_parts[6]
-                                       rule_details["inputif"]     = rule_parts[7]
-                                       rule_details["outputif"]    = rule_parts[8]
-                                       rule_details["source"]      = rule_parts[9]
-                                       rule_details["destination"] = rule_parts[10]
-                                       rule_details["options"]     = { }
-
-                                       for i = 11, #rule_parts  do
-                                               if #rule_parts[i] > 0 then
-                                                       rule_details["options"][i-10] = rule_parts[i]
-                                               end
-                                       end
-
-                                       self._rules[#self._rules+1] = rule_details
-
-                                       self._chains[tbl][self._chain].rules[
-                                               #self._chains[tbl][self._chain].rules + 1
-                                       ] = rule_details
-                               end
-                       end
-               end
-       end
-
-       self._chain = nil
-end
-
-
--- [internal] Return true if optlist1 contains all elements of optlist 2.
---            Return false in all other cases.
-function IptParser._match_options( self, o1, o2 )
-
-       -- construct a hashtable of first options list to speed up lookups
-       local oh = { }
-       for i, opt in ipairs( o1 ) do oh[opt] = true end
-
-       -- iterate over second options list
-       -- each string in o2 must be also present in o1
-       -- if o2 contains a string which is not found in o1 then return false
-       for i, opt in ipairs( o2 ) do
-               if not oh[opt] then
-                       return false
-               end
-       end
-
-       return true
-end
diff --git a/package/luci/libs/luci-lib-iptparser/luasrc/sys/iptparser.luadoc b/package/luci/libs/luci-lib-iptparser/luasrc/sys/iptparser.luadoc
deleted file mode 100644 (file)
index 071e7d5..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
----[[
-LuCI iptables parser and query library
-
-@cstyle        instance
-]]
-module "luci.sys.iptparser"
-
----[[
-Create a new iptables parser object.
-
-@class function
-@name  IptParser
-@param family  Number specifying the address family. 4 for IPv4, 6 for IPv6
-@return        IptParser instance
-]]
-
----[[
-Find all firewall rules that match the given criteria. Expects a table with
-
-search criteria as only argument. If args is nil or an empty table then all
-rules will be returned.
-]]
-
----[[
-Rebuild the internal lookup table, for example when rules have changed
-
-through external commands.
-@class function
-@name IptParser.resync
-@return        nothing
-]]
-
----[[
-Find the names of all tables.
-
-@class function
-@name IptParser.tables
-@return                Table of table names.
-]]
-
----[[
-Find the names of all chains within the given table name.
-
-@class function
-@name IptParser.chains
-@param table   String containing the table name
-@return                Table of chain names in the order they occur.
-]]
-
----[[
-Return the given firewall chain within the given table name.
-
-@class function
-@name IptParser.chain
-@param table   String containing the table name
-@param chain   String containing the chain name
-@return                Table containing the fields "policy", "packets", "bytes"
---                             and "rules". The "rules" field is a table of rule tables.
-]]
-
----[[
-Test whether the given target points to a custom chain.
-
-@class function
-@name IptParser.is_custom_target
-@param target  String containing the target action
-@return                        Boolean indicating whether target is a custom chain.
-]]
-
diff --git a/package/luci/libs/luci-lib-json/Makefile b/package/luci/libs/luci-lib-json/Makefile
deleted file mode 100644 (file)
index ededc1f..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI JSON library
-LUCI_DEPENDS:=
-
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/libs/luci-lib-json/luasrc/json.lua b/package/luci/libs/luci-lib-json/luasrc/json.lua
deleted file mode 100644 (file)
index 6d4d752..0000000
+++ /dev/null
@@ -1,535 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local nixio     = require "nixio"
-local util      = require "luci.util"
-local table     = require "table"
-local string    = require "string"
-local coroutine = require "coroutine"
-
-local assert    = assert
-local tonumber  = tonumber
-local tostring  = tostring
-local error     = error
-local type         = type
-local pairs        = pairs
-local ipairs    = ipairs
-local next      = next
-local pcall            = pcall
-
-local band      = nixio.bit.band
-local bor       = nixio.bit.bor
-local rshift    = nixio.bit.rshift
-local char      = string.char
-
-local getmetatable = getmetatable
-
-module "luci.json"
-
-
-function decode(json, ...)
-       local a = ActiveDecoder(function() return nil end, ...)
-       a.chunk = json
-       local s, obj = pcall(a.get, a)
-       return s and obj or nil
-end
-
-
-function encode(obj, ...)
-       local out = {}
-       local e = Encoder(obj, 1, ...):source()
-       local chnk, err
-       repeat
-               chnk, err = e()
-               out[#out+1] = chnk
-       until not chnk
-       return not err and table.concat(out) or nil
-end
-
-
-function null()
-       return null
-end
-
-Encoder = util.class()
-
-function Encoder.__init__(self, data, buffersize, fastescape)
-       self.data = data
-       self.buffersize = buffersize or 512
-       self.buffer = ""
-       self.fastescape = fastescape
-
-       getmetatable(self).__call = Encoder.source
-end
-
-function Encoder.source(self)
-       local source = coroutine.create(self.dispatch)
-       return function()
-               local res, data = coroutine.resume(source, self, self.data, true)
-               if res then
-                       return data
-               else
-                       return nil, data
-               end
-       end
-end
-
-function Encoder.dispatch(self, data, start)
-       local parser = self.parsers[type(data)]
-
-       parser(self, data)
-
-       if start then
-               if #self.buffer > 0 then
-                       coroutine.yield(self.buffer)
-               end
-
-               coroutine.yield()
-       end
-end
-
-function Encoder.put(self, chunk)
-       if self.buffersize < 2 then
-               coroutine.yield(chunk)
-       else
-               if #self.buffer + #chunk > self.buffersize then
-                       local written = 0
-                       local fbuffer = self.buffersize - #self.buffer
-
-                       coroutine.yield(self.buffer .. chunk:sub(written + 1, fbuffer))
-                       written = fbuffer
-
-                       while #chunk - written > self.buffersize do
-                               fbuffer = written + self.buffersize
-                               coroutine.yield(chunk:sub(written + 1, fbuffer))
-                               written = fbuffer
-                       end
-
-                       self.buffer = chunk:sub(written + 1)
-               else
-                       self.buffer = self.buffer .. chunk
-               end
-       end
-end
-
-function Encoder.parse_nil(self)
-       self:put("null")
-end
-
-function Encoder.parse_bool(self, obj)
-       self:put(obj and "true" or "false")
-end
-
-function Encoder.parse_number(self, obj)
-       self:put(tostring(obj))
-end
-
-function Encoder.parse_string(self, obj)
-       if self.fastescape then
-               self:put('"' .. obj:gsub('\\', '\\\\'):gsub('"', '\\"') .. '"')
-       else
-               self:put('"' ..
-                       obj:gsub('[%c\\"]',
-                               function(char)
-                                       return '\\u00%02x' % char:byte()
-                               end
-                       )
-               .. '"')
-       end
-end
-
-function Encoder.parse_iter(self, obj)
-       if obj == null then
-               return self:put("null")
-       end
-
-       if type(obj) == "table" and (#obj == 0 and next(obj)) then
-               self:put("{")
-               local first = true
-
-               for key, entry in pairs(obj) do
-                       if key ~= null then
-                               first = first or self:put(",")
-                               first = first and false
-                               self:parse_string(tostring(key))
-                               self:put(":")
-                               self:dispatch(entry)
-                       end
-               end
-
-               self:put("}")
-       else
-               self:put("[")
-               local first = true
-
-               if type(obj) == "table" then
-                       for i=1, #obj do
-                               first = first or self:put(",")
-                               first = first and nil
-                               self:dispatch(obj[i])
-                       end
-               else
-                       for entry in obj do
-                               first = first or self:put(",")
-                               first = first and nil
-                               self:dispatch(entry)
-                       end
-               end
-
-               self:put("]")
-       end
-end
-
-function Encoder.parse_udata(self, obj)
-       return self:parse_string(tostring(obj))
-end
-
-Encoder.parsers = {
-       ['nil']      = Encoder.parse_nil,
-       ['table']    = Encoder.parse_iter,
-       ['number']   = Encoder.parse_number,
-       ['string']   = Encoder.parse_string,
-       ['boolean']  = Encoder.parse_bool,
-       ['function'] = Encoder.parse_iter,
-       ['userdata'] = Encoder.parse_udata,
-}
-
-
-Decoder = util.class()
-
-function Decoder.__init__(self, customnull)
-       self.cnull = customnull
-       getmetatable(self).__call = Decoder.sink
-end
-
-function Decoder.sink(self)
-       local sink = coroutine.create(self.dispatch)
-       return function(...)
-               return coroutine.resume(sink, self, ...)
-       end
-end
-
-
-function Decoder.get(self)
-       return self.data
-end
-
-function Decoder.dispatch(self, chunk, src_err, strict)
-       local robject, object
-       local oset = false
-
-       while chunk do
-               while chunk and #chunk < 1 do
-                       chunk = self:fetch()
-               end
-
-               assert(not strict or chunk, "Unexpected EOS")
-               if not chunk then break end
-
-               local char   = chunk:sub(1, 1)
-               local parser = self.parsers[char]
-                or (char:match("%s")     and self.parse_space)
-                or (char:match("[0-9-]") and self.parse_number)
-                or error("Unexpected char '%s'" % char)
-
-               chunk, robject = parser(self, chunk)
-
-               if parser ~= self.parse_space then
-                       assert(not oset, "Scope violation: Too many objects")
-                       object = robject
-                       oset = true
-
-                       if strict then
-                               return chunk, object
-                       end
-               end
-       end
-
-       assert(not src_err, src_err)
-       assert(oset, "Unexpected EOS")
-
-       self.data = object
-end
-
-
-function Decoder.fetch(self)
-       local tself, chunk, src_err = coroutine.yield()
-       assert(chunk or not src_err, src_err)
-       return chunk
-end
-
-
-function Decoder.fetch_atleast(self, chunk, bytes)
-       while #chunk < bytes do
-               local nchunk = self:fetch()
-               assert(nchunk, "Unexpected EOS")
-               chunk = chunk .. nchunk
-       end
-
-       return chunk
-end
-
-
-function Decoder.fetch_until(self, chunk, pattern)
-       local start = chunk:find(pattern)
-
-       while not start do
-               local nchunk = self:fetch()
-               assert(nchunk, "Unexpected EOS")
-               chunk = chunk .. nchunk
-               start = chunk:find(pattern)
-       end
-
-       return chunk, start
-end
-
-
-function Decoder.parse_space(self, chunk)
-       local start = chunk:find("[^%s]")
-
-       while not start do
-               chunk = self:fetch()
-               if not chunk then
-                       return nil
-               end
-               start = chunk:find("[^%s]")
-       end
-
-       return chunk:sub(start)
-end
-
-
-function Decoder.parse_literal(self, chunk, literal, value)
-       chunk = self:fetch_atleast(chunk, #literal)
-       assert(chunk:sub(1, #literal) == literal, "Invalid character sequence")
-       return chunk:sub(#literal + 1), value
-end
-
-
-function Decoder.parse_null(self, chunk)
-       return self:parse_literal(chunk, "null", self.cnull and null)
-end
-
-
-function Decoder.parse_true(self, chunk)
-       return self:parse_literal(chunk, "true", true)
-end
-
-
-function Decoder.parse_false(self, chunk)
-       return self:parse_literal(chunk, "false", false)
-end
-
-
-function Decoder.parse_number(self, chunk)
-       local chunk, start = self:fetch_until(chunk, "[^0-9eE.+-]")
-       local number = tonumber(chunk:sub(1, start - 1))
-       assert(number, "Invalid number specification")
-       return chunk:sub(start), number
-end
-
-
-function Decoder.parse_string(self, chunk)
-       local str = ""
-       local object = nil
-       assert(chunk:sub(1, 1) == '"', 'Expected "')
-       chunk = chunk:sub(2)
-
-       while true do
-               local spos = chunk:find('[\\"]')
-               if spos then
-                       str = str .. chunk:sub(1, spos - 1)
-
-                       local char = chunk:sub(spos, spos)
-                       if char == '"' then                             -- String end
-                               chunk = chunk:sub(spos + 1)
-                               break
-                       elseif char == "\\" then                -- Escape sequence
-                               chunk, object = self:parse_escape(chunk:sub(spos))
-                               str = str .. object
-                       end
-               else
-                       str = str .. chunk
-                       chunk = self:fetch()
-                       assert(chunk, "Unexpected EOS while parsing a string")
-               end
-       end
-
-       return chunk, str
-end
-
-
-function Decoder.utf8_encode(self, s1, s2)
-       local n = s1 * 256 + s2
-
-       if n >= 0 and n <= 0x7F then
-               return char(n)
-       elseif n >= 0 and n <= 0x7FF then
-               return char(
-                       bor(band(rshift(n,  6), 0x1F), 0xC0),
-                       bor(band(n,             0x3F), 0x80)
-               )
-       elseif n >= 0 and n <= 0xFFFF then
-               return char(
-                       bor(band(rshift(n, 12), 0x0F), 0xE0),
-                       bor(band(rshift(n,  6), 0x3F), 0x80),
-                       bor(band(n,             0x3F), 0x80)
-               )
-       elseif n >= 0 and n <= 0x10FFFF then
-               return char(
-                       bor(band(rshift(n, 18), 0x07), 0xF0),
-                       bor(band(rshift(n, 12), 0x3F), 0x80),
-                       bor(band(rshift(n,  6), 0x3F), 0x80),
-                       bor(band(n,             0x3F), 0x80)
-               )
-       else
-               return "?"
-       end
-end
-
-
-function Decoder.parse_escape(self, chunk)
-       local str = ""
-       chunk = self:fetch_atleast(chunk:sub(2), 1)
-       local char = chunk:sub(1, 1)
-       chunk = chunk:sub(2)
-
-       if char == '"' then
-               return chunk, '"'
-       elseif char == "\\" then
-               return chunk, "\\"
-       elseif char == "u" then
-               chunk = self:fetch_atleast(chunk, 4)
-               local s1, s2 = chunk:sub(1, 2), chunk:sub(3, 4)
-               s1, s2 = tonumber(s1, 16), tonumber(s2, 16)
-               assert(s1 and s2, "Invalid Unicode character")
-
-               return chunk:sub(5), self:utf8_encode(s1, s2)
-       elseif char == "/" then
-               return chunk, "/"
-       elseif char == "b" then
-               return chunk, "\b"
-       elseif char == "f" then
-               return chunk, "\f"
-       elseif char == "n" then
-               return chunk, "\n"
-       elseif char == "r" then
-               return chunk, "\r"
-       elseif char == "t" then
-               return chunk, "\t"
-       else
-               error("Unexpected escaping sequence '\\%s'" % char)
-       end
-end
-
-
-function Decoder.parse_array(self, chunk)
-       chunk = chunk:sub(2)
-       local array = {}
-       local nextp = 1
-
-       local chunk, object = self:parse_delimiter(chunk, "%]")
-
-       if object then
-               return chunk, array
-       end
-
-       repeat
-               chunk, object = self:dispatch(chunk, nil, true)
-               table.insert(array, nextp, object)
-               nextp = nextp + 1
-
-               chunk, object = self:parse_delimiter(chunk, ",%]")
-               assert(object, "Delimiter expected")
-       until object == "]"
-
-       return chunk, array
-end
-
-
-function Decoder.parse_object(self, chunk)
-       chunk = chunk:sub(2)
-       local array = {}
-       local name
-
-       local chunk, object = self:parse_delimiter(chunk, "}")
-
-       if object then
-               return chunk, array
-       end
-
-       repeat
-               chunk = self:parse_space(chunk)
-               assert(chunk, "Unexpected EOS")
-
-               chunk, name   = self:parse_string(chunk)
-
-               chunk, object = self:parse_delimiter(chunk, ":")
-               assert(object, "Separator expected")
-
-               chunk, object = self:dispatch(chunk, nil, true)
-               array[name] = object
-
-               chunk, object = self:parse_delimiter(chunk, ",}")
-               assert(object, "Delimiter expected")
-       until object == "}"
-
-       return chunk, array
-end
-
-
-function Decoder.parse_delimiter(self, chunk, delimiter)
-       while true do
-               chunk = self:fetch_atleast(chunk, 1)
-               local char = chunk:sub(1, 1)
-               if char:match("%s") then
-                       chunk = self:parse_space(chunk)
-                       assert(chunk, "Unexpected EOS")
-               elseif char:match("[%s]" % delimiter) then
-                       return chunk:sub(2), char
-               else
-                       return chunk, nil
-               end
-       end
-end
-
-
-Decoder.parsers = {
-       ['"'] = Decoder.parse_string,
-       ['t'] = Decoder.parse_true,
-       ['f'] = Decoder.parse_false,
-       ['n'] = Decoder.parse_null,
-       ['['] = Decoder.parse_array,
-       ['{'] = Decoder.parse_object
-}
-
-
-ActiveDecoder = util.class(Decoder)
-
-function ActiveDecoder.__init__(self, source, customnull)
-       Decoder.__init__(self, customnull)
-       self.source = source
-       self.chunk = nil
-       getmetatable(self).__call = self.get
-end
-
-
-function ActiveDecoder.get(self)
-       local chunk, src_err, object
-       if not self.chunk then
-               chunk, src_err = self.source()
-       else
-               chunk = self.chunk
-       end
-
-       self.chunk, object = self:dispatch(chunk, src_err, true)
-       return object
-end
-
-
-function ActiveDecoder.fetch(self)
-       local chunk, src_err = self.source()
-       assert(chunk or not src_err, src_err)
-       return chunk
-end
diff --git a/package/luci/libs/luci-lib-json/luasrc/json.luadoc b/package/luci/libs/luci-lib-json/luasrc/json.luadoc
deleted file mode 100644 (file)
index 37f97d2..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
----[[
-LuCI JSON-Library
-
-@cstyle        instance
-]]
-module "luci.json"
-
----[[
-Directly decode a JSON string
-
-@class function
-@name decode
-@param json JSON-String
-@return Lua object
-]]
-
----[[
-Direcly encode a Lua object into a JSON string.
-
-@class function
-@name encode
-@param obj Lua Object
-@return JSON string
-]]
-
----[[
-Null replacement function
-
-@class function
-@name null
-@return null
-]]
-
----[[
-Create a new JSON-Encoder.
-
-@class function
-@name  Encoder
-@param data                    Lua-Object to be encoded.
-@param buffersize      Blocksize of returned data source.
-@param fastescape      Use non-standard escaping (don't escape control chars)
-@return JSON-Encoder
-]]
-
----[[
-Create an LTN12 source providing the encoded JSON-Data.
-
-@class function
-@name Encoder.source
-@return LTN12 source
-]]
-
----[[
-Create a new JSON-Decoder.
-
-@class function
-@name  Decoder
-@param customnull Use luci.json.null instead of nil for decoding null
-@return JSON-Decoder
-]]
-
----[[
-Create an LTN12 sink from the decoder object which accepts the JSON-Data.
-
-@class function
-@name Decoder.sink
-@return LTN12 sink
-]]
-
----[[
-Get the decoded data packets after the rawdata has been sent to the sink.
-
-@class function
-@name Decoder.get
-@return Decoded data
-]]
-
----[[
-Create a new Active JSON-Decoder.
-
-@class function
-@name  ActiveDecoder
-@param   customnull    Use luci.json.null instead of nil for decoding null
-@return  Active JSON-Decoder
-]]
-
----[[
-Fetches one JSON-object from given source
-
-@class function
-@name ActiveDecoder.get
-@return Decoded object
-]]
-
diff --git a/package/luci/libs/luci-lib-jsonc/Makefile b/package/luci/libs/luci-lib-jsonc/Makefile
deleted file mode 100644 (file)
index 6a63dab..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2015 LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Lua binding for JSON-C
-LUCI_DEPENDS:=+liblua +libjson-c
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/libs/luci-lib-jsonc/src/Makefile b/package/luci/libs/luci-lib-jsonc/src/Makefile
deleted file mode 100644 (file)
index e15fbac..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-JSONC_CFLAGS = -std=gnu99 -I$(STAGING_DIR)/usr/include/json-c/
-JSONC_LDFLAGS = -llua -lm -ljson-c
-JSONC_OBJ = jsonc.o
-JSONC_LIB = jsonc.so
-
-%.o: %.c
-       $(CC) $(CPPFLAGS) $(CFLAGS) $(LUA_CFLAGS) $(JSONC_CFLAGS) $(FPIC) -c -o $@ $<
-
-compile: $(JSONC_OBJ)
-       $(CC) $(LDFLAGS) -shared -o $(JSONC_LIB) $(JSONC_OBJ) $(JSONC_LDFLAGS)
-
-install: compile
-       mkdir -p $(DESTDIR)/usr/lib/lua/luci
-       cp $(JSONC_LIB) $(DESTDIR)/usr/lib/lua/luci/$(JSONC_LIB)
-
-clean:
-       rm -f *.o *.so
diff --git a/package/luci/libs/luci-lib-jsonc/src/jsonc.c b/package/luci/libs/luci-lib-jsonc/src/jsonc.c
deleted file mode 100644 (file)
index 9ff8520..0000000
+++ /dev/null
@@ -1,532 +0,0 @@
-/*
-Copyright 2015 Jo-Philipp Wich <jow@openwrt.org>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-#define _GNU_SOURCE
-
-#include <math.h>
-#include <stdbool.h>
-#include <json-c/json.h>
-
-#include <lua.h>
-#include <lualib.h>
-#include <lauxlib.h>
-
-#define LUCI_JSONC "luci.jsonc"
-#define LUCI_JSONC_PARSER "luci.jsonc.parser"
-
-struct seen {
-       size_t size;
-       size_t len;
-       const void *ptrs[];
-};
-
-struct json_state {
-       struct json_object *obj;
-       struct json_tokener *tok;
-       enum json_tokener_error err;
-};
-
-static void _json_to_lua(lua_State *L, struct json_object *obj);
-static struct json_object * _lua_to_json(lua_State *L, int index);
-static struct json_object * _lua_to_json_rec(lua_State *L, int index, struct seen **seen);
-
-static int json_new(lua_State *L)
-{
-       struct json_state *s;
-       struct json_tokener *tok = json_tokener_new();
-
-       if (!tok)
-               return 0;
-
-       s = lua_newuserdata(L, sizeof(*s));
-
-       if (!s)
-       {
-               json_tokener_free(tok);
-               return 0;
-       }
-
-       s->tok = tok;
-       s->obj = NULL;
-       s->err = json_tokener_continue;
-
-       luaL_getmetatable(L, LUCI_JSONC_PARSER);
-       lua_setmetatable(L, -2);
-
-       return 1;
-}
-
-static int json_parse(lua_State *L)
-{
-       size_t len;
-       const char *json = luaL_checklstring(L, 1, &len);
-       struct json_state s = {
-               .tok = json_tokener_new()
-       };
-
-       if (!s.tok)
-               return 0;
-
-       s.obj = json_tokener_parse_ex(s.tok, json, len);
-       s.err = json_tokener_get_error(s.tok);
-
-       if (s.obj)
-       {
-               _json_to_lua(L, s.obj);
-               json_object_put(s.obj);
-       }
-       else
-       {
-               lua_pushnil(L);
-       }
-
-       if (s.err == json_tokener_continue)
-               s.err = json_tokener_error_parse_eof;
-
-       if (s.err)
-               lua_pushstring(L, json_tokener_error_desc(s.err));
-
-       json_tokener_free(s.tok);
-       return (1 + !!s.err);
-}
-
-static int json_stringify(lua_State *L)
-{
-       struct json_object *obj = _lua_to_json(L, 1);
-       bool pretty = lua_toboolean(L, 2);
-       int flags = 0;
-
-       if (pretty)
-               flags |= JSON_C_TO_STRING_PRETTY | JSON_C_TO_STRING_SPACED;
-
-       lua_pushstring(L, json_object_to_json_string_ext(obj, flags));
-       json_object_put(obj);
-       return 1;
-}
-
-
-static int json_parse_chunk(lua_State *L)
-{
-       size_t len;
-       struct json_state *s = luaL_checkudata(L, 1, LUCI_JSONC_PARSER);
-       const char *chunk = luaL_checklstring(L, 2, &len);
-
-       s->obj = json_tokener_parse_ex(s->tok, chunk, len);
-    s->err = json_tokener_get_error(s->tok);
-
-       if (!s->err)
-       {
-               lua_pushboolean(L, true);
-               return 1;
-       }
-       else if (s->err == json_tokener_continue)
-       {
-               lua_pushboolean(L, false);
-               return 1;
-       }
-
-       lua_pushnil(L);
-       lua_pushstring(L, json_tokener_error_desc(s->err));
-       return 2;
-}
-
-static void _json_to_lua(lua_State *L, struct json_object *obj)
-{
-       int n;
-
-       switch (json_object_get_type(obj))
-       {
-       case json_type_object:
-               lua_newtable(L);
-               json_object_object_foreach(obj, key, val)
-               {
-                       _json_to_lua(L, val);
-                       lua_setfield(L, -2, key);
-               }
-               break;
-
-       case json_type_array:
-               lua_newtable(L);
-               for (n = 0; n < json_object_array_length(obj); n++)
-               {
-                       _json_to_lua(L, json_object_array_get_idx(obj, n));
-                       lua_rawseti(L, -2, n + 1);
-               }
-               break;
-
-       case json_type_boolean:
-               lua_pushboolean(L, json_object_get_boolean(obj));
-               break;
-
-       case json_type_int:
-               lua_pushinteger(L, json_object_get_int(obj));
-               break;
-
-       case json_type_double:
-               lua_pushnumber(L, json_object_get_double(obj));
-               break;
-
-       case json_type_string:
-               lua_pushstring(L, json_object_get_string(obj));
-               break;
-
-       case json_type_null:
-               lua_pushnil(L);
-               break;
-       }
-}
-
-static int json_parse_get(lua_State *L)
-{
-       struct json_state *s = luaL_checkudata(L, 1, LUCI_JSONC_PARSER);
-
-       if (!s->obj || s->err)
-               lua_pushnil(L);
-       else
-               _json_to_lua(L, s->obj);
-
-       return 1;
-}
-
-static int _lua_test_array(lua_State *L, int index)
-{
-       int max = 0;
-       lua_Number idx;
-
-       if (!lua_checkstack(L, 2))
-               return -1;
-
-       lua_pushnil(L);
-
-       /* check for non-integer keys */
-       while (lua_next(L, index))
-       {
-               if (lua_type(L, -2) != LUA_TNUMBER)
-                       goto out;
-
-               idx = lua_tonumber(L, -2);
-
-               if (idx != (lua_Number)(lua_Integer)idx)
-                       goto out;
-
-               if (idx <= 0)
-                       goto out;
-
-               if (idx > max)
-                       max = idx;
-
-               lua_pop(L, 1);
-               continue;
-
-out:
-               lua_pop(L, 2);
-               return -1;
-       }
-
-       /* check for holes */
-       //for (i = 1; i <= max; i++)
-       //{
-       //      lua_rawgeti(L, index, i);
-       //
-       //      if (lua_isnil(L, -1))
-       //      {
-       //              lua_pop(L, 1);
-       //              return 0;
-       //      }
-       //
-       //      lua_pop(L, 1);
-       //}
-
-       return max;
-}
-
-
-static bool visited(struct seen **sp, const void *ptr) {
-       struct seen *s = *sp;
-       size_t i;
-
-       if (s->len >= s->size)
-       {
-               i = s->size + 10;
-               s = realloc(*sp, sizeof(struct seen) + sizeof(void *) * i);
-
-               if (!s)
-               {
-                       if (*sp)
-                               free(*sp);
-
-                       *sp = NULL;
-                       return true;
-               }
-
-               s->size = i;
-               *sp = s;
-       }
-
-       for (i = 0; i < s->len; i++)
-               if (s->ptrs[i] == ptr)
-                       return true;
-
-       s->ptrs[s->len++] = ptr;
-       return false;
-}
-
-static struct json_object * _lua_to_json_rec(lua_State *L, int index,
-                                             struct seen **seen)
-{
-       lua_Number nd, ni;
-       struct json_object *obj;
-       const char *key;
-       int i, max;
-
-       if (index < 0)
-               index = lua_gettop(L) + index + 1;
-
-       switch (lua_type(L, index))
-       {
-       case LUA_TTABLE:
-               if (visited(seen, lua_topointer(L, index)))
-                       return NULL;
-
-               max = _lua_test_array(L, index);
-
-               if (max >= 0)
-               {
-                       obj = json_object_new_array();
-
-                       if (!obj)
-                               return NULL;
-
-                       if (!lua_checkstack(L, 1))
-                               return NULL;
-
-                       for (i = 1; i <= max; i++)
-                       {
-                               lua_rawgeti(L, index, i);
-
-                               json_object_array_put_idx(obj, i - 1,
-                                                         _lua_to_json_rec(L, -1, seen));
-
-                               lua_pop(L, 1);
-                       }
-
-                       return obj;
-               }
-
-               obj = json_object_new_object();
-
-               if (!obj)
-                       return NULL;
-
-               if (!lua_checkstack(L, 3))
-                       return NULL;
-
-               lua_pushnil(L);
-
-               while (lua_next(L, index))
-               {
-                       lua_pushvalue(L, -2);
-                       key = lua_tostring(L, -1);
-
-                       if (key)
-                               json_object_object_add(obj, key,
-                                                      _lua_to_json_rec(L, -2, seen));
-
-                       lua_pop(L, 2);
-               }
-
-               return obj;
-
-       case LUA_TNIL:
-               return NULL;
-
-       case LUA_TBOOLEAN:
-               return json_object_new_boolean(lua_toboolean(L, index));
-
-       case LUA_TNUMBER:
-               nd = lua_tonumber(L, index);
-               ni = lua_tointeger(L, index);
-
-               if (nd == ni)
-                       return json_object_new_int(nd);
-
-               return json_object_new_double(nd);
-
-       case LUA_TSTRING:
-               return json_object_new_string(lua_tostring(L, index));
-       }
-
-       return NULL;
-}
-
-static struct json_object * _lua_to_json(lua_State *L, int index)
-{
-       struct seen *s = calloc(sizeof(struct seen) + sizeof(void *) * 10, 1);
-       struct json_object *rv;
-
-       if (!s)
-               return NULL;
-
-       s->size = 10;
-
-       rv = _lua_to_json_rec(L, index, &s);
-
-       free(s);
-
-       return rv;
-}
-
-static int json_parse_set(lua_State *L)
-{
-       struct json_state *s = luaL_checkudata(L, 1, LUCI_JSONC_PARSER);
-
-       s->err = 0;
-       s->obj = _lua_to_json(L, 2);
-
-       return 0;
-}
-
-static int json_parse_sink_closure(lua_State *L)
-{
-       bool finished = lua_toboolean(L, lua_upvalueindex(2));
-       if (lua_isnil(L, 1))
-       {
-               // no more data available
-               if (finished)
-               {
-                       // we were finished parsing
-                       lua_pushboolean(L, true);
-                       return 1;
-               }
-               else
-               {
-                       lua_pushnil(L);
-                       lua_pushstring(L, "Incomplete JSON data");
-                       return 2;
-               }
-       }
-       else
-       {
-               if (finished)
-               {
-                       lua_pushnil(L);
-                       lua_pushstring(L, "Unexpected data after complete JSON object");
-                       return 2;
-               }
-               else
-               {
-                       // luci.jsonc.parser.chunk()
-                       lua_pushcfunction(L, json_parse_chunk);
-                       // parser object from closure
-                       lua_pushvalue(L, lua_upvalueindex(1));
-                       // chunk
-                       lua_pushvalue(L, 1);
-                       lua_call(L, 2, 2);
-
-                       if (lua_isnil(L, -2))
-                       {
-                               // an error occurred, leave (nil, errmsg) on the stack and return it
-                               return 2;
-                       }
-                       else if (lua_toboolean(L, -2))
-                       {
-                               // finished reading, set finished=true and return nil to prevent further input
-                               lua_pop(L, 2);
-                               lua_pushboolean(L, true);
-                               lua_replace(L, lua_upvalueindex(2));
-                               lua_pushnil(L);
-                               return 1;
-                       }
-                       else
-                       {
-                               // not finished reading, return true
-                               lua_pop(L, 2);
-                               lua_pushboolean(L, true);
-                               return 1;
-                       }
-               }
-       }
-}
-
-static int json_parse_sink(lua_State *L)
-{
-       luaL_checkudata(L, 1, LUCI_JSONC_PARSER);
-       lua_pushboolean(L, false);
-       lua_pushcclosure(L, json_parse_sink_closure, 2);
-       return 1;
-}
-
-static int json_tostring(lua_State *L)
-{
-       struct json_state *s = luaL_checkudata(L, 1, LUCI_JSONC_PARSER);
-       bool pretty = lua_toboolean(L, 2);
-       int flags = 0;
-
-       if (pretty)
-               flags |= JSON_C_TO_STRING_PRETTY | JSON_C_TO_STRING_SPACED;
-
-       lua_pushstring(L, json_object_to_json_string_ext(s->obj, flags));
-       return 1;
-}
-
-static int json_gc(lua_State *L)
-{
-       struct json_state *s = luaL_checkudata(L, 1, LUCI_JSONC_PARSER);
-
-       if (s->obj)
-               json_object_put(s->obj);
-
-       if (s->tok)
-               json_tokener_free(s->tok);
-
-       return 0;
-}
-
-
-static const luaL_reg jsonc_methods[] = {
-       { "new",                        json_new          },
-       { "parse",                      json_parse        },
-       { "stringify",          json_stringify    },
-
-       { }
-};
-
-static const luaL_reg jsonc_parser_methods[] = {
-       { "parse",                      json_parse_chunk  },
-       { "get",                        json_parse_get    },
-       { "set",                        json_parse_set    },
-       { "sink",                       json_parse_sink   },
-       { "stringify",          json_tostring     },
-
-       { "__gc",                       json_gc           },
-       { "__tostring",         json_tostring     },
-
-       { }
-};
-
-
-int luaopen_luci_jsonc(lua_State *L)
-{
-       luaL_register(L, LUCI_JSONC, jsonc_methods);
-
-       luaL_newmetatable(L, LUCI_JSONC_PARSER);
-       luaL_register(L, NULL, jsonc_parser_methods);
-       lua_pushvalue(L, -1);
-       lua_setfield(L, -2, "__index");
-       lua_pop(L, 1);
-
-       return 1;
-}
diff --git a/package/luci/libs/luci-lib-jsonc/src/jsonc.luadoc b/package/luci/libs/luci-lib-jsonc/src/jsonc.luadoc
deleted file mode 100644 (file)
index 720b17d..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
---- LuCI JSON parsing and serialization library.
--- The luci.jsonc class is a high level Lua binding to the JSON-C library to
--- allow reading and writing JSON data with minimal overhead.
-module "luci.jsonc"
-
----[[
-Construct a new luci.jsonc.parser instance.
-@class function
-@sort 1
-@name new
-@return A `luci.jsonc.parser` object representing a JSON-C tokener.
-@usage `parser = luci.jsonc.new()`
-]]
-
----[[
-Parse a complete JSON string and convert it into a Lua data structure.
-@class function
-@sort 2
-@name parse
-@param json  A string containing the JSON data to parse, must be either a
-       JSON array or a JSON object.
-@return On success, a table containing the parsed JSON data is returned, on
-       failure the function returns `nil` and a string containing the reason of
-       the parse error.
-@usage `data = luci.jsonc.parse('{ "name": "John", "age": 34 }')
-print(data.name)  -- "John"`
-@see stringify
-]]
-
----[[
-Convert given Lua data into a JSON string.
-
-This function recursively converts the given Lua data into a JSON string,
-ignoring any unsupported data. Lua tables are converted into JSON arrays if they
-only contain integer keys, mixed tables are turned into JSON objects with any
-existing numeric keys converted into strings.
-
-Lua functions, coroutines and userdata objects are ignored and Lua numbers are
-converted to integers if they do not contain fractional values.
-
-@class function
-@sort 3
-@name stringify
-@param data  The Lua data to convert, can be a table, string, boolean or number.
-@param pretty  A boolean value indicating whether the resulting JSON should be
-       pretty printed.
-@return Returns a string containing the JSON representation of the given Lua
-       data.
-@usage `json = luci.jsonc.stringify({ item = true, values = { 1, 2, 3 } })
-print(json)  -- '{"item":true,"values":[1,2,3]}'`
-@see parse
-]]
-
-
---- LuCI JSON parser instance.
--- A JSON parser instance is useful to parse JSON data chunk by chunk, without
--- the need to assemble all data in advance.
--- @cstyle instance
-module "luci.jsonc.parser"
-
----[[
-Parses one chunk of JSON data.
-
-@class function
-@sort 1
-@name parser.parse
-@see parser.get
-@param json  String containing the JSON fragment to parse
-@return <ul>
-       <li>`true` if a complete JSON object has been parsed and no further input is
-           expected.</li>
-       <li>`false` if further input is required</li>
-       <li>`nil` if an error was encountered while parsing the current chunk.
-           In this case a string describing the parse error is returned as second
-           value.</li></ul>
-@usage `parser = luci.jsonc.new()
-
-while true do
-       chunk = ...  -- fetch a cunk of data, e.g. from a socket
-       finish, errmsg = <b>parser.parse(chunk)</b>
-
-       if finish == nil then
-               error("Cannot parse JSON: " .. errmsg)
-       end
-
-       if finish == true then
-               break
-       end
-end`
-]]
-
----[[
-Convert parsed JSON data into Lua table.
-
-@class function
-@sort 2
-@name parser.get
-@see parser.parse
-@return Parsed JSON object converted into a Lua table or `nil` if the parser
-       didn't finish or encountered an error.
-@usage `parser = luci.jsonc.new()
-parser:parse('{ "example": "test" }')
-
-data = parser:get()
-print(data.example)  -- "test"`
-]]
-
----[[
-Put Lua data into the parser.
-
-@class function
-@sort 3
-@name parser.set
-@see parser.stringify
-@param data  Lua data to put into the parser object. The data is converted to an
-       internal JSON representation that can be dumped with `stringify()`.
-       The conversion follows the rules described in `luci.jsonc.stringify`.
-@return Nothing is returned.
-@usage `parser = luci.jsonc.new()
-parser:set({ "some", "data" })`
-]]
-
----[[
-Generate an ltn12-compatible sink.
-
-@class function
-@sort 4
-@name parser.sink
-@return Returns a function that can be used as an ltn12 sink.
-@usage `parser = luci.jsonc.new()
-ltn12.pump.all(ltn12.source.file(io.input()), parser:sink())
-print(parser:get())`
-]]
-
----[[
-Serialize current parser state as JSON.
-
-@class function
-@sort 5
-@name parser.stringify
-@param pretty A boolean value indicating whether the resulting JSON should be pretty printed.
-@return Returns the serialized JSON data of this parser instance.
-@usage `parser = luci.jsonc.new()
-parser:parse('{ "example": "test" }')
-print(parser:serialize())  -- '{"example":"test"}'`
-]]
diff --git a/package/luci/libs/luci-lib-luaneightbl/Makefile b/package/luci/libs/luci-lib-luaneightbl/Makefile
deleted file mode 100644 (file)
index f0185b8..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=neightbl - Lua lib for IPv6 neighbors
-LUCI_DEPENDS:=+liblua
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/libs/luci-lib-luaneightbl/src/Makefile b/package/luci/libs/luci-lib-luaneightbl/src/Makefile
deleted file mode 100644 (file)
index f856d2f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-NEIGHTBL_CFLAGS = -std=gnu99
-NEIGHTBL_LDFLAGS = -llua -lm
-NEIGHTBL_OBJ = neightbl.o
-NEIGHTBL_LIB = neightbl.so
-
-%.o: %.c
-       $(CC) $(CPPFLAGS) $(CFLAGS) $(LUA_CFLAGS) $(NEIGHTBL_CFLAGS) $(FPIC) -c -o $@ $<
-
-compile: $(NEIGHTBL_OBJ)
-       $(CC) $(LDFLAGS) -shared -o $(NEIGHTBL_LIB) $(NEIGHTBL_OBJ) $(NEIGHTBL_LDFLAGS)
-
-install: compile
-       mkdir -p $(DESTDIR)/usr/lib/lua
-       cp $(NEIGHTBL_LIB) $(DESTDIR)/usr/lib/lua/$(NEIGHTBL_LIB)
-
-clean:
-       rm -f *.o *.so
diff --git a/package/luci/libs/luci-lib-luaneightbl/src/neightbl.c b/package/luci/libs/luci-lib-luaneightbl/src/neightbl.c
deleted file mode 100644 (file)
index 987ec5e..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
-License:
-Copyright 2013 Steven Barth <steven@midlink.org>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-#include <stdlib.h>
-#include <stdbool.h>
-#include <lua.h>
-#include <lualib.h>
-#include <lauxlib.h>
-#include <linux/rtnetlink.h>
-#include <sys/socket.h>
-#include <errno.h>
-#include <unistd.h>
-#include <string.h>
-#include <net/if.h>
-#include <arpa/inet.h>
-#include <netinet/ether.h>
-
-char *ether_ntoa_l (const struct ether_addr *addr, char *buf)
-{
-  sprintf (buf, "%02x:%02x:%02x:%02x:%02x:%02x",
-           addr->ether_addr_octet[0], addr->ether_addr_octet[1],
-           addr->ether_addr_octet[2], addr->ether_addr_octet[3],
-           addr->ether_addr_octet[4], addr->ether_addr_octet[5]);
-  return buf;
-}
-
-static int neightbl_get(lua_State *L) {
-       int sock = socket(AF_NETLINK, SOCK_RAW | SOCK_CLOEXEC, NETLINK_ROUTE);
-       struct sockaddr_nl kernel = {AF_NETLINK, 0, 0, 0};
-       if (connect(sock, (struct sockaddr*)&kernel, sizeof(kernel)))
-               goto error;
-
-       const char *ifname = luaL_checkstring(L, 1);
-       int ifindex = if_nametoindex(ifname);
-       if (ifindex <= 0)
-               goto error;
-
-       struct {
-               struct nlmsghdr hdr;
-               struct ndmsg ndm;
-       } req = {
-               {sizeof(req), RTM_GETNEIGH, NLM_F_REQUEST | NLM_F_DUMP, 1, 0},
-               {AF_INET6, 0, 0, ifindex, 0, 0, 0},
-       };
-
-       if (send(sock, &req, sizeof(req), 0) != sizeof(req))
-               goto error;
-
-       lua_newtable(L);
-
-       char buf[8192];
-       struct nlmsghdr *nh = (struct nlmsghdr*)buf;
-       do {
-               ssize_t len = recv(sock, buf, sizeof(buf), 0);
-               if (len < 0) {
-                       lua_pop(L, 1);
-                       goto error;
-               }
-
-
-               for (;NLMSG_OK(nh, (size_t)len) && nh->nlmsg_type == RTM_NEWNEIGH;
-                               nh = NLMSG_NEXT(nh, len)) {
-                       struct ndmsg *ndm = NLMSG_DATA(nh);
-                       if (NLMSG_PAYLOAD(nh, 0) < sizeof(*ndm) || ndm->ndm_ifindex != ifindex)
-                               continue;
-
-                       ssize_t alen = NLMSG_PAYLOAD(nh, sizeof(*ndm));
-                       char buf[INET6_ADDRSTRLEN] = {0}, *mac = NULL, str_buf[ETH_ALEN];
-                       for (struct rtattr *rta = (struct rtattr*)&ndm[1]; RTA_OK(rta, alen);
-                                       rta = RTA_NEXT(rta, alen)) {
-                               if (rta->rta_type == NDA_DST && RTA_PAYLOAD(rta) >= sizeof(struct in6_addr))
-                                       inet_ntop(AF_INET6, RTA_DATA(rta), buf, sizeof(buf));
-                               else if (rta->rta_type == NDA_LLADDR && RTA_PAYLOAD(rta) >= 6)
-                                       mac = ether_ntoa_l(RTA_DATA(rta),str_buf);
-                       }
-
-                       if (mac)
-                               lua_pushstring(L, mac);
-                       else
-                               lua_pushboolean(L, false);
-
-                       lua_setfield(L, -2, buf);
-               }
-       } while (nh->nlmsg_type == RTM_NEWNEIGH);
-
-       close(sock);
-        return 1;
-
-error:
-       close(sock);
-       lua_pushnil(L);
-       lua_pushinteger(L, errno);
-       lua_pushstring(L, strerror(errno));
-       return 3;
-}
-
-
-static const luaL_reg R[] = {
-        {"get", neightbl_get},
-        {NULL, NULL}
-};
-
-
-int luaopen_neightbl(lua_State *l)
-{
-       luaL_register(l, "neightbl", R);
-       return 1;
-}
diff --git a/package/luci/libs/luci-lib-nixio/.gitignore b/package/luci/libs/luci-lib-nixio/.gitignore
deleted file mode 100644 (file)
index a21f2a2..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-src/libaxtls.a
-.depend
-.config.*
-_stage
-conf
-lex.zconf.c
-lkc_defs.h
-mconf
-zconf.tab.h
-zconf.tab.c
-src/nixio.dll
diff --git a/package/luci/libs/luci-lib-nixio/LICENSE b/package/luci/libs/luci-lib-nixio/LICENSE
deleted file mode 100644 (file)
index f49a4e1..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
\ No newline at end of file
diff --git a/package/luci/libs/luci-lib-nixio/Makefile b/package/luci/libs/luci-lib-nixio/Makefile
deleted file mode 100644 (file)
index 4e501b8..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=NIXIO POSIX library
-LUCI_DEPENDS:=+PACKAGE_luci-lib-nixio_openssl:libopenssl +PACKAGE_luci-lib-nixio_cyassl:libcyassl +liblua
-
-PKG_LICENSE:=Apache-2.0
-
-define Package/luci-lib-nixio/config
-       choice
-               prompt "TLS Provider"
-               default PACKAGE_luci-lib-nixio_notls
-
-               config PACKAGE_luci-lib-nixio_notls
-                       bool "Disabled"
-
-               config PACKAGE_luci-lib-nixio_axtls
-                       bool "Builtin (axTLS)"
-
-               config PACKAGE_luci-lib-nixio_cyassl
-                       bool "CyaSSL"
-                       select PACKAGE_libcyassl
-
-               config PACKAGE_luci-lib-nixio_openssl
-                       bool "OpenSSL"
-                       select PACKAGE_libopenssl
-       endchoice
-endef
-
-NIXIO_TLS:=
-
-ifneq ($(CONFIG_PACKAGE_luci-lib-nixio_axtls),)
-  NIXIO_TLS:=axtls
-endif
-
-ifneq ($(CONFIG_PACKAGE_luci-lib-nixio_openssl),)
-  NIXIO_TLS:=openssl
-endif
-
-ifneq ($(CONFIG_PACKAGE_luci-lib-nixio_cyassl),)
-  NIXIO_TLS:=cyassl
-  LUCI_CFLAGS+=-I$(STAGING_DIR)/usr/include/cyassl
-endif
-
-MAKE_VARS += NIXIO_TLS="$(NIXIO_TLS)"
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/libs/luci-lib-nixio/NOTICE b/package/luci/libs/luci-lib-nixio/NOTICE
deleted file mode 100644 (file)
index 96d1192..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-nixio - Linux I/O library for lua
-Copyright 2009 Steven Barth <steven@midlink.org>
-Licensed under the Apache License, Version 2.0.
-
-Contains code from:
-axTLS          - Copyright 2008 Cameron Rich
-
-Thanks for testing, feedback and code snippets:
-John Crispin <blogic@openwrt.org>
-Jo-Philipp Wich <jow@openwrt.org>
\ No newline at end of file
diff --git a/package/luci/libs/luci-lib-nixio/README b/package/luci/libs/luci-lib-nixio/README
deleted file mode 100644 (file)
index ba9b36b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Building:
-       Use GNU Make.
-       make or gmake depending on your system.
-       
-       Special make flags:
-
-       OS              Override Target OS      [Linux|FreeBSD|SunOS|Windows]
-       NIXIO_TLS       TLS-Library             [*openssl|axtls]
-       NIXIO_CROSS_CC  MinGW CC (Windows)      `which i586-mingw32msvc-cc`
-       LUA_CFLAGS      Lua CFLAGS              `pkg-config --cflags lua5.1`
-       LUA_TARGET      Lua compile             target  [*source|strip|compile]
-       LUA_MODULEDIR   Install LUA_PATH        "/usr/share/lua/5.1"
-       LUA_LIBRARYDIR  Install LUA_CPATH       "/usr/lib/lua/5.1"
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/Makefile
deleted file mode 100644 (file)
index 02c33d2..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
--include config/.config
-
-ifneq ($(strip $(HAVE_DOT_CONFIG)),y)
-all: menuconfig
-else
-all: target
-endif
-
-include config/makefile.conf
-
-target : $(STAGE) $(TARGET)
-
-# VERSION has to come from the command line
-RELEASE=axTLS-$(VERSION)
-
-# standard version
-target:
-       $(MAKE) -C crypto
-       $(MAKE) -C ssl
-ifdef CONFIG_AXHTTPD
-       $(MAKE) -C httpd
-endif
-ifdef CONFIG_BINDINGS
-       $(MAKE) -C bindings
-endif
-ifdef CONFIG_SAMPLES
-       $(MAKE) -C samples
-endif
-
-$(STAGE) : ssl/version.h
-       @mkdir -p $(STAGE)
-
-# create a version file with something in it.
-ssl/version.h:
-       @echo "#define AXTLS_VERSION    \"(no version)\"" > ssl/version.h
-
-$(PREFIX) :
-       @mkdir -p $(PREFIX)/lib
-       @mkdir -p $(PREFIX)/bin
-
-release:
-       $(MAKE) -C config/scripts/config clean
-       -$(MAKE) clean
-       -@rm config/*.msi config/*.back.aip config/config.h config/.config*
-       -@rm www/index.20*
-       -@rm -fr $(STAGE)
-       @echo "#define AXTLS_VERSION    \"$(VERSION)\"" > ssl/version.h
-       cd ../; tar cvfz $(RELEASE).tar.gz --wildcards-match-slash --exclude .svn axTLS; cd -;
-
-docs:
-       $(MAKE) -C docsrc doco
-
-# build the Win32 demo release version
-win32_demo:
-       @echo "#define AXTLS_VERSION    \"$(VERSION)\"" > ssl/version.h
-       $(MAKE) win32releaseconf
-
-install: $(PREFIX) all
-       cp --no-dereference $(STAGE)/libax* $(PREFIX)/lib
-       chmod 755 $(PREFIX)/lib/libax* 
-ifdef CONFIG_SAMPLES
-       install -m 755 $(STAGE)/ax* $(PREFIX)/bin 
-endif
-ifdef CONFIG_HTTP_HAS_AUTHORIZATION
-       install -m 755 $(STAGE)/htpasswd $(PREFIX)/bin 
-endif
-ifdef CONFIG_PLATFORM_CYGWIN
-       install -m 755 $(STAGE)/cygaxtls.dll $(PREFIX)/bin 
-endif
-ifdef CONFIG_PERL_BINDINGS 
-       install -m 755 $(STAGE)/axtlsp.pm `perl -e 'use Config; print $$Config{installarchlib};'`
-endif
-       @mkdir -p -m 755 $(PREFIX)/include/axTLS
-       install -m 644 crypto/*.h $(PREFIX)/include/axTLS
-       install -m 644 ssl/*.h $(PREFIX)/include/axTLS
-       -rm $(PREFIX)/include/axTLS/cert.h
-       -rm $(PREFIX)/include/axTLS/private_key.h
-       install -m 644 config/config.h $(PREFIX)/include/axTLS
-
-installclean:
-       -@rm $(PREFIX)/lib/libax* > /dev/null 2>&1
-       -@rm $(PREFIX)/bin/ax* > /dev/null 2>&1
-       -@rm $(PREFIX)/bin/axhttpd* > /dev/null 2>&1
-       -@rm `perl -e 'use Config; print $$Config{installarchlib};'`/axtlsp.pm > /dev/null 2>&1
-
-test:
-       cd $(STAGE); ssltest; ../ssl/test/test_axssl.sh; cd -;
-
-# tidy up things
-clean::
-       @cd crypto; $(MAKE) clean
-       @cd ssl; $(MAKE) clean
-       @cd httpd; $(MAKE) clean
-       @cd samples; $(MAKE) clean
-       @cd docsrc; $(MAKE) clean
-       @cd bindings; $(MAKE) clean
-
-# ---------------------------------------------------------------------------
-# mconf stuff
-# ---------------------------------------------------------------------------
-
-CONFIG_CONFIG_IN = config/Config.in
-CONFIG_DEFCONFIG = config/defconfig
-
-config/scripts/config/conf: config/scripts/config/Makefile
-       $(MAKE) -C config/scripts/config conf
-       -@if [ ! -f config/.config ] ; then \
-               cp $(CONFIG_DEFCONFIG) config/.config; \
-       fi
-
-config/scripts/config/mconf: config/scripts/config/Makefile
-       $(MAKE) -C config/scripts/config ncurses conf mconf
-       -@if [ ! -f config/.config ] ; then \
-               cp $(CONFIG_DEFCONFIG) .config; \
-       fi
-
-cleanconf:
-       $(MAKE) -C config/scripts/config clean
-       @rm -f config/.config
-
-menuconfig: config/scripts/config/mconf
-       @./config/scripts/config/mconf $(CONFIG_CONFIG_IN)
-
-config: config/scripts/config/conf
-       @./config/scripts/config/conf $(CONFIG_CONFIG_IN)
-
-oldconfig: config/scripts/config/conf
-       @./config/scripts/config/conf -o $(CONFIG_CONFIG_IN)
-
-default: config/scripts/config/conf
-       @./config/scripts/config/conf -d $(CONFIG_CONFIG_IN) > /dev/null
-       $(MAKE)
-
-randconfig: config/scripts/config/conf
-       @./config/scripts/config/conf -r $(CONFIG_CONFIG_IN)
-
-allnoconfig: config/scripts/config/conf
-       @./config/scripts/config/conf -n $(CONFIG_CONFIG_IN)
-
-allyesconfig: config/scripts/config/conf
-       @./config/scripts/config/conf -y $(CONFIG_CONFIG_IN)
-
-# The special win32 release configuration
-win32releaseconf: config/scripts/config/conf
-       @./config/scripts/config/conf -D config/win32config $(CONFIG_CONFIG_IN) > /dev/null
-       $(MAKE)
-
-# The special linux release configuration
-linuxconf: config/scripts/config/conf
-       @./config/scripts/config/conf -D config/linuxconfig $(CONFIG_CONFIG_IN) > /dev/null
-       $(MAKE)
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/README b/package/luci/libs/luci-lib-nixio/axTLS/README
deleted file mode 100644 (file)
index c8926d9..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-
-See www/index.html for the README, CHANGELOG, LICENSE and other notes.
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/Config.in b/package/luci/libs/luci-lib-nixio/axTLS/bindings/Config.in
deleted file mode 100644 (file)
index 12a696b..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see scripts/config/Kconfig-language.txt
-#
-menu "Language Bindings"
-
-config CONFIG_BINDINGS
-    bool "Create language bindings"
-    default n
-    help
-        axTLS supports language bindings in C#, VB.NET, Java and Perl.
-
-        Select Y here if you want to build the various language bindings.
-
-config CONFIG_CSHARP_BINDINGS
-    bool "Create C# bindings"
-    default n
-    depends on CONFIG_BINDINGS
-    help
-        Build C# bindings.
-
-        This requires .NET to be installed on Win32 platforms and mono to be
-        installed on all other platforms.
-
-config CONFIG_VBNET_BINDINGS
-    bool "Create VB.NET bindings"
-    default n
-    depends on CONFIG_BINDINGS
-    help
-        Build VB.NET bindings.
-
-        This requires the .NET to be installed and is only built under Win32
-        platforms.
-
-menu ".Net Framework"
-depends on CONFIG_CSHARP_BINDINGS || CONFIG_VBNET_BINDINGS
-config CONFIG_DOT_NET_FRAMEWORK_BASE
-    string "Location of .NET Framework"
-    default "c:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727"
-endmenu
-
-config CONFIG_JAVA_BINDINGS
-    bool "Create Java bindings"
-    default n
-    depends on CONFIG_BINDINGS
-    help
-        Build Java bindings.
-
-        Current Issues (see README): 
-        * Needs Java 1.4 or better.
-        * If building under Win32 it will use the Win32 JDK.
-
-menu "Java Home"
-depends on CONFIG_JAVA_BINDINGS
-config CONFIG_JAVA_HOME
-    string "Location of JDK"
-    default "c:\\Program Files\\Java\\jdk1.5.0_06" if CONFIG_PLATFORM_WIN32 || CONFIG_PLATFORM_CYGWIN
-    default "/usr/local/jdk142" if !CONFIG_PLATFORM_WIN32 && !CONFIG_PLATFORM_CYGWIN
-    depends on CONFIG_JAVA_BINDINGS 
-    help
-        The location of Sun's JDK.
-endmenu
-
-config CONFIG_PERL_BINDINGS
-    bool "Create Perl bindings"
-    default n
-    depends on CONFIG_BINDINGS
-    help
-        Build Perl bindings.
-
-        Current Issues (see README):
-        * 64 bit versions don't work at present.
-        * libperl.so needs to be in the shared library path.
-
-menu "Perl Home"
-depends on CONFIG_PERL_BINDINGS && CONFIG_PLATFORM_WIN32
-config CONFIG_PERL_CORE
-    string "Location of Perl CORE"
-    default "c:\\perl\\lib\\CORE"
-    help:
-        works with ActiveState
-        "http://www.activestate.com/Products/ActivePerl"
-
-config CONFIG_PERL_LIB
-    string "Name of Perl Library"
-    default "perl58.lib"
-endmenu
-
-config CONFIG_LUA_BINDINGS
-    bool "Create Lua bindings"
-    default n
-    depends on CONFIG_BINDINGS && !CONFIG_PLATFORM_WIN32
-    help
-        Build Lua bindings (see www.lua.org).
-
-menu "Lua Home"
-depends on CONFIG_LUA_BINDINGS 
-config CONFIG_LUA_CORE
-    string "Location of Lua CORE"
-    default "/usr/local"
-    help:
-        If the Lua exists on another directory then this needs to be changed
-endmenu
-
-endmenu
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/bindings/Makefile
deleted file mode 100644 (file)
index 7654fbb..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-all:
-
-include ../config/.config
-include ../config/makefile.conf
-
-ifdef CONFIG_CSHARP_BINDINGS
-all: csharp/axInterface.cs
-endif
-
-ifdef CONFIG_VBNET_BINDINGS
-all: vbnet/axInterface.vb
-endif
-
-ifdef CONFIG_JAVA_BINDINGS
-all: java/axtlsj.java
-endif
-
-ifdef CONFIG_PERL_BINDINGS
-all: perl/axTLSp_wrap.c
-endif
-
-ifdef CONFIG_LUA_BINDINGS
-all: lua/axTLSl_wrap.c
-endif
-
-csharp/axInterface.cs: ../ssl/ssl.h
-       @perl ./generate_interface.pl -csharp
-
-vbnet/axInterface.vb: ../ssl/ssl.h
-       @perl ./generate_interface.pl -vbnet
-
-java/axTLSj.i: ../ssl/ssl.h
-       @perl ./generate_SWIG_interface.pl -java
-
-java/axtlsj.java: java/axTLSj.i $(wildcard java/SSL*.java)
-       @cd java; swig -java -package axTLSj axTLSj.i; $(MAKE)
-
-perl/axTLSp.i: ../ssl/ssl.h
-       @perl ./generate_SWIG_interface.pl -perl
-
-perl/axTLSp_wrap.c: perl/axTLSp.i
-       @cd perl; swig -perl5 axTLSp.i; $(MAKE)
-
-lua/axTLSl.i: ../ssl/ssl.h
-       @perl ./generate_SWIG_interface.pl -lua
-
-lua/axTLSl_wrap.c: lua/axTLSl.i
-       @cd lua; swig -lua axTLSl.i; $(MAKE)
-
-clean::
-       $(MAKE) -C csharp clean
-       $(MAKE) -C vbnet clean
-       $(MAKE) -C java clean
-       $(MAKE) -C perl clean
-       $(MAKE) -C lua clean
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/README b/package/luci/libs/luci-lib-nixio/axTLS/bindings/README
deleted file mode 100644 (file)
index 8bc3109..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-===============================================================================
-=                             Language Bindings                               =
-===============================================================================
-
-The tools to generate the various language bindings are done here.
-SWIG 1.3.24 or better is required for creating the Java and Perl bindings.
-
-Perl scripts are used to parse ssl.h and automagically give the appropriate 
-bindings.
-
-At present, the four languages supported are:
-
-* C#
-* VB.NET
-* Java
-* Perl
-
-To generate each binding run the following:
-
-C#:
-> generate_interface.pl -csharp
-
-VB.NET:
-> generate_interface.pl -vbnet
-
-
-Java:
-> generate_SWIG_interface.pl -java
-> cd java; swig -java -package axTLSj -noextern axTLSj.i
-
-Perl:
-> generate_SWIG_interface.pl -perl
-> cd perl; swig -noextern -perl axTLSp.i
-
-Java and Perl both create a library each called libaxtlsj.so and libaxtlsp.so 
-(or axtlsj.dll and atlsp.dll on Win32 platforms).
-
-Note: the "-noextern" is deprecated in swig 1.3.27 and newer. The "-noextern"
-option was required to get Win32 bindings to work (which is why is has probably
-been deprecated).
-
-Each binding (except for Perl) has an extra helper interface to make life 
-easier.
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/csharp/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/bindings/csharp/Makefile
deleted file mode 100644 (file)
index 3414f85..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-include ../../config/.config
-include ../../config/makefile.conf
-
-clean::
-       @rm -f axssl* axInterface.cs
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/csharp/axTLS.cs b/package/luci/libs/luci-lib-nixio/axTLS/bindings/csharp/axTLS.cs
deleted file mode 100644 (file)
index cf64a25..0000000
+++ /dev/null
@@ -1,491 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * A wrapper around the unmanaged interface to give a semi-decent C# API
- */
-
-using System;
-using System.Runtime.InteropServices;
-using System.Net.Sockets;
-
-/**
- * @defgroup csharp_api C# API.
- *
- * Ensure that the appropriate Dispose() methods are called when finished with
- * various objects - otherwise memory leaks will result.
- * @{
- */
-namespace axTLS
-{
-    /**
-     * @class SSL
-     * @ingroup csharp_api 
-     * @brief A representation of an SSL connection.
-     */
-    public class SSL
-    {
-        public IntPtr m_ssl;    /**< A pointer to the real SSL type */
-
-        /**
-         * @brief Store the reference to an SSL context.
-         * @param ip [in] A reference to an SSL object.
-         */
-        public SSL(IntPtr ip)
-        {
-            m_ssl = ip;
-        }
-
-        /**
-         * @brief Free any used resources on this connection. 
-         * 
-         * A "Close Notify" message is sent on this connection (if possible). 
-         * It is up to the application to close the socket.
-         */
-        public void Dispose()
-        {
-            axtls.ssl_free(m_ssl);
-        }
-
-        /**
-         * @brief Return the result of a handshake.
-         * @return SSL_OK if the handshake is complete and ok.
-         * @see ssl.h for the error code list.
-         */
-        public int HandshakeStatus()
-        {
-            return axtls.ssl_handshake_status(m_ssl);
-        }
-
-        /**
-         * @brief Return the SSL cipher id.
-         * @return The cipher id which is one of:
-         * - SSL_AES128_SHA (0x2f)
-         * - SSL_AES256_SHA (0x35)
-         * - SSL_RC4_128_SHA (0x05)
-         * - SSL_RC4_128_MD5 (0x04)
-         */
-        public byte GetCipherId()
-        {
-            return axtls.ssl_get_cipher_id(m_ssl);
-        }
-
-        /**
-         * @brief Get the session id for a handshake. 
-         * 
-         * This will be a 32 byte sequence and is available after the first
-         * handshaking messages are sent.
-         * @return The session id as a 32 byte sequence.
-         * @note A SSLv23 handshake may have only 16 valid bytes.
-         */
-        public byte[] GetSessionId()
-        {
-            IntPtr ptr = axtls.ssl_get_session_id(m_ssl);
-            byte sess_id_size = axtls.ssl_get_session_id_size(m_ssl);
-            byte[] result = new byte[sess_id_size];
-            Marshal.Copy(ptr, result, 0, sess_id_size);
-            return result;
-        }
-
-        /**
-         * @brief Retrieve an X.509 distinguished name component.
-         * 
-         * When a handshake is complete and a certificate has been exchanged, 
-         * then the details of the remote certificate can be retrieved.
-         *
-         * This will usually be used by a client to check that the server's 
-         * common name matches the URL.
-         *
-         * A full handshake needs to occur for this call to work.
-         *
-         * @param component [in] one of:
-         * - SSL_X509_CERT_COMMON_NAME
-         * - SSL_X509_CERT_ORGANIZATION
-         * - SSL_X509_CERT_ORGANIZATIONAL_NAME
-         * - SSL_X509_CA_CERT_COMMON_NAME
-         * - SSL_X509_CA_CERT_ORGANIZATION
-         * - SSL_X509_CA_CERT_ORGANIZATIONAL_NAME
-         * @return The appropriate string (or null if not defined)
-         */
-        public string GetCertificateDN(int component)
-        {
-            return axtls.ssl_get_cert_dn(m_ssl, component);
-        }
-    }
-
-    /**
-     * @class SSLUtil
-     * @ingroup csharp_api 
-     * @brief Some global helper functions.
-     */
-    public class SSLUtil
-    {
-
-        /**
-         * @brief Return the build mode of the axTLS project.
-         * @return The build mode is one of:
-         * - SSL_BUILD_SERVER_ONLY
-         * - SSL_BUILD_ENABLE_VERIFICATION
-         * - SSL_BUILD_ENABLE_CLIENT
-         * - SSL_BUILD_FULL_MODE
-         */
-        public static int BuildMode()
-        {
-            return axtls.ssl_get_config(axtls.SSL_BUILD_MODE);
-        }
-
-        /**
-         * @brief Return the number of chained certificates that the 
-         * client/server supports.
-         * @return The number of supported server certificates.
-         */
-        public static int MaxCerts()
-        {
-            return axtls.ssl_get_config(axtls.SSL_MAX_CERT_CFG_OFFSET);
-        }
-
-        /**
-         * @brief Return the number of CA certificates that the client/server
-         * supports.
-         * @return The number of supported CA certificates.
-         */
-        public static int MaxCACerts()
-        {
-            return axtls.ssl_get_config(axtls.SSL_MAX_CA_CERT_CFG_OFFSET);
-        }
-
-        /**
-         * @brief Indicate if PEM is supported.
-         * @return true if PEM supported.
-         */
-        public static bool HasPEM()
-        {
-            return axtls.ssl_get_config(axtls.SSL_HAS_PEM) > 0 ? true : false;
-        }
-
-        /**
-         * @brief Display the text string of the error.
-         * @param error_code [in] The integer error code.
-         */
-        public static void DisplayError(int error_code)
-        {
-            axtls.ssl_display_error(error_code);
-        }
-
-        /**
-         * @brief Return the version of the axTLS project.
-         */
-        public static string Version()
-        {
-            return axtls.ssl_version();
-        }
-    }
-
-    /**
-     * @class SSLCTX
-     * @ingroup csharp_api 
-     * @brief A base object for SSLServer/SSLClient.
-     */
-    public class SSLCTX
-    {
-        /**
-         * @brief A reference to the real client/server context.
-         */
-        protected IntPtr m_ctx;
-
-        /**
-         * @brief Establish a new client/server context.
-         *
-         * This function is called before any client/server SSL connections are 
-         * made.  If multiple threads are used, then each thread will have its 
-         * own SSLCTX context. Any number of connections may be made with a 
-         * single context. 
-         *
-         * Each new connection will use the this context's private key and 
-         * certificate chain. If a different certificate chain is required, 
-         * then a different context needs to be be used.
-         *
-         * @param options [in]  Any particular options. At present the options
-         * supported are:
-         * - SSL_SERVER_VERIFY_LATER (client only): Don't stop a handshake if 
-         * the server authentication fails. The certificate can be 
-         * authenticated later with a call to VerifyCert().
-         * - SSL_CLIENT_AUTHENTICATION (server only): Enforce client 
-         * authentication i.e. each handshake will include a "certificate 
-         * request" message from the server.
-         * - SSL_DISPLAY_BYTES (full mode build only): Display the byte 
-         * sequences during the handshake.
-         * - SSL_DISPLAY_STATES (full mode build only): Display the state 
-         * changes during the handshake.
-         * - SSL_DISPLAY_CERTS (full mode build only): Display the 
-         * certificates that are passed during a handshake.
-         * - SSL_DISPLAY_RSA (full mode build only): Display the RSA key 
-         * details that are passed during a handshake.
-         * @param num_sessions [in] The number of sessions to be used for 
-         * session caching. If this value is 0, then there is no session 
-         * caching.
-         * @return A client/server context.
-         */
-        protected SSLCTX(uint options, int num_sessions)
-        {
-            m_ctx = axtls.ssl_ctx_new(options, num_sessions);
-        }
-
-        /**
-         * @brief Remove a client/server context.
-         *
-         * Frees any used resources used by this context. Each connection will 
-         * be sent a "Close Notify" alert (if possible).
-         */
-        public void Dispose()
-        {
-            axtls.ssl_ctx_free(m_ctx);
-        }
-
-        /**
-         * @brief Read the SSL data stream.
-         * @param ssl [in] An SSL object reference.
-         * @param in_data [out] After a successful read, the decrypted data 
-         * will be here. It will be null otherwise.
-         * @return The number of decrypted bytes:
-         * - if > 0, then the handshaking is complete and we are returning the 
-         * number of decrypted bytes. 
-         * - SSL_OK if the handshaking stage is successful (but not yet 
-         * complete).  
-         * - < 0 if an error.
-         * @see ssl.h for the error code list.
-         * @note Use in_data before doing any successive ssl calls.
-         */
-        public int Read(SSL ssl, out byte[] in_data)
-        {
-            IntPtr ptr = IntPtr.Zero;
-            int ret = axtls.ssl_read(ssl.m_ssl, ref ptr);
-
-            if (ret > axtls.SSL_OK)
-            {
-                in_data = new byte[ret];
-                Marshal.Copy(ptr, in_data, 0, ret);
-            }
-            else
-            {
-                in_data = null;
-            }
-
-            return ret;
-        }
-
-        /**
-         * @brief Write to the SSL data stream.
-         * @param ssl [in] An SSL obect reference.
-         * @param out_data [in] The data to be written
-         * @return The number of bytes sent, or if < 0 if an error.
-         * @see ssl.h for the error code list.
-         */
-        public int Write(SSL ssl, byte[] out_data)
-        {
-            return axtls.ssl_write(ssl.m_ssl, out_data, out_data.Length);
-        }
-
-        /**
-         * @brief Write to the SSL data stream.
-         * @param ssl [in] An SSL obect reference.
-         * @param out_data [in] The data to be written
-         * @param out_len [in] The number of bytes to be written
-         * @return The number of bytes sent, or if < 0 if an error.
-         * @see ssl.h for the error code list.
-         */
-        public int Write(SSL ssl, byte[] out_data, int out_len)
-        {
-            return axtls.ssl_write(ssl.m_ssl, out_data, out_len);
-        }
-
-        /**
-         * @brief Find an ssl object based on a Socket reference.
-         *
-         * Goes through the list of SSL objects maintained in a client/server 
-         * context to look for a socket match.
-         * @param s [in] A reference to a <A HREF="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsocketssocketclasstopic.asp">Socket</A> object.
-         * @return A reference to the SSL object. Returns null if the object 
-         * could not be found.
-         */
-        public SSL Find(Socket s)
-        {
-            int client_fd = s.Handle.ToInt32();
-            return new SSL(axtls.  ssl_find(m_ctx, client_fd));
-        }
-
-        /**
-         * @brief Authenticate a received certificate.
-         * 
-         * This call is usually made by a client after a handshake is complete 
-         * and the context is in SSL_SERVER_VERIFY_LATER mode.
-         * @param ssl [in] An SSL object reference.
-         * @return SSL_OK if the certificate is verified.
-         */
-        public int VerifyCert(SSL ssl)
-        {
-            return axtls.ssl_verify_cert(ssl.m_ssl);
-        }
-
-        /**
-         * @brief Force the client to perform its handshake again.
-         *
-         * For a client this involves sending another "client hello" message.
-         * For the server is means sending a "hello request" message.
-         *
-         * This is a blocking call on the client (until the handshake 
-         * completes).
-         * @param ssl [in] An SSL object reference.
-         * @return SSL_OK if renegotiation instantiation was ok
-         */
-        public int Renegotiate(SSL ssl)
-        {
-            return axtls.ssl_renegotiate(ssl.m_ssl);
-        }
-
-        /**
-         * @brief Load a file into memory that is in binary DER or ASCII PEM 
-         * format.
-         *
-         * These are temporary objects that are used to load private keys,
-         * certificates etc into memory.
-         * @param obj_type [in] The format of the file. Can be one of:
-         * - SSL_OBJ_X509_CERT (no password required)
-         * - SSL_OBJ_X509_CACERT (no password required)
-         * - SSL_OBJ_RSA_KEY (AES128/AES256 PEM encryption supported)
-         * - SSL_OBJ_P8 (RC4-128 encrypted data supported)
-         * - SSL_OBJ_P12 (RC4-128 encrypted data supported)
-         *
-         * PEM files are automatically detected (if supported).
-         * @param filename [in] The location of a file in DER/PEM format.
-         * @param password [in] The password used. Can be null if not required.
-         * @return SSL_OK if all ok
-         */
-        public int ObjLoad(int obj_type, string filename, string password)
-        {
-            return axtls.ssl_obj_load(m_ctx, obj_type, filename, password);
-        }
-
-        /**
-         * @brief Transfer binary data into the object loader.
-         *
-         * These are temporary objects that are used to load private keys,
-         * certificates etc into memory.
-         * @param obj_type [in] The format of the memory data.
-         * @param data [in] The binary data to be loaded.
-         * @param len [in] The amount of data to be loaded.
-         * @param password [in] The password used. Can be null if not required.
-         * @return SSL_OK if all ok
-         */
-        public int ObjLoad(int obj_type, byte[] data, int len, string password)
-        {
-            return axtls.ssl_obj_memory_load(m_ctx, obj_type, 
-                                            data, len, password);
-        }
-    }
-
-    /**
-     * @class SSLServer
-     * @ingroup csharp_api 
-     * @brief The server context.
-     *
-     * All server connections are started within a server context.
-     */
-    public class SSLServer : SSLCTX
-    {
-        /**
-         * @brief Start a new server context.
-         * 
-         * @see SSLCTX for details.
-         */
-        public SSLServer(uint options, int num_sessions) :
-                            base(options, num_sessions) {}
-
-        /**
-         * @brief Establish a new SSL connection to an SSL client.
-         *
-         * It is up to the application to establish the initial socket 
-         * connection.
-         *
-         * Call Dispose() when the connection is to be removed.
-         * @param s [in] A reference to a <A HREF="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsocketssocketclasstopic.asp">Socket</A> object.
-         * @return An SSL object reference.
-         */
-        public SSL Connect(Socket s)
-        {
-            int client_fd = s.Handle.ToInt32();
-            return new SSL(axtls.ssl_server_new(m_ctx, client_fd));
-        }
-    }
-
-    /**
-     * @class SSLClient
-     * @ingroup csharp_api
-     * @brief The client context.
-     *
-     * All client connections are started within a client context.
-     */
-    public class SSLClient : SSLCTX
-    {
-        /**
-         * @brief Start a new client context.
-         * 
-         * @see SSLCTX for details.
-         */
-        public SSLClient(uint options, int num_sessions) :
-                        base(options, num_sessions) {}
-
-        /**
-         * @brief Establish a new SSL connection to an SSL server.
-         *
-         * It is up to the application to establish the initial socket 
-         * connection.
-         *
-         * This is a blocking call - it will finish when the handshake is 
-         * complete (or has failed).
-         *
-         * Call Dispose() when the connection is to be removed.
-         * @param s [in] A reference to a <A HREF="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsocketssocketclasstopic.asp">Socket</A> object.
-         * @param session_id [in] A 32 byte session id for session resumption. 
-         * This can be null if no session resumption is not required.
-         * @return An SSL object reference. Use SSL.handshakeStatus() to check 
-         * if a handshake succeeded.
-         */
-        public SSL Connect(Socket s, byte[] session_id)
-        {
-            int client_fd = s.Handle.ToInt32();
-            byte sess_id_size = (byte)(session_id != null ? 
-                                session_id.Length : 0);
-            return new SSL(axtls.ssl_client_new(m_ctx, client_fd, session_id,
-                        sess_id_size));
-        }
-    }
-}
-/** @} */
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/generate_SWIG_interface.pl b/package/luci/libs/luci-lib-nixio/axTLS/bindings/generate_SWIG_interface.pl
deleted file mode 100755 (executable)
index 4b25179..0000000
+++ /dev/null
@@ -1,393 +0,0 @@
-#!/usr/bin/perl
-
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-#===============================================================
-# Transforms function signature into SWIG format
-sub transformSignature
-{
-    foreach $item (@_)
-    { 
-        $line =~ s/STDCALL //g;
-        $line =~ s/EXP_FUNC/extern/g;
-
-        # make API Java more 'byte' friendly
-        $line =~ s/uint32_t/int/g;
-        $line =~ s/const uint8_t \* /const unsigned char \* /g;
-        $line =~ s/\(void\)/()/g;
-        if ($ARGV[0] eq "-java")
-        {
-            $line =~ s/.*ssl_read.*//g;
-            $line =~ s/const uint8_t \*(\w+)/const signed char $1\[\]/g;
-            $line =~ s/uint8_t/signed char/g;
-        }
-        elsif ($ARGV[0] eq "-perl")
-        {
-            $line =~ s/const uint8_t \*(\w+)/const unsigned char $1\[\]/g;
-            $line =~ s/uint8_t/unsigned char/g;
-        }
-        else # lua
-        {
-            $line =~ s/const uint8_t \*session_id/const unsigned char session_id\[\]/g;
-            $line =~ s/const uint8_t \*\w+/unsigned char *INPUT/g;
-            $line =~ s/uint8_t/unsigned char/g;
-        }
-    }
-
-    return $line;
-}
-
-# Parse input file
-sub parseFile
-{
-    foreach $line (@_)
-    {
-        next if $line =~ /ssl_x509_create/; # ignore for now
-
-        # test for a #define
-        if (!$skip && $line =~ m/^#define/)
-        {
-            $splitDefine = 1 if $line =~ m/\\$/;
-            print DATA_OUT $line;
-
-            # check line is not split
-            next if $splitDefine == 1;
-        }
-
-        # pick up second line of #define statement
-        if ($splitDefine) 
-        {
-            print DATA_OUT $line;
-
-            # check line is not split
-            $splitDefine = ($line =~ m/\\$/);
-            next;
-        } 
-
-        # test for function declaration
-        if (!$skip && $line =~ /EXP_FUNC/ && $line !~/\/\*/)
-        {
-            $line = transformSignature($line);
-            $splitFunctionDeclaration = $line !~ /;/;
-            print DATA_OUT $line;
-            next;
-        }
-
-        if ($splitFunctionDeclaration) 
-        {
-            $line = transformSignature($line);
-            $splitFunctionDeclaration = $line !~ /;/;
-            print DATA_OUT $line;
-            next;
-        }
-    }
-}
-
-#===============================================================
-
-# Determine which module to build from cammand-line options
-use strict;
-use Getopt::Std;
-
-my $module;
-my $interfaceFile;
-my $data_file;
-my $skip;
-my $splitLine;
-my @raw_data;
-
-if (not defined  $ARGV[0])
-{
-    goto ouch;
-}
-
-if ($ARGV[0] eq "-java")
-{
-    print "Generating Java interface file\n";
-    $module = "axtlsj";
-    $interfaceFile = "java/axTLSj.i";
-}
-elsif ($ARGV[0] eq "-perl")
-{
-    print "Generating Perl interface file\n";
-    $module = "axtlsp";
-    $interfaceFile = "perl/axTLSp.i";
-}
-elsif ($ARGV[0] eq "-lua")
-{
-    print "Generating lua interface file\n";
-    $module = "axtlsl";
-    $interfaceFile = "lua/axTLSl.i";
-}
-else
-{
-ouch:
-    die "Usage: $0 [-java | -perl | -lua]\n";
-}
-
-# Input file required to generate SWIG interface file.
-$data_file = "../ssl/ssl.h";
-
-# Open input files
-open(DATA_IN, $data_file) || die("Could not open file ($data_file)!");
-@raw_data = <DATA_IN>;
-
-# Open output file
-open(DATA_OUT, ">$interfaceFile") || die("Cannot Open File");
-
-#
-# I wish I could say it was easy to generate the Perl/Java/Lua bindings, 
-# but each had their own set of challenges... :-(.
-#
-print DATA_OUT << "END";
-%module $module\n
-
-/* include our own header */
-%inline %{
-#include "ssl.h"
-%}
-
-%include "typemaps.i"
-/* Some SWIG magic to make the API a bit more Java friendly */
-#ifdef SWIGJAVA
-
-%apply long { SSL * };
-%apply long { SSL_CTX * };
-%apply long { SSLObjLoader * };
-
-/* allow "unsigned char []" to become "byte[]" */
-%include "arrays_java.i"
-
-/* convert these pointers to use long */
-%apply signed char[] {unsigned char *};
-%apply signed char[] {signed char *};
-
-/* allow ssl_get_session_id() to return "byte[]" */
-%typemap(out) unsigned char * ssl_get_session_id \"if (result) jresult = SWIG_JavaArrayOutSchar(jenv, result, ssl_get_session_id_size((SSL const *)arg1));\"
-
-/* allow ssl_client_new() to have a null session_id input */
-%typemap(in) const signed char session_id[] (jbyte *jarr) {
-    if (jarg3 == NULL)
-    {
-        jresult = (jint)ssl_client_new(arg1,arg2,NULL,0);
-        return jresult;
-    }
-    
-    if (!SWIG_JavaArrayInSchar(jenv, &jarr, &arg3, jarg3)) return 0;
-}   
-
-/* Lot's of work required for an ssl_read() due to its various custom
- * requirements.
- */
-%native (ssl_read) int ssl_read(SSL *ssl, jobject in_data);
-%{
-JNIEXPORT jint JNICALL Java_axTLSj_axtlsjJNI_ssl_1read(JNIEnv *jenv, jclass jcls, jint jarg1, jobject jarg2) {
-    jint jresult = 0 ;
-    SSL *arg1;
-    unsigned char *arg2;
-    jbyte *jarr;
-    int result;
-    JNIEnv e = *jenv;
-    jclass holder_class;
-    jfieldID fid;
-
-    arg1 = (SSL *)jarg1;
-    result = (int)ssl_read(arg1, &arg2);
-
-    /* find the "m_buf" entry in the SSLReadHolder class */
-    if (!(holder_class = e->GetObjectClass(jenv,jarg2)) ||
-            !(fid = e->GetFieldID(jenv,holder_class, "m_buf", "[B")))
-        return SSL_NOT_OK;
-
-    if (result > SSL_OK)
-    {
-        int i;
-
-        /* create a new byte array to hold the read data */
-        jbyteArray jarray = e->NewByteArray(jenv, result);
-
-        /* copy the bytes across to the java byte array */
-        jarr = e->GetByteArrayElements(jenv, jarray, 0);
-        for (i = 0; i < result; i++)
-            jarr[i] = (jbyte)arg2[i];
-
-        /* clean up and set the new m_buf object */
-        e->ReleaseByteArrayElements(jenv, jarray, jarr, 0);
-        e->SetObjectField(jenv, jarg2, fid, jarray);
-    }
-    else    /* set to null */
-        e->SetObjectField(jenv, jarg2, fid, NULL);
-
-    jresult = (jint)result;
-    return jresult;
-}
-%}
-
-/* Big hack to get hold of a socket's file descriptor */
-%typemap (jtype) long "Object"
-%typemap (jstype) long "Object"
-%native (getFd) int getFd(long sock);
-%{
-JNIEXPORT jint JNICALL Java_axTLSj_axtlsjJNI_getFd(JNIEnv *env, jclass jcls, jobject sock)
-{
-    JNIEnv e = *env;
-    jfieldID fid;
-    jobject impl;
-    jobject fdesc;
-
-    /* get the SocketImpl from the Socket */
-    if (!(jcls = e->GetObjectClass(env,sock)) ||
-            !(fid = e->GetFieldID(env,jcls,"impl","Ljava/net/SocketImpl;")) ||
-            !(impl = e->GetObjectField(env,sock,fid))) return -1;
-
-    /* get the FileDescriptor from the SocketImpl */
-    if (!(jcls = e->GetObjectClass(env,impl)) ||
-            !(fid = e->GetFieldID(env,jcls,"fd","Ljava/io/FileDescriptor;")) ||
-            !(fdesc = e->GetObjectField(env,impl,fid))) return -1;
-
-    /* get the fd from the FileDescriptor */
-    if (!(jcls = e->GetObjectClass(env,fdesc)) ||
-            !(fid = e->GetFieldID(env,jcls,"fd","I"))) return -1;
-
-    /* return the descriptor */
-    return e->GetIntField(env,fdesc,fid);
-} 
-%}
-
-#endif
-
-/* Some SWIG magic to make the API a bit more Perl friendly */
-#ifdef SWIGPERL
-
-/* for ssl_session_id() */
-%typemap(out) const unsigned char * {
-    SV *svs = newSVpv((unsigned char *)\$1, ssl_get_session_id_size((SSL const *)arg1));
-    \$result = newRV(svs);
-    sv_2mortal(\$result);
-    argvi++;
-}
-
-/* for ssl_write() */
-%typemap(in) const unsigned char out_data[] {
-    SV* tempsv;
-    if (!SvROK(\$input))
-        croak("Argument \$argnum is not a reference.");
-    tempsv = SvRV(\$input);
-    if (SvTYPE(tempsv) != SVt_PV)
-        croak("Argument \$argnum is not an string.");
-    \$1 = (unsigned char *)SvPV(tempsv, PL_na);
-}
-
-/* for ssl_read() */
-%typemap(in) unsigned char **in_data (unsigned char *buf) {
-    \$1 = &buf;
-}
-
-%typemap(argout) unsigned char **in_data { 
-    if (result > SSL_OK) {
-        SV *svs = newSVpv(*\$1, result);
-        \$result = newRV(svs);
-        sv_2mortal(\$result);
-        argvi++;
-    }
-}
-
-/* for ssl_client_new() */
-%typemap(in) const unsigned char session_id[] {
-    /* check for a reference */
-    if (SvOK(\$input) && SvROK(\$input)) {
-        SV* tempsv = SvRV(\$input);
-        if (SvTYPE(tempsv) != SVt_PV)
-            croak("Argument \$argnum is not an string.");
-        \$1 = (unsigned char *)SvPV(tempsv, PL_na); 
-    } 
-    else
-        \$1 = NULL;
-}
-
-#endif
-
-/* Some SWIG magic to make the API a bit more Lua friendly */
-#ifdef SWIGLUA
-SWIG_NUMBER_TYPEMAP(unsigned char);
-SWIG_TYPEMAP_NUM_ARR(uchar,unsigned char);
-
-/* for ssl_session_id() */
-%typemap(out) const unsigned char * {
-    int i;
-    lua_newtable(L);
-    for (i = 0; i < ssl_get_session_id_size((SSL const *)arg1); i++){
-        lua_pushnumber(L,(lua_Number)result[i]);
-        lua_rawseti(L,-2,i+1); /* -1 is the number, -2 is the table */
-    }
-    SWIG_arg++;
-}
-
-/* for ssl_read() */
-%typemap(in) unsigned char **in_data (unsigned char *buf) {
-    \$1 = &buf;
-}
-
-%typemap(argout) unsigned char **in_data { 
-    if (result > SSL_OK) {
-               int i;
-               lua_newtable(L);
-               for (i = 0; i < result; i++){
-                       lua_pushnumber(L,(lua_Number)buf2[i]);
-                       lua_rawseti(L,-2,i+1); /* -1 is the number, -2 is the table */
-               }
-        SWIG_arg++;
-    }
-}
-
-/* for ssl_client_new() */
-%typemap(in) const unsigned char session_id[] {
-    if (lua_isnil(L,\$input))
-        \$1 = NULL;
-    else
-        \$1 = SWIG_get_uchar_num_array_fixed(L,\$input, ssl_get_session_id((SSL const *)\$1));
-}
-
-#endif
-
-END
-
-# Initialise loop variables
-$skip = 1;
-$splitLine = 0;
-
-parseFile(@raw_data);
-
-close(DATA_IN);
-close(DATA_OUT);
-
-#===============================================================
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/generate_interface.pl b/package/luci/libs/luci-lib-nixio/axTLS/bindings/generate_interface.pl
deleted file mode 100755 (executable)
index c24bff9..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-#!/usr/bin/perl -w
-
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-#===============================================================
-# This application transforms ssl.h into interfaces that can be used by 
-# other language bindings. It is "SWIG"-like in nature in that various 
-# files are generated based on the axTLS API.
-#
-# The file produced is axInterface.? (depending on the file extension).
-#
-#===============================================================
-
-use strict;
-
-my $CSHARP = 0;
-my $VBNET = 1;
-
-my $binding;
-my $skip = 0;
-my $signature_ret_type;
-
-# Transforms function signature into an Interface format
-sub transformSignature
-{
-    my $item;
-    my ($line) = @_;
-
-    foreach $item ($line)
-    { 
-        # our very basic preprocessor
-        if ($binding == $CSHARP)
-        {
-            $line =~ s/STDCALL //;
-            $line =~ s/EXP_FUNC/        [DllImport ("axtls")]\n        public static extern/;
-            $line =~ s/uint32_t/uint/g;
-            $line =~ s/uint8_t \*\*/ref IntPtr /g;
-            $line =~ s/const uint8_t \* /IntPtr /g;
-            $line =~ s/const uint8_t \*/byte[] /g;    # note: subtle diff 
-            $line =~ s/uint8_t \* ?/byte[] /g;
-            $line =~ s/uint8_t ?/byte /g;
-            $line =~ s/const char \* ?/string /g;
-            $line =~ s/const SSL_CTX \* ?/IntPtr /g;
-            $line =~ s/SSL_CTX \* ?/IntPtr /g;
-            $line =~ s/SSLObjLoader \* ?/IntPtr /g;
-            $line =~ s/const SSL \* ?/IntPtr /g;
-            $line =~ s/SSL \* ?/IntPtr /g;
-            $line =~ s/\(void\)/()/g;
-        }
-        elsif ($binding == $VBNET)
-        {
-            if ($line =~ /EXP_FUNC/)
-            {
-                # Procedure or function?
-                my $invariant = $line =~ /void /;
-
-                my $proc = $invariant ? "Sub" : "Function";
-                ($signature_ret_type) = $line =~ /EXP_FUNC (.*) STDCALL/;
-                $line =~ s/EXP_FUNC .* STDCALL /        <DllImport("axtls")> Public Shared $proc _\n            /;
-
-                $signature_ret_type =~ s/const uint8_t \*/As IntPtr/;
-                $signature_ret_type =~ s/const char \*/As String/;
-                $signature_ret_type =~ s/SSL_CTX \*/As IntPtr/;
-                $signature_ret_type =~ s/SSLObjLoader \*/As IntPtr/;
-                $signature_ret_type =~ s/SSL \*/As IntPtr/;
-                $signature_ret_type =~ s/uint8_t/As Byte/;
-                $signature_ret_type =~ s/int/As Integer/;
-                $signature_ret_type =~ s/void//;
-                $signature_ret_type .= "\n        End $proc\n\n";
-            }
-
-            $line =~ s/uint32_t (\w+)/ByVal $1 As Integer/g;
-            $line =~ s/int (\w+)/ByVal $1 As Integer/g;
-            $line =~ s/uint8_t \*\* ?(\w+)/ByRef $1 As IntPtr/g;
-            $line =~ s/const uint8_t \* ?(\w+)/ByVal $1() As Byte/g;
-            $line =~ s/uint8_t \* ?(\w+)/ByVal $1() As Byte/g;
-            $line =~ s/uint8_t ?(\w+)/ByVal $1 As Byte/g;
-            $line =~ s/const char \* ?(\w+)/ByVal $1 As String/g;
-            $line =~ s/const SSL_CTX \* ?(\w+)/ByVal $1 As IntPtr/g;
-            $line =~ s/SSL_CTX \* ?(\w+)/ByVal $1 As IntPtr/g;
-            $line =~ s/SSLObjLoader \* ?(\w+)/ByVal $1 As IntPtr/g;
-            $line =~ s/const SSL \* ?(\w+)/ByVal $1 As IntPtr/g;
-            $line =~ s/SSL \* ?(\w+)/ByVal $1 As IntPtr/g;
-            $line =~ s/void \* ?(\w+)/Byval $1 As IntPtr/g;
-            $line =~ s/\(void\)/()/g;
-            $line =~ s/void//g;
-            $line =~ s/;\n/ $signature_ret_type;/;
-        }
-    }
-
-    return $line;
-}
-
-# Parse input file
-sub parseFile
-{
-    my (@file) = @_;
-    my $line;
-    my $splitDefine = 0;
-    my $splitFunctionDeclaration;
-    my $vb_hack = " ";
-    my $vb_line_hack = 0;
-
-    $skip = 0;
-
-    foreach $line (@file)
-    {
-        next if $line =~ /sl_x509_create/;  # ignore for now
-
-        # test for a #define
-        if (!$skip && $line =~ m/^#define/)
-        {
-            $splitDefine = 1 if $line =~ m/\\$/;
-
-            if ($binding == $VBNET)
-            {
-                $line =~ s/\|/Or/g;
-                $line =~ s/ 0x/ &H/;
-            }
-
-            my ($name, $value) = $line =~ /#define (\w+) +([^\\]*)[\\]?\n/;
-
-            if (defined $name && defined $value)
-            {
-                # C# constant translation
-                if ($binding == $CSHARP)
-                {
-                    $line = "        public const int $name = $value";
-                }
-                # VB.NET constant translation
-                elsif ($binding == $VBNET)
-                {
-                    $line = "        Public Const $name As Integer = $value";
-                }
-            }
-
-            next if $line =~ /#define/;  # ignore any other defines
-               
-            print DATA_OUT $line;
-
-            # check line is not split
-            next if $splitDefine == 1;
-            print DATA_OUT ";" if $binding == $CSHARP;
-            print DATA_OUT "\n";
-        }
-
-        # pick up second line of #define statement
-        if ($splitDefine) 
-        {
-            if ($line !~ /\\$/)
-            {
-                $line =~ s/$/;/ if $binding == $CSHARP;        # add the ";"
-            }
-
-            $line =~ s/ ?\| ?/ Or /g 
-                                if ($binding == $VBNET);
-
-            # check line is not split
-            $splitDefine = ($line =~ m/\\$/);
-
-            # ignore trailing "\"
-            $line =~ s/\\$// if $binding == $CSHARP;
-            $line =~ s/\\$/_/ if $binding == $VBNET;
-            print DATA_OUT $line;
-            next;
-        } 
-
-        # test for function declaration
-        if (!$skip && $line =~ /EXP_FUNC/ && $line !~ /\/\*/)
-        {
-            $line = transformSignature($line);
-            $splitFunctionDeclaration = $line !~ /;/;
-            $line =~ s/;// if ($binding == $VBNET);
-            $line =~ s/\n$/ _\n/ if ($binding == $VBNET) && 
-                                                $splitFunctionDeclaration;
-            print DATA_OUT $line;
-            next;
-        }
-
-        if ($splitFunctionDeclaration) 
-        {
-            $line = transformSignature($line);
-            $splitFunctionDeclaration = $line !~ /;/;
-            $line =~ s/;// if ($binding == $VBNET);
-            $line =~ s/\n/ _\n/ if ($binding == $VBNET) && 
-                                                $splitFunctionDeclaration == 1;
-            print DATA_OUT $line;
-            next;
-        }
-    }
-}
-
-#===============================================================
-
-# Determine which module to build from command-line options
-use strict;
-use Getopt::Std;
-
-my $binding_prefix;
-my $binding_suffix;
-my $data_file;
-my @raw_data;
-
-if (not defined  $ARGV[0])
-{
-    goto ouch;
-}
-
-if ($ARGV[0] eq "-csharp")
-{
-    print "Generating C# interface file\n";
-    $binding_prefix = "csharp";
-    $binding_suffix = "cs";
-    $binding = $CSHARP;
-}
-elsif ($ARGV[0] eq "-vbnet")
-{
-    print "Generating VB.NET interface file\n";
-    $binding_prefix = "vbnet";
-    $binding_suffix = "vb";
-    $binding = $VBNET;
-}
-else
-{
-ouch:
-    die "Usage: $0 [-csharp | -vbnet]\n";
-}
-
-my $interfaceFile = "$binding_prefix/axInterface.$binding_suffix";
-
-# Input file required to generate interface file.
-$data_file = "../ssl/ssl.h";
-
-# Open input files
-open(DATA_IN, $data_file) || die("Could not open file ($data_file)!");
-@raw_data = <DATA_IN>;
-
-
-# Open output file
-if ($binding == $CSHARP || $binding == $VBNET)
-{
-    open(DATA_OUT, ">$interfaceFile") || die("Cannot Open File");
-}
-
-# SPEC interface file header
-if ($binding == $CSHARP)
-{
-    # generate the C#/C interface file
-    print DATA_OUT << "END";
-// The C# to C interface definition file for the axTLS project
-// Do not modify - this file is generated
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace axTLS
-{
-    public class axtls
-    {
-END
-}
-elsif ($binding == $VBNET)
-{
-    # generate the VB.NET/C interface file
-    print DATA_OUT << "END";
-' The VB.NET to C interface definition file for the axTLS project
-' Do not modify - this file is generated
-
-Imports System
-Imports System.Runtime.InteropServices
-
-Namespace axTLSvb
-    Public Class axtls
-END
-}
-
-parseFile(@raw_data);
-
-# finish up
-if ($binding == $CSHARP)
-{
-    print DATA_OUT "    };\n";
-    print DATA_OUT "};\n";
-}
-elsif ($binding == $VBNET)
-{
-    print DATA_OUT "    End Class\nEnd Namespace\n";
-}
-
-close(DATA_IN);
-close(DATA_OUT);
-
-#===============================================================
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/Makefile
deleted file mode 100644 (file)
index 8df1d0a..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-AXTLS_HOME=../..
-
-include $(AXTLS_HOME)/config/.config
-include $(AXTLS_HOME)/config/makefile.conf
-include $(AXTLS_HOME)/config/makefile.java.conf
-
-all: lib jar
-
-JAR=$(AXTLS_HOME)/$(STAGE)/axtls.jar
-
-ifdef CONFIG_PLATFORM_WIN32
-TARGET=$(AXTLS_HOME)/$(STAGE)/axtlsj.dll
-else
-TARGET=$(AXTLS_HOME)/$(STAGE)/libaxtlsj.so
-endif
-
-lib: $(TARGET)
-axTLSj_wrap.o : axTLSj_wrap.c
-
-JAVA_FILES= \
-       axtlsjJNI.java \
-       axtlsjConstants.java \
-       axtlsj.java \
-       SSLReadHolder.java \
-       SSL.java \
-       SSLUtil.java \
-       SSLCTX.java \
-       SSLServer.java \
-       SSLClient.java
-
-OBJ=axTLSj_wrap.o
-
-JAVA_CLASSES:=$(JAVA_FILES:%.java=classes/axTLSj/%.class)
-
-ifdef CONFIG_PLATFORM_WIN32
-LDFLAGS += axtls.lib /libpath:"$(AXTLS_HOME)/$(STAGE)"
-
-include $(AXTLS_HOME)/config/makefile.post
-
-$(TARGET) : $(OBJ)
-       $(LD) $(LDFLAGS) $(LDSHARED) /out:$@ $(OBJ)
-else    # Not Win32
-
-$(TARGET) : $(OBJ)
-       $(LD) $(LDFLAGS) -L $(AXTLS_HOME)/$(STAGE) $(LDSHARED) -o $@ $(OBJ) -laxtls 
-endif
-
-jar: $(OBJ) $(JAR)
-
-# if we are doing the samples then defer creating the jar until then
-$(JAR): $(JAVA_CLASSES)
-ifndef CONFIG_JAVA_SAMPLES
-       jar cvf $@ -C classes axTLSj
-else
-       @if [ ! -f $(JAR) ]; then touch $(JAR); fi
-endif
-
-classes/axTLSj/%.class : %.java
-       javac -d classes -classpath classes $^
-
-clean::
-       @rm -f $(JAR) $(TARGET) SWIG* axtls* *.i *.c 
-       @rm -fr classes/*
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSL.java b/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSL.java
deleted file mode 100644 (file)
index b53a6da..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * A wrapper around the unmanaged interface to give a semi-decent Java API
- */
-
-package axTLSj;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * @defgroup java_api Java API.
- *
- * Ensure that the appropriate dispose() methods are called when finished with
- * various objects - otherwise memory leaks will result.
- */
-
-/**
- * @class SSL
- * @ingroup java_api 
- * @brief A representation of an SSL connection.
- *
- */
-public class SSL
-{
-    public int m_ssl;    /**< A pointer to the real SSL type */
-
-    /**
-     * @brief Store the reference to an SSL context.
-     * @param ip [in] A reference to an SSL object.
-     */
-    public SSL(int ip)
-    {
-        m_ssl = ip;
-    }
-
-    /**
-     * @brief Free any used resources on this connection. 
-     * 
-     * A "Close Notify" message is sent on this connection (if possible). It 
-     * is up to the application to close the socket.
-     */
-    public void dispose()
-    {
-        axtlsj.ssl_free(m_ssl);
-    }
-
-    /**
-     * @brief Return the result of a handshake.
-     * @return SSL_OK if the handshake is complete and ok.
-     * @see ssl.h for the error code list.
-     */
-    public int handshakeStatus()
-    {
-        return axtlsj.ssl_handshake_status(m_ssl);
-    }
-
-    /**
-     * @brief Return the SSL cipher id.
-     * @return The cipher id which is one of:
-     * - SSL_AES128_SHA (0x2f)
-     * - SSL_AES256_SHA (0x35)
-     * - SSL_RC4_128_SHA (0x05)
-     * - SSL_RC4_128_MD5 (0x04)
-     */
-    public byte getCipherId()
-    {
-        return axtlsj.ssl_get_cipher_id(m_ssl);
-    }
-
-    /**
-     * @brief Get the session id for a handshake. 
-     * 
-     * This will be a 32 byte sequence and is available after the first
-     * handshaking messages are sent.
-     * @return The session id as a 32 byte sequence.
-     * @note A SSLv23 handshake may have only 16 valid bytes.
-     */
-    public byte[] getSessionId()
-    {
-        return axtlsj.ssl_get_session_id(m_ssl);
-    }
-
-    /**
-     * @brief Retrieve an X.509 distinguished name component.
-     * 
-     * When a handshake is complete and a certificate has been exchanged, 
-     * then the details of the remote certificate can be retrieved.
-     *
-     * This will usually be used by a client to check that the server's common 
-     * name matches the URL.
-     *
-     * A full handshake needs to occur for this call to work.
-     *
-     * @param component [in] one of:
-     * - SSL_X509_CERT_COMMON_NAME
-     * - SSL_X509_CERT_ORGANIZATION
-     * - SSL_X509_CERT_ORGANIZATIONAL_NAME
-     * - SSL_X509_CA_CERT_COMMON_NAME
-     * - SSL_X509_CA_CERT_ORGANIZATION
-     * - SSL_X509_CA_CERT_ORGANIZATIONAL_NAME
-     * @return The appropriate string (or null if not defined)
-     */
-    public String getCertificateDN(int component)
-    {
-        return axtlsj.ssl_get_cert_dn(m_ssl, component);
-    }
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLCTX.java b/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLCTX.java
deleted file mode 100644 (file)
index 1cd3e03..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * A wrapper around the unmanaged interface to give a semi-decent Java API
- */
-
-package axTLSj;
-
-import java.net.*;
-
-/**
- * @class SSLCTX
- * @ingroup java_api 
- * @brief A base object for SSLServer/SSLClient.
- */
-public class SSLCTX
-{
-    /**
-     * A reference to the real client/server context.
-     */
-    protected int m_ctx;
-
-    /**
-     * @brief Establish a new client/server context.
-     *
-     * This function is called before any client/server SSL connections are 
-     * made.  If multiple threads are used, then each thread will have its 
-     * own SSLCTX context. Any number of connections may be made with a single 
-     * context. 
-     *
-     * Each new connection will use the this context's private key and 
-     * certificate chain. If a different certificate chain is required, then a 
-     * different context needs to be be used.
-     *
-     * @param options [in]  Any particular options. At present the options
-     * supported are:
-     * - SSL_SERVER_VERIFY_LATER (client only): Don't stop a handshake if the 
-     * server authentication fails. The certificate can be authenticated later 
-     * with a call to verifyCert().
-     * - SSL_CLIENT_AUTHENTICATION (server only): Enforce client authentication
-     * i.e. each handshake will include a "certificate request" message from 
-     * the server.
-     * - SSL_DISPLAY_BYTES (full mode build only): Display the byte sequences
-     * during the handshake.
-     * - SSL_DISPLAY_STATES (full mode build only): Display the state changes
-     * during the handshake.
-     * - SSL_DISPLAY_CERTS (full mode build only): Display the certificates that
-     * are passed during a handshake.
-     * - SSL_DISPLAY_RSA (full mode build only): Display the RSA key details 
-     * that are passed during a handshake.
-     *
-     * @param num_sessions [in] The number of sessions to be used for session
-     * caching. If this value is 0, then there is no session caching.
-     * 
-     * If this option is null, then the default internal private key/
-     * certificate pair is used (if CONFIG_SSL_USE_DEFAULT_KEY is set). 
-     * 
-     * The resources used by this object are automatically freed.  
-     * @return A client/server context.
-     */
-    protected SSLCTX(int options, int num_sessions)
-    {
-        m_ctx = axtlsj.ssl_ctx_new(options, num_sessions);
-    }
-
-    /**
-     * @brief Remove a client/server context.
-     *
-     * Frees any used resources used by this context. Each connection will be 
-     * sent a "Close Notify" alert (if possible).
-     */
-    public void dispose()
-    {
-        axtlsj.ssl_ctx_free(m_ctx);
-    }
-
-    /**
-     * @brief Read the SSL data stream.
-     * @param ssl [in] An SSL object reference.
-     * @param rh [out] After a successful read, the decrypted data can be 
-     * retrieved with rh.getData(). It will be null otherwise.
-     * @return The number of decrypted bytes:
-     * - if > 0, then the handshaking is complete and we are returning the 
-     * number of decrypted bytes. 
-     * - SSL_OK if the handshaking stage is successful (but not yet complete).  
-     * - < 0 if an error.
-     * @see ssl.h for the error code list.
-     * @note Use rh before doing any successive ssl calls.
-     */
-    public int read(SSL ssl, SSLReadHolder rh)
-    {
-        return axtlsj.ssl_read(ssl.m_ssl, rh);
-    }
-
-    /**
-     * @brief Write to the SSL data stream.
-     * @param ssl [in] An SSL obect reference.
-     * @param out_data [in] The data to be written
-     * @return The number of bytes sent, or if < 0 if an error.
-     * @see ssl.h for the error code list.
-     */
-    public int write(SSL ssl, byte[] out_data)
-    {
-        return axtlsj.ssl_write(ssl.m_ssl, out_data, out_data.length);
-    }
-
-    /**
-     * @brief Write to the SSL data stream.
-     * @param ssl [in] An SSL obect reference.
-     * @param out_data [in] The data to be written
-     * @param out_len [in] The number of bytes to be written
-     * @return The number of bytes sent, or if < 0 if an error.
-     * @see ssl.h for the error code list.
-     */
-    public int write(SSL ssl, byte[] out_data, int out_len)
-    {
-        return axtlsj.ssl_write(ssl.m_ssl, out_data, out_len);
-    }
-
-    /**
-     * @brief Find an ssl object based on a Socket reference.
-     *
-     * Goes through the list of SSL objects maintained in a client/server 
-     * context to look for a socket match.
-     * @param s [in] A reference to a <A HREF="http://java.sun.com/j2se/1.4.2/docs/api">Socket</A> object.
-     * @return A reference to the SSL object. Returns null if the object 
-     * could not be found.
-     */
-    public SSL find(Socket s)
-    {
-        int client_fd = axtlsj.getFd(s);
-        return new SSL(axtlsj.ssl_find(m_ctx, client_fd));
-    }
-
-    /**
-     * @brief Authenticate a received certificate.
-     * 
-     * This call is usually made by a client after a handshake is complete 
-     * and the context is in SSL_SERVER_VERIFY_LATER mode.
-     * @param ssl [in] An SSL object reference.
-     * @return SSL_OK if the certificate is verified.
-     */
-    public int verifyCert(SSL ssl)
-    {
-        return axtlsj.ssl_verify_cert(ssl.m_ssl);
-    }
-
-    /**
-     * @brief Force the client to perform its handshake again.
-     *
-     * For a client this involves sending another "client hello" message.
-     * For the server is means sending a "hello request" message.
-     *
-     * This is a blocking call on the client (until the handshake completes).
-     * @param ssl [in] An SSL object reference.
-     * @return SSL_OK if renegotiation instantiation was ok
-     */
-    public int renegotiate(SSL ssl)
-    {
-        return axtlsj.ssl_renegotiate(ssl.m_ssl);
-    }
-
-    /**
-     * @brief Load a file into memory that is in binary DER or ASCII PEM format.
-     *
-     * These are temporary objects that are used to load private keys,
-     * certificates etc into memory.
-     * @param obj_type [in] The format of the file. Can be one of:
-     * - SSL_OBJ_X509_CERT (no password required)
-     * - SSL_OBJ_X509_CACERT (no password required)
-     * - SSL_OBJ_RSA_KEY (AES128/AES256 PEM encryption supported)
-     * - SSL_OBJ_P8 (RC4-128 encrypted data supported)
-     * - SSL_OBJ_P12 (RC4-128 encrypted data supported)
-     *
-     * PEM files are automatically detected (if supported).
-     * @param filename [in] The location of a file in DER/PEM format.
-     * @param password [in] The password used. Can be null if not required.
-     * @return SSL_OK if all ok
-     */
-    public int objLoad(int obj_type, String filename, String password)
-    {
-        return axtlsj.ssl_obj_load(m_ctx, obj_type, filename, password);
-    }
-
-    /**
-     * @brief Transfer binary data into the object loader.
-     *
-     * These are temporary objects that are used to load private keys,
-     * certificates etc into memory.
-     * @param obj_type [in] The format of the memory data.
-     * @param data [in] The binary data to be loaded.
-     * @param len [in] The amount of data to be loaded.
-     * @param password [in] The password used. Can be null if not required.
-     * @return SSL_OK if all ok
-     */
-
-    public int objLoad(int obj_type, byte[] data, int len, String password)
-    {
-        return axtlsj.ssl_obj_memory_load(m_ctx, obj_type, data, len, password);
-    }
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLClient.java b/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLClient.java
deleted file mode 100644 (file)
index f65fe9c..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * A wrapper around the unmanaged interface to give a semi-decent Java API
- */
-
-package axTLSj;
-
-import java.net.*;
-
-/**
- * @class SSLClient
- * @ingroup java_api 
- * @brief The client context.
- *
- * All client connections are started within a client context.
- */
-public class SSLClient extends SSLCTX
-{
-    /**
-     * @brief Start a new client context.
-     * 
-     * @see SSLCTX for details.
-     */
-    public SSLClient(int options, int num_sessions)
-    {
-        super(options, num_sessions);
-    }
-
-    /**
-     * @brief Establish a new SSL connection to an SSL server.
-     *
-     * It is up to the application to establish the initial socket connection.
-     *
-     * This is a blocking call - it will finish when the handshake is 
-     * complete (or has failed).
-     *
-     * Call dispose() when the connection is to be removed.
-     * @param s [in] A reference to a <A HREF="http://java.sun.com/j2se/1.4.2/docs/api">Socket</A> object.
-     * @param session_id [in] A 32 byte session id for session resumption. This 
-     * can be null if no session resumption is not required.
-     * @return An SSL object reference. Use SSL.handshakeStatus() to check 
-     * if a handshake succeeded.
-     */
-    public SSL connect(Socket s, byte[] session_id)
-    {
-        int client_fd = axtlsj.getFd(s);
-        byte sess_id_size = (byte)(session_id != null ? 
-                                session_id.length : 0);
-        return new SSL(axtlsj.ssl_client_new(m_ctx, client_fd, session_id,
-                        sess_id_size));
-    }
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLReadHolder.java b/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLReadHolder.java
deleted file mode 100644 (file)
index 91fd76b..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * A wrapper around the unmanaged interface to give a semi-decent Java API
- */
-
-package axTLSj;
-
-/**
- * @class SSLReadHolder
- * @ingroup java_api 
- * @brief A holder for data read in an SSL read.
- */
-public class SSLReadHolder
-{
-    /**
-     * @brief Contruct a new read holder object.
-     */
-    public SSLReadHolder()
-    {
-        m_buf = null;
-    }
-
-    /**
-     * @brief Retrieve the reference to the read data.
-     */
-    public byte[] getData()
-    {
-        return m_buf;
-    }
-
-    private byte[] m_buf;
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLServer.java b/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLServer.java
deleted file mode 100644 (file)
index 514ccb0..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * A wrapper around the unmanaged interface to give a semi-decent Java API
- */
-
-package axTLSj;
-
-import java.net.*;
-
-/**
- * @class SSLServer
- * @ingroup java_api 
- * @brief The server context.
- *
- * All server connections are started within a server context.
- */
-public class SSLServer extends SSLCTX
-{
-    /**
-     * @brief Start a new server context.
-     * 
-     * @see SSLCTX for details.
-     */
-    public SSLServer(int options, int num_sessions)
-    {
-        super(options, num_sessions);
-    }
-
-    /**
-     * @brief Establish a new SSL connection to an SSL client.
-     *
-     * It is up to the application to establish the initial socket connection.
-     *
-     * Call dispose() when the connection is to be removed.
-     * @param s [in] A reference to a <A HREF="http://java.sun.com/j2se/1.4.2/docs/api">Socket</A> object.
-     * @return An SSL object reference.
-     */
-    public SSL connect(Socket s)
-    {
-        int client_fd = axtlsj.getFd(s);
-        return new SSL(axtlsj.ssl_server_new(m_ctx, client_fd));
-    }
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLUtil.java b/package/luci/libs/luci-lib-nixio/axTLS/bindings/java/SSLUtil.java
deleted file mode 100644 (file)
index 3d53de5..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * A wrapper around the unmanaged interface to give a semi-decent Java API
- */
-
-package axTLSj;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * @class SSLUtil
- * @ingroup java_api 
- * @brief Some global helper functions.
- *
- */
-public class SSLUtil
-{
-    /**
-     * @brief Load up the ddl/shared library 
-     */
-    static
-    {
-        System.loadLibrary("axtlsj");
-    }
-
-    /**
-     * @brief Return the build mode of the axTLS project.
-     * @return The build mode is one of:
-     * - SSL_BUILD_SERVER_ONLY
-     * - SSL_BUILD_ENABLE_VERIFICATION
-     * - SSL_BUILD_ENABLE_CLIENT
-     * - SSL_BUILD_FULL_MODE
-     */
-    public static int buildMode()
-    {
-        return axtlsj.ssl_get_config(axtlsj.SSL_BUILD_MODE);
-    }
-
-    /**
-     * @brief Return the number of chained certificates that the client/server 
-     * supports.
-     * @return The number of supported client/server certificates.
-     */
-    public static int maxCerts()
-    {
-        return axtlsj.ssl_get_config(axtlsj.SSL_MAX_CERT_CFG_OFFSET);
-    }
-
-    /**
-     * @brief Return the number of CA certificates that the client/server
-     * supports.
-     * @return The number of supported CA certificates.
-     */
-    public static int maxCACerts()
-    {
-        return axtlsj.ssl_get_config(axtlsj.SSL_MAX_CA_CERT_CFG_OFFSET);
-    }
-
-    /**
-     * @brief Indicate if PEM is supported.
-     * @return true if PEM supported.
-     */
-    public static boolean hasPEM()
-    {
-        return axtlsj.ssl_get_config(axtlsj.SSL_HAS_PEM) > 0 ? true : false;
-    }
-
-    /**
-     * @brief Display the text string of the error.
-     * @param error_code [in] The integer error code.
-     * @see ssl.h for the error code list.
-     */
-    public static void displayError(int error_code)
-    {
-        axtlsj.ssl_display_error(error_code);
-    }
-
-    /**
-     * @brief Return the version of the axTLS project.
-     */
-    public static String version()
-    {
-        return axtlsj.ssl_version();
-    }
-}
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/lua/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/bindings/lua/Makefile
deleted file mode 100644 (file)
index daacf92..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-AXTLS_HOME=../..
-
-include $(AXTLS_HOME)/config/.config
-include $(AXTLS_HOME)/config/makefile.conf
-
-all: lib
-
-
-ifdef CONFIG_PLATFORM_WIN32
-TARGET=$(AXTLS_HOME)/$(STAGE)/axtlsl.dll
-else
-TARGET=$(CONFIG_LUA_CORE)/lib/lua/5.1/axtlsl.so
-endif
-
-ifneq ($(MAKECMDGOALS), clean)
-
-lib: $(TARGET)
-OBJ:=axTLSl_wrap.o
-include $(AXTLS_HOME)/config/makefile.post
-
-# there are a few static functions that aren't used
-CFLAGS += -funit-at-a-time
-
-$(TARGET) : $(OBJ)
-       $(LD) $(LDFLAGS) $(LDSHARED) -o $@ $^ -L$(AXTLS_HOME)/$(STAGE) -L$(CONFIG_LUA_CORE)/lib -laxtls -llua
-
-CFLAGS += -I $(CONFIG_LUA_CORE)/include
-else
-CFLAGS += /I"`cygpath -w $(CONFIG_LUA_CORE)/include`"
-LDFLAGS += axtls.lib /libpath:"$(AXTLS_HOME)/$(STAGE)"
-
-$(TARGET) : $(OBJ)
-       $(LD) $(LDFLAGS) $(LDSHARED) /out:$@ $(OBJ)
-endif # WIN32
-
-clean::
-       @rm -f $(TARGET) *.i axTLSl* .depend
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/perl/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/bindings/perl/Makefile
deleted file mode 100644 (file)
index 92fd3c5..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-AXTLS_HOME=../..
-
-include $(AXTLS_HOME)/config/.config
-include $(AXTLS_HOME)/config/makefile.conf
-
-all: lib
-
-ifdef CONFIG_PLATFORM_WIN32
-TARGET=$(AXTLS_HOME)/$(STAGE)/axtlsp.dll
-else
-TARGET=$(AXTLS_HOME)/$(STAGE)/libaxtlsp.so
-endif
-
-ifneq ($(MAKECMDGOALS), clean)
-
-ifdef CONFIG_PLATFORM_WIN32
-PERL5_CORE:=$(shell cygpath -w "$(CONFIG_PERL_CORE)")
-else
-PERL5_CORE= $(shell perl -e 'use Config; print $$Config{archlib};')/CORE
-endif
-
-all: test_perl
-
-test_perl:
-       @if ! [ -d "$(PERL5_CORE)" ]; then \
-               echo "*** Error: Perl not installed at $(CONFIG_PERL_CORE) - go to " \
-        "http://www.cpan.org/authors/id/G/GR/GRAHAMC/SiePerl-5.8.0-bin-1.0-Win32.INSTALL.exe" && exit 1; \
-       fi
-
-endif
-
-lib: $(TARGET)
-OBJ:=axTLSp_wrap.o
-include $(AXTLS_HOME)/config/makefile.post
-
-ifndef CONFIG_PLATFORM_WIN32        # Linux/Unix/Cygwin
-
-#
-# Could have used libperl.a, but it increases the library to over 1MB, so just
-# use libperl.so. But this needs to be in the shared library path for things to
-# work.
-#
-$(TARGET) : $(OBJ)
-       $(LD) $(LDFLAGS) -L$(AXTLS_HOME)/$(STAGE) -L$(PERL5_CORE) $(LDSHARED) -o $@ $(OBJ) -laxtls -lperl
-ifdef CONFIG_PLATFORM_CYGWIN
-       cd $(AXTLS_HOME)/$(STAGE); ln -sf $(notdir $@) axtlsp.dll
-endif
-       @install axtlsp.pm $(AXTLS_HOME)/$(STAGE)
-
-CFLAGS += -D_GNU_SOURCE -I$(PERL5_CORE)
-else
-CFLAGS += /I"$(PERL5_CORE)"
-LDFLAGS += $(CONFIG_PERL_LIB) /libpath:"$(PERL5_CORE)" axtls.lib /libpath:"$(AXTLS_HOME)/$(STAGE)"
-
-$(TARGET) : $(OBJ)
-       $(LD) $(LDFLAGS) $(LDSHARED) /out:$@ $(OBJ)
-       install axtlsp.pm $(AXTLS_HOME)/$(STAGE)
-endif # WIN32
-
-clean::
-       @rm -f $(TARGET) axtls* *.i axTLSp* *.c .depend $(AXTLS_HOME)/$(STAGE)/axtlsp.pm
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/vbnet/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/bindings/vbnet/Makefile
deleted file mode 100644 (file)
index 7da60d0..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-include ../../config/.config
-include ../../config/makefile.conf
-
-clean::
-       @rm -f axssl* axInterface.vb
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/bindings/vbnet/axTLSvb.vb b/package/luci/libs/luci-lib-nixio/axTLS/bindings/vbnet/axTLSvb.vb
deleted file mode 100644 (file)
index 9388273..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-'
-' Copyright (c) 2007, Cameron Rich
-'
-' All rights reserved.
-'
-' Redistribution and use in source and binary forms, with or without
-' modification, are permitted provided that the following conditions are met:
-'
-' * Redistributions of source code must retain the above copyright notice,
-'   this list of conditions and the following disclaimer.
-' * Redistributions in binary form must reproduce the above copyright
-'   notice, this list of conditions and the following disclaimer in the
-'   documentation and/or other materials provided with the distribution.
-' * Neither the name of the axTLS project nor the names of its
-'   contributors may be used to endorse or promote products derived
-'   from this software without specific prior written permission.
-'
-' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-' "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-' LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-' A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-' CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-' SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-' TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-' DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-' OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-' NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-' THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-'
-
-'
-' A wrapper around the unmanaged Integererface to give a semi-decent VB.NET API
-'
-
-Imports System
-Imports System.Runtime.InteropServices
-Imports System.Net.Sockets
-Imports axTLSvb
-
-Namespace axTLSvb
-    Public Class SSL
-        Public m_ssl As IntPtr
-
-        Public Sub New(ByRef ip As IntPtr)
-            m_ssl = ip
-        End Sub
-
-        Public Sub Dispose()
-            axtls.ssl_free(m_ssl)
-        End Sub
-
-        Public Function HandshakeStatus() As Integer
-            Return axtls.ssl_handshake_status(m_ssl)
-        End Function
-
-        Public Function GetCipherId() As Byte
-            Return axtls.ssl_get_cipher_id(m_ssl)
-        End Function
-
-        Public Function GetSessionId() As Byte()
-            Dim ptr As IntPtr = axtls.ssl_get_session_id(m_ssl)
-            Dim sess_id_size As Integer = axtls.ssl_get_session_id_size(m_ssl)
-            Dim result(sess_id_size-1) As Byte
-            Marshal.Copy(ptr, result, 0, sess_id_size)
-            Return result
-        End Function
-
-        Public Function GetCertificateDN(component As Integer) As String
-            Return axtls.ssl_get_cert_dn(m_ssl, component)
-        End Function
-    End Class
-
-    Public Class SSLUtil
-        Private dummy As Integer    ' need something here
-
-        Public Shared Function BuildMode() As Integer
-            Return axtls.ssl_get_config(axtls.SSL_BUILD_MODE)
-        End Function
-
-        Public Shared Function MaxCerts() As Integer
-            Return axtls.ssl_get_config(axtls.SSL_MAX_CERT_CFG_OFFSET)
-        End Function
-
-        Public Shared Function MaxCACerts() As Integer
-            Return axtls.ssl_get_config(axtls.SSL_MAX_CA_CERT_CFG_OFFSET)
-        End Function
-
-        Public Shared Function HasPEM() As Boolean
-            If axtls.ssl_get_config(axtls.SSL_HAS_PEM) > 0 Then
-                Return True
-            Else
-                Return False
-            End If
-        End Function
-        
-        Public Shared Sub DisplayError(ByVal error_code As Integer)
-            axtls.ssl_display_error(error_code)
-        End Sub
-
-        Public Shared Function Version() As String
-            Return axtls.ssl_version()
-        End Function
-    End Class
-
-    Public Class SSLCTX
-        Protected m_ctx As IntPtr
-
-        Protected Sub New(ByVal options As Integer, _
-                ByVal num_sessions As Integer)
-            m_ctx = axtls.ssl_ctx_new(options, num_sessions)
-        End Sub
-
-        Public Sub Dispose()
-            axtls.ssl_ctx_free(m_ctx)
-        End Sub
-
-        Public Function Read(ByVal ssl As SSL, ByRef in_data As Byte()) As Integer
-            Dim ptr As IntPtr = IntPtr.Zero
-            Dim ret as Integer = axtls.ssl_read(ssl.m_ssl, ptr)
-
-            If ret > axtls.SSL_OK Then
-                ReDim in_data(ret)
-                Marshal.Copy(ptr, in_data, 0, ret)
-            Else
-                in_data = Nothing
-            End If
-
-            Return ret
-        End Function
-
-        Public Function Write(ByVal ssl As SSL, _
-                ByVal data As Byte(), len As Integer) As Integer
-            Return axtls.ssl_write(ssl.m_ssl, data, len)
-        End Function
-
-        Public Function Find(ByVal s As Socket) As SSL
-            Dim client_fd As Integer = s.Handle.ToInt32()
-            Return New SSL(axtls.ssl_find(m_ctx, client_fd))
-        End Function
-
-        Public Function VerifyCert(ByVal ssl As SSL) As Integer
-            Return axtls.ssl_verify_cert(ssl.m_ssl)
-        End Function
-
-        Public Function Renegotiate(ByVal ssl As SSL) As Integer
-            Return axtls.ssl_renegotiate(ssl.m_ssl)
-        End Function
-
-        Public Function ObjLoad(ByVal obj_type As Integer, _
-                ByVal filename As String, _
-                password As String) As Integer
-            Return axtls.ssl_obj_load(m_ctx, obj_type, filename, password)
-        End Function
-
-        Public Function ObjLoad(ByVal obj_type As Integer, _
-                ByVal data As Byte(), ByVal len As Integer, _
-                password As String) As Integer
-            Return axtls.ssl_obj_memory_load( _
-                    m_ctx, obj_type, data, len, password)
-        End Function
-    End Class
-
-    Public Class SSLServer 
-            Inherits SSLCTX
-
-        Public Sub New(ByVal options As Integer, _
-                ByVal num_sessions As Integer)
-            MyBase.New(options, num_sessions)
-        End Sub
-
-        Public Function Connect(ByVal s As Socket) As SSL
-            Dim client_fd As Integer = s.Handle.ToInt32()
-            Return New SSL(axtls.ssl_server_new(m_ctx, client_fd))
-        End Function
-    End Class
-
-    Public Class SSLClient 
-            Inherits SSLCTX
-
-        Public Sub New(ByVal options As Integer, _
-                ByVal num_sessions As Integer)
-            MyBase.New(options, num_sessions)
-        End Sub
-
-        Public Function Connect(ByVal s As Socket, _
-                                ByVal session_id As Byte()) As SSL
-            Dim client_fd As Integer = s.Handle.ToInt32()
-            Dim sess_id_size As Byte
-            If session_id is Nothing Then
-                sess_id_size = 0
-            Else
-                sess_id_size = session_id.Length
-            End If
-
-            Return New SSL(axtls.ssl_client_new(m_ctx, client_fd, session_id, _
-                       sess_id_size))
-        End Function
-
-    End Class
-End Namespace
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/.config b/package/luci/libs/luci-lib-nixio/axTLS/config/.config
deleted file mode 100644 (file)
index 46cd061..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-HAVE_DOT_CONFIG=y
-CONFIG_PLATFORM_LINUX=y
-# CONFIG_PLATFORM_CYGWIN is not set
-# CONFIG_PLATFORM_WIN32 is not set
-
-#
-# General Configuration
-#
-PREFIX="/usr"
-# CONFIG_DEBUG is not set
-CONFIG_STRIP_UNWANTED_SECTIONS=y
-# CONFIG_VISUAL_STUDIO_7_0 is not set
-# CONFIG_VISUAL_STUDIO_8_0 is not set
-CONFIG_VISUAL_STUDIO_7_0_BASE=""
-CONFIG_VISUAL_STUDIO_8_0_BASE=""
-CONFIG_EXTRA_CFLAGS_OPTIONS="-fpic"
-CONFIG_EXTRA_LDFLAGS_OPTIONS=""
-
-#
-# SSL Library
-#
-# CONFIG_SSL_SERVER_ONLY is not set
-# CONFIG_SSL_CERT_VERIFICATION is not set
-# CONFIG_SSL_ENABLE_CLIENT is not set
-CONFIG_SSL_FULL_MODE=y
-# CONFIG_SSL_SKELETON_MODE is not set
-# CONFIG_SSL_PROT_LOW is not set
-CONFIG_SSL_PROT_MEDIUM=y
-# CONFIG_SSL_PROT_HIGH is not set
-# CONFIG_SSL_USE_DEFAULT_KEY is not set
-CONFIG_SSL_PRIVATE_KEY_LOCATION="/etc/nixio/rsa_main.der"
-CONFIG_SSL_PRIVATE_KEY_PASSWORD=""
-CONFIG_SSL_X509_CERT_LOCATION=""
-# CONFIG_SSL_GENERATE_X509_CERT is not set
-CONFIG_SSL_X509_COMMON_NAME=""
-CONFIG_SSL_X509_ORGANIZATION_NAME=""
-CONFIG_SSL_X509_ORGANIZATION_UNIT_NAME=""
-# CONFIG_SSL_ENABLE_V23_HANDSHAKE is not set
-# CONFIG_SSL_HAS_PEM is not set
-# CONFIG_SSL_USE_PKCS12 is not set
-CONFIG_SSL_EXPIRY_TIME=24
-CONFIG_X509_MAX_CA_CERTS=4
-CONFIG_SSL_MAX_CERTS=2
-CONFIG_SSL_CTX_MUTEXING=y
-CONFIG_USE_DEV_URANDOM=y
-# CONFIG_WIN32_USE_CRYPTO_LIB is not set
-# CONFIG_OPENSSL_COMPATIBLE is not set
-# CONFIG_PERFORMANCE_TESTING is not set
-# CONFIG_SSL_TEST is not set
-# CONFIG_AXHTTPD is not set
-# CONFIG_HTTP_STATIC_BUILD is not set
-CONFIG_HTTP_PORT=0
-CONFIG_HTTP_HTTPS_PORT=0
-CONFIG_HTTP_SESSION_CACHE_SIZE=0
-CONFIG_HTTP_WEBROOT=""
-CONFIG_HTTP_TIMEOUT=0
-# CONFIG_HTTP_HAS_CGI is not set
-CONFIG_HTTP_CGI_EXTENSIONS=""
-# CONFIG_HTTP_ENABLE_LUA is not set
-CONFIG_HTTP_LUA_PREFIX=""
-CONFIG_HTTP_LUA_CGI_LAUNCHER=""
-# CONFIG_HTTP_BUILD_LUA is not set
-# CONFIG_HTTP_DIRECTORIES is not set
-# CONFIG_HTTP_HAS_AUTHORIZATION is not set
-# CONFIG_HTTP_HAS_IPV6 is not set
-# CONFIG_HTTP_ENABLE_DIFFERENT_USER is not set
-CONFIG_HTTP_USER=""
-# CONFIG_HTTP_VERBOSE is not set
-# CONFIG_HTTP_IS_DAEMON is not set
-
-#
-# Language Bindings
-#
-# CONFIG_BINDINGS is not set
-# CONFIG_CSHARP_BINDINGS is not set
-# CONFIG_VBNET_BINDINGS is not set
-CONFIG_DOT_NET_FRAMEWORK_BASE=""
-# CONFIG_JAVA_BINDINGS is not set
-CONFIG_JAVA_HOME=""
-# CONFIG_PERL_BINDINGS is not set
-CONFIG_PERL_CORE=""
-CONFIG_PERL_LIB=""
-# CONFIG_LUA_BINDINGS is not set
-CONFIG_LUA_CORE=""
-
-#
-# Samples
-#
-# CONFIG_SAMPLES is not set
-# CONFIG_C_SAMPLES is not set
-# CONFIG_CSHARP_SAMPLES is not set
-# CONFIG_VBNET_SAMPLES is not set
-# CONFIG_JAVA_SAMPLES is not set
-# CONFIG_PERL_SAMPLES is not set
-# CONFIG_LUA_SAMPLES is not set
-
-#
-# BigInt Options
-#
-# CONFIG_BIGINT_CLASSICAL is not set
-# CONFIG_BIGINT_MONTGOMERY is not set
-CONFIG_BIGINT_BARRETT=y
-CONFIG_BIGINT_CRT=y
-# CONFIG_BIGINT_KARATSUBA is not set
-MUL_KARATSUBA_THRESH=0
-SQU_KARATSUBA_THRESH=0
-CONFIG_BIGINT_SLIDING_WINDOW=y
-CONFIG_BIGINT_SQUARE=y
-# CONFIG_BIGINT_CHECK_ON is not set
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/Config.in b/package/luci/libs/luci-lib-nixio/axTLS/config/Config.in
deleted file mode 100644 (file)
index dc40756..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see scripts/config/Kconfig-language.txt
-#
-
-mainmenu "axTLS Configuration"
-
-config HAVE_DOT_CONFIG
-    bool
-    default y
-
-choice 
-    prompt "Platform"
-    default CONFIG_PLATFORM_LINUX
-
-config CONFIG_PLATFORM_LINUX
-    bool "Linux"
-
-config CONFIG_PLATFORM_CYGWIN
-    bool "Cygwin"
-
-config CONFIG_PLATFORM_WIN32
-    bool "Win32"
-
-endchoice 
-
-menu "General Configuration"
-
-config PREFIX
-    string "axTLS installation prefix"
-    depends on !CONFIG_PLATFORM_WIN32
-    default "/usr/local"
-    help
-      Define your directory to install axTLS files/subdirs in.
-
-config CONFIG_DEBUG
-    bool "Build axTLS with Debugging symbols"
-    default n
-    help
-      Say Y here if you wish to compile axTLS with debugging symbols.
-      This will allow you to use a debugger to examine axTLS internals.  
-      This increases the size of the binary considerably and should only be 
-      used when doing development.
-      If you are doing development and want to debug axTLS, answer Y.
-
-      Most people should answer N.
-
-config CONFIG_STRIP_UNWANTED_SECTIONS
-    depends on !CONFIG_PLATFORM_WIN32 && !CONFIG_DEBUG
-    bool "Strip unwanted sections from elf binaries"
-    default y
-    help
-        Strip unwanted sections from the resulting binaries
-
-menu "Microsoft Compiler Options"
-depends on CONFIG_PLATFORM_WIN32
-
-choice 
-    prompt "Compiler"
-    depends on CONFIG_PLATFORM_WIN32
-    default CONFIG_VISUAL_STUDIO_7_0
-
-config CONFIG_VISUAL_STUDIO_7_0
-    bool "Visual Studio 7.0 (2003)"
-    help 
-        Use Microsoft's Visual Studio 2003 platform.
-
-config CONFIG_VISUAL_STUDIO_8_0
-    bool "Visual Studio 8.0 (2005)"
-    help 
-        Use Microsoft's Visual Studio 2005 platform.
-
-endchoice
-
-config CONFIG_VISUAL_STUDIO_7_0_BASE
-    string "Base"
-    depends on CONFIG_VISUAL_STUDIO_7_0
-    default "c:\\Program Files\\Microsoft Visual Studio .NET 2003"
-
-config CONFIG_VISUAL_STUDIO_8_0_BASE
-    string "Base"
-    depends on CONFIG_VISUAL_STUDIO_8_0
-    default "c:\\Program Files\\Microsoft Visual Studio 8"
-
-endmenu
-
-config CONFIG_EXTRA_CFLAGS_OPTIONS
-    string "Any extra CFLAGS options for the compiler?"
-    help
-        Do you want to pass any extra CFLAGS options to the compiler as  
-        you build axTLS? If so, this is the option for you...  For
-        example, if you want to add some simple compiler switches (like
-        -march=i686), or check for warnings using -Werror, just those 
-        options here.
-
-config CONFIG_EXTRA_LDFLAGS_OPTIONS
-    string "Any extra LDFLAGS options for the compiler?"
-    help
-        Do you want to pass any extra LDFLAGS options to the compiler?
-
-endmenu
-
-source ssl/Config.in
-config CONFIG_AXHTTPD
-    bool "Enable HTTP/HTTPS Web Server"
-    default y
-    help
-        Build the AXHTTPD web server
-
-source httpd/Config.in
-source bindings/Config.in
-source samples/Config.in
-source ssl/BigIntConfig.in
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/JMeter.jmx b/package/luci/libs/luci-lib-nixio/axTLS/config/JMeter.jmx
deleted file mode 100755 (executable)
index f62c03f..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-<jmeterTestPlan version="1.2" properties="1.8">
-  <hashTree>
-    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="axhttpd Test Plan" enabled="true">
-      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
-        <collectionProp name="Arguments.arguments"/>
-      </elementProp>
-      <stringProp name="TestPlan.user_define_classpath"></stringProp>
-      <boolProp name="TestPlan.serialize_threadgroups">true</boolProp>
-      <boolProp name="TestPlan.functional_mode">false</boolProp>
-      <stringProp name="TestPlan.comments"></stringProp>
-    </TestPlan>
-    <hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Test 1" enabled="true">
-        <longProp name="ThreadGroup.start_time">1152004173000</longProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.num_threads">16</stringProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
-          <stringProp name="LoopController.loops">10</stringProp>
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-        </elementProp>
-        <longProp name="ThreadGroup.end_time">1152004173000</longProp>
-        <stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">0</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Normal" enabled="true">
-          <stringProp name="HTTPSampler.path">/index.html</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <stringProp name="HTTPSampler.protocol"></stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <stringProp name="HTTPSampler.port">80</stringProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
-            <collectionProp name="Arguments.arguments"/>
-          </elementProp>
-          <stringProp name="HTTPSampler.mimetype"></stringProp>
-          <stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
-          <stringProp name="HTTPSampler.monitor">false</stringProp>
-          <stringProp name="HTTPSampler.domain">127.0.0.1</stringProp>
-          <stringProp name="HTTPSampler.FILE_NAME"></stringProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-        </HTTPSampler>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Test 2" enabled="true">
-        <longProp name="ThreadGroup.start_time">1152004173000</longProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.num_threads">16</stringProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
-          <stringProp name="LoopController.loops">10</stringProp>
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-        </elementProp>
-        <longProp name="ThreadGroup.end_time">1152004173000</longProp>
-        <stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">0</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="RC4" enabled="true">
-          <stringProp name="HTTPSampler.path">/index.html</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <stringProp name="HTTPSampler.protocol">HTTPS</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <stringProp name="HTTPSampler.port">443</stringProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
-            <collectionProp name="Arguments.arguments"/>
-          </elementProp>
-          <stringProp name="HTTPSampler.mimetype"></stringProp>
-          <stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
-          <stringProp name="HTTPSampler.monitor">false</stringProp>
-          <stringProp name="HTTPSampler.domain">127.0.0.1</stringProp>
-          <stringProp name="HTTPSampler.FILE_NAME"></stringProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-        </HTTPSampler>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Test 3" enabled="true">
-        <longProp name="ThreadGroup.start_time">1152004173000</longProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.num_threads">16</stringProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
-          <stringProp name="LoopController.loops">10</stringProp>
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-        </elementProp>
-        <longProp name="ThreadGroup.end_time">1152004173000</longProp>
-        <stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">0</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="AES128" enabled="true">
-          <stringProp name="HTTPSampler.path">/index.html</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <stringProp name="HTTPSampler.protocol">HTTPS</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <stringProp name="HTTPSampler.port">2443</stringProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
-            <collectionProp name="Arguments.arguments"/>
-          </elementProp>
-          <stringProp name="HTTPSampler.mimetype"></stringProp>
-          <stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
-          <stringProp name="HTTPSampler.monitor">false</stringProp>
-          <stringProp name="HTTPSampler.domain">127.0.0.1</stringProp>
-          <stringProp name="HTTPSampler.FILE_NAME"></stringProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-        </HTTPSampler>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Test 4" enabled="true">
-        <longProp name="ThreadGroup.start_time">1152004173000</longProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.num_threads">16</stringProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
-          <stringProp name="LoopController.loops">10</stringProp>
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-        </elementProp>
-        <longProp name="ThreadGroup.end_time">1152004173000</longProp>
-        <stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">0</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="AES256" enabled="true">
-          <stringProp name="HTTPSampler.path">/index.html</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <stringProp name="HTTPSampler.protocol">HTTPS</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <stringProp name="HTTPSampler.port">3443</stringProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
-            <collectionProp name="Arguments.arguments"/>
-          </elementProp>
-          <stringProp name="HTTPSampler.mimetype"></stringProp>
-          <stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
-          <stringProp name="HTTPSampler.monitor">false</stringProp>
-          <stringProp name="HTTPSampler.domain">127.0.0.1</stringProp>
-          <stringProp name="HTTPSampler.FILE_NAME"></stringProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-        </HTTPSampler>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Test 5" enabled="true">
-        <longProp name="ThreadGroup.start_time">1152004173000</longProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.num_threads">16</stringProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
-          <stringProp name="LoopController.loops">10</stringProp>
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-        </elementProp>
-        <longProp name="ThreadGroup.end_time">1152004173000</longProp>
-        <stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">0</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Skeleton (RC4)" enabled="true">
-          <stringProp name="HTTPSampler.path">/index.html</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <stringProp name="HTTPSampler.protocol">HTTPS</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <stringProp name="HTTPSampler.port">1443</stringProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
-            <collectionProp name="Arguments.arguments"/>
-          </elementProp>
-          <stringProp name="HTTPSampler.mimetype"></stringProp>
-          <stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
-          <stringProp name="HTTPSampler.monitor">false</stringProp>
-          <stringProp name="HTTPSampler.domain">127.0.0.1</stringProp>
-          <stringProp name="HTTPSampler.FILE_NAME"></stringProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-        </HTTPSampler>
-        <hashTree/>
-      </hashTree>
-      <ResultCollector guiclass="StatGraphVisualizer" testclass="ResultCollector" testname="Aggregate Graph" enabled="true">
-        <objProp>
-          <value class="SampleSaveConfiguration">
-            <time>true</time>
-            <latency>true</latency>
-            <timestamp>true</timestamp>
-            <success>true</success>
-            <label>true</label>
-            <code>true</code>
-            <message>true</message>
-            <threadName>true</threadName>
-            <dataType>true</dataType>
-            <encoding>false</encoding>
-            <assertions>true</assertions>
-            <subresults>true</subresults>
-            <responseData>false</responseData>
-            <samplerData>false</samplerData>
-            <xml>false</xml>
-            <fieldNames>false</fieldNames>
-            <responseHeaders>false</responseHeaders>
-            <requestHeaders>false</requestHeaders>
-            <responseDataOnError>false</responseDataOnError>
-            <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
-            <assertionsResultsToSave>0</assertionsResultsToSave>
-          </value>
-          <name>saveConfig</name>
-        </objProp>
-        <stringProp name="filename"></stringProp>
-        <boolProp name="ResultCollector.error_logging">false</boolProp>
-      </ResultCollector>
-      <hashTree/>
-      <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="false">
-        <objProp>
-          <value class="SampleSaveConfiguration">
-            <time>true</time>
-            <latency>true</latency>
-            <timestamp>true</timestamp>
-            <success>true</success>
-            <label>true</label>
-            <code>true</code>
-            <message>true</message>
-            <threadName>true</threadName>
-            <dataType>true</dataType>
-            <encoding>false</encoding>
-            <assertions>true</assertions>
-            <subresults>true</subresults>
-            <responseData>false</responseData>
-            <samplerData>false</samplerData>
-            <xml>false</xml>
-            <fieldNames>false</fieldNames>
-            <responseHeaders>false</responseHeaders>
-            <requestHeaders>false</requestHeaders>
-            <responseDataOnError>false</responseDataOnError>
-            <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
-            <assertionsResultsToSave>0</assertionsResultsToSave>
-          </value>
-          <name>saveConfig</name>
-        </objProp>
-        <stringProp name="filename"></stringProp>
-        <boolProp name="ResultCollector.error_logging">false</boolProp>
-      </ResultCollector>
-      <hashTree/>
-    </hashTree>
-  </hashTree>
-</jmeterTestPlan>
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/Rules.mak b/package/luci/libs/luci-lib-nixio/axTLS/config/Rules.mak
deleted file mode 100644 (file)
index c0308da..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-# Rules.make for busybox
-#
-# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
-#
-# Licensed under GPLv2, see the file LICENSE in this tarball for details.
-#
-
-# Pull in the user's busybox configuration
-ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
--include $(top_builddir)/.config
-endif
-
-#--------------------------------------------------------
-PROG      := busybox
-MAJOR_VERSION   :=1
-MINOR_VERSION   :=1
-SUBLEVEL_VERSION:=0
-EXTRAVERSION    :=
-VERSION   :=$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL_VERSION)$(EXTRAVERSION)
-BUILDTIME := $(shell TZ=UTC date -u "+%Y.%m.%d-%H:%M%z")
-
-
-#--------------------------------------------------------
-# With a modern GNU make(1) (highly recommended, that's what all the
-# developers use), all of the following configuration values can be
-# overridden at the command line.  For example:
-#   make CROSS=powerpc-linux- top_srcdir="$HOME/busybox" PREFIX=/mnt/app
-#--------------------------------------------------------
-
-# If you are running a cross compiler, you will want to set 'CROSS'
-# to something more interesting...  Target architecture is determined
-# by asking the CC compiler what arch it compiles things for, so unless
-# your compiler is broken, you should not need to specify TARGET_ARCH
-CROSS           =$(subst ",, $(strip $(CROSS_COMPILER_PREFIX)))
-CC             = $(CROSS)gcc
-AR             = $(CROSS)ar
-AS             = $(CROSS)as
-LD             = $(CROSS)ld
-NM             = $(CROSS)nm
-STRIP          = $(CROSS)strip
-CPP            = $(CC) -E
-# MAKEFILES      = $(top_builddir)/.config
-RM             = rm
-RM_F           = $(RM) -f
-LN             = ln
-LN_S           = $(LN) -s
-MKDIR          = mkdir
-MKDIR_P        = $(MKDIR) -p
-MV             = mv
-CP             = cp
-
-
-# What OS are you compiling busybox for?  This allows you to include
-# OS specific things, syscall overrides, etc.
-TARGET_OS=linux
-
-# Select the compiler needed to build binaries for your development system
-HOSTCC    = gcc
-HOSTCFLAGS= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
-
-# Ensure consistent sort order, 'gcc -print-search-dirs' behavior, etc.
-LC_ALL:= C
-
-# If you want to add some simple compiler switches (like -march=i686),
-# especially from the command line, use this instead of CFLAGS directly.
-# For optimization overrides, it's better still to set OPTIMIZATION.
-CFLAGS_EXTRA=$(subst ",, $(strip $(EXTRA_CFLAGS_OPTIONS)))
-
-# To compile vs some other alternative libc, you may need to use/adjust
-# the following lines to meet your needs...
-#
-# If you are using Red Hat 6.x with the compatible RPMs (for developing under
-# Red Hat 5.x and glibc 2.0) uncomment the following.  Be sure to read about
-# using the compatible RPMs (compat-*) at http://www.redhat.com !
-#LIBCDIR:=/usr/i386-glibc20-linux
-#
-# For other libraries, you are on your own.  But these may (or may not) help...
-#LDFLAGS+=-nostdlib
-#LIBRARIES:=$(LIBCDIR)/lib/libc.a -lgcc
-#CROSS_CFLAGS+=-nostdinc -I$(LIBCDIR)/include -I$(GCCINCDIR) -funsigned-char
-#GCCINCDIR:=$(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp")
-
-WARNINGS=-Wall -Wstrict-prototypes -Wshadow
-CFLAGS=-I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir)
-ARFLAGS=cru
-
-
-# gcc centric. Perhaps fiddle with findstring gcc,$(CC) for the rest
-# get the CC MAJOR/MINOR version
-CC_MAJOR:=$(shell printf "%02d" $(shell echo __GNUC__ | $(CC) -E -xc - | tail -n 1))
-CC_MINOR:=$(shell printf "%02d" $(shell echo __GNUC_MINOR__ | $(CC) -E -xc - | tail -n 1))
-
-#--------------------------------------------------------
-export VERSION BUILDTIME HOSTCC HOSTCFLAGS CROSS CC AR AS LD NM STRIP CPP
-ifeq ($(strip $(TARGET_ARCH)),)
-TARGET_ARCH:=$(shell $(CC) -dumpmachine | sed -e s'/-.*//' \
-               -e 's/i.86/i386/' \
-               -e 's/sparc.*/sparc/' \
-               -e 's/arm.*/arm/g' \
-               -e 's/m68k.*/m68k/' \
-               -e 's/ppc/powerpc/g' \
-               -e 's/v850.*/v850/g' \
-               -e 's/sh[234]/sh/' \
-               -e 's/mips-.*/mips/' \
-               -e 's/mipsel-.*/mipsel/' \
-               -e 's/cris.*/cris/' \
-               )
-endif
-
-# A nifty macro to make testing gcc features easier
-check_gcc=$(shell \
-       if [ "$(1)" != "" ]; then \
-               if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; \
-               then echo "$(1)"; else echo "$(2)"; fi \
-       fi)
-
-# Setup some shortcuts so that silent mode is silent like it should be
-ifeq ($(subst s,,$(MAKEFLAGS)),$(MAKEFLAGS))
-export MAKE_IS_SILENT=n
-SECHO=@echo
-else
-export MAKE_IS_SILENT=y
-SECHO=-@false
-endif
-
-CFLAGS+=$(call check_gcc,-funsigned-char,)
-
-#--------------------------------------------------------
-# Arch specific compiler optimization stuff should go here.
-# Unless you want to override the defaults, do not set anything
-# for OPTIMIZATION...
-
-# use '-Os' optimization if available, else use -O2
-OPTIMIZATION:=$(call check_gcc,-Os,-O2)
-
-# Some nice architecture specific optimizations
-ifeq ($(strip $(TARGET_ARCH)),arm)
-       OPTIMIZATION+=-fstrict-aliasing
-endif
-ifeq ($(strip $(TARGET_ARCH)),i386)
-       OPTIMIZATION+=$(call check_gcc,-march=i386,)
-       OPTIMIZATION+=$(call check_gcc,-mpreferred-stack-boundary=2,)
-       OPTIMIZATION+=$(call check_gcc,-falign-functions=0 -falign-jumps=0 -falign-loops=0,\
-               -malign-functions=0 -malign-jumps=0 -malign-loops=0)
-endif
-OPTIMIZATIONS:=$(OPTIMIZATION) -fomit-frame-pointer
-
-#
-#--------------------------------------------------------
-# If you're going to do a lot of builds with a non-vanilla configuration,
-# it makes sense to adjust parameters above, so you can type "make"
-# by itself, instead of following it by the same half-dozen overrides
-# every time.  The stuff below, on the other hand, is probably less
-# prone to casual user adjustment.
-#
-
-ifeq ($(strip $(CONFIG_LFS)),y)
-    # For large file summit support
-    CFLAGS+=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-endif
-ifeq ($(strip $(CONFIG_DMALLOC)),y)
-    # For testing mem leaks with dmalloc
-    CFLAGS+=-DDMALLOC
-    LIBRARIES:=-ldmalloc
-else
-    ifeq ($(strip $(CONFIG_EFENCE)),y)
-       LIBRARIES:=-lefence
-    endif
-endif
-ifeq ($(strip $(CONFIG_DEBUG)),y)
-    CFLAGS  +=$(WARNINGS) -g -D_GNU_SOURCE
-    LDFLAGS +=-Wl,-warn-common
-    STRIPCMD:=/bin/true -Not_stripping_since_we_are_debugging
-else
-    CFLAGS+=$(WARNINGS) $(OPTIMIZATIONS) -D_GNU_SOURCE -DNDEBUG
-    LDFLAGS += -Wl,-warn-common
-    STRIPCMD:=$(STRIP) -s --remove-section=.note --remove-section=.comment
-endif
-ifeq ($(strip $(CONFIG_STATIC)),y)
-    LDFLAGS += --static
-endif
-
-ifeq ($(strip $(CONFIG_SELINUX)),y)
-    LIBRARIES += -lselinux
-endif
-
-ifeq ($(strip $(PREFIX)),)
-    PREFIX:=`pwd`/_install
-endif
-
-# Additional complications due to support for pristine source dir.
-# Include files in the build directory should take precedence over
-# the copy in top_srcdir, both during the compilation phase and the
-# shell script that finds the list of object files.
-# Work in progress by <ldoolitt@recycle.lbl.gov>.
-
-
-OBJECTS:=$(APPLET_SOURCES:.c=.o) busybox.o usage.o applets.o
-CFLAGS    += $(CROSS_CFLAGS)
-ifdef BB_INIT_SCRIPT
-    CFLAGS += -DINIT_SCRIPT='"$(BB_INIT_SCRIPT)"'
-endif
-
-# Put user-supplied flags at the end, where they
-# have a chance of winning.
-CFLAGS += $(CFLAGS_EXTRA)
-
-#------------------------------------------------------------
-# Installation options
-ifeq ($(strip $(CONFIG_INSTALL_APPLET_HARDLINKS)),y)
-INSTALL_OPTS=--hardlinks
-endif
-ifeq ($(strip $(CONFIG_INSTALL_APPLET_SYMLINKS)),y)
-INSTALL_OPTS=--symlinks
-endif
-ifeq ($(strip $(CONFIG_INSTALL_APPLET_DONT)),y)
-INSTALL_OPTS=
-endif
-
-.PHONY: dummy
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/axhttpd.aip b/package/luci/libs/luci-lib-nixio/axTLS/config/axhttpd.aip
deleted file mode 100755 (executable)
index 412fe3b..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
-<DOCUMENT type="Advanced Installer" CreateVersion="3.9" version="6.0.1" modules="freeware" RootPath="." Language="en">\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">\r
-    <ROW Property="ALLUSERS" Value="2"/>\r
-    <ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install &lt;product name&gt;." ValueLocId="*"/>\r
-    <ROW Property="ARPPRODUCTICON" Value="controlPanelIcon.exe"/>\r
-    <ROW Property="ARPURLINFOABOUT" Value="http://axtls.cerocclub.com.au"/>\r
-    <ROW Property="BannerBitmap" Value="default_banner.bmp" Type="1"/>\r
-    <ROW Property="DialogBitmap" Value="default_dialog.bmp" Type="1"/>\r
-    <ROW Property="Manufacturer" Value="axTLS" ValueLocId="*"/>\r
-    <ROW Property="ProductCode" Value="1033:{F49FFA19-C243-4627-BE13-7DEDA4E700D0} "/>\r
-    <ROW Property="ProductLanguage" Value="1033"/>\r
-    <ROW Property="ProductName" Value="Axhttpd" ValueLocId="*"/>\r
-    <ROW Property="ProductVersion" Value="1.1.8"/>\r
-    <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>\r
-    <ROW Property="UpgradeCode" Value="{93E5623E-740C-449C-9770-EDABD392868D}"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">\r
-    <ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1"/>\r
-    <ROW Directory="New_Folder_DIR" Directory_Parent="APPDIR" DefaultDir="include"/>\r
-    <ROW Directory="SHORTCUTDIR" Directory_Parent="TARGETDIR" DefaultDir="SHORTC~1|SHORTCUTDIR" IsPseudoRoot="1"/>\r
-    <ROW Directory="TARGETDIR" DefaultDir="SourceDir"/>\r
-    <ROW Directory="another_dir_DIR" Directory_Parent="test_dir_DIR" DefaultDir="anothe~1|another_dir"/>\r
-    <ROW Directory="bin_DIR" Directory_Parent="test_dir_DIR" DefaultDir="bin"/>\r
-    <ROW Directory="no_http_DIR" Directory_Parent="test_dir_DIR" DefaultDir="no_http"/>\r
-    <ROW Directory="no_ssl_DIR" Directory_Parent="test_dir_DIR" DefaultDir="no_ssl"/>\r
-    <ROW Directory="test_dir_DIR" Directory_Parent="www_DIR" DefaultDir="test_dir"/>\r
-    <ROW Directory="www_DIR" Directory_Parent="APPDIR" DefaultDir="www"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">\r
-    <ROW Component="another_dir" ComponentId="{3F073789-DB33-40BC-BF88-922C6DF252EC}" Directory_="another_dir_DIR" Attributes="0"/>\r
-    <ROW Component="axhttpd.exe" ComponentId="{0AEFFA20-29FA-4304-8227-F9ED0E6B8A0A}" Directory_="APPDIR" Attributes="0" KeyPath="axhttpd.exe" FullKeyPath="APPDIR\axhttpd.exe"/>\r
-    <ROW Component="axssl.exe" ComponentId="{E1E96774-7BFC-45B9-BA33-FC0C631921FD}" Directory_="APPDIR" Attributes="0" KeyPath="axssl.exe" FullKeyPath="APPDIR\axssl.exe"/>\r
-    <ROW Component="axtls.dll" ComponentId="{4C741E75-A18A-4FC9-972C-C1EF583713EB}" Directory_="APPDIR" Attributes="0" KeyPath="axtls.dll" FullKeyPath="APPDIR\axtls.dll"/>\r
-    <ROW Component="axtls.jar" ComponentId="{796CB0A9-6214-4531-A330-9B37420B7799}" Directory_="APPDIR" Attributes="0" KeyPath="axtls.static.lib" FullKeyPath="APPDIR"/>\r
-    <ROW Component="bigint.h" ComponentId="{FC3E492B-D4F0-41FB-A977-76F6E9FE9FFE}" Directory_="New_Folder_DIR" Attributes="0" KeyPath="bigint.h" FullKeyPath="APPDIR\include"/>\r
-    <ROW Component="favicon.ico" ComponentId="{9A1AB507-100A-470D-A002-CD8262CA4913}" Directory_="www_DIR" Attributes="0" KeyPath="favicon.ico" FullKeyPath="APPDIR\www"/>\r
-    <ROW Component="htaccess" ComponentId="{F53CB1D5-A3B9-4401-B0BA-B6AB1DA860B7}" Directory_="no_ssl_DIR" Attributes="0" KeyPath="htaccess" FullKeyPath="APPDIR\www\test_dir\no_ssl"/>\r
-    <ROW Component="htaccess_1" ComponentId="{953D1999-CC00-4F85-9B48-2CD83ACAE2F9}" Directory_="no_http_DIR" Attributes="0" KeyPath="htaccess_1" FullKeyPath="APPDIR\www\test_dir\no_http"/>\r
-    <ROW Component="htaccess_2" ComponentId="{6F181A8B-B313-47E2-AF79-AABFDBD353D8}" Directory_="bin_DIR" Attributes="0" KeyPath="htaccess_2" FullKeyPath="APPDIR\www\test_dir\bin"/>\r
-    <ROW Component="htpasswd.exe" ComponentId="{9FE1AAD2-4E35-443A-AAE5-3A7D03A52AAA}" Directory_="APPDIR" Attributes="0" KeyPath="htpasswd.exe" FullKeyPath="APPDIR\htpasswd.exe"/>\r
-    <ROW Component="test_dir" ComponentId="{832C9295-CF2A-402E-BB3C-65BCBCBB5971}" Directory_="test_dir_DIR" Attributes="0"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent">\r
-    <ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0" Components="axhttpd.exe axssl.exe axtls.dll axtls.jar favicon.ico bigint.h htpasswd.exe another_dir htaccess htaccess_2 htaccess_1 test_dir"/>\r
-    <ATTRIBUTE name="CurrentFeature" value="MainFeature"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiFilesComponent">\r
-    <ROW File="axhttpd.exe" Component_="axhttpd.exe" FileName="axhttpd.exe" Attributes="0" SourcePath="..\_stage\axhttpd.exe" SelfReg="false" Sequence="1"/>\r
-    <ROW File="axssl.exe" Component_="axssl.exe" FileName="axssl.exe" Attributes="0" SourcePath="..\_stage\axssl.exe" SelfReg="false" Sequence="2"/>\r
-    <ROW File="axtls.dll" Component_="axtls.dll" FileName="axtls.dll" Attributes="0" SourcePath="..\_stage\axtls.dll" SelfReg="false" Sequence="3"/>\r
-    <ROW File="axtls.lib" Component_="axtls.jar" FileName="axtls.lib" Attributes="0" SourcePath="..\_stage\axtls.lib" SelfReg="false" Sequence="4"/>\r
-    <ROW File="axtls.static.lib" Component_="axtls.jar" FileName="axtlss~1.lib|axtls.static.lib" Attributes="0" SourcePath="..\_stage\axtls.static.lib" SelfReg="false" Sequence="5"/>\r
-    <ROW File="bigint.h" Component_="bigint.h" FileName="bigint.h" Attributes="0" SourcePath="..\crypto\bigint.h" SelfReg="false" Sequence="12"/>\r
-    <ROW File="bigint_impl.h" Component_="bigint.h" FileName="bigint~1.h|bigint_impl.h" Attributes="0" SourcePath="..\crypto\bigint_impl.h" SelfReg="false" Sequence="9"/>\r
-    <ROW File="crypto.h" Component_="bigint.h" FileName="crypto.h" Attributes="0" SourcePath="..\crypto\crypto.h" SelfReg="false" Sequence="10"/>\r
-    <ROW File="crypto_misc.h" Component_="bigint.h" FileName="crypto~1.h|crypto_misc.h" Attributes="0" SourcePath="..\ssl\crypto_misc.h" SelfReg="false" Sequence="21"/>\r
-    <ROW File="favicon.ico" Component_="favicon.ico" FileName="favicon.ico" Attributes="0" SourcePath="..\www\favicon.ico" SelfReg="false" Sequence="6"/>\r
-    <ROW File="htaccess" Component_="htaccess" FileName="htacce~1|.htaccess" Attributes="0" SourcePath="..\www\test_dir\no_ssl\.htaccess" SelfReg="false" Sequence="15"/>\r
-    <ROW File="htaccess_1" Component_="htaccess_1" FileName="htacce~1|.htaccess" Attributes="0" SourcePath="..\www\test_dir\no_http\.htaccess" SelfReg="false" Sequence="18"/>\r
-    <ROW File="htaccess_2" Component_="htaccess_2" FileName="htacce~1|.htaccess" Attributes="0" SourcePath="..\www\test_dir\bin\.htaccess" SelfReg="false" Sequence="17"/>\r
-    <ROW File="htpasswd" Component_="htaccess_1" FileName="htpass~1|.htpasswd" Attributes="0" SourcePath="..\www\test_dir\no_http\.htpasswd" SelfReg="false" Sequence="19"/>\r
-    <ROW File="htpasswd.exe" Component_="htpasswd.exe" FileName="htpasswd.exe" Attributes="0" SourcePath="..\_stage\htpasswd.exe" SelfReg="false" Sequence="14"/>\r
-    <ROW File="index.html" Component_="favicon.ico" FileName="index~1.htm|index.html" Attributes="0" SourcePath="..\www\index.html" SelfReg="false" Sequence="7"/>\r
-    <ROW File="index.html_1" Component_="htaccess" FileName="index~1.htm|index.html" Attributes="0" SourcePath="..\www\test_dir\no_ssl\index.html" SelfReg="false" Sequence="16"/>\r
-    <ROW File="index.html_2" Component_="htaccess_1" FileName="index~1.htm|index.html" Attributes="0" SourcePath="..\www\test_dir\no_http\index.html" SelfReg="false" Sequence="20"/>\r
-    <ROW File="os_port.h" Component_="bigint.h" FileName="os_port.h" Attributes="0" SourcePath="..\ssl\os_port.h" SelfReg="false" Sequence="13"/>\r
-    <ROW File="ssl.h" Component_="bigint.h" FileName="ssl.h" Attributes="0" SourcePath="..\ssl\ssl.h" SelfReg="false" Sequence="8"/>\r
-    <ROW File="tls1.h" Component_="bigint.h" FileName="tls1.h" Attributes="0" SourcePath="..\ssl\tls1.h" SelfReg="false" Sequence="11"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">\r
-    <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" InstallationType="4"/>\r
-    <ATTRIBUTE name="CurrentBuild" value="DefaultBuild"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">\r
-    <ROW Path="&lt;ui.ail&gt;"/>\r
-    <ROW Path="&lt;ui_en.ail&gt;"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">\r
-    <ROW Fragment="FolderDlg.aip" Path="&lt;FolderDlg.aip&gt;"/>\r
-    <ROW Fragment="StaticUIStrings.aip" Path="&lt;StaticUIStrings.aip&gt;"/>\r
-    <ROW Fragment="UI.aip" Path="&lt;UI.aip&gt;"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent">\r
-    <ROW Name="aicustact.dll" SourcePath="&lt;aicustact.dll&gt;"/>\r
-    <ROW Name="default_banner.bmp" SourcePath="&lt;default-banner.bmp&gt;"/>\r
-    <ROW Name="default_dialog.bmp" SourcePath="&lt;default-dialog.bmp&gt;"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiControlComponent">\r
-    <ATTRIBUTE name="FixedSizeBitmaps" value="0"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent">\r
-    <ROW Dialog_="FolderDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/>\r
-    <ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>\r
-    <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>\r
-    <ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL" Ordering="3"/>\r
-    <ROW Dialog_="MaintenanceTypeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceWelcomeDlg" Condition="AI_MAINT" Ordering="1"/>\r
-    <ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="2"/>\r
-    <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="1"/>\r
-    <ROW Dialog_="PatchWelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_PATCH" Ordering="2"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent">\r
-    <ROW Directory_="another_dir_DIR" Component_="another_dir"/>\r
-    <ROW Directory_="test_dir_DIR" Component_="test_dir"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent">\r
-    <ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>\r
-    <ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>\r
-    <ROW Action="AI_RESTORE_LOCATION" Type="65" Source="aicustact.dll" Target="RestoreLocation"/>\r
-    <ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/>\r
-    <ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]" MultiBuildTarget="DefaultBuild:[ProgramFilesFolder][ProductName]"/>\r
-    <ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/>\r
-    <ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiIconsComponent">\r
-    <ROW Name="controlPanelIcon.exe" SourcePath="..\..\axhttpd\www\favicon.ico" Index="0"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">\r
-    <ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel &lt;&gt; 5)" Sequence="210"/>\r
-    <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=&quot;&quot;" Sequence="740"/>\r
-    <ROW Action="AI_STORE_LOCATION" Condition="Not Installed" Sequence="1545"/>\r
-    <ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE=&quot;No&quot; AND (Not Installed)" Sequence="1300"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">\r
-    <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=&quot;&quot;" Sequence="740"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiShortsComponent">\r
-    <ROW Shortcut="axhttpd.exe" Directory_="SHORTCUTDIR" Name="axhttpd" Component_="axhttpd.exe" Target="[#axhttpd.exe]" Description="axhttpd.exe" Hotkey="0" IconIndex="0" ShowCmd="1" WkDir="APPDIR"/>\r
-    <ROW Shortcut="axssl_client" Directory_="SHORTCUTDIR" Name="axsslc~1|axssl client" Component_="axssl.exe" Target="[#axssl.exe]" Arguments="s_client" Hotkey="0" IconIndex="0" ShowCmd="1" WkDir="APPDIR"/>\r
-    <ROW Shortcut="axssl_server" Directory_="SHORTCUTDIR" Name="axssls~1|axssl server" Component_="axssl.exe" Target="[#axssl.exe]" Arguments="s_server" Hotkey="0" IconIndex="0" ShowCmd="1" WkDir="APPDIR"/>\r
-  </COMPONENT>\r
-  <COMPONENT cid="caphyon.advinst.msicomp.MsiUpgradeComponent">\r
-    <ROW UpgradeCode="[|UpgradeCode]" VersionMax="[|ProductVersion]" Attributes="1025" ActionProperty="OLDPRODUCTS"/>\r
-    <ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/>\r
-  </COMPONENT>\r
-</DOCUMENT>\r
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/axtls.RES b/package/luci/libs/luci-lib-nixio/axTLS/config/axtls.RES
deleted file mode 100644 (file)
index 2929b3b..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/config/axtls.RES and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/axtls.rc b/package/luci/libs/luci-lib-nixio/axTLS/config/axtls.rc
deleted file mode 100644 (file)
index 0f288aa..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-//Microsoft Visual C++ generated resource script.\r
-//\r
-#define APSTUDIO_READONLY_SYMBOLS\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 2 resource.\r
-//\r
-#define APSTUDIO_HIDDEN_SYMBOLS\r
-#undef APSTUDIO_HIDDEN_SYMBOLS\r
-/////////////////////////////////////////////////////////////////////////////\r
-#undef APSTUDIO_READONLY_SYMBOLS\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
-LANGUAGE 9, 1\r
-#pragma code_page(1252)\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Icon\r
-//\r
-\r
-// Icon with lowest ID value placed first to ensure application icon\r
-// remains consistent on all systems.\r
-\r
-IDI_AXTLS       ICON         "../www/favicon.ico"\r
-\r
-\r
-#endif\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-\r
-\r
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/config.h b/package/luci/libs/luci-lib-nixio/axTLS/config/config.h
deleted file mode 100644 (file)
index 0f861f3..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Automatically generated header file: don't edit
- */
-
-#define HAVE_DOT_CONFIG 1
-#define CONFIG_PLATFORM_LINUX 1
-#undef CONFIG_PLATFORM_CYGWIN
-#undef CONFIG_PLATFORM_WIN32
-
-/*
- * General Configuration
- */
-#define PREFIX "/usr"
-#undef CONFIG_DEBUG
-#define CONFIG_STRIP_UNWANTED_SECTIONS 1
-#undef CONFIG_VISUAL_STUDIO_7_0
-#undef CONFIG_VISUAL_STUDIO_8_0
-#define CONFIG_VISUAL_STUDIO_7_0_BASE ""
-#define CONFIG_VISUAL_STUDIO_8_0_BASE ""
-#define CONFIG_EXTRA_CFLAGS_OPTIONS "-fpic"
-#define CONFIG_EXTRA_LDFLAGS_OPTIONS ""
-
-/*
- * SSL Library
- */
-#undef CONFIG_SSL_SERVER_ONLY
-#undef CONFIG_SSL_CERT_VERIFICATION
-#undef CONFIG_SSL_ENABLE_CLIENT
-#define CONFIG_SSL_FULL_MODE 1
-#undef CONFIG_SSL_SKELETON_MODE
-#undef CONFIG_SSL_PROT_LOW
-#define CONFIG_SSL_PROT_MEDIUM 1
-#undef CONFIG_SSL_PROT_HIGH
-#undef CONFIG_SSL_USE_DEFAULT_KEY
-#define CONFIG_SSL_PRIVATE_KEY_LOCATION "/etc/nixio/rsa_main.der"
-#define CONFIG_SSL_PRIVATE_KEY_PASSWORD ""
-#define CONFIG_SSL_X509_CERT_LOCATION ""
-#undef CONFIG_SSL_GENERATE_X509_CERT
-#define CONFIG_SSL_X509_COMMON_NAME ""
-#define CONFIG_SSL_X509_ORGANIZATION_NAME ""
-#define CONFIG_SSL_X509_ORGANIZATION_UNIT_NAME ""
-#undef CONFIG_SSL_ENABLE_V23_HANDSHAKE
-#undef CONFIG_SSL_HAS_PEM
-#undef CONFIG_SSL_USE_PKCS12
-#define CONFIG_SSL_EXPIRY_TIME 24
-#define CONFIG_X509_MAX_CA_CERTS 4
-#define CONFIG_SSL_MAX_CERTS 2
-#define CONFIG_SSL_CTX_MUTEXING 1
-#define CONFIG_USE_DEV_URANDOM 1
-#undef CONFIG_WIN32_USE_CRYPTO_LIB
-#undef CONFIG_OPENSSL_COMPATIBLE
-#undef CONFIG_PERFORMANCE_TESTING
-#undef CONFIG_SSL_TEST
-#undef CONFIG_AXHTTPD
-#undef CONFIG_HTTP_STATIC_BUILD
-#define CONFIG_HTTP_PORT 
-#define CONFIG_HTTP_HTTPS_PORT 
-#define CONFIG_HTTP_SESSION_CACHE_SIZE 
-#define CONFIG_HTTP_WEBROOT ""
-#define CONFIG_HTTP_TIMEOUT 
-#undef CONFIG_HTTP_HAS_CGI
-#define CONFIG_HTTP_CGI_EXTENSIONS ""
-#undef CONFIG_HTTP_ENABLE_LUA
-#define CONFIG_HTTP_LUA_PREFIX ""
-#define CONFIG_HTTP_LUA_CGI_LAUNCHER ""
-#undef CONFIG_HTTP_BUILD_LUA
-#undef CONFIG_HTTP_DIRECTORIES
-#undef CONFIG_HTTP_HAS_AUTHORIZATION
-#undef CONFIG_HTTP_HAS_IPV6
-#undef CONFIG_HTTP_ENABLE_DIFFERENT_USER
-#define CONFIG_HTTP_USER ""
-#undef CONFIG_HTTP_VERBOSE
-#undef CONFIG_HTTP_IS_DAEMON
-
-/*
- * Language Bindings
- */
-#undef CONFIG_BINDINGS
-#undef CONFIG_CSHARP_BINDINGS
-#undef CONFIG_VBNET_BINDINGS
-#define CONFIG_DOT_NET_FRAMEWORK_BASE ""
-#undef CONFIG_JAVA_BINDINGS
-#define CONFIG_JAVA_HOME ""
-#undef CONFIG_PERL_BINDINGS
-#define CONFIG_PERL_CORE ""
-#define CONFIG_PERL_LIB ""
-#undef CONFIG_LUA_BINDINGS
-#define CONFIG_LUA_CORE ""
-
-/*
- * Samples
- */
-#undef CONFIG_SAMPLES
-#undef CONFIG_C_SAMPLES
-#undef CONFIG_CSHARP_SAMPLES
-#undef CONFIG_VBNET_SAMPLES
-#undef CONFIG_JAVA_SAMPLES
-#undef CONFIG_PERL_SAMPLES
-#undef CONFIG_LUA_SAMPLES
-
-/*
- * BigInt Options
- */
-#undef CONFIG_BIGINT_CLASSICAL
-#undef CONFIG_BIGINT_MONTGOMERY
-#define CONFIG_BIGINT_BARRETT 1
-#define CONFIG_BIGINT_CRT 1
-#undef CONFIG_BIGINT_KARATSUBA
-#define MUL_KARATSUBA_THRESH 
-#define SQU_KARATSUBA_THRESH 
-#define CONFIG_BIGINT_SLIDING_WINDOW 1
-#define CONFIG_BIGINT_SQUARE 1
-#undef CONFIG_BIGINT_CHECK_ON
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/linuxconfig b/package/luci/libs/luci-lib-nixio/axTLS/config/linuxconfig
deleted file mode 100644 (file)
index 614fdd8..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-HAVE_DOT_CONFIG=y
-CONFIG_PLATFORM_LINUX=y
-# CONFIG_PLATFORM_CYGWIN is not set
-# CONFIG_PLATFORM_SOLARIS is not set
-# CONFIG_PLATFORM_WIN32 is not set
-
-#
-# General Configuration
-#
-PREFIX="/usr/local"
-# CONFIG_DEBUG is not set
-CONFIG_STRIP_UNWANTED_SECTIONS=y
-# CONFIG_VISUAL_STUDIO_7_0 is not set
-# CONFIG_VISUAL_STUDIO_8_0 is not set
-CONFIG_VISUAL_STUDIO_7_0_BASE=""
-CONFIG_VISUAL_STUDIO_8_0_BASE=""
-CONFIG_EXTRA_CFLAGS_OPTIONS=""
-CONFIG_EXTRA_LDFLAGS_OPTIONS=""
-
-#
-# SSL Library
-#
-# CONFIG_SSL_SERVER_ONLY is not set
-# CONFIG_SSL_CERT_VERIFICATION is not set
-# CONFIG_SSL_ENABLE_CLIENT is not set
-CONFIG_SSL_FULL_MODE=y
-# CONFIG_SSL_SKELETON_MODE is not set
-# CONFIG_SSL_PROT_LOW is not set
-CONFIG_SSL_PROT_MEDIUM=y
-# CONFIG_SSL_PROT_HIGH is not set
-CONFIG_SSL_USE_DEFAULT_KEY=y
-CONFIG_SSL_PRIVATE_KEY_LOCATION=""
-CONFIG_SSL_PRIVATE_KEY_PASSWORD=""
-CONFIG_SSL_X509_CERT_LOCATION=""
-CONFIG_SSL_GENERATE_X509_CERT=y
-CONFIG_SSL_X509_COMMON_NAME=""
-CONFIG_SSL_X509_ORGANIZATION_NAME=""
-CONFIG_SSL_X509_ORGANIZATION_UNIT_NAME=""
-CONFIG_SSL_ENABLE_V23_HANDSHAKE=y
-CONFIG_SSL_HAS_PEM=y
-CONFIG_SSL_USE_PKCS12=y
-CONFIG_SSL_EXPIRY_TIME=24
-CONFIG_X509_MAX_CA_CERTS=4
-CONFIG_SSL_MAX_CERTS=2
-# CONFIG_SSL_CTX_MUTEXING is not set
-CONFIG_USE_DEV_URANDOM=y
-# CONFIG_WIN32_USE_CRYPTO_LIB is not set
-CONFIG_OPENSSL_COMPATIBLE=y
-# CONFIG_PERFORMANCE_TESTING is not set
-# CONFIG_SSL_TEST is not set
-CONFIG_AXHTTPD=y
-
-#
-# Axhttpd Configuration
-#
-# CONFIG_HTTP_STATIC_BUILD is not set
-CONFIG_HTTP_PORT=80
-CONFIG_HTTP_HTTPS_PORT=443
-CONFIG_HTTP_SESSION_CACHE_SIZE=5
-CONFIG_HTTP_WEBROOT="../www"
-CONFIG_HTTP_TIMEOUT=300
-
-#
-# CGI
-#
-CONFIG_HTTP_HAS_CGI=y
-CONFIG_HTTP_CGI_EXTENSIONS=".lua,.lp"
-CONFIG_HTTP_ENABLE_LUA=y
-CONFIG_HTTP_LUA_PREFIX="/usr/local"
-CONFIG_HTTP_LUA_CGI_LAUNCHER="/bin/cgi"
-# CONFIG_HTTP_BUILD_LUA is not set
-CONFIG_HTTP_DIRECTORIES=y
-CONFIG_HTTP_HAS_AUTHORIZATION=y
-# CONFIG_HTTP_HAS_IPV6 is not set
-# CONFIG_HTTP_VERBOSE is not set
-# CONFIG_HTTP_IS_DAEMON is not set
-
-#
-# Language Bindings
-#
-CONFIG_BINDINGS=y
-# CONFIG_CSHARP_BINDINGS is not set
-# CONFIG_VBNET_BINDINGS is not set
-CONFIG_DOT_NET_FRAMEWORK_BASE=""
-# CONFIG_JAVA_BINDINGS is not set
-CONFIG_JAVA_HOME=""
-# CONFIG_PERL_BINDINGS is not set
-CONFIG_PERL_CORE=""
-CONFIG_PERL_LIB=""
-# CONFIG_LUA_BINDINGS is not set
-CONFIG_LUA_CORE=""
-
-#
-# Samples
-#
-CONFIG_SAMPLES=y
-CONFIG_C_SAMPLES=y
-# CONFIG_CSHARP_SAMPLES is not set
-# CONFIG_VBNET_SAMPLES is not set
-# CONFIG_JAVA_SAMPLES is not set
-# CONFIG_PERL_SAMPLES is not set
-# CONFIG_LUA_SAMPLES is not set
-
-#
-# BigInt Options
-#
-# CONFIG_BIGINT_CLASSICAL is not set
-# CONFIG_BIGINT_MONTGOMERY is not set
-CONFIG_BIGINT_BARRETT=y
-CONFIG_BIGINT_CRT=y
-# CONFIG_BIGINT_KARATSUBA is not set
-MUL_KARATSUBA_THRESH=0
-SQU_KARATSUBA_THRESH=0
-CONFIG_BIGINT_SLIDING_WINDOW=y
-CONFIG_BIGINT_SQUARE=y
-# CONFIG_BIGINT_CHECK_ON is not set
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/makefile.conf b/package/luci/libs/luci-lib-nixio/axTLS/config/makefile.conf
deleted file mode 100644 (file)
index 9f9db13..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-#
-# A standard makefile for all makefiles
-#
-
-# All executables and libraries go here
-STAGE=./_stage
-
-ifneq ($(MAKECMDGOALS), clean)
-
-# Give an initial rule
-all: 
-
-# Win32 
-ifdef CONFIG_PLATFORM_WIN32
-
-ifdef CONFIG_VISUAL_STUDIO_7_0
-CONFIG_VISUAL_STUDIO_7_0_BASE_UNIX:=$(shell cygpath -u $(CONFIG_VISUAL_STUDIO_7_0_BASE))
-export INCLUDE=$(shell echo "$(CONFIG_VISUAL_STUDIO_7_0_BASE)\vc7\include;$(CONFIG_VISUAL_STUDIO_7_0_BASE)\vc7\platformsdk\include")
-export LIB=$(shell echo "$(CONFIG_VISUAL_STUDIO_7_0_BASE)\vc7\\platformsdk\lib;$(CONFIG_VISUAL_STUDIO_7_0_BASE)\vc7\lib")
-PATH:=$(CONFIG_VISUAL_STUDIO_7_0_BASE_UNIX)/vc7/bin:$(CONFIG_VISUAL_STUDIO_7_0_BASE_UNIX)/common7/ide:$(PATH)
-else 
-ifdef CONFIG_VISUAL_STUDIO_8_0
-CONFIG_VISUAL_STUDIO_8_0_BASE_UNIX:=$(shell cygpath -u $(CONFIG_VISUAL_STUDIO_8_0_BASE))
-export INCLUDE=$(shell echo "$(CONFIG_VISUAL_STUDIO_8_0_BASE)\vc\include;$(CONFIG_VISUAL_STUDIO_8_0_BASE)\vc\platformsdk\include")
-export LIB=$(shell echo "$(CONFIG_VISUAL_STUDIO_8_0_BASE)\vc\platformsdk\lib;$(CONFIG_VISUAL_STUDIO_8_0_BASE)\vc\lib")
-PATH:=$(CONFIG_VISUAL_STUDIO_8_0_BASE_UNIX)/vc/bin:$(CONFIG_VISUAL_STUDIO_8_0_BASE_UNIX)/common7/ide:$(PATH)
-stuff:
-       @echo $(INCLUDE)
-endif
-endif
-
-CC=cl.exe
-LD=link.exe
-AXTLS_INCLUDE=$(shell cygpath -w $(AXTLS_HOME))
-CFLAGS+=/nologo /W3 /D"WIN32" /D"_MBCS" /D"_CONSOLE" /D"_CRT_SECURE_NO_DEPRECATE" /FD /I"$(AXTLS_INCLUDE)crypto" /I"$(AXTLS_INCLUDE)ssl" /I"$(AXTLS_INCLUDE)config" /c 
-LDFLAGS=/nologo /subsystem:console /machine:I386
-LDSHARED = /dll
-AR=lib /nologo
-
-ifdef CONFIG_DEBUG
-       CFLAGS += /Gm /Zi /Od /D "_DEBUG"
-       LDFLAGS += /debug /incremental:yes 
-else
-       CFLAGS += /O2 /D "NDEBUG"
-       LDFLAGS += /incremental:no 
-endif
-
-else    # Not Win32
-
--include .depend
-
-CFLAGS += -I$(AXTLS_HOME)/config -I$(AXTLS_HOME)/ssl -I$(AXTLS_HOME)/crypto
-LD=$(CC)
-STRIP=strip
-
-# Solaris
-ifdef CONFIG_PLATFORM_SOLARIS
-CFLAGS += -DCONFIG_PLATFORM_SOLARIS
-LDFLAGS += -lsocket -lnsl -lc
-LDSHARED = -G
-# Linux/Cygwin
-else 
-CFLAGS += -Wall -Wstrict-prototypes -Wshadow
-LDSHARED = -shared
-
-# Linux
-ifndef CONFIG_PLATFORM_CYGWIN
-# CFLAGS += -fPIC 
-
-# Cygwin
-else
-CFLAGS += -DCONFIG_PLATFORM_CYGWIN
-LDFLAGS += -enable-auto-import
-endif
-endif
-
-ifdef CONFIG_DEBUG
-CFLAGS += -g
-else
-LDFLAGS += -s
-ifdef CONFIG_PLATFORM_SOLARIS
-CFLAGS += -O 
-else
-CFLAGS += -O3
-endif
-
-endif  # CONFIG_DEBUG
-endif   # WIN32
-
-CFLAGS+=$(subst ",, $(strip $(CONFIG_EXTRA_CFLAGS_OPTIONS)))
-LDFLAGS+=$(subst ",, $(strip $(CONFIG_EXTRA_LDFLAGS_OPTIONS)))
-
-endif   # not 'clean'
-
-clean::
-       -@rm -f *.o *.obj core* *.out *~ \.depend vc*0* 
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/makefile.dotnet.conf b/package/luci/libs/luci-lib-nixio/axTLS/config/makefile.dotnet.conf
deleted file mode 100644 (file)
index 9cff4fd..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-ifneq ($(MAKECMDGOALS), clean)
-
-ifdef CONFIG_PLATFORM_WIN32
-GO_DOT_NET=y
-endif
-
-ifdef CONFIG_PLATFORM_CYGWIN
-GO_DOT_NET=y
-endif
-
-ifdef GO_DOT_NET
-all: test_dot_net_location
-
-# find out where the C# compiler is
-CONFIG_DOT_NET_FRAMEWORK_BASE:=$(shell cygpath -u $(CONFIG_DOT_NET_FRAMEWORK_BASE))
-
-test_dot_net_location:
-       @if ! [ -d "$(CONFIG_DOT_NET_FRAMEWORK_BASE)" ]; then \
-               echo "*** Error: .NET path of $(CONFIG_DOT_NET_FRAMEWORK_BASE) doesn't exist" && exit 1; \
-    fi
-
-PATH:=$(CONFIG_DOT_NET_FRAMEWORK_BASE):$(PATH)
-
-else        # Linux?
-all: test_mcs
-
-test_mcs:
-       @if ! mcs --about > /dev/null 2>&1; then \
-        echo "Mono not installed! - go " \
-        "to http://www.mono-project.com/Main_Page" && exit 1; \
-    fi 
-
-endif   # Linux
-
-endif   # not 'clean'
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/makefile.java.conf b/package/luci/libs/luci-lib-nixio/axTLS/config/makefile.java.conf
deleted file mode 100644 (file)
index 9b22462..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-ifneq ($(MAKECMDGOALS), clean)
-
-ifdef CONFIG_PLATFORM_CYGWIN 
-CFLAGS += -I"$(CONFIG_JAVA_HOME)/include"
-CFLAGS += -I"$(CONFIG_JAVA_HOME)/include/win32"
-JAVA_BIN:=$(CONFIG_JAVA_HOME)/bin
-else
-
-ifdef CONFIG_PLATFORM_WIN32
-CFLAGS += /I"$(shell cygpath -w $(CONFIG_JAVA_HOME)/include)"
-CFLAGS += /I"$(shell cygpath -w $(CONFIG_JAVA_HOME)/include/win32)"
-JAVA_BIN:=$(shell cygpath -u $(CONFIG_JAVA_HOME)/bin)
-else # Linux
-CFLAGS += -I$(CONFIG_JAVA_HOME)/include
-
-ifdef CONFIG_PLATFORM_SOLARIS
-CFLAGS += -I$(CONFIG_JAVA_HOME)/include/solaris
-else
-CFLAGS += -I$(CONFIG_JAVA_HOME)/include/linux
-endif
-
-JAVA_BIN:=$(CONFIG_JAVA_HOME)/bin
-endif
-endif
-
-PATH:=$(JAVA_BIN):$(PATH)
-
-endif   # not 'clean'                    
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/makefile.post b/package/luci/libs/luci-lib-nixio/axTLS/config/makefile.post
deleted file mode 100644 (file)
index 033981c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-
-ifneq ($(MAKECMDGOALS), clean)
-ifndef CONFIG_PLATFORM_WIN32
-ifndef CONFIG_PLATFORM_SOLARIS
-# do dependencies
--include .depend
-all : .depend 
-.depend: $(wildcard *.c)
-       @$(CC) $(CFLAGS) -MM $^ > $@
-endif   # 'not' solaris
-endif   # 'not' win32
-
-ifdef CONFIG_PLATFORM_WIN32
-OBJ:=$(OBJ:.o=.obj)
-%.obj : %.c
-       $(CC) $(CFLAGS) $< 
-endif   # win32
-
-endif   # end of 'not' clean
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/Kconfig-language.txt b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/Kconfig-language.txt
deleted file mode 100644 (file)
index 493749b..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-Introduction
-------------
-
-The configuration database is collection of configuration options
-organized in a tree structure:
-
-       +- Code maturity level options
-       |  +- Prompt for development and/or incomplete code/drivers
-       +- General setup
-       |  +- Networking support
-       |  +- System V IPC
-       |  +- BSD Process Accounting
-       |  +- Sysctl support
-       +- Loadable module support
-       |  +- Enable loadable module support
-       |     +- Set version information on all module symbols
-       |     +- Kernel module loader
-       +- ...
-
-Every entry has its own dependencies. These dependencies are used
-to determine the visible of an entry. Any child entry is only
-visible if its parent entry is also visible.
-
-Menu entries
-------------
-
-Most entries define a config option, all other entries help to organize
-them. A single configuration option is defined like this:
-
-config MODVERSIONS
-       bool "Set version information on all module symbols"
-       depends MODULES
-       help
-         Usually, modules have to be recompiled whenever you switch to a new
-         kernel.  ...
-
-Every line starts with a key word and can be followed by multiple
-arguments.  "config" starts a new config entry. The following lines
-define attributes for this config option. Attributes can be the type of
-the config option, input prompt, dependencies, help text and default
-values. A config option can be defined multiple times with the same
-name, but every definition can have only a single input prompt and the
-type must not conflict.
-
-Menu attributes
----------------
-
-A menu entry can have a number of attributes. Not all of them are
-applicable everywhere (see syntax).
-
-- type definition: "bool"/"tristate"/"string"/"hex"/"integer"
-  Every config option must have a type. There are only two basic types:
-  tristate and string, the other types base on these two. The type
-  definition optionally accepts an input prompt, so these two examples
-  are equivalent:
-
-       bool "Networking support"
-  and
-       bool
-       prompt "Networking support"
-
-- input prompt: "prompt" <prompt> ["if" <expr>]
-  Every menu entry can have at most one prompt, which is used to display
-  to the user. Optionally dependencies only for this prompt can be added
-  with "if".
-
-- default value: "default" <symbol> ["if" <expr>]
-  A config option can have any number of default values. If multiple
-  default values are visible, only the first defined one is active.
-  Default values are not limited to the menu entry, where they are
-  defined, this means the default can be defined somewhere else or be
-  overriden by an earlier definition.
-  The default value is only assigned to the config symbol if no other
-  value was set by the user (via the input prompt above). If an input
-  prompt is visible the default value is presented to the user and can
-  be overridden by him.
-  Optionally dependencies only for this default value can be added with
-  "if".
-
-- dependencies: "depends on"/"requires" <expr>
-  This defines a dependency for this menu entry. If multiple
-  dependencies are defined they are connected with '&&'. Dependencies
-  are applied to all other options within this menu entry (which also
-  accept "if" expression), so these two examples are equivalent:
-
-       bool "foo" if BAR
-       default y if BAR
-  and
-       depends on BAR
-       bool "foo"
-       default y
-
-- help text: "help"
-  This defines a help text. The end of the help text is determined by
-  the level indentation, this means it ends at the first line which has
-  a smaller indentation than the first line of the help text.
-
-
-Menu dependencies
------------------
-
-Dependencies define the visibility of a menu entry and can also reduce
-the input range of tristate symbols. The tristate logic used in the
-expressions uses one more state than normal boolean logic to express the
-module state. Dependency expressions have the following syntax:
-
-<expr> ::= <symbol>                             (1)
-           <symbol> '=' <symbol>                (2)
-           <symbol> '!=' <symbol>               (3)
-           '(' <expr> ')'                       (4)
-           '!' <expr>                           (5)
-           <expr> '||' <expr>                   (6)
-           <expr> '&&' <expr>                   (7)
-
-Expressions are listed in decreasing order of precedence.
-
-(1) Convert the symbol into an expression. Boolean and tristate symbols
-    are simply converted into the respective expression values. All
-    other symbol types result in 'n'.
-(2) If the values of both symbols are equal, it returns 'y',
-    otherwise 'n'.
-(3) If the values of both symbols are equal, it returns 'n',
-    otherwise 'y'.
-(4) Returns the value of the expression. Used to override precedence.
-(5) Returns the result of (2-/expr/).
-(6) Returns the result of min(/expr/, /expr/).
-(7) Returns the result of max(/expr/, /expr/).
-
-An expression can have a value of 'n', 'm' or 'y' (or 0, 1, 2
-respectively for calculations). A menu entry becomes visible when it's
-expression evaluates to 'm' or 'y'.
-
-There are two type of symbols: constant and nonconstant symbols.
-Nonconstant symbols are the most common ones and are defined with the
-'config' statement. Nonconstant symbols consist entirely of alphanumeric
-characters or underscores.
-Constant symbols are only part of expressions. Constant symbols are
-always surrounded by single or double quotes. Within the quote any
-other character is allowed and the quotes can be escaped using '\'.
-
-Menu structure
---------------
-
-The position of a menu entry in the tree is determined in two ways. First
-it can be specified explicitely:
-
-menu "Network device support"
-       depends NET
-
-config NETDEVICES
-       ...
-
-endmenu
-
-All entries within the "menu" ... "endmenu" block become a submenu of
-"Network device support". All subentries inherit the dependencies from
-the menu entry, e.g. this means the dependency "NET" is added to the
-dependency list of the config option NETDEVICES.
-
-The other way to generate the menu structure is done by analyzing the
-dependencies. If a menu entry somehow depends on the previous entry, it
-can be made a submenu of it. First the the previous (parent) symbol must
-be part of the dependency list and then one of these two condititions
-must be true:
-- the child entry must become invisible, if the parent is set to 'n'
-- the child entry must only be visible, if the parent is visible
-
-config MODULES
-       bool "Enable loadable module support"
-
-config MODVERSIONS
-       bool "Set version information on all module symbols"
-       depends MODULES
-
-comment "module support disabled"
-       depends !MODULES
-
-MODVERSIONS directly depends on MODULES, this means it's only visible if
-MODULES is different from 'n'. The comment on the other hand is always
-visible when MODULES it's visible (the (empty) dependency of MODULES is
-also part of the comment dependencies).
-
-
-Kconfig syntax
---------------
-
-The configuration file describes a series of menu entries, where every
-line starts with a keyword (except help texts). The following keywords
-end a menu entry:
-- config
-- choice/endchoice
-- comment
-- menu/endmenu
-- if/endif
-- source
-The first four also start the definition of a menu entry.
-
-config:
-
-       "config" <symbol>
-       <config options>
-
-This defines a config symbol <symbol> and accepts any of above
-attributes as options.
-
-choices:
-
-       "choice"
-       <choice options>
-       <choice block>
-       "endchoice"
-
-This defines a choice group and accepts any of above attributes as
-options. A choice can only be of type bool or tristate, while a boolean
-choice only allows a single config entry to be selected, a tristate
-choice also allows any number of config entries to be set to 'm'. This
-can be used if multiple drivers for a single hardware exists and only a
-single driver can be compiled/loaded into the kernel, but all drivers
-can be compiled as modules.
-A choice accepts another option "optional", which allows to set the
-choice to 'n' and no entry needs to be selected.
-
-comment:
-
-       "comment" <prompt>
-       <comment options>
-
-This defines a comment which is displayed to the user during the
-configuration process and is also echoed to the output files. The only
-possible options are dependencies.
-
-menu:
-
-       "menu" <prompt>
-       <menu options>
-       <menu block>
-       "endmenu"
-
-This defines a menu block, see "Menu structure" above for more
-information. The only possible options are dependencies.
-
-if:
-
-       "if" <expr>
-       <if block>
-       "endif"
-
-This defines an if block. The dependency expression <expr> is appended
-to all enclosed menu entries.
-
-source:
-
-       "source" <prompt>
-
-This reads the specified configuration file. This file is always parsed.
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/Makefile
deleted file mode 100644 (file)
index 7399501..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-# Makefile for axTLS
-#
-# Copyright (C) 2002 Erik Andersen <andersen@codepoet.org>
-
-top_srcdir=../..
-top_builddir=../..
-srcdir=$(top_srcdir)/scripts/config
-include $(top_srcdir)/Rules.mak
-
-all: ncurses conf mconf
-
-ifeq ($(shell uname),SunOS)
-LIBS = -lcurses
-else
-LIBS = -lncurses
-endif
-ifeq (/usr/include/ncurses/ncurses.h, $(wildcard /usr/include/ncurses/ncurses.h))
-       HOSTNCURSES += -I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"
-else
-ifeq (/usr/include/ncurses/curses.h, $(wildcard /usr/include/ncurses/curses.h))
-       HOSTNCURSES += -I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"
-else
-ifeq (/usr/local/include/ncurses/ncurses.h, $(wildcard /usr/local/include/ncurses/ncurses.h))
-       HOSTCFLAGS += -I/usr/local/include/ncurses -DCURSES_LOC="<ncurses.h>"
-else
-ifeq (/usr/local/include/ncurses/curses.h, $(wildcard /usr/local/include/ncurses/curses.h))
-       HOSTCFLAGS += -I/usr/local/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"
-else
-ifeq (/usr/include/ncurses.h, $(wildcard /usr/include/ncurses.h))
-       HOSTNCURSES += -DCURSES_LOC="<ncurses.h>"
-else
-       HOSTNCURSES += -DCURSES_LOC="<curses.h>"
-endif
-endif
-endif
-endif
-endif
-
-CONF_SRC     = conf.c
-MCONF_SRC    = mconf.c
-LXD_SRC      = lxdialog/checklist.c lxdialog/menubox.c lxdialog/textbox.c \
-               lxdialog/yesno.c lxdialog/inputbox.c lxdialog/util.c \
-               lxdialog/msgbox.c
-
-SHARED_SRC   = zconf.tab.c
-SHARED_DEPS := $(srcdir)/lkc.h $(srcdir)/lkc_proto.h \
-               lkc_defs.h $(srcdir)/expr.h zconf.tab.h
-CONF_OBJS    = $(patsubst %.c,%.o, $(CONF_SRC))
-MCONF_OBJS   = $(patsubst %.c,%.o, $(MCONF_SRC) $(LXD_SRC))
-SHARED_OBJS  = $(patsubst %.c,%.o, $(SHARED_SRC))
-
-conf: $(CONF_OBJS) $(SHARED_OBJS)
-       $(HOSTCC) $(NATIVE_LDFLAGS) $^ -o $@
-
-mconf: $(MCONF_OBJS) $(SHARED_OBJS)
-       $(HOSTCC) $(NATIVE_LDFLAGS) $^ -o $@ $(LIBS)
-
-$(CONF_OBJS): %.o : $(srcdir)/%.c $(SHARED_DEPS)
-       $(HOSTCC) $(HOSTCFLAGS) -I. -c $< -o $@
-
-$(MCONF_OBJS): %.o : $(srcdir)/%.c $(SHARED_DEPS)
-       @[ -d $(@D) ] || mkdir -v $(@D)
-       $(HOSTCC) $(HOSTCFLAGS) $(HOSTNCURSES) -I. -c $< -o $@
-
-lkc_defs.h: $(srcdir)/lkc_proto.h
-       @sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
-
-###
-# The following requires flex/bison
-# By default we use the _shipped versions, uncomment the
-# following line if you are modifying the flex/bison src.
-#LKC_GENPARSER := 1
-
-ifdef LKC_GENPARSER
-
-%.tab.c %.tab.h: $(srcdir)/%.y
-       bison -t -d -v -b $* -p $(notdir $*) $<
-
-lex.%.c: $(srcdir)/%.l
-       flex -P$(notdir $*) -o$@ $<
-else
-
-lex.zconf.o: lex.zconf.c $(SHARED_DEPS)
-       $(HOSTCC) $(HOSTCFLAGS) -I$(srcdir) -c $< -o $@
-
-lex.zconf.c: $(srcdir)/lex.zconf.c_shipped
-       cp $< $@
-
-zconf.tab.c: $(srcdir)/zconf.tab.c_shipped
-       cp $< $@
-
-zconf.tab.h: $(srcdir)/zconf.tab.h_shipped
-       cp $< $@
-endif
-
-zconf.tab.o: zconf.tab.c lex.zconf.c $(srcdir)/confdata.c $(srcdir)/expr.c \
-             $(srcdir)/symbol.c $(srcdir)/menu.c $(SHARED_DEPS)
-       $(HOSTCC) $(HOSTCFLAGS) -I$(srcdir) -I. -c $< -o $@
-
-.PHONY: ncurses
-
-ncurses:
-       @echo "main() {}" > lxtemp.c
-       @if $(HOSTCC) lxtemp.c $(LIBS) ; then \
-               rm -f lxtemp.c a.out; \
-       else \
-               rm -f lxtemp.c; \
-               echo -e "\007" ;\
-               echo ">> Unable to find the Ncurses libraries." ;\
-               echo ">>" ;\
-               echo ">> You must have Ncurses installed in order" ;\
-               echo ">> to use 'make menuconfig'" ;\
-               echo ;\
-               exit 1 ;\
-       fi
-
-clean:
-       rm -f *.o *~ ../../*~ core *.exe $(TARGETS) $(MCONF_OBJS) $(CONF_OBJS)
-       rm -f conf conf.exe mconf mconf.exe zconf.tab.c zconf.tab.h lex.zconf.c lkc_defs.h
-       rm -f ../..config.h
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/conf.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/conf.c
deleted file mode 100644 (file)
index 1524467..0000000
+++ /dev/null
@@ -1,583 +0,0 @@
-/*
- * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <time.h>
-#include <sys/stat.h>
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-static void conf(struct menu *menu);
-static void check_conf(struct menu *menu);
-
-enum {
-       ask_all,
-       ask_new,
-       ask_silent,
-       set_default,
-       set_yes,
-       set_mod,
-       set_no,
-       set_random
-} input_mode = ask_all;
-char *defconfig_file;
-
-static int indent = 1;
-static int valid_stdin = 1;
-static int conf_cnt;
-static char line[128];
-static struct menu *rootEntry;
-
-static char nohelp_text[] = "Sorry, no help available for this option yet.\n";
-
-static void strip(char *str)
-{
-       char *p = str;
-       int l;
-
-       while ((isspace(*p)))
-               p++;
-       l = strlen(p);
-       if (p != str)
-               memmove(str, p, l + 1);
-       if (!l)
-               return;
-       p = str + l - 1;
-       while ((isspace(*p)))
-               *p-- = 0;
-}
-
-static void check_stdin(void)
-{
-       if (!valid_stdin && input_mode == ask_silent) {
-               printf("aborted!\n\n");
-               printf("Console input/output is redirected. ");
-               printf("Run 'make oldconfig' to update configuration.\n\n");
-               exit(1);
-       }
-}
-
-static void conf_askvalue(struct symbol *sym, const char *def)
-{
-       enum symbol_type type = sym_get_type(sym);
-       tristate val;
-
-       if (!sym_has_value(sym))
-               printf("(NEW) ");
-
-       line[0] = '\n';
-       line[1] = 0;
-
-       if (!sym_is_changable(sym)) {
-               printf("%s\n", def);
-               line[0] = '\n';
-               line[1] = 0;
-               return;
-       }
-
-       switch (input_mode) {
-       case ask_new:
-       case ask_silent:
-               if (sym_has_value(sym)) {
-                       printf("%s\n", def);
-                       return;
-               }
-               check_stdin();
-       case ask_all:
-               fflush(stdout);
-               fgets(line, 128, stdin);
-               return;
-       case set_default:
-               printf("%s\n", def);
-               return;
-       default:
-               break;
-       }
-
-       switch (type) {
-       case S_INT:
-       case S_HEX:
-       case S_STRING:
-               printf("%s\n", def);
-               return;
-       default:
-               ;
-       }
-       switch (input_mode) {
-       case set_yes:
-               if (sym_tristate_within_range(sym, yes)) {
-                       line[0] = 'y';
-                       line[1] = '\n';
-                       line[2] = 0;
-                       break;
-               }
-       case set_mod:
-               if (type == S_TRISTATE) {
-                       if (sym_tristate_within_range(sym, mod)) {
-                               line[0] = 'm';
-                               line[1] = '\n';
-                               line[2] = 0;
-                               break;
-                       }
-               } else {
-                       if (sym_tristate_within_range(sym, yes)) {
-                               line[0] = 'y';
-                               line[1] = '\n';
-                               line[2] = 0;
-                               break;
-                       }
-               }
-       case set_no:
-               if (sym_tristate_within_range(sym, no)) {
-                       line[0] = 'n';
-                       line[1] = '\n';
-                       line[2] = 0;
-                       break;
-               }
-       case set_random:
-               do {
-                       val = (tristate)(random() % 3);
-               } while (!sym_tristate_within_range(sym, val));
-               switch (val) {
-               case no: line[0] = 'n'; break;
-               case mod: line[0] = 'm'; break;
-               case yes: line[0] = 'y'; break;
-               }
-               line[1] = '\n';
-               line[2] = 0;
-               break;
-       default:
-               break;
-       }
-       printf("%s", line);
-}
-
-int conf_string(struct menu *menu)
-{
-       struct symbol *sym = menu->sym;
-       const char *def, *help;
-
-       while (1) {
-               printf("%*s%s ", indent - 1, "", menu->prompt->text);
-               printf("(%s) ", sym->name);
-               def = sym_get_string_value(sym);
-               if (sym_get_string_value(sym))
-                       printf("[%s] ", def);
-               conf_askvalue(sym, def);
-               switch (line[0]) {
-               case '\n':
-                       break;
-               case '?':
-                       /* print help */
-                       if (line[1] == '\n') {
-                               help = nohelp_text;
-                               if (menu->sym->help)
-                                       help = menu->sym->help;
-                               printf("\n%s\n", menu->sym->help);
-                               def = NULL;
-                               break;
-                       }
-               default:
-                       line[strlen(line)-1] = 0;
-                       def = line;
-               }
-               if (def && sym_set_string_value(sym, def))
-                       return 0;
-       }
-}
-
-static int conf_sym(struct menu *menu)
-{
-       struct symbol *sym = menu->sym;
-       int type;
-       tristate oldval, newval;
-       const char *help;
-
-       while (1) {
-               printf("%*s%s ", indent - 1, "", menu->prompt->text);
-               if (sym->name)
-                       printf("(%s) ", sym->name);
-               type = sym_get_type(sym);
-               putchar('[');
-               oldval = sym_get_tristate_value(sym);
-               switch (oldval) {
-               case no:
-                       putchar('N');
-                       break;
-               case mod:
-                       putchar('M');
-                       break;
-               case yes:
-                       putchar('Y');
-                       break;
-               }
-               if (oldval != no && sym_tristate_within_range(sym, no))
-                       printf("/n");
-               if (oldval != mod && sym_tristate_within_range(sym, mod))
-                       printf("/m");
-               if (oldval != yes && sym_tristate_within_range(sym, yes))
-                       printf("/y");
-               if (sym->help)
-                       printf("/?");
-               printf("] ");
-               conf_askvalue(sym, sym_get_string_value(sym));
-               strip(line);
-
-               switch (line[0]) {
-               case 'n':
-               case 'N':
-                       newval = no;
-                       if (!line[1] || !strcmp(&line[1], "o"))
-                               break;
-                       continue;
-               case 'm':
-               case 'M':
-                       newval = mod;
-                       if (!line[1])
-                               break;
-                       continue;
-               case 'y':
-               case 'Y':
-                       newval = yes;
-                       if (!line[1] || !strcmp(&line[1], "es"))
-                               break;
-                       continue;
-               case 0:
-                       newval = oldval;
-                       break;
-               case '?':
-                       goto help;
-               default:
-                       continue;
-               }
-               if (sym_set_tristate_value(sym, newval))
-                       return 0;
-help:
-               help = nohelp_text;
-               if (sym->help)
-                       help = sym->help;
-               printf("\n%s\n", help);
-       }
-}
-
-static int conf_choice(struct menu *menu)
-{
-       struct symbol *sym, *def_sym;
-       struct menu *child;
-       int type;
-       bool is_new;
-
-       sym = menu->sym;
-       type = sym_get_type(sym);
-       is_new = !sym_has_value(sym);
-       if (sym_is_changable(sym)) {
-               conf_sym(menu);
-               sym_calc_value(sym);
-               switch (sym_get_tristate_value(sym)) {
-               case no:
-                       return 1;
-               case mod:
-                       return 0;
-               case yes:
-                       break;
-               }
-       } else {
-               switch (sym_get_tristate_value(sym)) {
-               case no:
-                       return 1;
-               case mod:
-                       printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
-                       return 0;
-               case yes:
-                       break;
-               }
-       }
-
-       while (1) {
-               int cnt, def;
-
-               printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
-               def_sym = sym_get_choice_value(sym);
-               cnt = def = 0;
-               line[0] = '0';
-               line[1] = 0;
-               for (child = menu->list; child; child = child->next) {
-                       if (!menu_is_visible(child))
-                               continue;
-                       if (!child->sym) {
-                               printf("%*c %s\n", indent, '*', menu_get_prompt(child));
-                               continue;
-                       }
-                       cnt++;
-                       if (child->sym == def_sym) {
-                               def = cnt;
-                               printf("%*c", indent, '>');
-                       } else
-                               printf("%*c", indent, ' ');
-                       printf(" %d. %s", cnt, menu_get_prompt(child));
-                       if (child->sym->name)
-                               printf(" (%s)", child->sym->name);
-                       if (!sym_has_value(child->sym))
-                               printf(" (NEW)");
-                       printf("\n");
-               }
-               printf("%*schoice", indent - 1, "");
-               if (cnt == 1) {
-                       printf("[1]: 1\n");
-                       goto conf_childs;
-               }
-               printf("[1-%d", cnt);
-               if (sym->help)
-                       printf("?");
-               printf("]: ");
-               switch (input_mode) {
-               case ask_new:
-               case ask_silent:
-                       if (!is_new) {
-                               cnt = def;
-                               printf("%d\n", cnt);
-                               break;
-                       }
-                       check_stdin();
-               case ask_all:
-                       fflush(stdout);
-                       fgets(line, 128, stdin);
-                       strip(line);
-                       if (line[0] == '?') {
-                               printf("\n%s\n", menu->sym->help ?
-                                       menu->sym->help : nohelp_text);
-                               continue;
-                       }
-                       if (!line[0])
-                               cnt = def;
-                       else if (isdigit(line[0]))
-                               cnt = atoi(line);
-                       else
-                               continue;
-                       break;
-               case set_random:
-                       def = (random() % cnt) + 1;
-               case set_default:
-               case set_yes:
-               case set_mod:
-               case set_no:
-                       cnt = def;
-                       printf("%d\n", cnt);
-                       break;
-               }
-
-       conf_childs:
-               for (child = menu->list; child; child = child->next) {
-                       if (!child->sym || !menu_is_visible(child))
-                               continue;
-                       if (!--cnt)
-                               break;
-               }
-               if (!child)
-                       continue;
-               if (line[strlen(line) - 1] == '?') {
-                       printf("\n%s\n", child->sym->help ?
-                               child->sym->help : nohelp_text);
-                       continue;
-               }
-               sym_set_choice_value(sym, child->sym);
-               if (child->list) {
-                       indent += 2;
-                       conf(child->list);
-                       indent -= 2;
-               }
-               return 1;
-       }
-}
-
-static void conf(struct menu *menu)
-{
-       struct symbol *sym;
-       struct property *prop;
-       struct menu *child;
-
-       if (!menu_is_visible(menu))
-               return;
-
-       sym = menu->sym;
-       prop = menu->prompt;
-       if (prop) {
-               const char *prompt;
-
-               switch (prop->type) {
-               case P_MENU:
-                       if (input_mode == ask_silent && rootEntry != menu) {
-                               check_conf(menu);
-                               return;
-                       }
-               case P_COMMENT:
-                       prompt = menu_get_prompt(menu);
-                       if (prompt)
-                               printf("%*c\n%*c %s\n%*c\n",
-                                       indent, '*',
-                                       indent, '*', prompt,
-                                       indent, '*');
-               default:
-                       ;
-               }
-       }
-
-       if (!sym)
-               goto conf_childs;
-
-       if (sym_is_choice(sym)) {
-               conf_choice(menu);
-               if (sym->curr.tri != mod)
-                       return;
-               goto conf_childs;
-       }
-
-       switch (sym->type) {
-       case S_INT:
-       case S_HEX:
-       case S_STRING:
-               conf_string(menu);
-               break;
-       default:
-               conf_sym(menu);
-               break;
-       }
-
-conf_childs:
-       if (sym)
-               indent += 2;
-       for (child = menu->list; child; child = child->next)
-               conf(child);
-       if (sym)
-               indent -= 2;
-}
-
-static void check_conf(struct menu *menu)
-{
-       struct symbol *sym;
-       struct menu *child;
-
-       if (!menu_is_visible(menu))
-               return;
-
-       sym = menu->sym;
-       if (sym) {
-               if (sym_is_changable(sym) && !sym_has_value(sym)) {
-                       if (!conf_cnt++)
-                               printf("*\n* Restart config...\n*\n");
-                       rootEntry = menu_get_parent_menu(menu);
-                       conf(rootEntry);
-               }
-               if (sym_is_choice(sym) && sym_get_tristate_value(sym) != mod)
-                       return;
-       }
-
-       for (child = menu->list; child; child = child->next)
-               check_conf(child);
-}
-
-int main(int ac, char **av)
-{
-       int i = 1;
-       const char *name;
-       struct stat tmpstat;
-
-       if (ac > i && av[i][0] == '-') {
-               switch (av[i++][1]) {
-               case 'o':
-                       input_mode = ask_new;
-                       break;
-               case 's':
-                       input_mode = ask_silent;
-                       valid_stdin = isatty(0) && isatty(1) && isatty(2);
-                       break;
-               case 'd':
-                       input_mode = set_default;
-                       break;
-               case 'D':
-                       input_mode = set_default;
-                       defconfig_file = av[i++];
-                       if (!defconfig_file) {
-                               printf("%s: No default config file specified\n",
-                                       av[0]);
-                               exit(1);
-                       }
-                       break;
-               case 'n':
-                       input_mode = set_no;
-                       break;
-               case 'm':
-                       input_mode = set_mod;
-                       break;
-               case 'y':
-                       input_mode = set_yes;
-                       break;
-               case 'r':
-                       input_mode = set_random;
-                       srandom(time(NULL));
-                       break;
-               case 'h':
-               case '?':
-                       printf("%s [-o|-s] config\n", av[0]);
-                       exit(0);
-               }
-       }
-       name = av[i];
-       if (!name) {
-               printf("%s: configuration file missing\n", av[0]);
-       }
-       conf_parse(name);
-       //zconfdump(stdout);
-       switch (input_mode) {
-       case set_default:
-               if (!defconfig_file)
-                       defconfig_file = conf_get_default_confname();
-               if (conf_read(defconfig_file)) {
-                       printf("***\n"
-                               "*** Can't find default configuration \"%s\"!\n"
-                               "***\n", defconfig_file);
-                       exit(1);
-               }
-               break;
-       case ask_silent:
-               if (stat(".config", &tmpstat)) {
-                       printf("***\n"
-                               "*** You have not yet configured axTLS!\n"
-                               "***\n"
-                               "*** Please run some configurator (e.g. \"make oldconfig\" or\n"
-                               "*** \"make menuconfig\" or \"make config\").\n"
-                               "***\n");
-                       exit(1);
-               }
-       case ask_all:
-       case ask_new:
-               conf_read(NULL);
-               break;
-       default:
-               break;
-       }
-
-       if (input_mode != ask_silent) {
-               rootEntry = &rootmenu;
-               conf(&rootmenu);
-               if (input_mode == ask_all) {
-                       input_mode = ask_silent;
-                       valid_stdin = 1;
-               }
-       }
-       do {
-               conf_cnt = 0;
-               check_conf(&rootmenu);
-       } while (conf_cnt);
-       if (conf_write(NULL)) {
-               fprintf(stderr, "\n*** Error during writing of the axTLS configuration.\n\n");
-               return 1;
-       }
-       return 0;
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/confdata.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/confdata.c
deleted file mode 100644 (file)
index a59e245..0000000
+++ /dev/null
@@ -1,458 +0,0 @@
-/*
- * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-#include <sys/stat.h>
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-const char conf_def_filename[] = "config/.config";
-
-const char conf_defname[] = "config/defconfig";
-
-const char *conf_confnames[] = {
-       "config/.config",
-       conf_defname,
-       NULL,
-};
-
-static char *conf_expand_value(const char *in)
-{
-       struct symbol *sym;
-       const char *src;
-       static char res_value[SYMBOL_MAXLENGTH];
-       char *dst, name[SYMBOL_MAXLENGTH];
-
-       res_value[0] = 0;
-       dst = name;
-       while ((src = strchr(in, '$'))) {
-               strncat(res_value, in, src - in);
-               src++;
-               dst = name;
-               while (isalnum(*src) || *src == '_')
-                       *dst++ = *src++;
-               *dst = 0;
-               sym = sym_lookup(name, 0);
-               sym_calc_value(sym);
-               strcat(res_value, sym_get_string_value(sym));
-               in = src;
-       }
-       strcat(res_value, in);
-
-       return res_value;
-}
-
-char *conf_get_default_confname(void)
-{
-       struct stat buf;
-       static char fullname[PATH_MAX+1];
-       char *env, *name;
-
-       name = conf_expand_value(conf_defname);
-       env = getenv(SRCTREE);
-       if (env) {
-               sprintf(fullname, "%s/%s", env, name);
-               if (!stat(fullname, &buf))
-                       return fullname;
-       }
-       return name;
-}
-
-int conf_read(const char *name)
-{
-       FILE *in = NULL;
-       char line[1024];
-       char *p, *p2;
-       int lineno = 0;
-       struct symbol *sym;
-       struct property *prop;
-       struct expr *e;
-       int i;
-
-       if (name) {
-               in = zconf_fopen(name);
-       } else {
-               const char **names = conf_confnames;
-               while ((name = *names++)) {
-                       name = conf_expand_value(name);
-                       in = zconf_fopen(name);
-                       if (in) {
-                               printf("#\n"
-                                      "# using defaults found in %s\n"
-                                      "#\n", name);
-                               break;
-                       }
-               }
-       }
-
-       if (!in)
-               return 1;
-
-       for_all_symbols(i, sym) {
-               sym->flags |= SYMBOL_NEW | SYMBOL_CHANGED;
-               sym->flags &= ~SYMBOL_VALID;
-               switch (sym->type) {
-               case S_INT:
-               case S_HEX:
-               case S_STRING:
-                       if (sym->user.val)
-                               free(sym->user.val);
-               default:
-                       sym->user.val = NULL;
-                       sym->user.tri = no;
-               }
-       }
-
-       while (fgets(line, sizeof(line), in)) {
-               lineno++;
-               sym = NULL;
-               switch (line[0]) {
-               case '#':
-                       if (line[1]!=' ')
-                               continue;
-                       p = strchr(line + 2, ' ');
-                       if (!p)
-                               continue;
-                       *p++ = 0;
-                       if (strncmp(p, "is not set", 10))
-                               continue;
-                       sym = sym_find(line + 2);
-                       if (!sym) {
-                               fprintf(stderr, "%s:%d: trying to assign nonexistent symbol %s\n", name, lineno, line + 2);
-                               break;
-                       }
-                       switch (sym->type) {
-                       case S_BOOLEAN:
-                       case S_TRISTATE:
-                               sym->user.tri = no;
-                               sym->flags &= ~SYMBOL_NEW;
-                               break;
-                       default:
-                               ;
-                       }
-                       break;
-
-               case 'A' ... 'Z':
-                       p = strchr(line, '=');
-                       if (!p)
-                               continue;
-                       *p++ = 0;
-                       p2 = strchr(p, '\n');
-                       if (p2)
-                               *p2 = 0;
-                       sym = sym_find(line);
-                       if (!sym) {
-                               fprintf(stderr, "%s:%d: trying to assign nonexistent symbol %s\n", name, lineno, line);
-                               break;
-                       }
-                       switch (sym->type) {
-                       case S_TRISTATE:
-                               if (p[0] == 'm') {
-                                       sym->user.tri = mod;
-                                       sym->flags &= ~SYMBOL_NEW;
-                                       break;
-                               }
-                       case S_BOOLEAN:
-                               if (p[0] == 'y') {
-                                       sym->user.tri = yes;
-                                       sym->flags &= ~SYMBOL_NEW;
-                                       break;
-                               }
-                               if (p[0] == 'n') {
-                                       sym->user.tri = no;
-                                       sym->flags &= ~SYMBOL_NEW;
-                                       break;
-                               }
-                               break;
-                       case S_STRING:
-                               if (*p++ != '"')
-                                       break;
-                               for (p2 = p; (p2 = strpbrk(p2, "\"\\")); p2++) {
-                                       if (*p2 == '"') {
-                                               *p2 = 0;
-                                               break;
-                                       }
-                                       memmove(p2, p2 + 1, strlen(p2));
-                               }
-                               if (!p2) {
-                                       fprintf(stderr, "%s:%d: invalid string found\n", name, lineno);
-                                       exit(1);
-                               }
-                       case S_INT:
-                       case S_HEX:
-                               if (sym_string_valid(sym, p)) {
-                                       sym->user.val = strdup(p);
-                                       sym->flags &= ~SYMBOL_NEW;
-                               } else {
-                                       fprintf(stderr, "%s:%d: symbol value '%s' invalid for %s\n", name, lineno, p, sym->name);
-                                       exit(1);
-                               }
-                               break;
-                       default:
-                               ;
-                       }
-                       break;
-               case '\n':
-                       break;
-               default:
-                       continue;
-               }
-               if (sym && sym_is_choice_value(sym)) {
-                       struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym));
-                       switch (sym->user.tri) {
-                       case no:
-                               break;
-                       case mod:
-                               if (cs->user.tri == yes)
-                                       /* warn? */;
-                               break;
-                       case yes:
-                               if (cs->user.tri != no)
-                                       /* warn? */;
-                               cs->user.val = sym;
-                               break;
-                       }
-                       cs->user.tri = E_OR(cs->user.tri, sym->user.tri);
-                       cs->flags &= ~SYMBOL_NEW;
-               }
-       }
-       fclose(in);
-
-       if (modules_sym)
-               sym_calc_value(modules_sym);
-       for_all_symbols(i, sym) {
-               sym_calc_value(sym);
-               if (sym_has_value(sym) && !sym_is_choice_value(sym)) {
-                       if (sym->visible == no)
-                               sym->flags |= SYMBOL_NEW;
-                       switch (sym->type) {
-                       case S_STRING:
-                       case S_INT:
-                       case S_HEX:
-                               if (!sym_string_within_range(sym, sym->user.val))
-                                       sym->flags |= SYMBOL_NEW;
-                       default:
-                               break;
-                       }
-               }
-               if (!sym_is_choice(sym))
-                       continue;
-               prop = sym_get_choice_prop(sym);
-               for (e = prop->expr; e; e = e->left.expr)
-                       if (e->right.sym->visible != no)
-                               sym->flags |= e->right.sym->flags & SYMBOL_NEW;
-       }
-
-       sym_change_count = 1;
-
-       return 0;
-}
-
-struct menu *next_menu(struct menu *menu)
-{
-       if (menu->list) return menu->list;
-       do {
-               if (menu->next) {
-                       menu = menu->next;
-                       break;
-               }
-       } while ((menu = menu->parent));
-       
-       return menu;
-}
-
-#define SYMBOL_FORCEWRITE (1<<31)
-
-int conf_write(const char *name)
-{
-       FILE *out, *out_h;
-       struct symbol *sym;
-       struct menu *menu;
-       const char *basename;
-       char dirname[128], tmpname[128], newname[128];
-       int type, l;
-       const char *str;
-
-       dirname[0] = 0;
-       if (name && name[0]) {
-               struct stat st;
-               char *slash;
-
-               if (!stat(name, &st) && S_ISDIR(st.st_mode)) {
-                       strcpy(dirname, name);
-                       strcat(dirname, "/");
-                       basename = conf_def_filename;
-               } else if ((slash = strrchr(name, '/'))) {
-                       int size = slash - name + 1;
-                       memcpy(dirname, name, size);
-                       dirname[size] = 0;
-                       if (slash[1])
-                               basename = slash + 1;
-                       else
-                               basename = conf_def_filename;
-               } else
-                       basename = name;
-       } else
-               basename = conf_def_filename;
-
-       sprintf(newname, "config/%s.tmpconfig.%d", dirname, (int)getpid());
-       out = fopen(newname, "w");
-       if (!out)
-               return 1;
-       out_h = NULL;
-       if (!name) {
-               out_h = fopen("config/.tmpconfig.h", "w");
-               if (!out_h)
-                       return 1;
-       }
-       fprintf(out, "#\n"
-                    "# Automatically generated make config: don't edit\n"
-                    "#\n");
-       if (out_h) {
-               fprintf(out_h, "/*\n"
-                            " * Automatically generated header file: don't edit\n"
-                            " */\n\n");
-#if 0
-                            "/* Version Number */\n"
-                            "#define BB_VER \"%s\"\n"
-                            "#define BB_BT \"%s\"\n",
-                            getenv("VERSION"),
-                            getenv("BUILDTIME"));
-               if (getenv("EXTRA_VERSION"))
-                       fprintf(out_h, "#define BB_EXTRA_VERSION \"%s\"\n",
-                                    getenv("EXTRA_VERSION"));
-               fprintf(out_h, "\n");
-#endif
-       }
-
-       if (!sym_change_count)
-               sym_clear_all_valid();
-
-       /* Force write of all non-duplicate symbols. */
-
-       /* Write out everything by default. */
-       for(menu = rootmenu.list; menu; menu = next_menu(menu))
-               if (menu->sym) menu->sym->flags |= SYMBOL_FORCEWRITE;
-
-       menu = rootmenu.list;
-       while (menu) {
-               sym = menu->sym;
-               if (!sym) {
-                       if (!menu_is_visible(menu))
-                               goto next;
-                       str = menu_get_prompt(menu);
-                       fprintf(out, "\n"
-                                    "#\n"
-                                    "# %s\n"
-                                    "#\n", str);
-                       if (out_h)
-                               fprintf(out_h, "\n"
-                                              "/*\n"
-                                              " * %s\n"
-                                              " */\n", str);
-               } else if (!(sym->flags & SYMBOL_CHOICE)) {
-                       sym_calc_value(sym);
-                       if (!(sym->flags & SYMBOL_FORCEWRITE))
-                               goto next;
-
-                       sym->flags &= ~SYMBOL_FORCEWRITE;
-                       type = sym->type;
-                       if (type == S_TRISTATE) {
-                               sym_calc_value(modules_sym);
-                               if (modules_sym->curr.tri == no)
-                                       type = S_BOOLEAN;
-                       }
-                       switch (type) {
-                       case S_BOOLEAN:
-                       case S_TRISTATE:
-                               switch (sym_get_tristate_value(sym)) {
-                               case no:
-                                       fprintf(out, "# %s is not set\n", sym->name);
-                                       if (out_h)
-                                               fprintf(out_h, "#undef %s\n", sym->name);
-                                       break;
-                               case mod:
-#if 0
-                                       fprintf(out, "%s=m\n", sym->name);
-                                       if (out_h)
-                                               fprintf(out_h, "#define %s_MODULE 1\n", sym->name);
-#endif
-                                       break;
-                               case yes:
-                                       fprintf(out, "%s=y\n", sym->name);
-                                       if (out_h)
-                                               fprintf(out_h, "#define %s 1\n", sym->name);
-                                       break;
-                               }
-                               break;
-                       case S_STRING:
-                               // fix me
-                               str = sym_get_string_value(sym);
-                               fprintf(out, "%s=\"", sym->name);
-                               if (out_h)
-                                       fprintf(out_h, "#define %s \"", sym->name);
-                               do {
-                                       l = strcspn(str, "\"\\");
-                                       if (l) {
-                                               fwrite(str, l, 1, out);
-                                               if (out_h)
-                                                       fwrite(str, l, 1, out_h);
-                                       }
-                                       str += l;
-                                       while (*str == '\\' || *str == '"') {
-                                               fprintf(out, "\\%c", *str);
-                                               if (out_h)
-                                                       fprintf(out_h, "\\%c", *str);
-                                               str++;
-                                       }
-                               } while (*str);
-                               fputs("\"\n", out);
-                               if (out_h)
-                                       fputs("\"\n", out_h);
-                               break;
-                       case S_HEX:
-                               str = sym_get_string_value(sym);
-                               if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
-                                       fprintf(out, "%s=%s\n", sym->name, *str ? str : "0");
-                                       if (out_h)
-                                               fprintf(out_h, "#define %s 0x%s\n", sym->name, str);
-                                       break;
-                               }
-                       case S_INT:
-                               str = sym_get_string_value(sym);
-                               fprintf(out, "%s=%s\n", sym->name, *str ? str : "0");
-                               if (out_h)
-                                       fprintf(out_h, "#define %s %s\n", sym->name, str);
-                               break;
-                       }
-               }
-next:
-               menu = next_menu(menu);
-       }
-       fclose(out);
-       if (out_h) {
-               fclose(out_h);
-               rename("config/.tmpconfig.h", "config/config.h");
-               file_write_dep(NULL);
-       }
-       if (!name || basename != conf_def_filename) {
-               if (!name)
-                       name = conf_def_filename;
-               sprintf(tmpname, "%s.old", name);
-               rename(name, tmpname);
-       }
-       sprintf(tmpname, "%s%s", dirname, basename);
-       if (rename(newname, tmpname))
-               return 1;
-
-       sym_change_count = 0;
-
-       return 0;
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/expr.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/expr.c
deleted file mode 100644 (file)
index 30e4f9d..0000000
+++ /dev/null
@@ -1,1099 +0,0 @@
-/*
- * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-#define DEBUG_EXPR     0
-
-struct expr *expr_alloc_symbol(struct symbol *sym)
-{
-       struct expr *e = malloc(sizeof(*e));
-       memset(e, 0, sizeof(*e));
-       e->type = E_SYMBOL;
-       e->left.sym = sym;
-       return e;
-}
-
-struct expr *expr_alloc_one(enum expr_type type, struct expr *ce)
-{
-       struct expr *e = malloc(sizeof(*e));
-       memset(e, 0, sizeof(*e));
-       e->type = type;
-       e->left.expr = ce;
-       return e;
-}
-
-struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct expr *e2)
-{
-       struct expr *e = malloc(sizeof(*e));
-       memset(e, 0, sizeof(*e));
-       e->type = type;
-       e->left.expr = e1;
-       e->right.expr = e2;
-       return e;
-}
-
-struct expr *expr_alloc_comp(enum expr_type type, struct symbol *s1, struct symbol *s2)
-{
-       struct expr *e = malloc(sizeof(*e));
-       memset(e, 0, sizeof(*e));
-       e->type = type;
-       e->left.sym = s1;
-       e->right.sym = s2;
-       return e;
-}
-
-struct expr *expr_alloc_and(struct expr *e1, struct expr *e2)
-{
-       if (!e1)
-               return e2;
-       return e2 ? expr_alloc_two(E_AND, e1, e2) : e1;
-}
-
-struct expr *expr_alloc_or(struct expr *e1, struct expr *e2)
-{
-       if (!e1)
-               return e2;
-       return e2 ? expr_alloc_two(E_OR, e1, e2) : e1;
-}
-
-struct expr *expr_copy(struct expr *org)
-{
-       struct expr *e;
-
-       if (!org)
-               return NULL;
-
-       e = malloc(sizeof(*org));
-       memcpy(e, org, sizeof(*org));
-       switch (org->type) {
-       case E_SYMBOL:
-               e->left = org->left;
-               break;
-       case E_NOT:
-               e->left.expr = expr_copy(org->left.expr);
-               break;
-       case E_EQUAL:
-       case E_UNEQUAL:
-               e->left.sym = org->left.sym;
-               e->right.sym = org->right.sym;
-               break;
-       case E_AND:
-       case E_OR:
-       case E_CHOICE:
-               e->left.expr = expr_copy(org->left.expr);
-               e->right.expr = expr_copy(org->right.expr);
-               break;
-       default:
-               printf("can't copy type %d\n", e->type);
-               free(e);
-               e = NULL;
-               break;
-       }
-
-       return e;
-}
-
-void expr_free(struct expr *e)
-{
-       if (!e)
-               return;
-
-       switch (e->type) {
-       case E_SYMBOL:
-               break;
-       case E_NOT:
-               expr_free(e->left.expr);
-               return;
-       case E_EQUAL:
-       case E_UNEQUAL:
-               break;
-       case E_OR:
-       case E_AND:
-               expr_free(e->left.expr);
-               expr_free(e->right.expr);
-               break;
-       default:
-               printf("how to free type %d?\n", e->type);
-               break;
-       }
-       free(e);
-}
-
-static int trans_count;
-
-#define e1 (*ep1)
-#define e2 (*ep2)
-
-static void __expr_eliminate_eq(enum expr_type type, struct expr **ep1, struct expr **ep2)
-{
-       if (e1->type == type) {
-               __expr_eliminate_eq(type, &e1->left.expr, &e2);
-               __expr_eliminate_eq(type, &e1->right.expr, &e2);
-               return;
-       }
-       if (e2->type == type) {
-               __expr_eliminate_eq(type, &e1, &e2->left.expr);
-               __expr_eliminate_eq(type, &e1, &e2->right.expr);
-               return;
-       }
-       if (e1->type == E_SYMBOL && e2->type == E_SYMBOL &&
-           e1->left.sym == e2->left.sym && (e1->left.sym->flags & (SYMBOL_YES|SYMBOL_NO)))
-               return;
-       if (!expr_eq(e1, e2))
-               return;
-       trans_count++;
-       expr_free(e1); expr_free(e2);
-       switch (type) {
-       case E_OR:
-               e1 = expr_alloc_symbol(&symbol_no);
-               e2 = expr_alloc_symbol(&symbol_no);
-               break;
-       case E_AND:
-               e1 = expr_alloc_symbol(&symbol_yes);
-               e2 = expr_alloc_symbol(&symbol_yes);
-               break;
-       default:
-               ;
-       }
-}
-
-void expr_eliminate_eq(struct expr **ep1, struct expr **ep2)
-{
-       if (!e1 || !e2)
-               return;
-       switch (e1->type) {
-       case E_OR:
-       case E_AND:
-               __expr_eliminate_eq(e1->type, ep1, ep2);
-       default:
-               ;
-       }
-       if (e1->type != e2->type) switch (e2->type) {
-       case E_OR:
-       case E_AND:
-               __expr_eliminate_eq(e2->type, ep1, ep2);
-       default:
-               ;
-       }
-       e1 = expr_eliminate_yn(e1);
-       e2 = expr_eliminate_yn(e2);
-}
-
-#undef e1
-#undef e2
-
-int expr_eq(struct expr *e1, struct expr *e2)
-{
-       int res, old_count;
-
-       if (e1->type != e2->type)
-               return 0;
-       switch (e1->type) {
-       case E_EQUAL:
-       case E_UNEQUAL:
-               return e1->left.sym == e2->left.sym && e1->right.sym == e2->right.sym;
-       case E_SYMBOL:
-               return e1->left.sym == e2->left.sym;
-       case E_NOT:
-               return expr_eq(e1->left.expr, e2->left.expr);
-       case E_AND:
-       case E_OR:
-               e1 = expr_copy(e1);
-               e2 = expr_copy(e2);
-               old_count = trans_count;
-               expr_eliminate_eq(&e1, &e2);
-               res = (e1->type == E_SYMBOL && e2->type == E_SYMBOL &&
-                      e1->left.sym == e2->left.sym);
-               expr_free(e1);
-               expr_free(e2);
-               trans_count = old_count;
-               return res;
-       case E_CHOICE:
-       case E_RANGE:
-       case E_NONE:
-               /* panic */;
-       }
-
-       if (DEBUG_EXPR) {
-               expr_fprint(e1, stdout);
-               printf(" = ");
-               expr_fprint(e2, stdout);
-               printf(" ?\n");
-       }
-
-       return 0;
-}
-
-struct expr *expr_eliminate_yn(struct expr *e)
-{
-       struct expr *tmp;
-
-       if (e) switch (e->type) {
-       case E_AND:
-               e->left.expr = expr_eliminate_yn(e->left.expr);
-               e->right.expr = expr_eliminate_yn(e->right.expr);
-               if (e->left.expr->type == E_SYMBOL) {
-                       if (e->left.expr->left.sym == &symbol_no) {
-                               expr_free(e->left.expr);
-                               expr_free(e->right.expr);
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_no;
-                               e->right.expr = NULL;
-                               return e;
-                       } else if (e->left.expr->left.sym == &symbol_yes) {
-                               free(e->left.expr);
-                               tmp = e->right.expr;
-                               *e = *(e->right.expr);
-                               free(tmp);
-                               return e;
-                       }
-               }
-               if (e->right.expr->type == E_SYMBOL) {
-                       if (e->right.expr->left.sym == &symbol_no) {
-                               expr_free(e->left.expr);
-                               expr_free(e->right.expr);
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_no;
-                               e->right.expr = NULL;
-                               return e;
-                       } else if (e->right.expr->left.sym == &symbol_yes) {
-                               free(e->right.expr);
-                               tmp = e->left.expr;
-                               *e = *(e->left.expr);
-                               free(tmp);
-                               return e;
-                       }
-               }
-               break;
-       case E_OR:
-               e->left.expr = expr_eliminate_yn(e->left.expr);
-               e->right.expr = expr_eliminate_yn(e->right.expr);
-               if (e->left.expr->type == E_SYMBOL) {
-                       if (e->left.expr->left.sym == &symbol_no) {
-                               free(e->left.expr);
-                               tmp = e->right.expr;
-                               *e = *(e->right.expr);
-                               free(tmp);
-                               return e;
-                       } else if (e->left.expr->left.sym == &symbol_yes) {
-                               expr_free(e->left.expr);
-                               expr_free(e->right.expr);
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_yes;
-                               e->right.expr = NULL;
-                               return e;
-                       }
-               }
-               if (e->right.expr->type == E_SYMBOL) {
-                       if (e->right.expr->left.sym == &symbol_no) {
-                               free(e->right.expr);
-                               tmp = e->left.expr;
-                               *e = *(e->left.expr);
-                               free(tmp);
-                               return e;
-                       } else if (e->right.expr->left.sym == &symbol_yes) {
-                               expr_free(e->left.expr);
-                               expr_free(e->right.expr);
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_yes;
-                               e->right.expr = NULL;
-                               return e;
-                       }
-               }
-               break;
-       default:
-               ;
-       }
-       return e;
-}
-
-/*
- * bool FOO!=n => FOO
- */
-struct expr *expr_trans_bool(struct expr *e)
-{
-       if (!e)
-               return NULL;
-       switch (e->type) {
-       case E_AND:
-       case E_OR:
-       case E_NOT:
-               e->left.expr = expr_trans_bool(e->left.expr);
-               e->right.expr = expr_trans_bool(e->right.expr);
-               break;
-       case E_UNEQUAL:
-               // FOO!=n -> FOO
-               if (e->left.sym->type == S_TRISTATE) {
-                       if (e->right.sym == &symbol_no) {
-                               e->type = E_SYMBOL;
-                               e->right.sym = NULL;
-                       }
-               }
-               break;
-       default:
-               ;
-       }
-       return e;
-}
-
-/*
- * e1 || e2 -> ?
- */
-struct expr *expr_join_or(struct expr *e1, struct expr *e2)
-{
-       struct expr *tmp;
-       struct symbol *sym1, *sym2;
-
-       if (expr_eq(e1, e2))
-               return expr_copy(e1);
-       if (e1->type != E_EQUAL && e1->type != E_UNEQUAL && e1->type != E_SYMBOL && e1->type != E_NOT)
-               return NULL;
-       if (e2->type != E_EQUAL && e2->type != E_UNEQUAL && e2->type != E_SYMBOL && e2->type != E_NOT)
-               return NULL;
-       if (e1->type == E_NOT) {
-               tmp = e1->left.expr;
-               if (tmp->type != E_EQUAL && tmp->type != E_UNEQUAL && tmp->type != E_SYMBOL)
-                       return NULL;
-               sym1 = tmp->left.sym;
-       } else
-               sym1 = e1->left.sym;
-       if (e2->type == E_NOT) {
-               if (e2->left.expr->type != E_SYMBOL)
-                       return NULL;
-               sym2 = e2->left.expr->left.sym;
-       } else
-               sym2 = e2->left.sym;
-       if (sym1 != sym2)
-               return NULL;
-       if (sym1->type != S_BOOLEAN && sym1->type != S_TRISTATE)
-               return NULL;
-       if (sym1->type == S_TRISTATE) {
-               if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
-                   ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) ||
-                    (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) {
-                       // (a='y') || (a='m') -> (a!='n')
-                       return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_no);
-               }
-               if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
-                   ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) ||
-                    (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) {
-                       // (a='y') || (a='n') -> (a!='m')
-                       return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_mod);
-               }
-               if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
-                   ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) ||
-                    (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) {
-                       // (a='m') || (a='n') -> (a!='y')
-                       return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_yes);
-               }
-       }
-       if (sym1->type == S_BOOLEAN && sym1 == sym2) {
-               if ((e1->type == E_NOT && e1->left.expr->type == E_SYMBOL && e2->type == E_SYMBOL) ||
-                   (e2->type == E_NOT && e2->left.expr->type == E_SYMBOL && e1->type == E_SYMBOL))
-                       return expr_alloc_symbol(&symbol_yes);
-       }
-
-       if (DEBUG_EXPR) {
-               printf("optimize (");
-               expr_fprint(e1, stdout);
-               printf(") || (");
-               expr_fprint(e2, stdout);
-               printf(")?\n");
-       }
-       return NULL;
-}
-
-struct expr *expr_join_and(struct expr *e1, struct expr *e2)
-{
-       struct expr *tmp;
-       struct symbol *sym1, *sym2;
-
-       if (expr_eq(e1, e2))
-               return expr_copy(e1);
-       if (e1->type != E_EQUAL && e1->type != E_UNEQUAL && e1->type != E_SYMBOL && e1->type != E_NOT)
-               return NULL;
-       if (e2->type != E_EQUAL && e2->type != E_UNEQUAL && e2->type != E_SYMBOL && e2->type != E_NOT)
-               return NULL;
-       if (e1->type == E_NOT) {
-               tmp = e1->left.expr;
-               if (tmp->type != E_EQUAL && tmp->type != E_UNEQUAL && tmp->type != E_SYMBOL)
-                       return NULL;
-               sym1 = tmp->left.sym;
-       } else
-               sym1 = e1->left.sym;
-       if (e2->type == E_NOT) {
-               if (e2->left.expr->type != E_SYMBOL)
-                       return NULL;
-               sym2 = e2->left.expr->left.sym;
-       } else
-               sym2 = e2->left.sym;
-       if (sym1 != sym2)
-               return NULL;
-       if (sym1->type != S_BOOLEAN && sym1->type != S_TRISTATE)
-               return NULL;
-
-       if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) ||
-           (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes))
-               // (a) && (a='y') -> (a='y')
-               return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
-
-       if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) ||
-           (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no))
-               // (a) && (a!='n') -> (a)
-               return expr_alloc_symbol(sym1);
-
-       if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) ||
-           (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod))
-               // (a) && (a!='m') -> (a='y')
-               return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
-
-       if (sym1->type == S_TRISTATE) {
-               if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) {
-                       // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b'
-                       sym2 = e1->right.sym;
-                       if ((e2->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST))
-                               return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2)
-                                                            : expr_alloc_symbol(&symbol_no);
-               }
-               if (e1->type == E_UNEQUAL && e2->type == E_EQUAL) {
-                       // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b'
-                       sym2 = e2->right.sym;
-                       if ((e1->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST))
-                               return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2)
-                                                            : expr_alloc_symbol(&symbol_no);
-               }
-               if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
-                          ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) ||
-                           (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes)))
-                       // (a!='y') && (a!='n') -> (a='m')
-                       return expr_alloc_comp(E_EQUAL, sym1, &symbol_mod);
-
-               if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
-                          ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) ||
-                           (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes)))
-                       // (a!='y') && (a!='m') -> (a='n')
-                       return expr_alloc_comp(E_EQUAL, sym1, &symbol_no);
-
-               if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
-                          ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) ||
-                           (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod)))
-                       // (a!='m') && (a!='n') -> (a='m')
-                       return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
-
-               if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) ||
-                   (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_mod) ||
-                   (e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_yes) ||
-                   (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_yes))
-                       return NULL;
-       }
-
-       if (DEBUG_EXPR) {
-               printf("optimize (");
-               expr_fprint(e1, stdout);
-               printf(") && (");
-               expr_fprint(e2, stdout);
-               printf(")?\n");
-       }
-       return NULL;
-}
-
-static void expr_eliminate_dups1(enum expr_type type, struct expr **ep1, struct expr **ep2)
-{
-#define e1 (*ep1)
-#define e2 (*ep2)
-       struct expr *tmp;
-
-       if (e1->type == type) {
-               expr_eliminate_dups1(type, &e1->left.expr, &e2);
-               expr_eliminate_dups1(type, &e1->right.expr, &e2);
-               return;
-       }
-       if (e2->type == type) {
-               expr_eliminate_dups1(type, &e1, &e2->left.expr);
-               expr_eliminate_dups1(type, &e1, &e2->right.expr);
-               return;
-       }
-       if (e1 == e2)
-               return;
-
-       switch (e1->type) {
-       case E_OR: case E_AND:
-               expr_eliminate_dups1(e1->type, &e1, &e1);
-       default:
-               ;
-       }
-
-       switch (type) {
-       case E_OR:
-               tmp = expr_join_or(e1, e2);
-               if (tmp) {
-                       expr_free(e1); expr_free(e2);
-                       e1 = expr_alloc_symbol(&symbol_no);
-                       e2 = tmp;
-                       trans_count++;
-               }
-               break;
-       case E_AND:
-               tmp = expr_join_and(e1, e2);
-               if (tmp) {
-                       expr_free(e1); expr_free(e2);
-                       e1 = expr_alloc_symbol(&symbol_yes);
-                       e2 = tmp;
-                       trans_count++;
-               }
-               break;
-       default:
-               ;
-       }
-#undef e1
-#undef e2
-}
-
-static void expr_eliminate_dups2(enum expr_type type, struct expr **ep1, struct expr **ep2)
-{
-#define e1 (*ep1)
-#define e2 (*ep2)
-       struct expr *tmp, *tmp1, *tmp2;
-
-       if (e1->type == type) {
-               expr_eliminate_dups2(type, &e1->left.expr, &e2);
-               expr_eliminate_dups2(type, &e1->right.expr, &e2);
-               return;
-       }
-       if (e2->type == type) {
-               expr_eliminate_dups2(type, &e1, &e2->left.expr);
-               expr_eliminate_dups2(type, &e1, &e2->right.expr);
-       }
-       if (e1 == e2)
-               return;
-
-       switch (e1->type) {
-       case E_OR:
-               expr_eliminate_dups2(e1->type, &e1, &e1);
-               // (FOO || BAR) && (!FOO && !BAR) -> n
-               tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1)));
-               tmp2 = expr_copy(e2);
-               tmp = expr_extract_eq_and(&tmp1, &tmp2);
-               if (expr_is_yes(tmp1)) {
-                       expr_free(e1);
-                       e1 = expr_alloc_symbol(&symbol_no);
-                       trans_count++;
-               }
-               expr_free(tmp2);
-               expr_free(tmp1);
-               expr_free(tmp);
-               break;
-       case E_AND:
-               expr_eliminate_dups2(e1->type, &e1, &e1);
-               // (FOO && BAR) || (!FOO || !BAR) -> y
-               tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1)));
-               tmp2 = expr_copy(e2);
-               tmp = expr_extract_eq_or(&tmp1, &tmp2);
-               if (expr_is_no(tmp1)) {
-                       expr_free(e1);
-                       e1 = expr_alloc_symbol(&symbol_yes);
-                       trans_count++;
-               }
-               expr_free(tmp2);
-               expr_free(tmp1);
-               expr_free(tmp);
-               break;
-       default:
-               ;
-       }
-#undef e1
-#undef e2
-}
-
-struct expr *expr_eliminate_dups(struct expr *e)
-{
-       int oldcount;
-       if (!e)
-               return e;
-
-       oldcount = trans_count;
-       while (1) {
-               trans_count = 0;
-               switch (e->type) {
-               case E_OR: case E_AND:
-                       expr_eliminate_dups1(e->type, &e, &e);
-                       expr_eliminate_dups2(e->type, &e, &e);
-               default:
-                       ;
-               }
-               if (!trans_count)
-                       break;
-               e = expr_eliminate_yn(e);
-       }
-       trans_count = oldcount;
-       return e;
-}
-
-struct expr *expr_transform(struct expr *e)
-{
-       struct expr *tmp;
-
-       if (!e)
-               return NULL;
-       switch (e->type) {
-       case E_EQUAL:
-       case E_UNEQUAL:
-       case E_SYMBOL:
-       case E_CHOICE:
-               break;
-       default:
-               e->left.expr = expr_transform(e->left.expr);
-               e->right.expr = expr_transform(e->right.expr);
-       }
-
-       switch (e->type) {
-       case E_EQUAL:
-               if (e->left.sym->type != S_BOOLEAN)
-                       break;
-               if (e->right.sym == &symbol_no) {
-                       e->type = E_NOT;
-                       e->left.expr = expr_alloc_symbol(e->left.sym);
-                       e->right.sym = NULL;
-                       break;
-               }
-               if (e->right.sym == &symbol_mod) {
-                       printf("boolean symbol %s tested for 'm'? test forced to 'n'\n", e->left.sym->name);
-                       e->type = E_SYMBOL;
-                       e->left.sym = &symbol_no;
-                       e->right.sym = NULL;
-                       break;
-               }
-               if (e->right.sym == &symbol_yes) {
-                       e->type = E_SYMBOL;
-                       e->right.sym = NULL;
-                       break;
-               }
-               break;
-       case E_UNEQUAL:
-               if (e->left.sym->type != S_BOOLEAN)
-                       break;
-               if (e->right.sym == &symbol_no) {
-                       e->type = E_SYMBOL;
-                       e->right.sym = NULL;
-                       break;
-               }
-               if (e->right.sym == &symbol_mod) {
-                       printf("boolean symbol %s tested for 'm'? test forced to 'y'\n", e->left.sym->name);
-                       e->type = E_SYMBOL;
-                       e->left.sym = &symbol_yes;
-                       e->right.sym = NULL;
-                       break;
-               }
-               if (e->right.sym == &symbol_yes) {
-                       e->type = E_NOT;
-                       e->left.expr = expr_alloc_symbol(e->left.sym);
-                       e->right.sym = NULL;
-                       break;
-               }
-               break;
-       case E_NOT:
-               switch (e->left.expr->type) {
-               case E_NOT:
-                       // !!a -> a
-                       tmp = e->left.expr->left.expr;
-                       free(e->left.expr);
-                       free(e);
-                       e = tmp;
-                       e = expr_transform(e);
-                       break;
-               case E_EQUAL:
-               case E_UNEQUAL:
-                       // !a='x' -> a!='x'
-                       tmp = e->left.expr;
-                       free(e);
-                       e = tmp;
-                       e->type = e->type == E_EQUAL ? E_UNEQUAL : E_EQUAL;
-                       break;
-               case E_OR:
-                       // !(a || b) -> !a && !b
-                       tmp = e->left.expr;
-                       e->type = E_AND;
-                       e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr);
-                       tmp->type = E_NOT;
-                       tmp->right.expr = NULL;
-                       e = expr_transform(e);
-                       break;
-               case E_AND:
-                       // !(a && b) -> !a || !b
-                       tmp = e->left.expr;
-                       e->type = E_OR;
-                       e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr);
-                       tmp->type = E_NOT;
-                       tmp->right.expr = NULL;
-                       e = expr_transform(e);
-                       break;
-               case E_SYMBOL:
-                       if (e->left.expr->left.sym == &symbol_yes) {
-                               // !'y' -> 'n'
-                               tmp = e->left.expr;
-                               free(e);
-                               e = tmp;
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_no;
-                               break;
-                       }
-                       if (e->left.expr->left.sym == &symbol_mod) {
-                               // !'m' -> 'm'
-                               tmp = e->left.expr;
-                               free(e);
-                               e = tmp;
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_mod;
-                               break;
-                       }
-                       if (e->left.expr->left.sym == &symbol_no) {
-                               // !'n' -> 'y'
-                               tmp = e->left.expr;
-                               free(e);
-                               e = tmp;
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_yes;
-                               break;
-                       }
-                       break;
-               default:
-                       ;
-               }
-               break;
-       default:
-               ;
-       }
-       return e;
-}
-
-int expr_contains_symbol(struct expr *dep, struct symbol *sym)
-{
-       if (!dep)
-               return 0;
-
-       switch (dep->type) {
-       case E_AND:
-       case E_OR:
-               return expr_contains_symbol(dep->left.expr, sym) ||
-                      expr_contains_symbol(dep->right.expr, sym);
-       case E_SYMBOL:
-               return dep->left.sym == sym;
-       case E_EQUAL:
-       case E_UNEQUAL:
-               return dep->left.sym == sym ||
-                      dep->right.sym == sym;
-       case E_NOT:
-               return expr_contains_symbol(dep->left.expr, sym);
-       default:
-               ;
-       }
-       return 0;
-}
-
-bool expr_depends_symbol(struct expr *dep, struct symbol *sym)
-{
-       if (!dep)
-               return false;
-
-       switch (dep->type) {
-       case E_AND:
-               return expr_depends_symbol(dep->left.expr, sym) ||
-                      expr_depends_symbol(dep->right.expr, sym);
-       case E_SYMBOL:
-               return dep->left.sym == sym;
-       case E_EQUAL:
-               if (dep->left.sym == sym) {
-                       if (dep->right.sym == &symbol_yes || dep->right.sym == &symbol_mod)
-                               return true;
-               }
-               break;
-       case E_UNEQUAL:
-               if (dep->left.sym == sym) {
-                       if (dep->right.sym == &symbol_no)
-                               return true;
-               }
-               break;
-       default:
-               ;
-       }
-       return false;
-}
-
-struct expr *expr_extract_eq_and(struct expr **ep1, struct expr **ep2)
-{
-       struct expr *tmp = NULL;
-       expr_extract_eq(E_AND, &tmp, ep1, ep2);
-       if (tmp) {
-               *ep1 = expr_eliminate_yn(*ep1);
-               *ep2 = expr_eliminate_yn(*ep2);
-       }
-       return tmp;
-}
-
-struct expr *expr_extract_eq_or(struct expr **ep1, struct expr **ep2)
-{
-       struct expr *tmp = NULL;
-       expr_extract_eq(E_OR, &tmp, ep1, ep2);
-       if (tmp) {
-               *ep1 = expr_eliminate_yn(*ep1);
-               *ep2 = expr_eliminate_yn(*ep2);
-       }
-       return tmp;
-}
-
-void expr_extract_eq(enum expr_type type, struct expr **ep, struct expr **ep1, struct expr **ep2)
-{
-#define e1 (*ep1)
-#define e2 (*ep2)
-       if (e1->type == type) {
-               expr_extract_eq(type, ep, &e1->left.expr, &e2);
-               expr_extract_eq(type, ep, &e1->right.expr, &e2);
-               return;
-       }
-       if (e2->type == type) {
-               expr_extract_eq(type, ep, ep1, &e2->left.expr);
-               expr_extract_eq(type, ep, ep1, &e2->right.expr);
-               return;
-       }
-       if (expr_eq(e1, e2)) {
-               *ep = *ep ? expr_alloc_two(type, *ep, e1) : e1;
-               expr_free(e2);
-               if (type == E_AND) {
-                       e1 = expr_alloc_symbol(&symbol_yes);
-                       e2 = expr_alloc_symbol(&symbol_yes);
-               } else if (type == E_OR) {
-                       e1 = expr_alloc_symbol(&symbol_no);
-                       e2 = expr_alloc_symbol(&symbol_no);
-               }
-       }
-#undef e1
-#undef e2
-}
-
-struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symbol *sym)
-{
-       struct expr *e1, *e2;
-
-       if (!e) {
-               e = expr_alloc_symbol(sym);
-               if (type == E_UNEQUAL)
-                       e = expr_alloc_one(E_NOT, e);
-               return e;
-       }
-       switch (e->type) {
-       case E_AND:
-               e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym);
-               e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym);
-               if (sym == &symbol_yes)
-                       e = expr_alloc_two(E_AND, e1, e2);
-               if (sym == &symbol_no)
-                       e = expr_alloc_two(E_OR, e1, e2);
-               if (type == E_UNEQUAL)
-                       e = expr_alloc_one(E_NOT, e);
-               return e;
-       case E_OR:
-               e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym);
-               e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym);
-               if (sym == &symbol_yes)
-                       e = expr_alloc_two(E_OR, e1, e2);
-               if (sym == &symbol_no)
-                       e = expr_alloc_two(E_AND, e1, e2);
-               if (type == E_UNEQUAL)
-                       e = expr_alloc_one(E_NOT, e);
-               return e;
-       case E_NOT:
-               return expr_trans_compare(e->left.expr, type == E_EQUAL ? E_UNEQUAL : E_EQUAL, sym);
-       case E_UNEQUAL:
-       case E_EQUAL:
-               if (type == E_EQUAL) {
-                       if (sym == &symbol_yes)
-                               return expr_copy(e);
-                       if (sym == &symbol_mod)
-                               return expr_alloc_symbol(&symbol_no);
-                       if (sym == &symbol_no)
-                               return expr_alloc_one(E_NOT, expr_copy(e));
-               } else {
-                       if (sym == &symbol_yes)
-                               return expr_alloc_one(E_NOT, expr_copy(e));
-                       if (sym == &symbol_mod)
-                               return expr_alloc_symbol(&symbol_yes);
-                       if (sym == &symbol_no)
-                               return expr_copy(e);
-               }
-               break;
-       case E_SYMBOL:
-               return expr_alloc_comp(type, e->left.sym, sym);
-       case E_CHOICE:
-       case E_RANGE:
-       case E_NONE:
-               /* panic */;
-       }
-       return NULL;
-}
-
-tristate expr_calc_value(struct expr *e)
-{
-       tristate val1, val2;
-       const char *str1, *str2;
-
-       if (!e)
-               return yes;
-
-       switch (e->type) {
-       case E_SYMBOL:
-               sym_calc_value(e->left.sym);
-               return e->left.sym->curr.tri;
-       case E_AND:
-               val1 = expr_calc_value(e->left.expr);
-               val2 = expr_calc_value(e->right.expr);
-               return E_AND(val1, val2);
-       case E_OR:
-               val1 = expr_calc_value(e->left.expr);
-               val2 = expr_calc_value(e->right.expr);
-               return E_OR(val1, val2);
-       case E_NOT:
-               val1 = expr_calc_value(e->left.expr);
-               return E_NOT(val1);
-       case E_EQUAL:
-               sym_calc_value(e->left.sym);
-               sym_calc_value(e->right.sym);
-               str1 = sym_get_string_value(e->left.sym);
-               str2 = sym_get_string_value(e->right.sym);
-               return !strcmp(str1, str2) ? yes : no;
-       case E_UNEQUAL:
-               sym_calc_value(e->left.sym);
-               sym_calc_value(e->right.sym);
-               str1 = sym_get_string_value(e->left.sym);
-               str2 = sym_get_string_value(e->right.sym);
-               return !strcmp(str1, str2) ? no : yes;
-       default:
-               printf("expr_calc_value: %d?\n", e->type);
-               return no;
-       }
-}
-
-int expr_compare_type(enum expr_type t1, enum expr_type t2)
-{
-#if 0
-       return 1;
-#else
-       if (t1 == t2)
-               return 0;
-       switch (t1) {
-       case E_EQUAL:
-       case E_UNEQUAL:
-               if (t2 == E_NOT)
-                       return 1;
-       case E_NOT:
-               if (t2 == E_AND)
-                       return 1;
-       case E_AND:
-               if (t2 == E_OR)
-                       return 1;
-       case E_OR:
-               if (t2 == E_CHOICE)
-                       return 1;
-       case E_CHOICE:
-               if (t2 == 0)
-                       return 1;
-       default:
-               return -1;
-       }
-       printf("[%dgt%d?]", t1, t2);
-       return 0;
-#endif
-}
-
-void expr_print(struct expr *e, void (*fn)(void *, const char *), void *data, int prevtoken)
-{
-       if (!e) {
-               fn(data, "y");
-               return;
-       }
-
-       if (expr_compare_type(prevtoken, e->type) > 0)
-               fn(data, "(");
-       switch (e->type) {
-       case E_SYMBOL:
-               if (e->left.sym->name)
-                       fn(data, e->left.sym->name);
-               else
-                       fn(data, "<choice>");
-               break;
-       case E_NOT:
-               fn(data, "!");
-               expr_print(e->left.expr, fn, data, E_NOT);
-               break;
-       case E_EQUAL:
-               fn(data, e->left.sym->name);
-               fn(data, "=");
-               fn(data, e->right.sym->name);
-               break;
-       case E_UNEQUAL:
-               fn(data, e->left.sym->name);
-               fn(data, "!=");
-               fn(data, e->right.sym->name);
-               break;
-       case E_OR:
-               expr_print(e->left.expr, fn, data, E_OR);
-               fn(data, " || ");
-               expr_print(e->right.expr, fn, data, E_OR);
-               break;
-       case E_AND:
-               expr_print(e->left.expr, fn, data, E_AND);
-               fn(data, " && ");
-               expr_print(e->right.expr, fn, data, E_AND);
-               break;
-       case E_CHOICE:
-               fn(data, e->right.sym->name);
-               if (e->left.expr) {
-                       fn(data, " ^ ");
-                       expr_print(e->left.expr, fn, data, E_CHOICE);
-               }
-               break;
-       case E_RANGE:
-               fn(data, "[");
-               fn(data, e->left.sym->name);
-               fn(data, " ");
-               fn(data, e->right.sym->name);
-               fn(data, "]");
-               break;
-       default:
-         {
-               char buf[32];
-               sprintf(buf, "<unknown type %d>", e->type);
-               fn(data, buf);
-               break;
-         }
-       }
-       if (expr_compare_type(prevtoken, e->type) > 0)
-               fn(data, ")");
-}
-
-static void expr_print_file_helper(void *data, const char *str)
-{
-       fwrite(str, strlen(str), 1, data);
-}
-
-void expr_fprint(struct expr *e, FILE *out)
-{
-       expr_print(e, expr_print_file_helper, out, E_NONE);
-}
-
-static void expr_print_gstr_helper(void *data, const char *str)
-{
-       str_append((struct gstr*)data, str);
-}
-
-void expr_gstr_print(struct expr *e, struct gstr *gs)
-{
-       expr_print(e, expr_print_gstr_helper, gs, E_NONE);
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/expr.h b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/expr.h
deleted file mode 100644 (file)
index 7d39ff4..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-#ifndef EXPR_H
-#define EXPR_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdio.h>
-#ifndef __cplusplus
-#include <stdbool.h>
-#endif
-
-struct file {
-       struct file *next;
-       struct file *parent;
-       char *name;
-       int lineno;
-       int flags;
-};
-
-#define FILE_BUSY              0x0001
-#define FILE_SCANNED           0x0002
-#define FILE_PRINTED           0x0004
-
-typedef enum tristate {
-       no, mod, yes
-} tristate;
-
-enum expr_type {
-       E_NONE, E_OR, E_AND, E_NOT, E_EQUAL, E_UNEQUAL, E_CHOICE, E_SYMBOL, E_RANGE
-};
-
-union expr_data {
-       struct expr *expr;
-       struct symbol *sym;
-};
-
-struct expr {
-       enum expr_type type;
-       union expr_data left, right;
-};
-
-#define E_OR(dep1, dep2)       (((dep1)>(dep2))?(dep1):(dep2))
-#define E_AND(dep1, dep2)      (((dep1)<(dep2))?(dep1):(dep2))
-#define E_NOT(dep)             (2-(dep))
-
-struct expr_value {
-       struct expr *expr;
-       tristate tri;
-};
-
-struct symbol_value {
-       void *val;
-       tristate tri;
-};
-
-enum symbol_type {
-       S_UNKNOWN, S_BOOLEAN, S_TRISTATE, S_INT, S_HEX, S_STRING, S_OTHER
-};
-
-struct symbol {
-       struct symbol *next;
-       char *name;
-       char *help;
-       enum symbol_type type;
-       struct symbol_value curr, user;
-       tristate visible;
-       int flags;
-       struct property *prop;
-       struct expr *dep, *dep2;
-       struct expr_value rev_dep;
-};
-
-#define for_all_symbols(i, sym) for (i = 0; i < 257; i++) for (sym = symbol_hash[i]; sym; sym = sym->next) if (sym->type != S_OTHER)
-
-#define SYMBOL_YES             0x0001
-#define SYMBOL_MOD             0x0002
-#define SYMBOL_NO              0x0004
-#define SYMBOL_CONST           0x0007
-#define SYMBOL_CHECK           0x0008
-#define SYMBOL_CHOICE          0x0010
-#define SYMBOL_CHOICEVAL       0x0020
-#define SYMBOL_PRINTED         0x0040
-#define SYMBOL_VALID           0x0080
-#define SYMBOL_OPTIONAL                0x0100
-#define SYMBOL_WRITE           0x0200
-#define SYMBOL_CHANGED         0x0400
-#define SYMBOL_NEW             0x0800
-#define SYMBOL_AUTO            0x1000
-#define SYMBOL_CHECKED         0x2000
-#define SYMBOL_CHECK_DONE      0x4000
-#define SYMBOL_WARNED          0x8000
-
-#define SYMBOL_MAXLENGTH       256
-#define SYMBOL_HASHSIZE                257
-#define SYMBOL_HASHMASK                0xff
-
-enum prop_type {
-       P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE, P_SELECT, P_RANGE
-};
-
-struct property {
-       struct property *next;
-       struct symbol *sym;
-       enum prop_type type;
-       const char *text;
-       struct expr_value visible;
-       struct expr *expr;
-       struct menu *menu;
-       struct file *file;
-       int lineno;
-};
-
-#define for_all_properties(sym, st, tok) \
-       for (st = sym->prop; st; st = st->next) \
-               if (st->type == (tok))
-#define for_all_defaults(sym, st) for_all_properties(sym, st, P_DEFAULT)
-#define for_all_choices(sym, st) for_all_properties(sym, st, P_CHOICE)
-#define for_all_prompts(sym, st) \
-       for (st = sym->prop; st; st = st->next) \
-               if (st->text)
-
-struct menu {
-       struct menu *next;
-       struct menu *parent;
-       struct menu *list;
-       struct symbol *sym;
-       struct property *prompt;
-       struct expr *dep;
-       unsigned int flags;
-       //char *help;
-       struct file *file;
-       int lineno;
-       void *data;
-};
-
-#define MENU_CHANGED           0x0001
-#define MENU_ROOT              0x0002
-
-#ifndef SWIG
-
-extern struct file *file_list;
-extern struct file *current_file;
-struct file *lookup_file(const char *name);
-
-extern struct symbol symbol_yes, symbol_no, symbol_mod;
-extern struct symbol *modules_sym;
-extern int cdebug;
-struct expr *expr_alloc_symbol(struct symbol *sym);
-struct expr *expr_alloc_one(enum expr_type type, struct expr *ce);
-struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct expr *e2);
-struct expr *expr_alloc_comp(enum expr_type type, struct symbol *s1, struct symbol *s2);
-struct expr *expr_alloc_and(struct expr *e1, struct expr *e2);
-struct expr *expr_alloc_or(struct expr *e1, struct expr *e2);
-struct expr *expr_copy(struct expr *org);
-void expr_free(struct expr *e);
-int expr_eq(struct expr *e1, struct expr *e2);
-void expr_eliminate_eq(struct expr **ep1, struct expr **ep2);
-tristate expr_calc_value(struct expr *e);
-struct expr *expr_eliminate_yn(struct expr *e);
-struct expr *expr_trans_bool(struct expr *e);
-struct expr *expr_eliminate_dups(struct expr *e);
-struct expr *expr_transform(struct expr *e);
-int expr_contains_symbol(struct expr *dep, struct symbol *sym);
-bool expr_depends_symbol(struct expr *dep, struct symbol *sym);
-struct expr *expr_extract_eq_and(struct expr **ep1, struct expr **ep2);
-struct expr *expr_extract_eq_or(struct expr **ep1, struct expr **ep2);
-void expr_extract_eq(enum expr_type type, struct expr **ep, struct expr **ep1, struct expr **ep2);
-struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symbol *sym);
-
-void expr_fprint(struct expr *e, FILE *out);
-struct gstr; /* forward */
-void expr_gstr_print(struct expr *e, struct gstr *gs);
-
-static inline int expr_is_yes(struct expr *e)
-{
-       return !e || (e->type == E_SYMBOL && e->left.sym == &symbol_yes);
-}
-
-static inline int expr_is_no(struct expr *e)
-{
-       return e && (e->type == E_SYMBOL && e->left.sym == &symbol_no);
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* EXPR_H */
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lex.zconf.c_shipped b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lex.zconf.c_shipped
deleted file mode 100644 (file)
index b877bb6..0000000
+++ /dev/null
@@ -1,3688 +0,0 @@
-
-#line 3 "lex.zconf.c"
-
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 31
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t;
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! FLEXINT_H */
-
-#ifdef __cplusplus
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else  /* ! __cplusplus */
-
-#if __STDC__
-
-#define YY_USE_CONST
-
-#endif /* __STDC__ */
-#endif /* ! __cplusplus */
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition.  This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN (yy_start) = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.  The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START (((yy_start) - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE zconfrestart(zconfin  )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#define YY_BUF_SIZE 16384
-#endif
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-extern int zconfleng;
-
-extern FILE *zconfin, *zconfout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-    #define YY_LESS_LINENO(n)
-
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
-       do \
-               { \
-               /* Undo effects of setting up zconftext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-               *yy_cp = (yy_hold_char); \
-               YY_RESTORE_YY_MORE_OFFSET \
-               (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-               YY_DO_BEFORE_ACTION; /* set up zconftext again */ \
-               } \
-       while ( 0 )
-
-#define unput(c) yyunput( c, (yytext_ptr)  )
-
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef unsigned int yy_size_t;
-#endif
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-       {
-       FILE *yy_input_file;
-
-       char *yy_ch_buf;                /* input buffer */
-       char *yy_buf_pos;               /* current position in input buffer */
-
-       /* Size of input buffer in bytes, not including room for EOB
-        * characters.
-        */
-       yy_size_t yy_buf_size;
-
-       /* Number of characters read into yy_ch_buf, not including EOB
-        * characters.
-        */
-       int yy_n_chars;
-
-       /* Whether we "own" the buffer - i.e., we know we created it,
-        * and can realloc() it to grow it, and should free() it to
-        * delete it.
-        */
-       int yy_is_our_buffer;
-
-       /* Whether this is an "interactive" input source; if so, and
-        * if we're using stdio for input, then we want to use getc()
-        * instead of fread(), to make sure we stop fetching input after
-        * each newline.
-        */
-       int yy_is_interactive;
-
-       /* Whether we're considered to be at the beginning of a line.
-        * If so, '^' rules will be active on the next match, otherwise
-        * not.
-        */
-       int yy_at_bol;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-
-       /* Whether to try to fill the input buffer when we reach the
-        * end of it.
-        */
-       int yy_fill_buffer;
-
-       int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-       /* When an EOF's been seen but there's still some text to process
-        * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-        * shouldn't try reading from the input source any more.  We might
-        * still have a bunch of tokens to match, though, because of
-        * possible backing-up.
-        *
-        * When we actually see the EOF, we change the status to "new"
-        * (via zconfrestart()), so that the user can continue scanning by
-        * just pointing zconfin at a new input file.
-        */
-#define YY_BUFFER_EOF_PENDING 2
-
-       };
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* Stack of input buffers. */
-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
-                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
-                          : NULL)
-
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-
-/* yy_hold_char holds the character lost when zconftext is formed. */
-static char yy_hold_char;
-static int yy_n_chars;         /* number of characters read into yy_ch_buf */
-int zconfleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1;                /* whether we need to initialize */
-static int yy_start = 0;       /* start state number */
-
-/* Flag which is used to allow zconfwrap()'s to do buffer switches
- * instead of setting up a fresh zconfin.  A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void zconfrestart (FILE *input_file  );
-void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE zconf_create_buffer (FILE *file,int size  );
-void zconf_delete_buffer (YY_BUFFER_STATE b  );
-void zconf_flush_buffer (YY_BUFFER_STATE b  );
-void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer  );
-void zconfpop_buffer_state (void );
-
-static void zconfensure_buffer_stack (void );
-static void zconf_load_buffer_state (void );
-static void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file  );
-
-#define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size  );
-YY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,int len  );
-
-void *zconfalloc (yy_size_t  );
-void *zconfrealloc (void *,yy_size_t  );
-void zconffree (void *  );
-
-#define yy_new_buffer zconf_create_buffer
-
-#define yy_set_interactive(is_interactive) \
-       { \
-       if ( ! YY_CURRENT_BUFFER ){ \
-        zconfensure_buffer_stack (); \
-               YY_CURRENT_BUFFER_LVALUE =    \
-            zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
-       } \
-       YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-       }
-
-#define yy_set_bol(at_bol) \
-       { \
-       if ( ! YY_CURRENT_BUFFER ){\
-        zconfensure_buffer_stack (); \
-               YY_CURRENT_BUFFER_LVALUE =    \
-            zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
-       } \
-       YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
-       }
-
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-
-#define zconfwrap(n) 1
-#define YY_SKIP_YYWRAP
-
-typedef unsigned char YY_CHAR;
-
-FILE *zconfin = (FILE *) 0, *zconfout = (FILE *) 0;
-
-typedef int yy_state_type;
-
-extern int zconflineno;
-
-int zconflineno = 1;
-
-extern char *zconftext;
-#define yytext_ptr zconftext
-static yyconst flex_int16_t yy_nxt[][38] =
-    {
-    {
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0
-    },
-
-    {
-       11,   12,   13,   14,   12,   12,   15,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12
-    },
-
-    {
-       11,   12,   13,   14,   12,   12,   15,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12
-    },
-
-    {
-       11,   16,   16,   17,   16,   16,   16,   16,   16,   16,
-       16,   16,   16,   18,   16,   16,   18,   18,   19,   20,
-       21,   22,   18,   18,   23,   24,   18,   25,   18,   26,
-       27,   18,   28,   29,   30,   18,   18,   16
-    },
-
-    {
-       11,   16,   16,   17,   16,   16,   16,   16,   16,   16,
-       16,   16,   16,   18,   16,   16,   18,   18,   19,   20,
-       21,   22,   18,   18,   23,   24,   18,   25,   18,   26,
-       27,   18,   28,   29,   30,   18,   18,   16
-
-    },
-
-    {
-       11,   31,   32,   33,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31
-    },
-
-    {
-       11,   31,   32,   33,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31
-    },
-
-    {
-       11,   34,   34,   35,   34,   36,   34,   34,   36,   34,
-       34,   34,   34,   34,   34,   37,   34,   34,   34,   34,
-
-       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
-       34,   34,   34,   34,   34,   34,   34,   34
-    },
-
-    {
-       11,   34,   34,   35,   34,   36,   34,   34,   36,   34,
-       34,   34,   34,   34,   34,   37,   34,   34,   34,   34,
-       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
-       34,   34,   34,   34,   34,   34,   34,   34
-    },
-
-    {
-       11,   38,   38,   39,   40,   41,   42,   43,   41,   44,
-       45,   46,   47,   47,   48,   49,   47,   47,   47,   47,
-       47,   47,   47,   47,   47,   50,   47,   47,   47,   51,
-       47,   47,   47,   47,   47,   47,   47,   52
-
-    },
-
-    {
-       11,   38,   38,   39,   40,   41,   42,   43,   41,   44,
-       45,   46,   47,   47,   48,   49,   47,   47,   47,   47,
-       47,   47,   47,   47,   47,   50,   47,   47,   47,   51,
-       47,   47,   47,   47,   47,   47,   47,   52
-    },
-
-    {
-      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
-      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
-      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
-      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11
-    },
-
-    {
-       11,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
-      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
-
-      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
-      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
-    },
-
-    {
-       11,  -13,   53,   54,  -13,  -13,   55,  -13,  -13,  -13,
-      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
-      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
-      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
-    },
-
-    {
-       11,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
-      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
-      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
-      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14
-
-    },
-
-    {
-       11,   56,   56,   57,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56
-    },
-
-    {
-       11,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
-      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
-      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
-      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
-    },
-
-    {
-       11,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
-      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
-
-      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
-      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17
-    },
-
-    {
-       11,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
-      -18,  -18,  -18,   58,  -18,  -18,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -18
-    },
-
-    {
-       11,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
-      -19,  -19,  -19,   58,  -19,  -19,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   59,
-       58,   58,   58,   58,   58,   58,   58,  -19
-
-    },
-
-    {
-       11,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
-      -20,  -20,  -20,   58,  -20,  -20,   58,   58,   58,   58,
-       58,   58,   58,   58,   60,   58,   58,   58,   58,   61,
-       58,   58,   58,   58,   58,   58,   58,  -20
-    },
-
-    {
-       11,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
-      -21,  -21,  -21,   58,  -21,  -21,   58,   58,   58,   58,
-       58,   62,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -21
-    },
-
-    {
-       11,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
-      -22,  -22,  -22,   58,  -22,  -22,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   63,   58,
-       58,   58,   58,   58,   58,   58,   58,  -22
-    },
-
-    {
-       11,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
-      -23,  -23,  -23,   58,  -23,  -23,   58,   58,   58,   58,
-       58,   64,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -23
-    },
-
-    {
-       11,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
-      -24,  -24,  -24,   58,  -24,  -24,   58,   58,   58,   58,
-       58,   58,   65,   58,   58,   58,   58,   58,   66,   58,
-       58,   58,   58,   58,   58,   58,   58,  -24
-
-    },
-
-    {
-       11,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
-      -25,  -25,  -25,   58,  -25,  -25,   58,   67,   58,   58,
-       58,   68,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -25
-    },
-
-    {
-       11,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
-      -26,  -26,  -26,   58,  -26,  -26,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       69,   58,   58,   58,   58,   58,   58,  -26
-    },
-
-    {
-       11,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
-      -27,  -27,  -27,   58,  -27,  -27,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   70,   58,   58,   58,   58,  -27
-    },
-
-    {
-       11,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
-      -28,  -28,  -28,   58,  -28,  -28,   58,   71,   58,   58,
-       58,   72,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -28
-    },
-
-    {
-       11,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
-      -29,  -29,  -29,   58,  -29,  -29,   58,   58,   58,   58,
-       58,   73,   58,   58,   58,   58,   58,   58,   58,   74,
-       58,   58,   58,   58,   75,   58,   58,  -29
-
-    },
-
-    {
-       11,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
-      -30,  -30,  -30,   58,  -30,  -30,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   76,   58,   58,   58,   58,  -30
-    },
-
-    {
-       11,   77,   77,  -31,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77
-    },
-
-    {
-       11,  -32,   78,   79,  -32,  -32,  -32,  -32,  -32,  -32,
-      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
-
-      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
-      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32
-    },
-
-    {
-       11,   80,  -33,  -33,   80,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80
-    },
-
-    {
-       11,   81,   81,   82,   81,  -34,   81,   81,  -34,   81,
-       81,   81,   81,   81,   81,  -34,   81,   81,   81,   81,
-       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
-       81,   81,   81,   81,   81,   81,   81,   81
-
-    },
-
-    {
-       11,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
-      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
-      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
-      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35
-    },
-
-    {
-       11,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
-      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
-      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
-      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36
-    },
-
-    {
-       11,   83,   83,   84,   83,   83,   83,   83,   83,   83,
-       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
-
-       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
-       83,   83,   83,   83,   83,   83,   83,   83
-    },
-
-    {
-       11,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
-      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
-      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
-      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38
-    },
-
-    {
-       11,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
-      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
-      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
-      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39
-
-    },
-
-    {
-       11,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
-      -40,  -40,  -40,  -40,   85,  -40,  -40,  -40,  -40,  -40,
-      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
-      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40
-    },
-
-    {
-       11,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
-      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
-      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
-      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41
-    },
-
-    {
-       11,   86,   86,  -42,   86,   86,   86,   86,   86,   86,
-       86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
-
-       86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
-       86,   86,   86,   86,   86,   86,   86,   86
-    },
-
-    {
-       11,  -43,  -43,  -43,  -43,  -43,  -43,   87,  -43,  -43,
-      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
-      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
-      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43
-    },
-
-    {
-       11,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
-      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
-      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
-      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44
-
-    },
-
-    {
-       11,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
-      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
-      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
-      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45
-    },
-
-    {
-       11,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
-      -46,   88,   89,   89,  -46,  -46,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -46
-    },
-
-    {
-       11,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
-      -47,   89,   89,   89,  -47,  -47,   89,   89,   89,   89,
-
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -47
-    },
-
-    {
-       11,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
-      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
-      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
-      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48
-    },
-
-    {
-       11,  -49,  -49,   90,  -49,  -49,  -49,  -49,  -49,  -49,
-      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
-      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
-      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49
-
-    },
-
-    {
-       11,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
-      -50,   89,   89,   89,  -50,  -50,   89,   89,   89,   89,
-       89,   89,   91,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -50
-    },
-
-    {
-       11,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
-      -51,   89,   89,   89,  -51,  -51,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,   89,   92,   89,
-       89,   89,   89,   89,   89,   89,   89,  -51
-    },
-
-    {
-       11,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
-      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
-
-      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
-      -52,  -52,  -52,  -52,  -52,  -52,  -52,   93
-    },
-
-    {
-       11,  -53,   53,   54,  -53,  -53,   55,  -53,  -53,  -53,
-      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
-      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
-      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53
-    },
-
-    {
-       11,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
-      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
-      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
-      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54
-
-    },
-
-    {
-       11,   56,   56,   57,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56
-    },
-
-    {
-       11,   56,   56,   57,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56
-    },
-
-    {
-       11,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
-      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
-
-      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
-      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57
-    },
-
-    {
-       11,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
-      -58,  -58,  -58,   58,  -58,  -58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -58
-    },
-
-    {
-       11,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
-      -59,  -59,  -59,   58,  -59,  -59,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   94,
-       58,   58,   58,   58,   58,   58,   58,  -59
-
-    },
-
-    {
-       11,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
-      -60,  -60,  -60,   58,  -60,  -60,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   95,
-       58,   58,   58,   58,   58,   58,   58,  -60
-    },
-
-    {
-       11,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
-      -61,  -61,  -61,   58,  -61,  -61,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   96,   97,   58,
-       58,   58,   58,   58,   58,   58,   58,  -61
-    },
-
-    {
-       11,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
-      -62,  -62,  -62,   58,  -62,  -62,   58,   58,   58,   58,
-
-       58,   58,   98,   58,   58,   58,   58,   58,   58,   58,
-       99,   58,   58,   58,   58,   58,   58,  -62
-    },
-
-    {
-       11,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
-      -63,  -63,  -63,   58,  -63,  -63,   58,  100,   58,   58,
-      101,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -63
-    },
-
-    {
-       11,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
-      -64,  -64,  -64,   58,  -64,  -64,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  102,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  103,  -64
-
-    },
-
-    {
-       11,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
-      -65,  -65,  -65,   58,  -65,  -65,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -65
-    },
-
-    {
-       11,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
-      -66,  -66,  -66,   58,  -66,  -66,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  104,   58,   58,  -66
-    },
-
-    {
-       11,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
-      -67,  -67,  -67,   58,  -67,  -67,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,  105,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -67
-    },
-
-    {
-       11,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
-      -68,  -68,  -68,   58,  -68,  -68,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  106,   58,
-       58,   58,   58,   58,   58,   58,   58,  -68
-    },
-
-    {
-       11,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
-      -69,  -69,  -69,   58,  -69,  -69,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  107,   58,   58,  -69
-
-    },
-
-    {
-       11,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
-      -70,  -70,  -70,   58,  -70,  -70,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,  108,
-       58,   58,   58,   58,   58,   58,   58,  -70
-    },
-
-    {
-       11,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
-      -71,  -71,  -71,   58,  -71,  -71,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  109,   58,
-       58,   58,   58,   58,   58,   58,   58,  -71
-    },
-
-    {
-       11,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
-      -72,  -72,  -72,   58,  -72,  -72,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,  110,   58,   58,   58,   58,   58,  -72
-    },
-
-    {
-       11,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
-      -73,  -73,  -73,   58,  -73,  -73,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  111,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -73
-    },
-
-    {
-       11,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
-      -74,  -74,  -74,   58,  -74,  -74,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  112,   58,  -74
-
-    },
-
-    {
-       11,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  -75,   58,  -75,  -75,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,  113,   58,   58,   58,   58,  -75
-    },
-
-    {
-       11,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
-      -76,  -76,  -76,   58,  -76,  -76,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  114,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -76
-    },
-
-    {
-       11,   77,   77,  -77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77
-    },
-
-    {
-       11,  -78,   78,   79,  -78,  -78,  -78,  -78,  -78,  -78,
-      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
-      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
-      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78
-    },
-
-    {
-       11,   80,  -79,  -79,   80,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80
-
-    },
-
-    {
-       11,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80
-    },
-
-    {
-       11,   81,   81,   82,   81,  -81,   81,   81,  -81,   81,
-       81,   81,   81,   81,   81,  -81,   81,   81,   81,   81,
-       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
-       81,   81,   81,   81,   81,   81,   81,   81
-    },
-
-    {
-       11,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82
-    },
-
-    {
-       11,  -83,  -83,   84,  -83,  -83,  -83,  -83,  -83,  -83,
-      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
-      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
-      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83
-    },
-
-    {
-       11,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84
-
-    },
-
-    {
-       11,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85
-    },
-
-    {
-       11,   86,   86,  -86,   86,   86,   86,   86,   86,   86,
-       86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
-       86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
-       86,   86,   86,   86,   86,   86,   86,   86
-    },
-
-    {
-       11,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
-      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
-
-      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
-      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87
-    },
-
-    {
-       11,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
-      -88,  115,   89,   89,  -88,  -88,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -88
-    },
-
-    {
-       11,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,   89,   89,   89,  -89,  -89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -89
-
-    },
-
-    {
-       11,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
-      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
-      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
-      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90
-    },
-
-    {
-       11,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
-      -91,   89,   89,   89,  -91,  -91,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -91
-    },
-
-    {
-       11,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
-      -92,   89,   89,   89,  -92,  -92,   89,   89,   89,   89,
-
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -92
-    },
-
-    {
-       11,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
-      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
-      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
-      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93
-    },
-
-    {
-       11,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
-      -94,  -94,  -94,   58,  -94,  -94,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  116,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -94
-
-    },
-
-    {
-       11,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
-      -95,  -95,  -95,   58,  -95,  -95,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  117,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -95
-    },
-
-    {
-       11,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
-      -96,  -96,  -96,   58,  -96,  -96,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  118,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -96
-    },
-
-    {
-       11,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
-      -97,  -97,  -97,   58,  -97,  -97,   58,   58,   58,   58,
-
-       58,   58,  119,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -97
-    },
-
-    {
-       11,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
-      -98,  -98,  -98,   58,  -98,  -98,  120,  121,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -98
-    },
-
-    {
-       11,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
-      -99,  -99,  -99,   58,  -99,  -99,   58,   58,   58,   58,
-       58,  122,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -99
-
-    },
-
-    {
-       11, -100, -100, -100, -100, -100, -100, -100, -100, -100,
-     -100, -100, -100,   58, -100, -100,   58,   58,  123,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -100
-    },
-
-    {
-       11, -101, -101, -101, -101, -101, -101, -101, -101, -101,
-     -101, -101, -101,   58, -101, -101,   58,   58,   58,  124,
-       58,   58,   58,   58,   58,  125,   58,  126,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -101
-    },
-
-    {
-       11, -102, -102, -102, -102, -102, -102, -102, -102, -102,
-     -102, -102, -102,   58, -102, -102,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-      127,   58,   58,   58,   58,   58,   58, -102
-    },
-
-    {
-       11, -103, -103, -103, -103, -103, -103, -103, -103, -103,
-     -103, -103, -103,   58, -103, -103,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -103
-    },
-
-    {
-       11, -104, -104, -104, -104, -104, -104, -104, -104, -104,
-     -104, -104, -104,   58, -104, -104,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -104
-
-    },
-
-    {
-       11, -105, -105, -105, -105, -105, -105, -105, -105, -105,
-     -105, -105, -105,   58, -105, -105,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  128,   58,
-       58,   58,   58,   58,   58,   58,   58, -105
-    },
-
-    {
-       11, -106, -106, -106, -106, -106, -106, -106, -106, -106,
-     -106, -106, -106,   58, -106, -106,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  129,   58, -106
-    },
-
-    {
-       11, -107, -107, -107, -107, -107, -107, -107, -107, -107,
-     -107, -107, -107,   58, -107, -107,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,  130,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -107
-    },
-
-    {
-       11, -108, -108, -108, -108, -108, -108, -108, -108, -108,
-     -108, -108, -108,   58, -108, -108,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  131,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -108
-    },
-
-    {
-       11, -109, -109, -109, -109, -109, -109, -109, -109, -109,
-     -109, -109, -109,   58, -109, -109,   58,   58,   58,   58,
-       58,   58,   58,  132,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -109
-
-    },
-
-    {
-       11, -110, -110, -110, -110, -110, -110, -110, -110, -110,
-     -110, -110, -110,   58, -110, -110,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  133,   58, -110
-    },
-
-    {
-       11, -111, -111, -111, -111, -111, -111, -111, -111, -111,
-     -111, -111, -111,   58, -111, -111,   58,   58,   58,   58,
-       58,  134,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -111
-    },
-
-    {
-       11, -112, -112, -112, -112, -112, -112, -112, -112, -112,
-     -112, -112, -112,   58, -112, -112,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,  135,   58,   58,   58,   58, -112
-    },
-
-    {
-       11, -113, -113, -113, -113, -113, -113, -113, -113, -113,
-     -113, -113, -113,   58, -113, -113,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  136,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -113
-    },
-
-    {
-       11, -114, -114, -114, -114, -114, -114, -114, -114, -114,
-     -114, -114, -114,   58, -114, -114,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,  137,   58,   58,   58, -114
-
-    },
-
-    {
-       11, -115, -115, -115, -115, -115, -115, -115, -115, -115,
-     -115,   89,   89,   89, -115, -115,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89, -115
-    },
-
-    {
-       11, -116, -116, -116, -116, -116, -116, -116, -116, -116,
-     -116, -116, -116,   58, -116, -116,   58,   58,   58,   58,
-       58,  138,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -116
-    },
-
-    {
-       11, -117, -117, -117, -117, -117, -117, -117, -117, -117,
-     -117, -117, -117,   58, -117, -117,   58,   58,   58,  139,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -117
-    },
-
-    {
-       11, -118, -118, -118, -118, -118, -118, -118, -118, -118,
-     -118, -118, -118,   58, -118, -118,   58,   58,   58,   58,
-       58,  140,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -118
-    },
-
-    {
-       11, -119, -119, -119, -119, -119, -119, -119, -119, -119,
-     -119, -119, -119,   58, -119, -119,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  141,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -119
-
-    },
-
-    {
-       11, -120, -120, -120, -120, -120, -120, -120, -120, -120,
-     -120, -120, -120,   58, -120, -120,   58,   58,  142,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  143,   58,   58, -120
-    },
-
-    {
-       11, -121, -121, -121, -121, -121, -121, -121, -121, -121,
-     -121, -121, -121,   58, -121, -121,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  144,   58, -121
-    },
-
-    {
-       11, -122, -122, -122, -122, -122, -122, -122, -122, -122,
-     -122, -122, -122,   58, -122, -122,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,  145,   58,
-       58,   58,   58,   58,   58,   58,   58, -122
-    },
-
-    {
-       11, -123, -123, -123, -123, -123, -123, -123, -123, -123,
-     -123, -123, -123,   58, -123, -123,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  146,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -123
-    },
-
-    {
-       11, -124, -124, -124, -124, -124, -124, -124, -124, -124,
-     -124, -124, -124,   58, -124, -124,   58,   58,   58,   58,
-       58,   58,   58,   58,  147,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -124
-
-    },
-
-    {
-       11, -125, -125, -125, -125, -125, -125, -125, -125, -125,
-     -125, -125, -125,   58, -125, -125,   58,   58,   58,   58,
-       58,   58,  148,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -125
-    },
-
-    {
-       11, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-     -126, -126, -126,   58, -126, -126,   58,   58,   58,   58,
-       58,  149,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -126
-    },
-
-    {
-       11, -127, -127, -127, -127, -127, -127, -127, -127, -127,
-     -127, -127, -127,   58, -127, -127,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -127
-    },
-
-    {
-       11, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-     -128, -128, -128,   58, -128, -128,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  150,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -128
-    },
-
-    {
-       11, -129, -129, -129, -129, -129, -129, -129, -129, -129,
-     -129, -129, -129,   58, -129, -129,   58,   58,   58,  151,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -129
-
-    },
-
-    {
-       11, -130, -130, -130, -130, -130, -130, -130, -130, -130,
-     -130, -130, -130,   58, -130, -130,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,  152,
-       58,   58,   58,   58,   58,   58,   58, -130
-    },
-
-    {
-       11, -131, -131, -131, -131, -131, -131, -131, -131, -131,
-     -131, -131, -131,   58, -131, -131,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-      153,   58,   58,   58,   58,   58,   58, -131
-    },
-
-    {
-       11, -132, -132, -132, -132, -132, -132, -132, -132, -132,
-     -132, -132, -132,   58, -132, -132,   58,   58,   58,   58,
-
-       58,  154,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -132
-    },
-
-    {
-       11, -133, -133, -133, -133, -133, -133, -133, -133, -133,
-     -133, -133, -133,   58, -133, -133,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  155,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -133
-    },
-
-    {
-       11, -134, -134, -134, -134, -134, -134, -134, -134, -134,
-     -134, -134, -134,   58, -134, -134,   58,   58,   58,  156,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -134
-
-    },
-
-    {
-       11, -135, -135, -135, -135, -135, -135, -135, -135, -135,
-     -135, -135, -135,   58, -135, -135,   58,   58,   58,  157,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -135
-    },
-
-    {
-       11, -136, -136, -136, -136, -136, -136, -136, -136, -136,
-     -136, -136, -136,   58, -136, -136,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  158,   58,
-       58,   58,   58,   58,   58,   58,   58, -136
-    },
-
-    {
-       11, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-     -137, -137, -137,   58, -137, -137,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  159,   58,   58, -137
-    },
-
-    {
-       11, -138, -138, -138, -138, -138, -138, -138, -138, -138,
-     -138, -138, -138,   58, -138, -138,   58,  160,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -138
-    },
-
-    {
-       11, -139, -139, -139, -139, -139, -139, -139, -139, -139,
-     -139, -139, -139,   58, -139, -139,   58,   58,   58,   58,
-       58,  161,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -139
-
-    },
-
-    {
-       11, -140, -140, -140, -140, -140, -140, -140, -140, -140,
-     -140, -140, -140,   58, -140, -140,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  162,   58,
-       58,   58,   58,   58,   58,   58,   58, -140
-    },
-
-    {
-       11, -141, -141, -141, -141, -141, -141, -141, -141, -141,
-     -141, -141, -141,   58, -141, -141,   58,   58,   58,   58,
-       58,   58,   58,  163,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -141
-    },
-
-    {
-       11, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142,   58, -142, -142,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,  164,
-       58,   58,   58,   58,   58,   58,   58, -142
-    },
-
-    {
-       11, -143, -143, -143, -143, -143, -143, -143, -143, -143,
-     -143, -143, -143,   58, -143, -143,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,  165,   58,   58,   58,   58, -143
-    },
-
-    {
-       11, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144, -144, -144,   58, -144, -144,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  166,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -144
-
-    },
-
-    {
-       11, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-     -145, -145, -145,   58, -145, -145,   58,   58,   58,   58,
-      167,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -145
-    },
-
-    {
-       11, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-     -146, -146, -146,   58, -146, -146,   58,   58,   58,   58,
-       58,  168,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -146
-    },
-
-    {
-       11, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147,   58, -147, -147,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,  169,
-       58,   58,   58,   58,   58,   58,   58, -147
-    },
-
-    {
-       11, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148,   58, -148, -148,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -148
-    },
-
-    {
-       11, -149, -149, -149, -149, -149, -149, -149, -149, -149,
-     -149, -149, -149,   58, -149, -149,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  170,   58,
-       58,   58,   58,   58,   58,   58,   58, -149
-
-    },
-
-    {
-       11, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150,   58, -150, -150,   58,   58,   58,   58,
-       58,  171,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -150
-    },
-
-    {
-       11, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-     -151, -151, -151,   58, -151, -151,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,  172,
-       58,   58,   58,   58,   58,   58,   58, -151
-    },
-
-    {
-       11, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152,   58, -152, -152,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,  173,   58,
-       58,   58,   58,   58,   58,   58,   58, -152
-    },
-
-    {
-       11, -153, -153, -153, -153, -153, -153, -153, -153, -153,
-     -153, -153, -153,   58, -153, -153,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  174,   58,   58, -153
-    },
-
-    {
-       11, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-     -154, -154, -154,   58, -154, -154,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -154
-
-    },
-
-    {
-       11, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-     -155, -155, -155,   58, -155, -155,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,  175,   58,   58,   58,   58, -155
-    },
-
-    {
-       11, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-     -156, -156, -156,   58, -156, -156,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  176,   58,   58, -156
-    },
-
-    {
-       11, -157, -157, -157, -157, -157, -157, -157, -157, -157,
-     -157, -157, -157,   58, -157, -157,   58,   58,   58,   58,
-
-       58,  177,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -157
-    },
-
-    {
-       11, -158, -158, -158, -158, -158, -158, -158, -158, -158,
-     -158, -158, -158,   58, -158, -158,   58,   58,   58,   58,
-       58,   58,   58,  178,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -158
-    },
-
-    {
-       11, -159, -159, -159, -159, -159, -159, -159, -159, -159,
-     -159, -159, -159,   58, -159, -159,   58,  179,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -159
-
-    },
-
-    {
-       11, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-     -160, -160, -160,   58, -160, -160,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  180,   58,
-       58,   58,   58,   58,   58,   58,   58, -160
-    },
-
-    {
-       11, -161, -161, -161, -161, -161, -161, -161, -161, -161,
-     -161, -161, -161,   58, -161, -161,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -161
-    },
-
-    {
-       11, -162, -162, -162, -162, -162, -162, -162, -162, -162,
-     -162, -162, -162,   58, -162, -162,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  181,   58,   58, -162
-    },
-
-    {
-       11, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163,   58, -163, -163,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -163
-    },
-
-    {
-       11, -164, -164, -164, -164, -164, -164, -164, -164, -164,
-     -164, -164, -164,   58, -164, -164,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,  182,
-       58,   58,   58,   58,   58,   58,   58, -164
-
-    },
-
-    {
-       11, -165, -165, -165, -165, -165, -165, -165, -165, -165,
-     -165, -165, -165,   58, -165, -165,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  183,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -165
-    },
-
-    {
-       11, -166, -166, -166, -166, -166, -166, -166, -166, -166,
-     -166, -166, -166,   58, -166, -166,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  184,   58,   58, -166
-    },
-
-    {
-       11, -167, -167, -167, -167, -167, -167, -167, -167, -167,
-     -167, -167, -167,   58, -167, -167,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,  185,   58,   58,   58, -167
-    },
-
-    {
-       11, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168,   58, -168, -168,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -168
-    },
-
-    {
-       11, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169,   58, -169, -169,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  186,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -169
-
-    },
-
-    {
-       11, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170,   58, -170, -170,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  187,   58, -170
-    },
-
-    {
-       11, -171, -171, -171, -171, -171, -171, -171, -171, -171,
-     -171, -171, -171,   58, -171, -171,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  188,   58,
-       58,   58,   58,   58,   58,   58,   58, -171
-    },
-
-    {
-       11, -172, -172, -172, -172, -172, -172, -172, -172, -172,
-     -172, -172, -172,   58, -172, -172,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,  189,   58,
-       58,   58,   58,   58,   58,   58,   58, -172
-    },
-
-    {
-       11, -173, -173, -173, -173, -173, -173, -173, -173, -173,
-     -173, -173, -173,   58, -173, -173,   58,  190,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -173
-    },
-
-    {
-       11, -174, -174, -174, -174, -174, -174, -174, -174, -174,
-     -174, -174, -174,   58, -174, -174,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -174
-
-    },
-
-    {
-       11, -175, -175, -175, -175, -175, -175, -175, -175, -175,
-     -175, -175, -175,   58, -175, -175,   58,   58,   58,   58,
-       58,  191,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -175
-    },
-
-    {
-       11, -176, -176, -176, -176, -176, -176, -176, -176, -176,
-     -176, -176, -176,   58, -176, -176,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -176
-    },
-
-    {
-       11, -177, -177, -177, -177, -177, -177, -177, -177, -177,
-     -177, -177, -177,   58, -177, -177,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -177
-    },
-
-    {
-       11, -178, -178, -178, -178, -178, -178, -178, -178, -178,
-     -178, -178, -178,   58, -178, -178,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -178
-    },
-
-    {
-       11, -179, -179, -179, -179, -179, -179, -179, -179, -179,
-     -179, -179, -179,   58, -179, -179,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  192,   58,   58, -179
-
-    },
-
-    {
-       11, -180, -180, -180, -180, -180, -180, -180, -180, -180,
-     -180, -180, -180,   58, -180, -180,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -180
-    },
-
-    {
-       11, -181, -181, -181, -181, -181, -181, -181, -181, -181,
-     -181, -181, -181,   58, -181, -181,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -181
-    },
-
-    {
-       11, -182, -182, -182, -182, -182, -182, -182, -182, -182,
-     -182, -182, -182,   58, -182, -182,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,  193,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -182
-    },
-
-    {
-       11, -183, -183, -183, -183, -183, -183, -183, -183, -183,
-     -183, -183, -183,   58, -183, -183,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,  194,   58,   58,   58, -183
-    },
-
-    {
-       11, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184,   58, -184, -184,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -184
-
-    },
-
-    {
-       11, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185,   58, -185, -185,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -185
-    },
-
-    {
-       11, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186,   58, -186, -186,   58,   58,   58,  195,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -186
-    },
-
-    {
-       11, -187, -187, -187, -187, -187, -187, -187, -187, -187,
-     -187, -187, -187,   58, -187, -187,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -187
-    },
-
-    {
-       11, -188, -188, -188, -188, -188, -188, -188, -188, -188,
-     -188, -188, -188,   58, -188, -188,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  196,   58, -188
-    },
-
-    {
-       11, -189, -189, -189, -189, -189, -189, -189, -189, -189,
-     -189, -189, -189,   58, -189, -189,   58,   58,   58,   58,
-       58,   58,  197,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -189
-
-    },
-
-    {
-       11, -190, -190, -190, -190, -190, -190, -190, -190, -190,
-     -190, -190, -190,   58, -190, -190,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  198,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -190
-    },
-
-    {
-       11, -191, -191, -191, -191, -191, -191, -191, -191, -191,
-     -191, -191, -191,   58, -191, -191,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,  199,   58,   58,   58, -191
-    },
-
-    {
-       11, -192, -192, -192, -192, -192, -192, -192, -192, -192,
-     -192, -192, -192,   58, -192, -192,   58,   58,   58,   58,
-
-       58,  200,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -192
-    },
-
-    {
-       11, -193, -193, -193, -193, -193, -193, -193, -193, -193,
-     -193, -193, -193,   58, -193, -193,   58,   58,   58,   58,
-       58,  201,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -193
-    },
-
-    {
-       11, -194, -194, -194, -194, -194, -194, -194, -194, -194,
-     -194, -194, -194,   58, -194, -194,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  202,   58,   58, -194
-
-    },
-
-    {
-       11, -195, -195, -195, -195, -195, -195, -195, -195, -195,
-     -195, -195, -195,   58, -195, -195,   58,   58,   58,   58,
-       58,  203,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -195
-    },
-
-    {
-       11, -196, -196, -196, -196, -196, -196, -196, -196, -196,
-     -196, -196, -196,   58, -196, -196,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -196
-    },
-
-    {
-       11, -197, -197, -197, -197, -197, -197, -197, -197, -197,
-     -197, -197, -197,   58, -197, -197,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,  204,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -197
-    },
-
-    {
-       11, -198, -198, -198, -198, -198, -198, -198, -198, -198,
-     -198, -198, -198,   58, -198, -198,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -198
-    },
-
-    {
-       11, -199, -199, -199, -199, -199, -199, -199, -199, -199,
-     -199, -199, -199,   58, -199, -199,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -199
-
-    },
-
-    {
-       11, -200, -200, -200, -200, -200, -200, -200, -200, -200,
-     -200, -200, -200,   58, -200, -200,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -200
-    },
-
-    {
-       11, -201, -201, -201, -201, -201, -201, -201, -201, -201,
-     -201, -201, -201,   58, -201, -201,   58,  205,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -201
-    },
-
-    {
-       11, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-     -202, -202, -202,   58, -202, -202,   58,  206,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -202
-    },
-
-    {
-       11, -203, -203, -203, -203, -203, -203, -203, -203, -203,
-     -203, -203, -203,   58, -203, -203,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -203
-    },
-
-    {
-       11, -204, -204, -204, -204, -204, -204, -204, -204, -204,
-     -204, -204, -204,   58, -204, -204,   58,   58,   58,   58,
-       58,   58,   58,  207,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -204
-
-    },
-
-    {
-       11, -205, -205, -205, -205, -205, -205, -205, -205, -205,
-     -205, -205, -205,   58, -205, -205,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  208,   58,
-       58,   58,   58,   58,   58,   58,   58, -205
-    },
-
-    {
-       11, -206, -206, -206, -206, -206, -206, -206, -206, -206,
-     -206, -206, -206,   58, -206, -206,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  209,   58,   58, -206
-    },
-
-    {
-       11, -207, -207, -207, -207, -207, -207, -207, -207, -207,
-     -207, -207, -207,   58, -207, -207,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -207
-    },
-
-    {
-       11, -208, -208, -208, -208, -208, -208, -208, -208, -208,
-     -208, -208, -208,   58, -208, -208,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -208
-    },
-
-    {
-       11, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209, -209,   58, -209, -209,   58,   58,   58,   58,
-       58,  210,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -209
-
-    },
-
-    {
-       11, -210, -210, -210, -210, -210, -210, -210, -210, -210,
-     -210, -210, -210,   58, -210, -210,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -210
-    },
-
-    } ;
-
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up zconftext.
- */
-#define YY_DO_BEFORE_ACTION \
-       (yytext_ptr) = yy_bp; \
-       zconfleng = (size_t) (yy_cp - yy_bp); \
-       (yy_hold_char) = *yy_cp; \
-       *yy_cp = '\0'; \
-       (yy_c_buf_p) = yy_cp;
-
-#define YY_NUM_RULES 64
-#define YY_END_OF_BUFFER 65
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-       {
-       flex_int32_t yy_verify;
-       flex_int32_t yy_nxt;
-       };
-static yyconst flex_int16_t yy_accept[211] =
-    {   0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       65,    5,    4,    3,    2,   36,   37,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
-       63,   60,   62,   55,   59,   58,   57,   53,   48,   42,
-       47,   51,   53,   40,   41,   50,   50,   43,   53,   50,
-       50,   53,    4,    3,    2,    2,    1,   35,   35,   35,
-       35,   35,   35,   35,   16,   35,   35,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   63,   60,   62,   61,
-       55,   54,   57,   56,   44,   51,   38,   50,   50,   52,
-       45,   46,   39,   35,   35,   35,   35,   35,   35,   35,
-
-       35,   35,   30,   29,   35,   35,   35,   35,   35,   35,
-       35,   35,   35,   35,   49,   25,   35,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   15,   35,    7,   35,
-       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   35,   17,   35,   35,
-       35,   35,   35,   34,   35,   35,   35,   35,   35,   35,
-       10,   35,   13,   35,   35,   35,   35,   33,   35,   35,
-       35,   35,   35,   22,   35,   32,    9,   31,   35,   26,
-       12,   35,   35,   21,   18,   35,    8,   35,   35,   35,
-       35,   35,   27,   35,   35,    6,   35,   20,   19,   23,
-
-       35,   35,   11,   35,   35,   35,   14,   28,   35,   24
-    } ;
-
-static yyconst flex_int32_t yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    4,    5,    6,    1,    1,    7,    8,    9,
-       10,    1,    1,    1,   11,   12,   12,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,    1,    1,    1,
-       14,    1,    1,    1,   13,   13,   13,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-        1,   15,    1,    1,   16,    1,   17,   18,   19,   20,
-
-       21,   22,   23,   24,   25,   13,   13,   26,   27,   28,
-       29,   30,   31,   32,   33,   34,   35,   13,   13,   36,
-       13,   13,    1,   37,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1
-    } ;
-
-extern int zconf_flex_debug;
-int zconf_flex_debug = 0;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *zconftext;
-
-/*
- * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-#define START_STRSIZE  16
-
-char *text;
-static char *text_ptr;
-static int text_size, text_asize;
-
-struct buffer {
-        struct buffer *parent;
-        YY_BUFFER_STATE state;
-};
-
-struct buffer *current_buf;
-
-static int last_ts, first_ts;
-
-static void zconf_endhelp(void);
-static struct buffer *zconf_endfile(void);
-
-void new_string(void)
-{
-       text = malloc(START_STRSIZE);
-       text_asize = START_STRSIZE;
-       text_ptr = text;
-       text_size = 0;
-       *text_ptr = 0;
-}
-
-void append_string(const char *str, int size)
-{
-       int new_size = text_size + size + 1;
-       if (new_size > text_asize) {
-               text = realloc(text, new_size);
-               text_asize = new_size;
-               text_ptr = text + text_size;
-       }
-       memcpy(text_ptr, str, size);
-       text_ptr += size;
-       text_size += size;
-       *text_ptr = 0;
-}
-
-void alloc_string(const char *str, int size)
-{
-       text = malloc(size + 1);
-       memcpy(text, str, size);
-       text[size] = 0;
-}
-
-#define INITIAL 0
-#define COMMAND 1
-#define HELP 2
-#define STRING 3
-#define PARAM 4
-
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int zconfwrap (void );
-#else
-extern int zconfwrap (void );
-#endif
-#endif
-
-    static void yyunput (int c,char *buf_ptr  );
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
-#endif
-
-#ifndef YY_NO_INPUT
-
-#ifdef __cplusplus
-static int yyinput (void );
-#else
-static int input (void );
-#endif
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO (void) fwrite( zconftext, zconfleng, 1, zconfout )
-#endif
-
-/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
-       errno=0; \
-       while ( (result = read( fileno(zconfin), (char *) buf, max_size )) < 0 ) \
-       { \
-               if( errno != EINTR) \
-               { \
-                       YY_FATAL_ERROR( "input in flex scanner failed" ); \
-                       break; \
-               } \
-               errno=0; \
-               clearerr(zconfin); \
-       }\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int zconflex (void);
-
-#define YY_DECL int zconflex (void)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after zconftext and zconfleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
-       YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
-       register yy_state_type yy_current_state;
-       register char *yy_cp, *yy_bp;
-       register int yy_act;
-
-       int str = 0;
-       int ts, i;
-
-       if ( (yy_init) )
-               {
-               (yy_init) = 0;
-
-#ifdef YY_USER_INIT
-               YY_USER_INIT;
-#endif
-
-               if ( ! (yy_start) )
-                       (yy_start) = 1; /* first start state */
-
-               if ( ! zconfin )
-                       zconfin = stdin;
-
-               if ( ! zconfout )
-                       zconfout = stdout;
-
-               if ( ! YY_CURRENT_BUFFER ) {
-                       zconfensure_buffer_stack ();
-                       YY_CURRENT_BUFFER_LVALUE =
-                               zconf_create_buffer(zconfin,YY_BUF_SIZE );
-               }
-
-               zconf_load_buffer_state( );
-               }
-
-       while ( 1 )             /* loops until end-of-file is reached */
-               {
-               yy_cp = (yy_c_buf_p);
-
-               /* Support of zconftext. */
-               *yy_cp = (yy_hold_char);
-
-               /* yy_bp points to the position in yy_ch_buf of the start of
-                * the current run.
-                */
-               yy_bp = yy_cp;
-
-               yy_current_state = (yy_start);
-yy_match:
-               while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
-                       ++yy_cp;
-
-               yy_current_state = -yy_current_state;
-
-yy_find_action:
-               yy_act = yy_accept[yy_current_state];
-
-               YY_DO_BEFORE_ACTION;
-
-do_action:     /* This label is used only to access EOF actions. */
-
-               switch ( yy_act )
-       { /* beginning of action switch */
-case 1:
-/* rule 1 can match eol */
-YY_RULE_SETUP
-current_file->lineno++;
-       YY_BREAK
-case 2:
-YY_RULE_SETUP
-
-       YY_BREAK
-case 3:
-/* rule 3 can match eol */
-YY_RULE_SETUP
-current_file->lineno++; return T_EOL;
-       YY_BREAK
-case 4:
-YY_RULE_SETUP
-{
-       BEGIN(COMMAND);
-}
-       YY_BREAK
-case 5:
-YY_RULE_SETUP
-{
-       unput(zconftext[0]);
-       BEGIN(COMMAND);
-}
-       YY_BREAK
-
-case 6:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_MAINMENU;
-       YY_BREAK
-case 7:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_MENU;
-       YY_BREAK
-case 8:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_ENDMENU;
-       YY_BREAK
-case 9:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_SOURCE;
-       YY_BREAK
-case 10:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_CHOICE;
-       YY_BREAK
-case 11:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_ENDCHOICE;
-       YY_BREAK
-case 12:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_COMMENT;
-       YY_BREAK
-case 13:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_CONFIG;
-       YY_BREAK
-case 14:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_MENUCONFIG;
-       YY_BREAK
-case 15:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_HELP;
-       YY_BREAK
-case 16:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_IF;
-       YY_BREAK
-case 17:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_ENDIF;
-       YY_BREAK
-case 18:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_DEPENDS;
-       YY_BREAK
-case 19:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_REQUIRES;
-       YY_BREAK
-case 20:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_OPTIONAL;
-       YY_BREAK
-case 21:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_DEFAULT;
-       YY_BREAK
-case 22:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_PROMPT;
-       YY_BREAK
-case 23:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_TRISTATE;
-       YY_BREAK
-case 24:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_DEF_TRISTATE;
-       YY_BREAK
-case 25:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_BOOLEAN;
-       YY_BREAK
-case 26:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_BOOLEAN;
-       YY_BREAK
-case 27:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_DEF_BOOLEAN;
-       YY_BREAK
-case 28:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_DEF_BOOLEAN;
-       YY_BREAK
-case 29:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_INT;
-       YY_BREAK
-case 30:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_HEX;
-       YY_BREAK
-case 31:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_STRING;
-       YY_BREAK
-case 32:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_SELECT;
-       YY_BREAK
-case 33:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_SELECT;
-       YY_BREAK
-case 34:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_RANGE;
-       YY_BREAK
-case 35:
-YY_RULE_SETUP
-{
-               alloc_string(zconftext, zconfleng);
-               zconflval.string = text;
-               return T_WORD;
-       }
-       YY_BREAK
-case 36:
-YY_RULE_SETUP
-
-       YY_BREAK
-case 37:
-/* rule 37 can match eol */
-YY_RULE_SETUP
-current_file->lineno++; BEGIN(INITIAL);
-       YY_BREAK
-
-case 38:
-YY_RULE_SETUP
-return T_AND;
-       YY_BREAK
-case 39:
-YY_RULE_SETUP
-return T_OR;
-       YY_BREAK
-case 40:
-YY_RULE_SETUP
-return T_OPEN_PAREN;
-       YY_BREAK
-case 41:
-YY_RULE_SETUP
-return T_CLOSE_PAREN;
-       YY_BREAK
-case 42:
-YY_RULE_SETUP
-return T_NOT;
-       YY_BREAK
-case 43:
-YY_RULE_SETUP
-return T_EQUAL;
-       YY_BREAK
-case 44:
-YY_RULE_SETUP
-return T_UNEQUAL;
-       YY_BREAK
-case 45:
-YY_RULE_SETUP
-return T_IF;
-       YY_BREAK
-case 46:
-YY_RULE_SETUP
-return T_ON;
-       YY_BREAK
-case 47:
-YY_RULE_SETUP
-{
-               str = zconftext[0];
-               new_string();
-               BEGIN(STRING);
-       }
-       YY_BREAK
-case 48:
-/* rule 48 can match eol */
-YY_RULE_SETUP
-BEGIN(INITIAL); current_file->lineno++; return T_EOL;
-       YY_BREAK
-case 49:
-YY_RULE_SETUP
-/* ignore */
-       YY_BREAK
-case 50:
-YY_RULE_SETUP
-{
-               alloc_string(zconftext, zconfleng);
-               zconflval.string = text;
-               return T_WORD;
-       }
-       YY_BREAK
-case 51:
-YY_RULE_SETUP
-/* comment */
-       YY_BREAK
-case 52:
-/* rule 52 can match eol */
-YY_RULE_SETUP
-current_file->lineno++;
-       YY_BREAK
-case 53:
-YY_RULE_SETUP
-
-       YY_BREAK
-case YY_STATE_EOF(PARAM):
-{
-               BEGIN(INITIAL);
-       }
-       YY_BREAK
-
-case 54:
-/* rule 54 can match eol */
-*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
-(yy_c_buf_p) = yy_cp -= 1;
-YY_DO_BEFORE_ACTION; /* set up zconftext again */
-YY_RULE_SETUP
-{
-               append_string(zconftext, zconfleng);
-               zconflval.string = text;
-               return T_WORD_QUOTE;
-       }
-       YY_BREAK
-case 55:
-YY_RULE_SETUP
-{
-               append_string(zconftext, zconfleng);
-       }
-       YY_BREAK
-case 56:
-/* rule 56 can match eol */
-*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
-(yy_c_buf_p) = yy_cp -= 1;
-YY_DO_BEFORE_ACTION; /* set up zconftext again */
-YY_RULE_SETUP
-{
-               append_string(zconftext + 1, zconfleng - 1);
-               zconflval.string = text;
-               return T_WORD_QUOTE;
-       }
-       YY_BREAK
-case 57:
-YY_RULE_SETUP
-{
-               append_string(zconftext + 1, zconfleng - 1);
-       }
-       YY_BREAK
-case 58:
-YY_RULE_SETUP
-{
-               if (str == zconftext[0]) {
-                       BEGIN(PARAM);
-                       zconflval.string = text;
-                       return T_WORD_QUOTE;
-               } else
-                       append_string(zconftext, 1);
-       }
-       YY_BREAK
-case 59:
-/* rule 59 can match eol */
-YY_RULE_SETUP
-{
-               printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
-               current_file->lineno++;
-               BEGIN(INITIAL);
-               return T_EOL;
-       }
-       YY_BREAK
-case YY_STATE_EOF(STRING):
-{
-               BEGIN(INITIAL);
-       }
-       YY_BREAK
-
-case 60:
-YY_RULE_SETUP
-{
-               ts = 0;
-               for (i = 0; i < zconfleng; i++) {
-                       if (zconftext[i] == '\t')
-                               ts = (ts & ~7) + 8;
-                       else
-                               ts++;
-               }
-               last_ts = ts;
-               if (first_ts) {
-                       if (ts < first_ts) {
-                               zconf_endhelp();
-                               return T_HELPTEXT;
-                       }
-                       ts -= first_ts;
-                       while (ts > 8) {
-                               append_string("        ", 8);
-                               ts -= 8;
-                       }
-                       append_string("        ", ts);
-               }
-       }
-       YY_BREAK
-case 61:
-/* rule 61 can match eol */
-*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
-(yy_c_buf_p) = yy_cp -= 1;
-YY_DO_BEFORE_ACTION; /* set up zconftext again */
-YY_RULE_SETUP
-{
-               current_file->lineno++;
-               zconf_endhelp();
-               return T_HELPTEXT;
-       }
-       YY_BREAK
-case 62:
-/* rule 62 can match eol */
-YY_RULE_SETUP
-{
-               current_file->lineno++;
-               append_string("\n", 1);
-       }
-       YY_BREAK
-case 63:
-YY_RULE_SETUP
-{
-               append_string(zconftext, zconfleng);
-               if (!first_ts)
-                       first_ts = last_ts;
-       }
-       YY_BREAK
-case YY_STATE_EOF(HELP):
-{
-               zconf_endhelp();
-               return T_HELPTEXT;
-       }
-       YY_BREAK
-
-case YY_STATE_EOF(INITIAL):
-case YY_STATE_EOF(COMMAND):
-{
-       if (current_buf) {
-               zconf_endfile();
-               return T_EOF;
-       }
-       fclose(zconfin);
-       yyterminate();
-}
-       YY_BREAK
-case 64:
-YY_RULE_SETUP
-YY_FATAL_ERROR( "flex scanner jammed" );
-       YY_BREAK
-
-       case YY_END_OF_BUFFER:
-               {
-               /* Amount of text matched not including the EOB char. */
-               int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
-
-               /* Undo the effects of YY_DO_BEFORE_ACTION. */
-               *yy_cp = (yy_hold_char);
-               YY_RESTORE_YY_MORE_OFFSET
-
-               if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-                       {
-                       /* We're scanning a new file or input source.  It's
-                        * possible that this happened because the user
-                        * just pointed zconfin at a new source and called
-                        * zconflex().  If so, then we have to assure
-                        * consistency between YY_CURRENT_BUFFER and our
-                        * globals.  Here is the right place to do so, because
-                        * this is the first action (other than possibly a
-                        * back-up) that will match for the new input source.
-                        */
-                       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-                       YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin;
-                       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-                       }
-
-               /* Note that here we test for yy_c_buf_p "<=" to the position
-                * of the first EOB in the buffer, since yy_c_buf_p will
-                * already have been incremented past the NUL character
-                * (since all states make transitions on EOB to the
-                * end-of-buffer state).  Contrast this with the test
-                * in input().
-                */
-               if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-                       { /* This was really a NUL. */
-                       yy_state_type yy_next_state;
-
-                       (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
-
-                       yy_current_state = yy_get_previous_state(  );
-
-                       /* Okay, we're now positioned to make the NUL
-                        * transition.  We couldn't have
-                        * yy_get_previous_state() go ahead and do it
-                        * for us because it doesn't know how to deal
-                        * with the possibility of jamming (and we don't
-                        * want to build jamming into it because then it
-                        * will run more slowly).
-                        */
-
-                       yy_next_state = yy_try_NUL_trans( yy_current_state );
-
-                       yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-
-                       if ( yy_next_state )
-                               {
-                               /* Consume the NUL. */
-                               yy_cp = ++(yy_c_buf_p);
-                               yy_current_state = yy_next_state;
-                               goto yy_match;
-                               }
-
-                       else
-                               {
-                               yy_cp = (yy_c_buf_p);
-                               goto yy_find_action;
-                               }
-                       }
-
-               else switch ( yy_get_next_buffer(  ) )
-                       {
-                       case EOB_ACT_END_OF_FILE:
-                               {
-                               (yy_did_buffer_switch_on_eof) = 0;
-
-                               if ( zconfwrap( ) )
-                                       {
-                                       /* Note: because we've taken care in
-                                        * yy_get_next_buffer() to have set up
-                                        * zconftext, we can now set up
-                                        * yy_c_buf_p so that if some total
-                                        * hoser (like flex itself) wants to
-                                        * call the scanner after we return the
-                                        * YY_NULL, it'll still work - another
-                                        * YY_NULL will get returned.
-                                        */
-                                       (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
-
-                                       yy_act = YY_STATE_EOF(YY_START);
-                                       goto do_action;
-                                       }
-
-                               else
-                                       {
-                                       if ( ! (yy_did_buffer_switch_on_eof) )
-                                               YY_NEW_FILE;
-                                       }
-                               break;
-                               }
-
-                       case EOB_ACT_CONTINUE_SCAN:
-                               (yy_c_buf_p) =
-                                       (yytext_ptr) + yy_amount_of_matched_text;
-
-                               yy_current_state = yy_get_previous_state(  );
-
-                               yy_cp = (yy_c_buf_p);
-                               yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-                               goto yy_match;
-
-                       case EOB_ACT_LAST_MATCH:
-                               (yy_c_buf_p) =
-                               &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
-
-                               yy_current_state = yy_get_previous_state(  );
-
-                               yy_cp = (yy_c_buf_p);
-                               yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-                               goto yy_find_action;
-                       }
-               break;
-               }
-
-       default:
-               YY_FATAL_ERROR(
-                       "fatal flex scanner internal error--no action found" );
-       } /* end of action switch */
-               } /* end of scanning one token */
-} /* end of zconflex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- *     EOB_ACT_LAST_MATCH -
- *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- *     EOB_ACT_END_OF_FILE - end of file
- */
-static int yy_get_next_buffer (void)
-{
-       register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-       register char *source = (yytext_ptr);
-       register int number_to_move, i;
-       int ret_val;
-
-       if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
-               YY_FATAL_ERROR(
-               "fatal flex scanner internal error--end of buffer missed" );
-
-       if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-               { /* Don't try to fill the buffer, so this is an EOF. */
-               if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
-                       {
-                       /* We matched a single character, the EOB, so
-                        * treat this as a final EOF.
-                        */
-                       return EOB_ACT_END_OF_FILE;
-                       }
-
-               else
-                       {
-                       /* We matched some text prior to the EOB, first
-                        * process it.
-                        */
-                       return EOB_ACT_LAST_MATCH;
-                       }
-               }
-
-       /* Try to read more data. */
-
-       /* First move last chars to start of buffer. */
-       number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
-
-       for ( i = 0; i < number_to_move; ++i )
-               *(dest++) = *(source++);
-
-       if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-               /* don't do the read, it's not guaranteed to return an EOF,
-                * just force an EOF
-                */
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
-
-       else
-               {
-                       size_t num_to_read =
-                       YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
-               while ( num_to_read <= 0 )
-                       { /* Not enough room in the buffer - grow it. */
-
-                       /* just a shorter name for the current buffer */
-                       YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
-
-                       int yy_c_buf_p_offset =
-                               (int) ((yy_c_buf_p) - b->yy_ch_buf);
-
-                       if ( b->yy_is_our_buffer )
-                               {
-                               int new_size = b->yy_buf_size * 2;
-
-                               if ( new_size <= 0 )
-                                       b->yy_buf_size += b->yy_buf_size / 8;
-                               else
-                                       b->yy_buf_size *= 2;
-
-                               b->yy_ch_buf = (char *)
-                                       /* Include room in for 2 EOB chars. */
-                                       zconfrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
-                               }
-                       else
-                               /* Can't grow it, we don't own it. */
-                               b->yy_ch_buf = 0;
-
-                       if ( ! b->yy_ch_buf )
-                               YY_FATAL_ERROR(
-                               "fatal error - scanner input buffer overflow" );
-
-                       (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-                       num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-                                               number_to_move - 1;
-
-                       }
-
-               if ( num_to_read > YY_READ_BUF_SIZE )
-                       num_to_read = YY_READ_BUF_SIZE;
-
-               /* Read in more data. */
-               YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-                       (yy_n_chars), num_to_read );
-
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-               }
-
-       if ( (yy_n_chars) == 0 )
-               {
-               if ( number_to_move == YY_MORE_ADJ )
-                       {
-                       ret_val = EOB_ACT_END_OF_FILE;
-                       zconfrestart(zconfin  );
-                       }
-
-               else
-                       {
-                       ret_val = EOB_ACT_LAST_MATCH;
-                       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-                               YY_BUFFER_EOF_PENDING;
-                       }
-               }
-
-       else
-               ret_val = EOB_ACT_CONTINUE_SCAN;
-
-       (yy_n_chars) += number_to_move;
-       YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
-       YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
-
-       (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
-       return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-    static yy_state_type yy_get_previous_state (void)
-{
-       register yy_state_type yy_current_state;
-       register char *yy_cp;
-
-       yy_current_state = (yy_start);
-
-       for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
-               {
-               yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
-               }
-
-       return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- *     next_state = yy_try_NUL_trans( current_state );
- */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
-{
-       register int yy_is_jam;
-
-       yy_current_state = yy_nxt[yy_current_state][1];
-       yy_is_jam = (yy_current_state <= 0);
-
-       return yy_is_jam ? 0 : yy_current_state;
-}
-
-    static void yyunput (int c, register char * yy_bp )
-{
-       register char *yy_cp;
-
-    yy_cp = (yy_c_buf_p);
-
-       /* undo effects of setting up zconftext */
-       *yy_cp = (yy_hold_char);
-
-       if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-               { /* need to shift things up to make room */
-               /* +2 for EOB chars. */
-               register int number_to_move = (yy_n_chars) + 2;
-               register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
-                                       YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
-               register char *source =
-                               &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
-
-               while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-                       *--dest = *--source;
-
-               yy_cp += (int) (dest - source);
-               yy_bp += (int) (dest - source);
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
-                       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
-
-               if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-                       YY_FATAL_ERROR( "flex scanner push-back overflow" );
-               }
-
-       *--yy_cp = (char) c;
-
-       (yytext_ptr) = yy_bp;
-       (yy_hold_char) = *yy_cp;
-       (yy_c_buf_p) = yy_cp;
-}
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-    static int yyinput (void)
-#else
-    static int input  (void)
-#endif
-
-{
-       int c;
-
-       *(yy_c_buf_p) = (yy_hold_char);
-
-       if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
-               {
-               /* yy_c_buf_p now points to the character we want to return.
-                * If this occurs *before* the EOB characters, then it's a
-                * valid NUL; if not, then we've hit the end of the buffer.
-                */
-               if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-                       /* This was really a NUL. */
-                       *(yy_c_buf_p) = '\0';
-
-               else
-                       { /* need more input */
-                       int offset = (yy_c_buf_p) - (yytext_ptr);
-                       ++(yy_c_buf_p);
-
-                       switch ( yy_get_next_buffer(  ) )
-                               {
-                               case EOB_ACT_LAST_MATCH:
-                                       /* This happens because yy_g_n_b()
-                                        * sees that we've accumulated a
-                                        * token and flags that we need to
-                                        * try matching the token before
-                                        * proceeding.  But for input(),
-                                        * there's no matching to consider.
-                                        * So convert the EOB_ACT_LAST_MATCH
-                                        * to EOB_ACT_END_OF_FILE.
-                                        */
-
-                                       /* Reset buffer status. */
-                                       zconfrestart(zconfin );
-
-                                       /*FALLTHROUGH*/
-
-                               case EOB_ACT_END_OF_FILE:
-                                       {
-                                       if ( zconfwrap( ) )
-                                               return EOF;
-
-                                       if ( ! (yy_did_buffer_switch_on_eof) )
-                                               YY_NEW_FILE;
-#ifdef __cplusplus
-                                       return yyinput();
-#else
-                                       return input();
-#endif
-                                       }
-
-                               case EOB_ACT_CONTINUE_SCAN:
-                                       (yy_c_buf_p) = (yytext_ptr) + offset;
-                                       break;
-                               }
-                       }
-               }
-
-       c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
-       *(yy_c_buf_p) = '\0';   /* preserve zconftext */
-       (yy_hold_char) = *++(yy_c_buf_p);
-
-       return c;
-}
-#endif /* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- *
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void zconfrestart  (FILE * input_file )
-{
-
-       if ( ! YY_CURRENT_BUFFER ){
-        zconfensure_buffer_stack ();
-               YY_CURRENT_BUFFER_LVALUE =
-            zconf_create_buffer(zconfin,YY_BUF_SIZE );
-       }
-
-       zconf_init_buffer(YY_CURRENT_BUFFER,input_file );
-       zconf_load_buffer_state( );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- *
- */
-    void zconf_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
-{
-
-       /* TODO. We should be able to replace this entire function body
-        * with
-        *              zconfpop_buffer_state();
-        *              zconfpush_buffer_state(new_buffer);
-     */
-       zconfensure_buffer_stack ();
-       if ( YY_CURRENT_BUFFER == new_buffer )
-               return;
-
-       if ( YY_CURRENT_BUFFER )
-               {
-               /* Flush out information for old buffer. */
-               *(yy_c_buf_p) = (yy_hold_char);
-               YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-               }
-
-       YY_CURRENT_BUFFER_LVALUE = new_buffer;
-       zconf_load_buffer_state( );
-
-       /* We don't actually know whether we did this switch during
-        * EOF (zconfwrap()) processing, but the only time this flag
-        * is looked at is after zconfwrap() is called, so it's safe
-        * to go ahead and always set it.
-        */
-       (yy_did_buffer_switch_on_eof) = 1;
-}
-
-static void zconf_load_buffer_state  (void)
-{
-       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-       (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-       zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-       (yy_hold_char) = *(yy_c_buf_p);
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- *
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE zconf_create_buffer  (FILE * file, int  size )
-{
-       YY_BUFFER_STATE b;
-
-       b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state )  );
-       if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
-
-       b->yy_buf_size = size;
-
-       /* yy_ch_buf has to be 2 characters longer than the size given because
-        * we need to put in 2 end-of-buffer characters.
-        */
-       b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2  );
-       if ( ! b->yy_ch_buf )
-               YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
-
-       b->yy_is_our_buffer = 1;
-
-       zconf_init_buffer(b,file );
-
-       return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with zconf_create_buffer()
- *
- */
-    void zconf_delete_buffer (YY_BUFFER_STATE  b )
-{
-
-       if ( ! b )
-               return;
-
-       if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-               YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
-       if ( b->yy_is_our_buffer )
-               zconffree((void *) b->yy_ch_buf  );
-
-       zconffree((void *) b  );
-}
-
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a zconfrestart() or at EOF.
- */
-    static void zconf_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
-
-{
-       int oerrno = errno;
-
-       zconf_flush_buffer(b );
-
-       b->yy_input_file = file;
-       b->yy_fill_buffer = 1;
-
-    /* If b is the current buffer, then zconf_init_buffer was _probably_
-     * called from zconfrestart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
-
-        b->yy_is_interactive = 0;
-
-       errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- *
- */
-    void zconf_flush_buffer (YY_BUFFER_STATE  b )
-{
-       if ( ! b )
-               return;
-
-       b->yy_n_chars = 0;
-
-       /* We always need two end-of-buffer characters.  The first causes
-        * a transition to the end-of-buffer state.  The second causes
-        * a jam in that state.
-        */
-       b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-       b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
-       b->yy_buf_pos = &b->yy_ch_buf[0];
-
-       b->yy_at_bol = 1;
-       b->yy_buffer_status = YY_BUFFER_NEW;
-
-       if ( b == YY_CURRENT_BUFFER )
-               zconf_load_buffer_state( );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *
- */
-void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
-{
-       if (new_buffer == NULL)
-               return;
-
-       zconfensure_buffer_stack();
-
-       /* This block is copied from zconf_switch_to_buffer. */
-       if ( YY_CURRENT_BUFFER )
-               {
-               /* Flush out information for old buffer. */
-               *(yy_c_buf_p) = (yy_hold_char);
-               YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-               }
-
-       /* Only push if top exists. Otherwise, replace top. */
-       if (YY_CURRENT_BUFFER)
-               (yy_buffer_stack_top)++;
-       YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-       /* copied from zconf_switch_to_buffer. */
-       zconf_load_buffer_state( );
-       (yy_did_buffer_switch_on_eof) = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *
- */
-void zconfpop_buffer_state (void)
-{
-       if (!YY_CURRENT_BUFFER)
-               return;
-
-       zconf_delete_buffer(YY_CURRENT_BUFFER );
-       YY_CURRENT_BUFFER_LVALUE = NULL;
-       if ((yy_buffer_stack_top) > 0)
-               --(yy_buffer_stack_top);
-
-       if (YY_CURRENT_BUFFER) {
-               zconf_load_buffer_state( );
-               (yy_did_buffer_switch_on_eof) = 1;
-       }
-}
-
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void zconfensure_buffer_stack (void)
-{
-       int num_to_alloc;
-
-       if (!(yy_buffer_stack)) {
-
-               /* First allocation is just for 2 elements, since we don't know if this
-                * scanner will even need a stack. We use 2 instead of 1 to avoid an
-                * immediate realloc on the next call.
-         */
-               num_to_alloc = 1;
-               (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
-                                                               (num_to_alloc * sizeof(struct yy_buffer_state*)
-                                                               );
-
-               memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-
-               (yy_buffer_stack_max) = num_to_alloc;
-               (yy_buffer_stack_top) = 0;
-               return;
-       }
-
-       if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-
-               /* Increase the buffer to prepare for a possible push. */
-               int grow_size = 8 /* arbitrary grow size */;
-
-               num_to_alloc = (yy_buffer_stack_max) + grow_size;
-               (yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc
-                                                               ((yy_buffer_stack),
-                                                               num_to_alloc * sizeof(struct yy_buffer_state*)
-                                                               );
-
-               /* zero only the new slots.*/
-               memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
-               (yy_buffer_stack_max) = num_to_alloc;
-       }
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- *
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE zconf_scan_buffer  (char * base, yy_size_t  size )
-{
-       YY_BUFFER_STATE b;
-
-       if ( size < 2 ||
-            base[size-2] != YY_END_OF_BUFFER_CHAR ||
-            base[size-1] != YY_END_OF_BUFFER_CHAR )
-               /* They forgot to leave room for the EOB's. */
-               return 0;
-
-       b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state )  );
-       if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" );
-
-       b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
-       b->yy_buf_pos = b->yy_ch_buf = base;
-       b->yy_is_our_buffer = 0;
-       b->yy_input_file = 0;
-       b->yy_n_chars = b->yy_buf_size;
-       b->yy_is_interactive = 0;
-       b->yy_at_bol = 1;
-       b->yy_fill_buffer = 0;
-       b->yy_buffer_status = YY_BUFFER_NEW;
-
-       zconf_switch_to_buffer(b  );
-
-       return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to zconflex() will
- * scan from a @e copy of @a str.
- * @param str a NUL-terminated string to scan
- *
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       zconf_scan_bytes() instead.
- */
-YY_BUFFER_STATE zconf_scan_string (yyconst char * str )
-{
-
-       return zconf_scan_bytes(str,strlen(str) );
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will
- * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
- *
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE zconf_scan_bytes  (yyconst char * bytes, int  len )
-{
-       YY_BUFFER_STATE b;
-       char *buf;
-       yy_size_t n;
-       int i;
-
-       /* Get memory for full buffer, including space for trailing EOB's. */
-       n = len + 2;
-       buf = (char *) zconfalloc(n  );
-       if ( ! buf )
-               YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" );
-
-       for ( i = 0; i < len; ++i )
-               buf[i] = bytes[i];
-
-       buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
-
-       b = zconf_scan_buffer(buf,n );
-       if ( ! b )
-               YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" );
-
-       /* It's okay to grow etc. this buffer, and we should throw it
-        * away when we're done.
-        */
-       b->yy_is_our_buffer = 1;
-
-       return b;
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yy_fatal_error (yyconst char* msg )
-{
-       (void) fprintf( stderr, "%s\n", msg );
-       exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
-       do \
-               { \
-               /* Undo effects of setting up zconftext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-               zconftext[zconfleng] = (yy_hold_char); \
-               (yy_c_buf_p) = zconftext + yyless_macro_arg; \
-               (yy_hold_char) = *(yy_c_buf_p); \
-               *(yy_c_buf_p) = '\0'; \
-               zconfleng = yyless_macro_arg; \
-               } \
-       while ( 0 )
-
-/* Accessor  methods (get/set functions) to struct members. */
-
-/** Get the current line number.
- *
- */
-int zconfget_lineno  (void)
-{
-
-    return zconflineno;
-}
-
-/** Get the input stream.
- *
- */
-FILE *zconfget_in  (void)
-{
-        return zconfin;
-}
-
-/** Get the output stream.
- *
- */
-FILE *zconfget_out  (void)
-{
-        return zconfout;
-}
-
-/** Get the length of the current token.
- *
- */
-int zconfget_leng  (void)
-{
-        return zconfleng;
-}
-
-/** Get the current token.
- *
- */
-
-char *zconfget_text  (void)
-{
-        return zconftext;
-}
-
-/** Set the current line number.
- * @param line_number
- *
- */
-void zconfset_lineno (int  line_number )
-{
-
-    zconflineno = line_number;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- *
- * @see zconf_switch_to_buffer
- */
-void zconfset_in (FILE *  in_str )
-{
-        zconfin = in_str ;
-}
-
-void zconfset_out (FILE *  out_str )
-{
-        zconfout = out_str ;
-}
-
-int zconfget_debug  (void)
-{
-        return zconf_flex_debug;
-}
-
-void zconfset_debug (int  bdebug )
-{
-        zconf_flex_debug = bdebug ;
-}
-
-/* zconflex_destroy is for both reentrant and non-reentrant scanners. */
-int zconflex_destroy  (void)
-{
-
-    /* Pop the buffer stack, destroying each element. */
-       while(YY_CURRENT_BUFFER){
-               zconf_delete_buffer(YY_CURRENT_BUFFER  );
-               YY_CURRENT_BUFFER_LVALUE = NULL;
-               zconfpop_buffer_state();
-       }
-
-       /* Destroy the stack itself. */
-       zconffree((yy_buffer_stack) );
-       (yy_buffer_stack) = NULL;
-
-    return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
-{
-       register int i;
-       for ( i = 0; i < n; ++i )
-               s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
-{
-       register int n;
-       for ( n = 0; s[n]; ++n )
-               ;
-
-       return n;
-}
-#endif
-
-void *zconfalloc (yy_size_t  size )
-{
-       return (void *) malloc( size );
-}
-
-void *zconfrealloc  (void * ptr, yy_size_t  size )
-{
-       /* The cast to (char *) in the following accommodates both
-        * implementations that use char* generic pointers, and those
-        * that use void* generic pointers.  It works with the latter
-        * because both ANSI C and C++ allow castless assignment from
-        * any pointer type to void*, and deal with argument conversions
-        * as though doing an assignment.
-        */
-       return (void *) realloc( (char *) ptr, size );
-}
-
-void zconffree (void * ptr )
-{
-       free( (char *) ptr );   /* see zconfrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#undef YY_NEW_FILE
-#undef YY_FLUSH_BUFFER
-#undef yy_set_bol
-#undef yy_new_buffer
-#undef yy_set_interactive
-#undef yytext_ptr
-#undef YY_DO_BEFORE_ACTION
-
-#ifdef YY_DECL_IS_OURS
-#undef YY_DECL_IS_OURS
-#undef YY_DECL
-#endif
-
-void zconf_starthelp(void)
-{
-       new_string();
-       last_ts = first_ts = 0;
-       BEGIN(HELP);
-}
-
-static void zconf_endhelp(void)
-{
-       zconflval.string = text;
-       BEGIN(INITIAL);
-}
-
-/*
- * Try to open specified file with following names:
- * ./name
- * $(srctree)/name
- * The latter is used when srctree is separate from objtree
- * when compiling the kernel.
- * Return NULL if file is not found.
- */
-FILE *zconf_fopen(const char *name)
-{
-       char *env, fullname[PATH_MAX+1];
-       FILE *f;
-
-       f = fopen(name, "r");
-       if (!f && name[0] != '/') {
-               env = getenv(SRCTREE);
-               if (env) {
-                       sprintf(fullname, "%s/%s", env, name);
-                       f = fopen(fullname, "r");
-               }
-       }
-       return f;
-}
-
-void zconf_initscan(const char *name)
-{
-       zconfin = zconf_fopen(name);
-       if (!zconfin) {
-               printf("can't find file %s\n", name);
-               exit(1);
-       }
-
-       current_buf = malloc(sizeof(*current_buf));
-       memset(current_buf, 0, sizeof(*current_buf));
-
-       current_file = file_lookup(name);
-       current_file->lineno = 1;
-       current_file->flags = FILE_BUSY;
-}
-
-void zconf_nextfile(const char *name)
-{
-       struct file *file = file_lookup(name);
-       struct buffer *buf = malloc(sizeof(*buf));
-       memset(buf, 0, sizeof(*buf));
-
-       current_buf->state = YY_CURRENT_BUFFER;
-       zconfin = zconf_fopen(name);
-       if (!zconfin) {
-               printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), name);
-               exit(1);
-       }
-       zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE));
-       buf->parent = current_buf;
-       current_buf = buf;
-
-       if (file->flags & FILE_BUSY) {
-               printf("recursive scan (%s)?\n", name);
-               exit(1);
-       }
-       if (file->flags & FILE_SCANNED) {
-               printf("file %s already scanned?\n", name);
-               exit(1);
-       }
-       file->flags |= FILE_BUSY;
-       file->lineno = 1;
-       file->parent = current_file;
-       current_file = file;
-}
-
-static struct buffer *zconf_endfile(void)
-{
-       struct buffer *parent;
-
-       current_file->flags |= FILE_SCANNED;
-       current_file->flags &= ~FILE_BUSY;
-       current_file = current_file->parent;
-
-       parent = current_buf->parent;
-       if (parent) {
-               fclose(zconfin);
-               zconf_delete_buffer(YY_CURRENT_BUFFER);
-               zconf_switch_to_buffer(parent->state);
-       }
-       free(current_buf);
-       current_buf = parent;
-
-       return parent;
-}
-
-int zconf_lineno(void)
-{
-       if (current_buf)
-               return current_file->lineno - 1;
-       else
-               return 0;
-}
-
-char *zconf_curname(void)
-{
-       if (current_buf)
-               return current_file->name;
-       else
-               return "<none>";
-}
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lkc.h b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lkc.h
deleted file mode 100644 (file)
index b8a67fc..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-#ifndef LKC_H
-#define LKC_H
-
-#include "expr.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef LKC_DIRECT_LINK
-#define P(name,type,arg)       extern type name arg
-#else
-#include "lkc_defs.h"
-#define P(name,type,arg)       extern type (*name ## _p) arg
-#endif
-#include "lkc_proto.h"
-#undef P
-
-#define SRCTREE "srctree"
-
-int zconfparse(void);
-void zconfdump(FILE *out);
-
-extern int zconfdebug;
-void zconf_starthelp(void);
-FILE *zconf_fopen(const char *name);
-void zconf_initscan(const char *name);
-void zconf_nextfile(const char *name);
-int zconf_lineno(void);
-char *zconf_curname(void);
-
-/* confdata.c */
-extern const char conf_def_filename[];
-extern char conf_filename[];
-
-char *conf_get_default_confname(void);
-
-/* kconfig_load.c */
-void kconfig_load(void);
-
-/* menu.c */
-void menu_init(void);
-void menu_add_menu(void);
-void menu_end_menu(void);
-void menu_add_entry(struct symbol *sym);
-void menu_end_entry(void);
-void menu_add_dep(struct expr *dep);
-struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
-void menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
-void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
-void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
-void menu_finalize(struct menu *parent);
-void menu_set_type(int type);
-
-/* util.c */
-struct file *file_lookup(const char *name);
-int file_write_dep(const char *name);
-
-struct gstr {
-       size_t len;
-       char  *s;
-};
-struct gstr str_new(void);
-struct gstr str_assign(const char *s);
-void str_free(struct gstr *gs);
-void str_append(struct gstr *gs, const char *s);
-void str_printf(struct gstr *gs, const char *fmt, ...);
-const char *str_get(struct gstr *gs);
-
-/* symbol.c */
-void sym_init(void);
-void sym_clear_all_valid(void);
-void sym_set_changed(struct symbol *sym);
-struct symbol *sym_check_deps(struct symbol *sym);
-struct property *prop_alloc(enum prop_type type, struct symbol *sym);
-struct symbol *prop_get_symbol(struct property *prop);
-
-static inline tristate sym_get_tristate_value(struct symbol *sym)
-{
-       return sym->curr.tri;
-}
-
-
-static inline struct symbol *sym_get_choice_value(struct symbol *sym)
-{
-       return (struct symbol *)sym->curr.val;
-}
-
-static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
-{
-       return sym_set_tristate_value(chval, yes);
-}
-
-static inline bool sym_is_choice(struct symbol *sym)
-{
-       return sym->flags & SYMBOL_CHOICE ? true : false;
-}
-
-static inline bool sym_is_choice_value(struct symbol *sym)
-{
-       return sym->flags & SYMBOL_CHOICEVAL ? true : false;
-}
-
-static inline bool sym_is_optional(struct symbol *sym)
-{
-       return sym->flags & SYMBOL_OPTIONAL ? true : false;
-}
-
-static inline bool sym_has_value(struct symbol *sym)
-{
-       return sym->flags & SYMBOL_NEW ? false : true;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LKC_H */
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lkc_proto.h b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lkc_proto.h
deleted file mode 100644 (file)
index 6dc6d0c..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-
-/* confdata.c */
-P(conf_parse,void,(const char *name));
-P(conf_read,int,(const char *name));
-P(conf_write,int,(const char *name));
-
-/* menu.c */
-P(rootmenu,struct menu,);
-
-P(menu_is_visible,bool,(struct menu *menu));
-P(menu_get_prompt,const char *,(struct menu *menu));
-P(menu_get_root_menu,struct menu *,(struct menu *menu));
-P(menu_get_parent_menu,struct menu *,(struct menu *menu));
-
-/* symbol.c */
-P(symbol_hash,struct symbol *,[SYMBOL_HASHSIZE]);
-P(sym_change_count,int,);
-
-P(sym_lookup,struct symbol *,(const char *name, int isconst));
-P(sym_find,struct symbol *,(const char *name));
-P(sym_re_search,struct symbol **,(const char *pattern));
-P(sym_type_name,const char *,(enum symbol_type type));
-P(sym_calc_value,void,(struct symbol *sym));
-P(sym_get_type,enum symbol_type,(struct symbol *sym));
-P(sym_tristate_within_range,bool,(struct symbol *sym,tristate tri));
-P(sym_set_tristate_value,bool,(struct symbol *sym,tristate tri));
-P(sym_toggle_tristate_value,tristate,(struct symbol *sym));
-P(sym_string_valid,bool,(struct symbol *sym, const char *newval));
-P(sym_string_within_range,bool,(struct symbol *sym, const char *str));
-P(sym_set_string_value,bool,(struct symbol *sym, const char *newval));
-P(sym_is_changable,bool,(struct symbol *sym));
-P(sym_get_choice_prop,struct property *,(struct symbol *sym));
-P(sym_get_default_prop,struct property *,(struct symbol *sym));
-P(sym_get_string_value,const char *,(struct symbol *sym));
-
-P(prop_get_type_name,const char *,(enum prop_type type));
-
-/* expr.c */
-P(expr_compare_type,int,(enum expr_type t1, enum expr_type t2));
-P(expr_print,void,(struct expr *e, void (*fn)(void *, const char *), void *data, int prevtoken));
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/BIG.FAT.WARNING b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/BIG.FAT.WARNING
deleted file mode 100644 (file)
index a8999d8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-This is NOT the official version of dialog.  This version has been
-significantly modified from the original.  It is for use by the Linux
-kernel configuration script.  Please do not bother Savio Lam with 
-questions about this program.
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/checklist.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/checklist.c
deleted file mode 100644 (file)
index 71de4a1..0000000
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- *  checklist.c -- implements the checklist box
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *     Stuart Herbert - S.Herbert@sheffield.ac.uk: radiolist extension
- *     Alessandro Rubini - rubini@ipvvis.unipv.it: merged the two
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "dialog.h"
-
-static int list_width, check_x, item_x, checkflag;
-
-/*
- * Print list item
- */
-static void
-print_item (WINDOW * win, const char *item, int status,
-           int choice, int selected)
-{
-    int i;
-
-    /* Clear 'residue' of last item */
-    wattrset (win, menubox_attr);
-    wmove (win, choice, 0);
-    for (i = 0; i < list_width; i++)
-       waddch (win, ' ');
-
-    wmove (win, choice, check_x);
-    wattrset (win, selected ? check_selected_attr : check_attr);
-    if (checkflag == FLAG_CHECK)
-       wprintw (win, "[%c]", status ? 'X' : ' ');
-    else
-       wprintw (win, "(%c)", status ? 'X' : ' ');
-
-    wattrset (win, selected ? tag_selected_attr : tag_attr);
-    mvwaddch(win, choice, item_x, item[0]);
-    wattrset (win, selected ? item_selected_attr : item_attr);
-    waddstr (win, (char *)item+1);
-    if (selected) {
-       wmove (win, choice, check_x+1);
-       wrefresh (win);
-    }
-}
-
-/*
- * Print the scroll indicators.
- */
-static void
-print_arrows (WINDOW * win, int choice, int item_no, int scroll,
-               int y, int x, int height)
-{
-    wmove(win, y, x);
-
-    if (scroll > 0) {
-       wattrset (win, uarrow_attr);
-       waddch (win, ACS_UARROW);
-       waddstr (win, "(-)");
-    }
-    else {
-       wattrset (win, menubox_attr);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-    }
-
-   y = y + height + 1;
-   wmove(win, y, x);
-
-   if ((height < item_no) && (scroll + choice < item_no - 1)) {
-       wattrset (win, darrow_attr);
-       waddch (win, ACS_DARROW);
-       waddstr (win, "(+)");
-    }
-    else {
-       wattrset (win, menubox_border_attr);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-   }
-}
-
-/*
- *  Display the termination buttons
- */
-static void
-print_buttons( WINDOW *dialog, int height, int width, int selected)
-{
-    int x = width / 2 - 11;
-    int y = height - 2;
-
-    print_button (dialog, "Select", y, x, selected == 0);
-    print_button (dialog, " Help ", y, x + 14, selected == 1);
-
-    wmove(dialog, y, x+1 + 14*selected);
-    wrefresh (dialog);
-}
-
-/*
- * Display a dialog box with a list of options that can be turned on or off
- * The `flag' parameter is used to select between radiolist and checklist.
- */
-int
-dialog_checklist (const char *title, const char *prompt, int height, int width,
-       int list_height, int item_no, struct dialog_list_item ** items,
-       int flag)
-       
-{
-    int i, x, y, box_x, box_y;
-    int key = 0, button = 0, choice = 0, scroll = 0, max_choice, *status;
-    WINDOW *dialog, *list;
-
-    checkflag = flag;
-
-    /* Allocate space for storing item on/off status */
-    if ((status = malloc (sizeof (int) * item_no)) == NULL) {
-       endwin ();
-       fprintf (stderr,
-                "\nCan't allocate memory in dialog_checklist().\n");
-       exit (-1);
-    }
-
-    /* Initializes status */
-    for (i = 0; i < item_no; i++) {
-       status[i] = (items[i]->selected == 1); /* ON */
-       if ((!choice && status[i]) || items[i]->selected == 2) /* SELECTED */
-            choice = i + 1;
-    }
-    if (choice)
-           choice--;
-
-    max_choice = MIN (list_height, item_no);
-
-    /* center dialog box on screen */
-    x = (COLS - width) / 2;
-    y = (LINES - height) / 2;
-
-    draw_shadow (stdscr, y, x, height, width);
-
-    dialog = newwin (height, width, y, x);
-    keypad (dialog, TRUE);
-
-    draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);
-    wattrset (dialog, border_attr);
-    mvwaddch (dialog, height-3, 0, ACS_LTEE);
-    for (i = 0; i < width - 2; i++)
-       waddch (dialog, ACS_HLINE);
-    wattrset (dialog, dialog_attr);
-    waddch (dialog, ACS_RTEE);
-
-    if (title != NULL && strlen(title) >= width-2 ) {
-       /* truncate long title -- mec */
-       char * title2 = malloc(width-2+1);
-       memcpy( title2, title, width-2 );
-       title2[width-2] = '\0';
-       title = title2;
-    }
-
-    if (title != NULL) {
-       wattrset (dialog, title_attr);
-       mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' ');
-       waddstr (dialog, (char *)title);
-       waddch (dialog, ' ');
-    }
-
-    wattrset (dialog, dialog_attr);
-    print_autowrap (dialog, prompt, width - 2, 1, 3);
-
-    list_width = width - 6;
-    box_y = height - list_height - 5;
-    box_x = (width - list_width) / 2 - 1;
-
-    /* create new window for the list */
-    list = subwin (dialog, list_height, list_width, y+box_y+1, x+box_x+1);
-
-    keypad (list, TRUE);
-
-    /* draw a box around the list items */
-    draw_box (dialog, box_y, box_x, list_height + 2, list_width + 2,
-             menubox_border_attr, menubox_attr);
-
-    /* Find length of longest item in order to center checklist */
-    check_x = 0;
-    for (i = 0; i < item_no; i++) 
-       check_x = MAX (check_x, + strlen (items[i]->name) + 4);
-
-    check_x = (list_width - check_x) / 2;
-    item_x = check_x + 4;
-
-    if (choice >= list_height) {
-       scroll = choice - list_height + 1;
-       choice -= scroll;
-    }
-
-    /* Print the list */
-    for (i = 0; i < max_choice; i++) {
-       print_item (list, items[scroll + i]->name,
-                   status[i+scroll], i, i == choice);
-    }
-
-    print_arrows(dialog, choice, item_no, scroll,
-                       box_y, box_x + check_x + 5, list_height);
-
-    print_buttons(dialog, height, width, 0);
-
-    wnoutrefresh (list);
-    wnoutrefresh (dialog);
-    doupdate ();
-
-    while (key != ESC) {
-       key = wgetch (dialog);
-
-       for (i = 0; i < max_choice; i++)
-            if (toupper(key) == toupper(items[scroll + i]->name[0]))
-                break;
-
-
-       if ( i < max_choice || key == KEY_UP || key == KEY_DOWN || 
-           key == '+' || key == '-' ) {
-           if (key == KEY_UP || key == '-') {
-               if (!choice) {
-                   if (!scroll)
-                       continue;
-                   /* Scroll list down */
-                   if (list_height > 1) {
-                       /* De-highlight current first item */
-                       print_item (list, items[scroll]->name,
-                                       status[scroll], 0, FALSE);
-                       scrollok (list, TRUE);
-                       wscrl (list, -1);
-                       scrollok (list, FALSE);
-                   }
-                   scroll--;
-                   print_item (list, items[scroll]->name,
-                               status[scroll], 0, TRUE);
-                   wnoutrefresh (list);
-
-                   print_arrows(dialog, choice, item_no, scroll,
-                               box_y, box_x + check_x + 5, list_height);
-
-                   wrefresh (dialog);
-
-                   continue;   /* wait for another key press */
-               } else
-                   i = choice - 1;
-           } else if (key == KEY_DOWN || key == '+') {
-               if (choice == max_choice - 1) {
-                   if (scroll + choice >= item_no - 1)
-                       continue;
-                   /* Scroll list up */
-                   if (list_height > 1) {
-                       /* De-highlight current last item before scrolling up */
-                       print_item (list, items[scroll + max_choice - 1]->name,
-                                   status[scroll + max_choice - 1],
-                                   max_choice - 1, FALSE);
-                       scrollok (list, TRUE);
-                       scroll (list);
-                       scrollok (list, FALSE);
-                   }
-                   scroll++;
-                   print_item (list, items[scroll + max_choice - 1]->name,
-                               status[scroll + max_choice - 1],
-                               max_choice - 1, TRUE);
-                   wnoutrefresh (list);
-
-                   print_arrows(dialog, choice, item_no, scroll,
-                               box_y, box_x + check_x + 5, list_height);
-
-                   wrefresh (dialog);
-
-                   continue;   /* wait for another key press */
-               } else
-                   i = choice + 1;
-           }
-           if (i != choice) {
-               /* De-highlight current item */
-               print_item (list, items[scroll + choice]->name,
-                           status[scroll + choice], choice, FALSE);
-               /* Highlight new item */
-               choice = i;
-               print_item (list, items[scroll + choice]->name,
-                           status[scroll + choice], choice, TRUE);
-               wnoutrefresh (list);
-               wrefresh (dialog);
-           }
-           continue;           /* wait for another key press */
-       }
-       switch (key) {
-       case 'H':
-       case 'h':
-       case '?':
-           for (i = 0; i < item_no; i++)
-               items[i]->selected = 0;
-           items[scroll + choice]->selected = 1;
-           delwin (dialog);
-           free (status);
-           return 1;
-       case TAB:
-       case KEY_LEFT:
-       case KEY_RIGHT:
-           button = ((key == KEY_LEFT ? --button : ++button) < 0)
-                       ? 1 : (button > 1 ? 0 : button);
-
-           print_buttons(dialog, height, width, button);
-           wrefresh (dialog);
-           break;
-       case 'S':
-       case 's':
-       case ' ':
-       case '\n':
-           if (!button) {
-               if (flag == FLAG_CHECK) {
-                   status[scroll + choice] = !status[scroll + choice];
-                   wmove (list, choice, check_x);
-                   wattrset (list, check_selected_attr);
-                   wprintw (list, "[%c]", status[scroll + choice] ? 'X' : ' ');
-               } else {
-                   if (!status[scroll + choice]) {
-                       for (i = 0; i < item_no; i++)
-                           status[i] = 0;
-                       status[scroll + choice] = 1;
-                       for (i = 0; i < max_choice; i++)
-                           print_item (list, items[scroll + i]->name,
-                                       status[scroll + i], i, i == choice);
-                   }
-               }
-               wnoutrefresh (list);
-               wrefresh (dialog);
-            
-               for (i = 0; i < item_no; i++) {
-                       items[i]->selected = status[i];
-               }
-            } else {
-                   for (i = 0; i < item_no; i++)
-                           items[i]->selected = 0;
-                   items[scroll + choice]->selected = 1;
-           }
-           delwin (dialog);
-           free (status);
-           return button;
-       case 'X':
-       case 'x':
-           key = ESC;
-       case ESC:
-           break;
-       }
-
-       /* Now, update everything... */
-       doupdate ();
-    }
-    
-
-    delwin (dialog);
-    free (status);
-    return -1;                 /* ESC pressed */
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/colors.h b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/colors.h
deleted file mode 100644 (file)
index d34dd37..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- *  colors.h -- color attribute definitions
- *
- *  AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-/*
- *   Default color definitions
- *
- *   *_FG = foreground
- *   *_BG = background
- *   *_HL = highlight?
- */
-#define SCREEN_FG                    COLOR_CYAN
-#define SCREEN_BG                    COLOR_BLUE
-#define SCREEN_HL                    TRUE
-
-#define SHADOW_FG                    COLOR_BLACK
-#define SHADOW_BG                    COLOR_BLACK
-#define SHADOW_HL                    TRUE
-
-#define DIALOG_FG                    COLOR_BLACK
-#define DIALOG_BG                    COLOR_WHITE
-#define DIALOG_HL                    FALSE
-
-#define TITLE_FG                     COLOR_YELLOW
-#define TITLE_BG                     COLOR_WHITE
-#define TITLE_HL                     TRUE
-
-#define BORDER_FG                    COLOR_WHITE
-#define BORDER_BG                    COLOR_WHITE
-#define BORDER_HL                    TRUE
-
-#define BUTTON_ACTIVE_FG             COLOR_WHITE
-#define BUTTON_ACTIVE_BG             COLOR_BLUE
-#define BUTTON_ACTIVE_HL             TRUE
-
-#define BUTTON_INACTIVE_FG           COLOR_BLACK
-#define BUTTON_INACTIVE_BG           COLOR_WHITE
-#define BUTTON_INACTIVE_HL           FALSE
-
-#define BUTTON_KEY_ACTIVE_FG         COLOR_WHITE
-#define BUTTON_KEY_ACTIVE_BG         COLOR_BLUE
-#define BUTTON_KEY_ACTIVE_HL         TRUE
-
-#define BUTTON_KEY_INACTIVE_FG       COLOR_RED
-#define BUTTON_KEY_INACTIVE_BG       COLOR_WHITE
-#define BUTTON_KEY_INACTIVE_HL       FALSE
-
-#define BUTTON_LABEL_ACTIVE_FG       COLOR_YELLOW
-#define BUTTON_LABEL_ACTIVE_BG       COLOR_BLUE
-#define BUTTON_LABEL_ACTIVE_HL       TRUE
-
-#define BUTTON_LABEL_INACTIVE_FG     COLOR_BLACK
-#define BUTTON_LABEL_INACTIVE_BG     COLOR_WHITE
-#define BUTTON_LABEL_INACTIVE_HL     TRUE
-
-#define INPUTBOX_FG                  COLOR_BLACK
-#define INPUTBOX_BG                  COLOR_WHITE
-#define INPUTBOX_HL                  FALSE
-
-#define INPUTBOX_BORDER_FG           COLOR_BLACK
-#define INPUTBOX_BORDER_BG           COLOR_WHITE
-#define INPUTBOX_BORDER_HL           FALSE
-
-#define SEARCHBOX_FG                 COLOR_BLACK
-#define SEARCHBOX_BG                 COLOR_WHITE
-#define SEARCHBOX_HL                 FALSE
-
-#define SEARCHBOX_TITLE_FG           COLOR_YELLOW
-#define SEARCHBOX_TITLE_BG           COLOR_WHITE
-#define SEARCHBOX_TITLE_HL           TRUE
-
-#define SEARCHBOX_BORDER_FG          COLOR_WHITE
-#define SEARCHBOX_BORDER_BG          COLOR_WHITE
-#define SEARCHBOX_BORDER_HL          TRUE
-
-#define POSITION_INDICATOR_FG        COLOR_YELLOW
-#define POSITION_INDICATOR_BG        COLOR_WHITE
-#define POSITION_INDICATOR_HL        TRUE
-
-#define MENUBOX_FG                   COLOR_BLACK
-#define MENUBOX_BG                   COLOR_WHITE
-#define MENUBOX_HL                   FALSE
-
-#define MENUBOX_BORDER_FG            COLOR_WHITE
-#define MENUBOX_BORDER_BG            COLOR_WHITE
-#define MENUBOX_BORDER_HL            TRUE
-
-#define ITEM_FG                      COLOR_BLACK
-#define ITEM_BG                      COLOR_WHITE
-#define ITEM_HL                      FALSE
-
-#define ITEM_SELECTED_FG             COLOR_WHITE
-#define ITEM_SELECTED_BG             COLOR_BLUE
-#define ITEM_SELECTED_HL             TRUE
-
-#define TAG_FG                       COLOR_YELLOW
-#define TAG_BG                       COLOR_WHITE
-#define TAG_HL                       TRUE
-
-#define TAG_SELECTED_FG              COLOR_YELLOW
-#define TAG_SELECTED_BG              COLOR_BLUE
-#define TAG_SELECTED_HL              TRUE
-
-#define TAG_KEY_FG                   COLOR_YELLOW
-#define TAG_KEY_BG                   COLOR_WHITE
-#define TAG_KEY_HL                   TRUE
-
-#define TAG_KEY_SELECTED_FG          COLOR_YELLOW
-#define TAG_KEY_SELECTED_BG          COLOR_BLUE
-#define TAG_KEY_SELECTED_HL          TRUE
-
-#define CHECK_FG                     COLOR_BLACK
-#define CHECK_BG                     COLOR_WHITE
-#define CHECK_HL                     FALSE
-
-#define CHECK_SELECTED_FG            COLOR_WHITE
-#define CHECK_SELECTED_BG            COLOR_BLUE
-#define CHECK_SELECTED_HL            TRUE
-
-#define UARROW_FG                    COLOR_GREEN
-#define UARROW_BG                    COLOR_WHITE
-#define UARROW_HL                    TRUE
-
-#define DARROW_FG                    COLOR_GREEN
-#define DARROW_BG                    COLOR_WHITE
-#define DARROW_HL                    TRUE
-
-/* End of default color definitions */
-
-#define C_ATTR(x,y)                  ((x ? A_BOLD : 0) | COLOR_PAIR((y)))
-#define COLOR_NAME_LEN               10
-#define COLOR_COUNT                  8
-
-/*
- * Global variables
- */
-
-typedef struct {
-    char name[COLOR_NAME_LEN];
-    int value;
-} color_names_st;
-
-extern color_names_st color_names[];
-extern int color_table[][3];
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/dialog.h b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/dialog.h
deleted file mode 100644 (file)
index 7bab3ad..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-
-/*
- *  dialog.h -- common declarations for all dialog modules
- *
- *  AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <sys/types.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef CURSES_LOC
-#ifdef __sun__
-#define CURS_MACROS
-#endif
-#include CURSES_LOC
-
-/*
- * Colors in ncurses 1.9.9e do not work properly since foreground and
- * background colors are OR'd rather than separately masked.  This version
- * of dialog was hacked to work with ncurses 1.9.9e, making it incompatible
- * with standard curses.  The simplest fix (to make this work with standard
- * curses) uses the wbkgdset() function, not used in the original hack.
- * Turn it off if we're building with 1.9.9e, since it just confuses things.
- */
-#if defined(NCURSES_VERSION) && defined(_NEED_WRAP) && !defined(GCC_PRINTFLIKE)
-#define OLD_NCURSES 1
-#undef  wbkgdset
-#define wbkgdset(w,p) /*nothing*/
-#else
-#define OLD_NCURSES 0
-#endif
-
-#define TR(params) _tracef params
-
-#define ESC 27
-#define TAB 9
-#define MAX_LEN 2048
-#define BUF_SIZE (10*1024)
-#define MIN(x,y) (x < y ? x : y)
-#define MAX(x,y) (x > y ? x : y)
-
-
-#ifndef ACS_ULCORNER
-#define ACS_ULCORNER '+'
-#endif
-#ifndef ACS_LLCORNER
-#define ACS_LLCORNER '+'
-#endif
-#ifndef ACS_URCORNER
-#define ACS_URCORNER '+'
-#endif
-#ifndef ACS_LRCORNER
-#define ACS_LRCORNER '+'
-#endif
-#ifndef ACS_HLINE
-#define ACS_HLINE '-'
-#endif
-#ifndef ACS_VLINE
-#define ACS_VLINE '|'
-#endif
-#ifndef ACS_LTEE
-#define ACS_LTEE '+'
-#endif
-#ifndef ACS_RTEE
-#define ACS_RTEE '+'
-#endif
-#ifndef ACS_UARROW
-#define ACS_UARROW '^'
-#endif
-#ifndef ACS_DARROW
-#define ACS_DARROW 'v'
-#endif
-
-/* 
- * Attribute names
- */
-#define screen_attr                   attributes[0]
-#define shadow_attr                   attributes[1]
-#define dialog_attr                   attributes[2]
-#define title_attr                    attributes[3]
-#define border_attr                   attributes[4]
-#define button_active_attr            attributes[5]
-#define button_inactive_attr          attributes[6]
-#define button_key_active_attr        attributes[7]
-#define button_key_inactive_attr      attributes[8]
-#define button_label_active_attr      attributes[9]
-#define button_label_inactive_attr    attributes[10]
-#define inputbox_attr                 attributes[11]
-#define inputbox_border_attr          attributes[12]
-#define searchbox_attr                attributes[13]
-#define searchbox_title_attr          attributes[14]
-#define searchbox_border_attr         attributes[15]
-#define position_indicator_attr       attributes[16]
-#define menubox_attr                  attributes[17]
-#define menubox_border_attr           attributes[18]
-#define item_attr                     attributes[19]
-#define item_selected_attr            attributes[20]
-#define tag_attr                      attributes[21]
-#define tag_selected_attr             attributes[22]
-#define tag_key_attr                  attributes[23]
-#define tag_key_selected_attr         attributes[24]
-#define check_attr                    attributes[25]
-#define check_selected_attr           attributes[26]
-#define uarrow_attr                   attributes[27]
-#define darrow_attr                   attributes[28]
-
-/* number of attributes */
-#define ATTRIBUTE_COUNT               29
-
-/*
- * Global variables
- */
-extern bool use_colors;
-
-extern chtype attributes[];
-#endif
-
-extern const char *backtitle;
-
-struct dialog_list_item {
-       char *name;
-       int namelen;
-       char *tag;
-       int selected; /* Set to 1 by dialog_*() function. */
-};
-
-/*
- * Function prototypes
- */
-
-void init_dialog (void);
-void end_dialog (void);
-void dialog_clear (void);
-#ifdef CURSES_LOC
-void attr_clear (WINDOW * win, int height, int width, chtype attr);
-void color_setup (void);
-void print_autowrap (WINDOW * win, const char *prompt, int width, int y, int x);
-void print_button (WINDOW * win, const char *label, int y, int x, int selected);
-void draw_box (WINDOW * win, int y, int x, int height, int width, chtype box,
-               chtype border);
-void draw_shadow (WINDOW * win, int y, int x, int height, int width);
-#endif
-
-int first_alpha (const char *string, const char *exempt);
-int dialog_yesno (const char *title, const char *prompt, int height, int width);
-int dialog_msgbox (const char *title, const char *prompt, int height,
-               int width, int pause);
-int dialog_textbox (const char *title, const char *file, int height, int width);
-int dialog_menu (const char *title, const char *prompt, int height, int width,
-               int menu_height, const char *choice, int item_no, 
-               struct dialog_list_item ** items);
-int dialog_checklist (const char *title, const char *prompt, int height,
-               int width, int list_height, int item_no,
-               struct dialog_list_item ** items, int flag);
-extern unsigned char dialog_input_result[];
-int dialog_inputbox (const char *title, const char *prompt, int height,
-               int width, const char *init);
-
-struct dialog_list_item *first_sel_item(int item_no,
-               struct dialog_list_item ** items);
-
-/*
- * This is the base for fictitious keys, which activate
- * the buttons.
- *
- * Mouse-generated keys are the following:
- *   -- the first 32 are used as numbers, in addition to '0'-'9'
- *   -- the lowercase are used to signal mouse-enter events (M_EVENT + 'o')
- *   -- uppercase chars are used to invoke the button (M_EVENT + 'O')
- */
-#ifdef CURSES_LOC
-#define M_EVENT (KEY_MAX+1)
-#endif
-
-
-/*
- * The `flag' parameter in checklist is used to select between
- * radiolist and checklist
- */
-#define FLAG_CHECK 1
-#define FLAG_RADIO 0
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/inputbox.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/inputbox.c
deleted file mode 100644 (file)
index fa7bebc..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- *  inputbox.c -- implements the input box
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "dialog.h"
-
-unsigned char dialog_input_result[MAX_LEN + 1];
-
-/*
- *  Print the termination buttons
- */
-static void
-print_buttons(WINDOW *dialog, int height, int width, int selected)
-{
-    int x = width / 2 - 11;
-    int y = height - 2;
-
-    print_button (dialog, "  Ok  ", y, x, selected==0);
-    print_button (dialog, " Help ", y, x + 14, selected==1);
-
-    wmove(dialog, y, x+1+14*selected);
-    wrefresh(dialog);
-}
-
-/*
- * Display a dialog box for inputing a string
- */
-int
-dialog_inputbox (const char *title, const char *prompt, int height, int width,
-                const char *init)
-{
-    int i, x, y, box_y, box_x, box_width;
-    int input_x = 0, scroll = 0, key = 0, button = -1;
-    unsigned char *instr = dialog_input_result;
-    WINDOW *dialog;
-
-    /* center dialog box on screen */
-    x = (COLS - width) / 2;
-    y = (LINES - height) / 2;
-
-
-    draw_shadow (stdscr, y, x, height, width);
-
-    dialog = newwin (height, width, y, x);
-    keypad (dialog, TRUE);
-
-    draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);
-    wattrset (dialog, border_attr);
-    mvwaddch (dialog, height-3, 0, ACS_LTEE);
-    for (i = 0; i < width - 2; i++)
-       waddch (dialog, ACS_HLINE);
-    wattrset (dialog, dialog_attr);
-    waddch (dialog, ACS_RTEE);
-
-    if (title != NULL && strlen(title) >= width-2 ) {
-       /* truncate long title -- mec */
-       char * title2 = malloc(width-2+1);
-       memcpy( title2, title, width-2 );
-       title2[width-2] = '\0';
-       title = title2;
-    }
-
-    if (title != NULL) {
-       wattrset (dialog, title_attr);
-       mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' ');
-       waddstr (dialog, (char *)title);
-       waddch (dialog, ' ');
-    }
-
-    wattrset (dialog, dialog_attr);
-    print_autowrap (dialog, prompt, width - 2, 1, 3);
-
-    /* Draw the input field box */
-    box_width = width - 6;
-    getyx (dialog, y, x);
-    box_y = y + 2;
-    box_x = (width - box_width) / 2;
-    draw_box (dialog, y + 1, box_x - 1, 3, box_width + 2,
-             border_attr, dialog_attr);
-
-    print_buttons(dialog, height, width, 0);
-
-    /* Set up the initial value */
-    wmove (dialog, box_y, box_x);
-    wattrset (dialog, inputbox_attr);
-
-    if (!init)
-       instr[0] = '\0';
-    else
-       strcpy (instr, init);
-
-    input_x = strlen (instr);
-
-    if (input_x >= box_width) {
-       scroll = input_x - box_width + 1;
-       input_x = box_width - 1;
-       for (i = 0; i < box_width - 1; i++)
-           waddch (dialog, instr[scroll + i]);
-    } else
-       waddstr (dialog, instr);
-
-    wmove (dialog, box_y, box_x + input_x);
-
-    wrefresh (dialog);
-
-    while (key != ESC) {
-       key = wgetch (dialog);
-
-       if (button == -1) {     /* Input box selected */
-           switch (key) {
-           case TAB:
-           case KEY_UP:
-           case KEY_DOWN:
-               break;
-           case KEY_LEFT:
-               continue;
-           case KEY_RIGHT:
-               continue;
-           case KEY_BACKSPACE:
-           case 127:
-               if (input_x || scroll) {
-                   wattrset (dialog, inputbox_attr);
-                   if (!input_x) {
-                       scroll = scroll < box_width - 1 ?
-                           0 : scroll - (box_width - 1);
-                       wmove (dialog, box_y, box_x);
-                       for (i = 0; i < box_width; i++)
-                           waddch (dialog, instr[scroll + input_x + i] ?
-                                   instr[scroll + input_x + i] : ' ');
-                       input_x = strlen (instr) - scroll;
-                   } else
-                       input_x--;
-                   instr[scroll + input_x] = '\0';
-                   mvwaddch (dialog, box_y, input_x + box_x, ' ');
-                   wmove (dialog, box_y, input_x + box_x);
-                   wrefresh (dialog);
-               }
-               continue;
-           default:
-               if (key < 0x100 && isprint (key)) {
-                   if (scroll + input_x < MAX_LEN) {
-                       wattrset (dialog, inputbox_attr);
-                       instr[scroll + input_x] = key;
-                       instr[scroll + input_x + 1] = '\0';
-                       if (input_x == box_width - 1) {
-                           scroll++;
-                           wmove (dialog, box_y, box_x);
-                           for (i = 0; i < box_width - 1; i++)
-                               waddch (dialog, instr[scroll + i]);
-                       } else {
-                           wmove (dialog, box_y, input_x++ + box_x);
-                           waddch (dialog, key);
-                       }
-                       wrefresh (dialog);
-                   } else
-                       flash ();       /* Alarm user about overflow */
-                   continue;
-               }
-           }
-       }
-       switch (key) {
-       case 'O':
-       case 'o':
-           delwin (dialog);
-           return 0;
-       case 'H':
-       case 'h':
-           delwin (dialog);
-           return 1;
-       case KEY_UP:
-       case KEY_LEFT:
-           switch (button) {
-           case -1:
-               button = 1;     /* Indicates "Cancel" button is selected */
-               print_buttons(dialog, height, width, 1);
-               break;
-           case 0:
-               button = -1;    /* Indicates input box is selected */
-               print_buttons(dialog, height, width, 0);
-               wmove (dialog, box_y, box_x + input_x);
-               wrefresh (dialog);
-               break;
-           case 1:
-               button = 0;     /* Indicates "OK" button is selected */
-               print_buttons(dialog, height, width, 0);
-               break;
-           }
-           break;
-       case TAB:
-       case KEY_DOWN:
-       case KEY_RIGHT:
-           switch (button) {
-           case -1:
-               button = 0;     /* Indicates "OK" button is selected */
-               print_buttons(dialog, height, width, 0);
-               break;
-           case 0:
-               button = 1;     /* Indicates "Cancel" button is selected */
-               print_buttons(dialog, height, width, 1);
-               break;
-           case 1:
-               button = -1;    /* Indicates input box is selected */
-               print_buttons(dialog, height, width, 0);
-               wmove (dialog, box_y, box_x + input_x);
-               wrefresh (dialog);
-               break;
-           }
-           break;
-       case ' ':
-       case '\n':
-           delwin (dialog);
-           return (button == -1 ? 0 : button);
-       case 'X':
-       case 'x':
-           key = ESC;
-       case ESC:
-           break;
-       }
-    }
-
-    delwin (dialog);
-    return -1;                 /* ESC pressed */
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/menubox.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/menubox.c
deleted file mode 100644 (file)
index 873dc58..0000000
+++ /dev/null
@@ -1,438 +0,0 @@
-/*
- *  menubox.c -- implements the menu box
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcapw@cfw.com)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*
- *  Changes by Clifford Wolf (god@clifford.at)
- *
- *  [ 1998-06-13 ]
- *
- *    *)  A bugfix for the Page-Down problem
- *
- *    *)  Formerly when I used Page Down and Page Up, the cursor would be set 
- *        to the first position in the menu box.  Now lxdialog is a bit
- *        smarter and works more like other menu systems (just have a look at
- *        it).
- *
- *    *)  Formerly if I selected something my scrolling would be broken because
- *        lxdialog is re-invoked by the Menuconfig shell script, can't
- *        remember the last scrolling position, and just sets it so that the
- *        cursor is at the bottom of the box.  Now it writes the temporary file
- *        lxdialog.scrltmp which contains this information. The file is
- *        deleted by lxdialog if the user leaves a submenu or enters a new
- *        one, but it would be nice if Menuconfig could make another "rm -f"
- *        just to be sure.  Just try it out - you will recognise a difference!
- *
- *  [ 1998-06-14 ]
- *
- *    *)  Now lxdialog is crash-safe against broken "lxdialog.scrltmp" files
- *        and menus change their size on the fly.
- *
- *    *)  If for some reason the last scrolling position is not saved by
- *        lxdialog, it sets the scrolling so that the selected item is in the
- *        middle of the menu box, not at the bottom.
- *
- * 02 January 1999, Michael Elizabeth Chastain (mec@shout.net)
- * Reset 'scroll' to 0 if the value from lxdialog.scrltmp is bogus.
- * This fixes a bug in Menuconfig where using ' ' to descend into menus
- * would leave mis-synchronized lxdialog.scrltmp files lying around,
- * fscanf would read in 'scroll', and eventually that value would get used.
- */
-
-#include "dialog.h"
-
-static int menu_width, item_x;
-
-/*
- * Print menu item
- */
-static void
-print_item (WINDOW * win, const char *item, int choice, int selected, int hotkey)
-{
-    int j;
-    char menu_item[menu_width+1];
-
-    strncpy(menu_item, item, menu_width);
-    menu_item[menu_width] = 0;
-    j = first_alpha(menu_item, "YyNnMmHh");
-
-    /* Clear 'residue' of last item */
-    wattrset (win, menubox_attr);
-    wmove (win, choice, 0);
-#if OLD_NCURSES
-    {
-        int i;
-        for (i = 0; i < menu_width; i++)
-           waddch (win, ' ');
-    }
-#else
-    wclrtoeol(win);
-#endif
-    wattrset (win, selected ? item_selected_attr : item_attr);
-    mvwaddstr (win, choice, item_x, menu_item);
-    if (hotkey) {
-       wattrset (win, selected ? tag_key_selected_attr : tag_key_attr);
-       mvwaddch(win, choice, item_x+j, menu_item[j]);
-    }
-    if (selected) {
-       wmove (win, choice, item_x+1);
-       wrefresh (win);
-    }
-}
-
-/*
- * Print the scroll indicators.
- */
-static void
-print_arrows (WINDOW * win, int item_no, int scroll,
-               int y, int x, int height)
-{
-    int cur_y, cur_x;
-
-    getyx(win, cur_y, cur_x);
-
-    wmove(win, y, x);
-
-    if (scroll > 0) {
-       wattrset (win, uarrow_attr);
-       waddch (win, ACS_UARROW);
-       waddstr (win, "(-)");
-    }
-    else {
-       wattrset (win, menubox_attr);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-    }
-
-   y = y + height + 1;
-   wmove(win, y, x);
-
-   if ((height < item_no) && (scroll + height < item_no)) {
-       wattrset (win, darrow_attr);
-       waddch (win, ACS_DARROW);
-       waddstr (win, "(+)");
-    }
-    else {
-       wattrset (win, menubox_border_attr);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-   }
-
-   wmove(win, cur_y, cur_x);
-}
-
-/*
- * Display the termination buttons.
- */
-static void
-print_buttons (WINDOW *win, int height, int width, int selected)
-{
-    int x = width / 2 - 16;
-    int y = height - 2;
-
-    print_button (win, "Select", y, x, selected == 0);
-    print_button (win, " Exit ", y, x + 12, selected == 1);
-    print_button (win, " Help ", y, x + 24, selected == 2);
-
-    wmove(win, y, x+1+12*selected);
-    wrefresh (win);
-}
-
-/*
- * Display a menu for choosing among a number of options
- */
-int
-dialog_menu (const char *title, const char *prompt, int height, int width,
-               int menu_height, const char *current, int item_no,
-               struct dialog_list_item ** items)
-{
-    int i, j, x, y, box_x, box_y;
-    int key = 0, button = 0, scroll = 0, choice = 0, first_item = 0, max_choice;
-    WINDOW *dialog, *menu;
-    FILE *f;
-
-    max_choice = MIN (menu_height, item_no);
-
-    /* center dialog box on screen */
-    x = (COLS - width) / 2;
-    y = (LINES - height) / 2;
-
-    draw_shadow (stdscr, y, x, height, width);
-
-    dialog = newwin (height, width, y, x);
-    keypad (dialog, TRUE);
-
-    draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);
-    wattrset (dialog, border_attr);
-    mvwaddch (dialog, height - 3, 0, ACS_LTEE);
-    for (i = 0; i < width - 2; i++)
-       waddch (dialog, ACS_HLINE);
-    wattrset (dialog, dialog_attr);
-    wbkgdset (dialog, dialog_attr & A_COLOR);
-    waddch (dialog, ACS_RTEE);
-
-    if (title != NULL && strlen(title) >= width-2 ) {
-       /* truncate long title -- mec */
-       char * title2 = malloc(width-2+1);
-       memcpy( title2, title, width-2 );
-       title2[width-2] = '\0';
-       title = title2;
-    }
-
-    if (title != NULL) {
-       wattrset (dialog, title_attr);
-       mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' ');
-       waddstr (dialog, (char *)title);
-       waddch (dialog, ' ');
-    }
-
-    wattrset (dialog, dialog_attr);
-    print_autowrap (dialog, prompt, width - 2, 1, 3);
-
-    menu_width = width - 6;
-    box_y = height - menu_height - 5;
-    box_x = (width - menu_width) / 2 - 1;
-
-    /* create new window for the menu */
-    menu = subwin (dialog, menu_height, menu_width,
-               y + box_y + 1, x + box_x + 1);
-    keypad (menu, TRUE);
-
-    /* draw a box around the menu items */
-    draw_box (dialog, box_y, box_x, menu_height + 2, menu_width + 2,
-             menubox_border_attr, menubox_attr);
-
-    /*
-     * Find length of longest item in order to center menu.
-     * Set 'choice' to default item. 
-     */
-    item_x = 0;
-    for (i = 0; i < item_no; i++) {
-       item_x = MAX (item_x, MIN(menu_width, strlen (items[i]->name) + 2));
-       if (strcmp(current, items[i]->tag) == 0) choice = i;
-    }
-
-    item_x = (menu_width - item_x) / 2;
-
-    /* get the scroll info from the temp file */
-    if ( (f=fopen("lxdialog.scrltmp","r")) != NULL ) {
-       if ( (fscanf(f,"%d\n",&scroll) == 1) && (scroll <= choice) &&
-            (scroll+max_choice > choice) && (scroll >= 0) &&
-            (scroll+max_choice <= item_no) ) {
-           first_item = scroll;
-           choice = choice - scroll;
-           fclose(f);
-       } else {
-           scroll=0;
-           remove("lxdialog.scrltmp");
-           fclose(f);
-           f=NULL;
-       }
-    }
-    if ( (choice >= max_choice) || (f==NULL && choice >= max_choice/2) ) {
-       if (choice >= item_no-max_choice/2)
-           scroll = first_item = item_no-max_choice;
-       else
-           scroll = first_item = choice - max_choice/2;
-       choice = choice - scroll;
-    }
-
-    /* Print the menu */
-    for (i=0; i < max_choice; i++) {
-       print_item (menu, items[first_item + i]->name, i, i == choice,
-                    (items[first_item + i]->tag[0] != ':'));
-    }
-
-    wnoutrefresh (menu);
-
-    print_arrows(dialog, item_no, scroll,
-                box_y, box_x+item_x+1, menu_height);
-
-    print_buttons (dialog, height, width, 0);
-    wmove (menu, choice, item_x+1);
-    wrefresh (menu);
-
-    while (key != ESC) {
-       key = wgetch(menu);
-
-       if (key < 256 && isalpha(key)) key = tolower(key);
-
-       if (strchr("ynmh", key))
-               i = max_choice;
-       else {
-        for (i = choice+1; i < max_choice; i++) {
-               j = first_alpha(items[scroll + i]->name, "YyNnMmHh");
-               if (key == tolower(items[scroll + i]->name[j]))
-                       break;
-       }
-       if (i == max_choice)
-                       for (i = 0; i < max_choice; i++) {
-                       j = first_alpha(items[scroll + i]->name, "YyNnMmHh");
-                       if (key == tolower(items[scroll + i]->name[j]))
-                               break;
-               }
-       }
-
-       if (i < max_choice || 
-            key == KEY_UP || key == KEY_DOWN ||
-            key == '-' || key == '+' ||
-            key == KEY_PPAGE || key == KEY_NPAGE) {
-
-            print_item (menu, items[scroll + choice]->name, choice, FALSE,
-                       (items[scroll + choice]->tag[0] != ':'));
-
-           if (key == KEY_UP || key == '-') {
-                if (choice < 2 && scroll) {
-                   /* Scroll menu down */
-                    scrollok (menu, TRUE);
-                    wscrl (menu, -1);
-                    scrollok (menu, FALSE);
-
-                    scroll--;
-
-                    print_item (menu, items[scroll]->name, 0, FALSE,
-                               (items[scroll]->tag[0] != ':'));
-               } else
-                   choice = MAX(choice - 1, 0);
-
-           } else if (key == KEY_DOWN || key == '+')  {
-
-               print_item (menu, items[scroll + choice]->name, choice, FALSE,
-                                (items[scroll + choice]->tag[0] != ':'));
-
-                if ((choice > max_choice-3) &&
-                    (scroll + max_choice < item_no)
-                   ) {
-                   /* Scroll menu up */
-                   scrollok (menu, TRUE);
-                    scroll (menu);
-                    scrollok (menu, FALSE);
-
-                    scroll++;
-
-                    print_item (menu, items[scroll + max_choice - 1]->name,
-                               max_choice-1, FALSE,
-                               (items[scroll + max_choice - 1]->tag[0] != ':'));
-                } else
-                    choice = MIN(choice+1, max_choice-1);
-
-           } else if (key == KEY_PPAGE) {
-               scrollok (menu, TRUE);
-                for (i=0; (i < max_choice); i++) {
-                    if (scroll > 0) {
-                       wscrl (menu, -1);
-                       scroll--;
-                       print_item (menu, items[scroll]->name, 0, FALSE,
-                       (items[scroll]->tag[0] != ':'));
-                    } else {
-                        if (choice > 0)
-                            choice--;
-                    }
-                }
-                scrollok (menu, FALSE);
-
-            } else if (key == KEY_NPAGE) {
-                for (i=0; (i < max_choice); i++) {
-                    if (scroll+max_choice < item_no) {
-                       scrollok (menu, TRUE);
-                       scroll(menu);
-                       scrollok (menu, FALSE);
-                       scroll++;
-                       print_item (menu, items[scroll + max_choice - 1]->name,
-                                   max_choice-1, FALSE,
-                                   (items[scroll + max_choice - 1]->tag[0] != ':'));
-                   } else {
-                       if (choice+1 < max_choice)
-                           choice++;
-                   }
-                }
-
-            } else
-                choice = i;
-
-            print_item (menu, items[scroll + choice]->name, choice, TRUE,
-                       (items[scroll + choice]->tag[0] != ':'));
-
-            print_arrows(dialog, item_no, scroll,
-                         box_y, box_x+item_x+1, menu_height);
-
-            wnoutrefresh (dialog);
-            wrefresh (menu);
-
-           continue;           /* wait for another key press */
-        }
-
-       switch (key) {
-       case KEY_LEFT:
-       case TAB:
-       case KEY_RIGHT:
-           button = ((key == KEY_LEFT ? --button : ++button) < 0)
-                       ? 2 : (button > 2 ? 0 : button);
-
-           print_buttons(dialog, height, width, button);
-           wrefresh (menu);
-           break;
-       case ' ':
-       case 's':
-       case 'y':
-       case 'n':
-       case 'm':
-       case '/':
-           /* save scroll info */
-           if ( (f=fopen("lxdialog.scrltmp","w")) != NULL ) {
-               fprintf(f,"%d\n",scroll);
-               fclose(f);
-           }
-           delwin (dialog);
-            items[scroll + choice]->selected = 1;
-            switch (key) {
-            case 's': return 3;
-            case 'y': return 3;
-            case 'n': return 4;
-            case 'm': return 5;
-            case ' ': return 6;
-            case '/': return 7;
-            }
-           return 0;
-       case 'h':
-       case '?':
-           button = 2;
-       case '\n':
-           delwin (dialog);
-           items[scroll + choice]->selected = 1;
-
-           remove("lxdialog.scrltmp");
-           return button;
-       case 'e':
-       case 'x':
-           key = ESC;
-       case ESC:
-           break;
-       }
-    }
-
-    delwin (dialog);
-    remove("lxdialog.scrltmp");
-    return -1;                 /* ESC pressed */
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/msgbox.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/msgbox.c
deleted file mode 100644 (file)
index 93692e1..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- *  msgbox.c -- implements the message box and info box
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcapw@cfw.com)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "dialog.h"
-
-/*
- * Display a message box. Program will pause and display an "OK" button
- * if the parameter 'pause' is non-zero.
- */
-int
-dialog_msgbox (const char *title, const char *prompt, int height, int width,
-               int pause)
-{
-    int i, x, y, key = 0;
-    WINDOW *dialog;
-
-    /* center dialog box on screen */
-    x = (COLS - width) / 2;
-    y = (LINES - height) / 2;
-
-    draw_shadow (stdscr, y, x, height, width);
-
-    dialog = newwin (height, width, y, x);
-    keypad (dialog, TRUE);
-
-    draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);
-
-    if (title != NULL && strlen(title) >= width-2 ) {
-       /* truncate long title -- mec */
-       char * title2 = malloc(width-2+1);
-       memcpy( title2, title, width-2 );
-       title2[width-2] = '\0';
-       title = title2;
-    }
-
-    if (title != NULL) {
-       wattrset (dialog, title_attr);
-       mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' ');
-       waddstr (dialog, (char *)title);
-       waddch (dialog, ' ');
-    }
-    wattrset (dialog, dialog_attr);
-    print_autowrap (dialog, prompt, width - 2, 1, 2);
-
-    if (pause) {
-       wattrset (dialog, border_attr);
-       mvwaddch (dialog, height - 3, 0, ACS_LTEE);
-       for (i = 0; i < width - 2; i++)
-           waddch (dialog, ACS_HLINE);
-       wattrset (dialog, dialog_attr);
-       waddch (dialog, ACS_RTEE);
-
-       print_button (dialog, "  Ok  ",
-                     height - 2, width / 2 - 4, TRUE);
-
-       wrefresh (dialog);
-       while (key != ESC && key != '\n' && key != ' ' &&
-               key != 'O' && key != 'o' && key != 'X' && key != 'x')
-           key = wgetch (dialog);
-    } else {
-       key = '\n';
-       wrefresh (dialog);
-    }
-
-    delwin (dialog);
-    return key == ESC ? -1 : 0;
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/textbox.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/textbox.c
deleted file mode 100644 (file)
index a5a460b..0000000
+++ /dev/null
@@ -1,556 +0,0 @@
-/*
- *  textbox.c -- implements the text box
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "dialog.h"
-
-static void back_lines (int n);
-static void print_page (WINDOW * win, int height, int width);
-static void print_line (WINDOW * win, int row, int width);
-static char *get_line (void);
-static void print_position (WINDOW * win, int height, int width);
-
-static int hscroll, fd, file_size, bytes_read;
-static int begin_reached = 1, end_reached, page_length;
-static char *buf, *page;
-
-/*
- * Display text from a file in a dialog box.
- */
-int
-dialog_textbox (const char *title, const char *file, int height, int width)
-{
-    int i, x, y, cur_x, cur_y, fpos, key = 0;
-    int passed_end;
-    char search_term[MAX_LEN + 1];
-    WINDOW *dialog, *text;
-
-    search_term[0] = '\0';     /* no search term entered yet */
-
-    /* Open input file for reading */
-    if ((fd = open (file, O_RDONLY)) == -1) {
-       endwin ();
-       fprintf (stderr,
-                "\nCan't open input file in dialog_textbox().\n");
-       exit (-1);
-    }
-    /* Get file size. Actually, 'file_size' is the real file size - 1,
-       since it's only the last byte offset from the beginning */
-    if ((file_size = lseek (fd, 0, SEEK_END)) == -1) {
-       endwin ();
-       fprintf (stderr, "\nError getting file size in dialog_textbox().\n");
-       exit (-1);
-    }
-    /* Restore file pointer to beginning of file after getting file size */
-    if (lseek (fd, 0, SEEK_SET) == -1) {
-       endwin ();
-       fprintf (stderr, "\nError moving file pointer in dialog_textbox().\n");
-       exit (-1);
-    }
-    /* Allocate space for read buffer */
-    if ((buf = malloc (BUF_SIZE + 1)) == NULL) {
-       endwin ();
-       fprintf (stderr, "\nCan't allocate memory in dialog_textbox().\n");
-       exit (-1);
-    }
-    if ((bytes_read = read (fd, buf, BUF_SIZE)) == -1) {
-       endwin ();
-       fprintf (stderr, "\nError reading file in dialog_textbox().\n");
-       exit (-1);
-    }
-    buf[bytes_read] = '\0';    /* mark end of valid data */
-    page = buf;                        /* page is pointer to start of page to be displayed */
-
-    /* center dialog box on screen */
-    x = (COLS - width) / 2;
-    y = (LINES - height) / 2;
-
-
-    draw_shadow (stdscr, y, x, height, width);
-
-    dialog = newwin (height, width, y, x);
-    keypad (dialog, TRUE);
-
-    /* Create window for text region, used for scrolling text */
-    text = subwin (dialog, height - 4, width - 2, y + 1, x + 1);
-    wattrset (text, dialog_attr);
-    wbkgdset (text, dialog_attr & A_COLOR);
-
-    keypad (text, TRUE);
-
-    /* register the new window, along with its borders */
-    draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);
-
-    wattrset (dialog, border_attr);
-    mvwaddch (dialog, height-3, 0, ACS_LTEE);
-    for (i = 0; i < width - 2; i++)
-       waddch (dialog, ACS_HLINE);
-    wattrset (dialog, dialog_attr);
-    wbkgdset (dialog, dialog_attr & A_COLOR);
-    waddch (dialog, ACS_RTEE);
-
-    if (title != NULL && strlen(title) >= width-2 ) {
-       /* truncate long title -- mec */
-       char * title2 = malloc(width-2+1);
-       memcpy( title2, title, width-2 );
-       title2[width-2] = '\0';
-       title = title2;
-    }
-
-    if (title != NULL) {
-       wattrset (dialog, title_attr);
-       mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' ');
-       waddstr (dialog, (char *)title);
-       waddch (dialog, ' ');
-    }
-    print_button (dialog, " Exit ", height - 2, width / 2 - 4, TRUE);
-    wnoutrefresh (dialog);
-    getyx (dialog, cur_y, cur_x);      /* Save cursor position */
-
-    /* Print first page of text */
-    attr_clear (text, height - 4, width - 2, dialog_attr);
-    print_page (text, height - 4, width - 2);
-    print_position (dialog, height, width);
-    wmove (dialog, cur_y, cur_x);      /* Restore cursor position */
-    wrefresh (dialog);
-
-    while ((key != ESC) && (key != '\n')) {
-       key = wgetch (dialog);
-       switch (key) {
-       case 'E':               /* Exit */
-       case 'e':
-       case 'X':
-       case 'x':
-           delwin (dialog);
-           free (buf);
-           close (fd);
-           return 0;
-       case 'g':               /* First page */
-       case KEY_HOME:
-           if (!begin_reached) {
-               begin_reached = 1;
-               /* First page not in buffer? */
-               if ((fpos = lseek (fd, 0, SEEK_CUR)) == -1) {
-                   endwin ();
-                   fprintf (stderr,
-                     "\nError moving file pointer in dialog_textbox().\n");
-                   exit (-1);
-               }
-               if (fpos > bytes_read) {        /* Yes, we have to read it in */
-                   if (lseek (fd, 0, SEEK_SET) == -1) {
-                       endwin ();
-                       fprintf (stderr, "\nError moving file pointer in "
-                                "dialog_textbox().\n");
-                       exit (-1);
-                   }
-                   if ((bytes_read = read (fd, buf, BUF_SIZE)) == -1) {
-                       endwin ();
-                       fprintf (stderr,
-                            "\nError reading file in dialog_textbox().\n");
-                       exit (-1);
-                   }
-                   buf[bytes_read] = '\0';
-               }
-               page = buf;
-               print_page (text, height - 4, width - 2);
-               print_position (dialog, height, width);
-               wmove (dialog, cur_y, cur_x);   /* Restore cursor position */
-               wrefresh (dialog);
-           }
-           break;
-       case 'G':               /* Last page */
-       case KEY_END:
-
-           end_reached = 1;
-           /* Last page not in buffer? */
-           if ((fpos = lseek (fd, 0, SEEK_CUR)) == -1) {
-               endwin ();
-               fprintf (stderr,
-                     "\nError moving file pointer in dialog_textbox().\n");
-               exit (-1);
-           }
-           if (fpos < file_size) {     /* Yes, we have to read it in */
-               if (lseek (fd, -BUF_SIZE, SEEK_END) == -1) {
-                   endwin ();
-                   fprintf (stderr,
-                     "\nError moving file pointer in dialog_textbox().\n");
-                   exit (-1);
-               }
-               if ((bytes_read = read (fd, buf, BUF_SIZE)) == -1) {
-                   endwin ();
-                   fprintf (stderr,
-                            "\nError reading file in dialog_textbox().\n");
-                   exit (-1);
-               }
-               buf[bytes_read] = '\0';
-           }
-           page = buf + bytes_read;
-           back_lines (height - 4);
-           print_page (text, height - 4, width - 2);
-           print_position (dialog, height, width);
-           wmove (dialog, cur_y, cur_x);       /* Restore cursor position */
-           wrefresh (dialog);
-           break;
-       case 'K':               /* Previous line */
-       case 'k':
-       case KEY_UP:
-           if (!begin_reached) {
-               back_lines (page_length + 1);
-
-               /* We don't call print_page() here but use scrolling to ensure
-                  faster screen update. However, 'end_reached' and
-                  'page_length' should still be updated, and 'page' should
-                  point to start of next page. This is done by calling
-                  get_line() in the following 'for' loop. */
-               scrollok (text, TRUE);
-               wscrl (text, -1);       /* Scroll text region down one line */
-               scrollok (text, FALSE);
-               page_length = 0;
-               passed_end = 0;
-               for (i = 0; i < height - 4; i++) {
-                   if (!i) {
-                       /* print first line of page */
-                       print_line (text, 0, width - 2);
-                       wnoutrefresh (text);
-                   } else
-                       /* Called to update 'end_reached' and 'page' */
-                       get_line ();
-                   if (!passed_end)
-                       page_length++;
-                   if (end_reached && !passed_end)
-                       passed_end = 1;
-               }
-
-               print_position (dialog, height, width);
-               wmove (dialog, cur_y, cur_x);   /* Restore cursor position */
-               wrefresh (dialog);
-           }
-           break;
-       case 'B':               /* Previous page */
-       case 'b':
-       case KEY_PPAGE:
-           if (begin_reached)
-               break;
-           back_lines (page_length + height - 4);
-           print_page (text, height - 4, width - 2);
-           print_position (dialog, height, width);
-           wmove (dialog, cur_y, cur_x);
-           wrefresh (dialog);
-           break;
-       case 'J':               /* Next line */
-       case 'j':
-       case KEY_DOWN:
-           if (!end_reached) {
-               begin_reached = 0;
-               scrollok (text, TRUE);
-               scroll (text);  /* Scroll text region up one line */
-               scrollok (text, FALSE);
-               print_line (text, height - 5, width - 2);
-               wnoutrefresh (text);
-               print_position (dialog, height, width);
-               wmove (dialog, cur_y, cur_x);   /* Restore cursor position */
-               wrefresh (dialog);
-           }
-           break;
-       case KEY_NPAGE:         /* Next page */
-       case ' ':
-           if (end_reached)
-               break;
-
-           begin_reached = 0;
-           print_page (text, height - 4, width - 2);
-           print_position (dialog, height, width);
-           wmove (dialog, cur_y, cur_x);
-           wrefresh (dialog);
-           break;
-       case '0':               /* Beginning of line */
-       case 'H':               /* Scroll left */
-       case 'h':
-       case KEY_LEFT:
-           if (hscroll <= 0)
-               break;
-
-           if (key == '0')
-               hscroll = 0;
-           else
-               hscroll--;
-           /* Reprint current page to scroll horizontally */
-           back_lines (page_length);
-           print_page (text, height - 4, width - 2);
-           wmove (dialog, cur_y, cur_x);
-           wrefresh (dialog);
-           break;
-       case 'L':               /* Scroll right */
-       case 'l':
-       case KEY_RIGHT:
-           if (hscroll >= MAX_LEN)
-               break;
-           hscroll++;
-           /* Reprint current page to scroll horizontally */
-           back_lines (page_length);
-           print_page (text, height - 4, width - 2);
-           wmove (dialog, cur_y, cur_x);
-           wrefresh (dialog);
-           break;
-       case ESC:
-           break;
-       }
-    }
-
-    delwin (dialog);
-    free (buf);
-    close (fd);
-    return 1;                  /* ESC pressed */
-}
-
-/*
- * Go back 'n' lines in text file. Called by dialog_textbox().
- * 'page' will be updated to point to the desired line in 'buf'.
- */
-static void
-back_lines (int n)
-{
-    int i, fpos;
-
-    begin_reached = 0;
-    /* We have to distinguish between end_reached and !end_reached
-       since at end of file, the line is not ended by a '\n'.
-       The code inside 'if' basically does a '--page' to move one
-       character backward so as to skip '\n' of the previous line */
-    if (!end_reached) {
-       /* Either beginning of buffer or beginning of file reached? */
-       if (page == buf) {
-           if ((fpos = lseek (fd, 0, SEEK_CUR)) == -1) {
-               endwin ();
-               fprintf (stderr, "\nError moving file pointer in "
-                        "back_lines().\n");
-               exit (-1);
-           }
-           if (fpos > bytes_read) {    /* Not beginning of file yet */
-               /* We've reached beginning of buffer, but not beginning of
-                  file yet, so read previous part of file into buffer.
-                  Note that we only move backward for BUF_SIZE/2 bytes,
-                  but not BUF_SIZE bytes to avoid re-reading again in
-                  print_page() later */
-               /* Really possible to move backward BUF_SIZE/2 bytes? */
-               if (fpos < BUF_SIZE / 2 + bytes_read) {
-                   /* No, move less then */
-                   if (lseek (fd, 0, SEEK_SET) == -1) {
-                       endwin ();
-                       fprintf (stderr, "\nError moving file pointer in "
-                                "back_lines().\n");
-                       exit (-1);
-                   }
-                   page = buf + fpos - bytes_read;
-               } else {        /* Move backward BUF_SIZE/2 bytes */
-                   if (lseek (fd, -(BUF_SIZE / 2 + bytes_read), SEEK_CUR)
-                       == -1) {
-                       endwin ();
-                       fprintf (stderr, "\nError moving file pointer "
-                                "in back_lines().\n");
-                       exit (-1);
-                   }
-                   page = buf + BUF_SIZE / 2;
-               }
-               if ((bytes_read = read (fd, buf, BUF_SIZE)) == -1) {
-                   endwin ();
-                   fprintf (stderr, "\nError reading file in back_lines().\n");
-                   exit (-1);
-               }
-               buf[bytes_read] = '\0';
-           } else {            /* Beginning of file reached */
-               begin_reached = 1;
-               return;
-           }
-       }
-       if (*(--page) != '\n') {        /* '--page' here */
-           /* Something's wrong... */
-           endwin ();
-           fprintf (stderr, "\nInternal error in back_lines().\n");
-           exit (-1);
-       }
-    }
-    /* Go back 'n' lines */
-    for (i = 0; i < n; i++)
-       do {
-           if (page == buf) {
-               if ((fpos = lseek (fd, 0, SEEK_CUR)) == -1) {
-                   endwin ();
-                   fprintf (stderr,
-                         "\nError moving file pointer in back_lines().\n");
-                   exit (-1);
-               }
-               if (fpos > bytes_read) {
-                   /* Really possible to move backward BUF_SIZE/2 bytes? */
-                   if (fpos < BUF_SIZE / 2 + bytes_read) {
-                       /* No, move less then */
-                       if (lseek (fd, 0, SEEK_SET) == -1) {
-                           endwin ();
-                           fprintf (stderr, "\nError moving file pointer "
-                                    "in back_lines().\n");
-                           exit (-1);
-                       }
-                       page = buf + fpos - bytes_read;
-                   } else {    /* Move backward BUF_SIZE/2 bytes */
-                       if (lseek (fd, -(BUF_SIZE / 2 + bytes_read),
-                                  SEEK_CUR) == -1) {
-                           endwin ();
-                           fprintf (stderr, "\nError moving file pointer"
-                                    " in back_lines().\n");
-                           exit (-1);
-                       }
-                       page = buf + BUF_SIZE / 2;
-                   }
-                   if ((bytes_read = read (fd, buf, BUF_SIZE)) == -1) {
-                       endwin ();
-                       fprintf (stderr, "\nError reading file in "
-                                "back_lines().\n");
-                       exit (-1);
-                   }
-                   buf[bytes_read] = '\0';
-               } else {        /* Beginning of file reached */
-                   begin_reached = 1;
-                   return;
-               }
-           }
-       } while (*(--page) != '\n');
-    page++;
-}
-
-/*
- * Print a new page of text. Called by dialog_textbox().
- */
-static void
-print_page (WINDOW * win, int height, int width)
-{
-    int i, passed_end = 0;
-
-    page_length = 0;
-    for (i = 0; i < height; i++) {
-       print_line (win, i, width);
-       if (!passed_end)
-           page_length++;
-       if (end_reached && !passed_end)
-           passed_end = 1;
-    }
-    wnoutrefresh (win);
-}
-
-/*
- * Print a new line of text. Called by dialog_textbox() and print_page().
- */
-static void
-print_line (WINDOW * win, int row, int width)
-{
-    int y, x;
-    char *line;
-
-    line = get_line ();
-    line += MIN (strlen (line), hscroll);      /* Scroll horizontally */
-    wmove (win, row, 0);       /* move cursor to correct line */
-    waddch (win, ' ');
-    waddnstr (win, line, MIN (strlen (line), width - 2));
-
-    getyx (win, y, x);
-    /* Clear 'residue' of previous line */
-#if OLD_NCURSES
-    {
-        int i;
-        for (i = 0; i < width - x; i++)
-           waddch (win, ' ');
-    }
-#else
-    wclrtoeol(win);
-#endif
-}
-
-/*
- * Return current line of text. Called by dialog_textbox() and print_line().
- * 'page' should point to start of current line before calling, and will be
- * updated to point to start of next line.
- */
-static char *
-get_line (void)
-{
-    int i = 0, fpos;
-    static char line[MAX_LEN + 1];
-
-    end_reached = 0;
-    while (*page != '\n') {
-       if (*page == '\0') {
-           /* Either end of file or end of buffer reached */
-           if ((fpos = lseek (fd, 0, SEEK_CUR)) == -1) {
-               endwin ();
-               fprintf (stderr, "\nError moving file pointer in "
-                        "get_line().\n");
-               exit (-1);
-           }
-           if (fpos < file_size) {     /* Not end of file yet */
-               /* We've reached end of buffer, but not end of file yet,
-                  so read next part of file into buffer */
-               if ((bytes_read = read (fd, buf, BUF_SIZE)) == -1) {
-                   endwin ();
-                   fprintf (stderr, "\nError reading file in get_line().\n");
-                   exit (-1);
-               }
-               buf[bytes_read] = '\0';
-               page = buf;
-           } else {
-               if (!end_reached)
-                   end_reached = 1;
-               break;
-           }
-       } else if (i < MAX_LEN)
-           line[i++] = *(page++);
-       else {
-           /* Truncate lines longer than MAX_LEN characters */
-           if (i == MAX_LEN)
-               line[i++] = '\0';
-           page++;
-       }
-    }
-    if (i <= MAX_LEN)
-       line[i] = '\0';
-    if (!end_reached)
-       page++;                 /* move pass '\n' */
-
-    return line;
-}
-
-/*
- * Print current position
- */
-static void
-print_position (WINDOW * win, int height, int width)
-{
-    int fpos, percent;
-
-    if ((fpos = lseek (fd, 0, SEEK_CUR)) == -1) {
-       endwin ();
-       fprintf (stderr, "\nError moving file pointer in print_position().\n");
-       exit (-1);
-    }
-    wattrset (win, position_indicator_attr);
-    wbkgdset (win, position_indicator_attr & A_COLOR);
-    percent = !file_size ?
-       100 : ((fpos - bytes_read + page - buf) * 100) / file_size;
-    wmove (win, height - 3, width - 9);
-    wprintw (win, "(%3d%%)", percent);
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/util.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/util.c
deleted file mode 100644 (file)
index 6f83951..0000000
+++ /dev/null
@@ -1,375 +0,0 @@
-/*
- *  util.c
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "dialog.h"
-
-
-/* use colors by default? */
-bool use_colors = 1;
-
-const char *backtitle = NULL;
-
-const char *dialog_result;
-
-/* 
- * Attribute values, default is for mono display
- */
-chtype attributes[] =
-{
-    A_NORMAL,                  /* screen_attr */
-    A_NORMAL,                  /* shadow_attr */
-    A_NORMAL,                  /* dialog_attr */
-    A_BOLD,                    /* title_attr */
-    A_NORMAL,                  /* border_attr */
-    A_REVERSE,                 /* button_active_attr */
-    A_DIM,                     /* button_inactive_attr */
-    A_REVERSE,                 /* button_key_active_attr */
-    A_BOLD,                    /* button_key_inactive_attr */
-    A_REVERSE,                 /* button_label_active_attr */
-    A_NORMAL,                  /* button_label_inactive_attr */
-    A_NORMAL,                  /* inputbox_attr */
-    A_NORMAL,                  /* inputbox_border_attr */
-    A_NORMAL,                  /* searchbox_attr */
-    A_BOLD,                    /* searchbox_title_attr */
-    A_NORMAL,                  /* searchbox_border_attr */
-    A_BOLD,                    /* position_indicator_attr */
-    A_NORMAL,                  /* menubox_attr */
-    A_NORMAL,                  /* menubox_border_attr */
-    A_NORMAL,                  /* item_attr */
-    A_REVERSE,                 /* item_selected_attr */
-    A_BOLD,                    /* tag_attr */
-    A_REVERSE,                 /* tag_selected_attr */
-    A_BOLD,                    /* tag_key_attr */
-    A_REVERSE,                 /* tag_key_selected_attr */
-    A_BOLD,                    /* check_attr */
-    A_REVERSE,                 /* check_selected_attr */
-    A_BOLD,                    /* uarrow_attr */
-    A_BOLD                     /* darrow_attr */
-};
-
-
-#include "colors.h"
-
-/*
- * Table of color values
- */
-int color_table[][3] =
-{
-    {SCREEN_FG, SCREEN_BG, SCREEN_HL},
-    {SHADOW_FG, SHADOW_BG, SHADOW_HL},
-    {DIALOG_FG, DIALOG_BG, DIALOG_HL},
-    {TITLE_FG, TITLE_BG, TITLE_HL},
-    {BORDER_FG, BORDER_BG, BORDER_HL},
-    {BUTTON_ACTIVE_FG, BUTTON_ACTIVE_BG, BUTTON_ACTIVE_HL},
-    {BUTTON_INACTIVE_FG, BUTTON_INACTIVE_BG, BUTTON_INACTIVE_HL},
-    {BUTTON_KEY_ACTIVE_FG, BUTTON_KEY_ACTIVE_BG, BUTTON_KEY_ACTIVE_HL},
-    {BUTTON_KEY_INACTIVE_FG, BUTTON_KEY_INACTIVE_BG, BUTTON_KEY_INACTIVE_HL},
-    {BUTTON_LABEL_ACTIVE_FG, BUTTON_LABEL_ACTIVE_BG, BUTTON_LABEL_ACTIVE_HL},
-    {BUTTON_LABEL_INACTIVE_FG, BUTTON_LABEL_INACTIVE_BG,
-     BUTTON_LABEL_INACTIVE_HL},
-    {INPUTBOX_FG, INPUTBOX_BG, INPUTBOX_HL},
-    {INPUTBOX_BORDER_FG, INPUTBOX_BORDER_BG, INPUTBOX_BORDER_HL},
-    {SEARCHBOX_FG, SEARCHBOX_BG, SEARCHBOX_HL},
-    {SEARCHBOX_TITLE_FG, SEARCHBOX_TITLE_BG, SEARCHBOX_TITLE_HL},
-    {SEARCHBOX_BORDER_FG, SEARCHBOX_BORDER_BG, SEARCHBOX_BORDER_HL},
-    {POSITION_INDICATOR_FG, POSITION_INDICATOR_BG, POSITION_INDICATOR_HL},
-    {MENUBOX_FG, MENUBOX_BG, MENUBOX_HL},
-    {MENUBOX_BORDER_FG, MENUBOX_BORDER_BG, MENUBOX_BORDER_HL},
-    {ITEM_FG, ITEM_BG, ITEM_HL},
-    {ITEM_SELECTED_FG, ITEM_SELECTED_BG, ITEM_SELECTED_HL},
-    {TAG_FG, TAG_BG, TAG_HL},
-    {TAG_SELECTED_FG, TAG_SELECTED_BG, TAG_SELECTED_HL},
-    {TAG_KEY_FG, TAG_KEY_BG, TAG_KEY_HL},
-    {TAG_KEY_SELECTED_FG, TAG_KEY_SELECTED_BG, TAG_KEY_SELECTED_HL},
-    {CHECK_FG, CHECK_BG, CHECK_HL},
-    {CHECK_SELECTED_FG, CHECK_SELECTED_BG, CHECK_SELECTED_HL},
-    {UARROW_FG, UARROW_BG, UARROW_HL},
-    {DARROW_FG, DARROW_BG, DARROW_HL},
-};                             /* color_table */
-
-/*
- * Set window to attribute 'attr'
- */
-void
-attr_clear (WINDOW * win, int height, int width, chtype attr)
-{
-    int i, j;
-
-    wattrset (win, attr);
-    for (i = 0; i < height; i++) {
-       wmove (win, i, 0);
-       for (j = 0; j < width; j++)
-           waddch (win, ' ');
-    }
-    touchwin (win);
-}
-
-void dialog_clear (void)
-{
-    attr_clear (stdscr, LINES, COLS, screen_attr);
-    /* Display background title if it exists ... - SLH */
-    if (backtitle != NULL) {
-        int i;
-
-        wattrset (stdscr, screen_attr);
-        mvwaddstr (stdscr, 0, 1, (char *)backtitle);
-        wmove (stdscr, 1, 1);
-        for (i = 1; i < COLS - 1; i++)
-            waddch (stdscr, ACS_HLINE);
-    }
-    wnoutrefresh (stdscr);
-}
-
-/*
- * Do some initialization for dialog
- */
-void
-init_dialog (void)
-{
-    initscr ();                        /* Init curses */
-    keypad (stdscr, TRUE);
-    cbreak ();
-    noecho ();
-
-
-    if (use_colors)    /* Set up colors */
-       color_setup ();
-
-
-    dialog_clear ();
-}
-
-/*
- * Setup for color display
- */
-void
-color_setup (void)
-{
-    int i;
-
-    if (has_colors ()) {       /* Terminal supports color? */
-       start_color ();
-
-       /* Initialize color pairs */
-       for (i = 0; i < ATTRIBUTE_COUNT; i++)
-           init_pair (i + 1, color_table[i][0], color_table[i][1]);
-
-       /* Setup color attributes */
-       for (i = 0; i < ATTRIBUTE_COUNT; i++)
-           attributes[i] = C_ATTR (color_table[i][2], i + 1);
-    }
-}
-
-/*
- * End using dialog functions.
- */
-void
-end_dialog (void)
-{
-    endwin ();
-}
-
-
-/*
- * Print a string of text in a window, automatically wrap around to the
- * next line if the string is too long to fit on one line. Newline
- * characters '\n' are replaced by spaces.  We start on a new line
- * if there is no room for at least 4 nonblanks following a double-space.
- */
-void
-print_autowrap (WINDOW * win, const char *prompt, int width, int y, int x)
-{
-    int newl, cur_x, cur_y;
-    int i, prompt_len, room, wlen;
-    char tempstr[MAX_LEN + 1], *word, *sp, *sp2;
-
-    strcpy (tempstr, prompt);
-
-    prompt_len = strlen(tempstr);
-       
-    /*
-     * Remove newlines
-     */
-    for(i=0; i<prompt_len; i++) {
-       if(tempstr[i] == '\n') tempstr[i] = ' ';
-    }
-
-    if (prompt_len <= width - x * 2) { /* If prompt is short */
-       wmove (win, y, (width - prompt_len) / 2);
-       waddstr (win, tempstr);
-    } else {
-       cur_x = x;
-       cur_y = y;
-       newl = 1;
-       word = tempstr;
-       while (word && *word) {
-           sp = index(word, ' ');
-           if (sp)
-               *sp++ = 0;
-
-           /* Wrap to next line if either the word does not fit,
-              or it is the first word of a new sentence, and it is
-              short, and the next word does not fit. */
-           room = width - cur_x;
-           wlen = strlen(word);
-           if (wlen > room ||
-              (newl && wlen < 4 && sp && wlen+1+strlen(sp) > room
-                    && (!(sp2 = index(sp, ' ')) || wlen+1+(sp2-sp) > room))) {
-               cur_y++;
-               cur_x = x;
-           }
-           wmove (win, cur_y, cur_x);
-           waddstr (win, word);
-           getyx (win, cur_y, cur_x);
-           cur_x++;
-           if (sp && *sp == ' ') {
-               cur_x++;        /* double space */
-               while (*++sp == ' ');
-               newl = 1;
-           } else
-               newl = 0;
-           word = sp;
-       }
-    }
-}
-
-/*
- * Print a button
- */
-void
-print_button (WINDOW * win, const char *label, int y, int x, int selected)
-{
-    int i, temp;
-
-    wmove (win, y, x);
-    wattrset (win, selected ? button_active_attr : button_inactive_attr);
-    waddstr (win, "<");
-    temp = strspn (label, " ");
-    label += temp;
-    wattrset (win, selected ? button_label_active_attr
-             : button_label_inactive_attr);
-    for (i = 0; i < temp; i++)
-       waddch (win, ' ');
-    wattrset (win, selected ? button_key_active_attr
-             : button_key_inactive_attr);
-    waddch (win, label[0]);
-    wattrset (win, selected ? button_label_active_attr
-             : button_label_inactive_attr);
-    waddstr (win, (char *)label + 1);
-    wattrset (win, selected ? button_active_attr : button_inactive_attr);
-    waddstr (win, ">");
-    wmove (win, y, x + temp + 1);
-}
-
-/*
- * Draw a rectangular box with line drawing characters
- */
-void
-draw_box (WINDOW * win, int y, int x, int height, int width,
-         chtype box, chtype border)
-{
-    int i, j;
-
-    wattrset (win, 0);
-    for (i = 0; i < height; i++) {
-       wmove (win, y + i, x);
-       for (j = 0; j < width; j++)
-           if (!i && !j)
-               waddch (win, border | ACS_ULCORNER);
-           else if (i == height - 1 && !j)
-               waddch (win, border | ACS_LLCORNER);
-           else if (!i && j == width - 1)
-               waddch (win, box | ACS_URCORNER);
-           else if (i == height - 1 && j == width - 1)
-               waddch (win, box | ACS_LRCORNER);
-           else if (!i)
-               waddch (win, border | ACS_HLINE);
-           else if (i == height - 1)
-               waddch (win, box | ACS_HLINE);
-           else if (!j)
-               waddch (win, border | ACS_VLINE);
-           else if (j == width - 1)
-               waddch (win, box | ACS_VLINE);
-           else
-               waddch (win, box | ' ');
-    }
-}
-
-/*
- * Draw shadows along the right and bottom edge to give a more 3D look
- * to the boxes
- */
-void
-draw_shadow (WINDOW * win, int y, int x, int height, int width)
-{
-    int i;
-
-    if (has_colors ()) {       /* Whether terminal supports color? */
-       wattrset (win, shadow_attr);
-       wmove (win, y + height, x + 2);
-       for (i = 0; i < width; i++)
-           waddch (win, winch (win) & A_CHARTEXT);
-       for (i = y + 1; i < y + height + 1; i++) {
-           wmove (win, i, x + width);
-           waddch (win, winch (win) & A_CHARTEXT);
-           waddch (win, winch (win) & A_CHARTEXT);
-       }
-       wnoutrefresh (win);
-    }
-}
-
-/*
- *  Return the position of the first alphabetic character in a string.
- */
-int
-first_alpha(const char *string, const char *exempt)
-{
-       int i, in_paren=0, c;
-
-       for (i = 0; i < strlen(string); i++) {
-               c = tolower(string[i]);
-
-               if (strchr("<[(", c)) ++in_paren;
-               if (strchr(">])", c) && in_paren > 0) --in_paren;
-
-               if ((! in_paren) && isalpha(c) && 
-                    strchr(exempt, c) == 0)
-                       return i;
-       }
-
-       return 0;
-}
-
-/*
- * Get the first selected item in the dialog_list_item list.
- */
-struct dialog_list_item *
-first_sel_item(int item_no, struct dialog_list_item ** items)
-{
-       int i;
-
-       for (i = 0; i < item_no; i++) {
-               if (items[i]->selected)
-                       return items[i];
-       }
-
-       return NULL;
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/yesno.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/lxdialog/yesno.c
deleted file mode 100644 (file)
index 11fcc25..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- *  yesno.c -- implements the yes/no box
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "dialog.h"
-
-/*
- * Display termination buttons
- */
-static void
-print_buttons(WINDOW *dialog, int height, int width, int selected)
-{
-    int x = width / 2 - 10;
-    int y = height - 2;
-
-    print_button (dialog, " Yes ", y, x, selected == 0);
-    print_button (dialog, "  No  ", y, x + 13, selected == 1);
-
-    wmove(dialog, y, x+1 + 13*selected );
-    wrefresh (dialog);
-}
-
-/*
- * Display a dialog box with two buttons - Yes and No
- */
-int
-dialog_yesno (const char *title, const char *prompt, int height, int width)
-{
-    int i, x, y, key = 0, button = 0;
-    WINDOW *dialog;
-
-    /* center dialog box on screen */
-    x = (COLS - width) / 2;
-    y = (LINES - height) / 2;
-
-    draw_shadow (stdscr, y, x, height, width);
-
-    dialog = newwin (height, width, y, x);
-    keypad (dialog, TRUE);
-
-    draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);
-    wattrset (dialog, border_attr);
-    mvwaddch (dialog, height-3, 0, ACS_LTEE);
-    for (i = 0; i < width - 2; i++)
-       waddch (dialog, ACS_HLINE);
-    wattrset (dialog, dialog_attr);
-    waddch (dialog, ACS_RTEE);
-
-    if (title != NULL && strlen(title) >= width-2 ) {
-       /* truncate long title -- mec */
-       char * title2 = malloc(width-2+1);
-       memcpy( title2, title, width-2 );
-       title2[width-2] = '\0';
-       title = title2;
-    }
-
-    if (title != NULL) {
-       wattrset (dialog, title_attr);
-       mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' ');
-       waddstr (dialog, (char *)title);
-       waddch (dialog, ' ');
-    }
-
-    wattrset (dialog, dialog_attr);
-    print_autowrap (dialog, prompt, width - 2, 1, 3);
-
-    print_buttons(dialog, height, width, 0);
-
-    while (key != ESC) {
-       key = wgetch (dialog);
-       switch (key) {
-       case 'Y':
-       case 'y':
-           delwin (dialog);
-           return 0;
-       case 'N':
-       case 'n':
-           delwin (dialog);
-           return 1;
-
-       case TAB:
-       case KEY_LEFT:
-       case KEY_RIGHT:
-           button = ((key == KEY_LEFT ? --button : ++button) < 0)
-                       ? 1 : (button > 1 ? 0 : button);
-
-           print_buttons(dialog, height, width, button);
-           wrefresh (dialog);
-           break;
-       case ' ':
-       case '\n':
-           delwin (dialog);
-           return button;
-       case ESC:
-           break;
-       }
-    }
-
-    delwin (dialog);
-    return -1;                 /* ESC pressed */
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/mconf.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/mconf.c
deleted file mode 100644 (file)
index 406eb29..0000000
+++ /dev/null
@@ -1,977 +0,0 @@
-/*
- * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
- * Released under the terms of the GNU GPL v2.0.
- *
- * Introduced single menu mode (show all sub-menus in one large tree).
- * 2002-11-06 Petr Baudis <pasky@ucw.cz>
- *
- * Directly use liblxdialog library routines.
- * 2002-11-14 Petr Baudis <pasky@ucw.cz>
- */
-
-#include <sys/ioctl.h>
-#include <sys/wait.h>
-#include <sys/termios.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <signal.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <termios.h>
-#include <unistd.h>
-
-#include "lxdialog/dialog.h"
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-static char menu_backtitle[128];
-static const char mconf_readme[] =
-"Overview\n"
-"--------\n"
-"Some features may be built directly into axTLS.  Some features\n"
-"may be completely removed altogether.  There are also certain\n"
-"parameters which are not really features, but must be\n"
-"entered in as decimal or hexadecimal numbers or possibly text.\n"
-"\n"
-"Menu items beginning with [*] or [ ] represent features\n"
-"configured to be built in or removed respectively.\n"
-"\n"
-"To change any of these features, highlight it with the cursor\n"
-"keys and press <Y> to build it in or <N> to removed it.\n"
-"You may also press the <Space Bar> to cycle\n"
-"through the available options (ie. Y->N->Y).\n"
-"\n"
-"Some additional keyboard hints:\n"
-"\n"
-"Menus\n"
-"----------\n"
-"o  Use the Up/Down arrow keys (cursor keys) to highlight the item\n"
-"   you wish to change or submenu wish to select and press <Enter>.\n"
-"   Submenus are designated by \"--->\".\n"
-"\n"
-"   Shortcut: Press the option's highlighted letter (hotkey).\n"
-"             Pressing a hotkey more than once will sequence\n"
-"             through all visible items which use that hotkey.\n"
-"\n"
-"   You may also use the <PAGE UP> and <PAGE DOWN> keys to scroll\n"
-"   unseen options into view.\n"
-"\n"
-"o  To exit a menu use the cursor keys to highlight the <Exit> button\n"
-"   and press <ENTER>.\n"
-"\n"
-"   Shortcut: Press <ESC><ESC> or <E> or <X> if there is no hotkey\n"
-"             using those letters.  You may press a single <ESC>, but\n"
-"             there is a delayed response which you may find annoying.\n"
-"\n"
-"   Also, the <TAB> and cursor keys will cycle between <Select>,\n"
-"   <Exit> and <Help>\n"
-"\n"
-"o  To get help with an item, use the cursor keys to highlight <Help>\n"
-"   and Press <ENTER>.\n"
-"\n"
-"   Shortcut: Press <H> or <?>.\n"
-"\n"
-"\n"
-"Radiolists  (Choice lists)\n"
-"-----------\n"
-"o  Use the cursor keys to select the option you wish to set and press\n"
-"   <S> or the <SPACE BAR>.\n"
-"\n"
-"   Shortcut: Press the first letter of the option you wish to set then\n"
-"             press <S> or <SPACE BAR>.\n"
-"\n"
-"o  To see available help for the item, use the cursor keys to highlight\n"
-"   <Help> and Press <ENTER>.\n"
-"\n"
-"   Shortcut: Press <H> or <?>.\n"
-"\n"
-"   Also, the <TAB> and cursor keys will cycle between <Select> and\n"
-"   <Help>\n"
-"\n"
-"\n"
-"Data Entry\n"
-"-----------\n"
-"o  Enter the requested information and press <ENTER>\n"
-"   If you are entering hexadecimal values, it is not necessary to\n"
-"   add the '0x' prefix to the entry.\n"
-"\n"
-"o  For help, use the <TAB> or cursor keys to highlight the help option\n"
-"   and press <ENTER>.  You can try <TAB><H> as well.\n"
-"\n"
-"\n"
-"Text Box    (Help Window)\n"
-"--------\n"
-"o  Use the cursor keys to scroll up/down/left/right.  The VI editor\n"
-"   keys h,j,k,l function here as do <SPACE BAR> and <B> for those\n"
-"   who are familiar with less and lynx.\n"
-"\n"
-"o  Press <E>, <X>, <Enter> or <Esc><Esc> to exit.\n"
-"\n"
-"\n"
-"Alternate Configuration Files\n"
-"-----------------------------\n"
-"Menuconfig supports the use of alternate configuration files for\n"
-"those who, for various reasons, find it necessary to switch\n"
-"between different configurations.\n"
-"\n"
-"At the end of the main menu you will find two options.  One is\n"
-"for saving the current configuration to a file of your choosing.\n"
-"The other option is for loading a previously saved alternate\n"
-"configuration.\n"
-"\n"
-"Even if you don't use alternate configuration files, but you\n"
-"find during a Menuconfig session that you have completely messed\n"
-"up your settings, you may use the \"Load Alternate...\" option to\n"
-"restore your previously saved settings from \".config\" without\n"
-"restarting Menuconfig.\n"
-"\n"
-"Other information\n"
-"-----------------\n"
-"If you use Menuconfig in an XTERM window make sure you have your\n"
-"$TERM variable set to point to a xterm definition which supports color.\n"
-"Otherwise, Menuconfig will look rather bad.  Menuconfig will not\n"
-"display correctly in a RXVT window because rxvt displays only one\n"
-"intensity of color, bright.\n"
-"\n"
-"Menuconfig will display larger menus on screens or xterms which are\n"
-"set to display more than the standard 25 row by 80 column geometry.\n"
-"In order for this to work, the \"stty size\" command must be able to\n"
-"display the screen's current row and column geometry.  I STRONGLY\n"
-"RECOMMEND that you make sure you do NOT have the shell variables\n"
-"LINES and COLUMNS exported into your environment.  Some distributions\n"
-"export those variables via /etc/profile.  Some ncurses programs can\n"
-"become confused when those variables (LINES & COLUMNS) don't reflect\n"
-"the true screen size.\n"
-"\n"
-"Optional personality available\n"
-"------------------------------\n"
-"If you prefer to have all of the options listed in a single\n"
-"menu, rather than the default multimenu hierarchy, run the menuconfig\n"
-"with MENUCONFIG_MODE environment variable set to single_menu. Example:\n"
-"\n"
-"make MENUCONFIG_MODE=single_menu menuconfig\n"
-"\n"
-"<Enter> will then unroll the appropriate category, or enfold it if it\n"
-"is already unrolled.\n"
-"\n"
-"Note that this mode can eventually be a little more CPU expensive\n"
-"(especially with a larger number of unrolled categories) than the\n"
-"default mode.\n",
-menu_instructions[] =
-       "Arrow keys navigate the menu.  "
-       "<Enter> selects submenus --->.  "
-       "Highlighted letters are hotkeys.  "
-       "Pressing <Y> selectes a feature, while <N> will exclude a feature.  "
-       "Press <Esc><Esc> to exit, <?> for Help, </> for Search.  "
-       "Legend: [*] feature is selected  [ ] feature is excluded",
-radiolist_instructions[] =
-       "Use the arrow keys to navigate this window or "
-       "press the hotkey of the item you wish to select "
-       "followed by the <SPACE BAR>. "
-       "Press <?> for additional information about this option.",
-inputbox_instructions_int[] =
-       "Please enter a decimal value. "
-       "Fractions will not be accepted.  "
-       "Use the <TAB> key to move from the input field to the buttons below it.",
-inputbox_instructions_hex[] =
-       "Please enter a hexadecimal value. "
-       "Use the <TAB> key to move from the input field to the buttons below it.",
-inputbox_instructions_string[] =
-       "Please enter a string value. "
-       "Use the <TAB> key to move from the input field to the buttons below it.",
-setmod_text[] =
-       "This feature depends on another which has been configured as a module.\n"
-       "As a result, this feature will be built as a module.",
-nohelp_text[] =
-       "There is no help available for this option.\n",
-load_config_text[] =
-       "Enter the name of the configuration file you wish to load.  "
-       "Accept the name shown to restore the configuration you "
-       "last retrieved.  Leave blank to abort.",
-load_config_help[] =
-       "\n"
-       "For various reasons, one may wish to keep several different axTLS\n"
-       "configurations available on a single machine.\n"
-       "\n"
-       "If you have saved a previous configuration in a file other than the\n"
-       "axTLS's default, entering the name of the file here will allow you\n"
-       "to modify that configuration.\n"
-       "\n"
-       "If you are uncertain, then you have probably never used alternate\n"
-       "configuration files.  You should therefor leave this blank to abort.\n",
-save_config_text[] =
-       "Enter a filename to which this configuration should be saved "
-       "as an alternate.  Leave blank to abort.",
-save_config_help[] =
-       "\n"
-       "For various reasons, one may wish to keep different axTLS\n"
-       "configurations available on a single machine.\n"
-       "\n"
-       "Entering a file name here will allow you to later retrieve, modify\n"
-       "and use the current configuration as an alternate to whatever\n"
-       "configuration options you have selected at that time.\n"
-       "\n"
-       "If you are uncertain what all this means then you should probably\n"
-       "leave this blank.\n",
-search_help[] =
-       "\n"
-       "Search for CONFIG_ symbols and display their relations.\n"
-       "Example: search for \"^FOO\"\n"
-       "Result:\n"
-       "-----------------------------------------------------------------\n"
-       "Symbol: FOO [=m]\n"
-       "Prompt: Foo bus is used to drive the bar HW\n"
-       "Defined at drivers/pci/Kconfig:47\n"
-       "Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n"
-       "Location:\n"
-       "  -> Bus options (PCI, PCMCIA, EISA, MCA, ISA)\n"
-       "    -> PCI support (PCI [=y])\n"
-       "      -> PCI access mode (<choice> [=y])\n"
-       "Selects: LIBCRC32\n"
-       "Selected by: BAR\n"
-       "-----------------------------------------------------------------\n"
-       "o The line 'Prompt:' shows the text used in the menu structure for\n"
-       "  this CONFIG_ symbol\n"
-       "o The 'Defined at' line tell at what file / line number the symbol\n"
-       "  is defined\n"
-       "o The 'Depends on:' line tell what symbols needs to be defined for\n"
-       "  this symbol to be visible in the menu (selectable)\n"
-       "o The 'Location:' lines tell where in the menu structure this symbol\n"
-       "  is located\n"
-       "    A location followed by a [=y] indicate that this is a selectable\n"
-       "    menu item - and current value is displayed inside brackets.\n"
-       "o The 'Selects:' line tell what symbol will be automatically\n"
-       "  selected if this symbol is selected (y or m)\n"
-       "o The 'Selected by' line tell what symbol has selected this symbol\n"
-       "\n"
-       "Only relevant lines are shown.\n"
-       "\n\n"
-       "Search examples:\n"
-       "Examples: USB  => find all CONFIG_ symbols containing USB\n"
-       "          ^USB => find all CONFIG_ symbols starting with USB\n"
-       "          USB$ => find all CONFIG_ symbols ending with USB\n"
-       "\n";
-
-static char filename[PATH_MAX+1] = ".config";
-static int indent;
-static struct termios ios_org;
-static int rows = 0, cols = 0;
-static struct menu *current_menu;
-static int child_count;
-static int single_menu_mode;
-
-static struct dialog_list_item *items[16384]; /* FIXME: This ought to be dynamic. */
-static int item_no;
-
-static void conf(struct menu *menu);
-static void conf_choice(struct menu *menu);
-static void conf_string(struct menu *menu);
-static void conf_load(void);
-static void conf_save(void);
-static void show_textbox(const char *title, const char *text, int r, int c);
-static void show_helptext(const char *title, const char *text);
-static void show_help(struct menu *menu);
-static void show_file(const char *filename, const char *title, int r, int c);
-
-static void init_wsize(void)
-{
-       struct winsize ws;
-       char *env;
-
-       if (!ioctl(STDIN_FILENO, TIOCGWINSZ, &ws)) {
-               rows = ws.ws_row;
-               cols = ws.ws_col;
-       }
-
-       if (!rows) {
-               env = getenv("LINES");
-               if (env)
-                       rows = atoi(env);
-               if (!rows)
-                       rows = 24;
-       }
-       if (!cols) {
-               env = getenv("COLUMNS");
-               if (env)
-                       cols = atoi(env);
-               if (!cols)
-                       cols = 80;
-       }
-
-       if (rows < 19 || cols < 80) {
-               fprintf(stderr, "Your display is too small to run Menuconfig!\n");
-               fprintf(stderr, "It must be at least 19 lines by 80 columns.\n");
-               exit(1);
-       }
-
-       rows -= 4;
-       cols -= 5;
-}
-
-static void cinit(void)
-{
-       item_no = 0;
-}
-
-static void cmake(void)
-{
-       items[item_no] = malloc(sizeof(struct dialog_list_item));
-       memset(items[item_no], 0, sizeof(struct dialog_list_item));
-       items[item_no]->tag = malloc(32); items[item_no]->tag[0] = 0;
-       items[item_no]->name = malloc(512); items[item_no]->name[0] = 0;
-       items[item_no]->namelen = 0;
-       item_no++;
-}
-
-static int cprint_name(const char *fmt, ...)
-{
-       va_list ap;
-       int res;
-
-       if (!item_no)
-               cmake();
-       va_start(ap, fmt);
-       res = vsnprintf(items[item_no - 1]->name + items[item_no - 1]->namelen,
-                       512 - items[item_no - 1]->namelen, fmt, ap);
-       if (res > 0)
-               items[item_no - 1]->namelen += res;
-       va_end(ap);
-
-       return res;
-}
-
-static int cprint_tag(const char *fmt, ...)
-{
-       va_list ap;
-       int res;
-
-       if (!item_no)
-               cmake();
-       va_start(ap, fmt);
-       res = vsnprintf(items[item_no - 1]->tag, 32, fmt, ap);
-       va_end(ap);
-
-       return res;
-}
-
-static void cdone(void)
-{
-       int i;
-
-       for (i = 0; i < item_no; i++) {
-               free(items[i]->tag);
-               free(items[i]->name);
-               free(items[i]);
-       }
-
-       item_no = 0;
-}
-
-static void get_prompt_str(struct gstr *r, struct property *prop)
-{
-       int i, j;
-       struct menu *submenu[8], *menu;
-
-       str_printf(r, "Prompt: %s\n", prop->text);
-       str_printf(r, "  Defined at %s:%d\n", prop->menu->file->name,
-               prop->menu->lineno);
-       if (!expr_is_yes(prop->visible.expr)) {
-               str_append(r, "  Depends on: ");
-               expr_gstr_print(prop->visible.expr, r);
-               str_append(r, "\n");
-       }
-       menu = prop->menu->parent;
-       for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent)
-               submenu[i++] = menu;
-       if (i > 0) {
-               str_printf(r, "  Location:\n");
-               for (j = 4; --i >= 0; j += 2) {
-                       menu = submenu[i];
-                       str_printf(r, "%*c-> %s", j, ' ', menu_get_prompt(menu));
-                       if (menu->sym) {
-                               str_printf(r, " (%s [=%s])", menu->sym->name ?
-                                       menu->sym->name : "<choice>",
-                                       sym_get_string_value(menu->sym));
-                       }
-                       str_append(r, "\n");
-               }
-       }
-}
-
-static void get_symbol_str(struct gstr *r, struct symbol *sym)
-{
-       bool hit;
-       struct property *prop;
-
-       str_printf(r, "Symbol: %s [=%s]\n", sym->name,
-                                      sym_get_string_value(sym));
-       for_all_prompts(sym, prop)
-               get_prompt_str(r, prop);
-       hit = false;
-       for_all_properties(sym, prop, P_SELECT) {
-               if (!hit) {
-                       str_append(r, "  Selects: ");
-                       hit = true;
-               } else
-                       str_printf(r, " && ");
-               expr_gstr_print(prop->expr, r);
-       }
-       if (hit)
-               str_append(r, "\n");
-       if (sym->rev_dep.expr) {
-               str_append(r, "  Selected by: ");
-               expr_gstr_print(sym->rev_dep.expr, r);
-               str_append(r, "\n");
-       }
-       str_append(r, "\n\n");
-}
-
-static struct gstr get_relations_str(struct symbol **sym_arr)
-{
-       struct symbol *sym;
-       struct gstr res = str_new();
-       int i;
-
-       for (i = 0; sym_arr && (sym = sym_arr[i]); i++)
-               get_symbol_str(&res, sym);
-       if (!i)
-               str_append(&res, "No matches found.\n");
-       return res;
-}
-
-static void search_conf(void)
-{
-       struct symbol **sym_arr;
-       struct gstr res;
-
-again:
-       switch (dialog_inputbox("Search Configuration Parameter",
-                               "Enter Keyword", 10, 75,
-                               NULL)) {
-       case 0:
-               break;
-       case 1:
-               show_helptext("Search Configuration", search_help);
-               goto again;
-       default:
-               return;
-       }
-
-       sym_arr = sym_re_search(dialog_input_result);
-       res = get_relations_str(sym_arr);
-       free(sym_arr);
-       show_textbox("Search Results", str_get(&res), 0, 0);
-       str_free(&res);
-}
-
-static void build_conf(struct menu *menu)
-{
-       struct symbol *sym;
-       struct property *prop;
-       struct menu *child;
-       int type, tmp, doint = 2;
-       tristate val;
-       char ch;
-
-       if (!menu_is_visible(menu))
-               return;
-
-       sym = menu->sym;
-       prop = menu->prompt;
-       if (!sym) {
-               if (prop && menu != current_menu) {
-                       const char *prompt = menu_get_prompt(menu);
-                       switch (prop->type) {
-                       case P_MENU:
-                               child_count++;
-                               cmake();
-                               cprint_tag("m%p", menu);
-
-                               if (single_menu_mode) {
-                                       cprint_name("%s%*c%s",
-                                               menu->data ? "-->" : "++>",
-                                               indent + 1, ' ', prompt);
-                               } else {
-                                       cprint_name("   %*c%s  --->", indent + 1, ' ', prompt);
-                               }
-
-                               if (single_menu_mode && menu->data)
-                                       goto conf_childs;
-                               return;
-                       default:
-                               if (prompt) {
-                                       child_count++;
-                                       cmake();
-                                       cprint_tag(":%p", menu);
-                                       cprint_name("---%*c%s", indent + 1, ' ', prompt);
-                               }
-                       }
-               } else
-                       doint = 0;
-               goto conf_childs;
-       }
-
-       cmake();
-       type = sym_get_type(sym);
-       if (sym_is_choice(sym)) {
-               struct symbol *def_sym = sym_get_choice_value(sym);
-               struct menu *def_menu = NULL;
-
-               child_count++;
-               for (child = menu->list; child; child = child->next) {
-                       if (menu_is_visible(child) && child->sym == def_sym)
-                               def_menu = child;
-               }
-
-               val = sym_get_tristate_value(sym);
-               if (sym_is_changable(sym)) {
-                       cprint_tag("t%p", menu);
-                       switch (type) {
-                       case S_BOOLEAN:
-                               cprint_name("[%c]", val == no ? ' ' : '*');
-                               break;
-                       case S_TRISTATE:
-                               switch (val) {
-                               case yes: ch = '*'; break;
-                               case mod: ch = 'M'; break;
-                               default:  ch = ' '; break;
-                               }
-                               cprint_name("<%c>", ch);
-                               break;
-                       }
-               } else {
-                       cprint_tag("%c%p", def_menu ? 't' : ':', menu);
-                       cprint_name("   ");
-               }
-
-               cprint_name("%*c%s", indent + 1, ' ', menu_get_prompt(menu));
-               if (val == yes) {
-                       if (def_menu) {
-                               cprint_name(" (%s)", menu_get_prompt(def_menu));
-                               cprint_name("  --->");
-                               if (def_menu->list) {
-                                       indent += 2;
-                                       build_conf(def_menu);
-                                       indent -= 2;
-                               }
-                       }
-                       return;
-               }
-       } else {
-               if (menu == current_menu) {
-                       cprint_tag(":%p", menu);
-                       cprint_name("---%*c%s", indent + 1, ' ', menu_get_prompt(menu));
-                       goto conf_childs;
-               }
-               child_count++;
-               val = sym_get_tristate_value(sym);
-               if (sym_is_choice_value(sym) && val == yes) {
-                       cprint_tag(":%p", menu);
-                       cprint_name("   ");
-               } else {
-                       switch (type) {
-                       case S_BOOLEAN:
-                               cprint_tag("t%p", menu);
-                               if (sym_is_changable(sym))
-                                       cprint_name("[%c]", val == no ? ' ' : '*');
-                               else
-                                       cprint_name("---");
-                               break;
-                       case S_TRISTATE:
-                               cprint_tag("t%p", menu);
-                               switch (val) {
-                               case yes: ch = '*'; break;
-                               case mod: ch = 'M'; break;
-                               default:  ch = ' '; break;
-                               }
-                               if (sym_is_changable(sym))
-                                       cprint_name("<%c>", ch);
-                               else
-                                       cprint_name("---");
-                               break;
-                       default:
-                               cprint_tag("s%p", menu);
-                               tmp = cprint_name("(%s)", sym_get_string_value(sym));
-                               tmp = indent - tmp + 4;
-                               if (tmp < 0)
-                                       tmp = 0;
-                               cprint_name("%*c%s%s", tmp, ' ', menu_get_prompt(menu),
-                                       (sym_has_value(sym) || !sym_is_changable(sym)) ?
-                                       "" : " (NEW)");
-                               goto conf_childs;
-                       }
-               }
-               cprint_name("%*c%s%s", indent + 1, ' ', menu_get_prompt(menu),
-                       (sym_has_value(sym) || !sym_is_changable(sym)) ?
-                       "" : " (NEW)");
-               if (menu->prompt->type == P_MENU) {
-                       cprint_name("  --->");
-                       return;
-               }
-       }
-
-conf_childs:
-       indent += doint;
-       for (child = menu->list; child; child = child->next)
-               build_conf(child);
-       indent -= doint;
-}
-
-static void conf(struct menu *menu)
-{
-       struct dialog_list_item *active_item = NULL;
-       struct menu *submenu;
-       const char *prompt = menu_get_prompt(menu);
-       struct symbol *sym;
-       char active_entry[40];
-       int stat, type;
-
-       unlink("lxdialog.scrltmp");
-       active_entry[0] = 0;
-       while (1) {
-               indent = 0;
-               child_count = 0;
-               current_menu = menu;
-               cdone(); cinit();
-               build_conf(menu);
-               if (!child_count)
-                       break;
-               if (menu == &rootmenu) {
-                       cmake(); cprint_tag(":"); cprint_name("--- ");
-                       cmake(); cprint_tag("L"); cprint_name("Load an Alternate Configuration File");
-                       cmake(); cprint_tag("S"); cprint_name("Save Configuration to an Alternate File");
-               }
-               dialog_clear();
-               stat = dialog_menu(prompt ? prompt : "Main Menu",
-                               menu_instructions, rows, cols, rows - 10,
-                               active_entry, item_no, items);
-               if (stat < 0)
-                       return;
-
-               if (stat == 1 || stat == 255)
-                       break;
-
-               active_item = first_sel_item(item_no, items);
-               if (!active_item)
-                       continue;
-               active_item->selected = 0;
-               strncpy(active_entry, active_item->tag, sizeof(active_entry));
-               active_entry[sizeof(active_entry)-1] = 0;
-               type = active_entry[0];
-               if (!type)
-                       continue;
-
-               sym = NULL;
-               submenu = NULL;
-               if (sscanf(active_entry + 1, "%p", &submenu) == 1)
-                       sym = submenu->sym;
-
-               switch (stat) {
-               case 0:
-                       switch (type) {
-                       case 'm':
-                               if (single_menu_mode)
-                                       submenu->data = (void *) (long) !submenu->data;
-                               else
-                                       conf(submenu);
-                               break;
-                       case 't':
-                               if (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)
-                                       conf_choice(submenu);
-                               else if (submenu->prompt->type == P_MENU)
-                                       conf(submenu);
-                               break;
-                       case 's':
-                               conf_string(submenu);
-                               break;
-                       case 'L':
-                               conf_load();
-                               break;
-                       case 'S':
-                               conf_save();
-                               break;
-                       }
-                       break;
-               case 2:
-                       if (sym)
-                               show_help(submenu);
-                       else
-                               show_helptext("README", mconf_readme);
-                       break;
-               case 3:
-                       if (type == 't') {
-                               if (sym_set_tristate_value(sym, yes))
-                                       break;
-                               if (sym_set_tristate_value(sym, mod))
-                                       show_textbox(NULL, setmod_text, 6, 74);
-                       }
-                       break;
-               case 4:
-                       if (type == 't')
-                               sym_set_tristate_value(sym, no);
-                       break;
-               case 5:
-                       if (type == 't')
-                               sym_set_tristate_value(sym, mod);
-                       break;
-               case 6:
-                       if (type == 't')
-                               sym_toggle_tristate_value(sym);
-                       else if (type == 'm')
-                               conf(submenu);
-                       break;
-               case 7:
-                       search_conf();
-                       break;
-               }
-       }
-}
-
-static void show_textbox(const char *title, const char *text, int r, int c)
-{
-       int fd;
-
-       fd = creat(".help.tmp", 0777);
-       write(fd, text, strlen(text));
-       close(fd);
-       show_file(".help.tmp", title, r, c);
-       unlink(".help.tmp");
-}
-
-static void show_helptext(const char *title, const char *text)
-{
-       show_textbox(title, text, 0, 0);
-}
-
-static void show_help(struct menu *menu)
-{
-       struct gstr help = str_new();
-       struct symbol *sym = menu->sym;
-
-       if (sym->help)
-       {
-               if (sym->name) {
-                       str_printf(&help, "%s:\n\n", sym->name);
-                       str_append(&help, sym->help);
-                       str_append(&help, "\n");
-               }
-       } else {
-               str_append(&help, nohelp_text);
-       }
-       get_symbol_str(&help, sym);
-       show_helptext(menu_get_prompt(menu), str_get(&help));
-       str_free(&help);
-}
-
-static void show_file(const char *filename, const char *title, int r, int c)
-{
-       while (dialog_textbox(title, filename, r ? r : rows, c ? c : cols) < 0)
-               ;
-}
-
-static void conf_choice(struct menu *menu)
-{
-       const char *prompt = menu_get_prompt(menu);
-       struct menu *child;
-       struct symbol *active;
-
-       active = sym_get_choice_value(menu->sym);
-       while (1) {
-               current_menu = menu;
-               cdone(); cinit();
-               for (child = menu->list; child; child = child->next) {
-                       if (!menu_is_visible(child))
-                               continue;
-                       cmake();
-                       cprint_tag("%p", child);
-                       cprint_name("%s", menu_get_prompt(child));
-                       if (child->sym == sym_get_choice_value(menu->sym))
-                               items[item_no - 1]->selected = 1; /* ON */
-                       else if (child->sym == active)
-                               items[item_no - 1]->selected = 2; /* SELECTED */
-                       else
-                               items[item_no - 1]->selected = 0; /* OFF */
-               }
-
-               switch (dialog_checklist(prompt ? prompt : "Main Menu",
-                                       radiolist_instructions, 15, 70, 6,
-                                       item_no, items, FLAG_RADIO)) {
-               case 0:
-                       if (sscanf(first_sel_item(item_no, items)->tag, "%p", &child) != 1)
-                               break;
-                       sym_set_tristate_value(child->sym, yes);
-                       return;
-               case 1:
-                       if (sscanf(first_sel_item(item_no, items)->tag, "%p", &child) == 1) {
-                               show_help(child);
-                               active = child->sym;
-                       } else
-                               show_help(menu);
-                       break;
-               case 255:
-                       return;
-               }
-       }
-}
-
-static void conf_string(struct menu *menu)
-{
-       const char *prompt = menu_get_prompt(menu);
-
-       while (1) {
-               char *heading;
-
-               switch (sym_get_type(menu->sym)) {
-               case S_INT:
-                       heading = (char *) inputbox_instructions_int;
-                       break;
-               case S_HEX:
-                       heading = (char *) inputbox_instructions_hex;
-                       break;
-               case S_STRING:
-                       heading = (char *) inputbox_instructions_string;
-                       break;
-               default:
-                       heading = "Internal mconf error!";
-                       /* panic? */;
-               }
-
-               switch (dialog_inputbox(prompt ? prompt : "Main Menu",
-                                       heading, 10, 75,
-                                       sym_get_string_value(menu->sym))) {
-               case 0:
-                       if (sym_set_string_value(menu->sym, dialog_input_result))
-                               return;
-                       show_textbox(NULL, "You have made an invalid entry.", 5, 43);
-                       break;
-               case 1:
-                       show_help(menu);
-                       break;
-               case 255:
-                       return;
-               }
-       }
-}
-
-static void conf_load(void)
-{
-       while (1) {
-               switch (dialog_inputbox(NULL, load_config_text, 11, 55,
-                                       filename)) {
-               case 0:
-                       if (!dialog_input_result[0])
-                               return;
-                       if (!conf_read(dialog_input_result))
-                               return;
-                       show_textbox(NULL, "File does not exist!", 5, 38);
-                       break;
-               case 1:
-                       show_helptext("Load Alternate Configuration", load_config_help);
-                       break;
-               case 255:
-                       return;
-               }
-       }
-}
-
-static void conf_save(void)
-{
-       while (1) {
-               switch (dialog_inputbox(NULL, save_config_text, 11, 55,
-                                       filename)) {
-               case 0:
-                       if (!dialog_input_result[0])
-                               return;
-                       if (!conf_write(dialog_input_result))
-                               return;
-                       show_textbox(NULL, "Can't create file!  Probably a nonexistent directory.", 5, 60);
-                       break;
-               case 1:
-                       show_helptext("Save Alternate Configuration", save_config_help);
-                       break;
-               case 255:
-                       return;
-               }
-       }
-}
-
-static void conf_cleanup(void)
-{
-       tcsetattr(1, TCSAFLUSH, &ios_org);
-       unlink(".help.tmp");
-}
-
-static void winch_handler(int sig)
-{
-       struct winsize ws;
-
-       if (ioctl(1, TIOCGWINSZ, &ws) == -1) {
-               rows = 24;
-               cols = 80;
-       } else {
-               rows = ws.ws_row;
-               cols = ws.ws_col;
-       }
-
-       if (rows < 19 || cols < 80) {
-               end_dialog();
-               fprintf(stderr, "Your display is too small to run Menuconfig!\n");
-               fprintf(stderr, "It must be at least 19 lines by 80 columns.\n");
-               exit(1);
-       }
-
-       rows -= 4;
-       cols -= 5;
-
-}
-
-int main(int ac, char **av)
-{
-       struct symbol *sym;
-       char *mode;
-       int stat;
-
-       conf_parse(av[1]);
-       conf_read(NULL);
-
-       sym = sym_lookup("VERSION", 0);
-       sym_calc_value(sym);
-       snprintf(menu_backtitle, 128, "axTLS v%s Configuration",
-               sym_get_string_value(sym));
-
-       mode = getenv("MENUCONFIG_MODE");
-       if (mode) {
-               if (!strcasecmp(mode, "single_menu"))
-                       single_menu_mode = 1;
-       }
-
-       tcgetattr(1, &ios_org);
-       atexit(conf_cleanup);
-       init_wsize();
-       init_dialog();
-       signal(SIGWINCH, winch_handler);
-       conf(&rootmenu);
-       end_dialog();
-
-       /* Restart dialog to act more like when lxdialog was still separate */
-       init_dialog();
-       do {
-               stat = dialog_yesno(NULL,
-                                   "Do you wish to save your new axTLS configuration?", 5, 60);
-       } while (stat < 0);
-       end_dialog();
-
-       if (stat == 0) {
-               conf_write(NULL);
-               printf("\n\n"
-                       "*** End of axTLS configuration.\n"
-                       "*** Check the top-level Makefile for additional configuration options.\n\n");
-       } else
-               printf("\n\nYour axTLS configuration changes were NOT saved.\n\n");
-
-       return 0;
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/menu.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/menu.c
deleted file mode 100644 (file)
index 0c13156..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
-/*
- * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-#include <stdlib.h>
-#include <string.h>
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-struct menu rootmenu;
-static struct menu **last_entry_ptr;
-
-struct file *file_list;
-struct file *current_file;
-
-static void menu_warn(struct menu *menu, const char *fmt, ...)
-{
-       va_list ap;
-       va_start(ap, fmt);
-       fprintf(stderr, "%s:%d:warning: ", menu->file->name, menu->lineno);
-       vfprintf(stderr, fmt, ap);
-       fprintf(stderr, "\n");
-       va_end(ap);
-}
-
-static void prop_warn(struct property *prop, const char *fmt, ...)
-{
-       va_list ap;
-       va_start(ap, fmt);
-       fprintf(stderr, "%s:%d:warning: ", prop->file->name, prop->lineno);
-       vfprintf(stderr, fmt, ap);
-       fprintf(stderr, "\n");
-       va_end(ap);
-}
-
-void menu_init(void)
-{
-       current_entry = current_menu = &rootmenu;
-       last_entry_ptr = &rootmenu.list;
-}
-
-void menu_add_entry(struct symbol *sym)
-{
-       struct menu *menu;
-
-       menu = malloc(sizeof(*menu));
-       memset(menu, 0, sizeof(*menu));
-       menu->sym = sym;
-       menu->parent = current_menu;
-       menu->file = current_file;
-       menu->lineno = zconf_lineno();
-
-       *last_entry_ptr = menu;
-       last_entry_ptr = &menu->next;
-       current_entry = menu;
-}
-
-void menu_end_entry(void)
-{
-}
-
-void menu_add_menu(void)
-{
-       current_menu = current_entry;
-       last_entry_ptr = &current_entry->list;
-}
-
-void menu_end_menu(void)
-{
-       last_entry_ptr = &current_menu->next;
-       current_menu = current_menu->parent;
-}
-
-struct expr *menu_check_dep(struct expr *e)
-{
-       if (!e)
-               return e;
-
-       switch (e->type) {
-       case E_NOT:
-               e->left.expr = menu_check_dep(e->left.expr);
-               break;
-       case E_OR:
-       case E_AND:
-               e->left.expr = menu_check_dep(e->left.expr);
-               e->right.expr = menu_check_dep(e->right.expr);
-               break;
-       case E_SYMBOL:
-               /* change 'm' into 'm' && MODULES */
-               if (e->left.sym == &symbol_mod)
-                       return expr_alloc_and(e, expr_alloc_symbol(modules_sym));
-               break;
-       default:
-               break;
-       }
-       return e;
-}
-
-void menu_add_dep(struct expr *dep)
-{
-       current_entry->dep = expr_alloc_and(current_entry->dep, menu_check_dep(dep));
-}
-
-void menu_set_type(int type)
-{
-       struct symbol *sym = current_entry->sym;
-
-       if (sym->type == type)
-               return;
-       if (sym->type == S_UNKNOWN) {
-               sym->type = type;
-               return;
-       }
-       menu_warn(current_entry, "type of '%s' redefined from '%s' to '%s'\n",
-           sym->name ? sym->name : "<choice>",
-           sym_type_name(sym->type), sym_type_name(type));
-}
-
-struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep)
-{
-       struct property *prop = prop_alloc(type, current_entry->sym);
-
-       prop->menu = current_entry;
-       prop->text = prompt;
-       prop->expr = expr;
-       prop->visible.expr = menu_check_dep(dep);
-
-       if (prompt) {
-               if (current_entry->prompt)
-                       menu_warn(current_entry, "prompt redefined\n");
-               current_entry->prompt = prop;
-       }
-
-       return prop;
-}
-
-void menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep)
-{
-       menu_add_prop(type, prompt, NULL, dep);
-}
-
-void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep)
-{
-       menu_add_prop(type, NULL, expr, dep);
-}
-
-void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep)
-{
-       menu_add_prop(type, NULL, expr_alloc_symbol(sym), dep);
-}
-
-void sym_check_prop(struct symbol *sym)
-{
-       struct property *prop;
-       struct symbol *sym2;
-       for (prop = sym->prop; prop; prop = prop->next) {
-               switch (prop->type) {
-               case P_DEFAULT:
-                       if ((sym->type == S_STRING || sym->type == S_INT || sym->type == S_HEX) &&
-                           prop->expr->type != E_SYMBOL)
-                               prop_warn(prop,
-                                   "default for config symbol '%'"
-                                   " must be a single symbol", sym->name);
-                       break;
-               case P_SELECT:
-                       sym2 = prop_get_symbol(prop);
-                       if (sym->type != S_BOOLEAN && sym->type != S_TRISTATE)
-                               prop_warn(prop,
-                                   "config symbol '%s' uses select, but is "
-                                   "not boolean or tristate", sym->name);
-                       else if (sym2->type == S_UNKNOWN)
-                               prop_warn(prop,
-                                   "'select' used by config symbol '%s' "
-                                   "refer to undefined symbol '%s'",
-                                   sym->name, sym2->name);
-                       else if (sym2->type != S_BOOLEAN && sym2->type != S_TRISTATE)
-                               prop_warn(prop,
-                                   "'%s' has wrong type. 'select' only "
-                                   "accept arguments of boolean and "
-                                   "tristate type", sym2->name);
-                       break;
-               case P_RANGE:
-                       if (sym->type != S_INT && sym->type != S_HEX)
-                               prop_warn(prop, "range is only allowed "
-                                               "for int or hex symbols");
-                       if (!sym_string_valid(sym, prop->expr->left.sym->name) ||
-                           !sym_string_valid(sym, prop->expr->right.sym->name))
-                               prop_warn(prop, "range is invalid");
-                       break;
-               default:
-                       ;
-               }
-       }
-}
-
-void menu_finalize(struct menu *parent)
-{
-       struct menu *menu, *last_menu;
-       struct symbol *sym;
-       struct property *prop;
-       struct expr *parentdep, *basedep, *dep, *dep2, **ep;
-
-       sym = parent->sym;
-       if (parent->list) {
-               if (sym && sym_is_choice(sym)) {
-                       /* find the first choice value and find out choice type */
-                       for (menu = parent->list; menu; menu = menu->next) {
-                               if (menu->sym) {
-                                       current_entry = parent;
-                                       menu_set_type(menu->sym->type);
-                                       current_entry = menu;
-                                       menu_set_type(sym->type);
-                                       break;
-                               }
-                       }
-                       parentdep = expr_alloc_symbol(sym);
-               } else if (parent->prompt)
-                       parentdep = parent->prompt->visible.expr;
-               else
-                       parentdep = parent->dep;
-
-               for (menu = parent->list; menu; menu = menu->next) {
-                       basedep = expr_transform(menu->dep);
-                       basedep = expr_alloc_and(expr_copy(parentdep), basedep);
-                       basedep = expr_eliminate_dups(basedep);
-                       menu->dep = basedep;
-                       if (menu->sym)
-                               prop = menu->sym->prop;
-                       else
-                               prop = menu->prompt;
-                       for (; prop; prop = prop->next) {
-                               if (prop->menu != menu)
-                                       continue;
-                               dep = expr_transform(prop->visible.expr);
-                               dep = expr_alloc_and(expr_copy(basedep), dep);
-                               dep = expr_eliminate_dups(dep);
-                               if (menu->sym && menu->sym->type != S_TRISTATE)
-                                       dep = expr_trans_bool(dep);
-                               prop->visible.expr = dep;
-                               if (prop->type == P_SELECT) {
-                                       struct symbol *es = prop_get_symbol(prop);
-                                       es->rev_dep.expr = expr_alloc_or(es->rev_dep.expr,
-                                                       expr_alloc_and(expr_alloc_symbol(menu->sym), expr_copy(dep)));
-                               }
-                       }
-               }
-               for (menu = parent->list; menu; menu = menu->next)
-                       menu_finalize(menu);
-       } else if (sym) {
-               basedep = parent->prompt ? parent->prompt->visible.expr : NULL;
-               basedep = expr_trans_compare(basedep, E_UNEQUAL, &symbol_no);
-               basedep = expr_eliminate_dups(expr_transform(basedep));
-               last_menu = NULL;
-               for (menu = parent->next; menu; menu = menu->next) {
-                       dep = menu->prompt ? menu->prompt->visible.expr : menu->dep;
-                       if (!expr_contains_symbol(dep, sym))
-                               break;
-                       if (expr_depends_symbol(dep, sym))
-                               goto next;
-                       dep = expr_trans_compare(dep, E_UNEQUAL, &symbol_no);
-                       dep = expr_eliminate_dups(expr_transform(dep));
-                       dep2 = expr_copy(basedep);
-                       expr_eliminate_eq(&dep, &dep2);
-                       expr_free(dep);
-                       if (!expr_is_yes(dep2)) {
-                               expr_free(dep2);
-                               break;
-                       }
-                       expr_free(dep2);
-               next:
-                       menu_finalize(menu);
-                       menu->parent = parent;
-                       last_menu = menu;
-               }
-               if (last_menu) {
-                       parent->list = parent->next;
-                       parent->next = last_menu->next;
-                       last_menu->next = NULL;
-               }
-       }
-       for (menu = parent->list; menu; menu = menu->next) {
-               if (sym && sym_is_choice(sym) && menu->sym) {
-                       menu->sym->flags |= SYMBOL_CHOICEVAL;
-                       if (!menu->prompt)
-                               menu_warn(menu, "choice value must have a prompt");
-                       for (prop = menu->sym->prop; prop; prop = prop->next) {
-                               if (prop->type == P_PROMPT && prop->menu != menu) {
-                                       prop_warn(prop, "choice values "
-                                           "currently only support a "
-                                           "single prompt");
-                               }
-                               if (prop->type == P_DEFAULT)
-                                       prop_warn(prop, "defaults for choice "
-                                           "values not supported");
-                       }
-                       current_entry = menu;
-                       menu_set_type(sym->type);
-                       menu_add_symbol(P_CHOICE, sym, NULL);
-                       prop = sym_get_choice_prop(sym);
-                       for (ep = &prop->expr; *ep; ep = &(*ep)->left.expr)
-                               ;
-                       *ep = expr_alloc_one(E_CHOICE, NULL);
-                       (*ep)->right.sym = menu->sym;
-               }
-               if (menu->list && (!menu->prompt || !menu->prompt->text)) {
-                       for (last_menu = menu->list; ; last_menu = last_menu->next) {
-                               last_menu->parent = parent;
-                               if (!last_menu->next)
-                                       break;
-                       }
-                       last_menu->next = menu->next;
-                       menu->next = menu->list;
-                       menu->list = NULL;
-               }
-       }
-
-       if (sym && !(sym->flags & SYMBOL_WARNED)) {
-               if (sym->type == S_UNKNOWN)
-                       menu_warn(parent, "config symbol defined "
-                           "without type\n");
-
-               if (sym_is_choice(sym) && !parent->prompt)
-                       menu_warn(parent, "choice must have a prompt\n");
-
-               /* Check properties connected to this symbol */
-               sym_check_prop(sym);
-               sym->flags |= SYMBOL_WARNED;
-       }
-
-       if (sym && !sym_is_optional(sym) && parent->prompt) {
-               sym->rev_dep.expr = expr_alloc_or(sym->rev_dep.expr,
-                               expr_alloc_and(parent->prompt->visible.expr,
-                                       expr_alloc_symbol(&symbol_mod)));
-       }
-}
-
-bool menu_is_visible(struct menu *menu)
-{
-       struct menu *child;
-       struct symbol *sym;
-       tristate visible;
-
-       if (!menu->prompt)
-               return false;
-       sym = menu->sym;
-       if (sym) {
-               sym_calc_value(sym);
-               visible = menu->prompt->visible.tri;
-       } else
-               visible = menu->prompt->visible.tri = expr_calc_value(menu->prompt->visible.expr);
-
-       if (visible != no)
-               return true;
-       if (!sym || sym_get_tristate_value(menu->sym) == no)
-               return false;
-
-       for (child = menu->list; child; child = child->next)
-               if (menu_is_visible(child))
-                       return true;
-       return false;
-}
-
-const char *menu_get_prompt(struct menu *menu)
-{
-       if (menu->prompt)
-               return menu->prompt->text;
-       else if (menu->sym)
-               return menu->sym->name;
-       return NULL;
-}
-
-struct menu *menu_get_root_menu(struct menu *menu)
-{
-       return &rootmenu;
-}
-
-struct menu *menu_get_parent_menu(struct menu *menu)
-{
-       enum prop_type type;
-
-       for (; menu != &rootmenu; menu = menu->parent) {
-               type = menu->prompt ? menu->prompt->type : 0;
-               if (type == P_MENU)
-                       break;
-       }
-       return menu;
-}
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/mkconfigs b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/mkconfigs
deleted file mode 100755 (executable)
index 3cb7bb1..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/sh
-#
-# Copyright (C) 2002 Khalid Aziz <khalid_aziz at hp.com>
-# Copyright (C) 2002 Randy Dunlap <rddunlap at osdl.org>
-# Copyright (C) 2002 Al Stone <ahs3 at fc.hp.com>
-# Copyright (C) 2002 Hewlett-Packard Company
-#
-#   This program is free software; you can redistribute it and/or modify
-#   it under the terms of the GNU General Public License as published by
-#   the Free Software Foundation; either version 2 of the License, or
-#   (at your option) any later version.
-#
-#   This program 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 General Public License for more details.
-#
-#   You should have received a copy of the GNU General Public License
-#   along with this program; if not, write to the Free Software
-#   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-#   Busybox version by Matteo Croce <3297627799 at wind.it>
-#
-# Rules to generate bbconfig.h from .config:
-#      - Retain lines that begin with "CONFIG_"
-#      - Retain lines that begin with "# CONFIG_"
-#      - lines that use double-quotes must \\-escape-quote them
-
-if [ $# -lt 1 ]
-then
-       config=.config
-else   config=$1
-fi
-
-echo "#ifndef _BBCONFIG_H"
-echo "#define _BBCONFIG_H"
-echo \
-"/*
- * busybox configuration options.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program 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, GOOD TITLE or
- * NON INFRINGEMENT.  See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- *
- *
- * This file is generated automatically by scripts/config/mkconfigs.
- * Do not edit.
- *
- */"
-
-echo "static char const bbconfig_config[] ="
-echo "\"CONFIG_BEGIN=n\\n\\"
-echo "`sed 's/\"/\\\\\"/g' $config | grep "^#\? \?CONFIG_" | awk '{ print $0 "\\\\n\\\\" }' `"
-echo "CONFIG_END=n\\n\";"
-echo "#endif /* _BBCONFIG_H */"
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/symbol.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/symbol.c
deleted file mode 100644 (file)
index ea62972..0000000
+++ /dev/null
@@ -1,809 +0,0 @@
-/*
- * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-#include <regex.h>
-#include <sys/utsname.h>
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-struct symbol symbol_yes = {
-       .name = "y",
-       .curr = { "y", yes },
-       .flags = SYMBOL_YES|SYMBOL_VALID,
-}, symbol_mod = {
-       .name = "m",
-       .curr = { "m", mod },
-       .flags = SYMBOL_MOD|SYMBOL_VALID,
-}, symbol_no = {
-       .name = "n",
-       .curr = { "n", no },
-       .flags = SYMBOL_NO|SYMBOL_VALID,
-}, symbol_empty = {
-       .name = "",
-       .curr = { "", no },
-       .flags = SYMBOL_VALID,
-};
-
-int sym_change_count;
-struct symbol *modules_sym;
-tristate modules_val;
-
-void sym_add_default(struct symbol *sym, const char *def)
-{
-       struct property *prop = prop_alloc(P_DEFAULT, sym);
-
-       prop->expr = expr_alloc_symbol(sym_lookup(def, 1));
-}
-
-void sym_init(void)
-{
-       struct symbol *sym;
-       char *p;
-       static bool inited = false;
-
-       if (inited)
-               return;
-       inited = true;
-
-       sym = sym_lookup("VERSION", 0);
-       sym->type = S_STRING;
-       sym->flags |= SYMBOL_AUTO;
-       p = getenv("VERSION");
-       if (p)
-               sym_add_default(sym, p);
-
-       sym = sym_lookup("TARGET_ARCH", 0);
-       sym->type = S_STRING;
-       sym->flags |= SYMBOL_AUTO;
-       p = getenv("TARGET_ARCH");
-       if (p)
-               sym_add_default(sym, p);
-
-}
-
-enum symbol_type sym_get_type(struct symbol *sym)
-{
-       enum symbol_type type = sym->type;
-
-       if (type == S_TRISTATE) {
-               if (sym_is_choice_value(sym) && sym->visible == yes)
-                       type = S_BOOLEAN;
-               else if (modules_val == no)
-                       type = S_BOOLEAN;
-       }
-       return type;
-}
-
-const char *sym_type_name(enum symbol_type type)
-{
-       switch (type) {
-       case S_BOOLEAN:
-               return "boolean";
-       case S_TRISTATE:
-               return "tristate";
-       case S_INT:
-               return "integer";
-       case S_HEX:
-               return "hex";
-       case S_STRING:
-               return "string";
-       case S_UNKNOWN:
-               return "unknown";
-       case S_OTHER:
-               break;
-       }
-       return "???";
-}
-
-struct property *sym_get_choice_prop(struct symbol *sym)
-{
-       struct property *prop;
-
-       for_all_choices(sym, prop)
-               return prop;
-       return NULL;
-}
-
-struct property *sym_get_default_prop(struct symbol *sym)
-{
-       struct property *prop;
-
-       for_all_defaults(sym, prop) {
-               prop->visible.tri = expr_calc_value(prop->visible.expr);
-               if (prop->visible.tri != no)
-                       return prop;
-       }
-       return NULL;
-}
-
-struct property *sym_get_range_prop(struct symbol *sym)
-{
-       struct property *prop;
-
-       for_all_properties(sym, prop, P_RANGE) {
-               prop->visible.tri = expr_calc_value(prop->visible.expr);
-               if (prop->visible.tri != no)
-                       return prop;
-       }
-       return NULL;
-}
-
-static void sym_calc_visibility(struct symbol *sym)
-{
-       struct property *prop;
-       tristate tri;
-
-       /* any prompt visible? */
-       tri = no;
-       for_all_prompts(sym, prop) {
-               prop->visible.tri = expr_calc_value(prop->visible.expr);
-               tri = E_OR(tri, prop->visible.tri);
-       }
-       if (tri == mod && (sym->type != S_TRISTATE || modules_val == no))
-               tri = yes;
-       if (sym->visible != tri) {
-               sym->visible = tri;
-               sym_set_changed(sym);
-       }
-       if (sym_is_choice_value(sym))
-               return;
-       tri = no;
-       if (sym->rev_dep.expr)
-               tri = expr_calc_value(sym->rev_dep.expr);
-       if (tri == mod && sym_get_type(sym) == S_BOOLEAN)
-               tri = yes;
-       if (sym->rev_dep.tri != tri) {
-               sym->rev_dep.tri = tri;
-               sym_set_changed(sym);
-       }
-}
-
-static struct symbol *sym_calc_choice(struct symbol *sym)
-{
-       struct symbol *def_sym;
-       struct property *prop;
-       struct expr *e;
-
-       /* is the user choice visible? */
-       def_sym = sym->user.val;
-       if (def_sym) {
-               sym_calc_visibility(def_sym);
-               if (def_sym->visible != no)
-                       return def_sym;
-       }
-
-       /* any of the defaults visible? */
-       for_all_defaults(sym, prop) {
-               prop->visible.tri = expr_calc_value(prop->visible.expr);
-               if (prop->visible.tri == no)
-                       continue;
-               def_sym = prop_get_symbol(prop);
-               sym_calc_visibility(def_sym);
-               if (def_sym->visible != no)
-                       return def_sym;
-       }
-
-       /* just get the first visible value */
-       prop = sym_get_choice_prop(sym);
-       for (e = prop->expr; e; e = e->left.expr) {
-               def_sym = e->right.sym;
-               sym_calc_visibility(def_sym);
-               if (def_sym->visible != no)
-                       return def_sym;
-       }
-
-       /* no choice? reset tristate value */
-       sym->curr.tri = no;
-       return NULL;
-}
-
-void sym_calc_value(struct symbol *sym)
-{
-       struct symbol_value newval, oldval;
-       struct property *prop;
-       struct expr *e;
-
-       if (!sym)
-               return;
-
-       if (sym->flags & SYMBOL_VALID)
-               return;
-       sym->flags |= SYMBOL_VALID;
-
-       oldval = sym->curr;
-
-       switch (sym->type) {
-       case S_INT:
-       case S_HEX:
-       case S_STRING:
-               newval = symbol_empty.curr;
-               break;
-       case S_BOOLEAN:
-       case S_TRISTATE:
-               newval = symbol_no.curr;
-               break;
-       default:
-               sym->curr.val = sym->name;
-               sym->curr.tri = no;
-               return;
-       }
-       if (!sym_is_choice_value(sym))
-               sym->flags &= ~SYMBOL_WRITE;
-
-       sym_calc_visibility(sym);
-
-       /* set default if recursively called */
-       sym->curr = newval;
-
-       switch (sym_get_type(sym)) {
-       case S_BOOLEAN:
-       case S_TRISTATE:
-               if (sym_is_choice_value(sym) && sym->visible == yes) {
-                       prop = sym_get_choice_prop(sym);
-                       newval.tri = (prop_get_symbol(prop)->curr.val == sym) ? yes : no;
-               } else if (E_OR(sym->visible, sym->rev_dep.tri) != no) {
-                       sym->flags |= SYMBOL_WRITE;
-                       if (sym_has_value(sym))
-                               newval.tri = sym->user.tri;
-                       else if (!sym_is_choice(sym)) {
-                               prop = sym_get_default_prop(sym);
-                               if (prop)
-                                       newval.tri = expr_calc_value(prop->expr);
-                       }
-                       newval.tri = E_OR(E_AND(newval.tri, sym->visible), sym->rev_dep.tri);
-               } else if (!sym_is_choice(sym)) {
-                       prop = sym_get_default_prop(sym);
-                       if (prop) {
-                               sym->flags |= SYMBOL_WRITE;
-                               newval.tri = expr_calc_value(prop->expr);
-                       }
-               }
-               if (newval.tri == mod && sym_get_type(sym) == S_BOOLEAN)
-                       newval.tri = yes;
-               break;
-       case S_STRING:
-       case S_HEX:
-       case S_INT:
-               if (sym->visible != no) {
-                       sym->flags |= SYMBOL_WRITE;
-                       if (sym_has_value(sym)) {
-                               newval.val = sym->user.val;
-                               break;
-                       }
-               }
-               prop = sym_get_default_prop(sym);
-               if (prop) {
-                       struct symbol *ds = prop_get_symbol(prop);
-                       if (ds) {
-                               sym->flags |= SYMBOL_WRITE;
-                               sym_calc_value(ds);
-                               newval.val = ds->curr.val;
-                       }
-               }
-               break;
-       default:
-               ;
-       }
-
-       sym->curr = newval;
-       if (sym_is_choice(sym) && newval.tri == yes)
-               sym->curr.val = sym_calc_choice(sym);
-
-       if (memcmp(&oldval, &sym->curr, sizeof(oldval)))
-               sym_set_changed(sym);
-       if (modules_sym == sym)
-               modules_val = modules_sym->curr.tri;
-
-       if (sym_is_choice(sym)) {
-               int flags = sym->flags & (SYMBOL_CHANGED | SYMBOL_WRITE);
-               prop = sym_get_choice_prop(sym);
-               for (e = prop->expr; e; e = e->left.expr) {
-                       e->right.sym->flags |= flags;
-                       if (flags & SYMBOL_CHANGED)
-                               sym_set_changed(e->right.sym);
-               }
-       }
-}
-
-void sym_clear_all_valid(void)
-{
-       struct symbol *sym;
-       int i;
-
-       for_all_symbols(i, sym)
-               sym->flags &= ~SYMBOL_VALID;
-       sym_change_count++;
-       if (modules_sym)
-               sym_calc_value(modules_sym);
-}
-
-void sym_set_changed(struct symbol *sym)
-{
-       struct property *prop;
-
-       sym->flags |= SYMBOL_CHANGED;
-       for (prop = sym->prop; prop; prop = prop->next) {
-               if (prop->menu)
-                       prop->menu->flags |= MENU_CHANGED;
-       }
-}
-
-void sym_set_all_changed(void)
-{
-       struct symbol *sym;
-       int i;
-
-       for_all_symbols(i, sym)
-               sym_set_changed(sym);
-}
-
-bool sym_tristate_within_range(struct symbol *sym, tristate val)
-{
-       int type = sym_get_type(sym);
-
-       if (sym->visible == no)
-               return false;
-
-       if (type != S_BOOLEAN && type != S_TRISTATE)
-               return false;
-
-       if (type == S_BOOLEAN && val == mod)
-               return false;
-       if (sym->visible <= sym->rev_dep.tri)
-               return false;
-       if (sym_is_choice_value(sym) && sym->visible == yes)
-               return val == yes;
-       return val >= sym->rev_dep.tri && val <= sym->visible;
-}
-
-bool sym_set_tristate_value(struct symbol *sym, tristate val)
-{
-       tristate oldval = sym_get_tristate_value(sym);
-
-       if (oldval != val && !sym_tristate_within_range(sym, val))
-               return false;
-
-       if (sym->flags & SYMBOL_NEW) {
-               sym->flags &= ~SYMBOL_NEW;
-               sym_set_changed(sym);
-       }
-       if (sym_is_choice_value(sym) && val == yes) {
-               struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym));
-
-               cs->user.val = sym;
-               cs->flags &= ~SYMBOL_NEW;
-       }
-
-       sym->user.tri = val;
-       if (oldval != val) {
-               sym_clear_all_valid();
-               if (sym == modules_sym)
-                       sym_set_all_changed();
-       }
-
-       return true;
-}
-
-tristate sym_toggle_tristate_value(struct symbol *sym)
-{
-       tristate oldval, newval;
-
-       oldval = newval = sym_get_tristate_value(sym);
-       do {
-               switch (newval) {
-               case no:
-                       newval = mod;
-                       break;
-               case mod:
-                       newval = yes;
-                       break;
-               case yes:
-                       newval = no;
-                       break;
-               }
-               if (sym_set_tristate_value(sym, newval))
-                       break;
-       } while (oldval != newval);
-       return newval;
-}
-
-bool sym_string_valid(struct symbol *sym, const char *str)
-{
-       signed char ch;
-
-       switch (sym->type) {
-       case S_STRING:
-               return true;
-       case S_INT:
-               ch = *str++;
-               if (ch == '-')
-                       ch = *str++;
-               if (!isdigit(ch))
-                       return false;
-               if (ch == '0' && *str != 0)
-                       return false;
-               while ((ch = *str++)) {
-                       if (!isdigit(ch))
-                               return false;
-               }
-               return true;
-       case S_HEX:
-               if (str[0] == '0' && (str[1] == 'x' || str[1] == 'X'))
-                       str += 2;
-               ch = *str++;
-               do {
-                       if (!isxdigit(ch))
-                               return false;
-               } while ((ch = *str++));
-               return true;
-       case S_BOOLEAN:
-       case S_TRISTATE:
-               switch (str[0]) {
-               case 'y': case 'Y':
-               case 'm': case 'M':
-               case 'n': case 'N':
-                       return true;
-               }
-               return false;
-       default:
-               return false;
-       }
-}
-
-bool sym_string_within_range(struct symbol *sym, const char *str)
-{
-       struct property *prop;
-       int val;
-
-       switch (sym->type) {
-       case S_STRING:
-               return sym_string_valid(sym, str);
-       case S_INT:
-               if (!sym_string_valid(sym, str))
-                       return false;
-               prop = sym_get_range_prop(sym);
-               if (!prop)
-                       return true;
-               val = strtol(str, NULL, 10);
-               return val >= strtol(prop->expr->left.sym->name, NULL, 10) &&
-                      val <= strtol(prop->expr->right.sym->name, NULL, 10);
-       case S_HEX:
-               if (!sym_string_valid(sym, str))
-                       return false;
-               prop = sym_get_range_prop(sym);
-               if (!prop)
-                       return true;
-               val = strtol(str, NULL, 16);
-               return val >= strtol(prop->expr->left.sym->name, NULL, 16) &&
-                      val <= strtol(prop->expr->right.sym->name, NULL, 16);
-       case S_BOOLEAN:
-       case S_TRISTATE:
-               switch (str[0]) {
-               case 'y': case 'Y':
-                       return sym_tristate_within_range(sym, yes);
-               case 'm': case 'M':
-                       return sym_tristate_within_range(sym, mod);
-               case 'n': case 'N':
-                       return sym_tristate_within_range(sym, no);
-               }
-               return false;
-       default:
-               return false;
-       }
-}
-
-bool sym_set_string_value(struct symbol *sym, const char *newval)
-{
-       const char *oldval;
-       char *val;
-       int size;
-
-       switch (sym->type) {
-       case S_BOOLEAN:
-       case S_TRISTATE:
-               switch (newval[0]) {
-               case 'y': case 'Y':
-                       return sym_set_tristate_value(sym, yes);
-               case 'm': case 'M':
-                       return sym_set_tristate_value(sym, mod);
-               case 'n': case 'N':
-                       return sym_set_tristate_value(sym, no);
-               }
-               return false;
-       default:
-               ;
-       }
-
-       if (!sym_string_within_range(sym, newval))
-               return false;
-
-       if (sym->flags & SYMBOL_NEW) {
-               sym->flags &= ~SYMBOL_NEW;
-               sym_set_changed(sym);
-       }
-
-       oldval = sym->user.val;
-       size = strlen(newval) + 1;
-       if (sym->type == S_HEX && (newval[0] != '0' || (newval[1] != 'x' && newval[1] != 'X'))) {
-               size += 2;
-               sym->user.val = val = malloc(size);
-               *val++ = '0';
-               *val++ = 'x';
-       } else if (!oldval || strcmp(oldval, newval))
-               sym->user.val = val = malloc(size);
-       else
-               return true;
-
-       strcpy(val, newval);
-       free((void *)oldval);
-       sym_clear_all_valid();
-
-       return true;
-}
-
-const char *sym_get_string_value(struct symbol *sym)
-{
-       tristate val;
-
-       switch (sym->type) {
-       case S_BOOLEAN:
-       case S_TRISTATE:
-               val = sym_get_tristate_value(sym);
-               switch (val) {
-               case no:
-                       return "n";
-               case mod:
-                       return "m";
-               case yes:
-                       return "y";
-               }
-               break;
-       default:
-               ;
-       }
-       return (const char *)sym->curr.val;
-}
-
-bool sym_is_changable(struct symbol *sym)
-{
-       return sym->visible > sym->rev_dep.tri;
-}
-
-struct symbol *sym_lookup(const char *name, int isconst)
-{
-       struct symbol *symbol;
-       const char *ptr;
-       char *new_name;
-       int hash = 0;
-
-       if (name) {
-               if (name[0] && !name[1]) {
-                       switch (name[0]) {
-                       case 'y': return &symbol_yes;
-                       case 'm': return &symbol_mod;
-                       case 'n': return &symbol_no;
-                       }
-               }
-               for (ptr = name; *ptr; ptr++)
-                       hash += *ptr;
-               hash &= 0xff;
-
-               for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) {
-                       if (!strcmp(symbol->name, name)) {
-                               if ((isconst && symbol->flags & SYMBOL_CONST) ||
-                                   (!isconst && !(symbol->flags & SYMBOL_CONST)))
-                                       return symbol;
-                       }
-               }
-               new_name = strdup(name);
-       } else {
-               new_name = NULL;
-               hash = 256;
-       }
-
-       symbol = malloc(sizeof(*symbol));
-       memset(symbol, 0, sizeof(*symbol));
-       symbol->name = new_name;
-       symbol->type = S_UNKNOWN;
-       symbol->flags = SYMBOL_NEW;
-       if (isconst)
-               symbol->flags |= SYMBOL_CONST;
-
-       symbol->next = symbol_hash[hash];
-       symbol_hash[hash] = symbol;
-
-       return symbol;
-}
-
-struct symbol *sym_find(const char *name)
-{
-       struct symbol *symbol = NULL;
-       const char *ptr;
-       int hash = 0;
-
-       if (!name)
-               return NULL;
-
-       if (name[0] && !name[1]) {
-               switch (name[0]) {
-               case 'y': return &symbol_yes;
-               case 'm': return &symbol_mod;
-               case 'n': return &symbol_no;
-               }
-       }
-       for (ptr = name; *ptr; ptr++)
-               hash += *ptr;
-       hash &= 0xff;
-
-       for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) {
-               if (!strcmp(symbol->name, name) &&
-                   !(symbol->flags & SYMBOL_CONST))
-                               break;
-       }
-
-       return symbol;
-}
-
-struct symbol **sym_re_search(const char *pattern)
-{
-       struct symbol *sym, **sym_arr = NULL;
-       int i, cnt, size;
-       regex_t re;
-
-       cnt = size = 0;
-       /* Skip if empty */
-       if (strlen(pattern) == 0)
-               return NULL;
-       if (regcomp(&re, pattern, REG_EXTENDED|REG_NOSUB|REG_ICASE))
-               return NULL;
-
-       for_all_symbols(i, sym) {
-               if (sym->flags & SYMBOL_CONST || !sym->name)
-                       continue;
-               if (regexec(&re, sym->name, 0, NULL, 0))
-                       continue;
-               if (cnt + 1 >= size) {
-                       void *tmp = sym_arr;
-                       size += 16;
-                       sym_arr = realloc(sym_arr, size * sizeof(struct symbol *));
-                       if (!sym_arr) {
-                               free(tmp);
-                               return NULL;
-                       }
-               }
-               sym_arr[cnt++] = sym;
-       }
-       if (sym_arr)
-               sym_arr[cnt] = NULL;
-       regfree(&re);
-
-       return sym_arr;
-}
-
-
-struct symbol *sym_check_deps(struct symbol *sym);
-
-static struct symbol *sym_check_expr_deps(struct expr *e)
-{
-       struct symbol *sym;
-
-       if (!e)
-               return NULL;
-       switch (e->type) {
-       case E_OR:
-       case E_AND:
-               sym = sym_check_expr_deps(e->left.expr);
-               if (sym)
-                       return sym;
-               return sym_check_expr_deps(e->right.expr);
-       case E_NOT:
-               return sym_check_expr_deps(e->left.expr);
-       case E_EQUAL:
-       case E_UNEQUAL:
-               sym = sym_check_deps(e->left.sym);
-               if (sym)
-                       return sym;
-               return sym_check_deps(e->right.sym);
-       case E_SYMBOL:
-               return sym_check_deps(e->left.sym);
-       default:
-               break;
-       }
-       printf("Oops! How to check %d?\n", e->type);
-       return NULL;
-}
-
-struct symbol *sym_check_deps(struct symbol *sym)
-{
-       struct symbol *sym2;
-       struct property *prop;
-
-       if (sym->flags & SYMBOL_CHECK_DONE)
-               return NULL;
-       if (sym->flags & SYMBOL_CHECK) {
-               printf("Warning! Found recursive dependency: %s", sym->name);
-               return sym;
-       }
-
-       sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED);
-       sym2 = sym_check_expr_deps(sym->rev_dep.expr);
-       if (sym2)
-               goto out;
-
-       for (prop = sym->prop; prop; prop = prop->next) {
-               if (prop->type == P_CHOICE || prop->type == P_SELECT)
-                       continue;
-               sym2 = sym_check_expr_deps(prop->visible.expr);
-               if (sym2)
-                       goto out;
-               if (prop->type != P_DEFAULT || sym_is_choice(sym))
-                       continue;
-               sym2 = sym_check_expr_deps(prop->expr);
-               if (sym2)
-                       goto out;
-       }
-out:
-       if (sym2)
-               printf(" %s", sym->name);
-       sym->flags &= ~SYMBOL_CHECK;
-       return sym2;
-}
-
-struct property *prop_alloc(enum prop_type type, struct symbol *sym)
-{
-       struct property *prop;
-       struct property **propp;
-
-       prop = malloc(sizeof(*prop));
-       memset(prop, 0, sizeof(*prop));
-       prop->type = type;
-       prop->sym = sym;
-       prop->file = current_file;
-       prop->lineno = zconf_lineno();
-
-       /* append property to the prop list of symbol */
-       if (sym) {
-               for (propp = &sym->prop; *propp; propp = &(*propp)->next)
-                       ;
-               *propp = prop;
-       }
-
-       return prop;
-}
-
-struct symbol *prop_get_symbol(struct property *prop)
-{
-       if (prop->expr && (prop->expr->type == E_SYMBOL ||
-                          prop->expr->type == E_CHOICE))
-               return prop->expr->left.sym;
-       return NULL;
-}
-
-const char *prop_get_type_name(enum prop_type type)
-{
-       switch (type) {
-       case P_PROMPT:
-               return "prompt";
-       case P_COMMENT:
-               return "comment";
-       case P_MENU:
-               return "menu";
-       case P_DEFAULT:
-               return "default";
-       case P_CHOICE:
-               return "choice";
-       case P_SELECT:
-               return "select";
-       case P_RANGE:
-               return "range";
-       case P_UNKNOWN:
-               break;
-       }
-       return "unknown";
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/util.c b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/util.c
deleted file mode 100644 (file)
index 8fc95a2..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2002-2005 Roman Zippel <zippel@linux-m68k.org>
- * Copyright (C) 2002-2005 Sam Ravnborg <sam@ravnborg.org>
- *
- * Released under the terms of the GNU GPL v2.0.
- */
-
-#include <string.h>
-#include "lkc.h"
-
-/* file already present in list? If not add it */
-struct file *file_lookup(const char *name)
-{
-       struct file *file;
-
-       for (file = file_list; file; file = file->next) {
-               if (!strcmp(name, file->name))
-                       return file;
-       }
-
-       file = malloc(sizeof(*file));
-       memset(file, 0, sizeof(*file));
-       file->name = strdup(name);
-       file->next = file_list;
-       file_list = file;
-       return file;
-}
-
-/* write a dependency file as used by kbuild to track dependencies */
-int file_write_dep(const char *name)
-{
-       struct file *file;
-       FILE *out;
-
-       if (!name)
-               name = "config/.config.cmd";
-       out = fopen("config/.config.tmp", "w");
-       if (!out)
-               return 1;
-       fprintf(out, "deps_config := \\\n");
-       for (file = file_list; file; file = file->next) {
-               if (file->next)
-                       fprintf(out, "\t%s \\\n", file->name);
-               else
-                       fprintf(out, "\t%s\n", file->name);
-       }
-       fprintf(out, "\n.config include/config.h: $(deps_config)\n\n$(deps_config):\n");
-       fclose(out);
-       rename(".config.tmp", name);
-       return 0;
-}
-
-
-/* Allocate initial growable sting */
-struct gstr str_new(void)
-{
-       struct gstr gs;
-       gs.s = malloc(sizeof(char) * 64);
-       gs.len = 16;
-       strcpy(gs.s, "\0");
-       return gs;
-}
-
-/* Allocate and assign growable string */
-struct gstr str_assign(const char *s)
-{
-       struct gstr gs;
-       gs.s = strdup(s);
-       gs.len = strlen(s) + 1;
-       return gs;
-}
-
-/* Free storage for growable string */
-void str_free(struct gstr *gs)
-{
-       if (gs->s)
-               free(gs->s);
-       gs->s = NULL;
-       gs->len = 0;
-}
-
-/* Append to growable string */
-void str_append(struct gstr *gs, const char *s)
-{
-       size_t l = strlen(gs->s) + strlen(s) + 1;
-       if (l > gs->len) {
-               gs->s   = realloc(gs->s, l);
-               gs->len = l;
-       }
-       strcat(gs->s, s);
-}
-
-/* Append printf formatted string to growable string */
-void str_printf(struct gstr *gs, const char *fmt, ...)
-{
-       va_list ap;
-       char s[10000]; /* big enough... */
-       va_start(ap, fmt);
-       vsnprintf(s, sizeof(s), fmt, ap);
-       str_append(gs, s);
-       va_end(ap);
-}
-
-/* Retreive value of growable string */
-const char *str_get(struct gstr *gs)
-{
-       return gs->s;
-}
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/zconf.l b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/zconf.l
deleted file mode 100644 (file)
index 55517b2..0000000
+++ /dev/null
@@ -1,366 +0,0 @@
-%option backup nostdinit noyywrap never-interactive full ecs
-%option 8bit backup nodefault perf-report perf-report
-%x COMMAND HELP STRING PARAM
-%{
-/*
- * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-#define START_STRSIZE  16
-
-char *text;
-static char *text_ptr;
-static int text_size, text_asize;
-
-struct buffer {
-        struct buffer *parent;
-        YY_BUFFER_STATE state;
-};
-
-struct buffer *current_buf;
-
-static int last_ts, first_ts;
-
-static void zconf_endhelp(void);
-static struct buffer *zconf_endfile(void);
-
-void new_string(void)
-{
-       text = malloc(START_STRSIZE);
-       text_asize = START_STRSIZE;
-       text_ptr = text;
-       text_size = 0;
-       *text_ptr = 0;
-}
-
-void append_string(const char *str, int size)
-{
-       int new_size = text_size + size + 1;
-       if (new_size > text_asize) {
-               text = realloc(text, new_size);
-               text_asize = new_size;
-               text_ptr = text + text_size;
-       }
-       memcpy(text_ptr, str, size);
-       text_ptr += size;
-       text_size += size;
-       *text_ptr = 0;
-}
-
-void alloc_string(const char *str, int size)
-{
-       text = malloc(size + 1);
-       memcpy(text, str, size);
-       text[size] = 0;
-}
-%}
-
-ws     [ \n\t]
-n      [A-Za-z0-9_]
-
-%%
-       int str = 0;
-       int ts, i;
-
-[ \t]*#.*\n    current_file->lineno++;
-[ \t]*#.*
-
-[ \t]*\n       current_file->lineno++; return T_EOL;
-
-[ \t]+ {
-       BEGIN(COMMAND);
-}
-
-.      {
-       unput(yytext[0]);
-       BEGIN(COMMAND);
-}
-
-
-<COMMAND>{
-       "mainmenu"              BEGIN(PARAM); return T_MAINMENU;
-       "menu"                  BEGIN(PARAM); return T_MENU;
-       "endmenu"               BEGIN(PARAM); return T_ENDMENU;
-       "source"                BEGIN(PARAM); return T_SOURCE;
-       "choice"                BEGIN(PARAM); return T_CHOICE;
-       "endchoice"             BEGIN(PARAM); return T_ENDCHOICE;
-       "comment"               BEGIN(PARAM); return T_COMMENT;
-       "config"                BEGIN(PARAM); return T_CONFIG;
-       "menuconfig"            BEGIN(PARAM); return T_MENUCONFIG;
-       "help"                  BEGIN(PARAM); return T_HELP;
-       "if"                    BEGIN(PARAM); return T_IF;
-       "endif"                 BEGIN(PARAM); return T_ENDIF;
-       "depends"               BEGIN(PARAM); return T_DEPENDS;
-       "requires"              BEGIN(PARAM); return T_REQUIRES;
-       "optional"              BEGIN(PARAM); return T_OPTIONAL;
-       "default"               BEGIN(PARAM); return T_DEFAULT;
-       "prompt"                BEGIN(PARAM); return T_PROMPT;
-       "tristate"              BEGIN(PARAM); return T_TRISTATE;
-       "def_tristate"          BEGIN(PARAM); return T_DEF_TRISTATE;
-       "bool"                  BEGIN(PARAM); return T_BOOLEAN;
-       "boolean"               BEGIN(PARAM); return T_BOOLEAN;
-       "def_bool"              BEGIN(PARAM); return T_DEF_BOOLEAN;
-       "def_boolean"           BEGIN(PARAM); return T_DEF_BOOLEAN;
-       "int"                   BEGIN(PARAM); return T_INT;
-       "hex"                   BEGIN(PARAM); return T_HEX;
-       "string"                BEGIN(PARAM); return T_STRING;
-       "select"                BEGIN(PARAM); return T_SELECT;
-       "enable"                BEGIN(PARAM); return T_SELECT;
-       "range"                 BEGIN(PARAM); return T_RANGE;
-       {n}+    {
-               alloc_string(yytext, yyleng);
-               zconflval.string = text;
-               return T_WORD;
-       }
-       .
-       \n      current_file->lineno++; BEGIN(INITIAL);
-}
-
-<PARAM>{
-       "&&"    return T_AND;
-       "||"    return T_OR;
-       "("     return T_OPEN_PAREN;
-       ")"     return T_CLOSE_PAREN;
-       "!"     return T_NOT;
-       "="     return T_EQUAL;
-       "!="    return T_UNEQUAL;
-       "if"    return T_IF;
-       "on"    return T_ON;
-       \"|\'   {
-               str = yytext[0];
-               new_string();
-               BEGIN(STRING);
-       }
-       \n      BEGIN(INITIAL); current_file->lineno++; return T_EOL;
-       ---     /* ignore */
-       ({n}|[-/.])+    {
-               alloc_string(yytext, yyleng);
-               zconflval.string = text;
-               return T_WORD;
-       }
-       #.*     /* comment */
-       \\\n    current_file->lineno++;
-       .
-       <<EOF>> {
-               BEGIN(INITIAL);
-       }
-}
-
-<STRING>{
-       [^'"\\\n]+/\n   {
-               append_string(yytext, yyleng);
-               zconflval.string = text;
-               return T_WORD_QUOTE;
-       }
-       [^'"\\\n]+      {
-               append_string(yytext, yyleng);
-       }
-       \\.?/\n {
-               append_string(yytext + 1, yyleng - 1);
-               zconflval.string = text;
-               return T_WORD_QUOTE;
-       }
-       \\.?    {
-               append_string(yytext + 1, yyleng - 1);
-       }
-       \'|\"   {
-               if (str == yytext[0]) {
-                       BEGIN(PARAM);
-                       zconflval.string = text;
-                       return T_WORD_QUOTE;
-               } else
-                       append_string(yytext, 1);
-       }
-       \n      {
-               printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
-               current_file->lineno++;
-               BEGIN(INITIAL);
-               return T_EOL;
-       }
-       <<EOF>> {
-               BEGIN(INITIAL);
-       }
-}
-
-<HELP>{
-       [ \t]+  {
-               ts = 0;
-               for (i = 0; i < yyleng; i++) {
-                       if (yytext[i] == '\t')
-                               ts = (ts & ~7) + 8;
-                       else
-                               ts++;
-               }
-               last_ts = ts;
-               if (first_ts) {
-                       if (ts < first_ts) {
-                               zconf_endhelp();
-                               return T_HELPTEXT;
-                       }
-                       ts -= first_ts;
-                       while (ts > 8) {
-                               append_string("        ", 8);
-                               ts -= 8;
-                       }
-                       append_string("        ", ts);
-               }
-       }
-       [ \t]*\n/[^ \t\n] {
-               current_file->lineno++;
-               zconf_endhelp();
-               return T_HELPTEXT;
-       }
-       [ \t]*\n        {
-               current_file->lineno++;
-               append_string("\n", 1);
-       }
-       [^ \t\n].* {
-               append_string(yytext, yyleng);
-               if (!first_ts)
-                       first_ts = last_ts;
-       }
-       <<EOF>> {
-               zconf_endhelp();
-               return T_HELPTEXT;
-       }
-}
-
-<<EOF>>        {
-       if (current_buf) {
-               zconf_endfile();
-               return T_EOF;
-       }
-       fclose(yyin);
-       yyterminate();
-}
-
-%%
-void zconf_starthelp(void)
-{
-       new_string();
-       last_ts = first_ts = 0;
-       BEGIN(HELP);
-}
-
-static void zconf_endhelp(void)
-{
-       zconflval.string = text;
-       BEGIN(INITIAL);
-}
-
-
-/*
- * Try to open specified file with following names:
- * ./name
- * $(srctree)/name
- * The latter is used when srctree is separate from objtree
- * when compiling the kernel.
- * Return NULL if file is not found.
- */
-FILE *zconf_fopen(const char *name)
-{
-       char *env, fullname[PATH_MAX+1];
-       FILE *f;
-
-       f = fopen(name, "r");
-       if (!f && name[0] != '/') {
-               env = getenv(SRCTREE);
-               if (env) {
-                       sprintf(fullname, "%s/%s", env, name);
-                       f = fopen(fullname, "r");
-               }
-       }
-       return f;
-}
-
-void zconf_initscan(const char *name)
-{
-       yyin = zconf_fopen(name);
-       if (!yyin) {
-               printf("can't find file %s\n", name);
-               exit(1);
-       }
-
-       current_buf = malloc(sizeof(*current_buf));
-       memset(current_buf, 0, sizeof(*current_buf));
-
-       current_file = file_lookup(name);
-       current_file->lineno = 1;
-       current_file->flags = FILE_BUSY;
-}
-
-void zconf_nextfile(const char *name)
-{
-       struct file *file = file_lookup(name);
-       struct buffer *buf = malloc(sizeof(*buf));
-       memset(buf, 0, sizeof(*buf));
-
-       current_buf->state = YY_CURRENT_BUFFER;
-       yyin = zconf_fopen(name);
-       if (!yyin) {
-               printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), name);
-               exit(1);
-       }
-       yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
-       buf->parent = current_buf;
-       current_buf = buf;
-
-       if (file->flags & FILE_BUSY) {
-               printf("recursive scan (%s)?\n", name);
-               exit(1);
-       }
-       if (file->flags & FILE_SCANNED) {
-               printf("file %s already scanned?\n", name);
-               exit(1);
-       }
-       file->flags |= FILE_BUSY;
-       file->lineno = 1;
-       file->parent = current_file;
-       current_file = file;
-}
-
-static struct buffer *zconf_endfile(void)
-{
-       struct buffer *parent;
-
-       current_file->flags |= FILE_SCANNED;
-       current_file->flags &= ~FILE_BUSY;
-       current_file = current_file->parent;
-
-       parent = current_buf->parent;
-       if (parent) {
-               fclose(yyin);
-               yy_delete_buffer(YY_CURRENT_BUFFER);
-               yy_switch_to_buffer(parent->state);
-       }
-       free(current_buf);
-       current_buf = parent;
-
-       return parent;
-}
-
-int zconf_lineno(void)
-{
-       if (current_buf)
-               return current_file->lineno - 1;
-       else
-               return 0;
-}
-
-char *zconf_curname(void)
-{
-       if (current_buf)
-               return current_file->name;
-       else
-               return "<none>";
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/zconf.tab.c_shipped b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/zconf.tab.c_shipped
deleted file mode 100644 (file)
index cc68dcb..0000000
+++ /dev/null
@@ -1,2130 +0,0 @@
-/* A Bison parser, made by GNU Bison 1.875a.  */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program 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 General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-/* Written by Richard Stallman by simplifying the original so called
-   ``semantic'' parser.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-/* Identify Bison output.  */
-#define YYBISON 1
-
-/* Skeleton name.  */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers.  */
-#define YYPURE 0
-
-/* Using locations.  */
-#define YYLSP_NEEDED 0
-
-/* If NAME_PREFIX is specified substitute the variables and functions
-   names.  */
-#define yyparse zconfparse
-#define yylex   zconflex
-#define yyerror zconferror
-#define yylval  zconflval
-#define yychar  zconfchar
-#define yydebug zconfdebug
-#define yynerrs zconfnerrs
-
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     T_MAINMENU = 258,
-     T_MENU = 259,
-     T_ENDMENU = 260,
-     T_SOURCE = 261,
-     T_CHOICE = 262,
-     T_ENDCHOICE = 263,
-     T_COMMENT = 264,
-     T_CONFIG = 265,
-     T_MENUCONFIG = 266,
-     T_HELP = 267,
-     T_HELPTEXT = 268,
-     T_IF = 269,
-     T_ENDIF = 270,
-     T_DEPENDS = 271,
-     T_REQUIRES = 272,
-     T_OPTIONAL = 273,
-     T_PROMPT = 274,
-     T_DEFAULT = 275,
-     T_TRISTATE = 276,
-     T_DEF_TRISTATE = 277,
-     T_BOOLEAN = 278,
-     T_DEF_BOOLEAN = 279,
-     T_STRING = 280,
-     T_INT = 281,
-     T_HEX = 282,
-     T_WORD = 283,
-     T_WORD_QUOTE = 284,
-     T_UNEQUAL = 285,
-     T_EOF = 286,
-     T_EOL = 287,
-     T_CLOSE_PAREN = 288,
-     T_OPEN_PAREN = 289,
-     T_ON = 290,
-     T_SELECT = 291,
-     T_RANGE = 292,
-     T_OR = 293,
-     T_AND = 294,
-     T_EQUAL = 295,
-     T_NOT = 296
-   };
-#endif
-#define T_MAINMENU 258
-#define T_MENU 259
-#define T_ENDMENU 260
-#define T_SOURCE 261
-#define T_CHOICE 262
-#define T_ENDCHOICE 263
-#define T_COMMENT 264
-#define T_CONFIG 265
-#define T_MENUCONFIG 266
-#define T_HELP 267
-#define T_HELPTEXT 268
-#define T_IF 269
-#define T_ENDIF 270
-#define T_DEPENDS 271
-#define T_REQUIRES 272
-#define T_OPTIONAL 273
-#define T_PROMPT 274
-#define T_DEFAULT 275
-#define T_TRISTATE 276
-#define T_DEF_TRISTATE 277
-#define T_BOOLEAN 278
-#define T_DEF_BOOLEAN 279
-#define T_STRING 280
-#define T_INT 281
-#define T_HEX 282
-#define T_WORD 283
-#define T_WORD_QUOTE 284
-#define T_UNEQUAL 285
-#define T_EOF 286
-#define T_EOL 287
-#define T_CLOSE_PAREN 288
-#define T_OPEN_PAREN 289
-#define T_ON 290
-#define T_SELECT 291
-#define T_RANGE 292
-#define T_OR 293
-#define T_AND 294
-#define T_EQUAL 295
-#define T_NOT 296
-
-
-
-
-/* Copy the first part of user declarations.  */
-
-
-/*
- * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-#include <ctype.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdbool.h>
-
-#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
-
-#define PRINTD         0x0001
-#define DEBUG_PARSE    0x0002
-
-int cdebug = PRINTD;
-
-extern int zconflex(void);
-static void zconfprint(const char *err, ...);
-static void zconferror(const char *err);
-static bool zconf_endtoken(int token, int starttoken, int endtoken);
-
-struct symbol *symbol_hash[257];
-
-static struct menu *current_menu, *current_entry;
-
-#define YYERROR_VERBOSE
-
-
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-
-typedef union YYSTYPE {
-       int token;
-       char *string;
-       struct symbol *symbol;
-       struct expr *expr;
-       struct menu *menu;
-} YYSTYPE;
-/* Line 191 of yacc.c.  */
-
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-
-
-/* Copy the second part of user declarations.  */
-
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-
-/* Line 214 of yacc.c.  */
-
-
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# if YYSTACK_USE_ALLOCA
-#  define YYSTACK_ALLOC alloca
-# else
-#  ifndef YYSTACK_USE_ALLOCA
-#   if defined (alloca) || (defined (_ALLOCA_H) && defined (__GNUC__))
-#    define YYSTACK_ALLOC alloca
-#   else
-#    ifdef __GNUC__
-#     define YYSTACK_ALLOC __builtin_alloca
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning. */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-#  if defined (__STDC__) || defined (__cplusplus)
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   define YYSIZE_T size_t
-#  endif
-#  define YYSTACK_ALLOC malloc
-#  define YYSTACK_FREE free
-# endif
-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-
-
-#if (! defined (yyoverflow) \
-     && (! defined (__cplusplus) \
-        || (YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  short yyss;
-  YYSTYPE yyvs;
-  };
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
-      + YYSTACK_GAP_MAXIMUM)
-
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)             \
-      do                                       \
-       {                                       \
-         register YYSIZE_T yyi;                \
-         for (yyi = 0; yyi < (Count); yyi++)   \
-           (To)[yyi] = (From)[yyi];            \
-       }                                       \
-      while (0)
-#  endif
-# endif
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack)                                       \
-    do                                                                 \
-      {                                                                        \
-       YYSIZE_T yynewbytes;                                            \
-       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
-       Stack = &yyptr->Stack;                                          \
-       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-       yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                        \
-    while (0)
-
-#endif
-
-#if defined (__STDC__) || defined (__cplusplus)
-   typedef signed char yysigned_char;
-#else
-   typedef short yysigned_char;
-#endif
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL  2
-/* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   201
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS  42
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS  41
-/* YYNRULES -- Number of rules. */
-#define YYNRULES  104
-/* YYNRULES -- Number of states. */
-#define YYNSTATES  182
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   296
-
-#define YYTRANSLATE(YYX)                                               \
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
-static const unsigned char yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const unsigned short yyprhs[] =
-{
-       0,     0,     3,     4,     7,     9,    11,    13,    17,    19,
-      21,    23,    26,    28,    30,    32,    34,    36,    38,    42,
-      45,    49,    52,    53,    56,    59,    62,    65,    69,    74,
-      78,    83,    87,    91,    95,   100,   105,   110,   116,   119,
-     122,   124,   128,   131,   132,   135,   138,   141,   144,   149,
-     153,   157,   160,   165,   166,   169,   173,   175,   179,   182,
-     183,   186,   189,   192,   196,   199,   201,   205,   208,   209,
-     212,   215,   218,   222,   226,   228,   232,   235,   238,   241,
-     242,   245,   248,   253,   257,   261,   262,   265,   267,   269,
-     272,   275,   278,   280,   282,   283,   286,   288,   292,   296,
-     300,   303,   307,   311,   313
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yysigned_char yyrhs[] =
-{
-      43,     0,    -1,    -1,    43,    44,    -1,    45,    -1,    55,
-      -1,    66,    -1,     3,    77,    79,    -1,     5,    -1,    15,
-      -1,     8,    -1,     1,    79,    -1,    61,    -1,    71,    -1,
-      47,    -1,    49,    -1,    69,    -1,    79,    -1,    10,    28,
-      32,    -1,    46,    50,    -1,    11,    28,    32,    -1,    48,
-      50,    -1,    -1,    50,    51,    -1,    50,    75,    -1,    50,
-      73,    -1,    50,    32,    -1,    21,    76,    32,    -1,    22,
-      81,    80,    32,    -1,    23,    76,    32,    -1,    24,    81,
-      80,    32,    -1,    26,    76,    32,    -1,    27,    76,    32,
-      -1,    25,    76,    32,    -1,    19,    77,    80,    32,    -1,
-      20,    81,    80,    32,    -1,    36,    28,    80,    32,    -1,
-      37,    82,    82,    80,    32,    -1,     7,    32,    -1,    52,
-      56,    -1,    78,    -1,    53,    58,    54,    -1,    53,    58,
-      -1,    -1,    56,    57,    -1,    56,    75,    -1,    56,    73,
-      -1,    56,    32,    -1,    19,    77,    80,    32,    -1,    21,
-      76,    32,    -1,    23,    76,    32,    -1,    18,    32,    -1,
-      20,    28,    80,    32,    -1,    -1,    58,    45,    -1,    14,
-      81,    32,    -1,    78,    -1,    59,    62,    60,    -1,    59,
-      62,    -1,    -1,    62,    45,    -1,    62,    66,    -1,    62,
-      55,    -1,     4,    77,    32,    -1,    63,    74,    -1,    78,
-      -1,    64,    67,    65,    -1,    64,    67,    -1,    -1,    67,
-      45,    -1,    67,    66,    -1,    67,    55,    -1,    67,     1,
-      32,    -1,     6,    77,    32,    -1,    68,    -1,     9,    77,
-      32,    -1,    70,    74,    -1,    12,    32,    -1,    72,    13,
-      -1,    -1,    74,    75,    -1,    74,    32,    -1,    16,    35,
-      81,    32,    -1,    16,    81,    32,    -1,    17,    81,    32,
-      -1,    -1,    77,    80,    -1,    28,    -1,    29,    -1,     5,
-      79,    -1,     8,    79,    -1,    15,    79,    -1,    32,    -1,
-      31,    -1,    -1,    14,    81,    -1,    82,    -1,    82,    40,
-      82,    -1,    82,    30,    82,    -1,    34,    81,    33,    -1,
-      41,    81,    -1,    81,    38,    81,    -1,    81,    39,    81,
-      -1,    28,    -1,    29,    -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const unsigned short yyrline[] =
-{
-       0,    94,    94,    95,    98,    99,   100,   101,   102,   103,
-     104,   105,   109,   110,   111,   112,   113,   114,   120,   128,
-     134,   142,   152,   154,   155,   156,   157,   160,   166,   173,
-     179,   186,   192,   198,   204,   210,   216,   222,   230,   239,
-     245,   254,   255,   261,   263,   264,   265,   266,   269,   275,
-     281,   287,   293,   299,   301,   306,   315,   324,   325,   331,
-     333,   334,   335,   340,   347,   353,   362,   363,   369,   371,
-     372,   373,   374,   377,   383,   390,   397,   404,   410,   417,
-     418,   419,   422,   427,   432,   440,   442,   447,   448,   451,
-     452,   453,   457,   457,   459,   460,   463,   464,   465,   466,
-     467,   468,   469,   472,   473
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE
-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-static const char *const yytname[] =
-{
-  "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",
-  "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
-  "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
-  "T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_DEFAULT", "T_TRISTATE",
-  "T_DEF_TRISTATE", "T_BOOLEAN", "T_DEF_BOOLEAN", "T_STRING", "T_INT",
-  "T_HEX", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", "T_EOF", "T_EOL",
-  "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_SELECT", "T_RANGE", "T_OR",
-  "T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "block",
-  "common_block", "config_entry_start", "config_stmt",
-  "menuconfig_entry_start", "menuconfig_stmt", "config_option_list",
-  "config_option", "choice", "choice_entry", "choice_end", "choice_stmt",
-  "choice_option_list", "choice_option", "choice_block", "if", "if_end",
-  "if_stmt", "if_block", "menu", "menu_entry", "menu_end", "menu_stmt",
-  "menu_block", "source", "source_stmt", "comment", "comment_stmt",
-  "help_start", "help", "depends_list", "depends", "prompt_stmt_opt",
-  "prompt", "end", "nl_or_eof", "if_expr", "expr", "symbol", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-   token YYLEX-NUM.  */
-static const unsigned short yytoknum[] =
-{
-       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const unsigned char yyr1[] =
-{
-       0,    42,    43,    43,    44,    44,    44,    44,    44,    44,
-      44,    44,    45,    45,    45,    45,    45,    45,    46,    47,
-      48,    49,    50,    50,    50,    50,    50,    51,    51,    51,
-      51,    51,    51,    51,    51,    51,    51,    51,    52,    53,
-      54,    55,    55,    56,    56,    56,    56,    56,    57,    57,
-      57,    57,    57,    58,    58,    59,    60,    61,    61,    62,
-      62,    62,    62,    63,    64,    65,    66,    66,    67,    67,
-      67,    67,    67,    68,    69,    70,    71,    72,    73,    74,
-      74,    74,    75,    75,    75,    76,    76,    77,    77,    78,
-      78,    78,    79,    79,    80,    80,    81,    81,    81,    81,
-      81,    81,    81,    82,    82
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const unsigned char yyr2[] =
-{
-       0,     2,     0,     2,     1,     1,     1,     3,     1,     1,
-       1,     2,     1,     1,     1,     1,     1,     1,     3,     2,
-       3,     2,     0,     2,     2,     2,     2,     3,     4,     3,
-       4,     3,     3,     3,     4,     4,     4,     5,     2,     2,
-       1,     3,     2,     0,     2,     2,     2,     2,     4,     3,
-       3,     2,     4,     0,     2,     3,     1,     3,     2,     0,
-       2,     2,     2,     3,     2,     1,     3,     2,     0,     2,
-       2,     2,     3,     3,     1,     3,     2,     2,     2,     0,
-       2,     2,     4,     3,     3,     0,     2,     1,     1,     2,
-       2,     2,     1,     1,     0,     2,     1,     3,     3,     3,
-       2,     3,     3,     1,     1
-};
-
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
-   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
-   means the default is an error.  */
-static const unsigned char yydefact[] =
-{
-       2,     0,     1,     0,     0,     0,     8,     0,     0,    10,
-       0,     0,     0,     0,     9,    93,    92,     3,     4,    22,
-      14,    22,    15,    43,    53,     5,    59,    12,    79,    68,
-       6,    74,    16,    79,    13,    17,    11,    87,    88,     0,
-       0,     0,    38,     0,     0,     0,   103,   104,     0,     0,
-       0,    96,    19,    21,    39,    42,    58,    64,     0,    76,
-       7,    63,    73,    75,    18,    20,     0,   100,    55,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    85,     0,
-      85,     0,    85,    85,    85,    26,     0,     0,    23,     0,
-      25,    24,     0,     0,     0,    85,    85,    47,    44,    46,
-      45,     0,     0,     0,    54,    41,    40,    60,    62,    57,
-      61,    56,    81,    80,     0,    69,    71,    66,    70,    65,
-      99,   101,   102,    98,    97,    77,     0,     0,     0,    94,
-      94,     0,    94,    94,     0,    94,     0,     0,     0,    94,
-       0,    78,    51,    94,    94,     0,     0,    89,    90,    91,
-      72,     0,    83,    84,     0,     0,     0,    27,    86,     0,
-      29,     0,    33,    31,    32,     0,    94,     0,     0,    49,
-      50,    82,    95,    34,    35,    28,    30,    36,     0,    48,
-      52,    37
-};
-
-/* YYDEFGOTO[NTERM-NUM]. */
-static const short yydefgoto[] =
-{
-      -1,     1,    17,    18,    19,    20,    21,    22,    52,    88,
-      23,    24,   105,    25,    54,    98,    55,    26,   109,    27,
-      56,    28,    29,   117,    30,    58,    31,    32,    33,    34,
-      89,    90,    57,    91,   131,   132,   106,    35,   155,    50,
-      51
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -99
-static const short yypact[] =
-{
-     -99,    48,   -99,    38,    46,    46,   -99,    46,   -29,   -99,
-      46,   -17,    -3,   -11,   -99,   -99,   -99,   -99,   -99,   -99,
-     -99,   -99,   -99,   -99,   -99,   -99,   -99,   -99,   -99,   -99,
-     -99,   -99,   -99,   -99,   -99,   -99,   -99,   -99,   -99,    38,
-      12,    15,   -99,    18,    51,    62,   -99,   -99,   -11,   -11,
-       4,   -24,   138,   138,   160,   121,   110,    -4,    81,    -4,
-     -99,   -99,   -99,   -99,   -99,   -99,   -19,   -99,   -99,   -11,
-     -11,    70,    70,    73,    32,   -11,    46,   -11,    46,   -11,
-      46,   -11,    46,    46,    46,   -99,    36,    70,   -99,    95,
-     -99,   -99,    96,    46,   106,    46,    46,   -99,   -99,   -99,
-     -99,    38,    38,    38,   -99,   -99,   -99,   -99,   -99,   -99,
-     -99,   -99,   -99,   -99,   112,   -99,   -99,   -99,   -99,   -99,
-     -99,   117,   -99,   -99,   -99,   -99,   -11,    33,    65,   131,
-       1,   119,   131,     1,   136,     1,   153,   154,   155,   131,
-      70,   -99,   -99,   131,   131,   156,   157,   -99,   -99,   -99,
-     -99,   101,   -99,   -99,   -11,   158,   159,   -99,   -99,   161,
-     -99,   162,   -99,   -99,   -99,   163,   131,   164,   165,   -99,
-     -99,   -99,    99,   -99,   -99,   -99,   -99,   -99,   166,   -99,
-     -99,   -99
-};
-
-/* YYPGOTO[NTERM-NUM].  */
-static const short yypgoto[] =
-{
-     -99,   -99,   -99,   111,   -99,   -99,   -99,   -99,   178,   -99,
-     -99,   -99,   -99,    91,   -99,   -99,   -99,   -99,   -99,   -99,
-     -99,   -99,   -99,   -99,   115,   -99,   -99,   -99,   -99,   -99,
-     -99,   146,   168,    89,    27,     0,   126,    -1,   -98,   -48,
-     -63
-};
-
-/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If zero, do what YYDEFACT says.
-   If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -68
-static const short yytable[] =
-{
-      66,    67,    36,    42,    39,    40,    71,    41,   123,   124,
-      43,    44,    74,    75,   120,   154,    72,    46,    47,    69,
-      70,   121,   122,    48,   140,    45,   127,   128,   112,   130,
-      49,   133,   156,   135,   158,   159,    68,   161,    60,    69,
-      70,   165,    69,    70,    61,   167,   168,    62,     2,     3,
-      63,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      46,    47,    13,    14,   139,   152,    48,   126,   178,    15,
-      16,    69,    70,    49,    37,    38,   129,   166,   151,    15,
-      16,   -67,   114,    64,   -67,     5,   101,     7,     8,   102,
-      10,    11,    12,   143,    65,    13,   103,   153,    46,    47,
-     147,   148,   149,    69,    70,   125,   172,   134,   141,   136,
-     137,   138,    15,    16,     5,   101,     7,     8,   102,    10,
-      11,    12,   145,   146,    13,   103,   101,     7,   142,   102,
-      10,    11,    12,   171,   144,    13,   103,    69,    70,    69,
-      70,    15,    16,   100,   150,   154,   113,   108,   113,   116,
-      73,   157,    15,    16,    74,    75,    70,    76,    77,    78,
-      79,    80,    81,    82,    83,    84,   104,   107,   160,   115,
-      85,   110,    73,   118,    86,    87,    74,    75,    92,    93,
-      94,    95,   111,    96,   119,   162,   163,   164,   169,   170,
-     173,   174,    97,   175,   176,   177,   179,   180,   181,    53,
-      99,    59
-};
-
-static const unsigned char yycheck[] =
-{
-      48,    49,     3,    32,     4,     5,    30,     7,    71,    72,
-      10,    28,    16,    17,    33,    14,    40,    28,    29,    38,
-      39,    69,    70,    34,    87,    28,    74,    75,    32,    77,
-      41,    79,   130,    81,   132,   133,    32,   135,    39,    38,
-      39,   139,    38,    39,    32,   143,   144,    32,     0,     1,
-      32,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      28,    29,    14,    15,    28,    32,    34,    35,   166,    31,
-      32,    38,    39,    41,    28,    29,    76,   140,   126,    31,
-      32,     0,     1,    32,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    93,    32,    14,    15,    32,    28,    29,
-     101,   102,   103,    38,    39,    32,   154,    80,    13,    82,
-      83,    84,    31,    32,     4,     5,     6,     7,     8,     9,
-      10,    11,    95,    96,    14,    15,     5,     6,    32,     8,
-       9,    10,    11,    32,    28,    14,    15,    38,    39,    38,
-      39,    31,    32,    54,    32,    14,    57,    56,    59,    58,
-      12,    32,    31,    32,    16,    17,    39,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    55,    56,    32,    58,
-      32,    56,    12,    58,    36,    37,    16,    17,    18,    19,
-      20,    21,    56,    23,    58,    32,    32,    32,    32,    32,
-      32,    32,    32,    32,    32,    32,    32,    32,    32,    21,
-      54,    33
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
-static const unsigned char yystos[] =
-{
-       0,    43,     0,     1,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    14,    15,    31,    32,    44,    45,    46,
-      47,    48,    49,    52,    53,    55,    59,    61,    63,    64,
-      66,    68,    69,    70,    71,    79,    79,    28,    29,    77,
-      77,    77,    32,    77,    28,    28,    28,    29,    34,    41,
-      81,    82,    50,    50,    56,    58,    62,    74,    67,    74,
-      79,    32,    32,    32,    32,    32,    81,    81,    32,    38,
-      39,    30,    40,    12,    16,    17,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    32,    36,    37,    51,    72,
-      73,    75,    18,    19,    20,    21,    23,    32,    57,    73,
-      75,     5,     8,    15,    45,    54,    78,    45,    55,    60,
-      66,    78,    32,    75,     1,    45,    55,    65,    66,    78,
-      33,    81,    81,    82,    82,    32,    35,    81,    81,    77,
-      81,    76,    77,    81,    76,    81,    76,    76,    76,    28,
-      82,    13,    32,    77,    28,    76,    76,    79,    79,    79,
-      32,    81,    32,    32,    14,    80,    80,    32,    80,    80,
-      32,    80,    32,    32,    32,    80,    82,    80,    80,    32,
-      32,    32,    81,    32,    32,    32,    32,    32,    80,    32,
-      32,    32
-};
-
-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-# define YYSIZE_T __SIZE_TYPE__
-#endif
-#if ! defined (YYSIZE_T) && defined (size_t)
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# if defined (__STDC__) || defined (__cplusplus)
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# endif
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
-#define yyerrok                (yyerrstatus = 0)
-#define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                (-2)
-#define YYEOF          0
-
-#define YYACCEPT       goto yyacceptlab
-#define YYABORT                goto yyabortlab
-#define YYERROR                goto yyerrlab1
-
-
-/* Like YYERROR except do call yyerror.  This remains here temporarily
-   to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  */
-
-#define YYFAIL         goto yyerrlab
-
-#define YYRECOVERING()  (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value)                                 \
-do                                                             \
-  if (yychar == YYEMPTY && yylen == 1)                         \
-    {                                                          \
-      yychar = (Token);                                                \
-      yylval = (Value);                                                \
-      yytoken = YYTRANSLATE (yychar);                          \
-      YYPOPSTACK;                                              \
-      goto yybackup;                                           \
-    }                                                          \
-  else                                                         \
-    {                                                          \
-      yyerror ("syntax error: cannot back up");\
-      YYERROR;                                                 \
-    }                                                          \
-while (0)
-
-#define YYTERROR       1
-#define YYERRCODE      256
-
-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-   are run).  */
-
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)         \
-  Current.first_line   = Rhs[1].first_line;      \
-  Current.first_column = Rhs[1].first_column;    \
-  Current.last_line    = Rhs[N].last_line;       \
-  Current.last_column  = Rhs[N].last_column;
-#endif
-
-/* YYLEX -- calling `yylex' with the right arguments.  */
-
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
-#else
-# define YYLEX yylex ()
-#endif
-
-/* Enable debugging if requested.  */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args)                       \
-do {                                           \
-  if (yydebug)                                 \
-    YYFPRINTF Args;                            \
-} while (0)
-
-# define YYDSYMPRINT(Args)                     \
-do {                                           \
-  if (yydebug)                                 \
-    yysymprint Args;                           \
-} while (0)
-
-# define YYDSYMPRINTF(Title, Token, Value, Location)           \
-do {                                                           \
-  if (yydebug)                                                 \
-    {                                                          \
-      YYFPRINTF (stderr, "%s ", Title);                                \
-      yysymprint (stderr,                                      \
-                  Token, Value);       \
-      YYFPRINTF (stderr, "\n");                                        \
-    }                                                          \
-} while (0)
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (cinluded).                                                   |
-`------------------------------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yy_stack_print (short *bottom, short *top)
-#else
-static void
-yy_stack_print (bottom, top)
-    short *bottom;
-    short *top;
-#endif
-{
-  YYFPRINTF (stderr, "Stack now");
-  for (/* Nothing. */; bottom <= top; ++bottom)
-    YYFPRINTF (stderr, " %d", *bottom);
-  YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top)                           \
-do {                                                           \
-  if (yydebug)                                                 \
-    yy_stack_print ((Bottom), (Top));                          \
-} while (0)
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced.  |
-`------------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yy_reduce_print (int yyrule)
-#else
-static void
-yy_reduce_print (yyrule)
-    int yyrule;
-#endif
-{
-  int yyi;
-  unsigned int yylineno = yyrline[yyrule];
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
-             yyrule - 1, yylineno);
-  /* Print the symbols being reduced, and their result.  */
-  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
-  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
-}
-
-# define YY_REDUCE_PRINT(Rule)         \
-do {                                   \
-  if (yydebug)                         \
-    yy_reduce_print (Rule);            \
-} while (0)
-
-/* Nonzero means print parse trace.  It is left uninitialized so that
-   multiple parsers can coexist.  */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YYDSYMPRINT(Args)
-# define YYDSYMPRINTF(Title, Token, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef        YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).
-
-   Do not make this value too large; the results are undefined if
-   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
-   evaluated with infinite-precision integer arithmetic.  */
-
-#if YYMAXDEPTH == 0
-# undef YYMAXDEPTH
-#endif
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-\f
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-#  if defined (__GLIBC__) && defined (_STRING_H)
-#   define yystrlen strlen
-#  else
-/* Return the length of YYSTR.  */
-static YYSIZE_T
-#   if defined (__STDC__) || defined (__cplusplus)
-yystrlen (const char *yystr)
-#   else
-yystrlen (yystr)
-     const char *yystr;
-#   endif
-{
-  register const char *yys = yystr;
-
-  while (*yys++ != '\0')
-    continue;
-
-  return yys - yystr - 1;
-}
-#  endif
-# endif
-
-# ifndef yystpcpy
-#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-static char *
-#   if defined (__STDC__) || defined (__cplusplus)
-yystpcpy (char *yydest, const char *yysrc)
-#   else
-yystpcpy (yydest, yysrc)
-     char *yydest;
-     const char *yysrc;
-#   endif
-{
-  register char *yyd = yydest;
-  register const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
-
-#endif /* !YYERROR_VERBOSE */
-
-\f
-
-#if YYDEBUG
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yysymprint (yyoutput, yytype, yyvaluep)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE *yyvaluep;
-#endif
-{
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvaluep;
-
-  if (yytype < YYNTOKENS)
-    {
-      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-# ifdef YYPRINT
-      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
-    }
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
-  switch (yytype)
-    {
-      default:
-        break;
-    }
-  YYFPRINTF (yyoutput, ")");
-}
-
-#endif /* ! YYDEBUG */
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yydestruct (int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yytype, yyvaluep)
-    int yytype;
-    YYSTYPE *yyvaluep;
-#endif
-{
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvaluep;
-
-  switch (yytype)
-    {
-
-      default:
-        break;
-    }
-}
-\f
-
-/* Prevent warnings from -Wmissing-prototypes.  */
-
-#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM);
-# else
-int yyparse ();
-# endif
-#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
-
-/* The lookahead symbol.  */
-int yychar;
-
-/* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
-
-/* Number of syntax errors so far.  */
-int yynerrs;
-
-
-
-/*----------.
-| yyparse.  |
-`----------*/
-
-#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM)
-# else
-int yyparse (YYPARSE_PARAM)
-  void *YYPARSE_PARAM;
-# endif
-#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
-int
-yyparse (void)
-#else
-int
-yyparse ()
-
-#endif
-#endif
-{
-
-  register int yystate;
-  register int yyn;
-  int yyresult;
-  /* Number of tokens to shift before error messages enabled.  */
-  int yyerrstatus;
-  /* Lookahead token as an internal (translated) token number.  */
-  int yytoken = 0;
-
-  /* Three stacks and their tools:
-     `yyss': related to states,
-     `yyvs': related to semantic values,
-     `yyls': related to locations.
-
-     Refer to the stacks thru separate pointers, to allow yyoverflow
-     to reallocate them elsewhere.  */
-
-  /* The state stack.  */
-  short        yyssa[YYINITDEPTH];
-  short *yyss = yyssa;
-  register short *yyssp;
-
-  /* The semantic value stack.  */
-  YYSTYPE yyvsa[YYINITDEPTH];
-  YYSTYPE *yyvs = yyvsa;
-  register YYSTYPE *yyvsp;
-
-
-
-#define YYPOPSTACK   (yyvsp--, yyssp--)
-
-  YYSIZE_T yystacksize = YYINITDEPTH;
-
-  /* The variables used to return semantic value and location from the
-     action routines.  */
-  YYSTYPE yyval;
-
-
-  /* When reducing, the number of symbols on the RHS of the reduced
-     rule.  */
-  int yylen;
-
-  YYDPRINTF ((stderr, "Starting parse\n"));
-
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY;            /* Cause a token to be read.  */
-
-  /* Initialize stack pointers.
-     Waste one element of value and location stack
-     so that they stay on the same level as the state stack.
-     The wasted elements are never initialized.  */
-
-  yyssp = yyss;
-  yyvsp = yyvs;
-
-  goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
-`------------------------------------------------------------*/
- yynewstate:
-  /* In all cases, when you get here, the value and location stacks
-     have just been pushed. so pushing a state here evens the stacks.
-     */
-  yyssp++;
-
- yysetstate:
-  *yyssp = yystate;
-
-  if (yyss + yystacksize - 1 <= yyssp)
-    {
-      /* Get the current used size of the three stacks, in elements.  */
-      YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
-      {
-       /* Give user a chance to reallocate the stack. Use copies of
-          these so that the &'s don't force the real ones into
-          memory.  */
-       YYSTYPE *yyvs1 = yyvs;
-       short *yyss1 = yyss;
-
-
-       /* Each stack pointer address is followed by the size of the
-          data in use in that stack, in bytes.  This used to be a
-          conditional around just the two extra args, but that might
-          be undefined if yyoverflow is a macro.  */
-       yyoverflow ("parser stack overflow",
-                   &yyss1, yysize * sizeof (*yyssp),
-                   &yyvs1, yysize * sizeof (*yyvsp),
-
-                   &yystacksize);
-
-       yyss = yyss1;
-       yyvs = yyvs1;
-      }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyoverflowlab;
-# else
-      /* Extend the stack our own way.  */
-      if (YYMAXDEPTH <= yystacksize)
-       goto yyoverflowlab;
-      yystacksize *= 2;
-      if (YYMAXDEPTH < yystacksize)
-       yystacksize = YYMAXDEPTH;
-
-      {
-       short *yyss1 = yyss;
-       union yyalloc *yyptr =
-         (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-       if (! yyptr)
-         goto yyoverflowlab;
-       YYSTACK_RELOCATE (yyss);
-       YYSTACK_RELOCATE (yyvs);
-
-#  undef YYSTACK_RELOCATE
-       if (yyss1 != yyssa)
-         YYSTACK_FREE (yyss1);
-      }
-# endif
-#endif /* no yyoverflow */
-
-      yyssp = yyss + yysize - 1;
-      yyvsp = yyvs + yysize - 1;
-
-
-      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-                 (unsigned long int) yystacksize));
-
-      if (yyss + yystacksize - 1 <= yyssp)
-       YYABORT;
-    }
-
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
-  goto yybackup;
-
-/*-----------.
-| yybackup.  |
-`-----------*/
-yybackup:
-
-/* Do appropriate processing given the current state.  */
-/* Read a lookahead token if we need one and don't already have one.  */
-/* yyresume: */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-
-  yyn = yypact[yystate];
-  if (yyn == YYPACT_NINF)
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
-  if (yychar == YYEMPTY)
-    {
-      YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = YYLEX;
-    }
-
-  if (yychar <= YYEOF)
-    {
-      yychar = yytoken = YYEOF;
-      YYDPRINTF ((stderr, "Now at end of input.\n"));
-    }
-  else
-    {
-      yytoken = YYTRANSLATE (yychar);
-      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
-    }
-
-  /* If the proper action on seeing token YYTOKEN is to reduce or to
-     detect an error, take that action.  */
-  yyn += yytoken;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
-    goto yydefault;
-  yyn = yytable[yyn];
-  if (yyn <= 0)
-    {
-      if (yyn == 0 || yyn == YYTABLE_NINF)
-       goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
-  /* Shift the lookahead token.  */
-  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
-
-  /* Discard the token being shifted unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
-
-  *++yyvsp = yylval;
-
-
-  /* Count tokens shifted since error; after three, turn off error
-     status.  */
-  if (yyerrstatus)
-    yyerrstatus--;
-
-  yystate = yyn;
-  goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state.  |
-`-----------------------------------------------------------*/
-yydefault:
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-  goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction.  |
-`-----------------------------*/
-yyreduce:
-  /* yyn is the number of a rule to reduce with.  */
-  yylen = yyr2[yyn];
-
-  /* If YYLEN is nonzero, implement the default value of the action:
-     `$$ = $1'.
-
-     Otherwise, the following line sets YYVAL to garbage.
-     This behavior is undocumented and Bison
-     users should not rely upon it.  Assigning to YYVAL
-     unconditionally makes the parser a bit smaller, and it avoids a
-     GCC warning that YYVAL may be used uninitialized.  */
-  yyval = yyvsp[1-yylen];
-
-
-  YY_REDUCE_PRINT (yyn);
-  switch (yyn)
-    {
-        case 8:
-
-    { zconfprint("unexpected 'endmenu' statement"); ;}
-    break;
-
-  case 9:
-
-    { zconfprint("unexpected 'endif' statement"); ;}
-    break;
-
-  case 10:
-
-    { zconfprint("unexpected 'endchoice' statement"); ;}
-    break;
-
-  case 11:
-
-    { zconfprint("syntax error"); yyerrok; ;}
-    break;
-
-  case 18:
-
-    {
-       struct symbol *sym = sym_lookup(yyvsp[-1].string, 0);
-       sym->flags |= SYMBOL_OPTIONAL;
-       menu_add_entry(sym);
-       printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string);
-;}
-    break;
-
-  case 19:
-
-    {
-       menu_end_entry();
-       printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 20:
-
-    {
-       struct symbol *sym = sym_lookup(yyvsp[-1].string, 0);
-       sym->flags |= SYMBOL_OPTIONAL;
-       menu_add_entry(sym);
-       printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string);
-;}
-    break;
-
-  case 21:
-
-    {
-       if (current_entry->prompt)
-               current_entry->prompt->type = P_MENU;
-       else
-               zconfprint("warning: menuconfig statement without prompt");
-       menu_end_entry();
-       printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 27:
-
-    {
-       menu_set_type(S_TRISTATE);
-       printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 28:
-
-    {
-       menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr);
-       menu_set_type(S_TRISTATE);
-       printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 29:
-
-    {
-       menu_set_type(S_BOOLEAN);
-       printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 30:
-
-    {
-       menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr);
-       menu_set_type(S_BOOLEAN);
-       printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 31:
-
-    {
-       menu_set_type(S_INT);
-       printd(DEBUG_PARSE, "%s:%d:int\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 32:
-
-    {
-       menu_set_type(S_HEX);
-       printd(DEBUG_PARSE, "%s:%d:hex\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 33:
-
-    {
-       menu_set_type(S_STRING);
-       printd(DEBUG_PARSE, "%s:%d:string\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 34:
-
-    {
-       menu_add_prompt(P_PROMPT, yyvsp[-2].string, yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 35:
-
-    {
-       menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 36:
-
-    {
-       menu_add_symbol(P_SELECT, sym_lookup(yyvsp[-2].string, 0), yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 37:
-
-    {
-       menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,yyvsp[-3].symbol, yyvsp[-2].symbol), yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 38:
-
-    {
-       struct symbol *sym = sym_lookup(NULL, 0);
-       sym->flags |= SYMBOL_CHOICE;
-       menu_add_entry(sym);
-       menu_add_expr(P_CHOICE, NULL, NULL);
-       printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 39:
-
-    {
-       menu_end_entry();
-       menu_add_menu();
-;}
-    break;
-
-  case 40:
-
-    {
-       if (zconf_endtoken(yyvsp[0].token, T_CHOICE, T_ENDCHOICE)) {
-               menu_end_menu();
-               printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno());
-       }
-;}
-    break;
-
-  case 42:
-
-    {
-       printf("%s:%d: missing 'endchoice' for this 'choice' statement\n", current_menu->file->name, current_menu->lineno);
-       zconfnerrs++;
-;}
-    break;
-
-  case 48:
-
-    {
-       menu_add_prompt(P_PROMPT, yyvsp[-2].string, yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 49:
-
-    {
-       menu_set_type(S_TRISTATE);
-       printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 50:
-
-    {
-       menu_set_type(S_BOOLEAN);
-       printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 51:
-
-    {
-       current_entry->sym->flags |= SYMBOL_OPTIONAL;
-       printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 52:
-
-    {
-       menu_add_symbol(P_DEFAULT, sym_lookup(yyvsp[-2].string, 0), yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 55:
-
-    {
-       printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
-       menu_add_entry(NULL);
-       menu_add_dep(yyvsp[-1].expr);
-       menu_end_entry();
-       menu_add_menu();
-;}
-    break;
-
-  case 56:
-
-    {
-       if (zconf_endtoken(yyvsp[0].token, T_IF, T_ENDIF)) {
-               menu_end_menu();
-               printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno());
-       }
-;}
-    break;
-
-  case 58:
-
-    {
-       printf("%s:%d: missing 'endif' for this 'if' statement\n", current_menu->file->name, current_menu->lineno);
-       zconfnerrs++;
-;}
-    break;
-
-  case 63:
-
-    {
-       menu_add_entry(NULL);
-       menu_add_prop(P_MENU, yyvsp[-1].string, NULL, NULL);
-       printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 64:
-
-    {
-       menu_end_entry();
-       menu_add_menu();
-;}
-    break;
-
-  case 65:
-
-    {
-       if (zconf_endtoken(yyvsp[0].token, T_MENU, T_ENDMENU)) {
-               menu_end_menu();
-               printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno());
-       }
-;}
-    break;
-
-  case 67:
-
-    {
-       printf("%s:%d: missing 'endmenu' for this 'menu' statement\n", current_menu->file->name, current_menu->lineno);
-       zconfnerrs++;
-;}
-    break;
-
-  case 72:
-
-    { zconfprint("invalid menu option"); yyerrok; ;}
-    break;
-
-  case 73:
-
-    {
-       yyval.string = yyvsp[-1].string;
-       printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string);
-;}
-    break;
-
-  case 74:
-
-    {
-       zconf_nextfile(yyvsp[0].string);
-;}
-    break;
-
-  case 75:
-
-    {
-       menu_add_entry(NULL);
-       menu_add_prop(P_COMMENT, yyvsp[-1].string, NULL, NULL);
-       printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 76:
-
-    {
-       menu_end_entry();
-;}
-    break;
-
-  case 77:
-
-    {
-       printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
-       zconf_starthelp();
-;}
-    break;
-
-  case 78:
-
-    {
-       current_entry->sym->help = yyvsp[0].string;
-;}
-    break;
-
-  case 82:
-
-    {
-       menu_add_dep(yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 83:
-
-    {
-       menu_add_dep(yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 84:
-
-    {
-       menu_add_dep(yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 86:
-
-    {
-       menu_add_prop(P_PROMPT, yyvsp[-1].string, NULL, yyvsp[0].expr);
-;}
-    break;
-
-  case 89:
-
-    { yyval.token = T_ENDMENU; ;}
-    break;
-
-  case 90:
-
-    { yyval.token = T_ENDCHOICE; ;}
-    break;
-
-  case 91:
-
-    { yyval.token = T_ENDIF; ;}
-    break;
-
-  case 94:
-
-    { yyval.expr = NULL; ;}
-    break;
-
-  case 95:
-
-    { yyval.expr = yyvsp[0].expr; ;}
-    break;
-
-  case 96:
-
-    { yyval.expr = expr_alloc_symbol(yyvsp[0].symbol); ;}
-    break;
-
-  case 97:
-
-    { yyval.expr = expr_alloc_comp(E_EQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;}
-    break;
-
-  case 98:
-
-    { yyval.expr = expr_alloc_comp(E_UNEQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;}
-    break;
-
-  case 99:
-
-    { yyval.expr = yyvsp[-1].expr; ;}
-    break;
-
-  case 100:
-
-    { yyval.expr = expr_alloc_one(E_NOT, yyvsp[0].expr); ;}
-    break;
-
-  case 101:
-
-    { yyval.expr = expr_alloc_two(E_OR, yyvsp[-2].expr, yyvsp[0].expr); ;}
-    break;
-
-  case 102:
-
-    { yyval.expr = expr_alloc_two(E_AND, yyvsp[-2].expr, yyvsp[0].expr); ;}
-    break;
-
-  case 103:
-
-    { yyval.symbol = sym_lookup(yyvsp[0].string, 0); free(yyvsp[0].string); ;}
-    break;
-
-  case 104:
-
-    { yyval.symbol = sym_lookup(yyvsp[0].string, 1); free(yyvsp[0].string); ;}
-    break;
-
-
-    }
-
-/* Line 999 of yacc.c.  */
-
-\f
-  yyvsp -= yylen;
-  yyssp -= yylen;
-
-
-  YY_STACK_PRINT (yyss, yyssp);
-
-  *++yyvsp = yyval;
-
-
-  /* Now `shift' the result of the reduction.  Determine what state
-     that goes to, based on the state we popped back to and the rule
-     number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTOKENS];
-
-  goto yynewstate;
-
-
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
-  /* If not already recovering from an error, report this error.  */
-  if (!yyerrstatus)
-    {
-      ++yynerrs;
-#if YYERROR_VERBOSE
-      yyn = yypact[yystate];
-
-      if (YYPACT_NINF < yyn && yyn < YYLAST)
-       {
-         YYSIZE_T yysize = 0;
-         int yytype = YYTRANSLATE (yychar);
-         char *yymsg;
-         int yyx, yycount;
-
-         yycount = 0;
-         /* Start YYX at -YYN if negative to avoid negative indexes in
-            YYCHECK.  */
-         for (yyx = yyn < 0 ? -yyn : 0;
-              yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
-           if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-             yysize += yystrlen (yytname[yyx]) + 15, yycount++;
-         yysize += yystrlen ("syntax error, unexpected ") + 1;
-         yysize += yystrlen (yytname[yytype]);
-         yymsg = (char *) YYSTACK_ALLOC (yysize);
-         if (yymsg != 0)
-           {
-             char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
-             yyp = yystpcpy (yyp, yytname[yytype]);
-
-             if (yycount < 5)
-               {
-                 yycount = 0;
-                 for (yyx = yyn < 0 ? -yyn : 0;
-                      yyx < (int) (sizeof (yytname) / sizeof (char *));
-                      yyx++)
-                   if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-                     {
-                       const char *yyq = ! yycount ? ", expecting " : " or ";
-                       yyp = yystpcpy (yyp, yyq);
-                       yyp = yystpcpy (yyp, yytname[yyx]);
-                       yycount++;
-                     }
-               }
-             yyerror (yymsg);
-             YYSTACK_FREE (yymsg);
-           }
-         else
-           yyerror ("syntax error; also virtual memory exhausted");
-       }
-      else
-#endif /* YYERROR_VERBOSE */
-       yyerror ("syntax error");
-    }
-
-
-
-  if (yyerrstatus == 3)
-    {
-      /* If just tried and failed to reuse lookahead token after an
-        error, discard it.  */
-
-      /* Return failure if at end of input.  */
-      if (yychar == YYEOF)
-        {
-         /* Pop the error token.  */
-          YYPOPSTACK;
-         /* Pop the rest of the stack.  */
-         while (yyss < yyssp)
-           {
-             YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-             yydestruct (yystos[*yyssp], yyvsp);
-             YYPOPSTACK;
-           }
-         YYABORT;
-        }
-
-      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
-      yydestruct (yytoken, &yylval);
-      yychar = YYEMPTY;
-
-    }
-
-  /* Else will try to reuse lookahead token after shifting the error
-     token.  */
-  goto yyerrlab1;
-
-
-/*----------------------------------------------------.
-| yyerrlab1 -- error raised explicitly by an action.  |
-`----------------------------------------------------*/
-yyerrlab1:
-  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
-
-  for (;;)
-    {
-      yyn = yypact[yystate];
-      if (yyn != YYPACT_NINF)
-       {
-         yyn += YYTERROR;
-         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-           {
-             yyn = yytable[yyn];
-             if (0 < yyn)
-               break;
-           }
-       }
-
-      /* Pop the current state because it cannot handle the error token.  */
-      if (yyssp == yyss)
-       YYABORT;
-
-      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-      yydestruct (yystos[yystate], yyvsp);
-      yyvsp--;
-      yystate = *--yyssp;
-
-      YY_STACK_PRINT (yyss, yyssp);
-    }
-
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
-  YYDPRINTF ((stderr, "Shifting error token, "));
-
-  *++yyvsp = yylval;
-
-
-  yystate = yyn;
-  goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here.  |
-`-------------------------------------*/
-yyacceptlab:
-  yyresult = 0;
-  goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here.  |
-`-----------------------------------*/
-yyabortlab:
-  yyresult = 1;
-  goto yyreturn;
-
-#ifndef yyoverflow
-/*----------------------------------------------.
-| yyoverflowlab -- parser overflow comes here.  |
-`----------------------------------------------*/
-yyoverflowlab:
-  yyerror ("parser stack overflow");
-  yyresult = 2;
-  /* Fall through.  */
-#endif
-
-yyreturn:
-#ifndef yyoverflow
-  if (yyss != yyssa)
-    YYSTACK_FREE (yyss);
-#endif
-  return yyresult;
-}
-
-
-
-
-
-void conf_parse(const char *name)
-{
-       struct symbol *sym;
-       int i;
-
-       zconf_initscan(name);
-
-       sym_init();
-       menu_init();
-       modules_sym = sym_lookup("MODULES", 0);
-       rootmenu.prompt = menu_add_prop(P_MENU, "axTLS Configuration", NULL, NULL);
-
-       //zconfdebug = 1;
-       zconfparse();
-       if (zconfnerrs)
-               exit(1);
-       menu_finalize(&rootmenu);
-       for_all_symbols(i, sym) {
-                if (!(sym->flags & SYMBOL_CHECKED) && sym_check_deps(sym))
-                        printf("\n");
-               else
-                       sym->flags |= SYMBOL_CHECK_DONE;
-        }
-
-       sym_change_count = 1;
-}
-
-const char *zconf_tokenname(int token)
-{
-       switch (token) {
-       case T_MENU:            return "menu";
-       case T_ENDMENU:         return "endmenu";
-       case T_CHOICE:          return "choice";
-       case T_ENDCHOICE:       return "endchoice";
-       case T_IF:              return "if";
-       case T_ENDIF:           return "endif";
-       }
-       return "<token>";
-}
-
-static bool zconf_endtoken(int token, int starttoken, int endtoken)
-{
-       if (token != endtoken) {
-               zconfprint("unexpected '%s' within %s block", zconf_tokenname(token), zconf_tokenname(starttoken));
-               zconfnerrs++;
-               return false;
-       }
-       if (current_menu->file != current_file) {
-               zconfprint("'%s' in different file than '%s'", zconf_tokenname(token), zconf_tokenname(starttoken));
-               zconfprint("location of the '%s'", zconf_tokenname(starttoken));
-               zconfnerrs++;
-               return false;
-       }
-       return true;
-}
-
-static void zconfprint(const char *err, ...)
-{
-       va_list ap;
-
-       fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno() + 1);
-       va_start(ap, err);
-       vfprintf(stderr, err, ap);
-       va_end(ap);
-       fprintf(stderr, "\n");
-}
-
-static void zconferror(const char *err)
-{
-       fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err);
-}
-
-void print_quoted_string(FILE *out, const char *str)
-{
-       const char *p;
-       int len;
-
-       putc('"', out);
-       while ((p = strchr(str, '"'))) {
-               len = p - str;
-               if (len)
-                       fprintf(out, "%.*s", len, str);
-               fputs("\\\"", out);
-               str = p + 1;
-       }
-       fputs(str, out);
-       putc('"', out);
-}
-
-void print_symbol(FILE *out, struct menu *menu)
-{
-       struct symbol *sym = menu->sym;
-       struct property *prop;
-
-       if (sym_is_choice(sym))
-               fprintf(out, "choice\n");
-       else
-               fprintf(out, "config %s\n", sym->name);
-       switch (sym->type) {
-       case S_BOOLEAN:
-               fputs("  boolean\n", out);
-               break;
-       case S_TRISTATE:
-               fputs("  tristate\n", out);
-               break;
-       case S_STRING:
-               fputs("  string\n", out);
-               break;
-       case S_INT:
-               fputs("  integer\n", out);
-               break;
-       case S_HEX:
-               fputs("  hex\n", out);
-               break;
-       default:
-               fputs("  ???\n", out);
-               break;
-       }
-       for (prop = sym->prop; prop; prop = prop->next) {
-               if (prop->menu != menu)
-                       continue;
-               switch (prop->type) {
-               case P_PROMPT:
-                       fputs("  prompt ", out);
-                       print_quoted_string(out, prop->text);
-                       if (!expr_is_yes(prop->visible.expr)) {
-                               fputs(" if ", out);
-                               expr_fprint(prop->visible.expr, out);
-                       }
-                       fputc('\n', out);
-                       break;
-               case P_DEFAULT:
-                       fputs( "  default ", out);
-                       expr_fprint(prop->expr, out);
-                       if (!expr_is_yes(prop->visible.expr)) {
-                               fputs(" if ", out);
-                               expr_fprint(prop->visible.expr, out);
-                       }
-                       fputc('\n', out);
-                       break;
-               case P_CHOICE:
-                       fputs("  #choice value\n", out);
-                       break;
-               default:
-                       fprintf(out, "  unknown prop %d!\n", prop->type);
-                       break;
-               }
-       }
-       if (sym->help) {
-               int len = strlen(sym->help);
-               while (sym->help[--len] == '\n')
-                       sym->help[len] = 0;
-               fprintf(out, "  help\n%s\n", sym->help);
-       }
-       fputc('\n', out);
-}
-
-void zconfdump(FILE *out)
-{
-       struct property *prop;
-       struct symbol *sym;
-       struct menu *menu;
-
-       menu = rootmenu.list;
-       while (menu) {
-               if ((sym = menu->sym))
-                       print_symbol(out, menu);
-               else if ((prop = menu->prompt)) {
-                       switch (prop->type) {
-                       case P_COMMENT:
-                               fputs("\ncomment ", out);
-                               print_quoted_string(out, prop->text);
-                               fputs("\n", out);
-                               break;
-                       case P_MENU:
-                               fputs("\nmenu ", out);
-                               print_quoted_string(out, prop->text);
-                               fputs("\n", out);
-                               break;
-                       default:
-                               ;
-                       }
-                       if (!expr_is_yes(prop->visible.expr)) {
-                               fputs("  depends ", out);
-                               expr_fprint(prop->visible.expr, out);
-                               fputc('\n', out);
-                       }
-                       fputs("\n", out);
-               }
-
-               if (menu->list)
-                       menu = menu->list;
-               else if (menu->next)
-                       menu = menu->next;
-               else while ((menu = menu->parent)) {
-                       if (menu->prompt && menu->prompt->type == P_MENU)
-                               fputs("\nendmenu\n", out);
-                       if (menu->next) {
-                               menu = menu->next;
-                               break;
-                       }
-               }
-       }
-}
-
-#include "lex.zconf.c"
-#include "util.c"
-#include "confdata.c"
-#include "expr.c"
-#include "symbol.c"
-#include "menu.c"
-
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/zconf.tab.h_shipped b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/zconf.tab.h_shipped
deleted file mode 100644 (file)
index 3b191ef..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/* A Bison parser, made from zconf.y, by GNU bison 1.75.  */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program 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 General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-#ifndef BISON_ZCONF_TAB_H
-# define BISON_ZCONF_TAB_H
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     T_MAINMENU = 258,
-     T_MENU = 259,
-     T_ENDMENU = 260,
-     T_SOURCE = 261,
-     T_CHOICE = 262,
-     T_ENDCHOICE = 263,
-     T_COMMENT = 264,
-     T_CONFIG = 265,
-     T_HELP = 266,
-     T_HELPTEXT = 267,
-     T_IF = 268,
-     T_ENDIF = 269,
-     T_DEPENDS = 270,
-     T_REQUIRES = 271,
-     T_OPTIONAL = 272,
-     T_PROMPT = 273,
-     T_DEFAULT = 274,
-     T_TRISTATE = 275,
-     T_BOOLEAN = 276,
-     T_INT = 277,
-     T_HEX = 278,
-     T_WORD = 279,
-     T_STRING = 280,
-     T_UNEQUAL = 281,
-     T_EOF = 282,
-     T_EOL = 283,
-     T_CLOSE_PAREN = 284,
-     T_OPEN_PAREN = 285,
-     T_ON = 286,
-     T_OR = 287,
-     T_AND = 288,
-     T_EQUAL = 289,
-     T_NOT = 290
-   };
-#endif
-#define T_MAINMENU 258
-#define T_MENU 259
-#define T_ENDMENU 260
-#define T_SOURCE 261
-#define T_CHOICE 262
-#define T_ENDCHOICE 263
-#define T_COMMENT 264
-#define T_CONFIG 265
-#define T_HELP 266
-#define T_HELPTEXT 267
-#define T_IF 268
-#define T_ENDIF 269
-#define T_DEPENDS 270
-#define T_REQUIRES 271
-#define T_OPTIONAL 272
-#define T_PROMPT 273
-#define T_DEFAULT 274
-#define T_TRISTATE 275
-#define T_BOOLEAN 276
-#define T_INT 277
-#define T_HEX 278
-#define T_WORD 279
-#define T_STRING 280
-#define T_UNEQUAL 281
-#define T_EOF 282
-#define T_EOL 283
-#define T_CLOSE_PAREN 284
-#define T_OPEN_PAREN 285
-#define T_ON 286
-#define T_OR 287
-#define T_AND 288
-#define T_EQUAL 289
-#define T_NOT 290
-
-
-
-
-#ifndef YYSTYPE
-#line 33 "zconf.y"
-typedef union {
-       int token;
-       char *string;
-       struct symbol *symbol;
-       struct expr *expr;
-       struct menu *menu;
-} yystype;
-/* Line 1281 of /usr/share/bison/yacc.c.  */
-#line 118 "zconf.tab.h"
-# define YYSTYPE yystype
-#endif
-
-extern YYSTYPE zconflval;
-
-
-#endif /* not BISON_ZCONF_TAB_H */
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/zconf.y b/package/luci/libs/luci-lib-nixio/axTLS/config/scripts/config/zconf.y
deleted file mode 100644 (file)
index cf45da0..0000000
+++ /dev/null
@@ -1,690 +0,0 @@
-%{
-/*
- * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-#include <ctype.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdbool.h>
-
-#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
-
-#define PRINTD         0x0001
-#define DEBUG_PARSE    0x0002
-
-int cdebug = PRINTD;
-
-extern int zconflex(void);
-static void zconfprint(const char *err, ...);
-static void zconferror(const char *err);
-static bool zconf_endtoken(int token, int starttoken, int endtoken);
-
-struct symbol *symbol_hash[257];
-
-static struct menu *current_menu, *current_entry;
-
-#define YYERROR_VERBOSE
-%}
-%expect 40
-
-%union
-{
-       int token;
-       char *string;
-       struct symbol *symbol;
-       struct expr *expr;
-       struct menu *menu;
-}
-
-%token T_MAINMENU
-%token T_MENU
-%token T_ENDMENU
-%token T_SOURCE
-%token T_CHOICE
-%token T_ENDCHOICE
-%token T_COMMENT
-%token T_CONFIG
-%token T_MENUCONFIG
-%token T_HELP
-%token <string> T_HELPTEXT
-%token T_IF
-%token T_ENDIF
-%token T_DEPENDS
-%token T_REQUIRES
-%token T_OPTIONAL
-%token T_PROMPT
-%token T_DEFAULT
-%token T_TRISTATE
-%token T_DEF_TRISTATE
-%token T_BOOLEAN
-%token T_DEF_BOOLEAN
-%token T_STRING
-%token T_INT
-%token T_HEX
-%token <string> T_WORD
-%token <string> T_WORD_QUOTE
-%token T_UNEQUAL
-%token T_EOF
-%token T_EOL
-%token T_CLOSE_PAREN
-%token T_OPEN_PAREN
-%token T_ON
-%token T_SELECT
-%token T_RANGE
-
-%left T_OR
-%left T_AND
-%left T_EQUAL T_UNEQUAL
-%nonassoc T_NOT
-
-%type <string> prompt
-%type <string> source
-%type <symbol> symbol
-%type <expr> expr
-%type <expr> if_expr
-%type <token> end
-
-%{
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-%}
-%%
-input:   /* empty */
-       | input block
-;
-
-block:   common_block
-       | choice_stmt
-       | menu_stmt
-       | T_MAINMENU prompt nl_or_eof
-       | T_ENDMENU             { zconfprint("unexpected 'endmenu' statement"); }
-       | T_ENDIF               { zconfprint("unexpected 'endif' statement"); }
-       | T_ENDCHOICE           { zconfprint("unexpected 'endchoice' statement"); }
-       | error nl_or_eof       { zconfprint("syntax error"); yyerrok; }
-;
-
-common_block:
-         if_stmt
-       | comment_stmt
-       | config_stmt
-       | menuconfig_stmt
-       | source_stmt
-       | nl_or_eof
-;
-
-
-/* config/menuconfig entry */
-
-config_entry_start: T_CONFIG T_WORD T_EOL
-{
-       struct symbol *sym = sym_lookup($2, 0);
-       sym->flags |= SYMBOL_OPTIONAL;
-       menu_add_entry(sym);
-       printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), $2);
-};
-
-config_stmt: config_entry_start config_option_list
-{
-       menu_end_entry();
-       printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
-};
-
-menuconfig_entry_start: T_MENUCONFIG T_WORD T_EOL
-{
-       struct symbol *sym = sym_lookup($2, 0);
-       sym->flags |= SYMBOL_OPTIONAL;
-       menu_add_entry(sym);
-       printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), $2);
-};
-
-menuconfig_stmt: menuconfig_entry_start config_option_list
-{
-       if (current_entry->prompt)
-               current_entry->prompt->type = P_MENU;
-       else
-               zconfprint("warning: menuconfig statement without prompt");
-       menu_end_entry();
-       printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
-};
-
-config_option_list:
-         /* empty */
-       | config_option_list config_option
-       | config_option_list depends
-       | config_option_list help
-       | config_option_list T_EOL
-;
-
-config_option: T_TRISTATE prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_TRISTATE);
-       printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_DEF_TRISTATE expr if_expr T_EOL
-{
-       menu_add_expr(P_DEFAULT, $2, $3);
-       menu_set_type(S_TRISTATE);
-       printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_BOOLEAN prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_BOOLEAN);
-       printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_DEF_BOOLEAN expr if_expr T_EOL
-{
-       menu_add_expr(P_DEFAULT, $2, $3);
-       menu_set_type(S_BOOLEAN);
-       printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_INT prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_INT);
-       printd(DEBUG_PARSE, "%s:%d:int\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_HEX prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_HEX);
-       printd(DEBUG_PARSE, "%s:%d:hex\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_STRING prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_STRING);
-       printd(DEBUG_PARSE, "%s:%d:string\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_PROMPT prompt if_expr T_EOL
-{
-       menu_add_prompt(P_PROMPT, $2, $3);
-       printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_DEFAULT expr if_expr T_EOL
-{
-       menu_add_expr(P_DEFAULT, $2, $3);
-       printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_SELECT T_WORD if_expr T_EOL
-{
-       menu_add_symbol(P_SELECT, sym_lookup($2, 0), $3);
-       printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_RANGE symbol symbol if_expr T_EOL
-{
-       menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,$2, $3), $4);
-       printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());
-};
-
-/* choice entry */
-
-choice: T_CHOICE T_EOL
-{
-       struct symbol *sym = sym_lookup(NULL, 0);
-       sym->flags |= SYMBOL_CHOICE;
-       menu_add_entry(sym);
-       menu_add_expr(P_CHOICE, NULL, NULL);
-       printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
-};
-
-choice_entry: choice choice_option_list
-{
-       menu_end_entry();
-       menu_add_menu();
-};
-
-choice_end: end
-{
-       if (zconf_endtoken($1, T_CHOICE, T_ENDCHOICE)) {
-               menu_end_menu();
-               printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno());
-       }
-};
-
-choice_stmt:
-         choice_entry choice_block choice_end
-       | choice_entry choice_block
-{
-       printf("%s:%d: missing 'endchoice' for this 'choice' statement\n", current_menu->file->name, current_menu->lineno);
-       zconfnerrs++;
-};
-
-choice_option_list:
-         /* empty */
-       | choice_option_list choice_option
-       | choice_option_list depends
-       | choice_option_list help
-       | choice_option_list T_EOL
-;
-
-choice_option: T_PROMPT prompt if_expr T_EOL
-{
-       menu_add_prompt(P_PROMPT, $2, $3);
-       printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
-};
-
-choice_option: T_TRISTATE prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_TRISTATE);
-       printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno());
-};
-
-choice_option: T_BOOLEAN prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_BOOLEAN);
-       printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno());
-};
-
-choice_option: T_OPTIONAL T_EOL
-{
-       current_entry->sym->flags |= SYMBOL_OPTIONAL;
-       printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno());
-};
-
-choice_option: T_DEFAULT T_WORD if_expr T_EOL
-{
-       menu_add_symbol(P_DEFAULT, sym_lookup($2, 0), $3);
-       printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
-};
-
-choice_block:
-         /* empty */
-       | choice_block common_block
-;
-
-/* if entry */
-
-if: T_IF expr T_EOL
-{
-       printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
-       menu_add_entry(NULL);
-       menu_add_dep($2);
-       menu_end_entry();
-       menu_add_menu();
-};
-
-if_end: end
-{
-       if (zconf_endtoken($1, T_IF, T_ENDIF)) {
-               menu_end_menu();
-               printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno());
-       }
-};
-
-if_stmt:
-         if if_block if_end
-       | if if_block
-{
-       printf("%s:%d: missing 'endif' for this 'if' statement\n", current_menu->file->name, current_menu->lineno);
-       zconfnerrs++;
-};
-
-if_block:
-         /* empty */
-       | if_block common_block
-       | if_block menu_stmt
-       | if_block choice_stmt
-;
-
-/* menu entry */
-
-menu: T_MENU prompt T_EOL
-{
-       menu_add_entry(NULL);
-       menu_add_prop(P_MENU, $2, NULL, NULL);
-       printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
-};
-
-menu_entry: menu depends_list
-{
-       menu_end_entry();
-       menu_add_menu();
-};
-
-menu_end: end
-{
-       if (zconf_endtoken($1, T_MENU, T_ENDMENU)) {
-               menu_end_menu();
-               printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno());
-       }
-};
-
-menu_stmt:
-         menu_entry menu_block menu_end
-       | menu_entry menu_block
-{
-       printf("%s:%d: missing 'endmenu' for this 'menu' statement\n", current_menu->file->name, current_menu->lineno);
-       zconfnerrs++;
-};
-
-menu_block:
-         /* empty */
-       | menu_block common_block
-       | menu_block menu_stmt
-       | menu_block choice_stmt
-       | menu_block error T_EOL                { zconfprint("invalid menu option"); yyerrok; }
-;
-
-source: T_SOURCE prompt T_EOL
-{
-       $$ = $2;
-       printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), $2);
-};
-
-source_stmt: source
-{
-       zconf_nextfile($1);
-};
-
-/* comment entry */
-
-comment: T_COMMENT prompt T_EOL
-{
-       menu_add_entry(NULL);
-       menu_add_prop(P_COMMENT, $2, NULL, NULL);
-       printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());
-};
-
-comment_stmt: comment depends_list
-{
-       menu_end_entry();
-};
-
-/* help option */
-
-help_start: T_HELP T_EOL
-{
-       printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
-       zconf_starthelp();
-};
-
-help: help_start T_HELPTEXT
-{
-       current_entry->sym->help = $2;
-};
-
-/* depends option */
-
-depends_list:    /* empty */
-               | depends_list depends
-               | depends_list T_EOL
-;
-
-depends: T_DEPENDS T_ON expr T_EOL
-{
-       menu_add_dep($3);
-       printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
-}
-       | T_DEPENDS expr T_EOL
-{
-       menu_add_dep($2);
-       printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno());
-}
-       | T_REQUIRES expr T_EOL
-{
-       menu_add_dep($2);
-       printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno());
-};
-
-/* prompt statement */
-
-prompt_stmt_opt:
-         /* empty */
-       | prompt if_expr
-{
-       menu_add_prop(P_PROMPT, $1, NULL, $2);
-};
-
-prompt:          T_WORD
-       | T_WORD_QUOTE
-;
-
-end:     T_ENDMENU nl_or_eof   { $$ = T_ENDMENU; }
-       | T_ENDCHOICE nl_or_eof { $$ = T_ENDCHOICE; }
-       | T_ENDIF nl_or_eof     { $$ = T_ENDIF; }
-;
-
-nl_or_eof:
-       T_EOL | T_EOF;
-
-if_expr:  /* empty */                  { $$ = NULL; }
-       | T_IF expr                     { $$ = $2; }
-;
-
-expr:    symbol                                { $$ = expr_alloc_symbol($1); }
-       | symbol T_EQUAL symbol                 { $$ = expr_alloc_comp(E_EQUAL, $1, $3); }
-       | symbol T_UNEQUAL symbol               { $$ = expr_alloc_comp(E_UNEQUAL, $1, $3); }
-       | T_OPEN_PAREN expr T_CLOSE_PAREN       { $$ = $2; }
-       | T_NOT expr                            { $$ = expr_alloc_one(E_NOT, $2); }
-       | expr T_OR expr                        { $$ = expr_alloc_two(E_OR, $1, $3); }
-       | expr T_AND expr                       { $$ = expr_alloc_two(E_AND, $1, $3); }
-;
-
-symbol:          T_WORD        { $$ = sym_lookup($1, 0); free($1); }
-       | T_WORD_QUOTE  { $$ = sym_lookup($1, 1); free($1); }
-;
-
-%%
-
-void conf_parse(const char *name)
-{
-       struct symbol *sym;
-       int i;
-
-       zconf_initscan(name);
-
-       sym_init();
-       menu_init();
-       modules_sym = sym_lookup("MODULES", 0);
-       rootmenu.prompt = menu_add_prop(P_MENU, "axTLS Configuration", NULL, NULL);
-
-       //zconfdebug = 1;
-       zconfparse();
-       if (zconfnerrs)
-               exit(1);
-       menu_finalize(&rootmenu);
-       for_all_symbols(i, sym) {
-                if (!(sym->flags & SYMBOL_CHECKED) && sym_check_deps(sym))
-                        printf("\n");
-               else
-                       sym->flags |= SYMBOL_CHECK_DONE;
-        }
-
-       sym_change_count = 1;
-}
-
-const char *zconf_tokenname(int token)
-{
-       switch (token) {
-       case T_MENU:            return "menu";
-       case T_ENDMENU:         return "endmenu";
-       case T_CHOICE:          return "choice";
-       case T_ENDCHOICE:       return "endchoice";
-       case T_IF:              return "if";
-       case T_ENDIF:           return "endif";
-       }
-       return "<token>";
-}
-
-static bool zconf_endtoken(int token, int starttoken, int endtoken)
-{
-       if (token != endtoken) {
-               zconfprint("unexpected '%s' within %s block", zconf_tokenname(token), zconf_tokenname(starttoken));
-               zconfnerrs++;
-               return false;
-       }
-       if (current_menu->file != current_file) {
-               zconfprint("'%s' in different file than '%s'", zconf_tokenname(token), zconf_tokenname(starttoken));
-               zconfprint("location of the '%s'", zconf_tokenname(starttoken));
-               zconfnerrs++;
-               return false;
-       }
-       return true;
-}
-
-static void zconfprint(const char *err, ...)
-{
-       va_list ap;
-
-       fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno() + 1);
-       va_start(ap, err);
-       vfprintf(stderr, err, ap);
-       va_end(ap);
-       fprintf(stderr, "\n");
-}
-
-static void zconferror(const char *err)
-{
-       fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err);
-}
-
-void print_quoted_string(FILE *out, const char *str)
-{
-       const char *p;
-       int len;
-
-       putc('"', out);
-       while ((p = strchr(str, '"'))) {
-               len = p - str;
-               if (len)
-                       fprintf(out, "%.*s", len, str);
-               fputs("\\\"", out);
-               str = p + 1;
-       }
-       fputs(str, out);
-       putc('"', out);
-}
-
-void print_symbol(FILE *out, struct menu *menu)
-{
-       struct symbol *sym = menu->sym;
-       struct property *prop;
-
-       if (sym_is_choice(sym))
-               fprintf(out, "choice\n");
-       else
-               fprintf(out, "config %s\n", sym->name);
-       switch (sym->type) {
-       case S_BOOLEAN:
-               fputs("  boolean\n", out);
-               break;
-       case S_TRISTATE:
-               fputs("  tristate\n", out);
-               break;
-       case S_STRING:
-               fputs("  string\n", out);
-               break;
-       case S_INT:
-               fputs("  integer\n", out);
-               break;
-       case S_HEX:
-               fputs("  hex\n", out);
-               break;
-       default:
-               fputs("  ???\n", out);
-               break;
-       }
-       for (prop = sym->prop; prop; prop = prop->next) {
-               if (prop->menu != menu)
-                       continue;
-               switch (prop->type) {
-               case P_PROMPT:
-                       fputs("  prompt ", out);
-                       print_quoted_string(out, prop->text);
-                       if (!expr_is_yes(prop->visible.expr)) {
-                               fputs(" if ", out);
-                               expr_fprint(prop->visible.expr, out);
-                       }
-                       fputc('\n', out);
-                       break;
-               case P_DEFAULT:
-                       fputs( "  default ", out);
-                       expr_fprint(prop->expr, out);
-                       if (!expr_is_yes(prop->visible.expr)) {
-                               fputs(" if ", out);
-                               expr_fprint(prop->visible.expr, out);
-                       }
-                       fputc('\n', out);
-                       break;
-               case P_CHOICE:
-                       fputs("  #choice value\n", out);
-                       break;
-               default:
-                       fprintf(out, "  unknown prop %d!\n", prop->type);
-                       break;
-               }
-       }
-       if (sym->help) {
-               int len = strlen(sym->help);
-               while (sym->help[--len] == '\n')
-                       sym->help[len] = 0;
-               fprintf(out, "  help\n%s\n", sym->help);
-       }
-       fputc('\n', out);
-}
-
-void zconfdump(FILE *out)
-{
-       struct property *prop;
-       struct symbol *sym;
-       struct menu *menu;
-
-       menu = rootmenu.list;
-       while (menu) {
-               if ((sym = menu->sym))
-                       print_symbol(out, menu);
-               else if ((prop = menu->prompt)) {
-                       switch (prop->type) {
-                       case P_COMMENT:
-                               fputs("\ncomment ", out);
-                               print_quoted_string(out, prop->text);
-                               fputs("\n", out);
-                               break;
-                       case P_MENU:
-                               fputs("\nmenu ", out);
-                               print_quoted_string(out, prop->text);
-                               fputs("\n", out);
-                               break;
-                       default:
-                               ;
-                       }
-                       if (!expr_is_yes(prop->visible.expr)) {
-                               fputs("  depends ", out);
-                               expr_fprint(prop->visible.expr, out);
-                               fputc('\n', out);
-                       }
-                       fputs("\n", out);
-               }
-
-               if (menu->list)
-                       menu = menu->list;
-               else if (menu->next)
-                       menu = menu->next;
-               else while ((menu = menu->parent)) {
-                       if (menu->prompt && menu->prompt->type == P_MENU)
-                               fputs("\nendmenu\n", out);
-                       if (menu->next) {
-                               menu = menu->next;
-                               break;
-                       }
-               }
-       }
-}
-
-#include "lex.zconf.c"
-#include "util.c"
-#include "confdata.c"
-#include "expr.c"
-#include "symbol.c"
-#include "menu.c"
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/config/win32config b/package/luci/libs/luci-lib-nixio/axTLS/config/win32config
deleted file mode 100644 (file)
index 6c8d607..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-HAVE_DOT_CONFIG=y
-# CONFIG_PLATFORM_LINUX is not set
-# CONFIG_PLATFORM_CYGWIN is not set
-# CONFIG_PLATFORM_SOLARIS is not set
-CONFIG_PLATFORM_WIN32=y
-
-#
-# General Configuration
-#
-PREFIX=""
-# CONFIG_DEBUG is not set
-# CONFIG_STRIP_UNWANTED_SECTIONS is not set
-
-#
-# Microsoft Compiler Options
-#
-# CONFIG_VISUAL_STUDIO_7_0 is not set
-CONFIG_VISUAL_STUDIO_8_0=y
-CONFIG_VISUAL_STUDIO_7_0_BASE=""
-CONFIG_VISUAL_STUDIO_8_0_BASE="c:\\Program Files\\Microsoft Visual Studio 8"
-CONFIG_EXTRA_CFLAGS_OPTIONS=""
-CONFIG_EXTRA_LDFLAGS_OPTIONS=""
-
-#
-# SSL Library
-#
-# CONFIG_SSL_SERVER_ONLY is not set
-# CONFIG_SSL_CERT_VERIFICATION is not set
-# CONFIG_SSL_ENABLE_CLIENT is not set
-CONFIG_SSL_FULL_MODE=y
-# CONFIG_SSL_SKELETON_MODE is not set
-# CONFIG_SSL_PROT_LOW is not set
-CONFIG_SSL_PROT_MEDIUM=y
-# CONFIG_SSL_PROT_HIGH is not set
-CONFIG_SSL_USE_DEFAULT_KEY=y
-CONFIG_SSL_PRIVATE_KEY_LOCATION=""
-CONFIG_SSL_PRIVATE_KEY_PASSWORD=""
-CONFIG_SSL_X509_CERT_LOCATION=""
-CONFIG_SSL_GENERATE_X509_CERT=y
-CONFIG_SSL_X509_COMMON_NAME=""
-CONFIG_SSL_X509_ORGANIZATION_NAME=""
-CONFIG_SSL_X509_ORGANIZATION_UNIT_NAME=""
-CONFIG_SSL_ENABLE_V23_HANDSHAKE=y
-CONFIG_SSL_HAS_PEM=y
-CONFIG_SSL_USE_PKCS12=y
-CONFIG_SSL_EXPIRY_TIME=24
-CONFIG_X509_MAX_CA_CERTS=4
-CONFIG_SSL_MAX_CERTS=2
-# CONFIG_SSL_CTX_MUTEXING is not set
-# CONFIG_USE_DEV_URANDOM is not set
-CONFIG_WIN32_USE_CRYPTO_LIB=y
-# CONFIG_OPENSSL_COMPATIBLE is not set
-# CONFIG_PERFORMANCE_TESTING is not set
-# CONFIG_SSL_TEST is not set
-CONFIG_AXHTTPD=y
-
-#
-# Axhttpd Configuration
-#
-# CONFIG_HTTP_STATIC_BUILD is not set
-CONFIG_HTTP_PORT=80
-CONFIG_HTTP_HTTPS_PORT=443
-CONFIG_HTTP_SESSION_CACHE_SIZE=5
-CONFIG_HTTP_WEBROOT="www"
-CONFIG_HTTP_TIMEOUT=300
-# CONFIG_HTTP_HAS_CGI is not set
-CONFIG_HTTP_CGI_EXTENSIONS=""
-# CONFIG_HTTP_ENABLE_LUA is not set
-CONFIG_HTTP_LUA_PREFIX=""
-CONFIG_HTTP_LUA_CGI_LAUNCHER=""
-# CONFIG_HTTP_BUILD_LUA is not set
-CONFIG_HTTP_DIRECTORIES=y
-CONFIG_HTTP_HAS_AUTHORIZATION=y
-# CONFIG_HTTP_HAS_IPV6 is not set
-CONFIG_HTTP_VERBOSE=y
-# CONFIG_HTTP_IS_DAEMON is not set
-
-#
-# Language Bindings
-#
-# CONFIG_BINDINGS is not set
-# CONFIG_CSHARP_BINDINGS is not set
-# CONFIG_VBNET_BINDINGS is not set
-CONFIG_DOT_NET_FRAMEWORK_BASE=""
-# CONFIG_JAVA_BINDINGS is not set
-CONFIG_JAVA_HOME=""
-# CONFIG_PERL_BINDINGS is not set
-CONFIG_PERL_CORE=""
-CONFIG_PERL_LIB=""
-# CONFIG_LUA_BINDINGS is not set
-CONFIG_LUA_CORE=""
-
-#
-# Samples
-#
-CONFIG_SAMPLES=y
-CONFIG_C_SAMPLES=y
-# CONFIG_CSHARP_SAMPLES is not set
-# CONFIG_VBNET_SAMPLES is not set
-# CONFIG_JAVA_SAMPLES is not set
-# CONFIG_PERL_SAMPLES is not set
-# CONFIG_LUA_SAMPLES is not set
-
-#
-# BigInt Options
-#
-# CONFIG_BIGINT_CLASSICAL is not set
-# CONFIG_BIGINT_MONTGOMERY is not set
-CONFIG_BIGINT_BARRETT=y
-CONFIG_BIGINT_CRT=y
-# CONFIG_BIGINT_KARATSUBA is not set
-MUL_KARATSUBA_THRESH=0
-SQU_KARATSUBA_THRESH=0
-CONFIG_BIGINT_SLIDING_WINDOW=y
-CONFIG_BIGINT_SQUARE=y
-# CONFIG_BIGINT_CHECK_ON is not set
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/crypto/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/crypto/Makefile
deleted file mode 100644 (file)
index 3ea8bdd..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-include ../config/.config
-include ../config/makefile.conf
-
-AXTLS_HOME=..
-
-OBJ=\
-       aes.o \
-       bigint.o \
-       crypto_misc.o \
-       hmac.o \
-       md2.o \
-       md5.o \
-       rc4.o \
-       rsa.o \
-       sha1.o
-
-include ../config/makefile.post
-
-all: $(OBJ)
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/crypto/aes.c b/package/luci/libs/luci-lib-nixio/axTLS/crypto/aes.c
deleted file mode 100644 (file)
index 038a45b..0000000
+++ /dev/null
@@ -1,456 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * AES implementation - this is a small code version. There are much faster
- * versions around but they are much larger in size (i.e. they use large 
- * submix tables).
- */
-
-#include <string.h>
-#include "crypto.h"
-
-/* all commented out in skeleton mode */
-#ifndef CONFIG_SSL_SKELETON_MODE
-
-#define rot1(x) (((x) << 24) | ((x) >> 8))
-#define rot2(x) (((x) << 16) | ((x) >> 16))
-#define rot3(x) (((x) <<  8) | ((x) >> 24))
-
-/* 
- * This cute trick does 4 'mul by two' at once.  Stolen from
- * Dr B. R. Gladman <brg@gladman.uk.net> but I'm sure the u-(u>>7) is
- * a standard graphics trick
- * The key to this is that we need to xor with 0x1b if the top bit is set.
- * a 1xxx xxxx   0xxx 0xxx First we mask the 7bit,
- * b 1000 0000   0000 0000 then we shift right by 7 putting the 7bit in 0bit,
- * c 0000 0001   0000 0000 we then subtract (c) from (b)
- * d 0111 1111   0000 0000 and now we and with our mask
- * e 0001 1011   0000 0000
- */
-#define mt  0x80808080
-#define ml  0x7f7f7f7f
-#define mh  0xfefefefe
-#define mm  0x1b1b1b1b
-#define mul2(x,t)      ((t)=((x)&mt), \
-                       ((((x)+(x))&mh)^(((t)-((t)>>7))&mm)))
-
-#define inv_mix_col(x,f2,f4,f8,f9) (\
-                       (f2)=mul2(x,f2), \
-                       (f4)=mul2(f2,f4), \
-                       (f8)=mul2(f4,f8), \
-                       (f9)=(x)^(f8), \
-                       (f8)=((f2)^(f4)^(f8)), \
-                       (f2)^=(f9), \
-                       (f4)^=(f9), \
-                       (f8)^=rot3(f2), \
-                       (f8)^=rot2(f4), \
-                       (f8)^rot1(f9))
-
-/*
- * AES S-box
- */
-static const uint8_t aes_sbox[256] =
-{
-       0x63,0x7C,0x77,0x7B,0xF2,0x6B,0x6F,0xC5,
-       0x30,0x01,0x67,0x2B,0xFE,0xD7,0xAB,0x76,
-       0xCA,0x82,0xC9,0x7D,0xFA,0x59,0x47,0xF0,
-       0xAD,0xD4,0xA2,0xAF,0x9C,0xA4,0x72,0xC0,
-       0xB7,0xFD,0x93,0x26,0x36,0x3F,0xF7,0xCC,
-       0x34,0xA5,0xE5,0xF1,0x71,0xD8,0x31,0x15,
-       0x04,0xC7,0x23,0xC3,0x18,0x96,0x05,0x9A,
-       0x07,0x12,0x80,0xE2,0xEB,0x27,0xB2,0x75,
-       0x09,0x83,0x2C,0x1A,0x1B,0x6E,0x5A,0xA0,
-       0x52,0x3B,0xD6,0xB3,0x29,0xE3,0x2F,0x84,
-       0x53,0xD1,0x00,0xED,0x20,0xFC,0xB1,0x5B,
-       0x6A,0xCB,0xBE,0x39,0x4A,0x4C,0x58,0xCF,
-       0xD0,0xEF,0xAA,0xFB,0x43,0x4D,0x33,0x85,
-       0x45,0xF9,0x02,0x7F,0x50,0x3C,0x9F,0xA8,
-       0x51,0xA3,0x40,0x8F,0x92,0x9D,0x38,0xF5,
-       0xBC,0xB6,0xDA,0x21,0x10,0xFF,0xF3,0xD2,
-       0xCD,0x0C,0x13,0xEC,0x5F,0x97,0x44,0x17,
-       0xC4,0xA7,0x7E,0x3D,0x64,0x5D,0x19,0x73,
-       0x60,0x81,0x4F,0xDC,0x22,0x2A,0x90,0x88,
-       0x46,0xEE,0xB8,0x14,0xDE,0x5E,0x0B,0xDB,
-       0xE0,0x32,0x3A,0x0A,0x49,0x06,0x24,0x5C,
-       0xC2,0xD3,0xAC,0x62,0x91,0x95,0xE4,0x79,
-       0xE7,0xC8,0x37,0x6D,0x8D,0xD5,0x4E,0xA9,
-       0x6C,0x56,0xF4,0xEA,0x65,0x7A,0xAE,0x08,
-       0xBA,0x78,0x25,0x2E,0x1C,0xA6,0xB4,0xC6,
-       0xE8,0xDD,0x74,0x1F,0x4B,0xBD,0x8B,0x8A,
-       0x70,0x3E,0xB5,0x66,0x48,0x03,0xF6,0x0E,
-       0x61,0x35,0x57,0xB9,0x86,0xC1,0x1D,0x9E,
-       0xE1,0xF8,0x98,0x11,0x69,0xD9,0x8E,0x94,
-       0x9B,0x1E,0x87,0xE9,0xCE,0x55,0x28,0xDF,
-       0x8C,0xA1,0x89,0x0D,0xBF,0xE6,0x42,0x68,
-       0x41,0x99,0x2D,0x0F,0xB0,0x54,0xBB,0x16,
-};
-
-/*
- * AES is-box
- */
-static const uint8_t aes_isbox[256] = 
-{
-    0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38,
-    0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb,
-    0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87,
-    0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb,
-    0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d,
-    0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e,
-    0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2,
-    0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25,
-    0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16,
-    0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92,
-    0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda,
-    0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84,
-    0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a,
-    0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06,
-    0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02,
-    0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b,
-    0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea,
-    0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73,
-    0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85,
-    0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e,
-    0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89,
-    0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b,
-    0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20,
-    0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4,
-    0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31,
-    0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f,
-    0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d,
-    0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef,
-    0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0,
-    0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61,
-    0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26,
-    0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
-};
-
-static const unsigned char Rcon[30]=
-{
-       0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
-       0x1b,0x36,0x6c,0xd8,0xab,0x4d,0x9a,0x2f,
-       0x5e,0xbc,0x63,0xc6,0x97,0x35,0x6a,0xd4,
-       0xb3,0x7d,0xfa,0xef,0xc5,0x91,
-};
-
-/* ----- static functions ----- */
-static void AES_encrypt(const AES_CTX *ctx, uint32_t *data);
-static void AES_decrypt(const AES_CTX *ctx, uint32_t *data);
-
-/* Perform doubling in Galois Field GF(2^8) using the irreducible polynomial
-   x^8+x^4+x^3+x+1 */
-static unsigned char AES_xtime(uint32_t x)
-{
-       return x = (x&0x80) ? (x<<1)^0x1b : x<<1;
-}
-
-/**
- * Set up AES with the key/iv and cipher size.
- */
-void AES_set_key(AES_CTX *ctx, const uint8_t *key, 
-        const uint8_t *iv, AES_MODE mode)
-{
-    int i, ii;
-    uint32_t *W, tmp, tmp2;
-    const unsigned char *ip;
-    int words;
-
-    switch (mode)
-    {
-        case AES_MODE_128:
-            i = 10;
-            words = 4;
-            break;
-
-        case AES_MODE_256:
-            i = 14;
-            words = 8;
-            break;
-
-        default:        /* fail silently */
-            return;
-    }
-
-    ctx->rounds = i;
-    ctx->key_size = words;
-    W = ctx->ks;
-    for (i = 0; i < words; i+=2)
-    {
-        W[i+0]=        ((uint32_t)key[ 0]<<24)|
-            ((uint32_t)key[ 1]<<16)|
-            ((uint32_t)key[ 2]<< 8)|
-            ((uint32_t)key[ 3]    );
-        W[i+1]=        ((uint32_t)key[ 4]<<24)|
-            ((uint32_t)key[ 5]<<16)|
-            ((uint32_t)key[ 6]<< 8)|
-            ((uint32_t)key[ 7]    );
-        key += 8;
-    }
-
-    ip = Rcon;
-    ii = 4 * (ctx->rounds+1);
-    for (i = words; i<ii; i++)
-    {
-        tmp = W[i-1];
-
-        if ((i % words) == 0)
-        {
-            tmp2 =(uint32_t)aes_sbox[(tmp    )&0xff]<< 8;
-            tmp2|=(uint32_t)aes_sbox[(tmp>> 8)&0xff]<<16;
-            tmp2|=(uint32_t)aes_sbox[(tmp>>16)&0xff]<<24;
-            tmp2|=(uint32_t)aes_sbox[(tmp>>24)     ];
-            tmp=tmp2^(((unsigned int)*ip)<<24);
-            ip++;
-        }
-
-        if ((words == 8) && ((i % words) == 4))
-        {
-            tmp2 =(uint32_t)aes_sbox[(tmp    )&0xff]    ;
-            tmp2|=(uint32_t)aes_sbox[(tmp>> 8)&0xff]<< 8;
-            tmp2|=(uint32_t)aes_sbox[(tmp>>16)&0xff]<<16;
-            tmp2|=(uint32_t)aes_sbox[(tmp>>24)     ]<<24;
-            tmp=tmp2;
-        }
-
-        W[i]=W[i-words]^tmp;
-    }
-
-    /* copy the iv across */
-    memcpy(ctx->iv, iv, 16);
-}
-
-/**
- * Change a key for decryption.
- */
-void AES_convert_key(AES_CTX *ctx)
-{
-    int i;
-    uint32_t *k,w,t1,t2,t3,t4;
-
-    k = ctx->ks;
-    k += 4;
-
-    for (i= ctx->rounds*4; i > 4; i--)
-    {
-        w= *k;
-        w = inv_mix_col(w,t1,t2,t3,t4);
-        *k++ =w;
-    }
-}
-
-/**
- * Encrypt a byte sequence (with a block size 16) using the AES cipher.
- */
-void AES_cbc_encrypt(AES_CTX *ctx, const uint8_t *msg, uint8_t *out, int length)
-{
-    int i;
-    uint32_t tin[4], tout[4], iv[4];
-
-    memcpy(iv, ctx->iv, AES_IV_SIZE);
-    for (i = 0; i < 4; i++)
-        tout[i] = ntohl(iv[i]);
-
-    for (length -= AES_BLOCKSIZE; length >= 0; length -= AES_BLOCKSIZE)
-    {
-        uint32_t msg_32[4];
-        uint32_t out_32[4];
-        memcpy(msg_32, msg, AES_BLOCKSIZE);
-        msg += AES_BLOCKSIZE;
-
-        for (i = 0; i < 4; i++)
-            tin[i] = ntohl(msg_32[i])^tout[i];
-
-        AES_encrypt(ctx, tin);
-
-        for (i = 0; i < 4; i++)
-        {
-            tout[i] = tin[i]; 
-            out_32[i] = htonl(tout[i]);
-        }
-
-        memcpy(out, out_32, AES_BLOCKSIZE);
-        out += AES_BLOCKSIZE;
-    }
-
-    for (i = 0; i < 4; i++)
-        iv[i] = htonl(tout[i]);
-    memcpy(ctx->iv, iv, AES_IV_SIZE);
-}
-
-/**
- * Decrypt a byte sequence (with a block size 16) using the AES cipher.
- */
-void AES_cbc_decrypt(AES_CTX *ctx, const uint8_t *msg, uint8_t *out, int length)
-{
-    int i;
-    uint32_t tin[4], xor[4], tout[4], data[4], iv[4];
-
-    memcpy(iv, ctx->iv, AES_IV_SIZE);
-    for (i = 0; i < 4; i++)
-        xor[i] = ntohl(iv[i]);
-
-    for (length -= 16; length >= 0; length -= 16)
-    {
-        uint32_t msg_32[4];
-        uint32_t out_32[4];
-        memcpy(msg_32, msg, AES_BLOCKSIZE);
-        msg += AES_BLOCKSIZE;
-
-        for (i = 0; i < 4; i++)
-        {
-            tin[i] = ntohl(msg_32[i]);
-            data[i] = tin[i];
-        }
-
-        AES_decrypt(ctx, data);
-
-        for (i = 0; i < 4; i++)
-        {
-            tout[i] = data[i]^xor[i];
-            xor[i] = tin[i];
-            out_32[i] = htonl(tout[i]);
-        }
-
-        memcpy(out, out_32, AES_BLOCKSIZE);
-        out += AES_BLOCKSIZE;
-    }
-
-    for (i = 0; i < 4; i++)
-        iv[i] = htonl(xor[i]);
-    memcpy(ctx->iv, iv, AES_IV_SIZE);
-}
-
-/**
- * Encrypt a single block (16 bytes) of data
- */
-static void AES_encrypt(const AES_CTX *ctx, uint32_t *data)
-{
-    /* To make this code smaller, generate the sbox entries on the fly.
-     * This will have a really heavy effect upon performance.
-     */
-    uint32_t tmp[4];
-    uint32_t tmp1, old_a0, a0, a1, a2, a3, row;
-    int curr_rnd;
-    int rounds = ctx->rounds; 
-    const uint32_t *k = ctx->ks;
-
-    /* Pre-round key addition */
-    for (row = 0; row < 4; row++)
-        data[row] ^= *(k++);
-
-    /* Encrypt one block. */
-    for (curr_rnd = 0; curr_rnd < rounds; curr_rnd++)
-    {
-        /* Perform ByteSub and ShiftRow operations together */
-        for (row = 0; row < 4; row++)
-        {
-            a0 = (uint32_t)aes_sbox[(data[row%4]>>24)&0xFF];
-            a1 = (uint32_t)aes_sbox[(data[(row+1)%4]>>16)&0xFF];
-            a2 = (uint32_t)aes_sbox[(data[(row+2)%4]>>8)&0xFF]; 
-            a3 = (uint32_t)aes_sbox[(data[(row+3)%4])&0xFF];
-
-            /* Perform MixColumn iff not last round */
-            if (curr_rnd < (rounds - 1))
-            {
-                tmp1 = a0 ^ a1 ^ a2 ^ a3;
-                old_a0 = a0;
-                a0 ^= tmp1 ^ AES_xtime(a0 ^ a1);
-                a1 ^= tmp1 ^ AES_xtime(a1 ^ a2);
-                a2 ^= tmp1 ^ AES_xtime(a2 ^ a3);
-                a3 ^= tmp1 ^ AES_xtime(a3 ^ old_a0);
-            }
-
-            tmp[row] = ((a0 << 24) | (a1 << 16) | (a2 << 8) | a3);
-        }
-
-        /* KeyAddition - note that it is vital that this loop is separate from
-           the MixColumn operation, which must be atomic...*/ 
-        for (row = 0; row < 4; row++)
-            data[row] = tmp[row] ^ *(k++);
-    }
-}
-
-/**
- * Decrypt a single block (16 bytes) of data
- */
-static void AES_decrypt(const AES_CTX *ctx, uint32_t *data)
-{ 
-    uint32_t tmp[4];
-    uint32_t xt0,xt1,xt2,xt3,xt4,xt5,xt6;
-    uint32_t a0, a1, a2, a3, row;
-    int curr_rnd;
-    int rounds = ctx->rounds;
-    const uint32_t *k = ctx->ks + ((rounds+1)*4);
-
-    /* pre-round key addition */
-    for (row=4; row > 0;row--)
-        data[row-1] ^= *(--k);
-
-    /* Decrypt one block */
-    for (curr_rnd = 0; curr_rnd < rounds; curr_rnd++)
-    {
-        /* Perform ByteSub and ShiftRow operations together */
-        for (row = 4; row > 0; row--)
-        {
-            a0 = aes_isbox[(data[(row+3)%4]>>24)&0xFF];
-            a1 = aes_isbox[(data[(row+2)%4]>>16)&0xFF];
-            a2 = aes_isbox[(data[(row+1)%4]>>8)&0xFF];
-            a3 = aes_isbox[(data[row%4])&0xFF];
-
-            /* Perform MixColumn iff not last round */
-            if (curr_rnd<(rounds-1))
-            {
-                /* The MDS cofefficients (0x09, 0x0B, 0x0D, 0x0E)
-                   are quite large compared to encryption; this 
-                   operation slows decryption down noticeably. */
-                xt0 = AES_xtime(a0^a1);
-                xt1 = AES_xtime(a1^a2);
-                xt2 = AES_xtime(a2^a3);
-                xt3 = AES_xtime(a3^a0);
-                xt4 = AES_xtime(xt0^xt1);
-                xt5 = AES_xtime(xt1^xt2);
-                xt6 = AES_xtime(xt4^xt5);
-
-                xt0 ^= a1^a2^a3^xt4^xt6;
-                xt1 ^= a0^a2^a3^xt5^xt6;
-                xt2 ^= a0^a1^a3^xt4^xt6;
-                xt3 ^= a0^a1^a2^xt5^xt6;
-                tmp[row-1] = ((xt0<<24)|(xt1<<16)|(xt2<<8)|xt3);
-            }
-            else
-                tmp[row-1] = ((a0<<24)|(a1<<16)|(a2<<8)|a3);
-        }
-
-        for (row = 4; row > 0; row--)
-            data[row-1] = tmp[row-1] ^ *(--k);
-    }
-}
-
-#endif
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/crypto/bigint.c b/package/luci/libs/luci-lib-nixio/axTLS/crypto/bigint.c
deleted file mode 100644 (file)
index 53a5839..0000000
+++ /dev/null
@@ -1,1575 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * @defgroup bigint_api Big Integer API
- * @brief The bigint implementation as used by the axTLS project.
- *
- * The bigint library is for RSA encryption/decryption as well as signing.
- * This code tries to minimise use of malloc/free by maintaining a small 
- * cache. A bigint context may maintain state by being made "permanent". 
- * It be be later released with a bi_depermanent() and bi_free() call.
- *
- * It supports the following reduction techniques:
- * - Classical
- * - Barrett
- * - Montgomery
- *
- * It also implements the following:
- * - Karatsuba multiplication
- * - Squaring
- * - Sliding window exponentiation
- * - Chinese Remainder Theorem (implemented in rsa.c).
- *
- * All the algorithms used are pretty standard, and designed for different
- * data bus sizes. Negative numbers are not dealt with at all, so a subtraction
- * may need to be tested for negativity.
- *
- * This library steals some ideas from Jef Poskanzer
- * <http://cs.marlboro.edu/term/cs-fall02/algorithms/crypto/RSA/bigint>
- * and GMP <http://www.swox.com/gmp>. It gets most of its implementation
- * detail from "The Handbook of Applied Cryptography"
- * <http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf>
- * @{
- */
-
-#include <stdlib.h>
-#include <limits.h>
-#include <string.h>
-#include <stdio.h>
-#include <time.h>
-#include "bigint.h"
-
-#define V1      v->comps[v->size-1]                 /**< v1 for division */
-#define V2      v->comps[v->size-2]                 /**< v2 for division */
-#define U(j)    tmp_u->comps[tmp_u->size-j-1]       /**< uj for division */
-#define Q(j)    quotient->comps[quotient->size-j-1] /**< qj for division */
-
-static bigint *bi_int_multiply(BI_CTX *ctx, bigint *bi, comp i);
-static bigint *bi_int_divide(BI_CTX *ctx, bigint *biR, comp denom);
-static bigint *alloc(BI_CTX *ctx, int size);
-static bigint *trim(bigint *bi);
-static void more_comps(bigint *bi, int n);
-#if defined(CONFIG_BIGINT_KARATSUBA) || defined(CONFIG_BIGINT_BARRETT) || \
-    defined(CONFIG_BIGINT_MONTGOMERY)
-static bigint *comp_right_shift(bigint *biR, int num_shifts);
-static bigint *comp_left_shift(bigint *biR, int num_shifts);
-#endif
-
-#ifdef CONFIG_BIGINT_CHECK_ON
-static void check(const bigint *bi);
-#else
-#define check(A)                /**< disappears in normal production mode */
-#endif
-
-
-/**
- * @brief Start a new bigint context.
- * @return A bigint context.
- */
-BI_CTX *bi_initialize(void)
-{
-    /* calloc() sets everything to zero */
-    BI_CTX *ctx = (BI_CTX *)calloc(1, sizeof(BI_CTX));
-   
-    /* the radix */
-    ctx->bi_radix = alloc(ctx, 2); 
-    ctx->bi_radix->comps[0] = 0;
-    ctx->bi_radix->comps[1] = 1;
-    bi_permanent(ctx->bi_radix);
-    return ctx;
-}
-
-/**
- * @brief Close the bigint context and free any resources.
- *
- * Free up any used memory - a check is done if all objects were not 
- * properly freed.
- * @param ctx [in]   The bigint session context.
- */
-void bi_terminate(BI_CTX *ctx)
-{
-    bi_depermanent(ctx->bi_radix); 
-    bi_free(ctx, ctx->bi_radix);
-
-    if (ctx->active_count != 0)
-    {
-#ifdef CONFIG_SSL_FULL_MODE
-        printf("bi_terminate: there were %d un-freed bigints\n",
-                       ctx->active_count);
-#endif
-        abort();
-    }
-
-    bi_clear_cache(ctx);
-    free(ctx);
-}
-
-/**
- *@brief Clear the memory cache.
- */
-void bi_clear_cache(BI_CTX *ctx)
-{
-    bigint *p, *pn;
-
-    if (ctx->free_list == NULL)
-        return;
-    
-    for (p = ctx->free_list; p != NULL; p = pn)
-    {
-        pn = p->next;
-        free(p->comps);
-        free(p);
-    }
-
-    ctx->free_count = 0;
-    ctx->free_list = NULL;
-}
-
-/**
- * @brief Increment the number of references to this object. 
- * It does not do a full copy.
- * @param bi [in]   The bigint to copy.
- * @return A reference to the same bigint.
- */
-bigint *bi_copy(bigint *bi)
-{
-    check(bi);
-    if (bi->refs != PERMANENT)
-        bi->refs++;
-    return bi;
-}
-
-/**
- * @brief Simply make a bigint object "unfreeable" if bi_free() is called on it.
- *
- * For this object to be freed, bi_depermanent() must be called.
- * @param bi [in]   The bigint to be made permanent.
- */
-void bi_permanent(bigint *bi)
-{
-    check(bi);
-    if (bi->refs != 1)
-    {
-#ifdef CONFIG_SSL_FULL_MODE
-        printf("bi_permanent: refs was not 1\n");
-#endif
-        abort();
-    }
-
-    bi->refs = PERMANENT;
-}
-
-/**
- * @brief Take a permanent object and make it eligible for freedom.
- * @param bi [in]   The bigint to be made back to temporary.
- */
-void bi_depermanent(bigint *bi)
-{
-    check(bi);
-    if (bi->refs != PERMANENT)
-    {
-#ifdef CONFIG_SSL_FULL_MODE
-        printf("bi_depermanent: bigint was not permanent\n");
-#endif
-        abort();
-    }
-
-    bi->refs = 1;
-}
-
-/**
- * @brief Free a bigint object so it can be used again. 
- *
- * The memory itself it not actually freed, just tagged as being available 
- * @param ctx [in]   The bigint session context.
- * @param bi [in]    The bigint to be freed.
- */
-void bi_free(BI_CTX *ctx, bigint *bi)
-{
-    check(bi);
-    if (bi->refs == PERMANENT)
-    {
-        return;
-    }
-
-    if (--bi->refs > 0)
-    {
-        return;
-    }
-
-    bi->next = ctx->free_list;
-    ctx->free_list = bi;
-    ctx->free_count++;
-
-    if (--ctx->active_count < 0)
-    {
-#ifdef CONFIG_SSL_FULL_MODE
-        printf("bi_free: active_count went negative "
-                "- double-freed bigint?\n");
-#endif
-        abort();
-    }
-}
-
-/**
- * @brief Convert an (unsigned) integer into a bigint.
- * @param ctx [in]   The bigint session context.
- * @param i [in]     The (unsigned) integer to be converted.
- * 
- */
-bigint *int_to_bi(BI_CTX *ctx, comp i)
-{
-    bigint *biR = alloc(ctx, 1);
-    biR->comps[0] = i;
-    return biR;
-}
-
-/**
- * @brief Do a full copy of the bigint object.
- * @param ctx [in]   The bigint session context.
- * @param bi  [in]   The bigint object to be copied.
- */
-bigint *bi_clone(BI_CTX *ctx, const bigint *bi)
-{
-    bigint *biR = alloc(ctx, bi->size);
-    check(bi);
-    memcpy(biR->comps, bi->comps, bi->size*COMP_BYTE_SIZE);
-    return biR;
-}
-
-/**
- * @brief Perform an addition operation between two bigints.
- * @param ctx [in]  The bigint session context.
- * @param bia [in]  A bigint.
- * @param bib [in]  Another bigint.
- * @return The result of the addition.
- */
-bigint *bi_add(BI_CTX *ctx, bigint *bia, bigint *bib)
-{
-    int n;
-    comp carry = 0;
-    comp *pa, *pb;
-
-    check(bia);
-    check(bib);
-
-    n = max(bia->size, bib->size);
-    more_comps(bia, n+1);
-    more_comps(bib, n);
-    pa = bia->comps;
-    pb = bib->comps;
-
-    do
-    {
-        comp  sl, rl, cy1;
-        sl = *pa + *pb++;
-        rl = sl + carry;
-        cy1 = sl < *pa;
-        carry = cy1 | (rl < sl);
-        *pa++ = rl;
-    } while (--n != 0);
-
-    *pa = carry;                  /* do overflow */
-    bi_free(ctx, bib);
-    return trim(bia);
-}
-
-/**
- * @brief Perform a subtraction operation between two bigints.
- * @param ctx [in]  The bigint session context.
- * @param bia [in]  A bigint.
- * @param bib [in]  Another bigint.
- * @param is_negative [out] If defined, indicates that the result was negative.
- * is_negative may be null.
- * @return The result of the subtraction. The result is always positive.
- */
-bigint *bi_subtract(BI_CTX *ctx, 
-        bigint *bia, bigint *bib, int *is_negative)
-{
-    int n = bia->size;
-    comp *pa, *pb, carry = 0;
-
-    check(bia);
-    check(bib);
-
-    more_comps(bib, n);
-    pa = bia->comps;
-    pb = bib->comps;
-
-    do 
-    {
-        comp sl, rl, cy1;
-        sl = *pa - *pb++;
-        rl = sl - carry;
-        cy1 = sl > *pa;
-        carry = cy1 | (rl > sl);
-        *pa++ = rl;
-    } while (--n != 0);
-
-    if (is_negative)    /* indicate a negative result */
-    {
-        *is_negative = carry;
-    }
-
-    bi_free(ctx, trim(bib));    /* put bib back to the way it was */
-    return trim(bia);
-}
-
-/**
- * Perform a multiply between a bigint an an (unsigned) integer
- */
-static bigint *bi_int_multiply(BI_CTX *ctx, bigint *bia, comp b)
-{
-    int j = 0, n = bia->size;
-    bigint *biR = alloc(ctx, n + 1);
-    comp carry = 0;
-    comp *r = biR->comps;
-    comp *a = bia->comps;
-
-    check(bia);
-
-    /* clear things to start with */
-    memset(r, 0, ((n+1)*COMP_BYTE_SIZE));
-
-    do
-    {
-        long_comp tmp = *r + (long_comp)a[j]*b + carry;
-        *r++ = (comp)tmp;              /* downsize */
-        carry = (comp)(tmp >> COMP_BIT_SIZE);
-    } while (++j < n);
-
-    *r = carry;
-    bi_free(ctx, bia);
-    return trim(biR);
-}
-
-/**
- * @brief Does both division and modulo calculations. 
- *
- * Used extensively when doing classical reduction.
- * @param ctx [in]  The bigint session context.
- * @param u [in]    A bigint which is the numerator.
- * @param v [in]    Either the denominator or the modulus depending on the mode.
- * @param is_mod [n] Determines if this is a normal division (0) or a reduction
- * (1).
- * @return  The result of the division/reduction.
- */
-bigint *bi_divide(BI_CTX *ctx, bigint *u, bigint *v, int is_mod)
-{
-    int n = v->size, m = u->size-n;
-    int j = 0, orig_u_size = u->size;
-    uint8_t mod_offset = ctx->mod_offset;
-    comp d;
-    bigint *quotient, *tmp_u;
-    comp q_dash;
-
-    check(u);
-    check(v);
-
-    /* if doing reduction and we are < mod, then return mod */
-    if (is_mod && bi_compare(v, u) > 0)
-    {
-        bi_free(ctx, v);
-        return u;
-    }
-
-    quotient = alloc(ctx, m+1);
-    tmp_u = alloc(ctx, n+1);
-    v = trim(v);        /* make sure we have no leading 0's */
-    d = (comp)((long_comp)COMP_RADIX/(V1+1));
-
-    /* clear things to start with */
-    memset(quotient->comps, 0, ((quotient->size)*COMP_BYTE_SIZE));
-
-    /* normalise */
-    if (d > 1)
-    {
-        u = bi_int_multiply(ctx, u, d);
-
-        if (is_mod)
-        {
-            v = ctx->bi_normalised_mod[mod_offset];
-        }
-        else
-        {
-            v = bi_int_multiply(ctx, v, d);
-        }
-    }
-
-    if (orig_u_size == u->size)  /* new digit position u0 */
-    {
-        more_comps(u, orig_u_size + 1);
-    }
-
-    do
-    {
-        /* get a temporary short version of u */
-        memcpy(tmp_u->comps, &u->comps[u->size-n-1-j], (n+1)*COMP_BYTE_SIZE);
-
-        /* calculate q' */
-        if (U(0) == V1)
-        {
-            q_dash = COMP_RADIX-1;
-        }
-        else
-        {
-            q_dash = (comp)(((long_comp)U(0)*COMP_RADIX + U(1))/V1);
-        }
-
-        if (v->size > 1 && V2)
-        {
-            /* we are implementing the following:
-            if (V2*q_dash > (((U(0)*COMP_RADIX + U(1) - 
-                    q_dash*V1)*COMP_RADIX) + U(2))) ... */
-            comp inner = (comp)((long_comp)COMP_RADIX*U(0) + U(1) - 
-                                        (long_comp)q_dash*V1);
-            if ((long_comp)V2*q_dash > (long_comp)inner*COMP_RADIX + U(2))
-            {
-                q_dash--;
-            }
-        }
-
-        /* multiply and subtract */
-        if (q_dash)
-        {
-            int is_negative;
-            tmp_u = bi_subtract(ctx, tmp_u, 
-                    bi_int_multiply(ctx, bi_copy(v), q_dash), &is_negative);
-            more_comps(tmp_u, n+1);
-
-            Q(j) = q_dash; 
-
-            /* add back */
-            if (is_negative)
-            {
-                Q(j)--;
-                tmp_u = bi_add(ctx, tmp_u, bi_copy(v));
-
-                /* lop off the carry */
-                tmp_u->size--;
-                v->size--;
-            }
-        }
-        else
-        {
-            Q(j) = 0; 
-        }
-
-        /* copy back to u */
-        memcpy(&u->comps[u->size-n-1-j], tmp_u->comps, (n+1)*COMP_BYTE_SIZE);
-    } while (++j <= m);
-
-    bi_free(ctx, tmp_u);
-    bi_free(ctx, v);
-
-    if (is_mod)     /* get the remainder */
-    {
-        bi_free(ctx, quotient);
-        return bi_int_divide(ctx, trim(u), d);
-    }
-    else            /* get the quotient */
-    {
-        bi_free(ctx, u);
-        return trim(quotient);
-    }
-}
-
-/*
- * Perform an integer divide on a bigint.
- */
-static bigint *bi_int_divide(BI_CTX *ctx, bigint *biR, comp denom)
-{
-    int i = biR->size - 1;
-    long_comp r = 0;
-
-    check(biR);
-
-    do
-    {
-        r = (r<<COMP_BIT_SIZE) + biR->comps[i];
-        biR->comps[i] = (comp)(r / denom);
-        r %= denom;
-    } while (--i >= 0);
-
-    return trim(biR);
-}
-
-#ifdef CONFIG_BIGINT_MONTGOMERY
-/**
- * There is a need for the value of integer N' such that B^-1(B-1)-N^-1N'=1, 
- * where B^-1(B-1) mod N=1. Actually, only the least significant part of 
- * N' is needed, hence the definition N0'=N' mod b. We reproduce below the 
- * simple algorithm from an article by Dusse and Kaliski to efficiently 
- * find N0' from N0 and b */
-static comp modular_inverse(bigint *bim)
-{
-    int i;
-    comp t = 1;
-    comp two_2_i_minus_1 = 2;   /* 2^(i-1) */
-    long_comp two_2_i = 4;      /* 2^i */
-    comp N = bim->comps[0];
-
-    for (i = 2; i <= COMP_BIT_SIZE; i++)
-    {
-        if ((long_comp)N*t%two_2_i >= two_2_i_minus_1)
-        {
-            t += two_2_i_minus_1;
-        }
-
-        two_2_i_minus_1 <<= 1;
-        two_2_i <<= 1;
-    }
-
-    return (comp)(COMP_RADIX-t);
-}
-#endif
-
-#if defined(CONFIG_BIGINT_KARATSUBA) || defined(CONFIG_BIGINT_BARRETT) || \
-    defined(CONFIG_BIGINT_MONTGOMERY)
-/**
- * Take each component and shift down (in terms of components) 
- */
-static bigint *comp_right_shift(bigint *biR, int num_shifts)
-{
-    int i = biR->size-num_shifts;
-    comp *x = biR->comps;
-    comp *y = &biR->comps[num_shifts];
-
-    check(biR);
-
-    if (i <= 0)     /* have we completely right shifted? */
-    {
-        biR->comps[0] = 0;  /* return 0 */
-        biR->size = 1;
-        return biR;
-    }
-
-    do
-    {
-        *x++ = *y++;
-    } while (--i > 0);
-
-    biR->size -= num_shifts;
-    return biR;
-}
-
-/**
- * Take each component and shift it up (in terms of components) 
- */
-static bigint *comp_left_shift(bigint *biR, int num_shifts)
-{
-    int i = biR->size-1;
-    comp *x, *y;
-
-    check(biR);
-
-    if (num_shifts <= 0)
-    {
-        return biR;
-    }
-
-    more_comps(biR, biR->size + num_shifts);
-
-    x = &biR->comps[i+num_shifts];
-    y = &biR->comps[i];
-
-    do
-    {
-        *x-- = *y--;
-    } while (i--);
-
-    memset(biR->comps, 0, num_shifts*COMP_BYTE_SIZE); /* zero LS comps */
-    return biR;
-}
-#endif
-
-/**
- * @brief Allow a binary sequence to be imported as a bigint.
- * @param ctx [in]  The bigint session context.
- * @param data [in] The data to be converted.
- * @param size [in] The number of bytes of data.
- * @return A bigint representing this data.
- */
-bigint *bi_import(BI_CTX *ctx, const uint8_t *data, int size)
-{
-    bigint *biR = alloc(ctx, (size+COMP_BYTE_SIZE-1)/COMP_BYTE_SIZE);
-    int i, j = 0, offset = 0;
-
-    memset(biR->comps, 0, biR->size*COMP_BYTE_SIZE);
-
-    for (i = size-1; i >= 0; i--)
-    {
-        biR->comps[offset] += data[i] << (j*8);
-
-        if (++j == COMP_BYTE_SIZE)
-        {
-            j = 0;
-            offset ++;
-        }
-    }
-
-    return trim(biR);
-}
-
-#ifdef CONFIG_SSL_FULL_MODE
-/**
- * @brief The testharness uses this code to import text hex-streams and 
- * convert them into bigints.
- * @param ctx [in]  The bigint session context.
- * @param data [in] A string consisting of hex characters. The characters must
- * be in upper case.
- * @return A bigint representing this data.
- */
-bigint *bi_str_import(BI_CTX *ctx, const char *data)
-{
-    int size = strlen(data);
-    bigint *biR = alloc(ctx, (size+COMP_NUM_NIBBLES-1)/COMP_NUM_NIBBLES);
-    int i, j = 0, offset = 0;
-    memset(biR->comps, 0, biR->size*COMP_BYTE_SIZE);
-
-    for (i = size-1; i >= 0; i--)
-    {
-        int num = (data[i] <= '9') ? (data[i] - '0') : (data[i] - 'A' + 10);
-        biR->comps[offset] += num << (j*4);
-
-        if (++j == COMP_NUM_NIBBLES)
-        {
-            j = 0;
-            offset ++;
-        }
-    }
-
-    return biR;
-}
-
-void bi_print(const char *label, bigint *x)
-{
-    int i, j;
-
-    if (x == NULL)
-    {
-        printf("%s: (null)\n", label);
-        return;
-    }
-
-    printf("%s: (size %d)\n", label, x->size);
-    for (i = x->size-1; i >= 0; i--)
-    {
-        for (j = COMP_NUM_NIBBLES-1; j >= 0; j--)
-        {
-            comp mask = 0x0f << (j*4);
-            comp num = (x->comps[i] & mask) >> (j*4);
-            putc((num <= 9) ? (num + '0') : (num + 'A' - 10), stdout);
-        }
-    }  
-
-    printf("\n");
-}
-#endif
-
-/**
- * @brief Take a bigint and convert it into a byte sequence. 
- *
- * This is useful after a decrypt operation.
- * @param ctx [in]  The bigint session context.
- * @param x [in]  The bigint to be converted.
- * @param data [out] The converted data as a byte stream.
- * @param size [in] The maximum size of the byte stream. Unused bytes will be
- * zeroed.
- */
-void bi_export(BI_CTX *ctx, bigint *x, uint8_t *data, int size)
-{
-    int i, j, k = size-1;
-
-    check(x);
-    memset(data, 0, size);  /* ensure all leading 0's are cleared */
-
-    for (i = 0; i < x->size; i++)
-    {
-        for (j = 0; j < COMP_BYTE_SIZE; j++)
-        {
-            comp mask = 0xff << (j*8);
-            int num = (x->comps[i] & mask) >> (j*8);
-            data[k--] = num;
-
-            if (k < 0)
-            {
-                break;
-            }
-        }
-    }
-
-    bi_free(ctx, x);
-}
-
-/**
- * @brief Pre-calculate some of the expensive steps in reduction. 
- *
- * This function should only be called once (normally when a session starts).
- * When the session is over, bi_free_mod() should be called. bi_mod_power()
- * relies on this function being called.
- * @param ctx [in]  The bigint session context.
- * @param bim [in]  The bigint modulus that will be used.
- * @param mod_offset [in] There are three moduluii that can be stored - the
- * standard modulus, and its two primes p and q. This offset refers to which
- * modulus we are referring to.
- * @see bi_free_mod(), bi_mod_power().
- */
-void bi_set_mod(BI_CTX *ctx, bigint *bim, int mod_offset)
-{
-    int k = bim->size;
-    comp d = (comp)((long_comp)COMP_RADIX/(bim->comps[k-1]+1));
-#ifdef CONFIG_BIGINT_MONTGOMERY
-    bigint *R, *R2;
-#endif
-
-    ctx->bi_mod[mod_offset] = bim;
-    bi_permanent(ctx->bi_mod[mod_offset]);
-    ctx->bi_normalised_mod[mod_offset] = bi_int_multiply(ctx, bim, d);
-    bi_permanent(ctx->bi_normalised_mod[mod_offset]);
-
-#if defined(CONFIG_BIGINT_MONTGOMERY)
-    /* set montgomery variables */
-    R = comp_left_shift(bi_clone(ctx, ctx->bi_radix), k-1);     /* R */
-    R2 = comp_left_shift(bi_clone(ctx, ctx->bi_radix), k*2-1);  /* R^2 */
-    ctx->bi_RR_mod_m[mod_offset] = bi_mod(ctx, R2);             /* R^2 mod m */
-    ctx->bi_R_mod_m[mod_offset] = bi_mod(ctx, R);               /* R mod m */
-
-    bi_permanent(ctx->bi_RR_mod_m[mod_offset]);
-    bi_permanent(ctx->bi_R_mod_m[mod_offset]);
-
-    ctx->N0_dash[mod_offset] = modular_inverse(ctx->bi_mod[mod_offset]);
-
-#elif defined (CONFIG_BIGINT_BARRETT)
-    ctx->bi_mu[mod_offset] = 
-        bi_divide(ctx, comp_left_shift(
-            bi_clone(ctx, ctx->bi_radix), k*2-1), ctx->bi_mod[mod_offset], 0);
-    bi_permanent(ctx->bi_mu[mod_offset]);
-#endif
-}
-
-/**
- * @brief Used when cleaning various bigints at the end of a session.
- * @param ctx [in]  The bigint session context.
- * @param mod_offset [in] The offset to use.
- * @see bi_set_mod().
- */
-void bi_free_mod(BI_CTX *ctx, int mod_offset)
-{
-    bi_depermanent(ctx->bi_mod[mod_offset]);
-    bi_free(ctx, ctx->bi_mod[mod_offset]);
-#if defined (CONFIG_BIGINT_MONTGOMERY)
-    bi_depermanent(ctx->bi_RR_mod_m[mod_offset]);
-    bi_depermanent(ctx->bi_R_mod_m[mod_offset]);
-    bi_free(ctx, ctx->bi_RR_mod_m[mod_offset]);
-    bi_free(ctx, ctx->bi_R_mod_m[mod_offset]);
-#elif defined(CONFIG_BIGINT_BARRETT)
-    bi_depermanent(ctx->bi_mu[mod_offset]); 
-    bi_free(ctx, ctx->bi_mu[mod_offset]);
-#endif
-    bi_depermanent(ctx->bi_normalised_mod[mod_offset]); 
-    bi_free(ctx, ctx->bi_normalised_mod[mod_offset]);
-}
-
-/** 
- * Perform a standard multiplication between two bigints.
- */
-static bigint *regular_multiply(BI_CTX *ctx, bigint *bia, bigint *bib)
-{
-    int i, j, i_plus_j;
-    int n = bia->size; 
-    int t = bib->size;
-    bigint *biR = alloc(ctx, n + t);
-    comp *sr = biR->comps;
-    comp *sa = bia->comps;
-    comp *sb = bib->comps;
-
-    check(bia);
-    check(bib);
-
-    /* clear things to start with */
-    memset(biR->comps, 0, ((n+t)*COMP_BYTE_SIZE));
-    i = 0;
-
-    do 
-    {
-        comp carry = 0;
-        comp b = *sb++;
-        i_plus_j = i;
-        j = 0;
-
-        do
-        {
-            long_comp tmp = sr[i_plus_j] + (long_comp)sa[j]*b + carry;
-            sr[i_plus_j++] = (comp)tmp;              /* downsize */
-            carry = (comp)(tmp >> COMP_BIT_SIZE);
-        } while (++j < n);
-
-        sr[i_plus_j] = carry;
-    } while (++i < t);
-
-    bi_free(ctx, bia);
-    bi_free(ctx, bib);
-    return trim(biR);
-}
-
-#ifdef CONFIG_BIGINT_KARATSUBA
-/*
- * Karatsuba improves on regular multiplication due to only 3 multiplications 
- * being done instead of 4. The additional additions/subtractions are O(N) 
- * rather than O(N^2) and so for big numbers it saves on a few operations 
- */
-static bigint *karatsuba(BI_CTX *ctx, bigint *bia, bigint *bib, int is_square)
-{
-    bigint *x0, *x1;
-    bigint *p0, *p1, *p2;
-    int m;
-
-    if (is_square)
-    {
-        m = (bia->size + 1)/2;
-    }
-    else
-    {
-        m = (max(bia->size, bib->size) + 1)/2;
-    }
-
-    x0 = bi_clone(ctx, bia);
-    x0->size = m;
-    x1 = bi_clone(ctx, bia);
-    comp_right_shift(x1, m);
-    bi_free(ctx, bia);
-
-    /* work out the 3 partial products */
-    if (is_square)
-    {
-        p0 = bi_square(ctx, bi_copy(x0));
-        p2 = bi_square(ctx, bi_copy(x1));
-        p1 = bi_square(ctx, bi_add(ctx, x0, x1));
-    }
-    else /* normal multiply */
-    {
-        bigint *y0, *y1;
-        y0 = bi_clone(ctx, bib);
-        y0->size = m;
-        y1 = bi_clone(ctx, bib);
-        comp_right_shift(y1, m);
-        bi_free(ctx, bib);
-
-        p0 = bi_multiply(ctx, bi_copy(x0), bi_copy(y0));
-        p2 = bi_multiply(ctx, bi_copy(x1), bi_copy(y1));
-        p1 = bi_multiply(ctx, bi_add(ctx, x0, x1), bi_add(ctx, y0, y1));
-    }
-
-    p1 = bi_subtract(ctx, 
-            bi_subtract(ctx, p1, bi_copy(p2), NULL), bi_copy(p0), NULL);
-
-    comp_left_shift(p1, m);
-    comp_left_shift(p2, 2*m);
-    return bi_add(ctx, p1, bi_add(ctx, p0, p2));
-}
-#endif
-
-/**
- * @brief Perform a multiplication operation between two bigints.
- * @param ctx [in]  The bigint session context.
- * @param bia [in]  A bigint.
- * @param bib [in]  Another bigint.
- * @return The result of the multiplication.
- */
-bigint *bi_multiply(BI_CTX *ctx, bigint *bia, bigint *bib)
-{
-    check(bia);
-    check(bib);
-
-#ifdef CONFIG_BIGINT_KARATSUBA
-    if (min(bia->size, bib->size) < MUL_KARATSUBA_THRESH)
-    {
-        return regular_multiply(ctx, bia, bib);
-    }
-
-    return karatsuba(ctx, bia, bib, 0);
-#else
-    return regular_multiply(ctx, bia, bib);
-#endif
-}
-
-#ifdef CONFIG_BIGINT_SQUARE
-/*
- * Perform the actual square operion. It takes into account overflow.
- */
-static bigint *regular_square(BI_CTX *ctx, bigint *bi)
-{
-    int t = bi->size;
-    int i = 0, j;
-    bigint *biR = alloc(ctx, t*2);
-    comp *w = biR->comps;
-    comp *x = bi->comps;
-    comp carry;
-
-    memset(w, 0, biR->size*COMP_BYTE_SIZE);
-
-    do
-    {
-        long_comp tmp = w[2*i] + (long_comp)x[i]*x[i];
-        comp u = 0;
-        w[2*i] = (comp)tmp;
-        carry = (comp)(tmp >> COMP_BIT_SIZE);
-
-        for (j = i+1; j < t; j++)
-        {
-            long_comp xx = (long_comp)x[i]*x[j];
-            long_comp xx2 = 2*xx;
-            long_comp blob = (long_comp)w[i+j]+carry;
-
-            if (u)                  /* previous overflow */
-            {
-                blob += COMP_RADIX;
-            }
-
-
-            u = 0;
-            tmp = xx2 + blob;
-
-            /* check for overflow */
-            if ((COMP_MAX-xx) < xx  || (COMP_MAX-xx2) < blob)
-            {
-                u = 1;
-            }
-
-            w[i+j] = (comp)tmp;
-            carry = (comp)(tmp >> COMP_BIT_SIZE);
-        }
-
-        w[i+t] += carry;
-
-        if (u)
-        {
-            w[i+t+1] = 1;   /* add carry */
-        }
-    } while (++i < t);
-
-    bi_free(ctx, bi);
-    return trim(biR);
-}
-
-/**
- * @brief Perform a square operation on a bigint.
- * @param ctx [in]  The bigint session context.
- * @param bia [in]  A bigint.
- * @return The result of the multiplication.
- */
-bigint *bi_square(BI_CTX *ctx, bigint *bia)
-{
-    check(bia);
-
-#ifdef CONFIG_BIGINT_KARATSUBA
-    if (bia->size < SQU_KARATSUBA_THRESH) 
-    {
-        return regular_square(ctx, bia);
-    }
-
-    return karatsuba(ctx, bia, NULL, 1);
-#else
-    return regular_square(ctx, bia);
-#endif
-}
-#endif
-
-/**
- * @brief Compare two bigints.
- * @param bia [in]  A bigint.
- * @param bib [in]  Another bigint.
- * @return -1 if smaller, 1 if larger and 0 if equal.
- */
-int bi_compare(bigint *bia, bigint *bib)
-{
-    int r, i;
-
-    check(bia);
-    check(bib);
-
-    if (bia->size > bib->size)
-        r = 1;
-    else if (bia->size < bib->size)
-        r = -1;
-    else
-    {
-        comp *a = bia->comps; 
-        comp *b = bib->comps; 
-
-        /* Same number of components.  Compare starting from the high end
-         * and working down. */
-        r = 0;
-        i = bia->size - 1;
-
-        do 
-        {
-            if (a[i] > b[i])
-            { 
-                r = 1;
-                break; 
-            }
-            else if (a[i] < b[i])
-            { 
-                r = -1;
-                break; 
-            }
-        } while (--i >= 0);
-    }
-
-    return r;
-}
-
-/*
- * Allocate and zero more components.  Does not consume bi. 
- */
-static void more_comps(bigint *bi, int n)
-{
-    if (n > bi->max_comps)
-    {
-        bi->max_comps = max(bi->max_comps * 2, n);
-        bi->comps = (comp*)realloc(bi->comps, bi->max_comps * COMP_BYTE_SIZE);
-    }
-
-    if (n > bi->size)
-    {
-        memset(&bi->comps[bi->size], 0, (n-bi->size)*COMP_BYTE_SIZE);
-    }
-
-    bi->size = n;
-}
-
-/*
- * Make a new empty bigint. It may just use an old one if one is available.
- * Otherwise get one off the heap.
- */
-static bigint *alloc(BI_CTX *ctx, int size)
-{
-    bigint *biR;
-
-    /* Can we recycle an old bigint? */
-    if (ctx->free_list != NULL)
-    {
-        biR = ctx->free_list;
-        ctx->free_list = biR->next;
-        ctx->free_count--;
-
-        if (biR->refs != 0)
-        {
-#ifdef CONFIG_SSL_FULL_MODE
-            printf("alloc: refs was not 0\n");
-#endif
-            abort();    /* create a stack trace from a core dump */
-        }
-
-        more_comps(biR, size);
-    }
-    else
-    {
-        /* No free bigints available - create a new one. */
-        biR = (bigint *)malloc(sizeof(bigint));
-        biR->comps = (comp*)malloc(size * COMP_BYTE_SIZE);
-        biR->max_comps = size;  /* give some space to spare */
-    }
-
-    biR->size = size;
-    biR->refs = 1;
-    biR->next = NULL;
-    ctx->active_count++;
-    return biR;
-}
-
-/*
- * Work out the highest '1' bit in an exponent. Used when doing sliding-window
- * exponentiation.
- */
-static int find_max_exp_index(bigint *biexp)
-{
-    int i = COMP_BIT_SIZE-1;
-    comp shift = COMP_RADIX/2;
-    comp test = biexp->comps[biexp->size-1];    /* assume no leading zeroes */
-
-    check(biexp);
-
-    do
-    {
-        if (test & shift)
-        {
-            return i+(biexp->size-1)*COMP_BIT_SIZE;
-        }
-
-        shift >>= 1;
-    } while (--i != 0);
-
-    return -1;      /* error - must have been a leading 0 */
-}
-
-/*
- * Is a particular bit is an exponent 1 or 0? Used when doing sliding-window
- * exponentiation.
- */
-static int exp_bit_is_one(bigint *biexp, int offset)
-{
-    comp test = biexp->comps[offset / COMP_BIT_SIZE];
-    int num_shifts = offset % COMP_BIT_SIZE;
-    comp shift = 1;
-    int i;
-
-    check(biexp);
-
-    for (i = 0; i < num_shifts; i++)
-    {
-        shift <<= 1;
-    }
-
-    return test & shift;
-}
-
-#ifdef CONFIG_BIGINT_CHECK_ON
-/*
- * Perform a sanity check on bi.
- */
-static void check(const bigint *bi)
-{
-    if (bi->refs <= 0)
-    {
-        printf("check: zero or negative refs in bigint\n");
-        abort();
-    }
-
-    if (bi->next != NULL)
-    {
-        printf("check: attempt to use a bigint from "
-                "the free list\n");
-        abort();
-    }
-}
-#endif
-
-/*
- * Delete any leading 0's (and allow for 0).
- */
-static bigint *trim(bigint *bi)
-{
-    check(bi);
-
-    while (bi->comps[bi->size-1] == 0 && bi->size > 1)
-    {
-        bi->size--;
-    }
-
-    return bi;
-}
-
-#if defined(CONFIG_BIGINT_MONTGOMERY)
-/**
- * @brief Perform a single montgomery reduction.
- * @param ctx [in]  The bigint session context.
- * @param bixy [in]  A bigint.
- * @return The result of the montgomery reduction.
- */
-bigint *bi_mont(BI_CTX *ctx, bigint *bixy)
-{
-    int i = 0, n;
-    uint8_t mod_offset = ctx->mod_offset;
-    bigint *bim = ctx->bi_mod[mod_offset];
-    comp mod_inv = ctx->N0_dash[mod_offset];
-
-    check(bixy);
-
-    if (ctx->use_classical)     /* just use classical instead */
-    {
-        return bi_mod(ctx, bixy);
-    }
-
-    n = bim->size;
-
-    do
-    {
-        bixy = bi_add(ctx, bixy, comp_left_shift(
-                    bi_int_multiply(ctx, bim, bixy->comps[i]*mod_inv), i));
-    } while (++i < n);
-
-    comp_right_shift(bixy, n);
-
-    if (bi_compare(bixy, bim) >= 0)
-    {
-        bixy = bi_subtract(ctx, bixy, bim, NULL);
-    }
-
-    return bixy;
-}
-
-#elif defined(CONFIG_BIGINT_BARRETT)
-/*
- * Stomp on the most significant components to give the illusion of a "mod base
- * radix" operation 
- */
-static bigint *comp_mod(bigint *bi, int mod)
-{
-    check(bi);
-
-    if (bi->size > mod)
-    {
-        bi->size = mod;
-    }
-
-    return bi;
-}
-
-/*
- * Barrett reduction has no need for some parts of the product, so ignore bits
- * of the multiply. This routine gives Barrett its big performance
- * improvements over Classical/Montgomery reduction methods. 
- */
-static bigint *partial_multiply(BI_CTX *ctx, bigint *bia, bigint *bib, 
-        int inner_partial, int outer_partial)
-{
-    int i = 0, j, n = bia->size, t = bib->size;
-    bigint *biR;
-    comp carry;
-    comp *sr, *sa, *sb;
-
-    check(bia);
-    check(bib);
-
-    biR = alloc(ctx, n + t);
-    sa = bia->comps;
-    sb = bib->comps;
-    sr = biR->comps;
-
-    if (inner_partial)
-    {
-        memset(sr, 0, inner_partial*COMP_BYTE_SIZE); 
-    }
-    else    /* outer partial */
-    {
-        if (n < outer_partial || t < outer_partial) /* should we bother? */
-        {
-            bi_free(ctx, bia);
-            bi_free(ctx, bib);
-            biR->comps[0] = 0;      /* return 0 */
-            biR->size = 1;
-            return biR;
-        }
-
-        memset(&sr[outer_partial], 0, (n+t-outer_partial)*COMP_BYTE_SIZE);
-    }
-
-    do 
-    {
-        comp *a = sa;
-        comp b = *sb++;
-        long_comp tmp;
-        int i_plus_j = i;
-        carry = 0;
-        j = n;
-
-        if (outer_partial && i_plus_j < outer_partial)
-        {
-            i_plus_j = outer_partial;
-            a = &sa[outer_partial-i];
-            j = n-(outer_partial-i);
-        }
-
-        do
-        {
-            if (inner_partial && i_plus_j >= inner_partial) 
-            {
-                break;
-            }
-
-            tmp = sr[i_plus_j] + ((long_comp)*a++)*b + carry;
-            sr[i_plus_j++] = (comp)tmp;              /* downsize */
-            carry = (comp)(tmp >> COMP_BIT_SIZE);
-        } while (--j != 0);
-
-        sr[i_plus_j] = carry;
-    } while (++i < t);
-
-    bi_free(ctx, bia);
-    bi_free(ctx, bib);
-    return trim(biR);
-}
-
-/**
- * @brief Perform a single Barrett reduction.
- * @param ctx [in]  The bigint session context.
- * @param bi [in]  A bigint.
- * @return The result of the Barrett reduction.
- */
-bigint *bi_barrett(BI_CTX *ctx, bigint *bi)
-{
-    bigint *q1, *q2, *q3, *r1, *r2, *r;
-    uint8_t mod_offset = ctx->mod_offset;
-    bigint *bim = ctx->bi_mod[mod_offset];
-    int k = bim->size;
-
-    check(bi);
-    check(bim);
-
-    /* use Classical method instead  - Barrett cannot help here */
-    if (bi->size > k*2)
-    {
-        return bi_mod(ctx, bi);
-    }
-
-    q1 = comp_right_shift(bi_clone(ctx, bi), k-1);
-
-    /* do outer partial multiply */
-    q2 = partial_multiply(ctx, q1, ctx->bi_mu[mod_offset], 0, k-1); 
-    q3 = comp_right_shift(q2, k+1);
-    r1 = comp_mod(bi, k+1);
-
-    /* do inner partial multiply */
-    r2 = comp_mod(partial_multiply(ctx, q3, bim, k+1, 0), k+1);
-    r = bi_subtract(ctx, r1, r2, NULL);
-
-    /* if (r >= m) r = r - m; */
-    if (bi_compare(r, bim) >= 0)
-    {
-        r = bi_subtract(ctx, r, bim, NULL);
-    }
-
-    return r;
-}
-#endif /* CONFIG_BIGINT_BARRETT */
-
-#ifdef CONFIG_BIGINT_SLIDING_WINDOW
-/*
- * Work out g1, g3, g5, g7... etc for the sliding-window algorithm 
- */
-static void precompute_slide_window(BI_CTX *ctx, int window, bigint *g1)
-{
-    int k = 1, i;
-    bigint *g2;
-
-    for (i = 0; i < window-1; i++)   /* compute 2^(window-1) */
-    {
-        k <<= 1;
-    }
-
-    ctx->g = (bigint **)malloc(k*sizeof(bigint *));
-    ctx->g[0] = bi_clone(ctx, g1);
-    bi_permanent(ctx->g[0]);
-    g2 = bi_residue(ctx, bi_square(ctx, ctx->g[0]));   /* g^2 */
-
-    for (i = 1; i < k; i++)
-    {
-        ctx->g[i] = bi_residue(ctx, bi_multiply(ctx, ctx->g[i-1], bi_copy(g2)));
-        bi_permanent(ctx->g[i]);
-    }
-
-    bi_free(ctx, g2);
-    ctx->window = k;
-}
-#endif
-
-/**
- * @brief Perform a modular exponentiation.
- *
- * This function requires bi_set_mod() to have been called previously. This is 
- * one of the optimisations used for performance.
- * @param ctx [in]  The bigint session context.
- * @param bi  [in]  The bigint on which to perform the mod power operation.
- * @param biexp [in] The bigint exponent.
- * @return The result of the mod exponentiation operation
- * @see bi_set_mod().
- */
-bigint *bi_mod_power(BI_CTX *ctx, bigint *bi, bigint *biexp)
-{
-    int i = find_max_exp_index(biexp), j, window_size = 1;
-    bigint *biR = int_to_bi(ctx, 1);
-
-#if defined(CONFIG_BIGINT_MONTGOMERY)
-    uint8_t mod_offset = ctx->mod_offset;
-    if (!ctx->use_classical)
-    {
-        /* preconvert */
-        bi = bi_mont(ctx, 
-                bi_multiply(ctx, bi, ctx->bi_RR_mod_m[mod_offset]));    /* x' */
-        bi_free(ctx, biR);
-        biR = ctx->bi_R_mod_m[mod_offset];                              /* A */
-    }
-#endif
-
-    check(bi);
-    check(biexp);
-
-#ifdef CONFIG_BIGINT_SLIDING_WINDOW
-    for (j = i; j > 32; j /= 5) /* work out an optimum size */
-        window_size++;
-
-    /* work out the slide constants */
-    precompute_slide_window(ctx, window_size, bi);
-#else   /* just one constant */
-    ctx->g = (bigint **)malloc(sizeof(bigint *));
-    ctx->g[0] = bi_clone(ctx, bi);
-    ctx->window = 1;
-    bi_permanent(ctx->g[0]);
-#endif
-
-    /* if sliding-window is off, then only one bit will be done at a time and
-     * will reduce to standard left-to-right exponentiation */
-    do
-    {
-        if (exp_bit_is_one(biexp, i))
-        {
-            int l = i-window_size+1;
-            int part_exp = 0;
-
-            if (l < 0)  /* LSB of exponent will always be 1 */
-                l = 0;
-            else
-            {
-                while (exp_bit_is_one(biexp, l) == 0)
-                    l++;    /* go back up */
-            }
-
-            /* build up the section of the exponent */
-            for (j = i; j >= l; j--)
-            {
-                biR = bi_residue(ctx, bi_square(ctx, biR));
-                if (exp_bit_is_one(biexp, j))
-                    part_exp++;
-
-                if (j != l)
-                    part_exp <<= 1;
-            }
-
-            part_exp = (part_exp-1)/2;  /* adjust for array */
-            biR = bi_residue(ctx, bi_multiply(ctx, biR, ctx->g[part_exp]));
-            i = l-1;
-        }
-        else    /* square it */
-        {
-            biR = bi_residue(ctx, bi_square(ctx, biR));
-            i--;
-        }
-    } while (i >= 0);
-     
-    /* cleanup */
-    for (i = 0; i < ctx->window; i++)
-    {
-        bi_depermanent(ctx->g[i]);
-        bi_free(ctx, ctx->g[i]);
-    }
-
-    free(ctx->g);
-    bi_free(ctx, bi);
-    bi_free(ctx, biexp);
-#if defined CONFIG_BIGINT_MONTGOMERY
-    return ctx->use_classical ? biR : bi_mont(ctx, biR); /* convert back */
-#else /* CONFIG_BIGINT_CLASSICAL or CONFIG_BIGINT_BARRETT */
-    return biR;
-#endif
-}
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-/**
- * @brief Perform a modular exponentiation using a temporary modulus.
- *
- * We need this function to check the signatures of certificates. The modulus
- * of this function is temporary as it's just used for authentication.
- * @param ctx [in]  The bigint session context.
- * @param bi  [in]  The bigint to perform the exp/mod.
- * @param bim [in]  The temporary modulus.
- * @param biexp [in] The bigint exponent.
- * @return The result of the mod exponentiation operation
- * @see bi_set_mod().
- */
-bigint *bi_mod_power2(BI_CTX *ctx, bigint *bi, bigint *bim, bigint *biexp)
-{
-    bigint *biR, *tmp_biR;
-
-    /* Set up a temporary bigint context and transfer what we need between
-     * them. We need to do this since we want to keep the original modulus
-     * which is already in this context. This operation is only called when
-     * doing peer verification, and so is not expensive :-) */
-    BI_CTX *tmp_ctx = bi_initialize();
-    bi_set_mod(tmp_ctx, bi_clone(tmp_ctx, bim), BIGINT_M_OFFSET);
-    tmp_biR = bi_mod_power(tmp_ctx, 
-                bi_clone(tmp_ctx, bi), 
-                bi_clone(tmp_ctx, biexp));
-    biR = bi_clone(ctx, tmp_biR);
-    bi_free(tmp_ctx, tmp_biR);
-    bi_free_mod(tmp_ctx, BIGINT_M_OFFSET);
-    bi_terminate(tmp_ctx);
-
-    bi_free(ctx, bi);
-    bi_free(ctx, bim);
-    bi_free(ctx, biexp);
-    return biR;
-}
-#endif
-
-#ifdef CONFIG_BIGINT_CRT
-/**
- * @brief Use the Chinese Remainder Theorem to quickly perform RSA decrypts.
- *
- * @param ctx [in]  The bigint session context.
- * @param bi  [in]  The bigint to perform the exp/mod.
- * @param dP [in] CRT's dP bigint
- * @param dQ [in] CRT's dQ bigint
- * @param p [in] CRT's p bigint
- * @param q [in] CRT's q bigint
- * @param qInv [in] CRT's qInv bigint
- * @return The result of the CRT operation
- */
-bigint *bi_crt(BI_CTX *ctx, bigint *bi,
-        bigint *dP, bigint *dQ,
-        bigint *p, bigint *q, bigint *qInv)
-{
-    bigint *m1, *m2, *h;
-
-    /* Montgomery has a condition the 0 < x, y < m and these products violate
-     * that condition. So disable Montgomery when using CRT */
-#if defined(CONFIG_BIGINT_MONTGOMERY)
-    ctx->use_classical = 1;
-#endif
-    ctx->mod_offset = BIGINT_P_OFFSET;
-    m1 = bi_mod_power(ctx, bi_copy(bi), dP);
-
-    ctx->mod_offset = BIGINT_Q_OFFSET;
-    m2 = bi_mod_power(ctx, bi, dQ);
-
-    h = bi_subtract(ctx, bi_add(ctx, m1, p), bi_copy(m2), NULL);
-    h = bi_multiply(ctx, h, qInv);
-    ctx->mod_offset = BIGINT_P_OFFSET;
-    h = bi_residue(ctx, h);
-#if defined(CONFIG_BIGINT_MONTGOMERY)
-    ctx->use_classical = 0;         /* reset for any further operation */
-#endif
-    return bi_add(ctx, m2, bi_multiply(ctx, q, h));
-}
-#endif
-/** @} */
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/crypto/bigint.h b/package/luci/libs/luci-lib-nixio/axTLS/crypto/bigint.h
deleted file mode 100644 (file)
index 2966a3e..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef BIGINT_HEADER
-#define BIGINT_HEADER
-
-#include "crypto.h"
-
-BI_CTX *bi_initialize(void);
-void bi_terminate(BI_CTX *ctx);
-void bi_permanent(bigint *bi);
-void bi_depermanent(bigint *bi);
-void bi_clear_cache(BI_CTX *ctx);
-void bi_free(BI_CTX *ctx, bigint *bi);
-bigint *bi_copy(bigint *bi);
-bigint *bi_clone(BI_CTX *ctx, const bigint *bi);
-void bi_export(BI_CTX *ctx, bigint *bi, uint8_t *data, int size);
-bigint *bi_import(BI_CTX *ctx, const uint8_t *data, int len);
-bigint *int_to_bi(BI_CTX *ctx, comp i);
-
-/* the functions that actually do something interesting */
-bigint *bi_add(BI_CTX *ctx, bigint *bia, bigint *bib);
-bigint *bi_subtract(BI_CTX *ctx, bigint *bia, 
-        bigint *bib, int *is_negative);
-bigint *bi_divide(BI_CTX *ctx, bigint *bia, bigint *bim, int is_mod);
-bigint *bi_multiply(BI_CTX *ctx, bigint *bia, bigint *bib);
-bigint *bi_mod_power(BI_CTX *ctx, bigint *bi, bigint *biexp);
-bigint *bi_mod_power2(BI_CTX *ctx, bigint *bi, bigint *bim, bigint *biexp);
-int bi_compare(bigint *bia, bigint *bib);
-void bi_set_mod(BI_CTX *ctx, bigint *bim, int mod_offset);
-void bi_free_mod(BI_CTX *ctx, int mod_offset);
-
-#ifdef CONFIG_SSL_FULL_MODE
-void bi_print(const char *label, bigint *bi);
-bigint *bi_str_import(BI_CTX *ctx, const char *data);
-#endif
-
-/**
- * @def bi_mod
- * Find the residue of B. bi_set_mod() must be called before hand.
- */
-#define bi_mod(A, B)      bi_divide(A, B, ctx->bi_mod[ctx->mod_offset], 1)
-
-/**
- * bi_residue() is technically the same as bi_mod(), but it uses the
- * appropriate reduction technique (which is bi_mod() when doing classical
- * reduction).
- */
-#if defined(CONFIG_BIGINT_MONTGOMERY)
-#define bi_residue(A, B)         bi_mont(A, B)
-bigint *bi_mont(BI_CTX *ctx, bigint *bixy);
-#elif defined(CONFIG_BIGINT_BARRETT)
-#define bi_residue(A, B)         bi_barrett(A, B)
-bigint *bi_barrett(BI_CTX *ctx, bigint *bi);
-#else /* if defined(CONFIG_BIGINT_CLASSICAL) */
-#define bi_residue(A, B)         bi_mod(A, B)
-#endif
-
-#ifdef CONFIG_BIGINT_SQUARE
-bigint *bi_square(BI_CTX *ctx, bigint *bi);
-#else
-#define bi_square(A, B)     bi_multiply(A, bi_copy(B), B)
-#endif
-
-#ifdef CONFIG_BIGINT_CRT
-bigint *bi_crt(BI_CTX *ctx, bigint *bi,
-        bigint *dP, bigint *dQ,
-        bigint *p, bigint *q,
-        bigint *qInv);
-#endif
-
-#endif
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/crypto/bigint_impl.h b/package/luci/libs/luci-lib-nixio/axTLS/crypto/bigint_impl.h
deleted file mode 100644 (file)
index 1483154..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef BIGINT_IMPL_HEADER
-#define BIGINT_IMPL_HEADER
-
-/* Maintain a number of precomputed variables when doing reduction */
-#define BIGINT_M_OFFSET     0    /**< Normal modulo offset. */
-#ifdef CONFIG_BIGINT_CRT
-#define BIGINT_P_OFFSET     1    /**< p modulo offset. */
-#define BIGINT_Q_OFFSET     2    /**< q module offset. */
-#define BIGINT_NUM_MODS     3    /**< The number of modulus constants used. */
-#else
-#define BIGINT_NUM_MODS     1    
-#endif
-
-/* Architecture specific functions for big ints */
-#ifdef WIN32
-#define COMP_RADIX          4294967296i64         
-#define COMP_MAX            0xFFFFFFFFFFFFFFFFui64
-#else
-#define COMP_RADIX          4294967296ULL         /**< Max component + 1 */
-#define COMP_MAX            0xFFFFFFFFFFFFFFFFULL/**< (Max dbl comp -1) */
-#endif
-#define COMP_BIT_SIZE       32  /**< Number of bits in a component. */
-#define COMP_BYTE_SIZE      4   /**< Number of bytes in a component. */
-#define COMP_NUM_NIBBLES    8   /**< Used For diagnostics only. */
-
-typedef uint32_t comp;         /**< A single precision component. */
-typedef uint64_t long_comp;     /**< A double precision component. */
-typedef int64_t slong_comp;     /**< A signed double precision component. */
-
-/**
- * @struct  _bigint
- * @brief A big integer basic object
- */
-struct _bigint
-{
-    struct _bigint* next;       /**< The next bigint in the cache. */
-    short size;                 /**< The number of components in this bigint. */
-    short max_comps;            /**< The heapsize allocated for this bigint */
-    int refs;                   /**< An internal reference count. */
-    comp* comps;                /**< A ptr to the actual component data */
-};
-
-typedef struct _bigint bigint;  /**< An alias for _bigint */
-
-/**
- * Maintains the state of the cache, and a number of variables used in 
- * reduction.
- */
-typedef struct /**< A big integer "session" context. */
-{
-    bigint *active_list;                    /**< Bigints currently used. */
-    bigint *free_list;                      /**< Bigints not used. */
-    bigint *bi_radix;                       /**< The radix used. */
-    bigint *bi_mod[BIGINT_NUM_MODS];        /**< modulus */
-
-#if defined(CONFIG_BIGINT_MONTGOMERY)
-    bigint *bi_RR_mod_m[BIGINT_NUM_MODS];   /**< R^2 mod m */
-    bigint *bi_R_mod_m[BIGINT_NUM_MODS];    /**< R mod m */
-    comp N0_dash[BIGINT_NUM_MODS];
-#elif defined(CONFIG_BIGINT_BARRETT)
-    bigint *bi_mu[BIGINT_NUM_MODS];         /**< Storage for mu */
-#endif
-    bigint *bi_normalised_mod[BIGINT_NUM_MODS]; /**< Normalised mod storage. */
-    bigint **g;                 /**< Used by sliding-window. */
-    int window;                 /**< The size of the sliding window */
-    int active_count;           /**< Number of active bigints. */
-    int free_count;             /**< Number of free bigints. */
-
-#ifdef CONFIG_BIGINT_MONTGOMERY
-    uint8_t use_classical;      /**< Use classical reduction. */
-#endif
-    uint8_t mod_offset;         /**< The mod offset we are using */
-} BI_CTX;
-
-#ifndef WIN32
-#define max(a,b) ((a)>(b)?(a):(b))  /**< Find the maximum of 2 numbers. */
-#define min(a,b) ((a)<(b)?(a):(b))  /**< Find the minimum of 2 numbers. */
-#endif
-
-#define PERMANENT           0x7FFF55AA  /**< A magic number for permanents. */
-
-#endif
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/crypto/crypto.h b/package/luci/libs/luci-lib-nixio/axTLS/crypto/crypto.h
deleted file mode 100644 (file)
index 5c95f21..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * @file crypto.h
- */
-
-#ifndef HEADER_CRYPTO_H
-#define HEADER_CRYPTO_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "config.h"
-#include "os_port.h"
-#include "bigint_impl.h"
-#include "bigint.h"
-
-/* enable features based on a 'super-set' capbaility. */
-#if defined(CONFIG_SSL_FULL_MODE) 
-#define CONFIG_SSL_ENABLE_CLIENT
-#define CONFIG_SSL_CERT_VERIFICATION
-#elif defined(CONFIG_SSL_ENABLE_CLIENT)
-#define CONFIG_SSL_CERT_VERIFICATION
-#endif
-
-/**************************************************************************
- * AES declarations 
- **************************************************************************/
-
-#define AES_MAXROUNDS                  14
-#define AES_BLOCKSIZE           16
-#define AES_IV_SIZE             16
-
-typedef struct aes_key_st 
-{
-    uint16_t rounds;
-    uint16_t key_size;
-    uint32_t ks[(AES_MAXROUNDS+1)*8];
-    uint8_t iv[AES_IV_SIZE];
-} AES_CTX;
-
-typedef enum
-{
-    AES_MODE_128,
-    AES_MODE_256
-} AES_MODE;
-
-void AES_set_key(AES_CTX *ctx, const uint8_t *key, 
-        const uint8_t *iv, AES_MODE mode);
-void AES_cbc_encrypt(AES_CTX *ctx, const uint8_t *msg, 
-        uint8_t *out, int length);
-void AES_cbc_decrypt(AES_CTX *ks, const uint8_t *in, uint8_t *out, int length);
-void AES_convert_key(AES_CTX *ctx);
-
-/**************************************************************************
- * RC4 declarations 
- **************************************************************************/
-
-typedef struct 
-{
-    uint8_t x, y, m[256];
-} RC4_CTX;
-
-void RC4_setup(RC4_CTX *s, const uint8_t *key, int length);
-void RC4_crypt(RC4_CTX *s, const uint8_t *msg, uint8_t *data, int length);
-
-/**************************************************************************
- * SHA1 declarations 
- **************************************************************************/
-
-#define SHA1_SIZE   20
-
-/*
- *  This structure will hold context information for the SHA-1
- *  hashing operation
- */
-typedef struct 
-{
-    uint32_t Intermediate_Hash[SHA1_SIZE/4]; /* Message Digest */
-    uint32_t Length_Low;            /* Message length in bits */
-    uint32_t Length_High;           /* Message length in bits */
-    uint16_t Message_Block_Index;   /* Index into message block array   */
-    uint8_t Message_Block[64];      /* 512-bit message blocks */
-} SHA1_CTX;
-
-void SHA1_Init(SHA1_CTX *);
-void SHA1_Update(SHA1_CTX *, const uint8_t * msg, int len);
-void SHA1_Final(uint8_t *digest, SHA1_CTX *);
-
-/**************************************************************************
- * MD2 declarations 
- **************************************************************************/
-
-#define MD2_SIZE 16
-
-typedef struct
-{
-    unsigned char cksum[16];    /* checksum of the data block */
-    unsigned char state[48];    /* intermediate digest state */
-    unsigned char buffer[16];   /* data block being processed */
-    int left;                   /* amount of data in buffer */
-} MD2_CTX;
-
-EXP_FUNC void STDCALL MD2_Init(MD2_CTX *ctx);
-EXP_FUNC void STDCALL MD2_Update(MD2_CTX *ctx, const uint8_t *input, int ilen);
-EXP_FUNC void STDCALL MD2_Final(uint8_t *digest, MD2_CTX *ctx);
-
-/**************************************************************************
- * MD5 declarations 
- **************************************************************************/
-
-#define MD5_SIZE    16
-
-typedef struct 
-{
-  uint32_t state[4];        /* state (ABCD) */
-  uint32_t count[2];        /* number of bits, modulo 2^64 (lsb first) */
-  uint8_t buffer[64];       /* input buffer */
-} MD5_CTX;
-
-EXP_FUNC void STDCALL MD5_Init(MD5_CTX *);
-EXP_FUNC void STDCALL MD5_Update(MD5_CTX *, const uint8_t *msg, int len);
-EXP_FUNC void STDCALL MD5_Final(uint8_t *digest, MD5_CTX *);
-
-/**************************************************************************
- * HMAC declarations 
- **************************************************************************/
-void hmac_md5(const uint8_t *msg, int length, const uint8_t *key, 
-        int key_len, uint8_t *digest);
-void hmac_sha1(const uint8_t *msg, int length, const uint8_t *key, 
-        int key_len, uint8_t *digest);
-
-/**************************************************************************
- * RSA declarations 
- **************************************************************************/
-
-typedef struct 
-{
-    bigint *m;              /* modulus */
-    bigint *e;              /* public exponent */
-    bigint *d;              /* private exponent */
-#ifdef CONFIG_BIGINT_CRT
-    bigint *p;              /* p as in m = pq */
-    bigint *q;              /* q as in m = pq */
-    bigint *dP;             /* d mod (p-1) */
-    bigint *dQ;             /* d mod (q-1) */
-    bigint *qInv;           /* q^-1 mod p */
-#endif
-    int num_octets;
-    BI_CTX *bi_ctx;
-} RSA_CTX;
-
-void RSA_priv_key_new(RSA_CTX **rsa_ctx, 
-        const uint8_t *modulus, int mod_len,
-        const uint8_t *pub_exp, int pub_len,
-        const uint8_t *priv_exp, int priv_len
-#ifdef CONFIG_BIGINT_CRT
-      , const uint8_t *p, int p_len,
-        const uint8_t *q, int q_len,
-        const uint8_t *dP, int dP_len,
-        const uint8_t *dQ, int dQ_len,
-        const uint8_t *qInv, int qInv_len
-#endif
-        );
-void RSA_pub_key_new(RSA_CTX **rsa_ctx, 
-        const uint8_t *modulus, int mod_len,
-        const uint8_t *pub_exp, int pub_len);
-void RSA_free(RSA_CTX *ctx);
-int RSA_decrypt(const RSA_CTX *ctx, const uint8_t *in_data, uint8_t *out_data,
-        int is_decryption);
-bigint *RSA_private(const RSA_CTX *c, bigint *bi_msg);
-#if defined(CONFIG_SSL_CERT_VERIFICATION) || defined(CONFIG_SSL_GENERATE_X509_CERT)
-bigint *RSA_sign_verify(BI_CTX *ctx, const uint8_t *sig, int sig_len,
-        bigint *modulus, bigint *pub_exp);
-bigint *RSA_public(const RSA_CTX * c, bigint *bi_msg);
-int RSA_encrypt(const RSA_CTX *ctx, const uint8_t *in_data, uint16_t in_len, 
-        uint8_t *out_data, int is_signing);
-void RSA_print(const RSA_CTX *ctx);
-#endif
-
-/**************************************************************************
- * RNG declarations 
- **************************************************************************/
-EXP_FUNC void STDCALL RNG_initialize(const uint8_t *seed_buf, int size);
-EXP_FUNC void STDCALL RNG_terminate(void);
-EXP_FUNC void STDCALL get_random(int num_rand_bytes, uint8_t *rand_data);
-void get_random_NZ(int num_rand_bytes, uint8_t *rand_data);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif 
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/crypto/crypto_misc.c b/package/luci/libs/luci-lib-nixio/axTLS/crypto/crypto_misc.c
deleted file mode 100644 (file)
index 59b72ec..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Some misc. routines to help things out
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include "crypto_misc.h"
-#ifdef CONFIG_WIN32_USE_CRYPTO_LIB
-#include "wincrypt.h"
-#endif
-
-#ifndef WIN32
-static int rng_fd = -1;
-#elif defined(CONFIG_WIN32_USE_CRYPTO_LIB)
-static HCRYPTPROV gCryptProv;
-#endif
-
-#if (!defined(CONFIG_USE_DEV_URANDOM) && !defined(CONFIG_WIN32_USE_CRYPTO_LIB))
-static uint64_t rng_num;
-#endif
-
-static int rng_ref_count;
-const char * const unsupported_str = "Error: Feature not supported\n";
-
-#ifndef CONFIG_SSL_SKELETON_MODE
-/** 
- * Retrieve a file and put it into memory
- * @return The size of the file, or -1 on failure.
- */
-int get_file(const char *filename, uint8_t **buf)
-{
-    int total_bytes = 0;
-    int bytes_read = 0; 
-    int filesize;
-    FILE *stream = fopen(filename, "rb");
-
-    if (stream == NULL)
-    {
-#ifdef CONFIG_SSL_FULL_MODE         
-        printf("file '%s' does not exist\n", filename); TTY_FLUSH();
-#endif
-        return -1;
-    }
-
-    /* Win CE doesn't support stat() */
-    fseek(stream, 0, SEEK_END);
-    filesize = ftell(stream);
-    *buf = (uint8_t *)malloc(filesize);
-    fseek(stream, 0, SEEK_SET);
-
-    do
-    {
-        bytes_read = fread(*buf+total_bytes, 1, filesize-total_bytes, stream);
-        total_bytes += bytes_read;
-    } while (total_bytes < filesize && bytes_read > 0);
-    
-    fclose(stream);
-    return filesize;
-}
-#endif
-
-/**
- * Initialise the Random Number Generator engine.
- * - On Win32 use the platform SDK's crypto engine.
- * - On Linux use /dev/urandom
- * - If none of these work then use a custom RNG.
- */
-EXP_FUNC void STDCALL RNG_initialize(const uint8_t *seed_buf, int size)
-{
-    if (rng_ref_count == 0)
-    {
-#if !defined(WIN32) && defined(CONFIG_USE_DEV_URANDOM)
-        rng_fd = ax_open("/dev/urandom", O_RDONLY);
-#elif defined(WIN32) && defined(CONFIG_WIN32_USE_CRYPTO_LIB)
-        if (!CryptAcquireContext(&gCryptProv, 
-                          NULL, NULL, PROV_RSA_FULL, 0))
-        {
-            if (GetLastError() == NTE_BAD_KEYSET &&
-                    !CryptAcquireContext(&gCryptProv, 
-                           NULL, 
-                           NULL, 
-                           PROV_RSA_FULL, 
-                           CRYPT_NEWKEYSET))
-            {
-                printf("CryptoLib: %x\n", unsupported_str, GetLastError());
-                exit(1);
-            }
-        }
-#else   
-        /* help seed with the user's private key - this is a number that 
-           should be hard to find, due to the fact that it relies on knowing 
-           the private key */
-        int i;  
-
-        for (i = 0; i < size/(int)sizeof(uint64_t); i++)
-            rng_num ^= *((uint64_t *)&seed_buf[i*sizeof(uint64_t)]);
-
-        srand((long)&seed_buf);  /* use the stack ptr as another rnd seed */
-#endif
-    }
-
-    rng_ref_count++;
-}
-
-/**
- * Terminate the RNG engine.
- */
-EXP_FUNC void STDCALL RNG_terminate(void)
-{
-    if (--rng_ref_count == 0)
-    {
-#ifndef WIN32
-        close(rng_fd);
-#elif defined(CONFIG_WIN32_USE_CRYPTO_LIB)
-        CryptReleaseContext(gCryptProv, 0);
-#endif
-    }
-}
-
-/**
- * Set a series of bytes with a random number. Individual bytes can be 0
- */
-EXP_FUNC void STDCALL get_random(int num_rand_bytes, uint8_t *rand_data)
-{   
-#if !defined(WIN32) && defined(CONFIG_USE_DEV_URANDOM)
-    /* use the Linux default */
-    read(rng_fd, rand_data, num_rand_bytes);    /* read from /dev/urandom */
-#elif defined(WIN32) && defined(CONFIG_WIN32_USE_CRYPTO_LIB)
-    /* use Microsoft Crypto Libraries */
-    CryptGenRandom(gCryptProv, num_rand_bytes, rand_data);
-#else   /* nothing else to use, so use a custom RNG */
-    /* The method we use when we've got nothing better. Use RC4, time 
-       and a couple of random seeds to generate a random sequence */
-    RC4_CTX rng_ctx;
-    struct timeval tv;
-    uint64_t big_num1, big_num2;
-
-    gettimeofday(&tv, NULL);    /* yes I know we shouldn't do this */
-
-    /* all numbers by themselves are pretty simple, but combined should 
-     * be a challenge */
-    big_num1 = (uint64_t)tv.tv_sec*(tv.tv_usec+1); 
-    big_num2 = (uint64_t)rand()*big_num1;
-    big_num1 ^= rng_num;
-
-    memcpy(rand_data, &big_num1, sizeof(uint64_t));
-    if (num_rand_bytes > sizeof(uint64_t))
-        memcpy(&rand_data[8], &big_num2, sizeof(uint64_t));
-
-    if (num_rand_bytes > 16)
-    {
-        /* clear rest of data */
-        memset(&rand_data[16], 0, num_rand_bytes-16); 
-    }
-
-    RC4_setup(&rng_ctx, rand_data, 16); /* use as a key */
-    RC4_crypt(&rng_ctx, rand_data, rand_data, num_rand_bytes);
-    
-    /* use last 8 bytes for next time */
-    memcpy(&rng_num, &rand_data[num_rand_bytes-8], sizeof(uint64_t));    
-#endif
-}
-
-/**
- * Set a series of bytes with a random number. Individual bytes are not zero.
- */
-void get_random_NZ(int num_rand_bytes, uint8_t *rand_data)
-{
-    int i;
-    get_random(num_rand_bytes, rand_data);
-
-    for (i = 0; i < num_rand_bytes; i++)
-    {
-        while (rand_data[i] == 0)  /* can't be 0 */
-            rand_data[i] = (uint8_t)(rand());
-    }
-}
-
-/**
- * Some useful diagnostic routines
- */
-#if defined(CONFIG_SSL_FULL_MODE) || defined(CONFIG_DEBUG)
-int hex_finish;
-int hex_index;
-
-static void print_hex_init(int finish)
-{
-    hex_finish = finish;
-    hex_index = 0;
-}
-
-static void print_hex(uint8_t hex)
-{
-    static int column;
-
-    if (hex_index == 0)
-    {
-        column = 0;
-    }
-
-    printf("%02x ", hex);
-    if (++column == 8)
-    {
-        printf(": ");
-    }
-    else if (column >= 16)
-    {
-        printf("\n");
-        column = 0;
-    }
-
-    if (++hex_index >= hex_finish && column > 0)
-    {
-        printf("\n");
-    }
-}
-
-/**
- * Spit out a blob of data for diagnostics. The data is is a nice column format
- * for easy reading.
- *
- * @param format   [in]    The string (with possible embedded format characters)
- * @param size     [in]    The number of numbers to print
- * @param data     [in]    The start of data to use
- * @param ...      [in]    Any additional arguments
- */
-EXP_FUNC void STDCALL print_blob(const char *format, 
-        const uint8_t *data, int size, ...)
-{
-    int i;
-    char tmp[80];
-    va_list(ap);
-
-    va_start(ap, size);
-    sprintf(tmp, "%s\n", format);
-    vprintf(tmp, ap);
-    print_hex_init(size);
-    for (i = 0; i < size; i++)
-    {
-        print_hex(data[i]);
-    }
-
-    va_end(ap);
-    TTY_FLUSH();
-}
-#elif defined(WIN32)
-/* VC6.0 doesn't handle variadic macros */
-EXP_FUNC void STDCALL print_blob(const char *format, const unsigned char *data,
-        int size, ...) {}
-#endif
-
-#if defined(CONFIG_SSL_HAS_PEM) || defined(CONFIG_HTTP_HAS_AUTHORIZATION)
-/* base64 to binary lookup table */
-static const uint8_t map[128] =
-{
-    255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255,  62, 255, 255, 255,  63,
-    52,  53,  54,  55,  56,  57,  58,  59,  60,  61, 255, 255,
-    255, 254, 255, 255, 255,   0,   1,   2,   3,   4,   5,   6,
-    7,   8,   9,  10,  11,  12,  13,  14,  15,  16,  17,  18,
-    19,  20,  21,  22,  23,  24,  25, 255, 255, 255, 255, 255,
-    255,  26,  27,  28,  29,  30,  31,  32,  33,  34,  35,  36,
-    37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,  48,
-    49,  50,  51, 255, 255, 255, 255, 255
-};
-
-EXP_FUNC int STDCALL base64_decode(const char *in, int len,
-                    uint8_t *out, int *outlen)
-{
-    int g, t, x, y, z;
-    uint8_t c;
-    int ret = -1;
-
-    g = 3;
-    for (x = y = z = t = 0; x < len; x++)
-    {
-        if ((c = map[in[x]&0x7F]) == 0xff)
-            continue;
-
-        if (c == 254)   /* this is the end... */
-        {
-            c = 0;
-
-            if (--g < 0)
-                goto error;
-        }
-        else if (g != 3) /* only allow = at end */
-            goto error;
-
-        t = (t<<6) | c;
-
-        if (++y == 4)
-        {
-            out[z++] = (uint8_t)((t>>16)&255);
-
-            if (g > 1)
-                out[z++] = (uint8_t)((t>>8)&255);
-
-            if (g > 2)
-                out[z++] = (uint8_t)(t&255);
-
-            y = t = 0;
-        }
-    }
-
-    if (y != 0)
-        goto error;
-
-    if (outlen)
-        *outlen = z;
-    ret = 0;
-
-error:
-#ifdef CONFIG_SSL_FULL_MODE
-    if (ret < 0)
-        printf("Error: Invalid base64\n"); TTY_FLUSH();
-#endif
-    TTY_FLUSH();
-    return ret;
-
-}
-#endif
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/crypto/hmac.c b/package/luci/libs/luci-lib-nixio/axTLS/crypto/hmac.c
deleted file mode 100644 (file)
index 9199ff2..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * HMAC implementation - This code was originally taken from RFC2104
- */
-
-#include <string.h>
-#include "crypto.h"
-
-/**
- * Perform HMAC-MD5
- */
-void hmac_md5(const uint8_t *msg, int length, const uint8_t *key, 
-        int key_len, uint8_t *digest)
-{
-    MD5_CTX context;
-    uint8_t k_ipad[64];
-    uint8_t k_opad[64];
-    int i;
-
-    memset(k_ipad, 0, sizeof k_ipad);
-    memset(k_opad, 0, sizeof k_opad);
-    memcpy(k_ipad, key, key_len);
-    memcpy(k_opad, key, key_len);
-
-    for (i = 0; i < 64; i++) 
-    {
-        k_ipad[i] ^= 0x36;
-        k_opad[i] ^= 0x5c;
-    }
-
-    MD5_Init(&context);
-    MD5_Update(&context, k_ipad, 64);
-    MD5_Update(&context, msg, length);
-    MD5_Final(digest, &context);
-    MD5_Init(&context);
-    MD5_Update(&context, k_opad, 64);
-    MD5_Update(&context, digest, MD5_SIZE);
-    MD5_Final(digest, &context);
-}
-
-/**
- * Perform HMAC-SHA1
- */
-void hmac_sha1(const uint8_t *msg, int length, const uint8_t *key, 
-        int key_len, uint8_t *digest)
-{
-    SHA1_CTX context;
-    uint8_t k_ipad[64];
-    uint8_t k_opad[64];
-    int i;
-
-    memset(k_ipad, 0, sizeof k_ipad);
-    memset(k_opad, 0, sizeof k_opad);
-    memcpy(k_ipad, key, key_len);
-    memcpy(k_opad, key, key_len);
-
-    for (i = 0; i < 64; i++) 
-    {
-        k_ipad[i] ^= 0x36;
-        k_opad[i] ^= 0x5c;
-    }
-
-    SHA1_Init(&context);
-    SHA1_Update(&context, k_ipad, 64);
-    SHA1_Update(&context, msg, length);
-    SHA1_Final(digest, &context);
-    SHA1_Init(&context);
-    SHA1_Update(&context, k_opad, 64);
-    SHA1_Update(&context, digest, SHA1_SIZE);
-    SHA1_Final(digest, &context);
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/crypto/md2.c b/package/luci/libs/luci-lib-nixio/axTLS/crypto/md2.c
deleted file mode 100644 (file)
index bfcbd24..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- *  RFC 1115/1319 compliant MD2 implementation
- *  The MD2 algorithm was designed by Ron Rivest in 1989.
- *
- *  http://www.ietf.org/rfc/rfc1115.txt
- *  http://www.ietf.org/rfc/rfc1319.txt
- */
-
-#include <string.h>
-#include <stdio.h>
-
-#include "crypto.h"
-
-/**
- * This code is only here to enable the verification of Verisign root
- * certificates. So only enable it for verification mode.
- */
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-
-static const uint8_t PI_SUBST[256] =
-{
-    0x29, 0x2E, 0x43, 0xC9, 0xA2, 0xD8, 0x7C, 0x01, 0x3D, 0x36,
-    0x54, 0xA1, 0xEC, 0xF0, 0x06, 0x13, 0x62, 0xA7, 0x05, 0xF3,
-    0xC0, 0xC7, 0x73, 0x8C, 0x98, 0x93, 0x2B, 0xD9, 0xBC, 0x4C,
-    0x82, 0xCA, 0x1E, 0x9B, 0x57, 0x3C, 0xFD, 0xD4, 0xE0, 0x16,
-    0x67, 0x42, 0x6F, 0x18, 0x8A, 0x17, 0xE5, 0x12, 0xBE, 0x4E,
-    0xC4, 0xD6, 0xDA, 0x9E, 0xDE, 0x49, 0xA0, 0xFB, 0xF5, 0x8E,
-    0xBB, 0x2F, 0xEE, 0x7A, 0xA9, 0x68, 0x79, 0x91, 0x15, 0xB2,
-    0x07, 0x3F, 0x94, 0xC2, 0x10, 0x89, 0x0B, 0x22, 0x5F, 0x21,
-    0x80, 0x7F, 0x5D, 0x9A, 0x5A, 0x90, 0x32, 0x27, 0x35, 0x3E,
-    0xCC, 0xE7, 0xBF, 0xF7, 0x97, 0x03, 0xFF, 0x19, 0x30, 0xB3,
-    0x48, 0xA5, 0xB5, 0xD1, 0xD7, 0x5E, 0x92, 0x2A, 0xAC, 0x56,
-    0xAA, 0xC6, 0x4F, 0xB8, 0x38, 0xD2, 0x96, 0xA4, 0x7D, 0xB6,
-    0x76, 0xFC, 0x6B, 0xE2, 0x9C, 0x74, 0x04, 0xF1, 0x45, 0x9D,
-    0x70, 0x59, 0x64, 0x71, 0x87, 0x20, 0x86, 0x5B, 0xCF, 0x65,
-    0xE6, 0x2D, 0xA8, 0x02, 0x1B, 0x60, 0x25, 0xAD, 0xAE, 0xB0,
-    0xB9, 0xF6, 0x1C, 0x46, 0x61, 0x69, 0x34, 0x40, 0x7E, 0x0F,
-    0x55, 0x47, 0xA3, 0x23, 0xDD, 0x51, 0xAF, 0x3A, 0xC3, 0x5C,
-    0xF9, 0xCE, 0xBA, 0xC5, 0xEA, 0x26, 0x2C, 0x53, 0x0D, 0x6E,
-    0x85, 0x28, 0x84, 0x09, 0xD3, 0xDF, 0xCD, 0xF4, 0x41, 0x81,
-    0x4D, 0x52, 0x6A, 0xDC, 0x37, 0xC8, 0x6C, 0xC1, 0xAB, 0xFA,
-    0x24, 0xE1, 0x7B, 0x08, 0x0C, 0xBD, 0xB1, 0x4A, 0x78, 0x88,
-    0x95, 0x8B, 0xE3, 0x63, 0xE8, 0x6D, 0xE9, 0xCB, 0xD5, 0xFE,
-    0x3B, 0x00, 0x1D, 0x39, 0xF2, 0xEF, 0xB7, 0x0E, 0x66, 0x58,
-    0xD0, 0xE4, 0xA6, 0x77, 0x72, 0xF8, 0xEB, 0x75, 0x4B, 0x0A,
-    0x31, 0x44, 0x50, 0xB4, 0x8F, 0xED, 0x1F, 0x1A, 0xDB, 0x99,
-    0x8D, 0x33, 0x9F, 0x11, 0x83, 0x14
-};
-
-/*
- * MD2 context setup
- */
-EXP_FUNC void STDCALL MD2_Init(MD2_CTX *ctx)
-{
-    memset(ctx, 0, sizeof *ctx);
-}
-
-static void md2_process(MD2_CTX *ctx)
-{
-    int i, j;
-    uint8_t t = 0;
-
-    for (i = 0; i < 16; i++)
-    {
-        ctx->state[i + 16] = ctx->buffer[i];
-        ctx->state[i + 32] = ctx->buffer[i] ^ ctx->state[i];
-    }
-
-    for (i = 0; i < 18; i++)
-    {
-        for (j = 0; j < 48; j++)
-            t = (ctx->state[j] ^= PI_SUBST[t]);
-
-        t = (t + i) & 0xFF;
-    }
-
-    t = ctx->cksum[15];
-
-    for (i = 0; i < 16; i++)
-        t = (ctx->cksum[i] ^= PI_SUBST[ctx->buffer[i] ^ t]);
-}
-
-/*
- * MD2 process buffer
- */
-EXP_FUNC void STDCALL MD2_Update(MD2_CTX *ctx, const uint8_t *input, int ilen)
-{
-    int fill;
-
-    while (ilen > 0)
-    {
-        if (ctx->left + ilen > 16)
-            fill = 16 - ctx->left;
-        else
-            fill = ilen;
-
-        memcpy(ctx->buffer + ctx->left, input, fill);
-
-        ctx->left += fill;
-        input += fill;
-        ilen  -= fill;
-
-        if (ctx->left == 16)
-        {
-            ctx->left = 0;
-            md2_process(ctx);
-        }
-    }
-}
-
-/*
- * MD2 final digest
- */
-EXP_FUNC void STDCALL MD2_Final(uint8_t *output, MD2_CTX *ctx)
-{
-    int i;
-    uint8_t x;
-
-    x = (uint8_t)(16 - ctx->left);
-
-    for (i = ctx->left; i < 16; i++)
-        ctx->buffer[i] = x;
-
-    md2_process(ctx);
-
-    memcpy(ctx->buffer, ctx->cksum, 16);
-    md2_process(ctx);
-
-    memcpy(output, ctx->state, 16);
-}
-
-#endif
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/crypto/md5.c b/package/luci/libs/luci-lib-nixio/axTLS/crypto/md5.c
deleted file mode 100644 (file)
index b4f86ca..0000000
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * This file implements the MD5 algorithm as defined in RFC1321
- */
-
-#include <string.h>
-#include "crypto.h"
-
-/* Constants for MD5Transform routine.
- */
-#define S11 7
-#define S12 12
-#define S13 17
-#define S14 22
-#define S21 5
-#define S22 9
-#define S23 14
-#define S24 20
-#define S31 4
-#define S32 11
-#define S33 16
-#define S34 23
-#define S41 6
-#define S42 10
-#define S43 15
-#define S44 21
-
-/* ----- static functions ----- */
-static void MD5Transform(uint32_t state[4], const uint8_t block[64]);
-static void Encode(uint8_t *output, uint32_t *input, uint32_t len);
-static void Decode(uint32_t *output, const uint8_t *input, uint32_t len);
-
-static const uint8_t PADDING[64] = 
-{
-    0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-/* F, G, H and I are basic MD5 functions.
- */
-#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
-#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
-#define H(x, y, z) ((x) ^ (y) ^ (z))
-#define I(x, y, z) ((y) ^ ((x) | (~z)))
-
-/* ROTATE_LEFT rotates x left n bits.  */
-#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
-
-/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
-   Rotation is separate from addition to prevent recomputation.  */
-#define FF(a, b, c, d, x, s, ac) { \
-    (a) += F ((b), (c), (d)) + (x) + (uint32_t)(ac); \
-    (a) = ROTATE_LEFT ((a), (s)); \
-    (a) += (b); \
-  }
-#define GG(a, b, c, d, x, s, ac) { \
-    (a) += G ((b), (c), (d)) + (x) + (uint32_t)(ac); \
-    (a) = ROTATE_LEFT ((a), (s)); \
-    (a) += (b); \
-  }
-#define HH(a, b, c, d, x, s, ac) { \
-    (a) += H ((b), (c), (d)) + (x) + (uint32_t)(ac); \
-    (a) = ROTATE_LEFT ((a), (s)); \
-    (a) += (b); \
-  }
-#define II(a, b, c, d, x, s, ac) { \
-    (a) += I ((b), (c), (d)) + (x) + (uint32_t)(ac); \
-    (a) = ROTATE_LEFT ((a), (s)); \
-    (a) += (b); \
-  }
-
-/**
- * MD5 initialization - begins an MD5 operation, writing a new ctx.
- */
-EXP_FUNC void STDCALL MD5_Init(MD5_CTX *ctx)
-{
-    ctx->count[0] = ctx->count[1] = 0;
-
-    /* Load magic initialization constants.
-     */
-    ctx->state[0] = 0x67452301;
-    ctx->state[1] = 0xefcdab89;
-    ctx->state[2] = 0x98badcfe;
-    ctx->state[3] = 0x10325476;
-}
-
-/**
- * Accepts an array of octets as the next portion of the message.
- */
-EXP_FUNC void STDCALL MD5_Update(MD5_CTX *ctx, const uint8_t * msg, int len)
-{
-    uint32_t x;
-    int i, partLen;
-
-    /* Compute number of bytes mod 64 */
-    x = (uint32_t)((ctx->count[0] >> 3) & 0x3F);
-
-    /* Update number of bits */
-    if ((ctx->count[0] += ((uint32_t)len << 3)) < ((uint32_t)len << 3))
-        ctx->count[1]++;
-    ctx->count[1] += ((uint32_t)len >> 29);
-
-    partLen = 64 - x;
-
-    /* Transform as many times as possible.  */
-    if (len >= partLen) 
-    {
-        memcpy(&ctx->buffer[x], msg, partLen);
-        MD5Transform(ctx->state, ctx->buffer);
-
-        for (i = partLen; i + 63 < len; i += 64)
-            MD5Transform(ctx->state, &msg[i]);
-
-        x = 0;
-    }
-    else
-        i = 0;
-
-    /* Buffer remaining input */
-    memcpy(&ctx->buffer[x], &msg[i], len-i);
-}
-
-/**
- * Return the 128-bit message digest into the user's array
- */
-EXP_FUNC void STDCALL MD5_Final(uint8_t *digest, MD5_CTX *ctx)
-{
-    uint8_t bits[8];
-    uint32_t x, padLen;
-
-    /* Save number of bits */
-    Encode(bits, ctx->count, 8);
-
-    /* Pad out to 56 mod 64.
-     */
-    x = (uint32_t)((ctx->count[0] >> 3) & 0x3f);
-    padLen = (x < 56) ? (56 - x) : (120 - x);
-    MD5_Update(ctx, PADDING, padLen);
-
-    /* Append length (before padding) */
-    MD5_Update(ctx, bits, 8);
-
-    /* Store state in digest */
-    Encode(digest, ctx->state, MD5_SIZE);
-}
-
-/**
- * MD5 basic transformation. Transforms state based on block.
- */
-static void MD5Transform(uint32_t state[4], const uint8_t block[64])
-{
-    uint32_t a = state[0], b = state[1], c = state[2], 
-             d = state[3], x[MD5_SIZE];
-
-    Decode(x, block, 64);
-
-    /* Round 1 */
-    FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
-    FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
-    FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
-    FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
-    FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
-    FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
-    FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
-    FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
-    FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
-    FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
-    FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
-    FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
-    FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
-    FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
-    FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
-    FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
-
-    /* Round 2 */
-    GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
-    GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
-    GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
-    GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
-    GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
-    GG (d, a, b, c, x[10], S22,  0x2441453); /* 22 */
-    GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
-    GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
-    GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
-    GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
-    GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
-    GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
-    GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
-    GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
-    GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
-    GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
-
-    /* Round 3 */
-    HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
-    HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
-    HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
-    HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
-    HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
-    HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
-    HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
-    HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
-    HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
-    HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
-    HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
-    HH (b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */
-    HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
-    HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
-    HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
-    HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
-
-    /* Round 4 */
-    II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
-    II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
-    II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
-    II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
-    II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
-    II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
-    II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
-    II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
-    II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
-    II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
-    II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
-    II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
-    II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
-    II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
-    II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
-    II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
-
-    state[0] += a;
-    state[1] += b;
-    state[2] += c;
-    state[3] += d;
-}
-
-/**
- * Encodes input (uint32_t) into output (uint8_t). Assumes len is
- *   a multiple of 4.
- */
-static void Encode(uint8_t *output, uint32_t *input, uint32_t len)
-{
-    uint32_t i, j;
-
-    for (i = 0, j = 0; j < len; i++, j += 4) 
-    {
-        output[j] = (uint8_t)(input[i] & 0xff);
-        output[j+1] = (uint8_t)((input[i] >> 8) & 0xff);
-        output[j+2] = (uint8_t)((input[i] >> 16) & 0xff);
-        output[j+3] = (uint8_t)((input[i] >> 24) & 0xff);
-    }
-}
-
-/**
- *  Decodes input (uint8_t) into output (uint32_t). Assumes len is
- *   a multiple of 4.
- */
-static void Decode(uint32_t *output, const uint8_t *input, uint32_t len)
-{
-    uint32_t i, j;
-
-    for (i = 0, j = 0; j < len; i++, j += 4)
-        output[i] = ((uint32_t)input[j]) | (((uint32_t)input[j+1]) << 8) |
-            (((uint32_t)input[j+2]) << 16) | (((uint32_t)input[j+3]) << 24);
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/crypto/rc4.c b/package/luci/libs/luci-lib-nixio/axTLS/crypto/rc4.c
deleted file mode 100644 (file)
index 57136b8..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * An implementation of the RC4/ARC4 algorithm.
- * Originally written by Christophe Devine.
- */
-
-#include <string.h>
-#include "crypto.h"
-
-/**
- * Get ready for an encrypt/decrypt operation
- */
-void RC4_setup(RC4_CTX *ctx, const uint8_t *key, int length)
-{
-    int i, j = 0, k = 0, a;
-    uint8_t *m;
-
-    ctx->x = 0;
-    ctx->y = 0;
-    m = ctx->m;
-
-    for (i = 0; i < 256; i++)
-        m[i] = i;
-
-    for (i = 0; i < 256; i++)
-    {
-        a = m[i];
-        j = (uint8_t)(j + a + key[k]);
-        m[i] = m[j]; 
-        m[j] = a;
-
-        if (++k >= length) 
-            k = 0;
-    }
-}
-
-/**
- * Perform the encrypt/decrypt operation (can use it for either since
- * this is a stream cipher).
- */
-void RC4_crypt(RC4_CTX *ctx, const uint8_t *msg, uint8_t *out, int length)
-{ 
-    int i;
-    uint8_t *m, x, y, a, b;
-    out = (uint8_t *)msg; 
-
-    x = ctx->x;
-    y = ctx->y;
-    m = ctx->m;
-
-    for (i = 0; i < length; i++)
-    {
-        a = m[++x];
-        y += a;
-        m[x] = b = m[y];
-        m[y] = a;
-        out[i] ^= m[(uint8_t)(a + b)];
-    }
-
-    ctx->x = x;
-    ctx->y = y;
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/crypto/rsa.c b/package/luci/libs/luci-lib-nixio/axTLS/crypto/rsa.c
deleted file mode 100644 (file)
index 31627bb..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Implements the RSA public encryption algorithm. Uses the bigint library to
- * perform its calculations.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-#include <stdlib.h>
-#include "crypto.h"
-
-void RSA_priv_key_new(RSA_CTX **ctx, 
-        const uint8_t *modulus, int mod_len,
-        const uint8_t *pub_exp, int pub_len,
-        const uint8_t *priv_exp, int priv_len
-#if CONFIG_BIGINT_CRT
-      , const uint8_t *p, int p_len,
-        const uint8_t *q, int q_len,
-        const uint8_t *dP, int dP_len,
-        const uint8_t *dQ, int dQ_len,
-        const uint8_t *qInv, int qInv_len
-#endif
-    )
-{
-    RSA_CTX *rsa_ctx;
-    BI_CTX *bi_ctx;
-    RSA_pub_key_new(ctx, modulus, mod_len, pub_exp, pub_len);
-    rsa_ctx = *ctx;
-    bi_ctx = rsa_ctx->bi_ctx;
-    rsa_ctx->d = bi_import(bi_ctx, priv_exp, priv_len);
-    bi_permanent(rsa_ctx->d);
-
-#ifdef CONFIG_BIGINT_CRT
-    rsa_ctx->p = bi_import(bi_ctx, p, p_len);
-    rsa_ctx->q = bi_import(bi_ctx, q, q_len);
-    rsa_ctx->dP = bi_import(bi_ctx, dP, dP_len);
-    rsa_ctx->dQ = bi_import(bi_ctx, dQ, dQ_len);
-    rsa_ctx->qInv = bi_import(bi_ctx, qInv, qInv_len);
-    bi_permanent(rsa_ctx->dP);
-    bi_permanent(rsa_ctx->dQ);
-    bi_permanent(rsa_ctx->qInv);
-    bi_set_mod(bi_ctx, rsa_ctx->p, BIGINT_P_OFFSET);
-    bi_set_mod(bi_ctx, rsa_ctx->q, BIGINT_Q_OFFSET);
-#endif
-}
-
-void RSA_pub_key_new(RSA_CTX **ctx, 
-        const uint8_t *modulus, int mod_len,
-        const uint8_t *pub_exp, int pub_len)
-{
-    RSA_CTX *rsa_ctx;
-    BI_CTX *bi_ctx;
-
-    if (*ctx)   /* if we load multiple certs, dump the old one */
-        RSA_free(*ctx);
-
-    bi_ctx = bi_initialize();
-    *ctx = (RSA_CTX *)calloc(1, sizeof(RSA_CTX));
-    rsa_ctx = *ctx;
-    rsa_ctx->bi_ctx = bi_ctx;
-    rsa_ctx->num_octets = (mod_len & 0xFFF0);
-    rsa_ctx->m = bi_import(bi_ctx, modulus, mod_len);
-    bi_set_mod(bi_ctx, rsa_ctx->m, BIGINT_M_OFFSET);
-    rsa_ctx->e = bi_import(bi_ctx, pub_exp, pub_len);
-    bi_permanent(rsa_ctx->e);
-}
-
-/**
- * Free up any RSA context resources.
- */
-void RSA_free(RSA_CTX *rsa_ctx)
-{
-    BI_CTX *bi_ctx;
-    if (rsa_ctx == NULL)                /* deal with ptrs that are null */
-        return;
-
-    bi_ctx = rsa_ctx->bi_ctx;
-
-    bi_depermanent(rsa_ctx->e);
-    bi_free(bi_ctx, rsa_ctx->e);
-    bi_free_mod(rsa_ctx->bi_ctx, BIGINT_M_OFFSET);
-
-    if (rsa_ctx->d)
-    {
-        bi_depermanent(rsa_ctx->d);
-        bi_free(bi_ctx, rsa_ctx->d);
-#ifdef CONFIG_BIGINT_CRT
-        bi_depermanent(rsa_ctx->dP);
-        bi_depermanent(rsa_ctx->dQ);
-        bi_depermanent(rsa_ctx->qInv);
-        bi_free(bi_ctx, rsa_ctx->dP);
-        bi_free(bi_ctx, rsa_ctx->dQ);
-        bi_free(bi_ctx, rsa_ctx->qInv);
-        bi_free_mod(rsa_ctx->bi_ctx, BIGINT_P_OFFSET);
-        bi_free_mod(rsa_ctx->bi_ctx, BIGINT_Q_OFFSET);
-#endif
-    }
-
-    bi_terminate(bi_ctx);
-    free(rsa_ctx);
-}
-
-/**
- * @brief Use PKCS1.5 for decryption/verification.
- * @param ctx [in] The context
- * @param in_data [in] The data to encrypt (must be < modulus size-11)
- * @param out_data [out] The encrypted data.
- * @param is_decryption [in] Decryption or verify operation.
- * @return  The number of bytes that were originally encrypted. -1 on error.
- * @see http://www.rsasecurity.com/rsalabs/node.asp?id=2125
- */
-int RSA_decrypt(const RSA_CTX *ctx, const uint8_t *in_data, 
-                            uint8_t *out_data, int is_decryption)
-{
-    const int byte_size = ctx->num_octets;
-    int i, size;
-    bigint *decrypted_bi, *dat_bi;
-    uint8_t *block = (uint8_t *)alloca(byte_size);
-
-    memset(out_data, 0, byte_size); /* initialise */
-
-    /* decrypt */
-    dat_bi = bi_import(ctx->bi_ctx, in_data, byte_size);
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-    decrypted_bi = is_decryption ?  /* decrypt or verify? */
-            RSA_private(ctx, dat_bi) : RSA_public(ctx, dat_bi);
-#else   /* always a decryption */
-    decrypted_bi = RSA_private(ctx, dat_bi);
-#endif
-
-    /* convert to a normal block */
-    bi_export(ctx->bi_ctx, decrypted_bi, block, byte_size);
-
-    i = 10; /* start at the first possible non-padded byte */
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-    if (is_decryption == 0) /* PKCS1.5 signing pads with "0xff"s */
-    {
-        while (block[i++] == 0xff && i < byte_size);
-
-        if (block[i-2] != 0xff)
-            i = byte_size;     /*ensure size is 0 */   
-    }
-    else                    /* PKCS1.5 encryption padding is random */
-#endif
-    {
-        while (block[i++] && i < byte_size);
-    }
-    size = byte_size - i;
-
-    /* get only the bit we want */
-    if (size > 0)
-        memcpy(out_data, &block[i], size);
-    
-    return size ? size : -1;
-}
-
-/**
- * Performs m = c^d mod n
- */
-bigint *RSA_private(const RSA_CTX *c, bigint *bi_msg)
-{
-#ifdef CONFIG_BIGINT_CRT
-    return bi_crt(c->bi_ctx, bi_msg, c->dP, c->dQ, c->p, c->q, c->qInv);
-#else
-    BI_CTX *ctx = c->bi_ctx;
-    ctx->mod_offset = BIGINT_M_OFFSET;
-    return bi_mod_power(ctx, bi_msg, c->d);
-#endif
-}
-
-#ifdef CONFIG_SSL_FULL_MODE
-/**
- * Used for diagnostics.
- */
-void RSA_print(const RSA_CTX *rsa_ctx) 
-{
-    if (rsa_ctx == NULL)
-        return;
-
-    printf("-----------------   RSA DEBUG   ----------------\n");
-    printf("Size:\t%d\n", rsa_ctx->num_octets);
-    bi_print("Modulus", rsa_ctx->m);
-    bi_print("Public Key", rsa_ctx->e);
-    bi_print("Private Key", rsa_ctx->d);
-}
-#endif
-
-#if defined(CONFIG_SSL_CERT_VERIFICATION) || defined(CONFIG_SSL_GENERATE_X509_CERT)
-/**
- * Performs c = m^e mod n
- */
-bigint *RSA_public(const RSA_CTX * c, bigint *bi_msg)
-{
-    c->bi_ctx->mod_offset = BIGINT_M_OFFSET;
-    return bi_mod_power(c->bi_ctx, bi_msg, c->e);
-}
-
-/**
- * Use PKCS1.5 for encryption/signing.
- * see http://www.rsasecurity.com/rsalabs/node.asp?id=2125
- */
-int RSA_encrypt(const RSA_CTX *ctx, const uint8_t *in_data, uint16_t in_len, 
-        uint8_t *out_data, int is_signing)
-{
-    int byte_size = ctx->num_octets;
-    int num_pads_needed = byte_size-in_len-3;
-    bigint *dat_bi, *encrypt_bi;
-
-    /* note: in_len+11 must be > byte_size */
-    out_data[0] = 0;     /* ensure encryption block is < modulus */
-
-    if (is_signing)
-    {
-        out_data[1] = 1;        /* PKCS1.5 signing pads with "0xff"'s */
-        memset(&out_data[2], 0xff, num_pads_needed);
-    }
-    else /* randomize the encryption padding with non-zero bytes */   
-    {
-        out_data[1] = 2;
-        get_random_NZ(num_pads_needed, &out_data[2]);
-    }
-
-    out_data[2+num_pads_needed] = 0;
-    memcpy(&out_data[3+num_pads_needed], in_data, in_len);
-
-    /* now encrypt it */
-    dat_bi = bi_import(ctx->bi_ctx, out_data, byte_size);
-    encrypt_bi = is_signing ? RSA_private(ctx, dat_bi) : 
-                              RSA_public(ctx, dat_bi);
-    bi_export(ctx->bi_ctx, encrypt_bi, out_data, byte_size);
-
-    /* save a few bytes of memory */
-    bi_clear_cache(ctx->bi_ctx);
-    return byte_size;
-}
-
-#endif  /* CONFIG_SSL_CERT_VERIFICATION */
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/crypto/sha1.c b/package/luci/libs/luci-lib-nixio/axTLS/crypto/sha1.c
deleted file mode 100644 (file)
index be19100..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * SHA1 implementation - as defined in FIPS PUB 180-1 published April 17, 1995.
- * This code was originally taken from RFC3174
- */
-
-#include <string.h>
-#include "crypto.h"
-
-/*
- *  Define the SHA1 circular left shift macro
- */
-#define SHA1CircularShift(bits,word) \
-                (((word) << (bits)) | ((word) >> (32-(bits))))
-
-/* ----- static functions ----- */
-static void SHA1PadMessage(SHA1_CTX *ctx);
-static void SHA1ProcessMessageBlock(SHA1_CTX *ctx);
-
-/**
- * Initialize the SHA1 context 
- */
-void SHA1_Init(SHA1_CTX *ctx)
-{
-    ctx->Length_Low             = 0;
-    ctx->Length_High            = 0;
-    ctx->Message_Block_Index    = 0;
-    ctx->Intermediate_Hash[0]   = 0x67452301;
-    ctx->Intermediate_Hash[1]   = 0xEFCDAB89;
-    ctx->Intermediate_Hash[2]   = 0x98BADCFE;
-    ctx->Intermediate_Hash[3]   = 0x10325476;
-    ctx->Intermediate_Hash[4]   = 0xC3D2E1F0;
-}
-
-/**
- * Accepts an array of octets as the next portion of the message.
- */
-void SHA1_Update(SHA1_CTX *ctx, const uint8_t *msg, int len)
-{
-    while (len--)
-    {
-        ctx->Message_Block[ctx->Message_Block_Index++] = (*msg & 0xFF);
-        ctx->Length_Low += 8;
-
-        if (ctx->Length_Low == 0)
-            ctx->Length_High++;
-
-        if (ctx->Message_Block_Index == 64)
-            SHA1ProcessMessageBlock(ctx);
-
-        msg++;
-    }
-}
-
-/**
- * Return the 160-bit message digest into the user's array
- */
-void SHA1_Final(uint8_t *digest, SHA1_CTX *ctx)
-{
-    int i;
-
-    SHA1PadMessage(ctx);
-    memset(ctx->Message_Block, 0, 64);
-    ctx->Length_Low = 0;    /* and clear length */
-    ctx->Length_High = 0;
-
-    for  (i = 0; i < SHA1_SIZE; i++)
-    {
-        digest[i] = ctx->Intermediate_Hash[i>>2] >> 8 * ( 3 - ( i & 0x03 ) );
-    }
-}
-
-/**
- * Process the next 512 bits of the message stored in the array.
- */
-static void SHA1ProcessMessageBlock(SHA1_CTX *ctx)
-{
-    const uint32_t K[] =    {       /* Constants defined in SHA-1   */
-                            0x5A827999,
-                            0x6ED9EBA1,
-                            0x8F1BBCDC,
-                            0xCA62C1D6
-                            };
-    int        t;                 /* Loop counter                */
-    uint32_t      temp;              /* Temporary word value        */
-    uint32_t      W[80];             /* Word sequence               */
-    uint32_t      A, B, C, D, E;     /* Word buffers                */
-
-    /*
-     *  Initialize the first 16 words in the array W
-     */
-    for  (t = 0; t < 16; t++)
-    {
-        W[t] = ctx->Message_Block[t * 4] << 24;
-        W[t] |= ctx->Message_Block[t * 4 + 1] << 16;
-        W[t] |= ctx->Message_Block[t * 4 + 2] << 8;
-        W[t] |= ctx->Message_Block[t * 4 + 3];
-    }
-
-    for (t = 16; t < 80; t++)
-    {
-       W[t] = SHA1CircularShift(1,W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16]);
-    }
-
-    A = ctx->Intermediate_Hash[0];
-    B = ctx->Intermediate_Hash[1];
-    C = ctx->Intermediate_Hash[2];
-    D = ctx->Intermediate_Hash[3];
-    E = ctx->Intermediate_Hash[4];
-
-    for (t = 0; t < 20; t++)
-    {
-        temp =  SHA1CircularShift(5,A) +
-                ((B & C) | ((~B) & D)) + E + W[t] + K[0];
-        E = D;
-        D = C;
-        C = SHA1CircularShift(30,B);
-
-        B = A;
-        A = temp;
-    }
-
-    for (t = 20; t < 40; t++)
-    {
-        temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[1];
-        E = D;
-        D = C;
-        C = SHA1CircularShift(30,B);
-        B = A;
-        A = temp;
-    }
-
-    for (t = 40; t < 60; t++)
-    {
-        temp = SHA1CircularShift(5,A) +
-               ((B & C) | (B & D) | (C & D)) + E + W[t] + K[2];
-        E = D;
-        D = C;
-        C = SHA1CircularShift(30,B);
-        B = A;
-        A = temp;
-    }
-
-    for (t = 60; t < 80; t++)
-    {
-        temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[3];
-        E = D;
-        D = C;
-        C = SHA1CircularShift(30,B);
-        B = A;
-        A = temp;
-    }
-
-    ctx->Intermediate_Hash[0] += A;
-    ctx->Intermediate_Hash[1] += B;
-    ctx->Intermediate_Hash[2] += C;
-    ctx->Intermediate_Hash[3] += D;
-    ctx->Intermediate_Hash[4] += E;
-    ctx->Message_Block_Index = 0;
-}
-
-/*
- * According to the standard, the message must be padded to an even
- * 512 bits.  The first padding bit must be a '1'.  The last 64
- * bits represent the length of the original message.  All bits in
- * between should be 0.  This function will pad the message
- * according to those rules by filling the Message_Block array
- * accordingly.  It will also call the ProcessMessageBlock function
- * provided appropriately.  When it returns, it can be assumed that
- * the message digest has been computed.
- *
- * @param ctx [in, out] The SHA1 context
- */
-static void SHA1PadMessage(SHA1_CTX *ctx)
-{
-    /*
-     *  Check to see if the current message block is too small to hold
-     *  the initial padding bits and length.  If so, we will pad the
-     *  block, process it, and then continue padding into a second
-     *  block.
-     */
-    if (ctx->Message_Block_Index > 55)
-    {
-        ctx->Message_Block[ctx->Message_Block_Index++] = 0x80;
-        while(ctx->Message_Block_Index < 64)
-        {
-            ctx->Message_Block[ctx->Message_Block_Index++] = 0;
-        }
-
-        SHA1ProcessMessageBlock(ctx);
-
-        while (ctx->Message_Block_Index < 56)
-        {
-            ctx->Message_Block[ctx->Message_Block_Index++] = 0;
-        }
-    }
-    else
-    {
-        ctx->Message_Block[ctx->Message_Block_Index++] = 0x80;
-        while(ctx->Message_Block_Index < 56)
-        {
-
-            ctx->Message_Block[ctx->Message_Block_Index++] = 0;
-        }
-    }
-
-    /*
-     *  Store the message length as the last 8 octets
-     */
-    ctx->Message_Block[56] = ctx->Length_High >> 24;
-    ctx->Message_Block[57] = ctx->Length_High >> 16;
-    ctx->Message_Block[58] = ctx->Length_High >> 8;
-    ctx->Message_Block[59] = ctx->Length_High;
-    ctx->Message_Block[60] = ctx->Length_Low >> 24;
-    ctx->Message_Block[61] = ctx->Length_Low >> 16;
-    ctx->Message_Block[62] = ctx->Length_Low >> 8;
-    ctx->Message_Block[63] = ctx->Length_Low;
-    SHA1ProcessMessageBlock(ctx);
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/docsrc/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/docsrc/Makefile
deleted file mode 100644 (file)
index 2826686..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-include ../config/makefile.conf
-
-all:
-
-doco:
-       doxygen ./axTLS.dox
-
-clean::
-       @-rm -fr html *~
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/docsrc/axTLS.dox b/package/luci/libs/luci-lib-nixio/axTLS/docsrc/axTLS.dox
deleted file mode 100644 (file)
index d9959b2..0000000
+++ /dev/null
@@ -1,1237 +0,0 @@
-# Doxyfile 1.4.5\r
-\r
-# This file describes the settings to be used by the documentation system\r
-# doxygen (www.doxygen.org) for a project\r
-#\r
-# All text after a hash (#) is considered a comment and will be ignored\r
-# The format is:\r
-#       TAG = value [value, ...]\r
-# For lists items can also be appended using:\r
-#       TAG += value [value, ...]\r
-# Values that contain spaces should be placed between quotes (" ")\r
-\r
-#---------------------------------------------------------------------------\r
-# Project related configuration options\r
-#---------------------------------------------------------------------------\r
-\r
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded \r
-# by quotes) that should identify the project.\r
-\r
-PROJECT_NAME           = axTLS\r
-\r
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. \r
-# This could be handy for archiving the generated documentation or \r
-# if some version control system is used.\r
-\r
-PROJECT_NUMBER         = \r
-\r
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) \r
-# base path where the generated documentation will be put. \r
-# If a relative path is entered, it will be relative to the location \r
-# where doxygen was started. If left blank the current directory will be used.\r
-\r
-OUTPUT_DIRECTORY       = \r
-\r
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create \r
-# 4096 sub-directories (in 2 levels) under the output directory of each output \r
-# format and will distribute the generated files over these directories. \r
-# Enabling this option can be useful when feeding doxygen a huge amount of \r
-# source files, where putting all generated files in the same directory would \r
-# otherwise cause performance problems for the file system.\r
-\r
-CREATE_SUBDIRS         = NO\r
-\r
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all \r
-# documentation generated by doxygen is written. Doxygen will use this \r
-# information to generate all constant output in the proper language. \r
-# The default language is English, other supported languages are: \r
-# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, \r
-# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, \r
-# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, \r
-# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, \r
-# Swedish, and Ukrainian.\r
-\r
-OUTPUT_LANGUAGE        = English\r
-\r
-# This tag can be used to specify the encoding used in the generated output. \r
-# The encoding is not always determined by the language that is chosen, \r
-# but also whether or not the output is meant for Windows or non-Windows users. \r
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES \r
-# forces the Windows encoding (this is the default for the Windows binary), \r
-# whereas setting the tag to NO uses a Unix-style encoding (the default for \r
-# all platforms other than Windows).\r
-\r
-USE_WINDOWS_ENCODING   = NO\r
-\r
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will \r
-# include brief member descriptions after the members that are listed in \r
-# the file and class documentation (similar to JavaDoc). \r
-# Set to NO to disable this.\r
-\r
-BRIEF_MEMBER_DESC      = YES\r
-\r
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend \r
-# the brief description of a member or function before the detailed description. \r
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the \r
-# brief descriptions will be completely suppressed.\r
-\r
-REPEAT_BRIEF           = YES\r
-\r
-# This tag implements a quasi-intelligent brief description abbreviator \r
-# that is used to form the text in various listings. Each string \r
-# in this list, if found as the leading text of the brief description, will be \r
-# stripped from the text and the result after processing the whole list, is \r
-# used as the annotated text. Otherwise, the brief description is used as-is. \r
-# If left blank, the following values are used ("$name" is automatically \r
-# replaced with the name of the entity): "The $name class" "The $name widget" \r
-# "The $name file" "is" "provides" "specifies" "contains" \r
-# "represents" "a" "an" "the"\r
-\r
-ABBREVIATE_BRIEF       = \r
-\r
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then \r
-# Doxygen will generate a detailed section even if there is only a brief \r
-# description.\r
-\r
-ALWAYS_DETAILED_SEC    = NO\r
-\r
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all \r
-# inherited members of a class in the documentation of that class as if those \r
-# members were ordinary class members. Constructors, destructors and assignment \r
-# operators of the base classes will not be shown.\r
-\r
-INLINE_INHERITED_MEMB  = NO\r
-\r
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full \r
-# path before files name in the file list and in the header files. If set \r
-# to NO the shortest path that makes the file name unique will be used.\r
-\r
-FULL_PATH_NAMES        = NO\r
-\r
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag \r
-# can be used to strip a user-defined part of the path. Stripping is \r
-# only done if one of the specified strings matches the left-hand part of \r
-# the path. The tag can be used to show relative paths in the file list. \r
-# If left blank the directory from which doxygen is run is used as the \r
-# path to strip.\r
-\r
-STRIP_FROM_PATH        = \r
-\r
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of \r
-# the path mentioned in the documentation of a class, which tells \r
-# the reader which header file to include in order to use a class. \r
-# If left blank only the name of the header file containing the class \r
-# definition is used. Otherwise one should specify the include paths that \r
-# are normally passed to the compiler using the -I flag.\r
-\r
-STRIP_FROM_INC_PATH    = \r
-\r
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter \r
-# (but less readable) file names. This can be useful is your file systems \r
-# doesn't support long names like on DOS, Mac, or CD-ROM.\r
-\r
-SHORT_NAMES            = NO\r
-\r
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen \r
-# will interpret the first line (until the first dot) of a JavaDoc-style \r
-# comment as the brief description. If set to NO, the JavaDoc \r
-# comments will behave just like the Qt-style comments (thus requiring an \r
-# explicit @brief command for a brief description.\r
-\r
-JAVADOC_AUTOBRIEF      = NO\r
-\r
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen \r
-# treat a multi-line C++ special comment block (i.e. a block of //! or /// \r
-# comments) as a brief description. This used to be the default behaviour. \r
-# The new default is to treat a multi-line C++ comment block as a detailed \r
-# description. Set this tag to YES if you prefer the old behaviour instead.\r
-\r
-MULTILINE_CPP_IS_BRIEF = NO\r
-\r
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen \r
-# will output the detailed description near the top, like JavaDoc.\r
-# If set to NO, the detailed description appears after the member \r
-# documentation.\r
-\r
-DETAILS_AT_TOP         = NO\r
-\r
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented \r
-# member inherits the documentation from any documented member that it \r
-# re-implements.\r
-\r
-INHERIT_DOCS           = YES\r
-\r
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce \r
-# a new page for each member. If set to NO, the documentation of a member will \r
-# be part of the file/class/namespace that contains it.\r
-\r
-SEPARATE_MEMBER_PAGES  = NO\r
-\r
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. \r
-# Doxygen uses this value to replace tabs by spaces in code fragments.\r
-\r
-TAB_SIZE               = 4\r
-\r
-# This tag can be used to specify a number of aliases that acts \r
-# as commands in the documentation. An alias has the form "name=value". \r
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to \r
-# put the command \sideeffect (or @sideeffect) in the documentation, which \r
-# will result in a user-defined paragraph with heading "Side Effects:". \r
-# You can put \n's in the value part of an alias to insert newlines.\r
-\r
-ALIASES                = \r
-\r
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C \r
-# sources only. Doxygen will then generate output that is more tailored for C. \r
-# For instance, some of the names that are used will be different. The list \r
-# of all members will be omitted, etc.\r
-\r
-OPTIMIZE_OUTPUT_FOR_C  = YES\r
-\r
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java \r
-# sources only. Doxygen will then generate output that is more tailored for Java. \r
-# For instance, namespaces will be presented as packages, qualified scopes \r
-# will look different, etc.\r
-\r
-OPTIMIZE_OUTPUT_JAVA   = NO\r
-\r
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to \r
-# include (a tag file for) the STL sources as input, then you should \r
-# set this tag to YES in order to let doxygen match functions declarations and \r
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. \r
-# func(std::string) {}). This also make the inheritance and collaboration \r
-# diagrams that involve STL classes more complete and accurate.\r
-\r
-BUILTIN_STL_SUPPORT    = NO\r
-\r
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC \r
-# tag is set to YES, then doxygen will reuse the documentation of the first \r
-# member in the group (if any) for the other members of the group. By default \r
-# all members of a group must be documented explicitly.\r
-\r
-DISTRIBUTE_GROUP_DOC   = NO\r
-\r
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of \r
-# the same type (for instance a group of public functions) to be put as a \r
-# subgroup of that type (e.g. under the Public Functions section). Set it to \r
-# NO to prevent subgrouping. Alternatively, this can be done per class using \r
-# the \nosubgrouping command.\r
-\r
-SUBGROUPING            = YES\r
-\r
-#---------------------------------------------------------------------------\r
-# Build related configuration options\r
-#---------------------------------------------------------------------------\r
-\r
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in \r
-# documentation are documented, even if no documentation was available. \r
-# Private class members and static file members will be hidden unless \r
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES\r
-\r
-EXTRACT_ALL            = NO\r
-\r
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class \r
-# will be included in the documentation.\r
-\r
-EXTRACT_PRIVATE        = NO\r
-\r
-# If the EXTRACT_STATIC tag is set to YES all static members of a file \r
-# will be included in the documentation.\r
-\r
-EXTRACT_STATIC         = NO\r
-\r
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) \r
-# defined locally in source files will be included in the documentation. \r
-# If set to NO only classes defined in header files are included.\r
-\r
-EXTRACT_LOCAL_CLASSES  = YES\r
-\r
-# This flag is only useful for Objective-C code. When set to YES local \r
-# methods, which are defined in the implementation section but not in \r
-# the interface are included in the documentation. \r
-# If set to NO (the default) only methods in the interface are included.\r
-\r
-EXTRACT_LOCAL_METHODS  = NO\r
-\r
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all \r
-# undocumented members of documented classes, files or namespaces. \r
-# If set to NO (the default) these members will be included in the \r
-# various overviews, but no documentation section is generated. \r
-# This option has no effect if EXTRACT_ALL is enabled.\r
-\r
-HIDE_UNDOC_MEMBERS     = NO\r
-\r
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all \r
-# undocumented classes that are normally visible in the class hierarchy. \r
-# If set to NO (the default) these classes will be included in the various \r
-# overviews. This option has no effect if EXTRACT_ALL is enabled.\r
-\r
-HIDE_UNDOC_CLASSES     = NO\r
-\r
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all \r
-# friend (class|struct|union) declarations. \r
-# If set to NO (the default) these declarations will be included in the \r
-# documentation.\r
-\r
-HIDE_FRIEND_COMPOUNDS  = NO\r
-\r
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any \r
-# documentation blocks found inside the body of a function. \r
-# If set to NO (the default) these blocks will be appended to the \r
-# function's detailed documentation block.\r
-\r
-HIDE_IN_BODY_DOCS      = NO\r
-\r
-# The INTERNAL_DOCS tag determines if documentation \r
-# that is typed after a \internal command is included. If the tag is set \r
-# to NO (the default) then the documentation will be excluded. \r
-# Set it to YES to include the internal documentation.\r
-\r
-INTERNAL_DOCS          = NO\r
-\r
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate \r
-# file names in lower-case letters. If set to YES upper-case letters are also \r
-# allowed. This is useful if you have classes or files whose names only differ \r
-# in case and if your file system supports case sensitive file names. Windows \r
-# and Mac users are advised to set this option to NO.\r
-\r
-CASE_SENSE_NAMES       = YES\r
-\r
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen \r
-# will show members with their full class and namespace scopes in the \r
-# documentation. If set to YES the scope will be hidden.\r
-\r
-HIDE_SCOPE_NAMES       = NO\r
-\r
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen \r
-# will put a list of the files that are included by a file in the documentation \r
-# of that file.\r
-\r
-SHOW_INCLUDE_FILES     = NO\r
-\r
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] \r
-# is inserted in the documentation for inline members.\r
-\r
-INLINE_INFO            = YES\r
-\r
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen \r
-# will sort the (detailed) documentation of file and class members \r
-# alphabetically by member name. If set to NO the members will appear in \r
-# declaration order.\r
-\r
-SORT_MEMBER_DOCS       = NO\r
-\r
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the \r
-# brief documentation of file, namespace and class members alphabetically \r
-# by member name. If set to NO (the default) the members will appear in \r
-# declaration order.\r
-\r
-SORT_BRIEF_DOCS        = NO\r
-\r
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be \r
-# sorted by fully-qualified names, including namespaces. If set to \r
-# NO (the default), the class list will be sorted only by class name, \r
-# not including the namespace part. \r
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.\r
-# Note: This option applies only to the class list, not to the \r
-# alphabetical list.\r
-\r
-SORT_BY_SCOPE_NAME     = NO\r
-\r
-# The GENERATE_TODOLIST tag can be used to enable (YES) or \r
-# disable (NO) the todo list. This list is created by putting \todo \r
-# commands in the documentation.\r
-\r
-GENERATE_TODOLIST      = YES\r
-\r
-# The GENERATE_TESTLIST tag can be used to enable (YES) or \r
-# disable (NO) the test list. This list is created by putting \test \r
-# commands in the documentation.\r
-\r
-GENERATE_TESTLIST      = YES\r
-\r
-# The GENERATE_BUGLIST tag can be used to enable (YES) or \r
-# disable (NO) the bug list. This list is created by putting \bug \r
-# commands in the documentation.\r
-\r
-GENERATE_BUGLIST       = YES\r
-\r
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or \r
-# disable (NO) the deprecated list. This list is created by putting \r
-# \deprecated commands in the documentation.\r
-\r
-GENERATE_DEPRECATEDLIST= YES\r
-\r
-# The ENABLED_SECTIONS tag can be used to enable conditional \r
-# documentation sections, marked by \if sectionname ... \endif.\r
-\r
-ENABLED_SECTIONS       = \r
-\r
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines \r
-# the initial value of a variable or define consists of for it to appear in \r
-# the documentation. If the initializer consists of more lines than specified \r
-# here it will be hidden. Use a value of 0 to hide initializers completely. \r
-# The appearance of the initializer of individual variables and defines in the \r
-# documentation can be controlled using \showinitializer or \hideinitializer \r
-# command in the documentation regardless of this setting.\r
-\r
-MAX_INITIALIZER_LINES  = 30\r
-\r
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated \r
-# at the bottom of the documentation of classes and structs. If set to YES the \r
-# list will mention the files that were used to generate the documentation.\r
-\r
-SHOW_USED_FILES        = NO\r
-\r
-# If the sources in your project are distributed over multiple directories \r
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy \r
-# in the documentation. The default is YES.\r
-\r
-SHOW_DIRECTORIES       = NO\r
-\r
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that \r
-# doxygen should invoke to get the current version for each file (typically from the \r
-# version control system). Doxygen will invoke the program by executing (via \r
-# popen()) the command <command> <input-file>, where <command> is the value of \r
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file \r
-# provided by doxygen. Whatever the program writes to standard output \r
-# is used as the file version. See the manual for examples.\r
-\r
-FILE_VERSION_FILTER    = \r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to warning and progress messages\r
-#---------------------------------------------------------------------------\r
-\r
-# The QUIET tag can be used to turn on/off the messages that are generated \r
-# by doxygen. Possible values are YES and NO. If left blank NO is used.\r
-\r
-QUIET                  = NO\r
-\r
-# The WARNINGS tag can be used to turn on/off the warning messages that are \r
-# generated by doxygen. Possible values are YES and NO. If left blank \r
-# NO is used.\r
-\r
-WARNINGS               = YES\r
-\r
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings \r
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will \r
-# automatically be disabled.\r
-\r
-WARN_IF_UNDOCUMENTED   = YES\r
-\r
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for \r
-# potential errors in the documentation, such as not documenting some \r
-# parameters in a documented function, or documenting parameters that \r
-# don't exist or using markup commands wrongly.\r
-\r
-WARN_IF_DOC_ERROR      = YES\r
-\r
-# This WARN_NO_PARAMDOC option can be abled to get warnings for \r
-# functions that are documented, but have no documentation for their parameters \r
-# or return value. If set to NO (the default) doxygen will only warn about \r
-# wrong or incomplete parameter documentation, but not about the absence of \r
-# documentation.\r
-\r
-WARN_NO_PARAMDOC       = NO\r
-\r
-# The WARN_FORMAT tag determines the format of the warning messages that \r
-# doxygen can produce. The string should contain the $file, $line, and $text \r
-# tags, which will be replaced by the file and line number from which the \r
-# warning originated and the warning text. Optionally the format may contain \r
-# $version, which will be replaced by the version of the file (if it could \r
-# be obtained via FILE_VERSION_FILTER)\r
-\r
-WARN_FORMAT            = "$file:$line: $text"\r
-\r
-# The WARN_LOGFILE tag can be used to specify a file to which warning \r
-# and error messages should be written. If left blank the output is written \r
-# to stderr.\r
-\r
-WARN_LOGFILE           = \r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the input files\r
-#---------------------------------------------------------------------------\r
-\r
-# The INPUT tag can be used to specify the files and/or directories that contain \r
-# documented source files. You may enter file names like "myfile.cpp" or \r
-# directories like "/usr/src/myproject". Separate the files or directories \r
-# with spaces.\r
-\r
-INPUT                  = ../bindings/csharp/axTLS.cs ../bindings/java/SSL.java ../bindings/java/SSLUtil.java ../bindings/java/SSLCTX.java ../bindings/java/SSLServer.java ../bindings/java/SSLClient.java ../bindings/java/SSLReadHolder.java ../ssl/ssl.h ../crypto/bigint.c ../crypto/bigint.h \r
-\r
-# If the value of the INPUT tag contains directories, you can use the \r
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp \r
-# and *.h) to filter out the source-files in the directories. If left \r
-# blank the following patterns are tested: \r
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx \r
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py\r
-\r
-FILE_PATTERNS          = \r
-\r
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories \r
-# should be searched for input files as well. Possible values are YES and NO. \r
-# If left blank NO is used.\r
-\r
-RECURSIVE              = NO\r
-\r
-# The EXCLUDE tag can be used to specify files and/or directories that should \r
-# excluded from the INPUT source files. This way you can easily exclude a \r
-# subdirectory from a directory tree whose root is specified with the INPUT tag.\r
-\r
-EXCLUDE                = \r
-\r
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or \r
-# directories that are symbolic links (a Unix filesystem feature) are excluded \r
-# from the input.\r
-\r
-EXCLUDE_SYMLINKS       = NO\r
-\r
-# If the value of the INPUT tag contains directories, you can use the \r
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude \r
-# certain files from those directories. Note that the wildcards are matched \r
-# against the file with absolute path, so to exclude all test directories \r
-# for example use the pattern */test/*\r
-\r
-EXCLUDE_PATTERNS       = \r
-\r
-# The EXAMPLE_PATH tag can be used to specify one or more files or \r
-# directories that contain example code fragments that are included (see \r
-# the \include command).\r
-\r
-EXAMPLE_PATH           = \r
-\r
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the \r
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp \r
-# and *.h) to filter out the source-files in the directories. If left \r
-# blank all files are included.\r
-\r
-EXAMPLE_PATTERNS       = \r
-\r
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be \r
-# searched for input files to be used with the \include or \dontinclude \r
-# commands irrespective of the value of the RECURSIVE tag. \r
-# Possible values are YES and NO. If left blank NO is used.\r
-\r
-EXAMPLE_RECURSIVE      = NO\r
-\r
-# The IMAGE_PATH tag can be used to specify one or more files or \r
-# directories that contain image that are included in the documentation (see \r
-# the \image command).\r
-\r
-IMAGE_PATH             = images\r
-\r
-# The INPUT_FILTER tag can be used to specify a program that doxygen should \r
-# invoke to filter for each input file. Doxygen will invoke the filter program \r
-# by executing (via popen()) the command <filter> <input-file>, where <filter> \r
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an \r
-# input file. Doxygen will then use the output that the filter program writes \r
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be \r
-# ignored.\r
-\r
-INPUT_FILTER           = \r
-\r
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern \r
-# basis.  Doxygen will compare the file name with each pattern and apply the \r
-# filter if there is a match.  The filters are a list of the form: \r
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further \r
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER \r
-# is applied to all files.\r
-\r
-FILTER_PATTERNS        = \r
-\r
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using \r
-# INPUT_FILTER) will be used to filter the input files when producing source \r
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).\r
-\r
-FILTER_SOURCE_FILES    = NO\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to source browsing\r
-#---------------------------------------------------------------------------\r
-\r
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will \r
-# be generated. Documented entities will be cross-referenced with these sources. \r
-# Note: To get rid of all source code in the generated output, make sure also \r
-# VERBATIM_HEADERS is set to NO.\r
-\r
-SOURCE_BROWSER         = NO\r
-\r
-# Setting the INLINE_SOURCES tag to YES will include the body \r
-# of functions and classes directly in the documentation.\r
-\r
-INLINE_SOURCES         = NO\r
-\r
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct \r
-# doxygen to hide any special comment blocks from generated source code \r
-# fragments. Normal C and C++ comments will always remain visible.\r
-\r
-STRIP_CODE_COMMENTS    = YES\r
-\r
-# If the REFERENCED_BY_RELATION tag is set to YES (the default) \r
-# then for each documented function all documented \r
-# functions referencing it will be listed.\r
-\r
-REFERENCED_BY_RELATION = YES\r
-\r
-# If the REFERENCES_RELATION tag is set to YES (the default) \r
-# then for each documented function all documented entities \r
-# called/used by that function will be listed.\r
-\r
-REFERENCES_RELATION    = YES\r
-\r
-# If the USE_HTAGS tag is set to YES then the references to source code \r
-# will point to the HTML generated by the htags(1) tool instead of doxygen \r
-# built-in source browser. The htags tool is part of GNU's global source \r
-# tagging system (see http://www.gnu.org/software/global/global.html). You \r
-# will need version 4.8.6 or higher.\r
-\r
-USE_HTAGS              = NO\r
-\r
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen \r
-# will generate a verbatim copy of the header file for each class for \r
-# which an include is specified. Set to NO to disable this.\r
-\r
-VERBATIM_HEADERS       = NO\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the alphabetical class index\r
-#---------------------------------------------------------------------------\r
-\r
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index \r
-# of all compounds will be generated. Enable this if the project \r
-# contains a lot of classes, structs, unions or interfaces.\r
-\r
-ALPHABETICAL_INDEX     = NO\r
-\r
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then \r
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns \r
-# in which this list will be split (can be a number in the range [1..20])\r
-\r
-COLS_IN_ALPHA_INDEX    = 5\r
-\r
-# In case all classes in a project start with a common prefix, all \r
-# classes will be put under the same header in the alphabetical index. \r
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that \r
-# should be ignored while generating the index headers.\r
-\r
-IGNORE_PREFIX          = \r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the HTML output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will \r
-# generate HTML output.\r
-\r
-GENERATE_HTML          = YES\r
-\r
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. \r
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be \r
-# put in front of it. If left blank `html' will be used as the default path.\r
-\r
-HTML_OUTPUT            = html\r
-\r
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for \r
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank \r
-# doxygen will generate files with .html extension.\r
-\r
-HTML_FILE_EXTENSION    = .html\r
-\r
-# The HTML_HEADER tag can be used to specify a personal HTML header for \r
-# each generated HTML page. If it is left blank doxygen will generate a \r
-# standard header.\r
-\r
-HTML_HEADER            = \r
-\r
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for \r
-# each generated HTML page. If it is left blank doxygen will generate a \r
-# standard footer.\r
-\r
-HTML_FOOTER            = doco_footer.html \r
-\r
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading \r
-# style sheet that is used by each HTML page. It can be used to \r
-# fine-tune the look of the HTML output. If the tag is left blank doxygen \r
-# will generate a default style sheet. Note that doxygen will try to copy \r
-# the style sheet file to the HTML output directory, so don't put your own \r
-# stylesheet in the HTML output directory as well, or it will be erased!\r
-\r
-HTML_STYLESHEET        = \r
-\r
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, \r
-# files or namespaces will be aligned in HTML using tables. If set to \r
-# NO a bullet list will be used.\r
-\r
-HTML_ALIGN_MEMBERS     = YES\r
-\r
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files \r
-# will be generated that can be used as input for tools like the \r
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) \r
-# of the generated HTML documentation.\r
-\r
-GENERATE_HTMLHELP      = NO\r
-\r
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can \r
-# be used to specify the file name of the resulting .chm file. You \r
-# can add a path in front of the file if the result should not be \r
-# written to the html output directory.\r
-\r
-CHM_FILE               = \r
-\r
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can \r
-# be used to specify the location (absolute path including file name) of \r
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run \r
-# the HTML help compiler on the generated index.hhp.\r
-\r
-HHC_LOCATION           = \r
-\r
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag \r
-# controls if a separate .chi index file is generated (YES) or that \r
-# it should be included in the master .chm file (NO).\r
-\r
-GENERATE_CHI           = NO\r
-\r
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag \r
-# controls whether a binary table of contents is generated (YES) or a \r
-# normal table of contents (NO) in the .chm file.\r
-\r
-BINARY_TOC             = NO\r
-\r
-# The TOC_EXPAND flag can be set to YES to add extra items for group members \r
-# to the contents of the HTML help documentation and to the tree view.\r
-\r
-TOC_EXPAND             = YES\r
-\r
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at \r
-# top of each HTML page. The value NO (the default) enables the index and \r
-# the value YES disables it.\r
-\r
-DISABLE_INDEX          = YES\r
-\r
-# This tag can be used to set the number of enum values (range [1..20]) \r
-# that doxygen will group on one line in the generated HTML documentation.\r
-\r
-ENUM_VALUES_PER_LINE   = 4\r
-\r
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be\r
-# generated containing a tree-like index structure (just like the one that \r
-# is generated for HTML Help). For this to work a browser that supports \r
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, \r
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are \r
-# probably better off using the HTML help feature.\r
-\r
-GENERATE_TREEVIEW      = YES\r
-\r
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be \r
-# used to set the initial width (in pixels) of the frame in which the tree \r
-# is shown.\r
-\r
-TREEVIEW_WIDTH         = 250\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the LaTeX output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will \r
-# generate Latex output.\r
-\r
-GENERATE_LATEX         = NO\r
-\r
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. \r
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be \r
-# put in front of it. If left blank `latex' will be used as the default path.\r
-\r
-LATEX_OUTPUT           = latex\r
-\r
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be \r
-# invoked. If left blank `latex' will be used as the default command name.\r
-\r
-LATEX_CMD_NAME         = latex\r
-\r
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to \r
-# generate index for LaTeX. If left blank `makeindex' will be used as the \r
-# default command name.\r
-\r
-MAKEINDEX_CMD_NAME     = makeindex\r
-\r
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact \r
-# LaTeX documents. This may be useful for small projects and may help to \r
-# save some trees in general.\r
-\r
-COMPACT_LATEX          = NO\r
-\r
-# The PAPER_TYPE tag can be used to set the paper type that is used \r
-# by the printer. Possible values are: a4, a4wide, letter, legal and \r
-# executive. If left blank a4wide will be used.\r
-\r
-PAPER_TYPE             = a4wide\r
-\r
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX \r
-# packages that should be included in the LaTeX output.\r
-\r
-EXTRA_PACKAGES         = \r
-\r
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for \r
-# the generated latex document. The header should contain everything until \r
-# the first chapter. If it is left blank doxygen will generate a \r
-# standard header. Notice: only use this tag if you know what you are doing!\r
-\r
-LATEX_HEADER           = \r
-\r
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated \r
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will \r
-# contain links (just like the HTML output) instead of page references \r
-# This makes the output suitable for online browsing using a pdf viewer.\r
-\r
-PDF_HYPERLINKS         = NO\r
-\r
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of \r
-# plain latex in the generated Makefile. Set this option to YES to get a \r
-# higher quality PDF documentation.\r
-\r
-USE_PDFLATEX           = NO\r
-\r
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. \r
-# command to the generated LaTeX files. This will instruct LaTeX to keep \r
-# running if errors occur, instead of asking the user for help. \r
-# This option is also used when generating formulas in HTML.\r
-\r
-LATEX_BATCHMODE        = NO\r
-\r
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not \r
-# include the index chapters (such as File Index, Compound Index, etc.) \r
-# in the output.\r
-\r
-LATEX_HIDE_INDICES     = NO\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the RTF output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output \r
-# The RTF output is optimized for Word 97 and may not look very pretty with \r
-# other RTF readers or editors.\r
-\r
-GENERATE_RTF           = NO\r
-\r
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. \r
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be \r
-# put in front of it. If left blank `rtf' will be used as the default path.\r
-\r
-RTF_OUTPUT             = rtf\r
-\r
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact \r
-# RTF documents. This may be useful for small projects and may help to \r
-# save some trees in general.\r
-\r
-COMPACT_RTF            = NO\r
-\r
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated \r
-# will contain hyperlink fields. The RTF file will \r
-# contain links (just like the HTML output) instead of page references. \r
-# This makes the output suitable for online browsing using WORD or other \r
-# programs which support those fields. \r
-# Note: wordpad (write) and others do not support links.\r
-\r
-RTF_HYPERLINKS         = NO\r
-\r
-# Load stylesheet definitions from file. Syntax is similar to doxygen's \r
-# config file, i.e. a series of assignments. You only have to provide \r
-# replacements, missing definitions are set to their default value.\r
-\r
-RTF_STYLESHEET_FILE    = \r
-\r
-# Set optional variables used in the generation of an rtf document. \r
-# Syntax is similar to doxygen's config file.\r
-\r
-RTF_EXTENSIONS_FILE    = \r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the man page output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will \r
-# generate man pages\r
-\r
-GENERATE_MAN           = NO\r
-\r
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. \r
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be \r
-# put in front of it. If left blank `man' will be used as the default path.\r
-\r
-MAN_OUTPUT             = man\r
-\r
-# The MAN_EXTENSION tag determines the extension that is added to \r
-# the generated man pages (default is the subroutine's section .3)\r
-\r
-MAN_EXTENSION          = .3\r
-\r
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output, \r
-# then it will generate one additional man file for each entity \r
-# documented in the real man page(s). These additional files \r
-# only source the real man page, but without them the man command \r
-# would be unable to find the correct page. The default is NO.\r
-\r
-MAN_LINKS              = NO\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the XML output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_XML tag is set to YES Doxygen will \r
-# generate an XML file that captures the structure of \r
-# the code including all documentation.\r
-\r
-GENERATE_XML           = NO\r
-\r
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. \r
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be \r
-# put in front of it. If left blank `xml' will be used as the default path.\r
-\r
-XML_OUTPUT             = xml\r
-\r
-# The XML_SCHEMA tag can be used to specify an XML schema, \r
-# which can be used by a validating XML parser to check the \r
-# syntax of the XML files.\r
-\r
-XML_SCHEMA             = \r
-\r
-# The XML_DTD tag can be used to specify an XML DTD, \r
-# which can be used by a validating XML parser to check the \r
-# syntax of the XML files.\r
-\r
-XML_DTD                = \r
-\r
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will \r
-# dump the program listings (including syntax highlighting \r
-# and cross-referencing information) to the XML output. Note that \r
-# enabling this will significantly increase the size of the XML output.\r
-\r
-XML_PROGRAMLISTING     = YES\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options for the AutoGen Definitions output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will \r
-# generate an AutoGen Definitions (see autogen.sf.net) file \r
-# that captures the structure of the code including all \r
-# documentation. Note that this feature is still experimental \r
-# and incomplete at the moment.\r
-\r
-GENERATE_AUTOGEN_DEF   = NO\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the Perl module output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will \r
-# generate a Perl module file that captures the structure of \r
-# the code including all documentation. Note that this \r
-# feature is still experimental and incomplete at the \r
-# moment.\r
-\r
-GENERATE_PERLMOD       = NO\r
-\r
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate \r
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able \r
-# to generate PDF and DVI output from the Perl module output.\r
-\r
-PERLMOD_LATEX          = NO\r
-\r
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be \r
-# nicely formatted so it can be parsed by a human reader.  This is useful \r
-# if you want to understand what is going on.  On the other hand, if this \r
-# tag is set to NO the size of the Perl module output will be much smaller \r
-# and Perl will parse it just the same.\r
-\r
-PERLMOD_PRETTY         = YES\r
-\r
-# The names of the make variables in the generated doxyrules.make file \r
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. \r
-# This is useful so different doxyrules.make files included by the same \r
-# Makefile don't overwrite each other's variables.\r
-\r
-PERLMOD_MAKEVAR_PREFIX = \r
-\r
-#---------------------------------------------------------------------------\r
-# Configuration options related to the preprocessor   \r
-#---------------------------------------------------------------------------\r
-\r
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will \r
-# evaluate all C-preprocessor directives found in the sources and include \r
-# files.\r
-\r
-ENABLE_PREPROCESSING   = YES\r
-\r
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro \r
-# names in the source code. If set to NO (the default) only conditional \r
-# compilation will be performed. Macro expansion can be done in a controlled \r
-# way by setting EXPAND_ONLY_PREDEF to YES.\r
-\r
-MACRO_EXPANSION        = YES\r
-\r
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES \r
-# then the macro expansion is limited to the macros specified with the \r
-# PREDEFINED and EXPAND_AS_DEFINED tags.\r
-\r
-EXPAND_ONLY_PREDEF     = YES\r
-\r
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files \r
-# in the INCLUDE_PATH (see below) will be search if a #include is found.\r
-\r
-SEARCH_INCLUDES        = YES\r
-\r
-# The INCLUDE_PATH tag can be used to specify one or more directories that \r
-# contain include files that are not input files but should be processed by \r
-# the preprocessor.\r
-\r
-INCLUDE_PATH           = \r
-\r
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard \r
-# patterns (like *.h and *.hpp) to filter out the header-files in the \r
-# directories. If left blank, the patterns specified with FILE_PATTERNS will \r
-# be used.\r
-\r
-INCLUDE_FILE_PATTERNS  = \r
-\r
-# The PREDEFINED tag can be used to specify one or more macro names that \r
-# are defined before the preprocessor is started (similar to the -D option of \r
-# gcc). The argument of the tag is a list of macros of the form: name \r
-# or name=definition (no spaces). If the definition and the = are \r
-# omitted =1 is assumed. To prevent a macro definition from being \r
-# undefined via #undef or recursively expanded use the := operator \r
-# instead of the = operator.\r
-\r
-PREDEFINED             = CONFIG_SSL_CERT_VERIFICATION CONFIG_SSL_ENABLE_CLIENT CONFIG_SSL_GENERATE_X509_CERT CONFIG_BIGINT_MONTGOMERY CONFIG_BIGINT_BARRETT CONFIG_BIGINT_CRT EXP_FUNC="" STDCALL=""\r
-\r
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then \r
-# this tag can be used to specify a list of macro names that should be expanded. \r
-# The macro definition that is found in the sources will be used. \r
-# Use the PREDEFINED tag if you want to use a different macro definition.\r
-\r
-EXPAND_AS_DEFINED      = \r
-\r
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then \r
-# doxygen's preprocessor will remove all function-like macros that are alone \r
-# on a line, have an all uppercase name, and do not end with a semicolon. Such \r
-# function macros are typically used for boiler-plate code, and will confuse \r
-# the parser if not removed.\r
-\r
-SKIP_FUNCTION_MACROS   = YES\r
-\r
-#---------------------------------------------------------------------------\r
-# Configuration::additions related to external references   \r
-#---------------------------------------------------------------------------\r
-\r
-# The TAGFILES option can be used to specify one or more tagfiles. \r
-# Optionally an initial location of the external documentation \r
-# can be added for each tagfile. The format of a tag file without \r
-# this location is as follows: \r
-#   TAGFILES = file1 file2 ... \r
-# Adding location for the tag files is done as follows: \r
-#   TAGFILES = file1=loc1 "file2 = loc2" ... \r
-# where "loc1" and "loc2" can be relative or absolute paths or \r
-# URLs. If a location is present for each tag, the installdox tool \r
-# does not have to be run to correct the links.\r
-# Note that each tag file must have a unique name\r
-# (where the name does NOT include the path)\r
-# If a tag file is not located in the directory in which doxygen \r
-# is run, you must also specify the path to the tagfile here.\r
-\r
-TAGFILES               = \r
-\r
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create \r
-# a tag file that is based on the input files it reads.\r
-\r
-GENERATE_TAGFILE       = \r
-\r
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed \r
-# in the class index. If set to NO only the inherited external classes \r
-# will be listed.\r
-\r
-ALLEXTERNALS           = NO\r
-\r
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed \r
-# in the modules index. If set to NO, only the current project's groups will \r
-# be listed.\r
-\r
-EXTERNAL_GROUPS        = NO\r
-\r
-# The PERL_PATH should be the absolute path and name of the perl script \r
-# interpreter (i.e. the result of `which perl').\r
-\r
-PERL_PATH              = /usr/bin/perl\r
-\r
-#---------------------------------------------------------------------------\r
-# Configuration options related to the dot tool   \r
-#---------------------------------------------------------------------------\r
-\r
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will \r
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base \r
-# or super classes. Setting the tag to NO turns the diagrams off. Note that \r
-# this option is superseded by the HAVE_DOT option below. This is only a \r
-# fallback. It is recommended to install and use dot, since it yields more \r
-# powerful graphs.\r
-\r
-CLASS_DIAGRAMS         = YES\r
-\r
-# If set to YES, the inheritance and collaboration graphs will hide \r
-# inheritance and usage relations if the target is undocumented \r
-# or is not a class.\r
-\r
-HIDE_UNDOC_RELATIONS   = YES\r
-\r
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is \r
-# available from the path. This tool is part of Graphviz, a graph visualization \r
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section \r
-# have no effect if this option is set to NO (the default)\r
-\r
-HAVE_DOT               = NO\r
-\r
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen \r
-# will generate a graph for each documented class showing the direct and \r
-# indirect inheritance relations. Setting this tag to YES will force the \r
-# the CLASS_DIAGRAMS tag to NO.\r
-\r
-CLASS_GRAPH            = NO\r
-\r
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen \r
-# will generate a graph for each documented class showing the direct and \r
-# indirect implementation dependencies (inheritance, containment, and \r
-# class references variables) of the class with other documented classes.\r
-\r
-COLLABORATION_GRAPH    = NO\r
-\r
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen \r
-# will generate a graph for groups, showing the direct groups dependencies\r
-\r
-GROUP_GRAPHS           = NO\r
-\r
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and \r
-# collaboration diagrams in a style similar to the OMG's Unified Modeling \r
-# Language.\r
-\r
-UML_LOOK               = NO\r
-\r
-# If set to YES, the inheritance and collaboration graphs will show the \r
-# relations between templates and their instances.\r
-\r
-TEMPLATE_RELATIONS     = NO\r
-\r
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT \r
-# tags are set to YES then doxygen will generate a graph for each documented \r
-# file showing the direct and indirect include dependencies of the file with \r
-# other documented files.\r
-\r
-INCLUDE_GRAPH          = NO\r
-\r
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and \r
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each \r
-# documented header file showing the documented files that directly or \r
-# indirectly include this file.\r
-\r
-INCLUDED_BY_GRAPH      = NO\r
-\r
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will \r
-# generate a call dependency graph for every global function or class method. \r
-# Note that enabling this option will significantly increase the time of a run. \r
-# So in most cases it will be better to enable call graphs for selected \r
-# functions only using the \callgraph command.\r
-\r
-CALL_GRAPH             = NO\r
-\r
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen \r
-# will graphical hierarchy of all classes instead of a textual one.\r
-\r
-GRAPHICAL_HIERARCHY    = NO\r
-\r
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES \r
-# then doxygen will show the dependencies a directory has on other directories \r
-# in a graphical way. The dependency relations are determined by the #include\r
-# relations between the files in the directories.\r
-\r
-DIRECTORY_GRAPH        = NO\r
-\r
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images \r
-# generated by dot. Possible values are png, jpg, or gif\r
-# If left blank png will be used.\r
-\r
-DOT_IMAGE_FORMAT       = png\r
-\r
-# The tag DOT_PATH can be used to specify the path where the dot tool can be \r
-# found. If left blank, it is assumed the dot tool can be found in the path.\r
-\r
-DOT_PATH               = \r
-\r
-# The DOTFILE_DIRS tag can be used to specify one or more directories that \r
-# contain dot files that are included in the documentation (see the \r
-# \dotfile command).\r
-\r
-DOTFILE_DIRS           = \r
-\r
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width \r
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than \r
-# this value, doxygen will try to truncate the graph, so that it fits within \r
-# the specified constraint. Beware that most browsers cannot cope with very \r
-# large images.\r
-\r
-MAX_DOT_GRAPH_WIDTH    = 1024\r
-\r
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height \r
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than \r
-# this value, doxygen will try to truncate the graph, so that it fits within \r
-# the specified constraint. Beware that most browsers cannot cope with very \r
-# large images.\r
-\r
-MAX_DOT_GRAPH_HEIGHT   = 1024\r
-\r
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the \r
-# graphs generated by dot. A depth value of 3 means that only nodes reachable \r
-# from the root by following a path via at most 3 edges will be shown. Nodes \r
-# that lay further from the root node will be omitted. Note that setting this \r
-# option to 1 or 2 may greatly reduce the computation time needed for large \r
-# code bases. Also note that a graph may be further truncated if the graph's \r
-# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH \r
-# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), \r
-# the graph is not depth-constrained.\r
-\r
-MAX_DOT_GRAPH_DEPTH    = 0\r
-\r
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent \r
-# background. This is disabled by default, which results in a white background. \r
-# Warning: Depending on the platform used, enabling this option may lead to \r
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to \r
-# read).\r
-\r
-DOT_TRANSPARENT        = NO\r
-\r
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output \r
-# files in one run (i.e. multiple -o and -T options on the command line). This \r
-# makes dot run faster, but since only newer versions of dot (>1.8.10) \r
-# support this, this feature is disabled by default.\r
-\r
-DOT_MULTI_TARGETS      = NO\r
-\r
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will \r
-# generate a legend page explaining the meaning of the various boxes and \r
-# arrows in the dot generated graphs.\r
-\r
-GENERATE_LEGEND        = YES\r
-\r
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will \r
-# remove the intermediate dot files that are used to generate \r
-# the various graphs.\r
-\r
-DOT_CLEANUP            = YES\r
-\r
-#---------------------------------------------------------------------------\r
-# Configuration::additions related to the search engine   \r
-#---------------------------------------------------------------------------\r
-\r
-# The SEARCHENGINE tag specifies whether or not a search engine should be \r
-# used. If set to NO the values of all tags below this one will be ignored.\r
-\r
-SEARCHENGINE           = NO\r
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/docsrc/doco_footer.html b/package/luci/libs/luci-lib-nixio/axTLS/docsrc/doco_footer.html
deleted file mode 100644 (file)
index 20c4e70..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<p></p>
-<p align="center"><img src="../images/tsbasbw.gif" width="1000" height="7"></p>
-<CITE>Copyright <sup>©</sup> 2007 Cameron Rich</CITE>
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/docsrc/images/axolotl.jpg b/package/luci/libs/luci-lib-nixio/axTLS/docsrc/images/axolotl.jpg
deleted file mode 100644 (file)
index 7352bba..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/docsrc/images/axolotl.jpg and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/docsrc/images/tsbasbw.gif b/package/luci/libs/luci-lib-nixio/axTLS/docsrc/images/tsbasbw.gif
deleted file mode 100644 (file)
index cf03b12..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/docsrc/images/tsbasbw.gif and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/httpd/Config.in b/package/luci/libs/luci-lib-nixio/axTLS/httpd/Config.in
deleted file mode 100644 (file)
index 513d57a..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see scripts/config/Kconfig-language.txt
-#
-
-menu "Axhttpd Configuration"
-depends on CONFIG_AXHTTPD
-
-config CONFIG_HTTP_STATIC_BUILD
-    bool "Static Build"
-    default n
-    help
-        Select y if you want axhttpd to be a static build (i.e. don't use the
-        axtls shared library or dll).
-        
-config CONFIG_HTTP_PORT
-    int "HTTP port"
-    default 80
-    help
-        The port number of the normal HTTP server. 
-
-        You must be a root user in order to use the default port.
-
-config CONFIG_HTTP_HTTPS_PORT
-    int "HTTPS port"
-    default 443
-    help
-        The port number of the HTTPS server.
-
-        You must be a root user in order to use the default port.
-
-config CONFIG_HTTP_SESSION_CACHE_SIZE
-    int "SSL session cache size"
-    default 5
-    help
-        The size of the SSL session cache.
-        
-        This is not actually related to the number of concurrent users, but 
-        for optimum performance they should be the same (with a penalty 
-        in memory usage).
-
-config CONFIG_HTTP_WEBROOT
-    string "Web root location"
-    default "../www" if !CONFIG_PLATFORM_WIN32
-    default "..\\www" if CONFIG_PLATFORM_WIN32
-    help
-        The location of the web root in relation to axhttpd. This is 
-        the directory where index.html lives.
-
-config CONFIG_HTTP_TIMEOUT
-    int "Timeout"
-    default 300
-    help
-        Set the timeout of a connection in seconds.
-
-menu "CGI"
-depends on !CONFIG_PLATFORM_WIN32
-
-config CONFIG_HTTP_HAS_CGI
-    bool "Enable CGI"
-    default y
-    depends on !CONFIG_PLATFORM_WIN32
-    help
-        Enable the CGI capability. Not available on Win32 platforms.
-
-config CONFIG_HTTP_CGI_EXTENSIONS
-    string "CGI File Extension(s)"
-    default ".lua,.lp"
-    depends on CONFIG_HTTP_HAS_CGI
-    help
-        Tell axhhtpd what file extension(s) are used for CGI.
-
-        This is a comma separated list - e.g. ".php,.pl" etc
-
-config CONFIG_HTTP_ENABLE_LUA
-    bool "Enable Lua"
-    default y
-    depends on CONFIG_HTTP_HAS_CGI
-    help
-        Lua is a powerful, fast, light-weight, embeddable scripting language.
-
-        See http://www.lua.org for details.
-
-config CONFIG_HTTP_LUA_PREFIX
-    string "Lua's Installation Prefix"
-    default "/usr/local"
-    depends on CONFIG_HTTP_ENABLE_LUA
-
-    help
-        The location of Lua's installation prefix. This is also necessary for
-        Lua's cgi launcher application.
-
-config CONFIG_HTTP_LUA_CGI_LAUNCHER
-    string "CGI launcher location"
-    default "/bin/cgi.exe" if CONFIG_PLATFORM_CYGWIN
-    default "/bin/cgi" if !CONFIG_PLATFORM_CYGWIN
-    depends on CONFIG_HTTP_ENABLE_LUA
-    help
-        The location of LUA's CGI launcher application (after
-        the CONFIG_HTTP_LUA_PREFIX)
-
-config CONFIG_HTTP_BUILD_LUA
-    bool "Build Lua"
-    default n
-    depends on CONFIG_HTTP_ENABLE_LUA
-    help
-        Build Lua and install in /usr/local/bin
-
-endmenu
-
-config CONFIG_HTTP_DIRECTORIES
-    bool "Enable Directory Listing"
-    default y
-    help
-        Enable directory listing.
-    
-config CONFIG_HTTP_HAS_AUTHORIZATION
-    bool "Enable authorization"
-    default y
-    help
-        Pages/directories can have passwords associated with them.
-
-config CONFIG_HTTP_HAS_IPV6
-    bool "Enable IPv6"
-    default n
-    depends on !CONFIG_PLATFORM_WIN32
-    help
-        Use IPv6 instead of IPv4.
-    
-        Does not work under Win32
-
-config CONFIG_HTTP_ENABLE_DIFFERENT_USER
-    bool "Enable different user"
-    default n
-    depends on !CONFIG_PLATFORM_WIN32
-    help
-        Allow the web server to be run as a different user
-    
-config CONFIG_HTTP_USER
-    string "As User"
-    default "nobody"
-    depends on CONFIG_HTTP_ENABLE_DIFFERENT_USER
-    help
-        The user name that will be used to run axhttpd.
-
-config CONFIG_HTTP_VERBOSE
-    bool "Verbose Mode"
-    default y if CONFIG_SSL_FULL_MODE
-    default n if !CONFIG_SSL_FULL_MODE
-    help
-        Enable extra statements used when using axhttpd.
-
-config CONFIG_HTTP_IS_DAEMON
-    bool "Run as a daemon"
-    default n
-    depends on !CONFIG_PLATFORM_WIN32
-    help 
-        Run axhttpd as a background process.
-
-        Does not work under Win32
-
-endmenu
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/httpd/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/httpd/Makefile
deleted file mode 100644 (file)
index b8c18d2..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-all : web_server lua
-
-AXTLS_HOME=..
-
-include $(AXTLS_HOME)/config/.config
-include $(AXTLS_HOME)/config/makefile.conf
-
-ifndef CONFIG_PLATFORM_WIN32
-
-ifdef CONFIG_PLATFORM_CYGWIN
-TARGET=$(AXTLS_HOME)/$(STAGE)/axhttpd.exe
-TARGET2=$(AXTLS_HOME)/$(STAGE)/htpasswd.exe
-else
-TARGET=$(AXTLS_HOME)/$(STAGE)/axhttpd
-TARGET2=$(AXTLS_HOME)/$(STAGE)/htpasswd
-endif
-
-ifdef CONFIG_HTTP_STATIC_BUILD
-LIBS=$(AXTLS_HOME)/$(STAGE)/libaxtls.a
-else
-LIBS=-L$(AXTLS_HOME)/$(STAGE) -laxtls
-endif
-
-ifdef CONFIG_HTTP_BUILD_LUA
-lua: kepler-1.1
-
-kepler-1.1:
-       @tar xvfz   kepler-1.1-snapshot-20070521-1825.tar.gz
-       @cat kepler.patch | patch -p0
-       cd kepler-1.1; ./configure --prefix=$(CONFIG_HTTP_LUA_PREFIX) --launcher=cgi --lua-suffix= ; make install
-else
-lua:
-endif
-
-else # win32 build
-lua:
-
-TARGET=$(AXTLS_HOME)/$(STAGE)/axhttpd.exe
-TARGET2=$(AXTLS_HOME)/$(STAGE)/htpasswd.exe
-
-ifdef CONFIG_HTTP_STATIC_BUILD
-LIBS=$(AXTLS_HOME)/$(STAGE)/axtls.static.lib $(AXTLS_HOME)\\config\\axtls.res
-else
-LIBS=$(AXTLS_HOME)/$(STAGE)/axtls.lib $(AXTLS_HOME)\\config\\axtls.res
-endif
-endif
-
-ifndef CONFIG_AXHTTPD
-web_server:
-else
-
-web_server :: $(TARGET)
-
-ifdef CONFIG_HTTP_HAS_AUTHORIZATION
-web_server :: $(TARGET2)
-endif
-
-OBJ= \
-       axhttpd.o \
-       proc.o \
-       tdate_parse.o
-
-include $(AXTLS_HOME)/config/makefile.post
-
-ifndef CONFIG_PLATFORM_WIN32
-
-$(TARGET): $(OBJ) $(AXTLS_HOME)/$(STAGE)/libaxtls.a
-       $(LD) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
-ifdef CONFIG_STRIP_UNWANTED_SECTIONS
-       $(STRIP) --remove-section=.comment $(TARGET)
-endif
-
-$(TARGET2): htpasswd.o $(AXTLS_HOME)/$(STAGE)/libaxtls.a
-       $(LD) $(LDFLAGS) -o $@ htpasswd.o $(LIBS)
-
-else    # Win32
-
-OBJ:=$(OBJ:.o=.obj)
-%.obj : %.c
-       $(CC) $(CFLAGS) $< 
-
-htpasswd.obj : htpasswd.c
-       $(CC) $(CFLAGS) $? 
-       
-$(TARGET): $(OBJ)
-       $(LD) $(LDFLAGS) /out:$@ $(LIBS) $?
-
-$(TARGET2): htpasswd.obj
-       $(LD) $(LDFLAGS) /out:$@ $(LIBS) $?
-endif
-
-endif       # CONFIG_AXHTTPD
-
-clean::
-       -@rm -f $(TARGET)*
-       -@rm -fr kepler-1.1
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/httpd/axhttp.h b/package/luci/libs/luci-lib-nixio/axTLS/httpd/axhttp.h
deleted file mode 100644 (file)
index 73c299f..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "ssl.h"
-
-#define BACKLOG 15
-#define VERSION "1.0.0"
-#ifdef CONFIG_HTTP_HAS_IPV6
-#define HAVE_IPV6
-#endif
-
-#define MAXPOSTDATASIZE                     30000
-#define MAXREQUESTLENGTH                    256
-#define BLOCKSIZE                           4096
-
-#define INITIAL_CONNECTION_SLOTS            10
-#define CONFIG_HTTP_DEFAULT_SSL_OPTIONS     SSL_DISPLAY_CERTS
-
-#define STATE_WANT_TO_READ_HEAD             1
-#define STATE_WANT_TO_SEND_HEAD             2
-#define STATE_WANT_TO_READ_FILE             3
-#define STATE_WANT_TO_SEND_FILE             4
-#define STATE_DOING_DIR                     5
-
-enum
-{
-    TYPE_GET,
-    TYPE_HEAD,
-    TYPE_POST
-};
-
-struct connstruct 
-{
-    struct connstruct *next;
-    int state;
-    int reqtype;
-    int networkdesc;
-    int filedesc;
-    SSL *ssl;
-
-#if defined(CONFIG_HTTP_DIRECTORIES)
-#ifdef WIN32
-    HANDLE dirp;
-    WIN32_FIND_DATA file_data;
-#else
-    DIR *dirp;
-#endif
-#endif
-
-    time_t timeout;
-    char actualfile[MAXREQUESTLENGTH];
-    char filereq[MAXREQUESTLENGTH];
-    char dirname[MAXREQUESTLENGTH];
-    char server_name[MAXREQUESTLENGTH];
-    int numbytes;
-    char databuf[BLOCKSIZE];
-    uint8_t is_ssl;
-    uint8_t close_when_done;
-    time_t if_modified_since;
-
-#if defined(CONFIG_HTTP_HAS_CGI)
-    uint8_t is_cgi;
-#ifdef CONFIG_HTTP_ENABLE_LUA
-    uint8_t is_lua;
-#endif
-    int content_length;
-    char remote_addr[MAXREQUESTLENGTH];
-    char uri_request[MAXREQUESTLENGTH];
-    char uri_path_info[MAXREQUESTLENGTH];
-    char uri_query[MAXREQUESTLENGTH];
-    char cookie[MAXREQUESTLENGTH];
-#endif
-#if defined(CONFIG_HTTP_HAS_AUTHORIZATION)
-    char authorization[MAXREQUESTLENGTH];
-#endif
-  int post_read;
-  int post_state;
-  char *post_data;
-};
-
-struct serverstruct 
-{
-    struct serverstruct *next;
-    int sd;
-    int is_ssl;
-    SSL_CTX *ssl_ctx;
-};
-
-#if defined(CONFIG_HTTP_HAS_CGI)
-struct cgiextstruct 
-{
-    struct cgiextstruct *next;
-    char *ext;
-};
-#endif
-
-/* global prototypes */
-extern struct serverstruct *servers;
-extern struct connstruct *usedconns;
-extern struct connstruct *freeconns;
-extern const char * const server_version;
-
-#if defined(CONFIG_HTTP_HAS_CGI)
-extern struct cgiextstruct *cgiexts;
-#endif
-
-/* conn.c prototypes */
-void removeconnection(struct connstruct *cn);
-
-/* proc.c prototypes */
-void procdodir(struct connstruct *cn);
-void procreadhead(struct connstruct *cn);
-void procsendhead(struct connstruct *cn);
-void procreadfile(struct connstruct *cn);
-void procsendfile(struct connstruct *cn);
-#if defined(CONFIG_HTTP_HAS_CGI)
-void read_post_data(struct connstruct *cn);
-#endif
-
-/* misc.c prototypes */
-char *my_strncpy(char *dest, const char *src, size_t n);
-int isdir(const char *name);
-
-/* tdate prototypes */
-void tdate_init(void);
-time_t tdate_parse(const char* str);
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/httpd/axhttpd.c b/package/luci/libs/luci-lib-nixio/axTLS/httpd/axhttpd.c
deleted file mode 100644 (file)
index 35d36f6..0000000
+++ /dev/null
@@ -1,604 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-#include <pwd.h>
-#include "axhttp.h"
-
-struct serverstruct *servers;
-struct connstruct *usedconns;
-struct connstruct *freeconns;
-const char * const server_version = "axhttpd/"AXTLS_VERSION;
-
-static void addtoservers(int sd);
-static int openlistener(int port);
-static void handlenewconnection(int listenfd, int is_ssl);
-static void addconnection(int sd, char *ip, int is_ssl);
-static void ax_chdir(void);
-
-#if defined(CONFIG_HTTP_HAS_CGI)
-struct cgiextstruct *cgiexts;
-static void addcgiext(const char *tp);
-
-#if !defined(WIN32)
-static void reaper(int sigtype) 
-{
-    wait3(NULL, WNOHANG, NULL);
-}
-#endif
-#endif
-
-#ifdef CONFIG_HTTP_VERBOSE  /* should really be in debug mode or something */
-/* clean up memory for valgrind */
-static void sigint_cleanup(int sig)
-{
-    struct serverstruct *sp;
-    struct connstruct *tp;
-
-    while (servers != NULL) 
-    {
-        if (servers->is_ssl)
-            ssl_ctx_free(servers->ssl_ctx);
-
-        sp = servers->next;
-        free(servers);
-        servers = sp;
-    }
-
-    while (freeconns != NULL)
-    {
-        tp = freeconns->next;
-        free(freeconns);
-        freeconns = tp;
-    }
-
-    while (usedconns != NULL)
-    {
-        tp = usedconns->next;
-        free(usedconns);
-        usedconns = tp;
-    }
-
-#if defined(CONFIG_HTTP_HAS_CGI)
-    while (cgiexts)
-    {
-        struct cgiextstruct *cp = cgiexts->next;
-        if (cp == NULL) /* last entry */
-            free(cgiexts->ext);
-        free(cgiexts);
-        cgiexts = cp;
-    }
-#endif
-
-    exit(0);
-}
-
-static void die(int sigtype) 
-{
-    exit(0);
-}
-#endif
-
-int main(int argc, char *argv[]) 
-{
-    fd_set rfds, wfds;
-    struct connstruct *tp, *to;
-    struct serverstruct *sp;
-    int rnum, wnum, active;
-    int i;
-    time_t currtime;
-
-#ifdef WIN32
-    WORD wVersionRequested = MAKEWORD(2, 2);
-    WSADATA wsaData;
-    WSAStartup(wVersionRequested,&wsaData);
-#else
-    signal(SIGPIPE, SIG_IGN);
-#if defined(CONFIG_HTTP_HAS_CGI)
-    signal(SIGCHLD, reaper);
-#endif
-#ifdef CONFIG_HTTP_VERBOSE
-    signal(SIGQUIT, die);
-#endif
-#endif
-
-#ifdef CONFIG_HTTP_VERBOSE
-    signal(SIGTERM, die);
-    signal(SIGINT, sigint_cleanup);
-#endif
-    tdate_init();
-
-    for (i = 0; i < INITIAL_CONNECTION_SLOTS; i++) 
-    {
-        tp = freeconns;
-        freeconns = (struct connstruct *)calloc(1, sizeof(struct connstruct));
-        freeconns->next = tp;
-    }
-
-    if ((active = openlistener(CONFIG_HTTP_PORT)) == -1) 
-    {
-#ifdef CONFIG_HTTP_VERBOSE
-        fprintf(stderr, "ERR: Couldn't bind to port %d\n",
-                CONFIG_HTTP_PORT);
-#endif
-        exit(1);
-    }
-
-    addtoservers(active);
-
-    if ((active = openlistener(CONFIG_HTTP_HTTPS_PORT)) == -1) 
-    {
-#ifdef CONFIG_HTTP_VERBOSE
-        fprintf(stderr, "ERR: Couldn't bind to port %d\n", 
-                CONFIG_HTTP_HTTPS_PORT);
-#endif
-        exit(1);
-    }
-
-    addtoservers(active);
-    servers->ssl_ctx = ssl_ctx_new(CONFIG_HTTP_DEFAULT_SSL_OPTIONS, 
-                                CONFIG_HTTP_SESSION_CACHE_SIZE);
-    servers->is_ssl = 1;
-
-#if defined(CONFIG_HTTP_HAS_CGI)
-    addcgiext(CONFIG_HTTP_CGI_EXTENSIONS);
-#endif
-
-#if defined(CONFIG_HTTP_VERBOSE)
-#if defined(CONFIG_HTTP_HAS_CGI)
-    printf("addcgiext %s\n", CONFIG_HTTP_CGI_EXTENSIONS); 
-#endif
-    printf("%s: listening on ports %d (http) and %d (https)\n", 
-            server_version, CONFIG_HTTP_PORT, CONFIG_HTTP_HTTPS_PORT);
-    TTY_FLUSH();
-#endif
-
-    ax_chdir();
-
-#ifdef CONFIG_HTTP_ENABLE_DIFFERENT_USER
-    {
-        struct passwd *pd = getpwnam(CONFIG_HTTP_USER);
-
-        if (pd != NULL)
-        {
-            int res = setuid(pd->pw_uid);
-            res |= setgid(pd->pw_gid);
-
-#if defined(CONFIG_HTTP_VERBOSE)
-            if (res == 0)
-            {
-                printf("change to '%s' successful\n", CONFIG_HTTP_USER); 
-                TTY_FLUSH();
-            }
-#endif
-        }
-
-    }
-#endif
-
-
-#ifndef WIN32 
-#ifdef CONFIG_HTTP_IS_DAEMON
-    if (fork() > 0)  /* parent will die */
-        exit(0);
-
-    setsid();
-#endif
-#endif
-
-    /* main loop */
-    while (1)
-    {
-        FD_ZERO(&rfds);
-        FD_ZERO(&wfds);
-        rnum = wnum = -1;
-        sp = servers;
-
-        while (sp != NULL)  /* read each server port */
-        {
-            FD_SET(sp->sd, &rfds);
-
-            if (sp->sd > rnum) 
-                rnum = sp->sd;
-            sp = sp->next;
-        }
-
-        /* Add the established sockets */
-        tp = usedconns;
-        currtime = time(NULL);
-
-        while (tp != NULL) 
-        {
-            if (currtime > tp->timeout)     /* timed out? Kill it. */
-            {
-                to = tp;
-                tp = tp->next;
-                removeconnection(to);
-                continue;
-            }
-
-            if (tp->state == STATE_WANT_TO_READ_HEAD) 
-            {
-                FD_SET(tp->networkdesc, &rfds);
-                if (tp->networkdesc > rnum) 
-                    rnum = tp->networkdesc;
-            }
-
-            if (tp->state == STATE_WANT_TO_SEND_HEAD) 
-            {
-                FD_SET(tp->networkdesc, &wfds);
-                if (tp->networkdesc > wnum) 
-                    wnum = tp->networkdesc;
-            }
-
-            if (tp->state == STATE_WANT_TO_READ_FILE) 
-            {
-                FD_SET(tp->filedesc, &rfds);
-                if (tp->filedesc > rnum) 
-                    rnum = tp->filedesc;
-            }
-
-            if (tp->state == STATE_WANT_TO_SEND_FILE) 
-            {
-                FD_SET(tp->networkdesc, &wfds);
-                if (tp->networkdesc > wnum) 
-                    wnum = tp->networkdesc;
-            }
-
-#if defined(CONFIG_HTTP_DIRECTORIES)
-            if (tp->state == STATE_DOING_DIR) 
-            {
-                FD_SET(tp->networkdesc, &wfds);
-                if (tp->networkdesc > wnum) 
-                    wnum = tp->networkdesc;
-            }
-#endif
-            tp = tp->next;
-        }
-
-        active = select(wnum > rnum ? wnum+1 : rnum+1,
-                rnum != -1 ? &rfds : NULL, 
-                wnum != -1 ? &wfds : NULL,
-                NULL, NULL);
-
-        /* New connection? */
-        sp = servers;
-        while (active > 0 && sp != NULL) 
-        {
-            if (FD_ISSET(sp->sd, &rfds)) 
-            {
-                handlenewconnection(sp->sd, sp->is_ssl);
-                active--;
-            }
-
-            sp = sp->next;
-        }
-
-        /* Handle the established sockets */
-        tp = usedconns;
-
-        while (active > 0 && tp != NULL) 
-        {
-            to = tp;
-            tp = tp->next;
-
-            if (to->state == STATE_WANT_TO_READ_HEAD &&
-                        FD_ISSET(to->networkdesc, &rfds)) 
-            {
-                active--;
-#if defined(CONFIG_HTTP_HAS_CGI)
-                if (to->post_state)
-                    read_post_data(to);
-                else
-#endif
-                    procreadhead(to);
-            } 
-
-            if (to->state == STATE_WANT_TO_SEND_HEAD &&
-                        FD_ISSET(to->networkdesc, &wfds)) 
-            {
-                active--;
-                procsendhead(to);
-            } 
-
-            if (to->state == STATE_WANT_TO_READ_FILE && 
-                        FD_ISSET(to->filedesc, &rfds)) 
-            {
-                active--;
-                procreadfile(to);
-            } 
-
-            if (to->state == STATE_WANT_TO_SEND_FILE && 
-                        FD_ISSET(to->networkdesc, &wfds)) 
-            {
-                active--;
-                procsendfile(to);
-            }
-
-#if defined(CONFIG_HTTP_DIRECTORIES)
-            if (to->state == STATE_DOING_DIR &&
-                        FD_ISSET(to->networkdesc, &wfds)) 
-            {
-                active--;
-                procdodir(to);
-            }
-#endif
-        }
-    }
-
-    return 0;
-}
-
-#if defined(CONFIG_HTTP_HAS_CGI)
-static void addcgiext(const char *cgi_exts)
-{
-    char *cp = strdup(cgi_exts);
-
-    /* extenstions are comma separated */
-    do 
-    {
-        struct cgiextstruct *ex = (struct cgiextstruct *)
-                            malloc(sizeof(struct cgiextstruct));
-        ex->ext = cp;
-        ex->next = cgiexts;
-        cgiexts = ex;
-        if ((cp = strchr(cp, ',')) != NULL)
-            *cp++ = 0;
-    } while (cp != NULL);
-}
-#endif
-
-static void addtoservers(int sd) 
-{
-    struct serverstruct *tp = (struct serverstruct *)
-                            calloc(1, sizeof(struct serverstruct));
-    tp->next = servers;
-    tp->sd = sd;
-    servers = tp;
-}
-
-#ifdef HAVE_IPV6
-static void handlenewconnection(int listenfd, int is_ssl) 
-{
-    struct sockaddr_in6 their_addr;
-    int tp = sizeof(their_addr);
-    char ipbuf[100];
-    int connfd = accept(listenfd, (struct sockaddr *)&their_addr, &tp);
-
-    if (tp == sizeof(struct sockaddr_in6)) 
-        inet_ntop(AF_INET6, &their_addr.sin6_addr, ipbuf, sizeof(ipbuf));
-    else if (tp == sizeof(struct sockaddr_in)) 
-        inet_ntop(AF_INET, &(((struct sockaddr_in *)&their_addr)->sin_addr),
-                ipbuf, sizeof(ipbuf));
-    else 
-        *ipbuf = '\0';
-
-    addconnection(connfd, ipbuf, is_ssl);
-}
-
-#else
-static void handlenewconnection(int listenfd, int is_ssl) 
-{
-    struct sockaddr_in their_addr;
-    socklen_t tp = sizeof(struct sockaddr_in);
-    int connfd = accept(listenfd, (struct sockaddr *)&their_addr, &tp);
-    addconnection(connfd, inet_ntoa(their_addr.sin_addr), is_ssl);
-}
-#endif
-
-static int openlistener(int port) 
-{
-    int sd;
-#ifdef WIN32
-    char tp = 1;
-#else
-    int tp = 1;
-#endif
-#ifndef HAVE_IPV6
-    struct sockaddr_in my_addr;
-
-    if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) 
-        return -1;
-
-    memset(&my_addr, 0, sizeof(my_addr));
-    my_addr.sin_family = AF_INET;
-    my_addr.sin_port = htons((short)port);
-    my_addr.sin_addr.s_addr = INADDR_ANY;
-#else
-    struct sockaddr_in6 my_addr;
-
-    if ((sd = socket(AF_INET6, SOCK_STREAM, 0)) == -1) 
-        return -1;
-
-    memset(&my_addr, 0, sizeof(my_addr));
-    my_addr.sin6_family = AF_INET6;
-    my_addr.sin6_port = htons(port);
-    my_addr.sin6_addr.s_addr = INADDR_ANY;
-#endif
-
-    setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, &tp, sizeof(tp));
-    if (bind(sd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1)
-    {
-        close(sd);
-        return -1;
-    }
-
-    listen(sd, BACKLOG);
-    return sd;
-}
-
-/* Wrapper function for strncpy() that guarantees
-   a null-terminated string. This is to avoid any possible
-   issues due to strncpy()'s behaviour.
- */
-char *my_strncpy(char *dest, const char *src, size_t n) 
-{
-    strncpy(dest, src, n);
-    dest[n-1] = '\0';
-    return dest;
-}
-
-int isdir(const char *tpbuf) 
-{
-    struct stat st;
-    char path[MAXREQUESTLENGTH];
-    strcpy(path, tpbuf);
-
-#ifdef WIN32        /* win32 stat() can't handle trailing '\' */
-    if (path[strlen(path)-1] == '\\')
-        path[strlen(path)-1] = 0;
-#endif
-
-    if (stat(path, &st) == -1) 
-        return 0;
-
-    if ((st.st_mode & S_IFMT) == S_IFDIR) 
-        return 1;
-
-    return 0;
-}
-
-static void addconnection(int sd, char *ip, int is_ssl) 
-{
-    struct connstruct *tp;
-
-    /* Get ourselves a connstruct */
-    if (freeconns == NULL) 
-        tp = (struct connstruct *)calloc(1, sizeof(struct connstruct));
-    else 
-    {
-        tp = freeconns;
-        freeconns = tp->next;
-    }
-
-    /* Attach it to the used list */
-    tp->next = usedconns;
-    usedconns = tp;
-    tp->networkdesc = sd;
-
-    if (is_ssl)
-        tp->ssl = ssl_server_new(servers->ssl_ctx, sd);
-
-    tp->is_ssl = is_ssl;
-    tp->filedesc = -1;
-#if defined(CONFIG_HTTP_HAS_DIRECTORIES)
-    tp->dirp = NULL;
-#endif
-    *tp->actualfile = '\0';
-    *tp->filereq = '\0';
-    tp->state = STATE_WANT_TO_READ_HEAD;
-    tp->reqtype = TYPE_GET;
-    tp->close_when_done = 0;
-    tp->timeout = time(NULL) + CONFIG_HTTP_TIMEOUT;
-#if defined(CONFIG_HTTP_HAS_CGI)
-    strcpy(tp->remote_addr, ip);
-#endif
-}
-
-void removeconnection(struct connstruct *cn) 
-{
-    struct connstruct *tp;
-    int shouldret = 0;
-
-    tp = usedconns;
-
-    if (tp == NULL || cn == NULL) 
-        shouldret = 1;
-    else if (tp == cn) 
-        usedconns = tp->next;
-    else 
-    {
-        while (tp != NULL) 
-        {
-            if (tp->next == cn) 
-            {
-                tp->next = (tp->next)->next;
-                shouldret = 0;
-                break;
-            }
-
-            tp = tp->next;
-            shouldret = 1;
-        }
-    }
-
-    if (shouldret) 
-        return;
-
-    /* If we did, add it to the free list */
-    cn->next = freeconns;
-    freeconns = cn;
-
-    /* Close it all down */
-    if (cn->networkdesc != -1) 
-    {
-        if (cn->is_ssl) 
-        {
-            ssl_free(cn->ssl);
-            cn->ssl = NULL;
-        }
-
-        SOCKET_CLOSE(cn->networkdesc);
-    }
-
-    if (cn->filedesc != -1) 
-        close(cn->filedesc);
-
-#if defined(CONFIG_HTTP_HAS_DIRECTORIES)
-    if (cn->dirp != NULL) 
-#ifdef WIN32
-        FindClose(cn->dirp);
-#else
-        closedir(cn->dirp);
-#endif
-#endif
-}
-
-/*
- * Change directories one way or the other.
- */
-static void ax_chdir(void)
-{
-    static char *webroot = CONFIG_HTTP_WEBROOT;
-
-    if (chdir(webroot))
-    {
-#ifdef CONFIG_HTTP_VERBOSE
-        fprintf(stderr, "'%s' is not a directory\n", webroot);
-#endif
-        exit(1);
-    }
-}
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/httpd/htpasswd.c b/package/luci/libs/luci-lib-nixio/axTLS/httpd/htpasswd.c
deleted file mode 100644 (file)
index 1a7a231..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include "ssl.h"
-
-int tfd;
-
-void base64_encode(const uint8_t *in, size_t inlen, char *out, size_t outlen)
-{
-    static const char b64str[64] =
-            "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-    while (inlen && outlen)
-    {
-        *out++ = b64str[(in[0] >> 2) & 0x3f];
-        if (!--outlen)
-            break;
-
-        *out++ = b64str[((in[0] << 4)
-                + (--inlen ? in[1] >> 4 : 0)) & 0x3f];
-        if (!--outlen)
-            break;
-        *out++ = (inlen
-             ? b64str[((in[1] << 2)
-                 + (--inlen ? in[2] >> 6 : 0))
-             & 0x3f]
-             : '=');
-        if (!--outlen)
-            break;
-        *out++ = inlen ? b64str[in[2] & 0x3f] : '=';
-        if (!--outlen)
-            break;
-        if (inlen)
-            inlen--;
-        if (inlen)
-            in += 3;
-    }
-
-    if (outlen)
-        *out = '\0';
-}
-
-static void usage(void) 
-{
-    fprintf(stderr,"Usage: htpasswd username\n");
-    exit(1);
-}
-
-#ifdef WIN32
-static char * getpass(const char *prompt)
-{
-    static char buf[127];
-    FILE *fp = stdin;
-
-    printf(prompt); TTY_FLUSH();
-#if 0
-    fp = fopen("/dev/tty", "w");
-    if (fp == NULL) 
-    {
-        printf("null\n"); TTY_FLUSH();
-        fp = stdin;
-    }
-#endif
-
-    fgets(buf, sizeof(buf), fp);
-    while (buf[strlen(buf)-1] < ' ') 
-        buf[strlen(buf)-1] = '\0';
-
-    //if (fp != stdin) 
-    //    fclose(fp);
-    return buf;
-}
-#endif
-
-int main(int argc, char *argv[]) 
-{
-    char* pw;
-    uint8_t md5_salt[MD5_SIZE], md5_pass[MD5_SIZE];
-    char b64_salt[MD5_SIZE+10], b64_pass[MD5_SIZE+10];
-    MD5_CTX ctx;
-
-    if (argc != 2)
-        usage();
-
-    pw = strdup(getpass("New password:"));
-    if (strcmp(pw, getpass("Re-type new password:")) != 0)
-    {
-        fprintf(stderr, "They don't match, sorry.\n" );
-        exit(1);
-    }
-
-    RNG_initialize((uint8_t *)pw, sizeof(pw));
-    get_random(MD5_SIZE, md5_salt);
-    RNG_terminate();
-    base64_encode(md5_salt, MD5_SIZE, b64_salt, sizeof(b64_salt));
-
-    MD5_Init(&ctx);
-    MD5_Update(&ctx, md5_salt, MD5_SIZE);
-    MD5_Update(&ctx, (uint8_t *)pw, strlen(pw));
-    MD5_Final(md5_pass, &ctx);
-    base64_encode(md5_pass, MD5_SIZE, b64_pass, sizeof(b64_pass));
-
-    printf("Add the following to your '.htpasswd' file\n");
-    printf("%s:%s$%s\n", argv[1], b64_salt, b64_pass);
-    return 0;
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/httpd/kepler-1.1-snapshot-20070521-1825.tar.gz b/package/luci/libs/luci-lib-nixio/axTLS/httpd/kepler-1.1-snapshot-20070521-1825.tar.gz
deleted file mode 100755 (executable)
index d1caec5..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/httpd/kepler-1.1-snapshot-20070521-1825.tar.gz and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/httpd/kepler.patch b/package/luci/libs/luci-lib-nixio/axTLS/httpd/kepler.patch
deleted file mode 100644 (file)
index dbab7e5..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-diff -Naur kepler-1.1/launcher/cgi/Makefile kepler-1.1.new/launcher/cgi/Makefile
---- kepler-1.1/launcher/cgi/Makefile   2007-04-21 06:41:49.000000000 +1000
-+++ kepler-1.1.new/launcher/cgi/Makefile       2007-05-16 22:13:38.750000000 +1000
-@@ -16,7 +16,7 @@
- $T: $(CH) $(OBJS)
--      $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS)
-+      $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) -L../../lua-5.1.2/src -llua
- build: $T
-diff -Naur kepler-1.1/luafilesystem/Makefile kepler-1.1.new/luafilesystem/Makefile
---- kepler-1.1/luafilesystem/Makefile  2007-04-21 06:41:49.000000000 +1000
-+++ kepler-1.1.new/luafilesystem/Makefile      2007-05-16 22:06:25.546875000 +1000
-@@ -12,7 +12,7 @@
- lib: src/$(LIBNAME)
- src/$(LIBNAME): $(OBJS)
--      export MACOSX_DEPLOYMENT_TARGET="10.3"; $(CC) $(CFLAGS) $(LIB_OPTION) -o src/$(LIBNAME) $(OBJS)
-+      export MACOSX_DEPLOYMENT_TARGET="10.3"; $(CC) $(CFLAGS) $(LIB_OPTION) -o src/$(LIBNAME) $(OBJS) -L../lua-5.1.2/src -llua
- install: src/$(LIBNAME)
-       mkdir -p $(LUA_LIBDIR)
-diff -Naur kepler-1.1/luasocket-2.0.1/src/makefile kepler-1.1.new/luasocket-2.0.1/src/makefile
---- kepler-1.1/luasocket-2.0.1/src/makefile    2007-04-21 06:41:49.000000000 +1000
-+++ kepler-1.1.new/luasocket-2.0.1/src/makefile        2007-05-16 22:36:37.125000000 +1000
-@@ -47,10 +47,10 @@
- all: $(SOCKET_SO) $(MIME_SO) 
- $(SOCKET_SO): $(SOCKET_OBJS)
--      $(LD) $(LDFLAGS) -o $@ $(SOCKET_OBJS)
-+      $(LD) $(LDFLAGS) -o $@ $(SOCKET_OBJS) -L../../lua-5.1.2/src -llua
- $(MIME_SO): $(MIME_OBJS)
--      $(LD) $(LDFLAGS) -o $@ $(MIME_OBJS)
-+      $(LD) $(LDFLAGS) -o $@ $(MIME_OBJS) -L../../lua-5.1.2/src -llua
- $(UNIX_SO): $(UNIX_OBJS)
-       $(LD) $(LDFLAGS) -o $@ $(UNIX_OBJS)
-diff -Naur kepler-1.1/md5/Makefile kepler-1.1.new/md5/Makefile
---- kepler-1.1/md5/Makefile    2007-04-21 06:41:49.000000000 +1000
-+++ kepler-1.1.new/md5/Makefile        2007-05-16 22:06:44.593750000 +1000
-@@ -15,7 +15,7 @@
- src/$(LIBNAME) : $(OBJS)
--      export MACOSX_DEPLOYMENT_TARGET="10.3"; $(CC) $(CFLAGS) $(LIB_OPTION) -o src/$(LIBNAME) $(OBJS)
-+      export MACOSX_DEPLOYMENT_TARGET="10.3"; $(CC) $(CFLAGS) $(LIB_OPTION) -o src/$(LIBNAME) $(OBJS) -L../lua-5.1.2/src -llua
- $(COMPAT_DIR)/compat-5.1.o: $(COMPAT_DIR)/compat-5.1.c
-       $(CC) -c $(CFLAGS) -o $@ $(COMPAT_DIR)/compat-5.1.c
-diff -Naur kepler-1.1/rings/Makefile kepler-1.1.new/rings/Makefile
---- kepler-1.1/rings/Makefile  2007-04-21 06:41:49.000000000 +1000
-+++ kepler-1.1.new/rings/Makefile      2007-05-16 22:05:28.765625000 +1000
-@@ -10,7 +10,7 @@
- OBJS= src/rings.o
- src/$(LIBNAME) : $(OBJS)
--      export MACOSX_DEPLOYMENT_TARGET="10.3"; $(CC) $(CFLAGS) $(LIB_OPTION) -o src/$(LIBNAME) $(OBJS)
-+      export MACOSX_DEPLOYMENT_TARGET="10.3"; $(CC) $(CFLAGS) $(LIB_OPTION) -o src/$(LIBNAME) $(OBJS) -L../lua-5.1.2/src -llua
- install:
-       mkdir -p $(LUA_LIBDIR)
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/httpd/proc.c b/package/luci/libs/luci-lib-nixio/axTLS/httpd/proc.c
deleted file mode 100644 (file)
index 3c897c9..0000000
+++ /dev/null
@@ -1,1238 +0,0 @@
-/*
- * Copyright (c) 2007-2008, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <time.h>
-#include <string.h>
-#include "axhttp.h"
-
-#define HTTP_VERSION        "HTTP/1.1"
-
-static const char * index_file = "index.html";
-
-static int special_read(struct connstruct *cn, void *buf, size_t count);
-static int special_write(struct connstruct *cn, 
-                                        const char *buf, size_t count);
-static void send_error(struct connstruct *cn, int err);
-static int hexit(char c);
-static void urldecode(char *buf);
-static void buildactualfile(struct connstruct *cn);
-static int sanitizefile(const char *buf);
-static int sanitizehost(char *buf);
-static int htaccess_check(struct connstruct *cn);
-static const char *getmimetype(const char *name);
-
-#if defined(CONFIG_HTTP_DIRECTORIES)
-static void urlencode(const uint8_t *s, char *t);
-static void procdirlisting(struct connstruct *cn);
-#endif
-#if defined(CONFIG_HTTP_HAS_CGI)
-static void proccgi(struct connstruct *cn);
-static void decode_path_info(struct connstruct *cn, char *path_info);
-static int init_read_post_data(char *buf, char *data, struct connstruct *cn, int old_rv);
-#endif
-#ifdef CONFIG_HTTP_HAS_AUTHORIZATION
-static int auth_check(struct connstruct *cn);
-#endif
-
-#if AXDEBUG
-#define AXDEBUGSTART \
-       { \
-               FILE *axdout; \
-               axdout = fopen("/var/log/axdebug", "a"); \
-       
-#define AXDEBUGEND \
-               fclose(axdout); \
-       }
-#else /* AXDEBUG */
-#define AXDEBUGSTART
-#define AXDEBUGEND
-#endif /* AXDEBUG */
-
-/* Returns 1 if elems should continue being read, 0 otherwise */
-static int procheadelem(struct connstruct *cn, char *buf) 
-{
-    char *delim, *value;
-
-    if ((delim = strchr(buf, ' ')) == NULL)
-        return 0;
-
-    *delim = 0;
-    value = delim+1;
-
-    if (strcmp(buf, "GET") == 0 || strcmp(buf, "HEAD") == 0 ||
-                                            strcmp(buf, "POST") == 0) 
-    {
-        if (buf[0] == 'H') 
-            cn->reqtype = TYPE_HEAD;
-        else if (buf[0] == 'P') 
-            cn->reqtype = TYPE_POST;
-
-        if ((delim = strchr(value, ' ')) == NULL)       /* expect HTTP type */
-            return 0;
-
-        *delim = 0;
-        urldecode(value);
-
-        if (sanitizefile(value) == 0) 
-        {
-            send_error(cn, 403);
-            return 0;
-        }
-
-#if defined(CONFIG_HTTP_HAS_CGI)
-        decode_path_info(cn, value);
-#else
-        my_strncpy(cn->filereq, value, MAXREQUESTLENGTH);
-#endif
-        cn->if_modified_since = -1;
-    } 
-    else if (strcmp(buf, "Host:") == 0) 
-    {
-        if (sanitizehost(value) == 0) 
-        {
-            removeconnection(cn);
-            return 0;
-        }
-
-        my_strncpy(cn->server_name, value, MAXREQUESTLENGTH);
-    } 
-    else if (strcmp(buf, "Connection:") == 0 && strcmp(value, "close") == 0) 
-    {
-        cn->close_when_done = 1;
-    } 
-    else if (strcmp(buf, "If-Modified-Since:") == 0) 
-    {
-        cn->if_modified_since = tdate_parse(value);
-    }
-    else if (strcmp(buf, "Expect:") == 0)
-    {
-        send_error(cn, 417); /* expectation failed */
-        return 0;
-    }
-#ifdef CONFIG_HTTP_HAS_AUTHORIZATION
-    else if (strcmp(buf, "Authorization:") == 0 &&
-                                    strncmp(value, "Basic ", 6) == 0)
-    {
-        int size;
-        if (base64_decode(&value[6], strlen(&value[6]), 
-                                        (uint8_t *)cn->authorization, &size))
-            cn->authorization[0] = 0;   /* error */
-        else
-            cn->authorization[size] = 0;
-    }
-#endif
-#if defined(CONFIG_HTTP_HAS_CGI)
-    else if (strcmp(buf, "Content-Length:") == 0)
-    {
-        sscanf(value, "%d", &cn->content_length);
-    }
-    else if (strcmp(buf, "Cookie:") == 0)
-    {
-        my_strncpy(cn->cookie, value, MAXREQUESTLENGTH);
-    }
-#endif
-
-    return 1;
-}
-
-#if defined(CONFIG_HTTP_DIRECTORIES)
-static void procdirlisting(struct connstruct *cn)
-{
-    char buf[MAXREQUESTLENGTH];
-    char actualfile[1024];
-
-    if (cn->reqtype == TYPE_HEAD) 
-    {
-        snprintf(buf, sizeof(buf), HTTP_VERSION
-                " 200 OK\nContent-Type: text/html\n\n");
-        write(cn->networkdesc, buf, strlen(buf));
-        removeconnection(cn);
-        return;
-    }
-
-    strcpy(actualfile, cn->actualfile);
-
-#ifdef WIN32
-    strcat(actualfile, "*");
-    cn->dirp = FindFirstFile(actualfile, &cn->file_data);
-
-    if (cn->dirp == INVALID_HANDLE_VALUE) 
-    {
-        send_error(cn, 404);
-        return;
-    }
-#else
-    if ((cn->dirp = opendir(actualfile)) == NULL) 
-    {
-        send_error(cn, 404);
-        return;
-    }
-#endif
-
-    snprintf(buf, sizeof(buf), HTTP_VERSION
-            " 200 OK\nContent-Type: text/html\n\n"
-            "<html><body>\n<title>Directory Listing</title>\n"
-            "<h3>Directory listing of %s://%s%s</h3><br />\n", 
-            cn->is_ssl ? "https" : "http", cn->server_name, cn->filereq);
-    special_write(cn, buf, strlen(buf));
-    cn->state = STATE_DOING_DIR;
-}
-
-void procdodir(struct connstruct *cn) 
-{
-#ifndef WIN32
-    struct dirent *dp;
-#endif
-    char buf[MAXREQUESTLENGTH];
-    char encbuf[1024];
-    char *file;
-
-    do 
-    {
-       buf[0] = 0;
-
-#ifdef WIN32
-        if (!FindNextFile(cn->dirp, &cn->file_data)) 
-#else
-        if ((dp = readdir(cn->dirp)) == NULL)  
-#endif
-        {
-            snprintf(buf, sizeof(buf), "</body></html>\n");
-            special_write(cn, buf, strlen(buf));
-            removeconnection(cn);
-#ifndef WIN32
-            closedir(cn->dirp);
-#endif
-            return;
-        }
-
-#ifdef WIN32
-        file = cn->file_data.cFileName;
-#else
-        file = dp->d_name;
-#endif
-
-        /* if no index file, don't display the ".." directory */
-        if (cn->filereq[0] == '/' && cn->filereq[1] == '\0' &&
-                strcmp(file, "..") == 0) 
-            continue;
-
-        /* don't display files beginning with "." */
-        if (file[0] == '.' && file[1] != '.')
-            continue;
-
-        /* make sure a '/' is at the end of a directory */
-        if (cn->filereq[strlen(cn->filereq)-1] != '/')
-            strcat(cn->filereq, "/");
-
-        /* see if the dir + file is another directory */
-        snprintf(buf, sizeof(buf), "%s%s", cn->actualfile, file);
-        if (isdir(buf))
-            strcat(file, "/");
-
-        urlencode((uint8_t *)file, encbuf);
-        snprintf(buf, sizeof(buf), "<a href=\"%s%s\">%s</a><br />\n",
-                cn->filereq, encbuf, file);
-    } while (special_write(cn, buf, strlen(buf)));
-}
-
-/* Encode funny chars -> %xx in newly allocated storage */
-/* (preserves '/' !) */
-static void urlencode(const uint8_t *s, char *t) 
-{
-    const uint8_t *p = s;
-    char *tp = t;
-
-    for (; *p; p++) 
-    {
-        if ((*p > 0x00 && *p < ',') ||
-                (*p > '9' && *p < 'A') ||
-                (*p > 'Z' && *p < '_') ||
-                (*p > '_' && *p < 'a') ||
-                (*p > 'z' && *p < 0xA1)) 
-        {
-            sprintf((char *)tp, "%%%02X", *p);
-            tp += 3; 
-        } 
-        else 
-        {
-            *tp = *p;
-            tp++;
-        }
-    }
-
-    *tp='\0';
-}
-
-#endif
-
-void procreadhead(struct connstruct *cn) 
-{
-    char buf[MAXREQUESTLENGTH*4], *tp, *next;
-    int rv;
-
-    memset(buf, 0, MAXREQUESTLENGTH*4);
-    rv = special_read(cn, buf, sizeof(buf)-1);
-    if (rv <= 0) 
-    {
-        if (rv < 0) /* really dead? */
-            removeconnection(cn);
-        return;
-    }
-
-    buf[rv] = '\0';
-    next = tp = buf;
-
-#ifdef CONFIG_HTTP_HAS_AUTHORIZATION
-    cn->authorization[0] = 0;
-#endif
-
-    /* Split up lines and send to procheadelem() */
-    while (*next != '\0') 
-    {
-        /* If we have a blank line, advance to next stage */
-        if (*next == '\r' || *next == '\n') 
-        {
-#if defined(CONFIG_HTTP_HAS_CGI)
-            if (cn->reqtype == TYPE_POST && cn->content_length > 0)
-            {
-                if (init_read_post_data(buf,next,cn,rv) == 0)
-                    return;
-            }
-#endif
-
-            buildactualfile(cn);
-            cn->state = STATE_WANT_TO_SEND_HEAD;
-            return;
-        }
-
-        while (*next != '\r' && *next != '\n' && *next != '\0') 
-            next++;
-
-        if (*next == '\r') 
-        {
-            *next = '\0';
-            next += 2;
-        }
-        else if (*next == '\n') 
-            *next++ = '\0';
-
-        if (procheadelem(cn, tp) == 0) 
-            return;
-
-        tp = next;
-    }
-}
-
-/* In this function we assume that the file has been checked for
- * maliciousness (".."s, etc) and has been decoded
- */
-void procsendhead(struct connstruct *cn) 
-{
-    char buf[MAXREQUESTLENGTH];
-    struct stat stbuf;
-    time_t now = cn->timeout - CONFIG_HTTP_TIMEOUT;
-    char date[32];
-    int file_exists;
-
-    /* are we trying to access a file over the HTTP connection instead of a
-     * HTTPS connection? Or is this directory disabled? */
-    if (htaccess_check(cn))      
-    {
-        send_error(cn, 403);
-        return;
-    }
-
-#ifdef CONFIG_HTTP_HAS_AUTHORIZATION
-    if (auth_check(cn))     /* see if there is a '.htpasswd' file */
-    {
-#ifdef CONFIG_HTTP_VERBOSE
-        printf("axhttpd: access to %s denied\n", cn->filereq); TTY_FLUSH();
-#endif
-        removeconnection(cn);
-        return;
-    }
-#endif
-
-    file_exists = stat(cn->actualfile, &stbuf);
-
-#if defined(CONFIG_HTTP_HAS_CGI)
-
-    if (file_exists != -1 && cn->is_cgi)
-    {
-        if ((stbuf.st_mode & S_IEXEC) == 0 || isdir(cn->actualfile))
-        {
-            /* A non-executable file, or directory? */
-            send_error(cn, 403);
-        }
-        else
-            proccgi(cn);
-
-        return;
-    }
-#endif
-
-    /* look for "index.html"? */
-    if (isdir(cn->actualfile))
-    {
-        char tbuf[MAXREQUESTLENGTH];
-        snprintf(tbuf, MAXREQUESTLENGTH, "%s%s", cn->actualfile, index_file);
-
-        if ((file_exists = stat(tbuf, &stbuf)) != -1) 
-            my_strncpy(cn->actualfile, tbuf, MAXREQUESTLENGTH);
-        else
-        {
-#if defined(CONFIG_HTTP_DIRECTORIES)
-            /* If not, we do a directory listing of it */
-            procdirlisting(cn);
-#else
-            send_error(cn, 404);
-#endif
-            return;
-        }
-    }
-
-    if (file_exists == -1)
-    {
-        send_error(cn, 404);
-        return;
-    }
-
-    strcpy(date, ctime(&now));
-
-    /* has the file been read before? */
-    if (cn->if_modified_since != -1 && (cn->if_modified_since == 0 || 
-                                       cn->if_modified_since >= stbuf.st_mtime))
-    {
-        snprintf(buf, sizeof(buf), HTTP_VERSION" 304 Not Modified\nServer: "
-                "%s\nDate: %s\n", server_version, date);
-        special_write(cn, buf, strlen(buf));
-        cn->state = STATE_WANT_TO_READ_HEAD;
-        return;
-    }
-
-    if (cn->reqtype == TYPE_HEAD) 
-    {
-        removeconnection(cn);
-        return;
-    } 
-    else 
-    {
-        int flags = O_RDONLY;
-#if defined(WIN32) || defined(CONFIG_PLATFORM_CYGWIN)
-        flags |= O_BINARY;
-#endif
-        cn->filedesc = open(cn->actualfile, flags);
-
-        if (cn->filedesc < 0) 
-        {
-            send_error(cn, 404);
-            return;
-        }
-
-        snprintf(buf, sizeof(buf), HTTP_VERSION" 200 OK\nServer: %s\n"
-            "Content-Type: %s\nContent-Length: %ld\n"
-            "Date: %sLast-Modified: %s\n", server_version,
-            getmimetype(cn->actualfile), (long) stbuf.st_size,
-            date, ctime(&stbuf.st_mtime)); /* ctime() has a \n on the end */
-
-        special_write(cn, buf, strlen(buf));
-
-#ifdef CONFIG_HTTP_VERBOSE
-        printf("axhttpd: %s:/%s\n", cn->is_ssl ? "https" : "http", cn->filereq);
-        TTY_FLUSH();
-#endif
-
-#ifdef WIN32
-        for (;;)
-        {
-            procreadfile(cn);
-            if (cn->filedesc == -1)
-                break;
-
-            do 
-            {
-                procsendfile(cn);
-            } while (cn->state != STATE_WANT_TO_READ_FILE);
-        }
-#else
-        cn->state = STATE_WANT_TO_READ_FILE;
-#endif
-    }
-}
-
-void procreadfile(struct connstruct *cn) 
-{
-    int rv = read(cn->filedesc, cn->databuf, BLOCKSIZE);
-
-    if (rv <= 0) 
-    {
-        close(cn->filedesc);
-        cn->filedesc = -1;
-
-        if (cn->close_when_done)        /* close immediately */
-            removeconnection(cn);
-        else 
-        {                               /* keep socket open - HTTP 1.1 */
-            cn->state = STATE_WANT_TO_READ_HEAD;
-            cn->numbytes = 0;
-        }
-
-        return;
-    }
-
-    cn->numbytes = rv;
-    cn->state = STATE_WANT_TO_SEND_FILE;
-}
-
-void procsendfile(struct connstruct *cn) 
-{
-    int rv = special_write(cn, cn->databuf, cn->numbytes);
-
-    if (rv < 0)
-        removeconnection(cn);
-    else if (rv == cn->numbytes)
-    {
-        cn->state = STATE_WANT_TO_READ_FILE;
-    }
-    else if (rv == 0)
-    { 
-        /* Do nothing */ 
-    }
-    else 
-    {
-        memmove(cn->databuf, cn->databuf + rv, cn->numbytes - rv);
-        cn->numbytes -= rv;
-    }
-}
-
-#if defined(CONFIG_HTTP_HAS_CGI)
-/* Should this be a bit more dynamic? It would mean more calls to malloc etc */
-#define CGI_ARG_SIZE        17
-
-static void proccgi(struct connstruct *cn) 
-{
-    int tpipe[2], spipe[2];
-    char *myargs[2];
-    char cgienv[CGI_ARG_SIZE][MAXREQUESTLENGTH];
-    char * cgiptr[CGI_ARG_SIZE+4];
-    const char *type = "HEAD";
-    int cgi_index = 0, i;
-    pid_t pid;
-#ifdef WIN32
-    int tmp_stdout;
-#endif
-
-    snprintf(cgienv[0], MAXREQUESTLENGTH, 
-            HTTP_VERSION" 200 OK\nServer: %s\n%s",
-            server_version, (cn->reqtype == TYPE_HEAD) ? "\n" : "");
-    special_write(cn, cgienv[0], strlen(cgienv[0]));
-
-    if (cn->reqtype == TYPE_HEAD) 
-    {
-        removeconnection(cn);
-        return;
-    }
-
-#ifdef CONFIG_HTTP_VERBOSE
-        printf("[CGI]: %s:/%s\n", cn->is_ssl ? "https" : "http", cn->filereq);
-        TTY_FLUSH();
-#endif
-
-    /* win32 cgi is a bit too painful */
-#ifndef WIN32
-       /* set up pipe that is used for sending POST query data to CGI script*/
-    if (cn->reqtype == TYPE_POST) 
-    {
-        if (pipe(spipe) == -1)
-        {
-            printf("[CGI]: could not create pipe");
-            TTY_FLUSH();
-            return;
-        }
-    }
-
-       if (pipe(tpipe) == -1)
-    {
-        printf("[CGI]: could not create pipe");
-        TTY_FLUSH();
-        return;
-    }
-
-    /*
-     * use vfork() instead of fork() for performance 
-     */
-    if ((pid = vfork()) > 0)  /* parent */
-    {
-        /* Send POST query data to CGI script */
-        if ((cn->reqtype == TYPE_POST) && (cn->content_length > 0)) 
-        {
-            write(spipe[1], cn->post_data, cn->content_length);
-            close(spipe[0]);    
-            close(spipe[1]);
-
-            /* free the memory that is allocated in read_post_data() */
-            free(cn->post_data); 
-            cn->post_data = NULL;
-        }
-
-        /* Close the write descriptor */
-        close(tpipe[1]);
-        cn->filedesc = tpipe[0];
-        cn->state = STATE_WANT_TO_READ_FILE;
-        cn->close_when_done = 1;
-        return;
-    }
-
-    if (pid < 0) /* vfork failed */
-        exit(1);
-
-    /* The problem child... */
-
-    /* Our stdout/stderr goes to the socket */
-    dup2(tpipe[1], 1);
-    dup2(tpipe[1], 2);
-
-    /* If it was a POST request, send the socket data to our stdin */
-    if (cn->reqtype == TYPE_POST) 
-        dup2(spipe[0], 0);  
-    else    /* Otherwise we can shutdown the read side of the sock */
-        shutdown(cn->networkdesc, 0);
-
-    myargs[0] = cn->actualfile;
-    myargs[1] = NULL;
-
-    /* 
-     * set the cgi args. A url is defined by:
-     * http://$SERVER_NAME:$SERVER_PORT$SCRIPT_NAME$PATH_INFO?$QUERY_STRING
-     * TODO: other CGI parameters?
-     */
-    sprintf(cgienv[cgi_index++], "SERVER_SOFTWARE=%s", server_version);
-    strcpy(cgienv[cgi_index++], "DOCUMENT_ROOT=" CONFIG_HTTP_WEBROOT);
-    snprintf(cgienv[cgi_index++], MAXREQUESTLENGTH,
-            "SERVER_NAME=%s", cn->server_name);
-    sprintf(cgienv[cgi_index++], "SERVER_PORT=%d", 
-            cn->is_ssl ? CONFIG_HTTP_HTTPS_PORT : CONFIG_HTTP_PORT);
-    snprintf(cgienv[cgi_index++], MAXREQUESTLENGTH,
-            "REQUEST_URI=%s", cn->uri_request);
-    snprintf(cgienv[cgi_index++], MAXREQUESTLENGTH,
-            "SCRIPT_NAME=%s", cn->filereq);
-    snprintf(cgienv[cgi_index++], MAXREQUESTLENGTH,
-            "PATH_INFO=%s", cn->uri_path_info);
-    snprintf(cgienv[cgi_index++], MAXREQUESTLENGTH,
-            "QUERY_STRING=%s", cn->uri_query);
-    snprintf(cgienv[cgi_index++], MAXREQUESTLENGTH,
-            "REMOTE_ADDR=%s", cn->remote_addr);
-    snprintf(cgienv[cgi_index++], MAXREQUESTLENGTH,
-            "HTTP_COOKIE=%s", cn->cookie);  /* note: small size */
-#if defined(CONFIG_HTTP_HAS_AUTHORIZATION)
-    snprintf(cgienv[cgi_index++], MAXREQUESTLENGTH,
-            "REMOTE_USER=%s", cn->authorization);
-#endif
-
-    switch (cn->reqtype)
-    {
-        case TYPE_GET: 
-            type = "GET";
-            break;
-
-        case TYPE_POST:
-            type = "POST";
-            sprintf(cgienv[cgi_index++], 
-                        "CONTENT_LENGTH=%d", cn->content_length);
-            strcpy(cgienv[cgi_index++],     /* hard-code? */
-                        "CONTENT_TYPE=application/x-www-form-urlencoded");
-            break;
-    }
-
-    sprintf(cgienv[cgi_index++], "REQUEST_METHOD=%s", type);
-
-    if (cn->is_ssl)
-        strcpy(cgienv[cgi_index++], "HTTPS=on");
-
-#ifdef CONFIG_PLATFORM_CYGWIN
-    /* TODO: find out why Lua needs this */
-    strcpy(cgienv[cgi_index++], "PATH=/usr/bin");
-#endif
-
-    if (cgi_index >= CGI_ARG_SIZE)
-    {
-        printf("Content-type: text/plain\n\nToo many CGI args (%d, %d)\n",
-                cgi_index, CGI_ARG_SIZE);
-        _exit(1);
-    }
-
-    /* copy across the pointer indexes */
-    for (i = 0; i < cgi_index; i++)
-        cgiptr[i] = cgienv[i];
-
-    cgiptr[i++] = "AUTH_TYPE=Basic";
-    cgiptr[i++] = "GATEWAY_INTERFACE=CGI/1.1";
-    cgiptr[i++] = "SERVER_PROTOCOL="HTTP_VERSION;
-    cgiptr[i] = NULL;
-
-    execve(myargs[0], myargs, cgiptr);
-    printf("Content-type: text/plain\n\nshouldn't get here\n");
-    _exit(1);
-#endif
-}
-
-static char * cgi_filetype_match(struct connstruct *cn, const char *fn)
-{
-    struct cgiextstruct *tp = cgiexts;
-
-    while (tp != NULL) 
-    {
-        char *t;
-
-        if ((t = strstr(fn, tp->ext)) != NULL)
-        {
-            t += strlen(tp->ext);
-
-            if (*t == '/' || *t == '\0')
-            {
-#ifdef CONFIG_HTTP_ENABLE_LUA
-                if (strcmp(tp->ext, ".lua") == 0 || strcmp(tp->ext, ".lp") == 0)
-                    cn->is_lua = 1;
-#endif
-
-                return t;
-            }
-            else
-                return NULL;
-
-        }
-
-        tp = tp->next;
-    }
-
-    return NULL;
-}
-
-static void decode_path_info(struct connstruct *cn, char *path_info)
-{
-    char *cgi_delim;
-
-    cn->is_cgi = 0;
-#ifdef CONFIG_HTTP_ENABLE_LUA
-    cn->is_lua = 0;
-#endif
-    *cn->uri_request = '\0';
-    *cn->uri_path_info = '\0';
-    *cn->uri_query = '\0';
-
-    my_strncpy(cn->uri_request, path_info, MAXREQUESTLENGTH);
-
-    /* query info? */
-    if ((cgi_delim = strchr(path_info, '?')))
-    {
-        *cgi_delim = '\0';
-        my_strncpy(cn->uri_query, cgi_delim+1, MAXREQUESTLENGTH);
-    }
-
-    if ((cgi_delim = cgi_filetype_match(cn, path_info)) != NULL)
-    {
-        cn->is_cgi = 1;     /* definitely a CGI script */
-
-        /* path info? */
-        if (*cgi_delim != '\0')
-        {
-            my_strncpy(cn->uri_path_info, cgi_delim, MAXREQUESTLENGTH);
-            *cgi_delim = '\0';
-        }
-    }
-
-    /* the bit at the start must be the script name */
-    my_strncpy(cn->filereq, path_info, MAXREQUESTLENGTH);
-}
-
-static int init_read_post_data(char *buf, char *data, 
-                                struct connstruct *cn, int old_rv)
-{
-   char *next = data;
-   int rv = old_rv;
-   char *post_data;
-
-    /* Too much Post data to send. MAXPOSTDATASIZE should be 
-       configured (now it can be chaged in the header file) */
-   if (cn->content_length > MAXPOSTDATASIZE) 
-   {
-       send_error(cn, 418);
-       return 0;
-   }
-   
-   /* remove CRLF */
-   while ((*next == '\r' || *next == '\n') && (next < &buf[rv])) 
-       next++;
-   
-   if (cn->post_data == NULL)
-   {
-       cn->post_data = (char *) calloc(1, (cn->content_length + 1)); 
-       /* Allocate buffer for the POST data that will be used by proccgi 
-          to send POST data to the CGI script */
-
-       if (cn->post_data == NULL)
-       {
-           printf("axhttpd: could not allocate memory for POST data\n"); 
-           TTY_FLUSH();
-           send_error(cn, 599);
-           return 0;
-       }
-   }
-
-   cn->post_state = 0;
-   cn->post_read = 0;
-   post_data = cn->post_data;
-
-   while (next < &buf[rv])
-   { 
-       /*copy POST data to buffer*/
-       *post_data = *next;
-       post_data++;
-       next++;
-       cn->post_read++;
-       if (cn->post_read == cn->content_length)
-       { 
-           /* No more POST data to be copied */
-           *post_data = '\0';
-           return 1;
-       }
-   }
-
-   /* More POST data has to be read. read_post_data will continue with that */
-   cn->post_state = 1;
-   return 0;
-}
-
-void read_post_data(struct connstruct *cn)
-{
-    char buf[MAXREQUESTLENGTH*4], *next;
-    char *post_data;
-    int rv;
-
-    bzero(buf,MAXREQUESTLENGTH*4);
-    rv = special_read(cn, buf, sizeof(buf)-1);
-    if (rv <= 0) 
-    {
-        if (rv < 0) /* really dead? */
-            removeconnection(cn);
-        return;
-    }
-
-    buf[rv] = '\0';
-    next = buf;
-
-    post_data = &cn->post_data[cn->post_read];
-
-    while (next < &buf[rv])
-    {
-        *post_data = *next;
-        post_data++;
-        next++;
-        cn->post_read++;
-        if (cn->post_read == cn->content_length)
-        {  
-            /* No more POST data to be copied */
-            *post_data='\0';
-            cn->post_state = 0;
-            buildactualfile(cn);
-            cn->state = STATE_WANT_TO_SEND_HEAD;
-            return;
-        }
-    }
-
-    /* More POST data to read */
-}
-
-#endif  /* CONFIG_HTTP_HAS_CGI */
-
-/* Decode string %xx -> char (in place) */
-static void urldecode(char *buf) 
-{
-    int v;
-    char *p, *s, *w;
-
-    w = p = buf;
-
-    while (*p) 
-    {
-        v = 0;
-
-        if (*p == '%') 
-        {
-            s = p;
-            s++;
-
-            if (isxdigit((int) s[0]) && isxdigit((int) s[1]))
-            {
-                v = hexit(s[0])*16 + hexit(s[1]);
-
-                if (v) 
-                { 
-                    /* do not decode %00 to null char */
-                    *w = (char)v;
-                    p = &s[1];
-                }
-            }
-
-        }
-
-        if (!v) *w=*p;
-        p++; 
-        w++;
-    }
-
-    *w='\0';
-}
-
-static int hexit(char c) 
-{
-    if (c >= '0' && c <= '9')
-        return c - '0';
-    else if (c >= 'a' && c <= 'f')
-        return c - 'a' + 10;
-    else if (c >= 'A' && c <= 'F')
-        return c - 'A' + 10;
-    else
-        return 0;
-}
-
-static void buildactualfile(struct connstruct *cn)
-{
-    char *cp;
-    snprintf(cn->actualfile, MAXREQUESTLENGTH, ".%s", cn->filereq);
-
-#ifndef WIN32
-    /* Add directory slash if not there */
-    if (isdir(cn->actualfile) && 
-            cn->actualfile[strlen(cn->actualfile)-1] != '/')
-        strcat(cn->actualfile, "/");
-
-    /* work out the directory name */
-    strncpy(cn->dirname, cn->actualfile, MAXREQUESTLENGTH);
-    if ((cp = strrchr(cn->dirname, '/')) == NULL)
-        cn->dirname[0] = 0;
-    else
-        *cp = 0;
-#else
-    {
-        char curr_dir[MAXREQUESTLENGTH];
-        char path[MAXREQUESTLENGTH];
-        char *t = cn->actualfile;
-
-        GetCurrentDirectory(MAXREQUESTLENGTH, curr_dir);
-
-        /* convert all the forward slashes to back slashes */
-        while ((t = strchr(t, '/')))
-            *t++ = '\\';
-
-        snprintf(path, MAXREQUESTLENGTH, "%s%s", curr_dir, cn->actualfile);
-        memcpy(cn->actualfile, path, MAXREQUESTLENGTH);
-
-        /* Add directory slash if not there */
-        if (isdir(cn->actualfile) && 
-                    cn->actualfile[strlen(cn->actualfile)-1] != '\\')
-            strcat(cn->actualfile, "\\");
-
-        /* work out the directory name */
-        strncpy(cn->dirname, cn->actualfile, MAXREQUESTLENGTH);
-        if ((cp = strrchr(cn->dirname, '\\')) == NULL)
-            cn->dirname[0] = 0;
-        else
-            *cp = 0;
-    }
-#endif
-
-#if defined(CONFIG_HTTP_ENABLE_LUA)
-    /* 
-     * Use the lua launcher if this file has a lua extension. Put this at the
-     * end as we need the directory name.
-     */
-    if (cn->is_lua)
-        sprintf(cn->actualfile, "%s%s", CONFIG_HTTP_LUA_PREFIX, 
-                CONFIG_HTTP_LUA_CGI_LAUNCHER);
-#endif
-}
-
-static int sanitizefile(const char *buf) 
-{
-    int len, i;
-
-    /* Don't accept anything not starting with a / */
-    if (*buf != '/') 
-        return 0;
-
-    len = strlen(buf);
-    for (i = 0; i < len; i++) 
-    {
-        /* Check for "/." i.e. don't send files starting with a . */
-        if (buf[i] == '/' && buf[i+1] == '.') 
-            return 0;
-    }
-
-    return 1;
-}
-
-static int sanitizehost(char *buf)
-{
-    while (*buf != '\0') 
-    {
-        /* Handle the port */
-        if (*buf == ':') 
-        {
-            *buf = '\0';
-            return 1;
-        }
-
-        /* Enforce some basic URL rules... */
-        if ((isalnum(*buf) == 0 && *buf != '-' && *buf != '.') ||
-                (*buf == '.' && *(buf+1) == '.') ||
-                (*buf == '.' && *(buf+1) == '-') ||
-                (*buf == '-' && *(buf+1) == '.'))
-            return 0;
-
-        buf++;
-    }
-
-    return 1;
-}
-
-static FILE * exist_check(struct connstruct *cn, const char *check_file)
-{
-    char pathname[MAXREQUESTLENGTH];
-    snprintf(pathname, MAXREQUESTLENGTH, "%s/%s", cn->dirname, check_file);
-    return fopen(pathname, "r");
-}
-
-#ifdef CONFIG_HTTP_HAS_AUTHORIZATION
-static void send_authenticate(struct connstruct *cn, const char *realm)
-{
-    char buf[1024];
-
-    snprintf(buf, sizeof(buf), HTTP_VERSION" 401 Unauthorized\n"
-         "WWW-Authenticate: Basic\n"
-                 "realm=\"%s\"\n", realm);
-    special_write(cn, buf, strlen(buf));
-}
-
-static int check_digest(char *salt, const char *msg_passwd)
-{
-    uint8_t b256_salt[MAXREQUESTLENGTH];
-    uint8_t real_passwd[MD5_SIZE];
-    int salt_size;
-    char *b64_passwd;
-    uint8_t md5_result[MD5_SIZE];
-    MD5_CTX ctx;
-
-    /* retrieve the salt */
-    if ((b64_passwd = strchr(salt, '$')) == NULL)
-        return -1;
-
-    *b64_passwd++ = 0;
-    if (base64_decode(salt, strlen(salt), b256_salt, &salt_size))
-        return -1;
-
-    if (base64_decode(b64_passwd, strlen(b64_passwd), real_passwd, NULL))
-        return -1;
-
-    /* very simple MD5 crypt algorithm, but then the salt we use is large */
-    MD5_Init(&ctx);
-    MD5_Update(&ctx, b256_salt, salt_size);           /* process the salt */
-    MD5_Update(&ctx, (uint8_t *)msg_passwd, strlen(msg_passwd)); 
-    MD5_Final(md5_result, &ctx);
-    return memcmp(md5_result, real_passwd, MD5_SIZE);/* 0 = ok */
-}
-
-static int auth_check(struct connstruct *cn)
-{
-    char line[MAXREQUESTLENGTH];
-    FILE *fp;
-    char *cp;
-
-    if ((fp = exist_check(cn, ".htpasswd")) == NULL)
-        return 0;               /* no .htpasswd file, so let though */
-
-    if (cn->authorization[0] == 0)
-        goto error;
-
-    /* cn->authorization is in form "username:password" */
-    if ((cp = strchr(cn->authorization, ':')) == NULL)
-        goto error;
-    else
-        *cp++ = 0;  /* cp becomes the password */
-
-    while (fgets(line, sizeof(line), fp) != NULL)
-    {
-        char *b64_file_passwd;
-        int l = strlen(line);
-
-        /* nuke newline */
-        if (line[l-1] == '\n')
-            line[l-1] = 0;
-
-        /* line is form "username:salt(b64)$password(b64)" */
-        if ((b64_file_passwd = strchr(line, ':')) == NULL)
-            continue;
-
-        *b64_file_passwd++ = 0;
-
-        if (strcmp(line, cn->authorization)) /* our user? */
-            continue;
-
-        if (check_digest(b64_file_passwd, cp) == 0)
-        {
-            fclose(fp);
-            return 0;
-        }
-    }
-
-error:
-    fclose(fp);
-    send_authenticate(cn, cn->server_name);
-    return -1;
-}
-#endif
-
-static int htaccess_check(struct connstruct *cn)
-{
-    char line[MAXREQUESTLENGTH];
-    FILE *fp;
-    int ret = 0;
-
-    if ((fp = exist_check(cn, ".htaccess")) == NULL)
-        return 0;               /* no .htaccess file, so let though */
-
-    while (fgets(line, sizeof(line), fp) != NULL)
-    {
-        if (strstr(line, "Deny all") || /* access to this dir denied */
-                    /* Access will be denied unless SSL is active */
-                    (!cn->is_ssl && strstr(line, "SSLRequireSSL")) ||
-                    /* Access will be denied if SSL is active */
-                    (cn->is_ssl && strstr(line, "SSLDenySSL")))
-        {
-            ret = -1;
-            break;
-        }
-    }
-
-    fclose(fp);
-    return ret;
-}
-
-static void send_error(struct connstruct *cn, int err)
-{
-    char buf[MAXREQUESTLENGTH];
-    char *title;
-    char *text;
-
-    switch (err)
-    {
-        case 403:
-            title = "Forbidden";
-            text = "File is protected";
-#ifdef CONFIG_HTTP_VERBOSE
-            printf("axhttpd: access to %s denied\n", cn->filereq); TTY_FLUSH();
-#endif
-            break;
-
-        case 404:
-            title = "Not Found";
-            text = title;
-            break;
-
-        case 418:
-            title = "POST data size is to large";
-            text = title;
-            break;
-
-        default:
-            title = "Unknown";
-            text = "Unknown";
-            break;
-    }
-
-    snprintf(buf, MAXREQUESTLENGTH, "HTTP/1.1 %d %s\n"
-            "Content-Type: text/html\n"
-            "Cache-Control: no-cache,no-store\n"
-            "Connection: close\n\n"
-            "<html>\n<head>\n<title>%d %s</title></head>\n"
-            "<body><h1>%d %s</h1>\n</body></html>\n", 
-            err, title, err, title, err, text);
-    special_write(cn, buf, strlen(buf));
-    removeconnection(cn);
-}
-
-static const char *getmimetype(const char *name)
-{
-    /* only bother with a few mime types - let the browser figure the rest out */
-    if (strstr(name, ".htm"))
-        return "text/html";
-    else if (strstr(name, ".css"))
-        return "text/css"; 
-    else
-        return "application/octet-stream";
-}
-
-static int special_write(struct connstruct *cn, 
-                                        const char *buf, size_t count)
-{
-    if (cn->is_ssl)
-    {
-        SSL *ssl = cn->ssl;
-        return ssl ? ssl_write(ssl, (uint8_t *)buf, count) : -1;
-    }
-    else
-        return SOCKET_WRITE(cn->networkdesc, buf, count);
-}
-
-static int special_read(struct connstruct *cn, void *buf, size_t count)
-{
-    int res;
-
-    if (cn->is_ssl)
-    {
-        uint8_t *read_buf;
-        if ((res = ssl_read(cn->ssl, &read_buf)) > SSL_OK)
-        {
-            memcpy(buf, read_buf, res > (int)count ? count : res);
-        }
-    }
-    else
-        res = SOCKET_READ(cn->networkdesc, buf, count);
-
-    return res;
-}
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/httpd/tdate_parse.c b/package/luci/libs/luci-lib-nixio/axTLS/httpd/tdate_parse.c
deleted file mode 100644 (file)
index 813bdc5..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/types.h>
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include "axhttp.h"
-
-struct day_mon_map 
-{
-    const char* s;
-    uint8_t l;
-};
-
-static struct day_mon_map wday_tab[] = 
-{
-    { "Sun", 0 }, { "Mon", 1 }, { "Tue", 2 }, { "Wed", 3 },
-    { "Thu", 4 }, { "Fri", 5 }, { "Sat", 6 }, 
-};
-
-static struct day_mon_map mon_tab[] = 
-{
-    { "Jan", 0 }, { "Feb", 1 }, { "Mar", 2 }, { "Apr", 3 },
-    { "May", 4 }, { "Jun", 5 }, { "Jul", 6 }, { "Aug", 7 },
-    { "Sep", 8 }, { "Oct", 9 }, { "Nov", 10 }, { "Dec", 11 },
-};
-
-static int day_mon_map_compare(const char *v1, const char *v2)
-{
-    return strcmp(((struct day_mon_map*)v1)->s, ((struct day_mon_map*)v2)->s);
-}
-
-void tdate_init(void)
-{
-    qsort(wday_tab, sizeof(wday_tab)/sizeof(struct day_mon_map),
-            sizeof(struct day_mon_map), 
-            (int (*)(const void *, const void *))day_mon_map_compare);
-    qsort(mon_tab, sizeof(mon_tab)/sizeof(struct day_mon_map),
-            sizeof(struct day_mon_map), 
-            (int (*)(const void *, const void *))day_mon_map_compare);
-}
-
-static int8_t day_mon_map_search(const char* str, 
-                            const struct day_mon_map* tab, int n)
-{
-    struct day_mon_map *search = bsearch(&str, tab, n,
-            sizeof(struct day_mon_map), 
-                (int (*)(const void *, const void *))day_mon_map_compare);
-    return search ? search->l : -1;
-}
-
-time_t tdate_parse(const char* str)
-{
-    struct tm tm;
-    char str_mon[4], str_wday[4];
-    int tm_sec, tm_min, tm_hour, tm_mday, tm_year;
-
-    /* Initialize. */
-    memset(&tm, 0, sizeof(struct tm));
-
-    /* wdy, DD mth YY HH:MM:SS GMT */
-    if ((sscanf(str, "%3[a-zA-Z], %d %3[a-zA-Z] %d %d:%d:%d GMT",
-                str_wday, &tm_mday, str_mon, &tm_year, &tm_hour, &tm_min,
-                    &tm_sec) == 7) ||
-    /* wdy mth DD HH:MM:SS YY */
-        (sscanf(str, "%3[a-zA-Z] %3[a-zA-Z] %d %d:%d:%d %d",
-                str_wday, str_mon, &tm_mday, &tm_hour, &tm_min, &tm_sec,
-                    &tm_year) == 7))
-    {
-        int8_t tm_wday = day_mon_map_search(str_wday, wday_tab, 
-                        sizeof(wday_tab)/sizeof(struct day_mon_map));
-        int8_t tm_mon = day_mon_map_search(str_mon, mon_tab, 
-                        sizeof(mon_tab)/sizeof(struct day_mon_map));
-
-        if (tm_wday < 0 || tm_mon < 0)
-            return -1;
-
-        tm.tm_wday = tm_wday;
-        tm.tm_mon = tm_mon;
-        tm.tm_mday = tm_mday;
-        tm.tm_hour = tm_hour;
-        tm.tm_min = tm_min;
-        tm.tm_sec = tm_sec;
-        tm.tm_year = tm_year - 1900;
-        return mktime(&tm);
-    }
-
-    return -1;  /* error */
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/Config.in b/package/luci/libs/luci-lib-nixio/axTLS/samples/Config.in
deleted file mode 100644 (file)
index ecad25e..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see scripts/config/Kconfig-language.txt
-#
-menu "Samples"
-
-config CONFIG_SAMPLES
-    bool "Create Samples"
-    default y
-    help
-        axTLS contains various sample code.
-
-        Select Y here if you want to build the various samples.
-
-config CONFIG_C_SAMPLES
-    bool "axssl - C version"
-    default y
-    depends on CONFIG_SAMPLES
-    help
-        Build the "C" version of axssl. The features enabled are very
-        dependent on the build mode ('full' mode will give all features).
-
-config CONFIG_CSHARP_SAMPLES
-    bool "axssl - C# version"
-    default y
-    depends on CONFIG_SAMPLES && CONFIG_CSHARP_BINDINGS
-    help
-        Build the "C#" version of axssl. The features enabled are very
-        dependent on the build mode ('full' mode will give all features).
-
-config CONFIG_VBNET_SAMPLES
-    bool "axssl - VB.NET version"
-    default y
-    depends on CONFIG_SAMPLES && CONFIG_VBNET_BINDINGS
-    help
-        Build the "VB.NET" version of axssl. The features enabled are very
-        dependent on the build mode ('full' mode will give all features).
-
-config CONFIG_JAVA_SAMPLES
-    bool "axssl - Java version"
-    default y
-    depends on CONFIG_SAMPLES && CONFIG_JAVA_BINDINGS
-    help
-        Build the "Java" version of axssl. The features enabled are very
-        dependent on the build mode ('full' mode will give all features).
-
-config CONFIG_PERL_SAMPLES
-    bool "axssl - Perl version"
-    default y
-    depends on CONFIG_SAMPLES && CONFIG_PERL_BINDINGS
-    help
-        Build the "Perl" version of axssl. The features enabled are very
-        dependent on the build mode ('full' mode will give all features).
-
-config CONFIG_LUA_SAMPLES
-    bool "axssl - Lua version"
-    default y
-    depends on CONFIG_SAMPLES && CONFIG_LUA_BINDINGS
-    help
-        Build the "Lua" version of axssl. The features enabled are very
-        dependent on the build mode ('full' mode will give all features).
-endmenu
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/samples/Makefile
deleted file mode 100644 (file)
index afbdd43..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-all:
-
-include ../config/.config
-include ../config/makefile.conf
-
-all:
-ifdef CONFIG_C_SAMPLES
-       $(MAKE) -C c
-endif
-ifdef CONFIG_CSHARP_SAMPLES
-       $(MAKE) -C csharp
-endif
-ifdef CONFIG_VBNET_SAMPLES
-       $(MAKE) -C vbnet
-endif
-ifdef CONFIG_JAVA_SAMPLES
-       $(MAKE) -C java
-endif
-ifdef CONFIG_PERL_SAMPLES
-       $(MAKE) -C perl
-endif
-ifdef CONFIG_LUA_SAMPLES
-       $(MAKE) -C lua
-endif
-
-clean::
-       $(MAKE) -C c clean
-       $(MAKE) -C csharp clean
-       $(MAKE) -C vbnet clean
-       $(MAKE) -C java clean
-       $(MAKE) -C perl clean
-       $(MAKE) -C lua clean
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/c/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/samples/c/Makefile
deleted file mode 100644 (file)
index 17cf9e7..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-all : sample
-
-AXTLS_HOME=../..
-
-include $(AXTLS_HOME)/config/.config
-include $(AXTLS_HOME)/config/makefile.conf
-
-ifndef CONFIG_PLATFORM_WIN32
-
-ifdef CONFIG_PLATFORM_CYGWIN
-TARGET=$(AXTLS_HOME)/$(STAGE)/axssl.exe
-else
-TARGET=$(AXTLS_HOME)/$(STAGE)/axssl
-endif   # cygwin
-
-LIBS=$(AXTLS_HOME)/$(STAGE)
-else
-TARGET=$(AXTLS_HOME)/$(STAGE)/axssl.exe
-endif
-
-ifndef CONFIG_C_SAMPLES
-sample:
-
-else
-sample : $(TARGET)
-OBJ= axssl.o
-include $(AXTLS_HOME)/config/makefile.post
-
-ifndef CONFIG_PLATFORM_WIN32
-
-$(TARGET): $(OBJ) $(LIBS)/libaxtls.a
-       $(LD) $(LDFLAGS) -o $@ $(OBJ) -L$(LIBS) -laxtls 
-ifdef CONFIG_STRIP_UNWANTED_SECTIONS
-       $(STRIP) --remove-section=.comment $(TARGET)
-endif   # use strip
-else    # Win32
-
-$(TARGET): $(OBJ)
-       $(LD) $(LDFLAGS) $(AXTLS_HOME)/config/axtls.res /out:$@ $^ /libpath:"$(AXTLS_HOME)/$(STAGE)" axtls.lib
-endif
-
-endif    # CONFIG_C_SAMPLES
-
-clean::
-       -@rm -f $(AXTLS_HOME)/$(STAGE)/axssl*
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/c/axssl.c b/package/luci/libs/luci-lib-nixio/axTLS/samples/c/axssl.c
deleted file mode 100644 (file)
index 6892ee4..0000000
+++ /dev/null
@@ -1,883 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Demonstrate the use of the axTLS library in C with a set of 
- * command-line parameters similar to openssl. In fact, openssl clients 
- * should be able to communicate with axTLS servers and visa-versa.
- *
- * This code has various bits enabled depending on the configuration. To enable
- * the most interesting version, compile with the 'full mode' enabled.
- *
- * To see what options you have, run the following:
- * > axssl s_server -?
- * > axssl s_client -?
- *
- * The axtls shared library must be in the same directory or be found 
- * by the OS.
- */
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "ssl.h"
-
-/* define standard input */
-#ifndef STDIN_FILENO
-#define STDIN_FILENO        0
-#endif
-
-static void do_server(int argc, char *argv[]);
-static void print_options(char *option);
-static void print_server_options(char *option);
-static void do_client(int argc, char *argv[]);
-static void print_client_options(char *option);
-static void display_cipher(SSL *ssl);
-static void display_session_id(SSL *ssl);
-
-/**
- * Main entry point. Doesn't do much except works out whether we are a client
- * or a server.
- */
-int main(int argc, char *argv[])
-{
-#ifdef WIN32
-    WSADATA wsaData;
-    WORD wVersionRequested = MAKEWORD(2, 2);
-    WSAStartup(wVersionRequested, &wsaData);
-#elif !defined(CONFIG_PLATFORM_SOLARIS)
-    signal(SIGPIPE, SIG_IGN);           /* ignore pipe errors */
-#endif
-
-    if (argc == 2 && strcmp(argv[1], "version") == 0)
-    {
-        printf("axssl %s %s\n", ssl_version(), __DATE__);
-        exit(0);
-    }
-
-    if (argc < 2 || (
-                strcmp(argv[1], "s_server") && strcmp(argv[1], "s_client")))
-        print_options(argc > 1 ? argv[1] : "");
-
-    strcmp(argv[1], "s_server") ? 
-        do_client(argc, argv) : do_server(argc, argv);
-    return 0;
-}
-
-/**
- * Implement the SSL server logic. 
- */
-static void do_server(int argc, char *argv[])
-{
-    int i = 2;
-    uint16_t port = 4433;
-    uint32_t options = SSL_DISPLAY_CERTS;
-    int client_fd;
-    SSL_CTX *ssl_ctx;
-    int server_fd, res = 0;
-    socklen_t client_len;
-#ifndef CONFIG_SSL_SKELETON_MODE
-    char *private_key_file = NULL;
-    const char *password = NULL;
-    char **cert;
-    int cert_index = 0;
-    int cert_size = ssl_get_config(SSL_MAX_CERT_CFG_OFFSET);
-#endif
-#ifdef WIN32
-    char yes = 1;
-#else
-    int yes = 1;
-#endif
-    struct sockaddr_in serv_addr;
-    struct sockaddr_in client_addr;
-    int quiet = 0;
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-    int ca_cert_index = 0;
-    int ca_cert_size = ssl_get_config(SSL_MAX_CA_CERT_CFG_OFFSET);
-    char **ca_cert = (char **)calloc(1, sizeof(char *)*ca_cert_size);
-#endif
-    fd_set read_set;
-
-#ifndef CONFIG_SSL_SKELETON_MODE
-    cert = (char **)calloc(1, sizeof(char *)*cert_size);
-#endif
-
-    while (i < argc)
-    {
-        if (strcmp(argv[i], "-accept") == 0)
-        {
-            if (i >= argc-1)
-            {
-                print_server_options(argv[i]);
-            }
-
-            port = atoi(argv[++i]);
-        }
-#ifndef CONFIG_SSL_SKELETON_MODE
-        else if (strcmp(argv[i], "-cert") == 0)
-        {
-            if (i >= argc-1 || cert_index >= cert_size)
-            {
-                print_server_options(argv[i]);
-            }
-
-            cert[cert_index++] = argv[++i];
-        }
-        else if (strcmp(argv[i], "-key") == 0)
-        {
-            if (i >= argc-1)
-            {
-                print_server_options(argv[i]);
-            }
-
-            private_key_file = argv[++i];
-            options |= SSL_NO_DEFAULT_KEY;
-        }
-        else if (strcmp(argv[i], "-pass") == 0)
-        {
-            if (i >= argc-1)
-            {
-                print_server_options(argv[i]);
-            }
-
-            password = argv[++i];
-        }
-#endif
-        else if (strcmp(argv[i], "-quiet") == 0)
-        {
-            quiet = 1;
-            options &= ~SSL_DISPLAY_CERTS;
-        }
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-        else if (strcmp(argv[i], "-verify") == 0)
-        {
-            options |= SSL_CLIENT_AUTHENTICATION;
-        }
-        else if (strcmp(argv[i], "-CAfile") == 0)
-        {
-            if (i >= argc-1 || ca_cert_index >= ca_cert_size)
-            {
-                print_server_options(argv[i]);
-            }
-
-            ca_cert[ca_cert_index++] = argv[++i];
-        }
-#endif
-#ifdef CONFIG_SSL_FULL_MODE
-        else if (strcmp(argv[i], "-debug") == 0)
-        {
-            options |= SSL_DISPLAY_BYTES;
-        }
-        else if (strcmp(argv[i], "-state") == 0)
-        {
-            options |= SSL_DISPLAY_STATES;
-        }
-        else if (strcmp(argv[i], "-show-rsa") == 0)
-        {
-            options |= SSL_DISPLAY_RSA;
-        }
-#endif
-        else    /* don't know what this is */
-        {
-            print_server_options(argv[i]);
-        }
-
-        i++;
-    }
-
-    if ((ssl_ctx = ssl_ctx_new(options, SSL_DEFAULT_SVR_SESS)) == NULL)
-    {
-        fprintf(stderr, "Error: Server context is invalid\n");
-        exit(1);
-    }
-
-#ifndef CONFIG_SSL_SKELETON_MODE
-    if (private_key_file)
-    {
-        int obj_type = SSL_OBJ_RSA_KEY;
-        
-        /* auto-detect the key type from the file extension */
-        if (strstr(private_key_file, ".p8"))
-            obj_type = SSL_OBJ_PKCS8;
-        else if (strstr(private_key_file, ".p12"))
-            obj_type = SSL_OBJ_PKCS12;
-
-        if (ssl_obj_load(ssl_ctx, obj_type, private_key_file, password))
-        {
-            fprintf(stderr, "Error: Private key '%s' is undefined.\n", 
-                                                        private_key_file);
-            exit(1);
-        }
-    }
-
-    for (i = 0; i < cert_index; i++)
-    {
-        if (ssl_obj_load(ssl_ctx, SSL_OBJ_X509_CERT, cert[i], NULL))
-        {
-            printf("Certificate '%s' is undefined.\n", cert[i]);
-            exit(1);
-        }
-    }
-#endif
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-    for (i = 0; i < ca_cert_index; i++)
-    {
-        if (ssl_obj_load(ssl_ctx, SSL_OBJ_X509_CACERT, ca_cert[i], NULL))
-        {
-            printf("Certificate '%s' is undefined.\n", ca_cert[i]);
-            exit(1);
-        }
-    }
-
-    free(ca_cert);
-#endif
-#ifndef CONFIG_SSL_SKELETON_MODE
-    free(cert);
-#endif
-
-    /* Create socket for incoming connections */
-    if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
-    {
-        perror("socket");
-        return;
-    }
-      
-    setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
-
-    /* Construct local address structure */
-    memset(&serv_addr, 0, sizeof(serv_addr));      /* Zero out structure */
-    serv_addr.sin_family = AF_INET;                /* Internet address family */
-    serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); /* Any incoming interface */
-    serv_addr.sin_port = htons(port);              /* Local port */
-
-    /* Bind to the local address */
-    if (bind(server_fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
-    {
-        perror("bind");
-        exit(1);
-    }
-
-    if (listen(server_fd, 5) < 0)
-    {
-        perror("listen");
-        exit(1);
-    }
-
-    client_len = sizeof(client_addr);
-
-    /*************************************************************************
-     * This is where the interesting stuff happens. Up until now we've
-     * just been setting up sockets etc. Now we do the SSL handshake.
-     *************************************************************************/
-    for (;;)
-    {
-        SSL *ssl;
-        int reconnected = 0;
-
-        if (!quiet)
-        {
-            printf("ACCEPT\n");
-            TTY_FLUSH();
-        }
-
-        if ((client_fd = accept(server_fd, 
-                (struct sockaddr *)&client_addr, &client_len)) < 0)
-        {
-            res = 1;
-            break;
-        }
-
-        ssl = ssl_server_new(ssl_ctx, client_fd);
-
-        /* now read (and display) whatever the client sends us */
-        for (;;)
-        {
-            /* allow parallel reading of client and standard input */
-            FD_ZERO(&read_set);
-            FD_SET(client_fd, &read_set);
-
-#ifndef WIN32
-            /* win32 doesn't like mixing up stdin and sockets */
-            if (isatty(STDIN_FILENO))/* but only if we are in an active shell */
-            {
-                FD_SET(STDIN_FILENO, &read_set);
-            }
-
-            if ((res = select(client_fd+1, &read_set, NULL, NULL, NULL)) > 0)
-            {
-               uint8_t buf[1024];
-
-                /* read standard input? */
-                if (FD_ISSET(STDIN_FILENO, &read_set))
-                {
-                    if (fgets((char *)buf, sizeof(buf), stdin) == NULL)
-                    {
-                        res = SSL_ERROR_CONN_LOST;
-                    }
-                    else
-                    {
-                        /* small hack to check renegotiation */
-                        if (buf[0] == 'r' && (buf[1] == '\n' || buf[1] == '\r'))
-                        {
-                            res = ssl_renegotiate(ssl);
-                        }
-                        else    /* write our ramblings to the client */
-                        {
-                            res = ssl_write(ssl, buf, strlen((char *)buf)+1);
-                        }
-                    }
-                }
-                else    /* a socket read */
-#endif
-                {
-                    /* keep reading until we get something interesting */
-                    uint8_t *read_buf;
-
-                    if ((res = ssl_read(ssl, &read_buf)) == SSL_OK)
-                    {
-                        /* are we in the middle of doing a handshake? */
-                        if (ssl_handshake_status(ssl) != SSL_OK)
-                        {
-                            reconnected = 0;
-                        }
-                        else if (!reconnected)
-                        {
-                            /* we are connected/reconnected */
-                            if (!quiet)
-                            {
-                                display_session_id(ssl);
-                                display_cipher(ssl);
-                            }
-
-                            reconnected = 1;
-                        }
-                    }
-
-                    if (res > SSL_OK)    /* display our interesting output */
-                    {
-                        printf("%s", read_buf);
-                        TTY_FLUSH();
-                    }
-                    else if (res < SSL_OK && !quiet)
-                    {
-                        ssl_display_error(res);
-                    }
-                }
-#ifndef WIN32
-            }
-#endif
-
-            if (res < SSL_OK)
-            {
-                if (!quiet)
-                {
-                    printf("CONNECTION CLOSED\n");
-                    TTY_FLUSH();
-                }
-
-                break;
-            }
-        }
-
-        /* client was disconnected or the handshake failed. */
-        ssl_free(ssl);
-        SOCKET_CLOSE(client_fd);
-    }
-
-    ssl_ctx_free(ssl_ctx);
-}
-
-/**
- * Implement the SSL client logic.
- */
-static void do_client(int argc, char *argv[])
-{
-#ifdef CONFIG_SSL_ENABLE_CLIENT
-    int res, i = 2;
-    uint16_t port = 4433;
-    uint32_t options = SSL_SERVER_VERIFY_LATER|SSL_DISPLAY_CERTS;
-    int client_fd;
-    char *private_key_file = NULL;
-    struct sockaddr_in client_addr;
-    struct hostent *hostent;
-    int reconnect = 0;
-    uint32_t sin_addr;
-    SSL_CTX *ssl_ctx;
-    SSL *ssl = NULL;
-    int quiet = 0;
-    int cert_index = 0, ca_cert_index = 0;
-    int cert_size, ca_cert_size;
-    char **ca_cert, **cert;
-    uint8_t session_id[SSL_SESSION_ID_SIZE];
-    fd_set read_set;
-    const char *password = NULL;
-
-    FD_ZERO(&read_set);
-    sin_addr = inet_addr("127.0.0.1");
-    cert_size = ssl_get_config(SSL_MAX_CERT_CFG_OFFSET);
-    ca_cert_size = ssl_get_config(SSL_MAX_CA_CERT_CFG_OFFSET);
-    ca_cert = (char **)calloc(1, sizeof(char *)*ca_cert_size);
-    cert = (char **)calloc(1, sizeof(char *)*cert_size);
-
-    while (i < argc)
-    {
-        if (strcmp(argv[i], "-connect") == 0)
-        {
-            char *host, *ptr;
-
-            if (i >= argc-1)
-            {
-                print_client_options(argv[i]);
-            }
-
-            host = argv[++i];
-            if ((ptr = strchr(host, ':')) == NULL)
-            {
-                print_client_options(argv[i]);
-            }
-
-            *ptr++ = 0;
-            port = atoi(ptr);
-            hostent = gethostbyname(host);
-
-            if (hostent == NULL)
-            {
-                print_client_options(argv[i]);
-            }
-
-            sin_addr = *((uint32_t **)hostent->h_addr_list)[0];
-        }
-        else if (strcmp(argv[i], "-cert") == 0)
-        {
-            if (i >= argc-1 || cert_index >= cert_size)
-            {
-                print_client_options(argv[i]);
-            }
-
-            cert[cert_index++] = argv[++i];
-        }
-        else if (strcmp(argv[i], "-key") == 0)
-        {
-            if (i >= argc-1)
-            {
-                print_client_options(argv[i]);
-            }
-
-            private_key_file = argv[++i];
-            options |= SSL_NO_DEFAULT_KEY;
-        }
-        else if (strcmp(argv[i], "-CAfile") == 0)
-        {
-            if (i >= argc-1 || ca_cert_index >= ca_cert_size)
-            {
-                print_client_options(argv[i]);
-            }
-
-            ca_cert[ca_cert_index++] = argv[++i];
-        }
-        else if (strcmp(argv[i], "-verify") == 0)
-        {
-            options &= ~SSL_SERVER_VERIFY_LATER;
-        }
-        else if (strcmp(argv[i], "-reconnect") == 0)
-        {
-            reconnect = 4;
-        }
-        else if (strcmp(argv[i], "-quiet") == 0)
-        {
-            quiet = 1;
-            options &= ~SSL_DISPLAY_CERTS;
-        }
-        else if (strcmp(argv[i], "-pass") == 0)
-        {
-            if (i >= argc-1)
-            {
-                print_client_options(argv[i]);
-            }
-
-            password = argv[++i];
-        }
-#ifdef CONFIG_SSL_FULL_MODE
-        else if (strcmp(argv[i], "-debug") == 0)
-        {
-            options |= SSL_DISPLAY_BYTES;
-        }
-        else if (strcmp(argv[i], "-state") == 0)
-        {
-            options |= SSL_DISPLAY_STATES;
-        }
-        else if (strcmp(argv[i], "-show-rsa") == 0)
-        {
-            options |= SSL_DISPLAY_RSA;
-        }
-#endif
-        else    /* don't know what this is */
-        {
-            print_client_options(argv[i]);
-        }
-
-        i++;
-    }
-
-    if ((ssl_ctx = ssl_ctx_new(options, SSL_DEFAULT_CLNT_SESS)) == NULL)
-    {
-        fprintf(stderr, "Error: Client context is invalid\n");
-        exit(1);
-    }
-
-    if (private_key_file)
-    {
-        int obj_type = SSL_OBJ_RSA_KEY;
-        
-        /* auto-detect the key type from the file extension */
-        if (strstr(private_key_file, ".p8"))
-            obj_type = SSL_OBJ_PKCS8;
-        else if (strstr(private_key_file, ".p12"))
-            obj_type = SSL_OBJ_PKCS12;
-
-        if (ssl_obj_load(ssl_ctx, obj_type, private_key_file, password))
-        {
-            fprintf(stderr, "Error: Private key '%s' is undefined.\n", 
-                                                        private_key_file);
-            exit(1);
-        }
-    }
-
-    for (i = 0; i < cert_index; i++)
-    {
-        if (ssl_obj_load(ssl_ctx, SSL_OBJ_X509_CERT, cert[i], NULL))
-        {
-            printf("Certificate '%s' is undefined.\n", cert[i]);
-            exit(1);
-        }
-    }
-
-    for (i = 0; i < ca_cert_index; i++)
-    {
-        if (ssl_obj_load(ssl_ctx, SSL_OBJ_X509_CACERT, ca_cert[i], NULL))
-        {
-            printf("Certificate '%s' is undefined.\n", ca_cert[i]);
-            exit(1);
-        }
-    }
-
-    free(cert);
-    free(ca_cert);
-
-    /*************************************************************************
-     * This is where the interesting stuff happens. Up until now we've
-     * just been setting up sockets etc. Now we do the SSL handshake.
-     *************************************************************************/
-    client_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-    memset(&client_addr, 0, sizeof(client_addr));
-    client_addr.sin_family = AF_INET;
-    client_addr.sin_port = htons(port);
-    client_addr.sin_addr.s_addr = sin_addr;
-
-    if (connect(client_fd, (struct sockaddr *)&client_addr, 
-                sizeof(client_addr)) < 0)
-    {
-        perror("connect");
-        exit(1);
-    }
-
-    if (!quiet)
-    {
-        printf("CONNECTED\n");
-        TTY_FLUSH();
-    }
-
-    /* Try session resumption? */
-    if (reconnect)
-    {
-        while (reconnect--)
-        {
-            ssl = ssl_client_new(ssl_ctx, client_fd, session_id,
-                    sizeof(session_id));
-            if ((res = ssl_handshake_status(ssl)) != SSL_OK)
-            {
-                if (!quiet)
-                {
-                    ssl_display_error(res);
-                }
-
-                ssl_free(ssl);
-                exit(1);
-            }
-
-            display_session_id(ssl);
-            memcpy(session_id, ssl_get_session_id(ssl), SSL_SESSION_ID_SIZE);
-
-            if (reconnect)
-            {
-                ssl_free(ssl);
-                SOCKET_CLOSE(client_fd);
-
-                client_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-                connect(client_fd, (struct sockaddr *)&client_addr, 
-                        sizeof(client_addr));
-            }
-        }
-    }
-    else
-    {
-        ssl = ssl_client_new(ssl_ctx, client_fd, NULL, 0);
-    }
-
-    /* check the return status */
-    if ((res = ssl_handshake_status(ssl)) != SSL_OK)
-    {
-        if (!quiet)
-        {
-            ssl_display_error(res);
-        }
-
-        exit(1);
-    }
-
-    if (!quiet)
-    {
-        const char *common_name = ssl_get_cert_dn(ssl,
-                SSL_X509_CERT_COMMON_NAME);
-        if (common_name)
-        {
-            printf("Common Name:\t\t\t%s\n", common_name);
-        }
-
-        display_session_id(ssl);
-        display_cipher(ssl);
-    }
-
-    for (;;)
-    {
-        uint8_t buf[1024];
-        res = SSL_OK;
-
-        /* allow parallel reading of server and standard input */
-        FD_SET(client_fd, &read_set);
-#ifndef WIN32
-        /* win32 doesn't like mixing up stdin and sockets */
-        FD_SET(STDIN_FILENO, &read_set);
-
-        if ((res = select(client_fd+1, &read_set, NULL, NULL, NULL)) > 0)
-        {
-            /* read standard input? */
-            if (FD_ISSET(STDIN_FILENO, &read_set))
-#endif
-            {
-                if (fgets((char *)buf, sizeof(buf), stdin) == NULL)
-                {
-                    /* bomb out of here */
-                    ssl_free(ssl);
-                    break;
-                }
-                else
-                {
-                    /* small hack to check renegotiation */
-                    if (buf[0] == 'R' && (buf[1] == '\n' || buf[1] == '\r'))
-                    {
-                        res = ssl_renegotiate(ssl);
-                    }
-                    else
-                    {
-                        res = ssl_write(ssl, buf, strlen((char *)buf)+1);
-                    }
-                }
-            }
-#ifndef WIN32
-            else    /* a socket read */
-            {
-                uint8_t *read_buf;
-
-                res = ssl_read(ssl, &read_buf);
-
-                if (res > 0)    /* display our interesting output */
-                {
-                    printf("%s", read_buf);
-                    TTY_FLUSH();
-                }
-            }
-        }
-#endif
-
-        if (res < 0)
-        {
-            if (!quiet)
-            {
-                ssl_display_error(res);
-            }
-
-            break;      /* get outta here */
-        }
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    SOCKET_CLOSE(client_fd);
-#else
-    print_client_options(argv[1]);
-#endif
-}
-
-/**
- * We've had some sort of command-line error. Print out the basic options.
- */
-static void print_options(char *option)
-{
-    printf("axssl: Error: '%s' is an invalid command.\n", option);
-    printf("usage: axssl [s_server|s_client|version] [args ...]\n");
-    exit(1);
-}
-
-/**
- * We've had some sort of command-line error. Print out the server options.
- */
-static void print_server_options(char *option)
-{
-#ifndef CONFIG_SSL_SKELETON_MODE
-    int cert_size = ssl_get_config(SSL_MAX_CERT_CFG_OFFSET);
-#endif
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-    int ca_cert_size = ssl_get_config(SSL_MAX_CA_CERT_CFG_OFFSET);
-#endif
-
-    printf("unknown option %s\n", option);
-    printf("usage: s_server [args ...]\n");
-    printf(" -accept arg\t- port to accept on (default is 4433)\n");
-#ifndef CONFIG_SSL_SKELETON_MODE
-    printf(" -cert arg\t- certificate file to add (in addition to default)"
-                                    " to chain -\n"
-          "\t\t  Can repeat up to %d times\n", cert_size);
-    printf(" -key arg\t- Private key file to use\n");
-    printf(" -pass\t\t- private key file pass phrase source\n");
-#endif
-    printf(" -quiet\t\t- No server output\n");
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-    printf(" -verify\t- turn on peer certificate verification\n");
-    printf(" -CAfile arg\t- Certificate authority\n");
-    printf("\t\t  Can repeat up to %d times\n", ca_cert_size);
-#endif
-#ifdef CONFIG_SSL_FULL_MODE
-    printf(" -debug\t\t- Print more output\n");
-    printf(" -state\t\t- Show state messages\n");
-    printf(" -show-rsa\t- Show RSA state\n");
-#endif
-    exit(1);
-}
-
-/**
- * We've had some sort of command-line error. Print out the client options.
- */
-static void print_client_options(char *option)
-{
-#ifdef CONFIG_SSL_ENABLE_CLIENT
-    int cert_size = ssl_get_config(SSL_MAX_CERT_CFG_OFFSET);
-    int ca_cert_size = ssl_get_config(SSL_MAX_CA_CERT_CFG_OFFSET);
-#endif
-
-    printf("unknown option %s\n", option);
-#ifdef CONFIG_SSL_ENABLE_CLIENT
-    printf("usage: s_client [args ...]\n");
-    printf(" -connect host:port - who to connect to (default "
-            "is localhost:4433)\n");
-    printf(" -verify\t- turn on peer certificate verification\n");
-    printf(" -cert arg\t- certificate file to use\n");
-    printf("\t\t  Can repeat up to %d times\n", cert_size);
-    printf(" -key arg\t- Private key file to use\n");
-    printf(" -CAfile arg\t- Certificate authority\n");
-    printf("\t\t  Can repeat up to %d times\n", ca_cert_size);
-    printf(" -quiet\t\t- No client output\n");
-    printf(" -reconnect\t- Drop and re-make the connection "
-            "with the same Session-ID\n");
-    printf(" -pass\t\t- private key file pass phrase source\n");
-#ifdef CONFIG_SSL_FULL_MODE
-    printf(" -debug\t\t- Print more output\n");
-    printf(" -state\t\t- Show state messages\n");
-    printf(" -show-rsa\t- Show RSA state\n");
-#endif
-#else
-    printf("Change configuration to allow this feature\n");
-#endif
-    exit(1);
-}
-
-/**
- * Display what cipher we are using 
- */
-static void display_cipher(SSL *ssl)
-{
-    printf("CIPHER is ");
-    switch (ssl_get_cipher_id(ssl))
-    {
-        case SSL_AES128_SHA:
-            printf("AES128-SHA");
-            break;
-
-        case SSL_AES256_SHA:
-            printf("AES256-SHA");
-            break;
-
-        case SSL_RC4_128_SHA:
-            printf("RC4-SHA");
-            break;
-
-        case SSL_RC4_128_MD5:
-            printf("RC4-MD5");
-            break;
-
-        default:
-            printf("Unknown - %d", ssl_get_cipher_id(ssl));
-            break;
-    }
-
-    printf("\n");
-    TTY_FLUSH();
-}
-
-/**
- * Display what session id we have.
- */
-static void display_session_id(SSL *ssl)
-{    
-    int i;
-    const uint8_t *session_id = ssl_get_session_id(ssl);
-    int sess_id_size = ssl_get_session_id_size(ssl);
-
-    if (sess_id_size > 0)
-    {
-        printf("-----BEGIN SSL SESSION PARAMETERS-----\n");
-        for (i = 0; i < sess_id_size; i++)
-        {
-            printf("%02x", session_id[i]);
-        }
-
-        printf("\n-----END SSL SESSION PARAMETERS-----\n");
-        TTY_FLUSH();
-    }
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/csharp/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/samples/csharp/Makefile
deleted file mode 100644 (file)
index 46c2421..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-include ../../config/.config
-include ../../config/makefile.conf
-include ../../config/makefile.dotnet.conf
-
-all : sample
-TARGET=../../$(STAGE)/axssl.csharp.exe
-sample : $(TARGET)
-
-$(TARGET): ../../bindings/csharp/axTLS.cs ../../bindings/csharp/axInterface.cs axssl.cs 
-ifdef GO_DOT_NET
-       csc.exe /nologo /t:exe /out:"`cygpath -w $@`" $(foreach file, $^, "`cygpath -w $(file)`")
-else    # use mono to build
-       mcs -out:$@ $^
-
-endif    # ARCH
-
-clean::
-       -@rm -f $(TARGET)
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/csharp/axssl.cs b/package/luci/libs/luci-lib-nixio/axTLS/samples/csharp/axssl.cs
deleted file mode 100644 (file)
index dae2b8a..0000000
+++ /dev/null
@@ -1,758 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Demonstrate the use of the axTLS library in C# with a set of 
- * command-line parameters similar to openssl. In fact, openssl clients 
- * should be able to communicate with axTLS servers and visa-versa.
- *
- * This code has various bits enabled depending on the configuration. To enable
- * the most interesting version, compile with the 'full mode' enabled.
- *
- * To see what options you have, run the following:
- * > axssl.csharp.exe s_server -?
- * > axssl.csharp.exe s_client -?
- *
- * The axtls shared library must be in the same directory or be found 
- * by the OS.
- */
-
-using System;
-using System.Net;
-using System.Net.Sockets;
-using axTLS;
-
-public class axssl
-{
-    /*
-     * Main()
-     */
-    public static void Main(string[] args)
-    {
-        if (args.Length == 1 && args[0] == "version")
-        {
-            Console.WriteLine("axssl.csharp " + SSLUtil.Version());
-            Environment.Exit(0); 
-        }
-
-        axssl runner = new axssl();
-
-        if (args.Length < 1 || (args[0] != "s_server" && args[0] != "s_client"))
-            runner.print_options(args.Length > 0 ? args[0] : "");
-
-        int build_mode = SSLUtil.BuildMode();
-
-        if (args[0] == "s_server")
-            runner.do_server(build_mode, args);
-        else 
-            runner.do_client(build_mode, args);
-    }
-
-    /*
-     * do_server()
-     */
-    private void do_server(int build_mode, string[] args)
-    {
-        int i = 1;
-        int port = 4433;
-        uint options = axtls.SSL_DISPLAY_CERTS;
-        bool quiet = false;
-        string password = null;
-        string private_key_file = null;
-
-        /* organise the cert/ca_cert lists */
-        int cert_size = SSLUtil.MaxCerts();
-        int ca_cert_size = SSLUtil.MaxCACerts();
-        string[] cert = new string[cert_size];
-        string[] ca_cert = new string[ca_cert_size];
-        int cert_index = 0;
-        int ca_cert_index = 0;
-
-        while (i < args.Length)
-        {
-            if (args[i] == "-accept")
-            {
-                if (i >= args.Length-1)
-                {
-                    print_server_options(build_mode, args[i]);
-                }
-
-                port = Int32.Parse(args[++i]);
-            }
-            else if (args[i] == "-quiet")
-            {
-                quiet = true;
-                options &= ~(uint)axtls.SSL_DISPLAY_CERTS;
-            }
-            else if (build_mode >= axtls.SSL_BUILD_SERVER_ONLY)
-            {
-                if (args[i] == "-cert")
-                {
-                    if (i >= args.Length-1 || cert_index >= cert_size)
-                    {
-                        print_server_options(build_mode, args[i]);
-                    }
-
-                    cert[cert_index++] = args[++i];
-                }
-                else if (args[i] == "-key")
-                {
-                    if (i >= args.Length-1)
-                    {
-                        print_server_options(build_mode, args[i]);
-                    }
-
-                    private_key_file = args[++i];
-                    options |= axtls.SSL_NO_DEFAULT_KEY;
-                }
-                else if (args[i] == "-pass")
-                {
-                    if (i >= args.Length-1)
-                    {
-                        print_server_options(build_mode, args[i]);
-                    }
-
-                    password = args[++i];
-                }
-                else if (build_mode >= axtls.SSL_BUILD_ENABLE_VERIFICATION)
-                {
-                    if (args[i] == "-verify")
-                    {
-                        options |= axtls.SSL_CLIENT_AUTHENTICATION;
-                    }
-                    else if (args[i] == "-CAfile")
-                    {
-                        if (i >= args.Length-1 || ca_cert_index >= ca_cert_size)
-                        {
-                            print_server_options(build_mode, args[i]);
-                        }
-
-                        ca_cert[ca_cert_index++] = args[++i];
-                    }
-                    else if (build_mode == axtls.SSL_BUILD_FULL_MODE)
-                    {
-                        if (args[i] == "-debug")
-                        {
-                            options |= axtls.SSL_DISPLAY_BYTES;
-                        }
-                        else if (args[i] == "-state")
-                        {
-                            options |= axtls.SSL_DISPLAY_STATES;
-                        }
-                        else if (args[i] == "-show-rsa")
-                        {
-                            options |= axtls.SSL_DISPLAY_RSA;
-                        }
-                        else
-                            print_server_options(build_mode, args[i]);
-                    }
-                    else
-                        print_server_options(build_mode, args[i]);
-                }
-                else 
-                    print_server_options(build_mode, args[i]);
-            }
-            else
-                print_server_options(build_mode, args[i]);
-
-            i++;
-        }
-
-        /* Create socket for incoming connections */
-        IPEndPoint ep = new IPEndPoint(IPAddress.Any, port);
-        TcpListener server_sock = new TcpListener(ep);
-        server_sock.Start();      
-
-        /**********************************************************************
-         * This is where the interesting stuff happens. Up until now we've
-         * just been setting up sockets etc. Now we do the SSL handshake.
-         **********************************************************************/
-        SSLServer ssl_ctx = new SSLServer(
-                                options, axtls.SSL_DEFAULT_SVR_SESS);
-
-        if (ssl_ctx == null)
-        {
-            Console.Error.WriteLine("Error: Server context is invalid");
-            Environment.Exit(1);
-        }
-
-        if (private_key_file != null)
-        {
-            int obj_type = axtls.SSL_OBJ_RSA_KEY;
-
-            if (private_key_file.EndsWith(".p8"))
-                obj_type = axtls.SSL_OBJ_PKCS8;
-            else if (private_key_file.EndsWith(".p12"))
-                obj_type = axtls.SSL_OBJ_PKCS12;
-
-            if (ssl_ctx.ObjLoad(obj_type,
-                             private_key_file, password) != axtls.SSL_OK)
-            {
-                Console.Error.WriteLine("Private key '" + private_key_file +
-                                                            "' is undefined.");
-                Environment.Exit(1);
-            }
-        }
-
-        for (i = 0; i < cert_index; i++)
-        {
-            if (ssl_ctx.ObjLoad(axtls.SSL_OBJ_X509_CERT, 
-                                        cert[i], null) != axtls.SSL_OK)
-            {
-                Console.WriteLine("Certificate '" + cert[i] + 
-                        "' is undefined.");
-                Environment.Exit(1);
-            }
-        }
-
-        for (i = 0; i < ca_cert_index; i++)
-        {
-            if (ssl_ctx.ObjLoad(axtls.SSL_OBJ_X509_CACERT, 
-                                        ca_cert[i], null) != axtls.SSL_OK)
-            {
-                Console.WriteLine("Certificate '" + cert[i] + 
-                                                        "' is undefined.");
-                Environment.Exit(1);
-            }
-        }
-
-        byte[] buf = null;
-        int res;
-
-        for (;;)
-        {
-            if (!quiet)
-            {
-                Console.WriteLine("ACCEPT");
-            }
-
-            Socket client_sock = server_sock.AcceptSocket();
-
-            SSL ssl = ssl_ctx.Connect(client_sock);
-
-            /* do the actual SSL handshake */
-            while ((res = ssl_ctx.Read(ssl, out buf)) == axtls.SSL_OK)
-            {
-                /* check when the connection has been established */
-                if (ssl.HandshakeStatus() == axtls.SSL_OK)
-                    break;
-
-                /* could do something else here */
-            }
-
-            if (res == axtls.SSL_OK) /* connection established and ok */
-            {
-                if (!quiet)
-                {
-                    display_session_id(ssl);
-                    display_cipher(ssl);
-                }
-
-                /* now read (and display) whatever the client sends us */
-                for (;;)
-                {
-                    /* keep reading until we get something interesting */
-                    while ((res = ssl_ctx.Read(ssl, out buf)) == axtls.SSL_OK)
-                    {
-                        /* could do something else here */
-                    }
-
-                    if (res < axtls.SSL_OK)
-                    {
-                        if (!quiet)
-                        {
-                            Console.WriteLine("CONNECTION CLOSED");
-                        }
-
-                        break;
-                    }
-
-                    /* convert to string */
-                    char[] str = new char[res];
-                    for (i = 0; i < res; i++)
-                    {
-                        str[i] = (char)buf[i];
-                    }
-
-                    Console.Write(str);
-                }
-            }
-            else if (!quiet)
-            {
-                SSLUtil.DisplayError(res);
-            }
-
-            /* client was disconnected or the handshake failed. */
-            ssl.Dispose();
-            client_sock.Close();
-        }
-
-        /* ssl_ctx.Dispose(); */
-    }
-
-    /*
-     * do_client()
-     */
-    private void do_client(int build_mode, string[] args)
-    {
-        if (build_mode < axtls.SSL_BUILD_ENABLE_CLIENT)
-        {
-            print_client_options(build_mode, args[1]);
-        }
-
-        int i = 1, res;
-        int port = 4433;
-        bool quiet = false;
-        string password = null;
-        int reconnect = 0;
-        string private_key_file = null;
-        string hostname = "127.0.0.1";
-
-        /* organise the cert/ca_cert lists */
-        int cert_index = 0;
-        int ca_cert_index = 0;
-        int cert_size = SSLUtil.MaxCerts();
-        int ca_cert_size = SSLUtil.MaxCACerts();
-        string[] cert = new string[cert_size];
-        string[] ca_cert = new string[ca_cert_size];
-
-        uint options = axtls.SSL_SERVER_VERIFY_LATER|axtls.SSL_DISPLAY_CERTS;
-        byte[] session_id = null;
-
-        while (i < args.Length)
-        {
-            if (args[i] == "-connect")
-            {
-                string host_port;
-
-                if (i >= args.Length-1)
-                {
-                    print_client_options(build_mode, args[i]);
-                }
-
-                host_port = args[++i];
-                int index_colon;
-
-                if ((index_colon = host_port.IndexOf(':')) < 0)
-                    print_client_options(build_mode, args[i]);
-
-                hostname = new string(host_port.ToCharArray(), 
-                        0, index_colon);
-                port = Int32.Parse(new String(host_port.ToCharArray(), 
-                            index_colon+1, host_port.Length-index_colon-1));
-            }
-            else if (args[i] == "-cert")
-            {
-                if (i >= args.Length-1 || cert_index >= cert_size)
-                {
-                    print_client_options(build_mode, args[i]);
-                }
-
-                cert[cert_index++] = args[++i];
-            }
-            else if (args[i] == "-key")
-            {
-                if (i >= args.Length-1)
-                {
-                    print_client_options(build_mode, args[i]);
-                }
-
-                private_key_file = args[++i];
-                options |= axtls.SSL_NO_DEFAULT_KEY;
-            }
-            else if (args[i] == "-CAfile")
-            {
-                if (i >= args.Length-1 || ca_cert_index >= ca_cert_size)
-                {
-                    print_client_options(build_mode, args[i]);
-                }
-
-                ca_cert[ca_cert_index++] = args[++i];
-            }
-            else if (args[i] == "-verify")
-            {
-                options &= ~(uint)axtls.SSL_SERVER_VERIFY_LATER;
-            }
-            else if (args[i] == "-reconnect")
-            {
-                reconnect = 4;
-            }
-            else if (args[i] == "-quiet")
-            {
-                quiet = true;
-                options &= ~(uint)axtls.SSL_DISPLAY_CERTS;
-            }
-            else if (args[i] == "-pass")
-            {
-                if (i >= args.Length-1)
-                {
-                    print_client_options(build_mode, args[i]);
-                }
-
-                password = args[++i];
-            }
-            else if (build_mode == axtls.SSL_BUILD_FULL_MODE)
-            {
-                if (args[i] == "-debug")
-                {
-                    options |= axtls.SSL_DISPLAY_BYTES;
-                }
-                else if (args[i] == "-state")
-                {
-                    options |= axtls.SSL_DISPLAY_STATES;
-                }
-                else if (args[i] == "-show-rsa")
-                {
-                    options |= axtls.SSL_DISPLAY_RSA;
-                }
-                else
-                    print_client_options(build_mode, args[i]);
-            }
-            else    /* don't know what this is */
-                print_client_options(build_mode, args[i]);
-
-            i++;
-        }
-
-        // IPHostEntry hostInfo = Dns.Resolve(hostname); 
-        IPHostEntry hostInfo = Dns.GetHostEntry(hostname);
-        IPAddress[] addresses = hostInfo.AddressList;
-        IPEndPoint ep = new IPEndPoint(addresses[0], port); 
-        Socket client_sock = new Socket(AddressFamily.InterNetwork, 
-                SocketType.Stream, ProtocolType.Tcp);
-        client_sock.Connect(ep);
-
-        if (!client_sock.Connected)
-        {
-            Console.WriteLine("could not connect");
-            Environment.Exit(1);
-        }
-
-        if (!quiet)
-        {
-            Console.WriteLine("CONNECTED");
-        }
-
-        /**********************************************************************
-         * This is where the interesting stuff happens. Up until now we've
-         * just been setting up sockets etc. Now we do the SSL handshake.
-         **********************************************************************/
-        SSLClient ssl_ctx = new SSLClient(options,
-                                    axtls.SSL_DEFAULT_CLNT_SESS);
-
-        if (ssl_ctx == null)
-        {
-            Console.Error.WriteLine("Error: Client context is invalid");
-            Environment.Exit(1);
-        }
-
-        if (private_key_file != null)
-        {
-            int obj_type = axtls.SSL_OBJ_RSA_KEY;
-
-            if (private_key_file.EndsWith(".p8"))
-                obj_type = axtls.SSL_OBJ_PKCS8;
-            else if (private_key_file.EndsWith(".p12"))
-                obj_type = axtls.SSL_OBJ_PKCS12;
-
-            if (ssl_ctx.ObjLoad(obj_type,
-                             private_key_file, password) != axtls.SSL_OK)
-            {
-                Console.Error.WriteLine("Private key '" + private_key_file +
-                                                            "' is undefined.");
-                Environment.Exit(1);
-            }
-        }
-
-        for (i = 0; i < cert_index; i++)
-        {
-            if (ssl_ctx.ObjLoad(axtls.SSL_OBJ_X509_CERT, 
-                                        cert[i], null) != axtls.SSL_OK)
-            {
-                Console.WriteLine("Certificate '" + cert[i] + 
-                        "' is undefined.");
-                Environment.Exit(1);
-            }
-        }
-
-        for (i = 0; i < ca_cert_index; i++)
-        {
-            if (ssl_ctx.ObjLoad(axtls.SSL_OBJ_X509_CACERT, 
-                                        ca_cert[i], null) != axtls.SSL_OK)
-            {
-                Console.WriteLine("Certificate '" + cert[i] + 
-                                                        "' is undefined.");
-                Environment.Exit(1);
-            }
-        }
-
-        SSL ssl = new SSL(new IntPtr(0));   /* keep compiler happy */
-
-        /* Try session resumption? */
-        if (reconnect > 0)
-        {
-            while (reconnect-- > 0)
-            {
-                ssl = ssl_ctx.Connect(client_sock, session_id);
-
-                if ((res = ssl.HandshakeStatus()) != axtls.SSL_OK)
-                {
-                    if (!quiet)
-                    {
-                        SSLUtil.DisplayError(res);
-                    }
-
-                    ssl.Dispose();
-                    Environment.Exit(1);
-                }
-
-                display_session_id(ssl);
-                session_id = ssl.GetSessionId();
-
-                if (reconnect > 0)
-                {
-                    ssl.Dispose();
-                    client_sock.Close();
-                    
-                    /* and reconnect */
-                    client_sock = new Socket(AddressFamily.InterNetwork, 
-                        SocketType.Stream, ProtocolType.Tcp);
-                    client_sock.Connect(ep);
-                }
-            }
-        }
-        else
-        {
-            ssl = ssl_ctx.Connect(client_sock, null);
-        }
-
-        /* check the return status */
-        if ((res = ssl.HandshakeStatus()) != axtls.SSL_OK)
-        {
-            if (!quiet)
-            {
-                SSLUtil.DisplayError(res);
-            }
-
-            Environment.Exit(1);
-        }
-
-        if (!quiet)
-        {
-            string common_name =
-                ssl.GetCertificateDN(axtls.SSL_X509_CERT_COMMON_NAME);
-
-            if (common_name != null)
-            {
-                Console.WriteLine("Common Name:\t\t\t" + common_name);
-            }
-
-            display_session_id(ssl);
-            display_cipher(ssl);
-        }
-
-        for (;;)
-        {
-            string user_input = Console.ReadLine();
-
-            if (user_input == null)
-                break;
-
-            byte[] buf = new byte[user_input.Length+2];
-            buf[buf.Length-2] = (byte)'\n';     /* add the carriage return */
-            buf[buf.Length-1] = 0;              /* null terminate */
-
-            for (i = 0; i < buf.Length-2; i++)
-            {
-                buf[i] = (byte)user_input[i];
-            }
-
-            if ((res = ssl_ctx.Write(ssl, buf, buf.Length)) < axtls.SSL_OK)
-            {
-                if (!quiet)
-                {
-                    SSLUtil.DisplayError(res);
-                }
-
-                break;
-            }
-        }
-
-        ssl_ctx.Dispose();
-    }
-
-    /**
-     * We've had some sort of command-line error. Print out the basic options.
-     */
-    private void print_options(string option)
-    {
-        Console.WriteLine("axssl: Error: '" + option + 
-                "' is an invalid command.");
-        Console.WriteLine("usage: axssl.csharp [s_server|" +
-                            "s_client|version] [args ...]");
-        Environment.Exit(1);
-    }
-
-    /**
-     * We've had some sort of command-line error. Print out the server options.
-     */
-    private void print_server_options(int build_mode, string option)
-    {
-        int cert_size = SSLUtil.MaxCerts();
-        int ca_cert_size = SSLUtil.MaxCACerts();
-
-        Console.WriteLine("unknown option " + option);
-        Console.WriteLine("usage: s_server [args ...]");
-        Console.WriteLine(" -accept arg\t- port to accept on (default " + 
-                "is 4433)");
-        Console.WriteLine(" -quiet\t\t- No server output");
-
-        if (build_mode >= axtls.SSL_BUILD_SERVER_ONLY)
-        {
-          Console.WriteLine(" -cert arg\t- certificate file to add (in " + 
-                  "addition to default) to chain -");
-          Console.WriteLine("\t\t  Can repeat up to " + cert_size + " times");
-          Console.WriteLine(" -key arg\t- Private key file to use");
-          Console.WriteLine(" -pass\t\t- private key file pass phrase source");
-        }
-
-        if (build_mode >= axtls.SSL_BUILD_ENABLE_VERIFICATION)
-        {
-            Console.WriteLine(" -verify\t- turn on peer certificate " +
-                    "verification");
-            Console.WriteLine(" -CAfile arg\t- Certificate authority.");
-            Console.WriteLine("\t\t  Can repeat up to " + 
-                    ca_cert_size + "times");
-        }
-
-        if (build_mode == axtls.SSL_BUILD_FULL_MODE)
-        {
-            Console.WriteLine(" -debug\t\t- Print more output");
-            Console.WriteLine(" -state\t\t- Show state messages");
-            Console.WriteLine(" -show-rsa\t- Show RSA state");
-        }
-
-        Environment.Exit(1);
-    }
-
-    /**
-     * We've had some sort of command-line error. Print out the client options.
-     */
-    private void print_client_options(int build_mode, string option)
-    {
-        int cert_size = SSLUtil.MaxCerts();
-        int ca_cert_size = SSLUtil.MaxCACerts();
-
-        Console.WriteLine("unknown option " + option);
-
-        if (build_mode >= axtls.SSL_BUILD_ENABLE_CLIENT)
-        {
-            Console.WriteLine("usage: s_client [args ...]");
-            Console.WriteLine(" -connect host:port - who to connect to " + 
-                    "(default is localhost:4433)");
-            Console.WriteLine(" -verify\t- turn on peer certificate " + 
-                    "verification");
-            Console.WriteLine(" -cert arg\t- certificate file to use");
-            Console.WriteLine("\t\t  Can repeat up to %d times", cert_size);
-            Console.WriteLine(" -key arg\t- Private key file to use");
-            Console.WriteLine(" -CAfile arg\t- Certificate authority.");
-            Console.WriteLine("\t\t  Can repeat up to " + ca_cert_size + 
-                    " times");
-            Console.WriteLine(" -quiet\t\t- No client output");
-            Console.WriteLine(" -pass\t\t- private key file pass " + 
-                    "phrase source");
-            Console.WriteLine(" -reconnect\t- Drop and re-make the " +
-                    "connection with the same Session-ID");
-
-            if (build_mode == axtls.SSL_BUILD_FULL_MODE)
-            {
-                Console.WriteLine(" -debug\t\t- Print more output");
-                Console.WriteLine(" -state\t\t- Show state messages");
-                Console.WriteLine(" -show-rsa\t- Show RSA state");
-            }
-        }
-        else 
-        {
-            Console.WriteLine("Change configuration to allow this feature");
-        }
-
-        Environment.Exit(1);
-    }
-
-    /**
-     * Display what cipher we are using 
-     */
-    private void display_cipher(SSL ssl)
-    {
-        Console.Write("CIPHER is ");
-
-        switch (ssl.GetCipherId())
-        {
-            case axtls.SSL_AES128_SHA:
-                Console.WriteLine("AES128-SHA");
-                break;
-
-            case axtls.SSL_AES256_SHA:
-                Console.WriteLine("AES256-SHA");
-                break;
-
-            case axtls.SSL_RC4_128_SHA:
-                Console.WriteLine("RC4-SHA");
-                break;
-
-            case axtls.SSL_RC4_128_MD5:
-                Console.WriteLine("RC4-MD5");
-                break;
-
-            default:
-                Console.WriteLine("Unknown - " + ssl.GetCipherId());
-                break;
-        }
-    }
-
-    /**
-     * Display what session id we have.
-     */
-    private void display_session_id(SSL ssl)
-    {    
-        byte[] session_id = ssl.GetSessionId();
-
-        if (session_id.Length > 0)
-        {
-            Console.WriteLine("-----BEGIN SSL SESSION PARAMETERS-----");
-            foreach (byte b in session_id)
-            {
-                Console.Write("{0:x02}", b);
-            }
-
-            Console.WriteLine("\n-----END SSL SESSION PARAMETERS-----");
-        }
-    }
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/java/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/samples/java/Makefile
deleted file mode 100644 (file)
index b10a79f..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-include ../../config/.config
-include ../../config/makefile.conf
-include ../../config/makefile.java.conf
-
-all : sample
-JAR=../../$(STAGE)/axtls.jar
-CLASSES=../../bindings/java/classes
-sample : $(JAR)
-
-$(JAR) : $(CLASSES)/axssl.class $(wildcard $(CLASSES)/axTLSj/*.class)
-       jar mcvf manifest.mf $@ -C $(CLASSES) axTLSj -C $(CLASSES) axssl.class
-
-JAVA_FILES=axssl.java
-JAVA_CLASSES:=$(JAVA_FILES:%.java=$(CLASSES)/axTLSj/%.class)
-
-$(CLASSES)/%.class : %.java
-       javac -d $(CLASSES) -classpath $(CLASSES) $^
-
-clean::
-       -@rm -f $(TARGET)
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/java/axssl.java b/package/luci/libs/luci-lib-nixio/axTLS/samples/java/axssl.java
deleted file mode 100644 (file)
index 2057f29..0000000
+++ /dev/null
@@ -1,760 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * Demonstrate the use of the axTLS library in Java with a set of 
- * command-line parameters similar to openssl. In fact, openssl clients 
- * should be able to communicate with axTLS servers and visa-versa.  *
- * This code has various bits enabled depending on the configuration. To enable
- * the most interesting version, compile with the 'full mode' enabled.
- *
- * To see what options you have, run the following:
- * > java -jar axtls.jar s_server -?
- * > java -jar axtls.jar s_client -?
- *
- * The axtls/axtlsj shared libraries must be in the same directory or be found 
- * by the OS.
- */
-
-import java.io.*;
-import java.util.*;
-import java.net.*;
-import axTLSj.*;
-
-public class axssl
-{
-   /*
-     * Main()
-     */
-    public static void main(String[] args)
-    {
-        if (args.length == 1 && args[0].equals("version"))
-        {
-            System.out.println("axtls.jar " + SSLUtil.version());
-            System.exit(0);
-        }
-
-        axssl runner = new axssl();
-
-        try
-        {
-            if (args.length < 1 || 
-                    (!args[0].equals("s_server") &&
-                     !args[0].equals("s_client")))
-            {
-                runner.print_options(args.length > 0 ? args[0] : "");
-            }
-
-            int build_mode = SSLUtil.buildMode();
-
-            if (args[0].equals("s_server"))
-                runner.do_server(build_mode, args);
-            else 
-                runner.do_client(build_mode, args);
-        }
-        catch (Exception e) 
-        {
-            System.out.println(e);
-        }
-    }
-
-    /*
-     * do_server()
-     */
-    private void do_server(int build_mode, String[] args)
-                    throws Exception
-    {
-        int i = 1;
-        int port = 4433;
-        int options = axtlsj.SSL_DISPLAY_CERTS;
-        boolean quiet = false;
-        String password = null;
-        String private_key_file = null;
-
-        /* organise the cert/ca_cert lists */
-        int cert_size = SSLUtil.maxCerts();
-        int ca_cert_size = SSLUtil.maxCACerts();
-        String[] cert = new String[cert_size];
-        String[] ca_cert = new String[ca_cert_size];
-        int cert_index = 0;
-        int ca_cert_index = 0;
-
-        while (i < args.length)
-        {
-            if (args[i].equals("-accept"))
-            {
-                if (i >= args.length-1)
-                {
-                    print_server_options(build_mode, args[i]);
-                }
-
-                port = Integer.parseInt(args[++i]);
-            }
-            else if (args[i].equals("-quiet"))
-            {
-                quiet = true;
-                options &= ~(int)axtlsj.SSL_DISPLAY_CERTS;
-            }
-            else if (build_mode >= axtlsj.SSL_BUILD_SERVER_ONLY)
-            {
-                if (args[i].equals("-cert"))
-                {
-                    if (i >= args.length-1 || cert_index >= cert_size)
-                    {
-                        print_server_options(build_mode, args[i]);
-                    }
-
-                    cert[cert_index++] = args[++i];
-                }
-                else if (args[i].equals("-key"))
-                {
-                    if (i >= args.length-1)
-                    {
-                        print_server_options(build_mode, args[i]);
-                    }
-
-                    private_key_file = args[++i];
-                    options |= axtlsj.SSL_NO_DEFAULT_KEY;
-                }
-                else if (args[i].equals("-pass"))
-                {
-                    if (i >= args.length-1)
-                    {
-                        print_server_options(build_mode, args[i]);
-                    }
-
-                    password = args[++i];
-                }
-                else if (build_mode >= axtlsj.SSL_BUILD_ENABLE_VERIFICATION)
-                {
-                    if (args[i].equals("-verify"))
-                    {
-                        options |= axtlsj.SSL_CLIENT_AUTHENTICATION;
-                    }
-                    else if (args[i].equals("-CAfile"))
-                    {
-                        if (i >= args.length-1 || ca_cert_index >= ca_cert_size)
-                        {
-                            print_server_options(build_mode, args[i]);
-                        }
-
-                        ca_cert[ca_cert_index++] = args[++i];
-                    }
-                    else if (build_mode == axtlsj.SSL_BUILD_FULL_MODE)
-                    {
-                        if (args[i].equals("-debug"))
-                        {
-                            options |= axtlsj.SSL_DISPLAY_BYTES;
-                        }
-                        else if (args[i].equals("-state"))
-                        {
-                            options |= axtlsj.SSL_DISPLAY_STATES;
-                        }
-                        else if (args[i].equals("-show-rsa"))
-                        {
-                            options |= axtlsj.SSL_DISPLAY_RSA;
-                        }
-                        else
-                            print_server_options(build_mode, args[i]);
-                    }
-                    else
-                        print_server_options(build_mode, args[i]);
-                }
-                else 
-                    print_server_options(build_mode, args[i]);
-            }
-            else 
-                print_server_options(build_mode, args[i]);
-
-            i++;
-        }
-
-        /* Create socket for incoming connections */
-        ServerSocket server_sock = new ServerSocket(port);
-
-        /**********************************************************************
-         * This is where the interesting stuff happens. Up until now we've
-         * just been setting up sockets etc. Now we do the SSL handshake.
-         **********************************************************************/
-        SSLServer ssl_ctx = new SSLServer(options, 
-                                    axtlsj.SSL_DEFAULT_SVR_SESS);
-
-        if (ssl_ctx == null)
-            throw new Exception("Error: Server context is invalid");
-
-        if (private_key_file != null)
-        {
-            int obj_type =  axtlsj.SSL_OBJ_RSA_KEY;
-
-            if (private_key_file.endsWith(".p8"))
-                obj_type = axtlsj.SSL_OBJ_PKCS8;
-            else if (private_key_file.endsWith(".p12"))
-                obj_type = axtlsj.SSL_OBJ_PKCS12;
-
-            if (ssl_ctx.objLoad(obj_type, 
-                            private_key_file, password) != axtlsj.SSL_OK)
-            {
-                throw new Exception("Error: Private key '" + private_key_file + 
-                        "' is undefined.");
-            }
-        }
-
-        for (i = 0; i < cert_index; i++)
-        {
-            if (ssl_ctx.objLoad(axtlsj.SSL_OBJ_X509_CERT, 
-                                        cert[i], null) != axtlsj.SSL_OK)
-            {
-                throw new Exception("Certificate '" + cert[i] + 
-                        "' is undefined.");
-            }
-        }
-
-        for (i = 0; i < ca_cert_index; i++)
-        {
-            if (ssl_ctx.objLoad(axtlsj.SSL_OBJ_X509_CACERT, 
-                                        ca_cert[i], null) != axtlsj.SSL_OK)
-            {
-                throw new Exception("Certificate '" + ca_cert[i] + 
-                        "' is undefined.");
-            }
-        }
-
-        int res;
-        SSLReadHolder rh = new SSLReadHolder();
-
-        for (;;)
-        {
-            if (!quiet)
-            {
-                System.out.println("ACCEPT");
-            }
-
-            Socket client_sock = server_sock.accept();
-
-            SSL ssl = ssl_ctx.connect(client_sock);
-
-            while ((res = ssl_ctx.read(ssl, rh)) == axtlsj.SSL_OK)
-            {
-                /* check when the connection has been established */
-                if (ssl.handshakeStatus() == axtlsj.SSL_OK)
-                    break;
-
-                /* could do something else here */
-            }
-
-            if (res == axtlsj.SSL_OK) /* connection established and ok */
-            {
-                if (!quiet)
-                {
-                    display_session_id(ssl);
-                    display_cipher(ssl);
-                }
-
-                /* now read (and display) whatever the client sends us */
-                for (;;)
-                {
-                    /* keep reading until we get something interesting */
-                    while ((res = ssl_ctx.read(ssl, rh)) == axtlsj.SSL_OK)
-                    {
-                        /* could do something else here */
-                    }
-
-                    if (res < axtlsj.SSL_OK)
-                    {
-                        if (!quiet)
-                        {
-                            System.out.println("CONNECTION CLOSED");
-                        }
-
-                        break;
-                    }
-
-                    /* convert to String */
-                    byte[] buf = rh.getData();
-                    char[] str = new char[res];
-
-                    for (i = 0; i < res; i++)
-                    {
-                        str[i] = (char)buf[i];
-                    }
-
-                    System.out.print(str);
-                }
-            }
-            else if (!quiet)
-            {
-                SSLUtil.displayError(res);
-            }
-
-            /* client was disconnected or the handshake failed. */
-            ssl.dispose();
-            client_sock.close();
-        }
-
-        /* ssl_ctx.dispose(); */
-    }
-
-    /*
-     * do_client()
-     */
-    private void do_client(int build_mode, String[] args)
-                    throws Exception
-    {
-        if (build_mode < axtlsj.SSL_BUILD_ENABLE_CLIENT)
-            print_client_options(build_mode, args[1]);
-
-        int i = 1, res;
-        int port = 4433;
-        boolean quiet = false;
-        String password = null;
-        int reconnect = 0;
-        String private_key_file = null;
-        String hostname = "127.0.0.1";
-
-        /* organise the cert/ca_cert lists */
-        int cert_index = 0;
-        int ca_cert_index = 0;
-        int cert_size = SSLUtil.maxCerts();
-        int ca_cert_size = SSLUtil.maxCACerts();
-        String[] cert = new String[cert_size];
-        String[] ca_cert = new String[ca_cert_size];
-
-        int options = axtlsj.SSL_SERVER_VERIFY_LATER|axtlsj.SSL_DISPLAY_CERTS;
-        byte[] session_id = null;
-
-        while (i < args.length)
-        {
-            if (args[i].equals("-connect"))
-            {
-                String host_port;
-
-                if (i >= args.length-1)
-                {
-                    print_client_options(build_mode, args[i]);
-                }
-
-                host_port = args[++i];
-                int index_colon;
-
-                if ((index_colon = host_port.indexOf(':')) < 0)
-                    print_client_options(build_mode, args[i]);
-
-                hostname = new String(host_port.toCharArray(), 
-                        0, index_colon);
-                port = Integer.parseInt(new String(host_port.toCharArray(), 
-                            index_colon+1, host_port.length()-index_colon-1));
-            }
-            else if (args[i].equals("-cert"))
-            {
-                if (i >= args.length-1 || cert_index >= cert_size)
-                {
-                    print_client_options(build_mode, args[i]);
-                }
-
-                cert[cert_index++] = args[++i];
-            }
-            else if (args[i].equals("-CAfile"))
-            {
-                if (i >= args.length-1 || ca_cert_index >= ca_cert_size)
-                {
-                    print_client_options(build_mode, args[i]);
-                }
-
-                ca_cert[ca_cert_index++] = args[++i];
-            }
-            else if (args[i].equals("-key"))
-            {
-                if (i >= args.length-1)
-                {
-                    print_client_options(build_mode, args[i]);
-                }
-
-                private_key_file = args[++i];
-                options |= axtlsj.SSL_NO_DEFAULT_KEY;
-            }
-            else if (args[i].equals("-verify"))
-            {
-                options &= ~(int)axtlsj.SSL_SERVER_VERIFY_LATER;
-            }
-            else if (args[i].equals("-reconnect"))
-            {
-                reconnect = 4;
-            }
-            else if (args[i].equals("-quiet"))
-            {
-                quiet = true;
-                options &= ~(int)axtlsj.SSL_DISPLAY_CERTS;
-            }
-            else if (args[i].equals("-pass"))
-            {
-                if (i >= args.length-1)
-                {
-                    print_server_options(build_mode, args[i]);
-                }
-
-                password = args[++i];
-            }
-            else if (build_mode == axtlsj.SSL_BUILD_FULL_MODE)
-            {
-                if (args[i].equals("-debug"))
-                {
-                    options |= axtlsj.SSL_DISPLAY_BYTES;
-                }
-                else if (args[i].equals("-state"))
-                {
-                    options |= axtlsj.SSL_DISPLAY_STATES;
-                }
-                else if (args[i].equals("-show-rsa"))
-                {
-                    options |= axtlsj.SSL_DISPLAY_RSA;
-                }
-                else
-                    print_client_options(build_mode, args[i]);
-            }
-            else    /* don't know what this is */
-                print_client_options(build_mode, args[i]);
-
-            i++;
-        }
-
-        Socket client_sock = new Socket(hostname, port);
-
-        if (!client_sock.isConnected())
-        {
-            System.out.println("could not connect");
-            throw new Exception();
-        }
-
-        if (!quiet)
-        {
-            System.out.println("CONNECTED");
-        }
-
-        /**********************************************************************
-         * This is where the interesting stuff happens. Up until now we've
-         * just been setting up sockets etc. Now we do the SSL handshake.
-         **********************************************************************/
-        SSLClient ssl_ctx = new SSLClient(options, 
-                                    axtlsj.SSL_DEFAULT_CLNT_SESS);
-
-        if (ssl_ctx == null)
-        {
-            throw new Exception("Error: Client context is invalid");
-        }
-
-        if (private_key_file != null)
-        {
-            int obj_type =  axtlsj.SSL_OBJ_RSA_KEY;
-
-            if (private_key_file.endsWith(".p8"))
-                obj_type = axtlsj.SSL_OBJ_PKCS8;
-            else if (private_key_file.endsWith(".p12"))
-                obj_type = axtlsj.SSL_OBJ_PKCS12;
-
-            if (ssl_ctx.objLoad(obj_type, 
-                            private_key_file, password) != axtlsj.SSL_OK)
-            {
-                throw new Exception("Error: Private key '" + private_key_file + 
-                        "' is undefined.");
-            }
-        }
-
-        for (i = 0; i < cert_index; i++)
-        {
-            if (ssl_ctx.objLoad(axtlsj.SSL_OBJ_X509_CERT, 
-                                        cert[i], null) != axtlsj.SSL_OK)
-            {
-                throw new Exception("Certificate '" + cert[i] + 
-                        "' is undefined.");
-            }
-        }
-
-        for (i = 0; i < ca_cert_index; i++)
-        {
-            if (ssl_ctx.objLoad(axtlsj.SSL_OBJ_X509_CACERT, 
-                                        ca_cert[i], null) != axtlsj.SSL_OK)
-            {
-                throw new Exception("Certificate '" + ca_cert[i] + 
-                        "' is undefined.");
-            }
-        }
-
-        SSL ssl = null;
-
-        /* Try session resumption? */
-        if (reconnect > 0)
-        {
-            while (reconnect-- > 0)
-            {
-                ssl = ssl_ctx.connect(client_sock, session_id);
-
-                if ((res = ssl.handshakeStatus()) != axtlsj.SSL_OK)
-                {
-                    if (!quiet)
-                    {
-                        SSLUtil.displayError(res);
-                    }
-
-                    ssl.dispose();
-                    throw new Exception();
-                }
-
-                display_session_id(ssl);
-                session_id = ssl.getSessionId();
-
-                if (reconnect > 0)
-                {
-                    ssl.dispose();
-                    client_sock.close();
-                    
-                    /* and reconnect */
-                    client_sock = new Socket(hostname, port);
-                }
-            }
-        }
-        else
-        {
-            ssl = ssl_ctx.connect(client_sock, null);
-        }
-
-        /* check the return status */
-        if ((res = ssl.handshakeStatus()) != axtlsj.SSL_OK)
-        {
-            if (!quiet)
-            {
-                SSLUtil.displayError(res);
-            }
-
-            throw new Exception();
-        }
-
-        if (!quiet)
-        {
-            String common_name =
-                ssl.getCertificateDN(axtlsj.SSL_X509_CERT_COMMON_NAME);
-
-            if (common_name != null)
-            {
-                System.out.println("Common Name:\t\t\t" + common_name);
-            }
-
-            display_session_id(ssl);
-            display_cipher(ssl);
-        }
-
-        BufferedReader in = new BufferedReader(
-                new InputStreamReader(System.in));
-
-        for (;;)
-        {
-            String user_input = in.readLine();
-
-            if (user_input == null)
-                break;
-
-            byte[] buf = new byte[user_input.length()+2];
-            buf[buf.length-2] = (byte)'\n';     /* add the carriage return */
-            buf[buf.length-1] = 0;              /* null terminate */
-
-            for (i = 0; i < buf.length-2; i++)
-            {
-                buf[i] = (byte)user_input.charAt(i);
-            }
-
-            if ((res = ssl_ctx.write(ssl, buf)) < axtlsj.SSL_OK)
-            {
-                if (!quiet)
-                {
-                    SSLUtil.displayError(res);
-                }
-
-                break;
-            }
-        }
-
-        ssl_ctx.dispose();
-    }
-
-    /**
-     * We've had some sort of command-line error. Print out the basic options.
-     */
-    private void print_options(String option)
-    {
-        System.out.println("axssl: Error: '" + option + 
-                "' is an invalid command.");
-        System.out.println("usage: axtlsj.jar [s_server|s_client|version] " + 
-                "[args ...]");
-        System.exit(1);
-    }
-
-    /**
-     * We've had some sort of command-line error. Print out the server options.
-     */
-    private void print_server_options(int build_mode, String option)
-    {
-        int cert_size = SSLUtil.maxCerts();
-        int ca_cert_size = SSLUtil.maxCACerts();
-
-        System.out.println("unknown option " + option);
-        System.out.println("usage: s_server [args ...]");
-        System.out.println(" -accept arg\t- port to accept on (default " + 
-                "is 4433)");
-        System.out.println(" -quiet\t\t- No server output");
-
-        if (build_mode >= axtlsj.SSL_BUILD_SERVER_ONLY)
-        {
-            System.out.println(" -cert arg\t- certificate file to add (in " + 
-                    "addition to default) to chain -");
-            System.out.println("\t\t  Can repeat up to " + cert_size + " times");
-            System.out.println(" -key arg\t- Private key file to use");
-            System.out.println(" -pass\t\t- private key file pass phrase source");
-        }
-
-        if (build_mode >= axtlsj.SSL_BUILD_ENABLE_VERIFICATION)
-        {
-            System.out.println(" -verify\t- turn on peer certificate " +
-                    "verification");
-            System.out.println(" -CAfile arg\t- Certificate authority. ");
-            System.out.println("\t\t  Can repeat up to " + 
-                    ca_cert_size + " times");
-        }
-
-        if (build_mode == axtlsj.SSL_BUILD_FULL_MODE)
-        {
-            System.out.println(" -debug\t\t- Print more output");
-            System.out.println(" -state\t\t- Show state messages");
-            System.out.println(" -show-rsa\t- Show RSA state");
-        }
-
-        System.exit(1);
-    }
-
-    /**
-     * We've had some sort of command-line error. Print out the client options.
-     */
-    private void print_client_options(int build_mode, String option)
-    {
-        int cert_size = SSLUtil.maxCerts();
-        int ca_cert_size = SSLUtil.maxCACerts();
-
-        System.out.println("unknown option " + option);
-
-        if (build_mode >= axtlsj.SSL_BUILD_ENABLE_CLIENT)
-        {
-            System.out.println("usage: s_client [args ...]");
-            System.out.println(" -connect host:port - who to connect to " + 
-                    "(default is localhost:4433)");
-            System.out.println(" -verify\t- turn on peer certificate " + 
-                    "verification");
-            System.out.println(" -cert arg\t- certificate file to use");
-            System.out.println(" -key arg\t- Private key file to use");
-            System.out.println("\t\t  Can repeat up to " + cert_size + 
-                    " times");
-            System.out.println(" -CAfile arg\t- Certificate authority.");
-            System.out.println("\t\t  Can repeat up to " + ca_cert_size + 
-                    " times");
-            System.out.println(" -quiet\t\t- No client output");
-            System.out.println(" -pass\t\t- private key file pass " + 
-                        "phrase source");
-            System.out.println(" -reconnect\t- Drop and re-make the " +
-                    "connection with the same Session-ID");
-
-            if (build_mode == axtlsj.SSL_BUILD_FULL_MODE)
-            {
-                System.out.println(" -debug\t\t- Print more output");
-                System.out.println(" -state\t\t- Show state messages");
-                System.out.println(" -show-rsa\t- Show RSA state");
-            }
-        }
-        else 
-        {
-            System.out.println("Change configuration to allow this feature");
-        }
-
-        System.exit(1);
-    }
-
-    /**
-     * Display what cipher we are using 
-     */
-    private void display_cipher(SSL ssl)
-    {
-        System.out.print("CIPHER is ");
-
-        byte ciph_id = ssl.getCipherId();
-
-        if (ciph_id == axtlsj.SSL_AES128_SHA)
-            System.out.println("AES128-SHA");
-        else if (ciph_id == axtlsj.SSL_AES256_SHA)
-            System.out.println("AES256-SHA");
-        else if (ciph_id == axtlsj.SSL_RC4_128_SHA)
-            System.out.println("RC4-SHA");
-        else if (ciph_id == axtlsj.SSL_RC4_128_MD5)
-            System.out.println("RC4-MD5");
-        else
-            System.out.println("Unknown - " + ssl.getCipherId());
-    }
-
-    public char toHexChar(int i)
-    {
-        if ((0 <= i) && (i <= 9 ))
-            return (char)('0' + i);
-        else
-            return (char)('a' + (i-10));
-    }
-
-    public void bytesToHex(byte[] data) 
-    {
-        StringBuffer buf = new StringBuffer();
-        for (int i = 0; i < data.length; i++ ) 
-        {
-            buf.append(toHexChar((data[i]>>>4)&0x0F));
-            buf.append(toHexChar(data[i]&0x0F));
-        }
-
-        System.out.println(buf);
-    }
-
-
-    /**
-     * Display what session id we have.
-     */
-    private void display_session_id(SSL ssl)
-    {    
-        byte[] session_id = ssl.getSessionId();
-
-        if (session_id.length > 0)
-        {
-            System.out.println("-----BEGIN SSL SESSION PARAMETERS-----");
-            bytesToHex(session_id);
-            System.out.println("-----END SSL SESSION PARAMETERS-----");
-        }
-    }
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/java/manifest.mf b/package/luci/libs/luci-lib-nixio/axTLS/samples/java/manifest.mf
deleted file mode 100644 (file)
index b906ed2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Main-Class: axssl
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/lua/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/samples/lua/Makefile
deleted file mode 100644 (file)
index a460da3..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-include ../../config/.config
-include ../../config/makefile.conf
-
-all: samples
-TARGET=../../$(STAGE)/axssl.lua
-samples: $(TARGET)
-
-$(TARGET): axssl.lua
-       install $< $@
-
-clean::
-       -@rm -f $(TARGET)
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/lua/axssl.lua b/package/luci/libs/luci-lib-nixio/axTLS/samples/lua/axssl.lua
deleted file mode 100755 (executable)
index 6ea26b6..0000000
+++ /dev/null
@@ -1,562 +0,0 @@
-#!/usr/local/bin/lua
-
---
--- Copyright (c) 2007, Cameron Rich
---
--- All rights reserved.
---
--- Redistribution and use in source and binary forms, with or without
--- modification, are permitted provided that the following conditions are met:
---
--- * Redistributions of source code must retain the above copyright notice,
---   this list of conditions and the following disclaimer.
--- * Redistributions in binary form must reproduce the above copyright
---   notice, this list of conditions and the following disclaimer in the
---   documentation and/or other materials provided with the distribution.
--- * Neither the name of the axTLS project nor the names of its
---   contributors may be used to endorse or promote products derived
---   from this software without specific prior written permission.
---
--- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
--- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
--- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
--- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
--- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
--- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
--- TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
--- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
--- OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
--- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
--- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---
-
---
--- Demonstrate the use of the axTLS library in Lua with a set of 
--- command-line parameters similar to openssl. In fact, openssl clients 
--- should be able to communicate with axTLS servers and visa-versa.
---
--- This code has various bits enabled depending on the configuration. To enable
--- the most interesting version, compile with the 'full mode' enabled.
---
--- To see what options you have, run the following:
--- > [lua] axssl s_server -?
--- > [lua] axssl s_client -?
---
--- The axtls/axtlsl shared libraries must be in the same directory or be found 
--- by the OS.
---
---
-require "bit"
-require("axtlsl")
-local socket = require("socket")
-
--- print version?
-if #arg == 1 and arg[1] == "version" then
-    print("axssl.lua "..axtlsl.ssl_version())
-    os.exit(1)
-end
-
---
--- We've had some sort of command-line error. Print out the basic options.
---
-function print_options(option)
-    print("axssl: Error: '"..option.."' is an invalid command.")
-    print("usage: axssl [s_server|s_client|version] [args ...]")
-    os.exit(1)
-end
-
---
--- We've had some sort of command-line error. Print out the server options.
---
-function print_server_options(build_mode, option)
-    local cert_size = axtlsl.ssl_get_config(axtlsl.SSL_MAX_CERT_CFG_OFFSET)
-    local ca_cert_size = axtlsl.ssl_get_config(
-            axtlsl.SSL_MAX_CA_CERT_CFG_OFFSET)
-
-    print("unknown option "..option)
-    print("usage: s_server [args ...]")
-    print(" -accept\t- port to accept on (default is 4433)")
-    print(" -quiet\t\t- No server output")
-
-    if build_mode >= axtlsl.SSL_BUILD_SERVER_ONLY then
-        print(" -cert arg\t- certificate file to add (in addition to "..
-                "default) to chain -")
-        print("\t\t  Can repeat up to "..cert_size.." times")
-        print(" -key arg\t- Private key file to use - default DER format")
-        print(" -pass\t\t- private key file pass phrase source")
-    end
-
-    if build_mode >= axtlsl.SSL_BUILD_ENABLE_VERIFICATION then
-        print(" -verify\t- turn on peer certificate verification")
-        print(" -CAfile arg\t- Certificate authority - default DER format")
-        print("\t\t  Can repeat up to "..ca_cert_size.." times")
-    end
-
-    if build_mode == axtlsl.SSL_BUILD_FULL_MODE then
-        print(" -debug\t\t- Print more output")
-        print(" -state\t\t- Show state messages")
-        print(" -show-rsa\t- Show RSA state")
-    end
-
-    os.exit(1)
-end
-
---
--- We've had some sort of command-line error. Print out the client options.
---
-function print_client_options(build_mode, option)
-    local cert_size = axtlsl.ssl_get_config(axtlsl.SSL_MAX_CERT_CFG_OFFSET)
-    local ca_cert_size = axtlsl.ssl_get_config(
-            axtlsl.SSL_MAX_CA_CERT_CFG_OFFSET)
-
-    print("unknown option "..option)
-
-    if build_mode >= axtlsl.SSL_BUILD_ENABLE_CLIENT then
-        print("usage: s_client [args ...]")
-        print(" -connect host:port - who to connect to (default "..
-                "is localhost:4433)")
-        print(" -verify\t- turn on peer certificate verification")
-        print(" -cert arg\t- certificate file to use - default DER format")
-        print(" -key arg\t- Private key file to use - default DER format")
-        print("\t\t  Can repeat up to "..cert_size.." times")
-        print(" -CAfile arg\t- Certificate authority - default DER format")
-        print("\t\t  Can repeat up to "..ca_cert_size.."times")
-        print(" -quiet\t\t- No client output")
-        print(" -pass\t\t- private key file pass phrase source")
-        print(" -reconnect\t- Drop and re-make the connection "..
-                "with the same Session-ID")
-
-        if build_mode == axtlsl.SSL_BUILD_FULL_MODE then
-            print(" -debug\t\t- Print more output")
-            print(" -state\t\t- Show state messages")
-            print(" -show-rsa\t- Show RSA state")
-        end
-    else
-        print("Change configuration to allow this feature")
-    end
-
-    os.exit(1)
-end
-
--- Implement the SSL server logic. 
-function do_server(build_mode)
-    local i = 2
-    local v
-    local port = 4433
-    local options = axtlsl.SSL_DISPLAY_CERTS
-    local quiet = false
-    local password = ""
-    local private_key_file = nil
-    local cert_size = axtlsl.ssl_get_config(axtlsl.SSL_MAX_CERT_CFG_OFFSET)
-    local ca_cert_size = axtlsl.
-                            ssl_get_config(axtlsl.SSL_MAX_CA_CERT_CFG_OFFSET)
-    local cert = {}
-    local ca_cert = {}
-
-    while i <= #arg do
-        if arg[i] ==  "-accept" then
-            if i >= #arg then
-                print_server_options(build_mode, arg[i])
-            end
-
-            i = i + 1
-            port = arg[i]
-        elseif arg[i] == "-quiet" then
-            quiet = true
-            options = bit.band(options, bit.bnot(axtlsl.SSL_DISPLAY_CERTS))
-        elseif build_mode >= axtlsl.SSL_BUILD_SERVER_ONLY then
-            if arg[i] == "-cert" then
-                if i >= #arg or #cert >= cert_size then
-                    print_server_options(build_mode, arg[i]) 
-                end
-
-                i = i + 1
-                table.insert(cert, arg[i])
-            elseif arg[i] == "-key" then
-                if i >= #arg then
-                    print_server_options(build_mode, arg[i]) 
-                end
-
-                i = i + 1
-                private_key_file = arg[i]
-                options = bit.bor(options, axtlsl.SSL_NO_DEFAULT_KEY)
-            elseif arg[i] == "-pass" then
-                if i >= #arg then
-                    print_server_options(build_mode, arg[i]) 
-                end
-
-                i = i + 1
-                password = arg[i]
-            elseif build_mode >= axtlsl.SSL_BUILD_ENABLE_VERIFICATION then
-                if arg[i] == "-verify" then
-                    options = bit.bor(options, axtlsl.SSL_CLIENT_AUTHENTICATION)
-                elseif arg[i] == "-CAfile" then
-                    if i >= #arg or #ca_cert >= ca_cert_size then
-                        print_server_options(build_mode, arg[i])  
-                    end
-
-                    i = i + 1
-                    table.insert(ca_cert, arg[i])
-                elseif build_mode == axtlsl.SSL_BUILD_FULL_MODE then
-                    if arg[i] == "-debug" then
-                        options = bit.bor(options, axtlsl.SSL_DISPLAY_BYTES)
-                    elseif arg[i] == "-state" then
-                        options = bit.bor(options, axtlsl.SSL_DISPLAY_STATES)
-                    elseif arg[i] == "-show-rsa" then
-                        options = bit.bor(options, axtlsl.SSL_DISPLAY_RSA)
-                    else
-                        print_server_options(build_mode, arg[i])
-                    end
-                else
-                    print_server_options(build_mode, arg[i])
-                end
-            else 
-                print_server_options(build_mode, arg[i])
-            end
-        else 
-            print_server_options(build_mode, arg[i])
-        end
-
-        i = i + 1
-    end
-
-    -- Create socket for incoming connections
-    local server_sock = socket.try(socket.bind("*", port))
-
-    ---------------------------------------------------------------------------
-    -- This is where the interesting stuff happens. Up until now we've
-    -- just been setting up sockets etc. Now we do the SSL handshake.
-    ---------------------------------------------------------------------------
-    local ssl_ctx = axtlsl.ssl_ctx_new(options, axtlsl.SSL_DEFAULT_SVR_SESS)
-    if ssl_ctx == nil then error("Error: Server context is invalid") end
-
-    if private_key_file ~= nil then
-        local obj_type = axtlsl.SSL_OBJ_RSA_KEY
-
-        if string.find(private_key_file, ".p8") then 
-            obj_type = axtlsl.SSL_OBJ_PKCS8 
-        end
-
-        if string.find(private_key_file, ".p12") then 
-            obj_type = axtlsl.SSL_OBJ_PKCS12 
-        end
-
-        if axtlsl.ssl_obj_load(ssl_ctx, obj_type, private_key_file, 
-                                        password) ~= axtlsl.SSL_OK then
-            error("Private key '" .. private_key_file .. "' is undefined.")
-        end
-    end
-
-    for _, v in ipairs(cert) do
-        if axtlsl.ssl_obj_load(ssl_ctx, axtlsl.SSL_OBJ_X509_CERT, v, "") ~= 
-                                        axtlsl.SSL_OK then
-            error("Certificate '"..v .. "' is undefined.")
-        end
-    end
-
-    for _, v in ipairs(ca_cert) do
-        if axtlsl.ssl_obj_load(ssl_ctx, axtlsl.SSL_OBJ_X509_CACERT, v, "") ~= 
-                                        axtlsl.SSL_OK then
-            error("Certificate '"..v .."' is undefined.")
-        end
-    end
-
-    while true do
-        if not quiet then print("ACCEPT") end
-        local client_sock = server_sock:accept();
-        local ssl = axtlsl.ssl_server_new(ssl_ctx, client_sock:getfd())
-
-        -- do the actual SSL handshake
-        local connected = false
-        local res
-        local buf
-
-        while true do
-            socket.select({client_sock}, nil)
-            res, buf = axtlsl.ssl_read(ssl)
-
-            if res == axtlsl.SSL_OK then -- connection established and ok
-                if axtlsl.ssl_handshake_status(ssl) == axtlsl.SSL_OK then
-                    if not quiet and not connected then
-                        display_session_id(ssl)
-                        display_cipher(ssl)
-                    end
-                    connected = true
-                end
-            end
-
-            if res > axtlsl.SSL_OK then
-                for _, v in ipairs(buf) do
-                    io.write(string.format("%c", v))
-                end
-            elseif res < axtlsl.SSL_OK then 
-                if not quiet then
-                    axtlsl.ssl_display_error(res)
-                end
-                break
-            end
-        end
-
-        -- client was disconnected or the handshake failed.
-        print("CONNECTION CLOSED")
-        axtlsl.ssl_free(ssl)
-        client_sock:close()
-    end
-
-    axtlsl.ssl_ctx_free(ssl_ctx)
-end
-
---
--- Implement the SSL client logic.
---
-function do_client(build_mode)
-    local i = 2
-    local v
-    local port = 4433
-    local options = 
-            bit.bor(axtlsl.SSL_SERVER_VERIFY_LATER, axtlsl.SSL_DISPLAY_CERTS)
-    local private_key_file = nil
-    local reconnect = 0
-    local quiet = false
-    local password = ""
-    local session_id = {}
-    local host = "127.0.0.1"
-    local cert_size = axtlsl.ssl_get_config(axtlsl.SSL_MAX_CERT_CFG_OFFSET)
-    local ca_cert_size = axtlsl.
-                            ssl_get_config(axtlsl.SSL_MAX_CA_CERT_CFG_OFFSET)
-    local cert = {}
-    local ca_cert = {}
-
-    while i <= #arg do
-        if arg[i] == "-connect" then
-            if i >= #arg then
-                print_client_options(build_mode, arg[i]) 
-            end
-
-            i = i + 1
-            local t = string.find(arg[i], ":")
-            host = string.sub(arg[i], 1, t-1)
-            port = string.sub(arg[i], t+1)
-        elseif arg[i] == "-cert" then
-            if i >= #arg or #cert >= cert_size then
-                print_client_options(build_mode, arg[i]) 
-            end
-
-            i = i + 1
-            table.insert(cert, arg[i])
-        elseif arg[i] == "-key" then
-            if i >= #arg then
-                print_client_options(build_mode, arg[i])
-            end
-
-            i = i + 1
-            private_key_file = arg[i]
-            options = bit.bor(options, axtlsl.SSL_NO_DEFAULT_KEY)
-        elseif arg[i] == "-CAfile" then
-            if i >= #arg or #ca_cert >= ca_cert_size then
-                print_client_options(build_mode, arg[i]) 
-            end
-
-            i = i + 1
-            table.insert(ca_cert, arg[i])
-        elseif arg[i] == "-verify" then
-            options = bit.band(options, 
-                                bit.bnot(axtlsl.SSL_SERVER_VERIFY_LATER))
-        elseif arg[i] == "-reconnect" then
-            reconnect = 4
-        elseif arg[i] == "-quiet" then
-            quiet = true
-            options = bit.band(options, bnot(axtlsl.SSL_DISPLAY_CERTS))
-        elseif arg[i] == "-pass" then
-            if i >= #arg then
-                print_server_options(build_mode, arg[i])
-            end
-
-            i = i + 1
-            password = arg[i]
-        elseif build_mode == axtlsl.SSL_BUILD_FULL_MODE then
-            if arg[i] == "-debug" then
-                options = bit.bor(options, axtlsl.SSL_DISPLAY_BYTES)
-            elseif arg[i] == "-state" then
-                options = bit.bor(axtlsl.SSL_DISPLAY_STATES)
-            elseif arg[i] == "-show-rsa" then
-                options = bit.bor(axtlsl.SSL_DISPLAY_RSA)
-            else    -- don't know what this is
-                print_client_options(build_mode, arg[i])
-            end
-        else    -- don't know what this is
-            print_client_options(build_mode, arg[i])
-        end
-
-        i = i + 1
-    end
-
-    local client_sock = socket.try(socket.connect(host, port))
-    local ssl
-    local res
-
-    if not quiet then print("CONNECTED") end
-
-    ---------------------------------------------------------------------------
-    -- This is where the interesting stuff happens. Up until now we've
-    -- just been setting up sockets etc. Now we do the SSL handshake.
-    ---------------------------------------------------------------------------
-    local ssl_ctx = axtlsl.ssl_ctx_new(options, axtlsl.SSL_DEFAULT_CLNT_SESS)
-
-    if ssl_ctx == nil then 
-        error("Error: Client context is invalid")
-    end
-
-    if private_key_file ~= nil then
-        local obj_type = axtlsl.SSL_OBJ_RSA_KEY
-
-        if string.find(private_key_file, ".p8") then 
-            obj_type = axtlsl.SSL_OBJ_PKCS8 
-        end
-
-        if string.find(private_key_file, ".p12") then 
-            obj_type = axtlsl.SSL_OBJ_PKCS12 
-        end
-
-        if axtlsl.ssl_obj_load(ssl_ctx, obj_type, private_key_file, 
-                                        password) ~= axtlsl.SSL_OK then
-            error("Private key '"..private_key_file.."' is undefined.")
-        end
-    end
-
-    for _, v in ipairs(cert) do
-        if axtlsl.ssl_obj_load(ssl_ctx, axtlsl.SSL_OBJ_X509_CERT, v, "") ~= 
-                                        axtlsl.SSL_OK then
-            error("Certificate '"..v .. "' is undefined.")
-        end
-    end
-
-    for _, v in ipairs(ca_cert) do
-        if axtlsl.ssl_obj_load(ssl_ctx, axtlsl.SSL_OBJ_X509_CACERT, v, "") ~= 
-                                        axtlsl.SSL_OK then
-            error("Certificate '"..v .."' is undefined.")
-        end
-    end
-
-    -- Try session resumption?
-    if reconnect ~= 0 then
-        local session_id = nil
-        local sess_id_size = 0
-
-        while reconnect > 0 do
-            reconnect = reconnect - 1
-            ssl = axtlsl.ssl_client_new(ssl_ctx, 
-                    client_sock:getfd(), session_id, sess_id_size)
-
-            res = axtlsl.ssl_handshake_status(ssl)
-            if res ~= axtlsl.SSL_OK then
-                if not quiet then axtlsl.ssl_display_error(res) end
-                axtlsl.ssl_free(ssl)
-                os.exit(1)
-            end
-
-            display_session_id(ssl)
-            session_id = axtlsl.ssl_get_session_id(ssl)
-            sess_id_size = axtlsl.ssl_get_session_id_size(ssl)
-
-            if reconnect > 0 then
-                axtlsl.ssl_free(ssl)
-                client_sock:close()
-                client_sock = socket.try(socket.connect(host, port))
-            end
-
-        end
-    else
-        ssl = axtlsl.ssl_client_new(ssl_ctx, client_sock:getfd(), nil, 0)
-    end
-
-    -- check the return status
-    res = axtlsl.ssl_handshake_status(ssl)
-    if res ~= axtlsl.SSL_OK then
-        if not quiet then axtlsl.ssl_display_error(res) end
-        os.exit(1)
-    end
-
-    if not quiet then
-        local common_name = axtlsl.ssl_get_cert_dn(ssl, 
-                            axtlsl.SSL_X509_CERT_COMMON_NAME)
-
-        if common_name ~= nil then 
-            print("Common Name:\t\t\t"..common_name)
-        end
-
-        display_session_id(ssl)
-        display_cipher(ssl)
-    end
-
-    while true do
-        local line = io.read()
-    if line == nil then break end
-        local bytes = {}
-
-        for i = 1, #line do
-            bytes[i] = line.byte(line, i)
-        end
-
-        bytes[#line+1] = 10      -- add carriage return, null
-        bytes[#line+2] = 0
-
-        res = axtlsl.ssl_write(ssl, bytes, #bytes)
-        if res < axtlsl.SSL_OK then
-            if not quiet then axtlsl.ssl_display_error(res) end
-            break
-        end
-    end
-
-    axtlsl.ssl_ctx_free(ssl_ctx)
-    client_sock:close()
-end
-
---
--- Display what cipher we are using 
---
-function display_cipher(ssl)
-    io.write("CIPHER is ")
-    local cipher_id = axtlsl.ssl_get_cipher_id(ssl)
-
-    if cipher_id == axtlsl.SSL_AES128_SHA then
-        print("AES128-SHA")
-    elseif cipher_id == axtlsl.SSL_AES256_SHA then
-        print("AES256-SHA")
-    elseif axtlsl.SSL_RC4_128_SHA then
-        print("RC4-SHA")
-    elseif axtlsl.SSL_RC4_128_MD5 then
-        print("RC4-MD5")
-    else 
-        print("Unknown - "..cipher_id)
-    end
-end
-
---
--- Display what session id we have.
---
-function display_session_id(ssl)
-    local session_id = axtlsl.ssl_get_session_id(ssl)
-    local v
-
-    if #session_id > 0 then
-        print("-----BEGIN SSL SESSION PARAMETERS-----")
-        for _, v in ipairs(session_id) do
-            io.write(string.format("%02x", v))
-        end
-        print("\n-----END SSL SESSION PARAMETERS-----")
-    end
-end
-
---
--- Main entry point. Doesn't do much except works out whether we are a client
--- or a server.
---
-if #arg == 0 or (arg[1] ~= "s_server" and arg[1] ~= "s_client") then
-    print_options(#arg > 0 and arg[1] or "")
-end
-
-local build_mode = axtlsl.ssl_get_config(axtlsl.SSL_BUILD_MODE)
-_ = arg[1] == "s_server" and do_server(build_mode) or do_client(build_mode)
-os.exit(0)
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/perl/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/samples/perl/Makefile
deleted file mode 100644 (file)
index 5200c43..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-include ../../config/.config
-include ../../config/makefile.conf
-
-all: samples
-TARGET=../../$(STAGE)/axssl.pl
-samples: $(TARGET)
-
-$(TARGET): axssl.pl
-       install $< $@
-
-clean::
-       -@rm -f $(TARGET)
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/perl/axssl.pl b/package/luci/libs/luci-lib-nixio/axTLS/samples/perl/axssl.pl
deleted file mode 100755 (executable)
index e49d522..0000000
+++ /dev/null
@@ -1,634 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-#
-# Demonstrate the use of the axTLS library in Perl with a set of 
-# command-line parameters similar to openssl. In fact, openssl clients 
-# should be able to communicate with axTLS servers and visa-versa.
-#
-# This code has various bits enabled depending on the configuration. To enable
-# the most interesting version, compile with the 'full mode' enabled.
-#
-# To see what options you have, run the following:
-# > [perl] axssl s_server -?
-# > [perl] axssl s_client -?
-#
-# The axtls/axtlsp shared libraries must be in the same directory or be found 
-# by the OS. axtlsp.pm must be in this directory or be in @INC.
-#
-# Under Win32, ActivePerl was used (see
-# http://www.activestate.com/Products/ActivePerl/?mp=1)
-#
-use axtlsp;
-use IO::Socket;
-
-# To get access to Win32 file descriptor stuff
-my $is_win32 = 0;
-
-if ($^O eq "MSWin32")
-{
-    eval("use Win32API::File 0.08 qw( :ALL )");
-    $is_win32 = 1;
-}
-
-use strict;
-
-#
-# Win32 has some problems with socket handles
-#
-sub get_native_sock
-{
-    my ($sock) = @_;
-    return $is_win32 ? FdGetOsFHandle($sock) : $sock;
-}
-
-# print version?
-if ($#ARGV == 0 && $ARGV[0] eq "version")
-{
-    printf("axssl.pl ".axtlsp::ssl_version()."\n");
-    exit 0;
-}
-
-#
-# Main entry point. Doesn't do much except works out whether we are a client
-# or a server.
-#
-print_options($#ARGV > -1 ? $ARGV[0] : "")
-        if ($#ARGV < 0 || ($ARGV[0] ne "s_server" && $ARGV[0] ne "s_client"));
-
-
-# Cygwin/Win32 issue - flush our output continuously
-select STDOUT;
-local $|=1;
-
-my $build_mode = axtlsp::ssl_get_config($axtlsp::SSL_BUILD_MODE);
-$ARGV[0] eq "s_server" ? do_server($build_mode) : do_client($build_mode);
-
-#
-# Implement the SSL server logic. 
-#
-sub do_server
-{
-    my ($build_mode) = @_;
-    my $i = 1;
-    my $port = 4433;
-    my $options = $axtlsp::SSL_DISPLAY_CERTS;
-    my $quiet = 0;
-    my $password = undef;
-    my $private_key_file = undef;
-    my $cert_size = axtlsp::ssl_get_config($axtlsp::SSL_MAX_CERT_CFG_OFFSET);
-    my $ca_cert_size = axtlsp::ssl_get_config(
-                        $axtlsp::SSL_MAX_CA_CERT_CFG_OFFSET);
-    my @cert;
-    my @ca_cert;
-
-    while ($i <= $#ARGV)
-    {
-        if ($ARGV[$i] eq  "-accept")
-        {
-            print_server_options($build_mode, $ARGV[$i]) if $i >= $#ARGV;
-            $port = $ARGV[++$i];
-        }
-        elsif ($ARGV[$i] eq "-quiet")
-        {
-            $quiet = 1;
-            $options &= ~$axtlsp::SSL_DISPLAY_CERTS;
-        }
-        elsif ($build_mode >= $axtlsp::SSL_BUILD_SERVER_ONLY)
-        {
-            if ($ARGV[$i] eq "-cert")
-            {
-                print_server_options($build_mode, $ARGV[$i]) 
-                                    if $i >= $#ARGV || $#cert >= $cert_size-1;
-
-                push @cert,  $ARGV[++$i];
-            }
-            elsif ($ARGV[$i] eq "-key")
-            {
-                print_server_options($build_mode, $ARGV[$i]) if $i >= $#ARGV;
-                $private_key_file = $ARGV[++$i];
-                $options |= $axtlsp::SSL_NO_DEFAULT_KEY;
-            }
-            elsif ($ARGV[$i] eq "-pass")
-            {
-                print_server_options($build_mode, $ARGV[$i]) if $i >= $#ARGV;
-                $password = $ARGV[++$i];
-            }
-            elsif ($build_mode >= $axtlsp::SSL_BUILD_ENABLE_VERIFICATION)
-            {
-                if ($ARGV[$i] eq "-verify")
-                {
-                    $options |= $axtlsp::SSL_CLIENT_AUTHENTICATION;
-                }
-                elsif ($ARGV[$i] eq "-CAfile")
-                {
-                    print_server_options($build_mode, $ARGV[$i])  
-                                if $i >= $#ARGV || $#ca_cert >= $ca_cert_size-1;
-                    push @ca_cert, $ARGV[++$i];
-                }
-                elsif ($build_mode == $axtlsp::SSL_BUILD_FULL_MODE)
-                {
-                    if ($ARGV[$i] eq "-debug")
-                    {
-                        $options |= $axtlsp::SSL_DISPLAY_BYTES;
-                    }
-                    elsif ($ARGV[$i] eq "-state")
-                    {
-                        $options |= $axtlsp::SSL_DISPLAY_STATES;
-                    }
-                    elsif ($ARGV[$i] eq "-show-rsa")
-                    {
-                        $options |= $axtlsp::SSL_DISPLAY_RSA;
-                    }
-                    else
-                    {
-                        print_server_options($build_mode, $ARGV[$i]);
-                    }
-                }
-                else
-                {
-                    print_server_options($build_mode, $ARGV[$i]);
-                }
-            }
-            else 
-            {
-                print_server_options($build_mode, $ARGV[$i]);
-            }
-        }
-        else 
-        {
-            print_server_options($build_mode, $ARGV[$i]);
-        }
-
-        $i++;
-    }
-
-    # Create socket for incoming connections
-    my $server_sock = IO::Socket::INET->new(Proto => 'tcp',
-                              LocalPort => $port,
-                              Listen => 1,
-                              Reuse => 1) or die $!;
-
-    ###########################################################################
-    # This is where the interesting stuff happens. Up until now we've
-    # just been setting up sockets etc. Now we do the SSL handshake.
-    ###########################################################################
-    my $ssl_ctx = axtlsp::ssl_ctx_new($options, $axtlsp::SSL_DEFAULT_SVR_SESS);
-    die "Error: Server context is invalid" if not defined $ssl_ctx;
-
-    if (defined $private_key_file)
-    {
-        my $obj_type = $axtlsp::SSL_OBJ_RSA_KEY;
-
-        $obj_type = $axtlsp::SSL_OBJ_PKCS8 if $private_key_file =~ /.p8$/;
-        $obj_type = $axtlsp::SSL_OBJ_PKCS12 if $private_key_file =~ /.p12$/;
-
-        die "Private key '$private_key_file' is undefined." if 
-                axtlsp::ssl_obj_load($ssl_ctx, $obj_type,
-                        $private_key_file, $password);
-    }
-
-    foreach (@cert)
-    {
-        die "Certificate '$_' is undefined." 
-            if axtlsp::ssl_obj_load($ssl_ctx, $axtlsp::SSL_OBJ_X509_CERT, 
-                    $_, undef) != $axtlsp::SSL_OK;
-    }
-
-    foreach (@ca_cert)
-    {
-        die "Certificate '$_' is undefined." 
-            if axtlsp::ssl_obj_load($ssl_ctx, $axtlsp::SSL_OBJ_X509_CACERT, 
-                    $_, undef) != $axtlsp::SSL_OK;
-    }
-
-    for (;;)
-    {
-        printf("ACCEPT\n") if not $quiet;
-        my $client_sock = $server_sock->accept;
-        my $native_sock = get_native_sock($client_sock->fileno);
-
-        # This doesn't work in Win32 - need to get file descriptor from socket.
-        my $ssl = axtlsp::ssl_server_new($ssl_ctx, $native_sock);
-
-        # do the actual SSL handshake
-        my $res;
-        my $buf;
-        my $connected = 0;
-
-        while (1)
-        {
-            ($res, $buf) = axtlsp::ssl_read($ssl, undef);
-            last if $res < $axtlsp::SSL_OK;
-
-            if ($res == $axtlsp::SSL_OK) # connection established and ok
-            {
-                if (axtlsp::ssl_handshake_status($ssl) == $axtlsp::SSL_OK)
-                {
-                    if (!$quiet && !$connected)
-                    {
-                        display_session_id($ssl);
-                        display_cipher($ssl);
-                    }
-
-                    $connected = 1;
-                }
-            }
-
-            if ($res > $axtlsp::SSL_OK)
-            {
-                printf($$buf);
-            }
-            elsif ($res < $axtlsp::SSL_OK)
-            {
-                axtlsp::ssl_display_error($res) if not $quiet;
-                last;
-            } 
-        }
-
-        # client was disconnected or the handshake failed.
-        printf("CONNECTION CLOSED\n") if not $quiet;
-        axtlsp::ssl_free($ssl);
-        $client_sock->close;
-    }
-
-    axtlsp::ssl_ctx_free($ssl_ctx);
-}
-
-#
-# Implement the SSL client logic.
-#
-sub do_client
-{
-    my ($build_mode) = @_;
-    my $i = 1;
-    my $port = 4433;
-    my $options = $axtlsp::SSL_SERVER_VERIFY_LATER|$axtlsp::SSL_DISPLAY_CERTS;
-    my $private_key_file = undef;
-    my $reconnect = 0;
-    my $quiet = 0;
-    my $password = undef;
-    my @session_id;
-    my $host = "127.0.0.1";
-    my @cert;
-    my @ca_cert;
-    my $cert_size = axtlsp::ssl_get_config(
-            $axtlsp::SSL_MAX_CERT_CFG_OFFSET);
-    my $ca_cert_size = axtlsp::ssl_get_config(
-            $axtlsp::SSL_MAX_CA_CERT_CFG_OFFSET);
-
-    while ($i <= $#ARGV)
-    {
-        if ($ARGV[$i] eq "-connect")
-        {
-            print_client_options($build_mode, $ARGV[$i]) if $i >= $#ARGV;
-            ($host, $port) = split(':', $ARGV[++$i]);
-        }
-        elsif ($ARGV[$i] eq "-cert")
-        {
-            print_client_options($build_mode, $ARGV[$i]) 
-                if $i >= $#ARGV || $#cert >= $cert_size-1;
-
-            push @cert, $ARGV[++$i];
-        }
-        elsif ($ARGV[$i] eq "-key")
-        {
-            print_client_options($build_mode, $ARGV[$i]) if $i >= $#ARGV;
-            $private_key_file = $ARGV[++$i];
-            $options |= $axtlsp::SSL_NO_DEFAULT_KEY;
-        }
-        elsif ($ARGV[$i] eq "-CAfile")
-        {
-            print_client_options($build_mode, $ARGV[$i]) 
-                if $i >= $#ARGV || $#ca_cert >= $ca_cert_size-1;
-
-            push @ca_cert, $ARGV[++$i];
-        }
-        elsif ($ARGV[$i] eq "-verify")
-        {
-            $options &= ~$axtlsp::SSL_SERVER_VERIFY_LATER;
-        }
-        elsif ($ARGV[$i] eq "-reconnect")
-        {
-            $reconnect = 4;
-        }
-        elsif ($ARGV[$i] eq "-quiet")
-        {
-            $quiet = 1;
-            $options &= ~$axtlsp::SSL_DISPLAY_CERTS;
-        }
-        elsif ($ARGV[$i] eq "-pass")
-        {
-            print_server_options($build_mode, $ARGV[$i]) if $i >= $#ARGV;
-            $password = $ARGV[++$i];
-        }
-        elsif ($build_mode == $axtlsp::SSL_BUILD_FULL_MODE)
-        {
-            if ($ARGV[$i] eq "-debug")
-            {
-                $options |= $axtlsp::SSL_DISPLAY_BYTES;
-            }
-            elsif ($ARGV[$i] eq "-state")
-            {
-                $options |= $axtlsp::SSL_DISPLAY_STATES;
-            }
-            elsif ($ARGV[$i] eq "-show-rsa")
-            {
-                $options |= $axtlsp::SSL_DISPLAY_RSA;
-            }
-            else    # don't know what this is
-            {
-                print_client_options($build_mode, $ARGV[$i]);
-            }
-        }
-        else    # don't know what this is
-        {
-            print_client_options($build_mode, $ARGV[$i]);
-        }
-
-        $i++;
-    }
-
-    my $client_sock = new IO::Socket::INET (
-                        PeerAddr => $host, PeerPort => $port, Proto => 'tcp')
-                    || die ("no socket: $!");
-    my $ssl;
-    my $res;
-    my $native_sock = get_native_sock($client_sock->fileno);
-
-    printf("CONNECTED\n") if not $quiet;
-
-    ###########################################################################
-    # This is where the interesting stuff happens. Up until now we've
-    # just been setting up sockets etc. Now we do the SSL handshake.
-    ###########################################################################
-    my $ssl_ctx = axtlsp::ssl_ctx_new($options, $axtlsp::SSL_DEFAULT_CLNT_SESS);
-    die "Error: Client context is invalid" if not defined $ssl_ctx;
-
-    if (defined $private_key_file)
-    {
-        my $obj_type = $axtlsp::SSL_OBJ_RSA_KEY;
-
-        $obj_type = $axtlsp::SSL_OBJ_PKCS8 if $private_key_file =~ /.p8$/;
-        $obj_type = $axtlsp::SSL_OBJ_PKCS12 if $private_key_file =~ /.p12$/;
-
-        die "Private key '$private_key_file' is undefined." if 
-                axtlsp::ssl_obj_load($ssl_ctx, $obj_type,
-                        $private_key_file, $password);
-    }
-
-    foreach (@cert)
-    {
-        die "Certificate '$_' is undefined." 
-            if axtlsp::ssl_obj_load($ssl_ctx, $axtlsp::SSL_OBJ_X509_CERT, 
-                    $_, undef) != $axtlsp::SSL_OK;
-    }
-
-    foreach (@ca_cert)
-    {
-        die "Certificate '$_' is undefined." 
-            if axtlsp::ssl_obj_load($ssl_ctx, $axtlsp::SSL_OBJ_X509_CACERT, 
-                    $_, undef) != $axtlsp::SSL_OK;
-    }
-
-    # Try session resumption?
-    if ($reconnect)
-    {
-        my $session_id = undef;
-        my $sess_id_size = 0;
-
-        while ($reconnect--)
-        {
-            $ssl = axtlsp::ssl_client_new($ssl_ctx, $native_sock, 
-                            $session_id, $sess_id_size);
-
-            $res = axtlsp::ssl_handshake_status($ssl);
-            if ($res != $axtlsp::SSL_OK)
-            {
-                axtlsp::ssl_display_error($res) if !$quiet;
-                axtlsp::ssl_free($ssl);
-                exit 1;
-            }
-
-            display_session_id($ssl);
-            $session_id = axtlsp::ssl_get_session_id($ssl);
-
-            if ($reconnect)
-            {
-                axtlsp::ssl_free($ssl);
-                $client_sock->close;
-                $client_sock = new IO::Socket::INET (
-                        PeerAddr => $host, PeerPort => $port, Proto => 'tcp')
-                    || die ("no socket: $!");
-
-            }
-        }
-    }
-    else
-    {
-        $ssl = axtlsp::ssl_client_new($ssl_ctx, $native_sock, undef, 0);
-    }
-
-    # check the return status
-    $res = axtlsp::ssl_handshake_status($ssl);
-    if ($res != $axtlsp::SSL_OK)
-    {
-        axtlsp::ssl_display_error($res) if not $quiet;
-        exit 1;
-    }
-
-    if (!$quiet)
-    {
-        my $common_name = axtlsp::ssl_get_cert_dn($ssl, 
-                    $axtlsp::SSL_X509_CERT_COMMON_NAME);
-
-        printf("Common Name:\t\t\t%s\n", $common_name) if defined $common_name;
-        display_session_id($ssl);
-        display_cipher($ssl);
-    }
-
-    while (<STDIN>)
-    {
-        my $cstring = pack("a*x", $_);   # add null terminator
-        $res = axtlsp::ssl_write($ssl, \$cstring, length($cstring));
-        if ($res < $axtlsp::SSL_OK)
-        {
-            axtlsp::ssl_display_error($res) if not $quiet;
-            last;
-        }
-    }
-
-    axtlsp::ssl_ctx_free($ssl_ctx);
-    $client_sock->close;
-}
-
-#
-# We've had some sort of command-line error. Print out the basic options.
-#
-sub print_options
-{
-    my ($option) = @_;
-    printf("axssl: Error: '%s' is an invalid command.\n", $option);
-    printf("usage: axssl [s_server|s_client|version] [args ...]\n");
-    exit 1;
-}
-
-#
-# We've had some sort of command-line error. Print out the server options.
-#
-sub print_server_options
-{
-    my ($build_mode, $option) = @_;
-    my $cert_size = axtlsp::ssl_get_config($axtlsp::SSL_MAX_CERT_CFG_OFFSET);
-    my $ca_cert_size = axtlsp::ssl_get_config(
-            $axtlsp::SSL_MAX_CA_CERT_CFG_OFFSET);
-
-    printf("unknown option %s\n", $option);
-    printf("usage: s_server [args ...]\n");
-    printf(" -accept arg\t- port to accept on (default is 4433)\n");
-    printf(" -quiet\t\t- No server output\n");
-
-    if ($build_mode >= $axtlsp::SSL_BUILD_SERVER_ONLY)
-    {
-        printf(" -cert arg\t- certificate file to add (in addition to default)".
-                                        " to chain -\n".
-          "\t\t  Can repeat up to %d times\n", $cert_size);
-        printf(" -key arg\t- Private key file to use - default DER format\n");
-        printf(" -pass\t\t- private key file pass phrase source\n");
-    }
-
-    if ($build_mode >= $axtlsp::SSL_BUILD_ENABLE_VERIFICATION)
-    {
-        printf(" -verify\t- turn on peer certificate verification\n");
-        printf(" -CAfile arg\t- Certificate authority - default DER format\n");
-        printf("\t\t  Can repeat up to %d times\n", $ca_cert_size);
-    }
-
-    if ($build_mode == $axtlsp::SSL_BUILD_FULL_MODE)
-    {
-        printf(" -debug\t\t- Print more output\n");
-        printf(" -state\t\t- Show state messages\n");
-        printf(" -show-rsa\t- Show RSA state\n");
-    }
-
-    exit 1;
-}
-
-#
-# We've had some sort of command-line error. Print out the client options.
-#
-sub print_client_options
-{
-    my ($build_mode, $option) = @_;
-    my $cert_size = axtlsp::ssl_get_config($axtlsp::SSL_MAX_CERT_CFG_OFFSET);
-    my $ca_cert_size = axtlsp::ssl_get_config(
-            $axtlsp::SSL_MAX_CA_CERT_CFG_OFFSET);
-
-    printf("unknown option %s\n", $option);
-
-    if ($build_mode >= $axtlsp::SSL_BUILD_ENABLE_CLIENT)
-    {
-        printf("usage: s_client [args ...]\n");
-        printf(" -connect host:port - who to connect to (default ".
-                "is localhost:4433)\n");
-        printf(" -verify\t- turn on peer certificate verification\n");
-        printf(" -cert arg\t- certificate file to use - default DER format\n");
-        printf(" -key arg\t- Private key file to use - default DER format\n");
-        printf("\t\t  Can repeat up to %d times\n", $cert_size);
-        printf(" -CAfile arg\t- Certificate authority - default DER format\n");
-        printf("\t\t  Can repeat up to %d times\n", $ca_cert_size);
-        printf(" -quiet\t\t- No client output\n");
-        printf(" -pass\t\t- private key file pass phrase source\n");
-        printf(" -reconnect\t- Drop and re-make the connection ".
-                "with the same Session-ID\n");
-
-        if ($build_mode == $axtlsp::SSL_BUILD_FULL_MODE)
-        {
-            printf(" -debug\t\t- Print more output\n");
-            printf(" -state\t\t- Show state messages\n");
-            printf(" -show-rsa\t- Show RSA state\n");
-        }
-    }
-    else
-    {
-        printf("Change configuration to allow this feature\n");
-    }
-
-    exit 1;
-}
-
-#
-# Display what cipher we are using 
-#
-sub display_cipher
-{
-    my ($ssl) = @_;
-    printf("CIPHER is ");
-    my $cipher_id = axtlsp::ssl_get_cipher_id($ssl);
-
-    if ($cipher_id == $axtlsp::SSL_AES128_SHA)
-    {
-        printf("AES128-SHA");
-    }
-    elsif ($cipher_id == $axtlsp::SSL_AES256_SHA)
-    {
-        printf("AES256-SHA");
-    }
-    elsif ($axtlsp::SSL_RC4_128_SHA)
-    {
-        printf("RC4-SHA");
-    }
-    elsif ($axtlsp::SSL_RC4_128_MD5)
-    {
-        printf("RC4-MD5");
-    }
-    else 
-    {
-        printf("Unknown - %d", $cipher_id);
-    }
-
-    printf("\n");
-}
-
-#
-# Display what session id we have.
-#
-sub display_session_id
-{    
-    my ($ssl) = @_;
-    my $session_id = axtlsp::ssl_get_session_id($ssl);
-    if (length($$session_id) > 0)
-    {
-        printf("-----BEGIN SSL SESSION PARAMETERS-----\n");
-        printf(unpack("H*", $$session_id));
-        printf("\n-----END SSL SESSION PARAMETERS-----\n");
-    }
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/vbnet/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/samples/vbnet/Makefile
deleted file mode 100644 (file)
index 0984d4e..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-include ../../config/.config
-include ../../config/makefile.conf
-include ../../config/makefile.dotnet.conf
-
-# only build on Win32 platforms
-ifdef GO_DOT_NET
-all : sample
-TARGET=../../$(STAGE)/axssl.vbnet.exe
-sample : $(TARGET)
-
-$(TARGET): ../../bindings/vbnet/axTLSvb.vb ../../bindings/vbnet/axInterface.vb axssl.vb
-       vbc.exe /r:"`cygpath -w "$(CONFIG_DOT_NET_FRAMEWORK_BASE)/System.dll"`" /nologo /t:exe /out:"`cygpath -w $@`" $(foreach file, $^, "`cygpath -w $(file)`")
-
-endif   # ARCH
-
-clean::
-       -@rm -f $(TARGET)
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/samples/vbnet/axssl.vb b/package/luci/libs/luci-lib-nixio/axTLS/samples/vbnet/axssl.vb
deleted file mode 100644 (file)
index 1b423c8..0000000
+++ /dev/null
@@ -1,702 +0,0 @@
-'
-' Copyright (c) 2007, Cameron Rich
-'
-' All rights reserved.
-'
-' Redistribution and use in source and binary forms, with or without
-' modification, are permitted provided that the following conditions are met:
-'
-' * Redistributions of source code must retain the above copyright notice,
-'   this list of conditions and the following disclaimer.
-' * Redistributions in binary form must reproduce the above copyright
-'   notice, this list of conditions and the following disclaimer in the
-'   documentation and/or other materials provided with the distribution.
-' * Neither the name of the axTLS project nor the names of its
-'   contributors may be used to endorse or promote products derived
-'   from this software without specific prior written permission.
-'
-' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-' "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-' LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-' A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-' CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-' SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-' TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-' DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-' OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-' NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-' THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-'
-
-'
-' Demonstrate the use of the axTLS library in VB.NET with a set of 
-' command-line parameters similar to openssl. In fact, openssl clients 
-' should be able to communicate with axTLS servers and visa-versa.
-'
-' This code has various bits enabled depending on the configuration. To enable
-' the most interesting version, compile with the 'full mode' enabled.
-'
-' To see what options you have, run the following:
-' > axssl.vbnet.exe s_server -?
-' > axssl.vbnet.exe s_client -?
-'
-' The axtls shared library must be in the same directory or be found 
-' by the OS.
-'
-
-Imports System
-Imports System.Net
-Imports System.Net.Sockets
-Imports Microsoft.VisualBasic
-Imports axTLSvb
-
-Public Class axssl
-    ' 
-    ' do_server()
-    '
-    Public Sub do_server(ByVal build_mode As Integer, _
-                                        ByVal args() As String)
-        Dim i As Integer = 1
-        Dim port As Integer = 4433
-        Dim options As Integer = axtls.SSL_DISPLAY_CERTS
-        Dim quiet As Boolean = False
-        Dim password As String = Nothing
-        Dim private_key_file As String = Nothing
-
-        ' organise the cert/ca_cert lists 
-        Dim cert_size As Integer = SSLUtil.MaxCerts()
-        Dim ca_cert_size As Integer = SSLUtil.MaxCACerts()
-        Dim cert(cert_size) As String
-        Dim ca_cert(ca_cert_size) As String
-        Dim cert_index As Integer = 0
-        Dim ca_cert_index As Integer = 0
-
-        While i < args.Length
-            If args(i) = "-accept" Then
-                If i >= args.Length-1
-                    print_server_options(build_mode, args(i))
-                End If
-
-                i += 1
-                port = Int32.Parse(args(i))
-            ElseIf args(i) = "-quiet"
-                quiet = True
-                options = options And Not axtls.SSL_DISPLAY_CERTS
-            ElseIf build_mode >= axtls.SSL_BUILD_SERVER_ONLY
-                If args(i) = "-cert"
-                    If i >= args.Length-1 Or cert_index >= cert_size
-                        print_server_options(build_mode, args(i))
-                    End If
-
-                    i += 1
-                    cert(cert_index) = args(i)
-                    cert_index += 1
-                ElseIf args(i) = "-key"
-                    If i >= args.Length-1
-                        print_server_options(build_mode, args(i))
-                    End If
-
-                    i += 1
-                    private_key_file = args(i)
-                    options = options Or axtls.SSL_NO_DEFAULT_KEY
-                ElseIf args(i) = "-pass"
-                    If i >= args.Length-1
-                        print_server_options(build_mode, args(i))
-                    End If
-
-                    i += 1
-                    password = args(i)
-                ElseIf build_mode >= axtls.SSL_BUILD_ENABLE_VERIFICATION
-                    If args(i) = "-verify" Then
-                        options = options Or axtls.SSL_CLIENT_AUTHENTICATION
-                    ElseIf args(i) = "-CAfile"
-                        If i >= args.Length-1 Or _
-                                    ca_cert_index >= ca_cert_size Then
-                            print_server_options(build_mode, args(i))
-                        End If
-
-                        i += 1
-                        ca_cert(ca_cert_index) = args(i)
-                        ca_cert_index += 1
-                    ElseIf build_mode = axtls.SSL_BUILD_FULL_MODE
-                        If args(i) = "-debug" Then
-                            options = options Or axtls.SSL_DISPLAY_BYTES
-                        ElseIf args(i) = "-state"
-                            options = options Or axtls.SSL_DISPLAY_STATES
-                        ElseIf args(i) = "-show-rsa"
-                            options = options Or axtls.SSL_DISPLAY_RSA
-                        Else
-                            print_server_options(build_mode, args(i))
-                        End If
-                    Else
-                        print_server_options(build_mode, args(i))
-                    End If
-                Else
-                    print_server_options(build_mode, args(i))
-                End If
-            End If
-
-            i += 1
-        End While
-
-        ' Create socket for incoming connections
-        Dim ep As IPEndPoint = New IPEndPoint(IPAddress.Any, port)
-        Dim server_sock As TcpListener = New TcpListener(ep)
-        server_sock.Start()      
-
-        '*********************************************************************
-        ' This is where the interesting stuff happens. Up until now we've
-        ' just been setting up sockets etc. Now we do the SSL handshake.
-        '*********************************************************************/
-        Dim ssl_ctx As SSLServer = New SSLServer(options, _
-                axtls.SSL_DEFAULT_SVR_SESS)
-
-        If ssl_ctx Is Nothing Then
-            Console.Error.WriteLine("Error: Server context is invalid")
-            Environment.Exit(1)
-        End If
-
-        If private_key_file <> Nothing Then
-            Dim obj_type As Integer = axtls.SSL_OBJ_RSA_KEY
-
-            If private_key_file.EndsWith(".p8") Then
-                obj_type = axtls.SSL_OBJ_PKCS8
-            Else If (private_key_file.EndsWith(".p12"))
-                obj_type = axtls.SSL_OBJ_PKCS12
-            End If
-
-            If ssl_ctx.ObjLoad(obj_type, private_key_file, _
-                                            password) <> axtls.SSL_OK Then
-                Console.Error.WriteLine("Error: Private key '" & _
-                        private_key_file & "' is undefined.")
-                Environment.Exit(1)
-            End If
-        End If
-
-        For i = 0 To cert_index-1
-            If ssl_ctx.ObjLoad(axtls.SSL_OBJ_X509_CERT, _
-                            cert(i), Nothing) <> axtls.SSL_OK Then
-                Console.WriteLine("Certificate '" & cert(i) & _
-                        "' is undefined.")
-                Environment.Exit(1)
-            End If
-        Next
-
-        For i = 0 To ca_cert_index-1
-            If ssl_ctx.ObjLoad(axtls.SSL_OBJ_X509_CACERT, _
-                            ca_cert(i), Nothing) <> axtls.SSL_OK Then
-                Console.WriteLine("Certificate '" & ca_cert(i) & _
-                        "' is undefined.")
-                Environment.Exit(1)
-            End If
-        Next
-
-        Dim buf As Byte() = Nothing
-        Dim res As Integer
-        Dim ssl As SSL
-
-        While 1
-            If Not quiet Then
-                Console.WriteLine("ACCEPT")
-            End If
-
-            Dim client_sock As Socket = server_sock.AcceptSocket()
-
-            ssl = ssl_ctx.Connect(client_sock)
-
-            ' do the actual SSL handshake 
-            While 1
-                res = ssl_ctx.Read(ssl, buf)
-                If  res <> axtls.SSL_OK Then
-                    Exit While
-                End If
-
-                ' check when the connection has been established 
-                If ssl.HandshakeStatus() = axtls.SSL_OK
-                    Exit While
-                End If
-
-                ' could do something else here 
-            End While
-
-            If res = axtls.SSL_OK Then  ' connection established and ok
-                If Not quiet
-                    display_session_id(ssl)
-                    display_cipher(ssl)
-                End If
-
-                ' now read (and display) whatever the client sends us
-                While 1
-                    ' keep reading until we get something interesting 
-                    While 1
-                        res = ssl_ctx.Read(ssl, buf)
-                        If res <> axtls.SSL_OK Then
-                            Exit While
-                        End If
-
-                        ' could do something else here
-                    End While
-
-                    If res < axtls.SSL_OK
-                        If Not quiet
-                            Console.WriteLine("CONNECTION CLOSED")
-                        End If
-
-                        Exit While
-                    End If
-
-                    ' convert to String 
-                    Dim str(res) As Char
-                    For i = 0 To res-1
-                        str(i) = Chr(buf(i))
-                    Next
-
-                    Console.Write(str)
-                End While
-            ElseIf Not quiet
-                SSLUtil.DisplayError(res)
-            End If
-
-            ' client was disconnected or the handshake failed. */
-            ssl.Dispose()
-            client_sock.Close()
-        End While
-
-        ssl_ctx.Dispose()
-    End Sub
-
-    ' 
-    ' do_client()
-    '
-    Public Sub do_client(ByVal build_mode As Integer, _
-                                    ByVal args() As String)
-
-        If build_mode < axtls.SSL_BUILD_ENABLE_CLIENT Then
-            print_client_options(build_mode, args(1))
-        End If
-
-        Dim i As Integer = 1
-        Dim res As Integer
-        Dim port As Integer = 4433
-        Dim quiet As Boolean = False
-        Dim password As String = Nothing
-        Dim reconnect As Integer = 0
-        Dim private_key_file As String = Nothing
-        Dim hostname As String = "127.0.0.1"
-
-        ' organise the cert/ca_cert lists
-        Dim ssl As SSL = Nothing
-        Dim cert_size As Integer = SSLUtil.MaxCerts()
-        Dim ca_cert_size As Integer = SSLUtil.MaxCACerts()
-        Dim cert(cert_size) As String
-        Dim ca_cert(ca_cert_size) As String
-        Dim cert_index As Integer = 0
-        Dim ca_cert_index As Integer = 0
-
-        Dim options As Integer = _
-                    axtls.SSL_SERVER_VERIFY_LATER Or axtls.SSL_DISPLAY_CERTS
-        Dim session_id As Byte() = Nothing
-
-        While i < args.Length
-            If args(i) = "-connect" Then
-                Dim host_port As String
-
-                If i >= args.Length-1
-                    print_client_options(build_mode, args(i))
-                End If
-
-                i += 1
-                host_port = args(i)
-
-                Dim index_colon As Integer = host_port.IndexOf(":"C)
-                If index_colon < 0 Then 
-                    print_client_options(build_mode, args(i))
-                End If
-
-                hostname = New String(host_port.ToCharArray(), _
-                        0, index_colon)
-                port = Int32.Parse(New String(host_port.ToCharArray(), _
-                            index_colon+1, host_port.Length-index_colon-1))
-            ElseIf args(i) = "-cert"
-                If i >= args.Length-1 Or cert_index >= cert_size Then
-                    print_client_options(build_mode, args(i))
-                End If
-
-                i += 1
-                cert(cert_index) = args(i)
-                cert_index += 1
-            ElseIf args(i) = "-key"
-                If i >= args.Length-1
-                    print_client_options(build_mode, args(i))
-                End If
-
-                i += 1
-                private_key_file = args(i)
-                options = options Or axtls.SSL_NO_DEFAULT_KEY
-            ElseIf args(i) = "-CAfile"
-                If i >= args.Length-1 Or ca_cert_index >= ca_cert_size
-                    print_client_options(build_mode, args(i))
-                End If
-
-                i += 1
-                ca_cert(ca_cert_index) = args(i)
-                ca_cert_index += 1
-            ElseIf args(i) = "-verify"
-                options = options And Not axtls.SSL_SERVER_VERIFY_LATER
-            ElseIf args(i) = "-reconnect"
-                reconnect = 4
-            ElseIf args(i) = "-quiet"
-                quiet = True
-                options = options And  Not axtls.SSL_DISPLAY_CERTS
-            ElseIf args(i) = "-pass"
-                If i >= args.Length-1
-                    print_client_options(build_mode, args(i))
-                End If
-
-                i += 1
-                password = args(i)
-            ElseIf build_mode = axtls.SSL_BUILD_FULL_MODE
-                If args(i) = "-debug" Then
-                    options = options Or axtls.SSL_DISPLAY_BYTES
-                ElseIf args(i) = "-state"
-                    options = options Or axtls.SSL_DISPLAY_STATES
-                ElseIf args(i) = "-show-rsa"
-                    options = options Or axtls.SSL_DISPLAY_RSA
-                Else
-                    print_client_options(build_mode, args(i))
-                End If
-            Else    ' don't know what this is 
-                print_client_options(build_mode, args(i))
-            End If
-
-            i += 1
-        End While
-
-        'Dim hostInfo As IPHostEntry = Dns.Resolve(hostname)
-        Dim hostInfo As IPHostEntry = Dns.GetHostEntry(hostname)
-        Dim  addresses As IPAddress() = hostInfo.AddressList
-        Dim ep As IPEndPoint = New IPEndPoint(addresses(0), port) 
-        Dim client_sock As Socket = New Socket(AddressFamily.InterNetwork, _
-                SocketType.Stream, ProtocolType.Tcp)
-        client_sock.Connect(ep)
-
-        If Not client_sock.Connected Then
-            Console.WriteLine("could not connect")
-            Environment.Exit(1)
-        End If
-
-        If Not quiet Then
-            Console.WriteLine("CONNECTED")
-        End If
-
-        '*********************************************************************
-        ' This is where the interesting stuff happens. Up until now we've
-        ' just been setting up sockets etc. Now we do the SSL handshake.
-        '*********************************************************************/
-        Dim ssl_ctx As SSLClient = New SSLClient(options, _
-                axtls.SSL_DEFAULT_CLNT_SESS)
-
-        If ssl_ctx Is Nothing Then
-            Console.Error.WriteLine("Error: Client context is invalid")
-            Environment.Exit(1)
-        End If
-
-        If private_key_file <> Nothing Then
-            Dim obj_type As Integer = axtls.SSL_OBJ_RSA_KEY
-
-            If private_key_file.EndsWith(".p8") Then
-                obj_type = axtls.SSL_OBJ_PKCS8
-            Else If (private_key_file.EndsWith(".p12"))
-                obj_type = axtls.SSL_OBJ_PKCS12
-            End If
-
-            If ssl_ctx.ObjLoad(obj_type, private_key_file, _
-                                            password) <> axtls.SSL_OK Then
-                Console.Error.WriteLine("Error: Private key '" & _
-                        private_key_file & "' is undefined.")
-                Environment.Exit(1)
-            End If
-        End If
-
-        For i = 0 To cert_index-1
-            If ssl_ctx.ObjLoad(axtls.SSL_OBJ_X509_CERT, _
-                            cert(i), Nothing) <> axtls.SSL_OK Then
-                Console.WriteLine("Certificate '" & cert(i) & _
-                        "' is undefined.")
-                Environment.Exit(1)
-            End If
-        Next
-
-        For i = 0 To ca_cert_index-1
-            If ssl_ctx.ObjLoad(axtls.SSL_OBJ_X509_CACERT, _
-                            ca_cert(i), Nothing) <> axtls.SSL_OK Then
-                Console.WriteLine("Certificate '" & ca_cert(i) & _
-                        "' is undefined.")
-                Environment.Exit(1)
-            End If
-        Next
-
-        ' Try session resumption?
-        If reconnect > 0 Then
-            While reconnect > 0
-                reconnect -= 1
-                ssl = ssl_ctx.Connect(client_sock, session_id)
-
-                res = ssl.HandshakeStatus()
-                If res <> axtls.SSL_OK Then
-                    If Not quiet Then
-                        SSLUtil.DisplayError(res)
-                    End If
-
-                    ssl.Dispose()
-                    Environment.Exit(1)
-                End If
-
-                display_session_id(ssl)
-                session_id = ssl.GetSessionId()
-
-                If reconnect > 0 Then
-                    ssl.Dispose()
-                    client_sock.Close()
-                    
-                    ' and reconnect
-                    client_sock = New Socket(AddressFamily.InterNetwork, _
-                        SocketType.Stream, ProtocolType.Tcp)
-                    client_sock.Connect(ep)
-                End If
-            End While
-        Else
-            ssl = ssl_ctx.Connect(client_sock, Nothing)
-        End If
-
-        ' check the return status 
-        res = ssl.HandshakeStatus()
-        If res <> axtls.SSL_OK Then
-            If Not quiet Then
-                SSLUtil.DisplayError(res)
-            End If
-
-            Environment.Exit(1)
-        End If
-
-        If Not quiet Then
-            Dim common_name As String = _
-                ssl.GetCertificateDN(axtls.SSL_X509_CERT_COMMON_NAME)
-
-            If common_name <> Nothing
-                Console.WriteLine("Common Name:" & _
-                        ControlChars.Tab & ControlChars.Tab & _
-                        ControlChars.Tab & common_name)
-            End If
-
-            display_session_id(ssl)
-            display_cipher(ssl)
-        End If
-
-        While (1)
-            Dim user_input As String = Console.ReadLine()
-
-            If user_input = Nothing Then
-                Exit While
-            End If
-
-            Dim buf(user_input.Length+1) As Byte
-            buf(buf.Length-2) = Asc(ControlChars.Lf) ' add the carriage return
-            buf(buf.Length-1) = 0                    ' null terminate 
-
-            For i = 0 To user_input.Length-1
-                buf(i) = Asc(user_input.Chars(i))
-            Next
-
-            res = ssl_ctx.Write(ssl, buf, buf.Length)
-            If res < axtls.SSL_OK Then
-                If Not quiet Then
-                    SSLUtil.DisplayError(res)
-                End If
-
-                Exit While
-            End If
-        End While
-
-        ssl_ctx.Dispose()
-    End Sub
-
-    '
-    ' Display what cipher we are using
-    '
-    Private Sub display_cipher(ByVal ssl As SSL)
-        Console.Write("CIPHER is ")
-
-        Select ssl.GetCipherId()
-            Case axtls.SSL_AES128_SHA
-                Console.WriteLine("AES128-SHA")
-
-            Case axtls.SSL_AES256_SHA
-                Console.WriteLine("AES256-SHA")
-
-            Case axtls.SSL_RC4_128_SHA
-                Console.WriteLine("RC4-SHA")
-
-            Case axtls.SSL_RC4_128_MD5
-                Console.WriteLine("RC4-MD5")
-
-            Case Else
-                Console.WriteLine("Unknown - " & ssl.GetCipherId())
-        End Select
-    End Sub
-
-    '
-    ' Display what session id we have.
-    '
-    Private Sub display_session_id(ByVal ssl As SSL)
-        Dim session_id As Byte() = ssl.GetSessionId()
-
-        If session_id.Length > 0 Then
-            Console.WriteLine("-----BEGIN SSL SESSION PARAMETERS-----")
-            Dim b As Byte
-            For Each b In session_id
-                Console.Write("{0:x02}", b)
-            Next
-
-            Console.WriteLine()
-            Console.WriteLine("-----END SSL SESSION PARAMETERS-----")
-        End If
-    End Sub
-
-    ' 
-    ' We've had some sort of command-line error. Print out the basic options.
-    '
-    Public Sub print_options(ByVal options As String)
-        Console.WriteLine("axssl: Error: '" & options & _
-                "' is an invalid command.")
-        Console.WriteLine("usage: axssl.vbnet [s_server|s_client|" & _
-                "version] [args ...]")
-        Environment.Exit(1)
-    End Sub
-
-    ' 
-    ' We've had some sort of command-line error. Print out the server options.
-    '
-    Private Sub print_server_options(ByVal build_mode As Integer, _
-                                    ByVal options As String)
-        Dim cert_size As Integer = SSLUtil.MaxCerts()
-        Dim ca_cert_size As Integer = SSLUtil.MaxCACerts()
-
-        Console.WriteLine("unknown option " & options)
-        Console.WriteLine("usage: s_server [args ...]")
-        Console.WriteLine(" -accept arg" & ControlChars.Tab & _
-                "- port to accept on (default is 4433)")
-        Console.WriteLine(" -quiet" & ControlChars.Tab & ControlChars.Tab & _
-                "- No server output")
-        If build_mode >= axtls.SSL_BUILD_SERVER_ONLY 
-            Console.WriteLine(" -cert arg" & ControlChars.Tab & _
-               "- certificate file to add (in addition to default) to chain -")
-            Console.WriteLine(ControlChars.Tab & ControlChars.Tab & _
-                    "  Can repeat up to " & cert_size & " times")
-            Console.WriteLine(" -key arg" & ControlChars.Tab & _
-                        "- Private key file to use")
-            Console.WriteLine(" -pass" & ControlChars.Tab & ControlChars.Tab & _
-                    "- private key file pass phrase source")
-        End If
-
-        If build_mode >= axtls.SSL_BUILD_ENABLE_VERIFICATION
-            Console.WriteLine(" -verify" & ControlChars.Tab & _
-                    "- turn on peer certificate verification")
-            Console.WriteLine(" -CAfile arg" & ControlChars.Tab & _
-                    "- Certificate authority")
-            Console.WriteLine(ControlChars.Tab & ControlChars.Tab & _
-                    "  Can repeat up to " & ca_cert_size & " times")
-        End If
-
-        If build_mode = axtls.SSL_BUILD_FULL_MODE
-            Console.WriteLine(" -debug" & _
-                    ControlChars.Tab & ControlChars.Tab & _
-                    "- Print more output")
-            Console.WriteLine(" -state" & _
-                    ControlChars.Tab & ControlChars.Tab & _
-                    "- Show state messages")
-            Console.WriteLine(" -show-rsa" & _
-                    ControlChars.Tab & "- Show RSA state")
-        End If
-
-        Environment.Exit(1)
-    End Sub
-
-    '
-    ' We've had some sort of command-line error. Print out the client options.
-    '
-    Private Sub print_client_options(ByVal build_mode As Integer, _
-                                                ByVal options As String)
-        Dim cert_size As Integer = SSLUtil.MaxCerts()
-        Dim ca_cert_size As Integer = SSLUtil.MaxCACerts()
-
-        Console.WriteLine("unknown option " & options)
-
-        If build_mode >= axtls.SSL_BUILD_ENABLE_CLIENT Then
-            Console.WriteLine("usage: s_client [args ...]")
-            Console.WriteLine(" -connect host:port - who to connect to " & _
-                    "(default is localhost:4433)")
-            Console.WriteLine(" -verify" & ControlChars.Tab & _
-                    "- turn on peer certificate verification")
-            Console.WriteLine(" -cert arg" & ControlChars.Tab & _
-                    "- certificate file to use")
-            Console.WriteLine(ControlChars.Tab & ControlChars.Tab & _
-                    "  Can repeat up to " & cert_size & " times")
-            Console.WriteLine(" -key arg" & ControlChars.Tab & _
-                    "- Private key file to use")
-            Console.WriteLine(" -CAfile arg" & ControlChars.Tab & _
-                    "- Certificate authority")
-            Console.WriteLine(ControlChars.Tab & ControlChars.Tab & _
-                    "  Can repeat up to " & ca_cert_size & " times")
-            Console.WriteLine(" -quiet" & _
-                    ControlChars.Tab & ControlChars.Tab & "- No client output")
-            Console.WriteLine(" -pass" & ControlChars.Tab & _
-                    ControlChars.Tab & _
-                    "- private key file pass phrase source")
-            Console.WriteLine(" -reconnect" & ControlChars.Tab & _
-                    "- Drop and re-make the " & _
-                    "connection with the same Session-ID")
-
-            If build_mode = axtls.SSL_BUILD_FULL_MODE Then
-                Console.WriteLine(" -debug" & _
-                        ControlChars.Tab & ControlChars.Tab & _
-                        "- Print more output")
-                Console.WriteLine(" -state" & _
-                        ControlChars.Tab & ControlChars.Tab & _
-                        "- Show state messages")
-                Console.WriteLine(" -show-rsa" & ControlChars.Tab & _
-                        "- Show RSA state")
-            End If
-        Else 
-            Console.WriteLine("Change configuration to allow this feature")
-        End If
-
-        Environment.Exit(1)
-    End Sub
-
-End Class
-
-Public Module MyMain
-    Function Main(ByVal args() As String) As Integer
-        Dim runner As axssl = New axssl()
-
-        If args.Length = 1 And args(0) = "version" Then
-           Console.WriteLine("axssl.vbnet " & SSLUtil.Version())
-            Environment.Exit(0)
-        End If
-
-        If args.Length < 1 
-            runner.print_options("")
-        ElseIf args(0) <> "s_server" And args(0) <> "s_client"
-            runner.print_options(args(0))
-        End If
-
-        Dim build_mode As Integer = SSLUtil.BuildMode()
-
-        If args(0) = "s_server" Then
-            runner.do_server(build_mode, args)
-        Else
-            runner.do_client(build_mode, args)
-        End If
-    End Function
-End Module
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/BigIntConfig.in b/package/luci/libs/luci-lib-nixio/axTLS/ssl/BigIntConfig.in
deleted file mode 100644 (file)
index 04c7438..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see scripts/config/Kconfig-language.txt
-#
-
-menu "BigInt Options"
-    depends on !CONFIG_SSL_SKELETON_MODE
-
-choice
-    prompt "Reduction Algorithm"
-    default CONFIG_BIGINT_BARRETT 
-
-config CONFIG_BIGINT_CLASSICAL
-    bool "Classical"
-    help
-        Classical uses standard division. It has no limitations and is
-        theoretically the slowest due to the divisions used. For this particular
-        implementation it is surprisingly quite fast.
-
-config CONFIG_BIGINT_MONTGOMERY
-    bool "Montgomery"
-    help
-        Montgomery uses simple addition and multiplication to achieve its
-        performance. In this implementation it is slower than classical, 
-        and it has the limitation that 0 <= x, y < m, and so is not used 
-        when CRT is active.
-
-        This option will not be normally selected.
-
-config CONFIG_BIGINT_BARRETT
-    bool "Barrett"
-    help
-        Barrett performs expensive precomputation before reduction and partial
-        multiplies for computational speed. It can't be used with some of the
-        calculations when CRT is used, and so defaults to classical when this
-        occurs.
-
-        It is about 40% faster than Classical/Montgomery with the expense of
-        about 2kB, and so this option is normally selected.
-
-endchoice
-
-config CONFIG_BIGINT_CRT
-    bool "Chinese Remainder Theorem (CRT)"
-    default y
-    help 
-        Allow the Chinese Remainder Theorem (CRT) to be used.
-
-        Uses a number of extra coefficients from the private key to improve the
-        performance of a decryption. This feature is one of the most 
-        significant performance improvements (it reduces a decryption time by 
-        over 3 times).
-
-        This option should be selected.
-
-config CONFIG_BIGINT_KARATSUBA
-    bool "Karatsuba Multiplication"
-    default n
-    help
-        Allow Karasuba multiplication to be used.
-        Uses 3 multiplications (plus a number of additions/subtractions) 
-        instead of 4. Multiplications are O(N^2) but addition/subtraction 
-        is O(N) hence for large numbers is beneficial. For this project, the 
-        effect was only useful for 4096 bit keys. As these aren't likely to 
-        be used, the feature is disabled by default. 
-        
-        It costs about 2kB to enable it.
-
-config MUL_KARATSUBA_THRESH
-    int "Karatsuba Multiplication Theshold"
-    default 20
-    depends on CONFIG_BIGINT_KARATSUBA
-    help
-        The minimum number of components needed before Karasuba muliplication
-        is used.
-        This is very dependent on the speed/implementation of bi_add()/
-        bi_subtract(). There is a bit of trial and error here and will be
-        at a different point for different architectures.
-
-config SQU_KARATSUBA_THRESH
-    int "Karatsuba Square Threshold"
-    default 40
-    depends on CONFIG_BIGINT_KARATSUBA && CONFIG_BIGINT_SQUARE
-    help    
-        The minimum number of components needed before Karatsuba squaring
-        is used.
-        This is very dependent on the speed/implementation of bi_add()/
-        bi_subtract(). There is a bit of trial and error here and will be
-        at a different point for different architectures.
-
-config CONFIG_BIGINT_SLIDING_WINDOW
-    bool "Sliding Window Exponentiation"
-    default y
-    help
-        Allow Sliding-Window Exponentiation to be used.
-        Potentially processes more than 1 bit at a time when doing 
-        exponentiation. The sliding-window technique reduces the number of 
-        precomputations compared to other precomputed techniques.
-
-        It results in a considerable performance improvement with it enabled
-        (it halves the decryption time) and so should be selected.
-
-config CONFIG_BIGINT_SQUARE
-    bool "Square Algorithm"
-    default y
-    help
-        Allow squaring to be used instead of a multiplication.
-        Squaring is theoretically 50% faster than a standard multiply 
-        (but is actually about 25% faster). 
-
-        It gives a 20% speed improvement and so should be selected.
-
-config CONFIG_BIGINT_CHECK_ON
-    bool "BigInt Integrity Checking"
-    default n if !CONFIG_DEBUG
-    default y if CONFIG_DEBUG
-    help
-        This is used when developing bigint algorithms. It performs a sanity
-        check on all operations at the expense of speed.
-        
-        This option is only selected when developing and should normally be
-        turned off.
-
-endmenu
-
-
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/Config.in b/package/luci/libs/luci-lib-nixio/axTLS/ssl/Config.in
deleted file mode 100644 (file)
index d047d42..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see scripts/config/Kconfig-language.txt
-#
-
-menu "SSL Library"
-
-choice
-    prompt "Mode"
-    default CONFIG_SSL_FULL_MODE
-
-config CONFIG_SSL_SERVER_ONLY
-    bool "Server only - no verification"
-    help
-        Enable server functionality (no client functionality). 
-        This mode still supports sessions and chaining (which can be turned
-        off in configuration).
-
-        The axssl sample runs with the minimum of features.
-                
-        This is the most space efficient of the modes with the library 
-        about 45kB in size. Use this mode if you are doing standard SSL server
-        work.
-
-config CONFIG_SSL_CERT_VERIFICATION
-    bool "Server only - with verification"
-    help
-        Enable server functionality with client authentication (no client
-        functionality). 
-
-        The axssl sample runs with the "-verify" and "-CAfile" options.
-
-        This mode produces a library about 49kB in size. Use this mode if you
-        have an SSL server which requires client authentication (which is 
-        uncommon in browser applications).
-
-config CONFIG_SSL_ENABLE_CLIENT
-    bool "Client/Server enabled"
-    help
-        Enable client/server functionality (including peer authentication).
-
-        The axssl sample runs with the "s_client" option enabled.
-
-        This mode produces a library about 51kB in size. Use this mode if you
-        require axTLS to use SSL client functionality (the SSL server code
-        is always enabled).
-
-config CONFIG_SSL_FULL_MODE
-    bool "Client/Server enabled with diagnostics"
-    help
-        Enable client/server functionality including diagnostics. Most of the
-        extra size in this mode is due to the storage of various strings that
-        are used.
-
-        The axssl sample has 3 more options, "-debug", "-state" and "-show-rsa"
-
-        This mode produces a library about 58kB in size. It is suggested that 
-        this mode is used only during development, or systems that have more
-        generous memory limits.
-
-        It is the default to demonstrate the features of axTLS.
-
-config CONFIG_SSL_SKELETON_MODE
-    bool "Skeleton mode - the smallest server mode"
-    help
-        This is an experiment to build the smallest library at the expense of
-        features and speed.
-
-        * Server mode only.
-        * The AES cipher is disabled.
-        * No session resumption.
-        * No external keys/certificates are supported.
-        * The bigint library has most of the performance features disabled.
-        * Some other features/API calls may not work.
-
-        This mode produces a library about 37kB in size. The main
-        disadvantage of this mode is speed - it will be much slower than the 
-        other build modes.
-
-endchoice
-
-choice
-    prompt "Protocol Preference"
-    depends on !CONFIG_SSL_SKELETON_MODE
-    default CONFIG_SSL_PROT_MEDIUM
-
-config CONFIG_SSL_PROT_LOW
-    bool "Low"
-    help
-        Chooses the cipher in the order of RC4-SHA, AES128-SHA, AES256-SHA.
-      
-        This will use the fastest cipher(s) but at the expense of security.
-
-config CONFIG_SSL_PROT_MEDIUM
-    bool "Medium"
-    help
-        Chooses the cipher in the order of AES128-SHA, AES256-SHA, RC4-SHA.
-       
-        This mode is a balance between speed and security and is the default.
-
-config CONFIG_SSL_PROT_HIGH
-    bool "High"
-    help
-        Chooses the cipher in the order of AES256-SHA, AES128-SHA, RC4-SHA.
-        
-        This will use the strongest cipher(s) at the cost of speed.
-
-endchoice
-
-config CONFIG_SSL_USE_DEFAULT_KEY
-    bool "Enable default key"
-    depends on !CONFIG_SSL_SKELETON_MODE
-    default y 
-    help
-        Some applications will not require the default private key/certificate
-        that is built in. This is one way to save on a couple of kB's if an
-        external private key/certificate is used.
-
-        The private key is in ssl/private_key.h and the certificate is in
-        ssl/cert.h.
-
-        The advantage of a built-in private key/certificate is that no file
-        system is required for access. Both the certificate and the private
-        key will be automatically loaded on a ssl_ctx_new().
-        
-        However this private key/certificate can never be changed (without a
-        code update).
-
-        This mode is enabled by default. Disable this mode if the 
-        built-in key/certificate is not used.
-
-config CONFIG_SSL_PRIVATE_KEY_LOCATION
-    string "Private key file location"
-    depends on !CONFIG_SSL_USE_DEFAULT_KEY && !CONFIG_SSL_SKELETON_MODE
-    help
-        The file location of the private key which will be automatically
-        loaded on a ssl_ctx_new().
-
-config CONFIG_SSL_PRIVATE_KEY_PASSWORD
-    string "Private key password"
-    depends on !CONFIG_SSL_USE_DEFAULT_KEY && CONFIG_SSL_HAS_PEM
-    help
-        The password required to decrypt a PEM-encoded password file.
-
-config CONFIG_SSL_X509_CERT_LOCATION
-    string "X.509 certificate file location"
-    depends on !CONFIG_SSL_GENERATE_X509_CERT && !CONFIG_SSL_USE_DEFAULT_KEY && !CONFIG_SSL_SKELETON_MODE
-    help
-        The file location of the X.509 certificate which will be automatically
-        loaded on a ssl_ctx_new().
-
-config CONFIG_SSL_GENERATE_X509_CERT
-    bool "Generate X.509 Certificate"
-    default n
-    help
-        An X.509 certificate can be automatically generated on a
-        ssl_ctx_new(). A private key still needs to be provided (the private
-        key in ss/private_key.h will be used unless 
-        CONFIG_SSL_PRIVATE_KEY_LOCATION is set).
-
-        The certificate is generated on the fly, and so a minor start-up time
-        penalty is to be expected. This feature adds around 5kB to the
-        library.
-
-        This feature is disabled by default.
-
-config CONFIG_SSL_X509_COMMON_NAME
-    string "X.509 Common Name"
-    depends on CONFIG_SSL_GENERATE_X509_CERT
-    help
-        The common name for the X.509 certificate. This should be the fully 
-        qualified domain name (FQDN), e.g. www.foo.com.
-
-        If this is blank, then this will be value from gethostname() and
-        getdomainname().
-
-config CONFIG_SSL_X509_ORGANIZATION_NAME
-    string "X.509 Organization Name"
-    depends on CONFIG_SSL_GENERATE_X509_CERT
-    help
-        The organization name for the generated X.509 certificate. 
-
-        This field is optional.
-
-config CONFIG_SSL_X509_ORGANIZATION_UNIT_NAME
-    string "X.509 Organization Unit Name"
-    depends on CONFIG_SSL_GENERATE_X509_CERT
-    help
-        The organization unit name for the generated X.509 certificate. 
-
-        This field is optional.
-
-config CONFIG_SSL_ENABLE_V23_HANDSHAKE
-    bool "Enable v23 Handshake"
-    default y
-    help
-        Some browsers use the v23 handshake client hello message 
-        (an SSL2 format message which all SSL servers can understand). 
-        It may be used if SSL2 is enabled in the browser.
-
-        Since this feature takes a kB or so, this feature may be disabled - at
-        the risk of making it incompatible with some browsers (IE6 is ok,
-        Firefox 1.5 and below use it).
-
-        Disable if backwards compatibility is not an issue (i.e. the client is
-        always using TLS1.0)
-
-config CONFIG_SSL_HAS_PEM
-    bool "Enable PEM"
-    default n if !CONFIG_SSL_FULL_MODE
-    default y if CONFIG_SSL_FULL_MODE
-    depends on !CONFIG_SSL_SKELETON_MODE
-    help
-        Enable the use of PEM format for certificates and private keys.
-
-        PEM is not normally needed - PEM files can be converted into DER files
-        quite easily. However they have the convenience of allowing multiple
-        certificates/keys in the same file.
-        
-        This feature will add a couple of kB to the library. 
-
-        Disable if PEM is not used (which will be in most cases).
-
-config CONFIG_SSL_USE_PKCS12
-    bool "Use PKCS8/PKCS12"
-    default n if !CONFIG_SSL_FULL_MODE
-    default y if CONFIG_SSL_FULL_MODE
-    depends on !CONFIG_SSL_SERVER_ONLY && !CONFIG_SSL_SKELETON_MODE
-    help
-        PKCS#12 certificates combine private keys and certificates together in
-        one file.
-
-        PKCS#8 private keys are also suppported (as it is a subset of PKCS#12).
-
-        The decryption of these certificates uses RC4-128 (and these
-        certificates must be encrypted using this cipher). The actual
-        algorithm is "PBE-SHA1-RC4-128".
-
-        Disable if PKCS#12 is not used (which will be in most cases).
-
-config CONFIG_SSL_EXPIRY_TIME
-    int "Session expiry time (in hours)"
-    depends on !CONFIG_SSL_SKELETON_MODE
-    default 24 
-    help
-        The time (in hours) before a session expires. 
-        
-        A longer time means that the expensive parts of a handshake don't 
-        need to be run when a client reconnects later.
-
-        The default is 1 day.
-
-config CONFIG_X509_MAX_CA_CERTS
-    int "Maximum number of certificate authorites"
-    default 4
-    depends on !CONFIG_SSL_SERVER_ONLY && !CONFIG_SSL_SKELETON_MODE
-    help
-        Determines the number of CA's allowed. 
-
-        Increase this figure if more trusted sites are allowed. Each
-        certificate adds about 300 bytes (when added).
-
-        The default is to allow four certification authorities.
-
-config CONFIG_SSL_MAX_CERTS
-    int "Maximum number of chained certificates"
-    default 2
-    help
-        Determines the number of certificates used in a certificate
-        chain. The chain length must be at least 1.
-
-        Increase this figure if more certificates are to be added to the 
-        chain. Each certificate adds about 300 bytes (when added).
-
-        The default is to allow one certificate + 1 certificate in the chain
-        (which may be the certificate authority certificate).
-
-config CONFIG_SSL_CTX_MUTEXING
-    bool "Enable SSL_CTX mutexing"
-    default n
-    help
-        Normally mutexing is not required - each SSL_CTX object can deal with
-        many SSL objects (as long as each SSL_CTX object is using a single
-        thread).
-
-        If the SSL_CTX object is not thread safe e.g. the case where a 
-        new thread is created for each SSL object, then mutexing is required. 
-
-        Select y when a mutex on the SSL_CTX object is required.
-
-config CONFIG_USE_DEV_URANDOM
-    bool "Use /dev/urandom"
-    default y
-    depends on !CONFIG_PLATFORM_WIN32
-    help 
-        Use /dev/urandom. Otherwise a custom RNG is used.
-
-        This will be the default on most Linux systems.
-
-config CONFIG_WIN32_USE_CRYPTO_LIB
-    bool "Use Win32 Crypto Library"
-    depends on CONFIG_PLATFORM_WIN32
-    help 
-        Microsoft produce a Crypto API which requires the Platform SDK to be
-        installed. It's used for the RNG.
-
-        This will be the default on most Win32 systems.
-
-config CONFIG_OPENSSL_COMPATIBLE
-    bool "Enable openssl API compatibility"
-    default n
-    help 
-        To ease the porting of openssl applications, a subset of the openssl
-        API is wrapped around the axTLS API.
-
-        Note: not all the API is implemented, so parts may still break. And
-        it's definitely not 100% compatible.
-
-config CONFIG_PERFORMANCE_TESTING
-    bool "Build the bigint performance test tool"
-    default n
-    help
-        Used for performance testing of bigint.
-
-        This is a testing tool and is normally disabled.
-
-config CONFIG_SSL_TEST
-    bool "Build the SSL testing tool"
-    default n
-    depends on CONFIG_SSL_FULL_MODE && !CONFIG_SSL_GENERATE_X509_CERT 
-    help
-        Used for sanity checking the SSL handshaking.
-
-        This is a testing tool and is normally disabled.
-
-endmenu
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/ssl/Makefile
deleted file mode 100644 (file)
index 704d90a..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-AXTLS_HOME=..
-
-include $(AXTLS_HOME)/config/.config
-include $(AXTLS_HOME)/config/makefile.conf
-
-all: libs
-ifdef CONFIG_PERFORMANCE_TESTING
-       $(MAKE) -C test
-else
-ifdef CONFIG_SSL_TEST
-       $(MAKE) -C test
-endif
-endif
-
-ifndef CONFIG_PLATFORM_WIN32
-TARGET1=$(AXTLS_HOME)/$(STAGE)/libaxtls.a
-BASETARGET=libaxtls.so
-CRYPTO_PATH=$(AXTLS_HOME)/crypto/
-ifdef CONFIG_PLATFORM_CYGWIN
-TARGET2=$(AXTLS_HOME)/$(STAGE)/libaxtls.dll.a
-else
-TARGET2=$(AXTLS_HOME)/$(STAGE)/$(LIBMINOR)
-endif
-
-# shared library major/minor numbers
-LIBMAJOR=$(BASETARGET).1
-LIBMINOR=$(BASETARGET).1.2
-else
-TARGET1=$(AXTLS_HOME)/$(STAGE)/axtls.lib
-TARGET2=$(AXTLS_HOME)/$(STAGE)/axtls.dll
-STATIC_LIB=$(AXTLS_HOME)/$(STAGE)/axtls.static.lib
-CRYPTO_PATH=$(AXTLS_HOME)\\crypto\\
-endif
-
-libs: $(TARGET1) $(TARGET2)
-
-CRYPTO_OBJ=\
-       $(CRYPTO_PATH)aes.o \
-       $(CRYPTO_PATH)bigint.o \
-       $(CRYPTO_PATH)crypto_misc.o \
-       $(CRYPTO_PATH)hmac.o \
-       $(CRYPTO_PATH)md2.o \
-       $(CRYPTO_PATH)md5.o \
-       $(CRYPTO_PATH)rc4.o \
-       $(CRYPTO_PATH)rsa.o \
-       $(CRYPTO_PATH)sha1.o
-
-OBJ=\
-       asn1.o \
-       gen_cert.o \
-       loader.o \
-       openssl.o \
-       os_port.o \
-       p12.o \
-       tls1.o \
-       tls1_svr.o \
-       tls1_clnt.o \
-       x509.o
-
-include $(AXTLS_HOME)/config/makefile.post
-
-ifndef CONFIG_PLATFORM_WIN32     # Linux/Unix/Cygwin
-
-$(TARGET1) : $(OBJ)
-       $(AR) -r $@ $(CRYPTO_OBJ) $(OBJ)
-
-$(TARGET2) : $(OBJ)
-ifndef CONFIG_PLATFORM_CYGWIN
-       $(LD) $(LDFLAGS) $(LDSHARED) -o $(AXTLS_HOME)/$(STAGE)/$(LIBMINOR) $(CRYPTO_OBJ) $(OBJ)
-       cd $(AXTLS_HOME)/$(STAGE); ln -sf $(LIBMINOR) $(LIBMAJOR); ln -sf $(LIBMAJOR) $(BASETARGET); cd -
-else
-       $(LD) $(LDFLAGS) $(LDSHARED) -o $(AXTLS_HOME)/$(STAGE)/cygaxtls.dll \
-    -Wl,--out-implib=$(AXTLS_HOME)/$(STAGE)/libaxtls.dll.a \
-    -Wl,--export-all-symbols \
-    -Wl,--enable-auto-import $(CRYPTO_OBJ) $(OBJ)
-endif
-
-else  # Win32
-CRYPTO_OBJ:=$(CRYPTO_OBJ:.o=.obj)
-
-$(TARGET1) : $(OBJ)
-       $(AR) /out:$@ $(CRYPTO_OBJ) $(OBJ)
-
-$(TARGET2) : $(OBJ)
-       cp $(TARGET1) $(STATIC_LIB)
-       $(LD) $(LDFLAGS) $(LDSHARED) /out:$@ $(CRYPTO_OBJ) $(OBJ)
-
-endif    
-
-clean::
-       $(MAKE) -C test clean
-       -@rm -f $(AXTLS_HOME)/$(STAGE)/* *.a $(TARGET1) $(TARGET2)
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/asn1.c b/package/luci/libs/luci-lib-nixio/axTLS/ssl/asn1.c
deleted file mode 100644 (file)
index 4f2e6db..0000000
+++ /dev/null
@@ -1,510 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Some primitive asn methods for extraction ASN.1 data.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include "os_port.h"
-#include "crypto.h"
-#include "crypto_misc.h"
-
-#define SIG_OID_PREFIX_SIZE 8
-#define SIG_IIS6_OID_SIZE   5
-
-/* Must be an RSA algorithm with either SHA1 or MD5 for verifying to work */
-static const uint8_t sig_oid_prefix[SIG_OID_PREFIX_SIZE] = 
-{
-    0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01
-};
-
-static const uint8_t sig_iis6_oid[SIG_IIS6_OID_SIZE] =
-{
-    0x2b, 0x0e, 0x03, 0x02, 0x1d
-};
-
-/* CN, O, OU */
-static const uint8_t g_dn_types[] = { 3, 10, 11 };
-
-int get_asn1_length(const uint8_t *buf, int *offset)
-{
-    int len, i;
-
-    if (!(buf[*offset] & 0x80)) /* short form */
-    {
-        len = buf[(*offset)++];
-    }
-    else  /* long form */
-    {
-        int length_bytes = buf[(*offset)++]&0x7f;
-        len = 0;
-        for (i = 0; i < length_bytes; i++)
-        {
-            len <<= 8;
-            len += buf[(*offset)++];
-        }
-    }
-
-    return len;
-}
-
-/**
- * Skip the ASN1.1 object type and its length. Get ready to read the object's
- * data.
- */
-int asn1_next_obj(const uint8_t *buf, int *offset, int obj_type)
-{
-    if (buf[*offset] != obj_type)
-        return X509_NOT_OK;
-    (*offset)++;
-    return get_asn1_length(buf, offset);
-}
-
-/**
- * Skip over an ASN.1 object type completely. Get ready to read the next
- * object.
- */
-int asn1_skip_obj(const uint8_t *buf, int *offset, int obj_type)
-{
-    int len;
-
-    if (buf[*offset] != obj_type)
-        return X509_NOT_OK;
-    (*offset)++;
-    len = get_asn1_length(buf, offset);
-    *offset += len;
-    return 0;
-}
-
-/**
- * Read an integer value for ASN.1 data
- * Note: This function allocates memory which must be freed by the user.
- */
-int asn1_get_int(const uint8_t *buf, int *offset, uint8_t **object)
-{
-    int len;
-
-    if ((len = asn1_next_obj(buf, offset, ASN1_INTEGER)) < 0)
-        goto end_int_array;
-
-    if (len > 1 && buf[*offset] == 0x00)    /* ignore the negative byte */
-    {
-        len--;
-        (*offset)++;
-    }
-
-    *object = (uint8_t *)malloc(len);
-    memcpy(*object, &buf[*offset], len);
-    *offset += len;
-
-end_int_array:
-    return len;
-}
-
-/**
- * Get all the RSA private key specifics from an ASN.1 encoded file 
- */
-int asn1_get_private_key(const uint8_t *buf, int len, RSA_CTX **rsa_ctx)
-{
-    int offset = 7;
-    uint8_t *modulus = NULL, *priv_exp = NULL, *pub_exp = NULL;
-    int mod_len, priv_len, pub_len;
-#ifdef CONFIG_BIGINT_CRT
-    uint8_t *p = NULL, *q = NULL, *dP = NULL, *dQ = NULL, *qInv = NULL;
-    int p_len, q_len, dP_len, dQ_len, qInv_len;
-#endif
-
-    /* not in der format */
-    if (buf[0] != ASN1_SEQUENCE) /* basic sanity check */
-    {
-#ifdef CONFIG_SSL_FULL_MODE
-        printf("Error: This is not a valid ASN.1 file\n");
-#endif
-        return X509_INVALID_PRIV_KEY;
-    }
-
-    /* initialise the RNG */
-    RNG_initialize(buf, len);
-
-    mod_len = asn1_get_int(buf, &offset, &modulus);
-    pub_len = asn1_get_int(buf, &offset, &pub_exp);
-    priv_len = asn1_get_int(buf, &offset, &priv_exp);
-
-    if (mod_len <= 0 || pub_len <= 0 || priv_len <= 0)
-        return X509_INVALID_PRIV_KEY;
-
-#ifdef CONFIG_BIGINT_CRT
-    p_len = asn1_get_int(buf, &offset, &p);
-    q_len = asn1_get_int(buf, &offset, &q);
-    dP_len = asn1_get_int(buf, &offset, &dP);
-    dQ_len = asn1_get_int(buf, &offset, &dQ);
-    qInv_len = asn1_get_int(buf, &offset, &qInv);
-
-    if (p_len <= 0 || q_len <= 0 || dP_len <= 0 || dQ_len <= 0 || qInv_len <= 0)
-        return X509_INVALID_PRIV_KEY;
-
-    RSA_priv_key_new(rsa_ctx, 
-            modulus, mod_len, pub_exp, pub_len, priv_exp, priv_len,
-            p, p_len, q, p_len, dP, dP_len, dQ, dQ_len, qInv, qInv_len);
-
-    free(p);
-    free(q);
-    free(dP);
-    free(dQ);
-    free(qInv);
-#else
-    RSA_priv_key_new(rsa_ctx, 
-            modulus, mod_len, pub_exp, pub_len, priv_exp, priv_len);
-#endif
-
-    free(modulus);
-    free(priv_exp);
-    free(pub_exp);
-    return X509_OK;
-}
-
-/**
- * Get the time of a certificate. Ignore hours/minutes/seconds.
- */
-static int asn1_get_utc_time(const uint8_t *buf, int *offset, time_t *t)
-{
-    int ret = X509_NOT_OK, len, t_offset;
-    struct tm tm;
-
-    if (buf[(*offset)++] != ASN1_UTC_TIME)
-        goto end_utc_time;
-    len = get_asn1_length(buf, offset);
-    t_offset = *offset;
-
-    memset(&tm, 0, sizeof(struct tm));
-    tm.tm_year = (buf[t_offset] - '0')*10 + (buf[t_offset+1] - '0');
-
-    if (tm.tm_year <= 50)    /* 1951-2050 thing */
-    {
-        tm.tm_year += 100;
-    }
-
-    tm.tm_mon = (buf[t_offset+2] - '0')*10 + (buf[t_offset+3] - '0') - 1;
-    tm.tm_mday = (buf[t_offset+4] - '0')*10 + (buf[t_offset+5] - '0');
-    *t = mktime(&tm);
-    *offset += len;
-    ret = X509_OK;
-
-end_utc_time:
-    return ret;
-}
-
-/**
- * Get the version type of a certificate (which we don't actually care about)
- */
-int asn1_version(const uint8_t *cert, int *offset, X509_CTX *x509_ctx)
-{
-    int ret = X509_NOT_OK;
-
-    (*offset) += 2;        /* get past explicit tag */
-    if (asn1_skip_obj(cert, offset, ASN1_INTEGER))
-        goto end_version;
-
-    ret = X509_OK;
-end_version:
-    return ret;
-}
-
-/**
- * Retrieve the notbefore and notafter certificate times.
- */
-int asn1_validity(const uint8_t *cert, int *offset, X509_CTX *x509_ctx)
-{
-    return (asn1_next_obj(cert, offset, ASN1_SEQUENCE) < 0 ||
-              asn1_get_utc_time(cert, offset, &x509_ctx->not_before) ||
-              asn1_get_utc_time(cert, offset, &x509_ctx->not_after));
-}
-
-/**
- * Get the components of a distinguished name 
- */
-static int asn1_get_oid_x520(const uint8_t *buf, int *offset)
-{
-    int dn_type = 0;
-    int len;
-
-    if ((len = asn1_next_obj(buf, offset, ASN1_OID)) < 0)
-        goto end_oid;
-
-    /* expect a sequence of 2.5.4.[x] where x is a one of distinguished name 
-       components we are interested in. */
-    if (len == 3 && buf[(*offset)++] == 0x55 && buf[(*offset)++] == 0x04)
-        dn_type = buf[(*offset)++];
-    else
-    {
-        *offset += len;     /* skip over it */
-    }
-
-end_oid:
-    return dn_type;
-}
-
-/**
- * Obtain an ASN.1 printable string type.
- */
-static int asn1_get_printable_str(const uint8_t *buf, int *offset, char **str)
-{
-    int len = X509_NOT_OK;
-
-    /* some certs have this awful crud in them for some reason */
-    if (buf[*offset] != ASN1_PRINTABLE_STR &&  
-            buf[*offset] != ASN1_TELETEX_STR &&  
-            buf[*offset] != ASN1_IA5_STR &&  
-            buf[*offset] != ASN1_UNICODE_STR)
-        goto end_pnt_str;
-
-        (*offset)++;
-        len = get_asn1_length(buf, offset);
-
-        if (buf[*offset - 1] == ASN1_UNICODE_STR)
-        {
-            int i;
-            *str = (char *)malloc(len/2+1);     /* allow for null */
-
-            for (i = 0; i < len; i += 2)
-                (*str)[i/2] = buf[*offset + i + 1];
-
-            (*str)[len/2] = 0;                  /* null terminate */
-        }
-        else
-        {
-            *str = (char *)malloc(len+1);       /* allow for null */
-            memcpy(*str, &buf[*offset], len);
-            (*str)[len] = 0;                    /* null terminate */
-        }
-
-        *offset += len;
-
-end_pnt_str:
-    return len;
-}
-
-/**
- * Get the subject name (or the issuer) of a certificate.
- */
-int asn1_name(const uint8_t *cert, int *offset, char *dn[])
-{
-    int ret = X509_NOT_OK;
-    int dn_type;
-    char *tmp = NULL;
-
-    if (asn1_next_obj(cert, offset, ASN1_SEQUENCE) < 0)
-        goto end_name;
-
-    while (asn1_next_obj(cert, offset, ASN1_SET) >= 0)
-    {
-        int i, found = 0;
-
-        if (asn1_next_obj(cert, offset, ASN1_SEQUENCE) < 0 ||
-               (dn_type = asn1_get_oid_x520(cert, offset)) < 0)
-            goto end_name;
-
-        if (asn1_get_printable_str(cert, offset, &tmp) < 0)
-        {
-            free(tmp);
-            goto end_name;
-        }
-
-        /* find the distinguished named type */
-        for (i = 0; i < X509_NUM_DN_TYPES; i++)
-        {
-            if (dn_type == g_dn_types[i])
-            {
-                if (dn[i] == NULL)
-                {
-                    dn[i] = tmp;
-                    found = 1;
-                    break;
-                }
-            }
-        }
-
-        if (found == 0) /* not found so get rid of it */
-        {
-            free(tmp);
-        }
-    }
-
-    ret = X509_OK;
-end_name:
-    return ret;
-}
-
-/**
- * Read the modulus and public exponent of a certificate.
- */
-int asn1_public_key(const uint8_t *cert, int *offset, X509_CTX *x509_ctx)
-{
-    int ret = X509_NOT_OK, mod_len, pub_len;
-    uint8_t *modulus = NULL, *pub_exp = NULL;
-
-    if (asn1_next_obj(cert, offset, ASN1_SEQUENCE) < 0 ||
-            asn1_skip_obj(cert, offset, ASN1_SEQUENCE) ||
-            asn1_next_obj(cert, offset, ASN1_BIT_STRING) < 0)
-        goto end_pub_key;
-
-    (*offset)++;        /* ignore the padding bit field */
-
-    if (asn1_next_obj(cert, offset, ASN1_SEQUENCE) < 0)
-        goto end_pub_key;
-
-    mod_len = asn1_get_int(cert, offset, &modulus);
-    pub_len = asn1_get_int(cert, offset, &pub_exp);
-
-    RSA_pub_key_new(&x509_ctx->rsa_ctx, modulus, mod_len, pub_exp, pub_len);
-
-    free(modulus);
-    free(pub_exp);
-    ret = X509_OK;
-
-end_pub_key:
-    return ret;
-}
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-/**
- * Read the signature of the certificate.
- */
-int asn1_signature(const uint8_t *cert, int *offset, X509_CTX *x509_ctx)
-{
-    int ret = X509_NOT_OK;
-
-    if (cert[(*offset)++] != ASN1_BIT_STRING)
-        goto end_sig;
-
-    x509_ctx->sig_len = get_asn1_length(cert, offset)-1;
-    (*offset)++;            /* ignore bit string padding bits */
-    x509_ctx->signature = (uint8_t *)malloc(x509_ctx->sig_len);
-    memcpy(x509_ctx->signature, &cert[*offset], x509_ctx->sig_len);
-    *offset += x509_ctx->sig_len;
-    ret = X509_OK;
-
-end_sig:
-    return ret;
-}
-
-/*
- * Compare 2 distinguished name components for equality 
- * @return 0 if a match
- */
-static int asn1_compare_dn_comp(const char *dn1, const char *dn2)
-{
-    int ret = 1;
-
-    if ((dn1 && dn2 == NULL) || (dn1 == NULL && dn2)) goto err_no_match;
-
-    ret = (dn1 && dn2) ? strcmp(dn1, dn2) : 0;
-
-err_no_match:
-    return ret;
-}
-
-/**
- * Clean up all of the CA certificates.
- */
-void remove_ca_certs(CA_CERT_CTX *ca_cert_ctx)
-{
-    int i = 0;
-
-    if (ca_cert_ctx == NULL)
-        return;
-
-    while (i < CONFIG_X509_MAX_CA_CERTS && ca_cert_ctx->cert[i])
-    {
-        x509_free(ca_cert_ctx->cert[i]);
-        ca_cert_ctx->cert[i++] = NULL;
-    }
-
-    free(ca_cert_ctx);
-}
-
-/*
- * Compare 2 distinguished names for equality 
- * @return 0 if a match
- */
-int asn1_compare_dn(char * const dn1[], char * const dn2[])
-{
-    int i;
-
-    for (i = 0; i < X509_NUM_DN_TYPES; i++)
-    {
-        if (asn1_compare_dn_comp(dn1[i], dn2[i]))
-            return 1;
-    }
-
-    return 0;       /* all good */
-}
-
-#endif
-
-/**
- * Read the signature type of the certificate. We only support RSA-MD5 and
- * RSA-SHA1 signature types.
- */
-int asn1_signature_type(const uint8_t *cert, 
-                                int *offset, X509_CTX *x509_ctx)
-{
-    int ret = X509_NOT_OK, len;
-
-    if (cert[(*offset)++] != ASN1_OID)
-        goto end_check_sig;
-
-    len = get_asn1_length(cert, offset);
-
-    if (len == 5 && memcmp(sig_iis6_oid, &cert[*offset], 
-                                    SIG_IIS6_OID_SIZE) == 0)
-    {
-        x509_ctx->sig_type = SIG_TYPE_SHA1;
-    }
-    else
-    {
-        if (memcmp(sig_oid_prefix, &cert[*offset], SIG_OID_PREFIX_SIZE))
-            goto end_check_sig;     /* unrecognised cert type */
-
-        x509_ctx->sig_type = cert[*offset + SIG_OID_PREFIX_SIZE];
-    }
-
-    *offset += len;
-    asn1_skip_obj(cert, offset, ASN1_NULL); /* if it's there */
-    ret = X509_OK;
-
-end_check_sig:
-    return ret;
-}
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/cert.h b/package/luci/libs/luci-lib-nixio/axTLS/ssl/cert.h
deleted file mode 100644 (file)
index 7a85d2d..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-unsigned char default_certificate[] = {
-  0x30, 0x82, 0x01, 0xd7, 0x30, 0x82, 0x01, 0x40, 0x02, 0x09, 0x00, 0xf1,
-  0xc3, 0x87, 0xc0, 0xd4, 0xf4, 0x57, 0xc3, 0x30, 0x0d, 0x06, 0x09, 0x2a,
-  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x34,
-  0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x29, 0x61,
-  0x78, 0x54, 0x4c, 0x53, 0x20, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
-  0x20, 0x44, 0x6f, 0x64, 0x67, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
-  0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
-  0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x30, 0x36,
-  0x30, 0x37, 0x31, 0x31, 0x34, 0x34, 0x33, 0x32, 0x5a, 0x17, 0x0d, 0x33,
-  0x33, 0x31, 0x30, 0x32, 0x33, 0x31, 0x31, 0x34, 0x34, 0x33, 0x32, 0x5a,
-  0x30, 0x2c, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
-  0x0d, 0x61, 0x78, 0x54, 0x4c, 0x53, 0x20, 0x50, 0x72, 0x6f, 0x6a, 0x65,
-  0x63, 0x74, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
-  0x09, 0x31, 0x32, 0x37, 0x2e, 0x30, 0x2e, 0x30, 0x2e, 0x31, 0x30, 0x81,
-  0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
-  0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02,
-  0x81, 0x81, 0x00, 0xd8, 0xe0, 0xbf, 0x15, 0xde, 0xea, 0xaf, 0xe8, 0xd5,
-  0xfd, 0x0b, 0xa8, 0xa8, 0xb3, 0xd7, 0x46, 0x5d, 0xa7, 0x26, 0x6c, 0x0c,
-  0xb5, 0xd9, 0xbc, 0xc6, 0xf8, 0xc0, 0x78, 0xd0, 0xf6, 0x56, 0x65, 0xf8,
-  0x29, 0x48, 0x0e, 0x7b, 0x0b, 0xa6, 0x25, 0x7e, 0xe8, 0x7b, 0x79, 0x6f,
-  0x38, 0xe5, 0xb5, 0xb7, 0xf4, 0xe0, 0x9c, 0x91, 0x60, 0xf4, 0x06, 0xf3,
-  0x40, 0x1e, 0xf9, 0x91, 0x19, 0xa9, 0x2f, 0x47, 0x43, 0xb5, 0x9b, 0x1e,
-  0xdc, 0xf6, 0xaa, 0x1c, 0x49, 0x79, 0x21, 0x28, 0xcb, 0xaa, 0x49, 0x73,
-  0xd9, 0x09, 0x05, 0x4c, 0x02, 0xf2, 0x4c, 0x4d, 0x6c, 0x1c, 0x80, 0xa7,
-  0x14, 0x91, 0x44, 0xfc, 0x12, 0xb3, 0xe1, 0xe7, 0xe3, 0x4f, 0x44, 0xba,
-  0x8c, 0xc3, 0x74, 0x39, 0xe8, 0x4c, 0xd0, 0xd4, 0x4c, 0x24, 0x61, 0xb4,
-  0x40, 0x95, 0x8c, 0xc0, 0x0a, 0xb7, 0x02, 0x39, 0x31, 0x85, 0x93, 0x02,
-  0x03, 0x01, 0x00, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
-  0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x0b,
-  0x47, 0x24, 0x52, 0x7d, 0xb6, 0x63, 0x78, 0xbc, 0x80, 0xdd, 0x87, 0x6c,
-  0x90, 0x4c, 0x33, 0xc3, 0x5c, 0xa7, 0x97, 0x09, 0x1c, 0x09, 0x4f, 0x9b,
-  0x6e, 0xb3, 0x5a, 0x3e, 0x46, 0x92, 0x1a, 0xc7, 0x87, 0x15, 0x59, 0xe1,
-  0x88, 0x5c, 0xce, 0x6a, 0xe2, 0x96, 0xaa, 0x32, 0xec, 0xc2, 0xed, 0x78,
-  0x8b, 0xe0, 0x90, 0x66, 0x93, 0x14, 0xc3, 0x98, 0xab, 0x33, 0x35, 0xd3,
-  0x7d, 0x5d, 0x51, 0x0a, 0x9c, 0xb9, 0x10, 0x58, 0x47, 0x7a, 0x98, 0x95,
-  0x64, 0xff, 0x4c, 0x5d, 0x82, 0x19, 0xf9, 0xea, 0x0f, 0x5e, 0x9a, 0xcb,
-  0x32, 0x27, 0x64, 0xca, 0x6f, 0x58, 0x8a, 0xd0, 0xc0, 0x36, 0xf4, 0xb9,
-  0x63, 0x34, 0xa5, 0xda, 0x36, 0x50, 0x36, 0x49, 0xd2, 0xb7, 0x3a, 0x21,
-  0x33, 0x5b, 0x3e, 0xd6, 0x5f, 0x0c, 0x99, 0x83, 0xb7, 0xb2, 0xf7, 0x8b,
-  0x44, 0xc4, 0x5e, 0x73, 0x41, 0xa9, 0x02
-};
-unsigned int default_certificate_len = 475;
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/crypto_misc.h b/package/luci/libs/luci-lib-nixio/axTLS/ssl/crypto_misc.h
deleted file mode 100644 (file)
index 97cb0f2..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/**
- * @file crypto_misc.h
- */
-
-#ifndef HEADER_CRYPTO_MISC_H
-#define HEADER_CRYPTO_MISC_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "crypto.h"
-#include "bigint.h"
-
-/**************************************************************************
- * X509 declarations 
- **************************************************************************/
-#define X509_OK                             0
-#define X509_NOT_OK                         -1
-#define X509_VFY_ERROR_NO_TRUSTED_CERT      -2
-#define X509_VFY_ERROR_BAD_SIGNATURE        -3      
-#define X509_VFY_ERROR_NOT_YET_VALID        -4
-#define X509_VFY_ERROR_EXPIRED              -5
-#define X509_VFY_ERROR_SELF_SIGNED          -6
-#define X509_VFY_ERROR_INVALID_CHAIN        -7
-#define X509_VFY_ERROR_UNSUPPORTED_DIGEST   -8
-#define X509_INVALID_PRIV_KEY               -9
-
-/*
- * The Distinguished Name
- */
-#define X509_NUM_DN_TYPES                   3
-#define X509_COMMON_NAME                    0
-#define X509_ORGANIZATION                   1
-#define X509_ORGANIZATIONAL_UNIT            2
-
-struct _x509_ctx
-{
-    char *ca_cert_dn[X509_NUM_DN_TYPES];
-    char *cert_dn[X509_NUM_DN_TYPES];
-    time_t not_before;
-    time_t not_after;
-    uint8_t *signature;
-    uint16_t sig_len;
-    uint8_t sig_type;
-    RSA_CTX *rsa_ctx;
-    bigint *digest;
-    struct _x509_ctx *next;
-};
-
-typedef struct _x509_ctx X509_CTX;
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-typedef struct 
-{
-    X509_CTX *cert[CONFIG_X509_MAX_CA_CERTS];
-} CA_CERT_CTX;
-#endif
-
-int x509_new(const uint8_t *cert, int *len, X509_CTX **ctx);
-void x509_free(X509_CTX *x509_ctx);
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-int x509_verify(const CA_CERT_CTX *ca_cert_ctx, const X509_CTX *cert);
-#endif
-#ifdef CONFIG_SSL_FULL_MODE
-void x509_print(const X509_CTX *cert, CA_CERT_CTX *ca_cert_ctx);
-const char * x509_display_error(int error);
-#endif
-
-/**************************************************************************
- * ASN1 declarations 
- **************************************************************************/
-#define ASN1_INTEGER            0x02
-#define ASN1_BIT_STRING         0x03
-#define ASN1_OCTET_STRING       0x04
-#define ASN1_NULL               0x05
-#define ASN1_OID                0x06
-#define ASN1_PRINTABLE_STR      0x13
-#define ASN1_TELETEX_STR        0x14
-#define ASN1_IA5_STR            0x16
-#define ASN1_UTC_TIME           0x17
-#define ASN1_UNICODE_STR        0x1e
-#define ASN1_SEQUENCE           0x30
-#define ASN1_SET                0x31
-#define ASN1_IMPLICIT_TAG       0x80
-#define ASN1_EXPLICIT_TAG       0xa0
-
-#define SIG_TYPE_MD2            0x02
-#define SIG_TYPE_MD5            0x04
-#define SIG_TYPE_SHA1           0x05
-
-int get_asn1_length(const uint8_t *buf, int *offset);
-int asn1_get_private_key(const uint8_t *buf, int len, RSA_CTX **rsa_ctx);
-int asn1_next_obj(const uint8_t *buf, int *offset, int obj_type);
-int asn1_skip_obj(const uint8_t *buf, int *offset, int obj_type);
-int asn1_get_int(const uint8_t *buf, int *offset, uint8_t **object);
-int asn1_version(const uint8_t *cert, int *offset, X509_CTX *x509_ctx);
-int asn1_validity(const uint8_t *cert, int *offset, X509_CTX *x509_ctx);
-int asn1_name(const uint8_t *cert, int *offset, char *dn[]);
-int asn1_public_key(const uint8_t *cert, int *offset, X509_CTX *x509_ctx);
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-int asn1_signature(const uint8_t *cert, int *offset, X509_CTX *x509_ctx);
-int asn1_compare_dn(char * const dn1[], char * const dn2[]);
-#endif
-int asn1_signature_type(const uint8_t *cert, 
-                                int *offset, X509_CTX *x509_ctx);
-
-/**************************************************************************
- * MISC declarations 
- **************************************************************************/
-#define SALT_SIZE               8
-
-extern const char * const unsupported_str;
-
-typedef void (*crypt_func)(void *, const uint8_t *, uint8_t *, int);
-typedef void (*hmac_func)(const uint8_t *msg, int length, const uint8_t *key, 
-        int key_len, uint8_t *digest);
-
-int get_file(const char *filename, uint8_t **buf);
-
-#if defined(CONFIG_SSL_FULL_MODE) || defined(WIN32) || defined(CONFIG_DEBUG)
-EXP_FUNC void STDCALL print_blob(const char *format, const uint8_t *data, int size, ...);
-#else
-    #define print_blob(...)
-#endif
-
-EXP_FUNC int STDCALL base64_decode(const char *in,  int len,
-                    uint8_t *out, int *outlen);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif 
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/gen_cert.c b/package/luci/libs/luci-lib-nixio/axTLS/ssl/gen_cert.c
deleted file mode 100644 (file)
index 94b7490..0000000
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#ifdef CONFIG_SSL_GENERATE_X509_CERT
-#include <string.h>
-#include <stdlib.h>
-#include "ssl.h"
-
-/**
- * Generate a basic X.509 certificate
- */
-
-static uint8_t set_gen_length(int len, uint8_t *buf, int *offset)
-{
-    if (len < 0x80) /* short form */
-    {
-        buf[(*offset)++] = len;
-        return 1;
-    }
-    else /* long form */
-    {
-        int i, length_bytes = 0;
-
-        if (len & 0x00FF0000)
-            length_bytes = 3;
-        else if (len & 0x0000FF00)
-            length_bytes = 2;
-        else if (len & 0x000000FF)
-            length_bytes = 1;
-            
-        buf[(*offset)++] = 0x80 + length_bytes;
-
-        for (i = length_bytes-1; i >= 0; i--)
-        {
-            buf[*offset+i] = len & 0xFF;
-            len >>= 8;
-        }
-
-        *offset += length_bytes;
-        return length_bytes+1;
-    }
-}
-
-static int pre_adjust_with_size(uint8_t type,
-        int *seq_offset, uint8_t *buf, int *offset)
-{
-    buf[(*offset)++] = type;
-    *seq_offset = *offset;
-    *offset += 4;   /* fill in later */
-    return *offset;
-}
-
-static void adjust_with_size(int seq_size, int seq_start, 
-                uint8_t *buf, int *offset)
-{
-    uint8_t seq_byte_size; 
-    int orig_seq_size = seq_size;
-    int orig_seq_start = seq_start;
-
-    seq_size = *offset-seq_size;
-    seq_byte_size = set_gen_length(seq_size, buf, &seq_start);
-
-    if (seq_byte_size != 4)
-    {
-        memmove(&buf[orig_seq_start+seq_byte_size], 
-                &buf[orig_seq_size], seq_size);
-        *offset -= 4-seq_byte_size;
-    }
-}
-
-static void gen_serial_number(uint8_t *buf, int *offset)
-{
-    static const uint8_t ser_oid[] = { ASN1_INTEGER, 1, 0x7F };
-    memcpy(&buf[*offset], ser_oid , sizeof(ser_oid));
-    *offset += sizeof(ser_oid);
-}
-
-static void gen_signature_alg(uint8_t *buf, int *offset)
-{
-    /* OBJECT IDENTIFIER sha1withRSAEncryption (1 2 840 113549 1 1 5) */
-    static const uint8_t sig_oid[] = 
-    {
-        ASN1_SEQUENCE, 0x0d, ASN1_OID, 0x09, 
-        0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05,
-        ASN1_NULL, 0x00
-    };
-
-    memcpy(&buf[*offset], sig_oid, sizeof(sig_oid));
-    *offset += sizeof(sig_oid);
-}
-
-static int gen_dn(const char *name, uint8_t dn_type, 
-                        uint8_t *buf, int *offset)
-{
-    int ret = X509_OK;
-    int name_size = strlen(name);
-
-    if (name_size > 0x70)    /* just too big */
-    {
-        ret = X509_NOT_OK;
-        goto error;
-    }
-
-    buf[(*offset)++] = ASN1_SET;
-    set_gen_length(9+name_size, buf, offset);
-    buf[(*offset)++] = ASN1_SEQUENCE;
-    set_gen_length(7+name_size, buf, offset);
-    buf[(*offset)++] = ASN1_OID;
-    buf[(*offset)++] = 3;
-    buf[(*offset)++] = 0x55;
-    buf[(*offset)++] = 0x04;
-    buf[(*offset)++] = dn_type;
-    buf[(*offset)++] = ASN1_PRINTABLE_STR;
-    buf[(*offset)++] = name_size;
-    strcpy(&buf[*offset], name);
-    *offset += name_size;
-
-error:
-    return ret;
-}
-
-static int gen_issuer(const char * dn[], uint8_t *buf, int *offset)
-{
-    int ret = X509_OK;
-    int seq_offset;
-    int seq_size = pre_adjust_with_size(
-                            ASN1_SEQUENCE, &seq_offset, buf, offset);
-    char fqdn[128]; 
-
-    /* we need the common name, so if not configured, work out the fully
-     * qualified domain name */
-    if (dn[X509_COMMON_NAME] == NULL || strlen(dn[X509_COMMON_NAME]) == 0)
-    {
-        int fqdn_len;
-        gethostname(fqdn, sizeof(fqdn));
-        fqdn_len = strlen(fqdn);
-        fqdn[fqdn_len++] = '.';
-        getdomainname(&fqdn[fqdn_len], sizeof(fqdn)-fqdn_len);
-        fqdn_len = strlen(fqdn);
-
-        if (fqdn[fqdn_len-1] == '.')    /* ensure '.' is not last char */
-            fqdn[fqdn_len-1] = 0;
-
-        dn[X509_COMMON_NAME] = fqdn;
-    }
-
-    if ((ret = gen_dn(dn[X509_COMMON_NAME], 3, buf, offset)))
-        goto error;
-
-    if (dn[X509_ORGANIZATION] != NULL && strlen(dn[X509_ORGANIZATION]) > 0)
-    {
-        if ((ret = gen_dn(dn[X509_ORGANIZATION], 10, buf, offset)))
-            goto error;
-    }
-
-    if (dn[X509_ORGANIZATIONAL_UNIT] != NULL &&
-                                strlen(dn[X509_ORGANIZATIONAL_UNIT]) > 0)
-    {
-        if ((ret = gen_dn(dn[X509_ORGANIZATIONAL_UNIT], 11, buf, offset)))
-            goto error;
-    }
-
-    adjust_with_size(seq_size, seq_offset, buf, offset);
-
-error:
-    return ret;
-}
-
-static void gen_utc_time(uint8_t *buf, int *offset)
-{
-    static const uint8_t time_seq[] = 
-    {
-        ASN1_SEQUENCE, 30, 
-        ASN1_UTC_TIME, 13, 
-        '0', '7', '0', '1', '0', '1', '0', '0', '0', '0', '0', '0', 'Z', 
-        ASN1_UTC_TIME, 13,  /* make it good for 30 or so years */
-        '3', '8', '0', '1', '0', '1', '0', '0', '0', '0', '0', '0', 'Z'
-    };
-
-    /* fixed time */
-    memcpy(&buf[*offset], time_seq, sizeof(time_seq));
-    *offset += sizeof(time_seq);
-}
-
-static void gen_pub_key2(const RSA_CTX *rsa_ctx, uint8_t *buf, int *offset)
-{
-    static const uint8_t pub_key_seq[] = 
-    {
-        ASN1_INTEGER, 0x03, 0x01, 0x00, 0x01 /* INTEGER 65537 */
-    };
-
-    int seq_offset;
-    int pub_key_size = rsa_ctx->num_octets;
-    uint8_t *block = (uint8_t *)alloca(pub_key_size);
-    int seq_size = pre_adjust_with_size(
-                            ASN1_SEQUENCE, &seq_offset, buf, offset);
-    buf[(*offset)++] = ASN1_INTEGER;
-    bi_export(rsa_ctx->bi_ctx, rsa_ctx->m, block, pub_key_size);
-
-    if (*block & 0x80)  /* make integer positive */
-    {
-        set_gen_length(pub_key_size+1, buf, offset);
-        buf[(*offset)++] = 0;
-    }
-    else
-        set_gen_length(pub_key_size, buf, offset);
-
-    memcpy(&buf[*offset], block, pub_key_size);
-    *offset += pub_key_size;
-    memcpy(&buf[*offset], pub_key_seq, sizeof(pub_key_seq));
-    *offset += sizeof(pub_key_seq);
-    adjust_with_size(seq_size, seq_offset, buf, offset);
-}
-
-static void gen_pub_key1(const RSA_CTX *rsa_ctx, uint8_t *buf, int *offset)
-{
-    int seq_offset;
-    int seq_size = pre_adjust_with_size(
-                            ASN1_BIT_STRING, &seq_offset, buf, offset);
-    buf[(*offset)++] = 0;   /* bit string is multiple of 8 */
-    gen_pub_key2(rsa_ctx, buf, offset);
-    adjust_with_size(seq_size, seq_offset, buf, offset);
-}
-
-static void gen_pub_key(const RSA_CTX *rsa_ctx, uint8_t *buf, int *offset)
-{
-    /*  OBJECT IDENTIFIER rsaEncryption (1 2 840 113549 1 1 1) */
-    static const uint8_t rsa_enc_oid[] =
-    {
-        ASN1_SEQUENCE, 0x0d, ASN1_OID, 0x09,
-        0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
-        ASN1_NULL, 0x00
-    };
-
-    int seq_offset;
-    int seq_size = pre_adjust_with_size(
-                            ASN1_SEQUENCE, &seq_offset, buf, offset);
-
-    memcpy(&buf[*offset], rsa_enc_oid, sizeof(rsa_enc_oid));
-    *offset += sizeof(rsa_enc_oid);
-    gen_pub_key1(rsa_ctx, buf, offset);
-    adjust_with_size(seq_size, seq_offset, buf, offset);
-}
-
-static void gen_signature(const RSA_CTX *rsa_ctx, const uint8_t *sha_dgst, 
-                        uint8_t *buf, int *offset)
-{
-    static const uint8_t asn1_sig[] = 
-    {
-        ASN1_SEQUENCE,  0x21, ASN1_SEQUENCE, 0x09, ASN1_OID, 0x05, 
-        0x2b, 0x0e, 0x03, 0x02, 0x1a, /* sha1 (1 3 14 3 2 26) */
-        ASN1_NULL, 0x00, ASN1_OCTET_STRING, 0x14 
-    };
-
-    uint8_t *enc_block = (uint8_t *)alloca(rsa_ctx->num_octets);
-    uint8_t *block = (uint8_t *)alloca(sizeof(asn1_sig) + SHA1_SIZE);
-    int sig_size;
-
-    /* add the digest as an embedded asn.1 sequence */
-    memcpy(block, asn1_sig, sizeof(asn1_sig));
-    memcpy(&block[sizeof(asn1_sig)], sha_dgst, SHA1_SIZE);
-
-    sig_size = RSA_encrypt(rsa_ctx, block, 
-                            sizeof(asn1_sig) + SHA1_SIZE, enc_block, 1);
-
-    buf[(*offset)++] = ASN1_BIT_STRING;
-    set_gen_length(sig_size+1, buf, offset);
-    buf[(*offset)++] = 0;   /* bit string is multiple of 8 */
-    memcpy(&buf[*offset], enc_block, sig_size);
-    *offset += sig_size;
-}
-
-static int gen_tbs_cert(const char * dn[],
-                    const RSA_CTX *rsa_ctx, uint8_t *buf, int *offset,
-                    uint8_t *sha_dgst)
-{
-    int ret = X509_OK;
-    SHA1_CTX sha_ctx;
-    int seq_offset;
-    int begin_tbs = *offset;
-    int seq_size = pre_adjust_with_size(
-                        ASN1_SEQUENCE, &seq_offset, buf, offset);
-
-    gen_serial_number(buf, offset);
-    gen_signature_alg(buf, offset);
-
-    /* CA certicate issuer */
-    if ((ret = gen_issuer(dn, buf, offset)))
-        goto error;
-
-    gen_utc_time(buf, offset);
-
-    /* certificate issuer */
-    if ((ret = gen_issuer(dn, buf, offset)))
-        goto error;
-
-    gen_pub_key(rsa_ctx, buf, offset);
-    adjust_with_size(seq_size, seq_offset, buf, offset);
-
-    SHA1_Init(&sha_ctx);
-    SHA1_Update(&sha_ctx, &buf[begin_tbs], *offset-begin_tbs);
-    SHA1_Final(sha_dgst, &sha_ctx);
-
-error:
-    return ret;
-}
-
-/**
- * Create a new certificate.
- */
-EXP_FUNC int STDCALL ssl_x509_create(SSL_CTX *ssl_ctx, uint32_t options, const char * dn[], uint8_t **cert_data)
-{
-    int ret = X509_OK, offset = 0, seq_offset;
-    /* allocate enough space to load a new certificate */
-    uint8_t *buf = (uint8_t *)alloca(ssl_ctx->rsa_ctx->num_octets*2 + 512);
-    uint8_t sha_dgst[SHA1_SIZE];
-    int seq_size = pre_adjust_with_size(ASN1_SEQUENCE, 
-                                    &seq_offset, buf, &offset);
-
-    if ((ret = gen_tbs_cert(dn, ssl_ctx->rsa_ctx, buf, &offset, sha_dgst)) < 0)
-        goto error;
-
-    gen_signature_alg(buf, &offset);
-    gen_signature(ssl_ctx->rsa_ctx, sha_dgst, buf, &offset);
-    adjust_with_size(seq_size, seq_offset, buf, &offset);
-    *cert_data = (uint8_t *)malloc(offset); /* create the exact memory for it */
-    memcpy(*cert_data, buf, offset);
-
-error:
-    return ret < 0 ? ret : offset;
-}
-
-#endif
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/loader.c b/package/luci/libs/luci-lib-nixio/axTLS/ssl/loader.c
deleted file mode 100644 (file)
index 4232f7e..0000000
+++ /dev/null
@@ -1,465 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Load certificates/keys into memory. These can be in many different formats.
- * PEM support and other formats can be processed here.
- *
- * The PEM private keys may be optionally encrypted with AES128 or AES256. 
- * The encrypted PEM keys were generated with something like:
- *
- * openssl genrsa -aes128 -passout pass:abcd -out axTLS.key_aes128.pem 512
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "ssl.h"
-
-static int do_obj(SSL_CTX *ssl_ctx, int obj_type, 
-                    SSLObjLoader *ssl_obj, const char *password);
-#ifdef CONFIG_SSL_HAS_PEM
-static int ssl_obj_PEM_load(SSL_CTX *ssl_ctx, int obj_type, 
-                        SSLObjLoader *ssl_obj, const char *password);
-#endif
-
-/*
- * Load a file into memory that is in binary DER (or ascii PEM) format.
- */
-EXP_FUNC int STDCALL ssl_obj_load(SSL_CTX *ssl_ctx, int obj_type, 
-                            const char *filename, const char *password)
-{
-#ifndef CONFIG_SSL_SKELETON_MODE
-    static const char * const begin = "-----BEGIN";
-    int ret = SSL_OK;
-    SSLObjLoader *ssl_obj = NULL;
-
-    if (filename == NULL)
-    {
-        ret = SSL_ERROR_INVALID_KEY;
-        goto error;
-    }
-
-    ssl_obj = (SSLObjLoader *)calloc(1, sizeof(SSLObjLoader));
-    ssl_obj->len = get_file(filename, &ssl_obj->buf); 
-    if (ssl_obj->len <= 0)
-    {
-        ret = SSL_ERROR_INVALID_KEY;
-        goto error;
-    }
-
-    /* is the file a PEM file? */
-    if (strncmp((char *)ssl_obj->buf, begin, strlen(begin)) == 0)
-    {
-#ifdef CONFIG_SSL_HAS_PEM
-        ret = ssl_obj_PEM_load(ssl_ctx, obj_type, ssl_obj, password);
-#else
-        printf(unsupported_str);
-        ret = SSL_ERROR_NOT_SUPPORTED;
-#endif
-    }
-    else
-        ret = do_obj(ssl_ctx, obj_type, ssl_obj, password);
-
-error:
-    ssl_obj_free(ssl_obj);
-    return ret;
-#else
-    printf(unsupported_str);
-    return SSL_ERROR_NOT_SUPPORTED;
-#endif /* CONFIG_SSL_SKELETON_MODE */
-}
-
-/*
- * Transfer binary data into the object loader.
- */
-EXP_FUNC int STDCALL ssl_obj_memory_load(SSL_CTX *ssl_ctx, int mem_type, 
-        const uint8_t *data, int len, const char *password)
-{
-    int ret;
-    SSLObjLoader *ssl_obj;
-
-    ssl_obj = (SSLObjLoader *)calloc(1, sizeof(SSLObjLoader));
-    ssl_obj->buf = (uint8_t *)malloc(len);
-    memcpy(ssl_obj->buf, data, len);
-    ssl_obj->len = len;
-    ret = do_obj(ssl_ctx, mem_type, ssl_obj, password);
-    ssl_obj_free(ssl_obj);
-    return ret;
-}
-
-/*
- * Actually work out what we are doing 
- */
-static int do_obj(SSL_CTX *ssl_ctx, int obj_type, 
-                    SSLObjLoader *ssl_obj, const char *password)
-{
-    int ret = SSL_OK;
-
-    switch (obj_type)
-    {
-        case SSL_OBJ_RSA_KEY:
-            ret = add_private_key(ssl_ctx, ssl_obj);
-            break;
-
-        case SSL_OBJ_X509_CERT:
-            ret = add_cert(ssl_ctx, ssl_obj->buf, ssl_obj->len);
-            break;
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-        case SSL_OBJ_X509_CACERT:
-            ret = add_cert_auth(ssl_ctx, ssl_obj->buf, ssl_obj->len);
-            break;
-#endif
-
-#ifdef CONFIG_SSL_USE_PKCS12
-        case SSL_OBJ_PKCS8:
-            ret = pkcs8_decode(ssl_ctx, ssl_obj, password);
-            break;
-
-        case SSL_OBJ_PKCS12:
-            ret = pkcs12_decode(ssl_ctx, ssl_obj, password);
-            break;
-#endif
-        default:
-            printf(unsupported_str);
-            ret = SSL_ERROR_NOT_SUPPORTED;
-            break;
-    }
-
-    return ret;
-}
-
-/*
- * Clean up our mess.
- */
-void ssl_obj_free(SSLObjLoader *ssl_obj)
-{
-    if (ssl_obj)
-    {
-        free(ssl_obj->buf);
-        free(ssl_obj);
-    }
-}
-
-/*
- * Support for PEM encoded keys/certificates.
- */
-#ifdef CONFIG_SSL_HAS_PEM
-
-#define NUM_PEM_TYPES               3
-#define IV_SIZE                     16
-#define IS_RSA_PRIVATE_KEY          0
-#define IS_ENCRYPTED_PRIVATE_KEY    1
-#define IS_CERTIFICATE              2
-
-static const char * const begins[NUM_PEM_TYPES] =
-{
-    "-----BEGIN RSA PRIVATE KEY-----",
-    "-----BEGIN ENCRYPTED PRIVATE KEY-----",
-    "-----BEGIN CERTIFICATE-----",
-};
-
-static const char * const ends[NUM_PEM_TYPES] =
-{
-    "-----END RSA PRIVATE KEY-----",
-    "-----END ENCRYPTED PRIVATE KEY-----",
-    "-----END CERTIFICATE-----",
-};
-
-static const char * const aes_str[2] =
-{
-    "DEK-Info: AES-128-CBC,",
-    "DEK-Info: AES-256-CBC," 
-};
-
-/**
- * Take a base64 blob of data and decrypt it (using AES) into its 
- * proper ASN.1 form.
- */
-static int pem_decrypt(const char *where, const char *end,
-                        const char *password, SSLObjLoader *ssl_obj)
-{
-    int ret = -1;
-    int is_aes_256 = 0;
-    char *start = NULL;
-    uint8_t iv[IV_SIZE];
-    int i, pem_size;
-    MD5_CTX md5_ctx;
-    AES_CTX aes_ctx;
-    uint8_t key[32];        /* AES256 size */
-
-    if (password == NULL || strlen(password) == 0)
-    {
-#ifdef CONFIG_SSL_FULL_MODE
-        printf("Error: Need a password for this PEM file\n"); TTY_FLUSH();
-#endif
-        goto error;
-    }
-
-    if ((start = strstr((const char *)where, aes_str[0])))         /* AES128? */
-    {
-        start += strlen(aes_str[0]);
-    }
-    else if ((start = strstr((const char *)where, aes_str[1])))    /* AES256? */
-    {
-        is_aes_256 = 1;
-        start += strlen(aes_str[1]);
-    }
-    else 
-    {
-#ifdef CONFIG_SSL_FULL_MODE
-        printf("Error: Unsupported password cipher\n"); TTY_FLUSH();
-#endif
-        goto error;
-    }
-
-    /* convert from hex to binary - assumes uppercase hex */
-    for (i = 0; i < IV_SIZE; i++)
-    {
-        char c = *start++ - '0';
-        iv[i] = (c > 9 ? c + '0' - 'A' + 10 : c) << 4;
-        c = *start++ - '0';
-        iv[i] += (c > 9 ? c + '0' - 'A' + 10 : c);
-    }
-
-    while (*start == '\r' || *start == '\n')
-        start++;
-
-    /* turn base64 into binary */
-    pem_size = (int)(end-start);
-    if (base64_decode(start, pem_size, ssl_obj->buf, &ssl_obj->len) != 0)
-        goto error;
-
-    /* work out the key */
-    MD5_Init(&md5_ctx);
-    MD5_Update(&md5_ctx, (const uint8_t *)password, strlen(password));
-    MD5_Update(&md5_ctx, iv, SALT_SIZE);
-    MD5_Final(key, &md5_ctx);
-
-    if (is_aes_256)
-    {
-        MD5_Init(&md5_ctx);
-        MD5_Update(&md5_ctx, key, MD5_SIZE);
-        MD5_Update(&md5_ctx, (const uint8_t *)password, strlen(password));
-        MD5_Update(&md5_ctx, iv, SALT_SIZE);
-        MD5_Final(&key[MD5_SIZE], &md5_ctx);
-    }
-
-    /* decrypt using the key/iv */
-    AES_set_key(&aes_ctx, key, iv, is_aes_256 ? AES_MODE_256 : AES_MODE_128);
-    AES_convert_key(&aes_ctx);
-    AES_cbc_decrypt(&aes_ctx, ssl_obj->buf, ssl_obj->buf, ssl_obj->len);
-    ret = 0;
-
-error:
-    return ret; 
-}
-
-/**
- * Take a base64 blob of data and turn it into its proper ASN.1 form.
- */
-static int new_pem_obj(SSL_CTX *ssl_ctx, int is_cacert, char *where, 
-                    int remain, const char *password)
-{
-    int ret = SSL_OK;
-    SSLObjLoader *ssl_obj = NULL;
-    int i, pem_size, obj_type;
-    char *start = NULL, *end = NULL;
-
-    for (i = 0; i < NUM_PEM_TYPES; i++)
-    {
-        if ((start = strstr(where, begins[i])) &&
-                (end = strstr(where, ends[i])))
-        {
-            remain -= (int)(end-start);
-            start += strlen(begins[i]);
-            pem_size = (int)(end-start);
-
-            ssl_obj = (SSLObjLoader *)calloc(1, sizeof(SSLObjLoader));
-
-            /* 4/3 bigger than what we need but so what */
-            ssl_obj->buf = (uint8_t *)calloc(1, pem_size);
-
-            if (i == IS_RSA_PRIVATE_KEY && 
-                        strstr(start, "Proc-Type:") && 
-                        strstr(start, "4,ENCRYPTED"))
-            {
-                /* check for encrypted PEM file */
-                if (pem_decrypt(start, end, password, ssl_obj) < 0)
-                    goto error;
-            }
-            else if (base64_decode(start, pem_size, 
-                        ssl_obj->buf, &ssl_obj->len) != 0)
-                goto error;
-
-            switch (i)
-            {
-                case IS_RSA_PRIVATE_KEY:
-                    obj_type = SSL_OBJ_RSA_KEY;
-                    break;
-
-                case IS_ENCRYPTED_PRIVATE_KEY:
-                    obj_type = SSL_OBJ_PKCS8;
-                    break;
-
-                case IS_CERTIFICATE:
-                    obj_type = is_cacert ?
-                                    SSL_OBJ_X509_CACERT : SSL_OBJ_X509_CERT;
-                    break;
-
-                default:
-                    goto error;
-            }
-
-            /* In a format we can now understand - so process it */
-            if ((ret = do_obj(ssl_ctx, obj_type, ssl_obj, password)))
-                goto error;
-
-            end += strlen(ends[i]);
-            remain -= strlen(ends[i]);
-            while (remain > 0 && (*end == '\r' || *end == '\n'))
-            {
-                end++;
-                remain--;
-            }
-
-            break;
-        }
-    }
-
-    if (i == NUM_PEM_TYPES)
-        goto error;
-
-    /* more PEM stuff to process? */
-    if (remain)
-        ret = new_pem_obj(ssl_ctx, is_cacert, end, remain, password);
-
-error:
-    ssl_obj_free(ssl_obj);
-    return ret;
-}
-
-/*
- * Load a file into memory that is in ASCII PEM format.
- */
-static int ssl_obj_PEM_load(SSL_CTX *ssl_ctx, int obj_type, 
-                        SSLObjLoader *ssl_obj, const char *password)
-{
-    char *start;
-
-    /* add a null terminator */
-    ssl_obj->len++;
-    ssl_obj->buf = (uint8_t *)realloc(ssl_obj->buf, ssl_obj->len);
-    ssl_obj->buf[ssl_obj->len-1] = 0;
-    start = (char *)ssl_obj->buf;
-    return new_pem_obj(ssl_ctx, obj_type == SSL_OBJ_X509_CACERT,
-                                start, ssl_obj->len, password);
-}
-#endif /* CONFIG_SSL_HAS_PEM */
-
-/**
- * Load the key/certificates in memory depending on compile-time and user
- * options. 
- */
-int load_key_certs(SSL_CTX *ssl_ctx)
-{
-    int ret = SSL_OK;
-    uint32_t options = ssl_ctx->options;
-#ifdef CONFIG_SSL_GENERATE_X509_CERT 
-    uint8_t *cert_data = NULL;
-    int cert_size;
-    static const char *dn[] = 
-    {
-        CONFIG_SSL_X509_COMMON_NAME,
-        CONFIG_SSL_X509_ORGANIZATION_NAME,
-        CONFIG_SSL_X509_ORGANIZATION_UNIT_NAME
-    };
-#endif
-
-    /* do the private key first */
-    if (strlen(CONFIG_SSL_PRIVATE_KEY_LOCATION) > 0)
-    {
-        if ((ret = ssl_obj_load(ssl_ctx, SSL_OBJ_RSA_KEY, 
-                                CONFIG_SSL_PRIVATE_KEY_LOCATION,
-                                CONFIG_SSL_PRIVATE_KEY_PASSWORD)) < 0)
-            goto error;
-    }
-    else if (!(options & SSL_NO_DEFAULT_KEY))
-    {
-#if defined(CONFIG_SSL_USE_DEFAULT_KEY) || defined(CONFIG_SSL_SKELETON_MODE)
-        static const    /* saves a few more bytes */
-#include "private_key.h"
-
-        ssl_obj_memory_load(ssl_ctx, SSL_OBJ_RSA_KEY, default_private_key,
-                default_private_key_len, NULL); 
-#endif
-    }
-
-    /* now load the certificate */
-#ifdef CONFIG_SSL_GENERATE_X509_CERT 
-    if ((cert_size = ssl_x509_create(ssl_ctx, 0, dn, &cert_data)) < 0)
-    {
-        ret = cert_size;
-        goto error;
-    }
-
-    ssl_obj_memory_load(ssl_ctx, SSL_OBJ_X509_CERT, cert_data, cert_size, NULL);
-    free(cert_data);
-#else
-    if (strlen(CONFIG_SSL_X509_CERT_LOCATION))
-    {
-        if ((ret = ssl_obj_load(ssl_ctx, SSL_OBJ_X509_CERT, 
-                                CONFIG_SSL_X509_CERT_LOCATION, NULL)) < 0)
-            goto error;
-    }
-    else if (!(options & SSL_NO_DEFAULT_KEY))
-    {
-#if defined(CONFIG_SSL_USE_DEFAULT_KEY) || defined(CONFIG_SSL_SKELETON_MODE)
-        static const    /* saves a few bytes and RAM */
-#include "cert.h"
-        ssl_obj_memory_load(ssl_ctx, SSL_OBJ_X509_CERT, 
-                    default_certificate, default_certificate_len, NULL);
-#endif
-    }
-#endif
-
-error:
-#ifdef CONFIG_SSL_FULL_MODE
-    if (ret)
-    {
-        printf("Error: Certificate or key not loaded\n"); TTY_FLUSH();
-    }
-#endif
-
-    return ret;
-
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/openssl.c b/package/luci/libs/luci-lib-nixio/axTLS/ssl/openssl.c
deleted file mode 100644 (file)
index b6b9550..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * Enable a subset of openssl compatible functions. We don't aim to be 100%
- * compatible - just to be able to do basic ports etc.
- *
- * Only really tested on mini_httpd, so I'm not too sure how extensive this
- * port is.
- */
-
-#include "config.h"
-
-#ifdef CONFIG_OPENSSL_COMPATIBLE
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-#include "ssl.h"
-
-#define OPENSSL_CTX_ATTR  ((OPENSSL_CTX *)ssl_ctx->bonus_attr)
-
-static char *key_password = NULL;
-
-void *SSLv23_server_method(void) { return NULL; }
-void *SSLv3_server_method(void) { return NULL; }
-void *TLSv1_server_method(void) { return NULL; }
-void *SSLv23_client_method(void) { return NULL; }
-void *SSLv3_client_method(void) { return NULL; }
-void *TLSv1_client_method(void) { return NULL; }
-
-typedef void * (*ssl_func_type_t)(void);
-typedef void * (*bio_func_type_t)(void);
-
-typedef struct
-{
-    ssl_func_type_t ssl_func_type;
-} OPENSSL_CTX;
-
-SSL_CTX * SSL_CTX_new(ssl_func_type_t meth)
-{
-    SSL_CTX *ssl_ctx = ssl_ctx_new(0, 5);
-    ssl_ctx->bonus_attr = malloc(sizeof(OPENSSL_CTX));
-    OPENSSL_CTX_ATTR->ssl_func_type = meth;
-    return ssl_ctx;
-}
-
-void SSL_CTX_free(SSL_CTX * ssl_ctx)
-{
-    free(ssl_ctx->bonus_attr);
-    ssl_ctx_free(ssl_ctx);
-}
-
-SSL * SSL_new(SSL_CTX *ssl_ctx)
-{
-    SSL *ssl;
-    ssl_func_type_t ssl_func_type;
-
-    ssl = ssl_new(ssl_ctx, -1);        /* fd is set later */
-    ssl_func_type = OPENSSL_CTX_ATTR->ssl_func_type;
-
-#ifdef CONFIG_SSL_ENABLE_CLIENT
-    if (ssl_func_type == SSLv23_client_method ||
-        ssl_func_type == SSLv3_client_method ||
-        ssl_func_type == TLSv1_client_method)
-    {
-        SET_SSL_FLAG(SSL_IS_CLIENT);
-    }
-    else
-#endif
-    {
-        ssl->next_state = HS_CLIENT_HELLO;
-    }
-
-    return ssl;
-}
-
-int SSL_set_fd(SSL *s, int fd)
-{
-    s->client_fd = fd;
-    return 1;   /* always succeeds */
-}
-
-int SSL_accept(SSL *ssl)
-{
-    while (ssl_read(ssl, NULL) == SSL_OK)
-    {
-        if (ssl->next_state == HS_CLIENT_HELLO)
-            return 1;   /* we're done */
-    }
-
-    return -1;
-}
-
-#ifdef CONFIG_SSL_ENABLE_CLIENT
-int SSL_connect(SSL *ssl)
-{
-    return do_client_connect(ssl) == SSL_OK ? 1 : -1;
-}
-#endif
-
-void SSL_free(SSL *ssl)
-{
-    ssl_free(ssl);
-}
-
-int SSL_read(SSL *ssl, void *buf, int num)
-{
-    uint8_t *read_buf;
-    int ret;
-
-    while ((ret = ssl_read(ssl, &read_buf)) == SSL_OK);
-
-    if (ret > SSL_OK)
-    {
-        memcpy(buf, read_buf, ret > num ? num : ret);
-    }
-
-    return ret;
-}
-
-int SSL_write(SSL *ssl, const void *buf, int num)
-{
-    return ssl_write(ssl, buf, num);
-}
-
-int SSL_CTX_use_certificate_file(SSL_CTX *ssl_ctx, const char *file, int type)
-{
-    return (ssl_obj_load(ssl_ctx, SSL_OBJ_X509_CERT, file, NULL) == SSL_OK);
-}
-
-int SSL_CTX_use_PrivateKey_file(SSL_CTX *ssl_ctx, const char *file, int type)
-{
-    return (ssl_obj_load(ssl_ctx, SSL_OBJ_RSA_KEY, file, key_password) == SSL_OK);
-}
-
-int SSL_CTX_use_certificate_ASN1(SSL_CTX *ssl_ctx, int len, const uint8_t *d)
-{
-    return (ssl_obj_memory_load(ssl_ctx, 
-                        SSL_OBJ_X509_CERT, d, len, NULL) == SSL_OK);
-}
-
-int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx,
-                                            unsigned int sid_ctx_len)
-{
-    return 1;
-}
-
-int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx)
-{
-    return 1;
-}
-
-int SSL_CTX_use_certificate_chain_file(SSL_CTX *ssl_ctx, const char *file)
-{
-    return (ssl_obj_load(ssl_ctx, 
-                        SSL_OBJ_X509_CERT, file, NULL) == SSL_OK);
-}
-
-int SSL_shutdown(SSL *ssl)
-{
-    return 1;
-}
-
-/*** get/set session ***/
-SSL_SESSION *SSL_get1_session(SSL *ssl)
-{
-    return (SSL_SESSION *)ssl_get_session_id(ssl); /* note: wrong cast */
-}
-
-int SSL_set_session(SSL *ssl, SSL_SESSION *session)
-{
-    memcpy(ssl->session_id, (uint8_t *)session, SSL_SESSION_ID_SIZE);
-    return 1;
-}
-
-void SSL_SESSION_free(SSL_SESSION *session) { }
-/*** end get/set session ***/
-
-long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
-{
-    return 0;
-}
-
-void SSL_CTX_set_verify(SSL_CTX *ctx, int mode,
-                                 int (*verify_callback)(int, void *)) { }
-
-void SSL_CTX_set_verify_depth(SSL_CTX *ctx,int depth) { }
-
-int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,
-                                           const char *CApath)
-{
-    return 1;
-}
-
-void *SSL_load_client_CA_file(const char *file)
-{
-    return (void *)file;
-}
-
-void SSL_CTX_set_client_CA_list(SSL_CTX *ssl_ctx, void *file) 
-{ 
-
-    ssl_obj_load(ssl_ctx, SSL_OBJ_X509_CERT, (const char *)file, NULL);
-}
-
-void SSLv23_method(void) { }
-
-void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, void *cb) { }
-
-void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u) 
-{ 
-    key_password = (char *)u;
-}
-
-int SSL_peek(SSL *ssl, void *buf, int num)
-{
-    memcpy(buf, ssl->bm_data, num);
-    return num;
-}
-
-void SSL_set_bio(SSL *ssl, void *rbio, void *wbio) { }
-
-long SSL_get_verify_result(const SSL *ssl)
-{
-    return ssl_handshake_status(ssl);
-}
-
-int SSL_state(SSL *ssl)
-{
-    return 0x03; // ok state
-}
-
-/** end of could do better list */
-
-void *SSL_get_peer_certificate(const SSL *ssl)
-{
-    return &ssl->ssl_ctx->certs[0];
-}
-
-int SSL_clear(SSL *ssl)
-{
-    return 1;
-}
-
-
-int SSL_CTX_check_private_key(const SSL_CTX *ctx)
-{
-    return 1;
-}
-
-int SSL_CTX_set_cipher_list(SSL *s, const char *str)
-{
-    return 1;
-}
-
-int SSL_get_error(const SSL *ssl, int ret)
-{
-    ssl_display_error(ret);
-    return 0;   /* TODO: return proper return code */
-}
-
-void SSL_CTX_set_options(SSL_CTX *ssl_ctx, int option) {}
-int SSL_library_init(void ) { return 1; }
-void SSL_load_error_strings(void ) {}
-void ERR_print_errors_fp(FILE *fp) {}
-
-#ifndef CONFIG_SSL_SKELETON_MODE
-long SSL_CTX_get_timeout(const SSL_CTX *ssl_ctx) { 
-                            return CONFIG_SSL_EXPIRY_TIME*3600; }
-long SSL_CTX_set_timeout(SSL_CTX *ssl_ctx, long t) { 
-                            return SSL_CTX_get_timeout(ssl_ctx); }
-#endif
-void BIO_printf(FILE *f, const char *format, ...)
-{
-    va_list(ap);
-    va_start(ap, format);
-    vfprintf(f, format, ap);
-    va_end(ap);
-}
-
-void* BIO_s_null(void) { return NULL; }
-FILE *BIO_new(bio_func_type_t func)
-{
-    if (func == BIO_s_null)
-        return fopen("/dev/null", "r");
-    else
-        return NULL;
-}
-
-FILE *BIO_new_fp(FILE *stream, int close_flag) { return stream; }
-int BIO_free(FILE *a) { if (a != stdout && a != stderr) fclose(a); return 1; }
-
-
-
-#endif
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/os_port.c b/package/luci/libs/luci-lib-nixio/axTLS/ssl/os_port.c
deleted file mode 100644 (file)
index 6a71000..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * @file os_port.c
- *
- * OS specific functions.
- */
-#include <time.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <stdarg.h>
-#include "os_port.h"
-
-#ifdef WIN32
-/**
- * gettimeofday() not in Win32 
- */
-EXP_FUNC void STDCALL gettimeofday(struct timeval* t, void* timezone)
-{       
-#if defined(_WIN32_WCE)
-    t->tv_sec = time(NULL);
-    t->tv_usec = 0;                         /* 1sec precision only */ 
-#else
-    struct _timeb timebuffer;
-    _ftime(&timebuffer);
-    t->tv_sec = (long)timebuffer.time;
-    t->tv_usec = 1000 * timebuffer.millitm; /* 1ms precision */
-#endif
-}
-
-/**
- * strcasecmp() not in Win32
- */
-EXP_FUNC int STDCALL strcasecmp(const char *s1, const char *s2)
-{
-    while (tolower(*s1) == tolower(*s2++))
-    {
-        if (*s1++ == '\0')
-        {
-            return 0;
-        }
-    }
-
-    return *(unsigned char *)s1 - *(unsigned char *)(s2 - 1);
-}
-
-
-EXP_FUNC int STDCALL getdomainname(char *buf, int buf_size)
-{
-    HKEY hKey;
-    unsigned long datatype;
-    unsigned long bufferlength = buf_size;
-
-    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-            TEXT("SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters"),
-                        0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS)
-        return -1;
-
-    RegQueryValueEx(hKey, "Domain", NULL, &datatype, buf, &bufferlength);
-    RegCloseKey(hKey);
-    return 0; 
-}
-#endif
-
-#undef malloc
-#undef realloc
-#undef calloc
-
-static const char * out_of_mem_str = "out of memory";
-static const char * file_open_str = "Could not open file \"%s\"";
-
-/* 
- * Some functions that call display some error trace and then call abort().
- * This just makes life much easier on embedded systems, since we're 
- * suffering major trauma...
- */
-EXP_FUNC void * STDCALL ax_malloc(size_t s)
-{
-    void *x;
-
-    if ((x = malloc(s)) == NULL)
-        exit_now(out_of_mem_str);
-
-    return x;
-}
-
-EXP_FUNC void * STDCALL ax_realloc(void *y, size_t s)
-{
-    void *x;
-
-    if ((x = realloc(y, s)) == NULL)
-        exit_now(out_of_mem_str);
-
-    return x;
-}
-
-EXP_FUNC void * STDCALL ax_calloc(size_t n, size_t s)
-{
-    void *x;
-
-    if ((x = calloc(n, s)) == NULL)
-        exit_now(out_of_mem_str);
-
-    return x;
-}
-
-EXP_FUNC int STDCALL ax_open(const char *pathname, int flags)
-{
-    int x;
-
-    if ((x = open(pathname, flags)) < 0)
-        exit_now(file_open_str, pathname);
-
-    return x;
-}
-
-/**
- * This is a call which will deliberately exit an application, but will
- * display some information before dying.
- */
-void exit_now(const char *format, ...)
-{
-    va_list argp;
-
-    va_start(argp, format);
-    vfprintf(stderr, format, argp);
-    va_end(argp);
-    abort();
-}
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/os_port.h b/package/luci/libs/luci-lib-nixio/axTLS/ssl/os_port.h
deleted file mode 100644 (file)
index 262c4dd..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * @file os_port.h
- *
- * Some stuff to minimise the differences between windows and linux/unix
- */
-
-#ifndef HEADER_OS_PORT_H
-#define HEADER_OS_PORT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdio.h>
-
-#if defined(WIN32)
-#define STDCALL                 __stdcall
-#define EXP_FUNC                __declspec(dllexport)
-#else
-#define STDCALL
-#define EXP_FUNC
-#endif
-
-#if defined(_WIN32_WCE)
-#undef WIN32
-#define WIN32
-#endif
-
-#ifdef WIN32
-
-/* Windows CE stuff */
-#if defined(_WIN32_WCE)
-#include <basetsd.h>
-#define abort()                 exit(1)
-#else
-#include <io.h>
-#include <process.h>
-#include <sys/timeb.h>
-#include <fcntl.h>
-#endif      /* _WIN32_WCE */
-
-#include <winsock.h>
-#include <direct.h>
-#undef getpid
-#undef open
-#undef close
-#undef sleep
-#undef gettimeofday
-#undef dup2
-#undef unlink
-
-#define SOCKET_READ(A,B,C)      recv(A,B,C,0)
-#define SOCKET_WRITE(A,B,C)     send(A,B,C,0)
-#define SOCKET_CLOSE(A)         closesocket(A)
-#define SOCKET_BLOCK(A)         u_long argp = 0; \
-                                ioctlsocket(A, FIONBIO, &argp)
-#define srandom(A)              srand(A)
-#define random()                rand()
-#define getpid()                _getpid()
-#define snprintf                _snprintf
-#define open(A,B)               _open(A,B)
-#define dup2(A,B)               _dup2(A,B)
-#define unlink(A)               _unlink(A)
-#define close(A)                _close(A)
-#define read(A,B,C)             _read(A,B,C)
-#define write(A,B,C)            _write(A,B,C)
-#define sleep(A)                Sleep(A*1000)
-#define usleep(A)               Sleep(A/1000)
-#define strdup(A)               _strdup(A)
-#define chroot(A)               _chdir(A)
-#define chdir(A)                _chdir(A)
-#define alloca(A)               _alloca(A)
-#ifndef lseek
-#define lseek(A,B,C)            _lseek(A,B,C)
-#endif
-
-/* This fix gets around a problem where a win32 application on a cygwin xterm
-   doesn't display regular output (until a certain buffer limit) - but it works
-   fine under a normal DOS window. This is a hack to get around the issue - 
-   see http://www.khngai.com/emacs/tty.php  */
-#define TTY_FLUSH()             if (!_isatty(_fileno(stdout))) fflush(stdout);
-
-/*
- * automatically build some library dependencies.
- */
-#pragma comment(lib, "WS2_32.lib")
-#pragma comment(lib, "AdvAPI32.lib")
-
-typedef UINT8 uint8_t;
-typedef INT8 int8_t;
-typedef UINT16 uint16_t;
-typedef INT16 int16_t;
-typedef UINT32 uint32_t;
-typedef INT32 int32_t;
-typedef UINT64 uint64_t;
-typedef INT64 int64_t;
-typedef int socklen_t;
-
-EXP_FUNC void STDCALL gettimeofday(struct timeval* t,void* timezone);
-EXP_FUNC int STDCALL strcasecmp(const char *s1, const char *s2);
-EXP_FUNC int STDCALL getdomainname(char *buf, int buf_size);
-
-#else   /* Not Win32 */
-
-#ifdef CONFIG_PLATFORM_SOLARIS
-#include <inttypes.h>
-#else
-#include <stdint.h>
-#endif /* Not Solaris */
-
-#include <unistd.h>
-#include <pwd.h>
-#include <netdb.h>
-#include <dirent.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#define SOCKET_READ(A,B,C)      read(A,B,C)
-#define SOCKET_WRITE(A,B,C)     write(A,B,C)
-#define SOCKET_CLOSE(A)         close(A)
-#define SOCKET_BLOCK(A)         int fd = fcntl(A, F_GETFL, NULL); \
-                                fcntl(A, F_SETFL, fd & ~O_NONBLOCK)
-#define TTY_FLUSH()
-
-#endif  /* Not Win32 */
-
-/* some functions to mutate the way these work */
-#define malloc(A)       ax_malloc(A)
-#ifndef realloc
-#define realloc(A,B)    ax_realloc(A,B)
-#endif
-#define calloc(A,B)     ax_calloc(A,B)
-
-EXP_FUNC void * STDCALL ax_malloc(size_t s);
-EXP_FUNC void * STDCALL ax_realloc(void *y, size_t s);
-EXP_FUNC void * STDCALL ax_calloc(size_t n, size_t s);
-EXP_FUNC int STDCALL ax_open(const char *pathname, int flags); 
-
-#ifdef CONFIG_PLATFORM_LINUX
-void exit_now(const char *format, ...) __attribute((noreturn));
-#else
-void exit_now(const char *format, ...);
-#endif
-
-/* Mutexing definitions */
-#if defined(CONFIG_SSL_CTX_MUTEXING)
-#if defined(WIN32)
-#define SSL_CTX_MUTEX_TYPE          HANDLE
-#define SSL_CTX_MUTEX_INIT(A)       A=CreateMutex(0, FALSE, 0)
-#define SSL_CTX_MUTEX_DESTROY(A)    CloseHandle(A)
-#define SSL_CTX_LOCK(A)             WaitForSingleObject(A, INFINITE)
-#define SSL_CTX_UNLOCK(A)           ReleaseMutex(A)
-#else 
-#include <pthread.h>
-#define SSL_CTX_MUTEX_TYPE          pthread_mutex_t
-#define SSL_CTX_MUTEX_INIT(A)       pthread_mutex_init(&A, NULL)
-#define SSL_CTX_MUTEX_DESTROY(A)    pthread_mutex_destroy(&A)
-#define SSL_CTX_LOCK(A)             pthread_mutex_lock(&A)
-#define SSL_CTX_UNLOCK(A)           pthread_mutex_unlock(&A)
-#endif
-#else   /* no mutexing */
-#define SSL_CTX_MUTEX_INIT(A)
-#define SSL_CTX_MUTEX_DESTROY(A)
-#define SSL_CTX_LOCK(A)
-#define SSL_CTX_UNLOCK(A)
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif 
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/p12.c b/package/luci/libs/luci-lib-nixio/axTLS/ssl/p12.c
deleted file mode 100644 (file)
index 6ed92e4..0000000
+++ /dev/null
@@ -1,486 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Process PKCS#8/PKCS#12 keys.
- *
- * The decoding of a PKCS#12 key is fairly specific - this code was tested on a
- * key generated with:
- *
- * openssl pkcs12 -export -in axTLS.x509_1024.pem -inkey axTLS.key_1024.pem
- * -keypbe PBE-SHA1-RC4-128 -certpbe PBE-SHA1-RC4-128 
- * -name "p12_withoutCA" -out axTLS.withoutCA.p12 -password pass:abcd
- *
- * or with a certificate chain:
- *
- * openssl pkcs12 -export -in axTLS.x509_1024.pem -inkey axTLS.key_1024.pem
- * -certfile axTLS.ca_x509.pem -keypbe PBE-SHA1-RC4-128 -certpbe
- * PBE-SHA1-RC4-128 -name "p12_withCA" -out axTLS.withCA.p12 -password pass:abcd
- *
- * Note that the PBE has to be specified with PBE-SHA1-RC4-128. The
- * private/public keys/certs have to use RSA encryption. Both the integrity
- * and privacy passwords are the same.
- *
- * The PKCS#8 files were generated with something like:
- *
- * PEM format:
- * openssl pkcs8 -in axTLS.key_512.pem -passout pass:abcd -topk8 -v1
- * PBE-SHA1-RC4-128 -out axTLS.encrypted_pem.p8
- *
- * DER format:
- * openssl pkcs8 -in axTLS.key_512.pem -passout pass:abcd -topk8 -outform DER
- * -v1 PBE-SHA1-RC4-128 -out axTLS.encrypted.p8
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "ssl.h"
-
-/* all commented out if not used */
-#ifdef CONFIG_SSL_USE_PKCS12
-
-#define BLOCK_SIZE          64
-#define PKCS12_KEY_ID       1
-#define PKCS12_IV_ID        2
-#define PKCS12_MAC_ID       3
-
-static char *make_uni_pass(const char *password, int *uni_pass_len);
-static int p8_decrypt(const char *uni_pass, int uni_pass_len, 
-                        const uint8_t *salt, int iter, 
-                        uint8_t *priv_key, int priv_key_len, int id);
-static int p8_add_key(SSL_CTX *ssl_ctx, uint8_t *priv_key);
-static int get_pbe_params(uint8_t *buf, int *offset, 
-        const uint8_t **salt, int *iterations);
-
-/*
- * Take a raw pkcs8 block and then decrypt it and turn it into a normal key.
- */
-int pkcs8_decode(SSL_CTX *ssl_ctx, SSLObjLoader *ssl_obj, const char *password)
-{
-    uint8_t *buf = ssl_obj->buf;
-    int len, offset = 0;
-    int iterations;
-    int ret = SSL_NOT_OK;
-    uint8_t *version = NULL;
-    const uint8_t *salt;
-    uint8_t *priv_key;
-    int uni_pass_len;
-    char *uni_pass = make_uni_pass(password, &uni_pass_len);
-
-    if (asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0)
-    {
-#ifdef CONFIG_SSL_FULL_MODE
-        printf("Error: Invalid p8 ASN.1 file\n");
-#endif
-        goto error;
-    }
-
-    /* unencrypted key? */
-    if (asn1_get_int(buf, &offset, &version) > 0 && *version == 0)
-    {
-        ret = p8_add_key(ssl_ctx, buf);
-        goto error;
-    }
-
-    if (get_pbe_params(buf, &offset, &salt, &iterations) < 0)
-        goto error;
-
-    if ((len = asn1_next_obj(buf, &offset, ASN1_OCTET_STRING)) < 0)
-        goto error;
-
-    priv_key = &buf[offset];
-
-    p8_decrypt(uni_pass, uni_pass_len, salt, 
-                        iterations, priv_key, len, PKCS12_KEY_ID);
-    ret = p8_add_key(ssl_ctx, priv_key);
-
-error:
-    free(version);
-    free(uni_pass);
-    return ret;
-}
-
-/*
- * Take the unencrypted pkcs8 and turn it into a private key 
- */
-static int p8_add_key(SSL_CTX *ssl_ctx, uint8_t *priv_key)
-{
-    uint8_t *buf = priv_key;
-    int len, offset = 0;
-    int ret = SSL_NOT_OK;
-
-    /* Skip the preamble and go straight to the private key.
-       We only support rsaEncryption (1.2.840.113549.1.1.1)  */
-    if (asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0 ||
-            asn1_skip_obj(buf, &offset, ASN1_INTEGER) < 0 ||
-            asn1_skip_obj(buf, &offset, ASN1_SEQUENCE) < 0 ||
-            (len = asn1_next_obj(buf, &offset, ASN1_OCTET_STRING)) < 0)
-        goto error;
-
-    ret = asn1_get_private_key(&buf[offset], len, &ssl_ctx->rsa_ctx);
-
-error:
-    return ret;
-}
-
-/*
- * Create the unicode password 
- */
-static char *make_uni_pass(const char *password, int *uni_pass_len)
-{
-    int pass_len = 0, i;
-    char *uni_pass;
-
-    if (password == NULL)
-    {
-        password = "";
-    }
-
-    uni_pass = (char *)malloc((strlen(password)+1)*2);
-
-    /* modify the password into a unicode version */
-    for (i = 0; i < (int)strlen(password); i++)
-    {
-        uni_pass[pass_len++] = 0;
-        uni_pass[pass_len++] = password[i];
-    }
-
-    uni_pass[pass_len++] = 0;       /* null terminate */
-    uni_pass[pass_len++] = 0;
-    *uni_pass_len = pass_len;
-    return uni_pass;
-}
-
-/*
- * Decrypt a pkcs8 block.
- */
-static int p8_decrypt(const char *uni_pass, int uni_pass_len,
-                        const uint8_t *salt, int iter, 
-                        uint8_t *priv_key, int priv_key_len, int id)
-{
-    uint8_t p[BLOCK_SIZE*2];
-    uint8_t d[BLOCK_SIZE];
-    uint8_t Ai[SHA1_SIZE];
-    SHA1_CTX sha_ctx;
-    RC4_CTX rc4_ctx;
-    int i;
-
-    for (i = 0; i < BLOCK_SIZE; i++)
-    {
-        p[i] = salt[i % SALT_SIZE];
-        p[BLOCK_SIZE+i] = uni_pass[i % uni_pass_len];
-        d[i] = id;
-    }
-
-    /* get the key - no IV since we are using RC4 */
-    SHA1_Init(&sha_ctx);
-    SHA1_Update(&sha_ctx, d, sizeof(d));
-    SHA1_Update(&sha_ctx, p, sizeof(p));
-    SHA1_Final(Ai, &sha_ctx);
-
-    for (i = 1; i < iter; i++)
-    {
-        SHA1_Init(&sha_ctx);
-        SHA1_Update(&sha_ctx, Ai, SHA1_SIZE);
-        SHA1_Final(Ai, &sha_ctx);
-    }
-
-    /* do the decryption */
-    if (id == PKCS12_KEY_ID)
-    {
-        RC4_setup(&rc4_ctx, Ai, 16);
-        RC4_crypt(&rc4_ctx, priv_key, priv_key, priv_key_len);
-    }
-    else  /* MAC */
-        memcpy(priv_key, Ai, SHA1_SIZE);
-
-    return 0;
-}
-
-/*
- * Take a raw pkcs12 block and the decrypt it and turn it into a certificate(s)
- * and keys.
- */
-int pkcs12_decode(SSL_CTX *ssl_ctx, SSLObjLoader *ssl_obj, const char *password)
-{
-    uint8_t *buf = ssl_obj->buf;
-    int all_ok = 0, len, iterations, auth_safes_start, 
-              auth_safes_end, auth_safes_len, key_offset, offset = 0;
-    int all_certs = 0;
-    uint8_t *version = NULL, *auth_safes = NULL, *cert, *orig_mac;
-    uint8_t key[SHA1_SIZE];
-    uint8_t mac[SHA1_SIZE];
-    const uint8_t *salt;
-    int uni_pass_len, ret;
-    int error_code = SSL_ERROR_NOT_SUPPORTED;
-    char *uni_pass = make_uni_pass(password, &uni_pass_len);
-    static const uint8_t pkcs_data[] = /* pkc7 data */
-        { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01 };
-    static const uint8_t pkcs_encrypted[] = /* pkc7 encrypted */
-        { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x06 };
-    static const uint8_t pkcs8_key_bag[] = /* 1.2.840.113549.1.12.10.1.2 */
-        { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x0c, 0x0a, 0x01, 0x02 };
-
-    if (asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0)
-    {
-#ifdef CONFIG_SSL_FULL_MODE
-        printf("Error: Invalid p12 ASN.1 file\n");
-#endif
-        goto error;
-    }
-
-    if (asn1_get_int(buf, &offset, &version) < 0 || *version != 3)
-    {
-        error_code = SSL_ERROR_INVALID_VERSION;
-        goto error;
-    }
-
-    /* remove all the boring pcks7 bits */
-    if (asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0 || 
-                (len = asn1_next_obj(buf, &offset, ASN1_OID)) < 0 ||
-                len != sizeof(pkcs_data) || 
-                memcmp(&buf[offset], pkcs_data, sizeof(pkcs_data)))
-        goto error;
-
-    offset += len;
-
-    if (asn1_next_obj(buf, &offset, ASN1_EXPLICIT_TAG) < 0 ||
-            asn1_next_obj(buf, &offset, ASN1_OCTET_STRING) < 0)
-        goto error;
-
-    /* work out the MAC start/end points (done on AuthSafes) */
-    auth_safes_start = offset;
-    auth_safes_end = offset;
-    if (asn1_skip_obj(buf, &auth_safes_end, ASN1_SEQUENCE) < 0)
-        goto error;
-
-    auth_safes_len = auth_safes_end - auth_safes_start;
-    auth_safes = malloc(auth_safes_len);
-
-    memcpy(auth_safes, &buf[auth_safes_start], auth_safes_len);
-
-    if (asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0 ||
-            asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0 ||
-            (len = asn1_next_obj(buf, &offset, ASN1_OID)) < 0 ||
-            (len != sizeof(pkcs_encrypted) || 
-            memcmp(&buf[offset], pkcs_encrypted, sizeof(pkcs_encrypted))))
-        goto error;
-
-    offset += len;
-
-    if (asn1_next_obj(buf, &offset, ASN1_EXPLICIT_TAG) < 0 ||
-            asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0 ||
-            asn1_skip_obj(buf, &offset, ASN1_INTEGER) < 0 ||
-            asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0 ||
-            (len = asn1_next_obj(buf, &offset, ASN1_OID)) < 0 ||
-            len != sizeof(pkcs_data) || 
-            memcmp(&buf[offset], pkcs_data, sizeof(pkcs_data)))
-        goto error;
-
-    offset += len;
-
-    /* work out the salt for the certificate */
-    if (get_pbe_params(buf, &offset, &salt, &iterations) < 0 ||
-            (len = asn1_next_obj(buf, &offset, ASN1_IMPLICIT_TAG)) < 0)
-        goto error;
-
-    /* decrypt the certificate */
-    cert = &buf[offset];
-    if ((ret = p8_decrypt(uni_pass, uni_pass_len, salt, iterations, cert, 
-                            len, PKCS12_KEY_ID)) < 0)
-        goto error;
-
-    offset += len;
-
-    /* load the certificate */
-    key_offset = 0;
-    all_certs = asn1_next_obj(cert, &key_offset, ASN1_SEQUENCE);
-
-    /* keep going until all certs are loaded */
-    while (key_offset < all_certs)
-    {
-        int cert_offset = key_offset;
-
-        if (asn1_skip_obj(cert, &cert_offset, ASN1_SEQUENCE) < 0 ||
-                asn1_next_obj(cert, &key_offset, ASN1_SEQUENCE) < 0 ||
-                asn1_skip_obj(cert, &key_offset, ASN1_OID) < 0 ||
-                asn1_next_obj(cert, &key_offset, ASN1_EXPLICIT_TAG) < 0 ||
-                asn1_next_obj(cert, &key_offset, ASN1_SEQUENCE) < 0 ||
-                asn1_skip_obj(cert, &key_offset, ASN1_OID) < 0 ||
-                asn1_next_obj(cert, &key_offset, ASN1_EXPLICIT_TAG) < 0 ||
-                (len = asn1_next_obj(cert, &key_offset, ASN1_OCTET_STRING)) < 0)
-            goto error;
-
-        if ((ret = add_cert(ssl_ctx, &cert[key_offset], len)) < 0)
-            goto error;
-
-        key_offset = cert_offset;
-    }
-
-    if (asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0 ||
-            (len = asn1_next_obj(buf, &offset, ASN1_OID)) < 0 ||
-            len != sizeof(pkcs_data) || 
-            memcmp(&buf[offset], pkcs_data, sizeof(pkcs_data)))
-        goto error;
-
-    offset += len;
-
-    if (asn1_next_obj(buf, &offset, ASN1_EXPLICIT_TAG) < 0 ||
-            asn1_next_obj(buf, &offset, ASN1_OCTET_STRING) < 0 ||
-            asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0 ||
-            asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0 ||
-            (len = asn1_next_obj(buf, &offset, ASN1_OID)) < 0 ||
-            (len != sizeof(pkcs8_key_bag)) || 
-            memcmp(&buf[offset], pkcs8_key_bag, sizeof(pkcs8_key_bag)))
-        goto error;
-
-    offset += len;
-
-    /* work out the salt for the private key */
-    if (asn1_next_obj(buf, &offset, ASN1_EXPLICIT_TAG) < 0 ||
-            asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0 ||
-            get_pbe_params(buf, &offset, &salt, &iterations) < 0 ||
-            (len = asn1_next_obj(buf, &offset, ASN1_OCTET_STRING)) < 0)
-        goto error;
-
-    /* decrypt the private key */
-    cert = &buf[offset];
-    if ((ret = p8_decrypt(uni_pass, uni_pass_len, salt, iterations, cert, 
-                            len, PKCS12_KEY_ID)) < 0)
-        goto error;
-
-    offset += len;
-
-    /* load the private key */
-    if ((ret = p8_add_key(ssl_ctx, cert)) < 0)
-        goto error;
-
-    /* miss out on friendly name, local key id etc */
-    if (asn1_skip_obj(buf, &offset, ASN1_SET) < 0)
-        goto error;
-
-    /* work out the MAC */
-    if (asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0 ||
-            asn1_next_obj(buf, &offset, ASN1_SEQUENCE) < 0 ||
-            asn1_skip_obj(buf, &offset, ASN1_SEQUENCE) < 0 ||
-            (len = asn1_next_obj(buf, &offset, ASN1_OCTET_STRING)) < 0 ||
-            len != SHA1_SIZE)
-        goto error;
-
-    orig_mac = &buf[offset];
-    offset += len;
-
-    /* get the salt */
-    if ((len = asn1_next_obj(buf, &offset, ASN1_OCTET_STRING)) < 0 || len != 8)
-        goto error;
-
-    salt = &buf[offset];
-
-    /* work out what the mac should be */
-    if ((ret = p8_decrypt(uni_pass, uni_pass_len, salt, iterations, 
-                            key, SHA1_SIZE, PKCS12_MAC_ID)) < 0)
-        goto error;
-
-    hmac_sha1(auth_safes, auth_safes_len, key, SHA1_SIZE, mac);
-
-    if (memcmp(mac, orig_mac, SHA1_SIZE))
-    {
-        error_code = SSL_ERROR_INVALID_HMAC;                  
-        goto error;
-    }
-
-    all_ok = 1;
-
-error:
-    free(version);
-    free(uni_pass);
-    free(auth_safes);
-    return all_ok ? SSL_OK : error_code;
-}
-
-/*
- * Retrieve the salt/iteration details from a PBE block.
- */
-static int get_pbe_params(uint8_t *buf, int *offset, 
-        const uint8_t **salt, int *iterations)
-{
-    static const uint8_t pbeSH1RC4[] = /* pbeWithSHAAnd128BitRC4  */
-            { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x0c, 0x01, 0x01 };
-
-    int i, len;
-    uint8_t *iter = NULL;
-    int error_code = SSL_ERROR_NOT_SUPPORTED;
-
-    /* Get the PBE type */
-    if (asn1_next_obj(buf, offset, ASN1_SEQUENCE) < 0 ||
-            (len = asn1_next_obj(buf, offset, ASN1_OID)) < 0)
-        goto error;
-
-    /* we expect pbeWithSHAAnd128BitRC4 (1.2.840.113549.1.12.1.1) 
-       which is the only algorithm we support */
-    if (len != sizeof(pbeSH1RC4) || 
-                    memcmp(&buf[*offset], pbeSH1RC4, sizeof(pbeSH1RC4)))
-    {
-#ifdef CONFIG_SSL_FULL_MODE
-        printf("Error: pkcs8/pkcs12 must use \"PBE-SHA1-RC4-128\"\n");
-#endif
-        goto error;
-    }
-
-    *offset += len;
-
-    if (asn1_next_obj(buf, offset, ASN1_SEQUENCE) < 0 ||
-            (len = asn1_next_obj(buf, offset, ASN1_OCTET_STRING)) < 0 || 
-            len != 8)
-        goto error;
-
-    *salt = &buf[*offset];
-    *offset += len;
-
-    if ((len = asn1_get_int(buf, offset, &iter)) < 0)
-        goto error;
-
-    *iterations = 0;
-    for (i = 0; i < len; i++)
-    {
-        (*iterations) <<= 8;
-        (*iterations) += iter[i];
-    }
-
-    free(iter);
-    error_code = SSL_OK;       /* got here - we are ok */
-
-error:
-    return error_code;
-}
-
-#endif
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/private_key.h b/package/luci/libs/luci-lib-nixio/axTLS/ssl/private_key.h
deleted file mode 100644 (file)
index 96a5253..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-unsigned char default_private_key[] = {
-  0x30, 0x82, 0x02, 0x5d, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00, 0xd8,
-  0xe0, 0xbf, 0x15, 0xde, 0xea, 0xaf, 0xe8, 0xd5, 0xfd, 0x0b, 0xa8, 0xa8,
-  0xb3, 0xd7, 0x46, 0x5d, 0xa7, 0x26, 0x6c, 0x0c, 0xb5, 0xd9, 0xbc, 0xc6,
-  0xf8, 0xc0, 0x78, 0xd0, 0xf6, 0x56, 0x65, 0xf8, 0x29, 0x48, 0x0e, 0x7b,
-  0x0b, 0xa6, 0x25, 0x7e, 0xe8, 0x7b, 0x79, 0x6f, 0x38, 0xe5, 0xb5, 0xb7,
-  0xf4, 0xe0, 0x9c, 0x91, 0x60, 0xf4, 0x06, 0xf3, 0x40, 0x1e, 0xf9, 0x91,
-  0x19, 0xa9, 0x2f, 0x47, 0x43, 0xb5, 0x9b, 0x1e, 0xdc, 0xf6, 0xaa, 0x1c,
-  0x49, 0x79, 0x21, 0x28, 0xcb, 0xaa, 0x49, 0x73, 0xd9, 0x09, 0x05, 0x4c,
-  0x02, 0xf2, 0x4c, 0x4d, 0x6c, 0x1c, 0x80, 0xa7, 0x14, 0x91, 0x44, 0xfc,
-  0x12, 0xb3, 0xe1, 0xe7, 0xe3, 0x4f, 0x44, 0xba, 0x8c, 0xc3, 0x74, 0x39,
-  0xe8, 0x4c, 0xd0, 0xd4, 0x4c, 0x24, 0x61, 0xb4, 0x40, 0x95, 0x8c, 0xc0,
-  0x0a, 0xb7, 0x02, 0x39, 0x31, 0x85, 0x93, 0x02, 0x03, 0x01, 0x00, 0x01,
-  0x02, 0x81, 0x81, 0x00, 0x94, 0x07, 0x72, 0xe5, 0xbe, 0xad, 0x79, 0x3b,
-  0xf7, 0x33, 0x2c, 0x8e, 0x05, 0xf8, 0x1a, 0x6b, 0xd0, 0xe8, 0x91, 0xf5,
-  0x16, 0x07, 0xd9, 0x82, 0x5c, 0x5c, 0xd5, 0x22, 0xa1, 0x9e, 0x42, 0x02,
-  0x7f, 0x8b, 0xcd, 0xbe, 0xf4, 0x85, 0x52, 0xf6, 0x2c, 0xd5, 0x09, 0xd2,
-  0x2c, 0xf4, 0x2c, 0xf6, 0x07, 0x85, 0x80, 0xf9, 0xdc, 0xd0, 0xcc, 0x3f,
-  0x22, 0x31, 0x15, 0xf3, 0x49, 0xf2, 0xb5, 0xe2, 0x69, 0x99, 0x04, 0x04,
-  0x49, 0x21, 0xdb, 0x9f, 0xa1, 0x54, 0x5a, 0xfa, 0xe4, 0xd9, 0xf9, 0x07,
-  0x05, 0xff, 0x9a, 0x65, 0xa4, 0xeb, 0xf2, 0x47, 0xce, 0x56, 0xc7, 0x72,
-  0x49, 0x48, 0x5c, 0xe8, 0x14, 0xd7, 0x8f, 0x25, 0xcc, 0x49, 0x29, 0x06,
-  0x6a, 0x54, 0x7b, 0x17, 0xdc, 0x9e, 0xd4, 0x53, 0xf0, 0xf5, 0x9e, 0x85,
-  0x25, 0xa1, 0xeb, 0x3d, 0xe9, 0x2f, 0xb9, 0x9c, 0xf6, 0xe1, 0x80, 0x81,
-  0x02, 0x41, 0x00, 0xee, 0x02, 0x78, 0xc7, 0x78, 0x85, 0x04, 0x97, 0xcc,
-  0x36, 0xbd, 0xd6, 0x11, 0xe2, 0xc7, 0x39, 0xd9, 0x34, 0x51, 0x72, 0x6f,
-  0x8a, 0x0f, 0xcd, 0x88, 0x32, 0x33, 0x9b, 0xc7, 0xa7, 0x03, 0x77, 0xd9,
-  0x82, 0x35, 0xb6, 0xdd, 0x1f, 0xc2, 0xc1, 0x13, 0x40, 0x83, 0x55, 0xeb,
-  0x60, 0xeb, 0x81, 0x8e, 0x0c, 0x16, 0x62, 0xb4, 0xb4, 0x3c, 0xeb, 0x08,
-  0x80, 0x9c, 0x79, 0xd3, 0x38, 0xca, 0xf1, 0x02, 0x41, 0x00, 0xe9, 0x45,
-  0x5f, 0x2e, 0x16, 0xcc, 0x93, 0x50, 0x40, 0xb6, 0x79, 0xbc, 0x38, 0xe0,
-  0x56, 0x68, 0x50, 0xd3, 0x2f, 0x73, 0x8c, 0x8c, 0x2a, 0x0e, 0x81, 0x4a,
-  0x8a, 0xbb, 0xcc, 0xf0, 0x64, 0x34, 0x46, 0x9f, 0x07, 0x7d, 0x22, 0xb6,
-  0xf9, 0x46, 0xac, 0x57, 0x23, 0x8c, 0x1e, 0xeb, 0xd3, 0x05, 0x4d, 0xa8,
-  0x83, 0x6a, 0x67, 0xf6, 0xa6, 0xb1, 0xab, 0x8e, 0xc1, 0xef, 0xef, 0x7d,
-  0xf0, 0xc3, 0x02, 0x40, 0x2f, 0xc6, 0x59, 0x3e, 0x18, 0xe8, 0x02, 0x73,
-  0x01, 0xef, 0xdf, 0x0d, 0x30, 0x4b, 0xe8, 0x17, 0xa9, 0x8c, 0xc1, 0xe8,
-  0x89, 0x91, 0x19, 0xf8, 0xf4, 0xa4, 0xb7, 0x0d, 0x46, 0xf7, 0x34, 0x50,
-  0x03, 0x5e, 0x0a, 0xb0, 0x29, 0x14, 0xae, 0x00, 0x19, 0x80, 0x32, 0x9c,
-  0xb5, 0x81, 0x9f, 0xe4, 0x42, 0x82, 0x14, 0xa0, 0x3d, 0x8b, 0x8c, 0x4a,
-  0xd5, 0x4b, 0x13, 0x9d, 0xb4, 0x93, 0x4a, 0xd1, 0x02, 0x40, 0x64, 0x8c,
-  0x83, 0x77, 0x61, 0x5a, 0x73, 0x11, 0x3f, 0xa3, 0xa8, 0x1b, 0x8a, 0xc4,
-  0xa0, 0x5a, 0x3c, 0xa4, 0x9b, 0x2a, 0x8a, 0x65, 0x8c, 0x67, 0x4e, 0x31,
-  0xac, 0x55, 0x41, 0x04, 0x49, 0x9d, 0x02, 0xe7, 0xdf, 0x99, 0x7f, 0xd2,
-  0x30, 0xe6, 0xd6, 0xb8, 0x84, 0xd9, 0x0c, 0x27, 0x08, 0x81, 0x9b, 0xb4,
-  0xcc, 0x58, 0x9c, 0x51, 0x84, 0x0e, 0xc7, 0x6d, 0x34, 0x89, 0x50, 0xc9,
-  0x0f, 0x73, 0x02, 0x41, 0x00, 0xda, 0xde, 0x5e, 0x1a, 0xac, 0x1d, 0x1d,
-  0xd7, 0xb9, 0x65, 0x26, 0x00, 0xf5, 0xd4, 0xe4, 0x28, 0x84, 0x86, 0x2f,
-  0x00, 0x9c, 0x41, 0x00, 0x52, 0xe1, 0x47, 0x91, 0xc0, 0x52, 0x05, 0x4e,
-  0x0f, 0x2f, 0x0d, 0xca, 0x9b, 0x3d, 0x89, 0x41, 0xbf, 0xee, 0x9f, 0xa1,
-  0xe6, 0x9d, 0xa4, 0xeb, 0x45, 0x7f, 0xe3, 0xcb, 0xa4, 0x6b, 0x0a, 0xe2,
-  0x7e, 0xb0, 0x87, 0x5c, 0x40, 0xb1, 0x51, 0x11, 0x1d
-};
-unsigned int default_private_key_len = 609;
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/ssl.h b/package/luci/libs/luci-lib-nixio/axTLS/ssl/ssl.h
deleted file mode 100644 (file)
index 539d0a3..0000000
+++ /dev/null
@@ -1,474 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * @mainpage axTLS API
- *
- * @image html axolotl.jpg
- *
- * The axTLS library has features such as:
- * - The TLSv1 SSL client/server protocol
- * - No requirement to use any openssl libraries.
- * - A choice between AES block (128/256 bit) and RC4 (128 bit) stream ciphers.
- * - RSA encryption/decryption with variable sized keys (up to 4096 bits).
- * - Certificate chaining and peer authentication.
- * - Session resumption, session renegotiation.
- * - ASN.1, X.509, PKCS#8, PKCS#12 keys/certificates with DER/PEM encoding.
- * - Highly configurable compile time options.
- * - Portable across many platforms (written in ANSI C), and has language
- * bindings in C, C#, VB.NET, Java, Perl and Lua.
- * - Partial openssl API compatibility (via a wrapper).
- * - A very small footprint (around 50-60kB for the library in 'server-only' 
- *   mode).
- * - No dependencies on sockets - can use serial connections for example.
- * - A very simple API - ~ 20 functions/methods.
- *
- * A list of these functions/methods are described below.
- *
- *  @ref c_api 
- *
- *  @ref bigint_api 
- *
- *  @ref csharp_api 
- *
- *  @ref java_api 
- */
-#ifndef HEADER_SSL_H
-#define HEADER_SSL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <time.h>
-//#include "crypto.h"
-
-/* need to predefine before ssl_lib.h gets to it */
-#define SSL_SESSION_ID_SIZE                     32
-
-#include "tls1.h"
-
-/* The optional parameters that can be given to the client/server SSL engine */
-#define SSL_CLIENT_AUTHENTICATION               0x00010000
-#define SSL_SERVER_VERIFY_LATER                 0x00020000
-#define SSL_NO_DEFAULT_KEY                      0x00040000
-#define SSL_DISPLAY_STATES                      0x00080000
-#define SSL_DISPLAY_BYTES                       0x00100000
-#define SSL_DISPLAY_CERTS                       0x00200000
-#define SSL_DISPLAY_RSA                         0x00400000
-
-/* errors that can be generated */
-#define SSL_OK                                  0
-#define SSL_NOT_OK                              -1
-#define SSL_ERROR_DEAD                          -2
-#define SSL_ERROR_CONN_LOST                     -256
-#define SSL_ERROR_SOCK_SETUP_FAILURE            -258
-#define SSL_ERROR_INVALID_HANDSHAKE             -260
-#define SSL_ERROR_INVALID_PROT_MSG              -261
-#define SSL_ERROR_INVALID_HMAC                  -262
-#define SSL_ERROR_INVALID_VERSION               -263
-#define SSL_ERROR_INVALID_SESSION               -265
-#define SSL_ERROR_NO_CIPHER                     -266
-#define SSL_ERROR_BAD_CERTIFICATE               -268
-#define SSL_ERROR_INVALID_KEY                   -269
-#define SSL_ERROR_FINISHED_INVALID              -271
-#define SSL_ERROR_NO_CERT_DEFINED               -272
-#define SSL_ERROR_NOT_SUPPORTED                 -274
-#define SSL_X509_OFFSET                         -512
-#define SSL_X509_ERROR(A)                       (SSL_X509_OFFSET+A)
-
-/* these are all the alerts that are recognized */
-#define SSL_ALERT_CLOSE_NOTIFY                  0
-#define SSL_ALERT_UNEXPECTED_MESSAGE            10
-#define SSL_ALERT_BAD_RECORD_MAC                20
-#define SSL_ALERT_HANDSHAKE_FAILURE             40
-#define SSL_ALERT_BAD_CERTIFICATE               42
-#define SSL_ALERT_ILLEGAL_PARAMETER             47
-#define SSL_ALERT_DECODE_ERROR                  50
-#define SSL_ALERT_DECRYPT_ERROR                 51
-#define SSL_ALERT_INVALID_VERSION               70
-
-/* The ciphers that are supported */
-#define SSL_AES128_SHA                          0x2f
-#define SSL_AES256_SHA                          0x35
-#define SSL_RC4_128_SHA                         0x05
-#define SSL_RC4_128_MD5                         0x04
-
-/* build mode ids' */
-#define SSL_BUILD_SKELETON_MODE                 0x01
-#define SSL_BUILD_SERVER_ONLY                   0x02
-#define SSL_BUILD_ENABLE_VERIFICATION           0x03
-#define SSL_BUILD_ENABLE_CLIENT                 0x04
-#define SSL_BUILD_FULL_MODE                     0x05
-
-/* offsets to retrieve configuration information */
-#define SSL_BUILD_MODE                          0
-#define SSL_MAX_CERT_CFG_OFFSET                 1
-#define SSL_MAX_CA_CERT_CFG_OFFSET              2
-#define SSL_HAS_PEM                             3
-
-/* default session sizes */
-#define SSL_DEFAULT_SVR_SESS                    5
-#define SSL_DEFAULT_CLNT_SESS                   1
-
-/* X.509/X.520 distinguished name types */
-#define SSL_X509_CERT_COMMON_NAME               0
-#define SSL_X509_CERT_ORGANIZATION              1
-#define SSL_X509_CERT_ORGANIZATIONAL_NAME       2
-#define SSL_X509_CA_CERT_COMMON_NAME            3
-#define SSL_X509_CA_CERT_ORGANIZATION           4
-#define SSL_X509_CA_CERT_ORGANIZATIONAL_NAME    5
-
-/* SSL object loader types */
-#define SSL_OBJ_X509_CERT                       1
-#define SSL_OBJ_X509_CACERT                     2
-#define SSL_OBJ_RSA_KEY                         3
-#define SSL_OBJ_PKCS8                           4
-#define SSL_OBJ_PKCS12                          5
-
-/**
- * @defgroup c_api Standard C API
- * @brief The standard interface in C.
- * @{
- */
-
-/**
- * @brief Establish a new client/server context.
- *
- * This function is called before any client/server SSL connections are made. 
- *
- * Each new connection will use the this context's private key and 
- * certificate chain. If a different certificate chain is required, then a 
- * different context needs to be be used.
- *
- * There are two threading models supported - a single thread with one
- * SSL_CTX can support any number of SSL connections - and multiple threads can 
- * support one SSL_CTX object each (the default). But if a single SSL_CTX 
- * object uses many SSL objects in individual threads, then the 
- * CONFIG_SSL_CTX_MUTEXING option needs to be configured.
- *
- * @param options [in]  Any particular options. At present the options
- * supported are:
- * - SSL_SERVER_VERIFY_LATER (client only): Don't stop a handshake if the server
- * authentication fails. The certificate can be authenticated later with a
- * call to ssl_verify_cert().
- * - SSL_CLIENT_AUTHENTICATION (server only): Enforce client authentication
- * i.e. each handshake will include a "certificate request" message from the
- * server. Only available if verification has been enabled.
- * - SSL_DISPLAY_BYTES (full mode build only): Display the byte sequences
- * during the handshake.
- * - SSL_DISPLAY_STATES (full mode build only): Display the state changes
- * during the handshake.
- * - SSL_DISPLAY_CERTS (full mode build only): Display the certificates that
- * are passed during a handshake.
- * - SSL_DISPLAY_RSA (full mode build only): Display the RSA key details that
- * are passed during a handshake.
- *
- * @param num_sessions [in] The number of sessions to be used for session
- * caching. If this value is 0, then there is no session caching. This option
- * is not used in skeleton mode.
- * @return A client/server context.
- */
-EXP_FUNC SSL_CTX * STDCALL ssl_ctx_new(uint32_t options, int num_sessions);
-
-/**
- * @brief Remove a client/server context.
- *
- * Frees any used resources used by this context. Each connection will be 
- * sent a "Close Notify" alert (if possible).
- * @param ssl_ctx [in] The client/server context.
- */
-EXP_FUNC void STDCALL ssl_ctx_free(SSL_CTX *ssl_ctx);
-
-/**
- * @brief (server only) Establish a new SSL connection to an SSL client.
- *
- * It is up to the application to establish the logical connection (whether it
- * is  a socket, serial connection etc).
- * @param ssl_ctx [in] The server context.
- * @param client_fd [in] The client's file descriptor. 
- * @return An SSL object reference.
- */
-EXP_FUNC SSL * STDCALL ssl_server_new(SSL_CTX *ssl_ctx, int client_fd);
-
-/**
- * @brief (client only) Establish a new SSL connection to an SSL server.
- *
- * It is up to the application to establish the initial logical connection 
- * (whether it is  a socket, serial connection etc).
- *
- * This is a blocking call - it will finish when the handshake is complete (or
- * has failed).
- * @param ssl_ctx [in] The client context.
- * @param client_fd [in] The client's file descriptor.
- * @param session_id [in] A 32 byte session id for session resumption. This 
- * can be null if no session resumption is being used or required. This option
- * is not used in skeleton mode.
- * @param sess_id_size The size of the session id (max 32)
- * @return An SSL object reference. Use ssl_handshake_status() to check 
- * if a handshake succeeded.
- */
-EXP_FUNC SSL * STDCALL ssl_client_new(SSL_CTX *ssl_ctx, int client_fd, const uint8_t *session_id, uint8_t sess_id_size);
-
-/**
- * @brief Free any used resources on this connection. 
- * A "Close Notify" message is sent on this connection (if possible). It is up 
- * to the application to close the socket or file descriptor.
- * @param ssl [in] The ssl object reference.
- */
-EXP_FUNC void STDCALL ssl_free(SSL *ssl);
-
-/**
- * @brief Read the SSL data stream.
- * The socket must be in blocking mode.
- * @param ssl [in] An SSL object reference.
- * @param in_data [out] If the read was successful, a pointer to the read
- * buffer will be here. Do NOT ever free this memory as this buffer is used in
- * sucessive calls. If the call was unsuccessful, this value will be null.
- * @return The number of decrypted bytes:
- * - if > 0, then the handshaking is complete and we are returning the number 
- *   of decrypted bytes. 
- * - SSL_OK if the handshaking stage is successful (but not yet complete).  
- * - < 0 if an error.
- * @see ssl.h for the error code list.
- * @note Use in_data before doing any successive ssl calls.
- */
-EXP_FUNC int STDCALL ssl_read(SSL *ssl, uint8_t **in_data);
-
-/**
- * @brief Write to the SSL data stream. 
- * The socket must be in blocking mode.
- * @param ssl [in] An SSL obect reference.
- * @param out_data [in] The data to be written
- * @param out_len [in] The number of bytes to be written.
- * @return The number of bytes sent, or if < 0 if an error.
- * @see ssl.h for the error code list.
- */
-EXP_FUNC int STDCALL ssl_write(SSL *ssl, const uint8_t *out_data, int out_len);
-
-/**
- * @brief Find an ssl object based on a file descriptor.
- *
- * Goes through the list of SSL objects maintained in a client/server context
- * to look for a file descriptor match.
- * @param ssl_ctx [in] The client/server context.
- * @param client_fd [in]  The file descriptor.
- * @return A reference to the SSL object. Returns null if the object could not 
- * be found.
- */
-EXP_FUNC SSL * STDCALL ssl_find(SSL_CTX *ssl_ctx, int client_fd);
-
-/**
- * @brief Get the session id for a handshake. 
- * 
- * This will be a 32 byte sequence and is available after the first
- * handshaking messages are sent.
- * @param ssl [in] An SSL object reference.
- * @return The session id as a 32 byte sequence.
- * @note A SSLv23 handshake may have only 16 valid bytes.
- */
-EXP_FUNC const uint8_t * STDCALL ssl_get_session_id(const SSL *ssl);
-
-/**
- * @brief Get the session id size for a handshake. 
- * 
- * This will normally be 32 but could be 0 (no session id) or something else.
- * @param ssl [in] An SSL object reference.
- * @return The size of the session id.
- */
-EXP_FUNC uint8_t STDCALL ssl_get_session_id_size(const SSL *ssl);
-
-/**
- * @brief Return the cipher id (in the SSL form).
- * @param ssl [in] An SSL object reference.
- * @return The cipher id. This will be one of the following:
- * - SSL_AES128_SHA (0x2f)
- * - SSL_AES256_SHA (0x35)
- * - SSL_RC4_128_SHA (0x05)
- * - SSL_RC4_128_MD5 (0x04)
- */
-EXP_FUNC uint8_t STDCALL ssl_get_cipher_id(const SSL *ssl);
-
-/**
- * @brief Return the status of the handshake.
- * @param ssl [in] An SSL object reference.
- * @return SSL_OK if the handshake is complete and ok. 
- * @see ssl.h for the error code list.
- */
-EXP_FUNC int STDCALL ssl_handshake_status(const SSL *ssl);
-
-/**
- * @brief Retrieve various parameters about the axTLS engine.
- * @param offset [in] The configuration offset. It will be one of the following:
- * - SSL_BUILD_MODE The build mode. This will be one of the following:
- *   - SSL_BUILD_SERVER_ONLY            (basic server mode)
- *   - SSL_BUILD_ENABLE_VERIFICATION    (server can do client authentication)
- *   - SSL_BUILD_ENABLE_CLIENT          (client/server capabilties)
- *   - SSL_BUILD_FULL_MODE              (client/server with diagnostics)
- *   - SSL_BUILD_SKELETON_MODE          (skeleton mode)
- * - SSL_MAX_CERT_CFG_OFFSET The maximum number of certificates allowed.
- * - SSL_MAX_CA_CERT_CFG_OFFSET The maximum number of CA certificates allowed.
- * - SSL_HAS_PEM                        1 if supported
- * @return The value of the requested parameter.
- */
-EXP_FUNC int STDCALL ssl_get_config(int offset);
-
-/**
- * @brief Display why the handshake failed.
- *
- * This call is only useful in a 'full mode' build. The output is to stdout.
- * @param error_code [in] An error code.
- * @see ssl.h for the error code list.
- */
-EXP_FUNC void STDCALL ssl_display_error(int error_code);
-
-/**
- * @brief Authenticate a received certificate.
- * 
- * This call is usually made by a client after a handshake is complete and the
- * context is in SSL_SERVER_VERIFY_LATER mode.
- * @param ssl [in] An SSL object reference.
- * @return SSL_OK if the certificate is verified.
- */
-EXP_FUNC int STDCALL ssl_verify_cert(const SSL *ssl);
-
-/**
- * @brief Retrieve an X.509 distinguished name component.
- * 
- * When a handshake is complete and a certificate has been exchanged, then the
- * details of the remote certificate can be retrieved.
- *
- * This will usually be used by a client to check that the server's common 
- * name matches the URL.
- *
- * A full handshake needs to occur for this call to work properly.
- *
- * @param ssl [in] An SSL object reference.
- * @param component [in] one of:
- * - SSL_X509_CERT_COMMON_NAME
- * - SSL_X509_CERT_ORGANIZATION
- * - SSL_X509_CERT_ORGANIZATIONAL_NAME
- * - SSL_X509_CA_CERT_COMMON_NAME
- * - SSL_X509_CA_CERT_ORGANIZATION
- * - SSL_X509_CA_CERT_ORGANIZATIONAL_NAME
- * @return The appropriate string (or null if not defined)
- * @note Verification build mode must be enabled.
- */
-EXP_FUNC const char * STDCALL ssl_get_cert_dn(const SSL *ssl, int component);
-
-/**
- * @brief Force the client to perform its handshake again.
- *
- * For a client this involves sending another "client hello" message.
- * For the server is means sending a "hello request" message.
- *
- * This is a blocking call on the client (until the handshake completes).
- *
- * @param ssl [in] An SSL object reference.
- * @return SSL_OK if renegotiation instantiation was ok
- */
-EXP_FUNC int STDCALL ssl_renegotiate(SSL *ssl);
-
-/**
- * @brief Process a file that is in binary DER or ASCII PEM format.
- *
- * These are temporary objects that are used to load private keys,
- * certificates etc into memory.
- * @param ssl_ctx [in] The client/server context.
- * @param obj_type [in] The format of the file. Can be one of:
- * - SSL_OBJ_X509_CERT (no password required)
- * - SSL_OBJ_X509_CACERT (no password required)
- * - SSL_OBJ_RSA_KEY (AES128/AES256 PEM encryption supported)
- * - SSL_OBJ_PKCS8 (RC4-128 encrypted data supported)
- * - SSL_OBJ_PKCS12 (RC4-128 encrypted data supported)
- *
- * PEM files are automatically detected (if supported). The object type is
- * also detected, and so is not relevant for these types of files.
- * @param filename [in] The location of a file in DER/PEM format.
- * @param password [in] The password used. Can be null if not required.
- * @return SSL_OK if all ok
- * @note Not available in skeleton build mode.
- */
-EXP_FUNC int STDCALL ssl_obj_load(SSL_CTX *ssl_ctx, int obj_type, const char *filename, const char *password);
-
-/**
- * @brief Process binary data.
- *
- * These are temporary objects that are used to load private keys,
- * certificates etc into memory.
- * @param ssl_ctx [in] The client/server context.
- * @param obj_type [in] The format of the memory data.
- * @param data [in] The binary data to be loaded.
- * @param len [in] The amount of data to be loaded.
- * @param password [in] The password used. Can be null if not required.
- * @return SSL_OK if all ok
- * @see ssl_obj_load for more details on obj_type.
- */
-EXP_FUNC int STDCALL ssl_obj_memory_load(SSL_CTX *ssl_ctx, int obj_type, const uint8_t *data, int len, const char *password);
-
-#ifdef CONFIG_SSL_GENERATE_X509_CERT
-/**
- * @brief Create an X.509 certificate. 
- * 
- * This certificate is a self-signed v1 cert with a fixed start/stop validity 
- * times. It is signed with an internal private key in ssl_ctx.
- *
- * @param ssl_ctx [in] The client/server context.
- * @param options [in] Not used yet.
- * @param dn [in] An array of distinguished name strings. The array is defined
- * by:
- * - SSL_X509_CERT_COMMON_NAME (0)
- *      - If SSL_X509_CERT_COMMON_NAME is empty or not defined, then the 
- *        hostname will be used.
- * - SSL_X509_CERT_ORGANIZATION (1)
- *      - If SSL_X509_CERT_ORGANIZATION is empty or not defined, then $USERNAME 
- *        will be used.
- * - SSL_X509_CERT_ORGANIZATIONAL_NAME (2)
- *      - SSL_X509_CERT_ORGANIZATIONAL_NAME is optional.
- * @param cert_data [out] The certificate as a sequence of bytes.
- * @return < 0 if an error, or the size of the certificate in bytes.
- * @note cert_data must be freed when there is no more need for it.
- */
-EXP_FUNC int STDCALL ssl_x509_create(SSL_CTX *ssl_ctx, uint32_t options, const char * dn[], uint8_t **cert_data);
-#endif
-
-/**
- * @brief Return the axTLS library version as a string.
- */
-EXP_FUNC const char * STDCALL ssl_version(void);
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/Makefile b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/Makefile
deleted file mode 100644 (file)
index 56c711f..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-all:
-
-AXTLS_HOME=../..
-
-include $(AXTLS_HOME)/config/.config
-include $(AXTLS_HOME)/config/makefile.conf
-
-ifdef CONFIG_PERFORMANCE_TESTING
-all: performance
-endif
-
-ifdef CONFIG_SSL_TEST
-all: ssltesting
-endif
-
-include $(AXTLS_HOME)/config/makefile.post
-
-ifndef CONFIG_PLATFORM_WIN32
-performance: $(AXTLS_HOME)/$(STAGE)/perf_bigint
-ssltesting: $(AXTLS_HOME)/$(STAGE)/ssltest
-LIBS=$(AXTLS_HOME)/$(STAGE)
-
-$(AXTLS_HOME)/$(STAGE)/perf_bigint: perf_bigint.o $(LIBS)/libaxtls.a
-       $(CC) $(LDFLAGS) -o $@ $^ -L $(LIBS) -laxtls
-
-$(AXTLS_HOME)/$(STAGE)/ssltest: ssltest.o $(LIBS)/libaxtls.a
-       $(CC) $(LDFLAGS) -o $@ $^ -lpthread -L $(LIBS) -laxtls
-else
-performance: $(AXTLS_HOME)/$(STAGE)/perf_bigint.exe
-ssltesting: $(AXTLS_HOME)/$(STAGE)/ssltest.exe
-
-CRYPTO_PATH="$(AXTLS_INCLUDE)crypto\\"
-AXTLS_SSL_PATH="$(AXTLS_INCLUDE)ssl\\"
-
-CRYPTO_OBJ=\
-       $(CRYPTO_PATH)aes.obj \
-       $(CRYPTO_PATH)bigint.obj \
-       $(CRYPTO_PATH)crypto_misc.obj \
-       $(CRYPTO_PATH)hmac.obj \
-       $(CRYPTO_PATH)md2.obj \
-       $(CRYPTO_PATH)md5.obj \
-       $(CRYPTO_PATH)rc4.obj \
-       $(CRYPTO_PATH)rsa.obj \
-       $(CRYPTO_PATH)sha1.obj
-
-OBJ=\
-       $(AXTLS_SSL_PATH)asn1.obj \
-       $(AXTLS_SSL_PATH)gen_cert.obj \
-       $(AXTLS_SSL_PATH)loader.obj \
-       $(AXTLS_SSL_PATH)openssl.obj \
-       $(AXTLS_SSL_PATH)os_port.obj \
-       $(AXTLS_SSL_PATH)p12.obj \
-       $(AXTLS_SSL_PATH)x509.obj \
-       $(AXTLS_SSL_PATH)tls1.obj \
-       $(AXTLS_SSL_PATH)tls1_svr.obj \
-       $(AXTLS_SSL_PATH)tls1_clnt.obj
-
-$(AXTLS_HOME)/$(STAGE)/perf_bigint.exe: perf_bigint.obj
-       $(LD) $(LDFLAGS) /out:$@ $? $(CRYPTO_OBJ) $(OBJ)
-
-$(AXTLS_HOME)/$(STAGE)/ssltest.exe: ssltest.obj
-       $(LD) $(LDFLAGS) /out:$@ $? $(CRYPTO_OBJ) $(OBJ)
-endif
-
-clean::
-       -@rm -f $(AXTLS_HOME)/$(STAGE)/perf_bigint* $(AXTLS_HOME)/$(STAGE)/ssltest*
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.ca_key.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.ca_key.pem
deleted file mode 100644 (file)
index 7c8ac8a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICWwIBAAKBgQCnZdk20fYWh8O6kDTt0AuJWyp0YIrb7W1UNNMPXI5wA4J59IVj
-Nmk5wocm9+Hqzbg7rORAN/mHPBhzLAjhnm1HODs36hW15DtbDkkH4wCM/Tsyv79m
-n0xq1V6peK3t9vi2D4p/IRjHkYR2jm+BeknopijhY0kHHfpGTHa2DnVirwIDAQAB
-AoGAd4Ia5SxYiBU9A0BYyT8yPUm8sYELIaAL4YYk+F6Xwhh/Whnb8MyzquzaGFP4
-Ee30jYYNHlvX5VheDDtvy8OTN5FgKNNdzvW15iA4Hxje04ZI7W87G7OIxm7aYRid
-sG4XqZBtsOdj33IRd9hgozywGJ2qRqS6nn2KxRv1w07RniECQQDZAlKxijdn+vQ7
-8/8mXzC+FwQtzeTUCuLrBJcos9I/591ABoxYkWcYLxpFqgCEVwb1qfPBJkL07JPt
-Fu6CTnBFAkEAxXmUBs47x5QM99qyBO5UwW0Ksrm/WD4guaaxzQShMt/HzgJl613z
-/x4FtxiQJHAr6r2K0t5xTJx89LVKuouYYwJAImue6DAvJ5wDfzrtXo28snn+HLHK
-uONdKL/apgcXszE4w74GJsoxWwGlniUf3d3b6b1iP2GtPyIDOJjpjduZLQJAE4jS
-VtYB3d1MZxxQLeKxqayyuTlcr0r+C79sqT5C//hZGIzuLhlOMLd0k0cvwxsBjSgQ
-2ok8pfp49fAVI1z5xwJAVmJgLc/mSti5A2q3c8HW8qvMJEDPWbpb7p8pg4ePtpa8
-EE3TO4O4J2H+k40C397km4yZXdkNQsiT1zVljJZpiw==
------END RSA PRIVATE KEY-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.ca_x509.cer b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.ca_x509.cer
deleted file mode 100644 (file)
index 9c9936b..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.ca_x509.cer and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.ca_x509.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.ca_x509.pem
deleted file mode 100644 (file)
index 86f6597..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIB3zCCAUgCCQCdbnM4pjqlWjANBgkqhkiG9w0BAQUFADA0MTIwMAYDVQQKEylh
-eFRMUyBQcm9qZWN0IERvZGd5IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNjA2
-MDcxMTQ0MzJaFw0zMzEwMjMxMTQ0MzJaMDQxMjAwBgNVBAoTKWF4VExTIFByb2pl
-Y3QgRG9kZ3kgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQCnZdk20fYWh8O6kDTt0AuJWyp0YIrb7W1UNNMPXI5wA4J59IVj
-Nmk5wocm9+Hqzbg7rORAN/mHPBhzLAjhnm1HODs36hW15DtbDkkH4wCM/Tsyv79m
-n0xq1V6peK3t9vi2D4p/IRjHkYR2jm+BeknopijhY0kHHfpGTHa2DnVirwIDAQAB
-MA0GCSqGSIb3DQEBBQUAA4GBAB0LgNo0oCcwIie5plgwwFybQ8x95q6e3wndM/Mp
-3gjcAFbGuchpo3dfFlTcRI0KyERb3q1MVxPM4sff9nT7EdHVyK9s8/ITkP2dcTKc
-flbcTEfJVIeM8L2P5F41Hvn9GuGcMW8EmsC06gdbp1LLnqsdrXdMNBsAUBXfgPrU
-+UcZ
------END CERTIFICATE-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.device_key b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.device_key
deleted file mode 100644 (file)
index 4e981d1..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.device_key and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.device_key.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.device_key.pem
deleted file mode 100644 (file)
index 2bcf5e3..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQDUIg4NEiu/diDAlbsWbTAhMKw4iBf2X5ohGJdTO6vhGQdEkhBR
-Bgzdl9+0LbVDJY8YStUghwnuztT+IpNCrUtXtRK8Cn3QP+buzSe2ZGPVoEJIbvV/
-QudK/WuUDyTNSRTtW4S3RO36KqtbT6xh1QGTXV3I8sp7qwmcysklqZW8GwIDAQAB
-AoGBAKBEDkuPw9+Ftp7pQIxj963LoQGgyEHJ3p9Mfd9TQLrydsw2cf9Uy9mKiWcN
-9VkCgkZ/Gt/VRgrW1pIduxXv6O+8S14An+2mTayy3Ga1N6MulD7OHQP9kqR4j8TT
-xaYPR/1skjhQ+Y0Uw4NEa3OkQp6lAUEp1aVX/mTfIZBguaUxAkEA/H543Ha6wbUV
-iB+pHaBgj1nzarmuEey6kqqs7X0zoZory1X6bdpJ6l0/4qICa6aq+pt/7ywJCNoI
-CPK3mL2zGQJBANcUHRBe7/HRWrJNIqB2WDA/gJshq4xOAiIBXWk1wpabvpkCnUjQ
-rip5CAL3hXDnCQswZxRN/v7B4IlSxkKiY1MCQQCsL0MUdRMejfLFBXI6defjWiAZ
-I86FAr6oziNnQP44sf4zh8pjp3zIihbK4lhsORhYFjrES29NzgG0uHBjhNnhAj97
-gBEwVVNyh8SMnb5EZbA+BDjU24CmECUpYZ9Bypzx3nyTX+zw4uMfgGAZVAhLzF5l
-DmYiQqcpoipMsDsoCBcCQQCxBYSicXIPG8G6ZuFbgXFcZR7llgq74mbhfGuVEGbP
-qS6ldhJb/IG9O3MFlRwdU44YyJ8QGpBKWF94OpIduF6w
------END RSA PRIVATE KEY-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.encrypted.p8 b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.encrypted.p8
deleted file mode 100644 (file)
index 8b0a7eb..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.encrypted.p8 and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.encrypted_pem.p8 b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.encrypted_pem.p8
deleted file mode 100644 (file)
index 19ca3c5..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN ENCRYPTED PRIVATE KEY-----
-MIIBfTAcBgoqhkiG9w0BDAEBMA4ECN+YmhCv0ILdAgIIAASCAVu0QEfMkp0xUsNq
-0Ek4Nsa/uxcs8N/2P7Ae7qCakkvsdRvvPPH0y+wuj5NgrG6WpPeeEx9fI2oNNTfC
-pwncH0Xm99ofVrgMX6XC45LDZtzXNSZd4TdBP6xvlYXbuGegp5GPJ8emzscHCFhC
-JfPHemRAcB7DhiWukPosuSUr5R8OluEMJrQLHuQtlDAvMjLEI98lSchPxF8LKCk3
-SS2uCcmc+4WiR0nHG9BOaGi38+PytHAnbfo1mfVSQzLfgLicMAVGysfQ9QOgpQOO
-ygYfM/s7Duwbl0rshyXVJP+7BpYJnPtHvO4BTiizU7ZEr4WBiEnnANDrupSdsxeH
-+cxZo70YJVdoPdgMd2ke6EIkUhp7HughFg+okldlEtJA4muKeEzwAxZu0TqxOtZ8
-UYRS4Ygk+rN7Y0qTKSYwSkrFBwUDkpctYjRUOeAZ/mYMKWmMn1ejAb5Is7bjEIxl
-tw==
------END ENCRYPTED PRIVATE KEY-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_1024 b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_1024
deleted file mode 100644 (file)
index 5b6ba1d..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_1024 and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_1024.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_1024.pem
deleted file mode 100644 (file)
index 4f5ad4e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQDY4L8V3uqv6NX9C6ios9dGXacmbAy12bzG+MB40PZWZfgpSA57
-C6Ylfuh7eW845bW39OCckWD0BvNAHvmRGakvR0O1mx7c9qocSXkhKMuqSXPZCQVM
-AvJMTWwcgKcUkUT8ErPh5+NPRLqMw3Q56EzQ1EwkYbRAlYzACrcCOTGFkwIDAQAB
-AoGBAJQHcuW+rXk79zMsjgX4GmvQ6JH1FgfZglxc1SKhnkICf4vNvvSFUvYs1QnS
-LPQs9geFgPnc0Mw/IjEV80nyteJpmQQESSHbn6FUWvrk2fkHBf+aZaTr8kfOVsdy
-SUhc6BTXjyXMSSkGalR7F9ye1FPw9Z6FJaHrPekvuZz24YCBAkEA7gJ4x3iFBJfM
-Nr3WEeLHOdk0UXJvig/NiDIzm8enA3fZgjW23R/CwRNAg1XrYOuBjgwWYrS0POsI
-gJx50zjK8QJBAOlFXy4WzJNQQLZ5vDjgVmhQ0y9zjIwqDoFKirvM8GQ0Rp8HfSK2
-+UasVyOMHuvTBU2og2pn9qaxq47B7+998MMCQC/GWT4Y6AJzAe/fDTBL6BepjMHo
-iZEZ+PSktw1G9zRQA14KsCkUrgAZgDKctYGf5EKCFKA9i4xK1UsTnbSTStECQGSM
-g3dhWnMRP6OoG4rEoFo8pJsqimWMZ04xrFVBBEmdAuffmX/SMObWuITZDCcIgZu0
-zFicUYQOx200iVDJD3MCQQDa3l4arB0d17llJgD11OQohIYvAJxBAFLhR5HAUgVO
-Dy8Nyps9iUG/7p+h5p2k60V/48ukawrifrCHXECxUREd
------END RSA PRIVATE KEY-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_2048 b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_2048
deleted file mode 100644 (file)
index 0af642d..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_2048 and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_2048.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_2048.pem
deleted file mode 100644 (file)
index beddb72..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEAwqC/2/rPcAZEs5/ejT3ZL8Q3Pfdna2WC44i6HYCnCnbOIcW+
-6Xub2IXGwRwQBFy+mRE9WjqJ8kuOEkSt6e+8wAhLdag7WXJ6cxoag110t5FEHSyd
-GfvFFyUNjMJhLd+EmaQTTpEv9MJPJj0Zdruh1EjyRxa4HJmiD9t7XmWyCfSmM0qM
-kgJ0J6s62rRMBX+l/NEEX2VzJugdZAU671RWYOncuxX/2jUYlvIqI1l3SP8acMU5
-BtfLsYMj08lNHOjgZCPRwkdjsl6U5EqIizKZygw1FNugVEDHnL2MAYXwqzX3pGr/
-72Biy+J4TSH6lt0stszS5m8BirMgYr2FFHslrQIDAQABAoIBAQDBTa0gzEupJOCp
-UvhUagBDO+vuBMJX3XuRh6PqV3QQpYz36BJEjXttIvkTpU6XNpIrLv8zlX6bAsW5
-iTL+bRiX1eU0l4FSxqutlFiO7oxVIdd37m6edvv6j9eUXR7t09k8S8TNPNBXlYHN
-JdQbpCIH2OehCYSVC1X1z/UI/ZJF5VSn7UsYgwReK102svfHtll85K0TgHMir9Rx
-Dlh0vYx3IJi2nDOTyJ4JekkyEAcYd3D6JUd0JujcN3Ev3EOsns5GXzN6KYvinmYf
-Z1bA/HEMNb9ZS9bdsoAvyeJAeGp8ejzuJVHGL0kATgrAamb58fPS+A8Guk5eN5KY
-5zvzNrJVAoGBAPVWvPrDOJX2ZI7poJ269xFteTWWIYA+r+YRRkhMBMcD08H5gs6e
-QMWU9w8qjgSmbNkx8skkhn/gV5R3CbVYYRR2osrZIoOayWAsJmY0bHFTIvooYhfp
-3lPVNIPzUpRObFksamtrsK+zpx5qOdigNhComXLsGWKfrN9Yvkb7YzIDAoGBAMsV
-4UVH9WH0IKV1vx3QtrGEb69SZMpbmM8ZsPvaPgq00In9udY4w5V2ZygfTiq0ChUY
-fYy6BeO6Gyp2DSABdz1AUH+0wcnNrHJghFtxtsq4Thu4MHU6ftc+JCGfSeWUapfh
-KiHS0TEguRFcYSHnM1IDEiU4aTHY59FRUWMI2hKPAoGAIVfviTk9GIyLMC0qaiV9
-7L1vKsxDs1VRvLf+UFcckxu/DO7nS0OQ1Amh5krHUHR5+K7kK1gue3S3EnN3O1FO
-qGRTTbRjD3XbBpoZgeyADIrbBxqz8kITuFsSrxhD0eoyqY/yyrSxJ8AH54dSY1Gq
-52qyqD7UWGYRLa229pi165cCgYAd7/rGWMY+i1toqMPkpEjaQFiqcq3y+q+7D+F8
-Lv7oWyFGxkVn4/RJCyxHyN2gA+xckcCoRx/pIx0wFDj5F945BEsZmE7c7dnW/o1k
-YY39sk+pXGygS2A5YKq43h9pnYhdHU81rzsxT86YVZLoCYoSM+uv2vH+7Ce4PpGN
-1Nc41wKBgDUrYyfDB1RzdB63FwPRax5uLjewnuMXyZhy70ZkiGh0XBuQt2aCLeCZ
-HpAyGcJryxdDFYA+UwJoSWjaW9ku0lp+GxX1F+cResrRHTi70w9czwGVaKmcG3kI
-fFjG7w8nkiw5J7IRH7SxmNbmAv8L0Iy6jvoWLFB+EdUGWllkjCmJ
------END RSA PRIVATE KEY-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_4096 b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_4096
deleted file mode 100644 (file)
index c205382..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_4096 and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_4096.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_4096.pem
deleted file mode 100644 (file)
index 9929467..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIJKQIBAAKCAgEA/Ce0mV0qytAwDPrjXRBlUh2gdKs2thDw3N18owXVrSUFq9Sw
-AaMNrmep9DR9MEALcdMm3GCEJ7sOOiEQcqTz25di36WJDe+jo1z5nD2XZsPIsp9+
-k51Vz+W3B4vsXJAgzV+XZbmv9L0598VEwkpeI3Uc9et8ZhGvDPoHZyBQG1KAj6h3
-AKZ1+NthrhajxlrndQZ5Du/R5DSUQOBcCHHdzZgihdfF97Yn/kp1mele1ElZMlqg
-BtpDi1TEQJ9XBtjCW0epFAm5THQ3gMx5DCcqB/cNYdZWqpZ0AuwATm61+46m4fFK
-g3YAYPOi/74aKFuIQBw/lc8W//SV1x8SL/hf2XIdvSa9QhroNN0d3Xu2EUQzXZxo
-PRMKzOqKfwlZW7ozT6hFBwPMh8yfhoPugq2TvqBjke1s3gmvwTgEcf+gY97qXiZC
-X5bh/ehmnZ7vIblYFUD2yMlsKaXGJYweh3WKJlQnh71wQUg2Mxa6ig8ijrEozNlw
-YfPCQFrNLqQfJOwdx90dy7hpUyUn1wo39p6wmC6n9ex4zeKbO4ndSp+/AJ+d5Qp8
-zoMzwneYV9LBQG8ry4uwzDkSWKb/WghsEbQ9O3sGIuI13SlT/B64v3bLb5AHagI8
-zS3kPsshjKhkcc2W9MKRBU2wIeCsNS052kaUq3rPMSBROrALmLk3en/Dq48CAwEA
-AQKCAgEArPMy7So5Cqjm/FAtGI0BYeRORReWTCSsgGEudsauu7a0ABq+qjDDVodl
-y8kgwLJ85xKUCf3tRy8G4BoDpQ688DYSrCFnMvbWP1urHV4ldWf+RX4eHHODAzil
-ZHi1ovt8dEEHn89P/8a2dtqIgdbuYNWYCpj9Vyjz7yujXjmMmGDrKx26meiS7CDV
-C8odhRSewuawq+0UArmJokIA/g3Tu4uIylKoR3JaVhGOPgYSc/rnQiFkt66HO47l
-mQlxcJHGJUOulb7hqK3hz+bvc8V9D7+FH0EbaqANbF+hCirniWZb0odku2x5cAZM
-G6uxV1MIzihR+Jf1R5PkHowCNoLegfM45tnuadP1+8Kezv1SsqkrkMEwfb0QN19C
-2+bmnwYXagUgg/A2q2Shg9h4/3cpwdrDzGHD8IttGlzLR8HnlHkcAK3qRNqy9h60
-JDEW/tOurUSZBXjU9ZyoZSukcK3+yUjCDWS92wMOBlUQGh4/HCOOizahe6lhn2nT
-+jkBvl38c+7GBKR0VyCisFi++FukMBbyU/hNNFByZxOj0b/+YVYI0qwM5oDzLhJH
-69/VhxMx0xVt9/kOOO3yhdGjKCZztPZZm5mg2OzzXmf4im+hPSg0/OrdXrVNk4v/
-w7ouUQHSa3+rAAu8BJFF2rTWA7rjecVEnk6c77I6dEVYXdCfz8kCggEBAP+IJLHo
-7Cs51qPcRKQc633phJa3pFGf6O8xN6pl8z1ZQX0voZyROKJLTytSH+zmPdmggUeg
-7CRoV8BKY49YiOxO2Kx8BPfftItS9yvA3O9ztcdzQa72nYusMWwvj0yFU8DbYfnx
-yYw59F/1pdPKFN83Sj4MJAOb4nAxBP1GiZvsPAgcTpf/197NLNHwUDdk/TXDtTLa
-lx4uTn/SJDQuvsCCLBKyx7FdN5NPRN2kIKUWZLd7HRu2EhcSlATwf4TUPZz7atKN
-2FD0svErpPOAspNPtnNj3RgeunGVqS2oi/XueuveNNCYLkcV8/UaZm85LBrPoEre
-23qK9/ZN0SD534sCggEBAPyd+nD71pScrM0TI4Lc3jMNUKeZj3sT5rlhlkWlARhQ
-WPEWYYg5vs3zDiRpG4Xy3n9ey+M6Tuw+/XpcJZxhrLYFOqparxXPP4qc+3EvtzpF
-OskLR/2/bVnESf6+pQspmwW6G4IJ9vOmIJeUj9zeU0txuxKkjhAmInCnMxJOlYRm
-xeLymuo5LZxrXmSXcX4cyZ0/4bF2L3IE5vH7ffdWXWYzW9wP7M4sFp+0iKjHuhC1
-gB6Qg0Mp0TVNUt0ZEelFLEJdA2lbbZ5yHhNXuhOxW/l3ASSe9tjTpy7yBSwBOpFG
-l7QGISfJVEFfjyn7yWBYj5LDGnitlP4TtN8zyy6cJI0CggEAPRwY8ncqq7e8Thmq
-TLkh1E3ZSJYIdQDSGwnhLx4MirpiwAZ5FtFgAugRueF9AxGY7wfEgxXIA3j0q2be
-4nQg4qqEhNNv+LuGGN+xfsQz0gwRB+7XYXlW+gUnGKFTGtCz0+ZjSvv44FEn0R8V
-Fk44qZ02YxpSLo7EG2KNt+h7lk9rl+D1JsKnpH/a3SYkeOrs50OzfMLr6urWGRlv
-UQ9wzOcUlTAuM4uAc/k8FelfaTuuwHZv4qWrM9tcjMXbKS/8wCMcS9hiSBINDUIL
-w7QegL5KetQCFveaTPmmqOWq+xiaSvgsF0qdnqBwZEh5ANZiZtMKmX0sbeT4Ie5A
-OiunuwKCAQBlSlrvDqu9rwzCtdfZUwJtaftbGIGlkhdDYdPFXSIRQ7ZGBPlai/zr
-y3dyNgrpLLb2T2ZlWC3pIGC2vVf/WlLMMVCSmgX2MsGBrOxNOBq57KRjlHhrUGRi
-SAh7cqnuzeHw6+y3uZMhow0Semks4KB5ccLW+NBVvVS14vThdE0TZ7oVA74GCKM3
-Qv34S5kgPh7BRKoUZBUmHL0VbgfWMvUEU7eTh3cmPBteMh9RvbPnmz8iAkP/nDbc
-roJ5UOITrL7QZUdG6XgMvik9DEH6P3Vnk8YLjwnfaw5wDm7wdBWtxqZxcru8nkeA
-ZvaamPDoBtqauExW8xL4xaISlUv1BnrJAoIBAQCiEZk93GeRzYJFCO1YafsGYueX
-Pffgd9wM2TpObgaEw8OIfEpGQKDiR35fb0uVzNyI5fVU5D5tP0b3LfvtQXV12ryQ
-sVTA5YJcb8mRuUGy/AkjL54kNiZthUnlGHQjY3lqSyI1r5WxRIZBBRn5+g1eSZVq
-CYCGjEryKm7vw8Qcvy1+H2crcZ0rRyLTcfFCr1ZXlyEZu48ScOtxcIDHc7j4J0LO
-Peq2z0tbBojGkxFLX94J7zpRkWMPX9VHorEavDv7ZJwtgoXn3Lom0xHhO+JQaxY9
-FtJ79Ps9+SquXAnkhna4bbkrqrPM3+MAAV/S7bd1T1/8d4YiRQyaMHGS4Yr8
------END RSA PRIVATE KEY-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_512 b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_512
deleted file mode 100644 (file)
index 7ae50f2..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_512 and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_512.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_512.pem
deleted file mode 100644 (file)
index 1e2fb41..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIBPQIBAAJBANE7MF+pAUI9hm1yvkBuUcFJf1d1oS025cE9DyAa0SNt+nTSPiOw
-cPygat7sQYiE/lQVa2HFFmK4k0HxTz3/Lr0CAwEAAQJBAJF5xO2ONajX3GK2+B8W
-VVO+BYNK71DfranJCX46BxXI/Ra7wOSY0UWZYHVsZGWJxx41os0UBTg5FRq4DwWW
-AQECIQDo69eo39iQqjwhpAQxatMh2CWYT7gokyu56V+5o2V3fQIhAOX2b+tQxDsB
-w0J9UDN6CdwI5XbzveoP5fHTPS9j4rhBAiEA3c+y6Zx6dZHYf8TdRV5QwDtB2iGY
-4/L7Qimvwm6Lc1UCIQDDXWrVsocTTjsReJ6zLOHFcjVnqklU2W7T1E8tvKE3QQIh
-AMRpCFM7MrS2axuc8/HzGkqW/3AlIBqdZbilj5zHd2R0
------END RSA PRIVATE KEY-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_aes128.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_aes128.pem
deleted file mode 100644 (file)
index 8961bd9..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: AES-128-CBC,B3A0D2BCEF4DE916D0BBA30A6885251B
-
-v8y74AGReaPLmDt6O8wir6hX1Ze8K4fVNkrLqfDMdW5E7jBXKO8riCMNmSjQ9fyh
-eTicej93+8krcIvSXKW18TdO+EWezQevgnLrAZQWaNPH2j4B+K5gm701uiiKFKVa
-1zngAOByePYlN6z4JLbiCyJRhxSo5zCaUYkKC2eGh8mlE64QmokPSCAj0wcCDzGh
-hdhBg1vm0GmaQwIDVn+8zMfahscXVMtBmyQf5YP4PQW2nqOt7aZHjBNdg9qnBpGw
-b6YuY7eZ4FgQvYcsNCi34NroJb9pkTrrF2F9Meb6+3So7jtMFG/YaJdCuXtf01g/
-Qm+XA5pJUtIUr/hLQjhkaOVUtXv/k0o/MR4k5CbAmboLt6YHf5V8+01vk0bvv5dI
-70pVdXMmx26xDZOGmjYzd93PWc+75jak3GN2fbWryQs=
------END RSA PRIVATE KEY-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_aes256.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.key_aes256.pem
deleted file mode 100644 (file)
index 7671a30..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: AES-256-CBC,F076229CDC2BCB3B8722E3865855B45C
-
-WFV9QWzr4tNmD+1OeQ7BceQg5LVQHp20Jo1Ax29lq8JTPzeObhtaU2MUHlcPKHUS
-vK4FyQxJ25CyMubbnaZqCCz9pNbseFuJ1tob9UqRmXkZ8HV3snRjJRbcctD+V9x+
-Ymi1GreXoDQtMp0FtMiFjPvIYciBQnaRv2ChMAnGXNbZXCxWWA9E5S3a+yWzo+gd
-wEcowL+SUac1PEDGHokhKn7nctvI9cC4hE6JmKM1sD68/U3rRPXMGqmC7umqyT5P
-gjWBb1uu0iRjFC9eQUsaKPxey5Be710GFlyf/Ff/tep7RhkryIWEPvIzYCBf6rhk
-3pysFgTjfiUuBYUNumjXr/q5hgdtb75788XUDxKwAoUx+m8gi0nJg35CN2nmQ054
-VJxcZlNv0wqnJ+GTTZeN6fiAhTpVtHsqHQomRSfaBiw=
------END RSA PRIVATE KEY-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.noname.p12 b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.noname.p12
deleted file mode 100644 (file)
index 9d27999..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.noname.p12 and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.unencrypted.p8 b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.unencrypted.p8
deleted file mode 100644 (file)
index d04694b..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.unencrypted.p8 and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.unencrypted_pem.p8 b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.unencrypted_pem.p8
deleted file mode 100644 (file)
index e07375a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIBVwIBADANBgkqhkiG9w0BAQEFAASCAUEwggE9AgEAAkEA0TswX6kBQj2GbXK+
-QG5RwUl/V3WhLTblwT0PIBrRI236dNI+I7Bw/KBq3uxBiIT+VBVrYcUWYriTQfFP
-Pf8uvQIDAQABAkEAkXnE7Y41qNfcYrb4HxZVU74Fg0rvUN+tqckJfjoHFcj9FrvA
-5JjRRZlgdWxkZYnHHjWizRQFODkVGrgPBZYBAQIhAOjr16jf2JCqPCGkBDFq0yHY
-JZhPuCiTK7npX7mjZXd9AiEA5fZv61DEOwHDQn1QM3oJ3AjldvO96g/l8dM9L2Pi
-uEECIQDdz7LpnHp1kdh/xN1FXlDAO0HaIZjj8vtCKa/CbotzVQIhAMNdatWyhxNO
-OxF4nrMs4cVyNWeqSVTZbtPUTy28oTdBAiEAxGkIUzsytLZrG5zz8fMaSpb/cCUg
-Gp1luKWPnMd3ZHQ=
------END PRIVATE KEY-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.withCA.p12 b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.withCA.p12
deleted file mode 100644 (file)
index ae029de..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.withCA.p12 and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.withoutCA.p12 b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.withoutCA.p12
deleted file mode 100644 (file)
index c4eb54c..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.withoutCA.p12 and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_1024.cer b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_1024.cer
deleted file mode 100644 (file)
index fc92d05..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_1024.cer and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_1024.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_1024.pem
deleted file mode 100644 (file)
index 81f3eaf..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIB1zCCAUACCQDxw4fA1PRXwzANBgkqhkiG9w0BAQUFADA0MTIwMAYDVQQKEylh
-eFRMUyBQcm9qZWN0IERvZGd5IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNjA2
-MDcxMTQ0MzJaFw0zMzEwMjMxMTQ0MzJaMCwxFjAUBgNVBAoTDWF4VExTIFByb2pl
-Y3QxEjAQBgNVBAMTCTEyNy4wLjAuMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
-gYEA2OC/Fd7qr+jV/QuoqLPXRl2nJmwMtdm8xvjAeND2VmX4KUgOewumJX7oe3lv
-OOW1t/TgnJFg9AbzQB75kRmpL0dDtZse3PaqHEl5ISjLqklz2QkFTALyTE1sHICn
-FJFE/BKz4efjT0S6jMN0OehM0NRMJGG0QJWMwAq3AjkxhZMCAwEAATANBgkqhkiG
-9w0BAQUFAAOBgQALRyRSfbZjeLyA3YdskEwzw1ynlwkcCU+bbrNaPkaSGseHFVnh
-iFzOauKWqjLswu14i+CQZpMUw5irMzXTfV1RCpy5EFhHepiVZP9MXYIZ+eoPXprL
-Midkym9YitDANvS5YzSl2jZQNknStzohM1s+1l8MmYO3sveLRMRec0GpAg==
------END CERTIFICATE-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_2048.cer b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_2048.cer
deleted file mode 100644 (file)
index c0badf7..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_2048.cer and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_2048.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_2048.pem
deleted file mode 100644 (file)
index 1ed0141..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICWzCCAcQCCQDxw4fA1PRXxDANBgkqhkiG9w0BAQQFADA0MTIwMAYDVQQKEylh
-eFRMUyBQcm9qZWN0IERvZGd5IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNjA2
-MDcxMTQ0MzJaFw0zMzEwMjMxMTQ0MzJaMCwxFjAUBgNVBAoTDWF4VExTIFByb2pl
-Y3QxEjAQBgNVBAMTCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAMKgv9v6z3AGRLOf3o092S/ENz33Z2tlguOIuh2Apwp2ziHFvul7m9iF
-xsEcEARcvpkRPVo6ifJLjhJErenvvMAIS3WoO1lyenMaGoNddLeRRB0snRn7xRcl
-DYzCYS3fhJmkE06RL/TCTyY9GXa7odRI8kcWuByZog/be15lsgn0pjNKjJICdCer
-Otq0TAV/pfzRBF9lcyboHWQFOu9UVmDp3LsV/9o1GJbyKiNZd0j/GnDFOQbXy7GD
-I9PJTRzo4GQj0cJHY7JelORKiIsymcoMNRTboFRAx5y9jAGF8Ks196Rq/+9gYsvi
-eE0h+pbdLLbM0uZvAYqzIGK9hRR7Ja0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQA8
-L1Zz9K6M/PQCYWrfnTjbPKY2rTB1OvSV0Uwy5KKPQRS1+oK9dx4K0miX+1ZvI1bo
-f7/1aFXOsW3dpTwYUSjJvTMjSwNUPKiB/q/xwA1mzsbIZsbnhIITU95mOJ3xFhgc
-YFdJ4saL7pppTzfOxZ+h9jWbDwgJJAwx/q+O72uE5w==
------END CERTIFICATE-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_4096.cer b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_4096.cer
deleted file mode 100644 (file)
index 40bbe94..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_4096.cer and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_4096.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_4096.pem
deleted file mode 100644 (file)
index b7aed1c..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDWzCCAsQCCQDxw4fA1PRXxTANBgkqhkiG9w0BAQQFADA0MTIwMAYDVQQKEylh
-eFRMUyBQcm9qZWN0IERvZGd5IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNjA2
-MDcxMTQ0MzJaFw0zMzEwMjMxMTQ0MzJaMCwxFjAUBgNVBAoTDWF4VExTIFByb2pl
-Y3QxEjAQBgNVBAMTCTEyNy4wLjAuMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
-AgoCggIBAPwntJldKsrQMAz6410QZVIdoHSrNrYQ8NzdfKMF1a0lBavUsAGjDa5n
-qfQ0fTBAC3HTJtxghCe7DjohEHKk89uXYt+liQ3vo6Nc+Zw9l2bDyLKffpOdVc/l
-tweL7FyQIM1fl2W5r/S9OffFRMJKXiN1HPXrfGYRrwz6B2cgUBtSgI+odwCmdfjb
-Ya4Wo8Za53UGeQ7v0eQ0lEDgXAhx3c2YIoXXxfe2J/5KdZnpXtRJWTJaoAbaQ4tU
-xECfVwbYwltHqRQJuUx0N4DMeQwnKgf3DWHWVqqWdALsAE5utfuOpuHxSoN2AGDz
-ov++GihbiEAcP5XPFv/0ldcfEi/4X9lyHb0mvUIa6DTdHd17thFEM12caD0TCszq
-in8JWVu6M0+oRQcDzIfMn4aD7oKtk76gY5HtbN4Jr8E4BHH/oGPe6l4mQl+W4f3o
-Zp2e7yG5WBVA9sjJbCmlxiWMHod1iiZUJ4e9cEFINjMWuooPIo6xKMzZcGHzwkBa
-zS6kHyTsHcfdHcu4aVMlJ9cKN/aesJgup/XseM3imzuJ3UqfvwCfneUKfM6DM8J3
-mFfSwUBvK8uLsMw5Elim/1oIbBG0PTt7BiLiNd0pU/weuL92y2+QB2oCPM0t5D7L
-IYyoZHHNlvTCkQVNsCHgrDUtOdpGlKt6zzEgUTqwC5i5N3p/w6uPAgMBAAEwDQYJ
-KoZIhvcNAQEEBQADgYEAcrCtPXmZyPX01uNMh2X1VkgmUn/zLemierou7WD/h7xL
-dOl4eeKjFBqIiC19382m1DK4h1F8MceqaMgTueCJpLM7A2cwN3ta8/pGP2yEVhdp
-h10PkdRPF/AU8JmxnFaADsc6+6xWbbrdNv5xcvP1bJKWWW+30EhRF9PxjXiETXc=
------END CERTIFICATE-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_512.cer b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_512.cer
deleted file mode 100644 (file)
index 48c6e13..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_512.cer and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_512.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_512.pem
deleted file mode 100644 (file)
index 8191e48..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIBkjCB/AIJAPHDh8DU9FfCMA0GCSqGSIb3DQEBBQUAMDQxMjAwBgNVBAoTKWF4
-VExTIFByb2plY3QgRG9kZ3kgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA2MDYw
-NzExNDQzMloXDTMzMTAyMzExNDQzMlowLDEWMBQGA1UEChMNYXhUTFMgUHJvamVj
-dDESMBAGA1UEAxMJMTI3LjAuMC4xMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANE7
-MF+pAUI9hm1yvkBuUcFJf1d1oS025cE9DyAa0SNt+nTSPiOwcPygat7sQYiE/lQV
-a2HFFmK4k0HxTz3/Lr0CAwEAATANBgkqhkiG9w0BAQUFAAOBgQAKRT6LwFr1xedJ
-b4qrvjB+EwV/0p4TNNXUS9S30rMSFvRar7VxvLP1lpYj9PR1JGSZMG/B6hR4yumF
-Rjwel9FPgNcWCW4DXAWqz3UQF7oZtJL6K+XJpQ0gwC+Nxc+RRGNLMlK7dLiqFh/V
-qZLej5Xy93M0JyZBiLV88P+c08gd7A==
------END CERTIFICATE-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_aes128.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_aes128.pem
deleted file mode 100644 (file)
index 9a75fe9..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIBkjCB/AIJAPHDh8DU9FfHMA0GCSqGSIb3DQEBBQUAMDQxMjAwBgNVBAoTKWF4
-VExTIFByb2plY3QgRG9kZ3kgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA2MDYw
-NzExNDQzMloXDTMzMTAyMzExNDQzMlowLDEWMBQGA1UEChMNYXhUTFMgUHJvamVj
-dDESMBAGA1UEAxMJMTI3LjAuMC4xMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMDo
-g6K2iXFftW+Qk+rrzkMGWrtfY6YSxPstPRrI7akluUEoyWGITXbK6L3QfERrf2eu
-CnWyciQiHVRoHC0EgZUCAwEAATANBgkqhkiG9w0BAQUFAAOBgQBT6YhR8x/bBteK
-lr8E0l4mATOnYlsmge+z/SFYs4bDBofqlwQCVJXNSBA4ZsEjgP9qIWTu/85QrVGq
-LrkewSM6Oeh95LGnE+uhJVtIX++O+Hsex3H1UL067dCG99XmDhqbEU9AI6YSZu2p
-cjoSowFELtOoG667+id9QObfV3EQoQ==
------END CERTIFICATE-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_aes256.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_aes256.pem
deleted file mode 100644 (file)
index 4f3074e..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIBkjCB/AIJAPHDh8DU9FfIMA0GCSqGSIb3DQEBBQUAMDQxMjAwBgNVBAoTKWF4
-VExTIFByb2plY3QgRG9kZ3kgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA2MDYw
-NzExNDQzMloXDTMzMTAyMzExNDQzMlowLDEWMBQGA1UEChMNYXhUTFMgUHJvamVj
-dDESMBAGA1UEAxMJMTI3LjAuMC4xMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANAW
-9PdXa5u4gWi5VB5p/eQmOtteRq9/54JkiEs8cVNrTQgZsjjU1LGedE3JwBqZ1EIW
-HGPjcGg5dVxFjkn7RekCAwEAATANBgkqhkiG9w0BAQUFAAOBgQBmJMt0Crdd/BPn
-EdmzsVXou0zTizTC8wyUPMVpg/KzzP7fhZux/ZIrH9/RVcJd9y+B2/mXc3C+K99+
-TXQoYKsLGArfDPzmpy1wPrdEcB1A9gkWDl1Uq6xRyvrVm3gX8NTITRuGKL9njgWx
-2SrApIBtOOUOinYtfH3745cVVl5HOA==
------END CERTIFICATE-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_bad_after.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_bad_after.pem
deleted file mode 100644 (file)
index 79eb9cc..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIBkjCB/AIJAPHDh8DU9FfKMA0GCSqGSIb3DQEBBQUAMDQxMjAwBgNVBAoTKWF4
-VExTIFByb2plY3QgRG9kZ3kgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA2MDYw
-NzExNDQzMloXDTA1MDYwNzExNDQzMlowLDEWMBQGA1UEChMNYXhUTFMgUHJvamVj
-dDESMBAGA1UEAxMJMTI3LjAuMC4xMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANE7
-MF+pAUI9hm1yvkBuUcFJf1d1oS025cE9DyAa0SNt+nTSPiOwcPygat7sQYiE/lQV
-a2HFFmK4k0HxTz3/Lr0CAwEAATANBgkqhkiG9w0BAQUFAAOBgQCmPSs9EceViMZD
-ZTXDZpQWJFcXaeInrXWgYWyVgnHBY/eSuqNCxkV/ehv/Wc5pWBGnrX+4cSvQ+TpQ
-FdZegeOjvgipjtJb/0TJCcvgcdHTntEM0h7VXjfbsJXAHwJPFzWIKxV4jeFXnaaw
-W+YHrj9GQ8PnFmapPuh4h/y6LyHAcg==
------END CERTIFICATE-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_bad_before.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_bad_before.pem
deleted file mode 100644 (file)
index fe72b54..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIBkjCB/AIJAPHDh8DU9FfJMA0GCSqGSIb3DQEBBQUAMDQxMjAwBgNVBAoTKWF4
-VExTIFByb2plY3QgRG9kZ3kgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTI0MTIz
-MTE0MDAwMFoXDTI1MTIzMTE0MDAwMFowLDEWMBQGA1UEChMNYXhUTFMgUHJvamVj
-dDESMBAGA1UEAxMJMTI3LjAuMC4xMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANE7
-MF+pAUI9hm1yvkBuUcFJf1d1oS025cE9DyAa0SNt+nTSPiOwcPygat7sQYiE/lQV
-a2HFFmK4k0HxTz3/Lr0CAwEAATANBgkqhkiG9w0BAQUFAAOBgQApbldYefE8A0ez
-SYvAuCtYxx/2KHwBRD/cR0q7widl9WGjVC/dsnbFo109vHEr3FP1HVYSI0aweiaK
-XZmpUyJ9DprbbWQqaLuDnqIH8X7kfiMuO7/LGQc812iDJI2Akxp9cIlPBFBD8GVx
-+0EphzSodDDlLD8bPqLaWTE+8Ydtjw==
------END CERTIFICATE-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_device.cer b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_device.cer
deleted file mode 100644 (file)
index c966743..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_device.cer and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_device.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/axTLS.x509_device.pem
deleted file mode 100644 (file)
index e9cbaaf..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIBjTCCATcCCQDxw4fA1PRXxjANBgkqhkiG9w0BAQUFADAsMRYwFAYDVQQKEw1h
-eFRMUyBQcm9qZWN0MRIwEAYDVQQDEwkxMjcuMC4wLjEwHhcNMDYwNjA3MTE0NDMy
-WhcNMzMxMDIzMTE0NDMyWjArMSkwJwYDVQQKEyBheFRMUyBQcm9qZWN0IERldmlj
-ZSBDZXJ0aWZpY2F0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1CIODRIr
-v3YgwJW7Fm0wITCsOIgX9l+aIRiXUzur4RkHRJIQUQYM3ZfftC21QyWPGErVIIcJ
-7s7U/iKTQq1LV7USvAp90D/m7s0ntmRj1aBCSG71f0LnSv1rlA8kzUkU7VuEt0Tt
-+iqrW0+sYdUBk11dyPLKe6sJnMrJJamVvBsCAwEAATANBgkqhkiG9w0BAQUFAANB
-ABC3Uc6uImIpcLl1WYu8K8qkGnVT4K9JkdXHQFbhFZs37lvITrOHQ3j2oGXTbdAx
-JFJ3II9xXkm+nc7oLHqhXlc=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIB3zCCAUgCCQCdbnM4pjqlWjANBgkqhkiG9w0BAQUFADA0MTIwMAYDVQQKEylh
-eFRMUyBQcm9qZWN0IERvZGd5IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNjA2
-MDcxMTQ0MzJaFw0zMzEwMjMxMTQ0MzJaMDQxMjAwBgNVBAoTKWF4VExTIFByb2pl
-Y3QgRG9kZ3kgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQCnZdk20fYWh8O6kDTt0AuJWyp0YIrb7W1UNNMPXI5wA4J59IVj
-Nmk5wocm9+Hqzbg7rORAN/mHPBhzLAjhnm1HODs36hW15DtbDkkH4wCM/Tsyv79m
-n0xq1V6peK3t9vi2D4p/IRjHkYR2jm+BeknopijhY0kHHfpGTHa2DnVirwIDAQAB
-MA0GCSqGSIb3DQEBBQUAA4GBAB0LgNo0oCcwIie5plgwwFybQ8x95q6e3wndM/Mp
-3gjcAFbGuchpo3dfFlTcRI0KyERb3q1MVxPM4sff9nT7EdHVyK9s8/ITkP2dcTKc
-flbcTEfJVIeM8L2P5F41Hvn9GuGcMW8EmsC06gdbp1LLnqsdrXdMNBsAUBXfgPrU
-+UcZ
------END CERTIFICATE-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/datatest.c b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/datatest.c
deleted file mode 100644 (file)
index 2a5e836..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#include <string.h>
-#include <stdlib.h>
-#include "ssl.h"
-
-int main(int argc, char *argv[])
-{
-    bigint *m1, *m2, *d;
-    BI_CTX *ctx = bi_initialize();
-    char cmp1[1024], cmp2[1024];
-
-    const char *plaintext = /* 128 byte number */
-        "01aaaaaaaaaabbbbbbbbbbbbbbbccccccccccccccdddddddddddddeeeeeeeeee"
-        "01aaaaaaaaaabbbbbbbbbbbbbbbccccccccccccccdddddddddddddeeeeeeeeee";
-    d = bi_import(ctx, (uint8_t *)plaintext, strlen(plaintext));
-    memset(cmp1, 0, sizeof(cmp1));
-
-    while (1)
-    {
-        bi_set_mod(ctx, bi_clone(ctx, d), 0);
-        m1 = bi_square(ctx, bi_copy(d));
-        m2 = bi_residue(ctx, m1);
-        bi_free_mod(ctx, 0);
-
-        //bi_export(ctx, bi_copy(d), cmp1, sizeof(cmp1));
-        bi_export(ctx, m2, cmp2, sizeof(cmp2));
-
-        if (memcmp(cmp1, cmp2, sizeof(cmp1)) != 0)
-        {
-            printf("Error!\n"); TTY_FLUSH();
-            break;
-        }
-
-        d = bi_add(ctx, d, int_to_bi(ctx, 1));
-    }
-
-    bi_free(ctx, d);
-    bi_terminate(ctx);
-    printf("all good\n"); TTY_FLUSH();
-    return 0;
-
-}
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/datatest.c.old b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/datatest.c.old
deleted file mode 100644 (file)
index a5703fb..0000000
+++ /dev/null
@@ -1,280 +0,0 @@
-#include "crypto.h"
-
-#include <string.h>
-#include <stdlib.h>
-//#define DEBUG_TEST 
-
-typedef enum {
-    encrypt, decrypt
-} CryptoMode;
-
-void hex_dump(const char* header, const unsigned char* data, const unsigned int data_length)
-{
-    unsigned int byte_count;
-    printf("%s (%d bytes):\n", header, data_length);
-    for(byte_count = 0; byte_count < data_length; ++byte_count)
-    {
-        printf("%02X", data[byte_count]);
-    }
-    printf("\n");
-}
-
-void do_rsa(const CryptoMode crypto_mode,
-            const unsigned char* data, const unsigned int data_length,
-            const unsigned char* modulus, const unsigned int modulus_length,
-            const unsigned char* exponent, const unsigned int exponent_length,
-            unsigned char* result, const unsigned int result_length)
-{
-    RSA_CTX* rsa_context = NULL;
-    BI_CTX *bi_ctx;
-    bigint *plaintext_bi;
-    bigint *enc_data_bi, *dec_data_bi;
-
-#ifdef DEBUG_TEST
-    printf("do_rsa:\n");
-    hex_dump("data", data, data_length);
-    hex_dump("modulus", modulus, modulus_length);
-    hex_dump("exponent", exponent, exponent_length);
-#endif
-
-    RSA_priv_key_new(&rsa_context, modulus, modulus_length, exponent, exponent_length, exponent, exponent_length);
-    memset(result, 0, result_length);
-    bi_ctx = rsa_context->bi_ctx;
-
-    switch(crypto_mode)
-    {
-    case encrypt:
-#ifdef DEBUG_TEST
-        printf("encrypt\n");
-#endif
-        plaintext_bi = bi_import(bi_ctx, data, data_length);
-        enc_data_bi = RSA_public(rsa_context, plaintext_bi);
-        bi_export(bi_ctx, enc_data_bi, result, result_length);
-        break;
-
-    case decrypt:
-
-#ifdef DEBUG_TEST
-        printf("decrypt\n");
-#endif
-        plaintext_bi = bi_import(bi_ctx, data, data_length);
-        dec_data_bi = RSA_private(rsa_context, plaintext_bi);
-        bi_export(bi_ctx, dec_data_bi, result, result_length);
-        break;
-    }
-#ifdef DEBUG_TEST
-    hex_dump("result", result, result_length);
-#endif
-
-    RSA_free(rsa_context);
-}
-
-void test_matching(char* test_description, 
-                   const unsigned char* expected, const unsigned int expected_length,
-                   const unsigned char* result, const unsigned int result_length)
-{
-    int test_result = memcmp(expected, result, expected_length);
-    printf("Testing %s ... ", test_description);
-    if(test_result == 0)
-    {
-        printf("ok.\n");
-    }
-    else
-    {
-        printf("failed!\n");
-        hex_dump("should be", expected, expected_length);
-        hex_dump("but is", result, result_length);
-    }
-}
-
-void encrypt_decrypt_should_yield_original(char* test_description,
-                                           const unsigned char* data, const unsigned int data_length,
-                                           const unsigned char* modulus, const unsigned int modulus_length,
-                                           const unsigned char* private_exponent, const unsigned int private_exponent_length,
-                                           const unsigned char* public_exponent, const unsigned int public_exponent_length,
-                                           const unsigned char* cryptogram, const unsigned int cryptogram_length)
-{
-    const unsigned int calculated_cryptogram_length = modulus_length;
-    unsigned char* calculated_cryptogram = malloc(calculated_cryptogram_length);
-    const unsigned int decrypted_data_length = modulus_length;
-    unsigned char* decrypted_data = malloc(decrypted_data_length);
-
-    printf("\nRunning \"%s\" ...\n", test_description);
-
-#ifdef DEBUG_TEST
-    printf("encrypt_decrypt_should_yield_original:\n");
-    hex_dump("data", data, data_length);
-    hex_dump("modulus", modulus, modulus_length);
-    hex_dump("private_exponent", private_exponent, private_exponent_length);
-    hex_dump("public_exponent", public_exponent, public_exponent_length);
-    hex_dump("cryptogram", cryptogram, cryptogram_length);
-#endif
-
-    do_rsa(encrypt, data, data_length,
-           modulus, modulus_length,
-           private_exponent, private_exponent_length,
-           calculated_cryptogram, calculated_cryptogram_length);
-
-#ifdef DEBUG_TEST
-    hex_dump("calculated_cryptogram", calculated_cryptogram, calculated_cryptogram_length);
-#endif
-
-    if(cryptogram != NULL)
-    {
-        test_matching("cryptogram", cryptogram, cryptogram_length, 
-                                    calculated_cryptogram, calculated_cryptogram_length);
-    }
-
-    do_rsa(decrypt, calculated_cryptogram, calculated_cryptogram_length,
-           modulus, modulus_length,
-           public_exponent, public_exponent_length,
-           decrypted_data, decrypted_data_length);
-
-    test_matching("decrypted plaintext", data, data_length,
-                                         decrypted_data, decrypted_data_length);
-
-    free(calculated_cryptogram);
-    free(decrypted_data);
-}
-
-/* configure without CRT!
-
-   prepare data with: 
-   > echo "<string>" |
-     ruby -ne '$_.gsub!(/ /, "").scan(/../).each_with_index \
-      { |b, i| print "\"\n\"" if i % 16 == 0; print "\\x" + b;}' */
-int main(int argc, char *argv[])
-{
-#if 0
-    unsigned char stuff[] = { 
-        0x22, 0x33, 0x44, 0x81, 
-        0xF1, 0xFF, 0xAA, 0xBB, 
-        0xCC, 0xDD, 0xEE , 0x01,
-        0x45, 0x44, 0xfa, 0x8d,
-        0xfa, 0x20, 0x99, 0xFF,
-        0xab, 0xda, 0xac, 0x40 };
-    unsigned char resA[sizeof(stuff)*2], resB[sizeof(stuff)*2];
-
-    BI_CTX *bi_ctx = bi_initialize();
-    bigint *bi_data1, *bi_data2, *res1, *res2;
-    bi_data1 = bi_import(bi_ctx, stuff, sizeof(stuff));
-    bi_data2 = bi_import(bi_ctx, stuff, sizeof(stuff));
-
-    res1 = bi_multiply(bi_ctx, bi_copy(bi_data1), bi_copy(bi_data2));
-    res2 = bi_multiply(bi_ctx, bi_data1, bi_data2);
-    bi_print("MULTIPLY", res1);
-    bi_print("SQUARE", res2);
-    bi_export(bi_ctx, res1, resA, sizeof(resA));
-    bi_export(bi_ctx, res2, resB, sizeof(resB));
-    if (memcmp(resA, resB, sizeof(resA)))
-        printf("OUCH - difference!\n");
-    bi_terminate(bi_ctx);
-
-    exit(0);
-#endif
-    encrypt_decrypt_should_yield_original("Works only with Montgomery",
-        (const unsigned char*) /* data */
-        "\xBC\xD3\x12\x6C\x93\x13\x14\x4C\x00\x5D\xFD\xBF\xDE\xE4\xD3\x60"
-        "\x29\xB8\xAE\x47\xBE\x0B\xB6\x0A\x39\x88\xB7\x93\x19\x14\xE8\x88"
-        "\x4A\xDE\x00\x46\x89\x5A\x11\x1A\xC4\x8F\xE8\xF7\x27\xAC\x59\x80"
-        "\x03\xC1\x93\x14\x01\x00\x93\x15\x07\x00\x00\x00\x01\x01\x05\x20"
-        "\x93\x16\x0F\x42\x34\x33\x3A\x58\x30\x30\x30\x31\x30\x31\x30\x30"
-        "\x30\x31\x92\x6B\x10\x6C\x69\x62\x65\x6C\x6D\x65\x74\x72\x65\x65"
-        "\x2E\x73\x6F\x2E\x30\x93\x18\x02\xA5\x92\x92\x6C\x03\x96\xE3\x0C"
-        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xB7\xBE", 128,
-        (const unsigned char*) /* modulus */
-        "\xc4\x5a\xcb\x35\x95\xad\x32\x4a\xcf\x9c\x82\x45\x13\xb7\x42\x35"
-        "\x22\x32\x6d\x2e\x6d\x26\x2e\x6d\x00\x9b\xae\x2d\x9e\x78\x1e\xdd"
-        "\x40\x23\x17\xa8\xbb\xa1\x07\x86\xb4\x3c\xbc\xe8\xd5\xfc\xd9\xeb"
-        "\x3c\xad\x63\x11\xf3\x1d\x64\x81\x96\xf2\xf5\xfe\xca\x5a\xf7\x8a"
-        "\x15\xcb\x90\x81\x68\xae\x59\xb4\xe1\xa4\x41\x99\xcd\xf3\x98\xbd"
-        "\x3c\x48\x37\xdb\xa1\xc3\x1c\x6f\x43\xd1\x89\x23\xe5\x3d\xa3\xa5"
-        "\x92\x7b\x19\x14\x1e\x7a\xf3\x88\x8a\x36\x21\x3e\x16\x40\x3c\xd7"
-        "\xd3\xdb\x13\xaf\xc9\x68\x45\x84\xb3\x39\x8f\x02\xed\x28\x02\x5f", 128,
-        (const unsigned char*) /* private exponent */
-        "\x5d\x19\xb7\xb4\x66\x8d\xc2\x84\xda\x3f\x99\x3c\xeb\x86\x3e\xec"
-        "\x36\x94\xb6\x54\x07\x08\xcd\x86\x7d\x7d\x53\x6e\xe9\xee\x86\xa3"
-        "\xdd\x5f\x46\x3e\x89\x08\x67\x2b\x25\x96\x8e\xf3\xcf\x52\x9e\x78"
-        "\xfd\x42\x30\xf1\x37\xd6\xbd\xea\xfc\x09\xa3\x3d\xf5\xf0\x7f\xe1"
-        "\xb1\xe0\x69\x13\x44\xf9\x8b\x95\x58\x2a\x81\xb3\xa8\x15\xce\x7e"
-        "\xd3\xea\x97\x0a\xa2\x14\xd4\xae\xc7\x75\xbb\x9f\x68\xa5\x53\x0e"
-        "\x85\x29\x88\x48\x6c\xc9\xcc\xde\x72\x40\x3a\x4c\x82\xde\x3c\xfb"
-        "\x08\xf8\x2c\x26\xb5\xd4\xea\xc4\xca\x98\x6e\x43\x3e\x67\x54\xc1", 128,
-        (const unsigned char*) /* public exponent */
-        "\x01\x00\x01", 3,
-        (const unsigned char*) /* precalculated encrypted data */
-        "\x93\xE8\x1F\xF9\x70\xFA\xAA\xED\x54\xFD\x48\x37\xC9\x71\x9A\x11"
-        "\x69\x80\xB4\x22\x0C\xAD\x5A\x95\x65\xCA\x7C\xF7\x70\x56\x92\xCB"
-        "\x45\x6D\x58\x84\x21\x80\x23\x76\x21\x4A\x61\x99\xC1\x11\x9C\x0F"
-        "\x40\xED\x80\x9C\x8F\x3A\x4F\x01\xB5\x72\xC3\x24\xAE\xF3\x6B\x98"
-        "\xA8\x60\xAC\xAF\x95\x98\x9A\xAA\xA4\x28\xF2\x02\x05\xFC\xF3\xDD"
-        "\xB0\x5A\x4E\xDE\x3C\x41\x4B\x1C\x5B\x1F\xF6\x3D\xAF\x93\x43\xCB"
-        "\xD8\xC7\x24\x97\x8F\x49\xE5\x5B\x10\x51\x3B\x1E\xA6\x39\xEA\x4E"
-        "\xA5\xE0\x71\x8C\xCA\x34\x8C\x2F\x6C\x5C\x78\x34\x86\x7C\x54\x6A", 128);
-
-    encrypt_decrypt_should_yield_original("Works only with Barrett",
-        (const unsigned char*) /* data */
-        "\x36\x42\x32\xe4\x1e\x78\x02\x8e\xfb\x64\x5f\x0c\xfc\x5a\xd7\x5c"
-        "\xe4\xb5\x91\x5c\x4b\x00\x87\x28\x87\x9b\xa0\x4b\x09\xc2\x6b\x64"
-        "\xac\x4b\xcf\xa5\xee\x8a\xb7\xc9\xc9\x90\x02\xc1\xa3\x47\x5c\x6b"
-        "\x71\x5d\x5d\x49\x27\xe1\x15\xc6\xcf\x37\x9e\xa7\x0f\xa1\xad\x96"
-        "\x83\xef\x4b\x53\x68\xcd\x77\xfc\x14\x5f\xf5\xb7\x78\xb0\x10\xeb"
-        "\x0d\x61\x94\x01\xf6\xaa\x1b\x19\x23\x39\xa7\xcc\x6c\x42\x4a\x87"
-        "\x79\x27\x04\xc6\xec\x8e\x50\xba\xb9\x26\x89\xd4\x00\x01\x25\xe5"
-        "\xf3\x9e\x98\x0c\x8d\x2e\x43\x1e\xe9\x29\x90\xd2\x75\x61\x85\xe7", 128,
-        (const unsigned char*) /* modulus */
-        "\x37\x0c\x32\xe4\x1e\x78\x02\x8e\xfb\x64\x5f\x0c\xfc\x5a\xd7\x5c"
-        "\xe4\xb5\x91\x5c\x4b\x00\x87\x28\x87\x9b\xa0\x4b\x09\xc2\x6b\x64"
-        "\xac\x4b\xcf\xa5\xee\x8a\xb7\xc9\xc9\x90\x02\xc1\xa3\x47\x5c\x6b"
-        "\x71\x5d\x5d\x49\x27\xe1\x15\xc6\xcf\x37\x9e\xa7\x0f\xa1\xad\x96"
-        "\x83\xef\x4b\x53\x68\xcd\x77\xfc\x14\x5f\xf5\xb7\x78\xb0\x10\xeb"
-        "\x0d\x61\x94\x01\xf6\xaa\x1b\x19\x23\x39\xa7\xcc\x6c\x42\x4a\x87"
-        "\x79\x27\x04\xc6\xec\x8e\x50\xba\xb9\x26\x89\xd4\x00\x01\x25\xe5"
-        "\xf3\x9e\x98\x0c\x8d\x2e\x43\x1e\xe9\x29\x90\xd2\x75\x61\x85\xe7", 128,
-        (const unsigned char*) /* private exponent */
-        "\x16\x3a\x76\xd2\x66\xfb\x4f\x0d\x2d\xb6\x7a\x2b\x64\x3b\xca\x7b"
-        "\x58\x5f\x79\x33\x2b\x96\x2a\xfd\xd2\xc4\xa5\x15\xa7\xfb\x3a\x22"
-        "\x8c\xf0\x90\x09\x11\x2a\x32\xcc\xe8\xf7\x9e\x25\x53\x29\x9d\xc8"
-        "\x45\x1e\xce\x6c\x9c\x0d\xe8\x1d\x3f\xcf\xd5\xe0\xe0\x0f\x09\x69"
-        "\x2d\xe7\xd5\xe6\xe5\x10\xd9\x4e\x20\xdb\xbd\xa1\x04\x6b\xe6\x1d"
-        "\x4c\x79\x28\x47\x30\x11\xde\x14\xb4\x6e\x35\x98\x38\x50\x44\x82"
-        "\xbd\xc4\xfb\x03\xb3\xf6\x5e\x5a\x29\xfa\x29\xaa\xde\xe4\xfd\x15"
-        "\xbe\xed\x4f\x93\x9d\x0d\x29\xe8\xd7\xa3\xf4\x18\xc8\x98\xb1\x01", 128, 
-        (const unsigned char*) /* public exponent */
-        "\x01\x00\x01", 3,
-        NULL, 0);
-
-    encrypt_decrypt_should_yield_original("Works always",
-        (const unsigned char*) /* data */
-        "\xB9\x42\x32\xe4\x1e\x78\x02\x8e\xfb\x64\x5f\x0c\xfc\x5a\xd7\x5c"
-        "\xe4\xb5\x91\x5c\x4b\x00\x87\x28\x87\x9b\xa0\x4b\x09\xc2\x6b\x64"
-        "\xac\x4b\xcf\xa5\xee\x8a\xb7\xc9\xc9\x90\x02\xc1\xa3\x47\x5c\x6b"
-        "\x71\x5d\x5d\x49\x27\xe1\x15\xc6\xcf\x37\x9e\xa7\x0f\xa1\xad\x96"
-        "\x83\xef\x4b\x53\x68\xcd\x77\xfc\x14\x5f\xf5\xb7\x78\xb0\x10\xeb"
-        "\x0d\x61\x94\x01\xf6\xaa\x1b\x19\x23\x39\xa7\xcc\x6c\x42\x4a\x87"
-        "\x79\x27\x04\xc6\xec\x8e\x50\xba\xb9\x26\x89\xd4\x00\x01\x25\xe5"
-        "\xf3\x9e\x98\x0c\x8d\x2e\x43\x1e\xe9\x29\x90\xd2\x75\x61\x85\xe7", 128,
-        (const unsigned char*) /* modulus */
-        "\xB9\x77\xEC\x83\x95\xAF\xB1\xF8\x21\x21\xFF\x05\x5E\x0C\x91\x0C"
-        "\x2E\xD5\xD2\x94\x1C\x38\x5E\xED\x5A\xCF\x84\xD0\x12\x8B\xAA\x4B"
-        "\x3A\x63\x65\x78\x13\xED\x24\x4E\x83\xF2\xF5\x02\x66\x5D\xFC\xC1"
-        "\x80\x5B\x78\x78\xB4\x0B\x45\xE5\x22\xC6\xCD\xEB\xCC\x74\x0B\x0B"
-        "\xD8\x8B\x91\x99\x48\x8E\x74\xA9\xD0\x1A\x39\x94\xC2\xD4\x2E\x9A"
-        "\x8C\x0C\x35\x0D\x97\x8F\xC4\x62\x20\xE9\x78\x40\x97\x05\x98\xE6"
-        "\x22\x48\x3D\x3D\xCA\x6A\x3F\xEF\xB0\x23\x14\x30\xDA\x35\x46\x65"
-        "\x55\xEF\xEB\xA1\xA9\xCF\x83\xE7\xEF\xF2\x83\x6D\x38\xEA\x88\xED", 128,
-        (const unsigned char*) /* private exponent */
-        "\x52\x2A\x68\xE3\x9A\xAA\xED\xA3\x49\xBA\x6F\xEA\x86\xD1\xF6\x68"
-        "\x79\x4F\x4D\x2D\x44\x9B\x4C\xA2\xC6\xBA\x6C\xD2\x69\x84\xEA\x7A"
-        "\xCD\x71\x3F\x80\xC5\x03\x28\x34\x88\x8C\x58\x33\x29\xFA\xB5\x81"
-        "\x5C\x46\x29\xC6\xFF\xAC\x86\xD8\x8E\x61\x98\xD4\xC0\x0D\x20\xDE"
-        "\xEB\x61\x1C\x0C\x3C\x19\xA3\x75\x10\x7D\xDA\xA9\x55\xA7\x64\x5F"
-        "\xE0\xB6\x35\x62\x00\xD9\xD2\xF7\xA4\xDF\x85\xFF\xDF\x86\x75\x29"
-        "\x66\x16\x03\x8C\xC0\xB0\x3F\xAB\xBA\x41\xB3\x3C\x76\x58\xB6\xE2"
-        "\x1F\x36\x47\x5F\x1F\x0E\x4C\xB5\x29\x90\xDC\xA1\xF8\xFA\x58\x19", 128,
-        (const unsigned char*) /* public exponent */
-        "\x01\x00\x01", 3,
-        NULL, 0);
-
-    return 0;
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/deutsche_telecom.x509_ca b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/deutsche_telecom.x509_ca
deleted file mode 100644 (file)
index 0f4b96a..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/deutsche_telecom.x509_ca and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/equifax.x509_ca b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/equifax.x509_ca
deleted file mode 100644 (file)
index 79b0a3f..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/equifax.x509_ca and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/gnutls.cer b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/gnutls.cer
deleted file mode 100755 (executable)
index 312e365..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/gnutls.cer and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/header_issue.dat b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/header_issue.dat
deleted file mode 100755 (executable)
index a48d23d..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/header_issue.dat and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/killopenssl.sh b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/killopenssl.sh
deleted file mode 100755 (executable)
index 17950fb..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-ps -ef|grep openssl | /usr/bin/awk '{print $2}' |xargs kill -9
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/make_certs.sh b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/make_certs.sh
deleted file mode 100755 (executable)
index dfc39d4..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-#
-# Generate the certificates and keys for testing.
-#
-
-PROJECT_NAME="axTLS Project"
-
-# Generate the openssl configuration files.
-cat > ca_cert.conf << EOF  
-[ req ]
-distinguished_name     = req_distinguished_name
-prompt                 = no
-
-[ req_distinguished_name ]
- O                      = $PROJECT_NAME Dodgy Certificate Authority
-EOF
-
-cat > certs.conf << EOF  
-[ req ]
-distinguished_name     = req_distinguished_name
-prompt                 = no
-
-[ req_distinguished_name ]
- O                      = $PROJECT_NAME
- CN                     = 127.0.0.1
-EOF
-
-cat > device_cert.conf << EOF  
-[ req ]
-distinguished_name     = req_distinguished_name
-prompt                 = no
-
-[ req_distinguished_name ]
- O                      = $PROJECT_NAME Device Certificate
-EOF
-
-# private key generation
-openssl genrsa -out axTLS.ca_key.pem 1024
-openssl genrsa -out axTLS.key_512.pem 512
-openssl genrsa -out axTLS.key_1024.pem 1024
-openssl genrsa -out axTLS.key_2048.pem 2048
-openssl genrsa -out axTLS.key_4096.pem 4096
-openssl genrsa -out axTLS.device_key.pem 1024
-openssl genrsa -aes128 -passout pass:abcd -out axTLS.key_aes128.pem 512
-openssl genrsa -aes256 -passout pass:abcd -out axTLS.key_aes256.pem 512
-
-# convert private keys into DER format
-openssl rsa -in axTLS.key_512.pem -out axTLS.key_512 -outform DER
-openssl rsa -in axTLS.key_1024.pem -out axTLS.key_1024 -outform DER
-openssl rsa -in axTLS.key_2048.pem -out axTLS.key_2048 -outform DER
-openssl rsa -in axTLS.key_4096.pem -out axTLS.key_4096 -outform DER
-openssl rsa -in axTLS.device_key.pem -out axTLS.device_key -outform DER
-
-# cert requests
-openssl req -out axTLS.ca_x509.req -key axTLS.ca_key.pem -new \
-            -config ./ca_cert.conf 
-openssl req -out axTLS.x509_512.req -key axTLS.key_512.pem -new \
-            -config ./certs.conf 
-openssl req -out axTLS.x509_1024.req -key axTLS.key_1024.pem -new \
-            -config ./certs.conf 
-openssl req -out axTLS.x509_2048.req -key axTLS.key_2048.pem -new \
-            -config ./certs.conf 
-openssl req -out axTLS.x509_4096.req -key axTLS.key_4096.pem -new \
-            -config ./certs.conf 
-openssl req -out axTLS.x509_device.req -key axTLS.device_key.pem -new \
-            -config ./device_cert.conf
-openssl req -out axTLS.x509_aes128.req -key axTLS.key_aes128.pem \
-            -new -config ./certs.conf -passin pass:abcd
-openssl req -out axTLS.x509_aes256.req -key axTLS.key_aes256.pem \
-            -new -config ./certs.conf -passin pass:abcd
-
-# generate the actual certs.
-openssl x509 -req -in axTLS.ca_x509.req -out axTLS.ca_x509.pem \
-            -sha1 -days 10000 -signkey axTLS.ca_key.pem
-openssl x509 -req -in axTLS.x509_512.req -out axTLS.x509_512.pem \
-            -sha1 -CAcreateserial -days 10000 \
-            -CA axTLS.ca_x509.pem -CAkey axTLS.ca_key.pem
-openssl x509 -req -in axTLS.x509_1024.req -out axTLS.x509_1024.pem \
-            -sha1 -CAcreateserial -days 10000 \
-            -CA axTLS.ca_x509.pem -CAkey axTLS.ca_key.pem
-openssl x509 -req -in axTLS.x509_2048.req -out axTLS.x509_2048.pem \
-            -md5 -CAcreateserial -days 10000 \
-            -CA axTLS.ca_x509.pem -CAkey axTLS.ca_key.pem
-openssl x509 -req -in axTLS.x509_4096.req -out axTLS.x509_4096.pem \
-            -md5 -CAcreateserial -days 10000 \
-            -CA axTLS.ca_x509.pem -CAkey axTLS.ca_key.pem
-openssl x509 -req -in axTLS.x509_device.req -out axTLS.x509_device.pem \
-            -sha1 -CAcreateserial -days 10000 \
-            -CA axTLS.x509_512.pem -CAkey axTLS.key_512.pem
-openssl x509 -req -in axTLS.x509_aes128.req \
-            -out axTLS.x509_aes128.pem \
-            -sha1 -CAcreateserial -days 10000 \
-            -CA axTLS.ca_x509.pem -CAkey axTLS.ca_key.pem
-openssl x509 -req -in axTLS.x509_aes256.req \
-            -out axTLS.x509_aes256.pem \
-            -sha1 -CAcreateserial -days 10000 \
-            -CA axTLS.ca_x509.pem -CAkey axTLS.ca_key.pem
-
-# note: must be root to do this
-DATE_NOW=`date`
-if date -s "Jan 1 2025"; then
-openssl x509 -req -in axTLS.x509_512.req -out axTLS.x509_bad_before.pem \
-            -sha1 -CAcreateserial -days 365 \
-            -CA axTLS.ca_x509.pem -CAkey axTLS.ca_key.pem
-date -s "$DATE_NOW"
-touch axTLS.x509_bad_before.pem
-fi
-openssl x509 -req -in axTLS.x509_512.req -out axTLS.x509_bad_after.pem \
-            -sha1 -CAcreateserial -days -365 \
-            -CA axTLS.ca_x509.pem -CAkey axTLS.ca_key.pem
-
-# some cleanup
-rm axTLS*.req
-rm axTLS.srl
-rm *.conf
-
-# need this for the client tests
-openssl x509 -in axTLS.ca_x509.pem -outform DER -out axTLS.ca_x509.cer 
-openssl x509 -in axTLS.x509_512.pem -outform DER -out axTLS.x509_512.cer
-openssl x509 -in axTLS.x509_1024.pem -outform DER -out axTLS.x509_1024.cer
-openssl x509 -in axTLS.x509_2048.pem -outform DER -out axTLS.x509_2048.cer
-openssl x509 -in axTLS.x509_4096.pem -outform DER -out axTLS.x509_4096.cer
-openssl x509 -in axTLS.x509_device.pem -outform DER -out axTLS.x509_device.cer
-
-# generate pkcs8 files (use RC4-128 for encryption)
-openssl pkcs8 -in axTLS.key_512.pem -passout pass:abcd -topk8 -v1 PBE-SHA1-RC4-128 -out axTLS.encrypted_pem.p8
-openssl pkcs8 -in axTLS.key_512.pem -passout pass:abcd -topk8 -outform DER -v1 PBE-SHA1-RC4-128 -out axTLS.encrypted.p8
-openssl pkcs8 -in axTLS.key_512.pem -nocrypt -topk8 -out axTLS.unencrypted_pem.p8
-openssl pkcs8 -in axTLS.key_512.pem -nocrypt -topk8 -outform DER -out axTLS.unencrypted.p8
-
-# generate pkcs12 files (use RC4-128 for encryption)
-openssl pkcs12 -export -in axTLS.x509_1024.pem -inkey axTLS.key_1024.pem -certfile axTLS.ca_x509.pem -keypbe PBE-SHA1-RC4-128 -certpbe PBE-SHA1-RC4-128 -name "p12_with_CA" -out axTLS.withCA.p12 -password pass:abcd
-openssl pkcs12 -export -in axTLS.x509_1024.pem -inkey axTLS.key_1024.pem -keypbe PBE-SHA1-RC4-128 -certpbe PBE-SHA1-RC4-128 -name "p12_without_CA" -out axTLS.withoutCA.p12 -password pass:abcd
-openssl pkcs12 -export -in axTLS.x509_1024.pem -inkey axTLS.key_1024.pem -keypbe PBE-SHA1-RC4-128 -certpbe PBE-SHA1-RC4-128 -out axTLS.noname.p12 -password pass:abcd
-
-# PEM certificate chain
-cat axTLS.ca_x509.pem >> axTLS.x509_device.pem
-
-# set default key/cert for use in the server
-xxd -i axTLS.x509_1024.cer | sed -e \
-        "s/axTLS_x509_1024_cer/default_certificate/" > ../../ssl/cert.h
-xxd -i axTLS.key_1024 | sed -e \
-        "s/axTLS_key_1024/default_private_key/" > ../../ssl/private_key.h
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/microsoft.x509_ca b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/microsoft.x509_ca
deleted file mode 100644 (file)
index b908034..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/microsoft.x509_ca and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/microsoft.x509_ca.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/microsoft.x509_ca.pem
deleted file mode 100644 (file)
index 478e60b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEEjCCAvqgAwIBAgIPAMEAizw8iBHRPvZj7N9AMA0GCSqGSIb3DQEBBAUAMHAx
-KzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAc
-BgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0
-IFJvb3QgQXV0aG9yaXR5MB4XDTk3MDExMDA3MDAwMFoXDTIwMTIzMTA3MDAwMFow
-cDErMCkGA1UECxMiQ29weXJpZ2h0IChjKSAxOTk3IE1pY3Jvc29mdCBDb3JwLjEe
-MBwGA1UECxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3Nv
-ZnQgUm9vdCBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCpAr3BcOY78k4bKJ+XeF4w6qKpjSVf+P6VTKO3/p2iID58UaKboo9gMmvRQmR5
-7qx2yVTa8uuchhyPn4Rms8VremIj1h083g8BkuiWxL8tZpqaaCaZ0Dosvwy1WCbB
-RucKPjiWLKkoOajsSYNC44QPu5psVWGsgnyhYC13TOmZtGQ7mlAcMQgkFJ+p55Er
-GOY9mGMUYFgFZZ8dN1KH96fvlALGG9O/VUWziYC/OuxUlE6u/ad6bXROrxjMlgko
-IQBXkGBpN7tLEgc8Vv9b+6RmCgim0oFWV++2O14WgXcE2va+roCV/rDNf9anGnJc
-PMq88AijIjCzBoXJsyB3E4XfAgMBAAGjgagwgaUwgaIGA1UdAQSBmjCBl4AQW9Bw
-72lyniNRfhSyTY7/y6FyMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBN
-aWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEh
-MB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5gg8AwQCLPDyIEdE+9mPs
-30AwDQYJKoZIhvcNAQEEBQADggEBAJXoC8CN85cYNe24ASTYdxHzXGAyn54Lyz4F
-kYiPyTrmIfLwV5MstaBHyGLv/NfMOztaqTZUaf4kbT/JzKreBXzdMY09nxBwarv+
-Ek8YacD80EPjEVogT+pie6+qGcgrNyUtvmWhEoolD2Oj91Qc+SHJ1hXzUqxuQzIH
-/YIX+OVnbA1R9r3xUse958Qw/CAxCYgdlSkaTdUdAqXxgOADtFv0sd3IV+5lScdS
-VLa0AygS/5DW8AiPfriXxas3LOR65Kh343agANBqP8HSNorgQRKoNWobats14dQc
-BOSoRQTIWjM4bk0cDWK3CqKM09VUP0bNHFWmcNsSOoeTdZ+n0qA=
------END CERTIFICATE-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/ms_iis.cer b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/ms_iis.cer
deleted file mode 100755 (executable)
index 250b926..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
------BEGIN CERTIFICATE-----\r
-MIIB5jCCAVOgAwIBAgIQWPe7KyA+U7lLUohulwW2HDAJBgUrDgMCHQUAMCExHzAd\r
-BgNVBAMTFmF4dGxzLmNlcm9jY2x1Yi5jb20uYXUwHhcNMDgwMzE3MTAyMTA2WhcN\r
-MDkwMzE3MTAyMTA2WjAhMR8wHQYDVQQDExZheHRscy5jZXJvY2NsdWIuY29tLmF1\r
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9JqHlQjrQMt3JW8yxcGhFagDa\r
-D4QiIY8+KItTt13fIBt5g1AG4VXniaylSqKKYNPwVzqSWl7WhxMmoFU73veF8o4M\r
-G0Zc5qbVB6ukrSV4WaTgHrIO6pWkyiaQ4L/eYfCo/2pByhl0IUKkf/TMN346/rFg\r
-JgrElx01l6QHNQrzVQIDAQABoycwJTATBgNVHSUEDDAKBggrBgEFBQcDATAOBgNV\r
-HQ8EBwMFALAAAAAwCQYFKw4DAh0FAAOBgQAbH94H1fryngROJ//Oa0D3vvTO8CJ3\r
-8VW+3gQEwrPBOWmN6RV8OM0dE6pf8wD3s7PTCcM5+/HI1Qk53nUGrNiOmKM1s0JB\r
-bvsO9RT+UF8mtdbo/n30M0MHMWPCC76baW3R+ANBp/V/z4l1ytpUTt+MHvz0VlUs\r
-J4uJA3s3uh23Tg==\r
------END CERTIFICATE-----\r
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/perf_bigint.c b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/perf_bigint.c
deleted file mode 100644 (file)
index a4ffab6..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Some performance testing of bigint.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "ssl.h"
-
-/**************************************************************************
- * BIGINT tests 
- *
- **************************************************************************/
-
-int main(int argc, char *argv[])
-{
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-    RSA_CTX *rsa_ctx;
-    BI_CTX *ctx;
-    bigint *bi_data, *bi_res;
-    int diff, res = 1;
-    struct timeval tv_old, tv_new;
-    const char *plaintext;
-    uint8_t compare[MAX_KEY_BYTE_SIZE];
-    int i, max_biggie = 10;    /* really crank performance */
-    int len; 
-    uint8_t *buf;
-
-    /**
-     * 512 bit key
-     */
-    plaintext = /* 64 byte number */
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^";
-
-    len = get_file("../ssl/test/axTLS.key_512", &buf);
-    asn1_get_private_key(buf, len, &rsa_ctx);
-    ctx = rsa_ctx->bi_ctx;
-    bi_data = bi_import(ctx, (uint8_t *)plaintext, strlen(plaintext));
-    bi_res = RSA_public(rsa_ctx, bi_data);
-    bi_data = bi_res;   /* reuse again */
-
-    gettimeofday(&tv_old, NULL);
-    for (i = 0; i < max_biggie; i++)
-    {
-        bi_res = RSA_private(rsa_ctx, bi_copy(bi_data));
-        if (i < max_biggie-1)
-        {
-            bi_free(ctx, bi_res);
-        }
-    }
-
-    gettimeofday(&tv_new, NULL);
-    bi_free(ctx, bi_data);
-
-    diff = (tv_new.tv_sec-tv_old.tv_sec)*1000 +
-                (tv_new.tv_usec-tv_old.tv_usec)/1000;
-    printf("512 bit decrypt time: %dms\n", diff/max_biggie);
-    TTY_FLUSH();
-    bi_export(ctx, bi_res, compare, 64);
-    RSA_free(rsa_ctx);
-    free(buf);
-    if (memcmp(plaintext, compare, 64) != 0)
-        goto end;
-
-    /**
-     * 1024 bit key
-     */
-    plaintext = /* 128 byte number */
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^"
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^";
-
-    len = get_file("../ssl/test/axTLS.key_1024", &buf);
-    asn1_get_private_key(buf, len, &rsa_ctx);
-    ctx = rsa_ctx->bi_ctx;
-    bi_data = bi_import(ctx, (uint8_t *)plaintext, strlen(plaintext));
-    bi_res = RSA_public(rsa_ctx, bi_data);
-    bi_data = bi_res;   /* reuse again */
-
-    gettimeofday(&tv_old, NULL);
-    for (i = 0; i < max_biggie; i++)
-    {
-        bi_res = RSA_private(rsa_ctx, bi_copy(bi_data));
-        if (i < max_biggie-1)
-        {
-            bi_free(ctx, bi_res);
-        }
-    }
-
-    gettimeofday(&tv_new, NULL);
-    bi_free(ctx, bi_data);
-
-    diff = (tv_new.tv_sec-tv_old.tv_sec)*1000 +
-                (tv_new.tv_usec-tv_old.tv_usec)/1000;
-    printf("1024 bit decrypt time: %dms\n", diff/max_biggie);
-    TTY_FLUSH();
-    bi_export(ctx, bi_res, compare, 128);
-    RSA_free(rsa_ctx);
-    free(buf);
-    if (memcmp(plaintext, compare, 128) != 0)
-        goto end;
-
-    /**
-     * 2048 bit key
-     */
-    plaintext = /* 256 byte number */
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^"
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^"
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^"
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^";
-
-    len = get_file("../ssl/test/axTLS.key_2048", &buf);
-    asn1_get_private_key(buf, len, &rsa_ctx);
-    ctx = rsa_ctx->bi_ctx;
-    bi_data = bi_import(ctx, (uint8_t *)plaintext, strlen(plaintext));
-    bi_res = RSA_public(rsa_ctx, bi_data);
-    bi_data = bi_res;   /* reuse again */
-
-    gettimeofday(&tv_old, NULL);
-    for (i = 0; i < max_biggie; i++)
-    {
-        bi_res = RSA_private(rsa_ctx, bi_copy(bi_data));
-        if (i < max_biggie-1)
-        {
-            bi_free(ctx, bi_res);
-        }
-    }
-    gettimeofday(&tv_new, NULL);
-    bi_free(ctx, bi_data);
-
-    diff = (tv_new.tv_sec-tv_old.tv_sec)*1000 +
-                (tv_new.tv_usec-tv_old.tv_usec)/1000;
-    printf("2048 bit decrypt time: %dms\n", diff/max_biggie);
-    TTY_FLUSH();
-    bi_export(ctx, bi_res, compare, 256);
-    RSA_free(rsa_ctx);
-    free(buf);
-    if (memcmp(plaintext, compare, 256) != 0)
-        goto end;
-
-    /**
-     * 4096 bit key
-     */
-    plaintext = /* 512 byte number */
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^"
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^"
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^"
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^"
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^"
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^"
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^"
-        "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*^";
-
-    len = get_file("../ssl/test/axTLS.key_4096", &buf);
-    asn1_get_private_key(buf, len, &rsa_ctx);
-    ctx = rsa_ctx->bi_ctx;
-    bi_data = bi_import(ctx, (uint8_t *)plaintext, strlen(plaintext));
-    gettimeofday(&tv_old, NULL);
-    bi_res = RSA_public(rsa_ctx, bi_data);
-    gettimeofday(&tv_new, NULL);
-    diff = (tv_new.tv_sec-tv_old.tv_sec)*1000 +
-                (tv_new.tv_usec-tv_old.tv_usec)/1000;
-    printf("4096 bit encrypt time: %dms\n", diff);
-    TTY_FLUSH();
-    bi_data = bi_res;   /* reuse again */
-
-    gettimeofday(&tv_old, NULL);
-    for (i = 0; i < max_biggie; i++)
-    {
-        bi_res = RSA_private(rsa_ctx, bi_copy(bi_data));
-        if (i < max_biggie-1)
-        {
-            bi_free(ctx, bi_res);
-        }
-    }
-
-    gettimeofday(&tv_new, NULL);
-    bi_free(ctx, bi_data);
-
-    diff = (tv_new.tv_sec-tv_old.tv_sec)*1000 +
-                (tv_new.tv_usec-tv_old.tv_usec)/1000;
-    printf("4096 bit decrypt time: %dms\n", diff/max_biggie);
-    TTY_FLUSH();
-    bi_export(ctx, bi_res, compare, 512);
-    RSA_free(rsa_ctx);
-    free(buf);
-    if (memcmp(plaintext, compare, 512) != 0)
-        goto end;
-
-    /* done */
-    printf("Bigint performance testing complete\n");
-    res = 0;
-
-end:
-    return res;
-#else
-    return 0;
-#endif
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/socgen.cer b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/socgen.cer
deleted file mode 100755 (executable)
index a427870..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/socgen.cer and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/ssltest.c b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/ssltest.c
deleted file mode 100644 (file)
index d525e1a..0000000
+++ /dev/null
@@ -1,1983 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * The testing of the crypto and ssl stuff goes here. Keeps the individual code
- * modules from being uncluttered with test code.
- *
- * This is test code - I make no apologies for the quality!
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#ifndef WIN32
-#include <pthread.h>
-#endif
-
-#include "ssl.h"
-
-#define DEFAULT_CERT            "../ssl/test/axTLS.x509_512.cer"
-#define DEFAULT_KEY             "../ssl/test/axTLS.key_512"     
-//#define DEFAULT_SVR_OPTION      SSL_DISPLAY_BYTES|SSL_DISPLAY_STATES
-#define DEFAULT_SVR_OPTION      0
-#define DEFAULT_CLNT_OPTION     0
-//#define DEFAULT_CLNT_OPTION      SSL_DISPLAY_BYTES|SSL_DISPLAY_STATES
-
-static int g_port = 19001;
-
-/**************************************************************************
- * AES tests 
- * 
- * Run through a couple of the RFC3602 tests to verify that AES is correct.
- **************************************************************************/
-#define TEST1_SIZE  16
-#define TEST2_SIZE  32
-
-static int AES_test(BI_CTX *bi_ctx)
-{
-    AES_CTX aes_key;
-    int res = 1;
-    uint8_t key[TEST1_SIZE];
-    uint8_t iv[TEST1_SIZE];
-
-    {
-        /*
-            Case #1: Encrypting 16 bytes (1 block) using AES-CBC
-            Key       : 0x06a9214036b8a15b512e03d534120006
-            IV        : 0x3dafba429d9eb430b422da802c9fac41
-            Plaintext : "Single block msg"
-            Ciphertext: 0xe353779c1079aeb82708942dbe77181a
-
-        */
-        char *in_str =  "Single block msg";
-        uint8_t ct[TEST1_SIZE];
-        uint8_t enc_data[TEST1_SIZE];
-        uint8_t dec_data[TEST1_SIZE];
-
-        bigint *key_bi = bi_str_import(
-                bi_ctx, "06A9214036B8A15B512E03D534120006");
-        bigint *iv_bi = bi_str_import(
-                bi_ctx, "3DAFBA429D9EB430B422DA802C9FAC41");
-        bigint *ct_bi = bi_str_import(
-                bi_ctx, "E353779C1079AEB82708942DBE77181A");
-        bi_export(bi_ctx, key_bi, key, TEST1_SIZE);
-        bi_export(bi_ctx, iv_bi, iv, TEST1_SIZE);
-        bi_export(bi_ctx, ct_bi, ct, TEST1_SIZE);
-
-        AES_set_key(&aes_key, key, iv, AES_MODE_128);
-        AES_cbc_encrypt(&aes_key, (const uint8_t *)in_str, 
-                enc_data, sizeof(enc_data));
-        if (memcmp(enc_data, ct, sizeof(ct)))
-        {
-            printf("Error: AES ENCRYPT #1 failed\n");
-            goto end;
-        }
-
-        AES_set_key(&aes_key, key, iv, AES_MODE_128);
-        AES_convert_key(&aes_key);
-        AES_cbc_decrypt(&aes_key, enc_data, dec_data, sizeof(enc_data));
-
-        if (memcmp(dec_data, in_str, sizeof(dec_data)))
-        {
-            printf("Error: AES DECRYPT #1 failed\n");
-            goto end;
-        }
-    }
-
-    {
-        /*
-            Case #2: Encrypting 32 bytes (2 blocks) using AES-CBC 
-            Key       : 0xc286696d887c9aa0611bbb3e2025a45a
-            IV        : 0x562e17996d093d28ddb3ba695a2e6f58
-            Plaintext : 0x000102030405060708090a0b0c0d0e0f
-                          101112131415161718191a1b1c1d1e1f
-            Ciphertext: 0xd296cd94c2cccf8a3a863028b5e1dc0a
-                          7586602d253cfff91b8266bea6d61ab1
-        */
-        uint8_t in_data[TEST2_SIZE];
-        uint8_t ct[TEST2_SIZE];
-        uint8_t enc_data[TEST2_SIZE];
-        uint8_t dec_data[TEST2_SIZE];
-
-        bigint *in_bi = bi_str_import(bi_ctx,
-            "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F");
-        bigint *key_bi = bi_str_import(
-                bi_ctx, "C286696D887C9AA0611BBB3E2025A45A");
-        bigint *iv_bi = bi_str_import(
-                bi_ctx, "562E17996D093D28DDB3BA695A2E6F58");
-        bigint *ct_bi = bi_str_import(bi_ctx,
-            "D296CD94C2CCCF8A3A863028B5E1DC0A7586602D253CFFF91B8266BEA6D61AB1");
-        bi_export(bi_ctx, in_bi, in_data, TEST2_SIZE);
-        bi_export(bi_ctx, key_bi, key, TEST1_SIZE);
-        bi_export(bi_ctx, iv_bi, iv, TEST1_SIZE);
-        bi_export(bi_ctx, ct_bi, ct, TEST2_SIZE);
-
-        AES_set_key(&aes_key, key, iv, AES_MODE_128);
-        AES_cbc_encrypt(&aes_key, (const uint8_t *)in_data, 
-                enc_data, sizeof(enc_data));
-
-        if (memcmp(enc_data, ct, sizeof(ct)))
-        {
-            printf("Error: ENCRYPT #2 failed\n");
-            goto end;
-        }
-
-        AES_set_key(&aes_key, key, iv, AES_MODE_128);
-        AES_convert_key(&aes_key);
-        AES_cbc_decrypt(&aes_key, enc_data, dec_data, sizeof(enc_data));
-        if (memcmp(dec_data, in_data, sizeof(dec_data)))
-        {
-            printf("Error: DECRYPT #2 failed\n");
-            goto end;
-        }
-    }
-
-    res = 0;
-    printf("All AES tests passed\n");
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * RC4 tests 
- *
- * ARC4 tests vectors from OpenSSL (crypto/rc4/rc4test.c)
- **************************************************************************/
-static const uint8_t keys[7][30]=
-{
-    {8,0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef},
-    {8,0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef},
-    {8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
-    {4,0xef,0x01,0x23,0x45},
-    {8,0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef},
-    {4,0xef,0x01,0x23,0x45},
-};
-
-static const uint8_t data_len[7]={8,8,8,20,28,10};
-static uint8_t data[7][30]=
-{
-    {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,0xff},
-    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff},
-    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff},
-    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-        0x00,0x00,0x00,0x00,0xff},
-        {0x12,0x34,0x56,0x78,0x9A,0xBC,0xDE,0xF0,
-            0x12,0x34,0x56,0x78,0x9A,0xBC,0xDE,0xF0,
-            0x12,0x34,0x56,0x78,0x9A,0xBC,0xDE,0xF0,
-            0x12,0x34,0x56,0x78,0xff},
-            {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff},
-            {0},
-};
-
-static const uint8_t output[7][30]=
-{
-    {0x75,0xb7,0x87,0x80,0x99,0xe0,0xc5,0x96,0x00},
-    {0x74,0x94,0xc2,0xe7,0x10,0x4b,0x08,0x79,0x00},
-    {0xde,0x18,0x89,0x41,0xa3,0x37,0x5d,0x3a,0x00},
-    {0xd6,0xa1,0x41,0xa7,0xec,0x3c,0x38,0xdf,
-        0xbd,0x61,0x5a,0x11,0x62,0xe1,0xc7,0xba,
-        0x36,0xb6,0x78,0x58,0x00},
-        {0x66,0xa0,0x94,0x9f,0x8a,0xf7,0xd6,0x89,
-            0x1f,0x7f,0x83,0x2b,0xa8,0x33,0xc0,0x0c,
-            0x89,0x2e,0xbe,0x30,0x14,0x3c,0xe2,0x87,
-            0x40,0x01,0x1e,0xcf,0x00},
-            {0xd6,0xa1,0x41,0xa7,0xec,0x3c,0x38,0xdf,0xbd,0x61,0x00},
-            {0},
-};
-
-static int RC4_test(BI_CTX *bi_ctx)
-{
-    int i, res = 1;
-    RC4_CTX s;
-
-    for (i = 0; i < 6; i++)
-    {
-        RC4_setup(&s, &keys[i][1], keys[i][0]);
-        RC4_crypt(&s, data[i], data[i], data_len[i]);
-
-        if (memcmp(data[i], output[i], data_len[i]))
-        {
-            printf("Error: RC4 CRYPT #%d failed\n", i);
-            goto end;
-        }
-    }
-
-    res = 0;
-    printf("All RC4 tests passed\n");
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * SHA1 tests 
- *
- * Run through a couple of the RFC3174 tests to verify that SHA1 is correct.
- **************************************************************************/
-static int SHA1_test(BI_CTX *bi_ctx)
-{
-    SHA1_CTX ctx;
-    uint8_t ct[SHA1_SIZE];
-    uint8_t digest[SHA1_SIZE];
-    int res = 1;
-
-    {
-        const char *in_str = "abc";
-        bigint *ct_bi = bi_str_import(bi_ctx,
-                "A9993E364706816ABA3E25717850C26C9CD0D89D");
-        bi_export(bi_ctx, ct_bi, ct, SHA1_SIZE);
-
-        SHA1_Init(&ctx);
-        SHA1_Update(&ctx, (const uint8_t *)in_str, strlen(in_str));
-        SHA1_Final(digest, &ctx);
-
-        if (memcmp(digest, ct, sizeof(ct)))
-        {
-            printf("Error: SHA1 #1 failed\n");
-            goto end;
-        }
-    }
-
-    {
-        const char *in_str =
-            "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
-        bigint *ct_bi = bi_str_import(bi_ctx,
-                "84983E441C3BD26EBAAE4AA1F95129E5E54670F1");
-        bi_export(bi_ctx, ct_bi, ct, SHA1_SIZE);
-
-        SHA1_Init(&ctx);
-        SHA1_Update(&ctx, (const uint8_t *)in_str, strlen(in_str));
-        SHA1_Final(digest, &ctx);
-
-        if (memcmp(digest, ct, sizeof(ct)))
-        {
-            printf("Error: SHA1 #2 failed\n");
-            goto end;
-        }
-    }
-
-    res = 0;
-    printf("All SHA1 tests passed\n");
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * MD5 tests 
- *
- * Run through a couple of the RFC1321 tests to verify that MD5 is correct.
- **************************************************************************/
-static int MD5_test(BI_CTX *bi_ctx)
-{
-    MD5_CTX ctx;
-    uint8_t ct[MD5_SIZE];
-    uint8_t digest[MD5_SIZE];
-    int res = 1;
-
-    {
-        const char *in_str =  "abc";
-        bigint *ct_bi = bi_str_import(bi_ctx, 
-                "900150983CD24FB0D6963F7D28E17F72");
-        bi_export(bi_ctx, ct_bi, ct, MD5_SIZE);
-
-        MD5_Init(&ctx);
-        MD5_Update(&ctx, (const uint8_t *)in_str, strlen(in_str));
-        MD5_Final(digest, &ctx);
-
-        if (memcmp(digest, ct, sizeof(ct)))
-        {
-            printf("Error: MD5 #1 failed\n");
-            goto end;
-        }
-    }
-
-    {
-        const char *in_str =
-            "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
-        bigint *ct_bi = bi_str_import(
-                bi_ctx, "D174AB98D277D9F5A5611C2C9F419D9F");
-        bi_export(bi_ctx, ct_bi, ct, MD5_SIZE);
-
-        MD5_Init(&ctx);
-        MD5_Update(&ctx, (const uint8_t *)in_str, strlen(in_str));
-        MD5_Final(digest, &ctx);
-
-        if (memcmp(digest, ct, sizeof(ct)))
-        {
-            printf("Error: MD5 #2 failed\n");
-            goto end;
-        }
-    }
-    res = 0;
-    printf("All MD5 tests passed\n");
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * HMAC tests 
- *
- * Run through a couple of the RFC2202 tests to verify that HMAC is correct.
- **************************************************************************/
-static int HMAC_test(BI_CTX *bi_ctx)
-{
-    uint8_t key[SHA1_SIZE];
-    uint8_t ct[SHA1_SIZE];
-    uint8_t dgst[SHA1_SIZE];
-    int res = 1;
-    const char *key_str;
-
-    const char *data_str = "Hi There";
-    bigint *key_bi = bi_str_import(bi_ctx, "0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B");
-    bigint *ct_bi = bi_str_import(bi_ctx, "9294727A3638BB1C13F48EF8158BFC9D");
-    bi_export(bi_ctx, key_bi, key, MD5_SIZE);
-    bi_export(bi_ctx, ct_bi, ct, MD5_SIZE);
-    hmac_md5((const uint8_t *)data_str, 8, key, MD5_SIZE, dgst);
-    if (memcmp(dgst, ct, MD5_SIZE))
-    {
-        printf("HMAC MD5 #1 failed\n");
-        goto end;
-    }
-
-    data_str = "what do ya want for nothing?";
-    key_str = "Jefe";
-    ct_bi = bi_str_import(bi_ctx, "750C783E6AB0B503EAA86E310A5DB738");
-    bi_export(bi_ctx, ct_bi, ct, MD5_SIZE);
-    hmac_md5((const uint8_t *)data_str, 28, (const uint8_t *)key_str, 4, dgst);
-    if (memcmp(dgst, ct, MD5_SIZE))
-    {
-        printf("HMAC MD5 #2 failed\n");
-        goto end;
-    }
-   
-    data_str = "Hi There";
-    key_bi = bi_str_import(bi_ctx, "0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B");
-    bi_export(bi_ctx, key_bi, key, SHA1_SIZE);
-    ct_bi = bi_str_import(bi_ctx, "B617318655057264E28BC0B6FB378C8EF146BE00");
-    bi_export(bi_ctx, ct_bi, ct, SHA1_SIZE);
-
-    hmac_sha1((const uint8_t *)data_str, 8, 
-            (const uint8_t *)key, SHA1_SIZE, dgst);
-    if (memcmp(dgst, ct, SHA1_SIZE))
-    {
-        printf("HMAC SHA1 #1 failed\n");
-        goto end;
-    }
-
-    data_str = "what do ya want for nothing?";
-    key_str = "Jefe";
-    ct_bi = bi_str_import(bi_ctx, "EFFCDF6AE5EB2FA2D27416D5F184DF9C259A7C79");
-    bi_export(bi_ctx, ct_bi, ct, SHA1_SIZE);
-
-    hmac_sha1((const uint8_t *)data_str, 28, (const uint8_t *)key_str, 5, dgst);
-    if (memcmp(dgst, ct, SHA1_SIZE))
-    {
-        printf("HMAC SHA1 failed\n");
-        exit(1);
-    }
-
-    res = 0;
-    printf("All HMAC tests passed\n");
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * BIGINT tests 
- *
- **************************************************************************/
-static int BIGINT_test(BI_CTX *ctx)
-{
-    int res = 1;
-    bigint *bi_data, *bi_exp, *bi_res;
-    const char *expnt, *plaintext, *mod;
-    uint8_t compare[MAX_KEY_BYTE_SIZE];
-
-    /**
-     * 512 bit key
-     */
-    plaintext = /* 64 byte number */
-        "01aaaaaaaaaabbbbbbbbbbbbbbbccccccccccccccdddddddddddddeeeeeeeeee";
-
-    mod = "C30773C8ABE09FCC279EE0E5343370DE"
-          "8B2FFDB6059271E3005A7CEEF0D35E0A"
-          "1F9915D95E63560836CC2EB2C289270D"
-          "BCAE8CAF6F5E907FC2759EE220071E1B";
-
-    expnt = "A1E556CD1738E10DF539E35101334E97"
-          "BE8D391C57A5C89A7AD9A2EA2ACA1B3D"
-          "F3140F5091CC535CBAA47CEC4159EE1F"
-          "B6A3661AFF1AB758426EAB158452A9B9";
-
-    bi_data = bi_import(ctx, (uint8_t *)plaintext, strlen(plaintext));
-    bi_exp = int_to_bi(ctx, 0x10001);
-    bi_set_mod(ctx, bi_str_import(ctx, mod), 0);
-    bi_res = bi_mod_power(ctx, bi_data, bi_exp);
-
-    bi_data = bi_res;   /* resuse again - see if we get the original */
-
-    bi_exp = bi_str_import(ctx, expnt);
-    bi_res = bi_mod_power(ctx, bi_data, bi_exp);
-    bi_free_mod(ctx, 0);
-
-    bi_export(ctx, bi_res, compare, 64);
-    if (memcmp(plaintext, compare, 64) != 0)
-        goto end;
-
-    printf("All BIGINT tests passed\n");
-    res = 0;
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * RSA tests 
- *
- * Use the results from openssl to verify PKCS1 etc 
- **************************************************************************/
-static int RSA_test(void)
-{
-    int res = 1;
-    const char *plaintext = /* 128 byte hex number */
-        "1aaaaaaaaaabbbbbbbbbbbbbbbccccccccccccccdddddddddddddeeeeeeeeee2"
-        "1aaaaaaaaaabbbbbbbbbbbbbbbccccccccccccccdddddddddddddeeeeeeeee2\012";
-    uint8_t enc_data[128], dec_data[128];
-    RSA_CTX *rsa_ctx = NULL;
-    BI_CTX *bi_ctx;
-    bigint *plaintext_bi;
-    bigint *enc_data_bi, *dec_data_bi;
-    uint8_t enc_data2[128], dec_data2[128];
-    int size;
-    int len; 
-    uint8_t *buf;
-
-    /* extract the private key elements */
-    len = get_file("../ssl/test/axTLS.key_1024", &buf);
-    if (asn1_get_private_key(buf, len, &rsa_ctx) < 0)
-    {
-        goto end;
-    }
-
-    free(buf);
-    bi_ctx = rsa_ctx->bi_ctx;
-    plaintext_bi = bi_import(bi_ctx, 
-            (const uint8_t *)plaintext, strlen(plaintext));
-
-    /* basic rsa encrypt */
-    enc_data_bi = RSA_public(rsa_ctx, plaintext_bi);
-    bi_export(bi_ctx, bi_copy(enc_data_bi), enc_data, sizeof(enc_data));
-
-    /* basic rsa decrypt */
-    dec_data_bi = RSA_private(rsa_ctx, enc_data_bi);
-    bi_export(bi_ctx, dec_data_bi, dec_data, sizeof(dec_data));
-
-    if (memcmp(dec_data, plaintext, strlen(plaintext)))
-    {
-        printf("Error: DECRYPT #1 failed\n");
-        goto end;
-    }
-
-    RSA_encrypt(rsa_ctx, (const uint8_t *)"abc", 3, enc_data2, 0);
-    size = RSA_decrypt(rsa_ctx, enc_data2, dec_data2, 1);
-    if (memcmp("abc", dec_data2, 3))
-    {
-        printf("Error: ENCRYPT/DECRYPT #2 failed\n");
-        goto end;
-    }
-
-    RSA_free(rsa_ctx);
-    res = 0;
-    printf("All RSA tests passed\n");
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * Cert Testing
- *
- **************************************************************************/
-static int cert_tests(void)
-{
-    int res = -1, len;
-    X509_CTX *x509_ctx;
-    SSL_CTX *ssl_ctx;
-    uint8_t *buf;
-
-    /* check a bunch of 3rd party certificates */
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/microsoft.x509_ca", &buf);
-    if ((res = add_cert_auth(ssl_ctx, buf, len)) < 0)
-    {
-        printf("Cert #1\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/thawte.x509_ca", &buf);
-    if ((res = add_cert_auth(ssl_ctx, buf, len)) < 0)
-    {
-        printf("Cert #2\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/deutsche_telecom.x509_ca", &buf);
-    if ((res = add_cert_auth(ssl_ctx, buf, len)) < 0)
-    {
-        printf("Cert #3\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/equifax.x509_ca", &buf);
-    if ((res = add_cert_auth(ssl_ctx, buf, len)) < 0)
-    {
-        printf("Cert #4\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/gnutls.cer", &buf);
-    if ((res = add_cert(ssl_ctx, buf, len)) < 0)
-    {
-        printf("Cert #5\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/socgen.cer", &buf);
-    if ((res = add_cert(ssl_ctx, buf, len)) < 0)
-    {
-        printf("Cert #6\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/verisign.x509_ca", &buf);
-    if ((res = add_cert_auth(ssl_ctx, buf, len)) <0)
-    {
-        printf("Cert #7\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    if (get_file("../ssl/test/verisign.x509_my_cert", &buf) < 0 ||
-                                    x509_new(buf, &len, &x509_ctx))
-    {
-        printf("Cert #8\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    x509_free(x509_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    if ((res = ssl_obj_load(ssl_ctx, 
-              SSL_OBJ_X509_CERT, "../ssl/test/ms_iis.cer", NULL)) != SSL_OK)
-    {
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    res = 0;        /* all ok */
-    printf("All Certificate tests passed\n");
-
-bad_cert:
-    if (res)
-        printf("Error: A certificate test failed\n");
-    return res;
-}
-
-/**
- * init a server socket.
- */
-static int server_socket_init(int *port)
-{
-    struct sockaddr_in serv_addr;
-    int server_fd;
-    char yes = 1;
-
-    /* Create socket for incoming connections */
-    if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
-    {
-        return -1;
-    }
-      
-    setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
-
-go_again:
-    /* Construct local address structure */
-    memset(&serv_addr, 0, sizeof(serv_addr));      /* Zero out structure */
-    serv_addr.sin_family = AF_INET;                /* Internet address family */
-    serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); /* Any incoming interface */
-    serv_addr.sin_port = htons(*port);              /* Local port */
-
-    /* Bind to the local address */
-    if (bind(server_fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
-    {
-        (*port)++;
-        goto go_again;
-    }
-    /* Mark the socket so it will listen for incoming connections */
-    if (listen(server_fd, 3000) < 0)
-    {
-        return -1;
-    }
-
-    return server_fd;
-}
-
-/**
- * init a client socket.
- */
-static int client_socket_init(uint16_t port)
-{
-    struct sockaddr_in address;
-    int client_fd;
-
-    address.sin_family = AF_INET;
-    address.sin_port = htons(port);
-    address.sin_addr.s_addr =  inet_addr("127.0.0.1");
-    client_fd = socket(AF_INET, SOCK_STREAM, 0);
-    if (connect(client_fd, (struct sockaddr *)&address, sizeof(address)) < 0)
-    {
-        perror("socket");
-        SOCKET_CLOSE(client_fd);
-        client_fd = -1;
-    }
-
-    return client_fd;
-}
-
-/**************************************************************************
- * SSL Server Testing
- *
- **************************************************************************/
-typedef struct
-{
-    /* not used as yet */
-    int dummy;
-} SVR_CTX;
-
-typedef struct
-{
-    const char *testname;
-    const char *openssl_option;
-} client_t;
-
-static void do_client(client_t *clnt)
-{
-    char openssl_buf[2048];
-
-    /* make sure the main thread goes first */
-    sleep(0);
-
-    /* show the session ids in the reconnect test */
-    if (strcmp(clnt->testname, "Session Reuse") == 0)
-    {
-        sprintf(openssl_buf, "echo \"hello client\" | openssl s_client "
-            "-connect localhost:%d %s 2>&1 | grep \"Session-ID:\"", 
-            g_port, clnt->openssl_option);
-    }
-    else
-    {
-        sprintf(openssl_buf, "echo \"hello client\" | openssl s_client "
-#ifdef WIN32
-            "-connect localhost:%d -quiet %s",
-#else
-            "-connect localhost:%d -quiet %s > /dev/null 2>&1",
-#endif
-        g_port, clnt->openssl_option);
-    }
-
-    system(openssl_buf);
-}
-
-static int SSL_server_test(
-        const char *testname, 
-        const char *openssl_option, 
-        const char *device_cert, 
-        const char *product_cert, 
-        const char *private_key,
-        const char *ca_cert,
-        const char *password,
-        int axtls_option)
-{
-    int server_fd, ret = 0;
-    SSL_CTX *ssl_ctx = NULL;
-    struct sockaddr_in client_addr;
-    uint8_t *read_buf;
-    socklen_t clnt_len = sizeof(client_addr);
-    client_t client_data;
-#ifndef WIN32
-    pthread_t thread;
-#endif
-    g_port++;
-
-    client_data.testname = testname;
-    client_data.openssl_option = openssl_option;
-
-    if ((server_fd = server_socket_init(&g_port)) < 0)
-        goto error;
-
-    if (private_key)
-    {
-        axtls_option |= SSL_NO_DEFAULT_KEY;
-    }
-
-    if ((ssl_ctx = ssl_ctx_new(axtls_option, SSL_DEFAULT_SVR_SESS)) == NULL)
-    {
-        ret = SSL_ERROR_INVALID_KEY;
-        goto error;
-    }
-
-    if (private_key)
-    {
-        int obj_type = SSL_OBJ_RSA_KEY;
-
-        if (strstr(private_key, ".p8"))
-            obj_type = SSL_OBJ_PKCS8;
-        else if (strstr(private_key, ".p12"))
-            obj_type = SSL_OBJ_PKCS12;
-
-        if (ssl_obj_load(ssl_ctx, obj_type, private_key, password))
-        {
-            ret = SSL_ERROR_INVALID_KEY;
-            goto error;
-        }
-    }
-
-    if (device_cert)             /* test chaining */
-    {
-        if ((ret = ssl_obj_load(ssl_ctx, 
-                        SSL_OBJ_X509_CERT, device_cert, NULL)) != SSL_OK)
-            goto error;
-    }
-
-    if (product_cert)             /* test chaining */
-    {
-        if ((ret = ssl_obj_load(ssl_ctx, 
-                        SSL_OBJ_X509_CERT, product_cert, NULL)) != SSL_OK)
-            goto error;
-    }
-
-    if (ca_cert)                  /* test adding certificate authorities */
-    {
-        if ((ret = ssl_obj_load(ssl_ctx, 
-                        SSL_OBJ_X509_CACERT, ca_cert, NULL)) != SSL_OK)
-            goto error;
-    }
-
-#ifndef WIN32
-    pthread_create(&thread, NULL, 
-                (void *(*)(void *))do_client, (void *)&client_data);
-    pthread_detach(thread);
-#else
-    CreateThread(NULL, 1024, (LPTHREAD_START_ROUTINE)do_client, 
-            (LPVOID)&client_data, 0, NULL);
-#endif
-
-    for (;;)
-    {
-        int client_fd, size = 0; 
-        SSL *ssl;
-
-        /* Wait for a client to connect */
-        if ((client_fd = accept(server_fd, 
-                        (struct sockaddr *)&client_addr, &clnt_len)) < 0)
-        {
-            ret = SSL_ERROR_SOCK_SETUP_FAILURE;
-            goto error;
-        }
-        
-        /* we are ready to go */
-        ssl = ssl_server_new(ssl_ctx, client_fd);
-        while ((size = ssl_read(ssl, &read_buf)) == SSL_OK);
-        SOCKET_CLOSE(client_fd);
-        
-        if (size < SSL_OK) /* got some alert or something nasty */
-        {
-            ret = size;
-
-            if (ret == SSL_ERROR_CONN_LOST)
-            {
-                ret = SSL_OK;
-                continue;
-            }
-
-            break;  /* we've got a problem */
-        }
-        else /* looks more promising */
-        {
-            if (strstr("hello client", (char *)read_buf) == NULL)
-            {
-                printf("SSL server test \"%s\" passed\n", testname);
-                TTY_FLUSH();
-                ret = 0;
-                break;
-            }
-        }
-
-        ssl_free(ssl);
-    }
-
-    SOCKET_CLOSE(server_fd);
-
-error:
-    ssl_ctx_free(ssl_ctx);
-    return ret;
-}
-
-int SSL_server_tests(void)
-{
-    int ret = -1;
-    struct stat stat_buf;
-    SVR_CTX svr_test_ctx;
-    memset(&svr_test_ctx, 0, sizeof(SVR_CTX));
-
-    printf("### starting server tests\n"); TTY_FLUSH();
-
-    /* Go through the algorithms */
-
-    /* 
-     * TLS1 client hello 
-     */
-    if ((ret = SSL_server_test("TLSv1", "-cipher RC4-SHA -tls1", 
-                    NULL, NULL, NULL, NULL, NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * AES128-SHA
-     */
-    if ((ret = SSL_server_test("AES256-SHA", "-cipher AES128-SHA", 
-                    DEFAULT_CERT, NULL, DEFAULT_KEY, NULL, NULL,
-                    DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * AES256-SHA
-     */
-    if ((ret = SSL_server_test("AES256-SHA", "-cipher AES128-SHA", 
-                    DEFAULT_CERT, NULL, DEFAULT_KEY, NULL, NULL,
-                    DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * RC4-SHA
-     */
-    if ((ret = SSL_server_test("RC4-SHA", "-cipher RC4-SHA", 
-                DEFAULT_CERT, NULL, DEFAULT_KEY, NULL, NULL,
-                DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * RC4-MD5
-     */
-    if ((ret = SSL_server_test("RC4-MD5", "-cipher RC4-MD5", 
-                DEFAULT_CERT, NULL, DEFAULT_KEY, NULL, NULL,
-                DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * Session Reuse
-     * all the session id's should match for session resumption.
-     */
-    if ((ret = SSL_server_test("Session Reuse", 
-                    "-cipher RC4-SHA -reconnect", 
-                    DEFAULT_CERT, NULL, DEFAULT_KEY, NULL, NULL,
-                    DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * 512 bit RSA key 
-     */
-    if ((ret = SSL_server_test("512 bit key", "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_512.cer", NULL, 
-                    "../ssl/test/axTLS.key_512",
-                    NULL, NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * 1024 bit RSA key (check certificate chaining)
-     */
-    if ((ret = SSL_server_test("1024 bit key", 
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_device.cer", 
-                    "../ssl/test/axTLS.x509_512.cer", 
-                    "../ssl/test/axTLS.device_key",
-                    NULL, NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * 2048 bit RSA key 
-     */
-    if ((ret = SSL_server_test("2048 bit key", 
-                    "-cipher RC4-SHA",
-                    "../ssl/test/axTLS.x509_2048.cer", NULL, 
-                    "../ssl/test/axTLS.key_2048",
-                    NULL, NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * 4096 bit RSA key 
-     */
-    if ((ret = SSL_server_test("4096 bit key", 
-                    "-cipher RC4-SHA",
-                    "../ssl/test/axTLS.x509_4096.cer", NULL, 
-                    "../ssl/test/axTLS.key_4096",
-                    NULL, NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * Client Verification
-     */
-    if ((ret = SSL_server_test("Client Verification", 
-                    "-cipher RC4-SHA -tls1 "
-                    "-cert ../ssl/test/axTLS.x509_2048.pem "
-                    "-key ../ssl/test/axTLS.key_2048.pem ",
-                    NULL, NULL, NULL, 
-                    "../ssl/test/axTLS.ca_x509.cer", NULL,
-                    DEFAULT_SVR_OPTION|SSL_CLIENT_AUTHENTICATION)))
-        goto cleanup;
-
-    /* this test should fail */
-    if (stat("../ssl/test/axTLS.x509_bad_before.pem", &stat_buf) >= 0)
-    {
-        if ((ret = SSL_server_test("Error: Bad Before Cert", 
-                    "-cipher RC4-SHA -tls1 "
-                    "-cert ../ssl/test/axTLS.x509_bad_before.pem "
-                    "-key ../ssl/test/axTLS.key_512.pem ",
-                    NULL, NULL, NULL, 
-                    "../ssl/test/axTLS.ca_x509.cer", NULL,
-                    DEFAULT_SVR_OPTION|SSL_CLIENT_AUTHENTICATION)) !=
-                            SSL_X509_ERROR(X509_VFY_ERROR_NOT_YET_VALID))
-            goto cleanup;
-
-        printf("SSL server test \"%s\" passed\n", "Bad Before Cert");
-        TTY_FLUSH();
-        ret = 0;    /* is ok */
-    }
-
-    /* this test should fail */
-    if ((ret = SSL_server_test("Error: Bad After Cert", 
-                    "-cipher RC4-SHA -tls1 "
-                    "-cert ../ssl/test/axTLS.x509_bad_after.pem "
-                    "-key ../ssl/test/axTLS.key_512.pem ",
-                    NULL, NULL, NULL, 
-                    "../ssl/test/axTLS.ca_x509.cer", NULL,
-                    DEFAULT_SVR_OPTION|SSL_CLIENT_AUTHENTICATION)) !=
-                            SSL_X509_ERROR(X509_VFY_ERROR_EXPIRED))
-        goto cleanup;
-
-    printf("SSL server test \"%s\" passed\n", "Bad After Cert");
-    TTY_FLUSH();
-
-    /*
-     * No trusted cert
-     */
-    if ((ret = SSL_server_test("Error: No trusted certificate", 
-                    "-cipher RC4-SHA -tls1 "
-                    "-cert ../ssl/test/axTLS.x509_512.pem "
-                    "-key ../ssl/test/axTLS.key_512.pem ",
-                    NULL, NULL, NULL, 
-                    NULL, NULL,
-                    DEFAULT_SVR_OPTION|SSL_CLIENT_AUTHENTICATION)) !=
-                            SSL_X509_ERROR(X509_VFY_ERROR_NO_TRUSTED_CERT))
-        goto cleanup;
-
-    printf("SSL server test \"%s\" passed\n", "No trusted certificate");
-    TTY_FLUSH();
-
-    /*
-     * Self-signed (from the server)
-     */
-    if ((ret = SSL_server_test("Error: Self-signed certificate (from server)", 
-                    "-cipher RC4-SHA -tls1 "
-                    "-cert ../ssl/test/axTLS.x509_512.pem "
-                    "-key ../ssl/test/axTLS.key_512.pem "
-                    "-CAfile ../ssl/test/axTLS.ca_x509.pem ",
-                    NULL, NULL, NULL, 
-                    NULL, NULL,
-                    DEFAULT_SVR_OPTION|SSL_CLIENT_AUTHENTICATION)) !=
-                            SSL_X509_ERROR(X509_VFY_ERROR_SELF_SIGNED))
-        goto cleanup;
-
-    printf("SSL server test \"%s\" passed\n", 
-                            "Self-signed certificate (from server)");
-    TTY_FLUSH();
-
-    /*
-     * Self-signed (from the client)
-     */
-    if ((ret = SSL_server_test("Self-signed certificate (from client)", 
-                    "-cipher RC4-SHA -tls1 "
-                    "-cert ../ssl/test/axTLS.x509_512.pem "
-                    "-key ../ssl/test/axTLS.key_512.pem ",
-                    NULL, NULL, NULL, 
-                    "../ssl/test/axTLS.ca_x509.cer",
-                    NULL,
-                    DEFAULT_SVR_OPTION|SSL_CLIENT_AUTHENTICATION)))
-        goto cleanup;
-
-    /* 
-     * Key in PEM format
-     */
-    if ((ret = SSL_server_test("Key in PEM format",
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_512.cer", NULL, 
-                    "../ssl/test/axTLS.key_512.pem", NULL,
-                    NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * Cert in PEM format
-     */
-    if ((ret = SSL_server_test("Cert in PEM format", 
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_512.pem", NULL, 
-                    "../ssl/test/axTLS.key_512.pem", NULL,
-                    NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * Cert chain in PEM format
-     */
-    if ((ret = SSL_server_test("Cert chain in PEM format", 
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_device.pem", 
-                    NULL, "../ssl/test/axTLS.device_key.pem",
-                    "../ssl/test/axTLS.ca_x509.pem", NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * AES128 Encrypted key 
-     */
-    if ((ret = SSL_server_test("AES128 encrypted key", 
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_aes128.pem", NULL, 
-                    "../ssl/test/axTLS.key_aes128.pem",
-                    NULL, "abcd", DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * AES256 Encrypted key 
-     */
-    if ((ret = SSL_server_test("AES256 encrypted key", 
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_aes256.pem", NULL, 
-                    "../ssl/test/axTLS.key_aes256.pem",
-                    NULL, "abcd", DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * AES128 Encrypted invalid key 
-     */
-    if ((ret = SSL_server_test("AES128 encrypted invalid key", 
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_aes128.pem", NULL, 
-                    "../ssl/test/axTLS.key_aes128.pem",
-                    NULL, "xyz", DEFAULT_SVR_OPTION)) != SSL_ERROR_INVALID_KEY)
-        goto cleanup;
-
-    printf("SSL server test \"%s\" passed\n", "AES128 encrypted invalid key");
-    TTY_FLUSH();
-
-    /*
-     * PKCS#8 key (encrypted)
-     */
-    if ((ret = SSL_server_test("pkcs#8 encrypted", "-cipher RC4-SHA", 
-                DEFAULT_CERT, NULL, "../ssl/test/axTLS.encrypted.p8", 
-                NULL, "abcd", DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * PKCS#8 key (unencrypted)
-     */
-    if ((ret = SSL_server_test("pkcs#8 unencrypted", "-cipher RC4-SHA", 
-                DEFAULT_CERT, NULL, "../ssl/test/axTLS.unencrypted.p8", 
-                NULL, NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * PKCS#12 key/certificate
-     */
-    if ((ret = SSL_server_test("pkcs#12 with CA", "-cipher RC4-SHA", 
-                NULL, NULL, "../ssl/test/axTLS.withCA.p12", 
-                NULL, "abcd", DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    if ((ret = SSL_server_test("pkcs#12 no CA", "-cipher RC4-SHA", 
-                DEFAULT_CERT, NULL, "../ssl/test/axTLS.withoutCA.p12", 
-                NULL, "abcd", DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    ret = 0;
-
-cleanup:
-    if (ret)
-    {
-        printf("Error: A server test failed\n");
-        ssl_display_error(ret);
-        exit(1);
-    }
-    else
-    {
-        printf("All server tests passed\n"); TTY_FLUSH();
-    }
-
-    return ret;
-}
-
-/**************************************************************************
- * SSL Client Testing
- *
- **************************************************************************/
-typedef struct
-{
-    uint8_t session_id[SSL_SESSION_ID_SIZE];
-#ifndef WIN32
-    pthread_t server_thread;
-#endif
-    int start_server;
-    int stop_server;
-    int do_reneg;
-} CLNT_SESSION_RESUME_CTX;
-
-typedef struct
-{
-    const char *testname;
-    const char *openssl_option;
-} server_t;
-
-static void do_server(server_t *svr)
-{
-    char openssl_buf[2048];
-#ifndef WIN32
-    pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
-#endif
-    sprintf(openssl_buf, "openssl s_server -tls1 " 
-            "-accept %d -quiet %s ", g_port, svr->openssl_option);
-    system(openssl_buf);
-}
-
-static int SSL_client_test(
-        const char *test,
-        SSL_CTX **ssl_ctx,
-        const char *openssl_option, 
-        CLNT_SESSION_RESUME_CTX *sess_resume,
-        uint32_t client_options,
-        const char *private_key,
-        const char *password,
-        const char *cert)
-{
-    server_t server_data;
-    SSL *ssl = NULL;
-    int client_fd = -1;
-    uint8_t *session_id = NULL;
-    int ret = 1;
-#ifndef WIN32
-    pthread_t thread;
-#endif
-
-    if (sess_resume == NULL || sess_resume->start_server)
-    {
-        g_port++;
-        server_data.openssl_option = openssl_option;
-
-#ifndef WIN32
-        pthread_create(&thread, NULL, 
-                (void *(*)(void *))do_server, (void *)&server_data);
-        pthread_detach(thread);
-#else
-        CreateThread(NULL, 1024, (LPTHREAD_START_ROUTINE)do_server, 
-            (LPVOID)&server_data, 0, NULL);
-#endif
-    }
-    
-    usleep(200000);           /* allow server to start */
-
-    if (*ssl_ctx == NULL)
-    {
-        if (private_key)
-        {
-            client_options |= SSL_NO_DEFAULT_KEY;
-        }
-
-        if ((*ssl_ctx = ssl_ctx_new(
-                            client_options, SSL_DEFAULT_CLNT_SESS)) == NULL)
-        {
-            ret = SSL_ERROR_INVALID_KEY;
-            goto client_test_exit;
-        }
-
-        if (private_key)
-        {
-            int obj_type = SSL_OBJ_RSA_KEY;
-
-            if (strstr(private_key, ".p8"))
-                obj_type = SSL_OBJ_PKCS8;
-            else if (strstr(private_key, ".p12"))
-                obj_type = SSL_OBJ_PKCS12;
-
-            if (ssl_obj_load(*ssl_ctx, obj_type, private_key, password))
-            {
-                ret = SSL_ERROR_INVALID_KEY;
-                goto client_test_exit;
-            }
-        }
-
-        if (cert)                  
-        {
-            if ((ret = ssl_obj_load(*ssl_ctx, 
-                            SSL_OBJ_X509_CERT, cert, NULL)) != SSL_OK)
-            {
-                printf("could not add cert %s (%d)\n", cert, ret);
-                TTY_FLUSH();
-                goto client_test_exit;
-            }
-        }
-
-       if (ssl_obj_load(*ssl_ctx, SSL_OBJ_X509_CACERT, 
-                               "../ssl/test/axTLS.ca_x509.cer", NULL))
-        {
-            printf("could not add cert auth\n"); TTY_FLUSH();
-            goto client_test_exit;
-        }
-    }
-    
-    if (sess_resume && !sess_resume->start_server) 
-    {
-        session_id = sess_resume->session_id;
-    }
-
-    if ((client_fd = client_socket_init(g_port)) < 0)
-    {
-        printf("could not start socket on %d\n", g_port); TTY_FLUSH();
-        goto client_test_exit;
-    }
-
-    ssl = ssl_client_new(*ssl_ctx, client_fd, session_id, sizeof(session_id));
-
-    /* check the return status */
-    if ((ret = ssl_handshake_status(ssl)))
-        goto client_test_exit;
-
-    /* renegotiate client */
-    if (sess_resume && sess_resume->do_reneg) 
-    {
-        if (ssl_renegotiate(ssl) < 0)
-            goto client_test_exit;
-    }
-
-    if (sess_resume)
-    {
-        memcpy(sess_resume->session_id, 
-                ssl_get_session_id(ssl), SSL_SESSION_ID_SIZE);
-    }
-
-    if (IS_SET_SSL_FLAG(SSL_SERVER_VERIFY_LATER) && 
-                                            (ret = ssl_verify_cert(ssl)))
-    {
-        goto client_test_exit;
-    }
-
-    ssl_write(ssl, (uint8_t *)"hello world\n", 13);
-    if (sess_resume)
-    {
-        const uint8_t *sess_id = ssl_get_session_id(ssl);
-        int i;
-
-        printf("    Session-ID: ");
-        for (i = 0; i < SSL_SESSION_ID_SIZE; i++)
-        {
-            printf("%02X", sess_id[i]);
-        }
-        printf("\n");
-        TTY_FLUSH();
-    }
-
-    ret = 0;
-
-client_test_exit:
-    ssl_free(ssl);
-    SOCKET_CLOSE(client_fd);
-    usleep(200000);           /* allow openssl to say something */
-
-    if (sess_resume)
-    {
-        if (sess_resume->stop_server)
-        {
-            ssl_ctx_free(*ssl_ctx);
-            *ssl_ctx = NULL;
-#ifndef WIN32
-            pthread_cancel(sess_resume->server_thread);
-#endif
-        }
-        else if (sess_resume->start_server)
-        {
-#ifndef WIN32
-           sess_resume->server_thread = thread;
-#endif
-        }
-    }
-    else
-    {
-        ssl_ctx_free(*ssl_ctx);
-        *ssl_ctx = NULL;
-#ifndef WIN32
-        pthread_cancel(thread);
-#endif
-    }
-
-    if (ret == 0)
-    {
-        printf("SSL client test \"%s\" passed\n", test);
-        TTY_FLUSH();
-    }
-
-    return ret;
-}
-
-int SSL_client_tests(void)
-{
-    int ret =  -1;
-    SSL_CTX *ssl_ctx = NULL;
-    CLNT_SESSION_RESUME_CTX sess_resume;
-    memset(&sess_resume, 0, sizeof(CLNT_SESSION_RESUME_CTX));
-
-    sess_resume.start_server = 1;
-    printf("### starting client tests\n");
-   
-    if ((ret = SSL_client_test("512 bit key", 
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_512.pem "
-                    "-key ../ssl/test/axTLS.key_512.pem", &sess_resume, 
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    /* all the session id's should match for session resumption */
-    sess_resume.start_server = 0;
-    if ((ret = SSL_client_test("Client session resumption #1", 
-                    &ssl_ctx, NULL, &sess_resume, 
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    sess_resume.do_reneg = 1;
-    if ((ret = SSL_client_test("Client renegotiation", 
-                    &ssl_ctx, NULL, &sess_resume, 
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-    sess_resume.do_reneg = 0;
-
-    sess_resume.stop_server = 1;
-    if ((ret = SSL_client_test("Client session resumption #2", 
-                    &ssl_ctx, NULL, &sess_resume, 
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    if ((ret = SSL_client_test("1024 bit key", 
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_1024.pem "
-                    "-key ../ssl/test/axTLS.key_1024.pem", NULL,
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    if ((ret = SSL_client_test("2048 bit key", 
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_2048.pem "
-                    "-key ../ssl/test/axTLS.key_2048.pem",  NULL,
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    if ((ret = SSL_client_test("4096 bit key", 
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_4096.pem "
-                    "-key ../ssl/test/axTLS.key_4096.pem", NULL,
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    if ((ret = SSL_client_test("Server cert chaining", 
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_device.pem "
-                    "-key ../ssl/test/axTLS.device_key.pem "
-                    "-CAfile ../ssl/test/axTLS.x509_512.pem ", NULL,
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    /* Check the server can verify the client */
-    if ((ret = SSL_client_test("Client peer authentication",
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_2048.pem "
-                    "-key ../ssl/test/axTLS.key_2048.pem "
-                    "-CAfile ../ssl/test/axTLS.ca_x509.pem "
-                    "-verify 1 ", NULL, DEFAULT_CLNT_OPTION, 
-                    "../ssl/test/axTLS.key_1024", NULL,
-                    "../ssl/test/axTLS.x509_1024.cer")))
-        goto cleanup;
-
-    /* Should get an "ERROR" from openssl (as the handshake fails as soon as
-     * the certificate verification fails) */
-    if ((ret = SSL_client_test("Error: Expired cert (verify now)",
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_bad_after.pem "
-                    "-key ../ssl/test/axTLS.key_512.pem", NULL,
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)) != 
-                            SSL_X509_ERROR(X509_VFY_ERROR_EXPIRED))
-    {
-        printf("*** Error: %d\n", ret);
-        goto cleanup;
-    }
-
-    printf("SSL client test \"Expired cert (verify now)\" passed\n");
-
-    /* There is no "ERROR" from openssl */
-    if ((ret = SSL_client_test("Error: Expired cert (verify later)", 
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_bad_after.pem "
-                    "-key ../ssl/test/axTLS.key_512.pem", NULL,
-                    DEFAULT_CLNT_OPTION|SSL_SERVER_VERIFY_LATER, NULL, 
-                    NULL, NULL)) != SSL_X509_ERROR(X509_VFY_ERROR_EXPIRED))
-    {
-        printf("*** Error: %d\n", ret);
-        goto cleanup;
-    }
-
-    printf("SSL client test \"Expired cert (verify later)\" passed\n");
-    ret = 0;
-
-cleanup:
-    if (ret)
-    {
-        ssl_display_error(ret);
-        printf("Error: A client test failed\n");
-        exit(1);
-    }
-    else
-    {
-        printf("All client tests passed\n"); TTY_FLUSH();
-    }
-
-    return ret;
-}
-
-/**************************************************************************
- * SSL Basic Testing (test a big packet handshake)
- *
- **************************************************************************/
-static uint8_t basic_buf[256*1024];
-
-static void do_basic(void)
-{
-    int client_fd;
-    SSL *ssl_clnt;
-    SSL_CTX *ssl_clnt_ctx = ssl_ctx_new(
-                            DEFAULT_CLNT_OPTION, SSL_DEFAULT_CLNT_SESS);
-    usleep(200000);           /* allow server to start */
-
-    if ((client_fd = client_socket_init(g_port)) < 0)
-        goto error;
-
-    if (ssl_obj_load(ssl_clnt_ctx, SSL_OBJ_X509_CACERT, 
-                                        "../ssl/test/axTLS.ca_x509.cer", NULL))
-        goto error;
-
-    ssl_clnt = ssl_client_new(ssl_clnt_ctx, client_fd, NULL, 0);
-
-    /* check the return status */
-    if (ssl_handshake_status(ssl_clnt) < 0)
-    {
-        printf("YA YA\n");
-        ssl_display_error(ssl_handshake_status(ssl_clnt));
-        goto error;
-    }
-
-    ssl_write(ssl_clnt, basic_buf, sizeof(basic_buf));
-    ssl_free(ssl_clnt);
-
-error:
-    ssl_ctx_free(ssl_clnt_ctx);
-    SOCKET_CLOSE(client_fd);
-
-    /* exit this thread */
-}
-
-static int SSL_basic_test(void)
-{
-    int server_fd, client_fd, ret = 0, size = 0, offset = 0;
-    SSL_CTX *ssl_svr_ctx = NULL;
-    struct sockaddr_in client_addr;
-    uint8_t *read_buf;
-    socklen_t clnt_len = sizeof(client_addr);
-    SSL *ssl_svr;
-#ifndef WIN32
-    pthread_t thread;
-#endif
-    memset(basic_buf, 0xA5, sizeof(basic_buf)/2);
-    memset(&basic_buf[sizeof(basic_buf)/2], 0x5A, sizeof(basic_buf)/2);
-
-    if ((server_fd = server_socket_init(&g_port)) < 0)
-        goto error;
-
-    ssl_svr_ctx = ssl_ctx_new(DEFAULT_SVR_OPTION, SSL_DEFAULT_SVR_SESS);
-
-#ifndef WIN32
-    pthread_create(&thread, NULL, 
-                (void *(*)(void *))do_basic, NULL);
-    pthread_detach(thread);
-#else
-    CreateThread(NULL, 1024, (LPTHREAD_START_ROUTINE)do_basic, NULL, 0, NULL);
-#endif
-
-    /* Wait for a client to connect */
-    if ((client_fd = accept(server_fd, 
-                    (struct sockaddr *) &client_addr, &clnt_len)) < 0)
-    {
-        ret = SSL_ERROR_SOCK_SETUP_FAILURE;
-        goto error;
-    }
-    
-    /* we are ready to go */
-    ssl_svr = ssl_server_new(ssl_svr_ctx, client_fd);
-    
-    do
-    {
-        while ((size = ssl_read(ssl_svr, &read_buf)) == SSL_OK);
-
-        if (size < SSL_OK) /* got some alert or something nasty */
-        {
-            printf("Server ");
-            ssl_display_error(size);
-            ret = size;
-            break;
-        }
-        else /* looks more promising */
-        {
-            if (memcmp(read_buf, &basic_buf[offset], size) != 0)
-            {
-                ret = SSL_NOT_OK;
-                break;
-            }
-        }
-
-        offset += size;
-    } while (offset < sizeof(basic_buf));
-
-    printf(ret == SSL_OK && offset == sizeof(basic_buf) ? 
-                            "SSL basic test passed\n" :
-                            "SSL basic test failed\n");
-    TTY_FLUSH();
-
-    ssl_free(ssl_svr);
-    SOCKET_CLOSE(server_fd);
-    SOCKET_CLOSE(client_fd);
-
-error:
-    ssl_ctx_free(ssl_svr_ctx);
-    return ret;
-}
-
-#if !defined(WIN32) && defined(CONFIG_SSL_CTX_MUTEXING)
-/**************************************************************************
- * Multi-Threading Tests
- *
- **************************************************************************/
-#define NUM_THREADS         100
-
-typedef struct
-{
-    SSL_CTX *ssl_clnt_ctx;
-    int port;
-    int thread_id;
-} multi_t;
-
-void do_multi_clnt(multi_t *multi_data)
-{
-    int res = 1, client_fd, i;
-    SSL *ssl = NULL;
-    char tmp[5];
-
-    if ((client_fd = client_socket_init(multi_data->port)) < 0)
-        goto client_test_exit;
-
-    sleep(1);
-    ssl = ssl_client_new(multi_data->ssl_clnt_ctx, client_fd, NULL, 0);
-
-    if ((res = ssl_handshake_status(ssl)))
-    {
-        printf("Client ");
-        ssl_display_error(res);
-        goto client_test_exit;
-    }
-
-    sprintf(tmp, "%d\n", multi_data->thread_id);
-    for (i = 0; i < 10; i++)
-        ssl_write(ssl, (uint8_t *)tmp, strlen(tmp)+1);
-
-client_test_exit:
-    ssl_free(ssl);
-    SOCKET_CLOSE(client_fd);
-    free(multi_data);
-}
-
-void do_multi_svr(SSL *ssl)
-{
-    uint8_t *read_buf;
-    int *res_ptr = malloc(sizeof(int));
-    int res;
-
-    for (;;)
-    {
-        res = ssl_read(ssl, &read_buf);
-
-        /* kill the client */
-        if (res != SSL_OK)
-        {
-            if (res == SSL_ERROR_CONN_LOST)
-            {
-                SOCKET_CLOSE(ssl->client_fd);
-                ssl_free(ssl);
-                break;
-            }
-            else if (res > 0)
-            {
-                /* do nothing */
-            }
-            else /* some problem */
-            {
-                printf("Server ");
-                ssl_display_error(res);
-                goto error;
-            }
-        }
-    }
-
-    res = SSL_OK;
-error:
-    *res_ptr = res;
-    pthread_exit(res_ptr);
-}
-
-int multi_thread_test(void)
-{
-    int server_fd = -1;
-    SSL_CTX *ssl_server_ctx;
-    SSL_CTX *ssl_clnt_ctx;
-    pthread_t clnt_threads[NUM_THREADS];
-    pthread_t svr_threads[NUM_THREADS];
-    int i, res = 0;
-    struct sockaddr_in client_addr;
-    socklen_t clnt_len = sizeof(client_addr);
-
-    printf("Do multi-threading test (takes a minute)\n");
-
-    ssl_server_ctx = ssl_ctx_new(DEFAULT_SVR_OPTION, SSL_DEFAULT_SVR_SESS);
-    ssl_clnt_ctx = ssl_ctx_new(DEFAULT_CLNT_OPTION, SSL_DEFAULT_CLNT_SESS);
-
-    if (ssl_obj_load(ssl_clnt_ctx, SSL_OBJ_X509_CACERT, 
-                                        "../ssl/test/axTLS.ca_x509.cer", NULL))
-        goto error;
-
-    if ((server_fd = server_socket_init(&g_port)) < 0)
-        goto error;
-
-    for (i = 0; i < NUM_THREADS; i++)
-    {
-        multi_t *multi_data = (multi_t *)malloc(sizeof(multi_t));
-        multi_data->ssl_clnt_ctx = ssl_clnt_ctx;
-        multi_data->port = g_port;
-        multi_data->thread_id = i+1;
-        pthread_create(&clnt_threads[i], NULL, 
-                (void *(*)(void *))do_multi_clnt, (void *)multi_data);
-        pthread_detach(clnt_threads[i]);
-    }
-
-    for (i = 0; i < NUM_THREADS; i++)
-    { 
-        SSL *ssl_svr;
-        int client_fd = accept(server_fd, 
-                      (struct sockaddr *)&client_addr, &clnt_len);
-
-        if (client_fd < 0)
-            goto error;
-
-        ssl_svr = ssl_server_new(ssl_server_ctx, client_fd);
-
-        pthread_create(&svr_threads[i], NULL, 
-                        (void *(*)(void *))do_multi_svr, (void *)ssl_svr);
-    }
-
-    /* make sure we've run all of the threads */
-    for (i = 0; i < NUM_THREADS; i++)
-    {
-        void *thread_res;
-        pthread_join(svr_threads[i], &thread_res);
-
-        if (*((int *)thread_res) != 0)
-            res = 1;
-
-        free(thread_res);
-    } 
-
-    if (res) 
-        goto error;
-
-    printf("Multi-thread test passed (%d)\n", NUM_THREADS);
-error:
-    ssl_ctx_free(ssl_server_ctx);
-    ssl_ctx_free(ssl_clnt_ctx);
-    SOCKET_CLOSE(server_fd);
-    return res;
-}
-#endif /* !defined(WIN32) && defined(CONFIG_SSL_CTX_MUTEXING) */ 
-
-/**************************************************************************
- * Header issue
- *
- **************************************************************************/
-static void do_header_issue(void)
-{
-    char axtls_buf[2048];
-#ifndef WIN32
-    pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
-#endif
-    sprintf(axtls_buf, "./axssl s_client -connect localhost:%d", g_port);
-    system(axtls_buf);
-}
-
-static int header_issue(void)
-{
-    FILE *f = fopen("../ssl/test/header_issue.dat", "r");
-    int server_fd = -1, client_fd = -1, ret = 1;
-    uint8_t buf[2048];
-    int size = 0;
-    struct sockaddr_in client_addr;
-    socklen_t clnt_len = sizeof(client_addr);
-#ifndef WIN32
-    pthread_t thread;
-#endif
-
-    if (f == NULL || (server_fd = server_socket_init(&g_port)) < 0)
-        goto error;
-
-#ifndef WIN32
-    pthread_create(&thread, NULL, 
-                (void *(*)(void *))do_header_issue, NULL);
-    pthread_detach(thread);
-#else
-    CreateThread(NULL, 1024, (LPTHREAD_START_ROUTINE)do_header_issue, 
-                NULL, 0, NULL);
-#endif
-    if ((client_fd = accept(server_fd, 
-                    (struct sockaddr *) &client_addr, &clnt_len)) < 0)
-    {
-        ret = SSL_ERROR_SOCK_SETUP_FAILURE;
-        goto error;
-    }
-
-    size = fread(buf, 1, sizeof(buf), f);
-    SOCKET_WRITE(client_fd, buf, size);
-    usleep(200000);
-
-    ret = 0;
-error:
-    fclose(f);
-    SOCKET_CLOSE(client_fd);
-    SOCKET_CLOSE(server_fd);
-    TTY_FLUSH();
-    system("killall axssl");
-    return ret;
-}
-
-/**************************************************************************
- * main()
- *
- **************************************************************************/
-int main(int argc, char *argv[])
-{
-    int ret = 1;
-    BI_CTX *bi_ctx;
-    int fd;
-
-#ifdef WIN32
-    WSADATA wsaData;
-    WORD wVersionRequested = MAKEWORD(2, 2);
-    WSAStartup(wVersionRequested, &wsaData);
-    fd = _open("test_result.txt", O_WRONLY|O_TEMPORARY|O_CREAT, _S_IWRITE);
-    dup2(fd, 2);                        /* write stderr to this file */
-#else
-    fd = open("/dev/null", O_WRONLY);   /* write stderr to /dev/null */
-    signal(SIGPIPE, SIG_IGN);           /* ignore pipe errors */
-    dup2(fd, 2);
-#endif
-
-    /* can't do testing in this mode */
-#if defined CONFIG_SSL_GENERATE_X509_CERT
-    printf("Error: Must compile with default key/certificates\n");
-    exit(1);
-#endif
-
-    bi_ctx = bi_initialize();
-
-    if (AES_test(bi_ctx))
-    {
-        printf("AES tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    if (RC4_test(bi_ctx))
-    {
-        printf("RC4 tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    if (MD5_test(bi_ctx))
-    {
-        printf("MD5 tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    if (SHA1_test(bi_ctx))
-    {
-        printf("SHA1 tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    if (HMAC_test(bi_ctx))
-    {
-        printf("HMAC tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    if (BIGINT_test(bi_ctx))
-    {
-        printf("BigInt tests failed!\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    bi_terminate(bi_ctx);
-
-    if (RSA_test())
-    {
-        printf("RSA tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    if (cert_tests())
-    {
-        printf("CERT tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-#if !defined(WIN32) && defined(CONFIG_SSL_CTX_MUTEXING)
-    if (multi_thread_test())
-        goto cleanup;
-#endif
-
-    if (SSL_basic_test())
-        goto cleanup;
-
-    system("sh ../ssl/test/killopenssl.sh");
-
-    if (SSL_client_tests())
-        goto cleanup;
-
-    system("sh ../ssl/test/killopenssl.sh");
-
-    if (SSL_server_tests())
-        goto cleanup;
-
-    system("sh ../ssl/test/killopenssl.sh");
-
-    if (header_issue())
-    {
-        printf("Header tests failed\n"); TTY_FLUSH();
-        goto cleanup;
-    }
-
-    ret = 0;        /* all ok */
-    printf("**** ALL TESTS PASSED ****\n"); TTY_FLUSH();
-cleanup:
-
-    if (ret)
-        printf("Error: Some tests failed!\n");
-
-    close(fd);
-    return ret;
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/ssltest.c.bak b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/ssltest.c.bak
deleted file mode 100644 (file)
index ca9637f..0000000
+++ /dev/null
@@ -1,1940 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * The testing of the crypto and ssl stuff goes here. Keeps the individual code
- * modules from being uncluttered with test code.
- *
- * This is test code - I make no apologies for the quality!
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#ifndef WIN32
-#include <pthread.h>
-#endif
-
-#include "ssl.h"
-
-#define DEFAULT_CERT            "../ssl/test/axTLS.x509_512.cer"
-#define DEFAULT_KEY             "../ssl/test/axTLS.key_512"     
-//#define DEFAULT_SVR_OPTION      SSL_DISPLAY_BYTES|SSL_DISPLAY_STATES
-#define DEFAULT_SVR_OPTION      0
-#define DEFAULT_CLNT_OPTION     0
-//#define DEFAULT_CLNT_OPTION      SSL_DISPLAY_BYTES|SSL_DISPLAY_STATES
-
-static int g_port = 19001;
-
-/**************************************************************************
- * AES tests 
- * 
- * Run through a couple of the RFC3602 tests to verify that AES is correct.
- **************************************************************************/
-#define TEST1_SIZE  16
-#define TEST2_SIZE  32
-
-static int AES_test(BI_CTX *bi_ctx)
-{
-    AES_CTX aes_key;
-    int res = 1;
-    uint8_t key[TEST1_SIZE];
-    uint8_t iv[TEST1_SIZE];
-
-    {
-        /*
-            Case #1: Encrypting 16 bytes (1 block) using AES-CBC
-            Key       : 0x06a9214036b8a15b512e03d534120006
-            IV        : 0x3dafba429d9eb430b422da802c9fac41
-            Plaintext : "Single block msg"
-            Ciphertext: 0xe353779c1079aeb82708942dbe77181a
-
-        */
-        char *in_str =  "Single block msg";
-        uint8_t ct[TEST1_SIZE];
-        uint8_t enc_data[TEST1_SIZE];
-        uint8_t dec_data[TEST1_SIZE];
-
-        bigint *key_bi = bi_str_import(
-                bi_ctx, "06A9214036B8A15B512E03D534120006");
-        bigint *iv_bi = bi_str_import(
-                bi_ctx, "3DAFBA429D9EB430B422DA802C9FAC41");
-        bigint *ct_bi = bi_str_import(
-                bi_ctx, "E353779C1079AEB82708942DBE77181A");
-        bi_export(bi_ctx, key_bi, key, TEST1_SIZE);
-        bi_export(bi_ctx, iv_bi, iv, TEST1_SIZE);
-        bi_export(bi_ctx, ct_bi, ct, TEST1_SIZE);
-
-        AES_set_key(&aes_key, key, iv, AES_MODE_128);
-        AES_cbc_encrypt(&aes_key, (const uint8_t *)in_str, 
-                enc_data, sizeof(enc_data));
-        if (memcmp(enc_data, ct, sizeof(ct)))
-        {
-            printf("Error: AES ENCRYPT #1 failed\n");
-            goto end;
-        }
-
-        AES_set_key(&aes_key, key, iv, AES_MODE_128);
-        AES_convert_key(&aes_key);
-        AES_cbc_decrypt(&aes_key, enc_data, dec_data, sizeof(enc_data));
-
-        if (memcmp(dec_data, in_str, sizeof(dec_data)))
-        {
-            printf("Error: AES DECRYPT #1 failed\n");
-            goto end;
-        }
-    }
-
-    {
-        /*
-            Case #2: Encrypting 32 bytes (2 blocks) using AES-CBC 
-            Key       : 0xc286696d887c9aa0611bbb3e2025a45a
-            IV        : 0x562e17996d093d28ddb3ba695a2e6f58
-            Plaintext : 0x000102030405060708090a0b0c0d0e0f
-                          101112131415161718191a1b1c1d1e1f
-            Ciphertext: 0xd296cd94c2cccf8a3a863028b5e1dc0a
-                          7586602d253cfff91b8266bea6d61ab1
-        */
-        uint8_t in_data[TEST2_SIZE];
-        uint8_t ct[TEST2_SIZE];
-        uint8_t enc_data[TEST2_SIZE];
-        uint8_t dec_data[TEST2_SIZE];
-
-        bigint *in_bi = bi_str_import(bi_ctx,
-            "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F");
-        bigint *key_bi = bi_str_import(
-                bi_ctx, "C286696D887C9AA0611BBB3E2025A45A");
-        bigint *iv_bi = bi_str_import(
-                bi_ctx, "562E17996D093D28DDB3BA695A2E6F58");
-        bigint *ct_bi = bi_str_import(bi_ctx,
-            "D296CD94C2CCCF8A3A863028B5E1DC0A7586602D253CFFF91B8266BEA6D61AB1");
-        bi_export(bi_ctx, in_bi, in_data, TEST2_SIZE);
-        bi_export(bi_ctx, key_bi, key, TEST1_SIZE);
-        bi_export(bi_ctx, iv_bi, iv, TEST1_SIZE);
-        bi_export(bi_ctx, ct_bi, ct, TEST2_SIZE);
-
-        AES_set_key(&aes_key, key, iv, AES_MODE_128);
-        AES_cbc_encrypt(&aes_key, (const uint8_t *)in_data, 
-                enc_data, sizeof(enc_data));
-
-        if (memcmp(enc_data, ct, sizeof(ct)))
-        {
-            printf("Error: ENCRYPT #2 failed\n");
-            goto end;
-        }
-
-        AES_set_key(&aes_key, key, iv, AES_MODE_128);
-        AES_convert_key(&aes_key);
-        AES_cbc_decrypt(&aes_key, enc_data, dec_data, sizeof(enc_data));
-        if (memcmp(dec_data, in_data, sizeof(dec_data)))
-        {
-            printf("Error: DECRYPT #2 failed\n");
-            goto end;
-        }
-    }
-
-    res = 0;
-    printf("All AES tests passed\n");
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * RC4 tests 
- *
- * ARC4 tests vectors from OpenSSL (crypto/rc4/rc4test.c)
- **************************************************************************/
-static const uint8_t keys[7][30]=
-{
-    {8,0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef},
-    {8,0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef},
-    {8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
-    {4,0xef,0x01,0x23,0x45},
-    {8,0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef},
-    {4,0xef,0x01,0x23,0x45},
-};
-
-static const uint8_t data_len[7]={8,8,8,20,28,10};
-static uint8_t data[7][30]=
-{
-    {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,0xff},
-    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff},
-    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff},
-    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-        0x00,0x00,0x00,0x00,0xff},
-        {0x12,0x34,0x56,0x78,0x9A,0xBC,0xDE,0xF0,
-            0x12,0x34,0x56,0x78,0x9A,0xBC,0xDE,0xF0,
-            0x12,0x34,0x56,0x78,0x9A,0xBC,0xDE,0xF0,
-            0x12,0x34,0x56,0x78,0xff},
-            {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff},
-            {0},
-};
-
-static const uint8_t output[7][30]=
-{
-    {0x75,0xb7,0x87,0x80,0x99,0xe0,0xc5,0x96,0x00},
-    {0x74,0x94,0xc2,0xe7,0x10,0x4b,0x08,0x79,0x00},
-    {0xde,0x18,0x89,0x41,0xa3,0x37,0x5d,0x3a,0x00},
-    {0xd6,0xa1,0x41,0xa7,0xec,0x3c,0x38,0xdf,
-        0xbd,0x61,0x5a,0x11,0x62,0xe1,0xc7,0xba,
-        0x36,0xb6,0x78,0x58,0x00},
-        {0x66,0xa0,0x94,0x9f,0x8a,0xf7,0xd6,0x89,
-            0x1f,0x7f,0x83,0x2b,0xa8,0x33,0xc0,0x0c,
-            0x89,0x2e,0xbe,0x30,0x14,0x3c,0xe2,0x87,
-            0x40,0x01,0x1e,0xcf,0x00},
-            {0xd6,0xa1,0x41,0xa7,0xec,0x3c,0x38,0xdf,0xbd,0x61,0x00},
-            {0},
-};
-
-static int RC4_test(BI_CTX *bi_ctx)
-{
-    int i, res = 1;
-    RC4_CTX s;
-
-    for (i = 0; i < 6; i++)
-    {
-        RC4_setup(&s, &keys[i][1], keys[i][0]);
-        RC4_crypt(&s, data[i], data[i], data_len[i]);
-
-        if (memcmp(data[i], output[i], data_len[i]))
-        {
-            printf("Error: RC4 CRYPT #%d failed\n", i);
-            goto end;
-        }
-    }
-
-    res = 0;
-    printf("All RC4 tests passed\n");
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * SHA1 tests 
- *
- * Run through a couple of the RFC3174 tests to verify that SHA1 is correct.
- **************************************************************************/
-static int SHA1_test(BI_CTX *bi_ctx)
-{
-    SHA1_CTX ctx;
-    uint8_t ct[SHA1_SIZE];
-    uint8_t digest[SHA1_SIZE];
-    int res = 1;
-
-    {
-        const char *in_str = "abc";
-        bigint *ct_bi = bi_str_import(bi_ctx,
-                "A9993E364706816ABA3E25717850C26C9CD0D89D");
-        bi_export(bi_ctx, ct_bi, ct, SHA1_SIZE);
-
-        SHA1_Init(&ctx);
-        SHA1_Update(&ctx, (const uint8_t *)in_str, strlen(in_str));
-        SHA1_Final(digest, &ctx);
-
-        if (memcmp(digest, ct, sizeof(ct)))
-        {
-            printf("Error: SHA1 #1 failed\n");
-            goto end;
-        }
-    }
-
-    {
-        const char *in_str =
-            "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
-        bigint *ct_bi = bi_str_import(bi_ctx,
-                "84983E441C3BD26EBAAE4AA1F95129E5E54670F1");
-        bi_export(bi_ctx, ct_bi, ct, SHA1_SIZE);
-
-        SHA1_Init(&ctx);
-        SHA1_Update(&ctx, (const uint8_t *)in_str, strlen(in_str));
-        SHA1_Final(digest, &ctx);
-
-        if (memcmp(digest, ct, sizeof(ct)))
-        {
-            printf("Error: SHA1 #2 failed\n");
-            goto end;
-        }
-    }
-
-    res = 0;
-    printf("All SHA1 tests passed\n");
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * MD5 tests 
- *
- * Run through a couple of the RFC1321 tests to verify that MD5 is correct.
- **************************************************************************/
-static int MD5_test(BI_CTX *bi_ctx)
-{
-    MD5_CTX ctx;
-    uint8_t ct[MD5_SIZE];
-    uint8_t digest[MD5_SIZE];
-    int res = 1;
-
-    {
-        const char *in_str =  "abc";
-        bigint *ct_bi = bi_str_import(bi_ctx, 
-                "900150983CD24FB0D6963F7D28E17F72");
-        bi_export(bi_ctx, ct_bi, ct, MD5_SIZE);
-
-        MD5_Init(&ctx);
-        MD5_Update(&ctx, (const uint8_t *)in_str, strlen(in_str));
-        MD5_Final(digest, &ctx);
-
-        if (memcmp(digest, ct, sizeof(ct)))
-        {
-            printf("Error: MD5 #1 failed\n");
-            goto end;
-        }
-    }
-
-    {
-        const char *in_str =
-            "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
-        bigint *ct_bi = bi_str_import(
-                bi_ctx, "D174AB98D277D9F5A5611C2C9F419D9F");
-        bi_export(bi_ctx, ct_bi, ct, MD5_SIZE);
-
-        MD5_Init(&ctx);
-        MD5_Update(&ctx, (const uint8_t *)in_str, strlen(in_str));
-        MD5_Final(digest, &ctx);
-
-        if (memcmp(digest, ct, sizeof(ct)))
-        {
-            printf("Error: MD5 #2 failed\n");
-            goto end;
-        }
-    }
-    res = 0;
-    printf("All MD5 tests passed\n");
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * HMAC tests 
- *
- * Run through a couple of the RFC2202 tests to verify that HMAC is correct.
- **************************************************************************/
-static int HMAC_test(BI_CTX *bi_ctx)
-{
-    uint8_t key[SHA1_SIZE];
-    uint8_t ct[SHA1_SIZE];
-    uint8_t dgst[SHA1_SIZE];
-    int res = 1;
-    const char *key_str;
-
-    const char *data_str = "Hi There";
-    bigint *key_bi = bi_str_import(bi_ctx, "0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B");
-    bigint *ct_bi = bi_str_import(bi_ctx, "9294727A3638BB1C13F48EF8158BFC9D");
-    bi_export(bi_ctx, key_bi, key, MD5_SIZE);
-    bi_export(bi_ctx, ct_bi, ct, MD5_SIZE);
-    hmac_md5((const uint8_t *)data_str, 8, key, MD5_SIZE, dgst);
-    if (memcmp(dgst, ct, MD5_SIZE))
-    {
-        printf("HMAC MD5 #1 failed\n");
-        goto end;
-    }
-
-    data_str = "what do ya want for nothing?";
-    key_str = "Jefe";
-    ct_bi = bi_str_import(bi_ctx, "750C783E6AB0B503EAA86E310A5DB738");
-    bi_export(bi_ctx, ct_bi, ct, MD5_SIZE);
-    hmac_md5((const uint8_t *)data_str, 28, (const uint8_t *)key_str, 4, dgst);
-    if (memcmp(dgst, ct, MD5_SIZE))
-    {
-        printf("HMAC MD5 #2 failed\n");
-        goto end;
-    }
-   
-    data_str = "Hi There";
-    key_bi = bi_str_import(bi_ctx, "0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B");
-    bi_export(bi_ctx, key_bi, key, SHA1_SIZE);
-    ct_bi = bi_str_import(bi_ctx, "B617318655057264E28BC0B6FB378C8EF146BE00");
-    bi_export(bi_ctx, ct_bi, ct, SHA1_SIZE);
-
-    hmac_sha1((const uint8_t *)data_str, 8, 
-            (const uint8_t *)key, SHA1_SIZE, dgst);
-    if (memcmp(dgst, ct, SHA1_SIZE))
-    {
-        printf("HMAC SHA1 #1 failed\n");
-        goto end;
-    }
-
-    data_str = "what do ya want for nothing?";
-    key_str = "Jefe";
-    ct_bi = bi_str_import(bi_ctx, "EFFCDF6AE5EB2FA2D27416D5F184DF9C259A7C79");
-    bi_export(bi_ctx, ct_bi, ct, SHA1_SIZE);
-
-    hmac_sha1((const uint8_t *)data_str, 28, (const uint8_t *)key_str, 5, dgst);
-    if (memcmp(dgst, ct, SHA1_SIZE))
-    {
-        printf("HMAC SHA1 failed\n");
-        exit(1);
-    }
-
-    res = 0;
-    printf("All HMAC tests passed\n");
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * BIGINT tests 
- *
- **************************************************************************/
-static int BIGINT_test(BI_CTX *ctx)
-{
-    int res = 1;
-    bigint *bi_data, *bi_exp, *bi_res;
-    const char *expnt, *plaintext, *mod;
-    uint8_t compare[MAX_KEY_BYTE_SIZE];
-
-    /**
-     * 512 bit key
-     */
-    plaintext = /* 64 byte number */
-        "01aaaaaaaaaabbbbbbbbbbbbbbbccccccccccccccdddddddddddddeeeeeeeeee";
-
-    mod = "C30773C8ABE09FCC279EE0E5343370DE"
-          "8B2FFDB6059271E3005A7CEEF0D35E0A"
-          "1F9915D95E63560836CC2EB2C289270D"
-          "BCAE8CAF6F5E907FC2759EE220071E1B";
-
-    expnt = "A1E556CD1738E10DF539E35101334E97"
-          "BE8D391C57A5C89A7AD9A2EA2ACA1B3D"
-          "F3140F5091CC535CBAA47CEC4159EE1F"
-          "B6A3661AFF1AB758426EAB158452A9B9";
-
-    bi_data = bi_import(ctx, (uint8_t *)plaintext, strlen(plaintext));
-    bi_exp = int_to_bi(ctx, 0x10001);
-    bi_set_mod(ctx, bi_str_import(ctx, mod), 0);
-    bi_res = bi_mod_power(ctx, bi_data, bi_exp);
-
-    bi_data = bi_res;   /* resuse again - see if we get the original */
-
-    bi_exp = bi_str_import(ctx, expnt);
-    bi_res = bi_mod_power(ctx, bi_data, bi_exp);
-    bi_free_mod(ctx, 0);
-
-    bi_export(ctx, bi_res, compare, 64);
-    if (memcmp(plaintext, compare, 64) != 0)
-        goto end;
-
-    printf("All BIGINT tests passed\n");
-    res = 0;
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * RSA tests 
- *
- * Use the results from openssl to verify PKCS1 etc 
- **************************************************************************/
-static int RSA_test(void)
-{
-    int res = 1;
-    const char *plaintext = /* 128 byte hex number */
-        "1aaaaaaaaaabbbbbbbbbbbbbbbccccccccccccccdddddddddddddeeeeeeeeee2"
-        "1aaaaaaaaaabbbbbbbbbbbbbbbccccccccccccccdddddddddddddeeeeeeeee2\012";
-    uint8_t enc_data[128], dec_data[128];
-    RSA_CTX *rsa_ctx = NULL;
-    BI_CTX *bi_ctx;
-    bigint *plaintext_bi;
-    bigint *enc_data_bi, *dec_data_bi;
-    uint8_t enc_data2[128], dec_data2[128];
-    int size;
-    int len; 
-    uint8_t *buf;
-
-    /* extract the private key elements */
-    len = get_file("../ssl/test/axTLS.key_1024", &buf);
-    if (asn1_get_private_key(buf, len, &rsa_ctx) < 0)
-    {
-        goto end;
-    }
-
-    free(buf);
-    bi_ctx = rsa_ctx->bi_ctx;
-    plaintext_bi = bi_import(bi_ctx, 
-            (const uint8_t *)plaintext, strlen(plaintext));
-
-    /* basic rsa encrypt */
-    enc_data_bi = RSA_public(rsa_ctx, plaintext_bi);
-    bi_export(bi_ctx, bi_copy(enc_data_bi), enc_data, sizeof(enc_data));
-
-    /* basic rsa decrypt */
-    dec_data_bi = RSA_private(rsa_ctx, enc_data_bi);
-    bi_export(bi_ctx, dec_data_bi, dec_data, sizeof(dec_data));
-
-    if (memcmp(dec_data, plaintext, strlen(plaintext)))
-    {
-        printf("Error: DECRYPT #1 failed\n");
-        goto end;
-    }
-
-    RSA_encrypt(rsa_ctx, (const uint8_t *)"abc", 3, enc_data2, 0);
-    size = RSA_decrypt(rsa_ctx, enc_data2, dec_data2, 1);
-    if (memcmp("abc", dec_data2, 3))
-    {
-        printf("Error: ENCRYPT/DECRYPT #2 failed\n");
-        goto end;
-    }
-
-    RSA_free(rsa_ctx);
-    res = 0;
-    printf("All RSA tests passed\n");
-
-end:
-    return res;
-}
-
-/**************************************************************************
- * Cert Testing
- *
- **************************************************************************/
-static int cert_tests(void)
-{
-    int res = -1, len;
-    X509_CTX *x509_ctx;
-    SSL_CTX *ssl_ctx;
-    uint8_t *buf;
-
-    /* check a bunch of 3rd party certificates */
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/microsoft.x509_ca", &buf);
-    if ((res = add_cert_auth(ssl_ctx, buf, len)) < 0)
-    {
-        printf("Cert #1\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/thawte.x509_ca", &buf);
-    if ((res = add_cert_auth(ssl_ctx, buf, len)) < 0)
-    {
-        printf("Cert #2\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/deutsche_telecom.x509_ca", &buf);
-    if ((res = add_cert_auth(ssl_ctx, buf, len)) < 0)
-    {
-        printf("Cert #3\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/equifax.x509_ca", &buf);
-    if ((res = add_cert_auth(ssl_ctx, buf, len)) < 0)
-    {
-        printf("Cert #4\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/gnutls.cer", &buf);
-    if ((res = add_cert(ssl_ctx, buf, len)) < 0)
-    {
-        printf("Cert #5\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/socgen.cer", &buf);
-    if ((res = add_cert(ssl_ctx, buf, len)) < 0)
-    {
-        printf("Cert #6\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    len = get_file("../ssl/test/verisign.x509_ca", &buf);
-    if ((res = add_cert_auth(ssl_ctx, buf, len)) <0)
-    {
-        printf("Cert #7\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    free(buf);
-
-    if (get_file("../ssl/test/verisign.x509_my_cert", &buf) < 0 ||
-                                    x509_new(buf, &len, &x509_ctx))
-    {
-        printf("Cert #8\n");
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    x509_free(x509_ctx);
-    free(buf);
-
-    ssl_ctx = ssl_ctx_new(0, 0);
-    if ((res = ssl_obj_load(ssl_ctx, 
-              SSL_OBJ_X509_CERT, "../ssl/test/ms_iis.cer", NULL)) != SSL_OK)
-    {
-        ssl_display_error(res);
-        goto bad_cert;
-    }
-
-    ssl_ctx_free(ssl_ctx);
-    res = 0;        /* all ok */
-    printf("All Certificate tests passed\n");
-
-bad_cert:
-    if (res)
-        printf("Error: A certificate test failed\n");
-    return res;
-}
-
-/**
- * init a server socket.
- */
-static int server_socket_init(int *port)
-{
-    struct sockaddr_in serv_addr;
-    int server_fd;
-    char yes = 1;
-
-    /* Create socket for incoming connections */
-    if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
-    {
-        return -1;
-    }
-      
-    setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
-
-go_again:
-    /* Construct local address structure */
-    memset(&serv_addr, 0, sizeof(serv_addr));      /* Zero out structure */
-    serv_addr.sin_family = AF_INET;                /* Internet address family */
-    serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); /* Any incoming interface */
-    serv_addr.sin_port = htons(*port);              /* Local port */
-
-    /* Bind to the local address */
-    if (bind(server_fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
-    {
-        (*port)++;
-        goto go_again;
-    }
-    /* Mark the socket so it will listen for incoming connections */
-    if (listen(server_fd, 3000) < 0)
-    {
-        return -1;
-    }
-
-    return server_fd;
-}
-
-/**
- * init a client socket.
- */
-static int client_socket_init(uint16_t port)
-{
-    struct sockaddr_in address;
-    int client_fd;
-
-    address.sin_family = AF_INET;
-    address.sin_port = htons(port);
-    address.sin_addr.s_addr =  inet_addr("127.0.0.1");
-    client_fd = socket(AF_INET, SOCK_STREAM, 0);
-    if (connect(client_fd, (struct sockaddr *)&address, sizeof(address)) < 0)
-    {
-        perror("socket");
-        SOCKET_CLOSE(client_fd);
-        client_fd = -1;
-    }
-
-    return client_fd;
-}
-
-/**************************************************************************
- * SSL Server Testing
- *
- **************************************************************************/
-typedef struct
-{
-    /* not used as yet */
-    int dummy;
-} SVR_CTX;
-
-typedef struct
-{
-    const char *testname;
-    const char *openssl_option;
-} client_t;
-
-static void do_client(client_t *clnt)
-{
-    char openssl_buf[2048];
-
-    /* make sure the main thread goes first */
-    sleep(0);
-
-    /* show the session ids in the reconnect test */
-    if (strcmp(clnt->testname, "Session Reuse") == 0)
-    {
-        sprintf(openssl_buf, "echo \"hello client\" | openssl s_client "
-            "-connect localhost:%d %s 2>&1 | grep \"Session-ID:\"", 
-            g_port, clnt->openssl_option);
-    }
-    else
-    {
-        sprintf(openssl_buf, "echo \"hello client\" | openssl s_client "
-#ifdef WIN32
-            "-connect localhost:%d -quiet %s",
-#else
-            "-connect localhost:%d -quiet %s > /dev/null 2>&1",
-#endif
-        g_port, clnt->openssl_option);
-    }
-
-    system(openssl_buf);
-}
-
-static int SSL_server_test(
-        const char *testname, 
-        const char *openssl_option, 
-        const char *device_cert, 
-        const char *product_cert, 
-        const char *private_key,
-        const char *ca_cert,
-        const char *password,
-        int axolotls_option)
-{
-    int server_fd, ret = 0;
-    SSL_CTX *ssl_ctx = NULL;
-    struct sockaddr_in client_addr;
-    uint8_t *read_buf;
-    socklen_t clnt_len = sizeof(client_addr);
-    client_t client_data;
-#ifndef WIN32
-    pthread_t thread;
-#endif
-    g_port++;
-
-    client_data.testname = testname;
-    client_data.openssl_option = openssl_option;
-
-    if ((server_fd = server_socket_init(&g_port)) < 0)
-        goto error;
-
-    if (private_key)
-    {
-        axolotls_option |= SSL_NO_DEFAULT_KEY;
-    }
-
-    if ((ssl_ctx = ssl_ctx_new(axolotls_option, SSL_DEFAULT_SVR_SESS)) == NULL)
-    {
-        ret = SSL_ERROR_INVALID_KEY;
-        goto error;
-    }
-
-    if (private_key)
-    {
-        int obj_type = SSL_OBJ_RSA_KEY;
-
-        if (strstr(private_key, ".p8"))
-            obj_type = SSL_OBJ_PKCS8;
-        else if (strstr(private_key, ".p12"))
-            obj_type = SSL_OBJ_PKCS12;
-
-        if (ssl_obj_load(ssl_ctx, obj_type, private_key, password))
-        {
-            ret = SSL_ERROR_INVALID_KEY;
-            goto error;
-        }
-    }
-
-    if (device_cert)             /* test chaining */
-    {
-        if ((ret = ssl_obj_load(ssl_ctx, 
-                        SSL_OBJ_X509_CERT, device_cert, NULL)) != SSL_OK)
-            goto error;
-    }
-
-    if (product_cert)             /* test chaining */
-    {
-        if ((ret = ssl_obj_load(ssl_ctx, 
-                        SSL_OBJ_X509_CERT, product_cert, NULL)) != SSL_OK)
-            goto error;
-    }
-
-    if (ca_cert)                  /* test adding certificate authorities */
-    {
-        if ((ret = ssl_obj_load(ssl_ctx, 
-                        SSL_OBJ_X509_CACERT, ca_cert, NULL)) != SSL_OK)
-            goto error;
-    }
-
-#ifndef WIN32
-    pthread_create(&thread, NULL, 
-                (void *(*)(void *))do_client, (void *)&client_data);
-    pthread_detach(thread);
-#else
-    CreateThread(NULL, 1024, (LPTHREAD_START_ROUTINE)do_client, 
-            (LPVOID)&client_data, 0, NULL);
-#endif
-
-    for (;;)
-    {
-        int client_fd, size = 0; 
-        SSL *ssl;
-
-        /* Wait for a client to connect */
-        if ((client_fd = accept(server_fd, 
-                        (struct sockaddr *)&client_addr, &clnt_len)) < 0)
-        {
-            ret = SSL_ERROR_SOCK_SETUP_FAILURE;
-            goto error;
-        }
-        
-        /* we are ready to go */
-        ssl = ssl_server_new(ssl_ctx, client_fd);
-        while ((size = ssl_read(ssl, &read_buf)) == SSL_OK);
-        SOCKET_CLOSE(client_fd);
-        
-        if (size < SSL_OK) /* got some alert or something nasty */
-        {
-            ret = size;
-
-            if (ret == SSL_ERROR_CONN_LOST)
-            {
-                ret = SSL_OK;
-                continue;
-            }
-
-            break;  /* we've got a problem */
-        }
-        else /* looks more promising */
-        {
-            if (strstr("hello client", (char *)read_buf) == NULL)
-            {
-                printf("SSL server test \"%s\" passed\n", testname);
-                TTY_FLUSH();
-                ret = 0;
-                break;
-            }
-        }
-
-        ssl_free(ssl);
-    }
-
-    SOCKET_CLOSE(server_fd);
-
-error:
-    ssl_ctx_free(ssl_ctx);
-    return ret;
-}
-
-int SSL_server_tests(void)
-{
-    int ret = -1;
-    struct stat stat_buf;
-    SVR_CTX svr_test_ctx;
-    memset(&svr_test_ctx, 0, sizeof(SVR_CTX));
-
-    printf("### starting server tests\n"); TTY_FLUSH();
-
-    /* Go through the algorithms */
-
-    /* 
-     * TLS1 client hello 
-     */
-    if ((ret = SSL_server_test("TLSv1", "-cipher RC4-SHA -tls1", 
-                    NULL, NULL, NULL, NULL, NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * AES128-SHA
-     */
-    if ((ret = SSL_server_test("AES256-SHA", "-cipher AES128-SHA", 
-                    DEFAULT_CERT, NULL, DEFAULT_KEY, NULL, NULL,
-                    DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * AES256-SHA
-     */
-    if ((ret = SSL_server_test("AES256-SHA", "-cipher AES128-SHA", 
-                    DEFAULT_CERT, NULL, DEFAULT_KEY, NULL, NULL,
-                    DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * RC4-SHA
-     */
-    if ((ret = SSL_server_test("RC4-SHA", "-cipher RC4-SHA", 
-                DEFAULT_CERT, NULL, DEFAULT_KEY, NULL, NULL,
-                DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * RC4-MD5
-     */
-    if ((ret = SSL_server_test("RC4-MD5", "-cipher RC4-MD5", 
-                DEFAULT_CERT, NULL, DEFAULT_KEY, NULL, NULL,
-                DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * Session Reuse
-     * all the session id's should match for session resumption.
-     */
-    if ((ret = SSL_server_test("Session Reuse", 
-                    "-cipher RC4-SHA -reconnect", 
-                    DEFAULT_CERT, NULL, DEFAULT_KEY, NULL, NULL,
-                    DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * 512 bit RSA key 
-     */
-    if ((ret = SSL_server_test("512 bit key", "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_512.cer", NULL, 
-                    "../ssl/test/axTLS.key_512",
-                    NULL, NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * 1024 bit RSA key (check certificate chaining)
-     */
-    if ((ret = SSL_server_test("1024 bit key", 
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_device.cer", 
-                    "../ssl/test/axTLS.x509_512.cer", 
-                    "../ssl/test/axTLS.device_key",
-                    NULL, NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * 2048 bit RSA key 
-     */
-    if ((ret = SSL_server_test("2048 bit key", 
-                    "-cipher RC4-SHA",
-                    "../ssl/test/axTLS.x509_2048.cer", NULL, 
-                    "../ssl/test/axTLS.key_2048",
-                    NULL, NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * 4096 bit RSA key 
-     */
-    if ((ret = SSL_server_test("4096 bit key", 
-                    "-cipher RC4-SHA",
-                    "../ssl/test/axTLS.x509_4096.cer", NULL, 
-                    "../ssl/test/axTLS.key_4096",
-                    NULL, NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * Client Verification
-     */
-    if ((ret = SSL_server_test("Client Verification", 
-                    "-cipher RC4-SHA -tls1 "
-                    "-cert ../ssl/test/axTLS.x509_2048.pem "
-                    "-key ../ssl/test/axTLS.key_2048.pem ",
-                    NULL, NULL, NULL, 
-                    "../ssl/test/axTLS.ca_x509.cer", NULL,
-                    DEFAULT_SVR_OPTION|SSL_CLIENT_AUTHENTICATION)))
-        goto cleanup;
-
-    /* this test should fail */
-    if (stat("../ssl/test/axTLS.x509_bad_before.pem", &stat_buf) >= 0)
-    {
-        if ((ret = SSL_server_test("Bad Before Cert", 
-                    "-cipher RC4-SHA -tls1 "
-                    "-cert ../ssl/test/axTLS.x509_bad_before.pem "
-                    "-key ../ssl/test/axTLS.key_512.pem ",
-                    NULL, NULL, NULL, 
-                    "../ssl/test/axTLS.ca_x509.cer", NULL,
-                    DEFAULT_SVR_OPTION|SSL_CLIENT_AUTHENTICATION)) !=
-                            SSL_X509_ERROR(X509_VFY_ERROR_NOT_YET_VALID))
-            goto cleanup;
-
-        printf("SSL server test \"%s\" passed\n", "Bad Before Cert");
-        TTY_FLUSH();
-        ret = 0;    /* is ok */
-    }
-
-    /* this test should fail */
-    if ((ret = SSL_server_test("Bad After Cert", 
-                    "-cipher RC4-SHA -tls1 "
-                    "-cert ../ssl/test/axTLS.x509_bad_after.pem "
-                    "-key ../ssl/test/axTLS.key_512.pem ",
-                    NULL, NULL, NULL, 
-                    "../ssl/test/axTLS.ca_x509.cer", NULL,
-                    DEFAULT_SVR_OPTION|SSL_CLIENT_AUTHENTICATION)) !=
-                            SSL_X509_ERROR(X509_VFY_ERROR_EXPIRED))
-        goto cleanup;
-
-    printf("SSL server test \"%s\" passed\n", "Bad After Cert");
-    TTY_FLUSH();
-
-    /* 
-     * Key in PEM format
-     */
-    if ((ret = SSL_server_test("Key in PEM format",
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_512.cer", NULL, 
-                    "../ssl/test/axTLS.key_512.pem", NULL,
-                    NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * Cert in PEM format
-     */
-    if ((ret = SSL_server_test("Cert in PEM format", 
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_512.pem", NULL, 
-                    "../ssl/test/axTLS.key_512.pem", NULL,
-                    NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * Cert chain in PEM format
-     */
-    if ((ret = SSL_server_test("Cert chain in PEM format", 
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_device.pem", 
-                    NULL, "../ssl/test/axTLS.device_key.pem",
-                    "../ssl/test/axTLS.ca_x509.pem", NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * AES128 Encrypted key 
-     */
-    if ((ret = SSL_server_test("AES128 encrypted key", 
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_aes128.pem", NULL, 
-                    "../ssl/test/axTLS.key_aes128.pem",
-                    NULL, "abcd", DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * AES256 Encrypted key 
-     */
-    if ((ret = SSL_server_test("AES256 encrypted key", 
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_aes256.pem", NULL, 
-                    "../ssl/test/axTLS.key_aes256.pem",
-                    NULL, "abcd", DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /* 
-     * AES128 Encrypted invalid key 
-     */
-    if ((ret = SSL_server_test("AES128 encrypted invalid key", 
-                    "-cipher RC4-SHA", 
-                    "../ssl/test/axTLS.x509_aes128.pem", NULL, 
-                    "../ssl/test/axTLS.key_aes128.pem",
-                    NULL, "xyz", DEFAULT_SVR_OPTION)) != SSL_ERROR_INVALID_KEY)
-        goto cleanup;
-
-    printf("SSL server test \"%s\" passed\n", "AES128 encrypted invalid key");
-    TTY_FLUSH();
-
-    /*
-     * PKCS#8 key (encrypted)
-     */
-    if ((ret = SSL_server_test("pkcs#8 encrypted", "-cipher RC4-SHA", 
-                DEFAULT_CERT, NULL, "../ssl/test/axTLS.encrypted.p8", 
-                NULL, "abcd", DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * PKCS#8 key (unencrypted)
-     */
-    if ((ret = SSL_server_test("pkcs#8 unencrypted", "-cipher RC4-SHA", 
-                DEFAULT_CERT, NULL, "../ssl/test/axTLS.unencrypted.p8", 
-                NULL, NULL, DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     * PKCS#12 key/certificate
-     */
-    if ((ret = SSL_server_test("pkcs#12 with CA", "-cipher RC4-SHA", 
-                NULL, NULL, "../ssl/test/axTLS.withCA.p12", 
-                NULL, "abcd", DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    if ((ret = SSL_server_test("pkcs#12 no CA", "-cipher RC4-SHA", 
-                DEFAULT_CERT, NULL, "../ssl/test/axTLS.withoutCA.p12", 
-                NULL, "abcd", DEFAULT_SVR_OPTION)))
-        goto cleanup;
-
-    /*
-     *
-     */
-
-    ret = 0;
-
-cleanup:
-    if (ret)
-    {
-        printf("Error: A server test failed\n");
-        ssl_display_error(ret);
-        exit(1);
-    }
-    else
-    {
-        printf("All server tests passed\n"); TTY_FLUSH();
-    }
-
-    return ret;
-}
-
-/**************************************************************************
- * SSL Client Testing
- *
- **************************************************************************/
-typedef struct
-{
-    uint8_t session_id[SSL_SESSION_ID_SIZE];
-#ifndef WIN32
-    pthread_t server_thread;
-#endif
-    int start_server;
-    int stop_server;
-    int do_reneg;
-} CLNT_SESSION_RESUME_CTX;
-
-typedef struct
-{
-    const char *testname;
-    const char *openssl_option;
-} server_t;
-
-static void do_server(server_t *svr)
-{
-    char openssl_buf[2048];
-#ifndef WIN32
-    pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
-#endif
-    sprintf(openssl_buf, "openssl s_server -tls1 " 
-            "-accept %d -quiet %s ", g_port, svr->openssl_option);
-    system(openssl_buf);
-}
-
-static int SSL_client_test(
-        const char *test,
-        SSL_CTX **ssl_ctx,
-        const char *openssl_option, 
-        CLNT_SESSION_RESUME_CTX *sess_resume,
-        uint32_t client_options,
-        const char *private_key,
-        const char *password,
-        const char *cert)
-{
-    server_t server_data;
-    SSL *ssl = NULL;
-    int client_fd = -1;
-    uint8_t *session_id = NULL;
-    int ret = 1;
-#ifndef WIN32
-    pthread_t thread;
-#endif
-
-    if (sess_resume == NULL || sess_resume->start_server)
-    {
-        g_port++;
-        server_data.openssl_option = openssl_option;
-
-#ifndef WIN32
-        pthread_create(&thread, NULL, 
-                (void *(*)(void *))do_server, (void *)&server_data);
-        pthread_detach(thread);
-#else
-        CreateThread(NULL, 1024, (LPTHREAD_START_ROUTINE)do_server, 
-            (LPVOID)&server_data, 0, NULL);
-#endif
-    }
-    
-    usleep(200000);           /* allow server to start */
-
-    if (*ssl_ctx == NULL)
-    {
-        if (private_key)
-        {
-            client_options |= SSL_NO_DEFAULT_KEY;
-        }
-
-        if ((*ssl_ctx = ssl_ctx_new(
-                            client_options, SSL_DEFAULT_CLNT_SESS)) == NULL)
-        {
-            ret = SSL_ERROR_INVALID_KEY;
-            goto client_test_exit;
-        }
-
-        if (private_key)
-        {
-            int obj_type = SSL_OBJ_RSA_KEY;
-
-            if (strstr(private_key, ".p8"))
-                obj_type = SSL_OBJ_PKCS8;
-            else if (strstr(private_key, ".p12"))
-                obj_type = SSL_OBJ_PKCS12;
-
-            if (ssl_obj_load(*ssl_ctx, obj_type, private_key, password))
-            {
-                ret = SSL_ERROR_INVALID_KEY;
-                goto client_test_exit;
-            }
-        }
-
-        if (cert)                  
-        {
-            if ((ret = ssl_obj_load(*ssl_ctx, 
-                            SSL_OBJ_X509_CERT, cert, NULL)) != SSL_OK)
-            {
-                printf("could not add cert %s (%d)\n", cert, ret);
-                TTY_FLUSH();
-                goto client_test_exit;
-            }
-        }
-
-       if (ssl_obj_load(*ssl_ctx, SSL_OBJ_X509_CACERT, 
-                               "../ssl/test/axTLS.ca_x509.cer", NULL))
-        {
-            printf("could not add cert auth\n"); TTY_FLUSH();
-            goto client_test_exit;
-        }
-    }
-    
-    if (sess_resume && !sess_resume->start_server) 
-    {
-        session_id = sess_resume->session_id;
-    }
-
-    if ((client_fd = client_socket_init(g_port)) < 0)
-    {
-        printf("could not start socket on %d\n", g_port); TTY_FLUSH();
-        goto client_test_exit;
-    }
-
-    ssl = ssl_client_new(*ssl_ctx, client_fd, session_id, sizeof(session_id));
-
-    /* check the return status */
-    if ((ret = ssl_handshake_status(ssl)))
-        goto client_test_exit;
-
-    /* renegotiate client */
-    if (sess_resume && sess_resume->do_reneg) 
-    {
-        if (ssl_renegotiate(ssl) < 0)
-            goto client_test_exit;
-    }
-
-    if (sess_resume)
-    {
-        memcpy(sess_resume->session_id, 
-                ssl_get_session_id(ssl), SSL_SESSION_ID_SIZE);
-    }
-
-    if (IS_SET_SSL_FLAG(SSL_SERVER_VERIFY_LATER) && 
-                                            (ret = ssl_verify_cert(ssl)))
-    {
-        goto client_test_exit;
-    }
-
-    ssl_write(ssl, (uint8_t *)"hello world\n", 13);
-    if (sess_resume)
-    {
-        const uint8_t *sess_id = ssl_get_session_id(ssl);
-        int i;
-
-        printf("    Session-ID: ");
-        for (i = 0; i < SSL_SESSION_ID_SIZE; i++)
-        {
-            printf("%02X", sess_id[i]);
-        }
-        printf("\n");
-        TTY_FLUSH();
-    }
-
-    ret = 0;
-
-client_test_exit:
-    ssl_free(ssl);
-    SOCKET_CLOSE(client_fd);
-    usleep(200000);           /* allow openssl to say something */
-
-    if (sess_resume)
-    {
-        if (sess_resume->stop_server)
-        {
-            ssl_ctx_free(*ssl_ctx);
-            *ssl_ctx = NULL;
-#ifndef WIN32
-            pthread_cancel(sess_resume->server_thread);
-#endif
-        }
-        else if (sess_resume->start_server)
-        {
-#ifndef WIN32
-           sess_resume->server_thread = thread;
-#endif
-        }
-    }
-    else
-    {
-        ssl_ctx_free(*ssl_ctx);
-        *ssl_ctx = NULL;
-#ifndef WIN32
-        pthread_cancel(thread);
-#endif
-    }
-
-    if (ret == 0)
-    {
-        printf("SSL client test \"%s\" passed\n", test);
-        TTY_FLUSH();
-    }
-
-    return ret;
-}
-
-int SSL_client_tests(void)
-{
-    int ret =  -1;
-    SSL_CTX *ssl_ctx = NULL;
-    CLNT_SESSION_RESUME_CTX sess_resume;
-    memset(&sess_resume, 0, sizeof(CLNT_SESSION_RESUME_CTX));
-
-    sess_resume.start_server = 1;
-    printf("### starting client tests\n");
-   
-    if ((ret = SSL_client_test("512 bit key", 
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_512.pem "
-                    "-key ../ssl/test/axTLS.key_512.pem", &sess_resume, 
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    /* all the session id's should match for session resumption */
-    sess_resume.start_server = 0;
-    if ((ret = SSL_client_test("Client session resumption #1", 
-                    &ssl_ctx, NULL, &sess_resume, 
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    sess_resume.do_reneg = 1;
-    if ((ret = SSL_client_test("Client renegotiation", 
-                    &ssl_ctx, NULL, &sess_resume, 
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-    sess_resume.do_reneg = 0;
-
-    sess_resume.stop_server = 1;
-    if ((ret = SSL_client_test("Client session resumption #2", 
-                    &ssl_ctx, NULL, &sess_resume, 
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    if ((ret = SSL_client_test("1024 bit key", 
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_1024.pem "
-                    "-key ../ssl/test/axTLS.key_1024.pem", NULL,
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    if ((ret = SSL_client_test("2048 bit key", 
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_2048.pem "
-                    "-key ../ssl/test/axTLS.key_2048.pem",  NULL,
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    if ((ret = SSL_client_test("4096 bit key", 
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_4096.pem "
-                    "-key ../ssl/test/axTLS.key_4096.pem", NULL,
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    if ((ret = SSL_client_test("Server cert chaining", 
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_device.pem "
-                    "-key ../ssl/test/axTLS.device_key.pem "
-                    "-CAfile ../ssl/test/axTLS.x509_512.pem ", NULL,
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)))
-        goto cleanup;
-
-    /* Check the server can verify the client */
-    if ((ret = SSL_client_test("Client peer authentication",
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_2048.pem "
-                    "-key ../ssl/test/axTLS.key_2048.pem "
-                    "-CAfile ../ssl/test/axTLS.ca_x509.pem "
-                    "-verify 1 ", NULL, DEFAULT_CLNT_OPTION, 
-                    "../ssl/test/axTLS.key_1024", NULL,
-                    "../ssl/test/axTLS.x509_1024.cer")))
-        goto cleanup;
-
-    /* Should get an "ERROR" from openssl (as the handshake fails as soon as
-     * the certificate verification fails) */
-    if ((ret = SSL_client_test("Error: Expired cert (verify now)",
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_bad_after.pem "
-                    "-key ../ssl/test/axTLS.key_512.pem", NULL,
-                    DEFAULT_CLNT_OPTION, NULL, NULL, NULL)) != 
-                            SSL_X509_ERROR(X509_VFY_ERROR_EXPIRED))
-    {
-        printf("*** Error: %d\n", ret);
-        goto cleanup;
-    }
-
-    printf("SSL client test \"Expired cert (verify now)\" passed\n");
-
-    /* There is no "ERROR" from openssl */
-    if ((ret = SSL_client_test("Error: Expired cert (verify later)", 
-                    &ssl_ctx,
-                    "-cert ../ssl/test/axTLS.x509_bad_after.pem "
-                    "-key ../ssl/test/axTLS.key_512.pem", NULL,
-                    DEFAULT_CLNT_OPTION|SSL_SERVER_VERIFY_LATER, NULL, 
-                    NULL, NULL)) != SSL_X509_ERROR(X509_VFY_ERROR_EXPIRED))
-    {
-        printf("*** Error: %d\n", ret);
-        goto cleanup;
-    }
-
-    printf("SSL client test \"Expired cert (verify later)\" passed\n");
-    ret = 0;
-
-cleanup:
-    if (ret)
-    {
-        ssl_display_error(ret);
-        printf("Error: A client test failed\n");
-        exit(1);
-    }
-    else
-    {
-        printf("All client tests passed\n"); TTY_FLUSH();
-    }
-
-    return ret;
-}
-
-/**************************************************************************
- * SSL Basic Testing (test a big packet handshake)
- *
- **************************************************************************/
-static uint8_t basic_buf[256*1024];
-
-static void do_basic(void)
-{
-    int client_fd;
-    SSL *ssl_clnt;
-    SSL_CTX *ssl_clnt_ctx = ssl_ctx_new(
-                            DEFAULT_CLNT_OPTION, SSL_DEFAULT_CLNT_SESS);
-    usleep(200000);           /* allow server to start */
-
-    if ((client_fd = client_socket_init(g_port)) < 0)
-        goto error;
-
-    if (ssl_obj_load(ssl_clnt_ctx, SSL_OBJ_X509_CACERT, 
-                                        "../ssl/test/axTLS.ca_x509.cer", NULL))
-        goto error;
-
-    ssl_clnt = ssl_client_new(ssl_clnt_ctx, client_fd, NULL, 0);
-
-    /* check the return status */
-    if (ssl_handshake_status(ssl_clnt) < 0)
-    {
-        printf("YA YA\n");
-        ssl_display_error(ssl_handshake_status(ssl_clnt));
-        goto error;
-    }
-
-    ssl_write(ssl_clnt, basic_buf, sizeof(basic_buf));
-    ssl_free(ssl_clnt);
-
-error:
-    ssl_ctx_free(ssl_clnt_ctx);
-    SOCKET_CLOSE(client_fd);
-
-    /* exit this thread */
-}
-
-static int SSL_basic_test(void)
-{
-    int server_fd, client_fd, ret = 0, size = 0, offset = 0;
-    SSL_CTX *ssl_svr_ctx = NULL;
-    struct sockaddr_in client_addr;
-    uint8_t *read_buf;
-    socklen_t clnt_len = sizeof(client_addr);
-    SSL *ssl_svr;
-#ifndef WIN32
-    pthread_t thread;
-#endif
-    memset(basic_buf, 0xA5, sizeof(basic_buf)/2);
-    memset(&basic_buf[sizeof(basic_buf)/2], 0x5A, sizeof(basic_buf)/2);
-
-    if ((server_fd = server_socket_init(&g_port)) < 0)
-        goto error;
-
-    ssl_svr_ctx = ssl_ctx_new(DEFAULT_SVR_OPTION, SSL_DEFAULT_SVR_SESS);
-
-#ifndef WIN32
-    pthread_create(&thread, NULL, 
-                (void *(*)(void *))do_basic, NULL);
-    pthread_detach(thread);
-#else
-    CreateThread(NULL, 1024, (LPTHREAD_START_ROUTINE)do_basic, NULL, 0, NULL);
-#endif
-
-    /* Wait for a client to connect */
-    if ((client_fd = accept(server_fd, 
-                    (struct sockaddr *) &client_addr, &clnt_len)) < 0)
-    {
-        ret = SSL_ERROR_SOCK_SETUP_FAILURE;
-        goto error;
-    }
-    
-    /* we are ready to go */
-    ssl_svr = ssl_server_new(ssl_svr_ctx, client_fd);
-    
-    do
-    {
-        while ((size = ssl_read(ssl_svr, &read_buf)) == SSL_OK);
-
-        if (size < SSL_OK) /* got some alert or something nasty */
-        {
-            printf("Server ");
-            ssl_display_error(size);
-            ret = size;
-            break;
-        }
-        else /* looks more promising */
-        {
-            if (memcmp(read_buf, &basic_buf[offset], size) != 0)
-            {
-                ret = SSL_NOT_OK;
-                break;
-            }
-        }
-
-        offset += size;
-    } while (offset < sizeof(basic_buf));
-
-    printf(ret == SSL_OK && offset == sizeof(basic_buf) ? 
-                            "SSL basic test passed\n" :
-                            "SSL basic test failed\n");
-    TTY_FLUSH();
-
-    ssl_free(ssl_svr);
-    SOCKET_CLOSE(server_fd);
-    SOCKET_CLOSE(client_fd);
-
-error:
-    ssl_ctx_free(ssl_svr_ctx);
-    return ret;
-}
-
-#if !defined(WIN32) && defined(CONFIG_SSL_CTX_MUTEXING)
-/**************************************************************************
- * Multi-Threading Tests
- *
- **************************************************************************/
-#define NUM_THREADS         100
-
-typedef struct
-{
-    SSL_CTX *ssl_clnt_ctx;
-    int port;
-    int thread_id;
-} multi_t;
-
-void do_multi_clnt(multi_t *multi_data)
-{
-    int res = 1, client_fd, i;
-    SSL *ssl = NULL;
-    char tmp[5];
-
-    if ((client_fd = client_socket_init(multi_data->port)) < 0)
-        goto client_test_exit;
-
-    sleep(1);
-    ssl = ssl_client_new(multi_data->ssl_clnt_ctx, client_fd, NULL, 0);
-
-    if ((res = ssl_handshake_status(ssl)))
-    {
-        printf("Client ");
-        ssl_display_error(res);
-        goto client_test_exit;
-    }
-
-    sprintf(tmp, "%d\n", multi_data->thread_id);
-    for (i = 0; i < 10; i++)
-        ssl_write(ssl, (uint8_t *)tmp, strlen(tmp)+1);
-
-client_test_exit:
-    ssl_free(ssl);
-    SOCKET_CLOSE(client_fd);
-    free(multi_data);
-}
-
-void do_multi_svr(SSL *ssl)
-{
-    uint8_t *read_buf;
-    int *res_ptr = malloc(sizeof(int));
-    int res;
-
-    for (;;)
-    {
-        res = ssl_read(ssl, &read_buf);
-
-        /* kill the client */
-        if (res != SSL_OK)
-        {
-            if (res == SSL_ERROR_CONN_LOST)
-            {
-                SOCKET_CLOSE(ssl->client_fd);
-                ssl_free(ssl);
-                break;
-            }
-            else if (res > 0)
-            {
-                /* do nothing */
-            }
-            else /* some problem */
-            {
-                printf("Server ");
-                ssl_display_error(res);
-                goto error;
-            }
-        }
-    }
-
-    res = SSL_OK;
-error:
-    *res_ptr = res;
-    pthread_exit(res_ptr);
-}
-
-int multi_thread_test(void)
-{
-    int server_fd = -1;
-    SSL_CTX *ssl_server_ctx;
-    SSL_CTX *ssl_clnt_ctx;
-    pthread_t clnt_threads[NUM_THREADS];
-    pthread_t svr_threads[NUM_THREADS];
-    int i, res = 0;
-    struct sockaddr_in client_addr;
-    socklen_t clnt_len = sizeof(client_addr);
-
-    printf("Do multi-threading test (takes a minute)\n");
-
-    ssl_server_ctx = ssl_ctx_new(DEFAULT_SVR_OPTION, SSL_DEFAULT_SVR_SESS);
-    ssl_clnt_ctx = ssl_ctx_new(DEFAULT_CLNT_OPTION, SSL_DEFAULT_CLNT_SESS);
-
-    if (ssl_obj_load(ssl_clnt_ctx, SSL_OBJ_X509_CACERT, 
-                                        "../ssl/test/axTLS.ca_x509.cer", NULL))
-        goto error;
-
-    if ((server_fd = server_socket_init(&g_port)) < 0)
-        goto error;
-
-    for (i = 0; i < NUM_THREADS; i++)
-    {
-        multi_t *multi_data = (multi_t *)malloc(sizeof(multi_t));
-        multi_data->ssl_clnt_ctx = ssl_clnt_ctx;
-        multi_data->port = g_port;
-        multi_data->thread_id = i+1;
-        pthread_create(&clnt_threads[i], NULL, 
-                (void *(*)(void *))do_multi_clnt, (void *)multi_data);
-        pthread_detach(clnt_threads[i]);
-    }
-
-    for (i = 0; i < NUM_THREADS; i++)
-    { 
-        SSL *ssl_svr;
-        int client_fd = accept(server_fd, 
-                      (struct sockaddr *)&client_addr, &clnt_len);
-
-        if (client_fd < 0)
-            goto error;
-
-        ssl_svr = ssl_server_new(ssl_server_ctx, client_fd);
-
-        pthread_create(&svr_threads[i], NULL, 
-                        (void *(*)(void *))do_multi_svr, (void *)ssl_svr);
-    }
-
-    /* make sure we've run all of the threads */
-    for (i = 0; i < NUM_THREADS; i++)
-    {
-        void *thread_res;
-        pthread_join(svr_threads[i], &thread_res);
-
-        if (*((int *)thread_res) != 0)
-            res = 1;
-
-        free(thread_res);
-    } 
-
-    if (res) 
-        goto error;
-
-    printf("Multi-thread test passed (%d)\n", NUM_THREADS);
-error:
-    ssl_ctx_free(ssl_server_ctx);
-    ssl_ctx_free(ssl_clnt_ctx);
-    SOCKET_CLOSE(server_fd);
-    return res;
-}
-#endif /* !defined(WIN32) && defined(CONFIG_SSL_CTX_MUTEXING) */ 
-
-/**************************************************************************
- * Header issue
- *
- **************************************************************************/
-static void do_header_issue(void)
-{
-    char axtls_buf[2048];
-#ifndef WIN32
-    pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
-#endif
-    sprintf(axtls_buf, "./axssl s_client -connect localhost:%d", g_port);
-    system(axtls_buf);
-}
-
-static int header_issue(void)
-{
-    FILE *f = fopen("../ssl/test/header_issue.dat", "r");
-    int server_fd = -1, client_fd = -1, ret = 1;
-    uint8_t buf[2048];
-    int size = 0;
-    struct sockaddr_in client_addr;
-    socklen_t clnt_len = sizeof(client_addr);
-#ifndef WIN32
-    pthread_t thread;
-#endif
-
-    if (f == NULL || (server_fd = server_socket_init(&g_port)) < 0)
-        goto error;
-
-#ifndef WIN32
-    pthread_create(&thread, NULL, 
-                (void *(*)(void *))do_header_issue, NULL);
-    pthread_detach(thread);
-#else
-    CreateThread(NULL, 1024, (LPTHREAD_START_ROUTINE)do_header_issue, 
-                NULL, 0, NULL);
-#endif
-    if ((client_fd = accept(server_fd, 
-                    (struct sockaddr *) &client_addr, &clnt_len)) < 0)
-    {
-        ret = SSL_ERROR_SOCK_SETUP_FAILURE;
-        goto error;
-    }
-
-    size = fread(buf, 1, sizeof(buf), f);
-    SOCKET_WRITE(client_fd, buf, size);
-    usleep(200000);
-
-    ret = 0;
-error:
-    fclose(f);
-    SOCKET_CLOSE(client_fd);
-    SOCKET_CLOSE(server_fd);
-    TTY_FLUSH();
-    system("killall axssl");
-    return ret;
-}
-
-/**************************************************************************
- * main()
- *
- **************************************************************************/
-int main(int argc, char *argv[])
-{
-    int ret = 1;
-    BI_CTX *bi_ctx;
-    int fd;
-
-#ifdef WIN32
-    WSADATA wsaData;
-    WORD wVersionRequested = MAKEWORD(2, 2);
-    WSAStartup(wVersionRequested, &wsaData);
-    fd = _open("test_result.txt", O_WRONLY|O_TEMPORARY|O_CREAT, _S_IWRITE);
-    dup2(fd, 2);                        /* write stderr to this file */
-#else
-    fd = open("/dev/null", O_WRONLY);   /* write stderr to /dev/null */
-    signal(SIGPIPE, SIG_IGN);           /* ignore pipe errors */
-    dup2(fd, 2);
-#endif
-
-    /* can't do testing in this mode */
-#if defined CONFIG_SSL_GENERATE_X509_CERT
-    printf("Error: Must compile with default key/certificates\n");
-    exit(1);
-#endif
-
-    bi_ctx = bi_initialize();
-
-    if (AES_test(bi_ctx))
-    {
-        printf("AES tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    if (RC4_test(bi_ctx))
-    {
-        printf("RC4 tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    if (MD5_test(bi_ctx))
-    {
-        printf("MD5 tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    if (SHA1_test(bi_ctx))
-    {
-        printf("SHA1 tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    if (HMAC_test(bi_ctx))
-    {
-        printf("HMAC tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    if (BIGINT_test(bi_ctx))
-    {
-        printf("BigInt tests failed!\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    bi_terminate(bi_ctx);
-
-    if (RSA_test())
-    {
-        printf("RSA tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-    if (cert_tests())
-    {
-        printf("CERT tests failed\n");
-        goto cleanup;
-    }
-    TTY_FLUSH();
-
-#if !defined(WIN32) && defined(CONFIG_SSL_CTX_MUTEXING)
-    if (multi_thread_test())
-        goto cleanup;
-#endif
-
-    if (SSL_basic_test())
-        goto cleanup;
-
-    system("sh ../ssl/test/killopenssl.sh");
-
-    if (SSL_client_tests())
-        goto cleanup;
-
-    system("sh ../ssl/test/killopenssl.sh");
-
-    if (SSL_server_tests())
-        goto cleanup;
-
-    system("sh ../ssl/test/killopenssl.sh");
-
-    if (header_issue())
-    {
-        printf("Header tests failed\n"); TTY_FLUSH();
-        goto cleanup;
-    }
-
-    ret = 0;        /* all ok */
-    printf("**** ALL TESTS PASSED ****\n"); TTY_FLUSH();
-cleanup:
-
-    if (ret)
-        printf("Error: Some tests failed!\n");
-
-    close(fd);
-    return ret;
-}
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/test_axssl.sh b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/test_axssl.sh
deleted file mode 100755 (executable)
index acf11a6..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2007, Cameron Rich
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-#   this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# * Neither the name of the axTLS project nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-#
-# Test the various axssl bindings. To run it, got to the _install directory
-# and run this script from there.
-#
-
-if grep "CONFIG_PLATFORM_WIN32=y" "../config/.config"  > /dev/null; then
-    JAVA_EXE="$JAVA_HOME/bin/java.exe"
-    PERL_BIN="/cygdrive/c/Perl/bin/perl"
-    KILL_AXSSL="kill %1"
-    KILL_CSHARP="kill %1"
-    KILL_PERL="kill %1"
-    KILL_JAVA="kill %1"
-    KILL_LUA="kill %1"
-else
-    if grep "CONFIG_PLATFORM_CYGWIN=y" "../config/.config"  > /dev/null; then
-        # no .net or java on cygwin
-        PERL_BIN=/usr/bin/perl
-        KILL_AXSSL="killall axssl"
-        KILL_PERL="killall /usr/bin/perl"
-        KILL_LUA="killall /usr/local/bin/lua"
-    else     # Linux
-        JAVA_EXE=/usr/java/default/bin/java
-        PERL_BIN=/usr/bin/perl
-        KILL_AXSSL="killall axssl"
-        KILL_CSHARP="killall mono"
-        KILL_PERL="killall /usr/bin/perl"
-        RUN_CSHARP="mono"
-        KILL_JAVA="killall $JAVA_EXE"
-        KILL_LUA="killall /usr/local/bin/lua"
-    fi
-fi
-
-BASE=..
-SERVER_ARGS="s_server -accept 15001 -verify -CAfile $BASE/ssl/test/axTLS.ca_x509.cer"
-CLIENT_ARGS="s_client -reconnect -connect localhost:15001 -verify -CAfile $BASE/ssl/test/axTLS.ca_x509.cer -key $BASE/ssl/test/axTLS.key_1024 -cert $BASE/ssl/test/axTLS.x509_1024.cer"
-
-# check pem arguments
-SERVER_PEM_ARGS="s_server -accept 15001 -pass abcd -key $BASE/ssl/test/axTLS.key_aes128.pem -cert $BASE/ssl/test/axTLS.x509_aes128.pem"
-CLIENT_PEM_ARGS="s_client -connect localhost:15001 -CAfile $BASE/ssl/test/axTLS.ca_x509.pem -key $BASE/ssl/test/axTLS.key_1024.pem -cert $BASE/ssl/test/axTLS.x509_1024.pem"
-
-export LD_LIBRARY_PATH=.:`perl -e 'use Config; print $Config{archlib};'`/CORE
-
-if [ -x ./axssl ]; then
-echo "############################# C SAMPLE ###########################"
-./axssl $SERVER_ARGS &
-echo "C Test passed" | ./axssl $CLIENT_ARGS
-$KILL_AXSSL
-sleep 1
-
-./axssl $SERVER_PEM_ARGS &
-echo "C Test passed" | ./axssl $CLIENT_PEM_ARGS
-$KILL_AXSSL
-sleep 1
-echo "### C tests complete"
-fi
-
-if [ -f ./axtls.jar ]; then
-echo "########################## JAVA SAMPLE ###########################"
-"$JAVA_EXE" -jar ./axtls.jar $SERVER_ARGS &
-echo "Java Test passed" | "$JAVA_EXE" -jar ./axtls.jar $CLIENT_ARGS
-$KILL_JAVA
-sleep 1
-
-"$JAVA_EXE" -jar ./axtls.jar $SERVER_PEM_ARGS &
-echo "Java Test passed" | "$JAVA_EXE" -jar ./axtls.jar $CLIENT_PEM_ARGS
-$KILL_JAVA
-sleep 1
-
-echo "### Java tests complete"
-fi
-
-if [ -x ./axssl.csharp.exe ]; then
-echo "############################ C# SAMPLE ###########################"
-$RUN_CSHARP ./axssl.csharp.exe $SERVER_ARGS &
-echo "C# Test passed" | $RUN_CSHARP ./axssl.csharp.exe $CLIENT_ARGS
-$KILL_CSHARP
-sleep 1
-
-$RUN_CSHARP ./axssl.csharp.exe $SERVER_PEM_ARGS &
-echo "C# Test passed" | $RUN_CSHARP ./axssl.csharp.exe $CLIENT_PEM_ARGS
-$KILL_CSHARP
-sleep 1
-
-echo "### C# tests complete"
-fi
-
-if [ -x ./axssl.vbnet.exe ]; then
-echo "######################## VB.NET SAMPLE ###########################"
-echo $SERVER_ARGS
-echo $CLIENT_ARGS
-./axssl.vbnet $SERVER_ARGS &
-echo "VB.NET Test passed" | ./axssl.vbnet.exe $CLIENT_ARGS
-kill %1
-sleep 1
-
-./axssl.vbnet $SERVER_PEM_ARGS &
-echo "VB.NET Test passed" | ./axssl.vbnet.exe $CLIENT_PEM_ARGS
-kill %1
-sleep 1
-echo "### VB.NET tests complete"
-fi
-
-if [ -f ./axssl.pl ]; then
-echo "########################## PERL SAMPLE ###########################"
-"$PERL_BIN" ./axssl.pl $SERVER_ARGS &
-echo "Perl Test passed" | "$PERL_BIN" ./axssl.pl $CLIENT_ARGS
-$KILL_PERL
-sleep 1
-
-"$PERL_BIN" ./axssl.pl $SERVER_PEM_ARGS &
-echo "Perl Test passed" | "$PERL_BIN" ./axssl.pl $CLIENT_PEM_ARGS
-$KILL_PERL
-sleep 1
-echo "### Perl tests complete"
-fi
-
-if [ -f ./axssl.lua ]; then
-echo "########################## LUA SAMPLE ###########################"
-./axssl.lua $SERVER_ARGS &
-echo "Lua Test passed" | ./axssl.lua $CLIENT_ARGS
-$KILL_LUA
-sleep 1
-
-./axssl.lua $SERVER_PEM_ARGS &
-echo "Lua Test passed" | ./axssl.lua $CLIENT_PEM_ARGS
-$KILL_LUA
-sleep 1
-echo "### Lua tests complete"
-fi
-
-echo "########################## ALL TESTS COMPLETE ###########################"
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/thawte.x509_ca b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/thawte.x509_ca
deleted file mode 100644 (file)
index 59b1059..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/thawte.x509_ca and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_ca b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_ca
deleted file mode 100644 (file)
index d2ea128..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_ca and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_ca.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_ca.pem
deleted file mode 100644 (file)
index d5ef5d2..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICmDCCAgECECCol67bggLewTagTia9h3MwDQYJKoZIhvcNAQECBQAwgYwxCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEwMC4GA1UECxMnRm9y
-IFRlc3QgUHVycG9zZXMgT25seS4gIE5vIGFzc3VyYW5jZXMuMTIwMAYDVQQDEylW
-ZXJpU2lnbiBUcmlhbCBTZWN1cmUgU2VydmVyIFRlc3QgUm9vdCBDQTAeFw0wNTAy
-MDkwMDAwMDBaFw0yNTAyMDgyMzU5NTlaMIGMMQswCQYDVQQGEwJVUzEXMBUGA1UE
-ChMOVmVyaVNpZ24sIEluYy4xMDAuBgNVBAsTJ0ZvciBUZXN0IFB1cnBvc2VzIE9u
-bHkuICBObyBhc3N1cmFuY2VzLjEyMDAGA1UEAxMpVmVyaVNpZ24gVHJpYWwgU2Vj
-dXJlIFNlcnZlciBUZXN0IFJvb3QgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
-AoGBAJ8h98U7klaZH5cEn6CSEKmGWVBsTwHIaMAAVqGqCUn7Q9C10sEOIHBznyLy
-eSDjMs5M1nC/iAA7KCASf/yHz0AdlU+1IRSijwHTF/2dYSoTTxP2GCmtL1Ga4i7+
-zDDo086V7+NiFAGJj+CYey47ue4Xa33o/4YOA9PGL87oqFe7AgMBAAEwDQYJKoZI
-hvcNAQECBQADgYEAOq447rP5EDqFEl3vhLhgTbnyaskNYwPvxk+0grnQyDA4sF/q
-gK8nFlnvLmAOF3DmfuqW6WSr4zqTYzpwmJlsn48Om/yWirL8GuWRftit2POxTfHS
-B8VmR+PZx2k24UgWUZyojDGxJtiHd3tjCdqFgTit4NK429cWOcZrh47xeOI=
------END CERTIFICATE-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_my_cert b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_my_cert
deleted file mode 100644 (file)
index 426c9ff..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_my_cert and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_my_cert.pem b/package/luci/libs/luci-lib-nixio/axTLS/ssl/test/verisign.x509_my_cert.pem
deleted file mode 100644 (file)
index 5b6c1ff..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEQzCCA6ygAwIBAgIQR/dXCzC/x5Ta5RvL6hKEojANBgkqhkiG9w0BAQUFADCB
-jDELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTAwLgYDVQQL
-EydGb3IgVGVzdCBQdXJwb3NlcyBPbmx5LiAgTm8gYXNzdXJhbmNlcy4xMjAwBgNV
-BAMTKVZlcmlTaWduIFRyaWFsIFNlY3VyZSBTZXJ2ZXIgVGVzdCBSb290IENBMB4X
-DTA2MDExNjAwMDAwMFoXDTA2MDEzMDIzNTk1OVowgbkxCzAJBgNVBAYTAkFVMQww
-CgYDVQQIEwNRbGQxETAPBgNVBAcUCEJyaXNiYW5lMRkwFwYDVQQKFBBheG9sb1RM
-UyBQcm9qZWN0MRUwEwYDVQQLFAwxMDI0IGJpdCBrZXkxOjA4BgNVBAsUMVRlcm1z
-IG9mIHVzZSBhdCB3d3cudmVyaXNpZ24uY29tL2Nwcy90ZXN0Y2EgKGMpMDUxGzAZ
-BgNVBAMUEnd3dy5heG9sb3Rscy5jby5ucjCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
-gYkCgYEAttzj5S7qfOZIrh9xg8bgjTOKbSIbLBuMnxAwfGRcUrQO2EQOHd6kMjXR
-hqY/cG2IG4G8AeqdV3nHlKbrbHbRa1lFgP6b0BQCE8TyxmP+tIAqn5L6/HTm+EEi
-Ad1Pxjeok6e7F6UXHxJltSGHmOhAf3C5kPq/FQ6QZeG4yD/uzPkCAwEAAaOCAXUw
-ggFxMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgWgMEcGA1UdHwRAMD4wPKA6oDiGNmh0
-dHA6Ly9TVlJTZWN1cmUtY3JsLnZlcmlzaWduLmNvbS9TVlJUcmlhbFJvb3QyMDA1
-LmNybDBKBgNVHSAEQzBBMD8GCmCGSAGG+EUBBxUwMTAvBggrBgEFBQcCARYjaHR0
-cHM6Ly93d3cudmVyaXNpZ24uY29tL2Nwcy90ZXN0Y2EwHQYDVR0lBBYwFAYIKwYB
-BQUHAwEGCCsGAQUFBwMCMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0
-cDovL29jc3AudmVyaXNpZ24uY29tMG0GCCsGAQUFBwEMBGEwX6FdoFswWTBXMFUW
-CWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgsexkuMCUW
-I2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMA0GCSqGSIb3DQEB
-BQUAA4GBACtlCTJFENCcHCQLHJfiotqr2XR+oWu0MstNm8dG6WB+zYprrT+kOPDn
-1rMO7YLx76f67fC+lIXz720kQHk6LsZ8hPBQvIXnfIsKjng73DeFzBmTMFz6Qxjd
-+E0FUCKplqrdwUkmR4kH6O4pdGE4AlXJNiUI2903yYdSRVMOuLuR
------END CERTIFICATE-----
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/tls1.c b/package/luci/libs/luci-lib-nixio/axTLS/ssl/tls1.c
deleted file mode 100755 (executable)
index 658c2c1..0000000
+++ /dev/null
@@ -1,2057 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Common ssl/tlsv1 code to both the client and server implementations.
- */
-
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include "ssl.h"
-
-/* The session expiry time */
-#define SSL_EXPIRY_TIME     (CONFIG_SSL_EXPIRY_TIME*3600)
-
-static const uint8_t g_hello_request[] = { HS_HELLO_REQUEST, 0, 0, 0 };
-static const uint8_t g_chg_cipher_spec_pkt[] = { 1 };
-static const char * server_finished = "server finished";
-static const char * client_finished = "client finished";
-
-static int do_handshake(SSL *ssl, uint8_t *buf, int read_len);
-static void set_key_block(SSL *ssl, int is_write);
-static int verify_digest(SSL *ssl, int mode, const uint8_t *buf, int read_len);
-static void *crypt_new(SSL *ssl, uint8_t *key, uint8_t *iv, int is_decrypt);
-static int send_raw_packet(SSL *ssl, uint8_t protocol);
-
-/**
- * The server will pick the cipher based on the order that the order that the
- * ciphers are listed. This order is defined at compile time.
- */
-#ifdef CONFIG_SSL_SKELETON_MODE
-const uint8_t ssl_prot_prefs[NUM_PROTOCOLS] = 
-{ SSL_RC4_128_SHA };
-#else
-static void session_free(SSL_SESSION *ssl_sessions[], int sess_index);
-
-const uint8_t ssl_prot_prefs[NUM_PROTOCOLS] = 
-#ifdef CONFIG_SSL_PROT_LOW                  /* low security, fast speed */
-{ SSL_RC4_128_SHA, SSL_AES128_SHA, SSL_AES256_SHA, SSL_RC4_128_MD5 };
-#elif CONFIG_SSL_PROT_MEDIUM                /* medium security, medium speed */
-{ SSL_AES128_SHA, SSL_AES256_SHA, SSL_RC4_128_SHA, SSL_RC4_128_MD5 };    
-#else /* CONFIG_SSL_PROT_HIGH */            /* high security, low speed */
-{ SSL_AES256_SHA, SSL_AES128_SHA, SSL_RC4_128_SHA, SSL_RC4_128_MD5 };
-#endif
-#endif /* CONFIG_SSL_SKELETON_MODE */
-
-/**
- * The cipher map containing all the essentials for each cipher.
- */
-#ifdef CONFIG_SSL_SKELETON_MODE
-static const cipher_info_t cipher_info[NUM_PROTOCOLS] = 
-{
-    {   /* RC4-SHA */
-        SSL_RC4_128_SHA,                /* RC4-SHA */
-        16,                             /* key size */
-        0,                              /* iv size */ 
-        2*(SHA1_SIZE+16),               /* key block size */
-        0,                              /* no padding */
-        SHA1_SIZE,                      /* digest size */
-        hmac_sha1,                      /* hmac algorithm */
-        (crypt_func)RC4_crypt,          /* encrypt */
-        (crypt_func)RC4_crypt           /* decrypt */
-    },
-};
-#else
-static const cipher_info_t cipher_info[NUM_PROTOCOLS] = 
-{
-    {   /* AES128-SHA */
-        SSL_AES128_SHA,                 /* AES128-SHA */
-        16,                             /* key size */
-        16,                             /* iv size */ 
-        2*(SHA1_SIZE+16+16),            /* key block size */
-        16,                             /* block padding size */
-        SHA1_SIZE,                      /* digest size */
-        hmac_sha1,                      /* hmac algorithm */
-        (crypt_func)AES_cbc_encrypt,    /* encrypt */
-        (crypt_func)AES_cbc_decrypt     /* decrypt */
-    },
-    {   /* AES256-SHA */
-        SSL_AES256_SHA,                 /* AES256-SHA */
-        32,                             /* key size */
-        16,                             /* iv size */ 
-        2*(SHA1_SIZE+32+16),            /* key block size */
-        16,                             /* block padding size */
-        SHA1_SIZE,                      /* digest size */
-        hmac_sha1,                      /* hmac algorithm */
-        (crypt_func)AES_cbc_encrypt,    /* encrypt */
-        (crypt_func)AES_cbc_decrypt     /* decrypt */
-    },       
-    {   /* RC4-SHA */
-        SSL_RC4_128_SHA,                /* RC4-SHA */
-        16,                             /* key size */
-        0,                              /* iv size */ 
-        2*(SHA1_SIZE+16),               /* key block size */
-        0,                              /* no padding */
-        SHA1_SIZE,                      /* digest size */
-        hmac_sha1,                      /* hmac algorithm */
-        (crypt_func)RC4_crypt,          /* encrypt */
-        (crypt_func)RC4_crypt           /* decrypt */
-    },
-    /*
-     * This protocol is from SSLv2 days and is unlikely to be used - but was
-     * useful for testing different possible digest algorithms.
-     */
-    {   /* RC4-MD5 */
-        SSL_RC4_128_MD5,                /* RC4-MD5 */
-        16,                             /* key size */
-        0,                              /* iv size */ 
-        2*(MD5_SIZE+16),                /* key block size */
-        0,                              /* no padding */
-        MD5_SIZE,                       /* digest size */
-        hmac_md5,                       /* hmac algorithm */
-        (crypt_func)RC4_crypt,          /* encrypt */
-        (crypt_func)RC4_crypt           /* decrypt */
-    },
-};
-#endif
-
-static void prf(const uint8_t *sec, int sec_len, uint8_t *seed, int seed_len,
-        uint8_t *out, int olen);
-static const cipher_info_t *get_cipher_info(uint8_t cipher);
-static void increment_read_sequence(SSL *ssl);
-static void increment_write_sequence(SSL *ssl);
-static void add_hmac_digest(SSL *ssl, int snd, uint8_t *hmac_header,
-        const uint8_t *buf, int buf_len, uint8_t *hmac_buf);
-
-/* win32 VC6.0 doesn't have variadic macros */
-#if defined(WIN32) && !defined(CONFIG_SSL_FULL_MODE)
-void DISPLAY_BYTES(SSL *ssl, const char *format, 
-        const uint8_t *data, int size, ...) {}
-#endif
-
-/**
- * Establish a new client/server context.
- */
-EXP_FUNC SSL_CTX *STDCALL ssl_ctx_new(uint32_t options, int num_sessions)
-{
-    SSL_CTX *ssl_ctx = (SSL_CTX *)calloc(1, sizeof (SSL_CTX));
-    ssl_ctx->options = options;
-
-    if (load_key_certs(ssl_ctx) < 0)
-    {
-        free(ssl_ctx);  /* can't load our key/certificate pair, so die */
-        return NULL;
-    }
-
-#ifndef CONFIG_SSL_SKELETON_MODE
-    ssl_ctx->num_sessions = num_sessions;
-#endif
-
-    SSL_CTX_MUTEX_INIT(ssl_ctx->mutex);
-
-#ifndef CONFIG_SSL_SKELETON_MODE
-    if (num_sessions)
-    {
-        ssl_ctx->ssl_sessions = (SSL_SESSION **)
-                        calloc(1, num_sessions*sizeof(SSL_SESSION *));
-    }
-#endif
-
-    return ssl_ctx;
-}
-
-/*
- * Remove a client/server context.
- */
-EXP_FUNC void STDCALL ssl_ctx_free(SSL_CTX *ssl_ctx)
-{
-    SSL *ssl;
-    int i;
-
-    if (ssl_ctx == NULL)
-        return;
-
-    ssl = ssl_ctx->head;
-
-    /* clear out all the ssl entries */
-    while (ssl)
-    {
-        SSL *next = ssl->next;
-        ssl_free(ssl);
-        ssl = next;
-    }
-
-#ifndef CONFIG_SSL_SKELETON_MODE
-    /* clear out all the sessions */
-    for (i = 0; i < ssl_ctx->num_sessions; i++)
-        session_free(ssl_ctx->ssl_sessions, i);
-
-    free(ssl_ctx->ssl_sessions);
-#endif
-
-    i = 0;
-    while (i < CONFIG_SSL_MAX_CERTS && ssl_ctx->certs[i].buf)
-    {
-        free(ssl_ctx->certs[i].buf);
-        ssl_ctx->certs[i++].buf = NULL;
-    }
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-    remove_ca_certs(ssl_ctx->ca_cert_ctx);
-#endif
-    ssl_ctx->chain_length = 0;
-    SSL_CTX_MUTEX_DESTROY(ssl_ctx->mutex);
-    RSA_free(ssl_ctx->rsa_ctx);
-    RNG_terminate();
-    free(ssl_ctx);
-}
-
-/*
- * Free any used resources used by this connection.
- */
-EXP_FUNC void STDCALL ssl_free(SSL *ssl)
-{
-    SSL_CTX *ssl_ctx;
-
-    if (ssl == NULL)        /* just ignore null pointers */
-        return;
-
-    /* spec says we must notify when we are dying */
-    send_alert(ssl, SSL_ALERT_CLOSE_NOTIFY);
-
-    ssl_ctx = ssl->ssl_ctx;
-
-    SSL_CTX_LOCK(ssl_ctx->mutex);
-
-    /* adjust the server SSL list */
-    if (ssl->prev)
-        ssl->prev->next = ssl->next;
-    else
-        ssl_ctx->head = ssl->next;
-
-    if (ssl->next)
-        ssl->next->prev = ssl->prev;
-    else
-        ssl_ctx->tail = ssl->prev;
-
-    SSL_CTX_UNLOCK(ssl_ctx->mutex);
-
-    /* may already be free - but be sure */
-    free(ssl->encrypt_ctx);
-    free(ssl->decrypt_ctx);
-    disposable_free(ssl);
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-    x509_free(ssl->x509_ctx);
-#endif
-
-    free(ssl);
-}
-
-/*
- * Read the SSL connection and send any alerts for various errors.
- */
-EXP_FUNC int STDCALL ssl_read(SSL *ssl, uint8_t **in_data)
-{
-    int ret = basic_read(ssl, in_data);
-
-    /* check for return code so we can send an alert */
-    if (ret < SSL_OK)
-    {
-        if (ret != SSL_ERROR_CONN_LOST)
-        {
-            send_alert(ssl, ret);
-#ifndef CONFIG_SSL_SKELETON_MODE
-            /* something nasty happened, so get rid of this session */
-            kill_ssl_session(ssl->ssl_ctx->ssl_sessions, ssl);
-#endif
-        }
-    }
-
-    return ret;
-}
-
-/*
- * Write application data to the client
- */
-EXP_FUNC int STDCALL ssl_write(SSL *ssl, const uint8_t *out_data, int out_len)
-{
-    int n = out_len, nw, i, tot = 0;
-
-    /* maximum size of a TLS packet is around 16kB, so fragment */
-    do 
-    {
-        nw = n;
-
-        if (nw > RT_MAX_PLAIN_LENGTH)    /* fragment if necessary */
-            nw = RT_MAX_PLAIN_LENGTH;
-
-        if ((i = send_packet(ssl, PT_APP_PROTOCOL_DATA, 
-                                            &out_data[tot], nw)) <= 0)
-        {
-            out_len = i;    /* an error */
-            break;
-        }
-
-        tot += i;
-        n -= i;
-    } while (n > 0);
-
-    return out_len;
-}
-
-/**
- * Add a certificate to the certificate chain.
- */
-int add_cert(SSL_CTX *ssl_ctx, const uint8_t *buf, int len)
-{
-    int ret = SSL_ERROR_NO_CERT_DEFINED, i = 0;
-    SSL_CERT *ssl_cert;
-    X509_CTX *cert = NULL;
-    int offset;
-
-    while (ssl_ctx->certs[i].buf && i < CONFIG_SSL_MAX_CERTS) 
-        i++;
-
-    if (i == CONFIG_SSL_MAX_CERTS) /* too many certs */
-    {
-#ifdef CONFIG_SSL_FULL_MODE
-        printf("Error: maximum number of certs added - change of "
-                "compile-time configuration required\n");
-#endif
-        goto error;
-    }
-
-    if ((ret = x509_new(buf, &offset, &cert)))
-        goto error;
-
-#if defined (CONFIG_SSL_FULL_MODE)
-    if (ssl_ctx->options & SSL_DISPLAY_CERTS)
-        x509_print(cert, NULL);
-#endif
-
-    ssl_cert = &ssl_ctx->certs[i];
-    ssl_cert->size = len;
-    ssl_cert->buf = (uint8_t *)malloc(len);
-    memcpy(ssl_cert->buf, buf, len);
-    ssl_ctx->chain_length++;
-    len -= offset;
-    ret = SSL_OK;           /* ok so far */
-
-    /* recurse? */
-    if (len > 0)
-    {
-        ret = add_cert(ssl_ctx, &buf[offset], len);
-    }
-
-error:
-    x509_free(cert);        /* don't need anymore */
-    return ret;
-}
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-/**
- * Add a certificate authority.
- */
-int add_cert_auth(SSL_CTX *ssl_ctx, const uint8_t *buf, int len)
-{
-    int ret = SSL_ERROR_NO_CERT_DEFINED;
-    int i = 0;
-    int offset;
-    CA_CERT_CTX *ca_cert_ctx;
-
-    if (ssl_ctx->ca_cert_ctx == NULL)
-        ssl_ctx->ca_cert_ctx = (CA_CERT_CTX *)calloc(1, sizeof(CA_CERT_CTX));
-
-    ca_cert_ctx = ssl_ctx->ca_cert_ctx;
-
-    while (i < CONFIG_X509_MAX_CA_CERTS && ca_cert_ctx->cert[i]) 
-        i++;
-
-    if (i > CONFIG_X509_MAX_CA_CERTS)
-    {
-#ifdef CONFIG_SSL_FULL_MODE
-        printf("Error: maximum number of CA certs added - change of "
-                "compile-time configuration required\n");
-#endif
-        goto error;
-    }
-
-    if ((ret = x509_new(buf, &offset, &ca_cert_ctx->cert[i])))
-        goto error;
-
-    len -= offset;
-    ret = SSL_OK;           /* ok so far */
-
-    /* recurse? */
-    if (len > 0)
-        ret = add_cert_auth(ssl_ctx, &buf[offset], len);
-
-error:
-    return ret;
-}
-
-/*
- * Retrieve an X.509 distinguished name component
- */
-EXP_FUNC const char * STDCALL ssl_get_cert_dn(const SSL *ssl, int component)
-{
-    if (ssl->x509_ctx == NULL)
-        return NULL;
-
-    switch (component)
-    {
-        case SSL_X509_CERT_COMMON_NAME:
-            return ssl->x509_ctx->cert_dn[X509_COMMON_NAME];
-
-        case SSL_X509_CERT_ORGANIZATION:
-            return ssl->x509_ctx->cert_dn[X509_ORGANIZATION];
-
-        case SSL_X509_CERT_ORGANIZATIONAL_NAME:       
-            return ssl->x509_ctx->cert_dn[X509_ORGANIZATIONAL_UNIT];
-
-        case SSL_X509_CA_CERT_COMMON_NAME:
-            return ssl->x509_ctx->ca_cert_dn[X509_COMMON_NAME];
-
-        case SSL_X509_CA_CERT_ORGANIZATION:
-            return ssl->x509_ctx->ca_cert_dn[X509_ORGANIZATION];
-
-        case SSL_X509_CA_CERT_ORGANIZATIONAL_NAME:       
-            return ssl->x509_ctx->ca_cert_dn[X509_ORGANIZATIONAL_UNIT];
-
-        default:
-            return NULL;
-    }
-}
-
-#endif
-
-/*
- * Find an ssl object based on the client's file descriptor.
- */
-EXP_FUNC SSL * STDCALL ssl_find(SSL_CTX *ssl_ctx, int client_fd)
-{
-    SSL *ssl;
-
-    SSL_CTX_LOCK(ssl_ctx->mutex);
-    ssl = ssl_ctx->head;
-
-    /* search through all the ssl entries */
-    while (ssl)
-    {
-        if (ssl->client_fd == client_fd)
-        {
-            SSL_CTX_UNLOCK(ssl_ctx->mutex);
-            return ssl;
-        }
-
-        ssl = ssl->next;
-    }
-
-    SSL_CTX_UNLOCK(ssl_ctx->mutex);
-    return NULL;
-}
-
-/*
- * Force the client to perform its handshake again.
- */
-EXP_FUNC int STDCALL ssl_renegotiate(SSL *ssl)
-{
-    int ret = SSL_OK;
-
-    disposable_new(ssl);
-#ifdef CONFIG_SSL_ENABLE_CLIENT
-    if (IS_SET_SSL_FLAG(SSL_IS_CLIENT))
-    {
-        ret = do_client_connect(ssl);
-    }
-    else
-#endif
-    {
-        send_packet(ssl, PT_HANDSHAKE_PROTOCOL, 
-                g_hello_request, sizeof(g_hello_request));
-        SET_SSL_FLAG(SSL_NEED_RECORD);
-    }
-
-    return ret;
-}
-
-/**
- * @brief Get what we need for key info.
- * @param cipher    [in]    The cipher information we are after
- * @param key_size  [out]   The key size for the cipher
- * @param iv_size   [out]   The iv size for the cipher
- * @return  The amount of key information we need.
- */
-static const cipher_info_t *get_cipher_info(uint8_t cipher)
-{
-    int i;
-
-    for (i = 0; i < NUM_PROTOCOLS; i++)
-    {
-        if (cipher_info[i].cipher == cipher)
-        {
-            return &cipher_info[i];
-        }
-    }
-
-    return NULL;  /* error */
-}
-
-/*
- * Get a new ssl context for a new connection.
- */
-SSL *ssl_new(SSL_CTX *ssl_ctx, int client_fd)
-{
-    SSL *ssl = (SSL *)calloc(1, sizeof(SSL));
-    ssl->ssl_ctx = ssl_ctx;
-    ssl->need_bytes = SSL_RECORD_SIZE;      /* need a record */
-    ssl->client_fd = client_fd;
-    ssl->flag = SSL_NEED_RECORD;
-    ssl->bm_data = ssl->bm_all_data+BM_RECORD_OFFSET; /* space at the start */
-    ssl->hs_status = SSL_NOT_OK;            /* not connected */
-#ifdef CONFIG_ENABLE_VERIFICATION
-    ssl->ca_cert_ctx = ssl_ctx->ca_cert_ctx;
-#endif
-    disposable_new(ssl);
-
-    /* a bit hacky but saves a few bytes of memory */
-    ssl->flag |= ssl_ctx->options;
-    SSL_CTX_LOCK(ssl_ctx->mutex);
-
-    if (ssl_ctx->head == NULL)
-    {
-        ssl_ctx->head = ssl;
-        ssl_ctx->tail = ssl;
-    }
-    else
-    {
-        ssl->prev = ssl_ctx->tail;
-        ssl_ctx->tail->next = ssl;
-        ssl_ctx->tail = ssl;
-    }
-
-    SSL_CTX_UNLOCK(ssl_ctx->mutex);
-    return ssl;
-}
-
-/*
- * Add a private key to a context.
- */
-int add_private_key(SSL_CTX *ssl_ctx, SSLObjLoader *ssl_obj)
-{
-    int ret = SSL_OK;
-
-    /* get the private key details */
-    if (asn1_get_private_key(ssl_obj->buf, ssl_obj->len, &ssl_ctx->rsa_ctx))
-    {
-        ret = SSL_ERROR_INVALID_KEY;
-        goto error;
-    }
-
-error:
-    return ret;
-}
-
-/** 
- * Increment the read sequence number (as a 64 bit endian indepenent #)
- */     
-static void increment_read_sequence(SSL *ssl)
-{
-    int i;
-
-    for (i = 7; i >= 0; i--) 
-    {       
-        if (++ssl->read_sequence[i])
-            break;
-    }
-}
-            
-/**
- * Increment the read sequence number (as a 64 bit endian indepenent #)
- */      
-static void increment_write_sequence(SSL *ssl)
-{        
-    int i;                  
-         
-    for (i = 7; i >= 0; i--)
-    {                       
-        if (++ssl->write_sequence[i])
-            break;
-    }                       
-}
-
-/**
- * Work out the HMAC digest in a packet.
- */
-static void add_hmac_digest(SSL *ssl, int mode, uint8_t *hmac_header,
-        const uint8_t *buf, int buf_len, uint8_t *hmac_buf)
-{
-    int hmac_len = buf_len + 8 + SSL_RECORD_SIZE;
-    uint8_t *t_buf = (uint8_t *)alloca(hmac_len+10);
-
-    memcpy(t_buf, (mode == SSL_SERVER_WRITE || mode == SSL_CLIENT_WRITE) ? 
-                    ssl->write_sequence : ssl->read_sequence, 8);
-    memcpy(&t_buf[8], hmac_header, SSL_RECORD_SIZE);
-    memcpy(&t_buf[8+SSL_RECORD_SIZE], buf, buf_len);
-
-    ssl->cipher_info->hmac(t_buf, hmac_len, 
-            (mode == SSL_SERVER_WRITE || mode == SSL_CLIENT_READ) ? 
-                ssl->server_mac : ssl->client_mac, 
-            ssl->cipher_info->digest_size, hmac_buf);
-
-#if 0
-    print_blob("record", ssl->hmac_tx, SSL_RECORD_SIZE);
-    print_blob("buf", buf, buf_len);
-    if (mode == SSL_SERVER_WRITE || mode == SSL_CLIENT_WRITE)
-    {
-        print_blob("write seq", ssl->write_sequence, 8);
-    }
-    else
-    {
-        print_blob("read seq", ssl->read_sequence, 8);
-    }
-
-    if (mode == SSL_SERVER_WRITE || mode == SSL_CLIENT_READ)
-    {
-        print_blob("server mac", 
-                ssl->server_mac, ssl->cipher_info->digest_size);
-    }
-    else
-    {
-        print_blob("client mac", 
-                ssl->client_mac, ssl->cipher_info->digest_size);
-    }
-    print_blob("hmac", hmac_buf, SHA1_SIZE);
-#endif
-}
-
-/**
- * Verify that the digest of a packet is correct.
- */
-static int verify_digest(SSL *ssl, int mode, const uint8_t *buf, int read_len)
-{   
-    uint8_t hmac_buf[SHA1_SIZE];
-    int hmac_offset;
-   
-    if (ssl->cipher_info->padding_size)
-    {
-        hmac_offset = read_len-buf[read_len-1]-ssl->cipher_info->digest_size-1;
-    }
-    else
-    {
-        hmac_offset = read_len - ssl->cipher_info->digest_size;
-    }
-
-    /* sanity check the offset */
-    if (hmac_offset < 0)
-    {
-        return SSL_ERROR_INVALID_HMAC;
-    }
-
-    ssl->hmac_header[3] = hmac_offset >> 8;      /* insert size */
-    ssl->hmac_header[4] = hmac_offset & 0xff;
-    add_hmac_digest(ssl, mode, ssl->hmac_header, buf, hmac_offset, hmac_buf);
-
-    if (memcmp(hmac_buf, &buf[hmac_offset], ssl->cipher_info->digest_size))
-    {
-        return SSL_ERROR_INVALID_HMAC;
-    }
-
-    return hmac_offset;
-}
-
-/**
- * Add a packet to the end of our sent and received packets, so that we may use
- * it to calculate the hash at the end.
- */
-void add_packet(SSL *ssl, const uint8_t *pkt, int len)
-{
-    MD5_Update(&ssl->dc->md5_ctx, pkt, len);
-    SHA1_Update(&ssl->dc->sha1_ctx, pkt, len);
-}
-
-/**
- * Work out the MD5 PRF.
- */
-static void p_hash_md5(const uint8_t *sec, int sec_len, 
-        uint8_t *seed, int seed_len, uint8_t *out, int olen)
-{
-    uint8_t a1[128];
-
-    /* A(1) */
-    hmac_md5(seed, seed_len, sec, sec_len, a1);
-    memcpy(&a1[MD5_SIZE], seed, seed_len);
-    hmac_md5(a1, MD5_SIZE+seed_len, sec, sec_len, out);
-
-    while (olen > MD5_SIZE)
-    {
-        uint8_t a2[MD5_SIZE];
-        out += MD5_SIZE;
-        olen -= MD5_SIZE;
-
-        /* A(N) */
-        hmac_md5(a1, MD5_SIZE, sec, sec_len, a2);
-        memcpy(a1, a2, MD5_SIZE);
-
-        /* work out the actual hash */
-        hmac_md5(a1, MD5_SIZE+seed_len, sec, sec_len, out);
-    }
-}
-
-/**
- * Work out the SHA1 PRF.
- */
-static void p_hash_sha1(const uint8_t *sec, int sec_len, 
-        uint8_t *seed, int seed_len, uint8_t *out, int olen)
-{
-    uint8_t a1[128];
-
-    /* A(1) */
-    hmac_sha1(seed, seed_len, sec, sec_len, a1);
-    memcpy(&a1[SHA1_SIZE], seed, seed_len);
-    hmac_sha1(a1, SHA1_SIZE+seed_len, sec, sec_len, out);
-
-    while (olen > SHA1_SIZE)
-    {
-        uint8_t a2[SHA1_SIZE];
-        out += SHA1_SIZE;
-        olen -= SHA1_SIZE;
-
-        /* A(N) */
-        hmac_sha1(a1, SHA1_SIZE, sec, sec_len, a2);
-        memcpy(a1, a2, SHA1_SIZE);
-
-        /* work out the actual hash */
-        hmac_sha1(a1, SHA1_SIZE+seed_len, sec, sec_len, out);
-    }
-}
-
-/**
- * Work out the PRF.
- */
-static void prf(const uint8_t *sec, int sec_len, uint8_t *seed, int seed_len,
-        uint8_t *out, int olen)
-{
-    int len, i;
-    const uint8_t *S1, *S2;
-    uint8_t xbuf[256]; /* needs to be > the amount of key data */
-    uint8_t ybuf[256]; /* needs to be > the amount of key data */
-
-    len = sec_len/2;
-    S1 = sec;
-    S2 = &sec[len];
-    len += (sec_len & 1); /* add for odd, make longer */
-
-    p_hash_md5(S1, len, seed, seed_len, xbuf, olen);
-    p_hash_sha1(S2, len, seed, seed_len, ybuf, olen);
-
-    for (i = 0; i < olen; i++)
-        out[i] = xbuf[i] ^ ybuf[i];
-}
-
-/**
- * Generate a master secret based on the client/server random data and the
- * premaster secret.
- */
-void generate_master_secret(SSL *ssl, const uint8_t *premaster_secret)
-{
-    uint8_t buf[128];   /* needs to be > 13+32+32 in size */
-    strcpy((char *)buf, "master secret");
-    memcpy(&buf[13], ssl->dc->client_random, SSL_RANDOM_SIZE);
-    memcpy(&buf[45], ssl->dc->server_random, SSL_RANDOM_SIZE);
-    prf(premaster_secret, SSL_SECRET_SIZE, buf, 77, ssl->dc->master_secret,
-            SSL_SECRET_SIZE);
-}
-
-/**
- * Generate a 'random' blob of data used for the generation of keys.
- */
-static void generate_key_block(uint8_t *client_random, uint8_t *server_random,
-        uint8_t *master_secret, uint8_t *key_block, int key_block_size)
-{
-    uint8_t buf[128];
-    strcpy((char *)buf, "key expansion");
-    memcpy(&buf[13], server_random, SSL_RANDOM_SIZE);
-    memcpy(&buf[45], client_random, SSL_RANDOM_SIZE);
-    prf(master_secret, SSL_SECRET_SIZE, buf, 77, key_block, key_block_size);
-}
-
-/** 
- * Calculate the digest used in the finished message. This function also
- * doubles up as a certificate verify function.
- */
-void finished_digest(SSL *ssl, const char *label, uint8_t *digest)
-{
-    uint8_t mac_buf[128]; 
-    uint8_t *q = mac_buf;
-    MD5_CTX md5_ctx = ssl->dc->md5_ctx;
-    SHA1_CTX sha1_ctx = ssl->dc->sha1_ctx;
-
-    if (label)
-    {
-        strcpy((char *)q, label);
-        q += strlen(label);
-    }
-
-    MD5_Final(q, &md5_ctx);
-    q += MD5_SIZE;
-    
-    SHA1_Final(q, &sha1_ctx);
-    q += SHA1_SIZE;
-
-    if (label)
-    {
-        prf(ssl->dc->master_secret, SSL_SECRET_SIZE, mac_buf, (int)(q-mac_buf),
-            digest, SSL_FINISHED_HASH_SIZE);
-    }
-    else    /* for use in a certificate verify */
-    {
-        memcpy(digest, mac_buf, MD5_SIZE + SHA1_SIZE);
-    }
-
-#if 0
-    printf("label: %s\n", label);
-    print_blob("master secret", ssl->dc->master_secret, 48);
-    print_blob("mac_buf", mac_buf, q-mac_buf);
-    print_blob("finished digest", digest, SSL_FINISHED_HASH_SIZE);
-#endif
-}   
-    
-/**
- * Retrieve (and initialise) the context of a cipher.
- */
-static void *crypt_new(SSL *ssl, uint8_t *key, uint8_t *iv, int is_decrypt)
-{
-    switch (ssl->cipher)
-    {
-#ifndef CONFIG_SSL_SKELETON_MODE
-        case SSL_AES128_SHA:
-            {
-                AES_CTX *aes_ctx = (AES_CTX *)malloc(sizeof(AES_CTX));
-                AES_set_key(aes_ctx, key, iv, AES_MODE_128);
-
-                if (is_decrypt)
-                {
-                    AES_convert_key(aes_ctx);
-                }
-
-                return (void *)aes_ctx;
-            }
-
-        case SSL_AES256_SHA:
-            {
-                AES_CTX *aes_ctx = (AES_CTX *)malloc(sizeof(AES_CTX));
-                AES_set_key(aes_ctx, key, iv, AES_MODE_256);
-
-                if (is_decrypt)
-                {
-                    AES_convert_key(aes_ctx);
-                }
-
-                return (void *)aes_ctx;
-            }
-            break;
-
-        case SSL_RC4_128_MD5:
-#endif
-        case SSL_RC4_128_SHA:
-            {
-                RC4_CTX *rc4_ctx = (RC4_CTX *)malloc(sizeof(RC4_CTX));
-                RC4_setup(rc4_ctx, key, 16);
-                return (void *)rc4_ctx;
-            }
-            break;
-    }
-
-    return NULL;    /* its all gone wrong */
-}
-
-/**
- * Send a packet over the socket.
- */
-static int send_raw_packet(SSL *ssl, uint8_t protocol)
-{
-    uint8_t *rec_buf = ssl->bm_all_data;
-    int pkt_size = SSL_RECORD_SIZE+ssl->bm_index;
-    int sent = 0;
-    int ret = SSL_OK;
-
-    rec_buf[0] = protocol;
-    rec_buf[1] = 0x03;      /* version = 3.1 (TLS) */
-    rec_buf[2] = 0x01;
-    rec_buf[3] = ssl->bm_index >> 8;
-    rec_buf[4] = ssl->bm_index & 0xff;
-
-    DISPLAY_BYTES(ssl, "sending %d bytes", ssl->bm_all_data, 
-                             pkt_size, pkt_size);
-
-    while (sent < pkt_size)
-    {
-        if ((ret = SOCKET_WRITE(ssl->client_fd, 
-                        &ssl->bm_all_data[sent], pkt_size)) < 0)
-        {
-            ret = SSL_ERROR_CONN_LOST;
-            break;
-        }
-
-        sent += ret;
-
-        /* keep going until the write buffer has some space */
-        if (sent != pkt_size)
-        {
-            fd_set wfds;
-            FD_ZERO(&wfds);
-            FD_SET(ssl->client_fd, &wfds);
-
-            if (select(ssl->client_fd + 1, NULL, &wfds, NULL, NULL) < 0)
-            {
-                ret = SSL_ERROR_CONN_LOST;
-                break;
-            }
-        }
-    }
-
-    SET_SSL_FLAG(SSL_NEED_RECORD);  /* reset for next time */
-    ssl->bm_index = 0;
-
-    if (protocol != PT_APP_PROTOCOL_DATA)  
-    {
-        /* always return SSL_OK during handshake */   
-        ret = SSL_OK;
-    }
-
-    return ret;
-}
-
-/**
- * Send an encrypted packet with padding bytes if necessary.
- */
-int send_packet(SSL *ssl, uint8_t protocol, const uint8_t *in, int length)
-{
-    int msg_length = length;
-    int ret, pad_bytes = 0;
-    ssl->bm_index = msg_length;
-
-    /* if our state is bad, don't bother */
-    if (ssl->hs_status == SSL_ERROR_DEAD)
-        return SSL_ERROR_CONN_LOST;
-
-    if (in) /* has the buffer already been initialised? */
-    {
-        memcpy(ssl->bm_data, in, length);
-    }
-
-    if (IS_SET_SSL_FLAG(SSL_TX_ENCRYPTED))
-    {
-        int mode = IS_SET_SSL_FLAG(SSL_IS_CLIENT) ? 
-                            SSL_CLIENT_WRITE : SSL_SERVER_WRITE;
-        uint8_t hmac_header[SSL_RECORD_SIZE];
-
-        hmac_header[0] = protocol;
-        hmac_header[1] = 0x03;
-        hmac_header[2] = 0x01;
-        hmac_header[3] = length >> 8; 
-        hmac_header[4] = length & 0xff;
-
-        if (protocol == PT_HANDSHAKE_PROTOCOL)
-        {
-            DISPLAY_STATE(ssl, 1, ssl->bm_data[0], 0);
-
-            if (ssl->bm_data[0] != HS_HELLO_REQUEST)
-            {
-                add_packet(ssl, ssl->bm_data, ssl->bm_index);
-            }
-        }
-
-        /* add the packet digest */
-        msg_length += ssl->cipher_info->digest_size;
-        ssl->bm_index = msg_length;
-        add_hmac_digest(ssl, mode, hmac_header, ssl->bm_data, length, 
-                                                &ssl->bm_data[length]);
-
-        /* add padding? */
-        if (ssl->cipher_info->padding_size)
-        {
-            int last_blk_size = msg_length%ssl->cipher_info->padding_size;
-            pad_bytes = ssl->cipher_info->padding_size - last_blk_size;
-
-            /* ensure we always have at least 1 padding byte */
-            if (pad_bytes == 0)
-                pad_bytes += ssl->cipher_info->padding_size;
-
-            memset(&ssl->bm_data[msg_length], pad_bytes-1, pad_bytes);
-            msg_length += pad_bytes;
-            ssl->bm_index = msg_length;
-        }
-
-        DISPLAY_BYTES(ssl, "unencrypted write", ssl->bm_data, msg_length);
-        increment_write_sequence(ssl);
-
-        /* now encrypt the packet */
-        ssl->cipher_info->encrypt(ssl->encrypt_ctx, ssl->bm_data, 
-                                            ssl->bm_data, msg_length);
-    }
-    else if (protocol == PT_HANDSHAKE_PROTOCOL)
-    {
-        DISPLAY_STATE(ssl, 1, ssl->bm_data[0], 0);
-
-        if (ssl->bm_data[0] != HS_HELLO_REQUEST)
-        {
-            add_packet(ssl, ssl->bm_data, ssl->bm_index);
-        }
-    }
-
-    if ((ret = send_raw_packet(ssl, protocol)) <= 0)
-        return ret;
-
-    return length;  /* just return what we wanted to send */
-}
-
-/**
- * Work out the cipher keys we are going to use for this session based on the
- * master secret.
- */
-static void set_key_block(SSL *ssl, int is_write)
-{
-    const cipher_info_t *ciph_info = get_cipher_info(ssl->cipher);
-    uint8_t *q;
-    uint8_t client_key[32], server_key[32]; /* big enough for AES256 */
-    uint8_t client_iv[16], server_iv[16];   /* big enough for AES128/256 */
-    int is_client = IS_SET_SSL_FLAG(SSL_IS_CLIENT);
-
-    /* only do once in a handshake */
-    if (ssl->dc->key_block == NULL)
-    {
-        ssl->dc->key_block = (uint8_t *)malloc(ciph_info->key_block_size);
-
-#if 0
-        print_blob("client", ssl->dc->client_random, 32);
-        print_blob("server", ssl->dc->server_random, 32);
-        print_blob("master", ssl->dc->master_secret, SSL_SECRET_SIZE);
-#endif
-        generate_key_block(ssl->dc->client_random, ssl->dc->server_random,
-            ssl->dc->master_secret, ssl->dc->key_block, 
-            ciph_info->key_block_size);
-#if 0
-        print_blob("keyblock", ssl->key_block, ciph_info->key_block_size);
-#endif
-    }
-
-    q = ssl->dc->key_block;
-
-    if ((is_client && is_write) || (!is_client && !is_write))
-    {
-        memcpy(ssl->client_mac, q, ciph_info->digest_size);
-    }
-
-    q += ciph_info->digest_size;
-
-    if ((!is_client && is_write) || (is_client && !is_write))
-    {
-        memcpy(ssl->server_mac, q, ciph_info->digest_size);
-    }
-
-    q += ciph_info->digest_size;
-    memcpy(client_key, q, ciph_info->key_size);
-    q += ciph_info->key_size;
-    memcpy(server_key, q, ciph_info->key_size);
-    q += ciph_info->key_size;
-
-#ifndef CONFIG_SSL_SKELETON_MODE 
-    if (ciph_info->iv_size)    /* RC4 has no IV, AES does */
-    {
-        memcpy(client_iv, q, ciph_info->iv_size);
-        q += ciph_info->iv_size;
-        memcpy(server_iv, q, ciph_info->iv_size);
-        q += ciph_info->iv_size;
-    }
-#endif
-
-    free(is_write ? ssl->encrypt_ctx : ssl->decrypt_ctx);
-
-    /* now initialise the ciphers */
-    if (is_client)
-    {
-        finished_digest(ssl, server_finished, ssl->dc->final_finish_mac);
-
-        if (is_write)
-            ssl->encrypt_ctx = crypt_new(ssl, client_key, client_iv, 0);
-        else
-            ssl->decrypt_ctx = crypt_new(ssl, server_key, server_iv, 1);
-    }
-    else
-    {
-        finished_digest(ssl, client_finished, ssl->dc->final_finish_mac);
-
-        if (is_write)
-            ssl->encrypt_ctx = crypt_new(ssl, server_key, server_iv, 0);
-        else
-            ssl->decrypt_ctx = crypt_new(ssl, client_key, client_iv, 1);
-    }
-
-    ssl->cipher_info = ciph_info;
-}
-
-/**
- * Read the SSL connection.
- */
-int basic_read(SSL *ssl, uint8_t **in_data)
-{
-    int ret = SSL_OK;
-    int read_len, is_client = IS_SET_SSL_FLAG(SSL_IS_CLIENT);
-    uint8_t *buf = ssl->bm_data;
-
-    read_len = SOCKET_READ(ssl->client_fd, &buf[ssl->bm_read_index], 
-                            ssl->need_bytes-ssl->got_bytes);
-
-    /* connection has gone, so die */
-    if (read_len <= 0)
-    {
-        ret = SSL_ERROR_CONN_LOST;
-        ssl->hs_status = SSL_ERROR_DEAD;  /* make sure it stays dead */
-        goto error;
-    }
-
-    DISPLAY_BYTES(ssl, "received %d bytes", 
-            &ssl->bm_data[ssl->bm_read_index], read_len, read_len);
-
-    ssl->got_bytes += read_len;
-    ssl->bm_read_index += read_len;
-
-    /* haven't quite got what we want, so try again later */
-    if (ssl->got_bytes < ssl->need_bytes)
-        return SSL_OK;
-
-    read_len = ssl->got_bytes;
-    ssl->got_bytes = 0;
-
-    if (IS_SET_SSL_FLAG(SSL_NEED_RECORD))
-    {
-        /* check for sslv2 "client hello" */
-        if (buf[0] & 0x80 && buf[2] == 1 && buf[3] == 0x03)
-        {
-#ifdef CONFIG_SSL_ENABLE_V23_HANDSHAKE
-            DISPLAY_BYTES(ssl, "ssl2 record", buf, 5);
-            add_packet(ssl, &buf[2], 3);
-            ret = process_sslv23_client_hello(ssl); 
-#else
-            printf("Error: no SSLv23 handshaking allowed\n"); TTY_FLUSH();
-            ret = SSL_ERROR_NOT_SUPPORTED;
-#endif
-            goto error; /* not an error - just get out of here */
-        }
-
-        ssl->need_bytes = (buf[3] << 8) + buf[4];
-
-        /* do we violate the spec with the message size?  */
-        if (ssl->need_bytes > RT_MAX_PLAIN_LENGTH+RT_EXTRA-BM_RECORD_OFFSET)
-        {
-            ret = SSL_ERROR_INVALID_PROT_MSG;              
-            goto error;
-        }
-
-        CLR_SSL_FLAG(SSL_NEED_RECORD);
-        memcpy(ssl->hmac_header, buf, 3);       /* store for hmac */
-        ssl->record_type = buf[0];
-        goto error;                         /* no error, we're done */
-    }
-
-    /* for next time - just do it now in case of an error */
-    SET_SSL_FLAG(SSL_NEED_RECORD);
-    ssl->need_bytes = SSL_RECORD_SIZE;
-
-    /* decrypt if we need to */
-    if (IS_SET_SSL_FLAG(SSL_RX_ENCRYPTED))
-    {
-        ssl->cipher_info->decrypt(ssl->decrypt_ctx, buf, buf, read_len);
-        read_len = verify_digest(ssl, 
-                is_client ? SSL_CLIENT_READ : SSL_SERVER_READ, buf, read_len);
-
-        /* does the hmac work? */
-        if (read_len < 0)
-        {
-            ret = read_len;
-            goto error;
-        }
-
-        DISPLAY_BYTES(ssl, "decrypted", buf, read_len);
-        increment_read_sequence(ssl);
-    }
-
-    /* The main part of the SSL packet */
-    switch (ssl->record_type)
-    {
-        case PT_HANDSHAKE_PROTOCOL:
-            ssl->dc->bm_proc_index = 0;
-            ret = do_handshake(ssl, buf, read_len);
-            break;
-
-        case PT_CHANGE_CIPHER_SPEC:
-            if (ssl->next_state != HS_FINISHED)
-            {
-                ret = SSL_ERROR_INVALID_HANDSHAKE;
-                goto error;
-            }
-
-            /* all encrypted from now on */
-            SET_SSL_FLAG(SSL_RX_ENCRYPTED);
-            set_key_block(ssl, 0);
-            memset(ssl->read_sequence, 0, 8);
-            break;
-
-        case PT_APP_PROTOCOL_DATA:
-            if (in_data)
-            {
-                *in_data = ssl->bm_data;   /* point to the work buffer */
-                (*in_data)[read_len] = 0;  /* null terminate just in case */
-            }
-
-            ret = read_len;
-            break;
-
-        case PT_ALERT_PROTOCOL:
-            /* return the alert # with alert bit set */
-            ret = -buf[1]; 
-            DISPLAY_ALERT(ssl, buf[1]);
-            break;
-
-        default:
-            ret = SSL_ERROR_INVALID_PROT_MSG;
-            break;
-    }
-
-error:
-    ssl->bm_read_index = 0;          /* reset to go again */
-
-    if (ret < SSL_OK && in_data)/* if all wrong, then clear this buffer ptr */
-        *in_data = NULL;
-
-    return ret;
-}
-
-/**
- * Do some basic checking of data and then perform the appropriate handshaking.
- */
-static int do_handshake(SSL *ssl, uint8_t *buf, int read_len)
-{
-    int hs_len = (buf[2]<<8) + buf[3];
-    uint8_t handshake_type = buf[0];
-    int ret = SSL_OK;
-    int is_client = IS_SET_SSL_FLAG(SSL_IS_CLIENT);
-
-    /* some integrity checking on the handshake */
-    PARANOIA_CHECK(read_len-SSL_HS_HDR_SIZE, hs_len);
-
-    if (handshake_type != ssl->next_state)
-    {
-        /* handle a special case on the client */
-        if (!is_client || handshake_type != HS_CERT_REQ ||
-                        ssl->next_state != HS_SERVER_HELLO_DONE)
-        {
-            ret = SSL_ERROR_INVALID_HANDSHAKE;
-            goto error;
-        }
-    }
-
-    hs_len += SSL_HS_HDR_SIZE;  /* adjust for when adding packets */
-    ssl->bm_index = hs_len;     /* store the size and check later */
-    DISPLAY_STATE(ssl, 0, handshake_type, 0);
-
-    if (handshake_type != HS_CERT_VERIFY && handshake_type != HS_HELLO_REQUEST)
-        add_packet(ssl, buf, hs_len); 
-
-#if defined(CONFIG_SSL_ENABLE_CLIENT)
-    ret = is_client ? 
-        do_clnt_handshake(ssl, handshake_type, buf, hs_len) :
-        do_svr_handshake(ssl, handshake_type, buf, hs_len);
-#else
-    ret = do_svr_handshake(ssl, handshake_type, buf, hs_len);
-#endif
-
-    /* just use recursion to get the rest */
-    if (hs_len < read_len && ret == SSL_OK)
-        ret = do_handshake(ssl, &buf[hs_len], read_len-hs_len);
-
-error:
-    return ret;
-}
-
-/**
- * Sends the change cipher spec message. We have just read a finished message
- * from the client.
- */
-int send_change_cipher_spec(SSL *ssl)
-{
-    int ret = send_packet(ssl, PT_CHANGE_CIPHER_SPEC, 
-            g_chg_cipher_spec_pkt, sizeof(g_chg_cipher_spec_pkt));
-    SET_SSL_FLAG(SSL_TX_ENCRYPTED);
-    set_key_block(ssl, 1);
-    memset(ssl->write_sequence, 0, 8);
-    return ret;
-}
-
-/**
- * Send a "finished" message
- */
-int send_finished(SSL *ssl)
-{
-    uint8_t *buf = ssl->bm_data;
-
-    buf[0] = HS_FINISHED;
-    buf[1] = 0;
-    buf[2] = 0;
-    buf[3] = SSL_FINISHED_HASH_SIZE;
-
-    /* now add the finished digest mac (12 bytes) */
-    finished_digest(ssl, 
-        IS_SET_SSL_FLAG(SSL_IS_CLIENT) ?
-                    client_finished : server_finished, &buf[4]);
-
-#ifndef CONFIG_SSL_SKELETON_MODE
-    /* store in the session cache */
-    if (!IS_SET_SSL_FLAG(SSL_SESSION_RESUME) && ssl->ssl_ctx->num_sessions)
-    {
-        memcpy(ssl->session->master_secret,
-                ssl->dc->master_secret, SSL_SECRET_SIZE);
-    }
-#endif
-
-    return send_packet(ssl, PT_HANDSHAKE_PROTOCOL,
-                                NULL, SSL_FINISHED_HASH_SIZE+4);
-}
-
-/**
- * Send an alert message.
- * Return 1 if the alert was an "error".
- */
-int send_alert(SSL *ssl, int error_code)
-{
-    int alert_num = 0;
-    int is_warning = 0;
-    uint8_t buf[2];
-
-    /* Don't bother we're already dead */
-    if (ssl->hs_status == SSL_ERROR_DEAD)
-    {
-        return SSL_ERROR_CONN_LOST;
-    }
-
-#ifdef CONFIG_SSL_FULL_MODE
-    if (IS_SET_SSL_FLAG(SSL_DISPLAY_STATES))
-        ssl_display_error(error_code);
-#endif
-
-    switch (error_code)
-    {
-        case SSL_ALERT_CLOSE_NOTIFY:
-            is_warning = 1;
-            alert_num = SSL_ALERT_CLOSE_NOTIFY;
-            break;
-
-        case SSL_ERROR_CONN_LOST:       /* don't send alert just yet */
-            is_warning = 1;
-            break;
-
-        case SSL_ERROR_INVALID_HANDSHAKE:
-        case SSL_ERROR_INVALID_PROT_MSG:
-            alert_num = SSL_ALERT_HANDSHAKE_FAILURE;
-            break;
-
-        case SSL_ERROR_INVALID_HMAC:
-        case SSL_ERROR_FINISHED_INVALID:
-            alert_num = SSL_ALERT_BAD_RECORD_MAC;
-            break;
-
-        case SSL_ERROR_INVALID_VERSION:
-            alert_num = SSL_ALERT_INVALID_VERSION;
-            break;
-
-        case SSL_ERROR_INVALID_SESSION:
-        case SSL_ERROR_NO_CIPHER:
-        case SSL_ERROR_INVALID_KEY:
-            alert_num = SSL_ALERT_ILLEGAL_PARAMETER;
-            break;
-
-        case SSL_ERROR_BAD_CERTIFICATE:
-            alert_num = SSL_ALERT_BAD_CERTIFICATE;
-            break;
-
-        default:
-            /* a catch-all for any badly verified certificates */
-            alert_num = (error_code <= SSL_X509_OFFSET) ?  
-                SSL_ALERT_BAD_CERTIFICATE : SSL_ALERT_UNEXPECTED_MESSAGE;
-            break;
-    }
-
-    buf[0] = is_warning ? 1 : 2;
-    buf[1] = alert_num;
-    send_packet(ssl, PT_ALERT_PROTOCOL, buf, sizeof(buf));
-    DISPLAY_ALERT(ssl, alert_num);
-    return is_warning ? 0 : 1;
-}
-
-/**
- * Process a client finished message.
- */
-int process_finished(SSL *ssl, int hs_len)
-{
-    uint8_t *buf = ssl->bm_data;
-    int ret = SSL_OK;
-    int is_client = IS_SET_SSL_FLAG(SSL_IS_CLIENT);
-    int resume = IS_SET_SSL_FLAG(SSL_SESSION_RESUME);
-
-    PARANOIA_CHECK(ssl->bm_index, SSL_FINISHED_HASH_SIZE+4);
-
-    /* check that we all work before we continue */
-    if (memcmp(ssl->dc->final_finish_mac, &buf[4], SSL_FINISHED_HASH_SIZE))
-        return SSL_ERROR_FINISHED_INVALID;
-
-    if ((!is_client && !resume) || (is_client && resume))
-    {
-        if ((ret = send_change_cipher_spec(ssl)) == SSL_OK)
-            ret = send_finished(ssl);
-    }
-
-    /* if we ever renegotiate */
-    ssl->next_state = is_client ? HS_HELLO_REQUEST : HS_CLIENT_HELLO;  
-    ssl->hs_status = ret;  /* set the final handshake status */
-
-error:
-    return ret;
-}
-
-/**
- * Send a certificate.
- */
-int send_certificate(SSL *ssl)
-{
-    int i = 0;
-    uint8_t *buf = ssl->bm_data;
-    int offset = 7;
-    int chain_length;
-
-    buf[0] = HS_CERTIFICATE;
-    buf[1] = 0;
-    buf[4] = 0;
-
-    while (i < ssl->ssl_ctx->chain_length)
-    {
-        SSL_CERT *cert = &ssl->ssl_ctx->certs[i];
-        buf[offset++] = 0;        
-        buf[offset++] = cert->size >> 8;        /* cert 1 length */
-        buf[offset++] = cert->size & 0xff;
-        memcpy(&buf[offset], cert->buf, cert->size);
-        offset += cert->size;
-        i++;
-    }
-
-    chain_length = offset - 7;
-    buf[5] = chain_length >> 8;        /* cert chain length */
-    buf[6] = chain_length & 0xff;
-    chain_length += 3;
-    buf[2] = chain_length >> 8;        /* handshake length */
-    buf[3] = chain_length & 0xff;
-    ssl->bm_index = offset;
-    return send_packet(ssl, PT_HANDSHAKE_PROTOCOL, NULL, offset);
-}
-
-/**
- * Create a blob of memory that we'll get rid of once the handshake is
- * complete.
- */
-void disposable_new(SSL *ssl)
-{
-    if (ssl->dc == NULL)
-    {
-        ssl->dc = (DISPOSABLE_CTX *)calloc(1, sizeof(DISPOSABLE_CTX));
-        MD5_Init(&ssl->dc->md5_ctx);
-        SHA1_Init(&ssl->dc->sha1_ctx);
-    }
-}
-
-/**
- * Remove the temporary blob of memory.
- */
-void disposable_free(SSL *ssl)
-{
-    if (ssl->dc)
-    {
-           free(ssl->dc->key_block);
-        memset(ssl->dc, 0, sizeof(DISPOSABLE_CTX));
-        free(ssl->dc);
-        ssl->dc = NULL;
-    }
-
-}
-
-#ifndef CONFIG_SSL_SKELETON_MODE     /* no session resumption in this mode */
-/**
- * Find if an existing session has the same session id. If so, use the
- * master secret from this session for session resumption.
- */
-SSL_SESSION *ssl_session_update(int max_sessions, SSL_SESSION *ssl_sessions[], 
-        SSL *ssl, const uint8_t *session_id)
-{
-    time_t tm = time(NULL);
-    time_t oldest_sess_time = tm;
-    SSL_SESSION *oldest_sess = NULL;
-    int i;
-
-    /* no sessions? Then bail */
-    if (max_sessions == 0)
-        return NULL;
-
-    SSL_CTX_LOCK(ssl->ssl_ctx->mutex);
-    if (session_id)
-    {
-        for (i = 0; i < max_sessions; i++)
-        {
-            if (ssl_sessions[i])
-            {
-                /* kill off any expired sessions */
-                if (tm > ssl_sessions[i]->conn_time + SSL_EXPIRY_TIME)
-                {
-                    session_free(ssl_sessions, i);
-                    continue;
-                }
-
-                /* if the session id matches, it must still be less than 
-                   the expiry time */
-                if (memcmp(ssl_sessions[i]->session_id, session_id,
-                                                SSL_SESSION_ID_SIZE) == 0)
-                {
-                    ssl->session_index = i;
-                    memcpy(ssl->dc->master_secret, 
-                            ssl_sessions[i]->master_secret, SSL_SECRET_SIZE);
-                    SET_SSL_FLAG(SSL_SESSION_RESUME);
-                    SSL_CTX_UNLOCK(ssl->ssl_ctx->mutex);
-                    return ssl_sessions[i];  /* a session was found */
-                }
-            }
-        }
-    }
-
-    /* If we've got here, no matching session was found - so create one */
-    for (i = 0; i < max_sessions; i++)
-    {
-        if (ssl_sessions[i] == NULL)
-        {
-            /* perfect, this will do */
-            ssl_sessions[i] = (SSL_SESSION *)calloc(1, sizeof(SSL_SESSION));
-            ssl_sessions[i]->conn_time = tm;
-            ssl->session_index = i;
-            SSL_CTX_UNLOCK(ssl->ssl_ctx->mutex);
-            return ssl_sessions[i]; /* return the session object */
-        }
-        else if (ssl_sessions[i]->conn_time <= oldest_sess_time)
-        {
-            /* find the oldest session */
-            oldest_sess_time = ssl_sessions[i]->conn_time;
-            oldest_sess = ssl_sessions[i];
-            ssl->session_index = i;
-        }
-    }
-
-    /* ok, we've used up all of our sessions. So blow the oldest session away */
-    oldest_sess->conn_time = tm;
-    memset(oldest_sess->session_id, 0, sizeof(SSL_SESSION_ID_SIZE));
-    memset(oldest_sess->master_secret, 0, sizeof(SSL_SECRET_SIZE));
-    SSL_CTX_UNLOCK(ssl->ssl_ctx->mutex);
-    return oldest_sess;
-}
-
-/**
- * Free an existing session.
- */
-static void session_free(SSL_SESSION *ssl_sessions[], int sess_index)
-{
-    if (ssl_sessions[sess_index])
-    {
-        free(ssl_sessions[sess_index]);
-        ssl_sessions[sess_index] = NULL;
-    }
-}
-
-/**
- * This ssl object doesn't want this session anymore.
- */
-void kill_ssl_session(SSL_SESSION **ssl_sessions, SSL *ssl)
-{
-    SSL_CTX_LOCK(ssl->ssl_ctx->mutex);
-
-    if (ssl->ssl_ctx->num_sessions)
-    {
-        session_free(ssl_sessions, ssl->session_index);
-        ssl->session = NULL;
-    }
-
-    SSL_CTX_UNLOCK(ssl->ssl_ctx->mutex);
-}
-#endif /* CONFIG_SSL_SKELETON_MODE */
-
-/*
- * Get the session id for a handshake. This will be a 32 byte sequence.
- */
-EXP_FUNC const uint8_t * STDCALL ssl_get_session_id(const SSL *ssl)
-{
-    return ssl->session_id;
-}
-
-/*
- * Get the session id size for a handshake. 
- */
-EXP_FUNC uint8_t STDCALL ssl_get_session_id_size(const SSL *ssl)
-{
-    return ssl->sess_id_size;
-}
-
-/*
- * Return the cipher id (in the SSL form).
- */
-EXP_FUNC uint8_t STDCALL ssl_get_cipher_id(const SSL *ssl)
-{
-    return ssl->cipher;
-}
-
-/*
- * Return the status of the handshake.
- */
-EXP_FUNC int STDCALL ssl_handshake_status(const SSL *ssl)
-{
-    return ssl->hs_status;
-}
-
-/*
- * Retrieve various parameters about the SSL engine.
- */
-EXP_FUNC int STDCALL ssl_get_config(int offset)
-{
-    switch (offset)
-    {
-        /* return the appropriate build mode */
-        case SSL_BUILD_MODE:
-#if defined(CONFIG_SSL_FULL_MODE)
-            return SSL_BUILD_FULL_MODE;
-#elif defined(CONFIG_SSL_ENABLE_CLIENT)
-            return SSL_BUILD_ENABLE_CLIENT;
-#elif defined(CONFIG_ENABLE_VERIFICATION)
-            return SSL_BUILD_ENABLE_VERIFICATION;
-#elif defined(CONFIG_SSL_SERVER_ONLY )
-            return SSL_BUILD_SERVER_ONLY;
-#else 
-            return SSL_BUILD_SKELETON_MODE;
-#endif
-
-        case SSL_MAX_CERT_CFG_OFFSET:
-            return CONFIG_SSL_MAX_CERTS;
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-        case SSL_MAX_CA_CERT_CFG_OFFSET:
-            return CONFIG_X509_MAX_CA_CERTS;
-#endif
-#ifdef CONFIG_SSL_HAS_PEM
-        case SSL_HAS_PEM:
-            return 1;
-#endif
-        default:
-            return 0;
-    }
-}
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-/**
- * Authenticate a received certificate.
- */
-EXP_FUNC int STDCALL ssl_verify_cert(const SSL *ssl)
-{
-    int ret;
-    SSL_CTX_LOCK(ssl->ssl_ctx->mutex);
-    ret = x509_verify(ssl->ssl_ctx->ca_cert_ctx, ssl->x509_ctx);
-    SSL_CTX_UNLOCK(ssl->ssl_ctx->mutex);
-
-    if (ret)        /* modify into an SSL error type */
-    {
-        ret = SSL_X509_ERROR(ret);
-    }
-
-    return ret;
-}
-
-/**
- * Process a certificate message.
- */
-int process_certificate(SSL *ssl, X509_CTX **x509_ctx)
-{
-    int ret = SSL_OK;
-    uint8_t *buf = &ssl->bm_data[ssl->dc->bm_proc_index];
-    int pkt_size = ssl->bm_index;
-    int cert_size, offset = 5;
-    int total_cert_size = (buf[offset]<<8) + buf[offset+1];
-    int is_client = IS_SET_SSL_FLAG(SSL_IS_CLIENT);
-    X509_CTX **chain = x509_ctx;
-    offset += 2;
-
-    PARANOIA_CHECK(total_cert_size, offset);
-
-    while (offset < total_cert_size)
-    {
-        offset++;       /* skip empty char */
-        cert_size = (buf[offset]<<8) + buf[offset+1];
-        offset += 2;
-        
-        if (x509_new(&buf[offset], NULL, chain))
-        {
-            ret = SSL_ERROR_BAD_CERTIFICATE;
-            goto error;
-        }
-
-        /* DISPLAY_CERT(ssl, *chain); */
-        chain = &((*chain)->next);
-        offset += cert_size;
-    }
-
-    PARANOIA_CHECK(pkt_size, offset);
-
-    /* if we are client we can do the verify now or later */
-    if (is_client && !IS_SET_SSL_FLAG(SSL_SERVER_VERIFY_LATER))
-    {
-        ret = ssl_verify_cert(ssl);
-    }
-
-    ssl->next_state = is_client ? HS_SERVER_HELLO_DONE : HS_CLIENT_KEY_XCHG;
-    ssl->dc->bm_proc_index += offset;
-error:
-    return ret;
-}
-
-#endif /* CONFIG_SSL_CERT_VERIFICATION */
-
-/**
- * Debugging routine to display SSL handshaking stuff.
- */
-#ifdef CONFIG_SSL_FULL_MODE
-/**
- * Debugging routine to display SSL states.
- */
-void DISPLAY_STATE(SSL *ssl, int is_send, uint8_t state, int not_ok)
-{
-    const char *str;
-
-    if (!IS_SET_SSL_FLAG(SSL_DISPLAY_STATES))
-        return;
-
-    printf(not_ok ? "Error - invalid State:\t" : "State:\t");
-    printf(is_send ? "sending " : "receiving ");
-
-    switch (state)
-    {
-        case HS_HELLO_REQUEST:
-            str = "Hello Request (0)";
-            break;
-
-        case HS_CLIENT_HELLO:
-            str = "Client Hello (1)";
-            break;
-
-        case HS_SERVER_HELLO:
-            str = "Server Hello (2)";
-            break;
-
-        case HS_CERTIFICATE:
-            str = "Certificate (11)";
-            break;
-
-        case HS_SERVER_KEY_XCHG:
-            str = "Certificate Request (12)";
-            break;
-
-        case HS_CERT_REQ:
-            str = "Certificate Request (13)";
-            break;
-
-        case HS_SERVER_HELLO_DONE:
-            str = "Server Hello Done (14)";
-            break;
-
-        case HS_CERT_VERIFY:
-            str = "Certificate Verify (15)";
-            break;
-
-        case HS_CLIENT_KEY_XCHG:
-            str = "Client Key Exchange (16)";
-            break;
-
-        case HS_FINISHED:
-            str = "Finished (16)";
-            break;
-
-        default:
-            str = "Error (Unknown)";
-            
-            break;
-    }
-
-    printf("%s\n", str);
-    TTY_FLUSH();
-}
-
-/**
- * Debugging routine to display X509 certificates.
- */
-void DISPLAY_CERT(SSL *ssl, const X509_CTX *x509_ctx)
-{
-    if (!IS_SET_SSL_FLAG(SSL_DISPLAY_CERTS))
-        return;
-
-    x509_print(x509_ctx, ssl->ssl_ctx->ca_cert_ctx);
-    TTY_FLUSH();
-}
-
-/**
- * Debugging routine to display RSA objects
- */
-void DISPLAY_RSA(SSL *ssl, const RSA_CTX *rsa_ctx)
-{
-    if (!IS_SET_SSL_FLAG(SSL_DISPLAY_RSA))
-        return;
-
-    RSA_print(rsa_ctx);
-    TTY_FLUSH();
-}
-
-/**
- * Debugging routine to display SSL handshaking bytes.
- */
-void DISPLAY_BYTES(SSL *ssl, const char *format, 
-        const uint8_t *data, int size, ...)
-{
-    va_list(ap);
-
-    if (!IS_SET_SSL_FLAG(SSL_DISPLAY_BYTES))
-        return;
-
-    va_start(ap, size);
-    print_blob(format, data, size, va_arg(ap, char *));
-    va_end(ap);
-    TTY_FLUSH();
-}
-
-/**
- * Debugging routine to display SSL handshaking errors.
- */
-EXP_FUNC void STDCALL ssl_display_error(int error_code)
-{
-    if (error_code == SSL_OK)
-        return;
-
-    printf("Error: ");
-
-    /* X509 error? */
-    if (error_code < SSL_X509_OFFSET)
-    {
-        printf("%s\n", x509_display_error(error_code - SSL_X509_OFFSET));
-        return;
-    }
-
-    /* SSL alert error code */
-    if (error_code > SSL_ERROR_CONN_LOST)
-    {
-        printf("SSL error %d\n", -error_code);
-        return;
-    }
-
-    switch (error_code)
-    {
-        case SSL_ERROR_DEAD:
-            printf("connection dead");
-            break;
-
-        case SSL_ERROR_INVALID_HANDSHAKE:
-            printf("invalid handshake");
-            break;
-
-        case SSL_ERROR_INVALID_PROT_MSG:
-            printf("invalid protocol message");
-            break;
-
-        case SSL_ERROR_INVALID_HMAC:
-            printf("invalid mac");
-            break;
-
-        case SSL_ERROR_INVALID_VERSION:
-            printf("invalid version");
-            break;
-
-        case SSL_ERROR_INVALID_SESSION:
-            printf("invalid session");
-            break;
-
-        case SSL_ERROR_NO_CIPHER:
-            printf("no cipher");
-            break;
-
-        case SSL_ERROR_CONN_LOST:
-            printf("connection lost");
-            break;
-
-        case SSL_ERROR_BAD_CERTIFICATE:
-            printf("bad certificate");
-            break;
-
-        case SSL_ERROR_INVALID_KEY:
-            printf("invalid key");
-            break;
-
-        case SSL_ERROR_FINISHED_INVALID:
-            printf("finished invalid");
-            break;
-
-        case SSL_ERROR_NO_CERT_DEFINED:
-            printf("no certificate defined");
-            break;
-
-        case SSL_ERROR_NOT_SUPPORTED:
-            printf("Option not supported");
-            break;
-
-        default:
-            printf("undefined as yet - %d", error_code);
-            break;
-    }
-
-    printf("\n");
-    TTY_FLUSH();
-}
-
-/**
- * Debugging routine to display alerts.
- */
-void DISPLAY_ALERT(SSL *ssl, int alert)
-{
-    if (!IS_SET_SSL_FLAG(SSL_DISPLAY_STATES))
-        return;
-
-    printf("Alert: ");
-
-    switch (alert)
-    {
-        case SSL_ALERT_CLOSE_NOTIFY:
-            printf("close notify");
-            break;
-
-        case SSL_ALERT_INVALID_VERSION:
-            printf("invalid version");
-            break;
-
-        case SSL_ALERT_BAD_CERTIFICATE:
-            printf("bad certificate");
-            break;
-
-        case SSL_ALERT_UNEXPECTED_MESSAGE:
-            printf("unexpected message");
-            break;
-
-        case SSL_ALERT_BAD_RECORD_MAC:
-            printf("bad record mac");
-            break;
-
-        case SSL_ALERT_HANDSHAKE_FAILURE:
-            printf("handshake failure");
-            break;
-
-        case SSL_ALERT_ILLEGAL_PARAMETER:
-            printf("illegal parameter");
-            break;
-
-        case SSL_ALERT_DECODE_ERROR:
-            printf("decode error");
-            break;
-
-        case SSL_ALERT_DECRYPT_ERROR:
-            printf("decrypt error");
-            break;
-
-        default:
-            printf("alert - (unknown %d)", alert);
-            break;
-    }
-
-    printf("\n");
-    TTY_FLUSH();
-}
-
-#endif /* CONFIG_SSL_FULL_MODE */
-
-/**
- * Return the version of this library.
- */
-EXP_FUNC const char  * STDCALL ssl_version()
-{
-    static const char * axtls_version = AXTLS_VERSION;
-    return axtls_version;
-}
-
-/**
- * Enable the various language bindings to work regardless of the
- * configuration - they just return an error statement and a bad return code.
- */
-#if !defined(CONFIG_SSL_FULL_MODE)
-EXP_FUNC void STDCALL ssl_display_error(int error_code) {}
-#endif
-
-#ifdef CONFIG_BINDINGS
-#if !defined(CONFIG_SSL_ENABLE_CLIENT)
-EXP_FUNC SSL * STDCALL ssl_client_new(SSL_CTX *ssl_ctx, int client_fd, const
-        uint8_t *session_id, uint8_t sess_id_size)
-{
-    printf(unsupported_str);
-    return NULL;
-}
-#endif
-
-#if !defined(CONFIG_SSL_CERT_VERIFICATION)
-EXP_FUNC int STDCALL ssl_verify_cert(const SSL *ssl)
-{
-    printf(unsupported_str);
-    return -1;
-}
-
-EXP_FUNC const char * STDCALL ssl_get_cert_dn(const SSL *ssl, int component)
-{
-    printf(unsupported_str);
-    return NULL;
-}
-
-#endif  /* CONFIG_SSL_CERT_VERIFICATION */
-
-#endif /* CONFIG_BINDINGS */
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/tls1.h b/package/luci/libs/luci-lib-nixio/axTLS/ssl/tls1.h
deleted file mode 100755 (executable)
index b64b4fd..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * @file tls1.h
- *
- * @brief The definitions for the TLS library.
- */
-#ifndef HEADER_SSL_LIB_H
-#define HEADER_SSL_LIB_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "version.h"
-#include "crypto.h"
-#include "os_port.h"
-#include "crypto_misc.h"
-
-#define SSL_RANDOM_SIZE             32
-#define SSL_SECRET_SIZE             48
-#define SSL_FINISHED_HASH_SIZE      12
-#define SSL_RECORD_SIZE             5
-#define SSL_SERVER_READ             0
-#define SSL_SERVER_WRITE            1
-#define SSL_CLIENT_READ             2
-#define SSL_CLIENT_WRITE            3
-#define SSL_HS_HDR_SIZE             4
-
-/* the flags we use while establishing a connection */
-#define SSL_NEED_RECORD             0x0001
-#define SSL_TX_ENCRYPTED            0x0002 
-#define SSL_RX_ENCRYPTED            0x0004
-#define SSL_SESSION_RESUME          0x0008
-#define SSL_IS_CLIENT               0x0010
-#define SSL_HAS_CERT_REQ            0x0020
-
-/* some macros to muck around with flag bits */
-#define SET_SSL_FLAG(A)             (ssl->flag |= A)
-#define CLR_SSL_FLAG(A)             (ssl->flag &= ~A)
-#define IS_SET_SSL_FLAG(A)          (ssl->flag & A)
-
-#define MAX_KEY_BYTE_SIZE           512     /* for a 4096 bit key */
-#define RT_MAX_PLAIN_LENGTH         16384
-#define RT_EXTRA                    1024
-#define BM_RECORD_OFFSET            5
-
-#ifdef CONFIG_SSL_SKELETON_MODE
-#define NUM_PROTOCOLS               1
-#else
-#define NUM_PROTOCOLS               4
-#endif
-
-#define PARANOIA_CHECK(A, B)        if (A < B) { \
-    ret = SSL_ERROR_INVALID_HANDSHAKE; goto error; }
-
-/* protocol types */
-enum
-{
-    PT_CHANGE_CIPHER_SPEC = 20,
-    PT_ALERT_PROTOCOL,
-    PT_HANDSHAKE_PROTOCOL,
-    PT_APP_PROTOCOL_DATA
-};
-
-/* handshaking types */
-enum
-{
-    HS_HELLO_REQUEST,
-    HS_CLIENT_HELLO,
-    HS_SERVER_HELLO,
-    HS_CERTIFICATE = 11,
-    HS_SERVER_KEY_XCHG,
-    HS_CERT_REQ,
-    HS_SERVER_HELLO_DONE,
-    HS_CERT_VERIFY,
-    HS_CLIENT_KEY_XCHG,
-    HS_FINISHED = 20
-};
-
-typedef struct 
-{
-    uint8_t cipher;
-    uint8_t key_size;
-    uint8_t iv_size;
-    uint8_t key_block_size;
-    uint8_t padding_size;
-    uint8_t digest_size;
-    hmac_func hmac;
-    crypt_func encrypt;
-    crypt_func decrypt;
-} cipher_info_t;
-
-struct _SSLObjLoader 
-{
-    uint8_t *buf;
-    int len;
-};
-
-typedef struct _SSLObjLoader SSLObjLoader;
-
-typedef struct 
-{
-    time_t conn_time;
-    uint8_t session_id[SSL_SESSION_ID_SIZE];
-    uint8_t master_secret[SSL_SECRET_SIZE];
-} SSL_SESSION;
-
-typedef struct
-{
-    uint8_t *buf;
-    int size;
-} SSL_CERT;
-
-typedef struct
-{
-    MD5_CTX md5_ctx;
-    SHA1_CTX sha1_ctx;
-    uint8_t final_finish_mac[SSL_FINISHED_HASH_SIZE];
-    uint8_t *key_block;
-    uint8_t master_secret[SSL_SECRET_SIZE];
-    uint8_t client_random[SSL_RANDOM_SIZE]; /* client's random sequence */
-    uint8_t server_random[SSL_RANDOM_SIZE]; /* server's random sequence */
-    uint16_t bm_proc_index;
-} DISPOSABLE_CTX;
-
-struct _SSL
-{
-    uint32_t flag;
-    uint16_t need_bytes;
-    uint16_t got_bytes;
-    uint8_t record_type;
-    uint8_t cipher;
-    uint8_t sess_id_size;
-    int16_t next_state;
-    int16_t hs_status;
-    DISPOSABLE_CTX *dc;         /* temporary data which we'll get rid of soon */
-    int client_fd;
-    const cipher_info_t *cipher_info;
-    void *encrypt_ctx;
-    void *decrypt_ctx;
-    uint8_t bm_all_data[RT_MAX_PLAIN_LENGTH+RT_EXTRA];
-    uint8_t *bm_data;
-    uint16_t bm_index;
-    uint16_t bm_read_index;
-    struct _SSL *next;                  /* doubly linked list */
-    struct _SSL *prev;
-    struct _SSL_CTX *ssl_ctx;           /* back reference to a clnt/svr ctx */
-#ifndef CONFIG_SSL_SKELETON_MODE
-    uint16_t session_index;
-    SSL_SESSION *session;
-#endif
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-    X509_CTX *x509_ctx;
-#endif
-
-    uint8_t session_id[SSL_SESSION_ID_SIZE]; 
-    uint8_t client_mac[SHA1_SIZE];  /* for HMAC verification */
-    uint8_t server_mac[SHA1_SIZE];  /* for HMAC verification */
-    uint8_t read_sequence[8];       /* 64 bit sequence number */
-    uint8_t write_sequence[8];      /* 64 bit sequence number */
-    uint8_t hmac_header[SSL_RECORD_SIZE];    /* rx hmac */
-};
-
-typedef struct _SSL SSL;
-
-struct _SSL_CTX
-{
-    uint32_t options;
-    uint8_t chain_length;
-    RSA_CTX *rsa_ctx;
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-    CA_CERT_CTX *ca_cert_ctx;
-#endif
-    SSL *head;
-    SSL *tail;
-    SSL_CERT certs[CONFIG_SSL_MAX_CERTS];
-#ifndef CONFIG_SSL_SKELETON_MODE
-    uint16_t num_sessions;
-    SSL_SESSION **ssl_sessions;
-#endif
-#ifdef CONFIG_SSL_CTX_MUTEXING
-    SSL_CTX_MUTEX_TYPE mutex;
-#endif
-#ifdef CONFIG_OPENSSL_COMPATIBLE
-    void *bonus_attr;
-#endif
-};
-
-typedef struct _SSL_CTX SSL_CTX;
-
-/* backwards compatibility */
-typedef struct _SSL_CTX SSLCTX;
-
-extern const uint8_t ssl_prot_prefs[NUM_PROTOCOLS];
-
-SSL *ssl_new(SSL_CTX *ssl_ctx, int client_fd);
-void disposable_new(SSL *ssl);
-void disposable_free(SSL *ssl);
-int send_packet(SSL *ssl, uint8_t protocol, 
-        const uint8_t *in, int length);
-int do_svr_handshake(SSL *ssl, int handshake_type, uint8_t *buf, int hs_len);
-int do_clnt_handshake(SSL *ssl, int handshake_type, uint8_t *buf, int hs_len);
-int process_finished(SSL *ssl, int hs_len);
-int process_sslv23_client_hello(SSL *ssl);
-int send_alert(SSL *ssl, int error_code);
-int send_finished(SSL *ssl);
-int send_certificate(SSL *ssl);
-int basic_read(SSL *ssl, uint8_t **in_data);
-int send_change_cipher_spec(SSL *ssl);
-void finished_digest(SSL *ssl, const char *label, uint8_t *digest);
-void generate_master_secret(SSL *ssl, const uint8_t *premaster_secret);
-void add_packet(SSL *ssl, const uint8_t *pkt, int len);
-int add_cert(SSL_CTX *ssl_ctx, const uint8_t *buf, int len);
-int add_private_key(SSL_CTX *ssl_ctx, SSLObjLoader *ssl_obj);
-void ssl_obj_free(SSLObjLoader *ssl_obj);
-int pkcs8_decode(SSL_CTX *ssl_ctx, SSLObjLoader *ssl_obj, const char *password);
-int pkcs12_decode(SSL_CTX *ssl_ctx, SSLObjLoader *ssl_obj, const char *password);
-int load_key_certs(SSL_CTX *ssl_ctx);
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-int add_cert_auth(SSL_CTX *ssl_ctx, const uint8_t *buf, int len);
-void remove_ca_certs(CA_CERT_CTX *ca_cert_ctx);
-#endif
-#ifdef CONFIG_SSL_ENABLE_CLIENT
-int do_client_connect(SSL *ssl);
-#endif
-
-#ifdef CONFIG_SSL_FULL_MODE
-void DISPLAY_STATE(SSL *ssl, int is_send, uint8_t state, int not_ok);
-void DISPLAY_BYTES(SSL *ssl, const char *format, 
-        const uint8_t *data, int size, ...);
-void DISPLAY_CERT(SSL *ssl, const X509_CTX *x509_ctx);
-void DISPLAY_RSA(SSL *ssl,  const RSA_CTX *rsa_ctx);
-void DISPLAY_ALERT(SSL *ssl, int alert);
-#else
-#define DISPLAY_STATE(A,B,C,D)
-#define DISPLAY_CERT(A,B)
-#define DISPLAY_RSA(A,B)
-#define DISPLAY_ALERT(A, B)
-#ifdef WIN32
-void DISPLAY_BYTES(SSL *ssl, const char *format,/* win32 has no variadic macros */
-        const uint8_t *data, int size, ...);
-#else
-#define DISPLAY_BYTES(A,B,C,D,...)
-#endif
-#endif
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-int process_certificate(SSL *ssl, X509_CTX **x509_ctx);
-#endif
-
-SSL_SESSION *ssl_session_update(int max_sessions, 
-        SSL_SESSION *ssl_sessions[], SSL *ssl,
-        const uint8_t *session_id);
-void kill_ssl_session(SSL_SESSION **ssl_sessions, SSL *ssl);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif 
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/tls1_clnt.c b/package/luci/libs/luci-lib-nixio/axTLS/ssl/tls1_clnt.c
deleted file mode 100644 (file)
index 9131433..0000000
+++ /dev/null
@@ -1,386 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <stdio.h>
-
-#include "ssl.h"
-
-#ifdef CONFIG_SSL_ENABLE_CLIENT        /* all commented out if no client */
-
-static int send_client_hello(SSL *ssl);
-static int process_server_hello(SSL *ssl);
-static int process_server_hello_done(SSL *ssl);
-static int send_client_key_xchg(SSL *ssl);
-static int process_cert_req(SSL *ssl);
-static int send_cert_verify(SSL *ssl);
-
-/*
- * Establish a new SSL connection to an SSL server.
- */
-EXP_FUNC SSL * STDCALL ssl_client_new(SSL_CTX *ssl_ctx, int client_fd, const
-        uint8_t *session_id, uint8_t sess_id_size)
-{
-    SSL *ssl;
-    int ret;
-
-    SOCKET_BLOCK(client_fd);    /* ensure blocking mode */
-    ssl = ssl_new(ssl_ctx, client_fd);
-
-    if (session_id && ssl_ctx->num_sessions)
-    {
-        if (sess_id_size > SSL_SESSION_ID_SIZE) /* validity check */
-        {
-            ssl_free(ssl);
-            return NULL;
-        }
-
-        memcpy(ssl->session_id, session_id, sess_id_size);
-        ssl->sess_id_size = sess_id_size;
-        SET_SSL_FLAG(SSL_SESSION_RESUME);   /* just flag for later */
-    }
-
-    SET_SSL_FLAG(SSL_IS_CLIENT);
-    ret = do_client_connect(ssl);
-    return ssl;
-}
-
-/*
- * Process the handshake record.
- */
-int do_clnt_handshake(SSL *ssl, int handshake_type, uint8_t *buf, int hs_len)
-{
-    int ret = SSL_OK;
-
-    /* To get here the state must be valid */
-    switch (handshake_type)
-    {
-        case HS_SERVER_HELLO:
-            ret = process_server_hello(ssl);
-            break;
-
-        case HS_CERTIFICATE:
-            ret = process_certificate(ssl, &ssl->x509_ctx);
-            break;
-
-        case HS_SERVER_HELLO_DONE:
-            if ((ret = process_server_hello_done(ssl)) == SSL_OK)
-            {
-                if (IS_SET_SSL_FLAG(SSL_HAS_CERT_REQ))
-                {
-                    if ((ret = send_certificate(ssl)) == SSL_OK &&
-                        (ret = send_client_key_xchg(ssl)) == SSL_OK)
-                    {
-                        send_cert_verify(ssl);
-                    }
-                }
-                else
-                {
-                    ret = send_client_key_xchg(ssl);
-                }
-
-                if (ret == SSL_OK && 
-                     (ret = send_change_cipher_spec(ssl)) == SSL_OK)
-                {
-                    ret = send_finished(ssl);
-                }
-            }
-            break;
-
-        case HS_CERT_REQ:
-            ret = process_cert_req(ssl);
-            break;
-
-        case HS_FINISHED:
-            ret = process_finished(ssl, hs_len);
-            disposable_free(ssl);   /* free up some memory */
-            break;
-
-        case HS_HELLO_REQUEST:
-            disposable_new(ssl);
-            ret = do_client_connect(ssl);
-            break;
-    }
-
-    return ret;
-}
-
-/*
- * Do the handshaking from the beginning.
- */
-int do_client_connect(SSL *ssl)
-{
-    int ret = SSL_OK;
-
-    send_client_hello(ssl);                 /* send the client hello */
-    ssl->bm_read_index = 0;
-    ssl->next_state = HS_SERVER_HELLO;
-    ssl->hs_status = SSL_NOT_OK;            /* not connected */
-    x509_free(ssl->x509_ctx);
-
-    /* sit in a loop until it all looks good */
-    while (ssl->hs_status != SSL_OK)
-    {
-        ret = basic_read(ssl, NULL);
-        
-        if (ret < SSL_OK)
-        { 
-            if (ret != SSL_ERROR_CONN_LOST)
-            {
-                /* let the server know we are dying and why */
-                if (send_alert(ssl, ret))
-                {
-                    /* something nasty happened, so get rid of it */
-                    kill_ssl_session(ssl->ssl_ctx->ssl_sessions, ssl);
-                }
-            }
-
-            break;
-        }
-    }
-
-    ssl->hs_status = ret;            /* connected? */
-    return ret;
-}
-
-/*
- * Send the initial client hello.
- */
-static int send_client_hello(SSL *ssl)
-{
-    uint8_t *buf = ssl->bm_data;
-    time_t tm = time(NULL);
-    uint8_t *tm_ptr = &buf[6]; /* time will go here */
-    int i, offset;
-
-    buf[0] = HS_CLIENT_HELLO;
-    buf[1] = 0;
-    buf[2] = 0;
-    /* byte 3 is calculated later */
-    buf[4] = 0x03;
-    buf[5] = 0x01;
-
-    /* client random value - spec says that 1st 4 bytes are big endian time */
-    *tm_ptr++ = (uint8_t)(((long)tm & 0xff000000) >> 24);
-    *tm_ptr++ = (uint8_t)(((long)tm & 0x00ff0000) >> 16);
-    *tm_ptr++ = (uint8_t)(((long)tm & 0x0000ff00) >> 8);
-    *tm_ptr++ = (uint8_t)(((long)tm & 0x000000ff));
-    get_random(SSL_RANDOM_SIZE-4, &buf[10]);
-    memcpy(ssl->dc->client_random, &buf[6], SSL_RANDOM_SIZE);
-    offset = 6 + SSL_RANDOM_SIZE;
-
-    /* give session resumption a go */
-    if (IS_SET_SSL_FLAG(SSL_SESSION_RESUME))    /* set initially by user */
-    {
-        buf[offset++] = ssl->sess_id_size;
-        memcpy(&buf[offset], ssl->session_id, ssl->sess_id_size);
-        offset += ssl->sess_id_size;
-        CLR_SSL_FLAG(SSL_SESSION_RESUME);       /* clear so we can set later */
-    }
-    else
-    {
-        /* no session id - because no session resumption just yet */
-        buf[offset++] = 0;
-    }
-
-    buf[offset++] = 0;              /* number of ciphers */
-    buf[offset++] = NUM_PROTOCOLS*2;/* number of ciphers */
-
-    /* put all our supported protocols in our request */
-    for (i = 0; i < NUM_PROTOCOLS; i++)
-    {
-        buf[offset++] = 0;          /* cipher we are using */
-        buf[offset++] = ssl_prot_prefs[i];
-    }
-
-    buf[offset++] = 1;              /* no compression */
-    buf[offset++] = 0;
-    buf[3] = offset - 4;            /* handshake size */
-
-    return send_packet(ssl, PT_HANDSHAKE_PROTOCOL, NULL, offset);
-}
-
-/*
- * Process the server hello.
- */
-static int process_server_hello(SSL *ssl)
-{
-    uint8_t *buf = ssl->bm_data;
-    int pkt_size = ssl->bm_index;
-    int version = (buf[4] << 4) + buf[5];
-    int num_sessions = ssl->ssl_ctx->num_sessions;
-    uint8_t sess_id_size;
-    int offset, ret = SSL_OK;
-
-    /* check that we are talking to a TLSv1 server */
-    if (version != 0x31)
-        return SSL_ERROR_INVALID_VERSION;
-
-    /* get the server random value */
-    memcpy(ssl->dc->server_random, &buf[6], SSL_RANDOM_SIZE);
-    offset = 6 + SSL_RANDOM_SIZE; /* skip of session id size */
-    sess_id_size = buf[offset++];
-
-    if (num_sessions)
-    {
-        ssl->session = ssl_session_update(num_sessions,
-                ssl->ssl_ctx->ssl_sessions, ssl, &buf[offset]);
-        memcpy(ssl->session->session_id, &buf[offset], sess_id_size);
-
-        /* pad the rest with 0's */
-        if (sess_id_size < SSL_SESSION_ID_SIZE)
-        {
-            memset(&ssl->session->session_id[sess_id_size], 0,
-                SSL_SESSION_ID_SIZE-sess_id_size);
-        }
-    }
-
-    memcpy(ssl->session_id, &buf[offset], sess_id_size);
-    ssl->sess_id_size = sess_id_size;
-    offset += sess_id_size;
-
-    /* get the real cipher we are using */
-    ssl->cipher = buf[++offset];
-    ssl->next_state = IS_SET_SSL_FLAG(SSL_SESSION_RESUME) ? 
-                                        HS_FINISHED : HS_CERTIFICATE;
-
-    offset++;   // skip the compr
-    PARANOIA_CHECK(pkt_size, offset);
-    ssl->dc->bm_proc_index = offset+1; 
-
-error:
-    return ret;
-}
-
-/**
- * Process the server hello done message.
- */
-static int process_server_hello_done(SSL *ssl)
-{
-    ssl->next_state = HS_FINISHED;
-    return SSL_OK;
-}
-
-/*
- * Send a client key exchange message.
- */
-static int send_client_key_xchg(SSL *ssl)
-{
-    uint8_t *buf = ssl->bm_data;
-    uint8_t premaster_secret[SSL_SECRET_SIZE];
-    int enc_secret_size = -1;
-
-    buf[0] = HS_CLIENT_KEY_XCHG;
-    buf[1] = 0;
-
-    premaster_secret[0] = 0x03; /* encode the version number */
-    premaster_secret[1] = 0x01;
-    get_random(SSL_SECRET_SIZE-2, &premaster_secret[2]);
-    DISPLAY_RSA(ssl, ssl->x509_ctx->rsa_ctx);
-
-    /* rsa_ctx->bi_ctx is not thread-safe */
-    SSL_CTX_LOCK(ssl->ssl_ctx->mutex);
-    enc_secret_size = RSA_encrypt(ssl->x509_ctx->rsa_ctx, premaster_secret,
-            SSL_SECRET_SIZE, &buf[6], 0);
-    SSL_CTX_UNLOCK(ssl->ssl_ctx->mutex);
-
-    buf[2] = (enc_secret_size + 2) >> 8;
-    buf[3] = (enc_secret_size + 2) & 0xff;
-    buf[4] = enc_secret_size >> 8;
-    buf[5] = enc_secret_size & 0xff;
-
-    generate_master_secret(ssl, premaster_secret);
-    return send_packet(ssl, PT_HANDSHAKE_PROTOCOL, NULL, enc_secret_size+6);
-}
-
-/*
- * Process the certificate request.
- */
-static int process_cert_req(SSL *ssl)
-{
-    uint8_t *buf = &ssl->bm_data[ssl->dc->bm_proc_index];
-    int ret = SSL_OK;
-    int offset = (buf[2] << 4) + buf[3];
-    int pkt_size = ssl->bm_index;
-
-    /* don't do any processing - we will send back an RSA certificate anyway */
-    ssl->next_state = HS_SERVER_HELLO_DONE;
-    SET_SSL_FLAG(SSL_HAS_CERT_REQ);
-    ssl->dc->bm_proc_index += offset;
-    PARANOIA_CHECK(pkt_size, offset);
-error:
-    return ret;
-}
-
-/*
- * Send a certificate verify message.
- */
-static int send_cert_verify(SSL *ssl)
-{
-    uint8_t *buf = ssl->bm_data;
-    uint8_t dgst[MD5_SIZE+SHA1_SIZE];
-    RSA_CTX *rsa_ctx = ssl->ssl_ctx->rsa_ctx;
-    int n = 0, ret;
-
-    DISPLAY_RSA(ssl, rsa_ctx);
-
-    buf[0] = HS_CERT_VERIFY;
-    buf[1] = 0;
-
-    finished_digest(ssl, NULL, dgst);   /* calculate the digest */
-
-    /* rsa_ctx->bi_ctx is not thread-safe */
-    if (rsa_ctx)
-    {
-        SSL_CTX_LOCK(ssl->ssl_ctx->mutex);
-        n = RSA_encrypt(rsa_ctx, dgst, sizeof(dgst), &buf[6], 1);
-        SSL_CTX_UNLOCK(ssl->ssl_ctx->mutex);
-
-        if (n == 0)
-        {
-            ret = SSL_ERROR_INVALID_KEY;
-            goto error;
-        }
-    }
-    
-    buf[4] = n >> 8;        /* add the RSA size (not officially documented) */
-    buf[5] = n & 0xff;
-    n += 2;
-    buf[2] = n >> 8;
-    buf[3] = n & 0xff;
-    ret = send_packet(ssl, PT_HANDSHAKE_PROTOCOL, NULL, n+4);
-
-error:
-    return ret;
-}
-
-#endif      /* CONFIG_SSL_ENABLE_CLIENT */
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/tls1_svr.c b/package/luci/libs/luci-lib-nixio/axTLS/ssl/tls1_svr.c
deleted file mode 100644 (file)
index 45b9bec..0000000
+++ /dev/null
@@ -1,476 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "ssl.h"
-
-static const uint8_t g_hello_done[] = { HS_SERVER_HELLO_DONE, 0, 0, 0 };
-
-static int process_client_hello(SSL *ssl);
-static int send_server_hello_sequence(SSL *ssl);
-static int send_server_hello(SSL *ssl);
-static int send_server_hello_done(SSL *ssl);
-static int process_client_key_xchg(SSL *ssl);
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-static int send_certificate_request(SSL *ssl);
-static int process_cert_verify(SSL *ssl);
-#endif
-
-/*
- * Establish a new SSL connection to an SSL client.
- */
-EXP_FUNC SSL * STDCALL ssl_server_new(SSL_CTX *ssl_ctx, int client_fd)
-{
-    SSL *ssl;
-
-    ssl = ssl_new(ssl_ctx, client_fd);
-    ssl->next_state = HS_CLIENT_HELLO;
-
-#ifdef CONFIG_SSL_FULL_MODE
-    if (ssl_ctx->chain_length == 0)
-        printf("Warning - no server certificate defined\n"); TTY_FLUSH();
-#endif
-
-    return ssl;
-}
-
-/*
- * Process the handshake record.
- */
-int do_svr_handshake(SSL *ssl, int handshake_type, uint8_t *buf, int hs_len)
-{
-    int ret = SSL_OK;
-    ssl->hs_status = SSL_NOT_OK;            /* not connected */
-
-    /* To get here the state must be valid */
-    switch (handshake_type)
-    {
-        case HS_CLIENT_HELLO:
-            if ((ret = process_client_hello(ssl)) == SSL_OK)
-                ret = send_server_hello_sequence(ssl);
-            break;
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-        case HS_CERTIFICATE:/* the client sends its cert */
-            ret = process_certificate(ssl, &ssl->x509_ctx);
-
-            if (ret == SSL_OK)    /* verify the cert */
-            { 
-                int cert_res;
-                cert_res = x509_verify(
-                        ssl->ssl_ctx->ca_cert_ctx, ssl->x509_ctx);
-                ret = (cert_res == 0) ? SSL_OK : SSL_X509_ERROR(cert_res);
-            }
-            break;
-
-        case HS_CERT_VERIFY:    
-            ret = process_cert_verify(ssl);
-            add_packet(ssl, buf, hs_len);   /* needs to be done after */
-            break;
-#endif
-        case HS_CLIENT_KEY_XCHG:
-            ret = process_client_key_xchg(ssl);
-            break;
-
-        case HS_FINISHED:
-            ret = process_finished(ssl, hs_len);
-            disposable_free(ssl);   /* free up some memory */
-            break;
-    }
-
-    return ret;
-}
-
-/* 
- * Process a client hello message.
- */
-static int process_client_hello(SSL *ssl)
-{
-    uint8_t *buf = ssl->bm_data;
-    uint8_t *record_buf = ssl->hmac_header;
-    int pkt_size = ssl->bm_index;
-    int i, j, cs_len, id_len, offset = 6 + SSL_RANDOM_SIZE;
-    int version = (record_buf[1] << 4) + record_buf[2];
-    int ret = SSL_OK;
-    
-    /* should be v3.1 (TLSv1) or better - we'll send in v3.1 mode anyway */
-    if (version < 0x31) 
-    {
-        ret = SSL_ERROR_INVALID_VERSION;
-        ssl_display_error(ret);
-        goto error;
-    }
-
-    memcpy(ssl->dc->client_random, &buf[6], SSL_RANDOM_SIZE);
-
-    /* process the session id */
-    id_len = buf[offset++];
-    if (id_len > SSL_SESSION_ID_SIZE)
-    {
-        return SSL_ERROR_INVALID_SESSION;
-    }
-
-#ifndef CONFIG_SSL_SKELETON_MODE
-    ssl->session = ssl_session_update(ssl->ssl_ctx->num_sessions,
-            ssl->ssl_ctx->ssl_sessions, ssl, id_len ? &buf[offset] : NULL);
-#endif
-
-    offset += id_len;
-    cs_len = (buf[offset]<<8) + buf[offset+1];
-    offset += 3;        /* add 1 due to all cipher suites being 8 bit */
-
-    PARANOIA_CHECK(pkt_size, offset);
-
-    /* work out what cipher suite we are going to use */
-    for (j = 0; j < NUM_PROTOCOLS; j++)
-    {
-        for (i = 0; i < cs_len; i += 2)
-        {
-            if (ssl_prot_prefs[j] == buf[offset+i])   /* got a match? */
-            {
-                ssl->cipher = ssl_prot_prefs[j];
-                goto do_state;
-            }
-        }
-    }
-
-    /* ouch! protocol is not supported */
-    ret = SSL_ERROR_NO_CIPHER;
-
-do_state:
-error:
-    return ret;
-}
-
-#ifdef CONFIG_SSL_ENABLE_V23_HANDSHAKE
-/*
- * Some browsers use a hybrid SSLv2 "client hello" 
- */
-int process_sslv23_client_hello(SSL *ssl)
-{
-    uint8_t *buf = ssl->bm_data;
-    int bytes_needed = ((buf[0] & 0x7f) << 8) + buf[1];
-    int version = (buf[3] << 4) + buf[4];
-    int ret = SSL_OK;
-
-    /* we have already read 3 extra bytes so far */
-    int read_len = SOCKET_READ(ssl->client_fd, buf, bytes_needed-3);
-    int cs_len = buf[1];
-    int id_len = buf[3];
-    int ch_len = buf[5];
-    int i, j, offset = 8;   /* start at first cipher */
-    int random_offset = 0;
-
-    DISPLAY_BYTES(ssl, "received %d bytes", buf, read_len, read_len);
-    
-    /* should be v3.1 (TLSv1) or better - we'll send in v3.1 mode anyway */
-    if (version < 0x31)
-    {
-        return SSL_ERROR_INVALID_VERSION;
-    }
-
-    add_packet(ssl, buf, read_len);
-
-    /* connection has gone, so die */
-    if (bytes_needed < 0)
-    {
-        return SSL_ERROR_CONN_LOST;
-    }
-
-    /* now work out what cipher suite we are going to use */
-    for (j = 0; j < NUM_PROTOCOLS; j++)
-    {
-        for (i = 0; i < cs_len; i += 3)
-        {
-            if (ssl_prot_prefs[j] == buf[offset+i])
-            {
-                ssl->cipher = ssl_prot_prefs[j];
-                goto server_hello;
-            }
-        }
-    }
-
-    /* ouch! protocol is not supported */
-    ret = SSL_ERROR_NO_CIPHER;
-    goto error;
-
-server_hello:
-    /* get the session id */
-    offset += cs_len - 2;   /* we've gone 2 bytes past the end */
-#ifndef CONFIG_SSL_SKELETON_MODE
-    ssl->session = ssl_session_update(ssl->ssl_ctx->num_sessions,
-            ssl->ssl_ctx->ssl_sessions, ssl, id_len ? &buf[offset] : NULL);
-#endif
-
-    /* get the client random data */
-    offset += id_len;
-
-    /* random can be anywhere between 16 and 32 bytes long - so it is padded
-     * with 0's to the left */
-    if (ch_len == 0x10)
-    {
-        random_offset += 0x10;
-    }
-
-    memcpy(&ssl->dc->client_random[random_offset], &buf[offset], ch_len);
-    ret = send_server_hello_sequence(ssl);
-
-error:
-    return ret;
-}
-#endif
-
-/*
- * Send the entire server hello sequence
- */
-static int send_server_hello_sequence(SSL *ssl)
-{
-    int ret;
-
-    if ((ret = send_server_hello(ssl)) == SSL_OK)
-    {
-#ifndef CONFIG_SSL_SKELETON_MODE
-        /* resume handshake? */
-        if (IS_SET_SSL_FLAG(SSL_SESSION_RESUME))
-        {
-            if ((ret = send_change_cipher_spec(ssl)) == SSL_OK)
-            {
-                ret = send_finished(ssl);
-                ssl->next_state = HS_FINISHED;
-            }
-        }
-        else 
-#endif
-        if ((ret = send_certificate(ssl)) == SSL_OK)
-        {
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-            /* ask the client for its certificate */
-            if (IS_SET_SSL_FLAG(SSL_CLIENT_AUTHENTICATION))
-            {
-                if ((ret = send_certificate_request(ssl)) == SSL_OK)
-                {
-                    ret = send_server_hello_done(ssl);
-                    ssl->next_state = HS_CERTIFICATE;
-                }
-            }
-            else
-#endif
-            {
-                ret = send_server_hello_done(ssl);
-                ssl->next_state = HS_CLIENT_KEY_XCHG;
-            }
-        }
-    }
-
-    return ret;
-}
-
-/*
- * Send a server hello message.
- */
-static int send_server_hello(SSL *ssl)
-{
-    uint8_t *buf = ssl->bm_data;
-    int offset = 0;
-
-    buf[0] = HS_SERVER_HELLO;
-    buf[1] = 0;
-    buf[2] = 0;
-    /* byte 3 is calculated later */
-    buf[4] = 0x03;
-    buf[5] = 0x01;
-
-    /* server random value */
-    get_random(SSL_RANDOM_SIZE, &buf[6]);
-    memcpy(ssl->dc->server_random, &buf[6], SSL_RANDOM_SIZE);
-    offset = 6 + SSL_RANDOM_SIZE;
-
-#ifndef CONFIG_SSL_SKELETON_MODE
-    if (IS_SET_SSL_FLAG(SSL_SESSION_RESUME))
-    {
-        /* retrieve id from session cache */
-        buf[offset++] = SSL_SESSION_ID_SIZE;
-        memcpy(&buf[offset], ssl->session->session_id, SSL_SESSION_ID_SIZE);
-        memcpy(ssl->session_id, ssl->session->session_id, SSL_SESSION_ID_SIZE);
-        ssl->sess_id_size = SSL_SESSION_ID_SIZE;
-        offset += SSL_SESSION_ID_SIZE;
-    }
-    else    /* generate our own session id */
-#endif
-    {
-#ifndef CONFIG_SSL_SKELETON_MODE
-        buf[offset++] = SSL_SESSION_ID_SIZE;
-        get_random(SSL_SESSION_ID_SIZE, &buf[offset]);
-        memcpy(ssl->session_id, &buf[offset], SSL_SESSION_ID_SIZE);
-        ssl->sess_id_size = SSL_SESSION_ID_SIZE;
-
-        /* store id in session cache */
-        if (ssl->ssl_ctx->num_sessions)
-        {
-            memcpy(ssl->session->session_id, 
-                    ssl->session_id, SSL_SESSION_ID_SIZE);
-        }
-
-        offset += SSL_SESSION_ID_SIZE;
-#else
-        buf[offset++] = 0;  /* don't bother with session id in skelton mode */
-#endif
-    }
-
-    buf[offset++] = 0;      /* cipher we are using */
-    buf[offset++] = ssl->cipher;
-    buf[offset++] = 0;      /* no compression */
-    buf[3] = offset - 4;    /* handshake size */
-    return send_packet(ssl, PT_HANDSHAKE_PROTOCOL, NULL, offset);
-}
-
-/*
- * Send the server hello done message.
- */
-static int send_server_hello_done(SSL *ssl)
-{
-    return send_packet(ssl, PT_HANDSHAKE_PROTOCOL, 
-                            g_hello_done, sizeof(g_hello_done));
-}
-
-/*
- * Pull apart a client key exchange message. Decrypt the pre-master key (using
- * our RSA private key) and then work out the master key. Initialise the
- * ciphers.
- */
-static int process_client_key_xchg(SSL *ssl)
-{
-    uint8_t *buf = &ssl->bm_data[ssl->dc->bm_proc_index];
-    int pkt_size = ssl->bm_index;
-    int premaster_size, secret_length = (buf[2] << 8) + buf[3];
-    uint8_t premaster_secret[MAX_KEY_BYTE_SIZE];
-    RSA_CTX *rsa_ctx = ssl->ssl_ctx->rsa_ctx;
-    int offset = 4;
-    int ret = SSL_OK;
-    
-    if (rsa_ctx == NULL)
-    {
-        ret = SSL_ERROR_NO_CERT_DEFINED;
-        goto error;
-    }
-
-    /* is there an extra size field? */
-    if ((secret_length - 2) == rsa_ctx->num_octets)
-        offset += 2;
-
-    PARANOIA_CHECK(pkt_size, rsa_ctx->num_octets+offset);
-
-    /* rsa_ctx->bi_ctx is not thread-safe */
-    SSL_CTX_LOCK(ssl->ssl_ctx->mutex);
-    premaster_size = RSA_decrypt(rsa_ctx, &buf[offset], premaster_secret, 1);
-    SSL_CTX_UNLOCK(ssl->ssl_ctx->mutex);
-
-    if (premaster_size != SSL_SECRET_SIZE || 
-            premaster_secret[0] != 0x03 ||  /* check version is 3.1 (TLS) */
-            premaster_secret[1] != 0x01)
-    {
-        /* guard against a Bleichenbacher attack */
-        memset(premaster_secret, 0, SSL_SECRET_SIZE);
-        /* and continue - will die eventually when checking the mac */
-    }
-
-#if 0
-    print_blob("pre-master", premaster_secret, SSL_SECRET_SIZE);
-#endif
-
-    generate_master_secret(ssl, premaster_secret);
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-    ssl->next_state = IS_SET_SSL_FLAG(SSL_CLIENT_AUTHENTICATION) ?  
-                                            HS_CERT_VERIFY : HS_FINISHED;
-#else
-    ssl->next_state = HS_FINISHED; 
-#endif
-error:
-    ssl->dc->bm_proc_index += rsa_ctx->num_octets+offset;
-    return ret;
-}
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-static const uint8_t g_cert_request[] = { HS_CERT_REQ, 0, 0, 4, 1, 0, 0, 0 };
-
-/*
- * Send the certificate request message.
- */
-static int send_certificate_request(SSL *ssl)
-{
-    return send_packet(ssl, PT_HANDSHAKE_PROTOCOL, 
-            g_cert_request, sizeof(g_cert_request));
-}
-
-/*
- * Ensure the client has the private key by first decrypting the packet and
- * then checking the packet digests.
- */
-static int process_cert_verify(SSL *ssl)
-{
-    uint8_t *buf = &ssl->bm_data[ssl->dc->bm_proc_index];
-    int pkt_size = ssl->bm_index;
-    uint8_t dgst_buf[MAX_KEY_BYTE_SIZE];
-    uint8_t dgst[MD5_SIZE+SHA1_SIZE];
-    X509_CTX *x509_ctx = ssl->x509_ctx;
-    int ret = SSL_OK;
-    int n;
-
-    PARANOIA_CHECK(pkt_size, x509_ctx->rsa_ctx->num_octets+6);
-    DISPLAY_RSA(ssl, x509_ctx->rsa_ctx);
-
-    /* rsa_ctx->bi_ctx is not thread-safe */
-    SSL_CTX_LOCK(ssl->ssl_ctx->mutex);
-    n = RSA_decrypt(x509_ctx->rsa_ctx, &buf[6], dgst_buf, 0);
-    SSL_CTX_UNLOCK(ssl->ssl_ctx->mutex);
-
-    if (n != SHA1_SIZE + MD5_SIZE)
-    {
-        ret = SSL_ERROR_INVALID_KEY;
-        goto end_cert_vfy;
-    }
-
-    finished_digest(ssl, NULL, dgst);       /* calculate the digest */
-    if (memcmp(dgst_buf, dgst, MD5_SIZE + SHA1_SIZE))
-    {
-        ret = SSL_ERROR_INVALID_KEY;
-    }
-
-end_cert_vfy:
-    ssl->next_state = HS_FINISHED;
-error:
-    return ret;
-}
-
-#endif
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/version.h b/package/luci/libs/luci-lib-nixio/axTLS/ssl/version.h
deleted file mode 100644 (file)
index 72260bf..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#define AXTLS_VERSION    "1.2.1"
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/ssl/x509.c b/package/luci/libs/luci-lib-nixio/axTLS/ssl/x509.c
deleted file mode 100644 (file)
index 37db7f4..0000000
+++ /dev/null
@@ -1,502 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- * 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, 
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice, 
- *   this list of conditions and the following disclaimer in the documentation 
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * @file x509.c
- * 
- * Certificate processing.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include "os_port.h"
-#include "crypto_misc.h"
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-/**
- * Retrieve the signature from a certificate.
- */
-static const uint8_t *get_signature(const uint8_t *asn1_sig, int *len)
-{
-    int offset = 0;
-    const uint8_t *ptr = NULL;
-
-    if (asn1_next_obj(asn1_sig, &offset, ASN1_SEQUENCE) < 0 || 
-            asn1_skip_obj(asn1_sig, &offset, ASN1_SEQUENCE))
-        goto end_get_sig;
-
-    if (asn1_sig[offset++] != ASN1_OCTET_STRING)
-        goto end_get_sig;
-    *len = get_asn1_length(asn1_sig, &offset);
-    ptr = &asn1_sig[offset];          /* all ok */
-
-end_get_sig:
-    return ptr;
-}
-
-#endif
-
-/**
- * Construct a new x509 object.
- * @return 0 if ok. < 0 if there was a problem.
- */
-int x509_new(const uint8_t *cert, int *len, X509_CTX **ctx)
-{
-    int begin_tbs, end_tbs;
-    int ret = X509_NOT_OK, offset = 0, cert_size = 0;
-    X509_CTX *x509_ctx;
-    BI_CTX *bi_ctx;
-
-    *ctx = (X509_CTX *)calloc(1, sizeof(X509_CTX));
-    x509_ctx = *ctx;
-
-    /* get the certificate size */
-    asn1_skip_obj(cert, &cert_size, ASN1_SEQUENCE); 
-
-    if (asn1_next_obj(cert, &offset, ASN1_SEQUENCE) < 0)
-        goto end_cert;
-
-    begin_tbs = offset;         /* start of the tbs */
-    end_tbs = begin_tbs;        /* work out the end of the tbs */
-    asn1_skip_obj(cert, &end_tbs, ASN1_SEQUENCE);
-
-    if (asn1_next_obj(cert, &offset, ASN1_SEQUENCE) < 0)
-        goto end_cert;
-
-    if (cert[offset] == ASN1_EXPLICIT_TAG)   /* optional version */
-    {
-        if (asn1_version(cert, &offset, x509_ctx))
-            goto end_cert;
-    }
-
-    if (asn1_skip_obj(cert, &offset, ASN1_INTEGER) || /* serial number */ 
-            asn1_next_obj(cert, &offset, ASN1_SEQUENCE) < 0)
-        goto end_cert;
-
-    /* make sure the signature is ok */
-    if (asn1_signature_type(cert, &offset, x509_ctx))
-    {
-        ret = X509_VFY_ERROR_UNSUPPORTED_DIGEST;
-        goto end_cert;
-    }
-
-    if (asn1_name(cert, &offset, x509_ctx->ca_cert_dn) || 
-            asn1_validity(cert, &offset, x509_ctx) ||
-            asn1_name(cert, &offset, x509_ctx->cert_dn) ||
-            asn1_public_key(cert, &offset, x509_ctx))
-        goto end_cert;
-
-    bi_ctx = x509_ctx->rsa_ctx->bi_ctx;
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION /* only care if doing verification */
-    /* use the appropriate signature algorithm (SHA1/MD5/MD2) */
-    if (x509_ctx->sig_type == SIG_TYPE_MD5)
-    {
-        MD5_CTX md5_ctx;
-        uint8_t md5_dgst[MD5_SIZE];
-        MD5_Init(&md5_ctx);
-        MD5_Update(&md5_ctx, &cert[begin_tbs], end_tbs-begin_tbs);
-        MD5_Final(md5_dgst, &md5_ctx);
-        x509_ctx->digest = bi_import(bi_ctx, md5_dgst, MD5_SIZE);
-    }
-    else if (x509_ctx->sig_type == SIG_TYPE_SHA1)
-    {
-        SHA1_CTX sha_ctx;
-        uint8_t sha_dgst[SHA1_SIZE];
-        SHA1_Init(&sha_ctx);
-        SHA1_Update(&sha_ctx, &cert[begin_tbs], end_tbs-begin_tbs);
-        SHA1_Final(sha_dgst, &sha_ctx);
-        x509_ctx->digest = bi_import(bi_ctx, sha_dgst, SHA1_SIZE);
-    }
-    else if (x509_ctx->sig_type == SIG_TYPE_MD2)
-    {
-        MD2_CTX md2_ctx;
-        uint8_t md2_dgst[MD2_SIZE];
-        MD2_Init(&md2_ctx);
-        MD2_Update(&md2_ctx, &cert[begin_tbs], end_tbs-begin_tbs);
-        MD2_Final(md2_dgst, &md2_ctx);
-        x509_ctx->digest = bi_import(bi_ctx, md2_dgst, MD2_SIZE);
-    }
-
-    offset = end_tbs;   /* skip the v3 data */
-    if (asn1_skip_obj(cert, &offset, ASN1_SEQUENCE) || 
-            asn1_signature(cert, &offset, x509_ctx))
-        goto end_cert;
-#endif
-
-    if (len)
-    {
-        *len = cert_size;
-    }
-
-    ret = X509_OK;
-end_cert:
-
-#ifdef CONFIG_SSL_FULL_MODE
-    if (ret)
-    {
-        printf("Error: Invalid X509 ASN.1 file\n");
-    }
-#endif
-
-    return ret;
-}
-
-/**
- * Free an X.509 object's resources.
- */
-void x509_free(X509_CTX *x509_ctx)
-{
-    X509_CTX *next;
-    int i;
-
-    if (x509_ctx == NULL)       /* if already null, then don't bother */
-        return;
-
-    for (i = 0; i < X509_NUM_DN_TYPES; i++)
-    {
-        free(x509_ctx->ca_cert_dn[i]);
-        free(x509_ctx->cert_dn[i]);
-    }
-
-    free(x509_ctx->signature);
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION 
-    if (x509_ctx->digest)
-    {
-        bi_free(x509_ctx->rsa_ctx->bi_ctx, x509_ctx->digest);
-    }
-#endif
-
-    RSA_free(x509_ctx->rsa_ctx);
-
-    next = x509_ctx->next;
-    free(x509_ctx);
-    x509_free(next);        /* clear the chain */
-}
-
-#ifdef CONFIG_SSL_CERT_VERIFICATION
-/**
- * Take a signature and decrypt it.
- */
-static bigint *sig_verify(BI_CTX *ctx, const uint8_t *sig, int sig_len,
-        bigint *modulus, bigint *pub_exp)
-{
-    int i, size;
-    bigint *decrypted_bi, *dat_bi;
-    bigint *bir = NULL;
-    uint8_t *block = (uint8_t *)alloca(sig_len);
-
-    /* decrypt */
-    dat_bi = bi_import(ctx, sig, sig_len);
-    ctx->mod_offset = BIGINT_M_OFFSET;
-
-    /* convert to a normal block */
-    decrypted_bi = bi_mod_power2(ctx, dat_bi, modulus, pub_exp);
-
-    bi_export(ctx, decrypted_bi, block, sig_len);
-    ctx->mod_offset = BIGINT_M_OFFSET;
-
-    i = 10; /* start at the first possible non-padded byte */
-    while (block[i++] && i < sig_len);
-    size = sig_len - i;
-
-    /* get only the bit we want */
-    if (size > 0)
-    {
-        int len;
-        const uint8_t *sig_ptr = get_signature(&block[i], &len);
-
-        if (sig_ptr)
-        {
-            bir = bi_import(ctx, sig_ptr, len);
-        }
-    }
-
-    /* save a few bytes of memory */
-    bi_clear_cache(ctx);
-    return bir;
-}
-
-/**
- * Do some basic checks on the certificate chain.
- *
- * Certificate verification consists of a number of checks:
- * - The date of the certificate is after the start date.
- * - The date of the certificate is before the finish date.
- * - A root certificate exists in the certificate store.
- * - That the certificate(s) are not self-signed.
- * - The certificate chain is valid.
- * - The signature of the certificate is valid.
- */
-int x509_verify(const CA_CERT_CTX *ca_cert_ctx, const X509_CTX *cert) 
-{
-    int ret = X509_OK, i = 0;
-    bigint *cert_sig;
-    X509_CTX *next_cert = NULL;
-    BI_CTX *ctx = NULL;
-    bigint *mod = NULL, *expn = NULL;
-    int match_ca_cert = 0;
-    struct timeval tv;
-    uint8_t is_self_signed = 0;
-
-    if (cert == NULL)
-    {
-        ret = X509_VFY_ERROR_NO_TRUSTED_CERT;       
-        goto end_verify;
-    }
-
-    /* a self-signed certificate that is not in the CA store - use this 
-       to check the signature */
-    if (asn1_compare_dn(cert->ca_cert_dn, cert->cert_dn) == 0)
-    {
-        is_self_signed = 1;
-        ctx = cert->rsa_ctx->bi_ctx;
-        mod = cert->rsa_ctx->m;
-        expn = cert->rsa_ctx->e;
-    }
-
-    gettimeofday(&tv, NULL);
-
-    /* check the not before date */
-    if (tv.tv_sec < cert->not_before)
-    {
-        ret = X509_VFY_ERROR_NOT_YET_VALID;
-        goto end_verify;
-    }
-
-    /* check the not after date */
-    if (tv.tv_sec > cert->not_after)
-    {
-        ret = X509_VFY_ERROR_EXPIRED;
-        goto end_verify;
-    }
-
-    next_cert = cert->next;
-
-    /* last cert in the chain - look for a trusted cert */
-    if (next_cert == NULL)
-    {
-       if (ca_cert_ctx != NULL) 
-       {
-            /* go thu the CA store */
-           while (i < CONFIG_X509_MAX_CA_CERTS && ca_cert_ctx->cert[i])
-            {
-                if (asn1_compare_dn(cert->ca_cert_dn,
-                                            ca_cert_ctx->cert[i]->cert_dn) == 0)
-                {
-                    /* use this CA certificate for signature verification */
-                    match_ca_cert = 1;
-                    ctx = ca_cert_ctx->cert[i]->rsa_ctx->bi_ctx;
-                    mod = ca_cert_ctx->cert[i]->rsa_ctx->m;
-                    expn = ca_cert_ctx->cert[i]->rsa_ctx->e;
-                    break;
-                }
-
-                i++;
-            }
-        }
-
-       /* couldn't find a trusted cert (& let self-signed errors be returned) */
-        if (!match_ca_cert && !is_self_signed)
-        {
-            ret = X509_VFY_ERROR_NO_TRUSTED_CERT;       
-            goto end_verify;
-        }
-    }
-    else if (asn1_compare_dn(cert->ca_cert_dn, next_cert->cert_dn) != 0)
-    {
-        /* check the chain */
-        ret = X509_VFY_ERROR_INVALID_CHAIN;
-        goto end_verify;
-    }
-    else /* use the next certificate in the chain for signature verify */
-    {
-        ctx = next_cert->rsa_ctx->bi_ctx;
-        mod = next_cert->rsa_ctx->m;
-        expn = next_cert->rsa_ctx->e;
-    }
-
-    /* cert is self signed */
-    if (!match_ca_cert && is_self_signed)
-    {
-        ret = X509_VFY_ERROR_SELF_SIGNED;
-        goto end_verify;
-    }
-
-    /* check the signature */
-    cert_sig = sig_verify(ctx, cert->signature, cert->sig_len, 
-                        bi_clone(ctx, mod), bi_clone(ctx, expn));
-
-    if (cert_sig && cert->digest)
-    {
-        if (bi_compare(cert_sig, cert->digest) != 0)
-            ret = X509_VFY_ERROR_BAD_SIGNATURE;
-
-
-        bi_free(ctx, cert_sig);
-    }
-    else
-    {
-        ret = X509_VFY_ERROR_BAD_SIGNATURE;
-    }
-
-    if (ret)
-        goto end_verify;
-
-    /* go down the certificate chain using recursion. */
-    if (next_cert != NULL)
-    {
-        ret = x509_verify(ca_cert_ctx, next_cert);
-    }
-
-end_verify:
-    return ret;
-}
-#endif
-
-#if defined (CONFIG_SSL_FULL_MODE)
-/**
- * Used for diagnostics.
- */
-static const char *not_part_of_cert = "<Not Part Of Certificate>";
-void x509_print(const X509_CTX *cert, CA_CERT_CTX *ca_cert_ctx) 
-{
-    if (cert == NULL)
-        return;
-
-    printf("=== CERTIFICATE ISSUED TO ===\n");
-    printf("Common Name (CN):\t\t");
-    printf("%s\n", cert->cert_dn[X509_COMMON_NAME] ?
-                    cert->cert_dn[X509_COMMON_NAME] : not_part_of_cert);
-
-    printf("Organization (O):\t\t");
-    printf("%s\n", cert->cert_dn[X509_ORGANIZATION] ?
-        cert->cert_dn[X509_ORGANIZATION] : not_part_of_cert);
-
-    printf("Organizational Unit (OU):\t");
-    printf("%s\n", cert->cert_dn[X509_ORGANIZATIONAL_UNIT] ?
-        cert->cert_dn[X509_ORGANIZATIONAL_UNIT] : not_part_of_cert);
-
-    printf("=== CERTIFICATE ISSUED BY ===\n");
-    printf("Common Name (CN):\t\t");
-    printf("%s\n", cert->ca_cert_dn[X509_COMMON_NAME] ?
-                    cert->ca_cert_dn[X509_COMMON_NAME] : not_part_of_cert);
-
-    printf("Organization (O):\t\t");
-    printf("%s\n", cert->ca_cert_dn[X509_ORGANIZATION] ?
-        cert->ca_cert_dn[X509_ORGANIZATION] : not_part_of_cert);
-
-    printf("Organizational Unit (OU):\t");
-    printf("%s\n", cert->ca_cert_dn[X509_ORGANIZATIONAL_UNIT] ?
-        cert->ca_cert_dn[X509_ORGANIZATIONAL_UNIT] : not_part_of_cert);
-
-    printf("Not Before:\t\t\t%s", ctime(&cert->not_before));
-    printf("Not After:\t\t\t%s", ctime(&cert->not_after));
-    printf("RSA bitsize:\t\t\t%d\n", cert->rsa_ctx->num_octets*8);
-    printf("Sig Type:\t\t\t");
-    switch (cert->sig_type)
-    {
-        case SIG_TYPE_MD5:
-            printf("MD5\n");
-            break;
-        case SIG_TYPE_SHA1:
-            printf("SHA1\n");
-            break;
-        case SIG_TYPE_MD2:
-            printf("MD2\n");
-            break;
-        default:
-            printf("Unrecognized: %d\n", cert->sig_type);
-            break;
-    }
-
-    if (ca_cert_ctx)
-    {
-        printf("Verify:\t\t\t\t%s\n",
-                x509_display_error(x509_verify(ca_cert_ctx, cert)));
-    }
-
-#if 0
-    print_blob("Signature", cert->signature, cert->sig_len);
-    bi_print("Modulus", cert->rsa_ctx->m);
-    bi_print("Pub Exp", cert->rsa_ctx->e);
-#endif
-
-    if (ca_cert_ctx)
-    {
-        x509_print(cert->next, ca_cert_ctx);
-    }
-
-    TTY_FLUSH();
-}
-
-const char * x509_display_error(int error)
-{
-    switch (error)
-    {
-        case X509_OK:
-            return "Certificate verify successful";
-
-        case X509_NOT_OK:
-            return "X509 not ok";
-
-        case X509_VFY_ERROR_NO_TRUSTED_CERT:
-            return "No trusted cert is available";
-
-        case X509_VFY_ERROR_BAD_SIGNATURE:
-            return "Bad signature";
-
-        case X509_VFY_ERROR_NOT_YET_VALID:
-            return "Cert is not yet valid";
-
-        case X509_VFY_ERROR_EXPIRED:
-            return "Cert has expired";
-
-        case X509_VFY_ERROR_SELF_SIGNED:
-            return "Cert is self-signed";
-
-        case X509_VFY_ERROR_INVALID_CHAIN:
-            return "Chain is invalid (check order of certs)";
-
-        case X509_VFY_ERROR_UNSUPPORTED_DIGEST:
-            return "Unsupported digest";
-
-        case X509_INVALID_PRIV_KEY:
-            return "Invalid private key";
-
-        default:
-            return "Unknown";
-    }
-}
-#endif      /* CONFIG_SSL_FULL_MODE */
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/bin/.htaccess b/package/luci/libs/luci-lib-nixio/axTLS/www/bin/.htaccess
deleted file mode 100644 (file)
index 4496fa9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Deny all
-
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/favicon.ico b/package/luci/libs/luci-lib-nixio/axTLS/www/favicon.ico
deleted file mode 100644 (file)
index 9f6f30e..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axTLS/www/favicon.ico and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/index.html b/package/luci/libs/luci-lib-nixio/axTLS/www/index.html
deleted file mode 100755 (executable)
index 25cd2e6..0000000
+++ /dev/null
@@ -1,7106 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<script type="text/javascript">
-//<![CDATA[
-var version = {major: 2, minor: 1, revision: 3, date: new Date("Nov 3, 2006"), extensions: {}};
-//]]>
-</script>
-<!--
-TiddlyWiki 2.1.3 by Jeremy Ruston, (jeremy [at] osmosoft [dot] com)
-
-Copyright (c) Osmosoft Limited 2004-2006
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this
-list of conditions and the following disclaimer.
-
-Redistributions in binary form must reproduce the above copyright notice, this
-list of conditions and the following disclaimer in the documentation and/or other
-materials provided with the distribution.
-
-Neither the name of the Osmosoft Limited nor the names of its contributors may be
-used to endorse or promote products derived from this software without specific
-prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
-SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
--->
-<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-<!--PRE-HEAD-START-->
-<!--{{{-->
-<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml'/>
-<!--}}}-->
-<!--PRE-HEAD-END-->
-<title> axTLS Embedded SSL - changes, notes and errata </title>
-<script type="text/javascript">
-//<![CDATA[
-// ---------------------------------------------------------------------------------
-// Configuration repository
-// ---------------------------------------------------------------------------------
-
-// Miscellaneous options
-var config = {
-       numRssItems: 20, // Number of items in the RSS feed
-       animFast: 0.12, // Speed for animations (lower == slower)
-       animSlow: 0.01, // Speed for EasterEgg animations
-       cascadeFast: 20, // Speed for cascade animations (higher == slower)
-       cascadeSlow: 60, // Speed for EasterEgg cascade animations
-       cascadeDepth: 5, // Depth of cascade animation
-       displayStartupTime: false // Whether to display startup time
-       };
-
-// Messages
-config.messages = {
-       messageClose: {},
-       dates: {}
-};
-
-// Options that can be set in the options panel and/or cookies
-config.options = {
-       chkRegExpSearch: false,
-       chkCaseSensitiveSearch: false,
-       chkAnimate: true,
-       chkSaveBackups: true,
-       chkAutoSave: false,
-       chkGenerateAnRssFeed: false,
-       chkSaveEmptyTemplate: false,
-       chkOpenInNewWindow: true,
-       chkToggleLinks: false,
-       chkHttpReadOnly: true,
-       chkForceMinorUpdate: false,
-       chkConfirmDelete: true,
-       chkInsertTabs: false,
-       txtBackupFolder: "",
-       txtMainTab: "tabTimeline",
-       txtMoreTab: "moreTabAll",
-       txtMaxEditRows: "30"
-       };
-       
-// List of notification functions to be called when certain tiddlers are changed or deleted
-config.notifyTiddlers = [
-       {name: "StyleSheetLayout", notify: refreshStyles},
-       {name: "StyleSheetColors", notify: refreshStyles},
-       {name: "StyleSheet", notify: refreshStyles},
-       {name: "StyleSheetPrint", notify: refreshStyles},
-       {name: "PageTemplate", notify: refreshPageTemplate},
-       {name: "SiteTitle", notify: refreshPageTitle},
-       {name: "SiteSubtitle", notify: refreshPageTitle},
-       {name: "ColorPalette", notify: refreshColorPalette},
-       {name: null, notify: refreshDisplay}
-       ];
-
-// Default tiddler templates
-var DEFAULT_VIEW_TEMPLATE = 1;
-var DEFAULT_EDIT_TEMPLATE = 2;
-config.tiddlerTemplates = {
-       1: "ViewTemplate",
-       2: "EditTemplate"
-       };
-
-// More messages (rather a legacy layout that shouldn't really be like this)
-config.views = {
-       wikified: {
-               tag: {}
-               },
-       editor: {
-               tagChooser: {}
-               }
-       };
-
-// Macros; each has a 'handler' member that is inserted later
-config.macros = {
-       today: {},
-       version: {},
-       search: {sizeTextbox: 15},
-       tiddler: {},
-       tag: {},
-       tags: {},
-       tagging: {},
-       timeline: {},
-       allTags: {},
-       list: {
-               all: {},
-               missing: {},
-               orphans: {},
-               shadowed: {}
-               },
-       closeAll: {},
-       permaview: {},
-       saveChanges: {},
-       slider: {},
-       option: {},
-       newTiddler: {},
-       newJournal: {},
-       sparkline: {},
-       tabs: {},
-       gradient: {},
-       message: {},
-       view: {},
-       edit: {},
-       tagChooser: {},
-       toolbar: {},
-       br: {},
-       plugins: {},
-       refreshDisplay: {},
-       importTiddlers: {}
-       };
-
-// Commands supported by the toolbar macro
-config.commands = {
-       closeTiddler: {},
-       closeOthers: {},
-       editTiddler: {},
-       saveTiddler: {hideReadOnly: true},
-       cancelTiddler: {},
-       deleteTiddler: {hideReadOnly: true},
-       permalink: {},
-       references: {},
-       jump: {}
-       };
-
-// Browser detection... In a very few places, there's nothing else for it but to
-// know what browser we're using.
-config.userAgent = navigator.userAgent.toLowerCase();
-config.browser = {
-       isIE: config.userAgent.indexOf("msie") != -1 && config.userAgent.indexOf("opera") == -1,
-       ieVersion: /MSIE (\d.\d)/i.exec(config.userAgent), // config.browser.ieVersion[1], if it exists, will be the IE version string, eg "6.0"
-       isSafari: config.userAgent.indexOf("applewebkit") != -1,
-       isBadSafari: !((new RegExp("[\u0150\u0170]","g")).test("\u0150")),
-       firefoxDate: /Gecko\/(\d{8})/i.exec(config.userAgent), // config.browser.firefoxDate[1], if it exists, will be Firefox release date as "YYYYMMDD"
-       isOpera: config.userAgent.indexOf("opera") != -1,
-       isLinux: config.userAgent.indexOf("linux") != -1,
-       isUnix: config.userAgent.indexOf("x11") != -1,
-       isMac: config.userAgent.indexOf("mac") != -1,
-       isWindows: config.userAgent.indexOf("win") != -1
-       };
-
-// Basic regular expressions
-config.textPrimitives = {
-       upperLetter: "[A-Z\u00c0-\u00de\u0150\u0170]",
-       lowerLetter: "[a-z0-9_\\-\u00df-\u00ff\u0151\u0171]",
-       anyLetter:   "[A-Za-z0-9_\\-\u00c0-\u00de\u00df-\u00ff\u0150\u0170\u0151\u0171]",
-       anyLetterStrict: "[A-Za-z0-9\u00c0-\u00de\u00df-\u00ff\u0150\u0170\u0151\u0171]"
-       };
-if(config.browser.isBadSafari)
-       config.textPrimitives = {
-               upperLetter: "[A-Z\u00c0-\u00de]",
-               lowerLetter: "[a-z0-9_\\-\u00df-\u00ff]",
-               anyLetter:   "[A-Za-z0-9_\\-\u00c0-\u00de\u00df-\u00ff]",
-               anyLetterStrict: "[A-Za-z0-9\u00c0-\u00de\u00df-\u00ff]"
-               }
-config.textPrimitives.sliceSeparator = "::";
-config.textPrimitives.urlPattern = "[a-z]{3,8}:[^\\s:'\"][^\\s'\"]*(?:/|\\b)";
-config.textPrimitives.unWikiLink = "~";
-config.textPrimitives.wikiLink = "(?:(?:" + config.textPrimitives.upperLetter + "+" +
-                                                                                               config.textPrimitives.lowerLetter + "+" +
-                                                                                               config.textPrimitives.upperLetter +
-                                                                                               config.textPrimitives.anyLetter + "*)|(?:" +
-                                                                                               config.textPrimitives.upperLetter + "{2,}" +
-                                                                                               config.textPrimitives.lowerLetter + "+))";
-
-config.textPrimitives.cssLookahead = "(?:(" + config.textPrimitives.anyLetter + "+)\\(([^\\)\\|\\n]+)(?:\\):))|(?:(" + config.textPrimitives.anyLetter + "+):([^;\\|\\n]+);)";
-config.textPrimitives.cssLookaheadRegExp = new RegExp(config.textPrimitives.cssLookahead,"mg");
-
-config.textPrimitives.brackettedLink = "\\[\\[([^\\]]+)\\]\\]";
-config.textPrimitives.titledBrackettedLink = "\\[\\[([^\\[\\]\\|]+)\\|([^\\[\\]\\|]+)\\]\\]";
-config.textPrimitives.tiddlerForcedLinkRegExp = new RegExp("(?:" + config.textPrimitives.titledBrackettedLink + ")|(?:" +
-       config.textPrimitives.brackettedLink + ")|(?:" + 
-       config.textPrimitives.urlPattern + ")","mg");
-config.textPrimitives.tiddlerAnyLinkRegExp = new RegExp("("+ config.textPrimitives.wikiLink + ")|(?:" +
-       config.textPrimitives.titledBrackettedLink + ")|(?:" +
-       config.textPrimitives.brackettedLink + ")|(?:" +
-       config.textPrimitives.urlPattern + ")","mg");
-
-// ---------------------------------------------------------------------------------
-// Shadow tiddlers
-// ---------------------------------------------------------------------------------
-
-config.shadowTiddlers = {
-       ColorPalette: "Background: #fff\n" + 
-                                 "Foreground: #000\n" +
-                                 "PrimaryPale: #8cf\n" +
-                                 "PrimaryLight: #18f\n" +
-                                 "PrimaryMid: #04b\n" +
-                                 "PrimaryDark: #014\n" +
-                                 "SecondaryPale: #ffc\n" +
-                                 "SecondaryLight: #fe8\n" +
-                                 "SecondaryMid: #db4\n" +
-                                 "SecondaryDark: #841\n" +
-                                 "TertiaryPale: #eee\n" +
-                                 "TertiaryLight: #ccc\n" +
-                                 "TertiaryMid: #999\n" +
-                                 "TertiaryDark: #666\n" +
-                                 "Error: #f88\n",
-       StyleSheet: "",
-       StyleSheetColors: "/*{{{*/\nbody {\n    background: [[ColorPalette::Background]];\n     color: [[ColorPalette::Foreground]];\n}\n\na{\n color: [[ColorPalette::PrimaryMid]];\n}\n\na:hover{\n   background: [[ColorPalette::PrimaryMid]];\n     color: [[ColorPalette::Background]];\n}\n\na img{\n     border: 0;\n}\n\nh1,h2,h3,h4,h5 {\n     color: [[ColorPalette::SecondaryDark]];\n       background: [[ColorPalette::PrimaryPale]];\n}\n\n.button {\n    color: [[ColorPalette::PrimaryDark]];\n border: 1px solid [[ColorPalette::Background]];\n}\n\n.button:hover {\n color: [[ColorPalette::PrimaryDark]];\n background: [[ColorPalette::SecondaryLight]];\n border-color: [[ColorPalette::SecondaryMid]];\n}\n\n.button:active {\n  color: [[ColorPalette::Background]];\n  background: [[ColorPalette::SecondaryMid]];\n   border: 1px solid [[ColorPalette::SecondaryDark]];\n}\n\n.header {\n    background: [[ColorPalette::PrimaryMid]];\n}\n\n.headerShadow {\n       color: [[ColorPalette::Foreground]];\n}\n\n.headerShadow a {\n  font-weight: normal;\n  color: [[ColorPalette::Foreground]];\n}\n\n.headerForeground {\n        color: [[ColorPalette::Background]];\n}\n\n.headerForeground a {\n      font-weight: normal;\n  color: [[ColorPalette::PrimaryPale]];\n}\n\n.tabSelected{\n     color: [[ColorPalette::PrimaryDark]];\n background: [[ColorPalette::TertiaryPale]];\n   border-left: 1px solid [[ColorPalette::TertiaryLight]];\n       border-top: 1px solid [[ColorPalette::TertiaryLight]];\n        border-right: 1px solid [[ColorPalette::TertiaryLight]];\n}\n\n.tabUnselected {\n       color: [[ColorPalette::Background]];\n  background: [[ColorPalette::TertiaryMid]];\n}\n\n.tabContents {\n       color: [[ColorPalette::PrimaryDark]];\n background: [[ColorPalette::TertiaryPale]];\n   border: 1px solid [[ColorPalette::TertiaryLight]];\n}\n\n.tabContents .button {\n        border: 0;}\n\n#sidebar {\n}\n\n#sidebarOptions input {\n      border: 1px solid [[ColorPalette::PrimaryMid]];\n}\n\n#sidebarOptions .sliderPanel {\n  background: [[ColorPalette::PrimaryPale]];\n}\n\n#sidebarOptions .sliderPanel a {\n     border: none;\n color: [[ColorPalette::PrimaryMid]];\n}\n\n#sidebarOptions .sliderPanel a:hover {\n     color: [[ColorPalette::Background]];\n  background: [[ColorPalette::PrimaryMid]];\n}\n\n#sidebarOptions .sliderPanel a:active {\n       color: [[ColorPalette::PrimaryMid]];\n  background: [[ColorPalette::Background]];\n}\n\n.wizard {\n     background: [[ColorPalette::SecondaryLight]];\n border-top: 1px solid [[ColorPalette::SecondaryMid]];\n border-left: 1px solid [[ColorPalette::SecondaryMid]];\n}\n\n.wizard h1 {\n     color: [[ColorPalette::SecondaryDark]];\n}\n\n.wizard h2 {\n    color: [[ColorPalette::Foreground]];\n}\n\n.wizardStep {\n      background: [[ColorPalette::Background]];\n     border-top: 1px solid [[ColorPalette::SecondaryMid]];\n border-bottom: 1px solid [[ColorPalette::SecondaryMid]];\n      border-left: 1px solid [[ColorPalette::SecondaryMid]];\n}\n\n.wizard .button {\n        color: [[ColorPalette::Background]];\n  background: [[ColorPalette::PrimaryMid]];\n     border-top: 1px solid [[ColorPalette::PrimaryLight]];\n border-right: 1px solid [[ColorPalette::PrimaryDark]];\n        border-bottom: 1px solid [[ColorPalette::PrimaryDark]];\n       border-left: 1px solid [[ColorPalette::PrimaryLight]];\n}\n\n.wizard .button:hover {\n  color: [[ColorPalette::PrimaryLight]];\n        background: [[ColorPalette::PrimaryDark]];\n    border-color: [[ColorPalette::PrimaryLight]];\n}\n\n.wizard .button:active {\n  color: [[ColorPalette::Background]];\n  background: [[ColorPalette::PrimaryMid]];\n     border-top: 1px solid [[ColorPalette::PrimaryLight]];\n border-right: 1px solid [[ColorPalette::PrimaryDark]];\n        border-bottom: 1px solid [[ColorPalette::PrimaryDark]];\n       border-left: 1px solid [[ColorPalette::PrimaryLight]];\n}\n\n#messageArea {\n   border: 1px solid [[ColorPalette::SecondaryDark]];\n    background: [[ColorPalette::SecondaryMid]];\n   color: [[ColorPalette::PrimaryDark]];\n}\n\n#messageArea .button {\n    padding: 0.2em 0.2em 0.2em 0.2em;\n     color: [[ColorPalette::PrimaryDark]];\n background: [[ColorPalette::Background]];\n}\n\n.popup {\n      background: [[ColorPalette::PrimaryLight]];\n   border: 1px solid [[ColorPalette::PrimaryMid]];\n}\n\n.popup hr {\n     color: [[ColorPalette::PrimaryDark]];\n background: [[ColorPalette::PrimaryDark]];\n    border-bottom: 1px;\n}\n\n.listBreak div{\n     border-bottom: 1px solid [[ColorPalette::PrimaryDark]];\n}\n\n.popup li.disabled {\n    color: [[ColorPalette::PrimaryMid]];\n}\n\n.popup li a, .popup li a:visited {\n color: [[ColorPalette::TertiaryPale]];\n        border: none;\n}\n\n.popup li a:hover {\n       background: [[ColorPalette::PrimaryDark]];\n    color: [[ColorPalette::Background]];\n  border: none;\n}\n\n.tiddler .defaultCommand {\n font-weight: bold;\n}\n\n.shadow .title {\n    color: [[ColorPalette::TertiaryDark]];\n}\n\n.title {\n color: [[ColorPalette::SecondaryDark]];\n}\n\n.subtitle {\n     color: [[ColorPalette::TertiaryDark]];\n}\n\n.toolbar {\n       color: [[ColorPalette::PrimaryMid]];\n}\n\n.tagging, .tagged {\n        border: 1px solid [[ColorPalette::TertiaryPale]];\n     background-color: [[ColorPalette::TertiaryPale]];\n}\n\n.selected .tagging, .selected .tagged {\n       background-color: [[ColorPalette::TertiaryLight]];\n    border: 1px solid [[ColorPalette::TertiaryMid]];\n}\n\n.tagging .listTitle, .tagged .listTitle {\n      color: [[ColorPalette::PrimaryDark]];\n}\n\n.tagging .button, .tagged .button {\n               border: none;\n}\n\n.footer {\n color: [[ColorPalette::TertiaryLight]];\n}\n\n.selected .footer {\n     color: [[ColorPalette::TertiaryMid]];\n}\n\n.sparkline {\n      background: [[ColorPalette::PrimaryPale]];\n    border: 0;\n}\n\n.sparktick {\n background: [[ColorPalette::PrimaryDark]];\n}\n\n.error, .errorButton {\n       color: [[ColorPalette::Foreground]];\n  background: [[ColorPalette::Error]];\n}\n\n.warning {\n color: [[ColorPalette::Foreground]];\n  background: [[ColorPalette::SecondaryPale]];\n}\n\n.cascade {\n background: [[ColorPalette::TertiaryPale]];\n   color: [[ColorPalette::TertiaryMid]];\n border: 1px solid [[ColorPalette::TertiaryMid]];\n}\n\n.imageLink, #displayArea .imageLink {\n  background: transparent;\n}\n\n.viewer .listTitle {list-style-type: none; margin-left: -2em;}\n\n.viewer .button {\n    border: 1px solid [[ColorPalette::SecondaryMid]];\n}\n\n.viewer blockquote {\n  border-left: 3px solid [[ColorPalette::TertiaryDark]];\n}\n\n.viewer table {\n  border: 2px solid [[ColorPalette::TertiaryDark]];\n}\n\n.viewer th, thead td {\n        background: [[ColorPalette::SecondaryMid]];\n   border: 1px solid [[ColorPalette::TertiaryDark]];\n     color: [[ColorPalette::Background]];\n}\n\n.viewer td, .viewer tr {\n   border: 1px solid [[ColorPalette::TertiaryDark]];\n}\n\n.viewer pre {\n border: 1px solid [[ColorPalette::SecondaryLight]];\n   background: [[ColorPalette::SecondaryPale]];\n}\n\n.viewer code {\n     color: [[ColorPalette::SecondaryDark]];\n}\n\n.viewer hr {\n    border: 0;\n    border-top: dashed 1px [[ColorPalette::TertiaryDark]];\n        color: [[ColorPalette::TertiaryDark]];\n}\n\n.highlight, .marked {\n    background: [[ColorPalette::SecondaryLight]];\n}\n\n.editor input {\n   border: 1px solid [[ColorPalette::PrimaryMid]];\n}\n\n.editor textarea {\n      border: 1px solid [[ColorPalette::PrimaryMid]];\n       width: 100%;\n}\n\n.editorFooter {\n    color: [[ColorPalette::TertiaryMid]];\n}\n\n/*}}}*/",
-       StyleSheetLayout: "/*{{{*/\n* html .tiddler {\n    height: 1%;\n}\n\nbody {\n   font-size: .75em;\n     font-family: arial,helvetica;\n margin: 0;\n    padding: 0;\n}\n\nh1,h2,h3,h4,h5 {\n    font-weight: bold;\n    text-decoration: none;\n        padding-left: 0.4em;\n}\n\nh1 {font-size: 1.35em;}\nh2 {font-size: 1.25em;}\nh3 {font-size: 1.1em;}\nh4 {font-size: 1em;}\nh5 {font-size: .9em;}\n\nhr {\n      height: 1px;\n}\n\na{\n text-decoration: none;\n}\n\ndt {font-weight: bold;}\n\nol { list-style-type: decimal }\nol ol { list-style-type: lower-alpha }\nol ol ol { list-style-type: lower-roman }\nol ol ol ol { list-style-type: decimal }\nol ol ol ol ol { list-style-type: lower-alpha }\nol ol ol ol ol ol { list-style-type: lower-roman }\nol ol ol ol ol ol ol { list-style-type: decimal }\n\n.txtOptionInput {\n     width: 11em;\n}\n\n#contentWrapper .chkOptionInput {\n  border: 0;\n}\n\n.externalLink {\n      text-decoration: underline;\n}\n\n.indent {margin-left:3em;}\n.outdent {margin-left:3em; text-indent:-3em;}\ncode.escaped {white-space:nowrap;}\n\n.tiddlyLinkExisting {\n      font-weight: bold;\n}\n\n.tiddlyLinkNonExisting {\n     font-style: italic;\n}\n\n/* the 'a' is required for IE, otherwise it renders the whole tiddler a bold */\na.tiddlyLinkNonExisting.shadow {\n   font-weight: bold;\n}\n\n#mainMenu .tiddlyLinkExisting, \n#mainMenu .tiddlyLinkNonExisting,\n#sidebarTabs .tiddlyLinkNonExisting{\n font-weight: normal;\n font-style: normal;\n}\n\n#sidebarTabs .tiddlyLinkExisting {\n font-weight: bold;\n font-style: normal;\n}\n\n.header {\n            position: relative;\n}\n\n.header a:hover {\n   background: transparent;\n}\n\n.headerShadow {\n        position: relative;\n   padding: 4.5em 0em 1em 1em;\n   left: -1px;\n   top: -1px;\n}\n\n.headerForeground {\n  position: absolute;\n   padding: 4.5em 0em 1em 1em;\n   left: 0px;\n    top: 0px;\n}\n\n.siteTitle {\n  font-size: 3em;\n}\n\n.siteSubtitle {\n font-size: 1.2em;\n}\n\n#mainMenu {\n   position: absolute;\n   left: 0;\n      width: 10em;\n  text-align: right;\n    line-height: 1.6em;\n   padding: 1.5em 0.5em 0.5em 0.5em;\n     font-size: 1.1em;\n}\n\n#sidebar {\n    position: absolute;\n   right: 3px;\n   width: 16em;\n  font-size: .9em;\n}\n\n#sidebarOptions {\n      padding-top: 0.3em;\n}\n\n#sidebarOptions a {\n margin: 0em 0.2em;\n    padding: 0.2em 0.3em;\n display: block;\n}\n\n#sidebarOptions input {\n margin: 0.4em 0.5em;\n}\n\n#sidebarOptions .sliderPanel {\n     margin-left: 1em;\n     padding: 0.5em;\n       font-size: .85em;\n}\n\n#sidebarOptions .sliderPanel a {\n      font-weight: bold;\n    display: inline;\n      padding: 0;\n}\n\n#sidebarOptions .sliderPanel input {\n        margin: 0 0 .3em 0;\n}\n\n#sidebarTabs .tabContents {\n width: 15em;\n  overflow: hidden;\n}\n\n.wizard {\n     padding: 0.1em 0em 0em 2em;\n}\n\n.wizard h1 {\n        font-size: 2em;\n       font-weight: bold;\n    background: none;\n     padding: 0em 0em 0em 0em;\n     margin: 0.4em 0em 0.2em 0em;\n}\n\n.wizard h2 {\n       font-size: 1.2em;\n     font-weight: bold;\n    background: none;\n     padding: 0em 0em 0em 0em;\n     margin: 0.2em 0em 0.2em 0em;\n}\n\n.wizardStep {\n      padding: 1em 1em 1em 1em;\n}\n\n.wizard .button {\n     margin: 0.5em 0em 0em 0em;\n    font-size: 1.2em;\n}\n\n#messageArea {\nposition:absolute; top:0; right:0; margin: 0.5em; padding: 0.5em;\n}\n\n*[id='messageArea'] {\nposition:fixed !important; z-index:99;}\n\n.messageToolbar {\ndisplay: block;\ntext-align: right;\n}\n\n#messageArea a{\n        text-decoration: underline;\n}\n\n.popup {\n    font-size: .9em;\n      padding: 0.2em;\n       list-style: none;\n     margin: 0;\n}\n\n.popup hr {\n  display: block;\n       height: 1px;\n  width: auto;\n  padding: 0;\n   margin: 0.2em 0em;\n}\n\n.listBreak {\n font-size: 1px;\n       line-height: 1px;\n}\n\n.listBreak div {\n      margin: 2px 0;\n}\n\n.popup li.disabled {\n     padding: 0.2em;\n}\n\n.popup li a{\n    display: block;\n       padding: 0.2em;\n}\n\n.tabset {\n       padding: 1em 0em 0em 0.5em;\n}\n\n.tab {\n      margin: 0em 0em 0em 0.25em;\n   padding: 2px;\n}\n\n.tabContents {\n    padding: 0.5em;\n}\n\n.tabContents ul, .tabContents ol {\n      margin: 0;\n    padding: 0;\n}\n\n.txtMainTab .tabContents li {\n       list-style: none;\n}\n\n.tabContents li.listLink {\n     margin-left: .75em;\n}\n\n#displayArea {\n     margin: 1em 17em 0em 14em;\n}\n\n\n.toolbar {\n text-align: right;\n    font-size: .9em;\n      visibility: hidden;\n}\n\n.selected .toolbar {\n        visibility: visible;\n}\n\n.tiddler {\n padding: 1em 1em 0em 1em;\n}\n\n.missing .viewer,.missing .title {\n    font-style: italic;\n}\n\n.title {\n    font-size: 1.6em;\n     font-weight: bold;\n}\n\n.missing .subtitle {\n display: none;\n}\n\n.subtitle {\n      font-size: 1.1em;\n}\n\n.tiddler .button {\n    padding: 0.2em 0.4em;\n}\n\n.tagging {\nmargin: 0.5em 0.5em 0.5em 0;\nfloat: left;\ndisplay: none;\n}\n\n.isTag .tagging {\ndisplay: block;\n}\n\n.tagged {\nmargin: 0.5em;\nfloat: right;\n}\n\n.tagging, .tagged {\nfont-size: 0.9em;\npadding: 0.25em;\n}\n\n.tagging ul, .tagged ul {\nlist-style: none;margin: 0.25em;\npadding: 0;\n}\n\n.tagClear {\nclear: both;\n}\n\n.footer {\n      font-size: .9em;\n}\n\n.footer li {\ndisplay: inline;\n}\n\n* html .viewer pre {\n      width: 99%;\n   padding: 0 0 1em 0;\n}\n\n.viewer {\n   line-height: 1.4em;\n   padding-top: 0.5em;\n}\n\n.viewer .button {\n   margin: 0em 0.25em;\n   padding: 0em 0.25em;\n}\n\n.viewer blockquote {\n       line-height: 1.5em;\n   padding-left: 0.8em;\n  margin-left: 2.5em;\n}\n\n.viewer ul, .viewer ol{\n     margin-left: 0.5em;\n   padding-left: 1.5em;\n}\n\n.viewer table {\n    border-collapse: collapse;\n    margin: 0.8em 1.0em;\n}\n\n.viewer th, .viewer td, .viewer tr,.viewer caption{\n        padding: 3px;\n}\n\n.viewer table.listView {\n  font-size: 0.85em;\n    margin: 0.8em 1.0em;\n}\n\n.viewer table.listView th, .viewer table.listView td, .viewer table.listView tr {\n  padding: 0px 3px 0px 3px;\n}\n\n.viewer pre {\n padding: 0.5em;\n       margin-left: 0.5em;\n   font-size: 1.2em;\n     line-height: 1.4em;\n   overflow: auto;\n}\n\n.viewer code {\n  font-size: 1.2em;\n     line-height: 1.4em;\n}\n\n.editor {\nfont-size: 1.1em;\n}\n\n.editor input, .editor textarea {\n        display: block;\n       width: 100%;\n  font: inherit;\n}\n\n.editorFooter {\n  padding: 0.25em 0em;\n  font-size: .9em;\n}\n\n.editorFooter .button {\npadding-top: 0px; padding-bottom: 0px;}\n\n.fieldsetFix {border: 0;\npadding: 0;\nmargin: 1px 0px 1px 0px;\n}\n\n.sparkline {\n line-height: 1em;\n}\n\n.sparktick {\n  outline: 0;\n}\n\n.zoomer {\n   font-size: 1.1em;\n     position: absolute;\n   padding: 1em;\n}\n\n.cascade {\n        font-size: 1.1em;\n     position: absolute;\n   overflow: hidden;\n}\n/*}}}*/",
-       StyleSheetPrint: "/*{{{*/\n@media print {\n#mainMenu, #sidebar, #messageArea, .toolbar {display: none ! important;}\n#displayArea {margin: 1em 1em 0em 1em;}\n/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */\nnoscript {display:none;}\n}\n/*}}}*/",
-       PageTemplate: "<!--{{{-->\n<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>\n<div class='headerShadow'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n<div class='headerForeground'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n</div>\n<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\n<div id='sidebar'>\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n</div>\n<div id='displayArea'>\n<div id='messageArea'></div>\n<div id='tiddlerDisplay'></div>\n</div>\n<!--}}}-->",
-       ViewTemplate: "<!--{{{-->\n<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler permalink references jump'></div>\n<div class='title' macro='view title'></div>\n<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date [[DD MMM YYYY]]'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date [[DD MMM YYYY]]'></span>)</div>\n<div class='tagging' macro='tagging'></div>\n<div class='tagged' macro='tags'></div>\n<div class='viewer' macro='view text wikified'></div>\n<div class='tagClear'></div>\n<!--}}}-->",
-       EditTemplate: "<!--{{{-->\n<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>\n<div class='title' macro='view title'></div>\n<div class='editor' macro='edit title'></div>\n<div class='editor' macro='edit text'></div>\n<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>\n<!--}}}-->",
-       MarkupPreHead: "<!--{{{-->\n<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml'/>\n<!--}}}-->",
-       MarkupPostHead: "",
-       MarkupPreBody: "",
-       MarkupPostBody: ""
-       };
-
-// ---------------------------------------------------------------------------------
-// Translateable strings
-// ---------------------------------------------------------------------------------
-
-// Strings in "double quotes" should be translated; strings in 'single quotes' should be left alone
-
-merge(config.options,{
-       txtUserName: "YourName"});
-
-merge(config.messages,{
-       customConfigError: "Problems were encountered loading plugins. See PluginManager for details",
-       pluginError: "Error: %0",
-       pluginDisabled: "Not executed because disabled via 'systemConfigDisable' tag",
-       pluginForced: "Executed because forced via 'systemConfigForce' tag",
-       pluginVersionError: "Not executed because this plugin needs a newer version of TiddlyWiki",
-       nothingSelected: "Nothing is selected. You must select one or more items first",
-       savedSnapshotError: "It appears that this TiddlyWiki has been incorrectly saved. Please see http://www.tiddlywiki.com/#DownloadSoftware for details",
-       subtitleUnknown: "(unknown)",
-       undefinedTiddlerToolTip: "The tiddler '%0' doesn't yet exist",
-       shadowedTiddlerToolTip: "The tiddler '%0' doesn't yet exist, but has a pre-defined shadow value",
-       tiddlerLinkTooltip: "%0 - %1, %2",
-       externalLinkTooltip: "External link to %0",
-       noTags: "There are no tagged tiddlers",
-       notFileUrlError: "You need to save this TiddlyWiki to a file before you can save changes",
-       cantSaveError: "It's not possible to save changes. This could be because your browser doesn't support saving (instead, use FireFox if you can), or because the pathname to your TiddlyWiki file contains illegal characters",
-       invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
-       backupSaved: "Backup saved",
-       backupFailed: "Failed to save backup file",
-       rssSaved: "RSS feed saved",
-       rssFailed: "Failed to save RSS feed file",
-       emptySaved: "Empty template saved",
-       emptyFailed: "Failed to save empty template file",
-       mainSaved: "Main TiddlyWiki file saved",
-       mainFailed: "Failed to save main TiddlyWiki file. Your changes have not been saved",
-       macroError: "Error in macro <<%0>>",
-       macroErrorDetails: "Error while executing macro <<%0>>:\n%1",
-       missingMacro: "No such macro",
-       overwriteWarning: "A tiddler named '%0' already exists. Choose OK to overwrite it",
-       unsavedChangesWarning: "WARNING! There are unsaved changes in TiddlyWiki\n\nChoose OK to save\nChoose CANCEL to discard",
-       confirmExit: "--------------------------------\n\nThere are unsaved changes in TiddlyWiki. If you continue you will lose those changes\n\n--------------------------------",
-       saveInstructions: "SaveChanges",
-       unsupportedTWFormat: "Unsupported TiddlyWiki format '%0'",
-       tiddlerSaveError: "Error when saving tiddler '%0'",
-       tiddlerLoadError: "Error when loading tiddler '%0'",
-       wrongSaveFormat: "Cannot save with storage format '%0'. Using standard format for save.",
-       invalidFieldName: "Invalid field name %0",
-       fieldCannotBeChanged: "Field '%0' cannot be changed"});
-
-merge(config.messages.messageClose,{
-       text: "close",
-       tooltip: "close this message area"});
-
-config.messages.dates.months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November","December"];
-config.messages.dates.days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
-config.messages.dates.shortMonths = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
-config.messages.dates.shortDays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
-
-merge(config.views.wikified.tag,{
-       labelNoTags: "no tags",
-       labelTags: "tags: ",
-       openTag: "Open tag '%0'",
-       tooltip: "Show tiddlers tagged with '%0'",
-       openAllText: "Open all",
-       openAllTooltip: "Open all of these tiddlers",
-       popupNone: "No other tiddlers tagged with '%0'"});
-
-merge(config.views.wikified,{
-       defaultText: "The tiddler '%0' doesn't yet exist. Double-click to create it",
-       defaultModifier: "(missing)",
-       shadowModifier: "(built-in shadow tiddler)",
-       createdPrompt: "created"});
-
-merge(config.views.editor,{
-       tagPrompt: "Type tags separated with spaces, [[use double square brackets]] if necessary, or add existing",
-       defaultText: "Type the text for '%0'"});
-
-merge(config.views.editor.tagChooser,{
-       text: "tags",
-       tooltip: "Choose existing tags to add to this tiddler",
-       popupNone: "There are no tags defined",
-       tagTooltip: "Add the tag '%0'"});
-
-merge(config.macros.search,{
-       label: "search",
-       prompt: "Search this TiddlyWiki",
-       accessKey: "F",
-       successMsg: "%0 tiddlers found matching %1",
-       failureMsg: "No tiddlers found matching %0"});
-
-merge(config.macros.tagging,{
-       label: "tagging: ",
-       labelNotTag: "not tagging",
-       tooltip: "List of tiddlers tagged with '%0'"});
-
-merge(config.macros.timeline,{
-       dateFormat: "DD MMM YYYY"});
-
-merge(config.macros.allTags,{
-       tooltip: "Show tiddlers tagged with '%0'",
-       noTags: "There are no tagged tiddlers"});
-
-config.macros.list.all.prompt = "All tiddlers in alphabetical order";
-config.macros.list.missing.prompt = "Tiddlers that have links to them but are not defined";
-config.macros.list.orphans.prompt = "Tiddlers that are not linked to from any other tiddlers";
-config.macros.list.shadowed.prompt = "Tiddlers shadowed with default contents";
-
-merge(config.macros.closeAll,{
-       label: "close all",
-       prompt: "Close all displayed tiddlers (except any that are being edited)"});
-
-merge(config.macros.permaview,{
-       label: "permaview",
-       prompt: "Link to an URL that retrieves all the currently displayed tiddlers"});
-
-merge(config.macros.saveChanges,{
-       label: "save changes",
-       prompt: "Save all tiddlers to create a new TiddlyWiki",
-       accessKey: "S"});
-
-merge(config.macros.newTiddler,{
-       label: "new tiddler",
-       prompt: "Create a new tiddler",
-       title: "New Tiddler",
-       accessKey: "N"});
-
-merge(config.macros.newJournal,{
-       label: "new journal",
-       prompt: "Create a new tiddler from the current date and time",
-       accessKey: "J"});
-
-merge(config.macros.plugins,{
-       skippedText: "(This plugin has not been executed because it was added since startup)",
-       noPluginText: "There are no plugins installed",
-       confirmDeleteText: "Are you sure you want to delete these tiddlers:\n\n%0",
-       listViewTemplate : {
-               columns: [
-                       {name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
-                       {name: 'Title', field: 'title', tiddlerLink: 'title', title: "Title", type: 'TiddlerLink'},
-                       {name: 'Forced', field: 'forced', title: "Forced", tag: 'systemConfigForce', type: 'TagCheckbox'},
-                       {name: 'Disabled', field: 'disabled', title: "Disabled", tag: 'systemConfigDisable', type: 'TagCheckbox'},
-                       {name: 'Executed', field: 'executed', title: "Loaded", type: 'Boolean', trueText: "Yes", falseText: "No"},
-                       {name: 'Error', field: 'error', title: "Status", type: 'Boolean', trueText: "Error", falseText: "OK"},
-                       {name: 'Log', field: 'log', title: "Log", type: 'StringList'}
-                       ],
-               rowClasses: [
-                       {className: 'error', field: 'error'},
-                       {className: 'warning', field: 'warning'}
-                       ],
-               actions: [
-                       {caption: "More actions...", name: ''},
-                       {caption: "Remove systemConfig tag", name: 'remove'},
-                       {caption: "Delete these tiddlers forever", name: 'delete'}
-                       ]}
-       });
-
-merge(config.macros.refreshDisplay,{
-       label: "refresh",
-       prompt: "Redraw the entire TiddlyWiki display"
-       });
-
-merge(config.macros.importTiddlers,{
-       readOnlyWarning: "You cannot import tiddlers into a read-only TiddlyWiki. Try opening the TiddlyWiki file from a file:// URL",
-       defaultPath: "http://www.tiddlywiki.com/index.html",
-       fetchLabel: "fetch",
-       fetchPrompt: "Fetch the tiddlywiki file",
-       fetchError: "There were problems fetching the tiddlywiki file",
-       confirmOverwriteText: "Are you sure you want to overwrite these tiddlers:\n\n%0",
-       wizardTitle: "Import tiddlers from another TiddlyWiki file",
-       step1: "Step 1: Locate the TiddlyWiki file",
-       step1prompt: "Enter the URL or pathname here: ",
-       step1promptFile: "...or browse for a file: ",
-       step1promptFeeds: "...or select a pre-defined feed: ",
-       step1feedPrompt: "Choose...",
-       step2: "Step 2: Loading TiddlyWiki file",
-       step2Text: "Please wait while the file is loaded from: %0",
-       step3: "Step 3: Choose the tiddlers to import",
-       step4: "%0 tiddler(s) imported",
-       step5: "Done",
-       listViewTemplate: {
-               columns: [
-                       {name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
-                       {name: 'Title', field: 'title', title: "Title", type: 'String'},
-                       {name: 'Snippet', field: 'text', title: "Snippet", type: 'String'},
-                       {name: 'Tags', field: 'tags', title: "Tags", type: 'Tags'}
-                       ],
-               rowClasses: [
-                       ],
-               actions: [
-                       {caption: "More actions...", name: ''},
-                       {caption: "Import these tiddlers", name: 'import'}
-                       ]}
-       });
-
-merge(config.commands.closeTiddler,{
-       text: "close",
-       tooltip: "Close this tiddler"});
-
-merge(config.commands.closeOthers,{
-       text: "close others",
-       tooltip: "Close all other tiddlers"});
-
-merge(config.commands.editTiddler,{
-       text: "edit",
-       tooltip: "Edit this tiddler",
-       readOnlyText: "view",
-       readOnlyTooltip: "View the source of this tiddler"});
-
-merge(config.commands.saveTiddler,{
-       text: "done",
-       tooltip: "Save changes to this tiddler"});
-
-merge(config.commands.cancelTiddler,{
-       text: "cancel",
-       tooltip: "Undo changes to this tiddler",
-       warning: "Are you sure you want to abandon your changes to '%0'?",
-       readOnlyText: "done",
-       readOnlyTooltip: "View this tiddler normally"});
-
-merge(config.commands.deleteTiddler,{
-       text: "delete",
-       tooltip: "Delete this tiddler",
-       warning: "Are you sure you want to delete '%0'?"});
-
-merge(config.commands.permalink,{
-       text: "permalink",
-       tooltip: "Permalink for this tiddler"});
-
-merge(config.commands.references,{
-       text: "references",
-       tooltip: "Show tiddlers that link to this one",
-       popupNone: "No references"});
-
-merge(config.commands.jump,{
-       text: "jump",
-       tooltip: "Jump to another open tiddler"});
-
-merge(config.shadowTiddlers,{
-       DefaultTiddlers: "GettingStarted",
-       MainMenu: "GettingStarted",
-       SiteTitle: "My TiddlyWiki",
-       SiteSubtitle: "a reusable non-linear personal web notebook",
-       SiteUrl: "http://www.tiddlywiki.com/",
-       GettingStarted: "To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:\n* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)\n* MainMenu: The menu (usually on the left)\n* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened\nYou'll also need to enter your username for signing your edits: <<option txtUserName>>",
-       SideBarOptions: "<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>",
-       OptionsPanel: "These InterfaceOptions for customising TiddlyWiki are saved in your browser\n\nYour username for signing your edits. Write it as a WikiWord (eg JoeBloggs)\n\n<<option txtUserName>>\n<<option chkSaveBackups>> SaveBackups\n<<option chkAutoSave>> AutoSave\n<<option chkRegExpSearch>> RegExpSearch\n<<option chkCaseSensitiveSearch>> CaseSensitiveSearch\n<<option chkAnimate>> EnableAnimations\n\n----\nAdvancedOptions\nPluginManager\nImportTiddlers",
-       AdvancedOptions: "<<option chkGenerateAnRssFeed>> GenerateAnRssFeed\n<<option chkOpenInNewWindow>> OpenLinksInNewWindow\n<<option chkSaveEmptyTemplate>> SaveEmptyTemplate\n<<option chkToggleLinks>> Clicking on links to tiddlers that are already open causes them to close\n^^(override with Control or other modifier key)^^\n<<option chkHttpReadOnly>> HideEditingFeatures when viewed over HTTP\n<<option chkForceMinorUpdate>> Treat edits as MinorChanges by preserving date and time\n^^(override with Shift key when clicking 'done' or by pressing Ctrl-Shift-Enter^^\n<<option chkConfirmDelete>> ConfirmBeforeDeleting\nMaximum number of lines in a tiddler edit box: <<option txtMaxEditRows>>\nFolder name for backup files: <<option txtBackupFolder>>\n<<option chkInsertTabs>> Use tab key to insert tab characters instead of jumping to next field",
-       SideBarTabs: "<<tabs txtMainTab Timeline Timeline TabTimeline All 'All tiddlers' TabAll Tags 'All tags' TabTags More 'More lists' TabMore>>",
-       TabTimeline: "<<timeline>>",
-       TabAll: "<<list all>>",
-       TabTags: "<<allTags>>",
-       TabMore: "<<tabs txtMoreTab Missing 'Missing tiddlers' TabMoreMissing Orphans 'Orphaned tiddlers' TabMoreOrphans Shadowed 'Shadowed tiddlers' TabMoreShadowed>>",
-       TabMoreMissing: "<<list missing>>",
-       TabMoreOrphans: "<<list orphans>>",
-       TabMoreShadowed: "<<list shadowed>>",
-       PluginManager: "<<plugins>>",
-       ImportTiddlers: "<<importTiddlers>>"});
-
-// ---------------------------------------------------------------------------------
-// Main
-// ---------------------------------------------------------------------------------
-
-var params = null; // Command line parameters
-var store = null; // TiddlyWiki storage
-var story = null; // Main story
-var formatter = null; // Default formatters for the wikifier
-config.parsers = {}; // Hashmap of alternative parsers for the wikifier
-var anim = new Animator(); // Animation engine
-var readOnly = false; // Whether we're in readonly mode
-var highlightHack = null; // Embarrassing hack department...
-var hadConfirmExit = false; // Don't warn more than once
-var safeMode = false; // Disable all plugins and cookies
-var installedPlugins = []; // Information filled in when plugins are executed
-var startingUp = false; // Whether we're in the process of starting up
-var pluginInfo,tiddler; // Used to pass information to plugins in loadPlugins()
-
-// Whether to use the JavaSaver applet
-var useJavaSaver = config.browser.isSafari || config.browser.isOpera;
-
-// Starting up
-function main()
-{
-       var now, then = new Date();
-       startingUp = true;
-       window.onbeforeunload = function(e) {if(window.confirmExit) return confirmExit();};
-       params = getParameters();
-       if(params)
-               params = params.parseParams("open",null,false);
-       store = new TiddlyWiki();
-       invokeParamifier(params,"oninit");
-       story = new Story("tiddlerDisplay","tiddler");
-       addEvent(document,"click",Popup.onDocumentClick);
-       saveTest();
-       loadOptionsCookie();
-       for(var s=0; s<config.notifyTiddlers.length; s++)
-               store.addNotification(config.notifyTiddlers[s].name,config.notifyTiddlers[s].notify);
-       store.loadFromDiv("storeArea","store",true);
-       invokeParamifier(params,"onload");
-       var pluginProblem = loadPlugins();
-       formatter = new Formatter(config.formatters);
-       readOnly = (window.location.protocol == "file:") ? false : config.options.chkHttpReadOnly;
-       invokeParamifier(params,"onconfig");
-       store.notifyAll();
-       restart();
-       if(pluginProblem)
-               {
-               story.displayTiddler(null,"PluginManager");
-               displayMessage(config.messages.customConfigError);
-               }
-       now = new Date();
-       if(config.displayStartupTime)
-               displayMessage("TiddlyWiki startup in " + (now-then)/1000 + " seconds");
-       startingUp = false;
-}
-
-// Restarting
-function restart()
-{
-       invokeParamifier(params,"onstart");
-       if(story.isEmpty())
-               {
-               var defaultParams = store.getTiddlerText("DefaultTiddlers").parseParams("open",null,false);
-               invokeParamifier(defaultParams,"onstart");
-               }
-       window.scrollTo(0,0);
-}
-
-function saveTest()
-{
-       var saveTest = document.getElementById("saveTest");
-       if(saveTest.hasChildNodes())
-               alert(config.messages.savedSnapshotError);
-       saveTest.appendChild(document.createTextNode("savetest"));
-}
-
-function loadPlugins()
-{
-       if(safeMode)
-               return false;
-       var configTiddlers = store.getTaggedTiddlers("systemConfig");
-       installedPlugins = [];
-       var hadProblem = false;
-       for(var t=0; t<configTiddlers.length; t++)
-               {
-               tiddler = configTiddlers[t];
-               pluginInfo = getPluginInfo(tiddler);
-               if(isPluginExecutable(pluginInfo))
-                       {
-                       pluginInfo.executed = true;
-                       pluginInfo.error = false;
-                       try
-                               {
-                               if(tiddler.text && tiddler.text != "")
-                                       window.eval(tiddler.text);
-                               }
-                       catch(e)
-                               {
-                               pluginInfo.log.push(config.messages.pluginError.format([exceptionText(e)]));
-                               pluginInfo.error = true;
-                               hadProblem = true;
-                               }
-                       }
-               else
-                       pluginInfo.warning = true;
-               installedPlugins.push(pluginInfo);
-               }
-       return hadProblem;
-}
-
-function getPluginInfo(tiddler)
-{
-       var p = store.getTiddlerSlices(tiddler.title,["Name","Description","Version","CoreVersion","Date","Source","Author","License","Browsers"]);
-       p.tiddler = tiddler;
-       p.title = tiddler.title;
-       p.log = [];
-       return p;
-}
-
-// Check that a particular plugin is valid for execution
-function isPluginExecutable(plugin)
-{
-       if(plugin.tiddler.isTagged("systemConfigDisable"))
-               return verifyTail(plugin,false,config.messages.pluginDisabled);
-       if(plugin.tiddler.isTagged("systemConfigForce"))
-               return verifyTail(plugin,true,config.messages.pluginForced);
-       if(plugin["CoreVersion"])
-               {
-               var coreVersion = plugin["CoreVersion"].split(".");
-               var w = parseInt(coreVersion[0]) - version.major;
-               if(w == 0 && coreVersion[1])
-                       w = parseInt(coreVersion[1]) - version.minor;
-               if(w == 0 && coreVersion[2])
-                       w = parseInt(coreVersion[2]) - version.revision;
-               if(w > 0)
-                       return verifyTail(plugin,false,config.messages.pluginVersionError);
-               }
-       return true;
-}
-
-function verifyTail(plugin,result,message)
-{
-       plugin.log.push(message);
-       return result;
-}
-
-function invokeMacro(place,macro,params,wikifier,tiddler)
-{
-       try
-               {
-               var m = config.macros[macro];
-               if(m && m.handler)
-                       m.handler(place,macro,params.readMacroParams(),wikifier,params,tiddler);
-               else
-                       createTiddlyError(place,config.messages.macroError.format([macro]),config.messages.macroErrorDetails.format([macro,config.messages.missingMacro]));
-               }
-       catch(ex)
-               {
-               createTiddlyError(place,config.messages.macroError.format([macro]),config.messages.macroErrorDetails.format([macro,ex.toString()]));
-               }
-}
-
-// ---------------------------------------------------------------------------------
-// Paramifiers
-// ---------------------------------------------------------------------------------
-
-function getParameters()
-{
-       var p = null;
-       if(window.location.hash)
-               {
-               p = decodeURI(window.location.hash.substr(1));
-               if(config.browser.firefoxDate != null && config.browser.firefoxDate[1] < "20051111")
-                       p = convertUTF8ToUnicode(p);
-               }
-       return p;
-}
-
-function invokeParamifier(params,handler)
-{
-       if(!params || params.length == undefined || params.length <= 1)
-               return;
-       for(var t=1; t<params.length; t++)
-               {
-               var p = config.paramifiers[params[t].name];
-               if(p && p[handler] instanceof Function)
-                       p[handler](params[t].value);
-               }
-}
-
-config.paramifiers = {};
-
-config.paramifiers.start = {
-       oninit: function(v) {
-               safeMode = v.toLowerCase() == "safe";
-               }
-};
-
-config.paramifiers.open = {
-       onstart: function(v) {
-               story.displayTiddler("bottom",v,null,false,false);
-               }
-};
-
-config.paramifiers.story = {
-       onstart: function(v) {
-               var list = store.getTiddlerText(v,"").parseParams("open",null,false);
-               invokeParamifier(list,"onstart");
-               }
-};
-
-config.paramifiers.search = {
-       onstart: function(v) {
-               story.search(v,false,false);
-               }
-};
-
-config.paramifiers.searchRegExp = {
-       onstart: function(v) {
-               story.prototype.search(v,false,true);
-               }
-};
-
-config.paramifiers.tag = {
-       onstart: function(v) {
-               var tagged = store.getTaggedTiddlers(v,"title");
-               for(var t=0; t<tagged.length; t++)
-                       story.displayTiddler("bottom",tagged[t].title,null,false,false);
-               }
-};
-
-config.paramifiers.newTiddler = {
-       onstart: function(v) {
-               if(!readOnly)
-                       {
-                       story.displayTiddler(null,v,DEFAULT_EDIT_TEMPLATE);
-                       story.focusTiddler(v,"text");
-                       }
-               }
-};
-
-config.paramifiers.newJournal = {
-       onstart: function(v) {
-               if(!readOnly)
-                       {
-                       var now = new Date();
-                       var title = now.formatString(v.trim());
-                       story.displayTiddler(null,title,DEFAULT_EDIT_TEMPLATE);
-                       story.focusTiddler(title,"text");
-                       }
-               }
-};
-
-// ---------------------------------------------------------------------------------
-// Formatter helpers
-// ---------------------------------------------------------------------------------
-
-function Formatter(formatters)
-{
-       this.formatters = [];
-       var pattern = [];
-       for(var n=0; n<formatters.length; n++)
-               {
-               pattern.push("(" + formatters[n].match + ")");
-               this.formatters.push(formatters[n]);
-               }
-       this.formatterRegExp = new RegExp(pattern.join("|"),"mg");
-}
-
-config.formatterHelpers = {
-
-       createElementAndWikify: function(w)
-       {
-               w.subWikifyTerm(createTiddlyElement(w.output,this.element),this.termRegExp);
-       },
-       
-       inlineCssHelper: function(w)
-       {
-               var styles = [];
-               config.textPrimitives.cssLookaheadRegExp.lastIndex = w.nextMatch;
-               var lookaheadMatch = config.textPrimitives.cssLookaheadRegExp.exec(w.source);
-               while(lookaheadMatch && lookaheadMatch.index == w.nextMatch)
-                       {
-                       var s,v;
-                       if(lookaheadMatch[1])
-                               {
-                               s = lookaheadMatch[1].unDash();
-                               v = lookaheadMatch[2];
-                               }
-                       else
-                               {
-                               s = lookaheadMatch[3].unDash();
-                               v = lookaheadMatch[4];
-                               }
-                       if (s=="bgcolor")
-                               s = "backgroundColor";
-                       styles.push({style: s, value: v});
-                       w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
-                       config.textPrimitives.cssLookaheadRegExp.lastIndex = w.nextMatch;
-                       lookaheadMatch = config.textPrimitives.cssLookaheadRegExp.exec(w.source);
-                       }
-               return styles;
-       },
-
-       applyCssHelper: function(e,styles)
-       {
-               for(var t=0; t< styles.length; t++)
-                       {
-                       try
-                               {
-                               e.style[styles[t].style] = styles[t].value;
-                               }
-                       catch (ex)
-                               {
-                               }
-                       }
-       },
-
-       enclosedTextHelper: function(w)
-       {
-               this.lookaheadRegExp.lastIndex = w.matchStart;
-               var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
-               if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
-                       {
-                       var text = lookaheadMatch[1];
-                       if(config.browser.isIE)
-                               text = text.replace(/\n/g,"\r");
-                       createTiddlyElement(w.output,this.element,null,null,text);
-                       w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
-                       }
-       },
-
-       isExternalLink: function(link)
-       {
-               if(store.tiddlerExists(link) || store.isShadowTiddler(link))
-                       {
-                       //# Definitely not an external link
-                       return false;
-                       }
-               var urlRegExp = new RegExp(config.textPrimitives.urlPattern,"mg");
-               if(urlRegExp.exec(link))
-                       {
-                       // Definitely an external link
-                       return true;
-                       }
-               if (link.indexOf(".")!=-1 || link.indexOf("\\")!=-1 || link.indexOf("/")!=-1)
-                       {
-                       //# Link contains . / or \ so is probably an external link
-                       return true;
-                       }
-               //# Otherwise assume it is not an external link
-               return false;
-       }
-
-};
-
-// ---------------------------------------------------------------------------------
-// Standard formatters
-// ---------------------------------------------------------------------------------
-
-config.formatters = [
-{
-       name: "table",
-       match: "^\\|(?:[^\\n]*)\\|(?:[fhck]?)$",
-       lookaheadRegExp: /^\|([^\n]*)\|([fhck]?)$/mg,
-       rowTermRegExp: /(\|(?:[fhck]?)$\n?)/mg,
-       cellRegExp: /(?:\|([^\n\|]*)\|)|(\|[fhck]?$\n?)/mg,
-       cellTermRegExp: /((?:\x20*)\|)/mg,
-       rowTypes: {"c":"caption", "h":"thead", "":"tbody", "f":"tfoot"},
-
-       handler: function(w)
-       {
-               var table = createTiddlyElement(w.output,"table");
-               var prevColumns = [];
-               var currRowType = null;
-               var rowContainer;
-               var rowCount = 0;
-               w.nextMatch = w.matchStart;
-               this.lookaheadRegExp.lastIndex = w.nextMatch;
-               var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
-               while(lookaheadMatch && lookaheadMatch.index == w.nextMatch)
-                       {
-                       var nextRowType = lookaheadMatch[2];
-                       if(nextRowType == "k")
-                               {
-                               table.className = lookaheadMatch[1];
-                               w.nextMatch += lookaheadMatch[0].length+1;
-                               }
-                       else
-                               {
-                               if(nextRowType != currRowType)
-                                       {
-                                       rowContainer = createTiddlyElement(table,this.rowTypes[nextRowType]);
-                                       currRowType = nextRowType;
-                                       }
-                               if(currRowType == "c")
-                                       {
-                                       // Caption
-                                       w.nextMatch++;
-                                       if(rowContainer != table.firstChild)
-                                               table.insertBefore(rowContainer,table.firstChild);
-                                       rowContainer.setAttribute("align",rowCount == 0?"top":"bottom");
-                                       w.subWikifyTerm(rowContainer,this.rowTermRegExp);
-                                       }
-                               else
-                                       {
-                                       this.rowHandler(w,createTiddlyElement(rowContainer,"tr",null,(rowCount&1)?"oddRow":"evenRow"),prevColumns);
-                                       rowCount++;
-                                       }
-                               }
-                       this.lookaheadRegExp.lastIndex = w.nextMatch;
-                       lookaheadMatch = this.lookaheadRegExp.exec(w.source);
-                       }
-       },
-       rowHandler: function(w,e,prevColumns)
-       {
-               var col = 0;
-               var colSpanCount = 1;
-               var prevCell = null;
-               this.cellRegExp.lastIndex = w.nextMatch;
-               var cellMatch = this.cellRegExp.exec(w.source);
-               while(cellMatch && cellMatch.index == w.nextMatch)
-                       {
-                       if(cellMatch[1] == "~")
-                               {
-                               // Rowspan
-                               var last = prevColumns[col];
-                               if(last)
-                                       {
-                                       last.rowSpanCount++;
-                                       last.element.setAttribute("rowspan",last.rowSpanCount);
-                                       last.element.setAttribute("rowSpan",last.rowSpanCount); // Needed for IE
-                                       last.element.valign = "center";
-                                       }
-                               w.nextMatch = this.cellRegExp.lastIndex-1;
-                               }
-                       else if(cellMatch[1] == ">")
-                               {
-                               // Colspan
-                               colSpanCount++;
-                               w.nextMatch = this.cellRegExp.lastIndex-1;
-                               }
-                       else if(cellMatch[2])
-                               {
-                               // End of row
-                               if(prevCell && colSpanCount > 1)
-                                       {
-                                       prevCell.setAttribute("colspan",colSpanCount);
-                                       prevCell.setAttribute("colSpan",colSpanCount); // Needed for IE
-                                       }
-                               w.nextMatch = this.cellRegExp.lastIndex;
-                               break;
-                               }
-                       else
-                               {
-                               // Cell
-                               w.nextMatch++;
-                               var styles = config.formatterHelpers.inlineCssHelper(w);
-                               var spaceLeft = false;
-                               var chr = w.source.substr(w.nextMatch,1);
-                               while(chr == " ")
-                                       {
-                                       spaceLeft = true;
-                                       w.nextMatch++;
-                                       chr = w.source.substr(w.nextMatch,1);
-                                       }
-                               var cell;
-                               if(chr == "!")
-                                       {
-                                       cell = createTiddlyElement(e,"th");
-                                       w.nextMatch++;
-                                       }
-                               else
-                                       cell = createTiddlyElement(e,"td");
-                               prevCell = cell;
-                               prevColumns[col] = {rowSpanCount:1, element:cell};
-                               if(colSpanCount > 1)
-                                       {
-                                       cell.setAttribute("colspan",colSpanCount);
-                                       cell.setAttribute("colSpan",colSpanCount); // Needed for IE
-                                       colSpanCount = 1;
-                                       }
-                               config.formatterHelpers.applyCssHelper(cell,styles);
-                               w.subWikifyTerm(cell,this.cellTermRegExp);
-                               if(w.matchText.substr(w.matchText.length-2,1) == " ") // spaceRight
-                                       cell.align = spaceLeft ? "center" : "left";
-                               else if(spaceLeft)
-                                       cell.align = "right";
-                               w.nextMatch--;
-                               }
-                       col++;
-                       this.cellRegExp.lastIndex = w.nextMatch;
-                       cellMatch = this.cellRegExp.exec(w.source);
-                       }
-       }
-},
-
-{
-       name: "heading",
-       match: "^!{1,5}",
-       termRegExp: /(\n)/mg,
-       handler: function(w)
-       {
-               w.subWikifyTerm(createTiddlyElement(w.output,"h" + w.matchLength),this.termRegExp);
-       }
-},
-
-{
-       name: "list",
-       match: "^(?:(?:(?:\\*)|(?:#)|(?:;)|(?::))+)",
-       lookaheadRegExp: /^(?:(?:(\*)|(#)|(;)|(:))+)/mg,
-       termRegExp: /(\n)/mg,
-       handler: function(w)
-       {
-               var placeStack = [w.output];
-               var currLevel = 0, currType = null;
-               var listLevel, listType, itemType;
-               w.nextMatch = w.matchStart;
-               this.lookaheadRegExp.lastIndex = w.nextMatch;
-               var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
-               while(lookaheadMatch && lookaheadMatch.index == w.nextMatch)
-                       {
-                       if(lookaheadMatch[1])
-                               {
-                               listType = "ul";
-                               itemType = "li";
-                               }
-                       else if(lookaheadMatch[2])
-                               {
-                               listType = "ol";
-                               itemType = "li";
-                               }
-                       else if(lookaheadMatch[3])
-                               {
-                               listType = "dl";
-                               itemType = "dt";
-                               }
-                       else if(lookaheadMatch[4])
-                               {
-                               listType = "dl";
-                               itemType = "dd";
-                               }
-                       listLevel = lookaheadMatch[0].length;
-                       w.nextMatch += lookaheadMatch[0].length;
-                       if(listLevel > currLevel)
-                               {
-                               for(var t=currLevel; t<listLevel; t++)
-                                       placeStack.push(createTiddlyElement(placeStack[placeStack.length-1],listType));
-                               }
-                       else if(listLevel < currLevel)
-                               {
-                               for(var t=currLevel; t>listLevel; t--)
-                                       placeStack.pop();
-                               }
-                       else if(listLevel == currLevel && listType != currType)
-                               {
-                               placeStack.pop();
-                               placeStack.push(createTiddlyElement(placeStack[placeStack.length-1],listType));
-                               }
-                       currLevel = listLevel;
-                       currType = listType;
-                       var e = createTiddlyElement(placeStack[placeStack.length-1],itemType);
-                       w.subWikifyTerm(e,this.termRegExp);
-                       this.lookaheadRegExp.lastIndex = w.nextMatch;
-                       lookaheadMatch = this.lookaheadRegExp.exec(w.source);
-               }
-       }
-},
-
-{
-       name: "quoteByBlock",
-       match: "^<<<\\n",
-       termRegExp: /(^<<<(\n|$))/mg,
-       element: "blockquote",
-       handler: config.formatterHelpers.createElementAndWikify
-},
-
-{
-       name: "quoteByLine",
-       match: "^>+",
-       lookaheadRegExp: /^>+/mg,
-       termRegExp: /(\n)/mg,
-       element: "blockquote",
-       handler: function(w)
-       {
-               var placeStack = [w.output];
-               var currLevel = 0;
-               var newLevel = w.matchLength;
-               var t;
-               do {
-                       if(newLevel > currLevel)
-                               {
-                               for(t=currLevel; t<newLevel; t++)
-                                       placeStack.push(createTiddlyElement(placeStack[placeStack.length-1],this.element));
-                               }
-                       else if(newLevel < currLevel)
-                               {
-                               for(t=currLevel; t>newLevel; t--)
-                                       placeStack.pop();
-                               }
-                       currLevel = newLevel;
-                       w.subWikifyTerm(placeStack[placeStack.length-1],this.termRegExp);
-                       createTiddlyElement(placeStack[placeStack.length-1],"br");
-                       this.lookaheadRegExp.lastIndex = w.nextMatch;
-                       var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
-                       var matched = lookaheadMatch && lookaheadMatch.index == w.nextMatch;
-                       if(matched)
-                               {
-                               newLevel = lookaheadMatch[0].length;
-                               w.nextMatch += lookaheadMatch[0].length;
-                               }
-               } while(matched);
-       }
-},
-
-{
-       name: "rule",
-       match: "^----+$\\n?",
-       handler: function(w)
-       {
-               createTiddlyElement(w.output,"hr");
-       }
-},
-
-{
-       name: "monospacedByLine",
-       match: "^\\{\\{\\{\\n",
-       lookaheadRegExp: /^\{\{\{\n((?:^[^\n]*\n)+?)(^\}\}\}$\n?)/mg,
-       element: "pre",
-       handler: config.formatterHelpers.enclosedTextHelper
-},
-
-{
-       name: "monospacedByLineForCSS",
-       match: "^/\\*[\\{]{3}\\*/\\n",
-       lookaheadRegExp: /\/\*[\{]{3}\*\/\n*((?:^[^\n]*\n)+?)(\n*^\/\*[\}]{3}\*\/$\n?)/mg,
-       element: "pre",
-       handler: config.formatterHelpers.enclosedTextHelper
-},
-
-{
-       name: "monospacedByLineForPlugin",
-       match: "^//\\{\\{\\{\\n",
-       lookaheadRegExp: /^\/\/\{\{\{\n\n*((?:^[^\n]*\n)+?)(\n*^\/\/\}\}\}$\n?)/mg,
-       element: "pre",
-       handler: config.formatterHelpers.enclosedTextHelper
-},
-
-{
-       name: "monospacedByLineForTemplate",
-       match: "^<!--[\\{]{3}-->\\n",
-       lookaheadRegExp: /<!--[\{]{3}-->\n*((?:^[^\n]*\n)+?)(\n*^<!--[\}]{3}-->$\n?)/mg, 
-       element: "pre",
-       handler: config.formatterHelpers.enclosedTextHelper
-},
-
-{
-       name: "wikifyCommentForPlugin", 
-       match: "^/\\*\\*\\*\\n",
-       termRegExp: /(^\*\*\*\/\n)/mg,
-       handler: function(w)
-       {
-               w.subWikifyTerm(w.output,this.termRegExp);
-       }
-},
-
-{
-       name: "wikifyCommentForTemplate", 
-       match: "^<!---\\n",
-       termRegExp: /(^--->\n)/mg,
-       handler: function(w) 
-       {
-               w.subWikifyTerm(w.output,this.termRegExp);
-       }
-},
-
-{
-       name: "macro",
-       match: "<<",
-       lookaheadRegExp: /<<([^>\s]+)(?:\s*)((?:[^>]|(?:>(?!>)))*)>>/mg,
-       handler: function(w)
-       {
-               this.lookaheadRegExp.lastIndex = w.matchStart;
-               var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
-               if(lookaheadMatch && lookaheadMatch.index == w.matchStart && lookaheadMatch[1])
-                       {
-                       w.nextMatch = this.lookaheadRegExp.lastIndex;
-                       invokeMacro(w.output,lookaheadMatch[1],lookaheadMatch[2],w,w.tiddler);
-                       }
-       }
-},
-
-{
-       name: "prettyLink",
-       match: "\\[\\[",
-       lookaheadRegExp: /\[\[(.*?)(?:\|(~)?(.*?))?\]\]/mg,
-       handler: function(w)
-       {
-               this.lookaheadRegExp.lastIndex = w.matchStart;
-               var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
-               if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
-                       {
-                       var e;
-                       var text = lookaheadMatch[1];
-                       if(lookaheadMatch[3])
-                               {
-                               // Pretty bracketted link
-                               var link = lookaheadMatch[3];
-                               e = (!lookaheadMatch[2] && config.formatterHelpers.isExternalLink(link))
-                                               ? createExternalLink(w.output,link)
-                                               : createTiddlyLink(w.output,link,false,null,w.isStatic);
-                               }
-                       else
-                               {
-                               // Simple bracketted link
-                               e = createTiddlyLink(w.output,text,false,null,w.isStatic);
-                               }
-                       createTiddlyText(e,text);
-                       w.nextMatch = this.lookaheadRegExp.lastIndex;
-                       }
-       }
-},
-
-{
-       name: "unWikiLink",
-       match: config.textPrimitives.unWikiLink+config.textPrimitives.wikiLink,
-       handler: function(w)
-       {
-               w.outputText(w.output,w.matchStart+1,w.nextMatch);
-       }
-},
-
-{
-       name: "wikiLink",
-       match: config.textPrimitives.wikiLink,
-       handler: function(w)
-       {
-               if(w.matchStart > 0)
-                       {
-                       var preRegExp = new RegExp(config.textPrimitives.anyLetterStrict,"mg");
-                       preRegExp.lastIndex = w.matchStart-1;
-                       var preMatch = preRegExp.exec(w.source);
-                       if(preMatch.index == w.matchStart-1)
-                               {
-                               w.outputText(w.output,w.matchStart,w.nextMatch);
-                               return;
-                               }
-                       }
-               if(w.autoLinkWikiWords == true || store.isShadowTiddler(w.matchText))
-                       {
-                       var link = createTiddlyLink(w.output,w.matchText,false,null,w.isStatic);
-                       w.outputText(link,w.matchStart,w.nextMatch);
-                       }
-               else
-                       {
-                       w.outputText(w.output,w.matchStart,w.nextMatch);
-                       }
-       }
-},
-
-{
-       name: "urlLink",
-       match: config.textPrimitives.urlPattern,
-       handler: function(w)
-       {
-               w.outputText(createExternalLink(w.output,w.matchText),w.matchStart,w.nextMatch);
-       }
-},
-
-{
-       name: "image",
-       match: "\\[[<>]?[Ii][Mm][Gg]\\[",
-       lookaheadRegExp: /\[(<?)(>?)[Ii][Mm][Gg]\[(?:([^\|\]]+)\|)?([^\[\]\|]+)\](?:\[([^\]]*)\])?\]/mg,
-       handler: function(w)
-       {
-               this.lookaheadRegExp.lastIndex = w.matchStart;
-               var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
-               if(lookaheadMatch && lookaheadMatch.index == w.matchStart) // Simple bracketted link
-                       {
-                       var e = w.output;
-                       if(lookaheadMatch[5])
-                               {
-                               var link = lookaheadMatch[5];
-                               e = config.formatterHelpers.isExternalLink(link) ? createExternalLink(w.output,link) : createTiddlyLink(w.output,link,false,null,w.isStatic);
-                               addClass(e,"imageLink");
-                               }
-                       var img = createTiddlyElement(e,"img");
-                       if(lookaheadMatch[1])
-                               img.align = "left";
-                       else if(lookaheadMatch[2])
-                               img.align = "right";
-                       if(lookaheadMatch[3])
-                               img.title = lookaheadMatch[3];
-                       img.src = lookaheadMatch[4];
-                       w.nextMatch = this.lookaheadRegExp.lastIndex;
-                       }
-       }
-},
-
-{
-       name: "html",
-       match: "<[Hh][Tt][Mm][Ll]>",
-       lookaheadRegExp: /<[Hh][Tt][Mm][Ll]>((?:.|\n)*?)<\/[Hh][Tt][Mm][Ll]>/mg,
-       handler: function(w)
-       {
-               this.lookaheadRegExp.lastIndex = w.matchStart;
-               var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
-               if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
-                       {
-                       createTiddlyElement(w.output,"span").innerHTML = lookaheadMatch[1];
-                       w.nextMatch = this.lookaheadRegExp.lastIndex;
-                       }
-       }
-},
-
-{
-       name: "commentByBlock",
-       match: "/%",
-       lookaheadRegExp: /\/%((?:.|\n)*?)%\//mg,
-       handler: function(w)
-       {
-               this.lookaheadRegExp.lastIndex = w.matchStart;
-               var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
-               if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
-                       w.nextMatch = this.lookaheadRegExp.lastIndex;
-       }
-},
-
-{
-       name: "boldByChar",
-       match: "''",
-       termRegExp: /('')/mg,
-       element: "strong",
-       handler: config.formatterHelpers.createElementAndWikify
-},
-
-{
-       name: "italicByChar",
-       match: "//",
-       termRegExp: /(\/\/)/mg,
-       element: "em",
-       handler: config.formatterHelpers.createElementAndWikify
-},
-
-{
-       name: "underlineByChar",
-       match: "__",
-       termRegExp: /(__)/mg,
-       element: "u",
-       handler: config.formatterHelpers.createElementAndWikify
-},
-
-{
-       name: "strikeByChar",
-       match: "--(?!\\s|$)",
-       termRegExp: /((?!\s)--|(?=\n\n))/mg,
-       element: "strike",
-       handler: config.formatterHelpers.createElementAndWikify
-},
-
-{
-       name: "superscriptByChar",
-       match: "\\^\\^",
-       termRegExp: /(\^\^)/mg,
-       element: "sup",
-       handler: config.formatterHelpers.createElementAndWikify
-},
-
-{
-       name: "subscriptByChar",
-       match: "~~",
-       termRegExp: /(~~)/mg,
-       element: "sub",
-       handler: config.formatterHelpers.createElementAndWikify
-},
-
-{
-       name: "monospacedByChar",
-       match: "\\{\\{\\{",
-       lookaheadRegExp: /\{\{\{((?:.|\n)*?)\}\}\}/mg,
-       handler: function(w)
-       {
-               this.lookaheadRegExp.lastIndex = w.matchStart;
-               var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
-               if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
-                       {
-                       createTiddlyElement(w.output,"code",null,null,lookaheadMatch[1]);
-                       w.nextMatch = this.lookaheadRegExp.lastIndex;
-                       }
-       }
-},
-
-{
-       name: "styleByChar",
-       match: "@@",
-       termRegExp: /(@@)/mg,
-       handler:  function(w)
-       {
-               var e = createTiddlyElement(w.output,"span");
-               var styles = config.formatterHelpers.inlineCssHelper(w);
-               if(styles.length == 0)
-                       e.className = "marked";
-               else
-                       config.formatterHelpers.applyCssHelper(e,styles);
-               w.subWikifyTerm(e,this.termRegExp);
-       }
-},
-
-{
-       name: "lineBreak",
-       match: "\\n|<br ?/?>",
-       handler: function(w)
-       {
-               createTiddlyElement(w.output,"br");
-       }
-},
-
-{
-       name: "rawText",
-       match: "\\\"{3}|<nowiki>",
-       lookaheadRegExp: /(?:\"{3}|<nowiki>)((?:.|\n)*?)(?:\"{3}|<\/nowiki>)/mg,
-       handler: function(w)
-       {
-               this.lookaheadRegExp.lastIndex = w.matchStart;
-               var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
-               if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
-                       {
-                       createTiddlyElement(w.output,"span",null,null,lookaheadMatch[1]);
-                       w.nextMatch = this.lookaheadRegExp.lastIndex;
-                       }
-       }
-},
-
-{
-       name: "mdash",
-       match: "--",
-       handler: function(w)
-               {
-               createTiddlyElement(w.output,"span").innerHTML = "&mdash;";
-               }
-},
-
-{
-       name: "htmlEntitiesEncoding",
-       match: "(?:(?:&#?[a-zA-Z0-9]{2,8};|.)(?:&#?(?:x0*(?:3[0-6][0-9a-fA-F]|1D[c-fC-F][0-9a-fA-F]|20[d-fD-F][0-9a-fA-F]|FE2[0-9a-fA-F])|0*(?:76[89]|7[7-9][0-9]|8[0-7][0-9]|761[6-9]|76[2-7][0-9]|84[0-3][0-9]|844[0-7]|6505[6-9]|6506[0-9]|6507[0-1]));)+|&#?[a-zA-Z0-9]{2,8};)",
-       handler: function(w)
-               {
-               createTiddlyElement(w.output,"span").innerHTML = w.matchText;
-               }
-},
-
-{
-       name: "customClasses",
-       match: "\\{\\{",
-       termRegExp: /(\}\}\})/mg,
-       lookaheadRegExp: /\{\{[\s]*([\w]+[\s\w]*)[\s]*\{(\n?)/mg,
-       handler: function(w)
-       {
-               this.lookaheadRegExp.lastIndex = w.matchStart;
-               var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
-               if(lookaheadMatch)
-                       {
-                       var e = createTiddlyElement(w.output,lookaheadMatch[2] == "\n" ? "div" : "span",null,lookaheadMatch[1]);
-                       w.nextMatch = this.lookaheadRegExp.lastIndex;
-                       w.subWikifyTerm(e,this.termRegExp);
-                       }
-       }
-}
-
-];
-
-// ---------------------------------------------------------------------------------
-// Wikifier
-// ---------------------------------------------------------------------------------
-
-function getParser(tiddler)
-{
-       var f = formatter;
-       if(tiddler!=null)
-               {
-               for(var i in config.parsers)
-                       {
-                       if(tiddler.isTagged(config.parsers[i].formatTag))
-                               {
-                               f = config.parsers[i];
-                               break;
-                               }
-                       }
-               }
-       return f;
-}
-
-function wikify(source,output,highlightRegExp,tiddler)
-{
-       if(source && source != "")
-               {
-               var wikifier = new Wikifier(source,getParser(tiddler),highlightRegExp,tiddler);
-               wikifier.subWikifyUnterm(output);
-               }
-}
-
-function wikifyStatic(source,highlightRegExp,tiddler)
-{
-       var e = createTiddlyElement(document.body,"div");
-       e.style.display = "none";
-       var html = "";
-       if(source && source != "")
-               {
-               var wikifier = new Wikifier(source,getParser(tiddler),highlightRegExp,tiddler);
-               wikifier.isStatic = true;
-               wikifier.subWikifyUnterm(e);
-               html = e.innerHTML;
-               e.parentNode.removeChild(e);
-               }
-       return html;
-}
-
-// Wikify a named tiddler to plain text
-function wikifyPlain(title)
-{
-       if(store.tiddlerExists(title) || store.isShadowTiddler(title))
-               {
-               var wikifier = new Wikifier(store.getTiddlerText(title),formatter,null,store.getTiddler(title));
-               return wikifier.wikifyPlain();
-               }
-       else
-               return "";
-}
-
-// Highlight plain text into an element
-function highlightify(source,output,highlightRegExp)
-{
-       if(source && source != "")
-               {
-               var wikifier = new Wikifier(source,formatter,highlightRegExp);
-               wikifier.outputText(output,0,source.length);
-               }
-}
-
-// Construct a wikifier object
-// source - source string that's going to be wikified
-// formatter - Formatter() object containing the list of formatters to be used
-// highlightRegExp - regular expression of the text string to highlight
-// tiddler - reference to the tiddler that's taken to be the container for this wikification
-function Wikifier(source,formatter,highlightRegExp,tiddler)
-{
-       this.source = source;
-       this.output = null;
-       this.formatter = formatter;
-       this.nextMatch = 0;
-       this.autoLinkWikiWords = tiddler && tiddler.autoLinkWikiWords() == false ? false : true;
-       this.highlightRegExp = highlightRegExp;
-       this.highlightMatch = null;
-       this.isStatic = false;
-       if(highlightRegExp)
-               {
-               highlightRegExp.lastIndex = 0;
-               this.highlightMatch = highlightRegExp.exec(source);
-               }
-       this.tiddler = tiddler;
-}
-
-Wikifier.prototype.wikifyPlain = function()
-{
-       var e = createTiddlyElement(document.body,"div");
-       e.style.display = "none";
-       this.subWikify(e);
-       var text = getPlainText(e);
-       e.parentNode.removeChild(e);
-       return text;
-}
-
-Wikifier.prototype.subWikify = function(output,terminator)
-{
-       // Handle the terminated and unterminated cases separately
-       if (terminator)
-               this.subWikifyTerm(output,new RegExp("(" + terminator + ")","mg"));
-       else
-               this.subWikifyUnterm(output);
-}
-
-Wikifier.prototype.subWikifyUnterm = function(output)
-{
-       // subWikify() can be indirectly recursive, so we need to save the old output pointer
-       var oldOutput = this.output;
-       this.output = output;
-       // Get the first match
-       this.formatter.formatterRegExp.lastIndex = this.nextMatch;
-       var formatterMatch = this.formatter.formatterRegExp.exec(this.source);
-       while(formatterMatch)
-               {
-               // Output any text before the match
-               if(formatterMatch.index > this.nextMatch)
-                       this.outputText(this.output,this.nextMatch,formatterMatch.index);
-               // Set the match parameters for the handler
-               this.matchStart = formatterMatch.index;
-               this.matchLength = formatterMatch[0].length;
-               this.matchText = formatterMatch[0];
-               this.nextMatch = this.formatter.formatterRegExp.lastIndex;
-               // Figure out which formatter matched and call its handler
-               for(var t=1; t<formatterMatch.length; t++)
-                       {
-                       if(formatterMatch[t])
-                               {
-                               this.formatter.formatters[t-1].handler(this);
-                               this.formatter.formatterRegExp.lastIndex = this.nextMatch;
-                               break;
-                               }
-                       }
-               // Get the next match
-               formatterMatch = this.formatter.formatterRegExp.exec(this.source);
-               }
-       // Output any text after the last match
-       if(this.nextMatch < this.source.length)
-               {
-               this.outputText(this.output,this.nextMatch,this.source.length);
-               this.nextMatch = this.source.length;
-               }
-       // Restore the output pointer
-       this.output = oldOutput;
-}
-
-Wikifier.prototype.subWikifyTerm = function(output,terminatorRegExp)
-{
-       // subWikify() can be indirectly recursive, so we need to save the old output pointer
-       var oldOutput = this.output;
-       this.output = output;
-       // Get the first matches for the formatter and terminator RegExps
-       terminatorRegExp.lastIndex = this.nextMatch;
-       var terminatorMatch = terminatorRegExp.exec(this.source);
-       this.formatter.formatterRegExp.lastIndex = this.nextMatch;
-       var formatterMatch = this.formatter.formatterRegExp.exec(terminatorMatch ? this.source.substr(0,terminatorMatch.index) : this.source);
-       while(terminatorMatch || formatterMatch)
-               {
-               // Check for a terminator match  before the next formatter match
-               if(terminatorMatch && (!formatterMatch || terminatorMatch.index <= formatterMatch.index))
-                       {
-                       // Output any text before the match
-                       if(terminatorMatch.index > this.nextMatch)
-                               this.outputText(this.output,this.nextMatch,terminatorMatch.index);
-                       // Set the match parameters
-                       this.matchText = terminatorMatch[1];
-                       this.matchLength = terminatorMatch[1].length;
-                       this.matchStart = terminatorMatch.index;
-                       this.nextMatch = this.matchStart + this.matchLength;
-                       // Restore the output pointer
-                       this.output = oldOutput;
-                       return;
-                       }
-               // It must be a formatter match; output any text before the match
-               if(formatterMatch.index > this.nextMatch)
-                       this.outputText(this.output,this.nextMatch,formatterMatch.index);
-               // Set the match parameters
-               this.matchStart = formatterMatch.index;
-               this.matchLength = formatterMatch[0].length;
-               this.matchText = formatterMatch[0];
-               this.nextMatch = this.formatter.formatterRegExp.lastIndex;
-               // Figure out which formatter matched and call its handler
-               for(var t=1; t<formatterMatch.length; t++)
-                       {
-                       if(formatterMatch[t])
-                               {
-                               this.formatter.formatters[t-1].handler(this);
-                               this.formatter.formatterRegExp.lastIndex = this.nextMatch;
-                               break;
-                               }
-                       }
-               // Get the next match
-               terminatorRegExp.lastIndex = this.nextMatch;
-               terminatorMatch = terminatorRegExp.exec(this.source);
-               formatterMatch = this.formatter.formatterRegExp.exec(terminatorMatch ? this.source.substr(0,terminatorMatch.index) : this.source);
-               }
-       // Output any text after the last match
-       if(this.nextMatch < this.source.length)
-               {
-               this.outputText(this.output,this.nextMatch,this.source.length);
-               this.nextMatch = this.source.length;
-               }
-       // Restore the output pointer
-       this.output = oldOutput;
-}
-
-Wikifier.prototype.outputText = function(place,startPos,endPos)
-{
-       // Check for highlights
-       while(this.highlightMatch && (this.highlightRegExp.lastIndex > startPos) && (this.highlightMatch.index < endPos) && (startPos < endPos))
-               {
-               // Deal with any plain text before the highlight
-               if(this.highlightMatch.index > startPos)
-                       {
-                       createTiddlyText(place,this.source.substring(startPos,this.highlightMatch.index));
-                       startPos = this.highlightMatch.index;
-                       }
-               // Deal with the highlight
-               var highlightEnd = Math.min(this.highlightRegExp.lastIndex,endPos);
-               var theHighlight = createTiddlyElement(place,"span",null,"highlight",this.source.substring(startPos,highlightEnd));
-               startPos = highlightEnd;
-               // Nudge along to the next highlight if we're done with this one
-               if(startPos >= this.highlightRegExp.lastIndex)
-                       this.highlightMatch = this.highlightRegExp.exec(this.source);
-               }
-       // Do the unhighlighted text left over
-       if(startPos < endPos)
-               {
-               createTiddlyText(place,this.source.substring(startPos,endPos));
-               }
-}
-
-// ---------------------------------------------------------------------------------
-// Macro definitions
-// ---------------------------------------------------------------------------------
-
-config.macros.today.handler = function(place,macroName,params)
-{
-       var now = new Date();
-       var text;
-       if(params[0])
-               text = now.formatString(params[0].trim());
-       else
-               text = now.toLocaleString();
-       createTiddlyElement(place,"span",null,null,text);
-}
-
-config.macros.version.handler = function(place)
-{
-       createTiddlyElement(place,"span",null,null,version.major + "." + version.minor + "." + version.revision + (version.beta ? " (beta " + version.beta + ")" : ""));
-}
-
-config.macros.list.handler = function(place,macroName,params)
-{
-       var type = params[0] ? params[0] : "all";
-       var theList = document.createElement("ul");
-       place.appendChild(theList);
-       if(this[type].prompt)
-               createTiddlyElement(theList,"li",null,"listTitle",this[type].prompt);
-       var results;
-       if(this[type].handler)
-               results = this[type].handler(params);
-       for(var t = 0; t < results.length; t++)
-               {
-               var theListItem = document.createElement("li")
-               theList.appendChild(theListItem);
-               if(typeof results[t] == "string")
-                       createTiddlyLink(theListItem,results[t],true);
-               else
-                       createTiddlyLink(theListItem,results[t].title,true);
-               }
-}
-
-config.macros.list.all.handler = function(params)
-{
-       return store.reverseLookup("tags","excludeLists",false,"title");
-}
-
-config.macros.list.missing.handler = function(params)
-{
-       return store.getMissingLinks();
-}
-
-config.macros.list.orphans.handler = function(params)
-{
-       return store.getOrphans();
-}
-
-config.macros.list.shadowed.handler = function(params)
-{
-       return store.getShadowed();
-}
-
-config.macros.allTags.handler = function(place,macroName,params)
-{
-       var tags = store.getTags();
-       var theDateList = createTiddlyElement(place,"ul");
-       if(tags.length == 0)
-               createTiddlyElement(theDateList,"li",null,"listTitle",this.noTags);
-       for(var t=0; t<tags.length; t++)
-               {
-               var theListItem =createTiddlyElement(theDateList,"li");
-               var theTag = createTiddlyButton(theListItem,tags[t][0] + " (" + tags[t][1] + ")",this.tooltip.format([tags[t][0]]),onClickTag);
-               theTag.setAttribute("tag",tags[t][0]);
-               }
-}
-
-config.macros.timeline.handler = function(place,macroName,params)
-{
-       var field = params[0] ? params[0] : "modified";
-       var tiddlers = store.reverseLookup("tags","excludeLists",false,field);
-       var lastDay = "";
-       var last = params[1] ? tiddlers.length-Math.min(tiddlers.length,parseInt(params[1])) : 0;
-       for(var t=tiddlers.length-1; t>=last; t--)
-               {
-               var tiddler = tiddlers[t];
-               var theDay = tiddler[field].convertToLocalYYYYMMDDHHMM().substr(0,8);
-               if(theDay != lastDay)
-                       {
-                       var theDateList = document.createElement("ul");
-                       place.appendChild(theDateList);
-                       createTiddlyElement(theDateList,"li",null,"listTitle",tiddler[field].formatString(this.dateFormat));
-                       lastDay = theDay;
-                       }
-               var theDateListItem = createTiddlyElement(theDateList,"li",null,"listLink");
-               theDateListItem.appendChild(createTiddlyLink(place,tiddler.title,true));
-               }
-}
-
-config.macros.search.handler = function(place,macroName,params)
-{
-       var searchTimeout = null;
-       var btn = createTiddlyButton(place,this.label,this.prompt,this.onClick);
-       var txt = createTiddlyElement(place,"input",null,"txtOptionInput");
-       if(params[0])
-               txt.value = params[0];
-       txt.onkeyup = this.onKeyPress;
-       txt.onfocus = this.onFocus;
-       txt.setAttribute("size",this.sizeTextbox);
-       txt.setAttribute("accessKey",this.accessKey);
-       txt.setAttribute("autocomplete","off");
-       txt.setAttribute("lastSearchText","");
-       if(config.browser.isSafari)
-               {
-               txt.setAttribute("type","search");
-               txt.setAttribute("results","5");
-               }
-       else
-               txt.setAttribute("type","text");
-}
-
-// Global because there's only ever one outstanding incremental search timer
-config.macros.search.timeout = null;
-
-config.macros.search.doSearch = function(txt)
-{
-       if(txt.value.length > 0)
-               {
-               story.search(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);
-               txt.setAttribute("lastSearchText",txt.value);
-               }
-}
-
-config.macros.search.onClick = function(e)
-{
-       config.macros.search.doSearch(this.nextSibling);
-       return false;
-}
-
-config.macros.search.onKeyPress = function(e)
-{
-       if(!e) var e = window.event;
-       switch(e.keyCode)
-               {
-               case 13: // Ctrl-Enter
-               case 10: // Ctrl-Enter on IE PC
-                       config.macros.search.doSearch(this);
-                       break;
-               case 27: // Escape
-                       this.value = "";
-                       clearMessage();
-                       break;
-               }
-       if(this.value.length > 2)
-               {
-               if(this.value != this.getAttribute("lastSearchText"))
-                       {
-                       if(config.macros.search.timeout)
-                               clearTimeout(config.macros.search.timeout);
-                       var txt = this;
-                       config.macros.search.timeout = setTimeout(function() {config.macros.search.doSearch(txt);},500);
-                       }
-               }
-       else
-               {
-               if(config.macros.search.timeout)
-                       clearTimeout(config.macros.search.timeout);
-               }
-}
-
-config.macros.search.onFocus = function(e)
-{
-       this.select();
-}
-
-config.macros.tiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler)
-{
-       params = paramString.parseParams("name",null,true,false,true);
-       var names = params[0]["name"];
-       var tiddlerName = names[0];
-       var className = names[1] ? names[1] : null;
-       var args = params[0]["with"];
-       var wrapper = createTiddlyElement(place,"span",null,className);
-       if(!args)
-               {
-               wrapper.setAttribute("refresh","content");
-               wrapper.setAttribute("tiddler",tiddlerName);
-               }
-       var text = store.getTiddlerText(tiddlerName);
-       if(text)
-               {
-               var stack = config.macros.tiddler.tiddlerStack;
-               if(stack.indexOf(tiddlerName) !== -1)
-                       return;
-               stack.push(tiddlerName);
-               try
-                       {
-                       var n = args ? Math.min(args.length,9) : 0;
-                       for(var i=0; i<n; i++) 
-                               {
-                               var placeholderRE = new RegExp("\\$" + (i + 1),"mg");
-                               text = text.replace(placeholderRE,args[i]);
-                               }
-                       config.macros.tiddler.renderText(wrapper,text,tiddlerName,params);
-                       }
-               finally
-                       {
-                       stack.pop();
-                       }
-               }
-}
-
-config.macros.tiddler.renderText = function(place,text,tiddlerName,params) 
-{
-       wikify(text,place,null,store.getTiddler(tiddlerName));
-}
-
-config.macros.tiddler.tiddlerStack = [];
-
-config.macros.tag.handler = function(place,macroName,params)
-{
-       createTagButton(place,params[0]);
-}
-
-config.macros.tags.handler = function(place,macroName,params,wikifier,paramString,tiddler)
-{
-       params = paramString.parseParams("anon",null,true,false,false);
-       var theList = createTiddlyElement(place,"ul");
-       var title = getParam(params,"anon","");
-       if(title && store.tiddlerExists(title))
-               tiddler = store.getTiddler(title);
-       var sep = getParam(params,"sep"," ");
-       var lingo = config.views.wikified.tag;
-       var prompt = tiddler.tags.length == 0 ? lingo.labelNoTags : lingo.labelTags;
-       createTiddlyElement(theList,"li",null,"listTitle",prompt.format([tiddler.title]));
-       for(var t=0; t<tiddler.tags.length; t++)
-               {
-               createTagButton(createTiddlyElement(theList,"li"),tiddler.tags[t],tiddler.title);
-               if(t<tiddler.tags.length-1)
-                       createTiddlyText(theList,sep);
-               }
-}
-
-config.macros.tagging.handler = function(place,macroName,params,wikifier,paramString,tiddler)
-{
-       params = paramString.parseParams("anon",null,true,false,false);
-       var theList = createTiddlyElement(place,"ul");
-       var title = getParam(params,"anon","");
-       if(title == "" && tiddler instanceof Tiddler)
-               title = tiddler.title;
-       var sep = getParam(params,"sep"," ");
-       theList.setAttribute("title",this.tooltip.format([title]));
-       var tagged = store.getTaggedTiddlers(title);
-       var prompt = tagged.length == 0 ? this.labelNotTag : this.label;
-       createTiddlyElement(theList,"li",null,"listTitle",prompt.format([title,tagged.length]));
-       for(var t=0; t<tagged.length; t++)
-               {
-               createTiddlyLink(createTiddlyElement(theList,"li"),tagged[t].title,true);
-               if(t<tagged.length-1)
-                       createTiddlyText(theList,sep);
-               }
-}
-
-config.macros.closeAll.handler = function(place)
-{
-       createTiddlyButton(place,this.label,this.prompt,this.onClick);
-}
-
-config.macros.closeAll.onClick = function(e)
-{
-       story.closeAllTiddlers();
-       return false;
-}
-
-config.macros.permaview.handler = function(place)
-{
-       createTiddlyButton(place,this.label,this.prompt,this.onClick);
-}
-
-config.macros.permaview.onClick = function(e)
-{
-       story.permaView();
-       return false;
-}
-
-config.macros.saveChanges.handler = function(place)
-{
-       if(!readOnly)
-               createTiddlyButton(place,this.label,this.prompt,this.onClick,null,null,this.accessKey);
-}
-
-config.macros.saveChanges.onClick = function(e)
-{
-       saveChanges();
-       return false;
-}
-
-config.macros.slider.onClickSlider = function(e)
-{
-       if(!e) var e = window.event;
-       var n = this.nextSibling;
-       var cookie = n.getAttribute("cookie");
-       var isOpen = n.style.display != "none";
-       if(anim && config.options.chkAnimate)
-               anim.startAnimating(new Slider(n,!isOpen,e.shiftKey || e.altKey,"none"));
-       else
-               n.style.display = isOpen ? "none" : "block";
-       config.options[cookie] = !isOpen;
-       saveOptionCookie(cookie);
-       return false;
-}
-
-config.macros.slider.createSlider = function(place,cookie,title,tooltip)
-{
-       var cookie = cookie ? cookie : "";
-       var btn = createTiddlyButton(place,title,tooltip,this.onClickSlider);
-       var panel = createTiddlyElement(null,"div",null,"sliderPanel");
-       panel.setAttribute("cookie",cookie);
-       panel.style.display = config.options[cookie] ? "block" : "none";
-       place.appendChild(panel);
-       return panel;
-}
-
-config.macros.slider.handler = function(place,macroName,params)
-{
-       var panel = this.createSlider(place,params[0],params[2],params[3]);
-       var text = store.getTiddlerText(params[1]);
-       panel.setAttribute("refresh", "content");
-       panel.setAttribute("tiddler", params[1]);
-       if(text)
-               wikify(text,panel,null,store.getTiddler(params[1]));
-}
-
-config.macros.option.onChangeOption = function(e)
-{
-       var opt = this.getAttribute("option");
-       var elementType,valueField;
-       if(opt)
-               {
-               switch(opt.substr(0,3))
-                       {
-                       case "txt":
-                               elementType = "input";
-                               valueField = "value";
-                               break;
-                       case "chk":
-                               elementType = "input";
-                               valueField = "checked";
-                               break;
-                       }
-               config.options[opt] = this[valueField];
-               saveOptionCookie(opt);
-               var nodes = document.getElementsByTagName(elementType);
-               for(var t=0; t<nodes.length; t++)
-                       {
-                       var optNode = nodes[t].getAttribute("option");
-                       if(opt == optNode)
-                               nodes[t][valueField] = this[valueField];
-                       }
-               }
-       return(true);
-}
-
-config.macros.option.handler = function(place,macroName,params)
-{
-       var opt = params[0];
-       if(config.options[opt] == undefined)
-               return;
-       var c;
-       switch(opt.substr(0,3))
-               {
-               case "txt":
-                       c = document.createElement("input");
-                       c.onkeyup = this.onChangeOption;
-                       c.setAttribute("option",opt);
-                       c.className = "txtOptionInput";
-                       place.appendChild(c);
-                       c.value = config.options[opt];
-                       break;
-               case "chk":
-                       c = document.createElement("input");
-                       c.setAttribute("type","checkbox");
-                       c.onclick = this.onChangeOption;
-                       c.setAttribute("option",opt);
-                       c.className = "chkOptionInput";
-                       place.appendChild(c);
-                       c.checked = config.options[opt];
-                       break;
-               }
-}
-
-
-
-config.macros.newTiddler.createNewTiddlerButton = function(place,title,params,label,prompt,accessKey,newFocus,isJournal)
-{
-       var tags = [];
-       for(var t=1; t<params.length; t++)
-               if((params[t].name == "anon" && t != 1) || (params[t].name == "tag"))
-                       tags.push(params[t].value);
-       label = getParam(params,"label",label);
-       prompt = getParam(params,"prompt",prompt);
-       accessKey = getParam(params,"accessKey",accessKey);
-       newFocus = getParam(params,"focus",newFocus);
-       var btn = createTiddlyButton(place,label,prompt,this.onClickNewTiddler,null,null,accessKey);
-       btn.setAttribute("newTitle",title);
-       btn.setAttribute("isJournal",isJournal);
-       btn.setAttribute("params",tags.join("|"));
-       btn.setAttribute("newFocus",newFocus);
-       btn.setAttribute("newTemplate",getParam(params,"template",DEFAULT_EDIT_TEMPLATE));
-       var text = getParam(params,"text");
-       if(text !== undefined) 
-               btn.setAttribute("newText",text);
-       return btn;
-}
-
-config.macros.newTiddler.onClickNewTiddler = function()
-{
-       var title = this.getAttribute("newTitle");
-       if(this.getAttribute("isJournal"))
-               {
-               var now = new Date();
-               title = now.formatString(title.trim());
-               }
-       var params = this.getAttribute("params").split("|");
-       var focus = this.getAttribute("newFocus");
-       var template = this.getAttribute("newTemplate");
-       story.displayTiddler(null,title,template);
-       var text = this.getAttribute("newText");
-       if(typeof text == "string")
-               story.getTiddlerField(title,"text").value = text.format([title]);
-       for(var t=0;t<params.length;t++)
-               story.setTiddlerTag(title,params[t],+1);
-       story.focusTiddler(title,focus);
-       return false;
-}
-
-config.macros.newTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler)
-{
-       if(!readOnly)
-               {
-               params = paramString.parseParams("anon",null,true,false,false);
-               var title = params[1] && params[1].name == "anon" ? params[1].value : this.title;
-               title = getParam(params,"title",title);
-               this.createNewTiddlerButton(place,title,params,this.label,this.prompt,this.accessKey,"title",false);
-               }
-}
-
-config.macros.newJournal.handler = function(place,macroName,params,wikifier,paramString,tiddler)
-{
-       if(!readOnly)
-               {
-               params = paramString.parseParams("anon",null,true,false,false);
-               var title = params[1] && params[1].name == "anon" ? params[1].value : "";
-               title = getParam(params,"title",title);
-               config.macros.newTiddler.createNewTiddlerButton(place,title,params,this.label,this.prompt,this.accessKey,"text",true);
-               }
-}
-
-config.macros.sparkline.handler = function(place,macroName,params)
-{
-       var data = [];
-       var min = 0;
-       var max = 0;
-       for(var t=0; t<params.length; t++)
-               {
-               var v = parseInt(params[t]);
-               if(v < min)
-                       min = v;
-               if(v > max)
-                       max = v;
-               data.push(v);
-               }
-       if(data.length < 1)
-               return;
-       var box = createTiddlyElement(place,"span",null,"sparkline",String.fromCharCode(160));
-       box.title = data.join(",");
-       var w = box.offsetWidth;
-       var h = box.offsetHeight;
-       box.style.paddingRight = (data.length * 2 - w) + "px";
-       box.style.position = "relative";
-       for(var d=0; d<data.length; d++)
-               {
-               var tick = document.createElement("img");
-               tick.border = 0;
-               tick.className = "sparktick";
-               tick.style.position = "absolute";
-               tick.src = "data:image/gif,GIF89a%01%00%01%00%91%FF%00%FF%FF%FF%00%00%00%C0%C0%C0%00%00%00!%F9%04%01%00%00%02%00%2C%00%00%00%00%01%00%01%00%40%02%02T%01%00%3B";
-               tick.style.left = d*2 + "px";
-               tick.style.width = "2px";
-               var v = Math.floor(((data[d] - min)/(max-min)) * h);
-               tick.style.top = (h-v) + "px";
-               tick.style.height = v + "px";
-               box.appendChild(tick);
-               }
-}
-
-config.macros.tabs.handler = function(place,macroName,params)
-{
-       var cookie = params[0];
-       var numTabs = (params.length-1)/3;
-       var wrapper = createTiddlyElement(null,"div",null,cookie);
-       var tabset = createTiddlyElement(wrapper,"div",null,"tabset");
-       tabset.setAttribute("cookie",cookie);
-       var validTab = false;
-       for(var t=0; t<numTabs; t++)
-               {
-               var label = params[t*3+1];
-               var prompt = params[t*3+2];
-               var content = params[t*3+3];
-               var tab = createTiddlyButton(tabset,label,prompt,this.onClickTab,"tab tabUnselected");
-               tab.setAttribute("tab",label);
-               tab.setAttribute("content",content);
-               tab.title = prompt;
-               if(config.options[cookie] == label)
-                       validTab = true;
-               }
-       if(!validTab)
-               config.options[cookie] = params[1];
-       place.appendChild(wrapper);
-       this.switchTab(tabset,config.options[cookie]);
-}
-
-config.macros.tabs.onClickTab = function(e)
-{
-       config.macros.tabs.switchTab(this.parentNode,this.getAttribute("tab"));
-       return false;
-}
-
-config.macros.tabs.switchTab = function(tabset,tab)
-{
-       var cookie = tabset.getAttribute("cookie");
-       var theTab = null
-       var nodes = tabset.childNodes;
-       for(var t=0; t<nodes.length; t++)
-               if(nodes[t].getAttribute && nodes[t].getAttribute("tab") == tab)
-                       {
-                       theTab = nodes[t];
-                       theTab.className = "tab tabSelected";
-                       }
-               else
-                       nodes[t].className = "tab tabUnselected"
-       if(theTab)
-               {
-               if(tabset.nextSibling && tabset.nextSibling.className == "tabContents")
-                       tabset.parentNode.removeChild(tabset.nextSibling);
-               var tabContent = createTiddlyElement(null,"div",null,"tabContents");
-               tabset.parentNode.insertBefore(tabContent,tabset.nextSibling);
-               var contentTitle = theTab.getAttribute("content");
-               wikify(store.getTiddlerText(contentTitle),tabContent,null,store.getTiddler(contentTitle));
-               if(cookie)
-                       {
-                       config.options[cookie] = tab;
-                       saveOptionCookie(cookie);
-                       }
-               }
-}
-
-// <<gradient [[tiddler name]] vert|horiz rgb rgb rgb rgb... >>
-config.macros.gradient.handler = function(place,macroName,params,wikifier)
-{
-       var terminator = ">>";
-       var panel;
-       if(wikifier)
-               panel = createTiddlyElement(place,"div",null,"gradient");
-       else
-               panel = place;
-       panel.style.position = "relative";
-       panel.style.overflow = "hidden";
-       panel.style.zIndex = "0";
-       var t;
-       if(wikifier)
-               {
-               var styles = config.formatterHelpers.inlineCssHelper(wikifier);
-               config.formatterHelpers.applyCssHelper(panel,styles);
-               }
-       var colours = [];
-       for(t=1; t<params.length; t++)
-               {
-               var c = new RGB(params[t]);
-               if(c)
-                       colours.push(c);
-               }
-       drawGradient(panel,params[0] != "vert",colours);
-       if(wikifier)
-               wikifier.subWikify(panel,terminator);
-       if(document.all)
-               {
-               panel.style.height = "100%";
-               panel.style.width = "100%";
-               }
-}
-
-config.macros.message.handler = function(place,macroName,params)
-{
-       if(params[0])
-               {
-               var m = config;
-               var p = params[0].split(".");
-               for(var t=0; t<p.length; t++)
-                       {
-                       if(p[t] in m)
-                               m = m[p[t]];
-                       else
-                               break;
-                       }
-               createTiddlyText(place,m.toString().format(params.splice(1)));
-               }
-}
-
-config.macros.view.handler = function(place,macroName,params,wikifier,paramString,tiddler)
-{
-       if((tiddler instanceof Tiddler) && params[0])
-               {
-               var value = store.getValue(tiddler,params[0]);
-               if(value != undefined)
-                       switch(params[1])
-                               {
-                               case undefined:
-                                       highlightify(value,place,highlightHack);
-                                       break;
-                               case "link":
-                                       createTiddlyLink(place,value,true);
-                                       break;
-                               case "wikified":
-                                       wikify(value,place,highlightHack,tiddler);
-                                       break;
-                               case "date":
-                                       value = Date.convertFromYYYYMMDDHHMM(value);
-                                       if(params[2])
-                                               createTiddlyText(place,value.formatString(params[2]));
-                                       else
-                                               createTiddlyText(place,value);
-                                       break;
-                               }
-               }
-}
-
-config.macros.edit.handler = function(place,macroName,params,wikifier,paramString,tiddler)
-{
-       var field = params[0];
-       if((tiddler instanceof Tiddler) && field)
-               {
-               story.setDirty(tiddler.title,true);
-               if(field != "text")
-                       {
-                               var e = createTiddlyElement(null,"input");
-                               if(tiddler.isReadOnly())
-                                       e.setAttribute("readOnly","readOnly");
-                               e.setAttribute("edit",field);
-                               e.setAttribute("type","text");
-                               var v = store.getValue(tiddler,field);
-                               if(!v) 
-                                       v = "";
-                               e.value = v;
-                               e.setAttribute("size","40");
-                               e.setAttribute("autocomplete","off");
-                               place.appendChild(e);
-                       }
-               else
-                       {
-                               var wrapper1 = createTiddlyElement(null,"fieldset",null,"fieldsetFix");
-                               var wrapper2 = createTiddlyElement(wrapper1,"div");
-                               var e = createTiddlyElement(wrapper2,"textarea");
-                               if(tiddler.isReadOnly())
-                                       e.setAttribute("readOnly","readOnly");
-                               var v = store.getValue(tiddler,field);
-                               if(!v) 
-                                       v = "";
-                               e.value = v;
-                               var rows = 10;
-                               var lines = v.match(/\n/mg);
-                               var maxLines = Math.max(parseInt(config.options.txtMaxEditRows),5);
-                               if(lines != null && lines.length > rows)
-                                       rows = lines.length + 5;
-                               rows = Math.min(rows,maxLines);
-                               e.setAttribute("rows",rows);
-                               e.setAttribute("edit",field);
-                               place.appendChild(wrapper1);
-                       }
-               }
-}
-
-config.macros.tagChooser.onClick = function(e)
-{
-       if(!e) var e = window.event;
-       var lingo = config.views.editor.tagChooser;
-       var popup = Popup.create(this);
-       var tags = store.getTags();
-       if(tags.length == 0)
-               createTiddlyText(createTiddlyElement(popup,"li"),lingo.popupNone);
-       for(var t=0; t<tags.length; t++)
-               {
-               var theTag = createTiddlyButton(createTiddlyElement(popup,"li"),tags[t][0],lingo.tagTooltip.format([tags[t][0]]),config.macros.tagChooser.onTagClick);
-               theTag.setAttribute("tag",tags[t][0]);
-               theTag.setAttribute("tiddler", this.getAttribute("tiddler"));
-               }
-       Popup.show(popup,false);
-       e.cancelBubble = true;
-       if(e.stopPropagation) e.stopPropagation();
-       return(false);
-}
-
-config.macros.tagChooser.onTagClick = function(e)
-{
-       if(!e) var e = window.event;
-       var tag = this.getAttribute("tag");
-       var title = this.getAttribute("tiddler");
-       if(!readOnly)
-               story.setTiddlerTag(title,tag,0);
-       return(false);
-}
-
-config.macros.tagChooser.handler = function(place,macroName,params,wikifier,paramString,tiddler)
-{
-       if(tiddler instanceof Tiddler)
-               {
-               var title = tiddler.title;
-               var lingo = config.views.editor.tagChooser;
-               var btn = createTiddlyButton(place,lingo.text,lingo.tooltip,this.onClick);
-               btn.setAttribute("tiddler", title);
-               }
-}
-
-// Create a toolbar command button
-// place - parent DOM element
-// command - reference to config.commands[] member -or- name of member
-// tiddler - reference to tiddler that toolbar applies to
-// theClass - the class to give the button
-config.macros.toolbar.createCommand = function(place,commandName,tiddler,theClass)
-{
-       if(typeof commandName != "string")
-               {
-               var c = null;
-               for(var t in config.commands)
-                       if(config.commands[t] == commandName)
-                               c = t;
-               commandName = c;
-               }
-       if((tiddler instanceof Tiddler) && (typeof commandName == "string"))
-               {
-               var title = tiddler.title;
-               var command = config.commands[commandName];
-               var ro = tiddler.isReadOnly();
-               var shadow = store.isShadowTiddler(title) && !store.tiddlerExists(title);
-               var text = ro && command.readOnlyText ? command.readOnlyText : command.text;
-               var tooltip = ro && command.readOnlyTooltip ? command.readOnlyTooltip : command.tooltip;
-               if((!ro || (ro && !command.hideReadOnly)) && !(shadow && command.hideShadow))
-
-                       {
-                       var btn = createTiddlyButton(null,text,tooltip,this.onClickCommand);
-                       btn.setAttribute("commandName", commandName);
-                       btn.setAttribute("tiddler", title);
-                       if(theClass)
-                               addClass(btn,theClass);
-                       place.appendChild(btn);
-                       }
-               }
-}
-
-config.macros.toolbar.onClickCommand = function(e)
-{
-       if(!e) var e = window.event;
-       var command = config.commands[this.getAttribute("commandName")];
-       return command.handler(e,this,this.getAttribute("tiddler"));
-}
-
-// Invoke the first command encountered from a given place that is tagged with a specified class
-config.macros.toolbar.invokeCommand = function(place,theClass,event)
-{
-       var children = place.getElementsByTagName("a")
-       for(var t=0; t<children.length; t++)
-               {
-               var c = children[t];
-               if(hasClass(c,theClass) && c.getAttribute && c.getAttribute("commandName"))
-                       {
-                       if(c.onclick instanceof Function)
-                               c.onclick.call(c,event);
-                       break;
-                       }
-               }
-}
-
-config.macros.toolbar.handler = function(place,macroName,params,wikifier,paramString,tiddler)
-{
-       for(var t=0; t<params.length; t++)
-               {
-               var c = params[t];
-               var theClass = "";
-               switch(c.substr(0,1))
-                       {
-                       case "+":
-                               theClass = "defaultCommand";
-                               c = c.substr(1);
-                               break;
-                       case "-":
-                               theClass = "cancelCommand";
-                               c = c.substr(1);
-                               break;
-                       }
-               if(c in config.commands)
-                       this.createCommand(place,c,tiddler,theClass);
-               }
-}
-
-config.macros.plugins.handler = function(place,macroName,params,wikifier,paramString,tiddler)
-{
-       var e = createTiddlyElement(place,"div");
-       e.setAttribute("refresh","macro");
-       e.setAttribute("macroName","plugins");
-       e.setAttribute("params",paramString);
-       this.refresh(e,paramString);
-}
-
-config.macros.plugins.refresh = function(place,params)
-{
-       var selectedRows = [];
-       ListView.forEachSelector(place,function(e,rowName) {
-                       if(e.checked)
-                               selectedRows.push(e.getAttribute("rowName"));
-               });
-       removeChildren(place);
-       params = params.parseParams("anon");
-       var plugins = installedPlugins.slice(0);
-       var t,tiddler,p;
-       var configTiddlers = store.getTaggedTiddlers("systemConfig");
-       for(t=0; t<configTiddlers.length; t++)
-               {
-               tiddler = configTiddlers[t];
-               if(plugins.findByField("title",tiddler.title) == null)
-                       {
-                       p = getPluginInfo(tiddler);
-                       p.executed = false;
-                       p.log.splice(0,0,this.skippedText);
-                       plugins.push(p);
-                       }
-               }
-       for(t=0; t<plugins.length; t++)
-               {
-               var p = plugins[t];
-               p.forced = p.tiddler.isTagged("systemConfigForce");
-               p.disabled = p.tiddler.isTagged("systemConfigDisable");
-               p.Selected = selectedRows.indexOf(plugins[t].title) != -1;
-               }
-       if(plugins.length == 0)
-               createTiddlyElement(place,"em",null,null,this.noPluginText);
-       else
-               ListView.create(place,plugins,this.listViewTemplate,this.onSelectCommand);
-}
-
-config.macros.plugins.onSelectCommand = function(command,rowNames)
-{
-       var t;
-       switch(command)
-               {
-               case "remove":
-                       for(t=0; t<rowNames.length; t++)
-                               store.setTiddlerTag(rowNames[t],false,"systemConfig");
-                       break;
-               case "delete":
-                       if(rowNames.length > 0 && confirm(config.macros.plugins.confirmDeleteText.format([rowNames.join(", ")])))
-                               {
-                               for(t=0; t<rowNames.length; t++)
-                                       {
-                                       store.removeTiddler(rowNames[t]);
-                                       story.closeTiddler(rowNames[t],true,false);
-                                       }
-                               }
-                       break;
-               }
-       if(config.options.chkAutoSave)
-               saveChanges(true);
-}
-
-config.macros.refreshDisplay.handler = function(place)
-{
-       createTiddlyButton(place,this.label,this.prompt,this.onClick);
-}
-
-config.macros.refreshDisplay.onClick = function(e)
-{
-       refreshAll();
-       return false;
-}
-
-config.macros.importTiddlers.handler = function(place,macroName,params,wikifier,paramString,tiddler)
-{
-       if(readOnly)
-               {
-               createTiddlyElement(place,"div",null,"marked",this.readOnlyWarning);
-               return;
-               }
-       var importer = createTiddlyElement(null,"div",null,"importTiddler wizard");
-       createTiddlyElement(importer,"h1",null,null,this.wizardTitle);
-       createTiddlyElement(importer,"h2",null,"step1",this.step1);
-       var step = createTiddlyElement(importer,"div",null,"wizardStep");
-       createTiddlyText(step,this.step1prompt);
-       var input = createTiddlyElement(null,"input",null,"txtOptionInput");
-       input.type = "text";
-       input.size = 50;
-       step.appendChild(input);
-       importer.inputBox = input;
-       createTiddlyElement(step,"br");
-       createTiddlyText(step,this.step1promptFile);
-       var fileInput = createTiddlyElement(null,"input",null,"txtOptionInput");
-       fileInput.type = "file";
-       fileInput.size = 50;
-       fileInput.onchange = this.onBrowseChange;
-       fileInput.onkeyup = this.onBrowseChange;
-       step.appendChild(fileInput);
-       createTiddlyElement(step,"br");
-       createTiddlyText(step,this.step1promptFeeds);
-       var feeds = this.getFeeds([{caption: this.step1feedPrompt, name: ""}]);
-       createTiddlyDropDown(step,this.onFeedChange,feeds);
-       createTiddlyElement(step,"br");
-       createTiddlyButton(step,this.fetchLabel,this.fetchPrompt,this.onFetch,null,null,null);
-        place.appendChild(importer);
-}
-
-config.macros.importTiddlers.getFeeds = function(feeds)
-{
-       var tagged = store.getTaggedTiddlers("contentPublisher","title");
-       for(var t=0; t<tagged.length; t++)
-               feeds.push({caption: tagged[t].title, name: store.getTiddlerSlice(tagged[t].title,"URL")});
-       return feeds;
-}
-
-config.macros.importTiddlers.onFeedChange = function(e)
-{
-       var importer = findRelated(this,"importTiddler","className","parentNode");
-       importer.inputBox.value = this.value;
-       this.selectedIndex = 0;
-}
-
-config.macros.importTiddlers.onBrowseChange = function(e)
-{
-       var importer = findRelated(this,"importTiddler","className","parentNode");
-       importer.inputBox.value = "file://" + this.value;
-}
-
-config.macros.importTiddlers.onFetch = function(e)
-{
-       var importer = findRelated(this,"importTiddler","className","parentNode");
-       var url = importer.inputBox.value;
-       var cutoff = findRelated(importer.firstChild,"step2","className","nextSibling");
-       while(cutoff)
-               {
-               var temp = cutoff.nextSibling;
-               cutoff.parentNode.removeChild(cutoff);
-               cutoff = temp;
-               }
-       createTiddlyElement(importer,"h2",null,"step2",config.macros.importTiddlers.step2);
-       var step = createTiddlyElement(importer,"div",null,"wizardStep",config.macros.importTiddlers.step2Text.format([url]));
-       loadRemoteFile(url,config.macros.importTiddlers.onLoad,importer);
-}
-
-config.macros.importTiddlers.onLoad = function(status,params,responseText,url,xhr)
-{
-       if(!status)
-               {
-               displayMessage(this.fetchError);
-               return;
-               }
-       var importer = params;
-       // Check that the tiddler we're in hasn't been closed - doesn't work on IE
-//     var p = importer;
-//     while(p.parentNode)
-//             p = p.parentNode;
-//     if(!(p instanceof HTMLDocument))
-//             return;
-       // Crack out the content - (should be refactored)
-       var posOpeningDiv = responseText.indexOf(startSaveArea);
-       var limitClosingDiv = responseText.indexOf("<!--POST-BODY-START--"+">");
-       var posClosingDiv = responseText.lastIndexOf(endSaveArea,limitClosingDiv == -1 ? responseText.length : limitClosingDiv);
-       if((posOpeningDiv == -1) || (posClosingDiv == -1))
-               {
-               alert(config.messages.invalidFileError.format([url]));
-               return;
-               }
-       var content = "<html><body>" + responseText.substring(posOpeningDiv,posClosingDiv + endSaveArea.length) + "</body></html>";
-       // Create the iframe
-       var iframe = document.createElement("iframe");
-       iframe.style.display = "none";
-       importer.insertBefore(iframe,importer.firstChild);
-       var doc = iframe.document;
-       if(iframe.contentDocument)
-               doc = iframe.contentDocument; // For NS6
-       else if(iframe.contentWindow)
-               doc = iframe.contentWindow.document; // For IE5.5 and IE6
-       // Put the content in the iframe
-       doc.open();
-       doc.writeln(content);
-       doc.close();
-       // Load the content into a TiddlyWiki() object
-       var storeArea = doc.getElementById("storeArea");
-       var importStore = new TiddlyWiki();
-       importStore.loadFromDiv(storeArea,"store");
-       // Get rid of the iframe
-       iframe.parentNode.removeChild(iframe);
-       // Extract data for the listview
-       var tiddlers = [];
-       importStore.forEachTiddler(function(title,tiddler)
-               {
-               var t = {};
-               t.title = title;
-               t.modified = tiddler.modified;
-               t.modifier = tiddler.modifier;
-               t.text = tiddler.text.substr(0,50);
-               t.tags = tiddler.tags;
-               tiddlers.push(t);
-               });
-       // Display the listview
-       createTiddlyElement(importer,"h2",null,"step3",config.macros.importTiddlers.step3);
-       var step = createTiddlyElement(importer,"div",null,"wizardStep");
-       ListView.create(step,tiddlers,config.macros.importTiddlers.listViewTemplate,config.macros.importTiddlers.onSelectCommand);
-       // Save the importer
-       importer.store = importStore;
-}
-
-config.macros.importTiddlers.onSelectCommand = function(listView,command,rowNames)
-{
-       var importer = findRelated(listView,"importTiddler","className","parentNode");
-       switch(command)
-               {
-               case "import":
-                       config.macros.importTiddlers.doImport(importer,rowNames);
-                       break;
-               }
-       if(config.options.chkAutoSave)
-               saveChanges(true);
-}
-
-config.macros.importTiddlers.doImport = function(importer,rowNames)
-{
-       var theStore = importer.store;
-       var overwrite = new Array();
-       var t;
-       for(t=0; t<rowNames.length; t++)
-               {
-               if(store.tiddlerExists(rowNames[t]))
-                       overwrite.push(rowNames[t]);
-       }
-       if(overwrite.length > 0)
-               if(!confirm(this.confirmOverwriteText.format([overwrite.join(", ")])))
-                       return;
-       for(t=0; t<rowNames.length; t++)
-               {
-               var inbound = theStore.fetchTiddler(rowNames[t]);
-               store.saveTiddler(inbound.title, inbound.title, inbound.text, inbound.modifier, inbound.modified, inbound.tags);
-               store.fetchTiddler(inbound.title).created = inbound.created;
-               store.notify(rowNames[t],false);
-               }
-       store.notifyAll();
-       store.setDirty(true);
-       createTiddlyElement(importer,"h2",null,"step4",this.step4.format([rowNames.length]));
-       var step = createTiddlyElement(importer,"div",null,"wizardStep");
-       for(t=0; t<rowNames.length; t++)
-               {
-               createTiddlyLink(step,rowNames[t],true);
-               createTiddlyElement(step,"br");
-               }
-       createTiddlyElement(importer,"h2",null,"step5",this.step5);
-}
-// ---------------------------------------------------------------------------------
-// Menu and toolbar commands
-// ---------------------------------------------------------------------------------
-
-config.commands.closeTiddler.handler = function(event,src,title)
-{
-       story.closeTiddler(title,true,event.shiftKey || event.altKey);
-       return false;
-}
-
-config.commands.closeOthers.handler = function(event,src,title)
-{
-       story.closeAllTiddlers(title);
-       return false;
-}
-
-config.commands.editTiddler.handler = function(event,src,title)
-{
-       clearMessage();
-       story.displayTiddler(null,title,DEFAULT_EDIT_TEMPLATE);
-       story.focusTiddler(title,"text");
-       return false;
-}
-
-config.commands.saveTiddler.handler = function(event,src,title)
-{
-       var newTitle = story.saveTiddler(title,event.shiftKey);
-       if(newTitle)
-          story.displayTiddler(null,newTitle);
-       return false;
-}
-
-config.commands.cancelTiddler.handler = function(event,src,title)
-{
-       if(story.hasChanges(title) && !readOnly)
-               if(!confirm(this.warning.format([title])))
-                       return false;
-       story.setDirty(title,false);
-       story.displayTiddler(null,title);
-       return false;
-}
-
-config.commands.deleteTiddler.handler = function(event,src,title)
-{
-       var deleteIt = true;
-       if (config.options.chkConfirmDelete)
-               deleteIt = confirm(this.warning.format([title]));
-       if (deleteIt)
-               {
-               store.removeTiddler(title);
-               story.closeTiddler(title,true,event.shiftKey || event.altKey);
-               if(config.options.chkAutoSave)
-                       saveChanges();
-               }
-       return false;
-}
-
-config.commands.permalink.handler = function(event,src,title)
-{
-       var t = encodeURIComponent(String.encodeTiddlyLink(title));
-       if(window.location.hash != t)
-               window.location.hash = t;
-       return false;
-}
-
-config.commands.references.handler = function(event,src,title)
-{
-       var popup = Popup.create(src);
-       if(popup)
-               {
-               var references = store.getReferringTiddlers(title);
-               var c = false;
-               for(var r=0; r<references.length; r++)
-                       if(references[r].title != title && !references[r].isTagged("excludeLists"))
-                               {
-                               createTiddlyLink(createTiddlyElement(popup,"li"),references[r].title,true);
-                               c = true;
-                               }
-               if(!c)
-                       createTiddlyText(createTiddlyElement(popup,"li",null,"disabled"),this.popupNone);
-               }
-       Popup.show(popup,false);
-       event.cancelBubble = true;
-       if (event.stopPropagation) event.stopPropagation();
-       return false;
-}
-
-config.commands.jump.handler = function(event,src,title)
-{
-       var popup = Popup.create(src);
-       if(popup)
-               {
-               story.forEachTiddler(function(title,element) {
-                       createTiddlyLink(createTiddlyElement(popup,"li"),title,true);
-                       });
-               }
-       Popup.show(popup,false);
-       event.cancelBubble = true;
-       if (event.stopPropagation) event.stopPropagation();
-       return false;
-}
-
-// ---------------------------------------------------------------------------------
-// Tiddler() object
-// ---------------------------------------------------------------------------------
-
-function Tiddler()
-{
-       this.title = null;
-       this.text = null;
-       this.modifier = null;
-       this.modified = new Date();
-       this.created = new Date();
-       this.links = [];
-       this.linksUpdated = false;
-       this.tags = [];
-       return this;
-}
-
-Tiddler.prototype.getLinks = function()
-{
-       if(this.linksUpdated==false)
-               this.changed();
-       return this.links;
-}
-
-// Format the text for storage in an RSS item
-Tiddler.prototype.saveToRss = function(url)
-{
-       var s = [];
-       s.push("<item>");
-       s.push("<title" + ">" + this.title.htmlEncode() + "</title" + ">");
-       s.push("<description>" + wikifyStatic(this.text,null,this).htmlEncode() + "</description>");
-       for(var t=0; t<this.tags.length; t++)
-               s.push("<category>" + this.tags[t] + "</category>");
-       s.push("<link>" + url + "#" + encodeURIComponent(String.encodeTiddlyLink(this.title)) + "</link>");
-       s.push("<pubDate>" + this.modified.toGMTString() + "</pubDate>");
-       s.push("</item>");
-       return(s.join("\n"));
-}
-
-// Change the text and other attributes of a tiddler
-Tiddler.prototype.set = function(title,text,modifier,modified,tags,created,fields)
-{
-       this.assign(title,text,modifier,modified,tags,created,fields);
-       this.changed();
-       return this;
-}
-
-// Change the text and other attributes of a tiddler without triggered a tiddler.changed() call
-Tiddler.prototype.assign = function(title,text,modifier,modified,tags,created,fields)
-{
-       if(title != undefined)
-               this.title = title;
-       if(text != undefined)
-               this.text = text;
-       if(modifier != undefined)
-               this.modifier = modifier;
-       if(modified != undefined)
-               this.modified = modified;
-       if(created != undefined)
-               this.created = created;
-       if(fields != undefined)
-               this.fields = fields;
-       if(tags != undefined)
-               this.tags = (typeof tags == "string") ? tags.readBracketedList() : tags;
-       else if(this.tags == undefined)
-               this.tags = [];
-       return this;
-}
-
-// Get the tags for a tiddler as a string (space delimited, using [[brackets]] for tags containing spaces)
-Tiddler.prototype.getTags = function()
-{
-       return String.encodeTiddlyLinkList(this.tags);
-}
-
-// Test if a tiddler carries a tag
-Tiddler.prototype.isTagged = function(tag)
-{
-       return this.tags.indexOf(tag) != -1;
-}
-
-// Static method to convert "\n" to newlines, "\s" to "\"
-Tiddler.unescapeLineBreaks = function(text)
-{
-       return text ? text.unescapeLineBreaks() : "";
-}
-
-// Convert newlines to "\n", "\" to "\s"
-Tiddler.prototype.escapeLineBreaks = function()
-{
-       return this.text.escapeLineBreaks();
-}
-
-// Updates the secondary information (like links[] array) after a change to a tiddler
-Tiddler.prototype.changed = function()
-{
-       this.links = [];
-       var t = this.autoLinkWikiWords() ? 0 : 1;
-       var tiddlerLinkRegExp = t==0 ? config.textPrimitives.tiddlerAnyLinkRegExp : config.textPrimitives.tiddlerForcedLinkRegExp;
-       tiddlerLinkRegExp.lastIndex = 0;
-       var formatMatch = tiddlerLinkRegExp.exec(this.text);
-       while(formatMatch)
-               {
-               if(t==0 && formatMatch[1] && formatMatch[1] != this.title) // wikiWordLink
-                       {
-                       if(formatMatch.index > 0)
-                               {
-                               var preRegExp = new RegExp(config.textPrimitives.unWikiLink+"|"+config.textPrimitives.anyLetter,"mg");
-                               preRegExp.lastIndex = formatMatch.index-1;
-                               var preMatch = preRegExp.exec(this.text);
-                               if(preMatch.index != formatMatch.index-1)
-                                       this.links.pushUnique(formatMatch[1]);
-                               }
-                       else
-                               this.links.pushUnique(formatMatch[1]);
-                       }
-               else if(formatMatch[2-t] && (store.tiddlerExists(formatMatch[3-t]) || store.isShadowTiddler(formatMatch[3-t]))) // titledBrackettedLink
-                       this.links.pushUnique(formatMatch[3-t]);
-               else if(formatMatch[4-t] && formatMatch[4-t] != this.title) // brackettedLink
-                       this.links.pushUnique(formatMatch[4-t]);
-               // Do not add link if match urlPattern (formatMatch[5-t])
-               formatMatch = tiddlerLinkRegExp.exec(this.text);
-               }
-       this.linksUpdated = true;
-       return;
-}
-
-Tiddler.prototype.getSubtitle = function()
-{
-       var theModifier = this.modifier;
-       if(!theModifier)
-               theModifier = config.messages.subtitleUnknown;
-       var theModified = this.modified;
-       if(theModified)
-               theModified = theModified.toLocaleString();
-       else
-               theModified = config.messages.subtitleUnknown;
-       return(config.messages.tiddlerLinkTooltip.format([this.title,theModifier,theModified]));
-}
-
-Tiddler.prototype.isReadOnly = function()
-{
-       return readOnly;
-}
-
-Tiddler.prototype.autoLinkWikiWords = function()
-{
-       return !(this.isTagged("systemConfig") || this.isTagged("excludeMissing"));
-}
-
-Tiddler.prototype.generateFingerprint = function()
-{
-       return "0x" + Crypto.hexSha1Str(this.text);
-}
-
-// ---------------------------------------------------------------------------------
-// TiddlyWiki() object contains Tiddler()s
-// ---------------------------------------------------------------------------------
-
-function TiddlyWiki()
-{
-       var tiddlers = {}; // Hashmap by name of tiddlers
-       this.tiddlersUpdated = false;
-       this.namedNotifications = []; // Array of {name:,notify:} of notification functions
-       this.notificationLevel = 0;
-       this.slices = {}; // map tiddlerName->(map sliceName->sliceValue). Lazy.
-       this.clear = function() {
-               tiddlers = {};
-               this.setDirty(false);
-               };
-       this.fetchTiddler = function(title) {
-               return tiddlers[title];
-               };
-       this.deleteTiddler = function(title) {
-               delete this.slices[title];
-               delete tiddlers[title];
-               };
-       this.addTiddler = function(tiddler) {
-               delete this.slices[tiddler.title];
-               tiddlers[tiddler.title] = tiddler;
-               };
-       this.forEachTiddler = function(callback) {
-               for(var t in tiddlers)
-                       {
-                       var tiddler = tiddlers[t];
-                       if(tiddler instanceof Tiddler)
-                               callback.call(this,t,tiddler);
-                       }
-               };
-}
-
-// Set the dirty flag
-TiddlyWiki.prototype.setDirty = function(dirty)
-{
-       this.dirty = dirty;
-}
-
-TiddlyWiki.prototype.isDirty = function()
-{
-       return this.dirty;
-}
-
-TiddlyWiki.prototype.suspendNotifications = function()
-{
-       this.notificationLevel--;
-}
-
-TiddlyWiki.prototype.resumeNotifications = function()
-{
-       this.notificationLevel++;
-}
-
-// Invoke the notification handlers for a particular tiddler
-TiddlyWiki.prototype.notify = function(title,doBlanket)
-{
-       if(!this.notificationLevel)
-               for(var t=0; t<this.namedNotifications.length; t++)
-                       {
-                       var n = this.namedNotifications[t];
-                       if((n.name == null && doBlanket) || (n.name == title))
-                               n.notify(title);
-                       }
-}
-
-// Invoke the notification handlers for all tiddlers
-TiddlyWiki.prototype.notifyAll = function()
-{
-       if(!this.notificationLevel)
-               for(var t=0; t<this.namedNotifications.length; t++)
-                       {
-                       var n = this.namedNotifications[t];
-                       if(n.name)
-                               n.notify(n.name);
-                       }
-}
-
-// Add a notification handler to a tiddler
-TiddlyWiki.prototype.addNotification = function(title,fn)
-{
-       for (var i=0; i<this.namedNotifications.length; i++)
-               if((this.namedNotifications[i].name == title) && (this.namedNotifications[i].notify == fn))
-                       return this;
-       this.namedNotifications.push({name: title, notify: fn});
-       return this;
-}
-
-TiddlyWiki.prototype.removeTiddler = function(title)
-{
-       var tiddler = this.fetchTiddler(title);
-       if(tiddler)
-               {
-               this.deleteTiddler(title);
-               this.notify(title,true);
-               this.setDirty(true);
-               }
-}
-
-TiddlyWiki.prototype.tiddlerExists = function(title)
-{
-       var t = this.fetchTiddler(title);
-       return (t != undefined);
-}
-
-TiddlyWiki.prototype.isShadowTiddler = function(title)
-{
-       return typeof config.shadowTiddlers[title] == "string";
-}
-
-TiddlyWiki.prototype.getTiddler = function(title)
-{
-       var t = this.fetchTiddler(title);
-       if(t != undefined)
-               return t;
-       else
-               return null;
-}
-
-TiddlyWiki.prototype.getTiddlerText = function(title,defaultText)
-{
-       var tiddler = this.fetchTiddler(title);
-       if(tiddler)
-               return tiddler.text;
-       if(!title)
-               return defaultText;
-       var pos = title.indexOf(config.textPrimitives.sliceSeparator);
-       if(pos != -1)
-               {
-               var slice = this.getTiddlerSlice(title.substr(0,pos),title.substr(pos + config.textPrimitives.sliceSeparator.length));
-               if(slice)
-                       return slice;
-               }
-       if(this.isShadowTiddler(title))
-               return config.shadowTiddlers[title];
-       if(defaultText != undefined)
-               return defaultText;
-       return null;
-}
-
-TiddlyWiki.prototype.slicesRE = /(?:[\'\/]*~?(\w+)[\'\/]*\:[\'\/]*\s*(.*?)\s*$)|(?:\|[\'\/]*~?(\w+)\:?[\'\/]*\|\s*(.*?)\s*\|)/gm
-
-// @internal
-TiddlyWiki.prototype.calcAllSlices = function(title) 
-{
-       var slices = {};
-       var text = this.getTiddlerText(title,"");
-       this.slicesRE.lastIndex = 0;
-       do 
-               {
-                       var m = this.slicesRE.exec(text);
-                       if (m) 
-                               {
-                                       if (m[1])
-                                               slices[m[1]] = m[2];
-                                       else
-                                               slices[m[3]] = m[4];
-                               }
-               }
-       while(m);
-       return slices;
-}
-
-// Returns the slice of text of the given name
-//#
-//# A text slice is a substring in the tiddler's text that is defined
-//# either like this
-//#    aName:  textSlice
-//# or
-//#    |aName:| textSlice |
-//# or
-//#    |aName| textSlice |
-//#
-//# In the text the name (or name:) may be decorated with '' or //. I.e.
-//# this would also a possible text slice:
-//#
-//#    |''aName:''| textSlice |
-//#
-//# @param name should only contain "word characters" (i.e. "a-ZA-Z_0-9")
-//# @return [may be undefined] the (trimmed) text of the specified slice.
-TiddlyWiki.prototype.getTiddlerSlice = function(title,sliceName)
-{
-       var slices = this.slices[title];
-       if (!slices) {
-               slices = this.calcAllSlices(title);
-               this.slices[title] = slices;
-       }
-       return slices[sliceName];
-}
-
-// Build an hashmap of the specified named slices of a tiddler
-TiddlyWiki.prototype.getTiddlerSlices = function(title,sliceNames)
-{
-       var r = {};
-       for(var t=0; t<sliceNames.length; t++)
-               {
-               var slice = this.getTiddlerSlice(title,sliceNames[t]);
-               if(slice)
-                       r[sliceNames[t]] = slice;
-               }
-       return r;
-}
-
-TiddlyWiki.prototype.getRecursiveTiddlerText = function(title,defaultText,depth)
-{
-       var bracketRegExp = new RegExp("(?:\\[\\[([^\\]]+)\\]\\])","mg");
-       var text = this.getTiddlerText(title,null);
-       if(text == null)
-               return defaultText;
-       var textOut = [];
-       var lastPos = 0;
-       do {
-               var match = bracketRegExp.exec(text);
-               if(match)
-                       {
-                       textOut.push(text.substr(lastPos,match.index-lastPos));
-                       if(match[1])
-                               {
-                               if(depth <= 0)
-                                       textOut.push(match[1]);
-                               else
-                                       textOut.push(this.getRecursiveTiddlerText(match[1],"[[" + match[1] + "]]",depth-1));
-                               }
-                       lastPos = match.index + match[0].length;
-                       }
-               else
-                       textOut.push(text.substr(lastPos));
-       } while(match);
-       return(textOut.join(""));
-}
-
-TiddlyWiki.prototype.setTiddlerTag = function(title,status,tag)
-{
-       var tiddler = this.fetchTiddler(title);
-       if(tiddler)
-               {
-               var t = tiddler.tags.indexOf(tag);
-               if(t != -1)
-                       tiddler.tags.splice(t,1);
-               if(status)
-                       tiddler.tags.push(tag);
-               tiddler.changed();
-               this.notify(title,true);
-               this.setDirty(true);
-               }
-}
-
-TiddlyWiki.prototype.saveTiddler = function(title,newTitle,newBody,modifier,modified,tags,fields)
-{
-       var tiddler = this.fetchTiddler(title);
-       var created;
-       if(tiddler)
-               {
-               created = tiddler.created; // Preserve created date
-               this.deleteTiddler(title);
-               }
-       else
-               {
-               tiddler = new Tiddler();
-               created = modified;
-               }
-       tiddler.set(newTitle,newBody,modifier,modified,tags,created,fields);
-       this.addTiddler(tiddler);
-       if(title != newTitle)
-               this.notify(title,true);
-       this.notify(newTitle,true);
-       this.setDirty(true);
-       return tiddler;
-}
-
-TiddlyWiki.prototype.createTiddler = function(title)
-{
-       var tiddler = this.fetchTiddler(title);
-       if(!tiddler)
-               {
-               tiddler = new Tiddler();
-               tiddler.title = title;
-               this.addTiddler(tiddler);
-               this.setDirty(true);
-               }
-       return tiddler;
-}
-
-// Load contents of a tiddlywiki from an HTML DIV
-TiddlyWiki.prototype.loadFromDiv = function(src,idPrefix,noUpdate)
-{
-       this.idPrefix = idPrefix;
-       var storeElem = (typeof src == "string") ? document.getElementById(src) : src;
-       var tiddlers = this.getLoader().loadTiddlers(this,storeElem.childNodes);
-       this.setDirty(false);
-       if(!noUpdate)
-               {
-               for(var i = 0;i<tiddlers.length; i++)
-                       tiddlers[i].changed();
-               }
-}
-
-TiddlyWiki.prototype.updateTiddlers = function()
-{
-       this.tiddlersUpdated = true;
-       this.forEachTiddler(function(title,tiddler) {
-               tiddler.changed();
-               });
-}
-
-// Return all tiddlers formatted as an HTML string
-TiddlyWiki.prototype.allTiddlersAsHtml = function()
-{
-       return store.getSaver().externalize(store);
-}
-
-// Return an array of tiddlers matching a search regular expression
-TiddlyWiki.prototype.search = function(searchRegExp,sortField,excludeTag)
-{
-       var candidates = this.reverseLookup("tags",excludeTag,false);
-       var results = [];
-       for(var t=0; t<candidates.length; t++)
-               {
-               if((candidates[t].title.search(searchRegExp) != -1) || (candidates[t].text.search(searchRegExp) != -1))
-                       results.push(candidates[t]);
-               }
-       if(!sortField)
-               sortField = "title";
-       results.sort(function(a,b) {return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);});
-       return results;
-}
-
-// Return an array of all the tags in use. Each member of the array is another array where [0] is the name of the tag and [1] is the number of occurances
-TiddlyWiki.prototype.getTags = function()
-{
-       var results = [];
-       this.forEachTiddler(function(title,tiddler) {
-               for(var g=0; g<tiddler.tags.length; g++)
-                       {
-                       var tag = tiddler.tags[g];
-                       var f = false;
-                       for(var c=0; c<results.length; c++)
-                               if(results[c][0] == tag)
-                                       {
-                                       f = true;
-                                       results[c][1]++;
-                                       }
-                       if(!f)
-                               results.push([tag,1]);
-                       }
-               });
-       results.sort(function(a,b) {return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : (a[0].toLowerCase() == b[0].toLowerCase() ? 0 : +1);});
-       return results;
-}
-
-// Return an array of the tiddlers that are tagged with a given tag
-TiddlyWiki.prototype.getTaggedTiddlers = function(tag,sortField)
-{
-       return this.reverseLookup("tags",tag,true,sortField);
-}
-
-// Return an array of the tiddlers that link to a given tiddler
-TiddlyWiki.prototype.getReferringTiddlers = function(title,unusedParameter,sortField)
-{
-       if(!this.tiddlersUpdated)
-               this.updateTiddlers();
-       return this.reverseLookup("links",title,true,sortField);
-}
-
-// Return an array of the tiddlers that do or do not have a specified entry in the specified storage array (ie, "links" or "tags")
-// lookupMatch == true to match tiddlers, false to exclude tiddlers
-TiddlyWiki.prototype.reverseLookup = function(lookupField,lookupValue,lookupMatch,sortField)
-{
-       var results = [];
-       this.forEachTiddler(function(title,tiddler) {
-               var f = !lookupMatch;
-               for(var lookup=0; lookup<tiddler[lookupField].length; lookup++)
-                       if(tiddler[lookupField][lookup] == lookupValue)
-                               f = lookupMatch;
-               if(f)
-                       results.push(tiddler);
-               });
-       if(!sortField)
-               sortField = "title";
-       results.sort(function(a,b) {return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);});
-       return results;
-}
-
-// Return the tiddlers as a sorted array
-TiddlyWiki.prototype.getTiddlers = function(field,excludeTag)
-{
-       var results = [];
-       this.forEachTiddler(function(title,tiddler) {
-               if(excludeTag == undefined || !tiddler.isTagged(excludeTag))
-                       results.push(tiddler);
-               });
-       if(field)
-               results.sort(function(a,b) {return a[field] < b[field] ? -1 : (a[field] == b[field] ? 0 : +1);});
-       return results;
-}
-
-// Return array of names of tiddlers that are referred to but not defined
-TiddlyWiki.prototype.getMissingLinks = function(sortField)
-{
-       if(!this.tiddlersUpdated)
-               this.updateTiddlers();
-       var results = [];
-       this.forEachTiddler(function (title,tiddler) {
-               for(var n=0; n<tiddler.links.length;n++)
-                       {
-                       var link = tiddler.links[n];
-                       if(this.fetchTiddler(link) == null && !this.isShadowTiddler(link))
-                               results.pushUnique(link);
-                       }
-               });
-       results.sort();
-       return results;
-}
-
-// Return an array of names of tiddlers that are defined but not referred to
-TiddlyWiki.prototype.getOrphans = function()
-{
-       var results = [];
-       this.forEachTiddler(function (title,tiddler) {
-               if(this.getReferringTiddlers(title).length == 0 && !tiddler.isTagged("excludeLists"))
-                       results.push(title);
-               });
-       results.sort();
-       return results;
-}
-
-// Return an array of names of all the shadow tiddlers
-TiddlyWiki.prototype.getShadowed = function()
-{
-       var results = [];
-       for(var t in config.shadowTiddlers)
-               if(typeof config.shadowTiddlers[t] == "string")
-                       results.push(t);
-       results.sort();
-       return results;
-}
-
-// Resolves a Tiddler reference or tiddler title into a Tiddler object, or null if it doesn't exist
-TiddlyWiki.prototype.resolveTiddler = function(tiddler) 
-{
-       var t = (typeof tiddler == 'string') ? this.getTiddler(tiddler) : tiddler;
-       return t instanceof Tiddler ? t : null;
-}
-
-TiddlyWiki.prototype.getLoader = function() 
-{
-       if (!this.loader) 
-               this.loader = new TW21Loader();
-       return this.loader;
-}
-TiddlyWiki.prototype.getSaver = function() 
-{
-       if (!this.saver) 
-               this.saver = new TW21Saver();
-       return this.saver;
-}
-
-// Returns true if path is a valid field name (path),
-// i.e. a sequence of identifiers, separated by '.'
-TiddlyWiki.isValidFieldName = function (name) {
-       var match = /[a-zA-Z_]\w*(\.[a-zA-Z_]\w*)*/.exec(name);
-       return match && (match[0] == name);
-}
-
-// Throws an exception when name is not a valid field name.
-TiddlyWiki.checkFieldName = function(name) {
-       if (!TiddlyWiki.isValidFieldName(name))
-               throw config.messages.invalidFieldName.format([name]);
-}
-
-function StringFieldAccess(n, readOnly) {
-       this.set = readOnly 
-               ? function(t,v) {if (v != t[n]) throw config.messages.fieldCannotBeChanged.format([n]);}
-               : function(t,v) {if (v != t[n]) {t[n] = v; return true;}};
-       this.get = function(t) {return t[n];};
-}
-
-function DateFieldAccess(n) {
-       this.set = function(t,v) {
-                       var d = v instanceof Date ? v : Date.convertFromYYYYMMDDHHMM(v); 
-                       if (d != t[n]) {
-                               t[n] = d; return true;
-                       }
-               };
-       this.get = function(t)   {return t[n].convertToYYYYMMDDHHMM();}
-}
-
-function LinksFieldAccess(n) {
-       this.set = function(t,v) {
-                       var s = (typeof v == "string") ? v.readBracketedList() : v; 
-                       if (s.toString() != t[n].toString()) {
-                               t[n] = s; return true;
-                       }
-               };
-       this.get = function(t)   {return String.encodeTiddlyLinkList(t[n]);}
-}
-
-TiddlyWiki.standardFieldAccess = {
-       // The set functions return true when setting the data has changed the value.
-       
-       "title":    new StringFieldAccess("title", true),
-       // Handle the "tiddler" field name as the title
-       "tiddler":  new StringFieldAccess("title", true),
-       
-       "text":     new StringFieldAccess("text"),
-       "modifier": new StringFieldAccess("modifier"),
-       "modified": new DateFieldAccess("modified"),
-       "created":  new DateFieldAccess("created"),
-       "tags":     new LinksFieldAccess("tags")
-};
-
-TiddlyWiki.isStandardField = function(name) {
-       return TiddlyWiki.standardFieldAccess[name] != undefined;
-}
-
-// Sets the value of the given field of the tiddler to the value. 
-// Setting an ExtendedField's value to null or undefined removes the field. 
-// Setting a namespace to undefined removes all fields of that namespace.
-// The fieldName is case-insensitive.
-// All values will be converted to a string value.
-TiddlyWiki.prototype.setValue = function(tiddler, fieldName, value) {
-       TiddlyWiki.checkFieldName(fieldName);
-       var t = this.resolveTiddler(tiddler);
-       if (!t)
-               return;
-               
-       fieldName = fieldName.toLowerCase();
-
-       var isRemove = (value === undefined) || (value === null);
-
-       if (!t.fields) 
-               t.fields = {};
-               
-       var accessor = TiddlyWiki.standardFieldAccess[fieldName];
-       if (accessor) {
-               if (isRemove)
-                       // don't remove StandardFields
-                       return;
-               var h = TiddlyWiki.standardFieldAccess[fieldName];
-               if (!h.set(t, value))
-                       return;
-
-       } else {
-               var oldValue = t.fields[fieldName];
-               
-               if (isRemove) {
-                       if (oldValue !== undefined) {
-                               // deletes a single field
-                               delete t.fields[fieldName];
-                       } else {
-                               // no concrete value is defined for the fieldName
-                               // so we guess this is a namespace path.
-                               
-                               // delete all fields in a namespace
-                               var re = new RegExp('^'+fieldName+'\\.');
-                               var dirty = false;
-                               for (var n in t.fields) {
-                                       if (n.match(re)) {
-                                               delete t.fields[n];
-                                               dirty = true;
-                                       }
-                               }
-                               if (!dirty)
-                                       return
-                       }
-                               
-               } else {
-                       // the "normal" set case. value is defined (not null/undefined)
-                       // For convenience provide a nicer conversion Date->String
-                       value = value instanceof Date 
-                               ? value.convertToYYYYMMDDHHMMSSMMM() 
-                               : String(value);
-                       if (oldValue == value) 
-                               return;
-                       t.fields[fieldName] = value;
-               }
-       }
-       
-       // When we are here the tiddler/store really was changed.
-       this.notify(t.title,true);
-       if (!fieldName.match(/^temp\./))
-               this.setDirty(true);
-}
-
-// Returns the value of the given field of the tiddler. 
-// The fieldName is case-insensitive.
-// Will only return String values (or undefined).
-TiddlyWiki.prototype.getValue = function(tiddler, fieldName) {
-       var t = this.resolveTiddler(tiddler);
-       if (!t)
-               return undefined;
-
-       fieldName = fieldName.toLowerCase();
-
-       var accessor = TiddlyWiki.standardFieldAccess[fieldName];
-       if (accessor) {
-               return accessor.get(t);
-       }
-       
-       return t.fields ? t.fields[fieldName] : undefined;
-}
-
-// Calls the callback function for every field in the tiddler.
-//
-// When callback function returns a non-false value the iteration stops 
-// and that value is returned. 
-//
-// The order of the fields is not defined.
-// 
-// @param callback a function(tiddler, fieldName, value). 
-// 
-TiddlyWiki.prototype.forEachField = function(tiddler, callback, onlyExtendedFields) {
-       var t = this.resolveTiddler(tiddler);
-       if (!t)
-               return undefined;
-       
-       if (t.fields) {
-               for (var n in t.fields) {
-                       var result = callback(t, n, t.fields[n]);
-                       if (result)
-                               return result;
-               }
-       }
-       
-       if (onlyExtendedFields)
-               return undefined;
-
-       for (var n in TiddlyWiki.standardFieldAccess) {
-               if (n == "tiddler")
-                       // even though the "title" field can also be referenced through the name "tiddler"
-                       // we only visit this field once.
-                       continue;
-                       
-               var result = callback(t, n, TiddlyWiki.standardFieldAccess[n].get(t));
-               if (result)
-                       return result;
-       }
-
-       return undefined;
-};
-// ---------------------------------------------------------------------------------
-// Story functions
-// ---------------------------------------------------------------------------------
-
-// A story is a HTML div containing a sequence of tiddlers that can be manipulated
-// container - id of containing element
-// idPrefix - string prefix prepended to title to make ids for tiddlers in this story
-function Story(container,idPrefix)
-{
-       this.container = container;
-       this.idPrefix = idPrefix;
-       this.highlightRegExp = null;
-}
-
-// Iterate through all the tiddlers in a story
-// fn - callback function to be called for each tiddler. Arguments are:
-//             tiddler - reference to Tiddler object
-//             element - reference to tiddler display element
-Story.prototype.forEachTiddler = function(fn)
-{
-       var place = document.getElementById(this.container);
-       if(!place)
-               return;
-       var e = place.firstChild;
-       while(e)
-               {
-               var n = e.nextSibling;
-               var title = e.getAttribute("tiddler");
-               fn.call(this,title,e);
-               e = n;
-               }
-}
-
-// Display several tiddlers given their titles in an array. Parameters same as displayTiddler(), except:
-// titles - array of string titles
-Story.prototype.displayTiddlers = function(srcElement,titles,template,animate,slowly)
-{
-       for(var t = titles.length-1;t>=0;t--)
-               this.displayTiddler(srcElement,titles[t],template,animate,slowly);
-}
-
-// Display a given tiddler with a given template. If the tiddler is already displayed but with a different
-// template, it is switched to the specified template
-// srcElement - reference to element from which this one is being opened -or-
-//              special positions "top", "bottom"
-// title - title of tiddler to display
-// template - the name of the tiddler containing the template -or-
-//                       one of the constants DEFAULT_VIEW_TEMPLATE and DEFAULT_EDIT_TEMPLATE -or-
-//                       null or undefined to indicate the current template if there is one, DEFAULT_VIEW_TEMPLATE if not
-// animate - whether to perform animations
-// slowly - whether to perform animations in slomo
-Story.prototype.displayTiddler = function(srcElement,title,template,animate,slowly)
-{
-       var place = document.getElementById(this.container);
-       var tiddlerElem = document.getElementById(this.idPrefix + title);
-       if(tiddlerElem)
-               this.refreshTiddler(title,template);
-       else
-               {
-               var before = this.positionTiddler(srcElement);
-               tiddlerElem = this.createTiddler(place,before,title,template);
-               }
-       if(srcElement && typeof srcElement !== "string")
-               {
-               if(anim && config.options.chkAnimate && (animate == undefined || animate == true))
-                       anim.startAnimating(new Cascade(title,srcElement,tiddlerElem,slowly),new Scroller(tiddlerElem,slowly));
-               else
-                       window.scrollTo(0,ensureVisible(tiddlerElem));
-               }
-}
-
-// Figure out the appropriate position for a newly opened tiddler
-// srcElement - reference to the element containing the link to the tiddler -or-
-//              special positions "top", "bottom"
-// returns - reference to the tiddler that the new one should appear before (null for the bottom of the story)
-Story.prototype.positionTiddler = function(srcElement)
-{
-       var place = document.getElementById(this.container);
-       var before;
-       if(typeof srcElement == "string")
-               {
-               switch(srcElement)
-                       {
-                       case "top":
-                               before = place.firstChild;
-                               break;
-                       case "bottom":
-                               before = null;
-                               break;
-                       }
-               }
-       else
-               {
-               var after = this.findContainingTiddler(srcElement);
-               if(after == null)
-                       before = place.firstChild;
-               else if(after.nextSibling)
-                       before = after.nextSibling;
-               else
-                       before = null;
-               }
-       return before;
-}
-
-// Create a tiddler frame at the appropriate place in a story column
-// place - reference to parent element
-// before - null, or reference to element before which to insert new tiddler
-// title - title of new tiddler
-// template - the name of the tiddler containing the template or one of the constants DEFAULT_VIEW_TEMPLATE and DEFAULT_EDIT_TEMPLATE
-Story.prototype.createTiddler = function(place,before,title,template)
-{
-       var tiddlerElem = createTiddlyElement(null,"div",this.idPrefix + title,"tiddler");
-       tiddlerElem.setAttribute("refresh","tiddler");
-       place.insertBefore(tiddlerElem,before);
-       this.refreshTiddler(title,template);
-       return tiddlerElem;
-}
-
-// Overridable for choosing the name of the template to apply for a tiddler
-Story.prototype.chooseTemplateForTiddler = function(title,template)
-{
-       if(!template)
-               template = DEFAULT_VIEW_TEMPLATE;
-       if(template == DEFAULT_VIEW_TEMPLATE || template == DEFAULT_EDIT_TEMPLATE)
-               template = config.tiddlerTemplates[template];
-       return template;
-}
-
-// Overridable for extracting the text of a template from a tiddler
-Story.prototype.getTemplateForTiddler = function(title,template,tiddler)
-{
-       return store.getRecursiveTiddlerText(template,null,10);
-}
-
-// Apply a template to an existing tiddler if it is not already displayed using that template
-// title - title of tiddler to update
-// template - the name of the tiddler containing the template or one of the constants DEFAULT_VIEW_TEMPLATE and DEFAULT_EDIT_TEMPLATE
-// force - if true, forces the refresh even if the template hasn't changedd
-Story.prototype.refreshTiddler = function(title,template,force)
-{
-       var tiddlerElem = document.getElementById(this.idPrefix + title);
-       if(tiddlerElem)
-               {
-               if(tiddlerElem.getAttribute("dirty") == "true" && !force)
-                       return tiddlerElem;
-               template = this.chooseTemplateForTiddler(title,template);
-               var currTemplate = tiddlerElem.getAttribute("template");
-               if((template != currTemplate) || force)
-                       {
-                       var tiddler = store.getTiddler(title);
-                       if(!tiddler)
-                               {
-                               tiddler = new Tiddler();
-                               if(store.isShadowTiddler(title))
-                                       tiddler.set(title,store.getTiddlerText(title),config.views.wikified.shadowModifier,version.date,[],version.date);
-                               else
-                                       {
-                                       var text = template=="EditTemplate"
-                                                               ? config.views.editor.defaultText.format([title])
-                                                               : config.views.wikified.defaultText.format([title]);
-                                       tiddler.set(title,text,config.views.wikified.defaultModifier,version.date,[],version.date);
-                                       }
-                               }
-                       tiddlerElem.setAttribute("tags",tiddler.tags.join(" "));
-                       tiddlerElem.setAttribute("tiddler",title);
-                       tiddlerElem.setAttribute("template",template);
-                       var me = this;
-                       tiddlerElem.onmouseover = this.onTiddlerMouseOver;
-                       tiddlerElem.onmouseout = this.onTiddlerMouseOut;
-                       tiddlerElem.ondblclick = this.onTiddlerDblClick;
-                       tiddlerElem[window.event?"onkeydown":"onkeypress"] = this.onTiddlerKeyPress;
-                       var html = this.getTemplateForTiddler(title,template,tiddler);
-                       tiddlerElem.innerHTML = html;
-                       applyHtmlMacros(tiddlerElem,tiddler);
-                       if(store.getTaggedTiddlers(title).length > 0)
-                               addClass(tiddlerElem,"isTag");
-                       else
-                               removeClass(tiddlerElem,"isTag");
-                       if(!store.tiddlerExists(title))
-                               {
-                               if(store.isShadowTiddler(title))
-                                       addClass(tiddlerElem,"shadow");
-                               else
-                                       addClass(tiddlerElem,"missing");
-                               }
-                       else
-                               {
-                               removeClass(tiddlerElem,"shadow");
-                               removeClass(tiddlerElem,"missing");
-                               }
-                       }
-               }
-       return tiddlerElem;
-}
-
-// Refresh all tiddlers in the Story
-Story.prototype.refreshAllTiddlers = function() 
-{
-       var place = document.getElementById(this.container);
-       var e = place.firstChild;
-       if(!e)
-               return;
-       this.refreshTiddler(e.getAttribute("tiddler"),e.getAttribute("template"),true);
-       while((e = e.nextSibling) != null) 
-               this.refreshTiddler(e.getAttribute("tiddler"),e.getAttribute("template"),true);
-}
-
-// Default tiddler onmouseover/out event handlers
-Story.prototype.onTiddlerMouseOver = function(e)
-{
-       if(window.addClass instanceof Function)
-               addClass(this,"selected");
-}
-
-Story.prototype.onTiddlerMouseOut = function(e)
-{
-       if(window.removeClass instanceof Function)
-               removeClass(this,"selected");
-}
-
-// Default tiddler ondblclick event handler
-Story.prototype.onTiddlerDblClick = function(e)
-{
-       if(!e) var e = window.event;
-       var theTarget = resolveTarget(e);
-       if(theTarget && theTarget.nodeName.toLowerCase() != "input" && theTarget.nodeName.toLowerCase() != "textarea")
-               {
-               if(document.selection && document.selection.empty)
-                       document.selection.empty();
-               config.macros.toolbar.invokeCommand(this,"defaultCommand",e);
-               e.cancelBubble = true;
-               if (e.stopPropagation) e.stopPropagation();
-               return true;
-               }
-       else
-               return false;
-}
-
-Story.prototype.onTiddlerKeyPress = function(e)
-{
-       if(!e) var e = window.event;
-       clearMessage();
-       var consume = false; 
-       var title = this.getAttribute("tiddler");
-       var target = resolveTarget(e);
-       switch(e.keyCode)
-               {
-               case 9: // Tab
-                       if(config.options.chkInsertTabs && target.tagName.toLowerCase() == "textarea")
-                               {
-                               replaceSelection(target,String.fromCharCode(9));
-                               consume = true; 
-                               }
-                       if(config.isOpera)
-                               {
-                               target.onblur = function()
-                                       {
-                                       this.focus();
-                                       this.onblur = null;
-                                       }
-                               }
-                       break;
-               case 13: // Ctrl-Enter
-               case 10: // Ctrl-Enter on IE PC
-               case 77: // Ctrl-Enter is "M" on some platforms
-                       if(e.ctrlKey)
-                               {
-                               blurElement(this);
-                               config.macros.toolbar.invokeCommand(this,"defaultCommand",e);
-                               consume = true;
-                               }
-                       break; 
-               case 27: // Escape
-                       blurElement(this);
-                       config.macros.toolbar.invokeCommand(this,"cancelCommand",e);
-                       consume = true;
-                       break;
-               }
-       e.cancelBubble = consume;
-       if(consume)
-               {
-               if(e.stopPropagation) e.stopPropagation(); // Stop Propagation
-               e.returnValue = true; // Cancel The Event in IE
-               if(e.preventDefault ) e.preventDefault(); // Cancel The Event in Moz
-               }
-       return(!consume);
-};
-
-// Returns the specified field (input or textarea element) in a tiddler, otherwise the first edit field it finds
-// or null if it found no edit field at all
-Story.prototype.getTiddlerField = function(title,field)
-{
-       var tiddlerElem = document.getElementById(this.idPrefix + title);
-       var e = null;
-       if(tiddlerElem != null)
-               {
-               var children = tiddlerElem.getElementsByTagName("*");
-               for (var t=0; t<children.length; t++)
-                       {
-                       var c = children[t];
-                       if(c.tagName.toLowerCase() == "input" || c.tagName.toLowerCase() == "textarea")
-                               {
-                               if(!e)
-                                       e = c;
-                               if(c.getAttribute("edit") == field)
-                                       e = c;
-                               }
-                       }
-               }
-       return e;
-}
-
-// Focus a specified tiddler. Attempts to focus the specified field, otherwise the first edit field it finds
-Story.prototype.focusTiddler = function(title,field)
-{
-       var e = this.getTiddlerField(title,field);
-       if(e)
-               {
-               e.focus();
-               e.select();
-               }
-}
-
-// Ensures that a specified tiddler does not have the focus
-Story.prototype.blurTiddler = function(title)
-{
-       var tiddlerElem = document.getElementById(this.idPrefix + title);
-       if(tiddlerElem != null && tiddlerElem.focus && tiddlerElem.blur)
-               {
-               tiddlerElem.focus();
-               tiddlerElem.blur();
-               }
-}
-
-// Adds a specified value to the edit controls (if any) of a particular
-// array-formatted field of a particular tiddler (eg "tags")
-//  title - name of tiddler
-//  tag - value of field, without any [[brackets]]
-//  mode - +1 to add the tag, -1 to remove it, 0 to toggle it
-//  field - name of field (eg "tags")
-Story.prototype.setTiddlerField = function(title,tag,mode,field)
-{
-       var c = story.getTiddlerField(title,field);
-
-       var tags = c.value.readBracketedList();
-       tags.setItem(tag,mode);
-       c.value = String.encodeTiddlyLinkList(tags);
-}
-
-// The same as setTiddlerField but preset to the "tags" field
-Story.prototype.setTiddlerTag = function(title,tag,mode)
-{
-       Story.prototype.setTiddlerField(title,tag,mode,"tags");
-}
-
-// Close a specified tiddler
-// title - name of tiddler to close
-// animate - whether to perform animations
-// slowly - whether to perform animations in slomo
-Story.prototype.closeTiddler = function(title,animate,slowly)
-{
-       var tiddlerElem = document.getElementById(this.idPrefix + title);
-       if(tiddlerElem != null)
-               {
-               clearMessage();
-               this.scrubTiddler(tiddlerElem);
-               if(anim && config.options.chkAnimate && animate)
-                       anim.startAnimating(new Slider(tiddlerElem,false,slowly,"all"));
-               else
-                       tiddlerElem.parentNode.removeChild(tiddlerElem);
-               }
-}
-
-// Scrub IDs from a tiddler. This is so that the 'ghost' of a tiddler while it is being closed
-// does not interfere with things
-// tiddler - reference to the tiddler element
-Story.prototype.scrubTiddler = function(tiddlerElem)
-{
-       tiddlerElem.id = null;
-}
-
-// Set the 'dirty' flag of a tiddler
-// title - title of tiddler to change
-// dirty - new boolean status of flag
-Story.prototype.setDirty = function(title,dirty)
-{
-       var tiddlerElem = document.getElementById(this.idPrefix + title);
-       if(tiddlerElem != null)
-               tiddlerElem.setAttribute("dirty",dirty ? "true" : "false");
-}
-
-// Is a particular tiddler dirty (with unsaved changes)?
-Story.prototype.isDirty = function(title)
-{
-       var tiddlerElem = document.getElementById(this.idPrefix + title);
-       if(tiddlerElem != null)
-               return tiddlerElem.getAttribute("dirty") == "true";
-       return null;
-}
-
-// Determine whether any open tiddler are dirty
-Story.prototype.areAnyDirty = function()
-{
-       var r = false;
-       this.forEachTiddler(function(title,element) {
-               if(this.isDirty(title))
-                       r = true;
-               });
-       return r;
-}
-
-// Close all tiddlers in the story
-Story.prototype.closeAllTiddlers = function(exclude)
-{
-       clearMessage();
-       this.forEachTiddler(function(title,element) {
-               if((title != exclude) && element.getAttribute("dirty") != "true")
-                       this.closeTiddler(title);
-               });
-       window.scrollTo(0,0);
-}
-
-// Check if there are any tiddlers in the story
-Story.prototype.isEmpty = function()
-{
-       var place = document.getElementById(this.container);
-       return(place && place.firstChild == null);
-}
-
-// Perform a search and display the result
-// text - text to search for
-// useCaseSensitive - true for case sensitive matching
-// useRegExp - true to interpret text as a RegExp
-Story.prototype.search = function(text,useCaseSensitive,useRegExp)
-{
-       this.closeAllTiddlers();
-       highlightHack = new RegExp(useRegExp ?   text : text.escapeRegExp(),useCaseSensitive ? "mg" : "img");
-       var matches = store.search(highlightHack,"title","excludeSearch");
-       var titles = [];
-       for(var t=matches.length-1; t>=0; t--)
-               titles.push(matches[t].title);
-       this.displayTiddlers(null,titles);
-       highlightHack = null;
-       var q = useRegExp ? "/" : "'";
-       if(matches.length > 0)
-               displayMessage(config.macros.search.successMsg.format([titles.length.toString(),q + text + q]));
-       else
-               displayMessage(config.macros.search.failureMsg.format([q + text + q]));
-}
-
-// Determine if the specified element is within a tiddler in this story
-// e - reference to an element
-// returns: reference to a tiddler element or null if none
-Story.prototype.findContainingTiddler = function(e)
-{
-       while(e && !hasClass(e,"tiddler"))
-               e = e.parentNode;
-       return(e);
-}
-
-// Gather any saveable fields from a tiddler element
-// e - reference to an element to scan recursively
-// fields - object to contain gathered field values
-Story.prototype.gatherSaveFields = function(e,fields)
-{
-       if(e && e.getAttribute)
-               {
-               var f = e.getAttribute("edit");
-               if(f)
-                       fields[f] = e.value.replace(/\r/mg,"");;
-               if(e.hasChildNodes())
-                       {
-                       var c = e.childNodes;
-                       for(var t=0; t<c.length; t++)
-                               this.gatherSaveFields(c[t],fields)
-                       }
-               }
-}
-
-// Determine whether a tiddler has any edit fields, and if so if their values have been changed
-// title - name of tiddler
-Story.prototype.hasChanges = function(title)
-{
-       var e = document.getElementById(this.idPrefix + title);
-       if(e != null)
-               {
-               var fields = {};
-               this.gatherSaveFields(e,fields);
-               var tiddler = store.fetchTiddler(title);
-               if (!tiddler)
-                       return false;
-               for(var n in fields)
-                       if (store.getValue(title,n) != fields[n])
-                               return true;
-               }
-       return false;
-}
-
-// Save any open edit fields of a tiddler and updates the display as necessary
-// title - name of tiddler
-// minorUpdate - true if the modified date shouldn't be updated
-// returns: title of saved tiddler, or null if not saved
-Story.prototype.saveTiddler = function(title,minorUpdate)
-{
-       var tiddlerElem = document.getElementById(this.idPrefix + title);
-       if(tiddlerElem != null)
-               {
-               var fields = {};
-               this.gatherSaveFields(tiddlerElem,fields);
-               var newTitle = fields.title ? fields.title : title;
-               if(store.tiddlerExists(newTitle) && newTitle != title)
-                       {
-                       if(confirm(config.messages.overwriteWarning.format([newTitle.toString()])))
-                               this.closeTiddler(newTitle,false,false);
-                       else
-                               return null;
-                       }
-               tiddlerElem.id = this.idPrefix + newTitle;
-               tiddlerElem.setAttribute("tiddler",newTitle);
-               tiddlerElem.setAttribute("template",DEFAULT_VIEW_TEMPLATE);
-               tiddlerElem.setAttribute("dirty","false");
-               if(config.options.chkForceMinorUpdate)
-                       minorUpdate = !minorUpdate;
-               var newDate = new Date();
-               store.saveTiddler(title,newTitle,fields.text,config.options.txtUserName,minorUpdate ? undefined : newDate,fields.tags);
-               for (var n in fields) 
-                       if (!TiddlyWiki.isStandardField(n))
-                               store.setValue(newTitle,n,fields[n]);
-               if(config.options.chkAutoSave)
-                       saveChanges();
-               return newTitle;
-               }
-       return null;
-}
-
-Story.prototype.permaView = function()
-{
-       var links = [];
-       this.forEachTiddler(function(title,element) {
-               links.push(String.encodeTiddlyLink(title));
-               });
-       var t = encodeURIComponent(links.join(" "));
-       if(t == "")
-               t = "#";
-       if(window.location.hash != t)
-               window.location.hash = t;
-}
-
-// ---------------------------------------------------------------------------------
-// Message area
-// ---------------------------------------------------------------------------------
-
-function getMessageDiv()
-{
-       var msgArea = document.getElementById("messageArea");
-       if(!msgArea)
-               return null;
-       if(!msgArea.hasChildNodes())
-               createTiddlyButton(createTiddlyElement(msgArea,"div",null,"messageToolbar"),
-                       config.messages.messageClose.text,
-                       config.messages.messageClose.tooltip,
-                       clearMessage);
-       msgArea.style.display = "block";
-       return createTiddlyElement(msgArea,"div");
-}
-
-function displayMessage(text,linkText)
-{
-       var e = getMessageDiv();
-       if(!e)
-               {
-               alert(text);
-               return;
-               }
-       if(linkText)
-               {
-               var link = createTiddlyElement(e,"a",null,null,text);
-               link.href = linkText;
-               link.target = "_blank";
-               }
-       else
-               e.appendChild(document.createTextNode(text));
-}
-
-function clearMessage()
-{
-       var msgArea = document.getElementById("messageArea");
-       if(msgArea)
-               {
-               removeChildren(msgArea);
-               msgArea.style.display = "none";
-               }
-       return false;
-}
-
-// ---------------------------------------------------------------------------------
-// Refresh mechanism
-// ---------------------------------------------------------------------------------
-
-config.refreshers = {
-       link: function(e,changeList)
-               {
-               var title = e.getAttribute("tiddlyLink");
-               refreshTiddlyLink(e,title);
-               return true;
-               },
-       
-       tiddler: function(e,changeList)
-               {
-               var title = e.getAttribute("tiddler");
-               var template = e.getAttribute("template");
-               if(changeList && changeList.indexOf(title) != -1 && !story.isDirty(title))
-                       story.refreshTiddler(title,template,true);
-               else
-                       refreshElements(e,changeList);
-               return true;
-               },
-
-       content: function(e,changeList)
-               {
-               var title = e.getAttribute("tiddler");
-               var force = e.getAttribute("force");
-               if(force != null || changeList == null || changeList.indexOf(title) != -1)
-                       {
-                       removeChildren(e);
-                       wikify(store.getTiddlerText(title,title),e);
-                       return true;
-                       }
-               else
-                       return false;
-               },
-
-       macro: function(e,changeList)
-               {
-               var macro = e.getAttribute("macroName");
-               var params = e.getAttribute("params");
-               if(macro)
-                       macro = config.macros[macro];
-               if(macro && macro.refresh)
-                       macro.refresh(e,params);
-               return true;
-               }
-};
-
-function refreshElements(root,changeList)
-{
-       var nodes = root.childNodes;
-       for(var c=0; c<nodes.length; c++)
-               {
-               var e = nodes[c],type;
-               if(e.getAttribute)
-                       type = e.getAttribute("refresh");
-               else
-                       type = null;
-               var refresher = config.refreshers[type];
-               var refreshed = false;
-               if(refresher != undefined)
-                       refreshed = refresher(e,changeList);
-               if(e.hasChildNodes() && !refreshed)
-                       refreshElements(e,changeList);
-               }
-}
-
-function applyHtmlMacros(root,tiddler)
-{
-       var e = root.firstChild;
-       while(e)
-               {
-               var nextChild = e.nextSibling;
-               if(e.getAttribute)
-                       {
-                       var macro = e.getAttribute("macro");
-                       if(macro)
-                               {
-                               var params = "";
-                               var p = macro.indexOf(" ");
-                               if(p != -1)
-                                       {
-                                       params = macro.substr(p+1);
-                                       macro = macro.substr(0,p);
-                                       }
-                               invokeMacro(e,macro,params,null,tiddler);
-                               }
-                       }
-               if(e.hasChildNodes())
-                       applyHtmlMacros(e,tiddler);
-               e = nextChild;
-               }
-}
-
-function refreshPageTemplate(title)
-{
-       var stash = createTiddlyElement(document.body,"div");
-       stash.style.display = "none";
-       var display = document.getElementById("tiddlerDisplay");
-       var nodes,t;
-       if(display)
-               {
-               nodes = display.childNodes;
-               for(t=nodes.length-1; t>=0; t--)
-                       stash.appendChild(nodes[t]);
-               }
-       var wrapper = document.getElementById("contentWrapper");
-       if(!title)
-               title = "PageTemplate";
-       var html = store.getRecursiveTiddlerText(title,null,10);
-       wrapper.innerHTML = html;
-       applyHtmlMacros(wrapper);
-       refreshElements(wrapper);
-       display = document.getElementById("tiddlerDisplay");
-       removeChildren(display);
-       if(!display)
-               display = createTiddlyElement(wrapper,"div","tiddlerDisplay");
-       nodes = stash.childNodes;
-       for(t=nodes.length-1; t>=0; t--)
-               display.appendChild(nodes[t]);
-       stash.parentNode.removeChild(stash);
-}
-
-function refreshDisplay(hint)
-{
-       var e = document.getElementById("contentWrapper");
-       if(typeof hint == "string")
-               hint = [hint];
-       refreshElements(e,hint);
-}
-
-function refreshPageTitle()
-{
-       document.title = wikifyPlain("SiteTitle") + " - " + wikifyPlain("SiteSubtitle");
-}
-
-function refreshStyles(title)
-{
-       setStylesheet(title == null ? "" : store.getRecursiveTiddlerText(title,"",10),title);
-}
-
-function refreshColorPalette(title)
-{
-       if(!startingUp)
-               refreshAll();
-}
-
-function refreshAll()
-{
-       refreshPageTemplate();
-       refreshDisplay();
-       refreshStyles("StyleSheetLayout");
-       refreshStyles("StyleSheetColors");
-       refreshStyles("StyleSheet");
-       refreshStyles("StyleSheetPrint");
-}
-
-// ---------------------------------------------------------------------------------
-// Options cookie stuff
-// ---------------------------------------------------------------------------------
-
-function loadOptionsCookie()
-{
-       if(safeMode)
-               return;
-       var cookies = document.cookie.split(";");
-       for(var c=0; c<cookies.length; c++)
-               {
-               var p = cookies[c].indexOf("=");
-               if(p != -1)
-                       {
-                       var name = cookies[c].substr(0,p).trim();
-                       var value = cookies[c].substr(p+1).trim();
-                       switch(name.substr(0,3))
-                               {
-                               case "txt":
-                                       config.options[name] = unescape(value);
-                                       break;
-                               case "chk":
-                                       config.options[name] = value == "true";
-                                       break;
-                               }
-                       }
-               }
-}
-
-function saveOptionCookie(name)
-{
-       if(safeMode)
-               return;
-       var c = name + "=";
-       switch(name.substr(0,3))
-               {
-               case "txt":
-                       c += escape(config.options[name].toString());
-                       break;
-               case "chk":
-                       c += config.options[name] ? "true" : "false";
-                       break;
-               }
-       c += "; expires=Fri, 1 Jan 2038 12:00:00 UTC; path=/";
-       document.cookie = c;
-}
-
-// ---------------------------------------------------------------------------------
-// Saving
-// ---------------------------------------------------------------------------------
-
-var saveUsingSafari = false;
-
-var startSaveArea = '<div id="' + 'storeArea">'; // Split up into two so that indexOf() of this source doesn't find it
-var endSaveArea = '</d' + 'iv>';
-
-// If there are unsaved changes, force the user to confirm before exitting
-function confirmExit()
-{
-       hadConfirmExit = true;
-       if((store && store.isDirty && store.isDirty()) || (story && story.areAnyDirty && story.areAnyDirty()))
-               return config.messages.confirmExit;
-}
-
-// Give the user a chance to save changes before exitting
-function checkUnsavedChanges()
-{
-       if(store && store.isDirty && store.isDirty() && window.hadConfirmExit === false)
-               {
-               if(confirm(config.messages.unsavedChangesWarning))
-                       saveChanges();
-               }
-}
-
-function updateMarkupBlock(s,blockName,tiddlerName)
-{
-       return s.replaceChunk(
-                       "<!--%0-START-->".format([blockName]),
-                       "<!--%0-END-->".format([blockName]),
-                       "\n" + store.getRecursiveTiddlerText(tiddlerName,"") + "\n");
-}
-
-// Save this tiddlywiki with the pending changes
-function saveChanges(onlyIfDirty)
-{
-       if(onlyIfDirty && !store.isDirty())
-               return;
-       clearMessage();
-       // Get the URL of the document
-       var originalPath = document.location.toString();
-       // Check we were loaded from a file URL
-       if(originalPath.substr(0,5) != "file:")
-               {
-               alert(config.messages.notFileUrlError);
-               if(store.tiddlerExists(config.messages.saveInstructions))
-                       story.displayTiddler(null,config.messages.saveInstructions);
-               return;
-               }
-       var localPath = getLocalPath(originalPath);
-       // Load the original file
-       var original = loadFile(localPath);
-       if(original == null)
-               {
-               alert(config.messages.cantSaveError);
-               if(store.tiddlerExists(config.messages.saveInstructions))
-                       story.displayTiddler(null,config.messages.saveInstructions);
-               return;
-               }
-       // Locate the storeArea div's
-       var posOpeningDiv = original.indexOf(startSaveArea);
-       var limitClosingDiv = original.indexOf("<!--POST-BODY-START--"+">");
-       var posClosingDiv = original.lastIndexOf(endSaveArea,limitClosingDiv == -1 ? original.length : limitClosingDiv);
-       if((posOpeningDiv == -1) || (posClosingDiv == -1))
-               {
-               alert(config.messages.invalidFileError.format([localPath]));
-               return;
-               }
-       // Save the backup
-       if(config.options.chkSaveBackups)
-               {
-               var backupPath = getBackupPath(localPath);
-               var backup = saveFile(backupPath,original);
-               if(backup)
-                       displayMessage(config.messages.backupSaved,"file://" + backupPath);
-               else
-                       alert(config.messages.backupFailed);
-               }
-       // Save Rss
-       if(config.options.chkGenerateAnRssFeed)
-               {
-               var rssPath = localPath.substr(0,localPath.lastIndexOf(".")) + ".xml";
-               var rssSave = saveFile(rssPath,convertUnicodeToUTF8(generateRss()));
-               if(rssSave)
-                       displayMessage(config.messages.rssSaved,"file://" + rssPath);
-               else
-                       alert(config.messages.rssFailed);
-               }
-       // Save empty template
-       if(config.options.chkSaveEmptyTemplate)
-               {
-               var emptyPath,p;
-               if((p = localPath.lastIndexOf("/")) != -1)
-                       emptyPath = localPath.substr(0,p) + "/empty.html";
-               else if((p = localPath.lastIndexOf("\\")) != -1)
-                       emptyPath = localPath.substr(0,p) + "\\empty.html";
-               else
-                       emptyPath = localPath + ".empty.html";
-               var empty = original.substr(0,posOpeningDiv + startSaveArea.length) + original.substr(posClosingDiv);
-               var emptySave = saveFile(emptyPath,empty);
-               if(emptySave)
-                       displayMessage(config.messages.emptySaved,"file://" + emptyPath);
-               else
-                       alert(config.messages.emptyFailed);
-               }
-       var save;
-       try 
-               {
-               // Save new file
-               var revised = original.substr(0,posOpeningDiv + startSaveArea.length) + "\n" +
-                                       convertUnicodeToUTF8(store.allTiddlersAsHtml()) + "\n" +
-                                       original.substr(posClosingDiv);
-               var newSiteTitle = convertUnicodeToUTF8((wikifyPlain("SiteTitle") + " - " + wikifyPlain("SiteSubtitle")).htmlEncode());
-               revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
-               revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
-               revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
-               revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
-               revised = updateMarkupBlock(revised,"POST-BODY","MarkupPostBody");
-               save = saveFile(localPath,revised);
-               }
-       catch (e) 
-               {
-               showException(e);
-               }
-       if(save)
-               {
-               displayMessage(config.messages.mainSaved,"file://" + localPath);
-               store.setDirty(false);
-               }
-       else
-               alert(config.messages.mainFailed);
-}
-
-function getLocalPath(originalPath)
-{
-       // Remove any location or query part of the URL
-       var argPos = originalPath.indexOf("?");
-       if(argPos != -1)
-               originalPath = originalPath.substr(0,argPos);
-       var hashPos = originalPath.indexOf("#");
-       if(hashPos != -1)
-               originalPath = originalPath.substr(0,hashPos);
-       // Convert file://localhost/ to file:///
-       if(originalPath.indexOf("file://localhost/") == 0)
-               originalPath = "file://" + originalPath.substr(16);
-       // Convert to a native file format assuming
-       // "file:///x:/path/path/path..." - pc local file --> "x:\path\path\path..."
-       // "file://///server/share/path/path/path..." - FireFox pc network file --> "\\server\share\path\path\path..."
-       // "file:///path/path/path..." - mac/unix local file --> "/path/path/path..."
-       // "file://server/share/path/path/path..." - pc network file --> "\\server\share\path\path\path..."
-       var localPath;
-       if(originalPath.charAt(9) == ":") // pc local file
-               localPath = unescape(originalPath.substr(8)).replace(new RegExp("/","g"),"\\");
-       else if(originalPath.indexOf("file://///") == 0) // FireFox pc network file
-               localPath = "\\\\" + unescape(originalPath.substr(10)).replace(new RegExp("/","g"),"\\");
-       else if(originalPath.indexOf("file:///") == 0) // mac/unix local file
-               localPath = unescape(originalPath.substr(7));
-       else if(originalPath.indexOf("file:/") == 0) // mac/unix local file
-               localPath = unescape(originalPath.substr(5));
-       else // pc network file
-               localPath = "\\\\" + unescape(originalPath.substr(7)).replace(new RegExp("/","g"),"\\");
-       return localPath;
-}
-
-function getBackupPath(localPath)
-{
-       var backSlash = true;
-       var dirPathPos = localPath.lastIndexOf("\\");
-       if(dirPathPos == -1)
-               {
-               dirPathPos = localPath.lastIndexOf("/");
-               backSlash = false;
-               }
-       var backupFolder = config.options.txtBackupFolder;
-       if(!backupFolder || backupFolder == "")
-               backupFolder = ".";
-       var backupPath = localPath.substr(0,dirPathPos) + (backSlash ? "\\" : "/") + backupFolder + localPath.substr(dirPathPos);
-       backupPath = backupPath.substr(0,backupPath.lastIndexOf(".")) + "." + (new Date()).convertToYYYYMMDDHHMMSSMMM() + ".html";
-       return backupPath;
-}
-
-function generateRss()
-{
-       var s = [];
-       var d = new Date();
-       var u = store.getTiddlerText("SiteUrl");
-       // Assemble the header
-       s.push("<" + "?xml version=\"1.0\"?" + ">");
-       s.push("<rss version=\"2.0\">");
-       s.push("<channel>");
-       s.push("<title" + ">" + wikifyPlain("SiteTitle").htmlEncode() + "</title" + ">");
-       if(u)
-               s.push("<link>" + u.htmlEncode() + "</link>");
-       s.push("<description>" + wikifyPlain("SiteSubtitle").htmlEncode() + "</description>");
-       s.push("<language>en-us</language>");
-       s.push("<copyright>Copyright " + d.getFullYear() + " " + config.options.txtUserName.htmlEncode() + "</copyright>");
-       s.push("<pubDate>" + d.toGMTString() + "</pubDate>");
-       s.push("<lastBuildDate>" + d.toGMTString() + "</lastBuildDate>");
-       s.push("<docs>http://blogs.law.harvard.edu/tech/rss</docs>");
-       s.push("<generator>TiddlyWiki " + version.major + "." + version.minor + "." + version.revision + "</generator>");
-       // The body
-       var tiddlers = store.getTiddlers("modified","excludeLists");
-       var n = config.numRssItems > tiddlers.length ? 0 : tiddlers.length-config.numRssItems;
-       for (var t=tiddlers.length-1; t>=n; t--)
-               s.push(tiddlers[t].saveToRss(u));
-       // And footer
-       s.push("</channel>");
-       s.push("</rss>");
-       // Save it all
-       return s.join("\n");
-}
-
-
-// UTF-8 encoding rules:
-// 0x0000 - 0x007F:    0xxxxxxx
-// 0x0080 - 0x07FF:    110xxxxx 10xxxxxx
-// 0x0800 - 0xFFFF:    1110xxxx 10xxxxxx 10xxxxxx
-
-function convertUTF8ToUnicode(u)
-{
-       if(window.netscape == undefined)
-               return manualConvertUTF8ToUnicode(u);
-       else
-               return mozConvertUTF8ToUnicode(u);
-}
-
-function manualConvertUTF8ToUnicode(utf)
-{
-       var uni = utf;
-       var src = 0;
-       var dst = 0;
-       var b1, b2, b3;
-       var c;
-       while(src < utf.length)
-               {
-               b1 = utf.charCodeAt(src++);
-               if(b1 < 0x80)
-                       dst++;
-               else if(b1 < 0xE0)
-                       {
-                       b2 = utf.charCodeAt(src++);
-                       c = String.fromCharCode(((b1 & 0x1F) << 6) | (b2 & 0x3F));
-                       uni = uni.substring(0,dst++).concat(c,utf.substr(src));
-                       }
-               else
-                       {
-                       b2 = utf.charCodeAt(src++);
-                       b3 = utf.charCodeAt(src++);
-                       c = String.fromCharCode(((b1 & 0xF) << 12) | ((b2 & 0x3F) << 6) | (b3 & 0x3F));
-                       uni = uni.substring(0,dst++).concat(c,utf.substr(src));
-                       }
-       }
-       return(uni);
-}
-
-function mozConvertUTF8ToUnicode(u)
-{
-       try
-               {
-               netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-               var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
-               converter.charset = "UTF-8";
-               }
-       catch(e)
-               {
-               return manualConvertUTF8ToUnicode(u);
-               } // fallback
-       var s = converter.ConvertToUnicode(u);
-       var fin = converter.Finish();
-       return (fin.length > 0) ? s+fin : s;
-}
-
-function convertUnicodeToUTF8(s)
-{
-       if(window.netscape == undefined)
-               return manualConvertUnicodeToUTF8(s);
-       else
-               return mozConvertUnicodeToUTF8(s);
-}
-
-function manualConvertUnicodeToUTF8(s)
-{
-       var re = /[^\u0000-\u007F]/g ;
-       return s.replace(re, function($0) {return("&#" + $0.charCodeAt(0).toString() + ";");})
-}
-
-function mozConvertUnicodeToUTF8(s)
-{
-       try
-               {
-               netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-               var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
-               converter.charset = "UTF-8";
-               }
-       catch(e)
-               {
-               return manualConvertUnicodeToUTF8(s);
-               } // fallback
-       var u = converter.ConvertFromUnicode(s);
-       var fin = converter.Finish();
-       if(fin.length > 0)
-               return u + fin;
-       else
-               return u;
-}
-
-function saveFile(fileUrl, content)
-{
-       var r = null;
-       if((r == null) || (r == false))
-               r = mozillaSaveFile(fileUrl, content);
-       if((r == null) || (r == false))
-               r = ieSaveFile(fileUrl, content);
-       if((r == null) || (r == false))
-               r = javaSaveFile(fileUrl, content);
-       return(r);
-}
-
-function loadFile(fileUrl)
-{
-       var r = null;
-       if((r == null) || (r == false))
-               r = mozillaLoadFile(fileUrl);
-       if((r == null) || (r == false))
-               r = ieLoadFile(fileUrl);
-       if((r == null) || (r == false))
-               r = javaLoadFile(fileUrl);
-       return(r);
-}
-
-// Returns null if it can't do it, false if there's an error, true if it saved OK
-function ieSaveFile(filePath, content)
-{
-       try
-               {
-               var fso = new ActiveXObject("Scripting.FileSystemObject");
-               }
-       catch(e)
-               {
-               //alert("Exception while attempting to save\n\n" + e.toString());
-               return(null);
-               }
-       var file = fso.OpenTextFile(filePath,2,-1,0);
-       file.Write(content);
-       file.Close();
-       return(true);
-}
-
-// Returns null if it can't do it, false if there's an error, or a string of the content if successful
-function ieLoadFile(filePath)
-{
-       try
-               {
-               var fso = new ActiveXObject("Scripting.FileSystemObject");
-               var file = fso.OpenTextFile(filePath,1);
-               var content = file.ReadAll();
-               file.Close();
-               }
-       catch(e)
-               {
-               //alert("Exception while attempting to load\n\n" + e.toString());
-               return(null);
-               }
-       return(content);
-}
-
-// Returns null if it can't do it, false if there's an error, true if it saved OK
-function mozillaSaveFile(filePath, content)
-{
-       if(window.Components)
-               try
-                       {
-                       netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-                       var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
-                       file.initWithPath(filePath);
-                       if (!file.exists())
-                               file.create(0, 0664);
-                       var out = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
-                       out.init(file, 0x20 | 0x02, 00004,null);
-                       out.write(content, content.length);
-                       out.flush();
-                       out.close();
-                       return(true);
-                       }
-               catch(e)
-                       {
-                       //alert("Exception while attempting to save\n\n" + e);
-                       return(false);
-                       }
-       return(null);
-}
-
-// Returns null if it can't do it, false if there's an error, or a string of the content if successful
-function mozillaLoadFile(filePath)
-{
-       if(window.Components)
-               try
-                       {
-                       netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-                       var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
-                       file.initWithPath(filePath);
-                       if (!file.exists())
-                               return(null);
-                       var inputStream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
-                       inputStream.init(file, 0x01, 00004, null);
-                       var sInputStream = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream);
-                       sInputStream.init(inputStream);
-                       return(sInputStream.read(sInputStream.available()));
-                       }
-               catch(e)
-                       {
-                       //alert("Exception while attempting to load\n\n" + e);
-                       return(false);
-                       }
-       return(null);
-}
-
-function javaUrlToFilename(url)
-{
-       var f = "//localhost";
-       if(url.indexOf(f) == 0)
-               return url.substring(f.length);
-       var i = url.indexOf(":");
-       if(i > 0)
-               return url.substring(i-1);
-       return url;
-}
-
-function javaSaveFile(filePath, content)
-{
-       try
-               {
-               if(document.applets["TiddlySaver"])
-                       return document.applets["TiddlySaver"].saveFile(javaUrlToFilename(filePath),"UTF-8",content);
-               }
-       catch(e)
-               {
-               }
-       try
-               {
-               var s = new java.io.PrintStream(new java.io.FileOutputStream(javaUrlToFilename(filePath)));
-               s.print(content);
-               s.close();
-               }
-       catch(e)
-               {
-               return null;
-               }
-       return true;
-}
-
-function javaLoadFile(filePath)
-{
-       try
-               {
-       if(document.applets["TiddlySaver"])
-               return String(document.applets["TiddlySaver"].loadFile(javaUrlToFilename(filePath),"UTF-8"));
-               }
-       catch(e)
-               {
-               }
-       var content = [];
-       try
-               {
-               var r = new java.io.BufferedReader(new java.io.FileReader(javaUrlToFilename(filePath)));
-               var line;
-               while ((line = r.readLine()) != null)
-                       content.push(new String(line));
-               r.close();
-               }
-       catch(e)
-               {
-               return null;
-               }
-       return content.join("\n");
-}
-
-
-// ---------------------------------------------------------------------------------
-// Remote HTTP requests
-// ---------------------------------------------------------------------------------
-
-// Load a file over http
-//   url - the source url
-//   callback - function to call when there's a response
-//   params - parameter object that gets passed to the callback for storing it's state
-// Return value is the underlying XMLHttpRequest object, or 'null' if there was an error
-// Callback function is called like this:
-//   callback(status,params,responseText,xhr)
-//     status - true if OK, false if error
-//     params - the parameter object provided to loadRemoteFile()
-//     responseText - the text of the file
-//     xhr - the underlying XMLHttpRequest object
-function loadRemoteFile(url,callback,params)
-{
-       // Get an xhr object
-       var x;
-       try
-               {
-               x = new XMLHttpRequest(); // Modern
-               }
-       catch(e)
-               {
-               try
-                       {
-                       x = new ActiveXObject("Msxml2.XMLHTTP"); // IE 6
-                       }
-               catch (e)
-                       {
-                       return null;
-                       }
-               }
-       // Install callback
-       x.onreadystatechange = function()
-               {
-               if (x.readyState == 4)
-                       {
-                       if ((x.status == 0 || x.status == 200) && callback)
-                               {
-                               callback(true,params,x.responseText,url,x);
-                       }
-                       else
-                               callback(false,params,null,url,x);
-                       }
-               }
-       // Send request
-       if(window.netscape && window.netscape.security && document.location.protocol.indexOf("http") == -1)
-               window.netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
-       try
-               {
-               url = url + (url.indexOf("?") < 0 ? "?" : "&") + "nocache=" + Math.random();
-               x.open("GET",url,true);
-               if (x.overrideMimeType)
-                       x.overrideMimeType("text/html");
-               x.send(null);
-               }
-       catch (e)
-               {
-               alert("Error in send " + e);
-               return null;
-               }
-       return x;
-}
-// ---------------------------------------------------------------------------------
-// TiddlyWiki-specific utility functions
-// ---------------------------------------------------------------------------------
-
-function createTiddlyButton(theParent,theText,theTooltip,theAction,theClass,theId,theAccessKey)
-{
-       var theButton = document.createElement("a");
-       if(theAction)
-               {
-               theButton.onclick = theAction;
-               theButton.setAttribute("href","javascript:;");
-               }
-       if(theTooltip)
-               theButton.setAttribute("title",theTooltip);
-       if(theText)
-               theButton.appendChild(document.createTextNode(theText));
-       if(theClass)
-               theButton.className = theClass;
-       else
-               theButton.className = "button";
-       if(theId)
-               theButton.id = theId;
-       if(theParent)
-               theParent.appendChild(theButton);
-       if(theAccessKey)
-               theButton.setAttribute("accessKey",theAccessKey);
-       return(theButton);
-}
-
-function createTiddlyLink(place,title,includeText,theClass,isStatic)
-{
-       var text = includeText ? title : null;
-       var i = getTiddlyLinkInfo(title,theClass)
-       var btn;
-       if(isStatic)
-               btn = createExternalLink(place,"#" + title);
-       else
-               btn = createTiddlyButton(place,text,i.subTitle,onClickTiddlerLink,i.classes);
-       btn.setAttribute("refresh","link");
-       btn.setAttribute("tiddlyLink",title);
-       return(btn);
-}
-
-function refreshTiddlyLink(e,title)
-{
-       var i = getTiddlyLinkInfo(title,e.className);
-       e.className = i.classes;
-       e.title = i.subTitle;
-}
-
-function getTiddlyLinkInfo(title,currClasses)
-{
-       var classes = currClasses ? currClasses.split(" ") : [];
-       classes.pushUnique("tiddlyLink");
-       var tiddler = store.fetchTiddler(title);
-       var subTitle;
-       if(tiddler)
-               {
-               subTitle = tiddler.getSubtitle();
-               classes.pushUnique("tiddlyLinkExisting");
-               classes.remove("tiddlyLinkNonExisting");
-               classes.remove("shadow");
-               }
-       else
-               {
-               classes.remove("tiddlyLinkExisting");
-               classes.pushUnique("tiddlyLinkNonExisting");
-               if(store.isShadowTiddler(title))
-                       {
-                       subTitle = config.messages.shadowedTiddlerToolTip.format([title]);
-                       classes.pushUnique("shadow");
-                       }
-               else
-                       {
-                       subTitle = config.messages.undefinedTiddlerToolTip.format([title]);
-                       classes.remove("shadow");
-                       }
-               }
-       return {classes: classes.join(" "), subTitle: subTitle};
-}
-
-function createExternalLink(place,url)
-{
-       var theLink = document.createElement("a");
-       theLink.className = "externalLink";
-       theLink.href = url;
-       theLink.title = config.messages.externalLinkTooltip.format([url]);
-       if(config.options.chkOpenInNewWindow)
-               theLink.target = "_blank";
-       place.appendChild(theLink);
-       return(theLink);
-}
-
-// Event handler for clicking on a tiddly link
-function onClickTiddlerLink(e)
-{
-       if (!e) var e = window.event;
-       var theTarget = resolveTarget(e);
-       var theLink = theTarget;
-       var title = null;
-       do {
-               title = theLink.getAttribute("tiddlyLink");
-               theLink = theLink.parentNode;
-       } while(title == null && theLink != null);
-       if(title)
-               {
-               var toggling = e.metaKey || e.ctrlKey;
-               if(config.options.chkToggleLinks)
-                       toggling = !toggling;
-               var opening;
-               if(toggling && document.getElementById("tiddler" + title))
-                       story.closeTiddler(title,true,e.shiftKey || e.altKey);
-               else
-                       story.displayTiddler(theTarget,title,null,true,e.shiftKey || e.altKey);
-               }
-       clearMessage();
-       return(false);
-}
-
-// Create a button for a tag with a popup listing all the tiddlers that it tags
-function createTagButton(place,tag,excludeTiddler)
-{
-       var theTag = createTiddlyButton(place,tag,config.views.wikified.tag.tooltip.format([tag]),onClickTag);
-       theTag.setAttribute("tag",tag);
-       if(excludeTiddler)
-               theTag.setAttribute("tiddler",excludeTiddler);
-       return(theTag);
-}
-
-// Event handler for clicking on a tiddler tag
-function onClickTag(e)
-{
-       if (!e) var e = window.event;
-       var theTarget = resolveTarget(e);
-       var popup = Popup.create(this);
-       var tag = this.getAttribute("tag");
-       var title = this.getAttribute("tiddler");
-       if(popup && tag)
-               {
-               var tagged = store.getTaggedTiddlers(tag);
-               var titles = [];
-               var li,r;
-               for(r=0;r<tagged.length;r++)
-                       if(tagged[r].title != title)
-                               titles.push(tagged[r].title);
-               var lingo = config.views.wikified.tag;
-               if(titles.length > 0)
-                       {
-                       var openAll = createTiddlyButton(createTiddlyElement(popup,"li"),lingo.openAllText.format([tag]),lingo.openAllTooltip,onClickTagOpenAll);
-                       openAll.setAttribute("tag",tag);
-                       createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");
-                       for(r=0; r<titles.length; r++)
-                               {
-                               createTiddlyLink(createTiddlyElement(popup,"li"),titles[r],true);
-                               }
-                       }
-               else
-                       createTiddlyText(createTiddlyElement(popup,"li",null,"disabled"),lingo.popupNone.format([tag]));
-               createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");
-               var h = createTiddlyLink(createTiddlyElement(popup,"li"),tag,false);
-               createTiddlyText(h,lingo.openTag.format([tag]));
-               }
-       Popup.show(popup,false);
-       e.cancelBubble = true;
-       if (e.stopPropagation) e.stopPropagation();
-       return(false);
-}
-
-// Event handler for 'open all' on a tiddler popup
-function onClickTagOpenAll(e)
-{
-       if (!e) var e = window.event;
-       var tag = this.getAttribute("tag");
-       var tagged = store.getTaggedTiddlers(tag);
-       var titles = [];
-       for(var t=0; t<tagged.length; t++)
-               titles.push(tagged[t].title);
-       story.displayTiddlers(this,titles);
-       return(false);
-}
-
-function onClickError(e)
-{
-       if (!e) var e = window.event;
-       var popup = Popup.create(this);
-       var lines = this.getAttribute("errorText").split("\n");
-       for(var t=0; t<lines.length; t++)
-               createTiddlyElement(popup,"li",null,null,lines[t]);
-       Popup.show(popup,false);
-       e.cancelBubble = true;
-       if (e.stopPropagation) e.stopPropagation();
-       return false;
-}
-
-function createTiddlyDropDown(place,onchange,options)
-{
-       var sel = createTiddlyElement(place,"select");
-       sel.onchange = onchange;
-       for(var t=0; t<options.length; t++)
-               {
-               var e = createTiddlyElement(sel,"option",null,null,options[t].caption);
-               e.value = options[t].name;
-               }
-}
-
-function createTiddlyError(place,title,text)
-{
-       var btn = createTiddlyButton(place,title,null,onClickError,"errorButton");
-       if (text) btn.setAttribute("errorText",text);
-}
-
-function merge(dst,src,preserveExisting)
-{
-       for (p in src)
-               if (!preserveExisting || dst[p] === undefined)
-                       dst[p] = src[p];
-       return dst;
-}
-
-// Returns a string containing the description of an exception, optionally prepended by a message
-function exceptionText(e, message)
-{
-       var s = e.description ? e.description : e.toString();
-       return message ? "%0:\n%1".format([message, s]) : s;
-}
-
-// Displays an alert of an exception description with optional message
-function showException(e, message)
-{
-       alert(exceptionText(e, message));
-}
-
-// ---------------------------------------------------------------------------------
-// Animation engine
-// ---------------------------------------------------------------------------------
-
-function Animator()
-{
-       this.running = 0; // Incremented at start of each animation, decremented afterwards. If zero, the interval timer is disabled
-       this.timerID = 0; // ID of the timer used for animating
-       this.animations = []; // List of animations in progress
-       return this;
-}
-
-// Start animation engine
-Animator.prototype.startAnimating = function() // Variable number of arguments
-{
-       for(var t=0; t<arguments.length; t++)
-               this.animations.push(arguments[t]);
-       if(this.running == 0)
-               {
-               var me = this;
-               this.timerID = window.setInterval(function() {me.doAnimate(me);},5);
-               }
-       this.running += arguments.length;
-}
-
-// Perform an animation engine tick, calling each of the known animation modules
-Animator.prototype.doAnimate = function(me)
-{
-       var a = 0;
-       while(a < me.animations.length)
-               {
-               var animation = me.animations[a];
-               if(animation.tick())
-                       a++;
-               else
-                       {
-                       me.animations.splice(a,1);
-                       if(--me.running == 0)
-                               window.clearInterval(me.timerID);
-                       }
-               }
-}
-
-// Map a 0..1 value to 0..1, but slow down at the start and end
-Animator.slowInSlowOut = function(progress)
-{
-       return(1-((Math.cos(progress * Math.PI)+1)/2));
-}
-
-// ---------------------------------------------------------------------------------
-// Cascade animation
-// ---------------------------------------------------------------------------------
-
-function Cascade(text,startElement,targetElement,slowly)
-{
-       var winWidth = findWindowWidth();
-       var winHeight = findWindowHeight();
-       this.elements = [];
-       this.startElement = startElement;
-       this.startLeft = findPosX(this.startElement);
-       this.startTop = findPosY(this.startElement);
-       this.startWidth = Math.min(this.startElement.offsetWidth,winWidth);
-       this.startHeight = Math.min(this.startElement.offsetHeight,winHeight);
-       this.targetElement = targetElement;
-       targetElement.style.position = "relative";
-       targetElement.style.zIndex = 2;
-       this.targetLeft = findPosX(this.targetElement);
-       this.targetTop = findPosY(this.targetElement);
-       this.targetWidth = Math.min(this.targetElement.offsetWidth,winWidth);
-       this.targetHeight = Math.min(this.targetElement.offsetHeight,winHeight);
-       this.progress = -1;
-       this.steps = slowly ? config.cascadeSlow : config.cascadeFast;
-       this.text = text;
-       this.tick();
-       return this;
-}
-
-Cascade.prototype.tick = function()
-{
-       this.progress++;
-       if(this.progress >= this.steps)
-               {
-               while(this.elements.length > 0)
-                       this.removeTail();
-               this.targetElement.style.position = "static";
-               this.targetElement.style.zIndex = "";
-               return false;
-               }
-       else
-               {
-               if(this.elements.length > 0 && this.progress > config.cascadeDepth)
-                       this.removeTail();
-               if(this.progress < (this.steps - config.cascadeDepth))
-                       {
-                       var f = Animator.slowInSlowOut(this.progress/(this.steps - config.cascadeDepth - 1));
-                       var e = createTiddlyElement(document.body,"div",null,"cascade",this.text);
-                       e.style.zIndex = 1;
-                       e.style.left = this.startLeft + (this.targetLeft-this.startLeft) * f + "px";
-                       e.style.top = this.startTop + (this.targetTop-this.startTop) * f + "px";
-                       e.style.width = this.startWidth + (this.targetWidth-this.startWidth) * f + "px";
-                       e.style.height = this.startHeight + (this.targetHeight-this.startHeight) * f + "px";
-                       e.style.display = "block";
-                       this.elements.push(e);
-                       }
-               return true;
-               }
-}
-
-Cascade.prototype.removeTail = function()
-{
-       var e = this.elements[0];
-       e.parentNode.removeChild(e);
-       this.elements.shift();
-}
-
-// ---------------------------------------------------------------------------------
-// Scroller animation
-// ---------------------------------------------------------------------------------
-
-function Scroller(targetElement,slowly)
-{
-       this.targetElement = targetElement;
-       this.startScroll = findScrollY();
-       this.targetScroll = ensureVisible(targetElement);
-       this.progress = 0;
-       this.step = slowly ? config.animSlow : config.animFast;
-       return this;
-}
-
-Scroller.prototype.tick = function()
-{
-       this.progress += this.step;
-       if(this.progress > 1)
-               {
-               window.scrollTo(0,this.targetScroll);
-               return false;
-               }
-       else
-               {
-               var f = Animator.slowInSlowOut(this.progress);
-               window.scrollTo(0,this.startScroll + (this.targetScroll-this.startScroll) * f);
-               return true;
-               }
-}
-
-// ---------------------------------------------------------------------------------
-// Slider animation
-// ---------------------------------------------------------------------------------
-
-// deleteMode - "none", "all" [delete target element and it's children], [only] "children" [but not the target element]
-function Slider(element,opening,slowly,deleteMode)
-{
-       this.element = element;
-       element.style.display = "block";
-       this.deleteMode = deleteMode;
-       this.element.style.height = "auto";
-       this.realHeight = element.offsetHeight;
-       this.opening = opening;
-       this.step = slowly ? config.animSlow : config.animFast;
-       if(opening)
-               {
-               this.progress = 0;
-               element.style.height = "0px";
-               element.style.display = "block";
-               }
-       else
-               {
-               this.progress = 1;
-               this.step = -this.step;
-               }
-       element.style.overflow = "hidden";
-       return this;
-}
-
-Slider.prototype.stop = function()
-{
-       if(this.opening)
-               {
-               this.element.style.height = "auto";
-               this.element.style.opacity = 1;
-               this.element.style.filter = "alpha(opacity:100)";
-               }
-       else
-               {
-               switch(this.deleteMode)
-                       {
-                       case "none":
-                               this.element.style.display = "none";
-                               break;
-                       case "all":
-                               this.element.parentNode.removeChild(this.element);
-                               break;
-                       case "children":
-                               removeChildren(this.element);
-                               break;
-                       }
-               }
-}
-
-Slider.prototype.tick = function()
-{
-       this.progress += this.step;
-       if(this.progress < 0 || this.progress > 1)
-               {
-               this.stop();
-               return false;
-               }
-       else
-               {
-               var f = Animator.slowInSlowOut(this.progress);
-               var h = this.realHeight * f;
-               this.element.style.height = h + "px";
-               this.element.style.opacity = f;
-               this.element.style.filter = "alpha(opacity:" + f * 100 +")";
-               return true;
-               }
-}
-
-// ---------------------------------------------------------------------------------
-// Popup menu
-// ---------------------------------------------------------------------------------
-
-var Popup = {
-       stack: [] // Array of objects with members root: and popup:
-       };
-
-Popup.create = function(root)
-{
-       Popup.remove();
-       var popup = createTiddlyElement(document.body,"ol","popup","popup");
-       Popup.stack.push({root: root, popup: popup});
-       return popup;
-}
-
-Popup.onDocumentClick = function(e)
-{
-       if (!e) var e = window.event;
-       var target = resolveTarget(e);
-       if(e.eventPhase == undefined)
-               Popup.remove();
-       else if(e.eventPhase == Event.BUBBLING_PHASE || e.eventPhase == Event.AT_TARGET)
-               Popup.remove();
-       return true;
-}
-
-Popup.show = function(unused,slowly)
-{
-       var curr = Popup.stack[Popup.stack.length-1];
-       var rootLeft = findPosX(curr.root);
-       var rootTop = findPosY(curr.root);
-       var rootHeight = curr.root.offsetHeight;
-       var popupLeft = rootLeft;
-       var popupTop = rootTop + rootHeight;
-       var popupWidth = curr.popup.offsetWidth;
-       var winWidth = findWindowWidth();
-       if(popupLeft + popupWidth > winWidth)
-               popupLeft = winWidth - popupWidth;
-       curr.popup.style.left = popupLeft + "px";
-       curr.popup.style.top = popupTop + "px";
-       curr.popup.style.display = "block";
-       addClass(curr.root,"highlight");
-       if(anim && config.options.chkAnimate)
-               anim.startAnimating(new Scroller(curr.popup,slowly));
-       else
-               window.scrollTo(0,ensureVisible(curr.popup));
-}
-
-Popup.remove = function()
-{
-       if(Popup.stack.length > 0)
-               {
-               Popup.removeFrom(0);
-               }
-}
-
-Popup.removeFrom = function(from)
-{
-       for(var t=Popup.stack.length-1; t>=from; t--)
-               {
-               var p = Popup.stack[t];
-               removeClass(p.root,"highlight");
-               p.popup.parentNode.removeChild(p.popup);
-               }
-       Popup.stack = Popup.stack.slice(0,from);
-}
-
-// ---------------------------------------------------------------------------------
-// ListView gadget
-// ---------------------------------------------------------------------------------
-
-var ListView = {};
-
-// Create a listview
-//   place - where in the DOM tree to insert the listview
-//   listObject - array of objects to be included in the listview
-//   listTemplate - template for the listview
-//   callback - callback for a command being selected
-//   className - optional classname for the <table> element
-ListView.create = function(place,listObject,listTemplate,callback,className)
-{
-       var table = createTiddlyElement(place,"table",null,className ? className : "listView");
-       var thead = createTiddlyElement(table,"thead");
-       var r = createTiddlyElement(thead,"tr");
-       for(var t=0; t<listTemplate.columns.length; t++)
-               {
-               var columnTemplate = listTemplate.columns[t];
-               var c = createTiddlyElement(r,"th");
-               var colType = ListView.columnTypes[columnTemplate.type];
-               if(colType && colType.createHeader)
-                       colType.createHeader(c,columnTemplate,t);
-               }
-       var tbody = createTiddlyElement(table,"tbody");
-       for(var rc=0; rc<listObject.length; rc++)
-               {
-               rowObject = listObject[rc];
-               r = createTiddlyElement(tbody,"tr");
-               for(var c=0; c<listTemplate.rowClasses.length; c++)
-                       {
-                       if(rowObject[listTemplate.rowClasses[c].field])
-                               addClass(r,listTemplate.rowClasses[c].className);
-                       }
-               rowObject.rowElement = rowObject;
-               rowObject.colElements = {};
-               for(var cc=0; cc<listTemplate.columns.length; cc++)
-                       {
-                       var c = createTiddlyElement(r,"td");
-                       var columnTemplate = listTemplate.columns[cc];
-                       var field = columnTemplate.field;
-                       var colType = ListView.columnTypes[columnTemplate.type];
-                       if(colType && colType.createItem)
-                               colType.createItem(c,rowObject,field,columnTemplate,cc,rc);
-                       rowObject.colElements[field] = c;
-                       }
-               }
-       if(callback && listTemplate.actions)
-               createTiddlyDropDown(place,ListView.getCommandHandler(callback),listTemplate.actions);
-       if(callback && listTemplate.buttons)
-               {
-               for(t=0; t<listTemplate.buttons.length; t++)
-                       {
-                       var a = listTemplate.buttons[t];
-                       if(a && a.name != "")
-                               createTiddlyButton(place,a.caption,null,ListView.getCommandHandler(callback,a.name,a.allowEmptySelection));
-                       }
-               }
-       return table;
-}
-
-ListView.getCommandHandler = function(callback,name,allowEmptySelection)
-{
-       return function(e)
-               {
-               var view = findRelated(this,"TABLE",null,"previousSibling");
-               var tiddlers = [];
-               ListView.forEachSelector(view,function(e,rowName) {
-                                       if(e.checked)
-                                               tiddlers.push(rowName);
-                                       });
-               if(tiddlers.length == 0 && !allowEmptySelection)
-                       alert(config.messages.nothingSelected);
-               else
-                       {
-                       if(this.nodeName.toLowerCase() == "select")
-                               {
-                               callback(view,this.value,tiddlers);
-                               this.selectedIndex = 0;
-                               }
-                       else
-                               callback(view,name,tiddlers);
-                       }
-               };
-}
-
-// Invoke a callback for each selector checkbox in the listview
-//   view - <table> element of listView
-//   callback(checkboxElement,rowName)
-//     where
-//       checkboxElement - DOM element of checkbox
-//       rowName - name of this row as assigned by the column template
-//   result: true if at least one selector was checked
-ListView.forEachSelector = function(view,callback)
-{
-       var checkboxes = view.getElementsByTagName("input");
-       var hadOne = false;
-       for(var t=0; t<checkboxes.length; t++)
-               {
-               var cb = checkboxes[t];
-               if(cb.getAttribute("type") == "checkbox")
-                       {
-                       var rn = cb.getAttribute("rowName");
-                       if(rn)
-                               {
-                               callback(cb,rn);
-                               hadOne = true;
-                               }
-                       }
-               }
-       return hadOne;
-}
-
-ListView.columnTypes = {};
-
-ListView.columnTypes.String = {
-       createHeader: function(place,columnTemplate,col)
-               {
-                       createTiddlyText(place,columnTemplate.title);
-               },
-       createItem: function(place,listObject,field,columnTemplate,col,row)
-               {
-                       var v = listObject[field];
-                       if(v != undefined)
-                               createTiddlyText(place,v);
-               }
-};
-
-ListView.columnTypes.Date = {
-       createHeader: ListView.columnTypes.String.createHeader,
-       createItem: function(place,listObject,field,columnTemplate,col,row)
-               {
-                       var v = listObject[field];
-                       if(v != undefined)
-                               createTiddlyText(place,v.formatString(columnTemplate.dateFormat));
-               }
-};
-
-ListView.columnTypes.StringList = {
-       createHeader: ListView.columnTypes.String.createHeader,
-       createItem: function(place,listObject,field,columnTemplate,col,row)
-               {
-                       var v = listObject[field];
-                       if(v != undefined)
-                               {
-                               for(var t=0; t<v.length; t++)
-                                       {
-                                       createTiddlyText(place,v[t]);
-                                       createTiddlyElement(place,"br");
-                                       }
-                               }
-               }
-};
-
-ListView.columnTypes.Selector = {
-       createHeader: function(place,columnTemplate,col)
-               {
-                       createTiddlyCheckbox(place,null,false,this.onHeaderChange);
-               },
-       createItem: function(place,listObject,field,columnTemplate,col,row)
-               {
-                       var e = createTiddlyCheckbox(place,null,listObject[field],null);
-                       e.setAttribute("rowName",listObject[columnTemplate.rowName]);
-               },
-       onHeaderChange: function(e)
-               {
-                       var state = this.checked;
-                       var view = findRelated(this,"TABLE");
-                       if(!view)
-                               return;
-                       ListView.forEachSelector(view,function(e,rowName) {
-                                                               e.checked = state;
-                                                       });
-               }
-};
-
-ListView.columnTypes.Tags = {
-       createHeader: ListView.columnTypes.String.createHeader,
-       createItem: function(place,listObject,field,columnTemplate,col,row)
-               {
-                       var tags = listObject[field];
-                       createTiddlyText(place,String.encodeTiddlyLinkList(tags));
-               }
-};
-
-ListView.columnTypes.Boolean = {
-       createHeader: ListView.columnTypes.String.createHeader,
-       createItem: function(place,listObject,field,columnTemplate,col,row)
-               {
-                       if(listObject[field] == true)
-                               createTiddlyText(place,columnTemplate.trueText);
-                       if(listObject[field] == false)
-                               createTiddlyText(place,columnTemplate.falseText);
-               }
-};
-
-ListView.columnTypes.TagCheckbox = {
-       createHeader: ListView.columnTypes.String.createHeader,
-       createItem: function(place,listObject,field,columnTemplate,col,row)
-               {
-                       var e = createTiddlyCheckbox(place,null,listObject[field],this.onChange);
-                       e.setAttribute("tiddler",listObject.title);
-                       e.setAttribute("tag",columnTemplate.tag);
-               },
-       onChange : function(e)
-               {
-                       var tag = this.getAttribute("tag");
-                       var tiddler = this.getAttribute("tiddler");
-                       store.setTiddlerTag(tiddler,this.checked,tag);
-               }
-};
-
-ListView.columnTypes.TiddlerLink = {
-       createHeader: ListView.columnTypes.String.createHeader,
-       createItem: function(place,listObject,field,columnTemplate,col,row)
-               {
-                       var v = listObject[field];
-                       if(v != undefined)
-                               {
-                               var link = createTiddlyLink(place,listObject[columnTemplate.tiddlerLink],false,null);
-                               createTiddlyText(link,listObject[field]);
-                               }
-               }
-};
-// ---------------------------------------------------------------------------------
-// Augmented methods for the JavaScript Number(), Array(), String() and Date() objects
-// ---------------------------------------------------------------------------------
-
-// Clamp a number to a range
-Number.prototype.clamp = function(min,max)
-{
-       var c = this;
-       if(c < min)
-               c = min;
-       if(c > max)
-               c = max;
-       return c;
-}
-
-// Add indexOf function if browser does not support it
-if(!Array.indexOf) {
-Array.prototype.indexOf = function(item,from)
-{
-       if(!from)
-               from = 0;
-       for(var i=from; i<this.length; i++)
-               if(this[i] === item)
-                       return i;
-       return -1;
-}}
-
-// Find an entry in a given field of the members of an array
-Array.prototype.findByField = function(field,value)
-{
-       for(var t=0; t<this.length; t++)
-               if(this[t][field] == value)
-                       return t;
-       return null;
-}
-
-// Return whether an entry exists in an array
-Array.prototype.contains = function(item)
-{
-       return this.indexOf(item) != -1;
-};
-
-// Adds, removes or toggles a particular value within an array
-//  value - value to add
-//  mode - +1 to add value, -1 to remove value, 0 to toggle it
-Array.prototype.setItem = function(value,mode)
-{
-       var p = this.indexOf(value);
-       if(mode == 0)
-               mode = (p == -1) ? +1 : -1;
-       if(mode == +1)
-               {
-               if(p == -1)
-                       this.push(value);
-               }
-       else if(mode == -1)
-               {
-               if(p != -1)
-                       this.splice(p,1);
-               }
-}
-
-// Return whether one of a list of values exists in an array
-Array.prototype.containsAny = function(items)
-{
-       for(var i=0; i<items.length; i++)
-               if (this.indexOf(items[i]) != -1)
-                       return true;
-       return false;
-};
-
-// Return whether all of a list of values exists in an array
-Array.prototype.containsAll = function(items)
-{
-       for (var i = 0; i<items.length; i++)
-               if (this.indexOf(items[i]) == -1)
-                       return false;
-       return true;
-};
-
-// Push a new value into an array only if it is not already present in the array. If the optional unique parameter is false, it reverts to a normal push
-Array.prototype.pushUnique = function(item,unique)
-{
-       if(unique != undefined && unique == false)
-               this.push(item);
-       else
-               {
-               if(this.indexOf(item) == -1)
-                       this.push(item);
-               }
-}
-
-Array.prototype.remove = function(item)
-{
-       var p = this.indexOf(item);
-       if(p != -1)
-               this.splice(p,1);
-}
-
-// Get characters from the right end of a string
-String.prototype.right = function(n)
-{
-       if(n < this.length)
-               return this.slice(this.length-n);
-       else
-               return this;
-}
-
-// Trim whitespace from both ends of a string
-String.prototype.trim = function()
-{
-       return this.replace(/^\s*|\s*$/g,"");
-}
-
-// Convert a string from a CSS style property name to a JavaScript style name ("background-color" -> "backgroundColor")
-String.prototype.unDash = function()
-{
-       var s = this.split("-");
-       if(s.length > 1)
-               for(var t=1; t<s.length; t++)
-                       s[t] = s[t].substr(0,1).toUpperCase() + s[t].substr(1);
-       return s.join("");
-}
-
-// Substitute substrings from an array into a format string that includes '%1'-type specifiers
-String.prototype.format = function(substrings)
-{
-       var subRegExp = /(?:%(\d+))/mg;
-       var currPos = 0;
-       var r = [];
-       do {
-               var match = subRegExp.exec(this);
-               if(match && match[1])
-                       {
-                       if(match.index > currPos)
-                               r.push(this.substring(currPos,match.index));
-                       r.push(substrings[parseInt(match[1])]);
-                       currPos = subRegExp.lastIndex;
-                       }
-       } while(match);
-       if(currPos < this.length)
-               r.push(this.substring(currPos,this.length));
-       return r.join("");
-}
-
-// Escape any special RegExp characters with that character preceded by a backslash
-String.prototype.escapeRegExp = function()
-{
-       var s = "\\^$*+?()=!|,{}[].";
-       var c = this;
-       for(var t=0; t<s.length; t++)
-               c = c.replace(new RegExp("\\" + s.substr(t,1),"g"),"\\" + s.substr(t,1));
-       return c;
-}
-
-// Convert "\" to "\s", newlines to "\n" (and remove carriage returns)
-String.prototype.escapeLineBreaks = function()
-{
-       return this.replace(/\\/mg,"\\s").replace(/\n/mg,"\\n").replace(/\r/mg,"");
-}
-
-// Convert "\n" to newlines, "\b" to " ", "\s" to "\" (and remove carriage returns)
-String.prototype.unescapeLineBreaks = function()
-{
-       return this.replace(/\\n/mg,"\n").replace(/\\b/mg," ").replace(/\\s/mg,"\\").replace(/\r/mg,"");
-}
-
-// Convert & to "&amp;", < to "&lt;", > to "&gt;" and " to "&quot;"
-String.prototype.htmlEncode = function()
-{
-       return(this.replace(/&/mg,"&amp;").replace(/</mg,"&lt;").replace(/>/mg,"&gt;").replace(/\"/mg,"&quot;"));
-}
-
-// Convert "&amp;" to &, "&lt;" to <, "&gt;" to > and "&quot;" to "
-String.prototype.htmlDecode = function()
-{
-       return(this.replace(/&amp;/mg,"&").replace(/&lt;/mg,"<").replace(/&gt;/mg,">").replace(/&quot;/mg,"\""));
-}
-
-// Parse a space-separated string of name:value parameters where:
-//   - the name or the value can be optional (in which case separate defaults are used instead)
-//     - in case of ambiguity, a lone word is taken to be a value
-//     - if 'cascadeDefaults' is set to true, then the defaults are modified by updated by each specified name or value
-//     - name prefixes are not allowed if the 'noNames' parameter is true
-//   - if both the name and value are present they must be separated by a colon
-//   - the name and the value may both be quoted with single- or double-quotes, double-square brackets
-//   - names or values quoted with {{double-curly braces}} are evaluated as a JavaScript expression
-//     - as long as the 'allowEval' parameter is true
-// The result is an array of objects:
-//   result[0] = object with a member for each parameter name, value of that member being an array of values
-//   result[1..n] = one object for each parameter, with 'name' and 'value' members
-String.prototype.parseParams = function(defaultName,defaultValue,allowEval,noNames,cascadeDefaults)
-{
-       var parseToken = function(match,p)
-               {
-               var n;
-               if(match[p]) // Double quoted
-                       n = match[p];
-               else if(match[p+1]) // Single quoted
-                       n = match[p+1];
-               else if(match[p+2]) // Double-square-bracket quoted
-                       n = match[p+2];
-               else if(match[p+3]) // Double-brace quoted
-                       try
-                               {
-                               n = match[p+3];
-                               if(allowEval)
-                                       n = window.eval(n);
-                               }
-                       catch(e)
-                               {
-                               throw "Unable to evaluate {{" + match[p+3] + "}}: " + exceptionText(e);
-                               }
-               else if(match[p+4]) // Unquoted
-                       n = match[p+4];
-               else if(match[p+5]) // empty quote
-                       n = "";
-               return n;
-               };
-       var r = [{}];
-       var dblQuote = "(?:\"((?:(?:\\\\\")|[^\"])+)\")";
-       var sngQuote = "(?:'((?:(?:\\\\\')|[^'])+)')";
-       var dblSquare = "(?:\\[\\[((?:\\s|\\S)*?)\\]\\])";
-       var dblBrace = "(?:\\{\\{((?:\\s|\\S)*?)\\}\\})";
-       var unQuoted = noNames ? "([^\"'\\s]\\S*)" : "([^\"':\\s][^\\s:]*)";
-       var emptyQuote = "((?:\"\")|(?:''))";
-       var skipSpace = "(?:\\s*)";
-       var token = "(?:" + dblQuote + "|" + sngQuote + "|" + dblSquare + "|" + dblBrace + "|" + unQuoted + "|" + emptyQuote + ")";
-       var re = noNames
-               ? new RegExp(token,"mg")
-               : new RegExp(skipSpace + token + skipSpace + "(?:(\\:)" + skipSpace + token + ")?","mg");
-       var params = [];
-       do {
-               var match = re.exec(this);
-               if(match)
-                       {
-                       var n = parseToken(match,1);
-                       if(noNames)
-                               r.push({name: "", value: n});
-                       else
-                               {
-                               var v = parseToken(match,8);
-                               if(v == null && defaultName)
-                                       {
-                                       v = n;
-                                       n = defaultName;
-                                       }
-                               else if(v == null && defaultValue)
-                                       v = defaultValue;
-                               r.push({name: n, value: v});
-                               if(cascadeDefaults)
-                                       {
-                                       defaultName = n;
-                                       defaultValue = v;
-                                       }
-                               }
-                       }
-       } while(match);
-       // Summarise parameters into first element
-       for(var t=1; t<r.length; t++)
-               {
-               if(r[0][r[t].name])
-                       r[0][r[t].name].push(r[t].value);
-               else
-                       r[0][r[t].name] = [r[t].value];
-               }
-       return r;
-}
-
-// Process a string list of macro parameters into an array. Parameters can be quoted with "", '',
-// [[]], {{ }} or left unquoted (and therefore space-separated). Double-braces {{}} results in
-// an *evaluated* parameter: e.g. {{config.options.txtUserName}} results in the current user's name.
-String.prototype.readMacroParams = function()
-{
-       var p = this.parseParams("list",null,true,true);
-       var n = [];
-       for(var t=1; t<p.length; t++)
-               n.push(p[t].value);
-       return n;
-}
-
-// Process a string list of unique tiddler names into an array. Tiddler names that have spaces in them must be [[bracketed]]
-String.prototype.readBracketedList = function(unique)
-{
-       var p = this.parseParams("list",null,false,true);
-       var n = [];
-       for(var t=1; t<p.length; t++)
-               n.pushUnique(p[t].value,unique);
-       return n;
-}
-
-// Returns array with start and end index of chunk between given start and end marker, or undefined.
-String.prototype.getChunkRange = function(start,end) 
-{
-       var s = this.indexOf(start);
-       if(s != -1)
-               {
-               s += start.length;
-               var e = this.indexOf(end,s);
-               if(e != -1)
-                       return [s, e];
-               }
-}
-
-// Replace a chunk of a string given start and end markers
-String.prototype.replaceChunk = function(start,end,sub)
-{
-       var r = this.getChunkRange(start,end);
-       return r 
-               ? this.substring(0,r[0]) + sub + this.substring(r[1])
-               : this;
-}
-
-// Returns a chunk of a string between start and end markers, or undefined
-String.prototype.getChunk = function(start,end)
-{
-       var r = this.getChunkRange(start,end);
-       if (r)
-               return this.substring(r[0],r[1]);
-}
-
-
-// Static method to bracket a string with double square brackets if it contains a space
-String.encodeTiddlyLink = function(title)
-{
-       if(title.indexOf(" ") == -1)
-               return(title);
-       else
-               return("[[" + title + "]]");
-}
-
-// Static method to encodeTiddlyLink for every item in an array and join them with spaces
-String.encodeTiddlyLinkList = function(list)
-{
-       if(list)
-               {
-               var results = [];
-               for(var t=0; t<list.length; t++)
-                       results.push(String.encodeTiddlyLink(list[t]));
-               return results.join(" ");
-               }
-       else
-               return "";
-}
-
-// Static method to left-pad a string with 0s to a certain width
-String.zeroPad = function(n,d)
-{
-       var s = n.toString();
-       if(s.length < d)
-               s = "000000000000000000000000000".substr(0,d-s.length) + s;
-       return(s);
-}
-
-String.prototype.startsWith = function(prefix) 
-{
-       return !prefix || this.substring(0,prefix.length) == prefix;
-}
-
-// Returns the first value of the given named parameter.
-//#
-//# @param params
-//#         as returned by parseParams or null/undefined
-//# @return [may be null/undefined]
-//#
-function getParam(params, name, defaultValue) {
-       if (!params)
-               return defaultValue;
-       var p = params[0][name];
-       return p ? p[0] : defaultValue;
-}
-
-// Returns the first value of the given boolean named parameter.
-//#
-//# @param params
-//#         as returned by parseParams or null/undefined
-//#
-function getFlag(params, name, defaultValue) {
-       return !!getParam(params, name, defaultValue);
-} 
-       
-// Substitute date components into a string
-Date.prototype.formatString = function(template)
-{
-       var t = template.replace(/0hh12/g,String.zeroPad(this.getHours12(),2));
-       t = t.replace(/hh12/g,this.getHours12());
-       t = t.replace(/0hh/g,String.zeroPad(this.getHours(),2));
-       t = t.replace(/hh/g,this.getHours());
-       t = t.replace(/0mm/g,String.zeroPad(this.getMinutes(),2));
-       t = t.replace(/mm/g,this.getMinutes());
-       t = t.replace(/0ss/g,String.zeroPad(this.getSeconds(),2));
-       t = t.replace(/ss/g,this.getSeconds());
-       t = t.replace(/[ap]m/g,this.getAmPm().toLowerCase());
-       t = t.replace(/[AP]M/g,this.getAmPm().toUpperCase());
-       t = t.replace(/wYYYY/g,this.getYearForWeekNo());
-       t = t.replace(/wYY/g,String.zeroPad(this.getYearForWeekNo()-2000,2));
-       t = t.replace(/YYYY/g,this.getFullYear());
-       t = t.replace(/YY/g,String.zeroPad(this.getFullYear()-2000,2));
-       t = t.replace(/MMM/g,config.messages.dates.months[this.getMonth()]);
-       t = t.replace(/mmm/g,config.messages.dates.shortMonths[this.getMonth()]);
-       t = t.replace(/0MM/g,String.zeroPad(this.getMonth()+1,2));
-       t = t.replace(/MM/g,this.getMonth()+1);
-       t = t.replace(/0WW/g,String.zeroPad(this.getWeek(),2));
-       t = t.replace(/WW/g,this.getWeek());
-       t = t.replace(/DDD/g,config.messages.dates.days[this.getDay()]);
-       t = t.replace(/ddd/g,config.messages.dates.shortDays[this.getDay()]);
-       t = t.replace(/0DD/g,String.zeroPad(this.getDate(),2));
-       t = t.replace(/DDth/g,this.getDate()+this.daySuffix());
-       t = t.replace(/DD/g,this.getDate());
-       return t;
-}
-
-Date.prototype.getWeek = function()
-{
-       var dt = new Date(this.getTime());
-       var d = dt.getDay();
-       if (d==0) d=7;// JavaScript Sun=0, ISO Sun=7
-       dt.setTime(dt.getTime()+(4-d)*86400000);// shift day to Thurs of same week to calculate weekNo
-       var n = Math.floor((dt.getTime()-new Date(dt.getFullYear(),0,1)+3600000)/86400000); 
-       return Math.floor(n/7)+1;
-}
-
-Date.prototype.getYearForWeekNo = function()
-{
-       var dt = new Date(this.getTime());
-       var d = dt.getDay();
-       if (d==0) d=7;// JavaScript Sun=0, ISO Sun=7
-       dt.setTime(dt.getTime()+(4-d)*86400000);// shift day to Thurs of same week
-       return dt.getFullYear();
-}
-
-Date.prototype.getHours12 = function()
-{
-       var h = this.getHours();
-       return h > 12 ? h-12 : ( h > 0 ? h : 12 );
-}
-
-Date.prototype.getAmPm = function()
-{
-       return this.getHours() >= 12 ? "pm" : "am";
-}
-
-Date.prototype.daySuffix = function()
-{
-       var num = this.getDate();
-       if (num >= 11 && num <= 13) return "th";
-       else if (num.toString().substr(-1)=="1") return "st";
-       else if (num.toString().substr(-1)=="2") return "nd";
-       else if (num.toString().substr(-1)=="3") return "rd";
-       return "th";
-}
-
-// Convert a date to local YYYYMMDDHHMM string format
-Date.prototype.convertToLocalYYYYMMDDHHMM = function()
-{
-       return(String.zeroPad(this.getFullYear(),4) + String.zeroPad(this.getMonth()+1,2) + String.zeroPad(this.getDate(),2) + String.zeroPad(this.getHours(),2) + String.zeroPad(this.getMinutes(),2));
-}
-
-// Convert a date to UTC YYYYMMDDHHMM string format
-Date.prototype.convertToYYYYMMDDHHMM = function()
-{
-       return(String.zeroPad(this.getUTCFullYear(),4) + String.zeroPad(this.getUTCMonth()+1,2) + String.zeroPad(this.getUTCDate(),2) + String.zeroPad(this.getUTCHours(),2) + String.zeroPad(this.getUTCMinutes(),2));
-}
-
-// Convert a date to UTC YYYYMMDD.HHMMSSMMM string format
-Date.prototype.convertToYYYYMMDDHHMMSSMMM = function()
-{
-       return(String.zeroPad(this.getUTCFullYear(),4) + String.zeroPad(this.getUTCMonth()+1,2) + String.zeroPad(this.getUTCDate(),2) + "." + String.zeroPad(this.getUTCHours(),2) + String.zeroPad(this.getUTCMinutes(),2) + String.zeroPad(this.getUTCSeconds(),2) + String.zeroPad(this.getUTCMilliseconds(),4));
-}
-
-// Static method to create a date from a UTC YYYYMMDDHHMM format string
-Date.convertFromYYYYMMDDHHMM = function(d)
-{
-       var theDate = new Date(Date.UTC(parseInt(d.substr(0,4),10),
-                                                       parseInt(d.substr(4,2),10)-1,
-                                                       parseInt(d.substr(6,2),10),
-                                                       parseInt(d.substr(8,2),10),
-                                                       parseInt(d.substr(10,2),10),0,0));
-       return(theDate);
-}
-
-// ---------------------------------------------------------------------------------
-// Crypto functions and associated conversion routines
-// ---------------------------------------------------------------------------------
-
-// Crypto "namespace"
-function Crypto() {}
-
-// Convert a string to an array of big-endian 32-bit words
-Crypto.strToBe32s = function(str)
-{
-       var be = Array();
-       var len = Math.floor(str.length/4);
-       var i, j;
-       for(i=0, j=0; i<len; i++, j+=4)
-               {
-               be[i] = ((str.charCodeAt(j)&0xff) << 24)|((str.charCodeAt(j+1)&0xff) << 16)|((str.charCodeAt(j+2)&0xff) << 8)|(str.charCodeAt(j+3)&0xff);
-               }
-       while (j<str.length)
-               {
-               be[j>>2] |= (str.charCodeAt(j)&0xff)<<(24-(j*8)%32);
-               j++;
-               }
-       return be;
-}
-
-// Convert an array of big-endian 32-bit words to a string
-Crypto.be32sToStr = function(be)
-{
-       var str = "";
-       for(var i=0;i<be.length*32;i+=8)
-               str += String.fromCharCode((be[i>>5]>>>(24-i%32)) & 0xff);
-       return str;
-}
-
-// Convert an array of big-endian 32-bit words to a hex string
-Crypto.be32sToHex = function(be)
-{
-       var hex = "0123456789ABCDEF";
-       var str = "";
-       for(var i=0;i<be.length*4;i++)
-               str += hex.charAt((be[i>>2]>>((3-i%4)*8+4))&0xF) + hex.charAt((be[i>>2]>>((3-i%4)*8))&0xF);
-       return str;
-}
-
-// Return, in hex, the SHA-1 hash of a string
-Crypto.hexSha1Str = function(str)
-{
-       return Crypto.be32sToHex(Crypto.sha1Str(str));
-}
-
-// Return the SHA-1 hash of a string
-Crypto.sha1Str = function(str)
-{
-       return Crypto.sha1(Crypto.strToBe32s(str),str.length);
-}
-
-// Calculate the SHA-1 hash of an array of blen bytes of big-endian 32-bit words
-Crypto.sha1 = function(x,blen)
-{
-       // Add 32-bit integers, wrapping at 32 bits
-       //# Uses 16-bit operations internally to work around bugs in some JavaScript interpreters.
-       add32 = function(a,b)
-       {
-               var lsw = (a&0xFFFF)+(b&0xFFFF);
-               var msw = (a>>16)+(b>>16)+(lsw>>16);
-               return (msw<<16)|(lsw&0xFFFF);
-       };
-       // Add five 32-bit integers, wrapping at 32 bits
-       //# Uses 16-bit operations internally to work around bugs in some JavaScript interpreters.
-       add32x5 = function(a,b,c,d,e)
-       {
-               var lsw = (a&0xFFFF)+(b&0xFFFF)+(c&0xFFFF)+(d&0xFFFF)+(e&0xFFFF);
-               var msw = (a>>16)+(b>>16)+(c>>16)+(d>>16)+(e>>16)+(lsw>>16);
-               return (msw<<16)|(lsw&0xFFFF);
-       };
-       // Bitwise rotate left a 32-bit integer by 1 bit
-       rol32 = function(n)
-       {
-               return (n>>>31)|(n<<1);
-       };
-
-       var len = blen*8;
-       // Append padding so length in bits is 448 mod 512
-       x[len>>5] |= 0x80 << (24-len%32);
-       // Append length
-       x[((len+64>>9)<<4)+15] = len;
-       var w = Array(80);
-
-       var k1 = 0x5A827999;
-       var k2 = 0x6ED9EBA1;
-       var k3 = 0x8F1BBCDC;
-       var k4 = 0xCA62C1D6;
-
-       var h0 = 0x67452301;
-       var h1 = 0xEFCDAB89;
-       var h2 = 0x98BADCFE;
-       var h3 = 0x10325476;
-       var h4 = 0xC3D2E1F0;
-
-       for(var i=0;i<x.length;i+=16)
-               {
-               var j,t;
-               var a = h0;
-               var b = h1;
-               var c = h2;
-               var d = h3;
-               var e = h4;
-               for(j = 0;j<16;j++)
-                       {
-                       w[j] = x[i+j];
-                       t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
-                       e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
-                       }
-               for(j=16;j<20;j++)
-                       {
-                       w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
-                       t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
-                       e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
-                       }
-               for(j=20;j<40;j++)
-                       {
-                       w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
-                       t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k2);
-                       e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
-                       }
-               for(j=40;j<60;j++)
-                       {
-                       w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
-                       t = add32x5(e,(a>>>27)|(a<<5),(b&c)|(d&(b|c)),w[j],k3);
-                       e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
-                       }
-               for(j=60;j<80;j++)
-                       {
-                       w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
-                       t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k4);
-                       e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
-                       }
-
-               h0 = add32(h0,a);
-               h1 = add32(h1,b);
-               h2 = add32(h2,c);
-               h3 = add32(h3,d);
-               h4 = add32(h4,e);
-               }
-       return Array(h0,h1,h2,h3,h4);
-}
-
-// ---------------------------------------------------------------------------------
-// RGB colour object
-// ---------------------------------------------------------------------------------
-
-// Construct an RGB colour object from a '#rrggbb', '#rgb' or 'rgb(n,n,n)' string or from separate r,g,b values
-function RGB(r,g,b)
-{
-       this.r = 0;
-       this.g = 0;
-       this.b = 0;
-       if(typeof r == "string")
-               {
-               if(r.substr(0,1) == "#")
-                       {
-                       if(r.length == 7)
-                               {
-                               this.r = parseInt(r.substr(1,2),16)/255;
-                               this.g = parseInt(r.substr(3,2),16)/255;
-                               this.b = parseInt(r.substr(5,2),16)/255;
-                               }
-                       else
-                               {
-                               this.r = parseInt(r.substr(1,1),16)/15;
-                               this.g = parseInt(r.substr(2,1),16)/15;
-                               this.b = parseInt(r.substr(3,1),16)/15;
-                               }
-                       }
-               else
-                       {
-                       var rgbPattern = /rgb\s*\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/ ;
-                       var c = r.match(rgbPattern);
-                       if (c)
-                               {
-                               this.r = parseInt(c[1],10)/255;
-                               this.g = parseInt(c[2],10)/255;
-                               this.b = parseInt(c[3],10)/255;
-                               }
-                       }
-               }
-       else
-               {
-               this.r = r;
-               this.g = g;
-               this.b = b;
-               }
-       return this;
-}
-
-// Mixes this colour with another in a specified proportion
-// c = other colour to mix
-// f = 0..1 where 0 is this colour and 1 is the new colour
-// Returns an RGB object
-RGB.prototype.mix = function(c,f)
-{
-       return new RGB(this.r + (c.r-this.r) * f,this.g + (c.g-this.g) * f,this.b + (c.b-this.b) * f);
-}
-
-// Return an rgb colour as a #rrggbb format hex string
-RGB.prototype.toString = function()
-{
-       var r = this.r.clamp(0,1);
-       var g = this.g.clamp(0,1);
-       var b = this.b.clamp(0,1);
-       return("#" + ("0" + Math.floor(r * 255).toString(16)).right(2) +
-                                ("0" + Math.floor(g * 255).toString(16)).right(2) +
-                                ("0" + Math.floor(b * 255).toString(16)).right(2));
-}
-
-// ---------------------------------------------------------------------------------
-// DOM utilities - many derived from www.quirksmode.org
-// ---------------------------------------------------------------------------------
-
-function drawGradient(place,horiz,colours)
-{
-       for(var t=0; t<= 100; t+=2)
-               {
-               var bar = document.createElement("div");
-               place.appendChild(bar);
-               bar.style.position = "absolute";
-               bar.style.left = horiz ? t + "%" : 0;
-               bar.style.top = horiz ? 0 : t + "%";
-               bar.style.width = horiz ? (101-t) + "%" : "100%";
-               bar.style.height = horiz ? "100%" : (101-t) + "%";
-               bar.style.zIndex = -1;
-               var f = t/100;
-               var p = f*(colours.length-1);
-               bar.style.backgroundColor = colours[Math.floor(p)].mix(colours[Math.ceil(p)],p-Math.floor(p)).toString();
-               }
-}
-
-function createTiddlyText(theParent,theText)
-{
-       return theParent.appendChild(document.createTextNode(theText));
-}
-
-function createTiddlyCheckbox(theParent,caption,checked,onChange)
-{
-       var cb = document.createElement("input");
-       cb.setAttribute("type","checkbox");
-       cb.onclick = onChange;
-       theParent.appendChild(cb);
-       cb.checked = checked;
-       cb.className = "chkOptionInput";
-       if(caption)
-               wikify(caption,theParent);
-       return cb;
-}
-
-function createTiddlyElement(theParent,theElement,theID,theClass,theText)
-{
-       var e = document.createElement(theElement);
-       if(theClass != null)
-               e.className = theClass;
-       if(theID != null)
-               e.setAttribute("id",theID);
-       if(theText != null)
-               e.appendChild(document.createTextNode(theText));
-       if(theParent != null)
-               theParent.appendChild(e);
-       return(e);
-}
-
-// Add an event handler
-// Thanks to John Resig, via QuirksMode
-function addEvent(obj,type,fn)
-{
-       if(obj.attachEvent)
-               {
-               obj['e'+type+fn] = fn;
-               obj[type+fn] = function(){obj['e'+type+fn](window.event);}
-               obj.attachEvent('on'+type,obj[type+fn]);
-               }
-       else
-               obj.addEventListener(type,fn,false);
-}
-
-// Remove  an event handler
-// Thanks to John Resig, via QuirksMode
-function removeEvent(obj,type,fn)
-{
-       if(obj.detachEvent)
-               {
-               obj.detachEvent('on'+type,obj[type+fn]);
-               obj[type+fn] = null;
-               }
-       else
-               obj.removeEventListener(type,fn,false);
-}
-
-function addClass(e,theClass)
-{
-       var currClass = e.className.split(" ");
-       if(currClass.indexOf(theClass) == -1)
-               e.className += " " + theClass;
-}
-
-function removeClass(e,theClass)
-{
-       var currClass = e.className.split(" ");
-       var i = currClass.indexOf(theClass);
-       while(i != -1)
-               {
-               currClass.splice(i,1);
-               i = currClass.indexOf(theClass);
-               }
-       e.className = currClass.join(" ");
-}
-
-function hasClass(e,theClass)
-{
-       if(e.className)
-               {
-               if(e.className.split(" ").indexOf(theClass) != -1)
-                       return true;
-               }
-       return false;
-}
-
-// Find the closest relative with a given property value (property defaults to tagName, relative defaults to parentNode)
-function findRelated(e,value,name,relative)
-{
-       name = name ? name : "tagName";
-       relative = relative ? relative : "parentNode";
-       if(name == "className")
-               {
-               while(e && !hasClass(e,value))
-                       {
-                       e = e[relative];
-                       }
-               }
-       else
-               {
-               while(e && e[name] != value)
-                       {
-                       e = e[relative];
-                       }
-               }
-       return e;
-}
-
-// Resolve the target object of an event
-function resolveTarget(e)
-{
-       var obj;
-       if (e.target)
-               obj = e.target;
-       else if (e.srcElement)
-               obj = e.srcElement;
-       if (obj.nodeType == 3) // defeat Safari bug
-               obj = obj.parentNode;
-       return(obj);
-}
-
-// Return the content of an element as plain text with no formatting
-function getPlainText(e)
-{
-       var text = "";
-       if(e.innerText)
-               text = e.innerText;
-       else if(e.textContent)
-               text = e.textContent;
-       return text;
-}
-
-// Get the scroll position for window.scrollTo necessary to scroll a given element into view
-function ensureVisible(e)
-{
-       var posTop = findPosY(e);
-       var posBot = posTop + e.offsetHeight;
-       var winTop = findScrollY();
-       var winHeight = findWindowHeight();
-       var winBot = winTop + winHeight;
-       if(posTop < winTop)
-               return(posTop);
-       else if(posBot > winBot)
-               {
-               if(e.offsetHeight < winHeight)
-                       return(posTop - (winHeight - e.offsetHeight));
-               else
-                       return(posTop);
-               }
-       else
-               return(winTop);
-}
-
-// Get the current width of the display window
-function findWindowWidth()
-{
-       return(window.innerWidth ? window.innerWidth : document.documentElement.clientWidth);
-}
-
-// Get the current height of the display window
-function findWindowHeight()
-{
-       return(window.innerHeight ? window.innerHeight : document.documentElement.clientHeight);
-}
-
-// Get the current horizontal page scroll position
-function findScrollX()
-{
-       return(window.scrollX ? window.scrollX : document.documentElement.scrollLeft);
-}
-
-// Get the current vertical page scroll position
-function findScrollY()
-{
-       return(window.scrollY ? window.scrollY : document.documentElement.scrollTop);
-}
-
-function findPosX(obj)
-{
-       var curleft = 0;
-       while (obj.offsetParent)
-               {
-               curleft += obj.offsetLeft;
-               obj = obj.offsetParent;
-               }
-       return curleft;
-}
-
-function findPosY(obj)
-{
-       var curtop = 0;
-       while (obj.offsetParent)
-               {
-               curtop += obj.offsetTop;
-               obj = obj.offsetParent;
-               }
-       return curtop;
-}
-
-// Blur a particular element
-function blurElement(e)
-{
-       if(e != null && e.focus && e.blur)
-               {
-               e.focus();
-               e.blur();
-               }
-}
-
-// Create a non-breaking space
-function insertSpacer(place)
-{
-       var e = document.createTextNode(String.fromCharCode(160));
-       if(place)
-               place.appendChild(e);
-       return e;
-}
-
-// Remove all children of a node
-function removeChildren(e)
-{
-       while(e.hasChildNodes())
-               e.removeChild(e.firstChild);
-}
-
-// Add a stylesheet, replacing any previous custom stylesheet
-function setStylesheet(s,id)
-{
-       if(!id)
-               id = "customStyleSheet";
-       var n = document.getElementById(id);
-       if(document.createStyleSheet) // Test for IE's non-standard createStyleSheet method
-               {
-               if(n)
-                       n.parentNode.removeChild(n);
-               // This failed without the &nbsp;
-               document.getElementsByTagName("head")[0].insertAdjacentHTML("beforeEnd","&nbsp;<style id='" + id + "'>" + s + "</style>");
-               }
-       else
-               {
-               if(n)
-                       n.replaceChild(document.createTextNode(s),n.firstChild);
-               else
-                       {
-                       var n = document.createElement("style");
-                       n.type = "text/css";
-                       n.id = id;
-                       n.appendChild(document.createTextNode(s));
-                       document.getElementsByTagName("head")[0].appendChild(n);
-                       }
-               }
-}
-
-// Replace the current selection of a textarea or text input and scroll it into view
-
-function replaceSelection(e,text)
-{
-       if (e.setSelectionRange)
-               {
-               var oldpos = e.selectionStart + 1;
-               e.value = e.value.substr(0,e.selectionStart) + text + e.value.substr(e.selectionStart);
-               e.setSelectionRange( oldpos, oldpos);
-               var linecount = e.value.split('\n').length;
-               var thisline = e.value.substr(0,e.selectionStart).split('\n').length-1;
-               e.scrollTop = Math.floor((thisline-e.rows/2)*e.scrollHeight/linecount);
-               }
-       else if (document.selection)
-               {
-               var range = document.selection.createRange();
-               if (range.parentElement() == e)
-                       {
-                       var isCollapsed = range.text == "";
-                       range.text = text;
-                        if (!isCollapsed)
-                               {
-                               range.moveStart('character', -text.length);
-                               range.select();
-                               }
-                       }
-               }
-}
-
-// Returns the text of the given (text) node, possibly merging subsequent text nodes
-function getNodeText(e)
-{
-       var t = ""; 
-       while (e && e.nodeName == "#text")
-               {
-               t += e.nodeValue;
-               e = e.nextSibling;
-               }
-       return t;
-}
-//# -------------------------
-//# LoaderBase: A (abstract) storage loader that loads the tiddlers from a list of HTML elements.
-//# The format of the elements is defined by subclasses of this loader through the internalizeTiddler implementation.
-//# Subclasses must implement:
-//#                    function getTitle(store, e)
-//#
-//# store must implement:
-//#                    function createTiddler(title).
-//#
-
-function LoaderBase()
-{
-}
-
-LoaderBase.prototype.loadTiddler = function(store,e,tiddlers)
-{
-       var title = this.getTitle(store, e);
-       if (title)
-               {
-               var tiddler = store.createTiddler(title);
-               this.internalizeTiddler(store, tiddler, title, e);
-               tiddlers.push(tiddler);
-               }
-}
-
-LoaderBase.prototype.loadTiddlers = function(store,nodes)
-{
-       var tiddlers = [];
-       for (var t = 0; t < nodes.length; t++)
-               {
-               try
-                       {
-                       this.loadTiddler(store, nodes[t], tiddlers);
-                       }
-               catch(e)
-                       {
-                       showException(e, config.messages.tiddlerLoadError.format([this.getTitle(store, nodes[t])]));
-                       }
-               }
-       return tiddlers;
-}
-       
-//# -------------------------
-//# SaverBase: a (abstract) storage saver that externalizes all tiddlers into a string, 
-//# with every tiddler individually externalized (using this.externalizeTiddler) and joined with newlines 
-//# Subclasses must implement:
-//#                    function externalizeTiddler(store, tiddler)
-//#
-//# store must implement:
-//#                    function getTiddlers(sortByFieldName)
-//#
-
-function SaverBase()
-{
-}
-
-SaverBase.prototype.externalize = function(store) 
-{
-       var results = [];
-       var tiddlers = store.getTiddlers("title");
-       for (var t = 0; t < tiddlers.length; t++)
-               results.push(this.externalizeTiddler(store, tiddlers[t]));
-       return results.join("\n");
-}
-//--------------------------------
-// TW21Loader (inherits from LoaderBase)
-
-function TW21Loader() {};
-
-TW21Loader.prototype = new LoaderBase();
-
-TW21Loader.prototype.getTitle = function(store, e) {
-       var title = null;
-       if(e.getAttribute)
-               title = e.getAttribute("tiddler");
-       if(!title && e.id) {    
-               var lenPrefix = store.idPrefix.length;
-               if (e.id.substr(0,lenPrefix) == store.idPrefix)
-                       title = e.id.substr(lenPrefix);
-       }
-       return title;
-}
-
-TW21Loader.prototype.internalizeTiddler = function(store, tiddler, title, data) {
-       var text = getNodeText(data.firstChild).unescapeLineBreaks();
-       var modifier = data.getAttribute("modifier");
-       var modified = Date.convertFromYYYYMMDDHHMM(data.getAttribute("modified"));
-       var c = data.getAttribute("created");
-       var created = c ? Date.convertFromYYYYMMDDHHMM(c) : modified;
-       var tags = data.getAttribute("tags");
-       var fields = {};
-       var attrs = data.attributes;
-       for(var i = attrs.length-1; i >= 0; i--) {
-               var name = attrs[i].name;
-               if (attrs[i].specified && !TiddlyWiki.isStandardField(name)) {
-                       fields[name] = attrs[i].value.unescapeLineBreaks();
-               }
-       }
-       tiddler.assign(title,text,modifier,modified,tags,created, fields);
-       return tiddler;
-};
-
-//--------------------------------
-// TW21Saver (inherits from SaverBase)
-
-function TW21Saver() {};
-
-TW21Saver.prototype = new SaverBase();
-
-TW21Saver.prototype.externalizeTiddler = function(store, tiddler) 
-{
-       try {
-               var extendedFieldAttributes = "";
-               store.forEachField(tiddler, 
-                       function(tiddler, fieldName, value) {
-                               // don't store stuff from the temp namespace
-                               if (!fieldName.match(/^temp\./))
-                                       extendedFieldAttributes += ' %0="%1"'.format([fieldName, value.escapeLineBreaks().htmlEncode()]);
-                       }, true);
-               return '<div tiddler="%0" modifier="%1" modified="%2" created="%3" tags="%4"%6>%5</div>'.format([
-                               tiddler.title.htmlEncode(),
-                               tiddler.modifier.htmlEncode(),
-                               tiddler.modified.convertToYYYYMMDDHHMM(),
-                               tiddler.created.convertToYYYYMMDDHHMM(),
-                               tiddler.getTags().htmlEncode(),
-                               tiddler.escapeLineBreaks().htmlEncode(),
-                               extendedFieldAttributes
-                       ]);
-       } catch (e) {
-               throw exceptionText(e, config.messages.tiddlerSaveError.format([tiddler.title]));
-       }
-}
-
-// ---------------------------------------------------------------------------------
-// Deprecated code
-// ---------------------------------------------------------------------------------
-
-// @Deprecated: Use createElementAndWikify and this.termRegExp instead
-config.formatterHelpers.charFormatHelper = function(w)
-{
-       w.subWikify(createTiddlyElement(w.output,this.element),this.terminator);
-}
-
-// @Deprecated: Use enclosedTextHelper and this.lookaheadRegExp instead
-config.formatterHelpers.monospacedByLineHelper = function(w)
-{
-       var lookaheadRegExp = new RegExp(this.lookahead,"mg");
-       lookaheadRegExp.lastIndex = w.matchStart;
-       var lookaheadMatch = lookaheadRegExp.exec(w.source);
-       if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
-               {
-               var text = lookaheadMatch[1];
-               if(config.browser.isIE)
-                       text = text.replace(/\n/g,"\r");
-               createTiddlyElement(w.output,"pre",null,null,text);
-               w.nextMatch = lookaheadRegExp.lastIndex;
-               }
-}
-
-// @Deprecated: Use <br> or <br /> instead of <<br>>
-config.macros.br.handler = function(place)
-{
-       createTiddlyElement(place,"br");
-}
-
-// Find an entry in an array. Returns the array index or null
-// @Deprecated: Use indexOf instead
-Array.prototype.find = function(item)
-{
-       var i = this.indexOf(item);
-       return i == -1 ? null : i;
-}
-
-// Load a tiddler from an HTML DIV. The caller should make sure to later call Tiddler.changed()
-// @Deprecated: Use store.getLoader().internalizeTiddler instead
-Tiddler.prototype.loadFromDiv = function(divRef,title)
-{
-       return store.getLoader().internalizeTiddler(store,this,title,divRef);
-}
-
-// Format the text for storage in an HTML DIV
-// @Deprecated Use store.getSaver().externalizeTiddler instead.
-Tiddler.prototype.saveToDiv = function()
-{
-       return store.getSaver().externalizeTiddler(store,this);
-}
-
-// @Deprecated: Use store.allTiddlersAsHtml() instead
-function allTiddlersAsHtml()
-{
-       return store.allTiddlersAsHtml();
-}
-
-// @Deprecated: Use refreshPageTemplate instead
-function applyPageTemplate(title)
-{
-       refreshPageTemplate(title);
-}
-
-// @Deprecated: Use story.displayTiddlers instead
-function displayTiddlers(srcElement,titles,template,unused1,unused2,animate,slowly)
-{
-       story.displayTiddlers(srcElement,titles,template,animate,slowly);
-}
-
-// @Deprecated: Use story.displayTiddler instead
-function displayTiddler(srcElement,title,template,unused1,unused2,animate,slowly)
-{
-       story.displayTiddler(srcElement,title,template,animate,slowly);
-}
-
-// @Deprecated: Use functions on right hand side directly instead
-var createTiddlerPopup = Popup.create;
-var scrollToTiddlerPopup = Popup.show;
-var hideTiddlerPopup = Popup.remove;
-
-// @Deprecated: Use right hand side directly instead
-var regexpBackSlashEn = new RegExp("\\\\n","mg");
-var regexpBackSlash = new RegExp("\\\\","mg");
-var regexpBackSlashEss = new RegExp("\\\\s","mg");
-var regexpNewLine = new RegExp("\n","mg");
-var regexpCarriageReturn = new RegExp("\r","mg");
-// ---------------------------------------------------------------------------------
-// End of scripts
-merge(config.shadowTiddlers,{SiteTitle:'DevFire'});
-merge(config.shadowTiddlers,{MainMenu:"PageTemplate\nStyleSheet\nMainMenu\nDefaultTiddlers"});
-merge(config.shadowTiddlers,{SiteSubtitle:"a theme for ~TiddlyWiki"});
-merge(config.shadowTiddlers,{DefaultTiddlers:"LorumIpsum"});
-merge(config.shadowTiddlers,{LorumIpsum:"Aenean eros arcu, condimentum nec, dapibus ut, tincidunt sit amet, urna. Quisque viverra, eros sed imperdiet iaculis, est risus facilisis quam, id malesuada arcu nulla luctus urna. Nullam et est. Vestibulum velit sem, faucibus cursus, dapibus vestibulum, pellentesque et, urna. Donec luctus. Donec lectus. Aliquam eget eros facilisis tortor feugiat sollicitudin. Integer lobortis vulputate sapien. Sed iaculis erat ac nunc. Etiam eu enim. Mauris ipsum urna, rhoncus at, bibendum sit amet, euismod eget, dolor. Mauris fermentum quam vitae ligula. Vestibulum in libero feugiat justo dictum consectetuer. Vestibulum euismod purus eget elit. Nunc sed massa porta elit bibendum posuere. Nunc pulvinar justo sit amet odio. In sed est. Phasellus ornare elementum nulla. Nulla ipsum neque, cursus a, viverra a, imperdiet at, enim. Quisque facilisis, diam sed accumsan suscipit, odio arcu hendrerit dolor, quis aliquet massa nulla nec sem.\n!heading 1\n!!heading 2\n!!!heading3\n----\n<<tag button>>\nThis is a link to a [[StyleSheet]] tiddler.\n\n> This is a blockquote\n> This is a blockquote\n> This is a blockquote\n|>|>| !This is a header |h\n|column1|column2|column3|\n|row2| row2 |row2|\n|column1|column2|column3|\n|row2| row2 |row2|\n|column1|column2|column3|\n|row2| row2 |row2|"});
-// ---------------------------------------------------------------------------------
-//]]>
-</script>
-<style type="text/css">
-
-#saveTest {
-       display: none;
-}
-
-.zoomer {
-       display: none;
-}
-
-#messageArea {
-       display: none;
-}
-
-#copyright {
-       display: none;
-}
-
-.popup {
-       position: absolute;
-}
-
-#storeArea {
-       display: none;
-       margin: 4em 10em 3em;
-}
-
-#storeArea div {
- padding: 0.5em;
- margin: 1em 0em 0em 0em;
- border-color: #f0f0f0 #606060 #404040 #d0d0d0; 
- border-style: solid; 
- border-width: 2px;
- overflow: auto;
-}
-
-#javascriptWarning {
-       width: 100%;
-       text-align: center;
-       font-weight: bold;
-       background-color: #dd1100;
-       color: #fff;
-       padding:1em 0em; 
-}
-
-</style>
-<!--POST-HEAD-START-->
-
-<!--POST-HEAD-END-->
-</head>
-<body onload="main();" onunload="if(window.checkUnsavedChanges) checkUnsavedChanges();">
-<!--PRE-BODY-START-->
-
-<!--PRE-BODY-END-->
-       <script type="text/javascript">
-//<![CDATA[
-if (useJavaSaver)
-       document.write("<applet style='position:absolute;left:-1px' name='TiddlySaver' code='TiddlySaver.class' archive='TiddlySaver.jar' width='1' height='1'></applet>");
-//]]>
-       </script>
-       <div id="copyright">
-       Welcome to TiddlyWiki by Jeremy Ruston, Copyright &copy; 2006 Osmosoft Limited
-       </div>
-       <noscript>
-               <div id="javascriptWarning">This page requires JavaScript to function properly</div>
-       </noscript>
-       <div id="saveTest"></div>
-       <div id="contentWrapper"></div>
-       <div id="contentStash"></div>
-       <div id="storeArea">
-<div tiddler="(built-in shadow tiddler)" modifier="CameronRich" modified="200702240024" created="200702240024" tags="">changes, notes and errata</div>
-<div tiddler="Cam" modifier="YourName" modified="200804011313" created="200804011313" tags="">Type the text for 'YourName'</div>
-<div tiddler="Changelog" modifier="YourName" modified="200901301233" created="200702240022" tags="">@@bgcolor(#ff0000):color(#ffffff):Changes for 1.2.1@@\n\n!!__SSL Library__\n* Certificate verification now works for Firefox.\n* Extended the openssl API.\n\n@@bgcolor(#ff0000):color(#ffffff):Changes for 1.2.0@@\n\n!!__SSL Library__\n* A self-signed certificate will be verified as ok provided that that it is on the certificate authority list.\n* Certificates are not verified when added as certificate authorities (since self-signed and expired certificates can be added to browsers etc)\n\n@@bgcolor(#ff0000):color(#ffffff):Changes for 1.1.9@@\n\n!!__SSL Library__\n* Now support MS IIS resource kit certificates (thanks to Carsten Sørensen).\n* Fixed a memory leak when freeing more than one CA certificate.\n* The bigint library had a problem with squaring which affected classical reduction (thanks to Manuel Klimek).\n\n!!__axhttpd__\n* Brought back setuid()/setgid() as an option.\n\n!@@bgcolor(#ff0000):color(#ffffff):Changes for 1.1.8@@\n\n!!__SSL Library__\n* Now using a BSD style license.\n* Self-signed certificates can now be automatically generated (the keys still need to be provided).\n* A new API call //ssl_x509_create()// can be used to programatically  create the certificate.\n* Certificate/keys can be loaded automatically given a file location.\n\n!@@bgcolor(#ff0000):color(#ffffff):Changes for 1.1.7@@\n\n!!__SSL Library__\n\n* Variable sized session id's is now better handled for session caching. It has meant a new API call //ssl_get_session_id_size()// and a change to //ssl_client_new()// to define the session id size.\n* Muliple records with a single header are now better supported (thanks to Hervé Sibert).\n* ~MD2 added for Verisign root cert verification (thanks to Byron Rakitzis).\n* The ~MD5/~SHA1 digests are calculated incrementally to reduce memory (thanks to Byron Rakitzis).\n* The bigint cache is now cleared regularly to reduce memory.\n\n!!__axhttpd__\n\n* Improved the POST handling (thanks to Christian Melki).\n* CSS files now work properly.\n* Lua's CGI launcher location is configurable.\n* //vfork()// is now used for CGI for performance reasons.\n\n!@@bgcolor(#ff0000):color(#ffffff):Changes for 1.1.6@@\n\n!!__SSL Library__\n\n* ~RC4 speed improvements\n* Lua samples/bindings now work properly\n\n!@@bgcolor(#ff0000):color(#ffffff):Changes for 1.1.5@@\n\n!!__SSL Library__\n\n* Session id's can now be variable lengths in server hello messages.\n* 0 length client certificates are now supported.\n* ssl_version() now returns just the version and not the date.\n* ssl_write() was not sending complete packets under load.\n\n!!__axhttpd__\n\n* Completely updated the CGI code.\n* Lua now integrated - Lua scripts and Lua Pages now run.\n\n!@@bgcolor(#ff0000):color(#ffffff):Changes for 1.1.4@@\n\n!!__SSL Library__\n\n* Fixed a Win32 crypto library issue with non-Administrator users\n* Removed compiler warnings that showed up in ~FC6.\n* GNU TLS certificates are now accepted.\n* Separated the send/receive headers for HMAC calculations.\n* Fixed a compilation problem with swig/perl/~FC6.\n* Fixed an issue with loading PEM CA certificates.\n\n!!__axhttpd__\n\n* Made //setuid()/setgid()// call an mconf option.\n* Made //chroot()// an mconf option. Default to //chdir()// instead.\n* Removed optional permissions checking.\n\n!@@bgcolor(#ff0000):color(#ffffff):Changes for 1.1.1@@\n\n!!__SSL Library__\n\n* AES should now work on 16bit processors (there was an alignment problem).\n* Various freed objects are cleared before freeing.\n* Header files now installed in ///usr/local/include/axTLS//.\n* -DCYGWIN replaced with -~DCONFIG_PLATFORM_CYGWIN (and the same for Solaris).\n* removed &quot;-noextern&quot; option in Swig. Fixed some other warnings in Win32.\n* SSLCTX changed to ~SSL_CTX (to be consistent with openssl). SSLCTX still exists for backwards compatibility.\n* malloc() and friends call abort() on failure.\n* Fixed a memory leak in directory listings.\n* Added openssl() compatibility functions.\n* Fixed Cygwin 'make install' issue.\n\n!!__axhttpd__\n\n* main.c now becomes axhttpd.c.\n* Header file issue fixed (in mime_types.c).\n* //chroot()// now used for better security.\n* Basic authentication implemented (via .htpasswd).\n* SSL access/denial protection implemented (via .htaccess).\n* Directory access protection implemented (via .htaccess).\n* Can now have more than one CGI file extension in mconf.\n* &quot;~If-Modified-Since&quot; request now handled properly.\n* Performance tweaks to remove //ssl_find()//.</div>
-<div tiddler="DefaultTiddlers" modifier="CameronRich" modified="200702240019" created="200702240019" tags="">[[Read Me]]</div>
-<div tiddler="License" modifier="YourName" modified="200804011309" created="200702240022" tags="">axTLS uses a BSD style license:\n\nCopyright (c) 2008, Cameron Rich All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\nRedistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer. Redistributions in binary\nform must reproduce the above copyright notice, this list of conditions and\nthe following disclaimer in the documentation and/or other materials\nprovided with the distribution. Neither the name of the axTLS Project nor\nthe names of its contributors may be used to endorse or promote products\nderived from this software without specific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot;\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.</div>
-<div tiddler="MainMenu" modifier="CameronRich" modified="200702250353" created="200702240021" tags="">[[Read Me]] \n[[Changelog]]\n[[axhttpd]]\n[[License]]</div>
-<div tiddler="PageTemplate" modifier="YourName" modified="200701122313" created="200701122350" tags="DevFireTheme">&lt;div class='header' macro='gradient vert #390108 #900'&gt;\n&lt;div class='headerShadow'&gt;\n&lt;span class='siteTitle' refresh='content' tiddler='SiteTitle'&gt;&lt;/span&gt;&amp;nbsp;\n&lt;span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'&gt;&lt;/span&gt;\n&lt;/div&gt;\n&lt;div class='headerForeground'&gt;\n&lt;span class='siteTitle' refresh='content' tiddler='SiteTitle'&gt;&lt;/span&gt;&amp;nbsp;\n&lt;span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'&gt;&lt;/span&gt;\n&lt;/div&gt;\n&lt;/div&gt;\n&lt;div id='mainMenu'&gt;\n&lt;div refresh='content' tiddler='MainMenu'&gt;&lt;/div&gt;\n&lt;/div&gt;\n&lt;div id='sidebar'&gt;\n&lt;div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'&gt;&lt;/div&gt;\n&lt;div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'&gt;&lt;/div&gt;\n&lt;/div&gt;\n&lt;div id='displayArea'&gt;\n&lt;div id='messageArea'&gt;&lt;/div&gt;\n&lt;div id='tiddlerDisplay'&gt;&lt;/div&gt;\n&lt;/div&gt;</div>
-<div tiddler="Read Me" modifier="YourName" modified="200804011313" created="200702240020" tags="">!@@bgcolor(#ff0000):color(#ffffff):axTLS Quick Start Guide@@\n\nThis is a guide to get a small SSL web-server up and running quickly.\n\n!!__Introduction__\n\nThe axTLS project is an SSL client/server library using the ~TLSv1 protocol. It is designed to be small and fast, and is suited to embedded projects. A web server is included.\n\nThe basic web server + SSL library is around 60-70kB and is configurable for features or size.\n\n!!__Compilation__\n\nAll platforms require GNU make. This means on Win32 that Cygwin needs to be installed with &quot;make&quot; and various developer options selected.\n\nConfiguration now uses a tool called &quot;mconf&quot; which gives a nice way to configure options (similar to what is used in ~BusyBox and the Linux kernel).\n\nYou should be able to compile axTLS simply by extracting it, change into the extracted directory and typing:\n\n{{indent{{{{&gt;  make}}}\n\nSelect your platform type, save the configuration, exit, and then type &quot;make&quot; again.\n\nIf all goes well, you should end up with an executable called &quot;axhttpd&quot; (or axhttpd.exe) in the //_stage// directory.\n\nTo play with all the various axTLS options, type:\n\n{{indent{{{{&gt;  make menuconfig}}}\n\nSave the new configuration and rebuild.\n\n!!__Running it__\n\nTo run it, go to the //_stage// directory, and type (as superuser):\n\n{{indent{{{{&gt; axhttpd}}}\n\nNote: you may have to set your ~LD_LIBRARY_PATH - e.g. go to //_stage// and type //export ~LD_LIBRARY_PATH=`pwd`//\n\nAnd then point your browser at https://127.0.0.1 And you should see a this html page with a padlock appearing on your browser. or type http://127.0.0.1 to see the same page unencrypted.\n\n!!__The axssl utilities__\n\nThe axssl suite of tools are the SSL test tools in the various language bindings. They are:\n\n* axssl              - C sample\n* axssl.csharp    - C# sample\n* axssl.vbnet      - VB.NET sample\n* axtls.jar           - Java sample\n* axssl.pl           - Perl sample\n* axssl.lua         - Lua sample\n\nAll the tools have identical command-line parameters. e.g. to run something interesting:\n\n{{indent{{{{&gt; axssl s_server -verify -CAfile ../ssl/test/axTLS.ca_x509}}}\n\nand\n\n{{indent{{{{&gt; axssl s_client -cert ../ssl/test/axTLS.x509_1024 -key ../ssl/test/axTLS.key_1024 -reconnect}}}\n\n!!!!C#\n\nIf building under Linux or other non-Win32 platforms, Mono must be installed and the executable is run as:\n\n{{indent{{{{&gt; mono axssl.csharp.exe ...}}}\n\n!!!!Java\n\nThe java version is run as:\n\n{{indent{{{{&gt; java -jar axtls.jar &lt;options&gt;}}}\n\n!!!!Perl\n\n{{indent{{{{&gt; [perl] ./axssl.pl &lt;options&gt;}}}\n\nIf running under Win32, be sure to use the correct version of Perl (i.e. ~ActiveState's version works ok).\n\n!!!!Lua\n\n{{indent{{{{&gt; [lua] ./axssl.lua &lt;options&gt;}}}\n\n!__Known Issues__\n\n* Firefox doesn't handle legacy ~SSLv2 at all well. Disabling ~SSLv2 still initiates a ~SSLv23 handshake (v1.5). And continuous pressing of the &quot;Reload&quot; page instigates a change to ~SSLv3 for some reason (even though the TLS 1.0 option is selected). This will cause a &quot;Firefox and &lt;server&gt; cannot communicate securely because they have no common encryption algorithms&quot; (v1.5), or &quot;Firefox can't connect to &lt;server&gt; because the site uses a security protocol which isn't enabled&quot; (v2.0). See bugzilla issues 343543 and 359484 (Comment #7). It's all broken (hopefully fixed soon).\n* Perl/Java bindings don't work on 64 bit Linux machines. I can't even compile the latest version of Perl on an ~AMD64 box (using ~FC3).\n* Java 1.4 or better is required for the Java interfaces.\n* Processes that fork can't use session resumption unless some form of IPC is used.\n* Ensure libperl.so and libaxtls.so are in the shared library path when running with the perl bindings. A way to do this is with:\n\n{{indent{{{{&gt; export LD_LIBRARY_PATH=`perl -e 'use Config; print $Config{archlib};'`/CORE:.}}}\n* The lua sample requires the luabit library from http://luaforge.net/projects/bit.\n\n!!!!Win32 issues\n\n* Be careful about doing .NET executions on network drives - .NET complains with security exceptions on the binary. //TODO: Add a manifest file to prevent this.//\n* CGI has been removed from Win32 - it needs a lot more work to get it right.\n* The default Microsoft .NET SDK is v2.0.50727. Download from: http://msdn.microsoft.com/netframework/downloads/updates/default.aspx.\n\n!!!!Solaris issues\n\n* mconf doesn't work well - some manual tweaking is required for string values.\n* GNU make is required and needs to be in $PATH.\n* To get swig's library dependencies to work (and for the C library to be found), I needed to type:\n\n{{indent{{{{&gt; export LD_LIBRARY_PATH=/usr/local/gcc-3.3.1/lib:.}}}\n\n!!!!Cygwin issues\n\n* The bindings all compile but don't run under Cygwin with the exception of Perl. This is due to win32 executables being incompatible with Cygwin libraries.\n\n</div>
-<div tiddler="SiteSubtitle" modifier="CameronRich" modified="200702240025" created="200702240025" tags="">changes, notes and errata</div>
-<div tiddler="SiteTitle" modifier="CameronRich" modified="200702240023" created="200702240023" tags="">axTLS Embedded SSL</div>
-<div tiddler="SiteUrl" modifier="CameronRich" modified="200702240025" created="200702240025" tags="">http://axtls.cerocclub.com.au</div>
-<div tiddler="StyleSheet" modifier="CameronRich" modified="200702250600" created="200701122350" tags="DevFireTheme">/***\nhttp://tiddlystyles.com/#theme:DevFire\nAuthor: Clint Checketts\n***/\n\n/*{{{*/\nbody {\nbackground: #000;\n}\n/*}}}*/\n/***\n!Link styles /% ============================================================= %/\n***/\n/*{{{*/\na,\na.button,\n#mainMenu a.button,\n#sidebarOptions .sliderPanel a{\n color: #ffbf00;\n border: 0;\n background: transparent;\n}\n\na:hover,\na.button:hover,\n#mainMenu a.button:hover,\n#sidebarOptions .sliderPanel a:hover\n#sidebarOptions .sliderPanel a:active{\n color: #ff7f00;\n border: 0;\n border-bottom: #ff7f00 1px dashed;\n background: transparent;\n text-decoration: none;\n}\n\n#displayArea .button.highlight{\n color: #ffbf00;\n background: #4c4c4c;\n}\n/*}}}*/\n/***\n!Header styles /% ============================================================= %/\n***/\n/*{{{*/\n.header{\n border-bottom: 2px solid #ffbf00;\n color: #fff;\n}\n\n.headerForeground a {\n color: #fff;\n}\n\n.header a:hover {\n border-bottom: 1px dashed #fff;\n}\n/*}}}*/\n/***\n!Main menu styles /% ============================================================= %/\n***/\n/*{{{*/\n#mainMenu {color: #fff;}\n#mainMenu h1{\n font-size: 1.1em;\n}\n#mainMenu li,#mainMenu ul{\n list-style: none;\n margin: 0;\n padding: 0;\n}\n/*}}}*/\n/***\n!Sidebar styles /% ============================================================= %/\n***/\n/*{{{*/\n#sidebar {\n right: 0;\n color: #fff;\n border: 2px solid #ffbf00;\n border-width: 0 0 2px 2px;\n}\n#sidebarOptions {\n background-color: #4c4c4c;\n padding: 0;\n}\n\n#sidebarOptions a{\n margin: 0;\n color: #ffbf00;\n border: 0;\n}\n#sidebarOptions a:hover {\n color: #4c4c4c;\n background-color: #ffbf00;\n\n}\n\n#sidebarOptions a:active {\n color: #ffbf00;\n background-color: transparent;\n}\n\n#sidebarOptions .sliderPanel {\n background-color: #333;\n margin: 0;\n}\n\n#sidebarTabs {background-color: #4c4c4c;}\n#sidebarTabs .tabSelected {\n padding: 3px 3px;\n cursor: default;\n color: #ffbf00;\n background-color: #666;\n}\n#sidebarTabs .tabUnselected {\n color: #ffbf00;\n background-color: #5f5f5f;\n padding: 0 4px;\n}\n\n#sidebarTabs .tabUnselected:hover,\n#sidebarTabs .tabContents {\n background-color: #666;\n}\n\n.listTitle{color: #FFF;}\n#sidebarTabs .tabContents a{\n color: #ffbf00;\n}\n\n#sidebarTabs .tabContents a:hover{\n color: #ff7f00;\n background: transparent;\n}\n\n#sidebarTabs .txtMoreTab .tabSelected,\n#sidebarTabs .txtMoreTab .tab:hover,\n#sidebarTabs .txtMoreTab .tabContents{\n color: #ffbf00;\n background: #4c4c4c;\n}\n\n#sidebarTabs .txtMoreTab .tabUnselected {\n color: #ffbf00;\n background: #5f5f5f;\n}\n\n.tab.tabSelected, .tab.tabSelected:hover{color: #ffbf00; border: 0; background-color: #4c4c4c;cursor:default;}\n.tab.tabUnselected {background-color: #666;}\n.tab.tabUnselected:hover{color:#ffbf00; border: 0;background-color: #4c4c4c;}\n.tabContents {\n background-color: #4c4c4c;\n border: 0;\n}\n.tabContents .tabContents{background: #666;}\n.tabContents .tabSelected{background: #666;}\n.tabContents .tabUnselected{background: #5f5f5f;}\n.tabContents .tab:hover{background: #666;}\n/*}}}*/\n/***\n!Message area styles /% ============================================================= %/\n***/\n/*{{{*/\n#messageArea {background-color: #666; color: #fff; border: 2px solid #ffbf00;}\n#messageArea a:link, #messageArea a:visited {color: #ffbf00; text-decoration:none;}\n#messageArea a:hover {color: #ff7f00;}\n#messageArea a:active {color: #ff7f00;}\n#messageArea .messageToolbar a{\n border: 1px solid #ffbf00;\n background: #4c4c4c;\n}\n/*}}}*/\n/***\n!Popup styles /% ============================================================= %/\n***/\n/*{{{*/\n.popup {color: #fff; background-color: #4c4c4c; border: 1px solid #ffbf00;}\n.popup li.disabled{color: #fff;}\n.popup a {color: #ffbf00; }\n.popup a:hover { background: transparent; color: #ff7f00; border: 0;}\n.popup hr {color: #ffbf00; background: #ffbf00;}\n/*}}}*/\n/***\n!Tiddler Display styles /% ============================================================= %/\n***/\n/*{{{*/\n.title{color: #fff;}\nh1, h2, h3, h4, h5 {\n color: #fff;\n background-color: transparent;\n border-bottom: 1px solid #333;\n}\n\n.subtitle{\n color: #666;\n}\n\n.viewer {color: #fff; }\n\n.viewer table{background: #666; color: #fff;}\n\n.viewer th {background-color: #996; color: #fff;}\n\n.viewer pre, .viewer code {color: #ddd; background-color: #4c4c4c; border: 1px solid #ffbf00;}\n\n.viewer hr {color: #666;}\n\n.tiddler .button {color: #4c4c4c;}\n.tiddler .button:hover { color: #ffbf00; background-color: #4c4c4c;}\n.tiddler .button:active {color: #ffbf00; background-color: #4c4c4c;}\n\n.toolbar {\n color: #4c4c4c;\n}\n\n.toolbar a.button,\n.toolbar a.button:hover,\n.toolbar a.button:active,\n.editorFooter a{\n border: 0;\n}\n\n.footer {\n color: #ddd;\n}\n\n.selected .footer {\n color: #888;\n}\n\n.highlight, .marked {\n color: #000;\n background-color: #ffe72f;\n}\n.editorFooter {\n color: #aaa;\n}\n\n.tab{\n-moz-border-radius-topleft: 3px;\n-moz-border-radius-topright: 3px;\n}\n\n.tagging,\n.tagged{\n background: #4c4c4c;\n border: 1px solid #4c4c4c; \n}\n\n.selected .tagging,\n.selected .tagged{\n background-color: #333;\n border: 1px solid #ffbf00;\n}\n\n.tagging .listTitle,\n.tagged .listTitle{\n color: #fff;\n}\n\n.tagging .button,\n.tagged .button{\n color: #ffbf00;\n border: 0;\n padding: 0;\n}\n\n.tagging .button:hover,\n.tagged .button:hover{\nbackground: transparent;\n}\n\n.selected .isTag .tagging.simple,\n.selected .tagged.simple,\n.isTag .tagging.simple,\n.tagged.simple {\n float: none;\n display: inline;\n border: 0;\n background: transparent;\n color: #fff;\n margin: 0;\n}\n\n.cascade {\n background: #4c4c4c;\n color: #ddd;\n border: 1px solid #ffbf00;\n}\n/*}}}*/</div>
-<div tiddler="axhttpd" modifier="YourName" modified="200804011308" created="200702242231" tags="">axhttpd is a small embedded web server using the axTLS library. It is based originally on the web server written by Doug Currie which is at http://www.hcsw.org/awhttpd.\n\n!@@bgcolor(#ff0000):color(#ffffff):axhttpd Features@@ \n\n!!__Basic Authentication__\n\nBasic Authentication uses a password file called  &quot;.htpasswd&quot;, in the directory to be  protected. This file is formatted as the familiar colon-separated username/encrypted-password pair, records delimited by newlines. The protection does not carry over to subdirectories. The utility program htpasswd is included to help manually edit .htpasswd files.\n\nThe encryption of this password uses a proprietary algorithm due to the dependency of many crypt libraries on DES. An example is in [[/test_dir/no_http|https://127.0.0.1/test_dir/no_http]]  (username 'abcd', password is '1234').\n\n//Note: This is an mconf enabled configuration option.//\n\n!!__SSL Protection__\n\nDirectories/files can be accessed using the 'http' or 'https' uri prefix. If normal http access for a directory needs to be disabled, then put &quot;~SSLRequireSSL&quot; into a '.htaccess' file in the directory to be protected. \n\nConversely, use &quot;~SSLDenySSL&quot; to deny access to directories via SSL.\n\nAn example is in [[/test_dir/no_http|http://127.0.0.1/test_dir/no_http]] and [[/test_dir/no_ssl|https://127.0.0.1/test_dir/no_ssl]].\n\nEntire directories can be denied access with a &quot;Deny all&quot; directive (regardless of SSL or authentication). An example is in [[/test_dir/bin|http://127.0.0.1/test_dir/bin]]\n\n!!__CGI__\n\nMost of the CGI 1.1 variables are now placed into the script environment and should work as normal.\n\n!!__Lua and Lua Pages__\n\nThis is a small scripting language gaining popularity in embedded applications due to its small footprint and fast speed.\n\nLua has been incorporated into the build, so simply select it and it will automatically install. Try pointing your browser at [[test_main.html]|http://127.0.0.1/lua/test_main.html]] to see an example of Lua Pages.\n\n//Note: This is an mconf enabled configuration option.//\n\n!!__Directory Listing__\n\nAn mconf option. Allow the files in directories to be displayed. An example is in [[/test_dir|http://127.0.0.1/test_dir]]\n\n!!__Other Features__\n\n* Timeout - HTTP 1.1 allows for persistent connections. This is the time allowed for this connection in seconds.\n* Daemon - Puts the process in daemon mode. \n* SSL  session cache size - The size of the session cache (a heavily loaded server should maintain many sessions). A session will save on expensive SSL handshaking.\n\n</div>
-</div>
-<!--POST-BODY-START-->
-
-<!--POST-BODY-END-->
-       </body>
-</html>
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/download.lua b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/download.lua
deleted file mode 100644 (file)
index 2ee1a71..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/usr/local/bin/lua
-
-require"luasocket"
-
-function receive (connection)
-       connection:settimeout(0)
-       local s, status = connection:receive (2^10)
-       if status == "timeout" then
-               coroutine.yield (connection)
-       end
-       return s, status
-end
-
-function download (host, file, outfile)
-       --local f = assert (io.open (outfile, "w"))
-       local c = assert (socket.connect (host, 80))
-       c:send ("GET "..file.." HTTP/1.0\r\n\r\n")
-       while true do
-               local s, status = receive (c)
-               --f:write (s)
-               if status == "closed" then
-                       break
-               end
-       end
-       c:close()
-       --f:close()
-end
-
-local threads = {}
-function get (host, file, outfile)
-       print (string.format ("Downloading %s from %s to %s", file, host, outfile))
-       local co = coroutine.create (function ()
-               return download (host, file, outfile)
-       end)
-       table.insert (threads, co)
-end
-
-function dispatcher ()
-       while true do
-               local n = table.getn (threads)
-               if n == 0 then
-                       break
-               end
-               local connections = {}
-               for i = 1, n do
-                       local status, res = coroutine.resume (threads[i])
-                       if not res then
-                               table.remove (threads, i)
-                               break
-                       else
-                               table.insert (connections, res)
-                       end
-               end
-               if table.getn (connections) == n then
-                       socket.select (connections)
-               end
-       end
-end
-
-local url = arg[1]
-if not url then
-       print (string.format ("usage: %s url [times]", arg[0]))
-       os.exit()
-end
-local times = arg[2] or 5
-
-url = string.gsub (url, "^http.?://", "")
-local _, _, host, file = string.find (url, "^([^/]+)(/.*)")
-local _, _, fn = string.find (file, "([^/]+)$")
-
-for i = 1, times do
-       get (host, file, fn..i)
-end
-
-dispatcher ()
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/env.lua b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/env.lua
deleted file mode 100644 (file)
index c429847..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file should be executed before any script in this directory
--- according to the configuration (cgilua/conf.lua).
-
-pcall (cgilua.enablesession)
-
-local put, mkurlpath = cgilua.put, cgilua.mkurlpath
-
-cgilua.addclosefunction (function ()
-       put [[
-<p>
-<small>
-<a href="test_main.html">Main</a>]]
-       for _, test in {
-                       { "Get", "test_main.lua", {ab = "cd", ef = "gh"} },
-                       { "Cookies", "test_cookies.lua", },
-                       { "FileSystem", "test_fs.lua", },
-                       { "Libraries", "test_lib.lua", },
-                       { "Session", "test_session.lua", },
-                       { "Variables", "test_variables.lp", },
-               } do
-               put (string.format (' &middot; <a href="%s">%s</a>',
-                       mkurlpath (test[2], test[3]), test[1]))
-       end
-       put [[
-</small>]]
-end)
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/overview.lp b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/overview.lp
deleted file mode 100644 (file)
index 4d17002..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<?lua
--- Tries to load known libraries
-for _, t in ipairs { "lxp", "luasql.postgres", "luasql.mysql", "luasql.oci8", "luasql.sqlite", "luasql.odbc", "socket", "xmlrpc", "soap", "lualdap", "logging", "md5", "zip", "stable", "copas", } do
-       pcall (require, t)
-end
-
-libraries = { "lxp", "luasql", "socket", "xmlrpc", "soap", "lualdap", "logging", "md5", "zip", "stable", "copas", }
-
-local colors = { "#999999", "#CCCCCC", "#FFFFFF", }
-local i = 0
-function color () i = math.mod (i + 1, 3) return colors[i + 1] end
-
-function pack_name (p) return string.gsub (p, "^([^.]+).-", "%1") end
-
-function idx (t, f) return _G[t][f] or _G[t]["_"..f] or "" end
-?>
-<html>
-<head><title>CGILua installation overview</title></head>
-
-<body bgcolor="#FFFFFF">
-<h1>CGILua installation overview</h1>
-
-<table>
-  <tr>
-    <th bgcolor="#999999">Version
-    <th bgcolor="#999999">Copyright
-    <th bgcolor="#999999">Description
-  </tr>
-<?lua
-local support = {
-       { "Lua", "_VERSION" },
-       { "compat-5.1", "_COMPAT51" },
-}
-for _, l in ipairs (support) do bg = color()
-?>
-  <tr>
-    <td bgcolor = "<%= bg %>"><%= tostring(_G[l[2]]) %>
-    <td bgcolor = "<%= bg %>">
-    <td bgcolor = "<%= bg %>">
-  </tr>
-<? end ?>
-  <tr><td colspan="4"></tr>
-<?lua
-local pack = {}
-for i, p in ipairs (libraries) do
-       local s = _G[p]
-       local n = pack_name(p)
-       if type(_G[n]) == "table" and _G[n]._VERSION then
-               pack[n] = true
-               table.insert (pack, n)
-       end
-end
-table.sort (pack)
-for _, p in ipairs (pack) do bg = color() ?>
-  <tr>
-    <td bgcolor = "<%= bg %>"><%= idx(p,"VERSION") %>
-    <td bgcolor = "<%= bg %>"><small><%= idx(p,"COPYRIGHT") %></small>
-    <td bgcolor = "<%= bg %>"><small><%= idx(p,"DESCRIPTION") %></small>
-  </tr>
-<?lua end ?>
-</table>
-
-</body>
-</html>
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/prepara_sql2.lua b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/prepara_sql2.lua
deleted file mode 100644 (file)
index 6a37c2f..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/local/bin/lua
-
-MAX_ROWS = arg[1] or 10
-
-require"postgres"
-
-local env = assert (luasql.postgres ())
-local conn = assert (env:connect ("luasql-test", "tomas"))
-
--- Apaga restos de outros testes.
-conn:execute "drop table t2"
-conn:execute "drop table t1"
-
--- Criando as tabelas.
-assert (conn:execute [[create table t1 (
-       a int,
-       b int
-)]])
-assert (conn:execute [[create table t2 (
-       c int,
-       d int
-)]])
-
--- Preenchedo as tabelas.
-for i = 1, MAX_ROWS do
-       local ii = 2*i
-       assert (conn:execute (string.format ([[
-insert into t1 values (%d, %d);
-insert into t2 values (%d, %d);]],
-               ii, i, ii, i)))
-end
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_conc.lua b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_conc.lua
deleted file mode 100644 (file)
index bbb9be7..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-cgilua.htmlheader()
-if ap then
-       local pid, ppid = ap.pid ()
-       if not ppid then
-               ppid = "no parent pid"
-       end
-       cgilua.put ("pid = "..pid.." ("..ppid..")".."\n")
-end
-
-assert(type(stable.get) == "function")
-assert(type(stable.set) == "function")
-
-cgilua.put"stable.pairs = {<br>\n"
-for i, v in stable.pairs () do
-       cgilua.put (i.." = "..tostring(v).."<br>\n")
-end
-cgilua.put"}<br>\n"
-
-local counter = stable.get"counter" or 0
-stable.set ("counter", counter + 1)
-
-local f = stable.get"f"
-if not f then
-       local d = os.date()
-       stable.set ("f", function () return d end)
-else
-       cgilua.put ("f() = "..tostring (f ()))
-end
-
-cgilua.put"<br>\n"
-for i = 1,800 do
-       cgilua.put (i)
-       for ii = 1,1000 do
-               cgilua.put ("<!>")
-       end
-       cgilua.put ("\n")
-end
-cgilua.put ("End")
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_cookies.lp b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_cookies.lp
deleted file mode 100644 (file)
index 932b9c5..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<?lua
-local cookies = require"cgilua.cookies"
-CL_COOKIE = "cgilua_cookie"
-
-local test = cookies.get (CL_COOKIE)
-cookies.sethtml (CL_COOKIE, os.date())
-?>
-
-<h1>Testing Cookies library</h1>
-
-<%= CL_COOKIE%> = <%= tostring(test)%><br>
-Assigning current date to cookie!<br>
-Reload this script to check cookie's value!
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_cookies.lua b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_cookies.lua
deleted file mode 100644 (file)
index 6af935e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-local cookies = require"cgilua.cookies"
-CL_COOKIE = "cgilua_cookie"
-
-local test = cookies.get (CL_COOKIE)
-cookies.set (CL_COOKIE, os.date())
-
-cgilua.htmlheader ()
-cgilua.put ([[
-<h1>Testing Cookies library</h1>
-
-]]..CL_COOKIE..'  = '..tostring(test)..[[<br>
-Assigning current date to cookie!<br>
-Reload this script to check cookie's value!
-]])
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_err.lua b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_err.lua
deleted file mode 100644 (file)
index 4d6ffc9..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-cgilua.htmlheader()
-cgilua.put"Oi!"
---io.write"something\n"
-cgilua.errorlog ("eca", "emerg")
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_fs.lua b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_fs.lua
deleted file mode 100644 (file)
index 566ed8b..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-function link_dir (dir, base)
-       local path = base.."/"..dir
-       local mode = lfs.attributes (path).mode
-       if mode == "directory" then
-               return string.format ('<a href="%s">%s</a>',
-                       cgilua.mkurlpath ("test_fs.lua", { dir = path }),
-                       dir)
-       else
-               return dir
-       end
-end
-
-cgilua.htmlheader ()
-cgilua.put ("<h1>Testing Filesystem library</h1>\n")
-cgilua.put ("<table>\n")
-cgilua.put ("<tr><td colspan=2>Testing <b>dir</b></td></tr>\n")
-local i = 0
-local dir = cgi.dir or "."
-for file in lfs.dir (dir) do
-       i = i+1
-       cgilua.put ("<tr><td>"..i.."</td><td>"..link_dir(file, dir).."</td></tr>\n")
-end
-cgilua.put ("</table>\n")
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_htk.lua b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_htk.lua
deleted file mode 100644 (file)
index ac1de6c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-require"htk"
-
-local a_table = {}
-for i = 1, 20 do
-       local l = {}
-       for j = 1, 20 do
-               table.insert (l, HTK.TD { "cell "..i..","..j })
-       end
-       table.insert (a_table, HTK.TR (l))
-end
-
-cgilua.htmlheader()
-cgilua.put (HTK.HTML {
-       HTK.HEAD { HTK.TITLE { "Titulo da Pagina" } },
-       HTK.BODY {
-               bgcolor = "#FFFFFF",
-               HTK.H1 { "Titulo da Pagina" },
-               HTK.P {},
-               "Uma página qualquer",
-               HTK.TABLE (a_table),
-       }
-})
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_lib.lua b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_lib.lua
deleted file mode 100644 (file)
index 5041253..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-local function getfield (t, f)
-  for w in string.gfind(f, "[%w_]+") do
-    if not t then return nil end
-    t = t[w]
-  end
-  return t
-end
-
-function test_lib (libname)
-       local ok, err = pcall (require, libname)
-       if not ok then
-               cgilua.put ("Library <tt><b>"..libname.."</b></tt> not found<br>\n"..
-                       err)
-       else
-               cgilua.put ("Library <tt><b>"..libname.."</b></tt><br>\n")
-               local t = getfield (_G, libname)
-               if type(t) ~= "table" then
-                       cgilua.put (tostring(t))
-               else
-                       for i, v in pairs (t) do
-                               cgilua.put ("&nbsp;&nbsp;"..tostring(i).." = "..tostring(v).."<br>\n")
-                       end
-               end
-       end
-       cgilua.put ("\n<p>\n")
-end
-
-cgilua.htmlheader ()
-for _, lib in ipairs { "lfs", "socket", "luasql.postgres", "luasql", "lxp", "lxp.lom", "lualdap", "htk", "xmlrpc", "xmlrpc.http" } do
-       test_lib (lib)
-end
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_main.html b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_main.html
deleted file mode 100644 (file)
index a50dd63..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-<html>
-<head><title>Test Page</title></head>
-
-<table border>
-  <tr>
-    <th colspan="4"> GET: </td>
-  </tr>
-  <tr>
-    <td>Lua script</td>
-    <td><a href="test_main.lua?field1=ab&field2=cd&field1=ef">module</a></td>
-  </tr>
-  <tr>
-    <td>HTML template</td>
-    <td><a href="test_main.lp?field1=ab&field2=cd&field1=ef">module</a></td>
-  </tr>
-
-  <tr>
-    <th colspan="4"> POST: </td>
-  </tr>
-  <tr>
-    <td colspan="4">
-      <form method="POST" action="">
-        <table>
-          <tr>
-            <td colspan="4">
-              field 1: <input type="text" name="field1"><br>
-              field 2: <input type="text" name="field2"><br>
-              field 3:
-                <input type="checkbox" name="field3" value="op 1">op 1
-                <input type="checkbox" name="field3" value="op 2">op 2
-                <input type="checkbox" name="field3" value="op 3">op 3
-            </td>
-          </tr>
-          <tr>
-            <td>Lua script</td>
-            <td>
-              <a href="javascript:document.forms[0].action='test_main.lua';document.forms[0].submit()">module</a>
-            </td>
-          </tr>
-          <tr>
-            <td>HTML template</td>
-            <td>
-              <a href="javascript:document.forms[0].action='test_main.lp';document.forms[0].submit()">module</a>
-            </td>
-          </tr>
-        </table>
-      </form>
-    </td>
-  </tr>
-
-  <tr>
-    <th colspan="4"> POST (with upload): </td>
-  </tr>
-  <tr>
-    <td colspan="4">
-      <form method="POST" enctype="multipart/form-data" action="">
-        <table>
-          <tr>
-            <td colspan="4">
-              field 1: <input type="text" name="field1"><br>
-              file (binary!): <input type="file" name="file"><br>
-            </td>
-          </tr>
-          <tr>
-            <td>Lua script</td>
-            <td>
-              <a href="javascript:document.forms[1].action='test_main.lua';document.forms[1].submit()">module</a>
-            </td>
-          </tr>
-          <tr>
-            <td>HTML template</td>
-            <td>
-              <a href="javascript:document.forms[1].action='test_main.lp';document.forms[1].submit()">module</a>
-            </td>
-          </tr>
-        </table>
-      </form>
-    </td>
-  </tr>
-  <tr>
-    <th colspan="4"> Cookies: </td>
-  </tr>
-  <tr>
-    <td>Lua script</td>
-    <td><a href="test_cookies.lua">module</a></td>
-  </tr>
-  <tr>
-    <td>HTML template</td>
-    <td><a href="test_cookies.lp">module</a></td>
-  </tr>
-  <tr>
-    <th colspan="4"> Filesystem: </td>
-  </tr>
-  <tr>
-    <td>Lua script</td>
-    <td><a href="test_fs.lua">module</a></td>
-  </tr>
-  <tr>
-    <th colspan="4"> Session: </td>
-  </tr>
-  <tr>
-    <td>Lua script</td>
-    <td><a href="test_session.lua">module</a></td>
-  </tr>
-  <tr>
-    <th colspan="4"> CGI Variables: </td>
-  </tr>
-  <tr>
-    <td>HTML template</td>
-    <td><a href="test_variables.lp">module</a></td>
-  </tr>
-  <tr>
-    <th colspan="4"> Library Overview: </td>
-  </tr>
-  <tr>
-    <td>HTML template</td>
-    <td><a href="overview.lp">module</a></td>
-  </tr>
-  <tr>
-    <th colspan="4"> Concurrency </td>
-  </tr>
-  <tr>
-    <td>Lua script</td>
-    <td><a href="test_conc.lua">module</a></td>
-  </tr>
-</table>
-</html>
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_main.lp b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_main.lp
deleted file mode 100644 (file)
index 917ee1e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<html>
-<head><title>Embeded Lua Test</title></head>
-
-<body>
-cgi = {
-<?lua
-for i,v in pairs (cgi) do
-       if type(v) == "table" then
-               local vv = "{"
-               for a,b in pairs(v) do
-                       vv = string.format ("%s%s = %s<br>\n", vv, a, tostring(b))
-               end
-               v = vv.."}"
-       end
-?>
-<%= i %> = <%= tostring(v) %> <br>
-<%
-end
-%>
-}
-<br>
-Remote address: <%= cgilua.servervariable"REMOTE_ADDR" %>
-<br>
-Is persistent = <%= tostring (SAPI.Info.ispersistent) %>
-<br>
-ap = <?lua= tostring(ap) ?> <br>
-lfcgi = <% = tostring(lfcgi) %> <br>
-<%= (ap and ap.handler()) or "" %> <br>
-
-</body>
-</html>
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_main.lua b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_main.lua
deleted file mode 100644 (file)
index 0e997a2..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-cgilua.htmlheader()
-cgilua.put[[
-<html>
-<head><title>Script Lua Test</title></head>
-
-<body>
-cgi = {
-]]
-
-for i,v in pairs (cgi) do
-       if type(v) == "table" then
-               local vv = "{"
-               for a,b in pairs(v) do
-                       vv = string.format ("%s%s = %s<br>\n", vv, a, tostring(b))
-               end
-               v = vv.."}"
-       end
-       cgilua.put (string.format ("%s = %s<br>\n", i, tostring(v)))
-end
-cgilua.put "}<br>\n"
-cgilua.put ("Remote address: "..cgilua.servervariable"REMOTE_ADDR")
-cgilua.put "<br>\n"
-cgilua.put ("Is persistent = "..tostring (SAPI.Info.ispersistent).."<br>\n")
-cgilua.put ("ap="..tostring(ap).."<br>\n")
-cgilua.put ("lfcgi="..tostring(lfcgi).."<br>\n")
-
--- Checking Virtual Environment
-local my_output = cgilua.put
-cgilua.put = nil
-local status, err = pcall (function ()
-       assert (cgilua.put == nil, "cannot change cgilua.put value")
-end)
-cgilua.put = my_output
-assert (status == true, err)
-
--- Checking require
-local status, err = pcall (function () require"unknown_module" end)
-assert (status == false, "<tt>unknown_module</tt> loaded!")
--- assert (package == nil, "Access to <tt>package</tt> table allowed!")
-
-cgilua.put[[
-<p>
-</body>
-</html>
-]]
-cgilua = nil
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_session.lua b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_session.lua
deleted file mode 100644 (file)
index d97cc45..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-cgilua.enablesession ()
-
-function pt (tab)
-       for i, v in pairs (tab) do
-               local vv = v
-               if type(v) == "table" then
-                       vv = ""
-                       for _i, _v in pairs (v) do
-                               vv = vv..string.format ("%s = %q, ", _i, _v)
-                       end
-                       vv = '{'..vv..'}'
-               end
-               cgilua.put (string.format ("%s = %s<br>\n", tostring (i), tostring (vv)))
-       end
-end
-
-
-if cgi.field then
-       if not cgilua.session.data.field then
-               cgilua.session.data.field = {}
-       end
-       table.insert (cgilua.session.data.field, cgi.field)
-end
-cgilua.htmlheader()
-if cgilua.session then
-       cgilua.put "cgi = {<br>\n"
-       pt (cgi)
-       cgilua.put "}<br>\n"
-       cgilua.put "cgilua.session.data = {<br>\n"
-       pt (cgilua.session.data)
-       cgilua.put "}<br>\n"
-
-       cgilua.put [[<form action="]]
-       cgilua.put (cgilua.mkurlpath"test_session.lua")
-       cgilua.put [[" method="POST">
-  field: <input type="text" name="field" value="]]
-       cgilua.put (cgi.field or "")
-       cgilua.put [["><br>
-  <input type="submit"><br>
-</form>]]
-else
-       cgilua.put "Sessions library is not available or not well configured"
-end
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_sql.lua b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_sql.lua
deleted file mode 100644 (file)
index 085ce97..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-local s = require"luasql.postgres"
-
-local env = assert (luasql.postgres ())
-local conn = assert (env:connect ("luasql-test", "tomas"))
-local cur = assert (conn:execute ("select count(*) from fetch_test"))
-
-cgilua.htmlheader()
-cgilua.put ("Total lines at table fetch_test is "..cur:fetch())
-cgilua.put (string.format ("<br>\n%s == %s<br>\n", tostring(s), tostring(luasql)))
-
-cur:close()
-conn:close()
-env:close()
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_sql2.lua b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_sql2.lua
deleted file mode 100644 (file)
index a2f6ee1..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-require"postgres"
-
-local env = assert (luasql.postgres ())
-local conn = assert (env:connect ("luasql-test", "tomas"))
-local cur = assert (conn:execute ("select count(*) from t1"))
-local total = tonumber (cur:fetch())
-cur:close()
-local aleatorio = math.random(total)
-local cur = assert (conn:execute ("select * from t1, t2 where b = d and a != "..2*aleatorio))
-
-cgilua.htmlheader()
-cgilua.put ("Aleatorio = "..aleatorio.."<br>\n")
-
-local a,b,c,d = cur:fetch()
-cgilua.put ("<table>\n")
-while a do
---     cgilua.put ("<tr><td>",a,"<td>",b,"<td>",c,"<td>",d,"</tr>")
-       a,b,c,d = cur:fetch()
-end
-cgilua.put ("</table>\n")
-
-cur:close()
-conn:close()
-env:close()
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_variables.lp b/package/luci/libs/luci-lib-nixio/axTLS/www/lua/test_variables.lp
deleted file mode 100644 (file)
index c1ac332..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<table>
-<% for _, var in pairs { "SERVER_SOFTWARE", "SERVER_NAME", "GATEWAY_INTERFACE", "SERVER_PROTOCOL", "SERVER_PORT", "REQUEST_METHOD", "PATH_INFO", "PATH_TRANSLATED", "SCRIPT_NAME", "QUERY_STRING", "REMOTE_HOST", "REMOTE_ADDR", "AUTH_TYPE", "REMOTE_USER", "REMOTE_IDENT", "CONTENT_TYPE", "CONTENT_LENGTH", "HTTP_REFERER", "HTTP_COOKIE", "SCRIPT_FILENAME", "DOCUMENT_ROOT", } do %>
-  <tr><td><%= var %><td>=<td>"<%= cgilua.servervariable(var) or "<i>not defined</i>"%>"</tr>
-<% end %>
-</table>
-
-<p>
-<table>
-<% for _, var in ipairs { "script_file", "script_path", "script_pdir", "script_vdir", "script_vpath", "urlpath", } do %>
-  <tr><td><%= var %><td>=<td>"<%= cgilua[var] %>"</tr>
-<% end %>
-</table>
-
-<p>
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/bin/.htaccess b/package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/bin/.htaccess
deleted file mode 100644 (file)
index 8fd8c46..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Deny all
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_http/.htaccess b/package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_http/.htaccess
deleted file mode 100644 (file)
index 3e20076..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SSLRequireSSL
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_http/.htpasswd b/package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_http/.htpasswd
deleted file mode 100644 (file)
index 0471b01..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-abcd:CQhgDPyy0rvEU8OMxnQIvg==$YdJfIKZimFLYxPf/rbnhtQ==
-yaya:Syuss5jE2FNGVdr0kKGoHg==$WLw/SgHZFuAoOuml3GTJVw==
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_http/index.html b/package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_http/index.html
deleted file mode 100644 (file)
index 8b86eba..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<html>
-<head><title>axhttpd is running</title></head>
-<body>
-Looks like you got to this directory.
-</body>
-</html>
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_ssl/.htaccess b/package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_ssl/.htaccess
deleted file mode 100644 (file)
index d980d26..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SSLDenySSL
diff --git a/package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_ssl/index.html b/package/luci/libs/luci-lib-nixio/axTLS/www/test_dir/no_ssl/index.html
deleted file mode 100644 (file)
index 8b86eba..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<html>
-<head><title>axhttpd is running</title></head>
-<body>
-Looks like you got to this directory.
-</body>
-</html>
diff --git a/package/luci/libs/luci-lib-nixio/axtls-config/.config b/package/luci/libs/luci-lib-nixio/axtls-config/.config
deleted file mode 100644 (file)
index 46cd061..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-HAVE_DOT_CONFIG=y
-CONFIG_PLATFORM_LINUX=y
-# CONFIG_PLATFORM_CYGWIN is not set
-# CONFIG_PLATFORM_WIN32 is not set
-
-#
-# General Configuration
-#
-PREFIX="/usr"
-# CONFIG_DEBUG is not set
-CONFIG_STRIP_UNWANTED_SECTIONS=y
-# CONFIG_VISUAL_STUDIO_7_0 is not set
-# CONFIG_VISUAL_STUDIO_8_0 is not set
-CONFIG_VISUAL_STUDIO_7_0_BASE=""
-CONFIG_VISUAL_STUDIO_8_0_BASE=""
-CONFIG_EXTRA_CFLAGS_OPTIONS="-fpic"
-CONFIG_EXTRA_LDFLAGS_OPTIONS=""
-
-#
-# SSL Library
-#
-# CONFIG_SSL_SERVER_ONLY is not set
-# CONFIG_SSL_CERT_VERIFICATION is not set
-# CONFIG_SSL_ENABLE_CLIENT is not set
-CONFIG_SSL_FULL_MODE=y
-# CONFIG_SSL_SKELETON_MODE is not set
-# CONFIG_SSL_PROT_LOW is not set
-CONFIG_SSL_PROT_MEDIUM=y
-# CONFIG_SSL_PROT_HIGH is not set
-# CONFIG_SSL_USE_DEFAULT_KEY is not set
-CONFIG_SSL_PRIVATE_KEY_LOCATION="/etc/nixio/rsa_main.der"
-CONFIG_SSL_PRIVATE_KEY_PASSWORD=""
-CONFIG_SSL_X509_CERT_LOCATION=""
-# CONFIG_SSL_GENERATE_X509_CERT is not set
-CONFIG_SSL_X509_COMMON_NAME=""
-CONFIG_SSL_X509_ORGANIZATION_NAME=""
-CONFIG_SSL_X509_ORGANIZATION_UNIT_NAME=""
-# CONFIG_SSL_ENABLE_V23_HANDSHAKE is not set
-# CONFIG_SSL_HAS_PEM is not set
-# CONFIG_SSL_USE_PKCS12 is not set
-CONFIG_SSL_EXPIRY_TIME=24
-CONFIG_X509_MAX_CA_CERTS=4
-CONFIG_SSL_MAX_CERTS=2
-CONFIG_SSL_CTX_MUTEXING=y
-CONFIG_USE_DEV_URANDOM=y
-# CONFIG_WIN32_USE_CRYPTO_LIB is not set
-# CONFIG_OPENSSL_COMPATIBLE is not set
-# CONFIG_PERFORMANCE_TESTING is not set
-# CONFIG_SSL_TEST is not set
-# CONFIG_AXHTTPD is not set
-# CONFIG_HTTP_STATIC_BUILD is not set
-CONFIG_HTTP_PORT=0
-CONFIG_HTTP_HTTPS_PORT=0
-CONFIG_HTTP_SESSION_CACHE_SIZE=0
-CONFIG_HTTP_WEBROOT=""
-CONFIG_HTTP_TIMEOUT=0
-# CONFIG_HTTP_HAS_CGI is not set
-CONFIG_HTTP_CGI_EXTENSIONS=""
-# CONFIG_HTTP_ENABLE_LUA is not set
-CONFIG_HTTP_LUA_PREFIX=""
-CONFIG_HTTP_LUA_CGI_LAUNCHER=""
-# CONFIG_HTTP_BUILD_LUA is not set
-# CONFIG_HTTP_DIRECTORIES is not set
-# CONFIG_HTTP_HAS_AUTHORIZATION is not set
-# CONFIG_HTTP_HAS_IPV6 is not set
-# CONFIG_HTTP_ENABLE_DIFFERENT_USER is not set
-CONFIG_HTTP_USER=""
-# CONFIG_HTTP_VERBOSE is not set
-# CONFIG_HTTP_IS_DAEMON is not set
-
-#
-# Language Bindings
-#
-# CONFIG_BINDINGS is not set
-# CONFIG_CSHARP_BINDINGS is not set
-# CONFIG_VBNET_BINDINGS is not set
-CONFIG_DOT_NET_FRAMEWORK_BASE=""
-# CONFIG_JAVA_BINDINGS is not set
-CONFIG_JAVA_HOME=""
-# CONFIG_PERL_BINDINGS is not set
-CONFIG_PERL_CORE=""
-CONFIG_PERL_LIB=""
-# CONFIG_LUA_BINDINGS is not set
-CONFIG_LUA_CORE=""
-
-#
-# Samples
-#
-# CONFIG_SAMPLES is not set
-# CONFIG_C_SAMPLES is not set
-# CONFIG_CSHARP_SAMPLES is not set
-# CONFIG_VBNET_SAMPLES is not set
-# CONFIG_JAVA_SAMPLES is not set
-# CONFIG_PERL_SAMPLES is not set
-# CONFIG_LUA_SAMPLES is not set
-
-#
-# BigInt Options
-#
-# CONFIG_BIGINT_CLASSICAL is not set
-# CONFIG_BIGINT_MONTGOMERY is not set
-CONFIG_BIGINT_BARRETT=y
-CONFIG_BIGINT_CRT=y
-# CONFIG_BIGINT_KARATSUBA is not set
-MUL_KARATSUBA_THRESH=0
-SQU_KARATSUBA_THRESH=0
-CONFIG_BIGINT_SLIDING_WINDOW=y
-CONFIG_BIGINT_SQUARE=y
-# CONFIG_BIGINT_CHECK_ON is not set
diff --git a/package/luci/libs/luci-lib-nixio/axtls-config/config.h b/package/luci/libs/luci-lib-nixio/axtls-config/config.h
deleted file mode 100644 (file)
index 0f861f3..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Automatically generated header file: don't edit
- */
-
-#define HAVE_DOT_CONFIG 1
-#define CONFIG_PLATFORM_LINUX 1
-#undef CONFIG_PLATFORM_CYGWIN
-#undef CONFIG_PLATFORM_WIN32
-
-/*
- * General Configuration
- */
-#define PREFIX "/usr"
-#undef CONFIG_DEBUG
-#define CONFIG_STRIP_UNWANTED_SECTIONS 1
-#undef CONFIG_VISUAL_STUDIO_7_0
-#undef CONFIG_VISUAL_STUDIO_8_0
-#define CONFIG_VISUAL_STUDIO_7_0_BASE ""
-#define CONFIG_VISUAL_STUDIO_8_0_BASE ""
-#define CONFIG_EXTRA_CFLAGS_OPTIONS "-fpic"
-#define CONFIG_EXTRA_LDFLAGS_OPTIONS ""
-
-/*
- * SSL Library
- */
-#undef CONFIG_SSL_SERVER_ONLY
-#undef CONFIG_SSL_CERT_VERIFICATION
-#undef CONFIG_SSL_ENABLE_CLIENT
-#define CONFIG_SSL_FULL_MODE 1
-#undef CONFIG_SSL_SKELETON_MODE
-#undef CONFIG_SSL_PROT_LOW
-#define CONFIG_SSL_PROT_MEDIUM 1
-#undef CONFIG_SSL_PROT_HIGH
-#undef CONFIG_SSL_USE_DEFAULT_KEY
-#define CONFIG_SSL_PRIVATE_KEY_LOCATION "/etc/nixio/rsa_main.der"
-#define CONFIG_SSL_PRIVATE_KEY_PASSWORD ""
-#define CONFIG_SSL_X509_CERT_LOCATION ""
-#undef CONFIG_SSL_GENERATE_X509_CERT
-#define CONFIG_SSL_X509_COMMON_NAME ""
-#define CONFIG_SSL_X509_ORGANIZATION_NAME ""
-#define CONFIG_SSL_X509_ORGANIZATION_UNIT_NAME ""
-#undef CONFIG_SSL_ENABLE_V23_HANDSHAKE
-#undef CONFIG_SSL_HAS_PEM
-#undef CONFIG_SSL_USE_PKCS12
-#define CONFIG_SSL_EXPIRY_TIME 24
-#define CONFIG_X509_MAX_CA_CERTS 4
-#define CONFIG_SSL_MAX_CERTS 2
-#define CONFIG_SSL_CTX_MUTEXING 1
-#define CONFIG_USE_DEV_URANDOM 1
-#undef CONFIG_WIN32_USE_CRYPTO_LIB
-#undef CONFIG_OPENSSL_COMPATIBLE
-#undef CONFIG_PERFORMANCE_TESTING
-#undef CONFIG_SSL_TEST
-#undef CONFIG_AXHTTPD
-#undef CONFIG_HTTP_STATIC_BUILD
-#define CONFIG_HTTP_PORT 
-#define CONFIG_HTTP_HTTPS_PORT 
-#define CONFIG_HTTP_SESSION_CACHE_SIZE 
-#define CONFIG_HTTP_WEBROOT ""
-#define CONFIG_HTTP_TIMEOUT 
-#undef CONFIG_HTTP_HAS_CGI
-#define CONFIG_HTTP_CGI_EXTENSIONS ""
-#undef CONFIG_HTTP_ENABLE_LUA
-#define CONFIG_HTTP_LUA_PREFIX ""
-#define CONFIG_HTTP_LUA_CGI_LAUNCHER ""
-#undef CONFIG_HTTP_BUILD_LUA
-#undef CONFIG_HTTP_DIRECTORIES
-#undef CONFIG_HTTP_HAS_AUTHORIZATION
-#undef CONFIG_HTTP_HAS_IPV6
-#undef CONFIG_HTTP_ENABLE_DIFFERENT_USER
-#define CONFIG_HTTP_USER ""
-#undef CONFIG_HTTP_VERBOSE
-#undef CONFIG_HTTP_IS_DAEMON
-
-/*
- * Language Bindings
- */
-#undef CONFIG_BINDINGS
-#undef CONFIG_CSHARP_BINDINGS
-#undef CONFIG_VBNET_BINDINGS
-#define CONFIG_DOT_NET_FRAMEWORK_BASE ""
-#undef CONFIG_JAVA_BINDINGS
-#define CONFIG_JAVA_HOME ""
-#undef CONFIG_PERL_BINDINGS
-#define CONFIG_PERL_CORE ""
-#define CONFIG_PERL_LIB ""
-#undef CONFIG_LUA_BINDINGS
-#define CONFIG_LUA_CORE ""
-
-/*
- * Samples
- */
-#undef CONFIG_SAMPLES
-#undef CONFIG_C_SAMPLES
-#undef CONFIG_CSHARP_SAMPLES
-#undef CONFIG_VBNET_SAMPLES
-#undef CONFIG_JAVA_SAMPLES
-#undef CONFIG_PERL_SAMPLES
-#undef CONFIG_LUA_SAMPLES
-
-/*
- * BigInt Options
- */
-#undef CONFIG_BIGINT_CLASSICAL
-#undef CONFIG_BIGINT_MONTGOMERY
-#define CONFIG_BIGINT_BARRETT 1
-#define CONFIG_BIGINT_CRT 1
-#undef CONFIG_BIGINT_KARATSUBA
-#define MUL_KARATSUBA_THRESH 
-#define SQU_KARATSUBA_THRESH 
-#define CONFIG_BIGINT_SLIDING_WINDOW 1
-#define CONFIG_BIGINT_SQUARE 1
-#undef CONFIG_BIGINT_CHECK_ON
diff --git a/package/luci/libs/luci-lib-nixio/axtls-root/etc/nixio/rsa_main.der b/package/luci/libs/luci-lib-nixio/axtls-root/etc/nixio/rsa_main.der
deleted file mode 100644 (file)
index e17fdc0..0000000
Binary files a/package/luci/libs/luci-lib-nixio/axtls-root/etc/nixio/rsa_main.der and /dev/null differ
diff --git a/package/luci/libs/luci-lib-nixio/docsrc/CHANGELOG.lua b/package/luci/libs/luci-lib-nixio/docsrc/CHANGELOG.lua
deleted file mode 100644 (file)
index 8c92603..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
---- Changes and improvements.
-module "nixio.CHANGELOG"
-
---- Service Release.
--- <ul>
--- <li>Added getifaddrs() function.</li>
--- <li>Added getsockopt(), setsockopt(), getsockname() and getpeername()
--- directly to TLS-socket objects unifying the socket interface.</li>
--- <li>Added support for CyaSSL as cryptographical backend.</li>
--- <li>Added support for x509 certificates in DER format.</li>
--- <li>Added support for splice() in UnifiedIO.copyz().</li>
--- <li>Added interface to inject chunks into UnifiedIO.linesource() buffer.</li>
--- <li>Changed TLS behaviour to explicitly separate servers and clients.</li>
--- <li>Fixed usage of signed datatype breaking Base64 decoding.</li>
--- <li>Fixed namespace clashes for nixio.fs.</li>
--- <li>Fixed splice() support for some exotic C libraries.</li>
--- <li>Reconfigure axTLS cryptographical provider and mark it as obsolete.</li>
--- </ul>
--- @class table
--- @name 0.3
--- @return !
-
---- Initial Release.
--- <ul>
--- <li>Initial Release</li>  
--- </ul>
--- @class table
--- @name 0.2
--- @return !
diff --git a/package/luci/libs/luci-lib-nixio/docsrc/README.lua b/package/luci/libs/luci-lib-nixio/docsrc/README.lua
deleted file mode 100644 (file)
index d663b62..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
---- General Information.
-module "nixio.README"
-
---- General error handling information.
--- <ul>
--- <li> Most of the functions available in this library may fail. If any error
--- occurs the function returns <strong>nil or false</strong>, an error code
--- (usually errno) and an additional error message text (if avaialable).</li>
--- <li>At the moment false is only returned when a non-blocking I/O function
--- fails with EAGAIN, EWOULDBLOCK or WSAEWOULDBLOCK for any others nil is
--- returned as first parameter. Therefore you can use false to write portable
--- non-blocking I/O applications.</li>
--- <li>Note that the function documentation does only mention the return values
--- in case of a successful operation.</li> 
--- <li>You can find a table of common error numbers and other useful constants
--- like signal numbers in <strong>nixio.const</strong> e.g. nixio.const.EINVAL,
--- nixio.const.SIGTERM, etc. For portability there is a second error constant
--- table <strong>nixio.const_sock</strong> for socket error codes. This might
--- be important if you are dealing with Windows applications, on POSIX however
--- const_sock is just an alias for const.</li>
--- <li>With some exceptions - which are explicitly stated in the function
--- documentation - all blocking functions are signal-protected and will not fail
--- with EINTR.</li>
--- <li>On POSIX the SIGPIPE signal will be set to ignore upon initialization.
--- You should restore the default behaviour or set a custom signal handler
--- in your program after loading nixio if you need this behaviour.</li>
--- </ul>
--- @class table
--- @name Errorhandling
--- @return !
-
---- Function conventions.
--- <br />In general all functions are namend and behave like their POSIX API
--- counterparts - where applicable - applying the following rules:
--- <ul>
--- <li>Functions should be named like the underlying POSIX API function omitting
--- prefixes or suffixes - especially when placed in an object-context (
--- lockf -> File:lock, fsync -> File:sync, dup2 -> dup, ...)</li>
--- <li>If you are unclear about the behaviour of a function you should consult
--- your OS API documentation (e.g. the manpages).</li>
--- <li>If the name is significantly different from the POSIX-function, the
--- underlying function(s) are stated in the documentation.</li>
--- <li>Parameters should reflect those of the C-API, buffer length arguments and 
--- by-reference parameters should be omitted for practical purposes.</li>
--- <li>If a C function accepts a bitfield as parameter, it should be translated
--- into lower case string flags representing the flags if the bitfield is the 
--- last parameter and also omitting prefixes or suffixes. (e.g.  waitpid
--- (pid, &s, WNOHANG | WUNTRACED) -> waitpid(pid, "nohang", "untraced"), 
--- getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) ->
--- Socket:getopt("socket", "reuseaddr"), etc.) </li>
--- <li>If it is not applicable to provide a string representation of the
--- bitfield a bitfield generator helper is provided. It is named FUNCTION_flags.
--- (open("/tmp/test", O_RDONLY | O_NONBLOCK) -> open("/tmp/test", open_flags(
--- "rdonly", "nonblock")))</li>  
--- </ul>
--- @class table
--- @name Functions
--- @return !
-
---- Platform information.
--- <ul>
--- <li>The minimum platform requirements are a decent POSIX 2001 support.
--- Builds are more or less tested on Linux, Solaris and FreeBSD. Builds for
--- Windows XP SP1 and later can be compiled with MinGW either from Windows
--- itself or using the MinGW cross-compiler. Earlier versions of Windows are not
--- supported.</li>
--- <li>In general all functions which don't have any remarks 
--- in their documentation are available on all platforms.</li>
--- <li>Functions with a (POSIX), (Linux) or similar prefix are only available
--- on these specific platforms. Same appplies to parameters of functions
--- with a similar suffix.</li>
--- <li>Some functions might have limitations on some platforms. This should
--- be stated in the documentation. Please also consult your OS API 
--- documentation.</li>   
--- </ul>
--- @usage Tes
--- @class table
--- @name Platforms
--- @return !
-
---- Cryptography and TLS libraries.
--- <ul>
--- <li>Currently 3 underlying cryptography libraries are supported: openssl,
--- cyassl and axTLS. The name of the library in use is written to 
--- <strong>nixio.tls_provider</strong></li>
--- <li>You should whenever possible use openssl or cyassl as axTLS has only 
--- limited support. It does not provide support for non-blocking sockets and
--- is probably less audited than the other ones.</li>
--- <li>As the supported Windows versions are not suitable for embedded devices
--- axTLS is at the moment not supported on Windows.</li>  
--- </ul>
--- @usage Tes
--- @class table
--- @name TLS-Crypto
--- @return !
diff --git a/package/luci/libs/luci-lib-nixio/docsrc/nixio.CryptoHash.lua b/package/luci/libs/luci-lib-nixio/docsrc/nixio.CryptoHash.lua
deleted file mode 100644 (file)
index a08b48d..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
---- Cryptographical Hash and HMAC object.
--- @cstyle     instance
-module "nixio.CryptoHash"
-
---- Add another chunk of data to be hashed.
--- @class function
--- @name CryptoHash.update
--- @param chunk Chunk of data
--- @return CryptoHash object (self)
-
---- Finalize the hash and return the digest.
--- @class function
--- @name CryptoHash.final
--- @usage You cannot call update on a hash object that was already finalized
--- you can however call final multiple times to get the digest.
--- @return     hexdigest
--- @return  buffer containing binary digest
\ No newline at end of file
diff --git a/package/luci/libs/luci-lib-nixio/docsrc/nixio.File.lua b/package/luci/libs/luci-lib-nixio/docsrc/nixio.File.lua
deleted file mode 100644 (file)
index 368562a..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
---- Large File Object.
--- Large file operations are supported up to 52 bits if the Lua number type is
--- double (default).
--- @cstyle     instance
-module "nixio.File"
-
---- Write to the file descriptor.
--- @class function
--- @name File.write
--- @usage <strong>Warning:</strong> It is not guaranteed that all data
--- in the buffer is written at once especially when dealing with pipes.
--- You have to check the return value - the number of bytes actually written -
--- or use the safe IO functions in the high-level IO utility module.
--- @usage Unlike standard Lua indexing the lowest offset and default is 0.
--- @param buffer       Buffer holding the data to be written.
--- @param offset       Offset to start reading the buffer from. (optional)
--- @param length       Length of chunk to read from the buffer. (optional)
--- @return number of bytes written
-
---- Read from a file descriptor.
--- @class function
--- @name File.read
--- @usage <strong>Warning:</strong> It is not guaranteed that all requested data
--- is read at once especially when dealing with pipes.
--- You have to check the return value - the length of the buffer actually read -
--- or use the safe IO functions in the high-level IO utility module.
--- @usage The length of the return buffer is limited by the (compile time) 
--- nixio buffersize which is <em>nixio.const.buffersize</em> (8192 by default).
--- Any read request greater than that will be safely truncated to this value.  
--- @param length       Amount of data to read (in Bytes).
--- @return buffer containing data successfully read
-
---- Reposition read / write offset of the file descriptor.
--- The seek will be done either from the beginning of the file or relative
--- to the current position or relative to the end.
--- @class function
--- @name File.seek
--- @usage This function calls lseek().
--- @param offset       File Offset
--- @param whence       Starting point [<strong>"set"</strong>, "cur", "end"]
--- @return new (absolute) offset position
-
---- Return the current read / write offset of the file descriptor.
--- @class function
--- @name File.tell
--- @usage This function calls lseek() with offset 0 from the current position.
--- @return offset position
-
---- Synchronizes the file with the storage device.
--- Returns when the file is successfully written to the disk.
--- @class function
--- @name File.sync
--- @usage This function calls fsync() when data_only equals false
--- otherwise fdatasync(), on Windows _commit() is used instead.
--- @usage fdatasync() is only supported by Linux and Solaris. For other systems
--- the <em>data_only</em> parameter is ignored and fsync() is always called.
--- @param data_only            Do not synchronize the metadata. (optional, boolean)
--- @return true
-
---- Apply or test a lock on the file.
--- @class function
--- @name File.lock
--- @usage This function calls lockf() on POSIX and _locking() on Windows.
--- @usage The "lock" command is blocking, "tlock" is non-blocking,
--- "ulock" unlocks and "test" only tests for the lock.
--- @usage The "test" command is not available on Windows.
--- @usage Locks are by default advisory on POSIX, but mandatory on Windows.
--- @param command      Locking Command ["lock", "tlock", "ulock", "test"]
--- @param length       Amount of Bytes to lock from current offset (optional)
--- @return true
-
---- Get file status and attributes.
--- @class function
--- @name File.stat
--- @param      field   Only return a specific field, not the whole table (optional)
--- @usage This function calls fstat().
--- @return     Table containing: <ul>
--- <li>atime = Last access timestamp</li>
--- <li>blksize = Blocksize (POSIX only)</li>
--- <li>blocks = Blocks used (POSIX only)</li>
--- <li>ctime = Creation timestamp</li>
--- <li>dev = Device ID</li>
--- <li>gid = Group ID</li>
--- <li>ino = Inode</li>
--- <li>modedec = Mode converted into a decimal number</li>
--- <li>modestr = Mode as string as returned by `ls -l`</li>
--- <li>mtime = Last modification timestamp</li>
--- <li>nlink = Number of links</li>
--- <li>rdev = Device ID (if special file)</li>
--- <li>size = Size in bytes</li>
--- <li>type = ["reg", "dir", "chr", "blk", "fifo", "lnk", "sock"]</li>
--- <li>uid = User ID</li>
--- </ul>
-
---- Close the file descriptor.
--- @class function
--- @name File.close
--- @return true
-
---- Get the number of the filedescriptor.
--- @class function
--- @name File.fileno
--- @return file descriptor number
-
---- (POSIX) Set the blocking mode of the file descriptor.
--- @class function
--- @name File.setblocking
--- @param      blocking        (boolean)
--- @return true
\ No newline at end of file
diff --git a/package/luci/libs/luci-lib-nixio/docsrc/nixio.Socket.lua b/package/luci/libs/luci-lib-nixio/docsrc/nixio.Socket.lua
deleted file mode 100644 (file)
index c970534..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
---- Socket Object.
--- Supports IPv4, IPv6 and UNIX (POSIX only) families.
--- @cstyle     instance
-module "nixio.Socket"
-
---- Get the local address of a socket.
--- @class function
--- @name Socket.getsockname
--- @return     IP-Address
--- @return     Port
-
---- Get the peer address of a socket.
--- @class function
--- @name Socket.getpeername
--- @return     IP-Address
--- @return     Port
-
---- Bind the socket to a network address.
--- @class function
--- @name Socket.bind
--- @usage This function calls getaddrinfo() and bind() but NOT listen().
--- @usage If <em>host</em> is a domain name it will be looked up and bind() 
--- tries the IP-Addresses in the order returned by the DNS resolver
--- until the bind succeeds. 
--- @usage UNIX sockets ignore the <em>port</em>,
--- and interpret <em>host</em> as a socket path.
--- @param host Host (optional, default: all addresses)
--- @param port Port or service description
--- @return true
-
---- Connect the socket to a network address.
--- @class function
--- @name Socket.connect
--- @usage This function calls getaddrinfo() and connect().
--- @usage If <em>host</em> is a domain name it will be looked up and connect() 
--- tries the IP-Addresses in the order returned by the DNS resolver
--- until the connect succeeds. 
--- @usage UNIX sockets ignore the <em>port</em>,
--- and interpret <em>host</em> as a socket path.
--- @param host Hostname or IP-Address (optional, default: localhost)
--- @param port Port or service description
--- @return true
-
---- Listen for connections on the socket.
--- @class function
--- @name Socket.listen
--- @param      backlog Length of queue for pending connections
--- @return     true
-
---- Accept a connection on the socket.
--- @class function
--- @name Socket.accept
--- @return     Socket Object
--- @return     Peer IP-Address
--- @return  Peer Port
-
---- Send a message on the socket specifying the destination.
--- @class function
--- @name Socket.sendto
--- @usage <strong>Warning:</strong> It is not guaranteed that all data
--- in the buffer is written at once.
--- You have to check the return value - the number of bytes actually written -
--- or use the safe IO functions in the high-level IO utility module.
--- @usage Unlike standard Lua indexing the lowest offset and default is 0.
--- @param buffer       Buffer holding the data to be written.
--- @param host         Target IP-Address
--- @param port         Target Port
--- @param offset       Offset to start reading the buffer from. (optional)
--- @param length       Length of chunk to read from the buffer. (optional)
--- @return number of bytes written
-
---- Send a message on the socket.
--- This function is identical to sendto except for the missing destination
--- parameters. See the sendto description for a detailed description.
--- @class function
--- @name Socket.send
--- @param buffer       Buffer holding the data to be written.
--- @param offset       Offset to start reading the buffer from. (optional)
--- @param length       Length of chunk to read from the buffer. (optional)
--- @see        Socket.sendto
--- @return number of bytes written
-
---- Send a message on the socket (This is an alias for send).
--- See the sendto description for a detailed description.
--- @class function
--- @name Socket.write
--- @param buffer       Buffer holding the data to be written.
--- @param offset       Offset to start reading the buffer from. (optional)
--- @param length       Length of chunk to read from the buffer. (optional)
--- @see        Socket.sendto
--- @return number of bytes written
-
---- Receive a message on the socket including the senders source address.
--- @class function
--- @name Socket.recvfrom
--- @usage <strong>Warning:</strong> It is not guaranteed that all requested data
--- is read at once.
--- You have to check the return value - the length of the buffer actually read -
--- or use the safe IO functions in the high-level IO utility module.
--- @usage The length of the return buffer is limited by the (compile time) 
--- nixio buffersize which is <em>nixio.const.buffersize</em> (8192 by default).
--- Any read request greater than that will be safely truncated to this value.  
--- @param length       Amount of data to read (in Bytes).
--- @return buffer containing data successfully read
--- @return host                IP-Address of the sender
--- @return port                Port of the sender
-
---- Receive a message on the socket.
--- This function is identical to recvfrom except that it does not return 
--- the sender's source address. See the recvfrom description for more details.
--- @class function
--- @name Socket.recv  
--- @param length       Amount of data to read (in Bytes).
--- @see Socket.recvfrom
--- @return buffer containing data successfully read
-
---- Receive a message on the socket (This is an alias for recv).
--- See the recvfrom description for more details.
--- @class function
--- @name Socket.read  
--- @param length       Amount of data to read (in Bytes).
--- @see Socket.recvfrom
--- @return buffer containing data successfully read
-
---- Close the socket.
--- @class function
--- @name Socket.close
--- @return true
-
---- Shut down part of a full-duplex connection.
--- @class function
--- @name Socket.shutdown
--- @param how  (optional, default: rdwr) ["rdwr", "rd", "wr"] 
--- @return     true
-
---- Get the number of the filedescriptor.
--- @class function
--- @name Socket.fileno
--- @return file descriptor number
-
---- Set the blocking mode of the socket.
--- @class function
--- @name Socket.setblocking
--- @param      blocking        (boolean)
--- @return true
-
---- Set a socket option.
--- @class function
--- @name Socket.setopt
--- @param level Level ["socket", "tcp", "ip", "ipv6"]
--- @param option Option        ["keepalive", "reuseaddr", "sndbuf", "rcvbuf", 
--- "priority", "broadcast", "linger", "sndtimeo", "rcvtimeo", "dontroute", 
--- "bindtodevice", "error", "oobinline", "cork" (TCP),  "nodelay" (TCP),
--- "mtu" (IP, IPv6), "hdrincl" (IP), "multicast_ttl" (IP), "multicast_loop"
--- (IP, IPv6), "multicast_if" (IP, IPv6), "v6only" (IPv6), "multicast_hops"
--- (IPv6), "add_membership" (IP, IPv6), "drop_membership" (IP, IPv6)]
--- @param      value Value
--- @return true
-
---- Get a socket option.
--- @class function
--- @name Socket.getopt
--- @param level Level ["socket", "tcp", "ip", "ipv6"]
--- @param option Option        ["keepalive", "reuseaddr", "sndbuf", "rcvbuf", 
--- "priority", "broadcast", "linger", "sndtimeo", "rcvtimeo", "dontroute", 
--- "bindtodevice", "error", "oobinline", "cork" (TCP),  "nodelay" (TCP),
--- "mtu" (IP, IPv6), "hdrincl" (IP), "multicast_ttl" (IP), "multicast_loop"
--- (IP, IPv6), "multicast_if" (IP, IPv6), "v6only" (IPv6), "multicast_hops"
--- (IPv6), "add_membership" (IP, IPv6), "drop_membership" (IP, IPv6)]
--- @return Value
diff --git a/package/luci/libs/luci-lib-nixio/docsrc/nixio.TLSContext.lua b/package/luci/libs/luci-lib-nixio/docsrc/nixio.TLSContext.lua
deleted file mode 100644 (file)
index 7cc0711..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
---- Transport Layer Security Context Object.
--- @cstyle     instance
-module "nixio.TLSContext"
-
---- Create a TLS Socket from a socket descriptor.
--- @class function
--- @name TLSContext.create
--- @param socket Socket Object
--- @return TLSSocket Object
-
---- Assign a PEM certificate to this context.
--- @class function
--- @name TLSContext.set_cert
--- @usage This function calls SSL_CTX_use_certificate_chain_file().
--- @param path Certificate File path
--- @return true
-
---- Assign a PEM private key to this context.
--- @class function
--- @name TLSContext.set_key
--- @usage This function calls SSL_CTX_use_PrivateKey_file().
--- @param path Private Key File path
--- @return true
-
---- Set the available ciphers for this context.
--- @class function
--- @name TLSContext.set_ciphers
--- @usage This function calls SSL_CTX_set_cipher_list().
--- @param cipherlist   String containing a list of ciphers
--- @return true
-
---- Set the verification depth of this context.
--- @class function
--- @name TLSContext.set_verify_depth
--- @usage This function calls SSL_CTX_set_verify_depth().
--- @param depth        Depth
--- @return true
-
---- Set the verification flags of this context.
--- @class function
--- @name TLSContext.set_verify
--- @usage This function calls SSL_CTX_set_verify().
--- @param flag1        First Flag      ["none", "peer", "verify_fail_if_no_peer_cert", 
--- "client_once"]
--- @param ...  More Flags      [-"-]
--- @return true
\ No newline at end of file
diff --git a/package/luci/libs/luci-lib-nixio/docsrc/nixio.TLSSocket.lua b/package/luci/libs/luci-lib-nixio/docsrc/nixio.TLSSocket.lua
deleted file mode 100644 (file)
index b932cde..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
---- TLS Socket Object.
--- TLS Sockets contain the underlying socket and context in the fields
--- "socket" and "context".
--- @cstyle     instance
-module "nixio.TLSSocket"
-
---- Initiate the TLS handshake as client with the server.
--- @class function
--- @name TLSSocket.connect
--- @usage This function calls SSL_connect().
--- @usage You have to call either connect or accept before transmitting data.
--- @see TLSSocket.accept
--- @return true
-
---- Wait for a TLS handshake from a client.
--- @class function
--- @name TLSSocket.accept
--- @usage This function calls SSL_accept().
--- @usage You have to call either connect or accept before transmitting data.
--- @see TLSSocket.connect
--- @return     true
-
---- Send a message to the socket.
--- @class function
--- @name TLSSocket.send
--- @usage This function calls SSL_write().
--- @usage <strong>Warning:</strong> It is not guaranteed that all data
--- in the buffer is written at once.
--- You have to check the return value - the number of bytes actually written -
--- or use the safe IO functions in the high-level IO utility module.
--- @usage Unlike standard Lua indexing the lowest offset and default is 0.
--- @param buffer       Buffer holding the data to be written.
--- @param offset       Offset to start reading the buffer from. (optional)
--- @param length       Length of chunk to read from the buffer. (optional)
--- @return number of bytes written
-
---- Send a message on the socket (This is an alias for send).
--- See the send description for a detailed description.
--- @class function
--- @name TLSSocket.write
--- @param buffer       Buffer holding the data to be written.
--- @param offset       Offset to start reading the buffer from. (optional)
--- @param length       Length of chunk to read from the buffer. (optional)
--- @see        TLSSocket.send
--- @return number of bytes written
-
---- Receive a message on the socket.
--- @class function
--- @name TLSSocket.recv
--- @usage This function calls SSL_read().
--- @usage <strong>Warning:</strong> It is not guaranteed that all requested data
--- is read at once.
--- You have to check the return value - the length of the buffer actually read -
--- or use the safe IO functions in the high-level IO utility module.
--- @usage The length of the return buffer is limited by the (compile time) 
--- nixio buffersize which is <em>nixio.const.buffersize</em> (8192 by default).
--- Any read request greater than that will be safely truncated to this value.  
--- @param length       Amount of data to read (in Bytes).
--- @return buffer containing data successfully read
-
---- Receive a message on the socket (This is an alias for recv).
--- See the recv description for more details.
--- @class function
--- @name TLSSocket.read  
--- @param length       Amount of data to read (in Bytes).
--- @see TLSSocket.recv
--- @return buffer containing data successfully read
-
---- Shut down the TLS connection.
--- @class function
--- @name TLSSocket.shutdown
--- @usage This function calls SSL_shutdown().
--- @return     true
\ No newline at end of file
diff --git a/package/luci/libs/luci-lib-nixio/docsrc/nixio.UnifiedIO.lua b/package/luci/libs/luci-lib-nixio/docsrc/nixio.UnifiedIO.lua
deleted file mode 100644 (file)
index 6d1d5ea..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
---- Unified high-level I/O utility API for Files, Sockets and TLS-Sockets.
--- These functions are added to the object function tables by doing <strong>
--- require "nixio.util"</strong>, can be used on all nixio IO  Descriptors and
--- are based on the shared low-level read() and write() functions.
--- @cstyle     instance
-module "nixio.UnifiedIO"
-
---- Test whether the I/O-Descriptor is a socket. 
--- @class function
--- @name UnifiedIO.is_socket
--- @return     boolean
-
---- Test whether the I/O-Descriptor is a TLS socket. 
--- @class function
--- @name UnifiedIO.is_tls_socket
--- @return     boolean
-
---- Test whether the I/O-Descriptor is a file. 
--- @class function
--- @name UnifiedIO.is_file
--- @return     boolean
-
---- Read a block of data and wait until all data is available.
--- @class function
--- @name UnifiedIO.readall
--- @usage This function uses the low-level read function of the descriptor.
--- @usage If the length parameter is omitted, this function returns all data
--- that can be read before an end-of-file, end-of-stream, connection shutdown
--- or similar happens.
--- @usage If the descriptor is non-blocking this function may fail with EAGAIN.
--- @param      length  Bytes to read (optional)
--- @return     data that was successfully read if no error occurred
--- @return     - reserved for error code -
--- @return     - reserved for error message -
--- @return  data that was successfully read even if an error occurred
-
---- Write a block of data and wait until all data is written.
--- @class function
--- @name UnifiedIO.writeall
--- @usage This function uses the low-level write function of the descriptor.
--- @usage If the descriptor is non-blocking this function may fail with EAGAIN.
--- @param      block   Bytes to write
--- @return     bytes that were successfully written if no error occurred
--- @return     - reserved for error code -
--- @return     - reserved for error message -
--- @return  bytes that were successfully written even if an error occurred
-
---- Create a line-based iterator.
--- Lines may end with either \n or \r\n, these control chars are not included
--- in the return value.
--- @class function
--- @name UnifiedIO.linesource
--- @usage This function uses the low-level read function of the descriptor.
--- @usage <strong>Note:</strong> This function uses an internal buffer to read
--- ahead. Do NOT mix calls to read(all) and the returned iterator. If you want
--- to stop reading line-based and want to use the read(all) functions instead
--- you can pass "true" to the iterator which will flush the buffer 
--- and return the bufferd data.
--- @usage If the limit parameter is omitted, this function uses the nixio
--- buffersize (8192B by default).
--- @usage If the descriptor is non-blocking the iterator may fail with EAGAIN.
--- @usage The iterator can be used as an LTN12 source.
--- @param      limit   Line limit
--- @return     Line-based Iterator
-
---- Create a block-based iterator.
--- @class function
--- @name UnifiedIO.blocksource
--- @usage This function uses the low-level read function of the descriptor.
--- @usage The blocksize given is only advisory and to be seen as an upper limit,
--- if an underlying read returns less bytes the chunk is nevertheless returned.
--- @usage If the limit parameter is omitted, the iterator returns data
--- until an end-of-file, end-of-stream, connection shutdown or similar happens.
--- @usage The iterator will not buffer so it is safe to mix with calls to read.
--- @usage If the descriptor is non-blocking the iterator may fail with EAGAIN.
--- @usage The iterator can be used as an LTN12 source.
--- @param      blocksize       Advisory blocksize (optional)
--- @param      limit           Amount of data to consume (optional)
--- @return     Block-based Iterator
-
---- Create a sink.
--- This sink will simply write all data that it receives and optionally
--- close the descriptor afterwards.
--- @class function
--- @name UnifiedIO.sink
--- @usage This function uses the writeall function of the descriptor.
--- @usage If the descriptor is non-blocking the sink may fail with EAGAIN.
--- @usage The iterator can be used as an LTN12 sink.
--- @param      close_when_done (optional, boolean)
--- @return     Sink
-
---- Copy data from the current descriptor to another one.
--- @class function
--- @name UnifiedIO.copy
--- @usage This function uses the blocksource function of the source descriptor
--- and the sink function of the target descriptor.
--- @usage If the limit parameter is omitted, data is copied
--- until an end-of-file, end-of-stream, connection shutdown or similar happens.
--- @usage If the descriptor is non-blocking the function may fail with EAGAIN.
--- @param      fdout Target Descriptor
--- @param      size  Bytes to copy (optional)
--- @return     bytes that were successfully written if no error occurred
--- @return     - reserved for error code -
--- @return     - reserved for error message -
--- @return  bytes that were successfully written even if an error occurred
-
---- Copy data from the current descriptor to another one using kernel-space
--- copying if possible.
--- @class function
--- @name UnifiedIO.copyz
--- @usage This function uses the sendfile() syscall to copy the data or the
--- blocksource function of the source descriptor and the sink function
--- of the target descriptor as a fallback mechanism.
--- @usage If the limit parameter is omitted, data is copied
--- until an end-of-file, end-of-stream, connection shutdown or similar happens.
--- @usage If the descriptor is non-blocking the function may fail with EAGAIN.
--- @param      fdout Target Descriptor
--- @param      size  Bytes to copy (optional)
--- @return     bytes that were successfully written if no error occurred
--- @return     - reserved for error code -
--- @return     - reserved for error message -
--- @return  bytes that were successfully written even if an error occurred
-
---- Close the descriptor.
--- @class function
--- @name UnifiedIO.close
--- @usage      If the descriptor is a TLS-socket the underlying descriptor is
--- closed without touching the TLS connection.
--- @return     true
diff --git a/package/luci/libs/luci-lib-nixio/docsrc/nixio.bin.lua b/package/luci/libs/luci-lib-nixio/docsrc/nixio.bin.lua
deleted file mode 100644 (file)
index 13e125d..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
---- Binary operations and conversion.
-module "nixio.bin"
-
---- Return a hexadecimal ASCII represantation of the content of a buffer. 
--- @class function
--- @name hexlify
--- @param buffer       Buffer
--- @return representation using characters [0-9a-f]
-
---- Return a binary buffer from a hexadecimal ASCII representation. 
--- @class function
--- @name unhexlify
--- @param hexvalue representation using characters [0-9a-f]
--- @return binary data
-
---- Calculate the CRC32 value of a buffer. 
--- @class function
--- @name crc32
--- @param buffer       Buffer
--- @param initial      Initial CRC32 value (optional)
--- @return crc32 value
-
---- Base64 encode a given buffer.
--- @class function
--- @name b64encode
--- @param buffer       Buffer
--- @return base64 encoded buffer
-
---- Base64 decode a given buffer.
--- @class function
--- @name b64decode
--- @param buffer       Base 64 Encoded data
--- @return binary data
\ No newline at end of file
diff --git a/package/luci/libs/luci-lib-nixio/docsrc/nixio.bit.lua b/package/luci/libs/luci-lib-nixio/docsrc/nixio.bit.lua
deleted file mode 100644 (file)
index 6951dd5..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
---- Bitfield operators and mainpulation functions.
--- Can be used as a drop-in replacement for bitlib.
-module "nixio.bit"
-
---- Bitwise OR several numbers.
--- @class function
--- @name bor
--- @param oper1        First Operand
--- @param oper2 Second Operand
--- @param ...  More Operands
--- @return number
-
---- Invert given number.
--- @class function
--- @name bnot
--- @param oper Operand
--- @return number
-
---- Bitwise AND several numbers.
--- @class function
--- @name band
--- @param oper1        First Operand
--- @param oper2 Second Operand
--- @param ...  More Operands
--- @return number
-
---- Bitwise XOR several numbers.
--- @class function
--- @name bxor
--- @param oper1        First Operand
--- @param oper2 Second Operand
--- @param ...  More Operands
--- @return number
-
---- Left shift a number.
--- @class function
--- @name lshift
--- @param oper number
--- @param shift        bits to shift 
--- @return number
-
---- Right shift a number.
--- @class function
--- @name rshift
--- @param oper number
--- @param shift        bits to shift 
--- @return number
-
---- Arithmetically right shift a number.
--- @class function
--- @name arshift
--- @param oper number
--- @param shift        bits to shift 
--- @return number
-
---- Integer division of 2 or more numbers.
--- @class function
--- @name div
--- @param oper1        Operand 1
--- @param oper2 Operand 2
--- @param ... More Operands
--- @return number
-
---- Cast a number to the bit-operating range.
--- @class function
--- @name cast
--- @param oper number
--- @return number
-
---- Sets one or more flags of a bitfield.
--- @class function
--- @name set
--- @param bitfield     Bitfield
--- @param flag1 First Flag
--- @param ...  More Flags
--- @return altered bitfield
-
---- Unsets one or more flags of a bitfield.
--- @class function
--- @name unset
--- @param bitfield     Bitfield
--- @param flag1 First Flag
--- @param ...  More Flags
--- @return altered bitfield
-
---- Checks whether given flags are set in a bitfield.
--- @class function
--- @name check
--- @param bitfield     Bitfield
--- @param flag1 First Flag
--- @param ...  More Flags
--- @return true when all flags are set, otherwise false
\ No newline at end of file
diff --git a/package/luci/libs/luci-lib-nixio/docsrc/nixio.crypto.lua b/package/luci/libs/luci-lib-nixio/docsrc/nixio.crypto.lua
deleted file mode 100644 (file)
index 158d0fc..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- Cryptographical library.
-module "nixio.crypto"
-
---- Create a hash object. 
--- @class function
--- @name nixio.crypto.hash
--- @param algo Algorithm ["sha1", "md5"]
--- @return CryptoHash Object
-
---- Create a HMAC object. 
--- @class function
--- @name nixio.crypto.hmac
--- @param algo Algorithm ["sha1", "md5"]
--- @param key  HMAC-Key
--- @return CryptoHash Object
\ No newline at end of file
diff --git a/package/luci/libs/luci-lib-nixio/docsrc/nixio.fs.lua b/package/luci/libs/luci-lib-nixio/docsrc/nixio.fs.lua
deleted file mode 100644 (file)
index ef495f2..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
---- Low-level and high-level filesystem manipulation library.
-module "nixio.fs"
-
-
---- Check user's permission on a file.
--- @class function
--- @name nixio.fs.access
--- @param path         Path
--- @param mode1                First Mode to check ["f", "r", "w", "x"]
--- @param ...          More Modes to check     [-"-]
--- @return     true
-
---- Strip the directory part from a path.
--- @class function
--- @name nixio.fs.basename
--- @usage      This function cannot fail and will never return nil.
--- @param      path Path
--- @return     basename
-
---- Strip the base from a path.
--- @class function
--- @name nixio.fs.dirname
--- @usage      This function cannot fail and will never return nil.
--- @param      path Path
--- @return     dirname
-
---- Return the cannonicalized absolute pathname.
--- @class function
--- @name nixio.fs.realpath
--- @param      path Path
--- @return     absolute path
-
---- Remove a file or directory.
--- @class function
--- @name nixio.fs.remove
--- @param      path Path
--- @return     true
-
---- Delete a name and - if no links are left - the associated file.
--- @class function
--- @name nixio.fs.unlink
--- @param      path Path
--- @return     true
-
---- Renames a file or directory.
--- @class function
--- @name nixio.fs.rename
--- @param      src     Source path
--- @param      dest Destination path
--- @usage      It is normally not possible to rename files across filesystems.
--- @return     true
-
---- Remove an empty directory.
--- @class function
--- @name nixio.fs.rmdir
--- @param      path Path
--- @return     true
-
---- Create a new directory.
--- @class function
--- @name nixio.fs.mkdir
--- @param      path Path
--- @param      mode File mode (optional, see chmod and umask)
--- @see        nixio.fs.chmod
--- @see        nixio.umask
--- @return     true
-
---- Change the file mode.
--- @class function
--- @name       nixio.fs.chmod
--- @usage      Windows only supports setting the write-protection through the
--- "Writable to others" bit.
--- @usage      <strong>Notice:</strong> The mode-flag for the functions
--- open, mkdir, mkfifo are affected by the umask. 
--- @param      path Path
--- @param      mode File mode  
--- [decimal mode number, "[-r][-w][-xsS][-r][-w][-xsS][-r][-w][-xtT]"]
--- @see        nixio.umask
--- @return true
-
---- Iterate over the entries of a directory.
--- @class function
--- @name nixio.fs.dir
--- @usage      The special entries "." and ".." are omitted.
--- @param      path Path
--- @return     directory iterator returning one entry per call
-
---- Create a hard link.
--- @class function
--- @name nixio.fs.link
--- @usage This function calls link() on POSIX and CreateHardLink() on Windows.
--- @param      oldpath Path
--- @param      newpath Path
--- @return     true
-
---- Change file last access and last modification time.
--- @class function
--- @name nixio.fs.utimes
--- @param      path Path
--- @param      actime Last access timestamp    (optional, default: current time)
--- @param      mtime Last modification timestamp (optional, default: actime)
--- @return     true
-
---- Get file status and attributes.
--- @class function
--- @name nixio.fs.stat
--- @param      path    Path
--- @param      field   Only return a specific field, not the whole table (optional)
--- @return     Table containing: <ul>
--- <li>atime = Last access timestamp</li>
--- <li>blksize = Blocksize (POSIX only)</li>
--- <li>blocks = Blocks used (POSIX only)</li>
--- <li>ctime = Creation timestamp</li>
--- <li>dev = Device ID</li>
--- <li>gid = Group ID</li>
--- <li>ino = Inode</li>
--- <li>modedec = Mode converted into a decimal number</li>
--- <li>modestr = Mode as string as returned by `ls -l`</li>
--- <li>mtime = Last modification timestamp</li>
--- <li>nlink = Number of links</li>
--- <li>rdev = Device ID (if special file)</li>
--- <li>size = Size in bytes</li>
--- <li>type = ["reg", "dir", "chr", "blk", "fifo", "lnk", "sock"]</li>
--- <li>uid = User ID</li>
--- </ul>
-
---- Get file status and attributes and do not resolve if target is a symlink.
--- @class function
--- @name nixio.fs.lstat
--- @param      path    Path
--- @param      field   Only return a specific field, not the whole table (optional)
--- @see        nixio.fs.stat
--- @return Table containing attributes (see stat for a detailed description)
-
---- (POSIX) Change owner and group of a file.
--- @class function
--- @name nixio.fs.chown
--- @param      path    Path
--- @param      user    User ID or Username             (optional)
--- @param      group   Group ID or Groupname   (optional)
--- @return true
-
---- (POSIX) Change owner and group of a file and do not resolve
--- if target is a symlink.
--- @class function
--- @name nixio.fs.lchown
--- @param      path    Path
--- @param      user    User ID or Username             (optional)
--- @param      group   Group ID or Groupname   (optional)
--- @return true
-
---- (POSIX) Create a FIFO (named pipe).
--- @class function
--- @name nixio.fs.mkfifo
--- @param      path Path
--- @param      mode File mode (optional, see chmod and umask)
--- @see        nixio.fs.chmod
--- @see        nixio.umask
--- @return     true
-
---- (POSIX) Create a symbolic link.
--- @class function
--- @name nixio.fs.symlink
--- @param      oldpath Path
--- @param      newpath Path
--- @return     true
-
---- (POSIX) Read the target of a symbolic link.
--- @class function
--- @name nixio.fs.readlink
--- @param      path Path
--- @return     target path
-
---- (POSIX) Find pathnames matching a pattern.
--- @class function
--- @name nixio.fs.glob
--- @param      pattern Pattern
--- @return     path iterator
--- @return     number of matches
-
---- (POSIX) Get filesystem statistics.
--- @class function
--- @name nixio.fs.statvfs
--- @param      path Path to any file within the filesystem.
--- @return     Table containing: <ul>
--- <li>bavail = available blocks</li>
--- <li>bfree = free blocks</li>
--- <li>blocks = number of fragments</li>
--- <li>frsize = fragment size</li>
--- <li>favail = available inodes</li>
--- <li>ffree = free inodes</li>
--- <li>files = inodes</li>
--- <li>flag = flags</li>
--- <li>fsid = filesystem ID</li>
--- <li>namemax = maximum filename length</li>
--- </ul>
-
---- Read the contents of a file into a buffer.
--- @class function
--- @name nixio.fs.readfile
--- @param      path Path
--- @param      limit   Maximum bytes to read (optional)
--- @return     file contents
-
---- Write a buffer into a file truncating the file first.
--- @class function
--- @name nixio.fs.writefile
--- @param      path Path
--- @param      data Data to write
--- @return     true
-
---- Copy data between files.
--- @class function
--- @name nixio.fs.datacopy
--- @param      src     Source file path
--- @param      dest Destination file path
--- @param      limit   Maximum bytes to copy (optional)
--- @return     true
-
---- Copy a file, directory or symlink non-recursively preserving file mode,
--- timestamps, owner and group.
--- @class function
--- @name nixio.fs.copy
--- @usage      The destination must always be a full destination path e.g. do not
--- omit the basename even if source and destination basename are equal. 
--- @param      src     Source path
--- @param      dest Destination path
--- @return     true
-
---- Rename a file, directory or symlink non-recursively across filesystems.
--- @class function
--- @name nixio.fs.move
--- @usage      The destination must always be a full destination path e.g. do not
--- omit the basename even if source and destination basename are equal. 
--- @param      src     Source path
--- @param      dest Destination path
--- @return     true
-
---- Create a directory and all needed parent directories recursively. 
--- @class function
--- @name nixio.fs.mkdirr
--- @param      dest Destination path
--- @param      mode File mode (optional, see chmod and umask)
--- @see        nixio.fs.chmod
--- @see        nixio.umask
--- @return     true
-
---- Rename a file, directory or symlink recursively across filesystems.
--- @class function
--- @name nixio.fs.mover
--- @usage      The destination must always be a full destination path e.g. do not
--- omit the basename even if source and destination basename are equal. 
--- @param      src     Source path
--- @param      dest Destination path
--- @return     true
-
---- Copy a file, directory or symlink recursively preserving file mode,
--- timestamps, owner and group.
--- @class function
--- @name nixio.fs.copyr
--- @usage      The destination must always be a full destination path e.g. do not
--- omit the basename even if source and destination basename are equal. 
--- @param      src     Source path
--- @param      dest Destination path
--- @return     true
diff --git a/package/luci/libs/luci-lib-nixio/docsrc/nixio.lua b/package/luci/libs/luci-lib-nixio/docsrc/nixio.lua
deleted file mode 100644 (file)
index 56a4afb..0000000
+++ /dev/null
@@ -1,467 +0,0 @@
---- General POSIX IO library.
-module "nixio"
-
---- Look up a hostname and service via DNS.
--- @class function
--- @name nixio.getaddrinfo
--- @param host         hostname to lookup      (optional)
--- @param family       address family [<strong>"any"</strong>, "inet", "inet6"]  
--- @param service      service name or port (optional)
--- @return                     Table containing one or more tables containing: <ul>
--- <li>family = ["inet", "inet6"]</li>
--- <li>socktype = ["stream", "dgram", "raw"]</li>
--- <li>address = Resolved IP-Address</li>
--- <li>port = Resolved Port (if service was given)</li>
--- </ul>
-
---- Reverse look up an IP-Address via DNS.
--- @class function
--- @name nixio.getnameinfo
--- @param ipaddr       IPv4 or IPv6-Address
--- @return     FQDN
-
---- (Linux, BSD) Get a list of available network interfaces and their addresses.
--- @class function
--- @name nixio.getifaddrs
--- @return                     Table containing one or more tables containing: <ul>
--- <li>name = Interface Name</li>
--- <li>family = ["inet", "inet6", "packet"]</li>
--- <li>addr = Interface Address (IPv4, IPv6, MAC, ...)</li>
--- <li>broadaddr = Broadcast Address</li>
--- <li>dstaddr = Destination Address (Point-to-Point)</li>
--- <li>netmask = Netmask (if available)</li>
--- <li>prefix = Prefix (if available)</li>
--- <li>flags = Table of interface flags (up, multicast, loopback, ...)</li>
--- <li>data = Statistics (Linux, "packet"-family)</li>
--- <li>hatype = Hardware Type Identifier (Linix, "packet"-family)</li>
--- <li>ifindex = Interface Index (Linux, "packet"-family)</li>
--- </ul>
-
---- Get protocol entry by name.
--- @usage This function returns nil if the given protocol is unknown.
--- @class function
--- @name nixio.getprotobyname
--- @param name         protocol name to lookup
--- @return                     Table containing the following fields: <ul>
--- <li>name = Protocol Name</li>
--- <li>proto = Protocol Number</li>
--- <li>aliases = Table of alias names</li>
--- </ul>
-
---- Get protocol entry by number.
--- @usage This function returns nil if the given protocol is unknown.
--- @class function
--- @name nixio.getprotobynumber
--- @param proto                protocol number to lookup
--- @return                     Table containing the following fields: <ul>
--- <li>name = Protocol Name</li>
--- <li>proto = Protocol Number</li>
--- <li>aliases = Table of alias names</li>
--- </ul>
-
---- Get all or a specific proto entry.
--- @class function
--- @name nixio.getproto
--- @param proto                protocol number or name to lookup (optional)
--- @return                     Table (or if no parameter is given, a table of tables)
---                  containing the following fields: <ul>
--- <li>name = Protocol Name</li>
--- <li>proto = Protocol Number</li>
--- <li>aliases = Table of alias names</li>
--- </ul>
-
---- Create a new socket and bind it to a network address.
--- This function is a shortcut for calling nixio.socket and then bind()
--- on the socket object.
--- @usage This functions calls getaddrinfo(), socket(),
--- setsockopt() and bind() but NOT listen().
--- @usage The <em>reuseaddr</em>-option is automatically set before binding.
--- @class function
--- @name nixio.bind
--- @param host Hostname or IP-Address (optional, default: all addresses)
--- @param port Port or service description
--- @param family Address family [<strong>"any"</strong>, "inet", "inet6"]
--- @param socktype Socket Type [<strong>"stream"</strong>, "dgram"]
--- @return     Socket Object
-
---- Create a new socket and connect to a network address.
--- This function is a shortcut for calling nixio.socket and then connect()
--- on the socket object.
--- @usage This functions calls getaddrinfo(), socket() and connect().
--- @class function
--- @name nixio.connect
--- @param host Hostname or IP-Address (optional, default: localhost)
--- @param port Port or service description
--- @param family Address family [<strong>"any"</strong>, "inet", "inet6"]
--- @param socktype Socket Type [<strong>"stream"</strong>, "dgram"]
--- @return     Socket Object
-
---- Open a file.
--- @class function
--- @name nixio.open
--- @usage Although this function also supports the traditional fopen() 
--- file flags it does not create a file stream but uses the open() syscall.
--- @param path Filesystem path to open
--- @param flags        Flag string or number (see open_flags).
--- [<strong>"r"</strong>, "r+", "w", "w+", "a", "a+"]
--- @param  mode        File mode for newly created files (see chmod, umask).
--- @see        nixio.umask
--- @see nixio.open_flags
--- @return     File Object
-
---- Generate flags for a call to open().
--- @class function
--- @name nixio.open_flags
--- @usage This function cannot fail and will never return nil.
--- @usage The "nonblock" and "ndelay" flags are aliases.
--- @usage The "nonblock", "ndelay" and "sync" flags are no-ops on Windows.
--- @param flag1 First Flag ["append", "creat", "excl", "nonblock", "ndelay",
--- "sync", "trunc", "rdonly", "wronly", "rdwr"]
--- @param ...  More Flags [-"-]
--- @return flag to be used as second parameter to open
-
---- Duplicate a file descriptor.
--- @class function
--- @name nixio.dup
--- @usage This funcation calls dup2() if <em>newfd</em> is set, otherwise dup().
--- @param oldfd        Old descriptor [File Object, Socket Object (POSIX only)]
--- @param newfd New descriptor to serve as copy (optional)
--- @return     File Object of new descriptor
-
---- Create a pipe.
--- @class function
--- @name nixio.pipe
--- @return     File Object of the read end
--- @return     File Object of the write end
-
---- Get the last system error code.
--- @class function
--- @name nixio.errno
--- @return     Error code
-
---- Get the error message for the corresponding error code.
--- @class function
--- @name nixio.strerror
--- @param errno System error code
--- @return     Error message
-
---- Sleep for a specified amount of time.
--- @class function
--- @usage Not all systems support nanosecond precision but you can expect
--- to have at least maillisecond precision.
--- @usage This function is not signal-protected and may fail with EINTR.
--- @param seconds Seconds to wait (optional)
--- @param nanoseconds Nanoseconds to wait (optional)
--- @name nixio.nanosleep
--- @return true
-
---- Generate events-bitfield or parse revents-bitfield for poll.
--- @class function
--- @name nixio.poll_flags
--- @param      mode1   revents-Flag bitfield returned from poll to parse OR 
--- ["in", "out", "err", "pri" (POSIX), "hup" (POSIX), "nval" (POSIX)]
--- @param      ...             More mode strings for generating the flag [-"-]
--- @see nixio.poll
--- @return table with boolean fields reflecting the mode parameter 
--- <strong>OR</strong> bitfield to use for the events-Flag field
-
---- Wait for some event on a file descriptor.
--- poll() sets the revents-field of the tables provided by fds to a bitfield
--- indicating the events that occurred.
--- @class function
--- @usage This function works in-place on the provided table and only
--- writes the revents field, you can use other fields on your demand.
--- @usage All metamethods on the tables provided as fds are ignored.
--- @usage The revents-fields are not reset when the call times out.
--- You have to check the first return value to be 0 to handle this case.
--- @usage If you want to wait on a TLS-Socket you have to use the underlying
--- socket instead.
--- @usage On Windows poll is emulated through select(), can only be used
--- on socket descriptors and cannot take more than 64 descriptors per call.
--- @usage This function is not signal-protected and may fail with EINTR.
--- @param fds  Table containing one or more tables containing <ul>
--- <li> fd = I/O Descriptor [Socket Object, File Object (POSIX)]</li>
--- <li> events = events to wait for (bitfield generated with poll_flags)</li>
--- </ul>
--- @param timeout Timeout in milliseconds
--- @name nixio.poll
--- @see nixio.poll_flags
--- @return number of ready IO descriptors
--- @return the fds-table with revents-fields set
-
---- (POSIX) Clone the current process.
--- @class function
--- @name nixio.fork
--- @return     the child process id for the parent process, 0 for the child process
-
---- (POSIX) Send a signal to one or more processes.
--- @class function
--- @name nixio.kill
--- @param      target  Target process of process group.
--- @param      signal  Signal to send
--- @return     true
-
---- (POSIX) Get the parent process id of the current process.
--- @class function
--- @name nixio.getppid
--- @return     parent process id
-
---- (POSIX) Get the user id of the current process.
--- @class function
--- @name nixio.getuid
--- @return     process user id
-
---- (POSIX) Get the group id of the current process.
--- @class function
--- @name nixio.getgid
--- @return     process group id
-
---- (POSIX) Set the group id of the current process.
--- @class function
--- @name nixio.setgid
--- @param gid New Group ID
--- @return     true
-
---- (POSIX) Set the user id of the current process.
--- @class function
--- @name nixio.setuid
--- @param gid New User ID
--- @return     true
-
---- (POSIX) Change priority of current process.
--- @class function
--- @name nixio.nice
--- @param nice Nice Value
--- @return     true
-
---- (POSIX) Create a new session and set the process group ID.
--- @class function
--- @name nixio.setsid
--- @return     session id
-
---- (POSIX) Wait for a process to change state.
--- @class function
--- @name nixio.waitpid
--- @usage      If the "nohang" is given this function becomes non-blocking.
--- @param pid Process ID       (optional, default: any childprocess)
--- @param flag1 Flag   (optional) ["nohang", "untraced", "continued"]
--- @param ...  More Flags [-"-]
--- @return     process id of child or 0 if no child has changed state
--- @return  ["exited", "signaled", "stopped"]
--- @return  [exit code, terminate signal, stop signal]
-
---- (POSIX) Get process times.
--- @class function
--- @name nixio.times
--- @return Table containing: <ul>
--- <li>utime = user time</li>
--- <li>utime = system time</li>
--- <li>cutime = children user time</li>
--- <li>cstime = children system time</li>
--- </ul>
-
---- (POSIX) Get information about current system and kernel.
--- @class function
--- @name nixio.uname
--- @return Table containing: <ul>
--- <li>sysname = operating system</li>
--- <li>nodename = network name (usually hostname)</li>
--- <li>release = OS release</li>
--- <li>version = OS version</li>
--- <li>machine = hardware identifier</li>
--- </ul>
-
---- Change the working directory.
--- @class function
--- @name nixio.chdir
--- @param      path New working directory
--- @return true
-
---- Ignore or use set the default handler for a signal.
--- @class function
--- @name nixio.signal
--- @param signal       Signal
--- @param handler      ["ign", "dfl"]
--- @return true
-
---- Get the ID of the current process.
--- @class function
--- @name nixio.getpid
--- @return process id
-
---- Get the current working directory.
--- @class function
--- @name nixio.getcwd
--- @return workign directory
-
---- Get the current environment table or a specific environment variable.
--- @class function
--- @name nixio.getenv
--- @param variable Variable (optional)
--- @return environment table or single environment variable
-
---- Set or unset a environment variable.
--- @class function
--- @name nixio.setenv
--- @usage The environment variable will be unset if value is omitted.
--- @param variable     Variable
--- @param value                Value (optional)
--- @return true
-
---- Execute a file to replace the current process.
--- @class function
--- @name nixio.exec
--- @usage The name of the executable is automatically passed as argv[0]
--- @usage This function does not return on success.
--- @param executable Executable
--- @param ... Parameters
-
---- Invoke the shell and execute a file to replace the current process.
--- @class function
--- @name nixio.execp
--- @usage The name of the executable is automatically passed as argv[0]
--- @usage This function does not return on success.
--- @param executable Executable
--- @param ... Parameters
-
---- Execute a file with a custom environment to replace the current process.
--- @class function
--- @name nixio.exece
--- @usage The name of the executable is automatically passed as argv[0]
--- @usage This function does not return on success.
--- @param executable Executable
--- @param arguments Argument Table
--- @param environment Environment Table (optional)
-
---- Sets the file mode creation mask.
--- @class function
--- @name nixio.umask
--- @param mask New creation mask (see chmod for format specifications)
--- @return the old umask as decimal mode number
--- @return the old umask as mode string
-
---- (Linux) Get overall system statistics.
--- @class function
--- @name nixio.sysinfo
--- @return Table containing: <ul>
--- <li>uptime = system uptime in seconds</li>
--- <li>loads = {loadavg1, loadavg5, loadavg15}</li>
--- <li>totalram = total RAM</li>
--- <li>freeram = free RAM</li>
--- <li>sharedram = shared RAM</li>
--- <li>bufferram = buffered RAM</li>
--- <li>totalswap = total SWAP</li>
--- <li>freeswap = free SWAP</li>
--- <li>procs = number of running processes</li>
--- </ul>
-
---- Create a new socket.
--- @class function
--- @name nixio.socket
--- @param domain       Domain ["inet", "inet6", "unix"]
--- @param type         Type   ["stream", "dgram", "raw"]
--- @return     Socket Object
-
---- (POSIX) Send data from a file to a socket in kernel-space.
--- @class function
--- @name nixio.sendfile
--- @param socket Socket Object
--- @param file  File Object
--- @param length Amount of data to send (in Bytes).
--- @return bytes sent
-
---- (Linux) Send data from / to a pipe in kernel-space.
--- @class function
--- @name nixio.splice
--- @param fdin Input I/O descriptor 
--- @param fdout        Output I/O descriptor
--- @param length Amount of data to send (in Bytes).
--- @param flags (optional, bitfield generated by splice_flags)
--- @see nixio.splice_flags
--- @return bytes sent
-
---- (Linux) Generate a flag bitfield for a call to splice.
--- @class function
--- @name nixio.splice_flags
--- @param flag1        First Flag      ["move", "nonblock", "more"]
--- @param ...  More flags      [-"-]
--- @see nixio.splice
--- @return Flag bitfield
-
---- (POSIX) Open a connection to the system logger.
--- @class function
--- @name nixio.openlog
--- @param ident        Identifier
--- @param flag1        Flag 1 ["cons", "nowait", "pid", "perror", "ndelay", "odelay"]
--- @param ...  More flags [-"-]
-
---- (POSIX) Close the connection to the system logger.
--- @class function
--- @name nixio.closelog
-
---- (POSIX) Write a message to the system logger.
--- @class function
--- @name nixio.syslog
--- @param priority Priority ["emerg", "alert", "crit", "err", "warning",
--- "notice", "info", "debug"]
--- @param message
-
---- (POSIX) Set the logmask of the system logger for current process.
--- @class function
--- @name nixio.setlogmask
--- @param priority Priority ["emerg", "alert", "crit", "err", "warning",
--- "notice", "info", "debug"]
-
---- (POSIX) Encrypt a user password.
--- @class function
--- @name nixio.crypt
--- @param key Key
--- @param salt Salt
--- @return password hash
-
---- (POSIX) Get all or a specific user group.
--- @class function
--- @name nixio.getgr
--- @param group Group ID or groupname (optional)
--- @return Table containing: <ul>
--- <li>name = Group Name</li>
--- <li>gid = Group ID</li>
--- <li>passwd = Password</li>
--- <li>mem = {Member #1, Member #2, ...}</li>
--- </ul>
-
---- (POSIX) Get all or a specific user account.
--- @class function
--- @name nixio.getpw
--- @param user User ID or username (optional)
--- @return Table containing: <ul>
--- <li>name = Name</li>
--- <li>uid = ID</li>
--- <li>gid = Group ID</li>
--- <li>passwd = Password</li>
--- <li>dir = Home directory</li>
--- <li>gecos = Information</li>
--- <li>shell = Shell</li>
--- </ul>
-
---- (Linux, Solaris) Get all or a specific shadow password entry.
--- @class function
--- @name nixio.getsp
--- @param user username (optional)
--- @return Table containing: <ul>
--- <li>namp = Name</li>
--- <li>expire = Expiration Date</li>
--- <li>flag = Flags</li>
--- <li>inact = Inactivity Date</li>
--- <li>lstchg = Last change</li>
--- <li>max = Maximum</li>
--- <li>min = Minimum</li>
--- <li>warn = Warning</li>
--- <li>pwdp = Password Hash</li>
--- </ul>
-
---- Create a new TLS context.
--- @class function
--- @name nixio.tls
--- @param mode TLS-Mode ["client", "server"]
--- @return TLSContext Object
diff --git a/package/luci/libs/luci-lib-nixio/nixio-0.3-1.rockspec b/package/luci/libs/luci-lib-nixio/nixio-0.3-1.rockspec
deleted file mode 100644 (file)
index 755cf81..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-package = "nixio"
-version = "0.3-1"
-source = {
-   url = "http://dev.luci.freifunk-halle.net/nixio/nixio-0.3.tar.bz2"
-}
-description = {
-   summary = "System, Networking and I/O library for Lua",
-   detailed = [[
-      Nixio is a multi-platform library offering a wide variety
-      of features such as IPv4, IPv6 and UNIX networking, large file I/O, file
-      system operations, system and process control, POSIX user/group management,
-      basic cryptographical hashing, hmac and TLS support, bit operations and
-      binary conversion.
-   ]],
-   homepage = "http://luci.subsignal.org",
-   license = "Apache 2.0",
-   maintainer = "Steven Barth",
-}
-dependencies = {
-   "lua >= 5.1"
-}
-external_dependencies = {
-   OPENSSL = {
-      header = "openssl/ssl.h",
-   }
-}
-build = {
-   type = "make",
-   build_variables = {
-      NIXIO_LDFLAGS = "-lcrypt -L$(OPENSSL_LIBDIR) -I$(OPENSSL_INCDIR)",
-      LUA_CFLAGS = "$(CFLAGS) -I$(LUA_INCDIR)",
-   },
-   install_variables = {
-      LUA_MODULEDIR = "$(LUADIR)",
-      LUA_LIBRARYDIR = "$(LIBDIR)",
-   },
-}
diff --git a/package/luci/libs/luci-lib-nixio/root/lib/upgrade/luci-add-conffiles.sh b/package/luci/libs/luci-lib-nixio/root/lib/upgrade/luci-add-conffiles.sh
deleted file mode 100644 (file)
index 77399b9..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-add_luci_conffiles()
-{
-       local filelist="$1"
-
-       # save ssl certs
-       if [ -d /etc/nixio ]; then
-               find /etc/nixio -type f >> $filelist
-       fi
-
-       # save uhttpd certs
-       [ -f "/etc/uhttpd.key" ] && echo /etc/uhttpd.key >> $filelist
-       [ -f "/etc/uhttpd.crt" ] && echo /etc/uhttpd.crt >> $filelist
-}
-
-sysupgrade_init_conffiles="$sysupgrade_init_conffiles add_luci_conffiles"
-
diff --git a/package/luci/libs/luci-lib-nixio/root/usr/lib/lua/nixio/fs.lua b/package/luci/libs/luci-lib-nixio/root/usr/lib/lua/nixio/fs.lua
deleted file mode 100644 (file)
index 8883835..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
---[[
-nixio - Linux I/O library for lua
-
-Copyright 2009 Steven Barth <steven@midlink.org>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-]]--
-
-local table = require "table"
-local nixio = require "nixio"
-local type, ipairs, setmetatable = type, ipairs, setmetatable
-require "nixio.util"
-
-
-module ("nixio.fs", function(m) setmetatable(m, {__index = nixio.fs}) end)
-
-
-function readfile(path, limit)
-       local fd, code, msg = nixio.open(path, "r")
-       local data
-       if not fd then
-               return nil, code, msg
-       end
-       
-       data, code, msg = fd:readall(limit)
-       
-       fd:close()
-       return data, code, msg
-end
-
-
-function writefile(path, data)
-       local fd, code, msg, stat = nixio.open(path, "w")
-       if not fd then
-               return nil, code, msg
-       end
-       
-       stat, code, msg = fd:writeall(data)
-       
-       fd:close()
-       return stat, code, msg
-end
-
-function datacopy(src, dest, size)
-       local fdin, code, msg = nixio.open(src, "r")
-       if not fdin then
-               return nil, code, msg
-       end
-       
-       local fdout, code, msg = nixio.open(dest, "w")
-       if not fdout then
-               return nil, code, msg
-       end     
-       
-       local stat, code, msg, sent = fdin:copy(fdout, size)
-       fdin:close()
-       fdout:close()
-
-       return stat, code, msg, sent
-end
-
-function copy(src, dest)
-       local stat, code, msg, res = nixio.fs.lstat(src)
-       if not stat then
-               return nil, code, msg
-       end
-       
-       if stat.type == "dir" then
-               if nixio.fs.stat(dest, type) ~= "dir" then
-                       res, code, msg = nixio.fs.mkdir(dest)
-               else
-                       stat = true
-               end
-       elseif stat.type == "lnk" then
-               res, code, msg = nixio.fs.symlink(nixio.fs.readlink(src), dest)
-       elseif stat.type == "reg" then
-               res, code, msg = datacopy(src, dest)
-       end
-       
-       if not res then
-               return nil, code, msg
-       end
-       
-       nixio.fs.utimes(dest, stat.atime, stat.mtime)
-       
-       if nixio.fs.lchown then
-               nixio.fs.lchown(dest, stat.uid, stat.gid)
-       end
-       
-       if stat.type ~= "lnk" then
-               nixio.fs.chmod(dest, stat.modedec)
-       end
-       
-       return true
-end
-
-function move(src, dest)
-       local stat, code, msg = nixio.fs.rename(src, dest)
-       if not stat and code == nixio.const.EXDEV then
-               stat, code, msg = copy(src, dest)
-               if stat then
-                       stat, code, msg = nixio.fs.unlink(src)
-               end
-       end
-       return stat, code, msg
-end
-
-function mkdirr(dest, mode)
-       if nixio.fs.stat(dest, "type") == "dir" then
-               return true
-       else
-               local stat, code, msg = nixio.fs.mkdir(dest, mode)
-               if not stat and code == nixio.const.ENOENT then
-                       stat, code, msg = mkdirr(nixio.fs.dirname(dest), mode)
-                       if stat then
-                               stat, code, msg = nixio.fs.mkdir(dest, mode)
-                       end
-               end
-               return stat, code, msg
-       end
-end
-
-local function _recurse(cb, src, dest)
-       local type = nixio.fs.lstat(src, "type")
-       if type ~= "dir" then
-               return cb(src, dest)
-       else
-               local stat, se, code, msg, s, c, m = true, nixio.const.sep
-               if dest then
-                       s, c, m = cb(src, dest)
-                       stat, code, msg = stat and s, c or code, m or msg
-               end
-
-               for e in nixio.fs.dir(src) do
-                       if dest then
-                               s, c, m = _recurse(cb, src .. se .. e, dest .. se .. e)
-                       else
-                               s, c, m = _recurse(cb, src .. se .. e)
-                       end
-                       stat, code, msg = stat and s, c or code, m or msg
-               end
-
-               if not dest then                                                        -- Postfix
-                       s, c, m = cb(src)
-                       stat, code, msg = stat and s, c or code, m or msg
-               end
-
-               return stat, code, msg
-       end
-end
-
-function copyr(src, dest)
-       return _recurse(copy, src, dest)
-end
-
-function mover(src, dest)
-       local stat, code, msg = nixio.fs.rename(src, dest)
-       if not stat and code == nixio.const.EXDEV then
-               stat, code, msg = _recurse(copy, src, dest)
-               if stat then
-                       stat, code, msg = _recurse(nixio.fs.remove, src)
-               end
-       end
-       return stat, code, msg
-end
-
-function remover(src)
-       return _recurse(nixio.fs.remove, src)
-end
\ No newline at end of file
diff --git a/package/luci/libs/luci-lib-nixio/root/usr/lib/lua/nixio/util.lua b/package/luci/libs/luci-lib-nixio/root/usr/lib/lua/nixio/util.lua
deleted file mode 100644 (file)
index 63d2f62..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
---[[
-nixio - Linux I/O library for lua
-
-Copyright 2009 Steven Barth <steven@midlink.org>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-]]--
-
-local table = require "table"
-local nixio = require "nixio"
-local getmetatable, assert, pairs, type = getmetatable, assert, pairs, type
-local tostring = tostring
-
-module "nixio.util"
-
-local BUFFERSIZE = nixio.const.buffersize
-local ZIOBLKSIZE = 65536
-local socket = nixio.meta_socket
-local tls_socket = nixio.meta_tls_socket
-local file = nixio.meta_file
-local uname = nixio.uname()
-local ZBUG = uname.sysname == "Linux" and uname.release:sub(1, 3) == "2.4"
-
-function consume(iter, append)
-       local tbl = append or {}
-       if iter then
-               for obj in iter do
-                       tbl[#tbl+1] = obj
-               end
-       end
-       return tbl
-end
-
-local meta = {}
-
-function meta.is_socket(self)
-       return (getmetatable(self) == socket)
-end
-
-function meta.is_tls_socket(self)
-       return (getmetatable(self) == tls_socket)
-end
-
-function meta.is_file(self)
-       return (getmetatable(self) == file)
-end
-
-function meta.readall(self, len)
-       local block, code, msg = self:read(len or BUFFERSIZE)
-
-       if not block then
-               return nil, code, msg, ""
-       elseif #block == 0 then
-               return "", nil, nil, ""
-       end
-
-       local data, total = {block}, #block
-
-       while not len or len > total do
-               block, code, msg = self:read(len and (len - total) or BUFFERSIZE)
-
-               if not block then
-                       return nil, code, msg, table.concat(data)
-               elseif #block == 0 then
-                       break
-               end
-
-               data[#data+1], total = block, total + #block
-       end
-
-       local data = #data > 1 and table.concat(data) or data[1]
-       return data, nil, nil, data
-end
-meta.recvall = meta.readall
-
-function meta.writeall(self, data)
-       data = tostring(data)
-       local sent, code, msg = self:write(data)
-
-       if not sent then
-               return nil, code, msg, 0
-       end
-
-       local total = sent 
-
-       while total < #data do
-               sent, code, msg = self:write(data, total)
-
-               if not sent then
-                       return nil, code, msg, total
-               end
-
-               total = total + sent
-       end
-       
-       return total, nil, nil, total
-end
-meta.sendall = meta.writeall
-
-function meta.linesource(self, limit)
-       limit = limit or BUFFERSIZE
-       local buffer = ""
-       local bpos = 0
-       return function(flush)
-               local line, endp, _
-               
-               if flush then
-                       line = buffer:sub(bpos + 1)
-                       buffer = type(flush) == "string" and flush or ""
-                       bpos = 0
-                       return line
-               end
-
-               while not line do
-                       _, endp, line = buffer:find("(.-)\r?\n", bpos + 1)
-                       if line then
-                               bpos = endp
-                               return line
-                       elseif #buffer < limit + bpos then
-                               local newblock, code, msg = self:read(limit + bpos - #buffer)
-                               if not newblock then
-                                       return nil, code, msg
-                               elseif #newblock == 0 then
-                                       return nil
-                               end
-                               buffer = buffer:sub(bpos + 1) .. newblock
-                               bpos = 0
-                       else
-                               return nil, 0
-                       end
-               end
-       end
-end
-
-function meta.blocksource(self, bs, limit)
-       bs = bs or BUFFERSIZE
-       return function()
-               local toread = bs
-               if limit then
-                       if limit < 1 then
-                               return nil
-                       elseif limit < toread then
-                               toread = limit
-                       end
-               end
-
-               local block, code, msg = self:read(toread)
-
-               if not block then
-                       return nil, code, msg
-               elseif #block == 0 then
-                       return nil
-               else
-                       if limit then
-                               limit = limit - #block
-                       end
-
-                       return block
-               end
-       end
-end
-
-function meta.sink(self, close)
-       return function(chunk, src_err)
-               if not chunk and not src_err and close then
-                       if self.shutdown then
-                               self:shutdown()
-                       end
-                       self:close()
-               elseif chunk and #chunk > 0 then
-                       return self:writeall(chunk)
-               end
-               return true
-       end
-end
-
-function meta.copy(self, fdout, size)
-       local source = self:blocksource(nil, size)
-       local sink = fdout:sink()
-       local sent, chunk, code, msg = 0
-       
-       repeat
-               chunk, code, msg = source()
-               sink(chunk, code, msg)
-               sent = chunk and (sent + #chunk) or sent
-       until not chunk
-       return not code and sent or nil, code, msg, sent
-end
-
-function meta.copyz(self, fd, size)
-       local sent, lsent, code, msg = 0
-       local splicable
-
-       if not ZBUG and self:is_file() then
-               local ftype = self:stat("type")
-               if nixio.sendfile and fd:is_socket() and ftype == "reg" then
-                       repeat
-                               lsent, code, msg = nixio.sendfile(fd, self, size or ZIOBLKSIZE)
-                               if lsent then
-                                       sent = sent + lsent
-                                       size = size and (size - lsent)
-                               end
-                       until (not lsent or lsent == 0 or (size and size == 0))
-                       if lsent or (not lsent and sent == 0 and
-                        code ~= nixio.const.ENOSYS and code ~= nixio.const.EINVAL) then
-                               return lsent and sent, code, msg, sent
-                       end
-               elseif nixio.splice and not fd:is_tls_socket() and ftype == "fifo" then 
-                       splicable = true
-               end
-       end
-
-       if nixio.splice and fd:is_file() and not splicable then
-               splicable = not self:is_tls_socket() and fd:stat("type") == "fifo"
-       end
-
-       if splicable then
-               repeat
-                       lsent, code, msg = nixio.splice(self, fd, size or ZIOBLKSIZE)
-                       if lsent then
-                               sent = sent + lsent
-                               size = size and (size - lsent)
-                       end
-               until (not lsent or lsent == 0 or (size and size == 0))
-               if lsent or (not lsent and sent == 0 and
-                code ~= nixio.const.ENOSYS and code ~= nixio.const.EINVAL) then
-                       return lsent and sent, code, msg, sent
-               end             
-       end
-
-       return self:copy(fd, size)
-end
-
-if tls_socket then
-       function tls_socket.close(self)
-               return self.socket:close()
-       end
-
-       function tls_socket.getsockname(self)
-               return self.socket:getsockname()
-       end
-
-       function tls_socket.getpeername(self)
-               return self.socket:getpeername()
-       end
-
-       function tls_socket.getsockopt(self, ...)
-               return self.socket:getsockopt(...)
-       end
-       tls_socket.getopt = tls_socket.getsockopt
-
-       function tls_socket.setsockopt(self, ...)
-               return self.socket:setsockopt(...)
-       end
-       tls_socket.setopt = tls_socket.setsockopt
-end
-
-for k, v in pairs(meta) do
-       file[k] = v
-       socket[k] = v
-       if tls_socket then
-               tls_socket[k] = v
-       end
-end
diff --git a/package/luci/libs/luci-lib-nixio/src/Makefile b/package/luci/libs/luci-lib-nixio/src/Makefile
deleted file mode 100644 (file)
index a7e9a77..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-OS            = Linux
-AXTLS_VERSION = 1.2.1
-AXTLS_DIR     = axTLS
-AXTLS_FILE    = $(AXTLS_DIR)-$(AXTLS_VERSION).tar.gz
-#NIXIO_TLS    ?= openssl
-NIXIO_SHADOW ?= $(shell echo 'int main(void){ return !getspnam("root"); }' | $(CC) $(CFLAGS) -include shadow.h -xc -o/dev/null - 2>/dev/null && echo yes)
-NIXIO_SO      = nixio.so
-NIXIO_LDFLAGS = -llua -lm -ldl
-CFLAGS       += -std=gnu99
-
-ifeq (,$(findstring Darwin,$(OS)))
-       NIXIO_LDFLAGS += -lcrypt -shared
-else
-        NIXIO_LDFLAGS += -bundle -undefined dynamic_lookup
-       EXTRA_CFLAGS += -D__DARWIN__
-endif
-
-NIXIO_OBJ = nixio.o socket.o sockopt.o bind.o address.o \
-           protoent.o poll.o io.o file.o splice.o process.o \
-           syslog.o bit.o binary.o fs.o user.o \
-           $(if $(NIXIO_TLS),tls-crypto.o tls-context.o tls-socket.o,)
-
-ifeq ($(NIXIO_TLS),axtls)
-       TLS_CFLAGS = -IaxTLS/ssl -IaxTLS/crypto -IaxTLS/config -include axtls-compat.h
-       TLS_DEPENDS = axtls-compat.o
-       NIXIO_OBJ += axtls-compat.o libaxtls.a
-endif
-
-ifeq ($(NIXIO_TLS),openssl)
-       NIXIO_LDFLAGS += -lssl -lcrypto
-endif
-
-ifeq ($(NIXIO_TLS),cyassl)
-       NIXIO_LDFLAGS += -lcyassl
-       TLS_DEPENDS = cyassl-compat.o
-       TLS_CFLAGS = -include cyassl-compat.h
-       NIXIO_OBJ += cyassl-compat.o
-endif
-
-ifeq ($(NIXIO_TLS),)
-       NIXIO_CFLAGS += -DNO_TLS
-endif
-
-ifneq ($(NIXIO_SHADOW),yes)
-       NIXIO_CFLAGS += -DNO_SHADOW
-endif
-
-
-ifeq ($(OS),SunOS)
-       NIXIO_LDFLAGS += -lsocket -lnsl -lsendfile
-endif
-
-ifneq (,$(findstring MINGW,$(OS))$(findstring mingw,$(OS))$(findstring Windows,$(OS)))
-       NIXIO_CROSS_CC:=$(shell which i586-mingw32msvc-cc)
-ifneq (,$(NIXIO_CROSS_CC))
-       CC:=$(NIXIO_CROSS_CC)
-endif
-       NIXIO_OBJ += mingw-compat.o
-       NIXIO_LDFLAGS_POST:=-llua -lssl -lcrypto -lws2_32 -lgdi32
-       FPIC:=
-       EXTRA_CFLAGS += -D_WIN32_WINNT=0x0501
-       LUA_CFLAGS:=
-       NIXIO_SO:=nixio.dll
-       NIXIO_LDFLAGS:=
-endif
-
-
-%.o: %.c
-       $(CC) $(CPPFLAGS) $(CFLAGS) $(NIXIO_CFLAGS) $(LUA_CFLAGS) $(FPIC) -c -o $@ $< 
-
-ifneq ($(NIXIO_TLS),)
-tls-crypto.o: $(TLS_DEPENDS) tls-crypto.c
-       $(CC) $(CPPFLAGS) $(CFLAGS) $(NIXIO_CFLAGS) $(LUA_CFLAGS) $(FPIC) $(TLS_CFLAGS) -c -o $@ tls-crypto.c
-
-tls-context.o: $(TLS_DEPENDS) tls-context.c
-       $(CC) $(CPPFLAGS) $(CFLAGS) $(NIXIO_CFLAGS) $(LUA_CFLAGS) $(FPIC) $(TLS_CFLAGS) -c -o $@ tls-context.c
-       
-tls-socket.o: $(TLS_DEPENDS) tls-socket.c
-       $(CC) $(CPPFLAGS) $(CFLAGS) $(NIXIO_CFLAGS) $(LUA_CFLAGS) $(FPIC) $(TLS_CFLAGS) -c -o $@ tls-socket.c
-       
-axtls-compat.o: libaxtls.a axtls-compat.c
-       $(CC) $(CPPFLAGS) $(CFLAGS) $(NIXIO_CFLAGS) $(LUA_CFLAGS) $(FPIC) $(TLS_CFLAGS) -c -o $@ axtls-compat.c
-       mkdir -p dist
-       cp -pR axtls-root/* dist/
-endif  
-
-compile: $(NIXIO_OBJ)
-       $(CC) $(LDFLAGS) $(SHLIB_FLAGS) -o $(NIXIO_SO) $(NIXIO_OBJ) $(NIXIO_LDFLAGS) $(NIXIO_LDFLAGS_POST)
-       mkdir -p dist/usr/lib/lua
-       cp $(NIXIO_SO) dist/usr/lib/lua/$(NIXIO_SO)
-
-$(AXTLS_DIR)/.prepared:
-       #rm -rf $(AXTLS_DIR)
-       #tar xvfz $(AXTLS_FILE)
-       cp axtls-config/.config axtls-config/config.h $(AXTLS_DIR)/config
-       touch $@
-
-libaxtls.a: $(AXTLS_DIR)/.prepared
-       $(MAKE) -C $(AXTLS_DIR) CC="$(CC)" CFLAGS="$(CFLAGS) $(EXTRA_CFLAGS) $(FPIC) -Wall -pedantic -I../config -I../ssl -I../crypto" LDFLAGS="$(LDFLAGS)" OS="$(OS)" clean all
-       cp -p $(AXTLS_DIR)/_stage/libaxtls.a src
-       # *************************************************************************
-       #
-       #
-       #
-       # *** WARNING ***
-       # The use of the axTLS cryptographical provider is discouraged!
-       # Please switch to either CyaSSL or OpenSSL.
-       # Support for axTLS might be removed in the near future.
-       #
-       #
-       #
-       #**************************************************************************
-
-clean:
-       rm -f *.o *.so *.a *.dll
-       rm -f $(AXTLS_DIR)/.prepared
-
-install: compile
-       mkdir -p $(DESTDIR)
-       cp -pR dist/* $(DESTDIR)/
diff --git a/package/luci/libs/luci-lib-nixio/src/address.c b/package/luci/libs/luci-lib-nixio/src/address.c
deleted file mode 100644 (file)
index 8ab4fa8..0000000
+++ /dev/null
@@ -1,567 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <sys/types.h>
-#include <sys/param.h>
-#include <errno.h>
-#include <string.h>
-
-#ifdef __linux__
-
-#include <signal.h>
-#include <setjmp.h>
-#include <unistd.h>
-
-/* setjmp() / longjmp() stuff */
-static jmp_buf nixio__jump_alarm;
-static void nixio__handle_alarm(int sig) { longjmp(nixio__jump_alarm, 1); }
-
-#include <linux/netdevice.h>
-
-/* struct net_device_stats is buggy on amd64, redefine it */
-struct nixio__nds {
-     uint32_t rx_packets;
-     uint32_t tx_packets;
-     uint32_t rx_bytes;
-     uint32_t tx_bytes;
-     uint32_t rx_errors;
-     uint32_t tx_errors;
-     uint32_t rx_dropped;
-     uint32_t tx_dropped;
-     uint32_t multicast;
-     uint32_t collisions;
-
-     uint32_t rx_length_errors;
-     uint32_t rx_over_errors;
-     uint32_t rx_crc_errors;
-     uint32_t rx_frame_errors;
-     uint32_t rx_fifo_errors;
-     uint32_t rx_missed_errors;
-
-     uint32_t tx_aborted_errors;
-     uint32_t tx_carrier_errors;
-     uint32_t tx_fifo_errors;
-     uint32_t tx_heartbeat_errors;
-     uint32_t tx_window_errors;
-
-     uint32_t rx_compressed;
-     uint32_t tx_compressed;
-};
-#endif
-
-#ifndef NI_MAXHOST
-#define NI_MAXHOST 1025
-#endif
-
-/**
- * address pushing helper
- */
-int nixio__addr_parse(nixio_addr *addr, struct sockaddr *saddr) {
-       void *baddr;
-
-       addr->family = saddr->sa_family;
-       if (saddr->sa_family == AF_INET) {
-               struct sockaddr_in *inetaddr = (struct sockaddr_in*)saddr;
-               addr->port = ntohs(inetaddr->sin_port);
-               baddr = &inetaddr->sin_addr;
-       } else if (saddr->sa_family == AF_INET6) {
-               struct sockaddr_in6 *inet6addr = (struct sockaddr_in6*)saddr;
-               addr->port = ntohs(inet6addr->sin6_port);
-               baddr = &inet6addr->sin6_addr;
-#ifdef AF_PACKET
-       } else if (saddr->sa_family == AF_PACKET) {
-               struct sockaddr_ll *etheradddr = (struct sockaddr_ll*)saddr;
-               addr->prefix = etheradddr->sll_hatype;
-               addr->port = etheradddr->sll_ifindex;
-               char *c = addr->host;
-               for (size_t i = 0; i < etheradddr->sll_halen; i++) {
-                       *c++ = nixio__bin2hex[(etheradddr->sll_addr[i] & 0xf0) >> 4];
-                       *c++ = nixio__bin2hex[(etheradddr->sll_addr[i] & 0x0f)];
-                       *c++ = ':';
-               }
-               *(c-1) = 0;
-               return 0;
-#endif
-       } else {
-               errno = EAFNOSUPPORT;
-               return -1;
-       }
-
-       if (!inet_ntop(saddr->sa_family, baddr, addr->host, sizeof(addr->host))) {
-               return -1;
-       }
-
-       return 0;
-}
-
-/**
- * address pulling helper
- */
-int nixio__addr_write(nixio_addr *addr, struct sockaddr *saddr) {
-       if (addr->family == AF_UNSPEC) {
-               if (strchr(addr->host, ':')) {
-                       addr->family = AF_INET6;
-               } else {
-                       addr->family = AF_INET;
-               }
-       }
-       if (addr->family == AF_INET) {
-               struct sockaddr_in *inetaddr = (struct sockaddr_in *)saddr;
-               memset(inetaddr, 0, sizeof(struct sockaddr_in));
-
-               if (inet_pton(AF_INET, addr->host, &inetaddr->sin_addr) < 1) {
-                       return -1;
-               }
-
-               inetaddr->sin_family = AF_INET;
-               inetaddr->sin_port = htons((uint16_t)addr->port);
-               return 0;
-       } else if (addr->family == AF_INET6) {
-               struct sockaddr_in6 *inet6addr = (struct sockaddr_in6 *)saddr;
-               memset(inet6addr, 0, sizeof(struct sockaddr_in6));
-
-               if (inet_pton(AF_INET6, addr->host, &inet6addr->sin6_addr) < 1) {
-                       return -1;
-               }
-
-               inet6addr->sin6_family = AF_INET6;
-               inet6addr->sin6_port = htons((uint16_t)addr->port);
-               return 0;
-       } else {
-               errno = EAFNOSUPPORT;
-               return -1;
-       }
-}
-
-/**
- * netmask to prefix helper
- */
-int nixio__addr_prefix(struct sockaddr *saddr) {
-       int prefix = 0;
-       size_t len;
-       uint8_t *addr;
-
-       if (saddr->sa_family == AF_INET) {
-               addr = (uint8_t*)(&((struct sockaddr_in*)saddr)->sin_addr);
-               len = 4;
-       } else if (saddr->sa_family == AF_INET6) {
-               addr = (uint8_t*)(&((struct sockaddr_in6*)saddr)->sin6_addr);
-               len = 16;
-       } else {
-               errno = EAFNOSUPPORT;
-               return -1;
-       }
-
-       for (size_t i = 0; i < len; i++) {
-               if (addr[i] == 0xff) {
-                       prefix += 8;
-               } else if (addr[i] == 0x00) {
-                       break;
-               } else {
-                       for (uint8_t c = addr[i]; c; c <<= 1) {
-                               prefix++;
-                       }
-               }
-       }
-
-       return prefix;
-}
-
-/**
- * getaddrinfo(host, family, port)
- */
-static int nixio_getaddrinfo(lua_State *L) {
-       const char *host = NULL;
-       if (!lua_isnoneornil(L, 1)) {
-               host = luaL_checklstring(L, 1, NULL);
-       }
-       const char *family = luaL_optlstring(L, 2, "any", NULL);
-       const char *port = lua_tolstring(L, 3, NULL);
-
-       struct addrinfo hints, *result, *rp;
-       memset(&hints, 0, sizeof(hints));
-
-       if (!strcmp(family, "any")) {
-               hints.ai_family = AF_UNSPEC;
-       } else if (!strcmp(family, "inet")) {
-               hints.ai_family = AF_INET;
-       } else if (!strcmp(family, "inet6")) {
-               hints.ai_family = AF_INET6;
-       } else {
-               return luaL_argerror(L, 2, "supported values: any, inet, inet6");
-       }
-
-       hints.ai_socktype = 0;
-       hints.ai_protocol = 0;
-
-       int aistat = getaddrinfo(host, port, &hints, &result);
-       if (aistat) {
-               lua_pushnil(L);
-               lua_pushinteger(L, aistat);
-               lua_pushstring(L, gai_strerror(aistat));
-               return 3;
-       }
-
-       /* create socket object */
-       lua_newtable(L);
-       int i = 1;
-
-       for (rp = result; rp != NULL; rp = rp->ai_next) {
-               /* avoid duplicate results */
-#ifndef __WINNT__
-               if (!port && rp->ai_socktype != SOCK_STREAM) {
-                       continue;
-               }
-#endif
-
-               if (rp->ai_family == AF_INET || rp->ai_family == AF_INET6) {
-                       lua_createtable(L, 0, port ? 4 : 2);
-                       if (rp->ai_family == AF_INET) {
-                               lua_pushliteral(L, "inet");
-                       } else if (rp->ai_family == AF_INET6) {
-                               lua_pushliteral(L, "inet6");
-                       }
-                       lua_setfield(L, -2, "family");
-
-                       if (port) {
-                               switch (rp->ai_socktype) {
-                                       case SOCK_STREAM:
-                                               lua_pushliteral(L, "stream");
-                                               break;
-                                       case SOCK_DGRAM:
-                                               lua_pushliteral(L, "dgram");
-                                               break;
-                                       case SOCK_RAW:
-                                               lua_pushliteral(L, "raw");
-                                               break;
-                                       default:
-                                               lua_pushnil(L);
-                                               break;
-                               }
-                               lua_setfield(L, -2, "socktype");
-                       }
-
-                       nixio_addr addr;
-                       if (nixio__addr_parse(&addr, rp->ai_addr)) {
-                               freeaddrinfo(result);
-                               return nixio__perror_s(L);
-                       }
-
-                       if (port) {
-                               lua_pushinteger(L, addr.port);
-                               lua_setfield(L, -2, "port");
-                       }
-
-                       lua_pushstring(L, addr.host);
-                       lua_setfield(L, -2, "address");
-                       lua_rawseti(L, -2, i++);
-               }
-       }
-
-       freeaddrinfo(result);
-
-       return 1;
-}
-
-/**
- * getnameinfo(address, family[, timeout])
- */
-static int nixio_getnameinfo(lua_State *L) {
-       const char *ip = luaL_checkstring(L, 1);
-       const char *family = luaL_optstring(L, 2, NULL);
-
-#ifdef __linux__
-       struct sigaction sa_new, sa_old;
-       int timeout = luaL_optnumber(L, 3, 0);
-       if (timeout > 0 && timeout < 1000)
-       {
-               sa_new.sa_handler = nixio__handle_alarm;
-               sa_new.sa_flags   = 0;
-               sigemptyset(&sa_new.sa_mask);
-               sigaction(SIGALRM, &sa_new, &sa_old);
-
-               /* user timeout exceeded */
-               if (setjmp(nixio__jump_alarm))
-               {
-                       sigaction(SIGALRM, &sa_old, NULL);
-
-                       lua_pushnil(L);
-                       lua_pushinteger(L, EAI_AGAIN);
-                       lua_pushstring(L, gai_strerror(EAI_AGAIN));
-
-                       return 3;
-               }
-
-               ualarm(timeout * 1000, 0);
-       }
-#endif
-
-       char host[NI_MAXHOST];
-
-       struct sockaddr_storage saddr;
-       nixio_addr addr;
-       memset(&addr, 0, sizeof(addr));
-       strncpy(addr.host, ip, sizeof(addr.host) - 1);
-
-       if (!family) {
-               addr.family = AF_UNSPEC;
-       } else if (!strcmp(family, "inet")) {
-               addr.family = AF_INET;
-       } else if (!strcmp(family, "inet6")) {
-               addr.family = AF_INET6;
-       } else {
-               return luaL_argerror(L, 2, "supported values: inet, inet6");
-       }
-
-       nixio__addr_write(&addr, (struct sockaddr *)&saddr);
-
-       int res = getnameinfo((struct sockaddr *)&saddr,
-        (saddr.ss_family == AF_INET)
-         ? sizeof(struct sockaddr_in) : sizeof(struct sockaddr_in6),
-        host, sizeof(host), NULL, 0, NI_NAMEREQD);
-
-#ifdef __linux__
-       if (timeout > 0 && timeout < 1000)
-       {
-               ualarm(0, 0);
-               sigaction(SIGALRM, &sa_old, NULL);
-       }
-#endif
-
-       if (res) {
-               lua_pushnil(L);
-               lua_pushinteger(L, res);
-               lua_pushstring(L, gai_strerror(res));
-               return 3;
-       } else {
-               lua_pushstring(L, host);
-               return 1;
-       }
-}
-
-/**
- * getsockname()
- */
-static int nixio_sock_getsockname(lua_State *L) {
-       int sockfd = nixio__checksockfd(L);
-       struct sockaddr_storage saddr;
-       socklen_t addrlen = sizeof(saddr);
-       nixio_addr addr;
-
-       if (getsockname(sockfd, (struct sockaddr*)&saddr, &addrlen) ||
-        nixio__addr_parse(&addr, (struct sockaddr*)&saddr)) {
-               return nixio__perror_s(L);
-       }
-
-       lua_pushstring(L, addr.host);
-       lua_pushinteger(L, addr.port);
-       return 2;
-}
-
-/**
- * getpeername()
- */
-static int nixio_sock_getpeername(lua_State *L) {
-       int sockfd = nixio__checksockfd(L);
-       struct sockaddr_storage saddr;
-       socklen_t addrlen = sizeof(saddr);
-       nixio_addr addr;
-
-       if (getpeername(sockfd, (struct sockaddr*)&saddr, &addrlen) ||
-        nixio__addr_parse(&addr, (struct sockaddr*)&saddr)) {
-               return nixio__perror_s(L);
-       }
-
-       lua_pushstring(L, addr.host);
-       lua_pushinteger(L, addr.port);
-       return 2;
-}
-
-#if defined(__linux__) || defined(BSD)
-#ifdef BSD
-#include <net/if.h>
-#endif
-#include <ifaddrs.h>
-
-static int nixio_getifaddrs(lua_State *L) {
-       nixio_addr addr;
-       struct ifaddrs *ifaddr, *c;
-       if (getifaddrs(&ifaddr) == -1) {
-               return nixio__perror(L);
-       }
-
-       lua_newtable(L);
-       unsigned int i = 1;
-
-       for (c = ifaddr; c; c = c->ifa_next) {
-               lua_newtable(L);
-
-               lua_pushstring(L, c->ifa_name);
-               lua_setfield(L, -2, "name");
-
-               lua_createtable(L, 0, 7);
-                       lua_pushboolean(L, c->ifa_flags & IFF_UP);
-                       lua_setfield(L, -2, "up");
-
-                       lua_pushboolean(L, c->ifa_flags & IFF_BROADCAST);
-                       lua_setfield(L, -2, "broadcast");
-
-                       lua_pushboolean(L, c->ifa_flags & IFF_LOOPBACK);
-                       lua_setfield(L, -2, "loopback");
-
-                       lua_pushboolean(L, c->ifa_flags & IFF_POINTOPOINT);
-                       lua_setfield(L, -2, "pointtopoint");
-
-                       lua_pushboolean(L, c->ifa_flags & IFF_NOARP);
-                       lua_setfield(L, -2, "noarp");
-
-                       lua_pushboolean(L, c->ifa_flags & IFF_PROMISC);
-                       lua_setfield(L, -2, "promisc");
-
-                       lua_pushboolean(L, c->ifa_flags & IFF_MULTICAST);
-                       lua_setfield(L, -2, "multicast");
-               lua_setfield(L, -2, "flags");
-
-               if (c->ifa_addr) {
-                       if (!nixio__addr_parse(&addr, c->ifa_addr)) {
-                               lua_pushstring(L, addr.host);
-                               lua_setfield(L, -2, "addr");
-                       }
-
-                       if (c->ifa_addr->sa_family == AF_INET) {
-                               lua_pushliteral(L, "inet");
-                       } else if (c->ifa_addr->sa_family == AF_INET6) {
-                               lua_pushliteral(L, "inet6");
-#ifdef AF_PACKET
-                       } else if (c->ifa_addr->sa_family == AF_PACKET) {
-                               lua_pushliteral(L, "packet");
-#endif
-                       } else {
-                               lua_pushliteral(L, "unknown");
-                       }
-                       lua_setfield(L, -2, "family");
-
-#ifdef __linux__
-                       if (c->ifa_addr->sa_family == AF_PACKET) {
-                               lua_pushinteger(L, addr.port);
-                               lua_setfield(L, -2, "ifindex");
-
-                               lua_pushinteger(L, addr.prefix);
-                               lua_setfield(L, -2, "hatype");
-                       }
-#endif
-               }
-
-#ifdef __linux__
-               if (c->ifa_data && (!c->ifa_addr
-                                                       || c->ifa_addr->sa_family == AF_PACKET)) {
-                       if (!c->ifa_addr) {
-                               lua_pushliteral(L, "packet");
-                               lua_setfield(L, -2, "family");
-                       }
-
-                       lua_createtable(L, 0, 10);
-                       struct nixio__nds *stats = c->ifa_data;
-
-                       lua_pushnumber(L, stats->rx_packets);
-                       lua_setfield(L, -2, "rx_packets");
-
-                       lua_pushnumber(L, stats->tx_packets);
-                       lua_setfield(L, -2, "tx_packets");
-
-                       lua_pushnumber(L, stats->rx_bytes);
-                       lua_setfield(L, -2, "rx_bytes");
-
-                       lua_pushnumber(L, stats->tx_bytes);
-                       lua_setfield(L, -2, "tx_bytes");
-
-                       lua_pushnumber(L, stats->rx_errors);
-                       lua_setfield(L, -2, "rx_errors");
-
-                       lua_pushnumber(L, stats->tx_errors);
-                       lua_setfield(L, -2, "tx_errors");
-
-                       lua_pushnumber(L, stats->rx_dropped);
-                       lua_setfield(L, -2, "rx_dropped");
-
-                       lua_pushnumber(L, stats->tx_dropped);
-                       lua_setfield(L, -2, "tx_dropped");
-
-                       lua_pushnumber(L, stats->multicast);
-                       lua_setfield(L, -2, "multicast");
-
-                       lua_pushnumber(L, stats->collisions);
-                       lua_setfield(L, -2, "collisions");
-               } else {
-                       lua_newtable(L);
-               }
-               lua_setfield(L, -2, "data");
-#endif
-
-               if (c->ifa_netmask && !nixio__addr_parse(&addr, c->ifa_netmask)) {
-                       lua_pushstring(L, addr.host);
-                       lua_setfield(L, -2, "netmask");
-
-                       lua_pushinteger(L, nixio__addr_prefix(c->ifa_netmask));
-                       lua_setfield(L, -2, "prefix");
-               }
-
-               if (c->ifa_broadaddr && !nixio__addr_parse(&addr, c->ifa_broadaddr)) {
-                       lua_pushstring(L, addr.host);
-                       lua_setfield(L, -2, "broadaddr");
-               }
-
-               if (c->ifa_dstaddr && !nixio__addr_parse(&addr, c->ifa_dstaddr)) {
-                       lua_pushstring(L, addr.host);
-                       lua_setfield(L, -2, "dstaddr");
-               }
-
-               lua_rawseti(L, -2, i++);
-       }
-
-       freeifaddrs(ifaddr);
-       return 1;
-}
-#endif
-
-
-/* module table */
-static const luaL_reg R[] = {
-#if defined(__linux__) || defined(BSD)
-       {"getifaddrs",  nixio_getifaddrs},
-#endif
-       {"getaddrinfo", nixio_getaddrinfo},
-       {"getnameinfo", nixio_getnameinfo},
-       {NULL,                  NULL}
-};
-
-/* object table */
-static const luaL_reg M[] = {
-       {"getsockname", nixio_sock_getsockname},
-       {"getpeername", nixio_sock_getpeername},
-       {NULL,                  NULL}
-};
-
-void nixio_open_address(lua_State *L) {
-       luaL_register(L, NULL, R);
-
-       lua_pushvalue(L, -2);
-       luaL_register(L, NULL, M);
-       lua_pop(L, 1);
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/axtls-compat.c b/package/luci/libs/luci-lib-nixio/src/axtls-compat.c
deleted file mode 100644 (file)
index 2c5b746..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors
- *   may be used to endorse or promote products derived from this software
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * Enable a subset of openssl compatible functions. We don't aim to be 100%
- * compatible - just to be able to do basic ports etc.
- *
- * Only really tested on mini_httpd, so I'm not too sure how extensive this
- * port is.
- */
-
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-#include "ssl.h"
-
-static char *key_password = NULL;
-
-void *SSLv23_server_method(void) { return NULL; }
-void *SSLv3_server_method(void) { return NULL; }
-void *TLSv1_server_method(void) { return NULL; }
-void *SSLv23_client_method(void) { return NULL; }
-void *SSLv3_client_method(void) { return NULL; }
-void *TLSv1_client_method(void) { return NULL; }
-void *SSLv23_method(void) { return NULL; }
-void *TLSv1_method(void) { return NULL; }
-
-SSL_CTX * SSL_CTX_new(void *meth)
-{
-    SSL_CTX *ssl_ctx = ssl_ctx_new(SSL_SERVER_VERIFY_LATER, 5);
-    return ssl_ctx;
-}
-
-void SSL_CTX_free(SSL_CTX * ssl_ctx)
-{
-    ssl_ctx_free(ssl_ctx);
-}
-
-SSL * SSL_new(SSL_CTX *ssl_ctx)
-{
-    SSL *ssl;
-
-    ssl = ssl_new(ssl_ctx, -1);        /* fd is set later */
-
-    return ssl;
-}
-
-int SSL_set_fd(SSL *s, int fd)
-{
-    s->client_fd = fd;
-    return 1;   /* always succeeds */
-}
-
-int SSL_accept(SSL *ssl)
-{
-       ssl->next_state = HS_CLIENT_HELLO;
-    while (ssl_read(ssl, NULL) == SSL_OK)
-    {
-        if (ssl->next_state == HS_CLIENT_HELLO)
-            return 1;   /* we're done */
-    }
-
-    return -1;
-}
-
-int SSL_connect(SSL *ssl)
-{
-       SET_SSL_FLAG(SSL_IS_CLIENT);
-       int stat = do_client_connect(ssl);
-       ssl_display_error(stat);
-    return  (stat == SSL_OK) ? 1 : -1;
-}
-
-void SSL_free(SSL *ssl)
-{
-    ssl_free(ssl);
-}
-
-int SSL_read(SSL *ssl, void *buf, int num)
-{
-    uint8_t *read_buf;
-    int ret;
-
-    while ((ret = ssl_read(ssl, &read_buf)) == SSL_OK);
-
-    if (ret > SSL_OK)
-    {
-        memcpy(buf, read_buf, ret > num ? num : ret);
-    }
-
-    return ret;
-}
-
-int SSL_write(SSL *ssl, const void *buf, int num)
-{
-    return ssl_write(ssl, buf, num);
-}
-
-int SSL_CTX_use_certificate_file(SSL_CTX *ssl_ctx, const char *file, int type)
-{
-    return (ssl_obj_load(ssl_ctx, SSL_OBJ_X509_CERT, file, NULL) == SSL_OK);
-}
-
-int SSL_CTX_use_PrivateKey_file(SSL_CTX *ssl_ctx, const char *file, int type)
-{
-    return (ssl_obj_load(ssl_ctx, SSL_OBJ_RSA_KEY, file, key_password) == SSL_OK);
-}
-
-int SSL_CTX_use_certificate_ASN1(SSL_CTX *ssl_ctx, int len, const uint8_t *d)
-{
-    return (ssl_obj_memory_load(ssl_ctx,
-                        SSL_OBJ_X509_CERT, d, len, NULL) == SSL_OK);
-}
-
-int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx,
-                                            unsigned int sid_ctx_len)
-{
-    return 1;
-}
-
-int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx)
-{
-    return 1;
-}
-
-int SSL_CTX_use_certificate_chain_file(SSL_CTX *ssl_ctx, const char *file)
-{
-    return (ssl_obj_load(ssl_ctx,
-                        SSL_OBJ_X509_CERT, file, NULL) == SSL_OK);
-}
-
-int SSL_shutdown(SSL *ssl)
-{
-    return 1;
-}
-
-/*** get/set session ***/
-SSL_SESSION *SSL_get1_session(SSL *ssl)
-{
-    return (SSL_SESSION *)ssl_get_session_id(ssl); /* note: wrong cast */
-}
-
-int SSL_set_session(SSL *ssl, SSL_SESSION *session)
-{
-    memcpy(ssl->session_id, (uint8_t *)session, SSL_SESSION_ID_SIZE);
-    return 1;
-}
-
-void SSL_SESSION_free(SSL_SESSION *session) { }
-/*** end get/set session ***/
-
-long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
-{
-    return 0;
-}
-
-void SSL_CTX_set_verify(SSL_CTX *ctx, int mode,
-                                 int (*verify_callback)(int, void *)) {
-       if (mode & SSL_VERIFY_PEER) {
-               ctx->options &= ~SSL_SERVER_VERIFY_LATER;
-               ctx->options |= SSL_CLIENT_AUTHENTICATION;
-       } else {
-               ctx->options |= SSL_SERVER_VERIFY_LATER;
-               ctx->options &= ~SSL_CLIENT_AUTHENTICATION;
-       }
-}
-
-void SSL_CTX_set_verify_depth(SSL_CTX *ctx,int depth) { }
-
-int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,
-                                           const char *CApath)
-{
-    return 1;
-}
-
-void *SSL_load_client_CA_file(const char *file)
-{
-    return (void *)file;
-}
-
-void SSL_CTX_set_client_CA_list(SSL_CTX *ssl_ctx, void *file)
-{
-
-    ssl_obj_load(ssl_ctx, SSL_OBJ_X509_CERT, (const char *)file, NULL);
-}
-
-void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, void *cb) { }
-
-void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u)
-{
-    key_password = (char *)u;
-}
-
-int SSL_peek(SSL *ssl, void *buf, int num)
-{
-    memcpy(buf, ssl->bm_data, num);
-    return num;
-}
-
-void SSL_set_bio(SSL *ssl, void *rbio, void *wbio) { }
-
-long SSL_get_verify_result(const SSL *ssl)
-{
-    return ssl_handshake_status(ssl);
-}
-
-int SSL_state(SSL *ssl)
-{
-    return 0x03; // ok state
-}
-
-/** end of could do better list */
-
-void *SSL_get_peer_certificate(const SSL *ssl)
-{
-    return &ssl->ssl_ctx->certs[0];
-}
-
-int SSL_clear(SSL *ssl)
-{
-    return 1;
-}
-
-
-int SSL_CTX_check_private_key(const SSL_CTX *ctx)
-{
-    return 1;
-}
-
-int SSL_CTX_set_cipher_list(SSL_CTX *s, const char *str)
-{
-    return 1;
-}
-
-int SSL_get_error(const SSL *ssl, int ret)
-{
-    ssl_display_error(ret);
-    return ret;   /* TODO: return proper return code */
-}
-
-void SSL_CTX_set_options(SSL_CTX *ssl_ctx, int option) {}
-int SSL_library_init(void ) { return 1; }
-void SSL_load_error_strings(void ) {}
-void ERR_print_errors_fp(FILE *fp) {}
-
-long SSL_CTX_get_timeout(const SSL_CTX *ssl_ctx) {
-                            return CONFIG_SSL_EXPIRY_TIME*3600; }
-long SSL_CTX_set_timeout(SSL_CTX *ssl_ctx, long t) {
-                            return SSL_CTX_get_timeout(ssl_ctx); }
-void BIO_printf(FILE *f, const char *format, ...)
-{
-    va_list(ap);
-    va_start(ap, format);
-    vfprintf(f, format, ap);
-    va_end(ap);
-}
-
-void* BIO_s_null(void) { return NULL; }
-FILE *BIO_new(bio_func_type_t func)
-{
-    if (func == BIO_s_null)
-        return fopen("/dev/null", "r");
-    else
-        return NULL;
-}
-
-FILE *BIO_new_fp(FILE *stream, int close_flag) { return stream; }
-int BIO_free(FILE *a) { if (a != stdout && a != stderr) fclose(a); return 1; }
diff --git a/package/luci/libs/luci-lib-nixio/src/axtls-compat.h b/package/luci/libs/luci-lib-nixio/src/axtls-compat.h
deleted file mode 100644 (file)
index aee24f5..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (c) 2007, Cameron Rich
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- * * Neither the name of the axTLS project nor the names of its contributors
- *   may be used to endorse or promote products derived from this software
- *   without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * Enable a subset of openssl compatible functions. We don't aim to be 100%
- * compatible - just to be able to do basic ports etc.
- *
- * Only really tested on mini_httpd, so I'm not too sure how extensive this
- * port is.
- */
-
-#include "nixio.h"
-#include "config.h"
-
-#define WITH_AXTLS                                             1
-#define WITHOUT_OPENSSL                                        1
-#define SSL_OP_NO_SSLv3                                        0x02000000L
-#define SSL_OP_NO_SSLv2                                        0x01000000L
-#define SSL_FILETYPE_PEM                               1
-#define SSL_FILETYPE_ASN1                              2
-#define SSL_VERIFY_NONE                                        0x00
-#define SSL_VERIFY_PEER                                        0x01
-#define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02
-#define SSL_VERIFY_CLIENT_ONCE                 0x03
-#define MD5_DIGEST_LENGTH                              16
-#define SHA_DIGEST_LENGTH                              20
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-#include "ssl.h"
-
-typedef SHA1_CTX SHA_CTX;
-
-void *SSLv23_server_method(void);
-void *SSLv3_server_method(void);
-void *TLSv1_server_method(void);
-void *SSLv23_client_method(void);
-void *SSLv3_client_method(void);
-void *TLSv1_client_method(void);
-void *SSLv23_method(void);
-void *TLSv1_method(void);
-
-
-typedef void * (*ssl_func_type_t)(void);
-typedef void * (*bio_func_type_t)(void);
-
-SSL_CTX * SSL_CTX_new(void *meth);
-void SSL_CTX_free(SSL_CTX * ssl_ctx);
-SSL * SSL_new(SSL_CTX *ssl_ctx);
-int SSL_set_fd(SSL *s, int fd);
-int SSL_accept(SSL *ssl);
-int SSL_connect(SSL *ssl);
-void SSL_free(SSL *ssl);
-int SSL_read(SSL *ssl, void *buf, int num);
-int SSL_write(SSL *ssl, const void *buf, int num);
-int SSL_CTX_use_certificate_file(SSL_CTX *ssl_ctx, const char *file, int type);
-int SSL_CTX_use_PrivateKey_file(SSL_CTX *ssl_ctx, const char *file, int type);
-int SSL_CTX_use_certificate_ASN1(SSL_CTX *ssl_ctx, int len, const uint8_t *d);
-int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx,
-                                            unsigned int sid_ctx_len);
-int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx);
-int SSL_CTX_use_certificate_chain_file(SSL_CTX *ssl_ctx, const char *file);
-int SSL_shutdown(SSL *ssl);
-
-/*** get/set session ***/
-SSL_SESSION *SSL_get1_session(SSL *ssl);
-int SSL_set_session(SSL *ssl, SSL_SESSION *session);
-void SSL_SESSION_free(SSL_SESSION *session);
-/*** end get/set session ***/
-
-long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg);
-void SSL_CTX_set_verify(SSL_CTX *ctx, int mode,
-                                 int (*verify_callback)(int, void *));
-
-void SSL_CTX_set_verify_depth(SSL_CTX *ctx,int depth);
-
-int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,
-                                           const char *CApath);
-
-void *SSL_load_client_CA_file(const char *file);
-
-void SSL_CTX_set_client_CA_list(SSL_CTX *ssl_ctx, void *file);
-
-void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, void *cb);
-
-void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);
-
-int SSL_peek(SSL *ssl, void *buf, int num);
-
-void SSL_set_bio(SSL *ssl, void *rbio, void *wbio);
-
-long SSL_get_verify_result(const SSL *ssl);
-
-int SSL_state(SSL *ssl);
-
-/** end of could do better list */
-
-void *SSL_get_peer_certificate(const SSL *ssl);
-
-int SSL_clear(SSL *ssl);
-
-
-int SSL_CTX_check_private_key(const SSL_CTX *ctx);
-
-int SSL_CTX_set_cipher_list(SSL_CTX *s, const char *str);
-
-int SSL_get_error(const SSL *ssl, int ret);
-
-void SSL_CTX_set_options(SSL_CTX *ssl_ctx, int option);
-int SSL_library_init(void );
-void SSL_load_error_strings(void );
-void ERR_print_errors_fp(FILE *fp);
-
-long SSL_CTX_get_timeout(const SSL_CTX *ssl_ctx);
-long SSL_CTX_set_timeout(SSL_CTX *ssl_ctx, long t);
-void BIO_printf(FILE *f, const char *format, ...);
-
-void* BIO_s_null(void);
-FILE *BIO_new(bio_func_type_t func);
-
-FILE *BIO_new_fp(FILE *stream, int close_flag);
-int BIO_free(FILE *a);
diff --git a/package/luci/libs/luci-lib-nixio/src/binary.c b/package/luci/libs/luci-lib-nixio/src/binary.c
deleted file mode 100644 (file)
index 2c41622..0000000
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <stdlib.h>
-
-const char nixio__bin2hex[16] = {
-'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
-};
-
-static unsigned char nixio__b64encode_tbl[] =
-       "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-static unsigned char nixio__b64decode_tbl[] = {
-       0x3e, 0xff, 0xff, 0xff, 0x3f, 0x34, 0x35, 0x36,
-       0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0xff,
-       0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x01,
-       0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
-       0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11,
-       0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
-       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0x1b,
-       0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23,
-       0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b,
-       0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33
-};
-
-static const uint32_t nixio__crc32_tbl[] = {
-       0x00000000U, 0x77073096U, 0xee0e612cU, 0x990951baU, 0x076dc419U,
-       0x706af48fU, 0xe963a535U, 0x9e6495a3U, 0x0edb8832U, 0x79dcb8a4U,
-       0xe0d5e91eU, 0x97d2d988U, 0x09b64c2bU, 0x7eb17cbdU, 0xe7b82d07U,
-       0x90bf1d91U, 0x1db71064U, 0x6ab020f2U, 0xf3b97148U, 0x84be41deU,
-       0x1adad47dU, 0x6ddde4ebU, 0xf4d4b551U, 0x83d385c7U, 0x136c9856U,
-       0x646ba8c0U, 0xfd62f97aU, 0x8a65c9ecU, 0x14015c4fU, 0x63066cd9U,
-       0xfa0f3d63U, 0x8d080df5U, 0x3b6e20c8U, 0x4c69105eU, 0xd56041e4U,
-       0xa2677172U, 0x3c03e4d1U, 0x4b04d447U, 0xd20d85fdU, 0xa50ab56bU,
-       0x35b5a8faU, 0x42b2986cU, 0xdbbbc9d6U, 0xacbcf940U, 0x32d86ce3U,
-       0x45df5c75U, 0xdcd60dcfU, 0xabd13d59U, 0x26d930acU, 0x51de003aU,
-       0xc8d75180U, 0xbfd06116U, 0x21b4f4b5U, 0x56b3c423U, 0xcfba9599U,
-       0xb8bda50fU, 0x2802b89eU, 0x5f058808U, 0xc60cd9b2U, 0xb10be924U,
-       0x2f6f7c87U, 0x58684c11U, 0xc1611dabU, 0xb6662d3dU, 0x76dc4190U,
-       0x01db7106U, 0x98d220bcU, 0xefd5102aU, 0x71b18589U, 0x06b6b51fU,
-       0x9fbfe4a5U, 0xe8b8d433U, 0x7807c9a2U, 0x0f00f934U, 0x9609a88eU,
-       0xe10e9818U, 0x7f6a0dbbU, 0x086d3d2dU, 0x91646c97U, 0xe6635c01U,
-       0x6b6b51f4U, 0x1c6c6162U, 0x856530d8U, 0xf262004eU, 0x6c0695edU,
-       0x1b01a57bU, 0x8208f4c1U, 0xf50fc457U, 0x65b0d9c6U, 0x12b7e950U,
-       0x8bbeb8eaU, 0xfcb9887cU, 0x62dd1ddfU, 0x15da2d49U, 0x8cd37cf3U,
-       0xfbd44c65U, 0x4db26158U, 0x3ab551ceU, 0xa3bc0074U, 0xd4bb30e2U,
-       0x4adfa541U, 0x3dd895d7U, 0xa4d1c46dU, 0xd3d6f4fbU, 0x4369e96aU,
-       0x346ed9fcU, 0xad678846U, 0xda60b8d0U, 0x44042d73U, 0x33031de5U,
-       0xaa0a4c5fU, 0xdd0d7cc9U, 0x5005713cU, 0x270241aaU, 0xbe0b1010U,
-       0xc90c2086U, 0x5768b525U, 0x206f85b3U, 0xb966d409U, 0xce61e49fU,
-       0x5edef90eU, 0x29d9c998U, 0xb0d09822U, 0xc7d7a8b4U, 0x59b33d17U,
-       0x2eb40d81U, 0xb7bd5c3bU, 0xc0ba6cadU, 0xedb88320U, 0x9abfb3b6U,
-       0x03b6e20cU, 0x74b1d29aU, 0xead54739U, 0x9dd277afU, 0x04db2615U,
-       0x73dc1683U, 0xe3630b12U, 0x94643b84U, 0x0d6d6a3eU, 0x7a6a5aa8U,
-       0xe40ecf0bU, 0x9309ff9dU, 0x0a00ae27U, 0x7d079eb1U, 0xf00f9344U,
-       0x8708a3d2U, 0x1e01f268U, 0x6906c2feU, 0xf762575dU, 0x806567cbU,
-       0x196c3671U, 0x6e6b06e7U, 0xfed41b76U, 0x89d32be0U, 0x10da7a5aU,
-       0x67dd4accU, 0xf9b9df6fU, 0x8ebeeff9U, 0x17b7be43U, 0x60b08ed5U,
-       0xd6d6a3e8U, 0xa1d1937eU, 0x38d8c2c4U, 0x4fdff252U, 0xd1bb67f1U,
-       0xa6bc5767U, 0x3fb506ddU, 0x48b2364bU, 0xd80d2bdaU, 0xaf0a1b4cU,
-       0x36034af6U, 0x41047a60U, 0xdf60efc3U, 0xa867df55U, 0x316e8eefU,
-       0x4669be79U, 0xcb61b38cU, 0xbc66831aU, 0x256fd2a0U, 0x5268e236U,
-       0xcc0c7795U, 0xbb0b4703U, 0x220216b9U, 0x5505262fU, 0xc5ba3bbeU,
-       0xb2bd0b28U, 0x2bb45a92U, 0x5cb36a04U, 0xc2d7ffa7U, 0xb5d0cf31U,
-       0x2cd99e8bU, 0x5bdeae1dU, 0x9b64c2b0U, 0xec63f226U, 0x756aa39cU,
-       0x026d930aU, 0x9c0906a9U, 0xeb0e363fU, 0x72076785U, 0x05005713U,
-       0x95bf4a82U, 0xe2b87a14U, 0x7bb12baeU, 0x0cb61b38U, 0x92d28e9bU,
-       0xe5d5be0dU, 0x7cdcefb7U, 0x0bdbdf21U, 0x86d3d2d4U, 0xf1d4e242U,
-       0x68ddb3f8U, 0x1fda836eU, 0x81be16cdU, 0xf6b9265bU, 0x6fb077e1U,
-       0x18b74777U, 0x88085ae6U, 0xff0f6a70U, 0x66063bcaU, 0x11010b5cU,
-       0x8f659effU, 0xf862ae69U, 0x616bffd3U, 0x166ccf45U, 0xa00ae278U,
-       0xd70dd2eeU, 0x4e048354U, 0x3903b3c2U, 0xa7672661U, 0xd06016f7U,
-       0x4969474dU, 0x3e6e77dbU, 0xaed16a4aU, 0xd9d65adcU, 0x40df0b66U,
-       0x37d83bf0U, 0xa9bcae53U, 0xdebb9ec5U, 0x47b2cf7fU, 0x30b5ffe9U,
-       0xbdbdf21cU, 0xcabac28aU, 0x53b39330U, 0x24b4a3a6U, 0xbad03605U,
-       0xcdd70693U, 0x54de5729U, 0x23d967bfU, 0xb3667a2eU, 0xc4614ab8U,
-       0x5d681b02U, 0x2a6f2b94U, 0xb40bbe37U, 0xc30c8ea1U, 0x5a05df1bU,
-       0x2d02ef8dU
-};
-
-static int nixio_bin_crc32(lua_State *L) {
-       size_t len;
-       const char *buffer = luaL_checklstring(L, 1, &len);
-       uint32_t value = luaL_optinteger(L, 2, 0);
-
-       value = ~value;
-       for (size_t i=0; i<len; i++) {
-               value = nixio__crc32_tbl[(value ^ buffer[i]) & 0xffU ] ^ (value >> 8);
-       }
-
-       lua_pushinteger(L, (int)(value ^ 0xffffffffU));
-       return 1;
-}
-
-static int nixio_bin_hexlify(lua_State *L) {
-       size_t len, lenout;
-       luaL_checktype(L, 1, LUA_TSTRING);
-       const unsigned char *data = (unsigned char*)lua_tolstring(L, 1, &len);
-
-       if (len == 0) {
-               lua_pushvalue(L, 1);
-               return 1;
-       }
-
-       lenout = len * 2;
-       luaL_argcheck(L, lenout > len, 1, "size overflow");
-
-       char *out = malloc(lenout);
-       if (!out) {
-               return luaL_error(L, NIXIO_OOM);
-       }
-
-       for (size_t i=0; i < len; i++) {
-               out[2*i]   = nixio__bin2hex[(data[i] & 0xf0) >> 4];
-               out[2*i+1] = nixio__bin2hex[(data[i] & 0x0f)];
-       }
-
-       lua_pushlstring(L, out, lenout);
-       free(out);
-
-       return 1;
-}
-
-
-static int nixio_bin_unhexlify(lua_State *L) {
-       size_t len, lenout;
-       const char *data = luaL_checklstring(L, 1, &len);
-
-       if (len == 0) {
-               lua_pushvalue(L, 1);
-               return 1;
-       } else if (len % 2) {
-               errno = EINVAL;
-               return nixio__perror(L);
-       }
-
-       lenout = len / 2;
-       char *out = malloc(lenout);
-       if (!out) {
-               return luaL_error(L, NIXIO_OOM);
-       }
-
-       for (size_t i=0; i < lenout; i++) {
-               char c = data[2*i];
-               if (c >= '0' && c <= '9') {
-                       out[i] = (c - '0') << 4;
-               } else if (c >= 'a' && c <= 'f') {
-                       out[i] = (c - 'a' + 10) << 4;
-               } else if (data[2*i] >= 'A' && c <= 'F') {
-                       out[i] = (c - 'A' + 10) << 4;
-               } else {
-                       free(out);
-                       errno = EINVAL;
-                       return nixio__perror(L);
-               }
-
-               c = data[2*i+1];
-               if (c >= '0' && c <= '9') {
-                       out[i] += c - '0';
-               } else if (c >= 'a' && c <= 'f') {
-                       out[i] += c - 'a' + 10;
-               } else if (c >= 'A' && c <= 'F') {
-                       out[i] += c - 'A' + 10;
-               } else {
-                       free(out);
-                       errno = EINVAL;
-                       return nixio__perror(L);
-               }
-       }
-
-       lua_pushlstring(L, out, lenout);
-       free(out);
-
-       return 1;
-}
-
-static int nixio_bin_b64encode(lua_State *L) {
-       size_t len, lenout, pad, i;
-       const uint8_t *data = (const uint8_t*)luaL_checklstring(L, 1, &len);
-
-       lenout = len / 3;
-       lenout *= 4;
-
-       pad = len % 3;
-
-       if (len == 0) {
-               lua_pushvalue(L, 1);
-               return 1;
-       } else if (pad) {
-               lenout += 4;
-       }
-
-       luaL_argcheck(L, lenout > len, 1, "size overflow");
-
-       char *out = malloc(lenout);
-       if (!out) {
-               return luaL_error(L, NIXIO_OOM);
-       }
-
-       uint8_t *o = (uint8_t*)out;
-       for (i = 0; i < len; i += 3) {
-               uint32_t cv = (data[i] << 16) | (data[i+1] << 8) | data[i+2];
-               *(o+3) = nixio__b64encode_tbl[ cv        & 0x3f];
-               *(o+2) = nixio__b64encode_tbl[(cv >> 6)  & 0x3f];
-               *(o+1) = nixio__b64encode_tbl[(cv >> 12) & 0x3f];
-               *o     = nixio__b64encode_tbl[(cv >> 18) & 0x3f];
-               o += 4;
-       }
-
-       if (pad) {
-               uint32_t cv = data[len-pad] << 16;
-               *(o-1) = '=';
-               *(o-2) = '=';
-               if (pad == 2) {
-                       cv |= data[len-pad+1] << 8;
-                       *(o-2) = nixio__b64encode_tbl[(cv >> 6) & 0x3f];
-               }
-               *(o-3) = nixio__b64encode_tbl[(cv >> 12) & 0x3f];
-               *(o-4) = nixio__b64encode_tbl[(cv >> 18) & 0x3f];
-       }
-
-       lua_pushlstring(L, out, lenout);
-       free(out);
-       return 1;
-}
-
-static int nixio_bin_b64decode(lua_State *L) {
-       size_t len, lenout, i;
-       const char *dt = luaL_checklstring(L, 1, &len);
-
-       if (len == 0) {
-               lua_pushvalue(L, 1);
-               return 1;
-       } else if (len % 4) {
-               errno = EINVAL;
-               return nixio__perror(L);
-       }
-
-       lenout = len / 4 * 3;
-
-       unsigned char *out = malloc(lenout);
-       if (!out) {
-               return luaL_error(L, NIXIO_OOM);
-       }
-
-       unsigned char *o = out;
-       for (i = 0; i < len; i += 4) {
-               uint32_t cv = 0;
-               for (int j = 0; j < 4; j++) {
-                       unsigned char c = dt[i + j] - 43;
-                       if (c > 79 || (c = nixio__b64decode_tbl[c]) == 0xff) {
-                               free(out);
-                               errno = EINVAL;
-                               return nixio__perror(L);
-                       }
-
-                       cv |= c;
-                       if (j != 3) {
-                               cv <<= 6;
-                       }
-               }
-
-               *(o+2) = (unsigned char)(cv & 0xff);
-               *(o+1) = (unsigned char)((cv >>  8) & 0xff);
-               *o     = (unsigned char)((cv >> 16) & 0xff);
-               o += 3;
-       }
-
-       if (dt[len-1] == '=') {
-               lenout--;
-       }
-
-       if (dt[len-2] == '=') {
-               lenout--;
-       }
-
-       lua_pushlstring(L, (char*)out, lenout);
-       free(out);
-       return 1;
-}
-
-/* module table */
-static const luaL_reg R[] = {
-       {"hexlify",             nixio_bin_hexlify},
-       {"unhexlify",   nixio_bin_unhexlify},
-       {"crc32",               nixio_bin_crc32},
-       {"b64encode",   nixio_bin_b64encode},
-       {"b64decode",   nixio_bin_b64decode},
-       {NULL,                  NULL}
-};
-
-
-void nixio_open_bin(lua_State *L) {
-       lua_newtable(L);
-       luaL_register(L, NULL, R);
-       lua_setfield(L, -2, "bin");
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/bind.c b/package/luci/libs/luci-lib-nixio/src/bind.c
deleted file mode 100644 (file)
index 68e1df8..0000000
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <sys/types.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-
-
-/**
- * connect()/bind() shortcut
- */
-static int nixio__bind_connect(lua_State *L, int do_bind) {
-       const char *host = NULL;
-       if (!lua_isnoneornil(L, 1)) {
-               host = luaL_checklstring(L, 1, NULL);
-       }
-       const char *port = luaL_checklstring(L, 2, NULL);
-       const char *family = luaL_optlstring(L, 3, "any", NULL);
-       const char *socktype = luaL_optlstring(L, 4, "stream", NULL);
-
-       struct addrinfo hints, *result, *rp;
-       memset(&hints, 0, sizeof(hints));
-
-       if (!strcmp(family, "any")) {
-               hints.ai_family = AF_UNSPEC;
-       } else if (!strcmp(family, "inet")) {
-               hints.ai_family = AF_INET;
-       } else if (!strcmp(family, "inet6")) {
-               hints.ai_family = AF_INET6;
-       } else {
-               return luaL_argerror(L, 3, "supported values: any, inet, inet6");
-       }
-
-       if (!strcmp(socktype, "any")) {
-               hints.ai_socktype = 0;
-       } else if (!strcmp(socktype, "stream")) {
-               hints.ai_socktype = SOCK_STREAM;
-       } else if (!strcmp(socktype, "dgram")) {
-               hints.ai_socktype = SOCK_DGRAM;
-       } else {
-               return luaL_argerror(L, 4, "supported values: any, stream, dgram");
-       }
-
-       if (do_bind) {
-               hints.ai_flags |= AI_PASSIVE;
-       }
-
-       hints.ai_protocol = 0;
-
-       int aistat = getaddrinfo(host, port, &hints, &result);
-       if (aistat) {
-               lua_pushnil(L);
-               lua_pushinteger(L, aistat);
-               lua_pushstring(L, gai_strerror(aistat));
-               return 3;
-       }
-
-       /* create socket object */
-       nixio_sock *sock = lua_newuserdata(L, sizeof(nixio_sock));
-       int status = -1, clstat;
-
-       for (rp = result; rp != NULL; rp = rp->ai_next) {
-               sock->fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol);
-               if (sock->fd == -1) {
-                       continue;
-               }
-
-               if (do_bind) {
-                       int one = 1;
-                       setsockopt(sock->fd, SOL_SOCKET, SO_REUSEADDR,
-                        (char*)&one, sizeof(one));
-                       status = bind(sock->fd, rp->ai_addr, rp->ai_addrlen);
-               } else {
-                       do {
-                               status = connect(sock->fd, rp->ai_addr, rp->ai_addrlen);
-                       } while (status == -1 && errno == EINTR);
-               }
-
-               /* on success */
-               if (!status) {
-                       sock->domain = rp->ai_family;
-                       sock->type = rp->ai_socktype;
-                       sock->protocol = rp->ai_protocol;
-                       break;
-               }
-
-               do {
-#ifndef __WINNT__
-                       clstat = close(sock->fd);
-#else
-                       clstat = closesocket(sock->fd);
-#endif
-               } while (clstat == -1 && errno == EINTR);
-       }
-
-       freeaddrinfo(result);
-
-       /* on failure */
-       if (status) {
-               return nixio__perror_s(L);
-       }
-
-       luaL_getmetatable(L, NIXIO_META);
-       lua_setmetatable(L, -2);
-
-       return 1;
-}
-
-/**
- * bind(host, port, [family=any], [type=any]) shortcut
- */
-static int nixio_bind(lua_State *L) {
-       return nixio__bind_connect(L, 1);
-}
-
-/**
- * connect(host, port, [family=any], [type=any]) shortcut
- */
-static int nixio_connect(lua_State *L) {
-       return nixio__bind_connect(L, 0);
-}
-
-/**
- * bind()/connect() helper
- */
-static int nixio_sock__bind_connect(lua_State *L, int do_bind) {
-       nixio_sock *sock = nixio__checksock(L);
-       int status = -1;
-
-       if (sock->domain == AF_INET || sock->domain == AF_INET6) {
-               const char *host = NULL;
-               if (!lua_isnoneornil(L, 2)) {
-                       host = luaL_checklstring(L, 2, NULL);
-               }
-               const char *port = luaL_checklstring(L, 3, NULL);
-
-               struct addrinfo hints, *result, *rp;
-
-               memset(&hints, 0, sizeof(hints));
-               hints.ai_family = sock->domain;
-               hints.ai_socktype = sock->type;
-               hints.ai_protocol = sock->protocol;
-
-               if (do_bind) {
-                       hints.ai_flags |= AI_PASSIVE;
-               }
-
-               int aistat = getaddrinfo(host, port, &hints, &result);
-               if (aistat) {
-                       lua_pushnil(L);
-                       lua_pushinteger(L, aistat);
-                       lua_pushstring(L, gai_strerror(aistat));
-                       return 3;
-               }
-
-               for (rp = result; rp != NULL; rp = rp->ai_next) {
-                       if (do_bind) {
-                               status = bind(sock->fd, rp->ai_addr, rp->ai_addrlen);
-                       } else {
-                               do {
-                                       status = connect(sock->fd, rp->ai_addr, rp->ai_addrlen);
-                               } while (status == -1 && errno == EINTR);
-                       }
-
-                       /* on success */
-                       if (!status || errno == EINPROGRESS) {
-                               break;
-                       }
-               }
-
-               freeaddrinfo(result);
-#ifndef __WINNT__
-       } else if (sock->domain == AF_UNIX) {
-               size_t pathlen;
-               const char *path = luaL_checklstring(L, 2, &pathlen);
-
-               struct sockaddr_un addr;
-               addr.sun_family = AF_UNIX;
-               luaL_argcheck(L, pathlen <= sizeof(addr.sun_path), 2, "out of range");
-               memcpy(addr.sun_path, path, pathlen);
-               socklen_t alen = sizeof(sa_family_t) + pathlen;
-
-               if (do_bind) {
-                       status = bind(sock->fd, (struct sockaddr*)&addr, alen);
-               } else {
-                       do {
-                               status = connect(sock->fd, (struct sockaddr*)&addr, alen);
-                       } while (status == -1 && errno == EINTR);
-               }
-#endif
-       } else {
-               return luaL_error(L, "not supported");
-       }
-       return nixio__pstatus_s(L, !status);
-}
-
-/**
- * bind()
- */
-static int nixio_sock_bind(lua_State *L) {
-       return nixio_sock__bind_connect(L, 1);
-}
-
-/**
- * connect()
- */
-static int nixio_sock_connect(lua_State *L) {
-       return nixio_sock__bind_connect(L, 0);
-}
-
-/**
- * listen()
- */
-static int nixio_sock_listen(lua_State *L) {
-       int sockfd = nixio__checksockfd(L);
-       int backlog = luaL_checkinteger(L, 2);
-       return nixio__pstatus_s(L, !listen(sockfd, backlog));
-}
-
-/**
- * accept()
- */
-static int nixio_sock_accept(lua_State *L) {
-       nixio_sock *sock = nixio__checksock(L);
-       struct sockaddr_storage saddr;
-       nixio_addr addr;
-       socklen_t saddrlen = sizeof(saddr);
-       int newfd;
-
-       do {
-               newfd = accept(sock->fd, (struct sockaddr *)&saddr, &saddrlen);
-       } while (newfd == -1 && errno == EINTR);
-       if (newfd < 0) {
-               return nixio__perror_s(L);
-       }
-
-       /* create userdata */
-       nixio_sock *clsock = lua_newuserdata(L, sizeof(nixio_sock));
-       luaL_getmetatable(L, NIXIO_META);
-       lua_setmetatable(L, -2);
-
-       memcpy(clsock, sock, sizeof(clsock));
-       clsock->fd = newfd;
-
-       if (!nixio__addr_parse(&addr, (struct sockaddr *)&saddr)) {
-               lua_pushstring(L, addr.host);
-               lua_pushinteger(L, addr.port);
-               return 3;
-       } else {
-               return 1;
-       }
-}
-
-/* module table */
-static const luaL_reg R[] = {
-       {"bind",                nixio_bind},
-       {"connect",             nixio_connect},
-       {NULL,                  NULL}
-};
-
-/* object table */
-static const luaL_reg M[] = {
-       {"bind",                nixio_sock_bind},
-       {"connect",             nixio_sock_connect},
-       {"listen",              nixio_sock_listen},
-       {"accept",              nixio_sock_accept},
-       {NULL,                  NULL}
-};
-
-void nixio_open_bind(lua_State *L) {
-       luaL_register(L, NULL, R);
-
-       lua_pushvalue(L, -2);
-       luaL_register(L, NULL, M);
-       lua_pop(L, 1);
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/bit.c b/package/luci/libs/luci-lib-nixio/src/bit.c
deleted file mode 100644 (file)
index 1b352c5..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <stdint.h>
-#include <stdlib.h>
-
-/* 52 bit maximum precision */
-#ifdef NIXIO_DOUBLE
-#define NIXIO_BIT_BMAX 52
-#define NIXIO_BIT_NMAX 0xfffffffffffff
-#else
-#define NIXIO_BIT_BMAX 32
-#define NIXIO_BIT_NMAX 0xffffffff
-#endif
-
-#define NIXIO_BIT_XOP(BIT_XOP)                                         \
-       uint64_t oper = nixio__checknumber(L, 1);               \
-       const int args = lua_gettop(L);                                 \
-                                                                                                       \
-       for (int i = 2; i <= args; i++) {                               \
-               uint64_t oper2 = nixio__checknumber(L, i);      \
-               oper BIT_XOP oper2;                                                     \
-       }                                                                                               \
-                                                                                                       \
-       nixio__pushnumber(L, oper);                                             \
-       return 1;                                                                               \
-
-
-static int nixio_bit_or(lua_State *L) {
-       NIXIO_BIT_XOP(|=);
-}
-
-static int nixio_bit_and(lua_State *L) {
-       NIXIO_BIT_XOP(&=);
-}
-
-static int nixio_bit_xor(lua_State *L) {
-       NIXIO_BIT_XOP(^=);
-}
-
-static int nixio_bit_unset(lua_State *L) {
-       NIXIO_BIT_XOP(&= ~);
-}
-
-static int nixio_bit_not(lua_State *L) {
-       nixio__pushnumber(L,
-                       (~((uint64_t)nixio__checknumber(L, 1))) & NIXIO_BIT_NMAX);
-       return 1;
-}
-
-static int nixio_bit_shl(lua_State *L) {
-       uint64_t oper = nixio__checknumber(L, 1);
-       oper <<= luaL_checkinteger(L, 2);
-       if (oper > NIXIO_BIT_NMAX) {
-               return luaL_error(L, "arithmetic overflow");
-       } else {
-               nixio__pushnumber(L, oper);
-               return 1;
-       }
-}
-
-static int nixio_bit_ashr(lua_State *L) {
-       int64_t oper = nixio__checknumber(L, 1);
-       nixio__pushnumber(L, oper >> luaL_checkinteger(L, 2));
-       return 1;
-}
-
-static int nixio_bit_shr(lua_State *L) {
-       uint64_t oper = nixio__checknumber(L, 1);
-       nixio__pushnumber(L, oper >> luaL_checkinteger(L, 2));
-       return 1;
-}
-
-static int nixio_bit_div(lua_State *L) {
-       uint64_t oper = luaL_checknumber(L, 1);
-       const int args = lua_gettop(L);
-
-       for (int i = 2; i <= args; i++) {
-               uint64_t oper2 = nixio__checknumber(L, i);
-               oper /= oper2;
-       }
-
-       nixio__pushnumber(L, oper);
-       return 1;
-}
-
-static int nixio_bit_check(lua_State *L) {
-       uint64_t oper  = nixio__checknumber(L, 1);
-       uint64_t oper2 = nixio__checknumber(L, 2);
-       lua_pushboolean(L, (oper & oper2) == oper2);
-       return 1;
-}
-
-static int nixio_bit_cast(lua_State *L) {
-       nixio__pushnumber(L, ((uint64_t)nixio__checknumber(L, 1)) & NIXIO_BIT_NMAX);
-       return 1;
-}
-
-static int nixio_bit_swap(lua_State *L) {
-       uint64_t op = nixio__checknumber(L, 1);
-       op = (op >> 24) | ((op >> 8) & 0xff00) | ((op & 0xff00) << 8) | (op << 24);
-       nixio__pushnumber(L, op);
-       return 1;
-}
-
-/* module table */
-static const luaL_reg R[] = {
-       {"bor",                 nixio_bit_or},
-       {"set",                 nixio_bit_or},
-       {"band",                nixio_bit_and},
-       {"bxor",                nixio_bit_xor},
-       {"unset",               nixio_bit_unset},
-       {"bnot",                nixio_bit_not},
-       {"rshift",              nixio_bit_shr},
-       {"arshift",             nixio_bit_ashr},
-       {"lshift",              nixio_bit_shl},
-       {"div",                 nixio_bit_div},
-       {"check",               nixio_bit_check},
-       {"cast",                nixio_bit_cast},
-       {"tobit",               nixio_bit_cast},
-       {"bswap",               nixio_bit_swap},
-       {NULL,                  NULL}
-};
-
-void nixio_open_bit(lua_State *L) {
-       lua_newtable(L);
-       luaL_register(L, NULL, R);
-       nixio__pushnumber(L, NIXIO_BIT_BMAX);
-       lua_setfield(L, -2, "bits");
-       nixio__pushnumber(L, NIXIO_BIT_NMAX);
-       lua_setfield(L, -2, "max");
-       lua_setfield(L, -2, "bit");
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/cyassl-compat.c b/package/luci/libs/luci-lib-nixio/src/cyassl-compat.c
deleted file mode 100644 (file)
index a483119..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "cyassl-compat.h"
-
-int MD5_Init(MD5_CTX *md5) {
-       InitMd5(md5);
-       return 1;
-}
-
-int MD5_Update(MD5_CTX *md5, void *input, unsigned long sz) {
-       Md5Update(md5, input, (word32)sz);
-       return 1;
-}
-
-int MD5_Final(void *input, MD5_CTX *md5) {
-       Md5Final(md5, input);
-       return 1;
-}
-
-int SHA1_Init(SHA_CTX *sha) {
-       InitSha(sha);
-       return 1;
-}
-
-int SHA1_Update(SHA_CTX *sha, void *input, unsigned long sz) {
-       ShaUpdate(sha, input, (word32)sz);
-       return 1;
-}
-
-int SHA1_Final(void *input, SHA_CTX *sha) {
-       ShaFinal(sha, input);
-       return 1;
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/cyassl-compat.h b/package/luci/libs/luci-lib-nixio/src/cyassl-compat.h
deleted file mode 100644 (file)
index b2cdc92..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#define WITH_CYASSL
-#define WITHOUT_OPENSSL
-#include <openssl/ssl.h>
-
-typedef unsigned int word32;
-
-
-#define MD5_DIGEST_LENGTH 16
-typedef struct MD5_CTX {
-    int dummy[24];
-} MD5_CTX;
-
-void InitMd5(MD5_CTX*);
-void Md5Update(MD5_CTX*, void*, word32);
-void Md5Final(MD5_CTX*, void*);
-
-
-#define SHA_DIGEST_LENGTH 20
-typedef struct SHA_CTX {
-    int dummy[24];
-} SHA_CTX;
-
-void InitSha(SHA_CTX*);
-void ShaUpdate(SHA_CTX*, void*, word32);
-void ShaFinal(SHA_CTX*, void*);
-
-int MD5_Init(MD5_CTX *md5);
-int MD5_Update(MD5_CTX *md5, void *input, unsigned long sz);
-int MD5_Final(void *input, MD5_CTX *md5);
-int SHA1_Init(SHA_CTX *md5);
-int SHA1_Update(SHA_CTX *sha, void *input, unsigned long sz);
-int SHA1_Final(void *input, SHA_CTX *sha);
diff --git a/package/luci/libs/luci-lib-nixio/src/file.c b/package/luci/libs/luci-lib-nixio/src/file.c
deleted file mode 100644 (file)
index cfa35df..0000000
+++ /dev/null
@@ -1,435 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <errno.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-
-
-static int nixio_open(lua_State *L) {
-       const char *filename = luaL_checklstring(L, 1, NULL);
-       int flags;
-
-       if (lua_isnoneornil(L, 2)) {
-               flags = O_RDONLY;
-       } else if (lua_isnumber(L, 2)) {
-               flags = lua_tointeger(L, 2);
-       } else if (lua_isstring(L, 2)) {
-               const char *str = lua_tostring(L, 2);
-               if (!strcmp(str, "r")) {
-                       flags = O_RDONLY;
-               } else if (!strcmp(str, "r+")) {
-                       flags = O_RDWR;
-               } else if (!strcmp(str, "w")) {
-                       flags = O_WRONLY | O_CREAT | O_TRUNC;
-               } else if (!strcmp(str, "w+")) {
-                       flags = O_RDWR | O_CREAT | O_TRUNC;
-               } else if (!strcmp(str, "a")) {
-                       flags = O_WRONLY | O_CREAT | O_APPEND;
-               } else if (!strcmp(str, "a+")) {
-                       flags = O_RDWR | O_CREAT | O_APPEND;
-               } else {
-                       return luaL_argerror(L, 2, "supported values: r, r+, w, w+, a, a+");
-               }
-       } else {
-               return luaL_argerror(L, 2, "open flags or string expected");
-       }
-
-       int fd;
-
-       do {
-               fd = open(filename, flags, nixio__check_mode(L, 3, 0666));
-       } while (fd == -1 && errno == EINTR);
-       if (fd == -1) {
-               return nixio__perror(L);
-       }
-
-       int *udata = lua_newuserdata(L, sizeof(int));
-       if (!udata) {
-               return luaL_error(L, "out of memory");
-       }
-
-       *udata = fd;
-
-       luaL_getmetatable(L, NIXIO_FILE_META);
-       lua_setmetatable(L, -2);
-
-       return 1;
-}
-
-static int nixio_mkstemp(lua_State *L) {
-       const char *intemplate = luaL_checklstring(L, 1, NULL);
-       size_t len = lua_strlen(L, 1);
-       char *template = (char *)lua_newuserdata(L, 13 + len);
-       if (!template) {
-               return luaL_error(L, "out of memory");
-       }
-       snprintf(template, 13 + len, "/tmp/%s.XXXXXX", intemplate);
-
-       int fd;
-
-       do {
-               fd = mkstemp(template);
-       } while (fd == -1 && errno == EINTR);
-       if (fd == -1) {
-               return nixio__perror(L);
-       }
-       unlink(template);
-
-       int *udata = lua_newuserdata(L, sizeof(int));
-       if (!udata) {
-               return luaL_error(L, "out of memory");
-       }
-
-       *udata = fd;
-
-       luaL_getmetatable(L, NIXIO_FILE_META);
-       lua_setmetatable(L, -2);
-
-       return 1;
-}
-
-static int nixio_open_flags(lua_State *L) {
-       int mode = 0;
-       const int j = lua_gettop(L);
-       for (int i=1; i<=j; i++) {
-               const char *flag = luaL_checkstring(L, i);
-               if (!strcmp(flag, "append")) {
-                       mode |= O_APPEND;
-               } else if (!strcmp(flag, "creat")) {
-                       mode |= O_CREAT;
-               } else if (!strcmp(flag, "excl")) {
-                       mode |= O_EXCL;
-               } else if (!strcmp(flag, "nonblock") || !strcmp(flag, "ndelay")) {
-#ifndef __WINNT__
-                       mode |= O_NONBLOCK;
-#endif
-               } else if (!strcmp(flag, "sync")) {
-#ifndef __WINNT__
-                       mode |= O_SYNC;
-#endif
-               } else if (!strcmp(flag, "trunc")) {
-                       mode |= O_TRUNC;
-               } else if (!strcmp(flag, "rdonly")) {
-                       mode |= O_RDONLY;
-               } else if (!strcmp(flag, "wronly")) {
-                       mode |= O_WRONLY;
-               } else if (!strcmp(flag, "rdwr")) {
-                       mode |= O_RDWR;
-               } else {
-                       return luaL_argerror(L, i, "supported values: append, creat, "
-                                       "excl, nonblock, ndelay, sync, trunc");
-               }
-       }
-       lua_pushinteger(L, mode);
-       return 1;
-}
-
-static int nixio_dup(lua_State *L) {
-       int oldfd = nixio__checkfd(L, 1);
-       int newfd = (lua_gettop(L) > 1) ? nixio__checkfd(L, 2) : -1;
-       int stat  = (newfd == -1) ? dup(oldfd) : dup2(oldfd, newfd);
-
-       if (stat == -1) {
-               return nixio__perror(L);
-       } else {
-               if (newfd == -1) {
-                       int *udata = lua_newuserdata(L, sizeof(int));
-                       if (!udata) {
-                               return luaL_error(L, "out of memory");
-                       }
-
-                       *udata = stat;
-                       luaL_getmetatable(L, NIXIO_FILE_META);
-                       lua_setmetatable(L, -2);
-               } else {
-                       lua_pushvalue(L, 2);
-               }
-               return 1;
-       }
-}
-
-static int nixio_pipe(lua_State *L) {
-       int pipefd[2], *udata;
-       if (pipe(pipefd)) {
-               return nixio__perror(L);
-       }
-
-       luaL_getmetatable(L, NIXIO_FILE_META);
-       udata = lua_newuserdata(L, sizeof(int));
-       if (!udata) {
-               return luaL_error(L, "out of memory");
-       }
-
-       *udata = pipefd[0];
-       lua_pushvalue(L, -2);
-       lua_setmetatable(L, -2);
-
-
-       udata = lua_newuserdata(L, sizeof(int));
-       if (!udata) {
-               return luaL_error(L, "out of memory");
-       }
-
-       *udata = pipefd[1];
-       lua_pushvalue(L, -3);
-       lua_setmetatable(L, -2);
-
-       return 2;
-}
-
-static int nixio_file_write(lua_State *L) {
-       int fd = nixio__checkfd(L, 1);
-       size_t len;
-       ssize_t sent;
-       const char *data = luaL_checklstring(L, 2, &len);
-
-       if (lua_gettop(L) > 2) {
-               int offset = luaL_optint(L, 3, 0);
-               if (offset) {
-                       if (offset < len) {
-                               data += offset;
-                               len -= offset;
-                       } else {
-                               len = 0;
-                       }
-               }
-
-               unsigned int wlen = luaL_optint(L, 4, len);
-               if (wlen < len) {
-                       len = wlen;
-               }
-       }
-
-       do {
-               sent = write(fd, data, len);
-       } while(sent == -1 && errno == EINTR);
-       if (sent >= 0) {
-               lua_pushinteger(L, sent);
-               return 1;
-       } else {
-               return nixio__perror(L);
-       }
-}
-
-static int nixio_file_read(lua_State *L) {
-       int fd = nixio__checkfd(L, 1);
-       char buffer[NIXIO_BUFFERSIZE];
-       uint req = luaL_checkinteger(L, 2);
-       int readc;
-
-       /* We limit the readsize to NIXIO_BUFFERSIZE */
-       req = (req > NIXIO_BUFFERSIZE) ? NIXIO_BUFFERSIZE : req;
-
-       do {
-               readc = read(fd, buffer, req);
-       } while (readc == -1 && errno == EINTR);
-
-       if (readc < 0) {
-               return nixio__perror(L);
-       } else {
-               lua_pushlstring(L, buffer, readc);
-               return 1;
-       }
-}
-
-
-static int nixio_file_seek(lua_State *L) {
-       int fd = nixio__checkfd(L, 1);
-       off_t len = (off_t)nixio__checknumber(L, 2);
-       int whence;
-       const char *whstr = luaL_optlstring(L, 3, "set", NULL);
-       if (!strcmp(whstr, "set")) {
-               whence = SEEK_SET;
-       } else if (!strcmp(whstr, "cur")) {
-               whence = SEEK_CUR;
-       } else if (!strcmp(whstr, "end")) {
-               whence = SEEK_END;
-       } else {
-               return luaL_argerror(L, 3, "supported values: set, cur, end");
-       }
-       len = lseek(fd, len, whence);
-       if (len == -1) {
-               return nixio__perror(L);
-       } else {
-               nixio__pushnumber(L, len);
-               return 1;
-       }
-}
-
-static int nixio_file_tell(lua_State *L) {
-       int fd = nixio__checkfd(L, 1);
-       off_t pos = lseek(fd, 0, SEEK_CUR);
-       if (pos < 0) {
-               return nixio__perror(L);
-       } else {
-               nixio__pushnumber(L, pos);
-               return 1;
-       }
-}
-
-static int nixio_file_stat(lua_State *L) {
-       nixio_stat_t buf;
-       if (fstat(nixio__checkfd(L, 1), &buf)) {
-               return nixio__perror(L);
-       } else {
-               nixio__push_stat(L, &buf);
-               if (lua_isstring(L, 2)) {
-                       lua_getfield(L, -1, lua_tostring(L, 2));
-               }
-               return 1;
-       }
-}
-
-static int nixio_file_sync(lua_State *L) {
-       int fd = nixio__checkfd(L, 1);
-       int stat;
-#if (!defined BSD && !defined __WINNT__)
-       int dataonly = lua_toboolean(L, 2);
-       do {
-               stat = (dataonly) ? fdatasync(fd) : fsync(fd);
-       } while (stat == -1 && errno == EINTR);
-       return nixio__pstatus(L, !stat);
-#else
-       do {
-               stat = fsync(fd);
-       } while (stat == -1 && errno == EINTR);
-       return nixio__pstatus(L, !stat);
-#endif
-}
-
-static int nixio_file_lock(lua_State *L) {
-       int fd = nixio__checkfd(L, 1);
-       const char *flag = luaL_checkstring(L, 2);
-       off_t len = (off_t)nixio__optnumber(L, 3, 0);
-       int stat;
-
-       int cmd = 0;
-       if (!strcmp(flag, "lock")) {
-               cmd = F_LOCK;
-       } else if (!strcmp(flag, "tlock")) {
-               cmd = F_TLOCK;
-       } else if (!strcmp(flag, "ulock")) {
-               cmd = F_ULOCK;
-       } else if (!strcmp(flag, "test")) {
-               cmd = F_TEST;
-       } else {
-               return luaL_argerror(L, 2,
-                               "supported values: lock, tlock, ulock, test");
-       }
-
-       do {
-               stat = lockf(fd, cmd, len);
-       } while (stat == -1 && errno == EINTR);
-
-       return nixio__pstatus(L, !stat);
-}
-
-static int nixio_file_close(lua_State *L) {
-       int *fdp = luaL_checkudata(L, 1, NIXIO_FILE_META);
-       luaL_argcheck(L, *fdp != -1, 1, "invalid file object");
-       int res;
-       do {
-               res = close(*fdp);
-       } while (res == -1 && errno == EINTR);
-       *fdp = -1;
-       return nixio__pstatus(L, !res);
-}
-
-static int nixio_file__gc(lua_State *L) {
-       int *fdp = luaL_checkudata(L, 1, NIXIO_FILE_META);
-       int res;
-       if (*fdp > 2) {
-               do {
-                       res = close(*fdp);
-               } while (res == -1 && errno == EINTR);
-               *fdp = -1;
-       }
-       return 0;
-}
-
-/**
- * string representation
- */
-static int nixio_file__tostring(lua_State *L) {
-       lua_pushfstring(L, "nixio file %d", nixio__tofd(L, 1));
-       return 1;
-}
-
-/* method table */
-static const luaL_reg M[] = {
-       {"write",               nixio_file_write},
-       {"read",                nixio_file_read},
-       {"tell",                nixio_file_tell},
-       {"seek",                nixio_file_seek},
-       {"stat",                nixio_file_stat},
-       {"sync",                nixio_file_sync},
-       {"lock",                nixio_file_lock},
-       {"close",               nixio_file_close},
-       {"__gc",                nixio_file__gc},
-       {"__tostring",  nixio_file__tostring},
-       {NULL,                  NULL}
-};
-
-/* module table */
-static const luaL_reg R[] = {
-       {"dup",                 nixio_dup},
-       {"open",                nixio_open},
-       {"open_flags",  nixio_open_flags},
-       {"mkstemp",             nixio_mkstemp},
-       {"pipe",                nixio_pipe},
-       {NULL,                  NULL}
-};
-
-void nixio_open_file(lua_State *L) {
-       luaL_register(L, NULL, R);
-
-       luaL_newmetatable(L, NIXIO_FILE_META);
-       luaL_register(L, NULL, M);
-       lua_pushvalue(L, -1);
-       lua_setfield(L, -2, "__index");
-
-       int *uin  = lua_newuserdata(L, sizeof(int));
-       int *uout = lua_newuserdata(L, sizeof(int));
-       int *uerr = lua_newuserdata(L, sizeof(int));
-
-       if (!uin || !uout || !uerr) {
-               luaL_error(L, "out of memory");
-       }
-
-       *uin  = STDIN_FILENO;
-       *uout = STDOUT_FILENO;
-       *uerr = STDERR_FILENO;
-
-       for (int i = -4; i < -1; i++) {
-               lua_pushvalue(L, -4);
-               lua_setmetatable(L, i);
-       }
-
-       lua_setfield(L, -5, "stderr");
-       lua_setfield(L, -4, "stdout");
-       lua_setfield(L, -3, "stdin");
-       lua_setfield(L, -2, "meta_file");
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/fs.c b/package/luci/libs/luci-lib-nixio/src/fs.c
deleted file mode 100644 (file)
index ba184ed..0000000
+++ /dev/null
@@ -1,566 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <libgen.h>
-#include <string.h>
-#include <unistd.h>
-#include <limits.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <dirent.h>
-
-/* Reads argument from given index and transforms it into a mode bitfield */
-int nixio__check_mode(lua_State *L, int idx, int def) {
-       if (lua_isnoneornil(L, idx) && def > 0) {
-               return def;
-       } else if (lua_isstring(L, idx) && lua_objlen(L, idx) == 9) {
-               int mode = 0;
-               const char *modestr = lua_tostring(L, idx);
-               int i;
-               for (i=0; i<9; i++) {
-                       if (i % 3 == 0) {                       /* read flags */
-                               if (modestr[i] == 'r') {
-                                       mode |= 1 << (8 - i);
-                               } else if (modestr[i] != '-') {
-                                       break;
-                               }
-                       } else if (i % 3 == 1) {        /* write flags */
-                               if (modestr[i] == 'w') {
-                                       mode |= 1 << (8 - i);
-                               } else if (modestr[i] != '-') {
-                                       break;
-                               }
-                       } else if (i == 2) {
-                               if (modestr[i] == 'x') {
-                                       mode |= 00100;
-                               } else if (modestr[i] == 's') {
-                                       mode |= 04100;
-                               } else if (modestr[i] == 'S') {
-                                       mode |= 04000;
-                               } else if (modestr[i] != '-') {
-                                       break;
-                               }
-                       } else if (i == 5) {
-                               if (modestr[i] == 'x') {
-                                       mode |= 00010;
-                               } else if (modestr[i] == 's') {
-                                       mode |= 02010;
-                               } else if (modestr[i] == 'S') {
-                                       mode |= 02000;
-                               } else if (modestr[i] != '-') {
-                                       break;
-                               }
-                       } else if (i == 8) {
-                               if (modestr[i] == 'x') {
-                                       mode |= 00001;
-                               } else if (modestr[i] == 't') {
-                                       mode |= 01001;
-                               } else if (modestr[i] == 'T') {
-                                       mode |= 01000;
-                               } else if (modestr[i] != '-') {
-                                       break;
-                               }
-                       }
-               }
-               if (i == 9) {   /* successfully parsed */
-                       return mode;
-               }
-       } else if (lua_isnumber(L, idx)) {
-               int decmode = lua_tointeger(L, idx);
-               int s = (decmode % 10000)       / 1000;
-               int u = (decmode % 1000)        / 100;
-               int g = (decmode % 100)         / 10;
-               int o = (decmode % 10);
-
-               if (s>=0 && s<=7 && u>=0 && u<=7 && g>=0 && g<=7 && o>=0 && o<=7) {
-                       return (s << 9) + (u << 6) + (g << 3) + o;
-               }
-       }
-
-       return luaL_argerror(L, idx, "supported values: [0-7]?[0-7][0-7][0-7], "
-                               "[-r][-w][-xsS][-r][-w][-xsS][-r][-w][-xtT]");
-}
-
-/* Transforms a mode into the modestring */
-int nixio__mode_write(int mode, char *modestr) {
-       if (modestr) {
-               modestr[0] = (mode & 00400) ? 'r' : '-';
-               modestr[1] = (mode & 00200) ? 'w' : '-';
-               modestr[2] = ((mode & 04100) == 04100) ? 's' :
-                       (mode & 04000) ? 'S' : (mode & 00100) ? 'x' : '-';
-               modestr[3] = (mode & 00040) ? 'r' : '-';
-               modestr[4] = (mode & 00020) ? 'w' : '-';
-               modestr[5] = ((mode & 02010) == 02010) ? 's' :
-                       (mode & 02000) ? 'S' : (mode & 00010) ? 'x' : '-';
-               modestr[6] = (mode & 00004) ? 'r' : '-';
-               modestr[7] = (mode & 00002) ? 'w' : '-';
-               modestr[8] = ((mode & 01001) == 01001) ? 't' :
-                       (mode & 01000) ? 'T' : (mode & 00001) ? 'x' : '-';
-       }
-
-       return (mode & 00007) + ((mode & 00070) >> 3) * 10 +
-               ((mode & 00700) >> 6) * 100 + ((mode & 07000) >> 9) * 1000;
-}
-
-static int nixio_access(lua_State *L) {
-       const char *path = luaL_checkstring(L, 1);
-       int mode = F_OK;
-
-       for (const char *s = luaL_optstring(L, 2, "f"); *s; s++) {
-               if (*s == 'r') {
-                       mode |= R_OK;
-               } else if (*s == 'w') {
-                       mode |= W_OK;
-               } else if (*s == 'x') {
-                       mode |= X_OK;
-               } else if (*s != 'f') {
-                       return luaL_argerror(L, 2, "supported values: [frwx]");
-               }
-       }
-
-       return nixio__pstatus(L, !access(path, mode));
-}
-
-static int nixio_basename(lua_State *L) {
-       const char *path = luaL_checkstring(L, 1);
-       char base[PATH_MAX];
-       base[PATH_MAX-1] = 0;
-
-       strncpy(base, path, PATH_MAX-1);
-       lua_pushstring(L, basename(base));
-       return 1;
-}
-
-static int nixio_dirname(lua_State *L) {
-       const char *path = luaL_checkstring(L, 1);
-       char base[PATH_MAX];
-       base[PATH_MAX-1] = 0;
-
-       strncpy(base, path, PATH_MAX-1);
-       lua_pushstring(L, dirname(base));
-       return 1;
-}
-
-static int nixio_realpath(lua_State *L) {
-       const char *path = luaL_checkstring(L, 1);
-       char real[PATH_MAX];
-
-       if (!realpath(path, real)) {
-               return nixio__perror(L);
-       } else {
-               lua_pushstring(L, real);
-               return 1;
-       }
-}
-
-static int nixio_remove(lua_State *L) {
-       return nixio__pstatus(L, !remove(luaL_checkstring(L, 1)));
-}
-
-static int nixio_unlink(lua_State *L) {
-       return nixio__pstatus(L, !unlink(luaL_checkstring(L, 1)));
-}
-
-static int nixio_rename(lua_State *L) {
-       return nixio__pstatus(L,
-                       !rename(luaL_checkstring(L, 1), luaL_checkstring(L, 2)));
-}
-
-static int nixio_rmdir(lua_State *L) {
-       return nixio__pstatus(L, !rmdir(luaL_checkstring(L, 1)));
-}
-
-static int nixio_mkdir(lua_State *L) {
-       return nixio__pstatus(L,
-                       !mkdir(luaL_checkstring(L, 1), nixio__check_mode(L, 2, 0777)));
-}
-
-static int nixio_chmod(lua_State *L) {
-       return nixio__pstatus(L,
-                       !chmod(luaL_checkstring(L, 1), nixio__check_mode(L, 2, -1)));
-}
-
-static int nixio_dir__gc(lua_State *L) {
-       DIR **dirp = lua_touserdata(L, 1);
-       if (dirp && *dirp) {
-               closedir(*dirp);
-               *dirp = NULL;
-       }
-       return 0;
-}
-
-static int nixio_dir__iter(lua_State *L) {
-       DIR **dirp = lua_touserdata(L, lua_upvalueindex(1));
-       struct dirent *entry;
-       const char *n = NULL;
-
-       if (*dirp) {
-               do {
-                       entry = readdir(*dirp);
-                       n = (entry) ? entry->d_name : NULL;
-               } while(n && n[0] == '.' && (n[1] == 0 || (n[1] == '.' && n[2] == 0)));
-       }
-
-       if (n) {
-               lua_pushstring(L, n);
-       } else {
-               if (*dirp) {
-                       closedir(*dirp);
-                       *dirp = NULL;
-               }
-               lua_pushnil(L);
-       }
-
-       return 1;
-}
-
-static int nixio_dir(lua_State *L) {
-       const char *path = luaL_optstring(L, 1, ".");
-       DIR **dirp = lua_newuserdata(L, sizeof(DIR *));
-
-       *dirp = opendir(path);
-       if (!*dirp) {
-               return nixio__perror(L);
-       } else {
-               luaL_getmetatable(L, NIXIO_DIR_META);
-               lua_setmetatable(L, -2);
-               lua_pushcclosure(L, nixio_dir__iter, 1);
-               return 1;
-       }
-}
-
-static int nixio_link(lua_State *L) {
-       return nixio__pstatus(L,
-                       !link(luaL_checkstring(L, 1), luaL_checkstring(L, 2)));
-}
-
-static int nixio_utimes(lua_State *L) {
-       const char *path = luaL_checkstring(L, 1);
-       if (lua_gettop(L) < 2 || (lua_isnoneornil(L, 2) && lua_isnoneornil(L, 3))) {
-               return nixio__pstatus(L, !utimes(path, NULL));
-       } else {
-               double atime = nixio__checknumber(L, 2);
-               double mtime = nixio__optnumber(L, 3, atime);
-               struct timeval times[2];
-
-               times[0].tv_sec = atime;
-               times[0].tv_usec = 0;
-               times[1].tv_sec = mtime;
-               times[1].tv_usec = 0;
-
-               return nixio__pstatus(L, !utimes(path, times));
-       }
-}
-
-int nixio__push_stat(lua_State *L, nixio_stat_t *buf) {
-       lua_createtable(L, 0, 15);
-
-       lua_pushinteger(L, buf->st_dev);
-       lua_setfield(L, -2, "dev");
-
-       lua_pushinteger(L, buf->st_ino);
-       lua_setfield(L, -2, "ino");
-
-       if (S_ISREG(buf->st_mode)) {
-               lua_pushliteral(L, "reg");
-       } else if (S_ISDIR(buf->st_mode)) {
-               lua_pushliteral(L, "dir");
-       } else if (S_ISCHR(buf->st_mode)) {
-               lua_pushliteral(L, "chr");
-       } else if (S_ISBLK(buf->st_mode)) {
-               lua_pushliteral(L, "blk");
-       } else if (S_ISFIFO(buf->st_mode)) {
-               lua_pushliteral(L, "fifo");
-       } else if (S_ISLNK(buf->st_mode)) {
-               lua_pushliteral(L, "lnk");
-       } else if (S_ISSOCK(buf->st_mode)) {
-               lua_pushliteral(L, "sock");
-       } else {
-               lua_pushliteral(L, "unknown");
-       }
-       lua_setfield(L, -2, "type");
-
-       char modestr[9];
-       lua_pushinteger(L, nixio__mode_write(buf->st_mode, modestr));
-       lua_setfield(L, -2, "modedec");
-
-       lua_pushlstring(L, modestr, 9);
-       lua_setfield(L, -2, "modestr");
-
-       lua_pushinteger(L, buf->st_nlink);
-       lua_setfield(L, -2, "nlink");
-
-       lua_pushinteger(L, buf->st_uid);
-       lua_setfield(L, -2, "uid");
-
-       lua_pushinteger(L, buf->st_gid);
-       lua_setfield(L, -2, "gid");
-
-       lua_pushinteger(L, buf->st_rdev);
-       lua_setfield(L, -2, "rdev");
-
-       nixio__pushnumber(L, buf->st_size);
-       lua_setfield(L, -2, "size");
-
-       lua_pushinteger(L, buf->st_atime);
-       lua_setfield(L, -2, "atime");
-
-       lua_pushinteger(L, buf->st_mtime);
-       lua_setfield(L, -2, "mtime");
-
-       lua_pushinteger(L, buf->st_ctime);
-       lua_setfield(L, -2, "ctime");
-
-#ifndef __WINNT__
-       lua_pushinteger(L, buf->st_blksize);
-       lua_setfield(L, -2, "blksize");
-
-       lua_pushinteger(L, buf->st_blocks);
-       lua_setfield(L, -2, "blocks");
-#endif
-
-       return 1;
-}
-
-static int nixio_stat(lua_State *L) {
-       nixio_stat_t buf;
-       if (stat(luaL_checkstring(L, 1), &buf)) {
-               return nixio__perror(L);
-       } else {
-               nixio__push_stat(L, &buf);
-               if (lua_isstring(L, 2)) {
-                       lua_getfield(L, -1, lua_tostring(L, 2));
-               }
-               return 1;
-       }
-}
-
-static int nixio_lstat(lua_State *L) {
-       nixio_stat_t buf;
-       if (lstat(luaL_checkstring(L, 1), &buf)) {
-               return nixio__perror(L);
-       } else {
-               nixio__push_stat(L, &buf);
-               if (lua_isstring(L, 2)) {
-                       lua_getfield(L, -1, lua_tostring(L, 2));
-               }
-               return 1;
-       }
-}
-
-#ifndef __WINNT__
-
-static int nixio_chown(lua_State *L) {
-       return nixio__pstatus(L,
-                       !chown(
-                                       luaL_checkstring(L, 1),
-                                       lua_isnoneornil(L, 2) ? -1 : nixio__check_user(L, 2),
-                                       lua_isnoneornil(L, 3) ? -1 : nixio__check_group(L, 3)
-                       )
-       );
-}
-
-static int nixio_lchown(lua_State *L) {
-       return nixio__pstatus(L,
-                       !lchown(
-                                       luaL_checkstring(L, 1),
-                                       lua_isnoneornil(L, 2) ? -1 : nixio__check_user(L, 2),
-                                       lua_isnoneornil(L, 3) ? -1 : nixio__check_group(L, 3)
-                       )
-       );
-}
-
-static int nixio_mkfifo(lua_State *L) {
-       return nixio__pstatus(L,
-                       !mkfifo(luaL_checkstring(L, 1), nixio__check_mode(L, 2, -1)));
-}
-
-static int nixio_symlink(lua_State *L) {
-       return nixio__pstatus(L,
-                       !symlink(luaL_checkstring(L, 1), luaL_checkstring(L, 2)));
-}
-
-static int nixio_readlink(lua_State *L) {
-       char dest[PATH_MAX];
-       ssize_t res = readlink(luaL_checkstring(L, 1), dest, sizeof(dest));
-       if (res < 0) {
-               return nixio__perror(L);
-       } else {
-               lua_pushlstring(L, dest, res);
-               return 1;
-       }
-}
-
-#include <glob.h>
-
-typedef struct {
-       glob_t gl;
-       size_t pos;
-       int     freed;
-} nixio_glob_t;
-
-static int nixio_glob__iter(lua_State *L) {
-       nixio_glob_t *globres = lua_touserdata(L, lua_upvalueindex(1));
-       if (!globres->freed && globres->pos < globres->gl.gl_pathc) {
-               lua_pushstring(L, globres->gl.gl_pathv[(globres->pos)++]);
-       } else {
-               if (!globres->freed) {
-                       globfree(&globres->gl);
-                       globres->freed = 1;
-               }
-               lua_pushnil(L);
-       }
-       return 1;
-}
-
-static int nixio_glob__gc(lua_State *L) {
-       nixio_glob_t *globres = lua_touserdata(L, 1);
-       if (globres && !globres->freed) {
-               globres->freed = 1;
-               globfree(&globres->gl);
-       }
-       return 0;
-}
-
-static int nixio_glob(lua_State *L) {
-        const char *pattern = luaL_optstring(L, 1, "*");
-        nixio_glob_t *globres = lua_newuserdata(L, sizeof(nixio_glob_t));
-        if (!globres) {
-                return luaL_error(L, NIXIO_OOM);
-        }
-        globres->pos = 0;
-        globres->freed = 0;
-
-        int globstat = glob(pattern, 0, NULL, &globres->gl);
-        if (globstat == GLOB_NOMATCH) {
-                lua_pushcfunction(L, nixio__nulliter);
-                lua_pushinteger(L, 0);
-        } else if (globstat) {
-                return nixio__perror(L);
-        } else {
-                luaL_getmetatable(L, NIXIO_GLOB_META);
-                lua_setmetatable(L, -2);
-                lua_pushcclosure(L, nixio_glob__iter, 1);
-                lua_pushinteger(L, globres->gl.gl_pathc);
-        }
-        return 2;
-}
-
-#include <sys/statvfs.h>
-
-static int nixio__push_statvfs(lua_State *L, struct statvfs *buf) {
-       lua_createtable(L, 0, 12);
-
-       nixio__pushnumber(L, buf->f_bavail);
-       lua_setfield(L, -2, "bavail");
-
-       nixio__pushnumber(L, buf->f_bfree);
-       lua_setfield(L, -2, "bfree");
-
-       nixio__pushnumber(L, buf->f_blocks);
-       lua_setfield(L, -2, "blocks");
-
-       nixio__pushnumber(L, buf->f_bsize);
-       lua_setfield(L, -2, "bsize");
-
-       nixio__pushnumber(L, buf->f_frsize);
-       lua_setfield(L, -2, "frsize");
-
-       nixio__pushnumber(L, buf->f_favail);
-       lua_setfield(L, -2, "favail");
-
-       nixio__pushnumber(L, buf->f_ffree);
-       lua_setfield(L, -2, "ffree");
-
-       nixio__pushnumber(L, buf->f_files);
-       lua_setfield(L, -2, "files");
-
-       nixio__pushnumber(L, buf->f_flag);
-       lua_setfield(L, -2, "flag");
-
-       nixio__pushnumber(L, buf->f_fsid);
-       lua_setfield(L, -2, "fsid");
-
-       nixio__pushnumber(L, buf->f_namemax);
-       lua_setfield(L, -2, "namemax");
-
-       return 1;
-}
-
-static int nixio_statvfs(lua_State *L) {
-       struct statvfs buf;
-       if (statvfs(luaL_optstring(L, 1, "."), &buf)) {
-               return nixio__perror(L);
-       } else {
-               return nixio__push_statvfs(L, &buf);
-       }
-}
-
-#endif /* !__WINNT__ */
-
-
-
-/* module table */
-static const luaL_reg R[] = {
-#ifndef __WINNT__
-       {"glob",                nixio_glob},
-       {"mkfifo",              nixio_mkfifo},
-       {"symlink",             nixio_symlink},
-       {"readlink",    nixio_readlink},
-       {"chown",               nixio_chown},
-       {"lchown",              nixio_lchown},
-       {"statvfs",             nixio_statvfs},
-#endif
-       {"chmod",               nixio_chmod},
-       {"access",              nixio_access},
-       {"basename",    nixio_basename},
-       {"dir",                 nixio_dir},
-       {"dirname",             nixio_dirname},
-       {"realpath",    nixio_realpath},
-       {"mkdir",               nixio_mkdir},
-       {"rmdir",               nixio_rmdir},
-       {"link",                nixio_link},
-       {"unlink",              nixio_unlink},
-       {"utimes",              nixio_utimes},
-       {"rename",              nixio_rename},
-       {"remove",              nixio_remove},
-       {"stat",                nixio_stat},
-       {"lstat",               nixio_lstat},
-       {NULL,                  NULL}
-};
-
-void nixio_open_fs(lua_State *L) {
-       lua_newtable(L);
-       luaL_register(L, NULL, R);
-       lua_setfield(L, -2, "fs");
-
-       luaL_newmetatable(L, NIXIO_DIR_META);
-       lua_pushcfunction(L, nixio_dir__gc);
-       lua_setfield(L, -2, "__gc");
-       lua_pop(L, 1);
-
-#ifndef __WINNT__
-       luaL_newmetatable(L, NIXIO_GLOB_META);
-       lua_pushcfunction(L, nixio_glob__gc);
-       lua_setfield(L, -2, "__gc");
-       lua_pop(L, 1);
-#endif
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/io.c b/package/luci/libs/luci-lib-nixio/src/io.c
deleted file mode 100644 (file)
index 12d5c7d..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <sys/types.h>
-
-
-/**
- * send() / sendto() helper
- */
-static int nixio_sock__sendto(lua_State *L, int to) {
-       nixio_sock *sock = nixio__checksock(L);
-       struct sockaddr_storage addr_in;
-#ifndef __WINNT__
-       struct sockaddr_un addr_un;
-#endif
-       struct sockaddr *addr = NULL;
-       socklen_t alen = 0;
-       int argoff = 2;
-
-       if (to) {
-               argoff += 2;
-               if (sock->domain == AF_INET || sock->domain == AF_INET6) {
-                       const char *address = luaL_checkstring(L, 3);
-                       addr = (struct sockaddr*)&addr_in;
-                       alen = sizeof(addr_in);
-
-                       nixio_addr naddr;
-                       memset(&naddr, 0, sizeof(naddr));
-                       strncpy(naddr.host, address, sizeof(naddr.host) - 1);
-                       naddr.port = (uint16_t)luaL_checkinteger(L, 4);
-                       naddr.family = sock->domain;
-
-                       if (nixio__addr_write(&naddr, addr)) {
-                               return nixio__perror_s(L);
-                       }
-               }
-
-#ifndef __WINNT__
-               else if (sock->domain == AF_UNIX) {
-                       size_t pathlen;
-                       const char *path = luaL_checklstring(L, 3, &pathlen);
-
-                       addr_un.sun_family = AF_UNIX;
-                       luaL_argcheck(L, pathlen <= sizeof(addr_un.sun_path), 3, "out of range");
-                       memcpy(addr_un.sun_path, path, pathlen);
-
-                       addr = (struct sockaddr*)&addr_un;
-                       alen = sizeof(sa_family_t) + pathlen;
-               }
-#endif
-       }
-
-       size_t len;
-       ssize_t sent;
-       const char *data = luaL_checklstring(L, 2, &len);
-
-       if (lua_gettop(L) > argoff) {
-               int offset = luaL_optint(L, argoff + 1, 0);
-               if (offset) {
-                       if (offset < len) {
-                               data += offset;
-                               len -= offset;
-                       } else {
-                               len = 0;
-                       }
-               }
-
-               unsigned int wlen = luaL_optint(L, argoff + 2, len);
-               if (wlen < len) {
-                       len = wlen;
-               }
-       }
-
-       do {
-               sent = sendto(sock->fd, data, len, 0, addr, alen);
-       } while(sent == -1 && errno == EINTR);
-       if (sent >= 0) {
-               lua_pushinteger(L, sent);
-               return 1;
-       } else {
-               return nixio__perror_s(L);
-       }
-}
-
-/**
- * send(data)
- */
-static int nixio_sock_send(lua_State *L) {
-       return nixio_sock__sendto(L, 0);
-}
-
-/**
- * sendto(data, address, port)
- */
-static int nixio_sock_sendto(lua_State *L) {
-       return nixio_sock__sendto(L, 1);
-}
-
-
-/**
- * recv() / recvfrom() helper
- */
-static int nixio_sock__recvfrom(lua_State *L, int from) {
-       nixio_sock *sock = nixio__checksock(L);
-       char buffer[NIXIO_BUFFERSIZE];
-       struct sockaddr_storage addr_in;
-#ifndef __WINNT__
-       struct sockaddr_un addr_un;
-#endif
-       struct sockaddr *addr = NULL;
-       socklen_t alen = 0;
-       uint req = luaL_checkinteger(L, 2);
-       int readc;
-
-       if (sock->domain == AF_INET || sock->domain == AF_INET6) {
-               addr = (from) ? (struct sockaddr*)&addr_in : NULL;
-               alen = (from) ? sizeof(addr_in) : 0;
-       }
-#ifndef __WINNT__
-       else if (sock->domain == AF_UNIX) {
-               addr = (from) ? (struct sockaddr*)&addr_un : NULL;
-               alen = (from) ? sizeof(addr_un) : 0;
-       }
-#endif
-
-       /* We limit the readsize to NIXIO_BUFFERSIZE */
-       req = (req > NIXIO_BUFFERSIZE) ? NIXIO_BUFFERSIZE : req;
-
-       do {
-               readc = recvfrom(sock->fd, buffer, req, 0, addr, &alen);
-       } while (readc == -1 && errno == EINTR);
-
-#ifdef __WINNT__
-       if (readc < 0) {
-               int e = WSAGetLastError();
-               if (e == WSAECONNRESET || e == WSAECONNABORTED || e == WSAESHUTDOWN) {
-                       readc = 0;
-               }
-       }
-#endif
-
-       if (readc < 0) {
-               return nixio__perror_s(L);
-       } else {
-               lua_pushlstring(L, buffer, readc);
-
-               if (!from) {
-                       return 1;
-               }
-               /* push address. */
-               if (sock->domain == AF_INET || sock->domain == AF_INET6) {
-                       nixio_addr naddr;
-                       if (!nixio__addr_parse(&naddr, (struct sockaddr *)&addr_in)) {
-                               lua_pushstring(L, naddr.host);
-                               lua_pushinteger(L, naddr.port);
-                               return 3;
-                       } else {
-                               return 1;
-                       }
-               }
-#ifndef __WINNT__
-               else if (sock->domain == AF_UNIX && alen > sizeof(sa_family_t)) {
-                       /* if first char is non-null then the path is not in the
-                          abstract namespace and alen includes the trailing null */
-                       if (addr_un.sun_path[0])
-                               --alen;
-                       lua_pushlstring(L, addr_un.sun_path, alen - sizeof(sa_family_t));
-                       return 2;
-               }
-#endif
-       }
-       return 1;
-}
-
-/**
- * recv(count)
- */
-static int nixio_sock_recv(lua_State *L) {
-       return nixio_sock__recvfrom(L, 0);
-}
-
-/**
- * recvfrom(count)
- */
-static int nixio_sock_recvfrom(lua_State *L) {
-       return nixio_sock__recvfrom(L, 1);
-}
-
-
-/* module table */
-static const luaL_reg M[] = {
-       {"send",        nixio_sock_send},
-       {"sendto",      nixio_sock_sendto},
-       {"recv",        nixio_sock_recv},
-       {"recvfrom",nixio_sock_recvfrom},
-       {"write",       nixio_sock_send},
-       {"read",        nixio_sock_recv},
-       {NULL,                  NULL}
-};
-
-void nixio_open_io(lua_State *L) {
-       lua_pushvalue(L, -2);
-       luaL_register(L, NULL, M);
-       lua_pop(L, 1);
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/mingw-compat.c b/package/luci/libs/luci-lib-nixio/src/mingw-compat.c
deleted file mode 100644 (file)
index 02be504..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <string.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <sys/locking.h>
-#include <sys/time.h>
-#include <sys/utime.h>
-
-void nixio_open__mingw(lua_State *L) {
-       _fmode = _O_BINARY;
-
-       WSADATA wsa;
-
-       if (WSAStartup(MAKEWORD(2, 2), &wsa)) {
-               luaL_error(L, "Unable to initialize Winsock");
-       }
-
-       lua_newtable(L);
-
-       NIXIO_WSA_CONSTANT(WSAEACCES);
-       NIXIO_WSA_CONSTANT(WSAEINTR);
-       NIXIO_WSA_CONSTANT(WSAEINVAL);
-       NIXIO_WSA_CONSTANT(WSAEBADF);
-       NIXIO_WSA_CONSTANT(WSAEFAULT);
-       NIXIO_WSA_CONSTANT(WSAEMFILE);
-       NIXIO_WSA_CONSTANT(WSAENAMETOOLONG);
-       NIXIO_WSA_CONSTANT(WSAELOOP);
-       NIXIO_WSA_CONSTANT(WSAEAFNOSUPPORT);
-       NIXIO_WSA_CONSTANT(WSAENOBUFS);
-       NIXIO_WSA_CONSTANT(WSAEPROTONOSUPPORT);
-       NIXIO_WSA_CONSTANT(WSAENOPROTOOPT);
-       NIXIO_WSA_CONSTANT(WSAEADDRINUSE);
-       NIXIO_WSA_CONSTANT(WSAENETDOWN);
-       NIXIO_WSA_CONSTANT(WSAENETUNREACH);
-       NIXIO_WSA_CONSTANT(WSAECONNABORTED);
-       NIXIO_WSA_CONSTANT(WSAECONNRESET);
-
-       lua_setfield(L, -2, "const_sock");
-}
-
-const char* nixio__mgw_inet_ntop
-(int af, const void *src, char *dst, socklen_t size) {
-       struct sockaddr_storage saddr;
-       memset(&saddr, 0, sizeof(saddr));
-
-       DWORD hostlen = size, sl;
-       if (af == AF_INET) {
-               struct sockaddr_in *saddr4 = (struct sockaddr_in *)&saddr;
-               memcpy(&saddr4->sin_addr, src, sizeof(saddr4->sin_addr));
-               saddr4->sin_family = AF_INET;
-               saddr4->sin_port = 0;
-               sl = sizeof(struct sockaddr_in);
-       } else if (af == AF_INET6) {
-               struct sockaddr_in6 *saddr6 = (struct sockaddr_in6 *)&saddr;
-               memcpy(&saddr6->sin6_addr, src, sizeof(saddr6->sin6_addr));
-               saddr6->sin6_family = AF_INET6;
-               saddr6->sin6_port = 0;
-               sl = sizeof(struct sockaddr_in6);
-       } else {
-               return NULL;
-       }
-       if (WSAAddressToString((struct sockaddr*)&saddr, sl, NULL, dst, &hostlen)) {
-               return NULL;
-       }
-       return dst;
-}
-
-int nixio__mgw_inet_pton (int af, const char *src, void *dst) {
-       struct sockaddr_storage sa;
-       int sl = sizeof(sa);
-
-       if (!WSAStringToAddress((char*)src, af, NULL, (struct sockaddr*)&sa, &sl)) {
-               if (af == AF_INET) {
-                       struct in_addr ina = ((struct sockaddr_in *)&sa)->sin_addr;
-                       memcpy(dst, &ina, sizeof(ina));
-                       return 1;
-               } else if (af == AF_INET6) {
-                       struct in_addr6 ina6 = ((struct sockaddr_in6 *)&sa)->sin6_addr;
-                       memcpy(dst, &ina6, sizeof(ina6));
-                       return 1;
-               } else {
-                       WSASetLastError(WSAEAFNOSUPPORT);
-                       return -1;
-               }
-       } else {
-               return -1;
-       }
-}
-
-int nixio__mgw_nanosleep(const struct timespec *req, struct timespec *rem) {
-       if (rem) {
-               rem->tv_sec = 0;
-               rem->tv_nsec = 0;
-       }
-       Sleep(req->tv_sec * 1000 + req->tv_nsec * 1000000);
-       return 0;
-}
-
-int nixio__mgw_poll(struct pollfd *fds, int nfds, int timeout) {
-       if (!fds || !nfds) {
-               Sleep(timeout);
-               return 0;
-       }
-
-       struct timeval tv;
-       int high = 0, rf = 0, wf = 0, ef = 0;
-       fd_set rfds, wfds, efds;
-       FD_ZERO(&rfds);
-       FD_ZERO(&wfds);
-       FD_ZERO(&efds);
-
-       tv.tv_sec = timeout / 1000;
-       tv.tv_usec = (timeout % 1000) * 1000;
-
-       for (int i = 0; i < nfds; i++) {
-               if (fds->events & POLLIN) {
-                       FD_SET(fds->fd, &rfds);
-                       rf++;
-               }
-               if (fds->events & POLLOUT) {
-                       FD_SET(fds->fd, &wfds);
-                       wf++;
-               }
-               if (fds->events & POLLERR) {
-                       FD_SET(fds->fd, &efds);
-                       ef++;
-               }
-               if (fds->fd > high) {
-                       high = fds->fd;
-               }
-       }
-
-       int stat = select(high + 1, (rf) ? &rfds : NULL,
-        (wf) ? &wfds : NULL, (ef) ? &efds : NULL, &tv);
-       if (stat < 1) {
-               errno = WSAGetLastError();
-               return stat;
-       }
-
-       high = 0;
-
-       for (int i = 0; i < nfds; i++) {
-               fds->revents = 0;
-               if ((fds->events & POLLIN) && FD_ISSET(fds->fd, &rfds)) {
-                       fds->revents |= POLLIN;
-               }
-               if ((fds->events & POLLOUT) && FD_ISSET(fds->fd, &wfds)) {
-                       fds->revents |= POLLOUT;
-               }
-               if ((fds->events & POLLERR) && FD_ISSET(fds->fd, &efds)) {
-                       fds->revents |= POLLERR;
-               }
-               if (fds->revents) {
-                       high++;
-               }
-       }
-
-       return high;
-}
-
-int nixio__mgw_lockf(int fd, int cmd, off_t len) {
-       int stat;
-       if (cmd == F_LOCK) {
-               do {
-                       stat = _locking(fd, _LK_LOCK, len);
-               } while (stat == -1 && errno == EDEADLOCK);
-       } else if (cmd == F_TLOCK) {
-               stat = _locking(fd, _LK_NBLCK, len);
-       } else if (cmd == F_ULOCK) {
-               stat = _locking(fd, _LK_UNLCK, len);
-       } else {
-               stat = -1;
-               errno = EINVAL;
-       }
-       return stat;
-}
-
-char* nixio__mgw_realpath(const char *path, char *resolved) {
-       if (GetFullPathName(path, PATH_MAX, resolved, NULL)) {
-               return resolved;
-       } else {
-               errno = GetLastError();
-               return NULL;
-       }
-}
-
-int nixio__mgw_link(const char *oldpath, const char *newpath) {
-       if (!CreateHardLink(newpath, oldpath, NULL)) {
-               errno = GetLastError();
-               return -1;
-       } else {
-               return 0;
-       }
-}
-
-int nixio__mgw_utimes(const char *filename, const struct timeval times[2]) {
-       struct _utimbuf timebuffer;
-       timebuffer.actime = times[0].tv_sec;
-       timebuffer.modtime = times[1].tv_sec;
-
-       return _utime(filename, &timebuffer);
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/mingw-compat.h b/package/luci/libs/luci-lib-nixio/src/mingw-compat.h
deleted file mode 100644 (file)
index a26a4be..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef NIXIO_MINGW_COMPAT_H_
-#define NIXIO_MINGW_COMPAT_H_
-
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#include <io.h>
-#include <process.h>
-#include <stdint.h>
-#include <sys/stat.h>
-#include <errno.h>
-
-typedef unsigned int uint;
-typedef unsigned long ulong;
-
-#define S_ISLNK(m) 0
-#define S_ISSOCK(m) 0
-
-#define EWOULDBLOCK WSAEWOULDBLOCK
-#define EAFNOSUPPORT WSAEAFNOSUPPORT
-#define ENOPROTOOPT WSAENOPROTOOPT
-
-#define SHUT_RD                SD_RECEIVE
-#define SHUT_WR                SD_SEND
-#define SHUT_RDWR      SD_BOTH
-
-#define pipe(fds) _pipe(fds, 65536, 0)
-#define fsync _commit
-#define lseek lseek64
-#define stat _stati64
-#define lstat _stati64
-#define fstat _fstati64
-
-
-#define F_LOCK 1
-#define F_ULOCK 0
-#define F_TLOCK 2
-#define F_TEST 3
-int nixio__mgw_lockf(int fd, int cmd, off_t len);
-#define lockf nixio__mgw_lockf
-
-const char* nixio__mgw_inet_ntop
-(int af, const void *src, char *dst, socklen_t size);
-#define inet_ntop nixio__mgw_inet_ntop
-
-int nixio__mgw_inet_pton (int af, const char *src, void *dst);
-#define inet_pton nixio__mgw_inet_pton
-
-
-#ifndef POLLIN
-#define POLLIN 0x001
-#define POLLOUT        0x004
-#define POLLERR 0x008
-struct pollfd {
-   int   fd;
-   short events;
-   short revents;
-};
-#endif
-
-typedef int nfds_t;
-int nixio__mgw_poll(struct pollfd *fds, nfds_t nfds, int timeout);
-#define poll nixio__mgw_poll
-
-
-struct timespec {
-      time_t tv_sec;
-      long   tv_nsec;
-};
-
-int nixio__mgw_nanosleep(const struct timespec *req, struct timespec *rem);
-#define nanosleep nixio__mgw_nanosleep
-
-
-char* nixio__mgw_realpath(const char *path, char *resolved);
-#define realpath nixio__mgw_realpath
-
-
-int nixio__mgw_link(const char *oldpath, const char *newpath);
-#define link nixio__mgw_link
-
-
-int nixio__mgw_utimes(const char *filename, const struct timeval times[2]);
-#define utimes nixio__mgw_utimes
-
-
-#define setenv(k, v, o) !SetEnvironmentVariable(k, v)
-#define unsetenv(k) !SetEnvironmentVariable(k, NULL)
-
-#define execv(p, a) execv(p, (const char* const*)a)
-#define execvp(p, a) execvp(p, (const char* const*)a)
-#define execve(p, a, e) execve(p, (const char* const*)a, (const char* const*)e)
-
-#define mkdir(p, m) mkdir(p)
-
-
-#define nixio__perror_s(L) \
-       errno = WSAGetLastError(); \
-       return nixio__perror(L);
-
-#define nixio__pstatus_s(L, c) \
-       errno = WSAGetLastError(); \
-       return nixio__pstatus(L, c);
-
-
-
-#define NIXIO_WSA_CONSTANT(x) \
-       lua_pushinteger(L, x); \
-       lua_setfield(L, -2, #x+3);
-
-void nixio_open__mingw(lua_State *L);
-
-#endif /* NIXIO_MINGW_COMPAT_H_ */
diff --git a/package/luci/libs/luci-lib-nixio/src/nixio-tls.h b/package/luci/libs/luci-lib-nixio/src/nixio-tls.h
deleted file mode 100644 (file)
index 0fac5a9..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef NIXIO_TLS_H_
-#define NIXIO_TLS_H_
-
-#include "nixio.h"
-#include <sys/types.h>
-
-#ifndef WITHOUT_OPENSSL
-#include <openssl/ssl.h>
-#include <openssl/md5.h>
-#include <openssl/sha.h>
-#endif
-
-#define NIXIO_TLS_CTX_META "nixio.tls.ctx"
-#define NIXIO_TLS_SOCK_META "nixio.tls.sock"
-
-typedef struct nixio_tls_socket {
-       SSL             *socket;
-#ifdef WITH_AXTLS
-       char    connected;
-       size_t  pbufsiz;
-       char    *pbufpos;
-       char    *pbuffer;
-#endif
-} nixio_tls_sock;
-
-#define NIXIO_CRYPTO_HASH_META "nixio.crypto.hash"
-#define NIXIO_DIGEST_SIZE 64
-#define NIXIO_CRYPTO_BLOCK_SIZE 64
-
-#define NIXIO_HASH_NONE        0
-#define NIXIO_HASH_MD5 0x01
-#define NIXIO_HASH_SHA1        0x02
-
-#define NIXIO_HMAC_BIT 0x40
-
-typedef int(*nixio_hash_initcb)(void *);
-typedef int(*nixio_hash_updatecb)(void *, const void *, unsigned long);
-typedef int(*nixio_hash_finalcb)(unsigned char *, void *);
-
-typedef struct nixio_hash_obj {
-       uint                            type;
-       unsigned char           digest[NIXIO_DIGEST_SIZE];
-       size_t                          digest_size;
-       unsigned char           key[NIXIO_CRYPTO_BLOCK_SIZE];
-       size_t                          key_size;
-       size_t                          block_size;
-       void                            *ctx;
-       nixio_hash_initcb       init;
-       nixio_hash_updatecb     update;
-       nixio_hash_finalcb      final;
-} nixio_hash;
-
-#endif /* NIXIO_TLS_H_ */
diff --git a/package/luci/libs/luci-lib-nixio/src/nixio.c b/package/luci/libs/luci-lib-nixio/src/nixio.c
deleted file mode 100644 (file)
index ae81c6f..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <signal.h>
-
-#define VERSION 0.4
-
-
-/* pushes nil, error number and errstring on the stack */
-int nixio__perror(lua_State *L) {
-       if (errno == EAGAIN || errno == EWOULDBLOCK) {
-               lua_pushboolean(L, 0);
-       } else {
-               lua_pushnil(L);
-       }
-    lua_pushinteger(L, errno);
-    lua_pushstring(L, strerror(errno));
-    return 3;
-}
-
-/* pushes true, if operation succeeded, otherwise call nixio__perror */
-int nixio__pstatus(lua_State *L, int condition) {
-       if (condition) {
-               lua_pushboolean(L, 1);
-               return 1;
-       } else {
-               return nixio__perror(L);
-       }
-}
-
-/* checks whether the first argument is a socket and returns it */
-nixio_sock* nixio__checksock(lua_State *L) {
-    nixio_sock *sock = (nixio_sock*)luaL_checkudata(L, 1, NIXIO_META);
-    luaL_argcheck(L, sock->fd != -1, 1, "invalid socket object");
-    return sock;
-}
-
-/* read fd from nixio_sock object */
-int nixio__checksockfd(lua_State *L) {
-       return nixio__checksock(L)->fd;
-}
-
-/* return any possible fd, otherwise error out */
-int nixio__checkfd(lua_State *L, int ud) {
-       int fd = nixio__tofd(L, ud);
-       return (fd != -1) ? fd : luaL_argerror(L, ud, "invalid file descriptor");
-}
-
-/* return any possible fd */
-int nixio__tofd(lua_State *L, int ud) {
-       void *udata = lua_touserdata(L, ud);
-       int fd = -1;
-       if (lua_getmetatable(L, ud)) {
-               luaL_getmetatable(L, NIXIO_META);
-               luaL_getmetatable(L, NIXIO_FILE_META);
-               luaL_getmetatable(L, LUA_FILEHANDLE);
-               if (lua_rawequal(L, -3, -4)) {
-                       fd = ((nixio_sock*)udata)->fd;
-               } else if (lua_rawequal(L, -2, -4)) {
-                       fd = *((int*)udata);
-               } else if (lua_rawequal(L, -1, -4)) {
-                       fd = (*((FILE **)udata)) ? fileno(*((FILE **)udata)) : -1;
-               }
-               lua_pop(L, 4);
-       }
-       return fd;
-}
-
-/* An empty iterator */
-int nixio__nulliter(lua_State *L) {
-       lua_pushnil(L);
-       return 1;
-}
-
-static int nixio_errno(lua_State *L) {
-       lua_pushinteger(L, errno);
-       return 1;
-}
-
-static int nixio_strerror(lua_State *L) {
-       lua_pushstring(L, strerror(luaL_checkinteger(L, 1)));
-       return 1;
-}
-
-/* object table */
-static const luaL_reg R[] = {
-       {"errno",               nixio_errno},
-       {"strerror",    nixio_strerror},
-       {NULL,                  NULL}
-};
-
-/* entry point */
-NIXIO_API int luaopen_nixio(lua_State *L) {
-       /* create metatable */
-       luaL_newmetatable(L, NIXIO_META);
-
-       /* metatable.__index = metatable */
-       lua_pushvalue(L, -1);
-       lua_setfield(L, -2, "__index");
-
-       /* register module */
-       luaL_register(L, "nixio", R);
-
-       /* register metatable as socket_meta */
-       lua_pushvalue(L, -2);
-       lua_setfield(L, -2, "meta_socket");
-
-       /* register methods */
-#ifdef __WINNT__
-       nixio_open__mingw(L);
-#endif
-       nixio_open_file(L);
-       nixio_open_socket(L);
-       nixio_open_sockopt(L);
-       nixio_open_bind(L);
-       nixio_open_address(L);
-       nixio_open_protoent(L);
-       nixio_open_poll(L);
-       nixio_open_io(L);
-       nixio_open_splice(L);
-       nixio_open_process(L);
-       nixio_open_syslog(L);
-       nixio_open_bit(L);
-       nixio_open_bin(L);
-       nixio_open_fs(L);
-       nixio_open_user(L);
-
-#ifndef NO_TLS
-       nixio_open_tls_crypto(L);
-       nixio_open_tls_context(L);
-       nixio_open_tls_socket(L);
-#endif
-
-       /* module version */
-       lua_pushinteger(L, VERSION);
-       lua_setfield(L, -2, "version");
-
-       /* some constants */
-       lua_newtable(L);
-
-       lua_pushliteral(L, NIXIO_SEP);
-       lua_setfield(L, -2, "sep");
-
-       lua_pushliteral(L, NIXIO_PATHSEP);
-       lua_setfield(L, -2, "pathsep");
-
-       lua_pushinteger(L, NIXIO_BUFFERSIZE);
-       lua_setfield(L, -2, "buffersize");
-
-       NIXIO_PUSH_CONSTANT(EACCES);
-       NIXIO_PUSH_CONSTANT(EINTR);
-       NIXIO_PUSH_CONSTANT(ENOSYS);
-       NIXIO_PUSH_CONSTANT(EINVAL);
-       NIXIO_PUSH_CONSTANT(EAGAIN);
-       NIXIO_PUSH_CONSTANT(ENOMEM);
-       NIXIO_PUSH_CONSTANT(ENOENT);
-       NIXIO_PUSH_CONSTANT(ECHILD);
-       NIXIO_PUSH_CONSTANT(EIO);
-       NIXIO_PUSH_CONSTANT(EBADF);
-       NIXIO_PUSH_CONSTANT(EFAULT);
-       NIXIO_PUSH_CONSTANT(EFBIG);
-       NIXIO_PUSH_CONSTANT(ENOSPC);
-       NIXIO_PUSH_CONSTANT(EPIPE);
-       NIXIO_PUSH_CONSTANT(ESPIPE);
-       NIXIO_PUSH_CONSTANT(EISDIR);
-       NIXIO_PUSH_CONSTANT(EPERM);
-       NIXIO_PUSH_CONSTANT(EEXIST);
-       NIXIO_PUSH_CONSTANT(EMFILE);
-       NIXIO_PUSH_CONSTANT(ENAMETOOLONG);
-       NIXIO_PUSH_CONSTANT(ENFILE);
-       NIXIO_PUSH_CONSTANT(ENODEV);
-       NIXIO_PUSH_CONSTANT(EXDEV);
-       NIXIO_PUSH_CONSTANT(ENOTDIR);
-       NIXIO_PUSH_CONSTANT(ENXIO);
-       NIXIO_PUSH_CONSTANT(EROFS);
-       NIXIO_PUSH_CONSTANT(EBUSY);
-       NIXIO_PUSH_CONSTANT(ESRCH);
-       NIXIO_PUSH_CONSTANT(SIGINT);
-       NIXIO_PUSH_CONSTANT(SIGTERM);
-       NIXIO_PUSH_CONSTANT(SIGSEGV);
-
-#ifndef __WINNT__
-       NIXIO_PUSH_CONSTANT(EALREADY);
-       NIXIO_PUSH_CONSTANT(EINPROGRESS);
-       NIXIO_PUSH_CONSTANT(EWOULDBLOCK);
-       NIXIO_PUSH_CONSTANT(ELOOP);
-       NIXIO_PUSH_CONSTANT(EOVERFLOW);
-       NIXIO_PUSH_CONSTANT(ETXTBSY);
-       NIXIO_PUSH_CONSTANT(EAFNOSUPPORT);
-       NIXIO_PUSH_CONSTANT(ENOBUFS);
-       NIXIO_PUSH_CONSTANT(EPROTONOSUPPORT);
-       NIXIO_PUSH_CONSTANT(ENOPROTOOPT);
-       NIXIO_PUSH_CONSTANT(EADDRINUSE);
-       NIXIO_PUSH_CONSTANT(ENETDOWN);
-       NIXIO_PUSH_CONSTANT(ENETUNREACH);
-
-       NIXIO_PUSH_CONSTANT(SIGALRM);
-       NIXIO_PUSH_CONSTANT(SIGKILL);
-       NIXIO_PUSH_CONSTANT(SIGHUP);
-       NIXIO_PUSH_CONSTANT(SIGSTOP);
-       NIXIO_PUSH_CONSTANT(SIGCONT);
-       NIXIO_PUSH_CONSTANT(SIGCHLD);
-       NIXIO_PUSH_CONSTANT(SIGQUIT);
-       NIXIO_PUSH_CONSTANT(SIGUSR1);
-       NIXIO_PUSH_CONSTANT(SIGUSR2);
-       NIXIO_PUSH_CONSTANT(SIGIO);
-       NIXIO_PUSH_CONSTANT(SIGURG);
-       NIXIO_PUSH_CONSTANT(SIGPIPE);
-
-       lua_pushvalue(L, -1);
-       lua_setfield(L, -3, "const_sock");
-
-       signal(SIGPIPE, SIG_IGN);
-#endif /* !__WINNT__ */
-       lua_setfield(L, -2, "const");
-
-       /* remove meta table */
-       lua_remove(L, -2);
-
-       return 1;
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/nixio.h b/package/luci/libs/luci-lib-nixio/src/nixio.h
deleted file mode 100644 (file)
index 8802e92..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-#ifndef NIXIO_H_
-#define NIXIO_H_
-
-#define NIXIO_OOM "out of memory"
-
-#define NIXIO_META "nixio.socket"
-#define NIXIO_FILE_META "nixio.file"
-#define NIXIO_GLOB_META "nixio.glob"
-#define NIXIO_DIR_META "nixio.dir"
-#define _FILE_OFFSET_BITS 64
-
-#define NIXIO_PUSH_CONSTANT(x) \
-       lua_pushinteger(L, x); \
-       lua_setfield(L, -2, #x);
-
-/* uClibc: broken as always */
-#define _LARGEFILE_SOURCE
-
-#include <lua.h>
-#include <lualib.h>
-#include <lauxlib.h>
-#include <luaconf.h>
-
-#define NIXIO_BUFFERSIZE 8192
-
-typedef struct nixio_socket {
-       int fd;
-       int domain;
-       int type;
-       int protocol;
-} nixio_sock;
-
-typedef struct nixio_address {
-       int family;
-       char host[128];
-       int port;
-       int prefix;
-} nixio_addr;
-
-int nixio__perror(lua_State *L);
-int nixio__pstatus(lua_State *L, int condition);
-
-#if defined(LUA_NUMBER_DOUBLE) || defined(LNUM_DOUBLE) || defined(LNUM_LDOUBLE)
-#define NIXIO_DOUBLE 1
-#define nixio__checknumber luaL_checknumber
-#define nixio__pushnumber  lua_pushnumber
-#define nixio__optnumber   luaL_optnumber
-#else
-#define nixio__checknumber luaL_checkinteger
-#define nixio__pushnumber  lua_pushinteger
-#define nixio__optnumber   luaL_optinteger
-#endif
-
-
-#ifndef __WINNT__
-
-#define NIXIO_API extern
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-#include <netinet/tcp.h>
-#include <sys/un.h>
-#include <netdb.h>
-#include <poll.h>
-#include <sys/stat.h>
-#include <errno.h>
-
-#define NIXIO_SEP "/"
-#define NIXIO_PATHSEP ":"
-
-#define nixio__perror_s nixio__perror
-#define nixio__pstatus_s nixio__pstatus
-
-int nixio__check_group(lua_State *L, int idx);
-int nixio__check_user(lua_State *L, int idx);
-
-typedef struct stat nixio_stat_t;
-
-#else /* __WINNT__ */
-
-#define NIXIO_API extern __declspec(dllexport)
-#define NIXIO_SEP "\\"
-#define NIXIO_PATHSEP ";"
-#include "mingw-compat.h"
-
-typedef struct _stati64 nixio_stat_t;
-
-#endif
-
-nixio_sock* nixio__checksock(lua_State *L);
-int nixio__checksockfd(lua_State *L);
-int nixio__checkfd(lua_State *L, int ud);
-int nixio__tofd(lua_State *L, int ud);
-int nixio__nulliter(lua_State *L);
-
-int nixio__addr_parse(nixio_addr *addr, struct sockaddr *saddr);
-int nixio__addr_write(nixio_addr *addr, struct sockaddr *saddr);
-
-int nixio__check_mode(lua_State *L, int idx, int def);
-int nixio__mode_write(int mode, char *modestr);
-
-int nixio__push_stat(lua_State *L, nixio_stat_t *buf);
-
-const char nixio__bin2hex[16];
-
-/* Module functions */
-void nixio_open_file(lua_State *L);
-void nixio_open_socket(lua_State *L);
-void nixio_open_sockopt(lua_State *L);
-void nixio_open_bind(lua_State *L);
-void nixio_open_address(lua_State *L);
-void nixio_open_protoent(lua_State *L);
-void nixio_open_poll(lua_State *L);
-void nixio_open_io(lua_State *L);
-void nixio_open_splice(lua_State *L);
-void nixio_open_process(lua_State *L);
-void nixio_open_syslog(lua_State *L);
-void nixio_open_bit(lua_State *L);
-void nixio_open_bin(lua_State *L);
-void nixio_open_fs(lua_State *L);
-void nixio_open_user(lua_State *L);
-
-#ifndef NO_TLS
-void nixio_open_tls_crypto(lua_State *L);
-void nixio_open_tls_context(lua_State *L);
-void nixio_open_tls_socket(lua_State *L);
-#endif
-
-/* Method functions */
-
-#endif /* NIXIO_H_ */
diff --git a/package/luci/libs/luci-lib-nixio/src/poll.c b/package/luci/libs/luci-lib-nixio/src/poll.c
deleted file mode 100644 (file)
index 1211bc7..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <time.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-#include <sys/time.h>
-
-
-static int nixio_gettimeofday(lua_State *L) {
-       struct timeval tv;
-       gettimeofday(&tv, NULL);
-       nixio__pushnumber(L, tv.tv_sec);
-       nixio__pushnumber(L, tv.tv_usec);
-       return 2;
-}
-
-
-/**
- * nanosleep()
- */
-static int nixio_nanosleep(lua_State *L) {
-       struct timespec req, rem;
-       req.tv_sec = luaL_optint(L, 1, 0);
-       req.tv_nsec = luaL_optint(L, 2, 0);
-
-       int status = nanosleep(&req, &rem);
-       if (!status) {
-               lua_pushboolean(L, 1);
-               return 1;
-       } else {
-               if (errno == EINTR) {
-                       lua_pushboolean(L, 0);
-                       lua_pushinteger(L, rem.tv_sec);
-                       lua_pushinteger(L, rem.tv_nsec);
-                       return 3;
-               } else {
-                       return nixio__perror(L);
-               }
-       }
-}
-
-/**
- * Checks whether a flag is set in the bitmap and sets the matching table value
- */
-static void nixio_poll_flags__r(lua_State *L, int *map, int f, const char *t) {
-       lua_pushstring(L, t);
-       if (*map & f) {
-               lua_pushboolean(L, 1);
-       } else {
-               lua_pushnil(L);
-       }
-       lua_rawset(L, -3);
-}
-
-/**
- * Translate integer to poll flags and vice versa
- */
-static int nixio_poll_flags(lua_State *L) {
-       int flags;
-       if (lua_isnumber(L, 1)) {
-               flags = luaL_checkinteger(L, 1);
-               lua_newtable(L);
-               nixio_poll_flags__r(L, &flags, POLLIN, "in");
-               nixio_poll_flags__r(L, &flags, POLLOUT, "out");
-               nixio_poll_flags__r(L, &flags, POLLERR, "err");
-#ifndef __WINNT__
-               nixio_poll_flags__r(L, &flags, POLLPRI, "pri");
-               nixio_poll_flags__r(L, &flags, POLLHUP, "hup");
-               nixio_poll_flags__r(L, &flags, POLLNVAL, "nval");
-#endif
-        } else {
-               flags = 0;
-               const int j = lua_gettop(L);
-               for (int i=1; i<=j; i++) {
-                       const char *flag = luaL_checkstring(L, i);
-                       if (!strcmp(flag, "in")) {
-                               flags |= POLLIN;
-                       } else if (!strcmp(flag, "out")) {
-                               flags |= POLLOUT;
-                       } else if (!strcmp(flag, "err")) {
-                               flags |= POLLERR;
-                       } else if (!strcmp(flag, "pri")) {
-#ifndef __WINNT__
-                               flags |= POLLPRI;
-#endif
-                       } else if (!strcmp(flag, "hup")) {
-#ifndef __WINNT__
-                               flags |= POLLHUP;
-#endif
-                       } else if (!strcmp(flag, "nval")) {
-#ifndef __WINNT__
-                               flags |= POLLNVAL;
-#endif
-                       } else {
-                               return luaL_argerror(L, i,
-                                "supported values: in, pri, out, err, hup, nval");
-                       }
-               }
-               lua_pushinteger(L, flags);
-       }
-       return 1;
-}
-
-/**
- * poll({{fd = socket, events = FLAGS}, ...}, timeout)
- */
-static int nixio_poll(lua_State *L) {
-       int len = lua_objlen(L, 1);
-       int i, fd;
-       int timeout = luaL_optint(L, 2, 0);
-       int status = -1;
-
-       /* we are being abused as sleep() replacement... */
-       if (lua_isnoneornil(L, 1) || len < 1) {
-               if (!poll(NULL, 0, timeout)) {
-                       lua_pushinteger(L, 0);
-                       return 1;
-               } else {
-                       return nixio__perror(L);
-               }
-       }
-
-       luaL_checktype(L, 1, LUA_TTABLE);
-       struct pollfd *fds = calloc(len, sizeof(struct pollfd));
-       if (!fds) {
-               return luaL_error(L, NIXIO_OOM);
-       }
-
-       for (i = 0; i < len; i++) {
-               lua_rawgeti(L, 1, i+1);
-               if (!lua_istable(L, -1)) {
-                       free(fds);
-                       return luaL_argerror(L, 1, "invalid datastructure");
-               }
-
-               lua_pushliteral(L, "fd");
-               lua_rawget(L, -2);
-               fd = nixio__tofd(L, -1);
-               if (fd == -1) {
-                       free(fds);
-                       return luaL_argerror(L, 1, "invalid fd in datastructure");
-               }
-               fds[i].fd = fd;
-
-               lua_pushliteral(L, "events");
-               lua_rawget(L, -3);
-               fds[i].events = (short)lua_tointeger(L, -1);
-
-               lua_pop(L, 3);
-       }
-
-       status = poll(fds, (nfds_t)len, timeout);
-
-       if (status == 0) {
-               free(fds);
-               lua_pushboolean(L, 0);
-               return 1;
-       } else if (status < 0) {
-               free(fds);
-               return nixio__perror(L);
-       }
-
-       for (i = 0; i < len; i++) {
-               lua_rawgeti(L, 1, i+1);
-
-               lua_pushliteral(L, "revents");
-               lua_pushinteger(L, fds[i].revents);
-               lua_rawset(L, -3);
-
-               lua_pop(L, 1);
-       }
-
-       free(fds);
-
-       lua_pushinteger(L, status);
-       lua_pushvalue(L, 1);
-
-       return 2;
-}
-
-/* module table */
-static const luaL_reg R[] = {
-       {"gettimeofday", nixio_gettimeofday},
-       {"nanosleep",   nixio_nanosleep},
-       {"poll",                nixio_poll},
-       {"poll_flags",  nixio_poll_flags},
-       {NULL,                  NULL}
-};
-
-void nixio_open_poll(lua_State *L) {
-       luaL_register(L, NULL, R);
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/process.c b/package/luci/libs/luci-lib-nixio/src/process.c
deleted file mode 100644 (file)
index 5ae9b82..0000000
+++ /dev/null
@@ -1,450 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <signal.h>
-
-#define NIXIO_EXECVE   0x01
-#define NIXIO_EXECV            0x02
-#define NIXIO_EXECVP   0x03
-
-int nixio__exec(lua_State *L, int m) {
-       const char *path = luaL_checkstring(L, 1);
-       const char *arg;
-       int argn, i;
-
-       if (m == NIXIO_EXECVE) {
-               luaL_checktype(L, 2, LUA_TTABLE);
-               argn = lua_objlen(L, 2) + 1;
-       } else {
-               argn = lua_gettop(L);
-       }
-
-       char **args = lua_newuserdata(L, sizeof(char*) * (argn + 1));
-       args[argn] = NULL;
-       args[0] = (char *)path;
-
-       if (m == NIXIO_EXECVE) {
-               for (i = 1; i < argn; i++) {
-                       lua_rawgeti(L, 2, i);
-                       arg = lua_tostring(L, -1);
-                       luaL_argcheck(L, arg, 2, "invalid argument");
-                       args[i] = (char *)arg;
-               }
-
-               if (lua_isnoneornil(L, 3)) {
-                       execv(path, args);
-               } else {
-                       luaL_checktype(L, 3, LUA_TTABLE);
-                       argn = 0;
-                       lua_pushnil(L);
-                       while (lua_next(L, 3)) {
-                               if (!lua_checkstack(L, 1)) {
-                                       lua_settop(L, 0);
-                                       return luaL_error(L, "stack overflow");
-                               }
-
-                               if (lua_type(L, -2) != LUA_TSTRING || !lua_isstring(L, -1)) {
-                                       return luaL_argerror(L, 3, "invalid environment");
-                               }
-
-                               lua_pushfstring(L, "%s=%s",
-                                               lua_tostring(L, -2), lua_tostring(L, -1));
-
-                               lua_insert(L, 5);
-                               lua_pop(L, 1);
-                               argn++;
-                       }
-
-                       char **env = lua_newuserdata(L, sizeof(char*) * (argn + 1));
-                       env[argn] = NULL;
-
-                       for (i = 1; i <= argn; i++) {
-                               env[i-1] = (char *)lua_tostring(L, -(i+1));
-                       }
-
-                       execve(path, args, env);
-               }
-       } else {
-               for (i = 2; i <= argn; i++) {
-                       arg = luaL_checkstring(L, i);
-                       args[i-1] = (char *)arg;
-               }
-
-               if (m == NIXIO_EXECV) {
-                       execv(path, args);
-               } else {
-                       execvp(path, args);
-               }
-       }
-
-       return nixio__perror(L);
-}
-
-#ifndef __WINNT__
-#include <sys/utsname.h>
-#include <sys/times.h>
-#include <sys/wait.h>
-#include <pwd.h>
-#include <grp.h>
-
-static int nixio_fork(lua_State *L) {
-       pid_t pid = fork();
-       if (pid == -1) {
-               return nixio__perror(L);
-       } else {
-               lua_pushinteger(L, pid);
-               return 1;
-       }
-}
-
-static int nixio_kill(lua_State *L) {
-       return nixio__pstatus(L, !kill(luaL_checkint(L, 1), luaL_checkint(L, 2)));
-}
-
-static int nixio_getppid(lua_State *L) {
-       lua_pushinteger(L, getppid());
-       return 1;
-}
-
-static int nixio_getuid(lua_State *L) {
-       lua_pushinteger(L, getuid());
-       return 1;
-}
-
-static int nixio_getgid(lua_State *L) {
-       lua_pushinteger(L, getgid());
-       return 1;
-}
-
-static int nixio_setgid(lua_State *L) {
-       return nixio__pstatus(L, !setgid(nixio__check_group(L, 1)));
-}
-
-static int nixio_setuid(lua_State *L) {
-       return nixio__pstatus(L, !setuid(nixio__check_user(L, 1)));
-}
-
-static int nixio_nice(lua_State *L) {
-       int nval = luaL_checkint(L, 1);
-
-       errno = 0;
-       nval = nice(nval);
-
-       if (nval == -1 && errno) {
-               return nixio__perror(L);
-       } else {
-               lua_pushinteger(L, nval);
-               return 1;
-       }
-}
-
-static int nixio_setsid(lua_State *L) {
-       pid_t pid = setsid();
-
-       if (pid == -1) {
-               return nixio__perror(L);
-       } else {
-               lua_pushinteger(L, pid);
-               return 1;
-       }
-}
-
-static int nixio_wait(lua_State *L) {
-       pid_t pidin = luaL_optinteger(L, 1, -1), pidout;
-       int options = 0, status;
-
-       const int j = lua_gettop(L);
-       for (int i=2; i<=j; i++) {
-               const char *flag = luaL_checkstring(L, i);
-               if (!strcmp(flag, "nohang")) {
-                       options |= WNOHANG;
-               } else if (!strcmp(flag, "untraced")) {
-                       options |= WUNTRACED;
-               } else if (!strcmp(flag, "continued")) {
-                       options |= WCONTINUED;
-               } else {
-                       return luaL_argerror(L, i,
-                                       "supported values: nohang, untraced, continued");
-               }
-       }
-
-       do {
-               pidout = waitpid(pidin, &status, options);
-       } while (pidout == -1 && errno == EINTR);
-
-       if (pidout == 0) {
-               lua_pushboolean(L, 0);
-               return 1;
-       } else if (pidout == -1) {
-               return nixio__perror(L);
-       } else {
-               lua_pushinteger(L, pidout);
-       }
-
-       if (WIFEXITED(status)) {
-               lua_pushliteral(L, "exited");
-               lua_pushinteger(L, WEXITSTATUS(status));
-    } else if (WIFSIGNALED(status)) {
-       lua_pushliteral(L, "signaled");
-       lua_pushinteger(L, WTERMSIG(status));
-    } else if (WIFSTOPPED(status)) {
-       lua_pushliteral(L, "stopped");
-       lua_pushinteger(L, WSTOPSIG(status));
-    } else {
-       return 1;
-    }
-
-    return 3;
-}
-
-static int nixio_times(lua_State *L) {
-       struct tms buf;
-       if (times(&buf) == -1) {
-               return nixio__perror(L);
-       } else {
-               lua_createtable(L, 0, 4);
-               nixio__pushnumber(L, buf.tms_cstime);
-               lua_setfield(L, -2, "cstime");
-
-               nixio__pushnumber(L, buf.tms_cutime);
-               lua_setfield(L, -2, "cutime");
-
-               nixio__pushnumber(L, buf.tms_stime);
-               lua_setfield(L, -2, "stime");
-
-               nixio__pushnumber(L, buf.tms_utime);
-               lua_setfield(L, -2, "utime");
-
-               return 1;
-       }
-}
-
-static int nixio_uname(lua_State *L) {
-       struct utsname buf;
-       if (uname(&buf)) {
-               return nixio__perror(L);
-       }
-
-       lua_createtable(L, 0, 5);
-
-       lua_pushstring(L, buf.machine);
-       lua_setfield(L, -2, "machine");
-
-       lua_pushstring(L, buf.version);
-       lua_setfield(L, -2, "version");
-
-       lua_pushstring(L, buf.release);
-       lua_setfield(L, -2, "release");
-
-       lua_pushstring(L, buf.nodename);
-       lua_setfield(L, -2, "nodename");
-
-       lua_pushstring(L, buf.sysname);
-       lua_setfield(L, -2, "sysname");
-
-       return 1;
-}
-
-#endif /* !__WINNT__ */
-
-static int nixio_chdir(lua_State *L) {
-       return nixio__pstatus(L, !chdir(luaL_checkstring(L, 1)));
-}
-
-static int nixio_signal(lua_State *L) {
-       int sig = luaL_checkinteger(L, 1);
-       const char *val = luaL_checkstring(L, 2);
-
-       if (!strcmp(val, "ign") || !strcmp(val, "ignore")) {
-               return nixio__pstatus(L, signal(sig, SIG_IGN) != SIG_ERR);
-       } else if (!strcmp(val, "dfl") || !strcmp(val, "default")) {
-               return nixio__pstatus(L, signal(sig, SIG_DFL) != SIG_ERR);
-       } else {
-               return luaL_argerror(L, 2, "supported values: ign, dfl");
-       }
-}
-
-static int nixio_getpid(lua_State *L) {
-       lua_pushinteger(L, getpid());
-       return 1;
-}
-
-static int nixio_getenv(lua_State *L) {
-       const char *key = luaL_optstring(L, 1, NULL);
-       if (key) {
-               const char *val = getenv(key);
-               if (val) {
-                       lua_pushstring(L, val);
-               } else {
-                       lua_pushnil(L);
-               }
-       } else {
-               lua_newtable(L);
-               extern char **environ;
-               for (char **c = environ; *c; c++) {
-                       const char *delim = strchr(*c, '=');
-                       if (!delim) {
-                               return luaL_error(L, "invalid environment");
-                       }
-                       lua_pushlstring(L, *c, delim-*c);
-                       lua_pushstring(L, delim + 1);
-                       lua_rawset(L, -3);
-               }
-       }
-       return 1;
-}
-
-static int nixio_setenv(lua_State *L) {
-       const char *key = luaL_checkstring(L, 1);
-       const char *val = luaL_optstring(L, 2, NULL);
-       return nixio__pstatus(L, (val) ? !setenv(key, val, 1) : !unsetenv(key));
-}
-
-static int nixio_exec(lua_State *L) {
-       return nixio__exec(L, NIXIO_EXECV);
-}
-
-static int nixio_execp(lua_State *L) {
-       return nixio__exec(L, NIXIO_EXECVP);
-}
-
-static int nixio_exece(lua_State *L) {
-       return nixio__exec(L, NIXIO_EXECVE);
-}
-
-static int nixio_getcwd(lua_State *L) {
-       char path[PATH_MAX];
-
-       if (getcwd(path, sizeof(path))) {
-               lua_pushstring(L, path);
-               return 1;
-       } else {
-               return nixio__perror(L);
-       }
-}
-
-static int nixio_umask(lua_State *L) {
-       char mask[9];
-       lua_pushinteger(L,
-                       nixio__mode_write(umask(nixio__check_mode(L, 1, -1)), mask));
-       lua_pushlstring(L, mask, 9);
-       return 2;
-}
-
-#ifdef __linux__
-
-#include <sys/sysinfo.h>
-
-static int nixio_sysinfo(lua_State *L) {
-       struct sysinfo info;
-       if (sysinfo(&info)) {
-               return nixio__perror(L);
-       }
-
-       lua_createtable(L, 0, 12);
-
-       nixio__pushnumber(L, info.bufferram);
-       lua_setfield(L, -2, "bufferram");
-
-       nixio__pushnumber(L, info.freehigh);
-       lua_setfield(L, -2, "freehigh");
-
-       nixio__pushnumber(L, info.freeram);
-       lua_setfield(L, -2, "freeram");
-
-       nixio__pushnumber(L, info.freeswap);
-       lua_setfield(L, -2, "freeswap");
-
-       lua_createtable(L, 0, 3);
-       for (int i=0; i<3; i++) {
-               lua_pushnumber(L, info.loads[i] / 65536.);
-               lua_rawseti(L, -2, i+1);
-       }
-       lua_setfield(L, -2, "loads");
-
-       lua_pushinteger(L, info.mem_unit);
-       lua_setfield(L, -2, "mem_unit");
-
-       lua_pushinteger(L, info.procs);
-       lua_setfield(L, -2, "procs");
-
-       nixio__pushnumber(L, info.sharedram);
-       lua_setfield(L, -2, "sharedram");
-
-       nixio__pushnumber(L, info.totalhigh);
-       lua_setfield(L, -2, "totalhigh");
-
-       nixio__pushnumber(L, info.totalram);
-       lua_setfield(L, -2, "totalram");
-
-       nixio__pushnumber(L, info.totalswap);
-       lua_setfield(L, -2, "totalswap");
-
-       lua_pushinteger(L, info.uptime);
-       lua_setfield(L, -2, "uptime");
-
-       return 1;
-}
-
-#endif
-
-
-/* module table */
-static const luaL_reg R[] = {
-#ifdef __linux__
-       {"sysinfo",             nixio_sysinfo},
-#endif
-#ifndef __WINNT__
-       {"fork",                nixio_fork},
-       {"kill",                nixio_kill},
-       {"nice",                nixio_nice},
-       {"getppid",             nixio_getppid},
-       {"getuid",              nixio_getuid},
-       {"getgid",              nixio_getgid},
-       {"setuid",              nixio_setuid},
-       {"setgid",              nixio_setgid},
-       {"setsid",              nixio_setsid},
-       {"wait",                nixio_wait},
-       {"waitpid",             nixio_wait},
-       {"times",               nixio_times},
-       {"uname",               nixio_uname},
-#endif
-       {"chdir",               nixio_chdir},
-       {"signal",              nixio_signal},
-       {"getpid",              nixio_getpid},
-       {"getenv",              nixio_getenv},
-       {"setenv",              nixio_setenv},
-       {"putenv",              nixio_setenv},
-       {"exec",                nixio_exec},
-       {"execp",               nixio_execp},
-       {"exece",               nixio_exece},
-       {"getcwd",              nixio_getcwd},
-       {"umask",               nixio_umask},
-       {NULL,                  NULL}
-};
-
-void nixio_open_process(lua_State *L) {
-       luaL_register(L, NULL, R);
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/protoent.c b/package/luci/libs/luci-lib-nixio/src/protoent.c
deleted file mode 100644 (file)
index bda68a5..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2011 Jo-Philipp Wich <jow@openwrt.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-
-#ifndef __WINNT__
-#include <netdb.h>
-#endif
-
-/**
- * protoent conversion helper
- */
-static int nixio__pushprotoent(lua_State *L, struct protoent *e) {
-       int i;
-       if (e) {
-               lua_newtable(L);
-
-               lua_pushstring(L, e->p_name);
-               lua_setfield(L, -2, "name");
-
-               lua_pushnumber(L, e->p_proto);
-               lua_setfield(L, -2, "proto");
-
-               lua_newtable(L);
-               for (i = 0; e->p_aliases[i]; i++) {
-                       lua_pushstring(L, e->p_aliases[i]);
-                       lua_rawseti(L, -2, i+1);
-               }
-               lua_setfield(L, -2, "aliases");
-               return 1;
-       } else {
-               return 0;
-       }
-}
-
-/**
- * getprotobyname(name)
- */
-static int nixio_getprotobyname(lua_State *L) {
-       const char *name = luaL_checkstring(L, 1);
-       struct protoent *res = getprotobyname(name);
-       return nixio__pushprotoent(L, res);
-}
-
-/**
- * getprotobynumber(proto)
- */
-static int nixio_getprotobynumber(lua_State *L) {
-       int proto = luaL_checkinteger(L, 1);
-       struct protoent *res = getprotobynumber(proto);
-       return nixio__pushprotoent(L, res);
-}
-
-/**
- * getproto(name_or_proto)
- */
-static int nixio_getproto(lua_State *L) {
-       int i = 1;
-       struct protoent *res;
-       if (lua_isnumber(L, 1)) {
-               return nixio_getprotobynumber(L);
-       } else if (lua_isstring(L, 1)) {
-               return nixio_getprotobyname(L);
-       } else if (lua_isnoneornil(L, 1)) {
-               setprotoent(1);
-               lua_newtable(L);
-               while ((res = getprotoent()) != NULL) {
-                       nixio__pushprotoent(L, res);
-                       lua_rawseti(L, -2, i++);
-               }
-               endprotoent();
-               return 1;
-       } else {
-               return luaL_argerror(L, 1, "supported values: <protoname>, <protonumber>");
-       }
-}
-
-/* module table */
-static const luaL_reg R[] = {
-    {"getprotobyname",         nixio_getprotobyname},
-    {"getprotobynumber",       nixio_getprotobynumber},
-    {"getproto",                       nixio_getproto},
-    {NULL,                                     NULL}
-};
-
-void nixio_open_protoent(lua_State *L) {
-    luaL_register(L, NULL, R);
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/socket.c b/package/luci/libs/luci-lib-nixio/src/socket.c
deleted file mode 100644 (file)
index 17c6afc..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-
-/**
- * create new socket
- */
-static int nixio_socket(lua_State *L) {
-       const char *domain = luaL_optlstring(L, 1, "", NULL);
-       const char *type   = luaL_optlstring(L, 2, "", NULL);
-       const char *proto  = lua_tolstring(L, 3, NULL);
-
-       nixio_sock *sock = lua_newuserdata(L, sizeof(nixio_sock));
-       if (!sock) {
-               return luaL_error(L, "out of memory");
-       }
-
-       if (!strcmp(domain, "inet")) {
-               sock->domain = AF_INET;
-       } else if (!strcmp(domain, "inet6")) {
-               sock->domain = AF_INET6;
-       } else if (!strcmp(domain, "unix")) {
-               sock->domain = AF_UNIX;
-       /*} else if (!strcmp(domain, "packet")) {
-               sock->domain = AF_PACKET;*/
-       } else {
-               return luaL_argerror(L, 1,
-                "supported values: inet, inet6, unix, packet"
-               );
-       }
-
-       if (!strcmp(type, "stream")) {
-               sock->type = SOCK_STREAM;
-       } else if (!strcmp(type, "dgram")) {
-               sock->type = SOCK_DGRAM;
-       } else if (!strcmp(type, "raw")) {
-               sock->type = SOCK_RAW;
-       } else {
-               return luaL_argerror(L, 2, "supported values: stream, dgram, raw");
-       }
-
-       if (!proto) {
-               sock->protocol = 0;
-       } else if (!strcmp(proto, "icmp")) {
-               sock->protocol = IPPROTO_ICMP;
-       } else if (!strcmp(proto, "icmpv6")) {
-               sock->protocol = IPPROTO_ICMPV6;
-       } else {
-               return luaL_argerror(L, 3, "supported values: [empty], icmp, icmpv6");
-       }
-
-       /* create userdata */
-       luaL_getmetatable(L, NIXIO_META);
-       lua_setmetatable(L, -2);
-
-       sock->fd = socket(sock->domain, sock->type, sock->protocol);
-
-       if (sock->fd < 0) {
-               return nixio__perror_s(L);
-       }
-
-       return 1;
-}
-
-/**
- * close a socket
- */
-static int nixio_sock_close(lua_State *L) {
-       nixio_sock *sock = nixio__checksock(L);
-       int sockfd = sock->fd;
-       int res;
-       sock->fd = -1;
-
-       do {
-#ifndef __WINNT__
-               res = close(sockfd);
-#else
-               res = closesocket(sockfd);
-#endif
-       } while (res == -1 && errno == EINTR);
-
-       return nixio__pstatus_s(L, !res);
-}
-
-/**
- * garbage collector
- */
-static int nixio_sock__gc(lua_State *L) {
-       nixio_sock *sock = (nixio_sock*)luaL_checkudata(L, 1, NIXIO_META);
-       int res;
-       if (sock && sock->fd != -1) {
-               do {
-#ifndef __WINNT__
-                       res = close(sock->fd);
-#else
-                       res = closesocket(sock->fd);
-#endif
-               } while (res == -1 && errno == EINTR);
-       }
-       return 0;
-}
-
-/**
- * string representation
- */
-static int nixio_sock__tostring(lua_State *L) {
-       lua_pushfstring(L, "nixio socket %d", nixio__checksockfd(L));
-       return 1;
-}
-
-/**
- * shutdown a socket
- */
-static int nixio_sock_shutdown(lua_State *L) {
-       int sockfd = nixio__checksockfd(L);
-       const char *what = luaL_optlstring(L, 2, "rdwr", NULL);
-       int how;
-
-       if (!strcmp(what, "rdwr") || !strcmp(what, "both")) {
-               how = SHUT_RDWR;
-       } else if (!strcmp(what, "rd") || !strcmp(what, "read")) {
-               how = SHUT_RD;
-       } else if (!strcmp(what, "wr") || !strcmp(what, "write")) {
-               how = SHUT_WR;
-       } else {
-               return luaL_argerror(L, 2, "supported values: both, read, write");
-       }
-
-       return nixio__pstatus_s(L, !shutdown(sockfd, how));
-}
-
-/* module table */
-static const luaL_reg R[] = {
-       {"socket",              nixio_socket},
-       {NULL,                  NULL}
-};
-
-/* object table */
-static const luaL_reg M[] = {
-       {"close",               nixio_sock_close},
-       {"shutdown",    nixio_sock_shutdown},
-       {"__gc",                nixio_sock__gc},
-       {"__tostring",  nixio_sock__tostring},
-       {NULL,                  NULL}
-};
-
-void nixio_open_socket(lua_State *L) {
-       luaL_register(L, NULL, R);
-
-       lua_pushvalue(L, -2);
-       luaL_register(L, NULL, M);
-       lua_pop(L, 1);
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/sockopt.c b/package/luci/libs/luci-lib-nixio/src/sockopt.c
deleted file mode 100644 (file)
index cede884..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-
-#ifndef __WINNT__
-#include <net/if.h>
-#endif
-
-#include <sys/types.h>
-#include <sys/time.h>
-#include <string.h>
-#include <fcntl.h>
-#include <errno.h>
-
-#ifndef IPV6_ADD_MEMBERSHIP
-#define IPV6_ADD_MEMBERSHIP            IPV6_JOIN_GROUP
-#endif
-
-#ifndef IPV6_DROP_MEMBERSHIP
-#define IPV6_DROP_MEMBERSHIP   IPV6_LEAVE_GROUP
-#endif
-
-static int nixio_sock_fileno(lua_State *L) {
-       lua_pushinteger(L, nixio__checkfd(L, 1));
-       return 1;
-}
-
-/**
- * setblocking()
- */
-static int nixio_sock_setblocking(lua_State *L) {
-       int fd = nixio__checkfd(L, 1);
-       luaL_checkany(L, 2);
-       int set = lua_toboolean(L, 2);
-
-#ifndef __WINNT__
-
-       int flags = fcntl(fd, F_GETFL);
-
-       if (flags == -1) {
-               return nixio__perror(L);
-       }
-
-       if (!set) {
-               flags |= O_NONBLOCK;
-       } else {
-               flags &= ~O_NONBLOCK;
-       }
-
-       return nixio__pstatus(L, !fcntl(fd, F_SETFL, flags));
-
-#else /* __WINNT__ */
-
-       lua_getmetatable(L, 1);
-       luaL_getmetatable(L, NIXIO_META);
-       if (lua_equal(L, -1, -2)) {     /* Socket */
-               unsigned long val = !set;
-               return nixio__pstatus_s(L, !ioctlsocket(fd, FIONBIO, &val));
-       } else {                                        /* File */
-               WSASetLastError(WSAENOTSOCK);
-               return nixio__perror_s(L);
-       }
-
-#endif /* __WINNT__ */
-}
-
-static int nixio__gso_int(lua_State *L, int fd, int level, int opt, int set) {
-       int value;
-       socklen_t optlen = sizeof(value);
-       if (!set) {
-               if (!getsockopt(fd, level, opt, (char *)&value, &optlen)) {
-                       lua_pushinteger(L, value);
-                       return 1;
-               }
-       } else {
-               value = luaL_checkinteger(L, set);
-               if (!setsockopt(fd, level, opt, (char *)&value, optlen)) {
-                       lua_pushboolean(L, 1);
-                       return 1;
-               }
-       }
-       return nixio__perror_s(L);
-}
-
-static int nixio__gso_ling(lua_State *L, int fd, int level, int opt, int set) {
-       struct linger value;
-       socklen_t optlen = sizeof(value);
-       if (!set) {
-               if (!getsockopt(fd, level, opt, (char *)&value, &optlen)) {
-                       lua_pushinteger(L, value.l_onoff ? value.l_linger : 0);
-                       return 1;
-               }
-       } else {
-               value.l_linger = luaL_checkinteger(L, set);
-               value.l_onoff = value.l_linger ? 1 : 0;
-               if (!setsockopt(fd, level, opt, (char *)&value, optlen)) {
-                       lua_pushboolean(L, 1);
-                       return 1;
-               }
-       }
-       return nixio__perror_s(L);
-}
-
-static int nixio__gso_timev(lua_State *L, int fd, int level, int opt, int set) {
-       struct timeval value;
-       socklen_t optlen = sizeof(value);
-       if (!set) {
-               if (!getsockopt(fd, level, opt, (char *)&value, &optlen)) {
-                       lua_pushinteger(L, value.tv_sec);
-                       lua_pushinteger(L, value.tv_usec);
-                       return 2;
-               }
-       } else {
-               value.tv_sec  = luaL_checkinteger(L, set);
-               value.tv_usec = luaL_optinteger(L, set + 1, 0);
-               if (!setsockopt(fd, level, opt, (char *)&value, optlen)) {
-                       lua_pushboolean(L, 1);
-                       return 1;
-               }
-       }
-       return nixio__perror_s(L);
-}
-
-#ifdef SO_BINDTODEVICE
-
-static int nixio__gso_b(lua_State *L, int fd, int level, int opt, int set) {
-       if (!set) {
-               socklen_t optlen = IFNAMSIZ;
-               char ifname[IFNAMSIZ];
-               if (!getsockopt(fd, level, opt, (char *)ifname, &optlen)) {
-                       lua_pushlstring(L, ifname, optlen);
-                       return 1;
-               }
-       } else {
-               size_t valuelen;
-               const char *value = luaL_checklstring(L, set, &valuelen);
-               luaL_argcheck(L, valuelen <= IFNAMSIZ, set, "invalid interface name");
-               if (!setsockopt(fd, level, opt, (char *)value, valuelen)) {
-                       lua_pushboolean(L, 1);
-                       return 1;
-               }
-       }
-       return nixio__perror_s(L);
-}
-
-#endif /* SO_BINDTODEVICE */
-
-static int nixio__gso_mreq4(lua_State *L, int fd, int level, int opt, int set) {
-       struct ip_mreq value;
-       socklen_t optlen = sizeof(value);
-       if (!set) {
-               char buf[INET_ADDRSTRLEN];
-               if (!getsockopt(fd, level, opt, (char *)&value, &optlen)) {
-                       if (!inet_ntop(AF_INET, &value.imr_multiaddr, buf, sizeof(buf))) {
-                               return nixio__perror_s(L);
-                       }
-                       lua_pushstring(L, buf);
-                       if (!inet_ntop(AF_INET, &value.imr_interface, buf, sizeof(buf))) {
-                               return nixio__perror_s(L);
-                       }
-                       lua_pushstring(L, buf);
-                       return 2;
-               }
-       } else {
-               const char *maddr = luaL_checkstring(L, set);
-               const char *iface = luaL_optstring(L, set + 1, "0.0.0.0");
-               if (inet_pton(AF_INET, maddr, &value.imr_multiaddr) < 1) {
-                       return nixio__perror_s(L);
-               }
-               if (inet_pton(AF_INET, iface, &value.imr_interface) < 1) {
-                       return nixio__perror_s(L);
-               }
-               if (!setsockopt(fd, level, opt, (char *)&value, optlen)) {
-                       lua_pushboolean(L, 1);
-                       return 1;
-               }
-       }
-       return nixio__perror_s(L);
-}
-
-static int nixio__gso_mreq6(lua_State *L, int fd, int level, int opt, int set) {
-       struct ipv6_mreq val;
-       socklen_t optlen = sizeof(val);
-       if (!set) {
-               char buf[INET_ADDRSTRLEN];
-               if (!getsockopt(fd, level, opt, (char *)&val, &optlen)) {
-                       if (!inet_ntop(AF_INET6, &val.ipv6mr_multiaddr, buf, sizeof(buf))) {
-                               return nixio__perror_s(L);
-                       }
-                       lua_pushstring(L, buf);
-                       lua_pushinteger(L, val.ipv6mr_interface);
-                       return 2;
-               }
-       } else {
-               const char *maddr = luaL_checkstring(L, set);
-               if (inet_pton(AF_INET6, maddr, &val.ipv6mr_multiaddr) < 1) {
-                       return nixio__perror_s(L);
-               }
-               val.ipv6mr_interface = luaL_optlong(L, set + 1, 0);
-               if (!setsockopt(fd, level, opt, (char *)&val, optlen)) {
-                       lua_pushboolean(L, 1);
-                       return 1;
-               }
-       }
-       return nixio__perror_s(L);
-}
-
-/**
- * get/setsockopt() helper
- */
-static int nixio__getsetsockopt(lua_State *L, int set) {
-       nixio_sock *sock = nixio__checksock(L);
-       const char *level = luaL_optlstring(L, 2, "", NULL);
-       const char *option = luaL_optlstring(L, 3, "", NULL);
-       set = (set) ? 4 : 0;
-
-       if (!strcmp(level, "socket")) {
-               if (!strcmp(option, "keepalive")) {
-                       return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_KEEPALIVE, set);
-               } else if (!strcmp(option, "reuseaddr")) {
-                       return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_REUSEADDR, set);
-               } else if (!strcmp(option, "rcvbuf")) {
-                       return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_RCVBUF, set);
-               } else if (!strcmp(option, "sndbuf")) {
-                       return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_SNDBUF, set);
-               } else if (!strcmp(option, "priority")) {
-#ifdef SO_PRIORITY
-                       return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_PRIORITY, set);
-#else
-                       return nixio__pstatus(L, !(errno = ENOPROTOOPT));
-#endif
-               } else if (!strcmp(option, "broadcast")) {
-                       return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_BROADCAST, set);
-               } else if (!strcmp(option, "dontroute")) {
-                       return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_DONTROUTE, set);
-               } else if (!strcmp(option, "error")) {
-                       return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_ERROR, set);
-               } else if (!strcmp(option, "oobinline")) {
-                       return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_OOBINLINE, set);
-               } else if (!strcmp(option, "linger")) {
-                       return nixio__gso_ling(L, sock->fd, SOL_SOCKET, SO_LINGER, set);
-               } else if (!strcmp(option, "sndtimeo")) {
-                       return nixio__gso_timev(L, sock->fd, SOL_SOCKET, SO_SNDTIMEO, set);
-               } else if (!strcmp(option, "rcvtimeo")) {
-                       return nixio__gso_timev(L, sock->fd, SOL_SOCKET, SO_RCVTIMEO, set);
-               } else if (!strcmp(option, "bindtodevice")) {
-#ifdef SO_BINDTODEVICE
-                       return nixio__gso_b(L, sock->fd, SOL_SOCKET, SO_BINDTODEVICE, set);
-#else
-                       return nixio__pstatus(L, !(errno = ENOPROTOOPT));
-#endif
-               } else {
-                       return luaL_argerror(L, 3, "supported values: keepalive, reuseaddr,"
-                        " sndbuf, rcvbuf, priority, broadcast, linger, sndtimeo, rcvtimeo,"
-                        " dontroute, bindtodevice, error, oobinline"
-                       );
-               }
-       } else if (!strcmp(level, "tcp")) {
-               if (!strcmp(option, "cork")) {
-#ifdef TCP_CORK
-                       return nixio__gso_int(L, sock->fd, IPPROTO_TCP, TCP_CORK, set);
-#else
-                       return nixio__pstatus(L, !(errno = ENOPROTOOPT));
-#endif
-               } else if (!strcmp(option, "nodelay")) {
-                       return nixio__gso_int(L, sock->fd, IPPROTO_TCP, TCP_NODELAY, set);
-               } else {
-                       return luaL_argerror(L, 3, "supported values: cork, nodelay");
-               }
-       } else if (!strcmp(level, "ip")) {
-               if (!strcmp(option, "mtu")) {
-#ifdef IP_MTU
-                       return nixio__gso_int(L, sock->fd, IPPROTO_IP, IP_MTU, set);
-#else
-                       return nixio__pstatus(L, !(errno = ENOPROTOOPT));
-#endif
-               } else if (!strcmp(option, "hdrincl")) {
-                       return nixio__gso_int(L, sock->fd, IPPROTO_IP, IP_HDRINCL,
-                                       set);
-               } else if (!strcmp(option, "multicast_loop")) {
-                       return nixio__gso_int(L, sock->fd, IPPROTO_IP, IP_MULTICAST_LOOP,
-                                       set);
-               } else if (!strcmp(option, "multicast_ttl")) {
-                       return nixio__gso_int(L, sock->fd, IPPROTO_IP, IP_MULTICAST_TTL,
-                                       set);
-               } else if (!strcmp(option, "multicast_if")) {
-                       return nixio__gso_mreq4(L, sock->fd, IPPROTO_IP, IP_MULTICAST_IF,
-                                       set);
-               } else if (!strcmp(option, "add_membership")) {
-                       return nixio__gso_mreq4(L, sock->fd, IPPROTO_IP, IP_ADD_MEMBERSHIP,
-                                       set);
-               } else if (!strcmp(option, "drop_membership")) {
-                       return nixio__gso_mreq4(L, sock->fd, IPPROTO_IP, IP_DROP_MEMBERSHIP,
-                                       set);
-               } else {
-                       return luaL_argerror(L, 3,
-                               "supported values: hdrincl, mtu, multicast_loop, "
-                               "multicast_ttl, multicast_if, add_membership, drop_membership");
-               }
-       } else if (!strcmp(level, "ipv6")) {
-               if (!strcmp(option, "mtu")) {
-#ifdef IPV6_MTU
-                       return nixio__gso_int(L, sock->fd, IPPROTO_IPV6, IPV6_MTU, set);
-#else
-                       return nixio__pstatus(L, !(errno = ENOPROTOOPT));
-#endif
-               } else if (!strcmp(option, "v6only")) {
-#ifdef IPV6_V6ONLY
-                       return nixio__gso_int(L, sock->fd, IPPROTO_IPV6, IPV6_V6ONLY, set);
-#else
-                       return nixio__pstatus(L, !(errno = ENOPROTOOPT));
-#endif
-               } else if (!strcmp(option, "multicast_loop")) {
-                       return nixio__gso_int(L, sock->fd, IPPROTO_IPV6,
-                                       IPV6_MULTICAST_LOOP, set);
-               } else if (!strcmp(option, "multicast_hops")) {
-                       return nixio__gso_int(L, sock->fd, IPPROTO_IPV6,
-                                       IPV6_MULTICAST_HOPS, set);
-               } else if (!strcmp(option, "multicast_if")) {
-                       return nixio__gso_mreq6(L, sock->fd, IPPROTO_IPV6,
-                                       IPV6_MULTICAST_IF, set);
-               } else if (!strcmp(option, "add_membership")) {
-                       return nixio__gso_mreq6(L, sock->fd, IPPROTO_IPV6,
-                                       IPV6_ADD_MEMBERSHIP, set);
-               } else if (!strcmp(option, "drop_membership")) {
-                       return nixio__gso_mreq6(L, sock->fd, IPPROTO_IPV6,
-                                       IPV6_DROP_MEMBERSHIP, set);
-               } else {
-                       return luaL_argerror(L, 3,
-                               "supported values: v6only, mtu, multicast_loop, multicast_hops,"
-                               " multicast_if, add_membership, drop_membership");
-               }
-       } else {
-               return luaL_argerror(L, 2, "supported values: socket, tcp, ip, ipv6");
-       }
-}
-
-/**
- * getsockopt()
- */
-static int nixio_sock_getsockopt(lua_State *L) {
-       return nixio__getsetsockopt(L, 0);
-}
-
-/**
- * setsockopt()
- */
-static int nixio_sock_setsockopt(lua_State *L) {
-       return nixio__getsetsockopt(L, 1);
-}
-
-/* module table */
-static const luaL_reg M[] = {
-       {"setblocking", nixio_sock_setblocking},
-       {"getsockopt",  nixio_sock_getsockopt},
-       {"setsockopt",  nixio_sock_setsockopt},
-       {"getopt",              nixio_sock_getsockopt},
-       {"setopt",              nixio_sock_setsockopt},
-       {"fileno",              nixio_sock_fileno},
-       {NULL,                  NULL}
-};
-
-void nixio_open_sockopt(lua_State *L) {
-       lua_pushvalue(L, -2);
-       luaL_register(L, NULL, M);
-       lua_pop(L, 1);
-
-       luaL_getmetatable(L, NIXIO_FILE_META);
-       lua_pushcfunction(L, nixio_sock_setblocking);
-       lua_setfield(L, -2, "setblocking");
-       lua_pushcfunction(L, nixio_sock_fileno);
-       lua_setfield(L, -2, "fileno");
-       lua_pop(L, 1);
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/splice.c b/package/luci/libs/luci-lib-nixio/src/splice.c
deleted file mode 100644 (file)
index db63ea9..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#ifdef __linux__
-#define _GNU_SOURCE
-#endif
-
-#include "nixio.h"
-#include <fcntl.h>
-#include <string.h>
-#include <errno.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-
-#ifndef __WINNT__
-
-#ifndef BSD
-#include <sys/sendfile.h>
-#else
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/uio.h>
-#endif
-
-#ifdef _GNU_SOURCE
-#ifdef SPLICE_F_MOVE
-
-/* guess what sucks... */
-#ifdef __UCLIBC__
-#include <unistd.h>
-#include <sys/syscall.h>
-
-ssize_t splice(int __fdin, __off64_t *__offin, int __fdout,
-        __off64_t *__offout, size_t __len, unsigned int __flags) {
-#ifdef __NR_splice
-       return syscall(__NR_splice, __fdin, __offin, __fdout, __offout, __len, __flags);
-#else
-       (void)__fdin;
-       (void)__offin;
-       (void)__fdout;
-       (void)__offout;
-       (void)__len;
-       (void)__flags;
-       errno = ENOSYS;
-       return -1;
-#endif
-}
-
-#undef SPLICE_F_MOVE
-#undef SPLICE_F_NONBLOCK
-#undef SPLICE_F_MORE
-
-#define SPLICE_F_MOVE 1
-#define SPLICE_F_NONBLOCK 2
-#define SPLICE_F_MORE 4
-
-#endif /* __UCLIBC__ */
-
-/**
- * splice(fd_in, fd_out, length, flags)
- */
-static int nixio_splice(lua_State *L) {
-       int fd_in = nixio__checkfd(L, 1);
-       int fd_out = nixio__checkfd(L, 2);
-       size_t len = luaL_checkinteger(L, 3);
-       int flags = luaL_optinteger(L, 4, 0);
-       long spliced;
-
-       do {
-               spliced = splice(fd_in, NULL, fd_out, NULL, len, flags);
-       } while (spliced == -1 && errno == EINTR);
-
-       if (spliced < 0) {
-               return nixio__perror(L);
-       }
-
-       lua_pushinteger(L, spliced);
-       return 1;
-}
-
-/**
- * Translate splice flags to integer
- */
-static int nixio_splice_flags(lua_State *L) {
-       const int j = lua_gettop(L);
-       int flags = 0;
-       for (int i=1; i<=j; i++) {
-               const char *flag = luaL_checkstring(L, i);
-               if (!strcmp(flag, "move")) {
-                       flags |= SPLICE_F_MOVE;
-               } else if (!strcmp(flag, "nonblock")) {
-                       flags |= SPLICE_F_NONBLOCK;
-               } else if (!strcmp(flag, "more")) {
-                       flags |= SPLICE_F_MORE;
-               } else {
-                       return luaL_argerror(L, i, "supported values: "
-                        "move, nonblock, more");
-               }
-       }
-       lua_pushinteger(L, flags);
-
-       return 1;
-}
-
-#endif /* SPLICE_F_MOVE */
-#endif /* _GNU_SOURCE */
-
-/**
- * sendfile(outfd, infd, length)
- */
-static int nixio_sendfile(lua_State *L) {
-       int sock = nixio__checksockfd(L);
-       int infd = nixio__checkfd(L, 2);
-       size_t len = luaL_checkinteger(L, 3);
-       off_t spliced;
-
-#ifndef BSD
-       do {
-               spliced = sendfile(sock, infd, NULL, len);
-       } while (spliced == -1 && errno == EINTR);
-
-       if (spliced == -1) {
-               return nixio__perror(L);
-       }
-#else
-       int r;
-       const off_t offset = lseek(infd, 0, SEEK_CUR);
-
-       do {
-#ifdef __DARWIN__
-               r = sendfile(infd, sock, offset, (off_t *)&len, NULL, 0);
-               spliced = r;
-#else
-               r = sendfile(infd, sock, offset, len, NULL, &spliced, 0);
-#endif
-       } while (r == -1 && errno == EINTR);
-
-       if (r == -1) {
-               return nixio__perror(L);
-       }
-#endif
-
-       lua_pushinteger(L, spliced);
-       return 1;
-}
-
-/* module table */
-static const luaL_reg R[] = {
-#ifdef _GNU_SOURCE
-#ifdef SPLICE_F_MOVE
-       {"splice",                      nixio_splice},
-       {"splice_flags",        nixio_splice_flags},
-#endif
-#endif
-       {"sendfile",            nixio_sendfile},
-       {NULL,                  NULL}
-};
-
-
-void nixio_open_splice(lua_State *L) {
-       luaL_register(L, NULL, R);
-}
-
-#else /* __WINNT__ */
-
-void nixio_open_splice(lua_State *L) {
-}
-
-#endif /* !__WINNT__ */
diff --git a/package/luci/libs/luci-lib-nixio/src/syslog.c b/package/luci/libs/luci-lib-nixio/src/syslog.c
deleted file mode 100644 (file)
index 89f1b1d..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <string.h>
-
-#ifndef __WINNT__
-#include <syslog.h>
-
-
-static int nixio_openlog(lua_State *L) {
-       int option = 0, facility = LOG_USER;
-
-       const char *ident = luaL_optstring(L, 1, "nixio");
-       const int j = lua_gettop(L);
-       for (int i=2; i<=j; i++) {
-               const char *flag = luaL_checkstring(L, i);
-               if (!strcmp(flag, "cons")) {
-                       option |= LOG_CONS;
-               } else if (!strcmp(flag, "nowait")) {
-                       option |= LOG_NOWAIT;
-               } else if (!strcmp(flag, "pid")) {
-                       option |= LOG_PID;
-               } else if (!strcmp(flag, "perror")) {
-#ifdef LOG_PERROR
-                       option |= LOG_PERROR;
-#endif
-               } else if (!strcmp(flag, "ndelay")) {
-                       option |= LOG_NDELAY;
-               } else if (!strcmp(flag, "odelay")) {
-                       option |= LOG_ODELAY;
-               } else {
-                       return luaL_argerror(L, i,
-                               "supported values: cons, nowait, pid, perror, ndelay, odelay");
-               }
-       }
-
-       openlog(ident, option, facility);
-       return 0;
-}
-
-static int nixio_closelog(lua_State *L) {
-       closelog();
-       return 0;
-}
-
-static int nixio__syslogmask(lua_State *L, int dolog) {
-       int priority;
-
-       const char *flag = luaL_checkstring(L, 1);
-       if (!strcmp(flag, "emerg")) {
-               priority = LOG_EMERG;
-       } else if (!strcmp(flag, "alert")) {
-               priority = LOG_ALERT;
-       } else if (!strcmp(flag, "crit")) {
-               priority = LOG_CRIT;
-       } else if (!strcmp(flag, "err")) {
-               priority = LOG_ERR;
-       } else if (!strcmp(flag, "warning")) {
-               priority = LOG_WARNING;
-       } else if (!strcmp(flag, "notice")) {
-               priority = LOG_NOTICE;
-       } else if (!strcmp(flag, "info")) {
-               priority = LOG_INFO;
-       } else if (!strcmp(flag, "debug")) {
-               priority = LOG_DEBUG;
-       } else {
-               return luaL_argerror(L, 1, "supported values: emerg, alert, crit, err, "
-                               "warning, notice, info, debug");
-       }
-
-       if (dolog) {
-               const char *msg = luaL_checkstring(L, 2);
-               syslog(priority, "%s", msg);
-       } else {
-               setlogmask(LOG_UPTO(priority));
-       }
-       return 0;
-}
-
-static int nixio_setlogmask(lua_State *L) {
-       return nixio__syslogmask(L, 0);
-}
-
-static int nixio_syslog(lua_State *L) {
-       return nixio__syslogmask(L, 1);
-}
-
-/* module table */
-static const luaL_reg R[] = {
-       {"openlog",             nixio_openlog},
-       {"syslog",              nixio_syslog},
-       {"setlogmask",  nixio_setlogmask},
-       {"closelog",    nixio_closelog},
-       {NULL,                  NULL}
-};
-
-void nixio_open_syslog(lua_State *L) {
-       luaL_register(L, NULL, R);
-}
-
-#else /* __WINNT__ */
-
-void nixio_open_syslog(lua_State *L) {
-}
-
-#endif /* __WINNT__ */
diff --git a/package/luci/libs/luci-lib-nixio/src/tls-context.c b/package/luci/libs/luci-lib-nixio/src/tls-context.c
deleted file mode 100644 (file)
index e9a833f..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio-tls.h"
-#include <string.h>
-
-static SSL_CTX* nixio__checktlsctx(lua_State *L) {
-       SSL_CTX **ctx = (SSL_CTX **)luaL_checkudata(L, 1, NIXIO_TLS_CTX_META);
-       luaL_argcheck(L, *ctx, 1, "invalid context");
-       return *ctx;
-}
-
-static int nixio__tls_perror(lua_State *L, int code) {
-       lua_pushnil(L);
-       lua_pushinteger(L, code);
-       return 2;
-}
-
-static int nixio__tls_pstatus(lua_State *L, int code) {
-       if (code == 1) {
-               lua_pushboolean(L, 1);
-               return 1;
-       } else {
-               return nixio__tls_perror(L, code);
-       }
-}
-
-static int nixio_tls_ctx(lua_State * L) {
-       const char *method = luaL_optlstring(L, 1, "client", NULL);
-
-       luaL_getmetatable(L, NIXIO_TLS_CTX_META);
-       SSL_CTX **ctx = lua_newuserdata(L, sizeof(SSL_CTX *));
-       if (!ctx) {
-               return luaL_error(L, "out of memory");
-       }
-
-       /* create userdata */
-       lua_pushvalue(L, -2);
-       lua_setmetatable(L, -2);
-
-       if (!strcmp(method, "client")) {
-               *ctx = SSL_CTX_new(TLSv1_client_method());
-       } else if (!strcmp(method, "server")) {
-               *ctx = SSL_CTX_new(TLSv1_server_method());
-       } else {
-               return luaL_argerror(L, 1, "supported values: client, server");
-       }
-
-       if (!(*ctx)) {
-               return luaL_error(L, "unable to create TLS context");
-       }
-
-#ifdef WITH_CYASSL
-       SSL_CTX_set_verify(*ctx, SSL_VERIFY_NONE, NULL);
-#endif
-
-       return 1;
-}
-
-static int nixio_tls_ctx_create(lua_State *L) {
-       SSL_CTX *ctx = nixio__checktlsctx(L);
-       int fd = nixio__checkfd(L, 2);
-
-       lua_createtable(L, 0, 3);
-       nixio_tls_sock *sock = lua_newuserdata(L, sizeof(nixio_tls_sock));
-       if (!sock) {
-               return luaL_error(L, "out of memory");
-       }
-       memset(sock, 0, sizeof(nixio_tls_sock));
-
-       /* create userdata */
-       luaL_getmetatable(L, NIXIO_TLS_SOCK_META);
-       lua_pushvalue(L, -1);
-       lua_setmetatable(L, -3);
-
-       sock->socket = SSL_new(ctx);
-       if (!sock->socket) {
-               return nixio__tls_perror(L, 0);
-       }
-
-       if (SSL_set_fd(sock->socket, fd) != 1) {
-               return nixio__tls_perror(L, 0);
-       }
-
-       /* save context and socket to prevent GC from collecting them */
-       lua_setmetatable(L, -3);
-       lua_setfield(L, -2, "connection");
-
-       lua_pushvalue(L, 1);
-       lua_setfield(L, -2, "context");
-
-       lua_pushvalue(L, 2);
-       lua_setfield(L, -2, "socket");
-
-       return 1;
-}
-
-static int nixio_tls_ctx_set_cert(lua_State *L) {
-       SSL_CTX *ctx = nixio__checktlsctx(L);
-       const char *cert = luaL_checkstring(L, 2);
-       const char *type = luaL_optstring(L, 3, "chain");
-       int ktype;
-
-       if (!strcmp(type, "chain")) {
-               return nixio__tls_pstatus(L,
-                               SSL_CTX_use_certificate_chain_file(ctx, cert));
-       } else if (!strcmp(type, "pem")) {
-               ktype = SSL_FILETYPE_PEM;
-       } else if (!strcmp(type, "asn1")) {
-               ktype = SSL_FILETYPE_ASN1;
-       } else {
-               return luaL_argerror(L, 3, "supported values: chain, pem, asn1");
-       }
-
-       return nixio__tls_pstatus(L,
-                       SSL_CTX_use_certificate_file(ctx, cert, ktype));
-}
-
-static int nixio_tls_ctx_set_verify_locations(lua_State *L) {
-       SSL_CTX *ctx = nixio__checktlsctx(L);
-       const char *CAfile = luaL_optstring(L, 2, NULL);
-       const char *CApath = luaL_optstring(L, 3, NULL);
-       return nixio__tls_pstatus(L, SSL_CTX_load_verify_locations(ctx, 
-                                       CAfile, CApath));
-}
-
-static int nixio_tls_ctx_set_key(lua_State *L) {
-       SSL_CTX *ctx = nixio__checktlsctx(L);
-       const char *cert = luaL_checkstring(L, 2);
-       const char *type = luaL_optstring(L, 3, "pem");
-       int ktype;
-
-       if (!strcmp(type, "pem")) {
-               ktype = SSL_FILETYPE_PEM;
-       } else if (!strcmp(type, "asn1")) {
-               ktype = SSL_FILETYPE_ASN1;
-       } else {
-               return luaL_argerror(L, 3, "supported values: pem, asn1");
-       }
-
-       return nixio__tls_pstatus(L, SSL_CTX_use_PrivateKey_file(ctx, cert, ktype));
-}
-
-static int nixio_tls_ctx_set_ciphers(lua_State *L) {
-       SSL_CTX *ctx = nixio__checktlsctx(L);
-       size_t len;
-       const char *ciphers = luaL_checklstring(L, 2, &len);
-       luaL_argcheck(L, len < 255, 2, "cipher string too long");
-       return nixio__tls_pstatus(L, SSL_CTX_set_cipher_list(ctx, ciphers));
-}
-
-static int nixio_tls_ctx_set_verify(lua_State *L) {
-       SSL_CTX *ctx = nixio__checktlsctx(L);
-       const int j = lua_gettop(L);
-       int flags = 0;
-       for (int i=2; i<=j; i++) {
-               const char *flag = luaL_checkstring(L, i);
-               if (!strcmp(flag, "none")) {
-                       flags |= SSL_VERIFY_NONE;
-               } else if (!strcmp(flag, "peer")) {
-                       flags |= SSL_VERIFY_PEER;
-               } else if (!strcmp(flag, "verify_fail_if_no_peer_cert")) {
-                       flags |= SSL_VERIFY_FAIL_IF_NO_PEER_CERT;
-               } else if (!strcmp(flag, "client_once")) {
-                       flags |= SSL_VERIFY_CLIENT_ONCE;
-               } else {
-                       return luaL_argerror(L, i, "supported values: none, peer, "
-                        "verify_fail_if_no_peer_cert, client_once");
-               }
-       }
-       SSL_CTX_set_verify(ctx, flags, NULL);
-       return 0;
-}
-
-static int nixio_tls_ctx__gc(lua_State *L) {
-       SSL_CTX **ctx = (SSL_CTX **)luaL_checkudata(L, 1, NIXIO_TLS_CTX_META);
-       if (*ctx) {
-               SSL_CTX_free(*ctx);
-               *ctx = NULL;
-       }
-       return 0;
-}
-
-static int nixio_tls_ctx__tostring(lua_State *L) {
-       SSL_CTX *ctx = nixio__checktlsctx(L);
-       lua_pushfstring(L, "nixio TLS context: %p", ctx);
-       return 1;
-}
-
-/* module table */
-static const luaL_reg R[] = {
-       {"tls",         nixio_tls_ctx},
-       {NULL,                  NULL}
-};
-
-/* ctx function table */
-static const luaL_reg CTX_M[] = {
-       {"set_cert",                    nixio_tls_ctx_set_cert},
-       {"set_verify_locations",       nixio_tls_ctx_set_verify_locations},
-       {"set_key",                             nixio_tls_ctx_set_key},
-       {"set_ciphers",                 nixio_tls_ctx_set_ciphers},
-       {"set_verify",                  nixio_tls_ctx_set_verify},
-       {"create",                              nixio_tls_ctx_create},
-       {"__gc",                                nixio_tls_ctx__gc},
-       {"__tostring",                  nixio_tls_ctx__tostring},
-       {NULL,                                  NULL}
-};
-
-
-void nixio_open_tls_context(lua_State *L) {
-       /* initialize tls library */
-    SSL_load_error_strings();
-    SSL_library_init();
-
-    /* register module functions */
-    luaL_register(L, NULL, R);
-
-#if defined (WITH_AXTLS)
-    lua_pushliteral(L, "axtls");
-#elif defined (WITH_CYASSL)
-    lua_pushliteral(L, "cyassl");
-#else
-    lua_pushliteral(L, "openssl");
-#endif
-    lua_setfield(L, -2, "tls_provider");
-
-       /* create context metatable */
-       luaL_newmetatable(L, NIXIO_TLS_CTX_META);
-       lua_pushvalue(L, -1);
-       lua_setfield(L, -2, "__index");
-       luaL_register(L, NULL, CTX_M);
-       lua_setfield(L, -2, "meta_tls_context");
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/tls-crypto.c b/package/luci/libs/luci-lib-nixio/src/tls-crypto.c
deleted file mode 100644 (file)
index 714ec4e..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio-tls.h"
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-static int nixio_crypto_hash__init(lua_State *L, int hmac) {
-       const char *type = luaL_checkstring(L, 1);
-       nixio_hash *hash = lua_newuserdata(L, sizeof(nixio_hash));
-
-       if (!strcmp(type, "md5")) {
-               hash->type = NIXIO_HASH_MD5;
-               hash->digest_size = MD5_DIGEST_LENGTH;
-               hash->block_size = 64;
-               hash->ctx = malloc(sizeof(MD5_CTX));
-               if (!hash->ctx) {
-                       return luaL_error(L, NIXIO_OOM);
-               }
-               MD5_Init((MD5_CTX*)hash->ctx);
-               hash->init = (nixio_hash_initcb)MD5_Init;
-               hash->update = (nixio_hash_updatecb)MD5_Update;
-               hash->final = (nixio_hash_finalcb)MD5_Final;
-       } else if (!strcmp(type, "sha1")) {
-               hash->type = NIXIO_HASH_SHA1;
-               hash->digest_size = SHA_DIGEST_LENGTH;
-               hash->block_size = 64;
-               hash->ctx = malloc(sizeof(SHA_CTX));
-               if (!hash->ctx) {
-                       return luaL_error(L, NIXIO_OOM);
-               }
-               SHA1_Init((SHA_CTX*)hash->ctx);
-               hash->init = (nixio_hash_initcb)SHA1_Init;
-               hash->update = (nixio_hash_updatecb)SHA1_Update;
-               hash->final = (nixio_hash_finalcb)SHA1_Final;
-       } else {
-               luaL_argerror(L, 1, "supported values: md5, sha1");
-       }
-
-       luaL_getmetatable(L, NIXIO_CRYPTO_HASH_META);
-       lua_setmetatable(L, -2);
-
-       if (hmac) {
-               const char *key = luaL_checklstring(L, 2, &hash->key_size);
-               if (hash->key_size > hash->block_size) {
-                       hash->update(hash->ctx, key, hash->key_size);
-                       hash->final(hash->digest, hash->ctx);
-                       hash->init(hash->ctx);
-                       hash->key_size = hash->digest_size;
-                       memcpy(hash->key, hash->digest, hash->key_size);
-               } else {
-                       memcpy(hash->key, key, hash->key_size);
-               }
-
-               unsigned char pad[NIXIO_CRYPTO_BLOCK_SIZE];
-               for (uint i = 0; i < hash->block_size; i++) {
-                       pad[i] = (i < hash->key_size) ? (0x36 ^ hash->key[i]) : 0x36;
-               }
-               hash->update(hash->ctx, pad, hash->block_size);
-               hash->type |= NIXIO_HMAC_BIT;
-       }
-
-       return 1;
-}
-
-static int nixio_crypto_hash(lua_State *L) {
-       return nixio_crypto_hash__init(L, 0);
-}
-
-static int nixio_crypto_hmac(lua_State *L) {
-       return nixio_crypto_hash__init(L, 1);
-}
-
-static int nixio_crypto_hash_update(lua_State *L) {
-       nixio_hash *hash = luaL_checkudata(L, 1, NIXIO_CRYPTO_HASH_META);
-       if (hash->type) {
-               size_t len;
-               const char *chunk = luaL_checklstring(L, 2, &len);
-               hash->update(hash->ctx, chunk, len);
-               lua_pushvalue(L, 1);
-               return 1;
-       } else {
-               return luaL_error(L, "Tried to update finalized hash object.");
-       }
-}
-
-static int nixio_crypto_hash_final(lua_State *L) {
-       nixio_hash *hash = luaL_checkudata(L, 1, NIXIO_CRYPTO_HASH_META);
-       if (hash->type & NIXIO_HMAC_BIT) {
-               hash->final(hash->digest, hash->ctx);
-               hash->init(hash->ctx);
-
-               unsigned char pad[NIXIO_CRYPTO_BLOCK_SIZE];
-               for (uint i = 0; i < hash->block_size; i++) {
-                       pad[i] = (i < hash->key_size) ? (0x5c ^ hash->key[i]) : 0x5c;
-               }
-
-               hash->update(hash->ctx, pad, hash->block_size);
-               hash->update(hash->ctx, hash->digest, hash->digest_size);
-       }
-
-       if (hash->type) {
-               hash->type = NIXIO_HASH_NONE;
-               hash->final(hash->digest, hash->ctx);
-               free(hash->ctx);
-       }
-
-       char hashdigest[NIXIO_DIGEST_SIZE*2];
-       for (uint i=0; i < hash->digest_size; i++) {
-               hashdigest[2*i]   = nixio__bin2hex[(hash->digest[i] & 0xf0) >> 4];
-               hashdigest[2*i+1] = nixio__bin2hex[(hash->digest[i] & 0x0f)];
-       }
-
-       lua_pushlstring(L, hashdigest, hash->digest_size * 2);
-       memcpy(hashdigest, hash->digest, hash->digest_size);
-       lua_pushlstring(L, hashdigest, hash->digest_size);
-
-       return 2;
-}
-
-static int nixio_crypto_hash__gc(lua_State *L) {
-       nixio_hash *hash = luaL_checkudata(L, 1, NIXIO_CRYPTO_HASH_META);
-       if (hash->type) {
-               hash->final(hash->digest, hash->ctx);
-               free(hash->ctx);
-               hash->type = NIXIO_HASH_NONE;
-       }
-       return 0;
-}
-
-static int nixio_crypto_hash__tostring(lua_State *L) {
-       nixio_hash *hash = luaL_checkudata(L, 1, NIXIO_CRYPTO_HASH_META);
-       lua_pushfstring(L, "nixio hash object: %p", hash);
-       return 1;
-}
-
-
-/* module table */
-static const luaL_reg R[] = {
-       {"hash",                nixio_crypto_hash},
-       {"hmac",                nixio_crypto_hmac},
-       {NULL,                  NULL}
-};
-
-/* hash table */
-static const luaL_reg M[] = {
-       {"update",              nixio_crypto_hash_update},
-       {"final",               nixio_crypto_hash_final},
-       {"__gc",                nixio_crypto_hash__gc},
-       {"__tostring",  nixio_crypto_hash__tostring},
-       {NULL,                  NULL}
-};
-
-
-
-void nixio_open_tls_crypto(lua_State *L) {
-       luaL_newmetatable(L, NIXIO_CRYPTO_HASH_META);
-       luaL_register(L, NULL, M);
-       lua_pushvalue(L, -1);
-       lua_setfield(L, -2, "__index");
-       lua_pop(L, 1);
-
-       lua_newtable(L);
-    luaL_register(L, NULL, R);
-
-       lua_setfield(L, -2, "crypto");
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/tls-socket.c b/package/luci/libs/luci-lib-nixio/src/tls-socket.c
deleted file mode 100644 (file)
index fe4cb60..0000000
+++ /dev/null
@@ -1,263 +0,0 @@
- /*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio-tls.h"
-#include <string.h>
-#include <stdlib.h>
-
-static int nixio__tls_sock_perror(lua_State *L, SSL *sock, int code) {
-       lua_pushnil(L);
-       lua_pushinteger(L, SSL_get_error(sock, code));
-       return 2;
-}
-
-static int nixio__tls_sock_pstatus(lua_State *L, SSL *sock, int code) {
-       if (code > 0) {
-               lua_pushboolean(L, 1);
-               return 1;
-       } else {
-               return nixio__tls_sock_perror(L, sock, code);
-       }
-}
-
-static SSL* nixio__checktlssock(lua_State *L) {
-       if (lua_istable(L, 1)) {
-               lua_getfield(L, 1, "connection");
-               lua_replace(L, 1);
-       }
-       nixio_tls_sock *sock = luaL_checkudata(L, 1, NIXIO_TLS_SOCK_META);
-       luaL_argcheck(L, sock->socket, 1, "invalid context");
-       return sock->socket;
-}
-
-#ifndef WITH_AXTLS
-#define nixio_tls__check_connected(L) ;
-
-#define nixio_tls__set_connected(L, val) ;
-#else
-#define nixio_tls__check_connected(L) \
-       nixio_tls_sock *ctsock = luaL_checkudata(L, 1, NIXIO_TLS_SOCK_META);    \
-       if (!ctsock->connected) {       \
-               lua_pushnil(L);                 \
-               lua_pushinteger(L, 1);  \
-               return 2;                               \
-       }
-
-#define nixio_tls__set_connected(L, val) \
-((nixio_tls_sock*)luaL_checkudata(L, 1, NIXIO_TLS_SOCK_META))->connected = val;
-#endif /* WITH_AXTLS */
-
-static int nixio_tls_sock_recv(lua_State *L) {
-       SSL *sock = nixio__checktlssock(L);
-       nixio_tls__check_connected(L);
-       uint req = luaL_checkinteger(L, 2);
-
-       luaL_argcheck(L, req >= 0, 2, "out of range");
-
-       /* We limit the readsize to NIXIO_BUFFERSIZE */
-       req = (req > NIXIO_BUFFERSIZE) ? NIXIO_BUFFERSIZE : req;
-
-#ifndef WITH_AXTLS
-
-       char buffer[NIXIO_BUFFERSIZE];
-       int readc = SSL_read(sock, buffer, req);
-
-       if (readc < 0) {
-               return nixio__tls_sock_pstatus(L, sock, readc);
-       } else {
-               lua_pushlstring(L, buffer, readc);
-               return 1;
-       }
-
-#else
-
-       if (!req) {
-               lua_pushliteral(L, "");
-               return 1;
-       }
-
-       nixio_tls_sock *t = lua_touserdata(L, 1);
-
-       /* AXTLS doesn't handle buffering for us, so we have to hack around*/
-       if (req < t->pbufsiz) {
-               lua_pushlstring(L, t->pbufpos, req);
-               t->pbufpos += req;
-               t->pbufsiz -= req;
-               return 1;
-       } else {
-               uint8_t *axbuf;
-               int axread;
-
-               /* while handshake pending */
-               while ((axread = ssl_read(sock, &axbuf)) == SSL_OK);
-
-               if (t->pbufsiz) {
-                       lua_pushlstring(L, t->pbufpos, t->pbufsiz);
-               }
-
-               if (axread < 0) {
-                       /* There is an error */
-                       free(t->pbuffer);
-                       t->pbuffer = t->pbufpos = NULL;
-
-                       if (axread != SSL_ERROR_CONN_LOST) {
-                               t->pbufsiz = 0;
-                               return nixio__tls_sock_perror(L, sock, axread);
-                       } else {
-                               if (!t->pbufsiz) {
-                                       lua_pushliteral(L, "");
-                               } else {
-                                       t->pbufsiz = 0;
-                               }
-                       }
-               } else {
-                       int stillwant = req - t->pbufsiz;
-                       if (stillwant < axread) {
-                               /* we got more data than we need */
-                               lua_pushlstring(L, (char *)axbuf, stillwant);
-                               if(t->pbufsiz) {
-                                       lua_concat(L, 2);
-                               }
-
-                               /* remaining data goes into the buffer */
-                               t->pbufpos = t->pbuffer;
-                               t->pbufsiz = axread - stillwant;
-                               t->pbuffer = realloc(t->pbuffer, t->pbufsiz);
-                               if (!t->pbuffer) {
-                                       free(t->pbufpos);
-                                       t->pbufpos = NULL;
-                                       t->pbufsiz = 0;
-                                       return luaL_error(L, "out of memory");
-                               }
-
-                               t->pbufpos = t->pbuffer;
-                               memcpy(t->pbufpos, axbuf + stillwant, t->pbufsiz);
-                       } else {
-                               lua_pushlstring(L, (char *)axbuf, axread);
-                               if(t->pbufsiz) {
-                                       lua_concat(L, 2);
-                               }
-
-                               /* free buffer */
-                               free(t->pbuffer);
-                               t->pbuffer = t->pbufpos = NULL;
-                               t->pbufsiz = 0;
-                       }
-               }
-               return 1;
-       }
-
-#endif /* WITH_AXTLS */
-
-}
-
-static int nixio_tls_sock_send(lua_State *L) {
-       SSL *sock = nixio__checktlssock(L);
-       nixio_tls__check_connected(L);
-       size_t len;
-       ssize_t sent;
-       const char *data = luaL_checklstring(L, 2, &len);
-
-       if (lua_gettop(L) > 2) {
-               int offset = luaL_optint(L, 3, 0);
-               if (offset) {
-                       if (offset < len) {
-                               data += offset;
-                               len -= offset;
-                       } else {
-                               len = 0;
-                       }
-               }
-
-               unsigned int wlen = luaL_optint(L, 4, len);
-               if (wlen < len) {
-                       len = wlen;
-               }
-       }
-
-       sent = SSL_write(sock, data, len);
-       if (sent > 0) {
-               lua_pushinteger(L, sent);
-               return 1;
-       } else {
-               return nixio__tls_sock_pstatus(L, sock, sent);
-       }
-}
-
-static int nixio_tls_sock_accept(lua_State *L) {
-       SSL *sock = nixio__checktlssock(L);
-       const int stat = SSL_accept(sock);
-       nixio_tls__set_connected(L, stat == 1);
-       return nixio__tls_sock_pstatus(L, sock, stat);
-}
-
-static int nixio_tls_sock_connect(lua_State *L) {
-       SSL *sock = nixio__checktlssock(L);
-       const int stat = SSL_connect(sock);
-       nixio_tls__set_connected(L, stat == 1);
-       return nixio__tls_sock_pstatus(L, sock, stat);
-}
-
-static int nixio_tls_sock_shutdown(lua_State *L) {
-       SSL *sock = nixio__checktlssock(L);
-       nixio_tls__set_connected(L, 0);
-       return nixio__tls_sock_pstatus(L, sock, SSL_shutdown(sock));
-}
-
-static int nixio_tls_sock__gc(lua_State *L) {
-       nixio_tls_sock *sock = luaL_checkudata(L, 1, NIXIO_TLS_SOCK_META);
-       if (sock->socket) {
-               SSL_free(sock->socket);
-               sock->socket = NULL;
-#ifdef WITH_AXTLS
-               free(sock->pbuffer);
-#endif
-       }
-       return 0;
-}
-
-static int nixio_tls_sock__tostring(lua_State *L) {
-       SSL *sock = nixio__checktlssock(L);
-       lua_pushfstring(L, "nixio TLS connection: %p", sock);
-       return 1;
-}
-
-
-/* ctx function table */
-static const luaL_reg M[] = {
-       {"recv",                nixio_tls_sock_recv},
-       {"send",                nixio_tls_sock_send},
-       {"read",                nixio_tls_sock_recv},
-       {"write",               nixio_tls_sock_send},
-       {"accept",              nixio_tls_sock_accept},
-       {"connect",     nixio_tls_sock_connect},
-       {"shutdown",    nixio_tls_sock_shutdown},
-       {"__gc",                nixio_tls_sock__gc},
-       {"__tostring",  nixio_tls_sock__tostring},
-       {NULL,                  NULL}
-};
-
-
-void nixio_open_tls_socket(lua_State *L) {
-       /* create socket metatable */
-       luaL_newmetatable(L, NIXIO_TLS_SOCK_META);
-       luaL_register(L, NULL, M);
-       lua_pushvalue(L, -1);
-       lua_setfield(L, -2, "__index");
-       lua_setfield(L, -2, "meta_tls_socket");
-}
diff --git a/package/luci/libs/luci-lib-nixio/src/user.c b/package/luci/libs/luci-lib-nixio/src/user.c
deleted file mode 100644 (file)
index b701bac..0000000
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <sys/types.h>
-#include <errno.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-#ifndef __WINNT__
-
-#include <grp.h>
-#include <pwd.h>
-
-#ifndef BSD
-#ifndef NO_SHADOW
-#include <shadow.h>
-#endif
-#include <crypt.h>
-#endif
-
-int nixio__check_group(lua_State *L, int idx) {
-       if (lua_isnumber(L, idx)) {
-               return lua_tointeger(L, idx);
-       } else if (lua_isstring(L, idx)) {
-               struct group *g = getgrnam(lua_tostring(L, idx));
-               return (!g) ? -1 : g->gr_gid;
-       } else {
-               return luaL_argerror(L, idx, "supported values: <groupname>, <gid>");
-       }
-}
-
-int nixio__check_user(lua_State *L, int idx) {
-       if (lua_isnumber(L, idx)) {
-               return lua_tointeger(L, idx);
-       } else if (lua_isstring(L, idx)) {
-               struct passwd *p = getpwnam(lua_tostring(L, idx));
-               return (!p) ? -1 : p->pw_uid;
-       } else {
-               return luaL_argerror(L, idx, "supported values: <username>, <uid>");
-       }
-}
-
-
-static int nixio__push_group(lua_State *L, struct group *gr) {
-       lua_createtable(L, 0, 4);
-       lua_pushstring(L, gr->gr_name);
-       lua_setfield(L, -2, "name");
-       lua_pushstring(L, gr->gr_passwd);
-       lua_setfield(L, -2, "passwd");
-       lua_pushinteger(L, gr->gr_gid);
-       lua_setfield(L, -2, "gid");
-       lua_newtable(L);
-
-       for (int i=0; gr->gr_mem[i]; i++) {
-               lua_pushstring(L, gr->gr_mem[i]);
-               lua_rawseti(L, -2, i+1);
-       }
-
-       lua_setfield(L, -2, "mem");
-       return 1;
-}
-
-static int nixio_getgr(lua_State *L) {
-       struct group *gr;
-       errno = 0;
-       if (lua_isnumber(L, 1)) {
-               gr = getgrgid(lua_tointeger(L, 1));
-       } else if (lua_isstring(L, 1)) {
-               gr = getgrnam(lua_tostring(L, 1));
-       } else if (lua_isnoneornil(L, 1)) {
-               lua_newtable(L);
-               int i = 0;
-
-               setgrent();
-               while ((gr = getgrent())) {
-                       nixio__push_group(L, gr);
-                       lua_rawseti(L, -2, ++i);
-               }
-
-               if (errno) {
-                       return nixio__perror(L);
-               }
-
-               endgrent();
-               return 1;
-       } else {
-               return luaL_argerror(L, 1, "supported values: <groupname>, <gid>");
-       }
-
-       if (!gr) {
-               return nixio__perror(L);
-       } else {
-               return nixio__push_group(L, gr);
-       }
-}
-
-static int nixio__push_passwd(lua_State *L, struct passwd *pw) {
-       lua_createtable(L, 0, 7);
-       lua_pushstring(L, pw->pw_name);
-       lua_setfield(L, -2, "name");
-       lua_pushstring(L, pw->pw_passwd);
-       lua_setfield(L, -2, "passwd");
-       lua_pushinteger(L, pw->pw_gid);
-       lua_setfield(L, -2, "gid");
-       lua_pushinteger(L, pw->pw_uid);
-       lua_setfield(L, -2, "uid");
-       lua_pushstring(L, pw->pw_dir);
-       lua_setfield(L, -2, "dir");
-       lua_pushstring(L, pw->pw_gecos);
-       lua_setfield(L, -2, "gecos");
-       lua_pushstring(L, pw->pw_shell);
-       lua_setfield(L, -2, "shell");
-       return 1;
-}
-
-static int nixio_getpw(lua_State *L) {
-       struct passwd *pw;
-       errno = 0;
-       if (lua_isnumber(L, 1)) {
-               pw = getpwuid(lua_tointeger(L, 1));
-       } else if (lua_isstring(L, 1)) {
-               pw = getpwnam(lua_tostring(L, 1));
-       } else if (lua_isnoneornil(L, 1)) {
-               lua_newtable(L);
-               int i = 0;
-
-               setpwent();
-               while ((pw = getpwent())) {
-                       nixio__push_passwd(L, pw);
-                       lua_rawseti(L, -2, ++i);
-               }
-
-               if (errno) {
-                       return nixio__perror(L);
-               }
-
-               endpwent();
-               return 1;
-       } else {
-               return luaL_argerror(L, 1, "supported values: <username>, <uid>");
-       }
-
-       if (!pw) {
-               return nixio__perror(L);
-       } else {
-               return nixio__push_passwd(L, pw);
-       }
-}
-
-#ifndef BSD
-#ifndef NO_SHADOW
-static int nixio__push_spwd(lua_State *L, struct spwd *sp) {
-       lua_createtable(L, 0, 9);
-       lua_pushstring(L, sp->sp_namp);
-       lua_setfield(L, -2, "namp");
-       lua_pushinteger(L, sp->sp_expire);
-       lua_setfield(L, -2, "expire");
-       lua_pushinteger(L, sp->sp_flag);
-       lua_setfield(L, -2, "flag");
-       lua_pushinteger(L, sp->sp_inact);
-       lua_setfield(L, -2, "inact");
-       lua_pushinteger(L, sp->sp_lstchg);
-       lua_setfield(L, -2, "lstchg");
-       lua_pushinteger(L, sp->sp_max);
-       lua_setfield(L, -2, "max");
-       lua_pushinteger(L, sp->sp_min);
-       lua_setfield(L, -2, "min");
-       lua_pushinteger(L, sp->sp_warn);
-       lua_setfield(L, -2, "warn");
-       lua_pushstring(L, sp->sp_pwdp);
-       lua_setfield(L, -2, "pwdp");
-       return 1;
-}
-
-static int nixio_getsp(lua_State *L) {
-       struct spwd *sp;
-       errno = 0;
-       if (lua_isstring(L, 1)) {
-               sp = getspnam(lua_tostring(L, 1));
-       } else if (lua_isnoneornil(L, 1)) {
-               lua_newtable(L);
-               int i = 0;
-
-               setspent();
-               while ((sp = getspent())) {
-                       nixio__push_spwd(L, sp);
-                       lua_rawseti(L, -2, ++i);
-               }
-
-               if (errno) {
-                       return nixio__perror(L);
-               }
-
-               endspent();
-               return 1;
-       } else {
-               return luaL_argerror(L, 1, "supported values: <username>");
-       }
-
-       if (!sp) {
-               return nixio__perror(L);
-       } else {
-               return nixio__push_spwd(L, sp);
-       }
-}
-#endif /* !NO_SHADOW */
-#endif /* !BSD */
-
-static int nixio_crypt(lua_State *L) {
-       const char *key = luaL_checkstring(L, 1);
-       const char *salt = luaL_checkstring(L, 2);
-       const char *hash = crypt(key, salt);
-
-       if (hash) {
-               lua_pushstring(L, hash);
-       } else {
-               lua_pushnil(L);
-       }
-
-       return 1;
-}
-
-
-/* module table */
-static const luaL_reg R[] = {
-       {"crypt",               nixio_crypt},
-       {"getgr",               nixio_getgr},
-       {"getpw",               nixio_getpw},
-#ifndef BSD
-#ifndef NO_SHADOW
-       {"getsp",               nixio_getsp},
-#endif
-#endif
-       {NULL,                  NULL}
-};
-
-#else /* __WINNT__ */
-
-static const luaL_reg R[] = {
-               {NULL,                  NULL}
-};
-
-#endif
-
-void nixio_open_user(lua_State *L) {
-       luaL_register(L, NULL, R);
-}
diff --git a/package/luci/libs/luci-lib-px5g/Makefile b/package/luci/libs/luci-lib-px5g/Makefile
deleted file mode 100644 (file)
index eefee10..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=RSA/X.509 Key Generator (required for LuCId SSL support)
-LUCI_DEPENDS:=+liblua
-
-PKG_USE_MIPS16:=0
-PKG_LICENSE:=LGPL-2.1
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/libs/luci-lib-px5g/lua/px5g/util.lua b/package/luci/libs/luci-lib-px5g/lua/px5g/util.lua
deleted file mode 100644 (file)
index 0f07c81..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
---[[
- * px5g - Embedded x509 key and certificate generator based on PolarSSL
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public
- *  License, version 2.1 as published by the Free Software Foundation.
-]]--
-
-local nixio = require "nixio"
-local table = require "table"
-
-module "px5g.util"
-
-local preamble = {
-       key = "-----BEGIN RSA PRIVATE KEY-----",
-       cert = "-----BEGIN CERTIFICATE-----",
-       request = "-----BEGIN CERTIFICATE REQUEST-----"
-}
-
-local postamble = {
-       key = "-----END RSA PRIVATE KEY-----",
-       cert = "-----END CERTIFICATE-----",
-       request = "-----END CERTIFICATE REQUEST-----"
-}
-
-function der2pem(data, type)
-       local b64 = nixio.bin.b64encode(data)
-       
-       local outdata = {preamble[type]}
-       for i = 1, #b64, 64 do
-               outdata[#outdata + 1] = b64:sub(i, i + 63) 
-       end
-       outdata[#outdata + 1] = postamble[type]
-       outdata[#outdata + 1] = ""
-       
-       return table.concat(outdata, "\n")
-end
-
-function pem2der(data)
-       local b64 = data:gsub({["\n"] = "", ["%-%-%-%-%-.-%-%-%-%-%-"] = ""})
-       return nixio.bin.b64decode(b64)
-end
\ No newline at end of file
diff --git a/package/luci/libs/luci-lib-px5g/root/usr/sbin/px5g-genkeys b/package/luci/libs/luci-lib-px5g/root/usr/sbin/px5g-genkeys
deleted file mode 100755 (executable)
index 87a66bf..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/lua
-local keyfile = "/etc/nixio/rsa_main.der"
-local certfile = "/etc/nixio/cert_main.der"
-
-local px5g = require "px5g"
-local nixio = require "nixio"
-local fs = require "nixio.fs"
-local os = require "os"
-nixio.umask(77)
-
-if not fs.access(certfile) then
-       local key = px5g.genkey(2048)
-       fs.writefile(keyfile, key:asn1())
-
-       local cert = key:create_selfsigned(
-               {CN=nixio.uname().nodename, O="LuCI Keymaster"},
-               os.time(), os.time() + 3600 * 24 * 366 * 15)
-       fs.writefile(certfile, cert)
-end
diff --git a/package/luci/libs/luci-lib-px5g/src/Makefile b/package/luci/libs/luci-lib-px5g/src/Makefile
deleted file mode 100644 (file)
index 755565e..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-PX5G_CFLAGS = -I. -include polarssl/rsa.h -include polarssl/x509.h -std=gnu99
-PX5G_LDFLAGS = -llua -lm
-PX5G_OBJ = px5g.o library/bignum.o library/havege.o library/rsa.o library/sha1.o library/timing.o library/x509write.o
-PX5G_LIB = px5g.so
-
-%.o: %.c
-       $(CC) $(CPPFLAGS) $(CFLAGS) $(LUA_CFLAGS) $(PX5G_CFLAGS) $(FPIC) -c -o $@ $<
-
-compile: $(PX5G_OBJ)
-       $(CC) $(LDFLAGS) -shared -o $(PX5G_LIB) $(PX5G_OBJ) $(PX5G_LDFLAGS)
-
-install: compile
-       mkdir -p $(DESTDIR)/usr/lib/lua
-       cp $(PX5G_LIB) $(DESTDIR)/usr/lib/lua/$(PX5G_LIB)
-
-clean:
-       rm -f *.o *.so
diff --git a/package/luci/libs/luci-lib-px5g/src/library/bignum.c b/package/luci/libs/luci-lib-px5g/src/library/bignum.c
deleted file mode 100644 (file)
index d2a8ff4..0000000
+++ /dev/null
@@ -1,2010 +0,0 @@
-/*
- *  Multi-precision integer library
- *
- *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
- *
- *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *  
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *    * Neither the names of PolarSSL or XySSL nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *  
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- *  This MPI implementation is based on:
- *
- *  http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf
- *  http://www.stillhq.com/extracted/gnupg-api/mpi/
- *  http://math.libtomcrypt.com/files/tommath.pdf
- */
-
-#include "polarssl/config.h"
-
-#if defined(POLARSSL_BIGNUM_C)
-
-#include "polarssl/bignum.h"
-#include "polarssl/bn_mul.h"
-
-#include <string.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-#define ciL    ((int) sizeof(t_int))    /* chars in limb  */
-#define biL    (ciL << 3)               /* bits  in limb  */
-#define biH    (ciL << 2)               /* half limb size */
-
-/*
- * Convert between bits/chars and number of limbs
- */
-#define BITS_TO_LIMBS(i)  (((i) + biL - 1) / biL)
-#define CHARS_TO_LIMBS(i) (((i) + ciL - 1) / ciL)
-
-/*
- * Initialize one or more mpi
- */
-void mpi_init( mpi *X, ... )
-{
-    va_list args;
-
-    va_start( args, X );
-
-    while( X != NULL )
-    {
-        X->s = 1;
-        X->n = 0;
-        X->p = NULL;
-
-        X = va_arg( args, mpi* );
-    }
-
-    va_end( args );
-}
-
-/*
- * Unallocate one or more mpi
- */
-void mpi_free( mpi *X, ... )
-{
-    va_list args;
-
-    va_start( args, X );
-
-    while( X != NULL )
-    {
-        if( X->p != NULL )
-        {
-            memset( X->p, 0, X->n * ciL );
-            free( X->p );
-        }
-
-        X->s = 1;
-        X->n = 0;
-        X->p = NULL;
-
-        X = va_arg( args, mpi* );
-    }
-
-    va_end( args );
-}
-
-/*
- * Enlarge to the specified number of limbs
- */
-int mpi_grow( mpi *X, int nblimbs )
-{
-    t_int *p;
-
-    if( X->n < nblimbs )
-    {
-        if( ( p = (t_int *) malloc( nblimbs * ciL ) ) == NULL )
-            return( 1 );
-
-        memset( p, 0, nblimbs * ciL );
-
-        if( X->p != NULL )
-        {
-            memcpy( p, X->p, X->n * ciL );
-            memset( X->p, 0, X->n * ciL );
-            free( X->p );
-        }
-
-        X->n = nblimbs;
-        X->p = p;
-    }
-
-    return( 0 );
-}
-
-/*
- * Copy the contents of Y into X
- */
-int mpi_copy( mpi *X, mpi *Y )
-{
-    int ret, i;
-
-    if( X == Y )
-        return( 0 );
-
-    for( i = Y->n - 1; i > 0; i-- )
-        if( Y->p[i] != 0 )
-            break;
-    i++;
-
-    X->s = Y->s;
-
-    MPI_CHK( mpi_grow( X, i ) );
-
-    memset( X->p, 0, X->n * ciL );
-    memcpy( X->p, Y->p, i * ciL );
-
-cleanup:
-
-    return( ret );
-}
-
-/*
- * Swap the contents of X and Y
- */
-void mpi_swap( mpi *X, mpi *Y )
-{
-    mpi T;
-
-    memcpy( &T,  X, sizeof( mpi ) );
-    memcpy(  X,  Y, sizeof( mpi ) );
-    memcpy(  Y, &T, sizeof( mpi ) );
-}
-
-/*
- * Set value from integer
- */
-int mpi_lset( mpi *X, int z )
-{
-    int ret;
-
-    MPI_CHK( mpi_grow( X, 1 ) );
-    memset( X->p, 0, X->n * ciL );
-
-    X->p[0] = ( z < 0 ) ? -z : z;
-    X->s    = ( z < 0 ) ? -1 : 1;
-
-cleanup:
-
-    return( ret );
-}
-
-/*
- * Return the number of least significant bits
- */
-int mpi_lsb( mpi *X )
-{
-    int i, j, count = 0;
-
-    for( i = 0; i < X->n; i++ )
-        for( j = 0; j < (int) biL; j++, count++ )
-            if( ( ( X->p[i] >> j ) & 1 ) != 0 )
-                return( count );
-
-    return( 0 );
-}
-
-/*
- * Return the number of most significant bits
- */
-int mpi_msb( mpi *X )
-{
-    int i, j;
-
-    for( i = X->n - 1; i > 0; i-- )
-        if( X->p[i] != 0 )
-            break;
-
-    for( j = biL - 1; j >= 0; j-- )
-        if( ( ( X->p[i] >> j ) & 1 ) != 0 )
-            break;
-
-    return( ( i * biL ) + j + 1 );
-}
-
-/*
- * Return the total size in bytes
- */
-int mpi_size( mpi *X )
-{
-    return( ( mpi_msb( X ) + 7 ) >> 3 );
-}
-
-/*
- * Convert an ASCII character to digit value
- */
-static int mpi_get_digit( t_int *d, int radix, char c )
-{
-    *d = 255;
-
-    if( c >= 0x30 && c <= 0x39 ) *d = c - 0x30;
-    if( c >= 0x41 && c <= 0x46 ) *d = c - 0x37;
-    if( c >= 0x61 && c <= 0x66 ) *d = c - 0x57;
-
-    if( *d >= (t_int) radix )
-        return( POLARSSL_ERR_MPI_INVALID_CHARACTER );
-
-    return( 0 );
-}
-
-/*
- * Import from an ASCII string
- */
-int mpi_read_string( mpi *X, int radix, char *s )
-{
-    int ret, i, j, n;
-    t_int d;
-    mpi T;
-
-    if( radix < 2 || radix > 16 )
-        return( POLARSSL_ERR_MPI_BAD_INPUT_DATA );
-
-    mpi_init( &T, NULL );
-
-    if( radix == 16 )
-    {
-        n = BITS_TO_LIMBS( strlen( s ) << 2 );
-
-        MPI_CHK( mpi_grow( X, n ) );
-        MPI_CHK( mpi_lset( X, 0 ) );
-
-        for( i = strlen( s ) - 1, j = 0; i >= 0; i--, j++ )
-        {
-            if( i == 0 && s[i] == '-' )
-            {
-                X->s = -1;
-                break;
-            }
-
-            MPI_CHK( mpi_get_digit( &d, radix, s[i] ) );
-            X->p[j / (2 * ciL)] |= d << ( (j % (2 * ciL)) << 2 );
-        }
-    }
-    else
-    {
-        MPI_CHK( mpi_lset( X, 0 ) );
-
-        for( i = 0; i < (int) strlen( s ); i++ )
-        {
-            if( i == 0 && s[i] == '-' )
-            {
-                X->s = -1;
-                continue;
-            }
-
-            MPI_CHK( mpi_get_digit( &d, radix, s[i] ) );
-            MPI_CHK( mpi_mul_int( &T, X, radix ) );
-            MPI_CHK( mpi_add_int( X, &T, d ) );
-        }
-    }
-
-cleanup:
-
-    mpi_free( &T, NULL );
-
-    return( ret );
-}
-
-/*
- * Helper to write the digits high-order first
- */
-static int mpi_write_hlp( mpi *X, int radix, char **p )
-{
-    int ret;
-    t_int r;
-
-    if( radix < 2 || radix > 16 )
-        return( POLARSSL_ERR_MPI_BAD_INPUT_DATA );
-
-    MPI_CHK( mpi_mod_int( &r, X, radix ) );
-    MPI_CHK( mpi_div_int( X, NULL, X, radix ) );
-
-    if( mpi_cmp_int( X, 0 ) != 0 )
-        MPI_CHK( mpi_write_hlp( X, radix, p ) );
-
-    if( r < 10 )
-        *(*p)++ = (char)( r + 0x30 );
-    else
-        *(*p)++ = (char)( r + 0x37 );
-
-cleanup:
-
-    return( ret );
-}
-
-/*
- * Export into an ASCII string
- */
-int mpi_write_string( mpi *X, int radix, char *s, int *slen )
-{
-    int ret = 0, n;
-    char *p;
-    mpi T;
-
-    if( radix < 2 || radix > 16 )
-        return( POLARSSL_ERR_MPI_BAD_INPUT_DATA );
-
-    n = mpi_msb( X );
-    if( radix >=  4 ) n >>= 1;
-    if( radix >= 16 ) n >>= 1;
-    n += 3;
-
-    if( *slen < n )
-    {
-        *slen = n;
-        return( POLARSSL_ERR_MPI_BUFFER_TOO_SMALL );
-    }
-
-    p = s;
-    mpi_init( &T, NULL );
-
-    if( X->s == -1 )
-        *p++ = '-';
-
-    if( radix == 16 )
-    {
-        int c, i, j, k;
-
-        for( i = X->n - 1, k = 0; i >= 0; i-- )
-        {
-            for( j = ciL - 1; j >= 0; j-- )
-            {
-                c = ( X->p[i] >> (j << 3) ) & 0xFF;
-
-                if( c == 0 && k == 0 && (i + j) != 0 )
-                    continue;
-
-                p += sprintf( p, "%02X", c );
-                k = 1;
-            }
-        }
-    }
-    else
-    {
-        MPI_CHK( mpi_copy( &T, X ) );
-        MPI_CHK( mpi_write_hlp( &T, radix, &p ) );
-    }
-
-    *p++ = '\0';
-    *slen = p - s;
-
-cleanup:
-
-    mpi_free( &T, NULL );
-
-    return( ret );
-}
-
-/*
- * Read X from an opened file
- */
-int mpi_read_file( mpi *X, int radix, FILE *fin )
-{
-    t_int d;
-    int slen;
-    char *p;
-    char s[1024];
-
-    memset( s, 0, sizeof( s ) );
-    if( fgets( s, sizeof( s ) - 1, fin ) == NULL )
-        return( POLARSSL_ERR_MPI_FILE_IO_ERROR );
-
-    slen = strlen( s );
-    if( s[slen - 1] == '\n' ) { slen--; s[slen] = '\0'; }
-    if( s[slen - 1] == '\r' ) { slen--; s[slen] = '\0'; }
-
-    p = s + slen;
-    while( --p >= s )
-        if( mpi_get_digit( &d, radix, *p ) != 0 )
-            break;
-
-    return( mpi_read_string( X, radix, p + 1 ) );
-}
-
-/*
- * Write X into an opened file (or stdout if fout == NULL)
- */
-int mpi_write_file( char *p, mpi *X, int radix, FILE *fout )
-{
-    int n, ret;
-    size_t slen;
-    size_t plen;
-    char s[1024];
-
-    n = sizeof( s );
-    memset( s, 0, n );
-    n -= 2;
-
-    MPI_CHK( mpi_write_string( X, radix, s, (int *) &n ) );
-
-    if( p == NULL ) p = "";
-
-    plen = strlen( p );
-    slen = strlen( s );
-    s[slen++] = '\r';
-    s[slen++] = '\n';
-
-    if( fout != NULL )
-    {
-        if( fwrite( p, 1, plen, fout ) != plen ||
-            fwrite( s, 1, slen, fout ) != slen )
-            return( POLARSSL_ERR_MPI_FILE_IO_ERROR );
-    }
-    else
-        printf( "%s%s", p, s );
-
-cleanup:
-
-    return( ret );
-}
-
-/*
- * Import X from unsigned binary data, big endian
- */
-int mpi_read_binary( mpi *X, unsigned char *buf, int buflen )
-{
-    int ret, i, j, n;
-
-    for( n = 0; n < buflen; n++ )
-        if( buf[n] != 0 )
-            break;
-
-    MPI_CHK( mpi_grow( X, CHARS_TO_LIMBS( buflen - n ) ) );
-    MPI_CHK( mpi_lset( X, 0 ) );
-
-    for( i = buflen - 1, j = 0; i >= n; i--, j++ )
-        X->p[j / ciL] |= ((t_int) buf[i]) << ((j % ciL) << 3);
-
-cleanup:
-
-    return( ret );
-}
-
-/*
- * Export X into unsigned binary data, big endian
- */
-int mpi_write_binary( mpi *X, unsigned char *buf, int buflen )
-{
-    int i, j, n;
-
-    n = mpi_size( X );
-
-    if( buflen < n )
-        return( POLARSSL_ERR_MPI_BUFFER_TOO_SMALL );
-
-    memset( buf, 0, buflen );
-
-    for( i = buflen - 1, j = 0; n > 0; i--, j++, n-- )
-        buf[i] = (unsigned char)( X->p[j / ciL] >> ((j % ciL) << 3) );
-
-    return( 0 );
-}
-
-/*
- * Left-shift: X <<= count
- */
-int mpi_shift_l( mpi *X, int count )
-{
-    int ret, i, v0, t1;
-    t_int r0 = 0, r1;
-
-    v0 = count / (biL    );
-    t1 = count & (biL - 1);
-
-    i = mpi_msb( X ) + count;
-
-    if( X->n * (int) biL < i )
-        MPI_CHK( mpi_grow( X, BITS_TO_LIMBS( i ) ) );
-
-    ret = 0;
-
-    /*
-     * shift by count / limb_size
-     */
-    if( v0 > 0 )
-    {
-        for( i = X->n - 1; i >= v0; i-- )
-            X->p[i] = X->p[i - v0];
-
-        for( ; i >= 0; i-- )
-            X->p[i] = 0;
-    }
-
-    /*
-     * shift by count % limb_size
-     */
-    if( t1 > 0 )
-    {
-        for( i = v0; i < X->n; i++ )
-        {
-            r1 = X->p[i] >> (biL - t1);
-            X->p[i] <<= t1;
-            X->p[i] |= r0;
-            r0 = r1;
-        }
-    }
-
-cleanup:
-
-    return( ret );
-}
-
-/*
- * Right-shift: X >>= count
- */
-int mpi_shift_r( mpi *X, int count )
-{
-    int i, v0, v1;
-    t_int r0 = 0, r1;
-
-    v0 = count /  biL;
-    v1 = count & (biL - 1);
-
-    /*
-     * shift by count / limb_size
-     */
-    if( v0 > 0 )
-    {
-        for( i = 0; i < X->n - v0; i++ )
-            X->p[i] = X->p[i + v0];
-
-        for( ; i < X->n; i++ )
-            X->p[i] = 0;
-    }
-
-    /*
-     * shift by count % limb_size
-     */
-    if( v1 > 0 )
-    {
-        for( i = X->n - 1; i >= 0; i-- )
-        {
-            r1 = X->p[i] << (biL - v1);
-            X->p[i] >>= v1;
-            X->p[i] |= r0;
-            r0 = r1;
-        }
-    }
-
-    return( 0 );
-}
-
-/*
- * Compare unsigned values
- */
-int mpi_cmp_abs( mpi *X, mpi *Y )
-{
-    int i, j;
-
-    for( i = X->n - 1; i >= 0; i-- )
-        if( X->p[i] != 0 )
-            break;
-
-    for( j = Y->n - 1; j >= 0; j-- )
-        if( Y->p[j] != 0 )
-            break;
-
-    if( i < 0 && j < 0 )
-        return( 0 );
-
-    if( i > j ) return(  1 );
-    if( j > i ) return( -1 );
-
-    for( ; i >= 0; i-- )
-    {
-        if( X->p[i] > Y->p[i] ) return(  1 );
-        if( X->p[i] < Y->p[i] ) return( -1 );
-    }
-
-    return( 0 );
-}
-
-/*
- * Compare signed values
- */
-int mpi_cmp_mpi( mpi *X, mpi *Y )
-{
-    int i, j;
-
-    for( i = X->n - 1; i >= 0; i-- )
-        if( X->p[i] != 0 )
-            break;
-
-    for( j = Y->n - 1; j >= 0; j-- )
-        if( Y->p[j] != 0 )
-            break;
-
-    if( i < 0 && j < 0 )
-        return( 0 );
-
-    if( i > j ) return(  X->s );
-    if( j > i ) return( -X->s );
-
-    if( X->s > 0 && Y->s < 0 ) return(  1 );
-    if( Y->s > 0 && X->s < 0 ) return( -1 );
-
-    for( ; i >= 0; i-- )
-    {
-        if( X->p[i] > Y->p[i] ) return(  X->s );
-        if( X->p[i] < Y->p[i] ) return( -X->s );
-    }
-
-    return( 0 );
-}
-
-/*
- * Compare signed values
- */
-int mpi_cmp_int( mpi *X, int z )
-{
-    mpi Y;
-    t_int p[1];
-
-    *p  = ( z < 0 ) ? -z : z;
-    Y.s = ( z < 0 ) ? -1 : 1;
-    Y.n = 1;
-    Y.p = p;
-
-    return( mpi_cmp_mpi( X, &Y ) );
-}
-
-/*
- * Unsigned addition: X = |A| + |B|  (HAC 14.7)
- */
-int mpi_add_abs( mpi *X, mpi *A, mpi *B )
-{
-    int ret, i, j;
-    t_int *o, *p, c;
-
-    if( X == B )
-    {
-        mpi *T = A; A = X; B = T;
-    }
-
-    if( X != A )
-        MPI_CHK( mpi_copy( X, A ) );
-
-    for( j = B->n - 1; j >= 0; j-- )
-        if( B->p[j] != 0 )
-            break;
-
-    MPI_CHK( mpi_grow( X, j + 1 ) );
-
-    o = B->p; p = X->p; c = 0;
-
-    for( i = 0; i <= j; i++, o++, p++ )
-    {
-        *p +=  c; c  = ( *p <  c );
-        *p += *o; c += ( *p < *o );
-    }
-
-    while( c != 0 )
-    {
-        if( i >= X->n )
-        {
-            MPI_CHK( mpi_grow( X, i + 1 ) );
-            p = X->p + i;
-        }
-
-        *p += c; c = ( *p < c ); i++;
-    }
-
-cleanup:
-
-    return( ret );
-}
-
-/*
- * Helper for mpi subtraction
- */
-static void mpi_sub_hlp( int n, t_int *s, t_int *d )
-{
-    int i;
-    t_int c, z;
-
-    for( i = c = 0; i < n; i++, s++, d++ )
-    {
-        z = ( *d <  c );     *d -=  c;
-        c = ( *d < *s ) + z; *d -= *s;
-    }
-
-    while( c != 0 )
-    {
-        z = ( *d < c ); *d -= c;
-        c = z; i++; d++;
-    }
-}
-
-/*
- * Unsigned subtraction: X = |A| - |B|  (HAC 14.9)
- */
-int mpi_sub_abs( mpi *X, mpi *A, mpi *B )
-{
-    mpi TB;
-    int ret, n;
-
-    if( mpi_cmp_abs( A, B ) < 0 )
-        return( POLARSSL_ERR_MPI_NEGATIVE_VALUE );
-
-    mpi_init( &TB, NULL );
-
-    if( X == B )
-    {
-        MPI_CHK( mpi_copy( &TB, B ) );
-        B = &TB;
-    }
-
-    if( X != A )
-        MPI_CHK( mpi_copy( X, A ) );
-
-    ret = 0;
-
-    for( n = B->n - 1; n >= 0; n-- )
-        if( B->p[n] != 0 )
-            break;
-
-    mpi_sub_hlp( n + 1, B->p, X->p );
-
-cleanup:
-
-    mpi_free( &TB, NULL );
-
-    return( ret );
-}
-
-/*
- * Signed addition: X = A + B
- */
-int mpi_add_mpi( mpi *X, mpi *A, mpi *B )
-{
-    int ret, s = A->s;
-
-    if( A->s * B->s < 0 )
-    {
-        if( mpi_cmp_abs( A, B ) >= 0 )
-        {
-            MPI_CHK( mpi_sub_abs( X, A, B ) );
-            X->s =  s;
-        }
-        else
-        {
-            MPI_CHK( mpi_sub_abs( X, B, A ) );
-            X->s = -s;
-        }
-    }
-    else
-    {
-        MPI_CHK( mpi_add_abs( X, A, B ) );
-        X->s = s;
-    }
-
-cleanup:
-
-    return( ret );
-}
-
-/*
- * Signed subtraction: X = A - B
- */
-int mpi_sub_mpi( mpi *X, mpi *A, mpi *B )
-{
-    int ret, s = A->s;
-
-    if( A->s * B->s > 0 )
-    {
-        if( mpi_cmp_abs( A, B ) >= 0 )
-        {
-            MPI_CHK( mpi_sub_abs( X, A, B ) );
-            X->s =  s;
-        }
-        else
-        {
-            MPI_CHK( mpi_sub_abs( X, B, A ) );
-            X->s = -s;
-        }
-    }
-    else
-    {
-        MPI_CHK( mpi_add_abs( X, A, B ) );
-        X->s = s;
-    }
-
-cleanup:
-
-    return( ret );
-}
-
-/*
- * Signed addition: X = A + b
- */
-int mpi_add_int( mpi *X, mpi *A, int b )
-{
-    mpi _B;
-    t_int p[1];
-
-    p[0] = ( b < 0 ) ? -b : b;
-    _B.s = ( b < 0 ) ? -1 : 1;
-    _B.n = 1;
-    _B.p = p;
-
-    return( mpi_add_mpi( X, A, &_B ) );
-}
-
-/*
- * Signed subtraction: X = A - b
- */
-int mpi_sub_int( mpi *X, mpi *A, int b )
-{
-    mpi _B;
-    t_int p[1];
-
-    p[0] = ( b < 0 ) ? -b : b;
-    _B.s = ( b < 0 ) ? -1 : 1;
-    _B.n = 1;
-    _B.p = p;
-
-    return( mpi_sub_mpi( X, A, &_B ) );
-}
-
-/*
- * Helper for mpi multiplication
- */ 
-static void mpi_mul_hlp( int i, t_int *s, t_int *d, t_int b )
-{
-    t_int c = 0, t = 0;
-
-#if defined(MULADDC_HUIT)
-    for( ; i >= 8; i -= 8 )
-    {
-        MULADDC_INIT
-        MULADDC_HUIT
-        MULADDC_STOP
-    }
-
-    for( ; i > 0; i-- )
-    {
-        MULADDC_INIT
-        MULADDC_CORE
-        MULADDC_STOP
-    }
-#else
-    for( ; i >= 16; i -= 16 )
-    {
-        MULADDC_INIT
-        MULADDC_CORE   MULADDC_CORE
-        MULADDC_CORE   MULADDC_CORE
-        MULADDC_CORE   MULADDC_CORE
-        MULADDC_CORE   MULADDC_CORE
-
-        MULADDC_CORE   MULADDC_CORE
-        MULADDC_CORE   MULADDC_CORE
-        MULADDC_CORE   MULADDC_CORE
-        MULADDC_CORE   MULADDC_CORE
-        MULADDC_STOP
-    }
-
-    for( ; i >= 8; i -= 8 )
-    {
-        MULADDC_INIT
-        MULADDC_CORE   MULADDC_CORE
-        MULADDC_CORE   MULADDC_CORE
-
-        MULADDC_CORE   MULADDC_CORE
-        MULADDC_CORE   MULADDC_CORE
-        MULADDC_STOP
-    }
-
-    for( ; i > 0; i-- )
-    {
-        MULADDC_INIT
-        MULADDC_CORE
-        MULADDC_STOP
-    }
-#endif
-
-    t++;
-
-    do {
-        *d += c; c = ( *d < c ); d++;
-    }
-    while( c != 0 );
-}
-
-/*
- * Baseline multiplication: X = A * B  (HAC 14.12)
- */
-int mpi_mul_mpi( mpi *X, mpi *A, mpi *B )
-{
-    int ret, i, j;
-    mpi TA, TB;
-
-    mpi_init( &TA, &TB, NULL );
-
-    if( X == A ) { MPI_CHK( mpi_copy( &TA, A ) ); A = &TA; }
-    if( X == B ) { MPI_CHK( mpi_copy( &TB, B ) ); B = &TB; }
-
-    for( i = A->n - 1; i >= 0; i-- )
-        if( A->p[i] != 0 )
-            break;
-
-    for( j = B->n - 1; j >= 0; j-- )
-        if( B->p[j] != 0 )
-            break;
-
-    MPI_CHK( mpi_grow( X, i + j + 2 ) );
-    MPI_CHK( mpi_lset( X, 0 ) );
-
-    for( i++; j >= 0; j-- )
-        mpi_mul_hlp( i, A->p, X->p + j, B->p[j] );
-
-    X->s = A->s * B->s;
-
-cleanup:
-
-    mpi_free( &TB, &TA, NULL );
-
-    return( ret );
-}
-
-/*
- * Baseline multiplication: X = A * b
- */
-int mpi_mul_int( mpi *X, mpi *A, t_int b )
-{
-    mpi _B;
-    t_int p[1];
-
-    _B.s = 1;
-    _B.n = 1;
-    _B.p = p;
-    p[0] = b;
-
-    return( mpi_mul_mpi( X, A, &_B ) );
-}
-
-/*
- * Division by mpi: A = Q * B + R  (HAC 14.20)
- */
-int mpi_div_mpi( mpi *Q, mpi *R, mpi *A, mpi *B )
-{
-    int ret, i, n, t, k;
-    mpi X, Y, Z, T1, T2;
-
-    if( mpi_cmp_int( B, 0 ) == 0 )
-        return( POLARSSL_ERR_MPI_DIVISION_BY_ZERO );
-
-    mpi_init( &X, &Y, &Z, &T1, &T2, NULL );
-
-    if( mpi_cmp_abs( A, B ) < 0 )
-    {
-        if( Q != NULL ) MPI_CHK( mpi_lset( Q, 0 ) );
-        if( R != NULL ) MPI_CHK( mpi_copy( R, A ) );
-        return( 0 );
-    }
-
-    MPI_CHK( mpi_copy( &X, A ) );
-    MPI_CHK( mpi_copy( &Y, B ) );
-    X.s = Y.s = 1;
-
-    MPI_CHK( mpi_grow( &Z, A->n + 2 ) );
-    MPI_CHK( mpi_lset( &Z,  0 ) );
-    MPI_CHK( mpi_grow( &T1, 2 ) );
-    MPI_CHK( mpi_grow( &T2, 3 ) );
-
-    k = mpi_msb( &Y ) % biL;
-    if( k < (int) biL - 1 )
-    {
-        k = biL - 1 - k;
-        MPI_CHK( mpi_shift_l( &X, k ) );
-        MPI_CHK( mpi_shift_l( &Y, k ) );
-    }
-    else k = 0;
-
-    n = X.n - 1;
-    t = Y.n - 1;
-    mpi_shift_l( &Y, biL * (n - t) );
-
-    while( mpi_cmp_mpi( &X, &Y ) >= 0 )
-    {
-        Z.p[n - t]++;
-        mpi_sub_mpi( &X, &X, &Y );
-    }
-    mpi_shift_r( &Y, biL * (n - t) );
-
-    for( i = n; i > t ; i-- )
-    {
-        if( X.p[i] >= Y.p[t] )
-            Z.p[i - t - 1] = ~0;
-        else
-        {
-#if defined(POLARSSL_HAVE_LONGLONG)
-            t_dbl r;
-
-            r  = (t_dbl) X.p[i] << biL;
-            r |= (t_dbl) X.p[i - 1];
-            r /= Y.p[t];
-            if( r > ((t_dbl) 1 << biL) - 1)
-                r = ((t_dbl) 1 << biL) - 1;
-
-            Z.p[i - t - 1] = (t_int) r;
-#else
-            /*
-             * __udiv_qrnnd_c, from gmp/longlong.h
-             */
-            t_int q0, q1, r0, r1;
-            t_int d0, d1, d, m;
-
-            d  = Y.p[t];
-            d0 = ( d << biH ) >> biH;
-            d1 = ( d >> biH );
-
-            q1 = X.p[i] / d1;
-            r1 = X.p[i] - d1 * q1;
-            r1 <<= biH;
-            r1 |= ( X.p[i - 1] >> biH );
-
-            m = q1 * d0;
-            if( r1 < m )
-            {
-                q1--, r1 += d;
-                while( r1 >= d && r1 < m )
-                    q1--, r1 += d;
-            }
-            r1 -= m;
-
-            q0 = r1 / d1;
-            r0 = r1 - d1 * q0;
-            r0 <<= biH;
-            r0 |= ( X.p[i - 1] << biH ) >> biH;
-
-            m = q0 * d0;
-            if( r0 < m )
-            {
-                q0--, r0 += d;
-                while( r0 >= d && r0 < m )
-                    q0--, r0 += d;
-            }
-            r0 -= m;
-
-            Z.p[i - t - 1] = ( q1 << biH ) | q0;
-#endif
-        }
-
-        Z.p[i - t - 1]++;
-        do
-        {
-            Z.p[i - t - 1]--;
-
-            MPI_CHK( mpi_lset( &T1, 0 ) );
-            T1.p[0] = (t < 1) ? 0 : Y.p[t - 1];
-            T1.p[1] = Y.p[t];
-            MPI_CHK( mpi_mul_int( &T1, &T1, Z.p[i - t - 1] ) );
-
-            MPI_CHK( mpi_lset( &T2, 0 ) );
-            T2.p[0] = (i < 2) ? 0 : X.p[i - 2];
-            T2.p[1] = (i < 1) ? 0 : X.p[i - 1];
-            T2.p[2] = X.p[i];
-        }
-        while( mpi_cmp_mpi( &T1, &T2 ) > 0 );
-
-        MPI_CHK( mpi_mul_int( &T1, &Y, Z.p[i - t - 1] ) );
-        MPI_CHK( mpi_shift_l( &T1,  biL * (i - t - 1) ) );
-        MPI_CHK( mpi_sub_mpi( &X, &X, &T1 ) );
-
-        if( mpi_cmp_int( &X, 0 ) < 0 )
-        {
-            MPI_CHK( mpi_copy( &T1, &Y ) );
-            MPI_CHK( mpi_shift_l( &T1, biL * (i - t - 1) ) );
-            MPI_CHK( mpi_add_mpi( &X, &X, &T1 ) );
-            Z.p[i - t - 1]--;
-        }
-    }
-
-    if( Q != NULL )
-    {
-        mpi_copy( Q, &Z );
-        Q->s = A->s * B->s;
-    }
-
-    if( R != NULL )
-    {
-        mpi_shift_r( &X, k );
-        mpi_copy( R, &X );
-
-        R->s = A->s;
-        if( mpi_cmp_int( R, 0 ) == 0 )
-            R->s = 1;
-    }
-
-cleanup:
-
-    mpi_free( &X, &Y, &Z, &T1, &T2, NULL );
-
-    return( ret );
-}
-
-/*
- * Division by int: A = Q * b + R
- *
- * Returns 0 if successful
- *         1 if memory allocation failed
- *         POLARSSL_ERR_MPI_DIVISION_BY_ZERO if b == 0
- */
-int mpi_div_int( mpi *Q, mpi *R, mpi *A, int b )
-{
-    mpi _B;
-    t_int p[1];
-
-    p[0] = ( b < 0 ) ? -b : b;
-    _B.s = ( b < 0 ) ? -1 : 1;
-    _B.n = 1;
-    _B.p = p;
-
-    return( mpi_div_mpi( Q, R, A, &_B ) );
-}
-
-/*
- * Modulo: R = A mod B
- */
-int mpi_mod_mpi( mpi *R, mpi *A, mpi *B )
-{
-    int ret;
-
-    MPI_CHK( mpi_div_mpi( NULL, R, A, B ) );
-
-    while( mpi_cmp_int( R, 0 ) < 0 )
-      MPI_CHK( mpi_add_mpi( R, R, B ) );
-
-    while( mpi_cmp_mpi( R, B ) >= 0 )
-      MPI_CHK( mpi_sub_mpi( R, R, B ) );
-
-cleanup:
-
-    return( ret );
-}
-
-/*
- * Modulo: r = A mod b
- */
-int mpi_mod_int( t_int *r, mpi *A, int b )
-{
-    int i;
-    t_int x, y, z;
-
-    if( b == 0 )
-        return( POLARSSL_ERR_MPI_DIVISION_BY_ZERO );
-
-    if( b < 0 )
-        b = -b;
-
-    /*
-     * handle trivial cases
-     */
-    if( b == 1 )
-    {
-        *r = 0;
-        return( 0 );
-    }
-
-    if( b == 2 )
-    {
-        *r = A->p[0] & 1;
-        return( 0 );
-    }
-
-    /*
-     * general case
-     */
-    for( i = A->n - 1, y = 0; i >= 0; i-- )
-    {
-        x  = A->p[i];
-        y  = ( y << biH ) | ( x >> biH );
-        z  = y / b;
-        y -= z * b;
-
-        x <<= biH;
-        y  = ( y << biH ) | ( x >> biH );
-        z  = y / b;
-        y -= z * b;
-    }
-
-    *r = y;
-
-    return( 0 );
-}
-
-/*
- * Fast Montgomery initialization (thanks to Tom St Denis)
- */
-static void mpi_montg_init( t_int *mm, mpi *N )
-{
-    t_int x, m0 = N->p[0];
-
-    x  = m0;
-    x += ( ( m0 + 2 ) & 4 ) << 1;
-    x *= ( 2 - ( m0 * x ) );
-
-    if( biL >= 16 ) x *= ( 2 - ( m0 * x ) );
-    if( biL >= 32 ) x *= ( 2 - ( m0 * x ) );
-    if( biL >= 64 ) x *= ( 2 - ( m0 * x ) );
-
-    *mm = ~x + 1;
-}
-
-/*
- * Montgomery multiplication: A = A * B * R^-1 mod N  (HAC 14.36)
- */
-static void mpi_montmul( mpi *A, mpi *B, mpi *N, t_int mm, mpi *T )
-{
-    int i, n, m;
-    t_int u0, u1, *d;
-
-    memset( T->p, 0, T->n * ciL );
-
-    d = T->p;
-    n = N->n;
-    m = ( B->n < n ) ? B->n : n;
-
-    for( i = 0; i < n; i++ )
-    {
-        /*
-         * T = (T + u0*B + u1*N) / 2^biL
-         */
-        u0 = A->p[i];
-        u1 = ( d[0] + u0 * B->p[0] ) * mm;
-
-        mpi_mul_hlp( m, B->p, d, u0 );
-        mpi_mul_hlp( n, N->p, d, u1 );
-
-        *d++ = u0; d[n + 1] = 0;
-    }
-
-    memcpy( A->p, d, (n + 1) * ciL );
-
-    if( mpi_cmp_abs( A, N ) >= 0 )
-        mpi_sub_hlp( n, N->p, A->p );
-    else
-        /* prevent timing attacks */
-        mpi_sub_hlp( n, A->p, T->p );
-}
-
-/*
- * Montgomery reduction: A = A * R^-1 mod N
- */
-static void mpi_montred( mpi *A, mpi *N, t_int mm, mpi *T )
-{
-    t_int z = 1;
-    mpi U;
-
-    U.n = U.s = z;
-    U.p = &z;
-
-    mpi_montmul( A, &U, N, mm, T );
-}
-
-/*
- * Sliding-window exponentiation: X = A^E mod N  (HAC 14.85)
- */
-int mpi_exp_mod( mpi *X, mpi *A, mpi *E, mpi *N, mpi *_RR )
-{
-    int ret, i, j, wsize, wbits;
-    int bufsize, nblimbs, nbits;
-    t_int ei, mm, state;
-    mpi RR, T, W[64];
-
-    if( mpi_cmp_int( N, 0 ) < 0 || ( N->p[0] & 1 ) == 0 )
-        return( POLARSSL_ERR_MPI_BAD_INPUT_DATA );
-
-    /*
-     * Init temps and window size
-     */
-    mpi_montg_init( &mm, N );
-    mpi_init( &RR, &T, NULL );
-    memset( W, 0, sizeof( W ) );
-
-    i = mpi_msb( E );
-
-    wsize = ( i > 671 ) ? 6 : ( i > 239 ) ? 5 :
-            ( i >  79 ) ? 4 : ( i >  23 ) ? 3 : 1;
-
-    j = N->n + 1;
-    MPI_CHK( mpi_grow( X, j ) );
-    MPI_CHK( mpi_grow( &W[1],  j ) );
-    MPI_CHK( mpi_grow( &T, j * 2 ) );
-
-    /*
-     * If 1st call, pre-compute R^2 mod N
-     */
-    if( _RR == NULL || _RR->p == NULL )
-    {
-        MPI_CHK( mpi_lset( &RR, 1 ) );
-        MPI_CHK( mpi_shift_l( &RR, N->n * 2 * biL ) );
-        MPI_CHK( mpi_mod_mpi( &RR, &RR, N ) );
-
-        if( _RR != NULL )
-            memcpy( _RR, &RR, sizeof( mpi ) );
-    }
-    else
-        memcpy( &RR, _RR, sizeof( mpi ) );
-
-    /*
-     * W[1] = A * R^2 * R^-1 mod N = A * R mod N
-     */
-    if( mpi_cmp_mpi( A, N ) >= 0 )
-        mpi_mod_mpi( &W[1], A, N );
-    else   mpi_copy( &W[1], A );
-
-    mpi_montmul( &W[1], &RR, N, mm, &T );
-
-    /*
-     * X = R^2 * R^-1 mod N = R mod N
-     */
-    MPI_CHK( mpi_copy( X, &RR ) );
-    mpi_montred( X, N, mm, &T );
-
-    if( wsize > 1 )
-    {
-        /*
-         * W[1 << (wsize - 1)] = W[1] ^ (wsize - 1)
-         */
-        j =  1 << (wsize - 1);
-
-        MPI_CHK( mpi_grow( &W[j], N->n + 1 ) );
-        MPI_CHK( mpi_copy( &W[j], &W[1]    ) );
-
-        for( i = 0; i < wsize - 1; i++ )
-            mpi_montmul( &W[j], &W[j], N, mm, &T );
-    
-        /*
-         * W[i] = W[i - 1] * W[1]
-         */
-        for( i = j + 1; i < (1 << wsize); i++ )
-        {
-            MPI_CHK( mpi_grow( &W[i], N->n + 1 ) );
-            MPI_CHK( mpi_copy( &W[i], &W[i - 1] ) );
-
-            mpi_montmul( &W[i], &W[1], N, mm, &T );
-        }
-    }
-
-    nblimbs = E->n;
-    bufsize = 0;
-    nbits   = 0;
-    wbits   = 0;
-    state   = 0;
-
-    while( 1 )
-    {
-        if( bufsize == 0 )
-        {
-            if( nblimbs-- == 0 )
-                break;
-
-            bufsize = sizeof( t_int ) << 3;
-        }
-
-        bufsize--;
-
-        ei = (E->p[nblimbs] >> bufsize) & 1;
-
-        /*
-         * skip leading 0s
-         */
-        if( ei == 0 && state == 0 )
-            continue;
-
-        if( ei == 0 && state == 1 )
-        {
-            /*
-             * out of window, square X
-             */
-            mpi_montmul( X, X, N, mm, &T );
-            continue;
-        }
-
-        /*
-         * add ei to current window
-         */
-        state = 2;
-
-        nbits++;
-        wbits |= (ei << (wsize - nbits));
-
-        if( nbits == wsize )
-        {
-            /*
-             * X = X^wsize R^-1 mod N
-             */
-            for( i = 0; i < wsize; i++ )
-                mpi_montmul( X, X, N, mm, &T );
-
-            /*
-             * X = X * W[wbits] R^-1 mod N
-             */
-            mpi_montmul( X, &W[wbits], N, mm, &T );
-
-            state--;
-            nbits = 0;
-            wbits = 0;
-        }
-    }
-
-    /*
-     * process the remaining bits
-     */
-    for( i = 0; i < nbits; i++ )
-    {
-        mpi_montmul( X, X, N, mm, &T );
-
-        wbits <<= 1;
-
-        if( (wbits & (1 << wsize)) != 0 )
-            mpi_montmul( X, &W[1], N, mm, &T );
-    }
-
-    /*
-     * X = A^E * R * R^-1 mod N = A^E mod N
-     */
-    mpi_montred( X, N, mm, &T );
-
-cleanup:
-
-    for( i = (1 << (wsize - 1)); i < (1 << wsize); i++ )
-        mpi_free( &W[i], NULL );
-
-    if( _RR != NULL )
-         mpi_free( &W[1], &T, NULL );
-    else mpi_free( &W[1], &T, &RR, NULL );
-
-    return( ret );
-}
-
-/*
- * Greatest common divisor: G = gcd(A, B)  (HAC 14.54)
- */
-int mpi_gcd( mpi *G, mpi *A, mpi *B )
-{
-    int ret, lz, lzt;
-    mpi TG, TA, TB;
-
-    mpi_init( &TG, &TA, &TB, NULL );
-
-    MPI_CHK( mpi_copy( &TA, A ) );
-    MPI_CHK( mpi_copy( &TB, B ) );
-
-    lz = mpi_lsb( &TA );
-    lzt = mpi_lsb( &TB );
-
-    if ( lzt < lz )
-        lz = lzt;
-
-    MPI_CHK( mpi_shift_r( &TA, lz ) );
-    MPI_CHK( mpi_shift_r( &TB, lz ) );
-
-    TA.s = TB.s = 1;
-
-    while( mpi_cmp_int( &TA, 0 ) != 0 )
-    {
-        MPI_CHK( mpi_shift_r( &TA, mpi_lsb( &TA ) ) );
-        MPI_CHK( mpi_shift_r( &TB, mpi_lsb( &TB ) ) );
-
-        if( mpi_cmp_mpi( &TA, &TB ) >= 0 )
-        {
-            MPI_CHK( mpi_sub_abs( &TA, &TA, &TB ) );
-            MPI_CHK( mpi_shift_r( &TA, 1 ) );
-        }
-        else
-        {
-            MPI_CHK( mpi_sub_abs( &TB, &TB, &TA ) );
-            MPI_CHK( mpi_shift_r( &TB, 1 ) );
-        }
-    }
-
-    MPI_CHK( mpi_shift_l( &TB, lz ) );
-    MPI_CHK( mpi_copy( G, &TB ) );
-
-cleanup:
-
-    mpi_free( &TB, &TA, &TG, NULL );
-
-    return( ret );
-}
-
-#if defined(POLARSSL_GENPRIME)
-
-/*
- * Modular inverse: X = A^-1 mod N  (HAC 14.61 / 14.64)
- */
-int mpi_inv_mod( mpi *X, mpi *A, mpi *N )
-{
-    int ret;
-    mpi G, TA, TU, U1, U2, TB, TV, V1, V2;
-
-    if( mpi_cmp_int( N, 0 ) <= 0 )
-        return( POLARSSL_ERR_MPI_BAD_INPUT_DATA );
-
-    mpi_init( &TA, &TU, &U1, &U2, &G,
-              &TB, &TV, &V1, &V2, NULL );
-
-    MPI_CHK( mpi_gcd( &G, A, N ) );
-
-    if( mpi_cmp_int( &G, 1 ) != 0 )
-    {
-        ret = POLARSSL_ERR_MPI_NOT_ACCEPTABLE;
-        goto cleanup;
-    }
-
-    MPI_CHK( mpi_mod_mpi( &TA, A, N ) );
-    MPI_CHK( mpi_copy( &TU, &TA ) );
-    MPI_CHK( mpi_copy( &TB, N ) );
-    MPI_CHK( mpi_copy( &TV, N ) );
-
-    MPI_CHK( mpi_lset( &U1, 1 ) );
-    MPI_CHK( mpi_lset( &U2, 0 ) );
-    MPI_CHK( mpi_lset( &V1, 0 ) );
-    MPI_CHK( mpi_lset( &V2, 1 ) );
-
-    do
-    {
-        while( ( TU.p[0] & 1 ) == 0 )
-        {
-            MPI_CHK( mpi_shift_r( &TU, 1 ) );
-
-            if( ( U1.p[0] & 1 ) != 0 || ( U2.p[0] & 1 ) != 0 )
-            {
-                MPI_CHK( mpi_add_mpi( &U1, &U1, &TB ) );
-                MPI_CHK( mpi_sub_mpi( &U2, &U2, &TA ) );
-            }
-
-            MPI_CHK( mpi_shift_r( &U1, 1 ) );
-            MPI_CHK( mpi_shift_r( &U2, 1 ) );
-        }
-
-        while( ( TV.p[0] & 1 ) == 0 )
-        {
-            MPI_CHK( mpi_shift_r( &TV, 1 ) );
-
-            if( ( V1.p[0] & 1 ) != 0 || ( V2.p[0] & 1 ) != 0 )
-            {
-                MPI_CHK( mpi_add_mpi( &V1, &V1, &TB ) );
-                MPI_CHK( mpi_sub_mpi( &V2, &V2, &TA ) );
-            }
-
-            MPI_CHK( mpi_shift_r( &V1, 1 ) );
-            MPI_CHK( mpi_shift_r( &V2, 1 ) );
-        }
-
-        if( mpi_cmp_mpi( &TU, &TV ) >= 0 )
-        {
-            MPI_CHK( mpi_sub_mpi( &TU, &TU, &TV ) );
-            MPI_CHK( mpi_sub_mpi( &U1, &U1, &V1 ) );
-            MPI_CHK( mpi_sub_mpi( &U2, &U2, &V2 ) );
-        }
-        else
-        {
-            MPI_CHK( mpi_sub_mpi( &TV, &TV, &TU ) );
-            MPI_CHK( mpi_sub_mpi( &V1, &V1, &U1 ) );
-            MPI_CHK( mpi_sub_mpi( &V2, &V2, &U2 ) );
-        }
-    }
-    while( mpi_cmp_int( &TU, 0 ) != 0 );
-
-    while( mpi_cmp_int( &V1, 0 ) < 0 )
-        MPI_CHK( mpi_add_mpi( &V1, &V1, N ) );
-
-    while( mpi_cmp_mpi( &V1, N ) >= 0 )
-        MPI_CHK( mpi_sub_mpi( &V1, &V1, N ) );
-
-    MPI_CHK( mpi_copy( X, &V1 ) );
-
-cleanup:
-
-    mpi_free( &V2, &V1, &TV, &TB, &G,
-              &U2, &U1, &TU, &TA, NULL );
-
-    return( ret );
-}
-
-static const int small_prime[] =
-{
-        3,    5,    7,   11,   13,   17,   19,   23,
-       29,   31,   37,   41,   43,   47,   53,   59,
-       61,   67,   71,   73,   79,   83,   89,   97,
-      101,  103,  107,  109,  113,  127,  131,  137,
-      139,  149,  151,  157,  163,  167,  173,  179,
-      181,  191,  193,  197,  199,  211,  223,  227,
-      229,  233,  239,  241,  251,  257,  263,  269,
-      271,  277,  281,  283,  293,  307,  311,  313,
-      317,  331,  337,  347,  349,  353,  359,  367,
-      373,  379,  383,  389,  397,  401,  409,  419,
-      421,  431,  433,  439,  443,  449,  457,  461,
-      463,  467,  479,  487,  491,  499,  503,  509,
-      521,  523,  541,  547,  557,  563,  569,  571,
-      577,  587,  593,  599,  601,  607,  613,  617,
-      619,  631,  641,  643,  647,  653,  659,  661,
-      673,  677,  683,  691,  701,  709,  719,  727,
-      733,  739,  743,  751,  757,  761,  769,  773,
-      787,  797,  809,  811,  821,  823,  827,  829,
-      839,  853,  857,  859,  863,  877,  881,  883,
-      887,  907,  911,  919,  929,  937,  941,  947,
-      953,  967,  971,  977,  983,  991,  997, -103
-};
-
-/*
- * Miller-Rabin primality test  (HAC 4.24)
- */
-int mpi_is_prime( mpi *X, int (*f_rng)(void *), void *p_rng )
-{
-    int ret, i, j, n, s, xs;
-    mpi W, R, T, A, RR;
-    unsigned char *p;
-
-    if( mpi_cmp_int( X, 0 ) == 0 )
-        return( 0 );
-
-    mpi_init( &W, &R, &T, &A, &RR, NULL );
-
-    xs = X->s; X->s = 1;
-
-    /*
-     * test trivial factors first
-     */
-    if( ( X->p[0] & 1 ) == 0 )
-        return( POLARSSL_ERR_MPI_NOT_ACCEPTABLE );
-
-    for( i = 0; small_prime[i] > 0; i++ )
-    {
-        t_int r;
-
-        if( mpi_cmp_int( X, small_prime[i] ) <= 0 )
-            return( 0 );
-
-        MPI_CHK( mpi_mod_int( &r, X, small_prime[i] ) );
-
-        if( r == 0 )
-            return( POLARSSL_ERR_MPI_NOT_ACCEPTABLE );
-    }
-
-    /*
-     * W = |X| - 1
-     * R = W >> lsb( W )
-     */
-    s = mpi_lsb( &W );
-    MPI_CHK( mpi_sub_int( &W, X, 1 ) );
-    MPI_CHK( mpi_copy( &R, &W ) );
-    MPI_CHK( mpi_shift_r( &R, s ) );
-
-    i = mpi_msb( X );
-    /*
-     * HAC, table 4.4
-     */
-    n = ( ( i >= 1300 ) ?  2 : ( i >=  850 ) ?  3 :
-          ( i >=  650 ) ?  4 : ( i >=  350 ) ?  8 :
-          ( i >=  250 ) ? 12 : ( i >=  150 ) ? 18 : 27 );
-
-    for( i = 0; i < n; i++ )
-    {
-        /*
-         * pick a random A, 1 < A < |X| - 1
-         */
-        MPI_CHK( mpi_grow( &A, X->n ) );
-
-        p = (unsigned char *) A.p;
-        for( j = 0; j < A.n * ciL; j++ )
-            *p++ = (unsigned char) f_rng( p_rng );
-
-        j = mpi_msb( &A ) - mpi_msb( &W );
-        MPI_CHK( mpi_shift_r( &A, j + 1 ) );
-        A.p[0] |= 3;
-
-        /*
-         * A = A^R mod |X|
-         */
-        MPI_CHK( mpi_exp_mod( &A, &A, &R, X, &RR ) );
-
-        if( mpi_cmp_mpi( &A, &W ) == 0 ||
-            mpi_cmp_int( &A,  1 ) == 0 )
-            continue;
-
-        j = 1;
-        while( j < s && mpi_cmp_mpi( &A, &W ) != 0 )
-        {
-            /*
-             * A = A * A mod |X|
-             */
-            MPI_CHK( mpi_mul_mpi( &T, &A, &A ) );
-            MPI_CHK( mpi_mod_mpi( &A, &T, X  ) );
-
-            if( mpi_cmp_int( &A, 1 ) == 0 )
-                break;
-
-            j++;
-        }
-
-        /*
-         * not prime if A != |X| - 1 or A == 1
-         */
-        if( mpi_cmp_mpi( &A, &W ) != 0 ||
-            mpi_cmp_int( &A,  1 ) == 0 )
-        {
-            ret = POLARSSL_ERR_MPI_NOT_ACCEPTABLE;
-            break;
-        }
-    }
-
-cleanup:
-
-    X->s = xs;
-
-    mpi_free( &RR, &A, &T, &R, &W, NULL );
-
-    return( ret );
-}
-
-/*
- * Prime number generation
- */
-int mpi_gen_prime( mpi *X, int nbits, int dh_flag,
-                   int (*f_rng)(void *), void *p_rng )
-{
-    int ret, k, n;
-    unsigned char *p;
-    mpi Y;
-
-    if( nbits < 3 )
-        return( POLARSSL_ERR_MPI_BAD_INPUT_DATA );
-
-    mpi_init( &Y, NULL );
-
-    n = BITS_TO_LIMBS( nbits );
-
-    MPI_CHK( mpi_grow( X, n ) );
-    MPI_CHK( mpi_lset( X, 0 ) );
-
-    p = (unsigned char *) X->p;
-    for( k = 0; k < X->n * ciL; k++ )
-        *p++ = (unsigned char) f_rng( p_rng );
-
-    k = mpi_msb( X );
-    if( k < nbits ) MPI_CHK( mpi_shift_l( X, nbits - k ) );
-    if( k > nbits ) MPI_CHK( mpi_shift_r( X, k - nbits ) );
-
-    X->p[0] |= 3;
-
-    if( dh_flag == 0 )
-    {
-        while( ( ret = mpi_is_prime( X, f_rng, p_rng ) ) != 0 )
-        {
-            if( ret != POLARSSL_ERR_MPI_NOT_ACCEPTABLE )
-                goto cleanup;
-
-            MPI_CHK( mpi_add_int( X, X, 2 ) );
-        }
-    }
-    else
-    {
-        MPI_CHK( mpi_sub_int( &Y, X, 1 ) );
-        MPI_CHK( mpi_shift_r( &Y, 1 ) );
-
-        while( 1 )
-        {
-            if( ( ret = mpi_is_prime( X, f_rng, p_rng ) ) == 0 )
-            {
-                if( ( ret = mpi_is_prime( &Y, f_rng, p_rng ) ) == 0 )
-                    break;
-
-                if( ret != POLARSSL_ERR_MPI_NOT_ACCEPTABLE )
-                    goto cleanup;
-            }
-
-            if( ret != POLARSSL_ERR_MPI_NOT_ACCEPTABLE )
-                goto cleanup;
-
-            MPI_CHK( mpi_add_int( &Y, X, 1 ) );
-            MPI_CHK( mpi_add_int(  X, X, 2 ) );
-            MPI_CHK( mpi_shift_r( &Y, 1 ) );
-        }
-    }
-
-cleanup:
-
-    mpi_free( &Y, NULL );
-
-    return( ret );
-}
-
-#endif
-
-#if defined(POLARSSL_SELF_TEST)
-
-#define GCD_PAIR_COUNT 3
-
-static const int gcd_pairs[GCD_PAIR_COUNT][3] =
-{
-    { 693, 609, 21 },
-    { 1764, 868, 28 },
-    { 768454923, 542167814, 1 }
-};
-
-/*
- * Checkup routine
- */
-int mpi_self_test( int verbose )
-{
-    int ret, i;
-    mpi A, E, N, X, Y, U, V;
-
-    mpi_init( &A, &E, &N, &X, &Y, &U, &V, NULL );
-
-    MPI_CHK( mpi_read_string( &A, 16,
-        "EFE021C2645FD1DC586E69184AF4A31E" \
-        "D5F53E93B5F123FA41680867BA110131" \
-        "944FE7952E2517337780CB0DB80E61AA" \
-        "E7C8DDC6C5C6AADEB34EB38A2F40D5E6" ) );
-
-    MPI_CHK( mpi_read_string( &E, 16,
-        "B2E7EFD37075B9F03FF989C7C5051C20" \
-        "34D2A323810251127E7BF8625A4F49A5" \
-        "F3E27F4DA8BD59C47D6DAABA4C8127BD" \
-        "5B5C25763222FEFCCFC38B832366C29E" ) );
-
-    MPI_CHK( mpi_read_string( &N, 16,
-        "0066A198186C18C10B2F5ED9B522752A" \
-        "9830B69916E535C8F047518A889A43A5" \
-        "94B6BED27A168D31D4A52F88925AA8F5" ) );
-
-    MPI_CHK( mpi_mul_mpi( &X, &A, &N ) );
-
-    MPI_CHK( mpi_read_string( &U, 16,
-        "602AB7ECA597A3D6B56FF9829A5E8B85" \
-        "9E857EA95A03512E2BAE7391688D264A" \
-        "A5663B0341DB9CCFD2C4C5F421FEC814" \
-        "8001B72E848A38CAE1C65F78E56ABDEF" \
-        "E12D3C039B8A02D6BE593F0BBBDA56F1" \
-        "ECF677152EF804370C1A305CAF3B5BF1" \
-        "30879B56C61DE584A0F53A2447A51E" ) );
-
-    if( verbose != 0 )
-        printf( "  MPI test #1 (mul_mpi): " );
-
-    if( mpi_cmp_mpi( &X, &U ) != 0 )
-    {
-        if( verbose != 0 )
-            printf( "failed\n" );
-
-        return( 1 );
-    }
-
-    if( verbose != 0 )
-        printf( "passed\n" );
-
-    MPI_CHK( mpi_div_mpi( &X, &Y, &A, &N ) );
-
-    MPI_CHK( mpi_read_string( &U, 16,
-        "256567336059E52CAE22925474705F39A94" ) );
-
-    MPI_CHK( mpi_read_string( &V, 16,
-        "6613F26162223DF488E9CD48CC132C7A" \
-        "0AC93C701B001B092E4E5B9F73BCD27B" \
-        "9EE50D0657C77F374E903CDFA4C642" ) );
-
-    if( verbose != 0 )
-        printf( "  MPI test #2 (div_mpi): " );
-
-    if( mpi_cmp_mpi( &X, &U ) != 0 ||
-        mpi_cmp_mpi( &Y, &V ) != 0 )
-    {
-        if( verbose != 0 )
-            printf( "failed\n" );
-
-        return( 1 );
-    }
-
-    if( verbose != 0 )
-        printf( "passed\n" );
-
-    MPI_CHK( mpi_exp_mod( &X, &A, &E, &N, NULL ) );
-
-    MPI_CHK( mpi_read_string( &U, 16,
-        "36E139AEA55215609D2816998ED020BB" \
-        "BD96C37890F65171D948E9BC7CBAA4D9" \
-        "325D24D6A3C12710F10A09FA08AB87" ) );
-
-    if( verbose != 0 )
-        printf( "  MPI test #3 (exp_mod): " );
-
-    if( mpi_cmp_mpi( &X, &U ) != 0 )
-    {
-        if( verbose != 0 )
-            printf( "failed\n" );
-
-        return( 1 );
-    }
-
-    if( verbose != 0 )
-        printf( "passed\n" );
-
-    MPI_CHK( mpi_inv_mod( &X, &A, &N ) );
-
-    MPI_CHK( mpi_read_string( &U, 16,
-        "003A0AAEDD7E784FC07D8F9EC6E3BFD5" \
-        "C3DBA76456363A10869622EAC2DD84EC" \
-        "C5B8A74DAC4D09E03B5E0BE779F2DF61" ) );
-
-    if( verbose != 0 )
-        printf( "  MPI test #4 (inv_mod): " );
-
-    if( mpi_cmp_mpi( &X, &U ) != 0 )
-    {
-        if( verbose != 0 )
-            printf( "failed\n" );
-
-        return( 1 );
-    }
-
-    if( verbose != 0 )
-        printf( "passed\n" );
-
-    if( verbose != 0 )
-        printf( "  MPI test #5 (simple gcd): " );
-
-    for ( i = 0; i < GCD_PAIR_COUNT; i++)
-    {
-        MPI_CHK( mpi_lset( &X, gcd_pairs[i][0] ) );
-       MPI_CHK( mpi_lset( &Y, gcd_pairs[i][1] ) );
-
-       MPI_CHK( mpi_gcd( &A, &X, &Y ) );
-
-       if( mpi_cmp_int( &A, gcd_pairs[i][2] ) != 0 )
-       {
-               if( verbose != 0 )
-                       printf( "failed at %d\n", i );
-
-               return( 1 );
-       }
-    }
-
-    if( verbose != 0 )
-        printf( "passed\n" );
-
-cleanup:
-
-    if( ret != 0 && verbose != 0 )
-        printf( "Unexpected error, return code = %08X\n", ret );
-
-    mpi_free( &V, &U, &Y, &X, &N, &E, &A, NULL );
-
-    if( verbose != 0 )
-        printf( "\n" );
-
-    return( ret );
-}
-
-#endif
-
-#endif
diff --git a/package/luci/libs/luci-lib-px5g/src/library/havege.c b/package/luci/libs/luci-lib-px5g/src/library/havege.c
deleted file mode 100644 (file)
index 266299d..0000000
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- *  HAVEGE: HArdware Volatile Entropy Gathering and Expansion
- *
- *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
- *
- *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *  
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *    * Neither the names of PolarSSL or XySSL nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *  
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- *  The HAVEGE RNG was designed by Andre Seznec in 2002.
- *
- *  http://www.irisa.fr/caps/projects/hipsor/publi.php
- *
- *  Contact: seznec(at)irisa_dot_fr - orocheco(at)irisa_dot_fr
- */
-
-#include <string.h>
-#include <time.h>
-
-#include "polarssl/config.h"
-
-#if defined(POLARSSL_HAVEGE_C)
-
-#include "polarssl/havege.h"
-#include "polarssl/timing.h"
-
-/* ------------------------------------------------------------------------
- * On average, one iteration accesses two 8-word blocks in the havege WALK
- * table, and generates 16 words in the RES array.
- *
- * The data read in the WALK table is updated and permuted after each use.
- * The result of the hardware clock counter read is used  for this update.
- *
- * 25 conditional tests are present.  The conditional tests are grouped in
- * two nested  groups of 12 conditional tests and 1 test that controls the
- * permutation; on average, there should be 6 tests executed and 3 of them
- * should be mispredicted.
- * ------------------------------------------------------------------------
- */
-
-#define SWAP(X,Y) { int *T = X; X = Y; Y = T; }
-
-#define TST1_ENTER if( PTEST & 1 ) { PTEST ^= 3; PTEST >>= 1;
-#define TST2_ENTER if( PTEST & 1 ) { PTEST ^= 3; PTEST >>= 1;
-
-#define TST1_LEAVE U1++; }
-#define TST2_LEAVE U2++; }
-
-#define ONE_ITERATION                                   \
-                                                        \
-    PTEST = PT1 >> 20;                                  \
-                                                        \
-    TST1_ENTER  TST1_ENTER  TST1_ENTER  TST1_ENTER      \
-    TST1_ENTER  TST1_ENTER  TST1_ENTER  TST1_ENTER      \
-    TST1_ENTER  TST1_ENTER  TST1_ENTER  TST1_ENTER      \
-                                                        \
-    TST1_LEAVE  TST1_LEAVE  TST1_LEAVE  TST1_LEAVE      \
-    TST1_LEAVE  TST1_LEAVE  TST1_LEAVE  TST1_LEAVE      \
-    TST1_LEAVE  TST1_LEAVE  TST1_LEAVE  TST1_LEAVE      \
-                                                        \
-    PTX = (PT1 >> 18) & 7;                              \
-    PT1 &= 0x1FFF;                                      \
-    PT2 &= 0x1FFF;                                      \
-    CLK = (int) hardclock();                            \
-                                                        \
-    i = 0;                                              \
-    A = &WALK[PT1    ]; RES[i++] ^= *A;                 \
-    B = &WALK[PT2    ]; RES[i++] ^= *B;                 \
-    C = &WALK[PT1 ^ 1]; RES[i++] ^= *C;                 \
-    D = &WALK[PT2 ^ 4]; RES[i++] ^= *D;                 \
-                                                        \
-    IN = (*A >> (1)) ^ (*A << (31)) ^ CLK;              \
-    *A = (*B >> (2)) ^ (*B << (30)) ^ CLK;              \
-    *B = IN ^ U1;                                       \
-    *C = (*C >> (3)) ^ (*C << (29)) ^ CLK;              \
-    *D = (*D >> (4)) ^ (*D << (28)) ^ CLK;              \
-                                                        \
-    A = &WALK[PT1 ^ 2]; RES[i++] ^= *A;                 \
-    B = &WALK[PT2 ^ 2]; RES[i++] ^= *B;                 \
-    C = &WALK[PT1 ^ 3]; RES[i++] ^= *C;                 \
-    D = &WALK[PT2 ^ 6]; RES[i++] ^= *D;                 \
-                                                        \
-    if( PTEST & 1 ) SWAP( A, C );                       \
-                                                        \
-    IN = (*A >> (5)) ^ (*A << (27)) ^ CLK;              \
-    *A = (*B >> (6)) ^ (*B << (26)) ^ CLK;              \
-    *B = IN; CLK = (int) hardclock();                   \
-    *C = (*C >> (7)) ^ (*C << (25)) ^ CLK;              \
-    *D = (*D >> (8)) ^ (*D << (24)) ^ CLK;              \
-                                                        \
-    A = &WALK[PT1 ^ 4];                                 \
-    B = &WALK[PT2 ^ 1];                                 \
-                                                        \
-    PTEST = PT2 >> 1;                                   \
-                                                        \
-    PT2 = (RES[(i - 8) ^ PTY] ^ WALK[PT2 ^ PTY ^ 7]);   \
-    PT2 = ((PT2 & 0x1FFF) & (~8)) ^ ((PT1 ^ 8) & 0x8);  \
-    PTY = (PT2 >> 10) & 7;                              \
-                                                        \
-    TST2_ENTER  TST2_ENTER  TST2_ENTER  TST2_ENTER      \
-    TST2_ENTER  TST2_ENTER  TST2_ENTER  TST2_ENTER      \
-    TST2_ENTER  TST2_ENTER  TST2_ENTER  TST2_ENTER      \
-                                                        \
-    TST2_LEAVE  TST2_LEAVE  TST2_LEAVE  TST2_LEAVE      \
-    TST2_LEAVE  TST2_LEAVE  TST2_LEAVE  TST2_LEAVE      \
-    TST2_LEAVE  TST2_LEAVE  TST2_LEAVE  TST2_LEAVE      \
-                                                        \
-    C = &WALK[PT1 ^ 5];                                 \
-    D = &WALK[PT2 ^ 5];                                 \
-                                                        \
-    RES[i++] ^= *A;                                     \
-    RES[i++] ^= *B;                                     \
-    RES[i++] ^= *C;                                     \
-    RES[i++] ^= *D;                                     \
-                                                        \
-    IN = (*A >> ( 9)) ^ (*A << (23)) ^ CLK;             \
-    *A = (*B >> (10)) ^ (*B << (22)) ^ CLK;             \
-    *B = IN ^ U2;                                       \
-    *C = (*C >> (11)) ^ (*C << (21)) ^ CLK;             \
-    *D = (*D >> (12)) ^ (*D << (20)) ^ CLK;             \
-                                                        \
-    A = &WALK[PT1 ^ 6]; RES[i++] ^= *A;                 \
-    B = &WALK[PT2 ^ 3]; RES[i++] ^= *B;                 \
-    C = &WALK[PT1 ^ 7]; RES[i++] ^= *C;                 \
-    D = &WALK[PT2 ^ 7]; RES[i++] ^= *D;                 \
-                                                        \
-    IN = (*A >> (13)) ^ (*A << (19)) ^ CLK;             \
-    *A = (*B >> (14)) ^ (*B << (18)) ^ CLK;             \
-    *B = IN;                                            \
-    *C = (*C >> (15)) ^ (*C << (17)) ^ CLK;             \
-    *D = (*D >> (16)) ^ (*D << (16)) ^ CLK;             \
-                                                        \
-    PT1 = ( RES[(i - 8) ^ PTX] ^                        \
-            WALK[PT1 ^ PTX ^ 7] ) & (~1);               \
-    PT1 ^= (PT2 ^ 0x10) & 0x10;                         \
-                                                        \
-    for( n++, i = 0; i < 16; i++ )                      \
-        hs->pool[n % COLLECT_SIZE] ^= RES[i];
-
-/*
- * Entropy gathering function
- */
-static void havege_fill( havege_state *hs )
-{
-    int i, n = 0;
-    int  U1,  U2, *A, *B, *C, *D;
-    int PT1, PT2, *WALK, RES[16];
-    int PTX, PTY, CLK, PTEST, IN;
-
-    WALK = hs->WALK;
-    PT1  = hs->PT1;
-    PT2  = hs->PT2;
-
-    PTX  = U1 = 0;
-    PTY  = U2 = 0;
-
-    memset( RES, 0, sizeof( RES ) );
-
-    while( n < COLLECT_SIZE * 4 )
-    {
-        ONE_ITERATION
-        ONE_ITERATION
-        ONE_ITERATION
-        ONE_ITERATION
-    }
-
-    hs->PT1 = PT1;
-    hs->PT2 = PT2;
-
-    hs->offset[0] = 0;
-    hs->offset[1] = COLLECT_SIZE / 2;
-}
-
-/*
- * HAVEGE initialization
- */
-void havege_init( havege_state *hs )
-{
-    memset( hs, 0, sizeof( havege_state ) );
-
-    havege_fill( hs );
-}
-
-/*
- * HAVEGE rand function
- */
-int havege_rand( void *p_rng )
-{
-    int ret;
-    havege_state *hs = (havege_state *) p_rng;
-
-    if( hs->offset[1] >= COLLECT_SIZE )
-        havege_fill( hs );
-
-    ret  = hs->pool[hs->offset[0]++];
-    ret ^= hs->pool[hs->offset[1]++];
-
-    return( ret );
-}
-
-#if defined(POLARSSL_RAND_TEST)
-
-#include <stdio.h>
-
-int main( int argc, char *argv[] )
-{
-    FILE *f;
-    time_t t;
-    int i, j, k;
-    havege_state hs;
-    unsigned char buf[1024];
-
-    if( argc < 2 )
-    {
-        fprintf( stderr, "usage: %s <output filename>\n", argv[0] );
-        return( 1 );
-    }
-
-    if( ( f = fopen( argv[1], "wb+" ) ) == NULL )
-    {
-        printf( "failed to open '%s' for writing.\n", argv[0] );
-        return( 1 );
-    }
-
-    havege_init( &hs );
-
-    t = time( NULL );
-
-    for( i = 0, k = 32768; i < k; i++ )
-    {
-        for( j = 0; j < sizeof( buf ); j++ )
-            buf[j] = havege_rand( &hs );
-
-        fwrite( buf, sizeof( buf ), 1, f );
-
-        printf( "Generating 32Mb of data in file '%s'... %04.1f" \
-                "%% done\r", argv[1], (100 * (float) (i + 1)) / k );
-        fflush( stdout );
-    }
-
-    if( t == time( NULL ) )
-        t--;
-
-    fclose( f );
-    return( 0 );
-}
-
-#endif
-
-#endif
diff --git a/package/luci/libs/luci-lib-px5g/src/library/rsa.c b/package/luci/libs/luci-lib-px5g/src/library/rsa.c
deleted file mode 100644 (file)
index 131b6c6..0000000
+++ /dev/null
@@ -1,750 +0,0 @@
-/*
- *  The RSA public-key cryptosystem
- *
- *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
- *
- *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *  
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *    * Neither the names of PolarSSL or XySSL nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *  
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- *  RSA was designed by Ron Rivest, Adi Shamir and Len Adleman.
- *
- *  http://theory.lcs.mit.edu/~rivest/rsapaper.pdf
- *  http://www.cacr.math.uwaterloo.ca/hac/about/chap8.pdf
- */
-
-#include "polarssl/config.h"
-
-#if defined(POLARSSL_RSA_C)
-
-#include "polarssl/rsa.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-/*
- * Initialize an RSA context
- */
-void rsa_init( rsa_context *ctx,
-               int padding,
-               int hash_id,
-               int (*f_rng)(void *),
-               void *p_rng )
-{
-    memset( ctx, 0, sizeof( rsa_context ) );
-
-    ctx->padding = padding;
-    ctx->hash_id = hash_id;
-
-    ctx->f_rng = f_rng;
-    ctx->p_rng = p_rng;
-}
-
-#if defined(POLARSSL_GENPRIME)
-
-/*
- * Generate an RSA keypair
- */
-int rsa_gen_key( rsa_context *ctx, int nbits, int exponent )
-{
-    int ret;
-    mpi P1, Q1, H, G;
-
-    if( ctx->f_rng == NULL || nbits < 128 || exponent < 3 )
-        return( POLARSSL_ERR_RSA_BAD_INPUT_DATA );
-
-    mpi_init( &P1, &Q1, &H, &G, NULL );
-
-    /*
-     * find primes P and Q with Q < P so that:
-     * GCD( E, (P-1)*(Q-1) ) == 1
-     */
-    MPI_CHK( mpi_lset( &ctx->E, exponent ) );
-
-    do
-    {
-        MPI_CHK( mpi_gen_prime( &ctx->P, ( nbits + 1 ) >> 1, 0, 
-                                ctx->f_rng, ctx->p_rng ) );
-
-        MPI_CHK( mpi_gen_prime( &ctx->Q, ( nbits + 1 ) >> 1, 0,
-                                ctx->f_rng, ctx->p_rng ) );
-
-        if( mpi_cmp_mpi( &ctx->P, &ctx->Q ) < 0 )
-            mpi_swap( &ctx->P, &ctx->Q );
-
-        if( mpi_cmp_mpi( &ctx->P, &ctx->Q ) == 0 )
-            continue;
-
-        MPI_CHK( mpi_mul_mpi( &ctx->N, &ctx->P, &ctx->Q ) );
-        if( mpi_msb( &ctx->N ) != nbits )
-            continue;
-
-        MPI_CHK( mpi_sub_int( &P1, &ctx->P, 1 ) );
-        MPI_CHK( mpi_sub_int( &Q1, &ctx->Q, 1 ) );
-        MPI_CHK( mpi_mul_mpi( &H, &P1, &Q1 ) );
-        MPI_CHK( mpi_gcd( &G, &ctx->E, &H  ) );
-    }
-    while( mpi_cmp_int( &G, 1 ) != 0 );
-
-    /*
-     * D  = E^-1 mod ((P-1)*(Q-1))
-     * DP = D mod (P - 1)
-     * DQ = D mod (Q - 1)
-     * QP = Q^-1 mod P
-     */
-    MPI_CHK( mpi_inv_mod( &ctx->D , &ctx->E, &H  ) );
-    MPI_CHK( mpi_mod_mpi( &ctx->DP, &ctx->D, &P1 ) );
-    MPI_CHK( mpi_mod_mpi( &ctx->DQ, &ctx->D, &Q1 ) );
-    MPI_CHK( mpi_inv_mod( &ctx->QP, &ctx->Q, &ctx->P ) );
-
-    ctx->len = ( mpi_msb( &ctx->N ) + 7 ) >> 3;
-
-cleanup:
-
-    mpi_free( &G, &H, &Q1, &P1, NULL );
-
-    if( ret != 0 )
-    {
-        rsa_free( ctx );
-        return( POLARSSL_ERR_RSA_KEY_GEN_FAILED | ret );
-    }
-
-    return( 0 );   
-}
-
-#endif
-
-/*
- * Check a public RSA key
- */
-int rsa_check_pubkey( rsa_context *ctx )
-{
-    if( ( ctx->N.p[0] & 1 ) == 0 || 
-        ( ctx->E.p[0] & 1 ) == 0 )
-        return( POLARSSL_ERR_RSA_KEY_CHECK_FAILED );
-
-    if( mpi_msb( &ctx->N ) < 128 ||
-        mpi_msb( &ctx->N ) > 4096 )
-        return( POLARSSL_ERR_RSA_KEY_CHECK_FAILED );
-
-    if( mpi_msb( &ctx->E ) < 2 ||
-        mpi_msb( &ctx->E ) > 64 )
-        return( POLARSSL_ERR_RSA_KEY_CHECK_FAILED );
-
-    return( 0 );
-}
-
-/*
- * Check a private RSA key
- */
-int rsa_check_privkey( rsa_context *ctx )
-{
-    int ret;
-    mpi PQ, DE, P1, Q1, H, I, G;
-
-    if( ( ret = rsa_check_pubkey( ctx ) ) != 0 )
-        return( ret );
-
-    mpi_init( &PQ, &DE, &P1, &Q1, &H, &I, &G, NULL );
-
-    MPI_CHK( mpi_mul_mpi( &PQ, &ctx->P, &ctx->Q ) );
-    MPI_CHK( mpi_mul_mpi( &DE, &ctx->D, &ctx->E ) );
-    MPI_CHK( mpi_sub_int( &P1, &ctx->P, 1 ) );
-    MPI_CHK( mpi_sub_int( &Q1, &ctx->Q, 1 ) );
-    MPI_CHK( mpi_mul_mpi( &H, &P1, &Q1 ) );
-    MPI_CHK( mpi_mod_mpi( &I, &DE, &H  ) );
-    MPI_CHK( mpi_gcd( &G, &ctx->E, &H  ) );
-
-    if( mpi_cmp_mpi( &PQ, &ctx->N ) == 0 &&
-        mpi_cmp_int( &I, 1 ) == 0 &&
-        mpi_cmp_int( &G, 1 ) == 0 )
-    {
-        mpi_free( &G, &I, &H, &Q1, &P1, &DE, &PQ, NULL );
-        return( 0 );
-    }
-
-cleanup:
-
-    mpi_free( &G, &I, &H, &Q1, &P1, &DE, &PQ, NULL );
-    return( POLARSSL_ERR_RSA_KEY_CHECK_FAILED | ret );
-}
-
-/*
- * Do an RSA public key operation
- */
-int rsa_public( rsa_context *ctx,
-                unsigned char *input,
-                unsigned char *output )
-{
-    int ret, olen;
-    mpi T;
-
-    mpi_init( &T, NULL );
-
-    MPI_CHK( mpi_read_binary( &T, input, ctx->len ) );
-
-    if( mpi_cmp_mpi( &T, &ctx->N ) >= 0 )
-    {
-        mpi_free( &T, NULL );
-        return( POLARSSL_ERR_RSA_BAD_INPUT_DATA );
-    }
-
-    olen = ctx->len;
-    MPI_CHK( mpi_exp_mod( &T, &T, &ctx->E, &ctx->N, &ctx->RN ) );
-    MPI_CHK( mpi_write_binary( &T, output, olen ) );
-
-cleanup:
-
-    mpi_free( &T, NULL );
-
-    if( ret != 0 )
-        return( POLARSSL_ERR_RSA_PUBLIC_FAILED | ret );
-
-    return( 0 );
-}
-
-/*
- * Do an RSA private key operation
- */
-int rsa_private( rsa_context *ctx,
-                 unsigned char *input,
-                 unsigned char *output )
-{
-    int ret, olen;
-    mpi T, T1, T2;
-
-    mpi_init( &T, &T1, &T2, NULL );
-
-    MPI_CHK( mpi_read_binary( &T, input, ctx->len ) );
-
-    if( mpi_cmp_mpi( &T, &ctx->N ) >= 0 )
-    {
-        mpi_free( &T, NULL );
-        return( POLARSSL_ERR_RSA_BAD_INPUT_DATA );
-    }
-
-#if 0
-    MPI_CHK( mpi_exp_mod( &T, &T, &ctx->D, &ctx->N, &ctx->RN ) );
-#else
-    /*
-     * faster decryption using the CRT
-     *
-     * T1 = input ^ dP mod P
-     * T2 = input ^ dQ mod Q
-     */
-    MPI_CHK( mpi_exp_mod( &T1, &T, &ctx->DP, &ctx->P, &ctx->RP ) );
-    MPI_CHK( mpi_exp_mod( &T2, &T, &ctx->DQ, &ctx->Q, &ctx->RQ ) );
-
-    /*
-     * T = (T1 - T2) * (Q^-1 mod P) mod P
-     */
-    MPI_CHK( mpi_sub_mpi( &T, &T1, &T2 ) );
-    MPI_CHK( mpi_mul_mpi( &T1, &T, &ctx->QP ) );
-    MPI_CHK( mpi_mod_mpi( &T, &T1, &ctx->P ) );
-
-    /*
-     * output = T2 + T * Q
-     */
-    MPI_CHK( mpi_mul_mpi( &T1, &T, &ctx->Q ) );
-    MPI_CHK( mpi_add_mpi( &T, &T2, &T1 ) );
-#endif
-
-    olen = ctx->len;
-    MPI_CHK( mpi_write_binary( &T, output, olen ) );
-
-cleanup:
-
-    mpi_free( &T, &T1, &T2, NULL );
-
-    if( ret != 0 )
-        return( POLARSSL_ERR_RSA_PRIVATE_FAILED | ret );
-
-    return( 0 );
-}
-
-/*
- * Add the message padding, then do an RSA operation
- */
-int rsa_pkcs1_encrypt( rsa_context *ctx,
-                       int mode, int  ilen,
-                       unsigned char *input,
-                       unsigned char *output )
-{
-    int nb_pad, olen;
-    unsigned char *p = output;
-
-    olen = ctx->len;
-
-    switch( ctx->padding )
-    {
-        case RSA_PKCS_V15:
-
-            if( ilen < 0 || olen < ilen + 11 )
-                return( POLARSSL_ERR_RSA_BAD_INPUT_DATA );
-
-            nb_pad = olen - 3 - ilen;
-
-            *p++ = 0;
-            *p++ = RSA_CRYPT;
-
-            while( nb_pad-- > 0 )
-            {
-                do {
-                    *p = (unsigned char) rand();
-                } while( *p == 0 );
-                p++;
-            }
-            *p++ = 0;
-            memcpy( p, input, ilen );
-            break;
-
-        default:
-
-            return( POLARSSL_ERR_RSA_INVALID_PADDING );
-    }
-
-    return( ( mode == RSA_PUBLIC )
-            ? rsa_public(  ctx, output, output )
-            : rsa_private( ctx, output, output ) );
-}
-
-/*
- * Do an RSA operation, then remove the message padding
- */
-int rsa_pkcs1_decrypt( rsa_context *ctx,
-                       int mode, int *olen,
-                       unsigned char *input,
-                       unsigned char *output,
-                      int output_max_len)
-{
-    int ret, ilen;
-    unsigned char *p;
-    unsigned char buf[512];
-
-    ilen = ctx->len;
-
-    if( ilen < 16 || ilen > (int) sizeof( buf ) )
-        return( POLARSSL_ERR_RSA_BAD_INPUT_DATA );
-
-    ret = ( mode == RSA_PUBLIC )
-          ? rsa_public(  ctx, input, buf )
-          : rsa_private( ctx, input, buf );
-
-    if( ret != 0 )
-        return( ret );
-
-    p = buf;
-
-    switch( ctx->padding )
-    {
-        case RSA_PKCS_V15:
-
-            if( *p++ != 0 || *p++ != RSA_CRYPT )
-                return( POLARSSL_ERR_RSA_INVALID_PADDING );
-
-            while( *p != 0 )
-            {
-                if( p >= buf + ilen - 1 )
-                    return( POLARSSL_ERR_RSA_INVALID_PADDING );
-                p++;
-            }
-            p++;
-            break;
-
-        default:
-
-            return( POLARSSL_ERR_RSA_INVALID_PADDING );
-    }
-
-    if (ilen - (int)(p - buf) > output_max_len)
-       return( POLARSSL_ERR_RSA_OUTPUT_TO_LARGE );
-
-    *olen = ilen - (int)(p - buf);
-    memcpy( output, p, *olen );
-
-    return( 0 );
-}
-
-/*
- * Do an RSA operation to sign the message digest
- */
-int rsa_pkcs1_sign( rsa_context *ctx,
-                    int mode,
-                    int hash_id,
-                    int hashlen,
-                    unsigned char *hash,
-                    unsigned char *sig )
-{
-    int nb_pad, olen;
-    unsigned char *p = sig;
-
-    olen = ctx->len;
-
-    switch( ctx->padding )
-    {
-        case RSA_PKCS_V15:
-
-            switch( hash_id )
-            {
-                case RSA_RAW:
-                    nb_pad = olen - 3 - hashlen;
-                    break;
-
-                case RSA_MD2:
-                case RSA_MD4:
-                case RSA_MD5:
-                    nb_pad = olen - 3 - 34;
-                    break;
-
-                case RSA_SHA1:
-                    nb_pad = olen - 3 - 35;
-                    break;
-
-                default:
-                    return( POLARSSL_ERR_RSA_BAD_INPUT_DATA );
-            }
-
-            if( nb_pad < 8 )
-                return( POLARSSL_ERR_RSA_BAD_INPUT_DATA );
-
-            *p++ = 0;
-            *p++ = RSA_SIGN;
-            memset( p, 0xFF, nb_pad );
-            p += nb_pad;
-            *p++ = 0;
-            break;
-
-        default:
-
-            return( POLARSSL_ERR_RSA_INVALID_PADDING );
-    }
-
-    switch( hash_id )
-    {
-        case RSA_RAW:
-            memcpy( p, hash, hashlen );
-            break;
-
-        case RSA_MD2:
-            memcpy( p, ASN1_HASH_MDX, 18 );
-            memcpy( p + 18, hash, 16 );
-            p[13] = 2; break;
-
-        case RSA_MD4:
-            memcpy( p, ASN1_HASH_MDX, 18 );
-            memcpy( p + 18, hash, 16 );
-            p[13] = 4; break;
-
-        case RSA_MD5:
-            memcpy( p, ASN1_HASH_MDX, 18 );
-            memcpy( p + 18, hash, 16 );
-            p[13] = 5; break;
-
-        case RSA_SHA1:
-            memcpy( p, ASN1_HASH_SHA1, 15 );
-            memcpy( p + 15, hash, 20 );
-            break;
-
-        default:
-            return( POLARSSL_ERR_RSA_BAD_INPUT_DATA );
-    }
-
-    return( ( mode == RSA_PUBLIC )
-            ? rsa_public(  ctx, sig, sig )
-            : rsa_private( ctx, sig, sig ) );
-}
-
-/*
- * Do an RSA operation and check the message digest
- */
-int rsa_pkcs1_verify( rsa_context *ctx,
-                      int mode,
-                      int hash_id,
-                      int hashlen,
-                      unsigned char *hash,
-                      unsigned char *sig )
-{
-    int ret, len, siglen;
-    unsigned char *p, c;
-    unsigned char buf[512];
-
-    siglen = ctx->len;
-
-    if( siglen < 16 || siglen > (int) sizeof( buf ) )
-        return( POLARSSL_ERR_RSA_BAD_INPUT_DATA );
-
-    ret = ( mode == RSA_PUBLIC )
-          ? rsa_public(  ctx, sig, buf )
-          : rsa_private( ctx, sig, buf );
-
-    if( ret != 0 )
-        return( ret );
-
-    p = buf;
-
-    switch( ctx->padding )
-    {
-        case RSA_PKCS_V15:
-
-            if( *p++ != 0 || *p++ != RSA_SIGN )
-                return( POLARSSL_ERR_RSA_INVALID_PADDING );
-
-            while( *p != 0 )
-            {
-                if( p >= buf + siglen - 1 || *p != 0xFF )
-                    return( POLARSSL_ERR_RSA_INVALID_PADDING );
-                p++;
-            }
-            p++;
-            break;
-
-        default:
-
-            return( POLARSSL_ERR_RSA_INVALID_PADDING );
-    }
-
-    len = siglen - (int)( p - buf );
-
-    if( len == 34 )
-    {
-        c = p[13];
-        p[13] = 0;
-
-        if( memcmp( p, ASN1_HASH_MDX, 18 ) != 0 )
-            return( POLARSSL_ERR_RSA_VERIFY_FAILED );
-
-        if( ( c == 2 && hash_id == RSA_MD2 ) ||
-            ( c == 4 && hash_id == RSA_MD4 ) ||
-            ( c == 5 && hash_id == RSA_MD5 ) )
-        {
-            if( memcmp( p + 18, hash, 16 ) == 0 ) 
-                return( 0 );
-            else
-                return( POLARSSL_ERR_RSA_VERIFY_FAILED );
-        }
-    }
-
-    if( len == 35 && hash_id == RSA_SHA1 )
-    {
-        if( memcmp( p, ASN1_HASH_SHA1, 15 ) == 0 &&
-            memcmp( p + 15, hash, 20 ) == 0 )
-            return( 0 );
-        else
-            return( POLARSSL_ERR_RSA_VERIFY_FAILED );
-    }
-
-    if( len == hashlen && hash_id == RSA_RAW )
-    {
-        if( memcmp( p, hash, hashlen ) == 0 )
-            return( 0 );
-        else
-            return( POLARSSL_ERR_RSA_VERIFY_FAILED );
-    }
-
-    return( POLARSSL_ERR_RSA_INVALID_PADDING );
-}
-
-/*
- * Free the components of an RSA key
- */
-void rsa_free( rsa_context *ctx )
-{
-    mpi_free( &ctx->RQ, &ctx->RP, &ctx->RN,
-              &ctx->QP, &ctx->DQ, &ctx->DP,
-              &ctx->Q,  &ctx->P,  &ctx->D,
-              &ctx->E,  &ctx->N,  NULL );
-}
-
-#if defined(POLARSSL_SELF_TEST)
-
-#include "polarssl/sha1.h"
-
-/*
- * Example RSA-1024 keypair, for test purposes
- */
-#define KEY_LEN 128
-
-#define RSA_N   "9292758453063D803DD603D5E777D788" \
-                "8ED1D5BF35786190FA2F23EBC0848AEA" \
-                "DDA92CA6C3D80B32C4D109BE0F36D6AE" \
-                "7130B9CED7ACDF54CFC7555AC14EEBAB" \
-                "93A89813FBF3C4F8066D2D800F7C38A8" \
-                "1AE31942917403FF4946B0A83D3D3E05" \
-                "EE57C6F5F5606FB5D4BC6CD34EE0801A" \
-                "5E94BB77B07507233A0BC7BAC8F90F79"
-
-#define RSA_E   "10001"
-
-#define RSA_D   "24BF6185468786FDD303083D25E64EFC" \
-                "66CA472BC44D253102F8B4A9D3BFA750" \
-                "91386C0077937FE33FA3252D28855837" \
-                "AE1B484A8A9A45F7EE8C0C634F99E8CD" \
-                "DF79C5CE07EE72C7F123142198164234" \
-                "CABB724CF78B8173B9F880FC86322407" \
-                "AF1FEDFDDE2BEB674CA15F3E81A1521E" \
-                "071513A1E85B5DFA031F21ECAE91A34D"
-
-#define RSA_P   "C36D0EB7FCD285223CFB5AABA5BDA3D8" \
-                "2C01CAD19EA484A87EA4377637E75500" \
-                "FCB2005C5C7DD6EC4AC023CDA285D796" \
-                "C3D9E75E1EFC42488BB4F1D13AC30A57"
-
-#define RSA_Q   "C000DF51A7C77AE8D7C7370C1FF55B69" \
-                "E211C2B9E5DB1ED0BF61D0D9899620F4" \
-                "910E4168387E3C30AA1E00C339A79508" \
-                "8452DD96A9A5EA5D9DCA68DA636032AF"
-
-#define RSA_DP  "C1ACF567564274FB07A0BBAD5D26E298" \
-                "3C94D22288ACD763FD8E5600ED4A702D" \
-                "F84198A5F06C2E72236AE490C93F07F8" \
-                "3CC559CD27BC2D1CA488811730BB5725"
-
-#define RSA_DQ  "4959CBF6F8FEF750AEE6977C155579C7" \
-                "D8AAEA56749EA28623272E4F7D0592AF" \
-                "7C1F1313CAC9471B5C523BFE592F517B" \
-                "407A1BD76C164B93DA2D32A383E58357"
-
-#define RSA_QP  "9AE7FBC99546432DF71896FC239EADAE" \
-                "F38D18D2B2F0E2DD275AA977E2BF4411" \
-                "F5A3B2A5D33605AEBBCCBA7FEB9F2D2F" \
-                "A74206CEC169D74BF5A8C50D6F48EA08"
-
-#define PT_LEN  24
-#define RSA_PT  "\xAA\xBB\xCC\x03\x02\x01\x00\xFF\xFF\xFF\xFF\xFF" \
-                "\x11\x22\x33\x0A\x0B\x0C\xCC\xDD\xDD\xDD\xDD\xDD"
-
-/*
- * Checkup routine
- */
-int rsa_self_test( int verbose )
-{
-    int len;
-    rsa_context rsa;
-    unsigned char sha1sum[20];
-    unsigned char rsa_plaintext[PT_LEN];
-    unsigned char rsa_decrypted[PT_LEN];
-    unsigned char rsa_ciphertext[KEY_LEN];
-
-    memset( &rsa, 0, sizeof( rsa_context ) );
-
-    rsa.len = KEY_LEN;
-    mpi_read_string( &rsa.N , 16, RSA_N  );
-    mpi_read_string( &rsa.E , 16, RSA_E  );
-    mpi_read_string( &rsa.D , 16, RSA_D  );
-    mpi_read_string( &rsa.P , 16, RSA_P  );
-    mpi_read_string( &rsa.Q , 16, RSA_Q  );
-    mpi_read_string( &rsa.DP, 16, RSA_DP );
-    mpi_read_string( &rsa.DQ, 16, RSA_DQ );
-    mpi_read_string( &rsa.QP, 16, RSA_QP );
-
-    if( verbose != 0 )
-        printf( "  RSA key validation: " );
-
-    if( rsa_check_pubkey(  &rsa ) != 0 ||
-        rsa_check_privkey( &rsa ) != 0 )
-    {
-        if( verbose != 0 )
-            printf( "failed\n" );
-
-        return( 1 );
-    }
-
-    if( verbose != 0 )
-        printf( "passed\n  PKCS#1 encryption : " );
-
-    memcpy( rsa_plaintext, RSA_PT, PT_LEN );
-
-    if( rsa_pkcs1_encrypt( &rsa, RSA_PUBLIC, PT_LEN,
-                           rsa_plaintext, rsa_ciphertext ) != 0 )
-    {
-        if( verbose != 0 )
-            printf( "failed\n" );
-
-        return( 1 );
-    }
-
-    if( verbose != 0 )
-        printf( "passed\n  PKCS#1 decryption : " );
-
-    if( rsa_pkcs1_decrypt( &rsa, RSA_PRIVATE, &len,
-                           rsa_ciphertext, rsa_decrypted,
-                          sizeof(rsa_decrypted) ) != 0 )
-    {
-        if( verbose != 0 )
-            printf( "failed\n" );
-
-        return( 1 );
-    }
-
-    if( memcmp( rsa_decrypted, rsa_plaintext, len ) != 0 )
-    {
-        if( verbose != 0 )
-            printf( "failed\n" );
-
-        return( 1 );
-    }
-
-    if( verbose != 0 )
-        printf( "passed\n  PKCS#1 data sign  : " );
-
-    sha1( rsa_plaintext, PT_LEN, sha1sum );
-
-    if( rsa_pkcs1_sign( &rsa, RSA_PRIVATE, RSA_SHA1, 20,
-                        sha1sum, rsa_ciphertext ) != 0 )
-    {
-        if( verbose != 0 )
-            printf( "failed\n" );
-
-        return( 1 );
-    }
-
-    if( verbose != 0 )
-        printf( "passed\n  PKCS#1 sig. verify: " );
-
-    if( rsa_pkcs1_verify( &rsa, RSA_PUBLIC, RSA_SHA1, 20,
-                          sha1sum, rsa_ciphertext ) != 0 )
-    {
-        if( verbose != 0 )
-            printf( "failed\n" );
-
-        return( 1 );
-    }
-
-    if( verbose != 0 )
-        printf( "passed\n\n" );
-
-    rsa_free( &rsa );
-
-    return( 0 );
-}
-
-#endif
-
-#endif
diff --git a/package/luci/libs/luci-lib-px5g/src/library/sha1.c b/package/luci/libs/luci-lib-px5g/src/library/sha1.c
deleted file mode 100644 (file)
index 54a4416..0000000
+++ /dev/null
@@ -1,622 +0,0 @@
-/*
- *  FIPS-180-1 compliant SHA-1 implementation
- *
- *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
- *
- *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *  
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *    * Neither the names of PolarSSL or XySSL nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *  
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- *  The SHA-1 standard was published by NIST in 1993.
- *
- *  http://www.itl.nist.gov/fipspubs/fip180-1.htm
- */
-
-#include "polarssl/config.h"
-
-#if defined(POLARSSL_SHA1_C)
-
-#include "polarssl/sha1.h"
-
-#include <string.h>
-#include <stdio.h>
-
-/*
- * 32-bit integer manipulation macros (big endian)
- */
-#ifndef GET_ULONG_BE
-#define GET_ULONG_BE(n,b,i)                             \
-{                                                       \
-    (n) = ( (unsigned long) (b)[(i)    ] << 24 )        \
-        | ( (unsigned long) (b)[(i) + 1] << 16 )        \
-        | ( (unsigned long) (b)[(i) + 2] <<  8 )        \
-        | ( (unsigned long) (b)[(i) + 3]       );       \
-}
-#endif
-
-#ifndef PUT_ULONG_BE
-#define PUT_ULONG_BE(n,b,i)                             \
-{                                                       \
-    (b)[(i)    ] = (unsigned char) ( (n) >> 24 );       \
-    (b)[(i) + 1] = (unsigned char) ( (n) >> 16 );       \
-    (b)[(i) + 2] = (unsigned char) ( (n) >>  8 );       \
-    (b)[(i) + 3] = (unsigned char) ( (n)       );       \
-}
-#endif
-
-/*
- * SHA-1 context setup
- */
-void sha1_starts( sha1_context *ctx )
-{
-    ctx->total[0] = 0;
-    ctx->total[1] = 0;
-
-    ctx->state[0] = 0x67452301;
-    ctx->state[1] = 0xEFCDAB89;
-    ctx->state[2] = 0x98BADCFE;
-    ctx->state[3] = 0x10325476;
-    ctx->state[4] = 0xC3D2E1F0;
-}
-
-static void sha1_process( sha1_context *ctx, unsigned char data[64] )
-{
-    unsigned long temp, W[16], A, B, C, D, E;
-
-    GET_ULONG_BE( W[ 0], data,  0 );
-    GET_ULONG_BE( W[ 1], data,  4 );
-    GET_ULONG_BE( W[ 2], data,  8 );
-    GET_ULONG_BE( W[ 3], data, 12 );
-    GET_ULONG_BE( W[ 4], data, 16 );
-    GET_ULONG_BE( W[ 5], data, 20 );
-    GET_ULONG_BE( W[ 6], data, 24 );
-    GET_ULONG_BE( W[ 7], data, 28 );
-    GET_ULONG_BE( W[ 8], data, 32 );
-    GET_ULONG_BE( W[ 9], data, 36 );
-    GET_ULONG_BE( W[10], data, 40 );
-    GET_ULONG_BE( W[11], data, 44 );
-    GET_ULONG_BE( W[12], data, 48 );
-    GET_ULONG_BE( W[13], data, 52 );
-    GET_ULONG_BE( W[14], data, 56 );
-    GET_ULONG_BE( W[15], data, 60 );
-
-#define S(x,n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n)))
-
-#define R(t)                                            \
-(                                                       \
-    temp = W[(t -  3) & 0x0F] ^ W[(t - 8) & 0x0F] ^     \
-           W[(t - 14) & 0x0F] ^ W[ t      & 0x0F],      \
-    ( W[t & 0x0F] = S(temp,1) )                         \
-)
-
-#define P(a,b,c,d,e,x)                                  \
-{                                                       \
-    e += S(a,5) + F(b,c,d) + K + x; b = S(b,30);        \
-}
-
-    A = ctx->state[0];
-    B = ctx->state[1];
-    C = ctx->state[2];
-    D = ctx->state[3];
-    E = ctx->state[4];
-
-#define F(x,y,z) (z ^ (x & (y ^ z)))
-#define K 0x5A827999
-
-    P( A, B, C, D, E, W[0]  );
-    P( E, A, B, C, D, W[1]  );
-    P( D, E, A, B, C, W[2]  );
-    P( C, D, E, A, B, W[3]  );
-    P( B, C, D, E, A, W[4]  );
-    P( A, B, C, D, E, W[5]  );
-    P( E, A, B, C, D, W[6]  );
-    P( D, E, A, B, C, W[7]  );
-    P( C, D, E, A, B, W[8]  );
-    P( B, C, D, E, A, W[9]  );
-    P( A, B, C, D, E, W[10] );
-    P( E, A, B, C, D, W[11] );
-    P( D, E, A, B, C, W[12] );
-    P( C, D, E, A, B, W[13] );
-    P( B, C, D, E, A, W[14] );
-    P( A, B, C, D, E, W[15] );
-    P( E, A, B, C, D, R(16) );
-    P( D, E, A, B, C, R(17) );
-    P( C, D, E, A, B, R(18) );
-    P( B, C, D, E, A, R(19) );
-
-#undef K
-#undef F
-
-#define F(x,y,z) (x ^ y ^ z)
-#define K 0x6ED9EBA1
-
-    P( A, B, C, D, E, R(20) );
-    P( E, A, B, C, D, R(21) );
-    P( D, E, A, B, C, R(22) );
-    P( C, D, E, A, B, R(23) );
-    P( B, C, D, E, A, R(24) );
-    P( A, B, C, D, E, R(25) );
-    P( E, A, B, C, D, R(26) );
-    P( D, E, A, B, C, R(27) );
-    P( C, D, E, A, B, R(28) );
-    P( B, C, D, E, A, R(29) );
-    P( A, B, C, D, E, R(30) );
-    P( E, A, B, C, D, R(31) );
-    P( D, E, A, B, C, R(32) );
-    P( C, D, E, A, B, R(33) );
-    P( B, C, D, E, A, R(34) );
-    P( A, B, C, D, E, R(35) );
-    P( E, A, B, C, D, R(36) );
-    P( D, E, A, B, C, R(37) );
-    P( C, D, E, A, B, R(38) );
-    P( B, C, D, E, A, R(39) );
-
-#undef K
-#undef F
-
-#define F(x,y,z) ((x & y) | (z & (x | y)))
-#define K 0x8F1BBCDC
-
-    P( A, B, C, D, E, R(40) );
-    P( E, A, B, C, D, R(41) );
-    P( D, E, A, B, C, R(42) );
-    P( C, D, E, A, B, R(43) );
-    P( B, C, D, E, A, R(44) );
-    P( A, B, C, D, E, R(45) );
-    P( E, A, B, C, D, R(46) );
-    P( D, E, A, B, C, R(47) );
-    P( C, D, E, A, B, R(48) );
-    P( B, C, D, E, A, R(49) );
-    P( A, B, C, D, E, R(50) );
-    P( E, A, B, C, D, R(51) );
-    P( D, E, A, B, C, R(52) );
-    P( C, D, E, A, B, R(53) );
-    P( B, C, D, E, A, R(54) );
-    P( A, B, C, D, E, R(55) );
-    P( E, A, B, C, D, R(56) );
-    P( D, E, A, B, C, R(57) );
-    P( C, D, E, A, B, R(58) );
-    P( B, C, D, E, A, R(59) );
-
-#undef K
-#undef F
-
-#define F(x,y,z) (x ^ y ^ z)
-#define K 0xCA62C1D6
-
-    P( A, B, C, D, E, R(60) );
-    P( E, A, B, C, D, R(61) );
-    P( D, E, A, B, C, R(62) );
-    P( C, D, E, A, B, R(63) );
-    P( B, C, D, E, A, R(64) );
-    P( A, B, C, D, E, R(65) );
-    P( E, A, B, C, D, R(66) );
-    P( D, E, A, B, C, R(67) );
-    P( C, D, E, A, B, R(68) );
-    P( B, C, D, E, A, R(69) );
-    P( A, B, C, D, E, R(70) );
-    P( E, A, B, C, D, R(71) );
-    P( D, E, A, B, C, R(72) );
-    P( C, D, E, A, B, R(73) );
-    P( B, C, D, E, A, R(74) );
-    P( A, B, C, D, E, R(75) );
-    P( E, A, B, C, D, R(76) );
-    P( D, E, A, B, C, R(77) );
-    P( C, D, E, A, B, R(78) );
-    P( B, C, D, E, A, R(79) );
-
-#undef K
-#undef F
-
-    ctx->state[0] += A;
-    ctx->state[1] += B;
-    ctx->state[2] += C;
-    ctx->state[3] += D;
-    ctx->state[4] += E;
-}
-
-/*
- * SHA-1 process buffer
- */
-void sha1_update( sha1_context *ctx, unsigned char *input, int ilen )
-{
-    int fill;
-    unsigned long left;
-
-    if( ilen <= 0 )
-        return;
-
-    left = ctx->total[0] & 0x3F;
-    fill = 64 - left;
-
-    ctx->total[0] += ilen;
-    ctx->total[0] &= 0xFFFFFFFF;
-
-    if( ctx->total[0] < (unsigned long) ilen )
-        ctx->total[1]++;
-
-    if( left && ilen >= fill )
-    {
-        memcpy( (void *) (ctx->buffer + left),
-                (void *) input, fill );
-        sha1_process( ctx, ctx->buffer );
-        input += fill;
-        ilen  -= fill;
-        left = 0;
-    }
-
-    while( ilen >= 64 )
-    {
-        sha1_process( ctx, input );
-        input += 64;
-        ilen  -= 64;
-    }
-
-    if( ilen > 0 )
-    {
-        memcpy( (void *) (ctx->buffer + left),
-                (void *) input, ilen );
-    }
-}
-
-static const unsigned char sha1_padding[64] =
-{
- 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-/*
- * SHA-1 final digest
- */
-void sha1_finish( sha1_context *ctx, unsigned char output[20] )
-{
-    unsigned long last, padn;
-    unsigned long high, low;
-    unsigned char msglen[8];
-
-    high = ( ctx->total[0] >> 29 )
-         | ( ctx->total[1] <<  3 );
-    low  = ( ctx->total[0] <<  3 );
-
-    PUT_ULONG_BE( high, msglen, 0 );
-    PUT_ULONG_BE( low,  msglen, 4 );
-
-    last = ctx->total[0] & 0x3F;
-    padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last );
-
-    sha1_update( ctx, (unsigned char *) sha1_padding, padn );
-    sha1_update( ctx, msglen, 8 );
-
-    PUT_ULONG_BE( ctx->state[0], output,  0 );
-    PUT_ULONG_BE( ctx->state[1], output,  4 );
-    PUT_ULONG_BE( ctx->state[2], output,  8 );
-    PUT_ULONG_BE( ctx->state[3], output, 12 );
-    PUT_ULONG_BE( ctx->state[4], output, 16 );
-}
-
-/*
- * output = SHA-1( input buffer )
- */
-void sha1( unsigned char *input, int ilen, unsigned char output[20] )
-{
-    sha1_context ctx;
-
-    sha1_starts( &ctx );
-    sha1_update( &ctx, input, ilen );
-    sha1_finish( &ctx, output );
-
-    memset( &ctx, 0, sizeof( sha1_context ) );
-}
-
-/*
- * output = SHA-1( file contents )
- */
-int sha1_file( char *path, unsigned char output[20] )
-{
-    FILE *f;
-    size_t n;
-    sha1_context ctx;
-    unsigned char buf[1024];
-
-    if( ( f = fopen( path, "rb" ) ) == NULL )
-        return( 1 );
-
-    sha1_starts( &ctx );
-
-    while( ( n = fread( buf, 1, sizeof( buf ), f ) ) > 0 )
-        sha1_update( &ctx, buf, (int) n );
-
-    sha1_finish( &ctx, output );
-
-    memset( &ctx, 0, sizeof( sha1_context ) );
-
-    if( ferror( f ) != 0 )
-    {
-        fclose( f );
-        return( 2 );
-    }
-
-    fclose( f );
-    return( 0 );
-}
-
-/*
- * SHA-1 HMAC context setup
- */
-void sha1_hmac_starts( sha1_context *ctx, unsigned char *key, int keylen )
-{
-    int i;
-    unsigned char sum[20];
-
-    if( keylen > 64 )
-    {
-        sha1( key, keylen, sum );
-        keylen = 20;
-        key = sum;
-    }
-
-    memset( ctx->ipad, 0x36, 64 );
-    memset( ctx->opad, 0x5C, 64 );
-
-    for( i = 0; i < keylen; i++ )
-    {
-        ctx->ipad[i] = (unsigned char)( ctx->ipad[i] ^ key[i] );
-        ctx->opad[i] = (unsigned char)( ctx->opad[i] ^ key[i] );
-    }
-
-    sha1_starts( ctx );
-    sha1_update( ctx, ctx->ipad, 64 );
-
-    memset( sum, 0, sizeof( sum ) );
-}
-
-/*
- * SHA-1 HMAC process buffer
- */
-void sha1_hmac_update( sha1_context *ctx, unsigned char *input, int ilen )
-{
-    sha1_update( ctx, input, ilen );
-}
-
-/*
- * SHA-1 HMAC final digest
- */
-void sha1_hmac_finish( sha1_context *ctx, unsigned char output[20] )
-{
-    unsigned char tmpbuf[20];
-
-    sha1_finish( ctx, tmpbuf );
-    sha1_starts( ctx );
-    sha1_update( ctx, ctx->opad, 64 );
-    sha1_update( ctx, tmpbuf, 20 );
-    sha1_finish( ctx, output );
-
-    memset( tmpbuf, 0, sizeof( tmpbuf ) );
-}
-
-/*
- * output = HMAC-SHA-1( hmac key, input buffer )
- */
-void sha1_hmac( unsigned char *key, int keylen,
-                unsigned char *input, int ilen,
-                unsigned char output[20] )
-{
-    sha1_context ctx;
-
-    sha1_hmac_starts( &ctx, key, keylen );
-    sha1_hmac_update( &ctx, input, ilen );
-    sha1_hmac_finish( &ctx, output );
-
-    memset( &ctx, 0, sizeof( sha1_context ) );
-}
-
-#if defined(POLARSSL_SELF_TEST)
-/*
- * FIPS-180-1 test vectors
- */
-static unsigned char sha1_test_buf[3][57] = 
-{
-    { "abc" },
-    { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" },
-    { "" }
-};
-
-static const int sha1_test_buflen[3] =
-{
-    3, 56, 1000
-};
-
-static const unsigned char sha1_test_sum[3][20] =
-{
-    { 0xA9, 0x99, 0x3E, 0x36, 0x47, 0x06, 0x81, 0x6A, 0xBA, 0x3E,
-      0x25, 0x71, 0x78, 0x50, 0xC2, 0x6C, 0x9C, 0xD0, 0xD8, 0x9D },
-    { 0x84, 0x98, 0x3E, 0x44, 0x1C, 0x3B, 0xD2, 0x6E, 0xBA, 0xAE,
-      0x4A, 0xA1, 0xF9, 0x51, 0x29, 0xE5, 0xE5, 0x46, 0x70, 0xF1 },
-    { 0x34, 0xAA, 0x97, 0x3C, 0xD4, 0xC4, 0xDA, 0xA4, 0xF6, 0x1E,
-      0xEB, 0x2B, 0xDB, 0xAD, 0x27, 0x31, 0x65, 0x34, 0x01, 0x6F }
-};
-
-/*
- * RFC 2202 test vectors
- */
-static unsigned char sha1_hmac_test_key[7][26] =
-{
-    { "\x0B\x0B\x0B\x0B\x0B\x0B\x0B\x0B\x0B\x0B\x0B\x0B\x0B\x0B\x0B\x0B"
-      "\x0B\x0B\x0B\x0B" },
-    { "Jefe" },
-    { "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
-      "\xAA\xAA\xAA\xAA" },
-    { "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10"
-      "\x11\x12\x13\x14\x15\x16\x17\x18\x19" },
-    { "\x0C\x0C\x0C\x0C\x0C\x0C\x0C\x0C\x0C\x0C\x0C\x0C\x0C\x0C\x0C\x0C"
-      "\x0C\x0C\x0C\x0C" },
-    { "" }, /* 0xAA 80 times */
-    { "" }
-};
-
-static const int sha1_hmac_test_keylen[7] =
-{
-    20, 4, 20, 25, 20, 80, 80
-};
-
-static unsigned char sha1_hmac_test_buf[7][74] =
-{
-    { "Hi There" },
-    { "what do ya want for nothing?" },
-    { "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
-      "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
-      "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
-      "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
-      "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" },
-    { "\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD"
-      "\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD"
-      "\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD"
-      "\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD"
-      "\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD" },
-    { "Test With Truncation" },
-    { "Test Using Larger Than Block-Size Key - Hash Key First" },
-    { "Test Using Larger Than Block-Size Key and Larger"
-      " Than One Block-Size Data" }
-};
-
-static const int sha1_hmac_test_buflen[7] =
-{
-    8, 28, 50, 50, 20, 54, 73
-};
-
-static const unsigned char sha1_hmac_test_sum[7][20] =
-{
-    { 0xB6, 0x17, 0x31, 0x86, 0x55, 0x05, 0x72, 0x64, 0xE2, 0x8B,
-      0xC0, 0xB6, 0xFB, 0x37, 0x8C, 0x8E, 0xF1, 0x46, 0xBE, 0x00 },
-    { 0xEF, 0xFC, 0xDF, 0x6A, 0xE5, 0xEB, 0x2F, 0xA2, 0xD2, 0x74,
-      0x16, 0xD5, 0xF1, 0x84, 0xDF, 0x9C, 0x25, 0x9A, 0x7C, 0x79 },
-    { 0x12, 0x5D, 0x73, 0x42, 0xB9, 0xAC, 0x11, 0xCD, 0x91, 0xA3,
-      0x9A, 0xF4, 0x8A, 0xA1, 0x7B, 0x4F, 0x63, 0xF1, 0x75, 0xD3 },
-    { 0x4C, 0x90, 0x07, 0xF4, 0x02, 0x62, 0x50, 0xC6, 0xBC, 0x84,
-      0x14, 0xF9, 0xBF, 0x50, 0xC8, 0x6C, 0x2D, 0x72, 0x35, 0xDA },
-    { 0x4C, 0x1A, 0x03, 0x42, 0x4B, 0x55, 0xE0, 0x7F, 0xE7, 0xF2,
-      0x7B, 0xE1 },
-    { 0xAA, 0x4A, 0xE5, 0xE1, 0x52, 0x72, 0xD0, 0x0E, 0x95, 0x70,
-      0x56, 0x37, 0xCE, 0x8A, 0x3B, 0x55, 0xED, 0x40, 0x21, 0x12 },
-    { 0xE8, 0xE9, 0x9D, 0x0F, 0x45, 0x23, 0x7D, 0x78, 0x6D, 0x6B,
-      0xBA, 0xA7, 0x96, 0x5C, 0x78, 0x08, 0xBB, 0xFF, 0x1A, 0x91 }
-};
-
-/*
- * Checkup routine
- */
-int sha1_self_test( int verbose )
-{
-    int i, j, buflen;
-    unsigned char buf[1024];
-    unsigned char sha1sum[20];
-    sha1_context ctx;
-
-    /*
-     * SHA-1
-     */
-    for( i = 0; i < 3; i++ )
-    {
-        if( verbose != 0 )
-            printf( "  SHA-1 test #%d: ", i + 1 );
-
-        sha1_starts( &ctx );
-
-        if( i == 2 )
-        {
-            memset( buf, 'a', buflen = 1000 );
-
-            for( j = 0; j < 1000; j++ )
-                sha1_update( &ctx, buf, buflen );
-        }
-        else
-            sha1_update( &ctx, sha1_test_buf[i],
-                               sha1_test_buflen[i] );
-
-        sha1_finish( &ctx, sha1sum );
-
-        if( memcmp( sha1sum, sha1_test_sum[i], 20 ) != 0 )
-        {
-            if( verbose != 0 )
-                printf( "failed\n" );
-
-            return( 1 );
-        }
-
-        if( verbose != 0 )
-            printf( "passed\n" );
-    }
-
-    if( verbose != 0 )
-        printf( "\n" );
-
-    for( i = 0; i < 7; i++ )
-    {
-        if( verbose != 0 )
-            printf( "  HMAC-SHA-1 test #%d: ", i + 1 );
-
-        if( i == 5 || i == 6 )
-        {
-            memset( buf, '\xAA', buflen = 80 );
-            sha1_hmac_starts( &ctx, buf, buflen );
-        }
-        else
-            sha1_hmac_starts( &ctx, sha1_hmac_test_key[i],
-                                    sha1_hmac_test_keylen[i] );
-
-        sha1_hmac_update( &ctx, sha1_hmac_test_buf[i],
-                                sha1_hmac_test_buflen[i] );
-
-        sha1_hmac_finish( &ctx, sha1sum );
-
-        buflen = ( i == 4 ) ? 12 : 20;
-
-        if( memcmp( sha1sum, sha1_hmac_test_sum[i], buflen ) != 0 )
-        {
-            if( verbose != 0 )
-                printf( "failed\n" );
-
-            return( 1 );
-        }
-
-        if( verbose != 0 )
-            printf( "passed\n" );
-    }
-
-    if( verbose != 0 )
-        printf( "\n" );
-
-    return( 0 );
-}
-
-#endif
-
-#endif
diff --git a/package/luci/libs/luci-lib-px5g/src/library/timing.c b/package/luci/libs/luci-lib-px5g/src/library/timing.c
deleted file mode 100644 (file)
index 6b7ab74..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- *  Portable interface to the CPU cycle counter
- *
- *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
- *
- *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *    * Neither the names of PolarSSL or XySSL nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "polarssl/config.h"
-
-#if defined(POLARSSL_TIMING_C)
-
-#include "polarssl/timing.h"
-
-#if defined(WIN32)
-
-#include <windows.h>
-#include <winbase.h>
-
-struct _hr_time
-{
-    LARGE_INTEGER start;
-};
-
-#else
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <signal.h>
-#include <time.h>
-
-struct _hr_time
-{
-    struct timeval start;
-};
-
-#endif
-
-#if (defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__)
-
-unsigned long hardclock( void )
-{
-    unsigned long tsc;
-    __asm   rdtsc
-    __asm   mov  [tsc], eax
-    return( tsc );
-}
-
-#else
-#if defined(__GNUC__) && defined(__i386__)
-
-unsigned long hardclock( void )
-{
-    unsigned long tsc;
-    asm( "rdtsc" : "=a" (tsc) );
-    return( tsc );
-}
-
-#else
-#if defined(__GNUC__) && (defined(__amd64__) || defined(__x86_64__))
-
-unsigned long hardclock( void )
-{
-    unsigned long lo, hi;
-    asm( "rdtsc" : "=a" (lo), "=d" (hi) );
-    return( lo | (hi << 32) );
-}
-
-#else
-#if defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__))
-
-unsigned long hardclock( void )
-{
-    unsigned long tbl, tbu0, tbu1;
-
-    do
-    {
-        asm( "mftbu %0" : "=r" (tbu0) );
-        asm( "mftb  %0" : "=r" (tbl ) );
-        asm( "mftbu %0" : "=r" (tbu1) );
-    }
-    while( tbu0 != tbu1 );
-
-    return( tbl );
-}
-
-#else
-#if defined(__GNUC__) && defined(__sparc__)
-
-unsigned long hardclock( void )
-{
-    unsigned long tick;
-    asm( ".byte 0x83, 0x41, 0x00, 0x00" );
-    asm( "mov   %%g1, %0" : "=r" (tick) );
-    return( tick );
-}
-
-#else
-#if defined(__GNUC__) && defined(__alpha__)
-
-unsigned long hardclock( void )
-{
-    unsigned long cc;
-    asm( "rpcc %0" : "=r" (cc) );
-    return( cc & 0xFFFFFFFF );
-}
-
-#else
-#if defined(__GNUC__) && defined(__ia64__)
-
-unsigned long hardclock( void )
-{
-    unsigned long itc;
-    asm( "mov %0 = ar.itc" : "=r" (itc) );
-    return( itc );
-}
-
-#else
-
-static int hardclock_init = 0;
-static struct timeval tv_init;
-
-unsigned long hardclock( void )
-{
-    struct timeval tv_cur;
-
-    if( hardclock_init == 0 )
-    {
-        gettimeofday( &tv_init, NULL );
-        hardclock_init = 1;
-    }
-
-    gettimeofday( &tv_cur, NULL );
-    return( ( tv_cur.tv_sec  - tv_init.tv_sec  ) * 1000000
-          + ( tv_cur.tv_usec - tv_init.tv_usec ) );
-}
-
-#endif /* generic */
-#endif /* IA-64   */
-#endif /* Alpha   */
-#endif /* SPARC8  */
-#endif /* PowerPC */
-#endif /* AMD64   */
-#endif /* i586+   */
-
-int alarmed = 0;
-
-#if defined(WIN32)
-
-unsigned long get_timer( struct hr_time *val, int reset )
-{
-    unsigned long delta;
-    LARGE_INTEGER offset, hfreq;
-    struct _hr_time *t = (struct _hr_time *) val;
-
-    QueryPerformanceCounter(  &offset );
-    QueryPerformanceFrequency( &hfreq );
-
-    delta = (unsigned long)( ( 1000 *
-        ( offset.QuadPart - t->start.QuadPart ) ) /
-           hfreq.QuadPart );
-
-    if( reset )
-        QueryPerformanceCounter( &t->start );
-
-    return( delta );
-}
-
-DWORD WINAPI TimerProc( LPVOID uElapse )
-{
-    Sleep( (DWORD) uElapse );
-    alarmed = 1;
-    return( TRUE );
-}
-
-void set_alarm( int seconds )
-{
-    DWORD ThreadId;
-
-    alarmed = 0;
-    CloseHandle( CreateThread( NULL, 0, TimerProc,
-        (LPVOID) ( seconds * 1000 ), 0, &ThreadId ) );
-}
-
-void m_sleep( int milliseconds )
-{
-    Sleep( milliseconds );
-}
-
-#else
-
-unsigned long get_timer( struct hr_time *val, int reset )
-{
-    unsigned long delta;
-    struct timeval offset;
-    struct _hr_time *t = (struct _hr_time *) val;
-
-    gettimeofday( &offset, NULL );
-
-    delta = ( offset.tv_sec  - t->start.tv_sec  ) * 1000
-          + ( offset.tv_usec - t->start.tv_usec ) / 1000;
-
-    if( reset )
-    {
-        t->start.tv_sec  = offset.tv_sec;
-        t->start.tv_usec = offset.tv_usec;
-    }
-
-    return( delta );
-}
-
-static void sighandler( int signum )
-{
-    alarmed = 1;
-    signal( signum, sighandler );
-}
-
-void set_alarm( int seconds )
-{
-    alarmed = 0;
-    signal( SIGALRM, sighandler );
-    alarm( seconds );
-}
-
-void m_sleep( int milliseconds )
-{
-    struct timeval tv;
-
-    tv.tv_sec  = milliseconds / 1000;
-    tv.tv_usec = milliseconds * 1000;
-
-    select( 0, NULL, NULL, NULL, &tv );
-}
-
-#endif
-
-#endif
diff --git a/package/luci/libs/luci-lib-px5g/src/library/x509write.c b/package/luci/libs/luci-lib-px5g/src/library/x509write.c
deleted file mode 100644 (file)
index b9ebf35..0000000
+++ /dev/null
@@ -1,1137 +0,0 @@
-/*
- *  X.509 certificate and private key writing
- *
- *  Copyright (C) 2006-2007  Pascal Vizeli <pvizeli@yahoo.de>
- *  Modifications (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public
- *  License, version 2.1 as published by the Free Software Foundation.
- *
- *  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, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- *  MA  02110-1301  USA
- */
-/*
- *  The ITU-T X.509 standard defines a certificate format for PKI.
- *
- *  http://www.ietf.org/rfc/rfc2459.txt
- *  http://www.ietf.org/rfc/rfc3279.txt
- *
- *  ftp://ftp.rsasecurity.com/pub/pkcs/ascii/pkcs-1v2.asc
- *
- *  http://www.itu.int/ITU-T/studygroups/com17/languages/X.680-0207.pdf
- *  http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf
- *
- *  For CRS:
- *  http://www.faqs.org/rfcs/rfc2314.html
- */
-#include "polarssl/config.h"
-#include "polarssl/x509.h"
-/* #include "polarssl/base64.h" */
-#include "polarssl/sha1.h"
-
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <time.h>
-
-#define and &&
-#define or ||
-
-#if defined _MSC_VER && !defined snprintf
-#define snprintf _snprintf
-#endif
-
-static int x509write_realloc_node(x509_node *node, size_t larger);
-static int x509write_file(x509_node *node, char *path, int format, const char* pem_prolog, const char* pem_epilog);
-
-/*
- * evaluate how mani octet have this integer
- */
-static int asn1_eval_octet(unsigned int digit)
-{
-    int i, byte;
-
-    for (byte = 4, i = 24; i >= 0; i -= 8, --byte)
-        if (((digit >> i) & 0xFF) != 0)
-            return byte;
-
-    return 0;
-}
-
-/*
- * write the asn.1 length form into p
- */
-static int asn1_add_len(unsigned int size, x509_node *node)
-{
-    if (size > 127) {
-
-        /* long size */
-        int byte = asn1_eval_octet(size);
-        int i = 0;
-
-        *(node->p) = (0x80 | byte) & 0xFF;
-        ++node->p;
-
-        for (i = byte; i > 0; --i) {
-
-            *(node->p) = (size >> ((i - 1) * 8)) & 0xFF;
-            ++node->p;
-        }
-
-    } else {
-
-        /* short size */
-        *(node->p) = size & 0xFF;
-        if (size != 0)
-            ++node->p;
-    }
-
-    return 0;
-}
-
-/*
- * write a ans.1 object into p
- */
-static int asn1_add_obj(unsigned char *value, unsigned int size, int tag,
-        x509_node *node)
-{
-    int tl = 2;
-
-    if (tag == ASN1_BIT_STRING)
-        ++tl;
-
-    if (size > 127)
-        x509write_realloc_node(node, (size_t) size + tl +
-                asn1_eval_octet(size));
-    else
-        x509write_realloc_node(node, (size_t) size + tl);
-
-    if (node->data == NULL)
-        return 1;
-
-    /* tag */
-    *(node->p) = tag & 0xFF;
-    ++node->p;
-
-    /* len */
-    if (tag == ASN1_BIT_STRING) {
-        asn1_add_len((unsigned int) size + 1, node);
-        *(node->p) = 0x00;
-        ++node->p;
-    } else {
-        asn1_add_len((unsigned int) size, node);
-    }
-
-    /* value */
-    if (size > 0) {
-
-        memcpy(node->p, value, (size_t) size);
-        if ((node->p += size -1) != node->end)
-            return POLARSSL_ERR_X509_POINT_ERROR;
-    } else {
-        /* make nothing -> NULL */
-    }
-
-    return 0;
-}
-
-/*
- * write a asn.1 conform integer object
- */
-static int asn1_add_int(signed int value, x509_node *node)
-{
-    signed int i = 0, neg = 1;
-    unsigned int byte, u_val = 0, tmp_val = 0;
-
-    /* if negate? */
-    if (value < 0) {
-        neg = -1;
-        u_val = ~value;
-    } else {
-        u_val = value;
-    }
-
-    byte = asn1_eval_octet(u_val);
-    /* 0 isn't NULL */
-    if (byte == 0)
-        byte = 1;
-
-    /* ASN.1 integer is signed! */
-    if (byte < 4 and ((u_val >> ((byte -1) * 8)) & 0xFF) == 0x80)
-        byte += 1;
-
-    if (x509write_realloc_node(node, (size_t) byte + 2) != 0)
-        return 1;
-
-    /* tag */
-    *(node->p) = ASN1_INTEGER;
-    ++node->p;
-
-    /* len */
-    asn1_add_len(byte, node);
-
-    /* value */
-    for (i = byte; i > 0; --i) {
-
-        tmp_val = (u_val >> ((i - 1) * 8)) & 0xFF;
-        if (neg == 1)
-            *(node->p) = tmp_val;
-        else
-            *(node->p) = ~tmp_val;
-
-        if (i > 1)
-          ++node->p;
-    }
-
-    if (node->p != node->end)
-        return POLARSSL_ERR_X509_POINT_ERROR;
-
-    return 0;
-}
-
-/*
- * write a asn.1 conform mpi object
- */
-static int asn1_add_mpi(mpi *value, int tag, x509_node *node)
-{
-    size_t size = (mpi_msb(value) / 8) + 1;
-    unsigned char *buf;
-    int buf_len = (int) size, tl = 2;
-
-    if (tag == ASN1_BIT_STRING)
-        ++tl;
-
-    if (size > 127)
-        x509write_realloc_node(node, size + (size_t) tl +
-            asn1_eval_octet((unsigned int)size));
-    else
-        x509write_realloc_node(node, size + (size_t) tl);
-
-    if (node->data == NULL)
-        return 1;
-
-    buf = (unsigned char*) malloc(size);
-    if (mpi_write_binary(value, buf, buf_len) != 0)
-        return POLARSSL_ERR_MPI_BUFFER_TOO_SMALL;
-
-    /* tag */
-    *(node->p) = tag & 0xFF;
-    ++node->p;
-
-    /* len */
-    if (tag == ASN1_BIT_STRING) {
-        asn1_add_len((unsigned int) size + 1, node);
-        *(node->p) = 0x00;
-        ++node->p;
-    } else {
-        asn1_add_len((unsigned int) size, node);
-    }
-
-    /* value */
-    memcpy(node->p, buf, size);
-    free(buf);
-
-    if ((node->p += (int) size -1) != node->end)
-        return POLARSSL_ERR_X509_POINT_ERROR;
-
-    return 0;
-}
-
-/*
- * write a node into asn.1 conform object
- */
-static int asn1_append_tag(x509_node *node, int tag)
-{
-    int tl = 2;
-
-    x509_node tmp;
-    x509write_init_node(&tmp);
-
-    if (tag == ASN1_BIT_STRING)
-        ++tl;
-
-    if (node->len > 127)
-        x509write_realloc_node(&tmp, node->len + (size_t) tl +
-            asn1_eval_octet((unsigned int)node->len));
-    else
-        x509write_realloc_node(&tmp, node->len + (size_t) tl);
-
-    if (tmp.data == NULL) {
-        x509write_free_node(&tmp);
-        return 1;
-    }
-
-    /* tag */
-    *(tmp.p) = tag & 0xFF;
-    ++tmp.p;
-
-    /* len */
-    if (tag == ASN1_BIT_STRING) {
-        asn1_add_len((unsigned int) node->len + 1, &tmp);
-        *(tmp.p) = 0x00;
-        ++tmp.p;
-    } else {
-        asn1_add_len((unsigned int) node->len, &tmp);
-    }
-
-    /* value */
-    memcpy(tmp.p, node->data, node->len);
-
-    /* good? */
-    if ((tmp.p += (int) node->len -1) != tmp.end) {
-        x509write_free_node(&tmp);
-        return POLARSSL_ERR_X509_POINT_ERROR;
-    }
-
-    free(node->data);
-    node->data = tmp.data;
-    node->p = tmp.p;
-    node->end = tmp.end;
-    node->len = tmp.len;
-
-    return 0;
-}
-
-/*
- * write nodes into a asn.1 object
- */
-static int asn1_append_nodes(x509_node *node, int tag, int anz, ...)
-{
-    va_list ap;
-    size_t size = 0;
-    x509_node *tmp;
-    int count;
-
-    va_start(ap, anz);
-    count = anz;
-
-    while (count--) {
-
-        tmp = va_arg(ap, x509_node*);
-        if (tmp->data != NULL)
-            size += tmp->len;
-    }
-
-    if ( size > 127) {
-        if (x509write_realloc_node(node, size + (size_t) 2 +
-                    asn1_eval_octet(size)) != 0)
-            return 1;
-    } else {
-        if (x509write_realloc_node(node, size + (size_t) 2) != 0)
-            return 1;
-    }
-
-    /* tag */
-    *(node->p) = tag & 0xFF;
-    ++node->p;
-
-    /* len */
-    asn1_add_len(size, node);
-
-    /* value */
-    va_start(ap, anz);
-    count = anz;
-
-    while (count--) {
-
-        tmp = va_arg(ap, x509_node*);
-        if (tmp->data != NULL) {
-
-            memcpy(node->p, tmp->data, tmp->len);
-            if ((node->p += (int) tmp->len -1) != node->end)
-                ++node->p;
-        }
-    }
-
-    va_end(ap);
-    return 0;
-}
-
-/*
- * write a ASN.1 conform object identifiere include a "tag"
- */
-static int asn1_add_oid(x509_node *node, unsigned char *oid, size_t len,
-        int tag, int tag_val, unsigned char *value, size_t val_len)
-{
-    int ret;
-    x509_node tmp;
-
-    x509write_init_node(&tmp);
-
-    /* OBJECT IDENTIFIER */
-    if ((ret = asn1_add_obj(oid, len, ASN1_OID, &tmp)) != 0) {
-        x509write_free_node(&tmp);
-        return ret;
-    }
-
-    /* value */
-    if ((ret = asn1_add_obj(value, val_len, tag_val, &tmp)) != 0) {
-        x509write_free_node(&tmp);
-        return ret;
-    }
-
-    /* SET/SEQUENCE */
-    if ((ret = asn1_append_nodes(node, tag, 1, &tmp)) != 0) {
-        x509write_free_node(&tmp);
-        return ret;
-    }
-
-    x509write_free_node(&tmp);
-    return 0;
-}
-
-/*
- *  utcTime        UTCTime
- */
-static int asn1_add_date_utc(unsigned char *time, x509_node *node)
-{
-    unsigned char date[13], *sp;
-    x509_time xtime;
-    int ret;
-
-    sscanf((char*)time, "%d-%d-%d %d:%d:%d", &xtime.year, &xtime.mon,
-       &xtime.day, &xtime.hour, &xtime.min, &xtime.sec);
-
-    /* convert to YY */
-    if (xtime.year > 2000)
-        xtime.year -= 2000;
-    else
-        xtime.year -= 1900;
-
-    snprintf((char*)date, 13, "%2d%2d%2d%2d%2d%2d", xtime.year, xtime.mon, xtime.day,
-        xtime.hour, xtime.min, xtime.sec);
-
-    /* replace ' ' to '0' */
-    for (sp = date; *sp != '\0'; ++sp)
-        if (*sp == '\x20')
-            *sp = '\x30';
-
-    date[12] = 'Z';
-
-    if ((ret = asn1_add_obj(date, 13, ASN1_UTC_TIME, node)) != 0)
-        return ret;
-
-    return 0;
-}
-
-/*
- * serialize an rsa key into DER
- */
-
-int x509write_serialize_key(rsa_context *rsa, x509_node *node)
-{
-    int ret = 0;
-    x509write_init_node(node);
-
-    /* vers, n, e, d, p, q, dp, dq, pq */
-    if ((ret = asn1_add_int(rsa->ver, node)) != 0)
-        return ret;
-    if ((ret = asn1_add_mpi(&rsa->N, ASN1_INTEGER, node)) != 0)
-        return ret;
-    if ((ret = asn1_add_mpi(&rsa->E, ASN1_INTEGER, node)) != 0)
-        return ret;
-    if ((ret = asn1_add_mpi(&rsa->D, ASN1_INTEGER, node)) != 0)
-        return ret;
-    if ((ret = asn1_add_mpi(&rsa->P, ASN1_INTEGER, node)) != 0)
-        return ret;
-    if ((ret = asn1_add_mpi(&rsa->Q, ASN1_INTEGER, node)) != 0)
-        return ret;
-    if ((ret = asn1_add_mpi(&rsa->DP, ASN1_INTEGER, node)) != 0)
-        return ret;
-    if ((ret = asn1_add_mpi(&rsa->DQ, ASN1_INTEGER, node)) != 0)
-        return ret;
-    if ((ret = asn1_add_mpi(&rsa->QP, ASN1_INTEGER, node)) != 0)
-        return ret;
-    if ((ret = asn1_append_tag(node, ASN1_CONSTRUCTED | ASN1_SEQUENCE)) != 0)
-        return ret;
-
-    return 0;
-}
-
-/*
- * write a der/pem encoded rsa private key into a file
- */
-int x509write_keyfile(rsa_context *rsa, char *path, int out_flag)
-{
-    int ret = 0;
-    const char key_beg[] = "-----BEGIN RSA PRIVATE KEY-----\n",
-                key_end[] = "-----END RSA PRIVATE KEY-----\n";
-    x509_node node;
-
-    x509write_init_node(&node);
-    if ((ret = x509write_serialize_key(rsa,&node)) != 0) {
-        x509write_free_node(&node);
-             return ret;
-    }
-
-    ret = x509write_file(&node,path,out_flag,key_beg,key_end);
-    x509write_free_node(&node);
-
-    return ret;
-}
-
-
-/*
- * reasize the memory for node
- */
-static int x509write_realloc_node(x509_node *node, size_t larger)
-{
-    /* init len */
-    if (node->data == NULL) {
-        node->len = 0;
-        node->data = malloc(larger);
-        if(node->data == NULL)
-            return 1;
-    } else {
-        /* realloc memory */
-        if ((node->data = realloc(node->data, node->len + larger)) == NULL)
-            return 1;
-    }
-
-    /* init pointer */
-    node->p = &node->data[node->len];
-    node->len += larger;
-    node->end = &node->data[node->len -1];
-
-    return 0;
-}
-
-/*
- * init node
- */
-void x509write_init_node(x509_node *node)
-{
-    memset(node, 0, sizeof(x509_node));
-}
-
-/*
- * clean memory
- */
-void x509write_free_node(x509_node *node)
-{
-    if (node->data != NULL)
-        free(node->data);
-    node->p = NULL;
-    node->end = NULL;
-    node->len = 0;
-}
-
-/*
- * write a x509 certificate into file
- */
-int x509write_crtfile(x509_raw *chain, unsigned char *path, int out_flag)
-{
-    const char cer_beg[] = "-----BEGIN CERTIFICATE-----\n",
-               cer_end[] = "-----END CERTIFICATE-----\n";
-
-    return x509write_file(&chain->raw, (char*)path, out_flag, cer_beg, cer_end);
-}
-
-/*
- * write a x509 certificate into file
- */
-int x509write_csrfile(x509_raw *chain, unsigned char *path, int out_flag)
-{
-    const char cer_beg[] = "-----BEGIN CERTIFICATE REQUEST-----\n",
-               cer_end[] = "-----END CERTIFICATE REQUEST-----\n";
-
-    return x509write_file(&chain->raw, (char*)path, out_flag, cer_beg, cer_end);
-}
-
-/*
- * write an x509 file
- */
-static int x509write_file(x509_node *node, char *path, int format,
-        const char* pem_prolog, const char* pem_epilog)
-{
-    FILE *ofstream;
-    int is_err = 1/*, buf_len, i, n*/;
-    /* char* base_buf; */
-
-    if ((ofstream = fopen(path, "wb")) == NULL)
-        return 1;
-
-    switch (format) {
-        case X509_OUTPUT_DER:
-            if (fwrite(node->data, 1, node->len, ofstream)
-                != node->len)
-                is_err = -1;
-            break;
-/*
-        case X509_OUTPUT_PEM:
-            if (fprintf(ofstream,pem_prolog)<0) {
-                is_err = -1;
-                break;
-            }
-
-            buf_len = node->len << 1;
-            base_buf = (char*) malloc((size_t)buf_len);
-            memset(base_buf,0,buf_len);
-            if (base64_encode(base_buf, &buf_len, node->data,
-                        (int) node->len) != 0) {
-                is_err = -1;
-                break;
-            }
-
-            n=strlen(base_buf);
-            for(i=0;i<n;i+=64) {
-                fprintf(ofstream,"%.64s\n",&base_buf[i]);
-            }
-
-            if (fprintf(ofstream, pem_epilog)<0) {
-                is_err = -1;
-                break;
-            }
-
-            free(base_buf); */
-    }
-
-    fclose(ofstream);
-
-    if (is_err == -1)
-        return 1;
-
-    return 0;
-}
-
-
-/*
- * add the owner public key to x509 certificate
- */
-int x509write_add_pubkey(x509_raw *chain, rsa_context *pubkey)
-{
-    x509_node n_tmp, n_tmp2, *node;
-    int ret;
-
-    node = &chain->subpubkey;
-
-    x509write_init_node(&n_tmp);
-    x509write_init_node(&n_tmp2);
-
-    /*
-    *  RSAPublicKey ::= SEQUENCE {
-    *      modulus           INTEGER,  -- n
-    *      publicExponent    INTEGER   -- e
-    *  }
-    */
-    if ((ret = asn1_add_mpi(&pubkey->N, ASN1_INTEGER, &n_tmp)) != 0) {
-        x509write_free_node(&n_tmp);
-        x509write_free_node(&n_tmp2);
-        return ret;
-    }
-    if ((ret = asn1_add_mpi(&pubkey->E, ASN1_INTEGER, &n_tmp)) != 0) {
-        x509write_free_node(&n_tmp);
-        x509write_free_node(&n_tmp2);
-        return ret;
-    }
-    if ((ret = asn1_append_tag(&n_tmp, ASN1_CONSTRUCTED | ASN1_SEQUENCE))
-            != 0) {
-        x509write_free_node(&n_tmp);
-        x509write_free_node(&n_tmp2);
-        return ret;
-    }
-
-    /*
-     *  SubjectPublicKeyInfo  ::=  SEQUENCE  {
-     *       algorithm            AlgorithmIdentifier,
-     *       subjectPublicKey     BIT STRING }
-     */
-    if ((ret = asn1_append_tag(&n_tmp, ASN1_BIT_STRING)) != 0) {
-        x509write_free_node(&n_tmp);
-        x509write_free_node(&n_tmp2);
-       return ret;
-    }
-    if ((ret = asn1_add_oid(&n_tmp2, (unsigned char*)OID_PKCS1_RSA, 9,
-                  ASN1_CONSTRUCTED | ASN1_SEQUENCE, ASN1_NULL,
-                  (unsigned char *)"", 0)) != 0) {
-        x509write_free_node(&n_tmp);
-        x509write_free_node(&n_tmp2);
-        return ret;
-    }
-
-    if ((ret = asn1_append_nodes(node, ASN1_CONSTRUCTED | ASN1_SEQUENCE, 2,
-                   &n_tmp2, &n_tmp))) {
-        x509write_free_node(&n_tmp);
-        x509write_free_node(&n_tmp2);
-        return ret;
-    }
-
-    x509write_free_node(&n_tmp);
-    x509write_free_node(&n_tmp2);
-    return 0;
-}
-
-/*
- *  RelativeDistinguishedName ::=
- *    SET OF AttributeTypeAndValue
- *
- *  AttributeTypeAndValue ::= SEQUENCE {
- *    type     AttributeType,
- *    value    AttributeValue }
- */
-static int x509write_add_name(x509_node *node, unsigned char *oid,
-        unsigned int oid_len, unsigned char *value, int len, int value_tag)
-{
-    int ret;
-    x509_node n_tmp;
-
-    x509write_init_node(&n_tmp);
-
-    if ((ret = asn1_add_oid(&n_tmp, oid, oid_len,
-                ASN1_CONSTRUCTED | ASN1_SEQUENCE, value_tag,
-                value, len))) {
-        x509write_free_node(&n_tmp);
-        return ret;
-    }
-
-    if ((asn1_append_nodes(node, ASN1_CONSTRUCTED | ASN1_SET, 1, &n_tmp))
-            != 0) {
-        x509write_free_node(&n_tmp);
-        return ret;
-    }
-
-    x509write_free_node(&n_tmp);
-    return 0;
-}
-
-/*
- * Parse the name string and add to node
- */
-static int x509write_parse_names(x509_node *node, unsigned char *names)
-{
-    unsigned char *sp, *begin = NULL;
-    unsigned char oid[3] = OID_X520, tag[4], *tag_sp = tag;
-    unsigned char *C = NULL, *CN = NULL, *O = NULL, *OU = NULL,
-                  *ST = NULL, *L = NULL, *R = NULL;
-    int C_len = 0, CN_len = 0, O_len = 0, OU_len = 0, ST_len = 0,
-               L_len = 0, R_len = 0;
-    int ret = 0, is_tag = 1, is_begin = -1, len = 0;
-
-
-    for (sp = names; ; ++sp) {
-
-        /* filter tag */
-        if (is_tag == 1) {
-
-            if (tag_sp == &tag[3])
-                return POLARSSL_ERR_X509_VALUE_TO_LENGTH;
-
-            /* is tag end? */
-            if (*sp == '=') {
-                is_tag = -1;
-                *tag_sp = '\0';
-                is_begin = 1;
-                /* set len 0 (reset) */
-                len = 0;
-            } else {
-                /* tag hasn't ' '! */
-                if (*sp != ' ') {
-                    *tag_sp = *sp;
-                    ++tag_sp;
-                }
-            }
-        /* filter value */
-        } else {
-
-            /* set pointer of value begin */
-            if (is_begin == 1) {
-                begin = sp;
-                is_begin = -1;
-            }
-
-            /* is value at end? */
-            if (*sp == ';' or *sp == '\0') {
-                is_tag = 1;
-
-                /* common name */
-                if (tag[0] == 'C' and tag[1] == 'N') {
-                    CN = begin;
-                    CN_len = len;
-
-                /* organization */
-                } else if (tag[0] == 'O' and tag[1] == '\0') {
-                    O = begin;
-                    O_len = len;
-
-                /* country */
-                } else if (tag[0] == 'C' and tag[1] == '\0') {
-                    C = begin;
-                    C_len = len;
-
-                /* organisation unit */
-                } else if (tag[0] == 'O' and tag[1] == 'U') {
-                    OU = begin;
-                    OU_len = len;
-
-                /* state */
-                } else if (tag[0] == 'S' and tag[1] == 'T') {
-                    ST = begin;
-                    ST_len = len;
-
-                /* locality */
-                } else if (tag[0] == 'L' and tag[1] == '\0') {
-                    L = begin;
-                    L_len = len;
-
-                /* email */
-                } else if (tag[0] == 'R' and tag[1] == '\0') {
-                    R = begin;
-                    R_len = len;
-                }
-
-                /* set tag pointer to begin */
-                tag_sp = tag;
-
-                /* is at end? */
-                if (*sp == '\0' or *(sp +1) == '\0')
-                    break;
-            } else {
-                ++len;
-            }
-        }
-
-        /* make saver */
-        if (*sp == '\0')
-          break;
-    } /* end for */
-
-    /* country */
-    if (C != NULL) {
-        oid[2] = X520_COUNTRY;
-        if ((ret = x509write_add_name(node, oid, 3, C, C_len,
-                        ASN1_PRINTABLE_STRING)) != 0)
-            return ret;
-    }
-
-    /* state */
-    if (ST != NULL) {
-        oid[2] = X520_STATE;
-        if ((ret = x509write_add_name(node, oid, 3, ST, ST_len,
-                        ASN1_PRINTABLE_STRING)) != 0)
-            return ret;
-    }
-
-    /* locality */
-    if (L != NULL) {
-        oid[2] = X520_LOCALITY;
-        if ((ret = x509write_add_name(node, oid, 3, L, L_len,
-                        ASN1_PRINTABLE_STRING)) != 0)
-            return ret;
-    }
-
-    /* organization */
-    if (O != NULL) {
-        oid[2] = X520_ORGANIZATION;
-        if ((ret = x509write_add_name(node, oid, 3, O, O_len,
-                        ASN1_PRINTABLE_STRING)) != 0)
-            return ret;
-    }
-
-    /* organisation unit */
-    if (OU != NULL) {
-        oid[2] = X520_ORG_UNIT;
-        if ((ret = x509write_add_name(node, oid, 3, OU, OU_len,
-                        ASN1_PRINTABLE_STRING)) != 0)
-            return ret;
-    }
-
-    /* common name */
-    if (CN != NULL) {
-        oid[2] = X520_COMMON_NAME;
-        if ((ret = x509write_add_name(node, oid, 3, CN, CN_len,
-                        ASN1_PRINTABLE_STRING)) != 0)
-            return ret;
-    }
-
-    /* email */
-    if (R != NULL) {
-        if ((ret = x509write_add_name(node, (unsigned char*)OID_PKCS9_EMAIL,
-                       9, R, R_len, ASN1_IA5_STRING)) != 0)
-            return ret;
-    }
-
-    if ((asn1_append_tag(node, ASN1_CONSTRUCTED | ASN1_SEQUENCE)) != 0)
-        return ret;
-
-    return 0;
-}
-
-/*
- * Copy raw data from original ca to node
- */
-static int x509write_copy_from_raw(x509_node *node, x509_buf *raw)
-{
-    if (x509write_realloc_node(node, raw->len) != 0)
-        return 1;
-
-    memcpy(node->p, raw->p, (size_t)raw->len);
-    if ((node->p += raw->len -1) != node->end)
-        return POLARSSL_ERR_X509_POINT_ERROR;
-
-    return 0;
-}
-
-/*
- * Add the issuer
- */
-
-int x509write_add_issuer(x509_raw *crt, unsigned char *issuer)
-{
-    return x509write_parse_names(&crt->issuer, issuer);
-}
-
-/*
- * Add the subject
- */
-int x509write_add_subject(x509_raw *crt, unsigned char *subject)
-{
-    return x509write_parse_names(&crt->subject, subject);
-}
-
-/*
- * Copy issuer line from another cert to issuer
- */
-int x509write_copy_issuer(x509_raw *crt, x509_cert *from_crt)
-{
-    return x509write_copy_from_raw(&crt->issuer, &from_crt->issuer_raw);
-}
-
-/*
- * Copy subject line from another cert
- */
-int x509write_copy_subject(x509_raw *crt, x509_cert *from_crt)
-{
-    return x509write_copy_from_raw(&crt->subject, &from_crt->subject_raw);
-}
-
-/*
- * Copy subject line form antoher cert into issuer
- */
-int x509write_copy_issuer_form_subject(x509_raw *crt,
-        x509_cert *from_crt)
-{
-    return x509write_copy_from_raw(&crt->issuer, &from_crt->subject_raw);
-}
-
-/*
- * Copy issuer line from another cert into subject
- */
-int x509write_copy_subject_from_issuer(x509_raw *crt,
-        x509_cert * from_crt)
-{
-    return x509write_copy_from_raw(&crt->subject, &from_crt->issuer_raw);
-}
-
-/*
- *  Validity ::= SEQUENCE {
- *       notBefore      Time,
- *       notAfter       Time }
- *
- *  Time ::= CHOICE {
- *       utcTime        UTCTime,
- *       generalTime    GeneralizedTime }
- */
-/* TODO: No handle GeneralizedTime! */
-int x509write_add_validity(x509_raw *chain, unsigned char *befor,
-        unsigned char *after)
-{
-    int ret;
-
-    x509_node *node = &chain->validity;
-
-    /* notBefore */
-    if ((ret = asn1_add_date_utc(befor, node)) != 0)
-        return ret;
-
-    /* notAfter */
-    if ((ret = asn1_add_date_utc(after, node)) != 0)
-        return ret;
-
-    if ((ret = asn1_append_tag(node, ASN1_CONSTRUCTED | ASN1_SEQUENCE)) != 0)
-        return ret;
-
-    return 0;
-}
-
-/*
- * make hash from tbs and sign that with private key
- */
-static int x509write_make_sign(x509_raw *chain, rsa_context *privkey)
-{
-    int ret;
-    unsigned char hash[20], *sign;
-    size_t sign_len = (size_t) mpi_size(&privkey->N);
-
-    /* make hash */
-    sha1(chain->tbs.data, chain->tbs.len, hash);
-
-    /* create sign */
-    sign = (unsigned char *) malloc(sign_len);
-    if (sign == NULL)
-        return 1;
-
-    if ((ret = rsa_pkcs1_sign(privkey, RSA_PRIVATE, RSA_SHA1, 20, hash,
-                    sign)) != 0)
-        return ret;
-
-    if ((ret = asn1_add_obj(sign, sign_len, ASN1_BIT_STRING,
-                    &chain->sign)) != 0)
-        return ret;
-
-    /*
-     *  AlgorithmIdentifier  ::=  SEQUENCE  {
-     *       algorithm               OBJECT IDENTIFIER,
-     *       parameters              ANY DEFINED BY algorithm OPTIONAL  }
-     */
-    return asn1_add_oid(&chain->signalg, (unsigned char*)OID_PKCS1_RSA_SHA, 9,
-                  ASN1_CONSTRUCTED | ASN1_SEQUENCE, ASN1_NULL,
-                  (unsigned char*)"", 0);
-}
-
-/*
- * Create a self signed certificate
- */
-int x509write_create_sign(x509_raw *chain, rsa_context *privkey)
-{
-    int ret, serial;
-
-    /*
-     *  Version  ::=  INTEGER  {  v1(0), v2(1), v3(2)  }
-     */
-    if ((ret = asn1_add_int(2, &chain->version)) != 0)
-        return ret;
-
-    if ((ret = asn1_append_tag(&chain->version, ASN1_CONTEXT_SPECIFIC |
-                    ASN1_CONSTRUCTED)) != 0)
-        return ret;
-
-
-    /*
-     *  CertificateSerialNumber  ::=  INTEGER
-     */
-    srand((unsigned int) time(NULL));
-    serial = rand();
-    if ((ret = asn1_add_int(serial, &chain->serial)) != 0)
-        return ret;
-
-    /*
-     *  AlgorithmIdentifier  ::=  SEQUENCE  {
-     *       algorithm               OBJECT IDENTIFIER,
-     *       parameters              ANY DEFINED BY algorithm OPTIONAL  }
-     */
-    if ((ret = asn1_add_oid(&chain->tbs_signalg,
-                               (unsigned char*)OID_PKCS1_RSA_SHA, 9, ASN1_CONSTRUCTED |
-                               ASN1_SEQUENCE, ASN1_NULL, (unsigned char*)"", 0)) != 0)
-        return ret;
-
-   /*
-    *  Create the tbs
-    */
-    if ((ret = asn1_append_nodes(&chain->tbs, ASN1_CONSTRUCTED |
-                    ASN1_SEQUENCE, 7, &chain->version, &chain->serial,
-                    &chain->tbs_signalg, &chain->issuer, &chain->validity,
-                    &chain->subject, &chain->subpubkey)) != 0)
-        return ret;
-
-    /* make signing */
-    if ((ret = x509write_make_sign(chain, privkey)) != 0)
-        return ret;
-
-    /* finishing */
-    if ((ret = asn1_append_nodes(&chain->raw, ASN1_CONSTRUCTED |
-                    ASN1_SEQUENCE, 3, &chain->tbs, &chain->signalg,
-                    &chain->sign)) != 0)
-        return ret;
-
-    return 0;
-}
-
-int x509write_create_selfsign(x509_raw *chain, rsa_context *privkey)
-{
-    /*
-     * On self signed certificate are subject and issuer the same
-     */
-    x509write_free_node(&chain->issuer);
-    chain->issuer = chain->subject;
-    return x509write_create_sign(chain, privkey);
-}
-
-/*
- * CertificationRequestInfo ::= SEQUENCE                    {
- *    version                       Version,
- *    subject                       Name,
- *    subjectPublicKeyInfo          SubjectPublicKeyInfo,
- *    attributes                    [0] IMPLICIT Attributes }
- *
- * CertificationRequest ::=   SEQUENCE                      {
- *    certificationRequestInfo  CertificationRequestInfo,
- *    signatureAlgorithm        SignatureAlgorithmIdentifier,
- *    signature                 Signature                   }
- *
- * It use chain.serail for attributes!
- *
- */
-int x509write_create_csr(x509_raw *chain, rsa_context *privkey)
-{
-    int ret;
-
-    /* version ::= INTEGER */
-    if ((ret = asn1_add_int(0, &chain->version)) != 0)
-        return ret;
-
-    /* write attributes */
-    if ((ret = asn1_add_obj((unsigned char*)"", 0, ASN1_CONTEXT_SPECIFIC |
-                    ASN1_CONSTRUCTED, &chain->serial)) != 0)
-        return ret;
-
-    /* create CertificationRequestInfo */
-    if ((ret = asn1_append_nodes(&chain->tbs, ASN1_CONSTRUCTED |
-                    ASN1_SEQUENCE, 4, &chain->version, &chain->subject,
-                    &chain->subpubkey, &chain->serial)) != 0)
-        return ret;
-
-    /* make signing */
-    if ((ret = x509write_make_sign(chain, privkey)) != 0)
-        return ret;
-
-    /* finish */
-    if ((ret = asn1_append_nodes(&chain->raw, ASN1_CONSTRUCTED | ASN1_SEQUENCE,
-                    3, &chain->tbs, &chain->signalg, &chain->sign)) != 0)
-        return ret;
-
-    return ret;
-}
-
-/*
- * Free memory
- */
-void x509write_free_raw(x509_raw *chain)
-{
-    x509write_free_node(&chain->raw);
-    x509write_free_node(&chain->tbs);
-    x509write_free_node(&chain->version);
-    x509write_free_node(&chain->serial);
-    x509write_free_node(&chain->tbs_signalg);
-    x509write_free_node(&chain->issuer);
-    x509write_free_node(&chain->validity);
-    if (chain->subject.data != chain->issuer.data)
-        x509write_free_node(&chain->subject);
-    x509write_free_node(&chain->subpubkey);
-    x509write_free_node(&chain->signalg);
-    x509write_free_node(&chain->sign);
-}
-
-void x509write_init_raw(x509_raw *chain)
-{
-    memset((void *) chain, 0, sizeof(x509_raw));
-}
-
diff --git a/package/luci/libs/luci-lib-px5g/src/polarssl/bignum.h b/package/luci/libs/luci-lib-px5g/src/polarssl/bignum.h
deleted file mode 100644 (file)
index cf443ea..0000000
+++ /dev/null
@@ -1,437 +0,0 @@
-/**
- * \file bignum.h
- *
- *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
- *
- *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *  
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *    * Neither the names of PolarSSL or XySSL nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *  
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef POLARSSL_BIGNUM_H
-#define POLARSSL_BIGNUM_H
-
-#include <stdio.h>
-
-#define POLARSSL_ERR_MPI_FILE_IO_ERROR                     -0x0002
-#define POLARSSL_ERR_MPI_BAD_INPUT_DATA                    -0x0004
-#define POLARSSL_ERR_MPI_INVALID_CHARACTER                 -0x0006
-#define POLARSSL_ERR_MPI_BUFFER_TOO_SMALL                  -0x0008
-#define POLARSSL_ERR_MPI_NEGATIVE_VALUE                    -0x000A
-#define POLARSSL_ERR_MPI_DIVISION_BY_ZERO                  -0x000C
-#define POLARSSL_ERR_MPI_NOT_ACCEPTABLE                    -0x000E
-
-#define MPI_CHK(f) if( ( ret = f ) != 0 ) goto cleanup
-
-/*
- * Define the base integer type, architecture-wise
- */
-#if defined(POLARSSL_HAVE_INT8)
-typedef unsigned char  t_int;
-typedef unsigned short t_dbl;
-#else
-#if defined(POLARSSL_HAVE_INT16)
-typedef unsigned short t_int;
-typedef unsigned long  t_dbl;
-#else
-  typedef unsigned long t_int;
-  #if defined(_MSC_VER) && defined(_M_IX86)
-  typedef unsigned __int64 t_dbl;
-  #else
-    #if defined(__amd64__) || defined(__x86_64__)    || \
-        defined(__ppc64__) || defined(__powerpc64__) || \
-        defined(__ia64__)  || defined(__alpha__)
-    typedef unsigned int t_dbl __attribute__((mode(TI)));
-    #else
-    typedef unsigned long long t_dbl;
-    #endif
-  #endif
-#endif
-#endif
-
-/**
- * \brief          MPI structure
- */
-typedef struct
-{
-    int s;              /*!<  integer sign      */
-    int n;              /*!<  total # of limbs  */
-    t_int *p;           /*!<  pointer to limbs  */
-}
-mpi;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief          Initialize one or more mpi
- */
-void mpi_init( mpi *X, ... );
-
-/**
- * \brief          Unallocate one or more mpi
- */
-void mpi_free( mpi *X, ... );
-
-/**
- * \brief          Enlarge to the specified number of limbs
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_grow( mpi *X, int nblimbs );
-
-/**
- * \brief          Copy the contents of Y into X
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_copy( mpi *X, mpi *Y );
-
-/**
- * \brief          Swap the contents of X and Y
- */
-void mpi_swap( mpi *X, mpi *Y );
-
-/**
- * \brief          Set value from integer
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_lset( mpi *X, int z );
-
-/**
- * \brief          Return the number of least significant bits
- */
-int mpi_lsb( mpi *X );
-
-/**
- * \brief          Return the number of most significant bits
- */
-int mpi_msb( mpi *X );
-
-/**
- * \brief          Return the total size in bytes
- */
-int mpi_size( mpi *X );
-
-/**
- * \brief          Import from an ASCII string
- *
- * \param X        destination mpi
- * \param radix    input numeric base
- * \param s        null-terminated string buffer
- *
- * \return         0 if successful, or an POLARSSL_ERR_MPI_XXX error code
- */
-int mpi_read_string( mpi *X, int radix, char *s );
-
-/**
- * \brief          Export into an ASCII string
- *
- * \param X        source mpi
- * \param radix    output numeric base
- * \param s        string buffer
- * \param slen     string buffer size
- *
- * \return         0 if successful, or an POLARSSL_ERR_MPI_XXX error code
- *
- * \note           Call this function with *slen = 0 to obtain the
- *                 minimum required buffer size in *slen.
- */
-int mpi_write_string( mpi *X, int radix, char *s, int *slen );
-
-/**
- * \brief          Read X from an opened file
- *
- * \param X        destination mpi
- * \param radix    input numeric base
- * \param fin      input file handle
- *
- * \return         0 if successful, or an POLARSSL_ERR_MPI_XXX error code
- */
-int mpi_read_file( mpi *X, int radix, FILE *fin );
-
-/**
- * \brief          Write X into an opened file, or stdout
- *
- * \param p        prefix, can be NULL
- * \param X        source mpi
- * \param radix    output numeric base
- * \param fout     output file handle
- *
- * \return         0 if successful, or an POLARSSL_ERR_MPI_XXX error code
- *
- * \note           Set fout == NULL to print X on the console.
- */
-int mpi_write_file( char *p, mpi *X, int radix, FILE *fout );
-
-/**
- * \brief          Import X from unsigned binary data, big endian
- *
- * \param X        destination mpi
- * \param buf      input buffer
- * \param buflen   input buffer size
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_read_binary( mpi *X, unsigned char *buf, int buflen );
-
-/**
- * \brief          Export X into unsigned binary data, big endian
- *
- * \param X        source mpi
- * \param buf      output buffer
- * \param buflen   output buffer size
- *
- * \return         0 if successful,
- *                 POLARSSL_ERR_MPI_BUFFER_TOO_SMALL if buf isn't large enough
- *
- * \note           Call this function with *buflen = 0 to obtain the
- *                 minimum required buffer size in *buflen.
- */
-int mpi_write_binary( mpi *X, unsigned char *buf, int buflen );
-
-/**
- * \brief          Left-shift: X <<= count
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_shift_l( mpi *X, int count );
-
-/**
- * \brief          Right-shift: X >>= count
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_shift_r( mpi *X, int count );
-
-/**
- * \brief          Compare unsigned values
- *
- * \return         1 if |X| is greater than |Y|,
- *                -1 if |X| is lesser  than |Y| or
- *                 0 if |X| is equal to |Y|
- */
-int mpi_cmp_abs( mpi *X, mpi *Y );
-
-/**
- * \brief          Compare signed values
- *
- * \return         1 if X is greater than Y,
- *                -1 if X is lesser  than Y or
- *                 0 if X is equal to Y
- */
-int mpi_cmp_mpi( mpi *X, mpi *Y );
-
-/**
- * \brief          Compare signed values
- *
- * \return         1 if X is greater than z,
- *                -1 if X is lesser  than z or
- *                 0 if X is equal to z
- */
-int mpi_cmp_int( mpi *X, int z );
-
-/**
- * \brief          Unsigned addition: X = |A| + |B|
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_add_abs( mpi *X, mpi *A, mpi *B );
-
-/**
- * \brief          Unsigned subtraction: X = |A| - |B|
- *
- * \return         0 if successful,
- *                 POLARSSL_ERR_MPI_NEGATIVE_VALUE if B is greater than A
- */
-int mpi_sub_abs( mpi *X, mpi *A, mpi *B );
-
-/**
- * \brief          Signed addition: X = A + B
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_add_mpi( mpi *X, mpi *A, mpi *B );
-
-/**
- * \brief          Signed subtraction: X = A - B
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_sub_mpi( mpi *X, mpi *A, mpi *B );
-
-/**
- * \brief          Signed addition: X = A + b
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_add_int( mpi *X, mpi *A, int b );
-
-/**
- * \brief          Signed subtraction: X = A - b
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_sub_int( mpi *X, mpi *A, int b );
-
-/**
- * \brief          Baseline multiplication: X = A * B
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_mul_mpi( mpi *X, mpi *A, mpi *B );
-
-/**
- * \brief          Baseline multiplication: X = A * b
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_mul_int( mpi *X, mpi *A, t_int b );
-
-/**
- * \brief          Division by mpi: A = Q * B + R
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed,
- *                 POLARSSL_ERR_MPI_DIVISION_BY_ZERO if B == 0
- *
- * \note           Either Q or R can be NULL.
- */
-int mpi_div_mpi( mpi *Q, mpi *R, mpi *A, mpi *B );
-
-/**
- * \brief          Division by int: A = Q * b + R
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed,
- *                 POLARSSL_ERR_MPI_DIVISION_BY_ZERO if b == 0
- *
- * \note           Either Q or R can be NULL.
- */
-int mpi_div_int( mpi *Q, mpi *R, mpi *A, int b );
-
-/**
- * \brief          Modulo: R = A mod B
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed,
- *                 POLARSSL_ERR_MPI_DIVISION_BY_ZERO if B == 0
- */
-int mpi_mod_mpi( mpi *R, mpi *A, mpi *B );
-
-/**
- * \brief          Modulo: r = A mod b
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed,
- *                 POLARSSL_ERR_MPI_DIVISION_BY_ZERO if b == 0
- */
-int mpi_mod_int( t_int *r, mpi *A, int b );
-
-/**
- * \brief          Sliding-window exponentiation: X = A^E mod N
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed,
- *                 POLARSSL_ERR_MPI_BAD_INPUT_DATA if N is negative or even
- *
- * \note           _RR is used to avoid re-computing R*R mod N across
- *                 multiple calls, which speeds up things a bit. It can
- *                 be set to NULL if the extra performance is unneeded.
- */
-int mpi_exp_mod( mpi *X, mpi *A, mpi *E, mpi *N, mpi *_RR );
-
-/**
- * \brief          Greatest common divisor: G = gcd(A, B)
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed
- */
-int mpi_gcd( mpi *G, mpi *A, mpi *B );
-
-/**
- * \brief          Modular inverse: X = A^-1 mod N
- *
- * \return         0 if successful,
- *                 1 if memory allocation failed,
- *                 POLARSSL_ERR_MPI_BAD_INPUT_DATA if N is negative or nil
- *                 POLARSSL_ERR_MPI_NOT_ACCEPTABLE if A has no inverse mod N
- */
-int mpi_inv_mod( mpi *X, mpi *A, mpi *N );
-
-/**
- * \brief          Miller-Rabin primality test
- *
- * \return         0 if successful (probably prime),
- *                 1 if memory allocation failed,
- *                 POLARSSL_ERR_MPI_NOT_ACCEPTABLE if X is not prime
- */
-int mpi_is_prime( mpi *X, int (*f_rng)(void *), void *p_rng );
-
-/**
- * \brief          Prime number generation
- *
- * \param X        destination mpi
- * \param nbits    required size of X in bits
- * \param dh_flag  if 1, then (X-1)/2 will be prime too
- * \param f_rng    RNG function
- * \param p_rng    RNG parameter
- *
- * \return         0 if successful (probably prime),
- *                 1 if memory allocation failed,
- *                 POLARSSL_ERR_MPI_BAD_INPUT_DATA if nbits is < 3
- */
-int mpi_gen_prime( mpi *X, int nbits, int dh_flag,
-                   int (*f_rng)(void *), void *p_rng );
-
-/**
- * \brief          Checkup routine
- *
- * \return         0 if successful, or 1 if the test failed
- */
-int mpi_self_test( int verbose );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* bignum.h */
diff --git a/package/luci/libs/luci-lib-px5g/src/polarssl/bn_mul.h b/package/luci/libs/luci-lib-px5g/src/polarssl/bn_mul.h
deleted file mode 100644 (file)
index f6d34da..0000000
+++ /dev/null
@@ -1,731 +0,0 @@
-/**
- * \file bn_mul.h
- *
- *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
- *
- *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *  
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *    * Neither the names of PolarSSL or XySSL nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *  
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- *      Multiply source vector [s] with b, add result
- *       to destination vector [d] and set carry c.
- *
- *      Currently supports:
- *
- *         . IA-32 (386+)         . AMD64 / EM64T
- *         . IA-32 (SSE2)         . Motorola 68000
- *         . PowerPC, 32-bit      . MicroBlaze
- *         . PowerPC, 64-bit      . TriCore
- *         . SPARC v8             . ARM v3+
- *         . Alpha                . MIPS32
- *         . C, longlong          . C, generic
- */
-#ifndef POLARSSL_BN_MUL_H
-#define POLARSSL_BN_MUL_H
-
-#include "polarssl/config.h"
-
-#if defined(POLARSSL_HAVE_ASM)
-
-#if defined(__GNUC__)
-#if defined(__i386__)
-
-#define MULADDC_INIT                            \
-    asm( "movl   %%ebx, %0      " : "=m" (t));  \
-    asm( "movl   %0, %%esi      " :: "m" (s));  \
-    asm( "movl   %0, %%edi      " :: "m" (d));  \
-    asm( "movl   %0, %%ecx      " :: "m" (c));  \
-    asm( "movl   %0, %%ebx      " :: "m" (b));
-
-#define MULADDC_CORE                            \
-    asm( "lodsl                 " );            \
-    asm( "mull   %ebx           " );            \
-    asm( "addl   %ecx,   %eax   " );            \
-    asm( "adcl   $0,     %edx   " );            \
-    asm( "addl   (%edi), %eax   " );            \
-    asm( "adcl   $0,     %edx   " );            \
-    asm( "movl   %edx,   %ecx   " );            \
-    asm( "stosl                 " );
-
-#if defined(POLARSSL_HAVE_SSE2)
-
-#define MULADDC_HUIT                            \
-    asm( "movd     %ecx,     %mm1     " );      \
-    asm( "movd     %ebx,     %mm0     " );      \
-    asm( "movd     (%edi),   %mm3     " );      \
-    asm( "paddq    %mm3,     %mm1     " );      \
-    asm( "movd     (%esi),   %mm2     " );      \
-    asm( "pmuludq  %mm0,     %mm2     " );      \
-    asm( "movd     4(%esi),  %mm4     " );      \
-    asm( "pmuludq  %mm0,     %mm4     " );      \
-    asm( "movd     8(%esi),  %mm6     " );      \
-    asm( "pmuludq  %mm0,     %mm6     " );      \
-    asm( "movd     12(%esi), %mm7     " );      \
-    asm( "pmuludq  %mm0,     %mm7     " );      \
-    asm( "paddq    %mm2,     %mm1     " );      \
-    asm( "movd     4(%edi),  %mm3     " );      \
-    asm( "paddq    %mm4,     %mm3     " );      \
-    asm( "movd     8(%edi),  %mm5     " );      \
-    asm( "paddq    %mm6,     %mm5     " );      \
-    asm( "movd     12(%edi), %mm4     " );      \
-    asm( "paddq    %mm4,     %mm7     " );      \
-    asm( "movd     %mm1,     (%edi)   " );      \
-    asm( "movd     16(%esi), %mm2     " );      \
-    asm( "pmuludq  %mm0,     %mm2     " );      \
-    asm( "psrlq    $32,      %mm1     " );      \
-    asm( "movd     20(%esi), %mm4     " );      \
-    asm( "pmuludq  %mm0,     %mm4     " );      \
-    asm( "paddq    %mm3,     %mm1     " );      \
-    asm( "movd     24(%esi), %mm6     " );      \
-    asm( "pmuludq  %mm0,     %mm6     " );      \
-    asm( "movd     %mm1,     4(%edi)  " );      \
-    asm( "psrlq    $32,      %mm1     " );      \
-    asm( "movd     28(%esi), %mm3     " );      \
-    asm( "pmuludq  %mm0,     %mm3     " );      \
-    asm( "paddq    %mm5,     %mm1     " );      \
-    asm( "movd     16(%edi), %mm5     " );      \
-    asm( "paddq    %mm5,     %mm2     " );      \
-    asm( "movd     %mm1,     8(%edi)  " );      \
-    asm( "psrlq    $32,      %mm1     " );      \
-    asm( "paddq    %mm7,     %mm1     " );      \
-    asm( "movd     20(%edi), %mm5     " );      \
-    asm( "paddq    %mm5,     %mm4     " );      \
-    asm( "movd     %mm1,     12(%edi) " );      \
-    asm( "psrlq    $32,      %mm1     " );      \
-    asm( "paddq    %mm2,     %mm1     " );      \
-    asm( "movd     24(%edi), %mm5     " );      \
-    asm( "paddq    %mm5,     %mm6     " );      \
-    asm( "movd     %mm1,     16(%edi) " );      \
-    asm( "psrlq    $32,      %mm1     " );      \
-    asm( "paddq    %mm4,     %mm1     " );      \
-    asm( "movd     28(%edi), %mm5     " );      \
-    asm( "paddq    %mm5,     %mm3     " );      \
-    asm( "movd     %mm1,     20(%edi) " );      \
-    asm( "psrlq    $32,      %mm1     " );      \
-    asm( "paddq    %mm6,     %mm1     " );      \
-    asm( "movd     %mm1,     24(%edi) " );      \
-    asm( "psrlq    $32,      %mm1     " );      \
-    asm( "paddq    %mm3,     %mm1     " );      \
-    asm( "movd     %mm1,     28(%edi) " );      \
-    asm( "addl     $32,      %edi     " );      \
-    asm( "addl     $32,      %esi     " );      \
-    asm( "psrlq    $32,      %mm1     " );      \
-    asm( "movd     %mm1,     %ecx     " );
-
-#define MULADDC_STOP                            \
-    asm( "emms                        " );      \
-    asm( "movl   %0, %%ebx      " :: "m" (t));  \
-    asm( "movl   %%ecx, %0      " : "=m" (c));  \
-    asm( "movl   %%edi, %0      " : "=m" (d));  \
-    asm( "movl   %%esi, %0      " : "=m" (s) :: \
-    "eax", "ecx", "edx", "esi", "edi" );
-
-#else
-
-#define MULADDC_STOP                            \
-    asm( "movl   %0, %%ebx      " :: "m" (t));  \
-    asm( "movl   %%ecx, %0      " : "=m" (c));  \
-    asm( "movl   %%edi, %0      " : "=m" (d));  \
-    asm( "movl   %%esi, %0      " : "=m" (s) :: \
-    "eax", "ecx", "edx", "esi", "edi" );
-
-#endif /* SSE2 */
-#endif /* i386 */
-
-#if defined(__amd64__) || defined (__x86_64__)
-
-#define MULADDC_INIT                            \
-    asm( "movq   %0, %%rsi      " :: "m" (s));  \
-    asm( "movq   %0, %%rdi      " :: "m" (d));  \
-    asm( "movq   %0, %%rcx      " :: "m" (c));  \
-    asm( "movq   %0, %%rbx      " :: "m" (b));  \
-    asm( "xorq   %r8, %r8       " );
-
-#define MULADDC_CORE                            \
-    asm( "movq  (%rsi),%rax     " );            \
-    asm( "mulq   %rbx           " );            \
-    asm( "addq   $8,   %rsi     " );            \
-    asm( "addq   %rcx, %rax     " );            \
-    asm( "movq   %r8,  %rcx     " );            \
-    asm( "adcq   $0,   %rdx     " );            \
-    asm( "nop                   " );            \
-    asm( "addq   %rax, (%rdi)   " );            \
-    asm( "adcq   %rdx, %rcx     " );            \
-    asm( "addq   $8,   %rdi     " );
-
-#define MULADDC_STOP                            \
-    asm( "movq   %%rcx, %0      " : "=m" (c));  \
-    asm( "movq   %%rdi, %0      " : "=m" (d));  \
-    asm( "movq   %%rsi, %0      " : "=m" (s) :: \
-    "rax", "rcx", "rdx", "rbx", "rsi", "rdi", "r8" );
-
-#endif /* AMD64 */
-
-#if defined(__mc68020__) || defined(__mcpu32__)
-
-#define MULADDC_INIT                            \
-    asm( "movl   %0, %%a2       " :: "m" (s));  \
-    asm( "movl   %0, %%a3       " :: "m" (d));  \
-    asm( "movl   %0, %%d3       " :: "m" (c));  \
-    asm( "movl   %0, %%d2       " :: "m" (b));  \
-    asm( "moveq  #0, %d0        " );
-
-#define MULADDC_CORE                            \
-    asm( "movel  %a2@+, %d1     " );            \
-    asm( "mulul  %d2, %d4:%d1   " );            \
-    asm( "addl   %d3, %d1       " );            \
-    asm( "addxl  %d0, %d4       " );            \
-    asm( "moveq  #0,  %d3       " );            \
-    asm( "addl   %d1, %a3@+     " );            \
-    asm( "addxl  %d4, %d3       " );
-
-#define MULADDC_STOP                            \
-    asm( "movl   %%d3, %0       " : "=m" (c));  \
-    asm( "movl   %%a3, %0       " : "=m" (d));  \
-    asm( "movl   %%a2, %0       " : "=m" (s) :: \
-    "d0", "d1", "d2", "d3", "d4", "a2", "a3" );
-
-#define MULADDC_HUIT                            \
-    asm( "movel  %a2@+, %d1     " );            \
-    asm( "mulul  %d2, %d4:%d1   " );            \
-    asm( "addxl  %d3, %d1       " );            \
-    asm( "addxl  %d0, %d4       " );            \
-    asm( "addl   %d1, %a3@+     " );            \
-    asm( "movel  %a2@+, %d1     " );            \
-    asm( "mulul  %d2, %d3:%d1   " );            \
-    asm( "addxl  %d4, %d1       " );            \
-    asm( "addxl  %d0, %d3       " );            \
-    asm( "addl   %d1, %a3@+     " );            \
-    asm( "movel  %a2@+, %d1     " );            \
-    asm( "mulul  %d2, %d4:%d1   " );            \
-    asm( "addxl  %d3, %d1       " );            \
-    asm( "addxl  %d0, %d4       " );            \
-    asm( "addl   %d1, %a3@+     " );            \
-    asm( "movel  %a2@+, %d1     " );            \
-    asm( "mulul  %d2, %d3:%d1   " );            \
-    asm( "addxl  %d4, %d1       " );            \
-    asm( "addxl  %d0, %d3       " );            \
-    asm( "addl   %d1, %a3@+     " );            \
-    asm( "movel  %a2@+, %d1     " );            \
-    asm( "mulul  %d2, %d4:%d1   " );            \
-    asm( "addxl  %d3, %d1       " );            \
-    asm( "addxl  %d0, %d4       " );            \
-    asm( "addl   %d1, %a3@+     " );            \
-    asm( "movel  %a2@+, %d1     " );            \
-    asm( "mulul  %d2, %d3:%d1   " );            \
-    asm( "addxl  %d4, %d1       " );            \
-    asm( "addxl  %d0, %d3       " );            \
-    asm( "addl   %d1, %a3@+     " );            \
-    asm( "movel  %a2@+, %d1     " );            \
-    asm( "mulul  %d2, %d4:%d1   " );            \
-    asm( "addxl  %d3, %d1       " );            \
-    asm( "addxl  %d0, %d4       " );            \
-    asm( "addl   %d1, %a3@+     " );            \
-    asm( "movel  %a2@+, %d1     " );            \
-    asm( "mulul  %d2, %d3:%d1   " );            \
-    asm( "addxl  %d4, %d1       " );            \
-    asm( "addxl  %d0, %d3       " );            \
-    asm( "addl   %d1, %a3@+     " );            \
-    asm( "addxl  %d0, %d3       " );
-
-#endif /* MC68000 */
-
-#if defined(__powerpc__)   || defined(__ppc__)
-#if defined(__powerpc64__) || defined(__ppc64__)
-
-#if defined(__MACH__) && defined(__APPLE__)
-
-#define MULADDC_INIT                            \
-    asm( "ld     r3, %0         " :: "m" (s));  \
-    asm( "ld     r4, %0         " :: "m" (d));  \
-    asm( "ld     r5, %0         " :: "m" (c));  \
-    asm( "ld     r6, %0         " :: "m" (b));  \
-    asm( "addi   r3, r3, -8     " );            \
-    asm( "addi   r4, r4, -8     " );            \
-    asm( "addic  r5, r5,  0     " );
-
-#define MULADDC_CORE                            \
-    asm( "ldu    r7, 8(r3)      " );            \
-    asm( "mulld  r8, r7, r6     " );            \
-    asm( "mulhdu r9, r7, r6     " );            \
-    asm( "adde   r8, r8, r5     " );            \
-    asm( "ld     r7, 8(r4)      " );            \
-    asm( "addze  r5, r9         " );            \
-    asm( "addc   r8, r8, r7     " );            \
-    asm( "stdu   r8, 8(r4)      " );
-
-#define MULADDC_STOP                            \
-    asm( "addze  r5, r5         " );            \
-    asm( "addi   r4, r4, 8      " );            \
-    asm( "addi   r3, r3, 8      " );            \
-    asm( "std    r5, %0         " : "=m" (c));  \
-    asm( "std    r4, %0         " : "=m" (d));  \
-    asm( "std    r3, %0         " : "=m" (s) :: \
-    "r3", "r4", "r5", "r6", "r7", "r8", "r9" );
-
-#else
-
-#define MULADDC_INIT                            \
-    asm( "ld     %%r3, %0       " :: "m" (s));  \
-    asm( "ld     %%r4, %0       " :: "m" (d));  \
-    asm( "ld     %%r5, %0       " :: "m" (c));  \
-    asm( "ld     %%r6, %0       " :: "m" (b));  \
-    asm( "addi   %r3, %r3, -8   " );            \
-    asm( "addi   %r4, %r4, -8   " );            \
-    asm( "addic  %r5, %r5,  0   " );
-
-#define MULADDC_CORE                            \
-    asm( "ldu    %r7, 8(%r3)    " );            \
-    asm( "mulld  %r8, %r7, %r6  " );            \
-    asm( "mulhdu %r9, %r7, %r6  " );            \
-    asm( "adde   %r8, %r8, %r5  " );            \
-    asm( "ld     %r7, 8(%r4)    " );            \
-    asm( "addze  %r5, %r9       " );            \
-    asm( "addc   %r8, %r8, %r7  " );            \
-    asm( "stdu   %r8, 8(%r4)    " );
-
-#define MULADDC_STOP                            \
-    asm( "addze  %r5, %r5       " );            \
-    asm( "addi   %r4, %r4, 8    " );            \
-    asm( "addi   %r3, %r3, 8    " );            \
-    asm( "std    %%r5, %0       " : "=m" (c));  \
-    asm( "std    %%r4, %0       " : "=m" (d));  \
-    asm( "std    %%r3, %0       " : "=m" (s) :: \
-    "r3", "r4", "r5", "r6", "r7", "r8", "r9" );
-
-#endif
-
-#else /* PPC32 */
-
-#if defined(__MACH__) && defined(__APPLE__)
-
-#define MULADDC_INIT                            \
-    asm( "lwz    r3, %0         " :: "m" (s));  \
-    asm( "lwz    r4, %0         " :: "m" (d));  \
-    asm( "lwz    r5, %0         " :: "m" (c));  \
-    asm( "lwz    r6, %0         " :: "m" (b));  \
-    asm( "addi   r3, r3, -4     " );            \
-    asm( "addi   r4, r4, -4     " );            \
-    asm( "addic  r5, r5,  0     " );
-
-#define MULADDC_CORE                            \
-    asm( "lwzu   r7, 4(r3)      " );            \
-    asm( "mullw  r8, r7, r6     " );            \
-    asm( "mulhwu r9, r7, r6     " );            \
-    asm( "adde   r8, r8, r5     " );            \
-    asm( "lwz    r7, 4(r4)      " );            \
-    asm( "addze  r5, r9         " );            \
-    asm( "addc   r8, r8, r7     " );            \
-    asm( "stwu   r8, 4(r4)      " );
-
-#define MULADDC_STOP                            \
-    asm( "addze  r5, r5         " );            \
-    asm( "addi   r4, r4, 4      " );            \
-    asm( "addi   r3, r3, 4      " );            \
-    asm( "stw    r5, %0         " : "=m" (c));  \
-    asm( "stw    r4, %0         " : "=m" (d));  \
-    asm( "stw    r3, %0         " : "=m" (s) :: \
-    "r3", "r4", "r5", "r6", "r7", "r8", "r9" );
-
-#else
-
-#define MULADDC_INIT                            \
-    asm( "lwz    %%r3, %0       " :: "m" (s));  \
-    asm( "lwz    %%r4, %0       " :: "m" (d));  \
-    asm( "lwz    %%r5, %0       " :: "m" (c));  \
-    asm( "lwz    %%r6, %0       " :: "m" (b));  \
-    asm( "addi   %r3, %r3, -4   " );            \
-    asm( "addi   %r4, %r4, -4   " );            \
-    asm( "addic  %r5, %r5,  0   " );
-
-#define MULADDC_CORE                            \
-    asm( "lwzu   %r7, 4(%r3)    " );            \
-    asm( "mullw  %r8, %r7, %r6  " );            \
-    asm( "mulhwu %r9, %r7, %r6  " );            \
-    asm( "adde   %r8, %r8, %r5  " );            \
-    asm( "lwz    %r7, 4(%r4)    " );            \
-    asm( "addze  %r5, %r9       " );            \
-    asm( "addc   %r8, %r8, %r7  " );            \
-    asm( "stwu   %r8, 4(%r4)    " );
-
-#define MULADDC_STOP                            \
-    asm( "addze  %r5, %r5       " );            \
-    asm( "addi   %r4, %r4, 4    " );            \
-    asm( "addi   %r3, %r3, 4    " );            \
-    asm( "stw    %%r5, %0       " : "=m" (c));  \
-    asm( "stw    %%r4, %0       " : "=m" (d));  \
-    asm( "stw    %%r3, %0       " : "=m" (s) :: \
-    "r3", "r4", "r5", "r6", "r7", "r8", "r9" );
-
-#endif
-
-#endif /* PPC32 */
-#endif /* PPC64 */
-
-#if defined(__sparc__)
-
-#define MULADDC_INIT                            \
-    asm( "ld     %0, %%o0       " :: "m" (s));  \
-    asm( "ld     %0, %%o1       " :: "m" (d));  \
-    asm( "ld     %0, %%o2       " :: "m" (c));  \
-    asm( "ld     %0, %%o3       " :: "m" (b));
-
-#define MULADDC_CORE                            \
-    asm( "ld    [%o0], %o4      " );            \
-    asm( "inc      4,  %o0      " );            \
-    asm( "ld    [%o1], %o5      " );            \
-    asm( "umul   %o3,  %o4, %o4 " );            \
-    asm( "addcc  %o4,  %o2, %o4 " );            \
-    asm( "rd      %y,  %g1      " );            \
-    asm( "addx   %g1,    0, %g1 " );            \
-    asm( "addcc  %o4,  %o5, %o4 " );            \
-    asm( "st     %o4, [%o1]     " );            \
-    asm( "addx   %g1,    0, %o2 " );            \
-    asm( "inc      4,  %o1      " );
-
-#define MULADDC_STOP                            \
-    asm( "st     %%o2, %0       " : "=m" (c));  \
-    asm( "st     %%o1, %0       " : "=m" (d));  \
-    asm( "st     %%o0, %0       " : "=m" (s) :: \
-    "g1", "o0", "o1", "o2", "o3", "o4", "o5" );
-
-#endif /* SPARCv8 */
-
-#if defined(__microblaze__) || defined(microblaze)
-
-#define MULADDC_INIT                            \
-    asm( "lwi   r3,   %0        " :: "m" (s));  \
-    asm( "lwi   r4,   %0        " :: "m" (d));  \
-    asm( "lwi   r5,   %0        " :: "m" (c));  \
-    asm( "lwi   r6,   %0        " :: "m" (b));  \
-    asm( "andi  r7,   r6, 0xffff" );            \
-    asm( "bsrli r6,   r6, 16    " );
-
-#define MULADDC_CORE                            \
-    asm( "lhui  r8,   r3,   0   " );            \
-    asm( "addi  r3,   r3,   2   " );            \
-    asm( "lhui  r9,   r3,   0   " );            \
-    asm( "addi  r3,   r3,   2   " );            \
-    asm( "mul   r10,  r9,  r6   " );            \
-    asm( "mul   r11,  r8,  r7   " );            \
-    asm( "mul   r12,  r9,  r7   " );            \
-    asm( "mul   r13,  r8,  r6   " );            \
-    asm( "bsrli  r8, r10,  16   " );            \
-    asm( "bsrli  r9, r11,  16   " );            \
-    asm( "add   r13, r13,  r8   " );            \
-    asm( "add   r13, r13,  r9   " );            \
-    asm( "bslli r10, r10,  16   " );            \
-    asm( "bslli r11, r11,  16   " );            \
-    asm( "add   r12, r12, r10   " );            \
-    asm( "addc  r13, r13,  r0   " );            \
-    asm( "add   r12, r12, r11   " );            \
-    asm( "addc  r13, r13,  r0   " );            \
-    asm( "lwi   r10,  r4,   0   " );            \
-    asm( "add   r12, r12, r10   " );            \
-    asm( "addc  r13, r13,  r0   " );            \
-    asm( "add   r12, r12,  r5   " );            \
-    asm( "addc   r5, r13,  r0   " );            \
-    asm( "swi   r12,  r4,   0   " );            \
-    asm( "addi   r4,  r4,   4   " );
-
-#define MULADDC_STOP                            \
-    asm( "swi   r5,   %0        " : "=m" (c));  \
-    asm( "swi   r4,   %0        " : "=m" (d));  \
-    asm( "swi   r3,   %0        " : "=m" (s) :: \
-     "r3", "r4" , "r5" , "r6" , "r7" , "r8" ,   \
-     "r9", "r10", "r11", "r12", "r13" );
-
-#endif /* MicroBlaze */
-
-#if defined(__tricore__)
-
-#define MULADDC_INIT                            \
-    asm( "ld.a   %%a2, %0       " :: "m" (s));  \
-    asm( "ld.a   %%a3, %0       " :: "m" (d));  \
-    asm( "ld.w   %%d4, %0       " :: "m" (c));  \
-    asm( "ld.w   %%d1, %0       " :: "m" (b));  \
-    asm( "xor    %d5, %d5       " );
-
-#define MULADDC_CORE                            \
-    asm( "ld.w   %d0,   [%a2+]      " );        \
-    asm( "madd.u %e2, %e4, %d0, %d1 " );        \
-    asm( "ld.w   %d0,   [%a3]       " );        \
-    asm( "addx   %d2,    %d2,  %d0  " );        \
-    asm( "addc   %d3,    %d3,    0  " );        \
-    asm( "mov    %d4,    %d3        " );        \
-    asm( "st.w  [%a3+],  %d2        " );
-
-#define MULADDC_STOP                            \
-    asm( "st.w   %0, %%d4       " : "=m" (c));  \
-    asm( "st.a   %0, %%a3       " : "=m" (d));  \
-    asm( "st.a   %0, %%a2       " : "=m" (s) :: \
-    "d0", "d1", "e2", "d4", "a2", "a3" );
-
-#endif /* TriCore */
-
-#if defined(__arm__)
-
-#define MULADDC_INIT                            \
-    asm( "ldr    r0, %0         " :: "m" (s));  \
-    asm( "ldr    r1, %0         " :: "m" (d));  \
-    asm( "ldr    r2, %0         " :: "m" (c));  \
-    asm( "ldr    r3, %0         " :: "m" (b));
-
-#define MULADDC_CORE                            \
-    asm( "ldr    r4, [r0], #4   " );            \
-    asm( "mov    r5, #0         " );            \
-    asm( "ldr    r6, [r1]       " );            \
-    asm( "umlal  r2, r5, r3, r4 " );            \
-    asm( "adds   r7, r6, r2     " );            \
-    asm( "adc    r2, r5, #0     " );            \
-    asm( "str    r7, [r1], #4   " );
-
-#define MULADDC_STOP                            \
-    asm( "str    r2, %0         " : "=m" (c));  \
-    asm( "str    r1, %0         " : "=m" (d));  \
-    asm( "str    r0, %0         " : "=m" (s) :: \
-    "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7" );
-
-#endif /* ARMv3 */
-
-#if defined(__alpha__)
-
-#define MULADDC_INIT                            \
-    asm( "ldq    $1, %0         " :: "m" (s));  \
-    asm( "ldq    $2, %0         " :: "m" (d));  \
-    asm( "ldq    $3, %0         " :: "m" (c));  \
-    asm( "ldq    $4, %0         " :: "m" (b));
-
-#define MULADDC_CORE                            \
-    asm( "ldq    $6,  0($1)     " );            \
-    asm( "addq   $1,  8, $1     " );            \
-    asm( "mulq   $6, $4, $7     " );            \
-    asm( "umulh  $6, $4, $6     " );            \
-    asm( "addq   $7, $3, $7     " );            \
-    asm( "cmpult $7, $3, $3     " );            \
-    asm( "ldq    $5,  0($2)     " );            \
-    asm( "addq   $7, $5, $7     " );            \
-    asm( "cmpult $7, $5, $5     " );            \
-    asm( "stq    $7,  0($2)     " );            \
-    asm( "addq   $2,  8, $2     " );            \
-    asm( "addq   $6, $3, $3     " );            \
-    asm( "addq   $5, $3, $3     " );
-
-#define MULADDC_STOP                            \
-    asm( "stq    $3, %0         " : "=m" (c));  \
-    asm( "stq    $2, %0         " : "=m" (d));  \
-    asm( "stq    $1, %0         " : "=m" (s) :: \
-    "$1", "$2", "$3", "$4", "$5", "$6", "$7" );
-
-#endif /* Alpha */
-
-#if defined(__mips__)
-
-#define MULADDC_INIT                            \
-    asm( "lw     $10, %0        " :: "m" (s));  \
-    asm( "lw     $11, %0        " :: "m" (d));  \
-    asm( "lw     $12, %0        " :: "m" (c));  \
-    asm( "lw     $13, %0        " :: "m" (b));
-
-#define MULADDC_CORE                            \
-    asm( "lw     $14, 0($10)    " );            \
-    asm( "multu  $13, $14       " );            \
-    asm( "addi   $10, $10, 4    " );            \
-    asm( "mflo   $14            " );            \
-    asm( "mfhi   $9             " );            \
-    asm( "addu   $14, $12, $14  " );            \
-    asm( "lw     $15, 0($11)    " );            \
-    asm( "sltu   $12, $14, $12  " );            \
-    asm( "addu   $15, $14, $15  " );            \
-    asm( "sltu   $14, $15, $14  " );            \
-    asm( "addu   $12, $12, $9   " );            \
-    asm( "sw     $15, 0($11)    " );            \
-    asm( "addu   $12, $12, $14  " );            \
-    asm( "addi   $11, $11, 4    " );
-
-#define MULADDC_STOP                            \
-    asm( "sw     $12, %0        " : "=m" (c));  \
-    asm( "sw     $11, %0        " : "=m" (d));  \
-    asm( "sw     $10, %0        " : "=m" (s) :: \
-    "$9", "$10", "$11", "$12", "$13", "$14", "$15" );
-
-#endif /* MIPS */
-#endif /* GNUC */
-
-#if (defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__)
-
-#define MULADDC_INIT                            \
-    __asm   mov     esi, s                      \
-    __asm   mov     edi, d                      \
-    __asm   mov     ecx, c                      \
-    __asm   mov     ebx, b
-
-#define MULADDC_CORE                            \
-    __asm   lodsd                               \
-    __asm   mul     ebx                         \
-    __asm   add     eax, ecx                    \
-    __asm   adc     edx, 0                      \
-    __asm   add     eax, [edi]                  \
-    __asm   adc     edx, 0                      \
-    __asm   mov     ecx, edx                    \
-    __asm   stosd
-
-#if defined(POLARSSL_HAVE_SSE2)
-
-#define EMIT __asm _emit
-
-#define MULADDC_HUIT                            \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0xC9             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0xC3             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x1F             \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xCB             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x16             \
-    EMIT 0x0F  EMIT 0xF4  EMIT 0xD0             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x66  EMIT 0x04  \
-    EMIT 0x0F  EMIT 0xF4  EMIT 0xE0             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x76  EMIT 0x08  \
-    EMIT 0x0F  EMIT 0xF4  EMIT 0xF0             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x7E  EMIT 0x0C  \
-    EMIT 0x0F  EMIT 0xF4  EMIT 0xF8             \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xCA             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x5F  EMIT 0x04  \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xDC             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x6F  EMIT 0x08  \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xEE             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x67  EMIT 0x0C  \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xFC             \
-    EMIT 0x0F  EMIT 0x7E  EMIT 0x0F             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x56  EMIT 0x10  \
-    EMIT 0x0F  EMIT 0xF4  EMIT 0xD0             \
-    EMIT 0x0F  EMIT 0x73  EMIT 0xD1  EMIT 0x20  \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x66  EMIT 0x14  \
-    EMIT 0x0F  EMIT 0xF4  EMIT 0xE0             \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xCB             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x76  EMIT 0x18  \
-    EMIT 0x0F  EMIT 0xF4  EMIT 0xF0             \
-    EMIT 0x0F  EMIT 0x7E  EMIT 0x4F  EMIT 0x04  \
-    EMIT 0x0F  EMIT 0x73  EMIT 0xD1  EMIT 0x20  \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x5E  EMIT 0x1C  \
-    EMIT 0x0F  EMIT 0xF4  EMIT 0xD8             \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xCD             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x6F  EMIT 0x10  \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xD5             \
-    EMIT 0x0F  EMIT 0x7E  EMIT 0x4F  EMIT 0x08  \
-    EMIT 0x0F  EMIT 0x73  EMIT 0xD1  EMIT 0x20  \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xCF             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x6F  EMIT 0x14  \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xE5             \
-    EMIT 0x0F  EMIT 0x7E  EMIT 0x4F  EMIT 0x0C  \
-    EMIT 0x0F  EMIT 0x73  EMIT 0xD1  EMIT 0x20  \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xCA             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x6F  EMIT 0x18  \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xF5             \
-    EMIT 0x0F  EMIT 0x7E  EMIT 0x4F  EMIT 0x10  \
-    EMIT 0x0F  EMIT 0x73  EMIT 0xD1  EMIT 0x20  \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xCC             \
-    EMIT 0x0F  EMIT 0x6E  EMIT 0x6F  EMIT 0x1C  \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xDD             \
-    EMIT 0x0F  EMIT 0x7E  EMIT 0x4F  EMIT 0x14  \
-    EMIT 0x0F  EMIT 0x73  EMIT 0xD1  EMIT 0x20  \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xCE             \
-    EMIT 0x0F  EMIT 0x7E  EMIT 0x4F  EMIT 0x18  \
-    EMIT 0x0F  EMIT 0x73  EMIT 0xD1  EMIT 0x20  \
-    EMIT 0x0F  EMIT 0xD4  EMIT 0xCB             \
-    EMIT 0x0F  EMIT 0x7E  EMIT 0x4F  EMIT 0x1C  \
-    EMIT 0x83  EMIT 0xC7  EMIT 0x20             \
-    EMIT 0x83  EMIT 0xC6  EMIT 0x20             \
-    EMIT 0x0F  EMIT 0x73  EMIT 0xD1  EMIT 0x20  \
-    EMIT 0x0F  EMIT 0x7E  EMIT 0xC9
-
-#define MULADDC_STOP                            \
-    EMIT 0x0F  EMIT 0x77                        \
-    __asm   mov     c, ecx                      \
-    __asm   mov     d, edi                      \
-    __asm   mov     s, esi                      \
-
-#else
-
-#define MULADDC_STOP                            \
-    __asm   mov     c, ecx                      \
-    __asm   mov     d, edi                      \
-    __asm   mov     s, esi                      \
-
-#endif /* SSE2 */
-#endif /* MSVC */
-
-#endif /* POLARSSL_HAVE_ASM */
-
-#if !defined(MULADDC_CORE)
-#if defined(POLARSSL_HAVE_LONGLONG)
-
-#define MULADDC_INIT                    \
-{                                       \
-    t_dbl r;                            \
-    t_int r0, r1;
-
-#define MULADDC_CORE                    \
-    r   = *(s++) * (t_dbl) b;           \
-    r0  = r;                            \
-    r1  = r >> biL;                     \
-    r0 += c;  r1 += (r0 <  c);          \
-    r0 += *d; r1 += (r0 < *d);          \
-    c = r1; *(d++) = r0;
-
-#define MULADDC_STOP                    \
-}
-
-#else
-#define MULADDC_INIT                    \
-{                                       \
-    t_int s0, s1, b0, b1;               \
-    t_int r0, r1, rx, ry;               \
-    b0 = ( b << biH ) >> biH;           \
-    b1 = ( b >> biH );
-
-#define MULADDC_CORE                    \
-    s0 = ( *s << biH ) >> biH;          \
-    s1 = ( *s >> biH ); s++;            \
-    rx = s0 * b1; r0 = s0 * b0;         \
-    ry = s1 * b0; r1 = s1 * b1;         \
-    r1 += ( rx >> biH );                \
-    r1 += ( ry >> biH );                \
-    rx <<= biH; ry <<= biH;             \
-    r0 += rx; r1 += (r0 < rx);          \
-    r0 += ry; r1 += (r0 < ry);          \
-    r0 +=  c; r1 += (r0 <  c);          \
-    r0 += *d; r1 += (r0 < *d);          \
-    c = r1; *(d++) = r0;
-
-#define MULADDC_STOP                    \
-}
-
-#endif /* C (generic)  */
-#endif /* C (longlong) */
-
-#endif /* bn_mul.h */
diff --git a/package/luci/libs/luci-lib-px5g/src/polarssl/config.h b/package/luci/libs/luci-lib-px5g/src/polarssl/config.h
deleted file mode 100644 (file)
index 6463e52..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-/**
- * \file config.h
- *
- *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
- *
- *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *  
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *    * Neither the names of PolarSSL or XySSL nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *  
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This set of compile-time options may be used to enable
- * or disable features selectively, and reduce the global
- * memory footprint.
- */
-#ifndef POLARSSL_CONFIG_H
-#define POLARSSL_CONFIG_H
-
-#ifndef _CRT_SECURE_NO_DEPRECATE
-#define _CRT_SECURE_NO_DEPRECATE 1
-#endif
-
-/*
- * Uncomment if native integers are 8-bit wide.
- *
-#define POLARSSL_HAVE_INT8
- */
-
-/*
- * Uncomment if native integers are 16-bit wide.
- *
-#define POLARSSL_HAVE_INT16
- */
-
-/*
- * Uncomment if the compiler supports long long.
- */
-#define POLARSSL_HAVE_LONGLONG
-
-
-/*
- * Uncomment to enable the use of assembly code.
- */
-#define POLARSSL_HAVE_ASM
-
-/*
- * Uncomment if the CPU supports SSE2 (IA-32 specific).
- *
-#define POLARSSL_HAVE_SSE2
- */
-
-/*
- * Enable all SSL/TLS debugging messages.
- */
-#define POLARSSL_DEBUG_MSG
-
-/*
- * Enable the checkup functions (*_self_test).
- */
-#define POLARSSL_SELF_TEST
-
-/*
- * Enable the prime-number generation code.
- */
-#define POLARSSL_GENPRIME
-
-/*
- * Uncomment this macro to store the AES tables in ROM.
- *
-#define POLARSSL_AES_ROM_TABLES
- */
-
-/*
- * Module:  library/aes.c
- * Caller:  library/ssl_tls.c
- *
- * This module enables the following ciphersuites:
- *      SSL_RSA_AES_128_SHA
- *      SSL_RSA_AES_256_SHA
- *      SSL_EDH_RSA_AES_256_SHA
- */
-#define POLARSSL_AES_C
-
-/*
- * Module:  library/arc4.c
- * Caller:  library/ssl_tls.c
- *
- * This module enables the following ciphersuites:
- *      SSL_RSA_RC4_128_MD5
- *      SSL_RSA_RC4_128_SHA
- */
-#define POLARSSL_ARC4_C
-
-/*
- * Module:  library/base64.c
- * Caller:  library/x509parse.c
- *
- * This module is required for X.509 support.
- */
-#define POLARSSL_BASE64_C
-
-/*
- * Module:  library/bignum.c
- * Caller:  library/dhm.c
- *          library/rsa.c
- *          library/ssl_tls.c
- *          library/x509parse.c
- *
- * This module is required for RSA and DHM support.
- */
-#define POLARSSL_BIGNUM_C
-
-/*
- * Module:  library/camellia.c
- * Caller:
- *
- * This module enabled the following cipher suites:
- */
-#define POLARSSL_CAMELLIA_C
-
-/*
- * Module:  library/certs.c
- * Caller:
- *
- * This module is used for testing (ssl_client/server).
- */
-#define POLARSSL_CERTS_C
-
-/*
- * Module:  library/debug.c
- * Caller:  library/ssl_cli.c
- *          library/ssl_srv.c
- *          library/ssl_tls.c
- *
- * This module provides debugging functions.
- */
-#define POLARSSL_DEBUG_C
-
-/*
- * Module:  library/des.c
- * Caller:  library/ssl_tls.c
- *
- * This module enables the following ciphersuites:
- *      SSL_RSA_DES_168_SHA
- *      SSL_EDH_RSA_DES_168_SHA
- */
-#define POLARSSL_DES_C
-
-/*
- * Module:  library/dhm.c
- * Caller:  library/ssl_cli.c
- *          library/ssl_srv.c
- *
- * This module enables the following ciphersuites:
- *      SSL_EDH_RSA_DES_168_SHA
- *      SSL_EDH_RSA_AES_256_SHA
- */
-#define POLARSSL_DHM_C
-
-/*
- * Module:  library/havege.c
- * Caller:
- *
- * This module enables the HAVEGE random number generator.
- */
-#define POLARSSL_HAVEGE_C
-
-/*
- * Module:  library/md2.c
- * Caller:  library/x509parse.c
- *
- * Uncomment to enable support for (rare) MD2-signed X.509 certs.
- *
-#define POLARSSL_MD2_C
- */
-
-/*
- * Module:  library/md4.c
- * Caller:  library/x509parse.c
- *
- * Uncomment to enable support for (rare) MD4-signed X.509 certs.
- *
-#define POLARSSL_MD4_C
- */
-
-/*
- * Module:  library/md5.c
- * Caller:  library/ssl_tls.c
- *          library/x509parse.c
- *
- * This module is required for SSL/TLS and X.509.
- */
-#define POLARSSL_MD5_C
-
-/*
- * Module:  library/net.c
- * Caller:
- *
- * This module provides TCP/IP networking routines.
- */
-#define POLARSSL_NET_C
-
-/*
- * Module:  library/padlock.c
- * Caller:  library/aes.c
- *
- * This modules adds support for the VIA PadLock on x86.
- */
-#define POLARSSL_PADLOCK_C
-
-/*
- * Module:  library/rsa.c
- * Caller:  library/ssl_cli.c
- *          library/ssl_srv.c
- *          library/ssl_tls.c
- *          library/x509.c
- *
- * This module is required for SSL/TLS and MD5-signed certificates.
- */
-#define POLARSSL_RSA_C
-
-/*
- * Module:  library/sha1.c
- * Caller:  library/ssl_cli.c
- *          library/ssl_srv.c
- *          library/ssl_tls.c
- *          library/x509parse.c
- *
- * This module is required for SSL/TLS and SHA1-signed certificates.
- */
-#define POLARSSL_SHA1_C
-
-/*
- * Module:  library/sha2.c
- * Caller:
- *
- * This module adds support for SHA-224 and SHA-256.
- */
-#define POLARSSL_SHA2_C
-
-/*
- * Module:  library/sha4.c
- * Caller:
- *
- * This module adds support for SHA-384 and SHA-512.
- */
-#define POLARSSL_SHA4_C
-
-/*
- * Module:  library/ssl_cli.c
- * Caller:
- *
- * This module is required for SSL/TLS client support.
- */
-#define POLARSSL_SSL_CLI_C
-
-/*
- * Module:  library/ssl_srv.c
- * Caller:
- *
- * This module is required for SSL/TLS server support.
- */
-#define POLARSSL_SSL_SRV_C
-
-/*
- * Module:  library/ssl_tls.c
- * Caller:  library/ssl_cli.c
- *          library/ssl_srv.c
- *
- * This module is required for SSL/TLS.
- */
-#define POLARSSL_SSL_TLS_C
-
-/*
- * Module:  library/timing.c
- * Caller:  library/havege.c
- *
- * This module is used by the HAVEGE random number generator.
- */
-#define POLARSSL_TIMING_C
-
-/*
- * Module:  library/x509parse.c
- * Caller:  library/ssl_cli.c
- *          library/ssl_srv.c
- *          library/ssl_tls.c
- *
- * This module is required for X.509 certificate parsing.
- */
-#define POLARSSL_X509_PARSE_C
-
-/*
- * Module:  library/x509_write.c
- * Caller:
- *
- * This module is required for X.509 certificate writing.
- */
-#define POLARSSL_X509_WRITE_C
-
-/*
- * Module:  library/xtea.c
- * Caller:
- */
-#define POLARSSL_XTEA_C
-
-#endif /* config.h */
diff --git a/package/luci/libs/luci-lib-px5g/src/polarssl/havege.h b/package/luci/libs/luci-lib-px5g/src/polarssl/havege.h
deleted file mode 100644 (file)
index c27ceca..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * \file havege.h
- *
- *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
- *
- *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *  
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *    * Neither the names of PolarSSL or XySSL nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *  
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef POLARSSL_HAVEGE_H
-#define POLARSSL_HAVEGE_H
-
-#define COLLECT_SIZE 1024
-
-/**
- * \brief          HAVEGE state structure
- */
-typedef struct
-{
-    int PT1, PT2, offset[2];
-    int pool[COLLECT_SIZE];
-    int WALK[8192];
-}
-havege_state;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief          HAVEGE initialization
- *
- * \param hs       HAVEGE state to be initialized
- */
-void havege_init( havege_state *hs );
-
-/**
- * \brief          HAVEGE rand function
- *
- * \param rng_st   points to an HAVEGE state
- *
- * \return         A random int
- */
-int havege_rand( void *p_rng );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* havege.h */
diff --git a/package/luci/libs/luci-lib-px5g/src/polarssl/rsa.h b/package/luci/libs/luci-lib-px5g/src/polarssl/rsa.h
deleted file mode 100644 (file)
index b31dc2f..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-/**
- * \file rsa.h
- *
- *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
- *
- *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *  
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *    * Neither the names of PolarSSL or XySSL nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *  
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef POLARSSL_RSA_H
-#define POLARSSL_RSA_H
-
-#include "polarssl/bignum.h"
-
-#define POLARSSL_ERR_RSA_BAD_INPUT_DATA                    -0x0400
-#define POLARSSL_ERR_RSA_INVALID_PADDING                   -0x0410
-#define POLARSSL_ERR_RSA_KEY_GEN_FAILED                    -0x0420
-#define POLARSSL_ERR_RSA_KEY_CHECK_FAILED                  -0x0430
-#define POLARSSL_ERR_RSA_PUBLIC_FAILED                     -0x0440
-#define POLARSSL_ERR_RSA_PRIVATE_FAILED                    -0x0450
-#define POLARSSL_ERR_RSA_VERIFY_FAILED                     -0x0460
-#define POLARSSL_ERR_RSA_OUTPUT_TO_LARGE                   -0x0470
-
-/*
- * PKCS#1 constants
- */
-#define RSA_RAW         0
-#define RSA_MD2         2
-#define RSA_MD4         3
-#define RSA_MD5         4
-#define RSA_SHA1        5
-#define RSA_SHA256      6
-
-#define RSA_PUBLIC      0
-#define RSA_PRIVATE     1
-
-#define RSA_PKCS_V15    0
-#define RSA_PKCS_V21    1
-
-#define RSA_SIGN        1
-#define RSA_CRYPT       2
-
-/*
- * DigestInfo ::= SEQUENCE {
- *   digestAlgorithm DigestAlgorithmIdentifier,
- *   digest Digest }
- *
- * DigestAlgorithmIdentifier ::= AlgorithmIdentifier
- *
- * Digest ::= OCTET STRING
- */
-#define ASN1_HASH_MDX                       \
-    "\x30\x20\x30\x0C\x06\x08\x2A\x86\x48"  \
-    "\x86\xF7\x0D\x02\x00\x05\x00\x04\x10"
-
-#define ASN1_HASH_SHA1                      \
-    "\x30\x21\x30\x09\x06\x05\x2B\x0E\x03"  \
-    "\x02\x1A\x05\x00\x04\x14"
-
-/**
- * \brief          RSA context structure
- */
-typedef struct
-{
-    int ver;                    /*!<  always 0          */
-    int len;                    /*!<  size(N) in chars  */
-
-    mpi N;                      /*!<  public modulus    */
-    mpi E;                      /*!<  public exponent   */
-
-    mpi D;                      /*!<  private exponent  */
-    mpi P;                      /*!<  1st prime factor  */
-    mpi Q;                      /*!<  2nd prime factor  */
-    mpi DP;                     /*!<  D % (P - 1)       */
-    mpi DQ;                     /*!<  D % (Q - 1)       */
-    mpi QP;                     /*!<  1 / (Q % P)       */
-
-    mpi RN;                     /*!<  cached R^2 mod N  */
-    mpi RP;                     /*!<  cached R^2 mod P  */
-    mpi RQ;                     /*!<  cached R^2 mod Q  */
-
-    int padding;                /*!<  1.5 or OAEP/PSS   */
-    int hash_id;                /*!<  hash identifier   */
-    int (*f_rng)(void *);       /*!<  RNG function      */
-    void *p_rng;                /*!<  RNG parameter     */
-}
-rsa_context;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief          Initialize an RSA context
- *
- * \param ctx      RSA context to be initialized
- * \param padding  RSA_PKCS_V15 or RSA_PKCS_V21
- * \param hash_id  RSA_PKCS_V21 hash identifier
- * \param f_rng    RNG function
- * \param p_rng    RNG parameter
- *
- * \note           The hash_id parameter is actually ignored
- *                 when using RSA_PKCS_V15 padding.
- *
- * \note           Currently (xyssl-0.8), RSA_PKCS_V21 padding
- *                 is not supported.
- */
-void rsa_init( rsa_context *ctx,
-               int padding,
-               int hash_id,
-               int (*f_rng)(void *),
-               void *p_rng );
-
-/**
- * \brief          Generate an RSA keypair
- *
- * \param ctx      RSA context that will hold the key
- * \param nbits    size of the public key in bits
- * \param exponent public exponent (e.g., 65537)
- *
- * \note           rsa_init() must be called beforehand to setup
- *                 the RSA context (especially f_rng and p_rng).
- *
- * \return         0 if successful, or an POLARSSL_ERR_RSA_XXX error code
- */
-int rsa_gen_key( rsa_context *ctx, int nbits, int exponent );
-
-/**
- * \brief          Check a public RSA key
- *
- * \param ctx      RSA context to be checked
- *
- * \return         0 if successful, or an POLARSSL_ERR_RSA_XXX error code
- */
-int rsa_check_pubkey( rsa_context *ctx );
-
-/**
- * \brief          Check a private RSA key
- *
- * \param ctx      RSA context to be checked
- *
- * \return         0 if successful, or an POLARSSL_ERR_RSA_XXX error code
- */
-int rsa_check_privkey( rsa_context *ctx );
-
-/**
- * \brief          Do an RSA public key operation
- *
- * \param ctx      RSA context
- * \param input    input buffer
- * \param output   output buffer
- *
- * \return         0 if successful, or an POLARSSL_ERR_RSA_XXX error code
- *
- * \note           This function does NOT take care of message
- *                 padding. Also, be sure to set input[0] = 0.
- *
- * \note           The input and output buffers must be large
- *                 enough (eg. 128 bytes if RSA-1024 is used).
- */
-int rsa_public( rsa_context *ctx,
-                unsigned char *input,
-                unsigned char *output );
-
-/**
- * \brief          Do an RSA private key operation
- *
- * \param ctx      RSA context
- * \param input    input buffer
- * \param output   output buffer
- *
- * \return         0 if successful, or an POLARSSL_ERR_RSA_XXX error code
- *
- * \note           The input and output buffers must be large
- *                 enough (eg. 128 bytes if RSA-1024 is used).
- */
-int rsa_private( rsa_context *ctx,
-                 unsigned char *input,
-                 unsigned char *output );
-
-/**
- * \brief          Add the message padding, then do an RSA operation
- *
- * \param ctx      RSA context
- * \param mode     RSA_PUBLIC or RSA_PRIVATE
- * \param ilen     contains the the plaintext length
- * \param input    buffer holding the data to be encrypted
- * \param output   buffer that will hold the ciphertext
- *
- * \return         0 if successful, or an POLARSSL_ERR_RSA_XXX error code
- *
- * \note           The output buffer must be as large as the size
- *                 of ctx->N (eg. 128 bytes if RSA-1024 is used).
- */
-int rsa_pkcs1_encrypt( rsa_context *ctx,
-                       int mode, int  ilen,
-                       unsigned char *input,
-                       unsigned char *output );
-
-/**
- * \brief          Do an RSA operation, then remove the message padding
- *
- * \param ctx      RSA context
- * \param mode     RSA_PUBLIC or RSA_PRIVATE
- * \param input    buffer holding the encrypted data
- * \param output   buffer that will hold the plaintext
- * \param olen     will contain the plaintext length
- * \param output_max_len       maximum length of the output buffer
- *
- * \return         0 if successful, or an POLARSSL_ERR_RSA_XXX error code
- *
- * \note           The output buffer must be as large as the size
- *                 of ctx->N (eg. 128 bytes if RSA-1024 is used) otherwise
- *                 an error is thrown.
- */
-int rsa_pkcs1_decrypt( rsa_context *ctx,
-                       int mode, int *olen,
-                       unsigned char *input,
-                       unsigned char *output,
-                      int output_max_len);
-
-/**
- * \brief          Do a private RSA to sign a message digest
- *
- * \param ctx      RSA context
- * \param mode     RSA_PUBLIC or RSA_PRIVATE
- * \param hash_id  RSA_RAW, RSA_MD{2,4,5} or RSA_SHA{1,256}
- * \param hashlen  message digest length (for RSA_RAW only)
- * \param hash     buffer holding the message digest
- * \param sig      buffer that will hold the ciphertext
- *
- * \return         0 if the signing operation was successful,
- *                 or an POLARSSL_ERR_RSA_XXX error code
- *
- * \note           The "sig" buffer must be as large as the size
- *                 of ctx->N (eg. 128 bytes if RSA-1024 is used).
- */
-int rsa_pkcs1_sign( rsa_context *ctx,
-                    int mode,
-                    int hash_id,
-                    int hashlen,
-                    unsigned char *hash,
-                    unsigned char *sig );
-
-/**
- * \brief          Do a public RSA and check the message digest
- *
- * \param ctx      points to an RSA public key
- * \param mode     RSA_PUBLIC or RSA_PRIVATE
- * \param hash_id  RSA_RAW, RSA_MD{2,4,5} or RSA_SHA{1,256}
- * \param hashlen  message digest length (for RSA_RAW only)
- * \param hash     buffer holding the message digest
- * \param sig      buffer holding the ciphertext
- *
- * \return         0 if the verify operation was successful,
- *                 or an POLARSSL_ERR_RSA_XXX error code
- *
- * \note           The "sig" buffer must be as large as the size
- *                 of ctx->N (eg. 128 bytes if RSA-1024 is used).
- */
-int rsa_pkcs1_verify( rsa_context *ctx,
-                      int mode,
-                      int hash_id,
-                      int hashlen,
-                      unsigned char *hash,
-                      unsigned char *sig );
-
-/**
- * \brief          Free the components of an RSA key
- */
-void rsa_free( rsa_context *ctx );
-
-/**
- * \brief          Checkup routine
- *
- * \return         0 if successful, or 1 if the test failed
- */
-int rsa_self_test( int verbose );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* rsa.h */
diff --git a/package/luci/libs/luci-lib-px5g/src/polarssl/sha1.h b/package/luci/libs/luci-lib-px5g/src/polarssl/sha1.h
deleted file mode 100644 (file)
index 3ca7dc3..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
- * \file sha1.h
- *
- *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
- *
- *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *  
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *    * Neither the names of PolarSSL or XySSL nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *  
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef POLARSSL_SHA1_H
-#define POLARSSL_SHA1_H
-
-/**
- * \brief          SHA-1 context structure
- */
-typedef struct
-{
-    unsigned long total[2];     /*!< number of bytes processed  */
-    unsigned long state[5];     /*!< intermediate digest state  */
-    unsigned char buffer[64];   /*!< data block being processed */
-
-    unsigned char ipad[64];     /*!< HMAC: inner padding        */
-    unsigned char opad[64];     /*!< HMAC: outer padding        */
-}
-sha1_context;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief          SHA-1 context setup
- *
- * \param ctx      context to be initialized
- */
-void sha1_starts( sha1_context *ctx );
-
-/**
- * \brief          SHA-1 process buffer
- *
- * \param ctx      SHA-1 context
- * \param input    buffer holding the  data
- * \param ilen     length of the input data
- */
-void sha1_update( sha1_context *ctx, unsigned char *input, int ilen );
-
-/**
- * \brief          SHA-1 final digest
- *
- * \param ctx      SHA-1 context
- * \param output   SHA-1 checksum result
- */
-void sha1_finish( sha1_context *ctx, unsigned char output[20] );
-
-/**
- * \brief          Output = SHA-1( input buffer )
- *
- * \param input    buffer holding the  data
- * \param ilen     length of the input data
- * \param output   SHA-1 checksum result
- */
-void sha1( unsigned char *input, int ilen, unsigned char output[20] );
-
-/**
- * \brief          Output = SHA-1( file contents )
- *
- * \param path     input file name
- * \param output   SHA-1 checksum result
- *
- * \return         0 if successful, 1 if fopen failed,
- *                 or 2 if fread failed
- */
-int sha1_file( char *path, unsigned char output[20] );
-
-/**
- * \brief          SHA-1 HMAC context setup
- *
- * \param ctx      HMAC context to be initialized
- * \param key      HMAC secret key
- * \param keylen   length of the HMAC key
- */
-void sha1_hmac_starts( sha1_context *ctx, unsigned char *key, int keylen );
-
-/**
- * \brief          SHA-1 HMAC process buffer
- *
- * \param ctx      HMAC context
- * \param input    buffer holding the  data
- * \param ilen     length of the input data
- */
-void sha1_hmac_update( sha1_context *ctx, unsigned char *input, int ilen );
-
-/**
- * \brief          SHA-1 HMAC final digest
- *
- * \param ctx      HMAC context
- * \param output   SHA-1 HMAC checksum result
- */
-void sha1_hmac_finish( sha1_context *ctx, unsigned char output[20] );
-
-/**
- * \brief          Output = HMAC-SHA-1( hmac key, input buffer )
- *
- * \param key      HMAC secret key
- * \param keylen   length of the HMAC key
- * \param input    buffer holding the  data
- * \param ilen     length of the input data
- * \param output   HMAC-SHA-1 result
- */
-void sha1_hmac( unsigned char *key, int keylen,
-                unsigned char *input, int ilen,
-                unsigned char output[20] );
-
-/**
- * \brief          Checkup routine
- *
- * \return         0 if successful, or 1 if the test failed
- */
-int sha1_self_test( int verbose );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* sha1.h */
diff --git a/package/luci/libs/luci-lib-px5g/src/polarssl/timing.h b/package/luci/libs/luci-lib-px5g/src/polarssl/timing.h
deleted file mode 100644 (file)
index 62d627f..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * \file timing.h
- *
- *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
- *
- *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *  
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *    * Neither the names of PolarSSL or XySSL nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *  
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef POLARSSL_TIMING_H
-#define POLARSSL_TIMING_H
-
-/**
- * \brief          timer structure
- */
-struct hr_time
-{
-    unsigned char opaque[32];
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int alarmed;
-
-/**
- * \brief          Return the CPU cycle counter value
- */
-unsigned long hardclock( void );
-
-/**
- * \brief          Return the elapsed time in milliseconds
- *
- * \param val      points to a timer structure
- * \param reset    if set to 1, the timer is restarted
- */
-unsigned long get_timer( struct hr_time *val, int reset );
-
-/**
- * \brief          Setup an alarm clock
- *
- * \param seconds  delay before the "alarmed" flag is set
- */
-void set_alarm( int seconds );
-
-/**
- * \brief          Sleep for a certain amount of time
- */
-void m_sleep( int milliseconds );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* timing.h */
diff --git a/package/luci/libs/luci-lib-px5g/src/polarssl/x509.h b/package/luci/libs/luci-lib-px5g/src/polarssl/x509.h
deleted file mode 100644 (file)
index 6c9ef99..0000000
+++ /dev/null
@@ -1,549 +0,0 @@
-/**
- * \file x509.h
- *
- *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
- *
- *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *  
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *    * Neither the names of PolarSSL or XySSL nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *  
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef POLARSSL_X509_H
-#define POLARSSL_X509_H
-
-#include "polarssl/rsa.h"
-
-#define POLARSSL_ERR_ASN1_OUT_OF_DATA                      -0x0014
-#define POLARSSL_ERR_ASN1_UNEXPECTED_TAG                   -0x0016
-#define POLARSSL_ERR_ASN1_INVALID_LENGTH                   -0x0018
-#define POLARSSL_ERR_ASN1_LENGTH_MISMATCH                  -0x001A
-#define POLARSSL_ERR_ASN1_INVALID_DATA                     -0x001C
-
-#define POLARSSL_ERR_X509_FEATURE_UNAVAILABLE              -0x0020
-#define POLARSSL_ERR_X509_CERT_INVALID_PEM                 -0x0040
-#define POLARSSL_ERR_X509_CERT_INVALID_FORMAT              -0x0060
-#define POLARSSL_ERR_X509_CERT_INVALID_VERSION             -0x0080
-#define POLARSSL_ERR_X509_CERT_INVALID_SERIAL              -0x00A0
-#define POLARSSL_ERR_X509_CERT_INVALID_ALG                 -0x00C0
-#define POLARSSL_ERR_X509_CERT_INVALID_NAME                -0x00E0
-#define POLARSSL_ERR_X509_CERT_INVALID_DATE                -0x0100
-#define POLARSSL_ERR_X509_CERT_INVALID_PUBKEY              -0x0120
-#define POLARSSL_ERR_X509_CERT_INVALID_SIGNATURE           -0x0140
-#define POLARSSL_ERR_X509_CERT_INVALID_EXTENSIONS          -0x0160
-#define POLARSSL_ERR_X509_CERT_UNKNOWN_VERSION             -0x0180
-#define POLARSSL_ERR_X509_CERT_UNKNOWN_SIG_ALG             -0x01A0
-#define POLARSSL_ERR_X509_CERT_UNKNOWN_PK_ALG              -0x01C0
-#define POLARSSL_ERR_X509_CERT_SIG_MISMATCH                -0x01E0
-#define POLARSSL_ERR_X509_CERT_VERIFY_FAILED               -0x0200
-#define POLARSSL_ERR_X509_KEY_INVALID_PEM                  -0x0220
-#define POLARSSL_ERR_X509_KEY_INVALID_VERSION              -0x0240
-#define POLARSSL_ERR_X509_KEY_INVALID_FORMAT               -0x0260
-#define POLARSSL_ERR_X509_KEY_INVALID_ENC_IV               -0x0280
-#define POLARSSL_ERR_X509_KEY_UNKNOWN_ENC_ALG              -0x02A0
-#define POLARSSL_ERR_X509_KEY_PASSWORD_REQUIRED            -0x02C0
-#define POLARSSL_ERR_X509_KEY_PASSWORD_MISMATCH            -0x02E0
-#define POLARSSL_ERR_X509_POINT_ERROR                      -0x0300
-#define POLARSSL_ERR_X509_VALUE_TO_LENGTH                  -0x0320
-
-#define BADCERT_EXPIRED                 1
-#define BADCERT_REVOKED                 2
-#define BADCERT_CN_MISMATCH             4
-#define BADCERT_NOT_TRUSTED             8
-
-/*
- * DER constants
- */
-#define ASN1_BOOLEAN                 0x01
-#define ASN1_INTEGER                 0x02
-#define ASN1_BIT_STRING              0x03
-#define ASN1_OCTET_STRING            0x04
-#define ASN1_NULL                    0x05
-#define ASN1_OID                     0x06
-#define ASN1_UTF8_STRING             0x0C
-#define ASN1_SEQUENCE                0x10
-#define ASN1_SET                     0x11
-#define ASN1_PRINTABLE_STRING        0x13
-#define ASN1_T61_STRING              0x14
-#define ASN1_IA5_STRING              0x16
-#define ASN1_UTC_TIME                0x17
-#define ASN1_UNIVERSAL_STRING        0x1C
-#define ASN1_BMP_STRING              0x1E
-#define ASN1_PRIMITIVE               0x00
-#define ASN1_CONSTRUCTED             0x20
-#define ASN1_CONTEXT_SPECIFIC        0x80
-
-/*
- * various object identifiers
- */
-#define X520_COMMON_NAME                3
-#define X520_COUNTRY                    6
-#define X520_LOCALITY                   7
-#define X520_STATE                      8
-#define X520_ORGANIZATION              10
-#define X520_ORG_UNIT                  11
-#define PKCS9_EMAIL                     1
-
-#define X509_OUTPUT_DER              0x01
-#define X509_OUTPUT_PEM              0x02
-#define PEM_LINE_LENGTH                72
-#define X509_ISSUER                  0x01
-#define X509_SUBJECT                 0x02
-
-#define OID_X520                "\x55\x04"
-#define OID_CN                  "\x55\x04\x03"
-#define OID_PKCS1               "\x2A\x86\x48\x86\xF7\x0D\x01\x01"
-#define OID_PKCS1_RSA           "\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01"
-#define OID_PKCS1_RSA_SHA       "\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05"
-#define OID_PKCS9               "\x2A\x86\x48\x86\xF7\x0D\x01\x09"
-#define OID_PKCS9_EMAIL         "\x2A\x86\x48\x86\xF7\x0D\x01\x09\x01"
-
-/*
- * Structures for parsing X.509 certificates
- */
-typedef struct _x509_buf
-{
-    int tag;
-    int len;
-    unsigned char *p;
-}
-x509_buf;
-
-typedef struct _x509_name
-{
-    x509_buf oid;
-    x509_buf val;
-    struct _x509_name *next;
-}
-x509_name;
-
-typedef struct _x509_time
-{
-    int year, mon, day;
-    int hour, min, sec;
-}
-x509_time;
-
-typedef struct _x509_cert
-{
-    x509_buf raw;
-    x509_buf tbs;
-
-    int version;
-    x509_buf serial;
-    x509_buf sig_oid1;
-
-    x509_buf issuer_raw;
-    x509_buf subject_raw;
-
-    x509_name issuer;
-    x509_name subject;
-
-    x509_time valid_from;
-    x509_time valid_to;
-
-    x509_buf pk_oid;
-    rsa_context rsa;
-
-    x509_buf issuer_id;
-    x509_buf subject_id;
-    x509_buf v3_ext;
-
-    int ca_istrue;
-    int max_pathlen;
-
-    x509_buf sig_oid2;
-    x509_buf sig;
-
-    struct _x509_cert *next; 
-}
-x509_cert;
-
-/*
- * Structures for writing X.509 certificates
- */
-typedef struct _x509_node
-{
-    unsigned char *data;
-    unsigned char *p;
-    unsigned char *end;
-
-    size_t len;
-}
-x509_node;
-
-typedef struct _x509_raw
-{
-    x509_node raw;
-    x509_node tbs;
-
-    x509_node version;
-    x509_node serial;
-    x509_node tbs_signalg;
-    x509_node issuer;
-    x509_node validity;
-    x509_node subject;
-    x509_node subpubkey;
-
-    x509_node signalg;
-    x509_node sign;
-}
-x509_raw;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief          Parse one or more certificates and add them
- *                 to the chained list
- *
- * \param chain    points to the start of the chain
- * \param buf      buffer holding the certificate data
- * \param buflen   size of the buffer
- *
- * \return         0 if successful, or a specific X509 error code
- */
-int x509parse_crt( x509_cert *crt, unsigned char *buf, int buflen );
-
-/**
- * \brief          Load one or more certificates and add them
- *                 to the chained list
- *
- * \param chain    points to the start of the chain
- * \param path     filename to read the certificates from
- *
- * \return         0 if successful, or a specific X509 error code
- */
-int x509parse_crtfile( x509_cert *crt, char *path );
-
-/**
- * \brief          Parse a private RSA key
- *
- * \param rsa      RSA context to be initialized
- * \param buf      input buffer
- * \param buflen   size of the buffer
- * \param pwd      password for decryption (optional)
- * \param pwdlen   size of the password
- *
- * \return         0 if successful, or a specific X509 error code
- */
-int x509parse_key( rsa_context *rsa,
-                   unsigned char *buf, int buflen,
-                   unsigned char *pwd, int pwdlen );
-
-/**
- * \brief          Load and parse a private RSA key
- *
- * \param rsa      RSA context to be initialized
- * \param path     filename to read the private key from
- * \param pwd      password to decrypt the file (can be NULL)
- *
- * \return         0 if successful, or a specific X509 error code
- */
-int x509parse_keyfile( rsa_context *rsa, char *path, char *password );
-
-/**
- * \brief          Store the certificate DN in printable form into buf;
- *                 no more than (end - buf) characters will be written.
- */
-int x509parse_dn_gets( char *buf, char *end, x509_name *dn );
-
-/**
- * \brief          Returns an informational string about the
- *                 certificate.
- */
-char *x509parse_cert_info( char *prefix, x509_cert *crt );
-
-/**
- * \brief          Return 0 if the certificate is still valid,
- *                 or BADCERT_EXPIRED
- */
-int x509parse_expired( x509_cert *crt );
-
-/**
- * \brief          Verify the certificate signature
- *
- * \param crt      a certificate to be verified
- * \param trust_ca the trusted CA chain
- * \param cn       expected Common Name (can be set to
- *                 NULL if the CN must not be verified)
- * \param flags    result of the verification
- *
- * \return         0 if successful or POLARSSL_ERR_X509_SIG_VERIFY_FAILED,
- *                 in which case *flags will have one or more of
- *                 the following values set:
- *                      BADCERT_EXPIRED --
- *                      BADCERT_REVOKED --
- *                      BADCERT_CN_MISMATCH --
- *                      BADCERT_NOT_TRUSTED
- *
- * \note           TODO: add two arguments, depth and crl
- */
-int x509parse_verify( x509_cert *crt,
-                      x509_cert *trust_ca,
-                      char *cn, int *flags );
-
-/**
- * \brief          Unallocate all certificate data
- */
-void x509_free( x509_cert *crt );
-
-/**
- * \brief          Checkup routine
- *
- * \return         0 if successful, or 1 if the test failed
- */
-int x509_self_test( int verbose );
-
-/**
- * \brief          Write a certificate info file
- *
- * \param chain    points to the raw certificate data
- * \param path     filename to write the certificate to
- * \param format   X509_OUTPUT_DER or X509_OUTPUT_PEM
- *
- * \return         0 if successful, or a specific X509 error code
- */
-int x509write_crtfile( x509_raw *chain,
-                       unsigned char *path,
-                       int format );
-
-/**
- * \brief          Write a certificate signing request message format file
- *
- * \param chain    points to the raw certificate (with x509write_create_csr) data
- * \param path     filename to write the certificate to
- * \param format   X509_OUTPUT_DER or X509_OUTPUT_PEM
- *
- * \return         0 if successful, or a specific X509 error code
- */
-int x509write_csrfile( x509_raw *chain,
-                       unsigned char *path,
-                       int format );
-
-/*
- * \brief          Write a private RSA key into a file
- *
- * \param rsa      points to an RSA key
- * \param path     filename to write the key to
- * \param format   X509_OUTPUT_DER or X509_OUTPUT_PEM
- *
- * \return         0 if successful, or a specific X509 error code
- */
-int x509write_keyfile( rsa_context *rsa,
-                       char *path,
-                       int format );
-
-/**
- * \brief          Add a public key to certificate
- *
- * \param chain    points to the raw certificate data
- * \param pubkey   points to an RSA key
- *
- * \return         0 if successful, or a specific X509 error code
- */
-int x509write_add_pubkey( x509_raw *chain, rsa_context *pubkey );
-
-/**
- * \brief          Create x509 subject/issuer field to raw certificate
- *                 from string or CA cert. Make string NULL if you will
- *                 use the CA copy function or make CA NULL then used
- *                 the string parse.
- *
- * \param chain    points to the raw certificate data
- * \param names    a string that can hold (separate with ";"):
- *                     CN=CommonName
- *                 --   O=Organization
- *                 --  OU=OrgUnit
- *                 --  ST=State
- *                 --   L=Locality
- *                 --   R=Email
- *                 --   C=Country
- *                 . Make that NULL if you didn't need that.
- * \param flag     flag is X509_ISSUER or X509_SUBJECT that defined
- *                 where change
- * \param ca       the certificate for copy data. Make that NULL if you
- *                 didn't need that.
- * \param ca_flag  set the ca field from copy to crt
- *
- * \return         0 if successful, or a specific X509 error code
- */
-int x509write_add_customize ( x509_raw *crt, 
-                          unsigned char *names, 
-                          int flag, 
-                          x509_cert *ca, 
-                          int ca_flag );
-
-/**
-* \brief          Add x509 issuer field
-*
-* \param chain    points to the raw certificate data
-* \param issuer   a string holding (separate with ";"):
-*                     CN=CommonName
-*                 --   O=Organization
-*                 --  OU=OrgUnit
-*                 --  ST=State
-*                 --   L=Locality
-*                 --   R=Email
-*                 --   C=Country
-*                 . Set this to NULL if not needed.
-* \return         0 if successful, or a specific X509 error code
-*/
-int x509write_add_issuer( x509_raw *crt, unsigned char *issuer);
-
-/**
- * \brief          Add x509 subject field
- *
- * \param chain    points to the raw certificate data
- * \param subject  a string holding (separate with ";"):
- *                     CN=CommonName
- *                 --   O=Organization
- *                 --  OU=OrgUnit
- *                 --  ST=State
- *                 --   L=Locality
- *                 --   R=Email
- *                 --   C=Country
- *                 . Set this to NULL if not needed.
- * \return         0 if successful, or a specific X509 error code
- */
-int x509write_add_subject( x509_raw *crt, unsigned char *subject);
-
-/**
-* \brief          Copy x509 issuer field from another certificate
-*
-* \param chain    points to the raw certificate data
-* \param from_crt the certificate whose issuer is to be copied.
-* \return         0 if successful, or a specific X509 error code
-*/
-int x509write_copy_issuer(x509_raw *crt, x509_cert *from_crt);
-
-/**
-* \brief          Copy x509 subject field from another certificate
-*
-* \param chain    points to the raw certificate data
-* \param from_crt the certificate whose subject is to be copied.
-* \return         0 if successful, or a specific X509 error code
-*/
-int x509write_copy_subject(x509_raw *crt, x509_cert *from_crt);
-
-/**
-* \brief          Copy x509 issuer field from the subject of another certificate
-*
-* \param chain    points to the raw certificate data
-* \param from_crt the certificate whose subject is to be copied.
-* \return         0 if successful, or a specific X509 error code
-*/
-int x509write_copy_issuer_from_subject(x509_raw *crt, x509_cert *from_crt);
-
-/**
-* \brief          Copy x509 subject field from the issuer of another certificate
-*
-* \param chain    points to the raw certificate data
-* \param from_crt the certificate whose issuer is to be copied.
-* \return         0 if successful, or a specific X509 error code
-*/
-int x509write_copy_subject_from_issuer(x509_raw *crt, x509_cert *from_crt);
-
-/**
- * \brief          Create x509 validity time in UTC
- *
- * \param chain    points to the raw certificate data
- * \param before   valid not before in format YYYY-MM-DD hh:mm:ss
- * \param after    valid not after  in format YYYY-MM-DD hh:mm:ss
- *
- * \return         0 if successful, or a specific X509 error code
- */
-int x509write_add_validity( x509_raw *crt,
-                               unsigned char *before,
-                               unsigned char *after );
-
-/**
- * \brief          Create a self-signed certificate
- *
- * \param chain    points to the raw certificate data
- * \param rsa      a private key to sign the certificate
- *
- * \return         0 if successful, or a specific X509 error code
- */
-int x509write_create_selfsign( x509_raw *crt, rsa_context *raw );
-
-/**
- * \brief          Create a certificate
- *
- * \param chain    points to the raw certificate data
- * \param rsa      a private key to sign the certificate
- *
- * \return         0 if successful, or a specific X509 error code
- */
-int x509write_create_sign( x509_raw *crt, rsa_context *raw );
-
-/**
- * \brief          Create a certificate signing request
- *
- * \param chain    points to the raw certificate data. Didn't use the
- *                 same chain that u have use for certificate.
- * \param privkey  a rsa private key
- *
- * \return         0 if successful, or a specific X509 error code
- */
-int x509write_create_csr( x509_raw *chain, rsa_context *privkey );
-
-/**
- * \brief           Serialize an rsa key into DER
- *
- * \param rsa       a rsa key for output
- * \param node      a x509 node for write into
- *
- * \return          0 if successful, or a specific X509 error code
- */
-int x509write_serialize_key( rsa_context *rsa, x509_node *node );
-
-/**
- * \brief          Unallocate all raw certificate data
- */
-void x509write_free_raw( x509_raw *crt );
-
-/**
- * \brief          Allocate all raw certificate data
- */
-void x509write_init_raw( x509_raw *crt );
-
-/**
- * \brief          Unallocate all node certificate data
- */
-void x509write_free_node( x509_node *crt_node );
-
-/**
- * \brief          Allocate all node certificate data
- */
-void x509write_init_node( x509_node *crt_node );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* x509.h */
diff --git a/package/luci/libs/luci-lib-px5g/src/px5g.c b/package/luci/libs/luci-lib-px5g/src/px5g.c
deleted file mode 100644 (file)
index feecd01..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * px5g - Embedded x509 key and certificate generator based on PolarSSL
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public
- *  License, version 2.1 as published by the Free Software Foundation.
- *
- *  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, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- *  MA  02110-1301  USA
- */
-
-#include "px5g.h"
-#include <time.h>
-#include <string.h>
-#define VERSION 0.1
-
-static char *xfields[] = {"CN", "O", "C", "OU", "ST", "L", "R"};
-
-static int px5g_genkey(lua_State *L) {
-       int keysize = luaL_checkint(L, 1), pexp = luaL_optint(L, 2, 65537), ret;
-       px5g_rsa *px5g = lua_newuserdata(L, sizeof(px5g_rsa));
-       if (!px5g) {
-               return luaL_error(L, "out of memory");
-       }
-
-       px5g->stat = 1;
-       havege_init(&px5g->hs);
-       rsa_init(&px5g->rsa, RSA_PKCS_V15, 0, havege_rand, &px5g->hs);
-
-       if ((ret = rsa_gen_key(&px5g->rsa, keysize, pexp))) {
-               lua_pushnil(L);
-               lua_pushinteger(L, ret);
-               return 2;
-       }
-
-       luaL_getmetatable(L, PX5G_KEY_META);
-       lua_setmetatable(L, -2);
-       return 1;
-}
-
-static int px5g_rsa_asn1(lua_State *L) {
-       int ret;
-       px5g_rsa *px5g = luaL_checkudata(L, 1, PX5G_KEY_META);
-       x509_node node;
-
-       x509write_init_node(&node);
-       if ((ret = x509write_serialize_key(&px5g->rsa, &node))) {
-               x509write_free_node(&node);
-               lua_pushnil(L);
-               lua_pushinteger(L, ret);
-               return 2;
-       }
-
-       lua_pushlstring(L, (char*)node.data, node.len);
-       x509write_free_node(&node);
-       return 1;
-}
-
-static int px5g_rsa_create_selfsigned(lua_State *L) {
-       px5g_rsa *px5g = luaL_checkudata(L, 1, PX5G_KEY_META);
-       luaL_checktype(L, 2, LUA_TTABLE);
-       time_t from = (time_t)luaL_checknumber(L, 3);
-       time_t to = (time_t)luaL_checknumber(L, 4);
-       char fstr[20], tstr[20];
-
-       lua_pushliteral(L, "CN");
-       lua_rawget(L, 2);
-       luaL_argcheck(L, lua_isstring(L, -1), 2, "CN missing");
-       lua_pop(L, 1);
-
-       luaL_argcheck(L,
-               strftime(fstr, sizeof(fstr), "%F %H:%M:%S", gmtime(&from)),
-       3, "Invalid Time");
-
-       luaL_argcheck(L,
-               strftime(tstr, sizeof(tstr), "%F %H:%M:%S", gmtime(&to)),
-       4, "Invalid Time");
-
-       size_t join = 1;
-       lua_pushliteral(L, "");
-       for (int i = 0; i < (sizeof(xfields) / sizeof(*xfields)); i++) {
-               lua_pushstring(L, xfields[i]);
-               lua_rawget(L, 2);
-               if (lua_isstring(L, -1)) {
-                       const char *val = lua_tostring(L, -1);
-                       luaL_argcheck(L, !strchr(val, ';'), 2, "Invalid Value");
-                       lua_pushfstring(L, "%s=%s;", xfields[i], val);
-                       lua_remove(L, -2);
-                       join++;
-               } else {
-                       lua_pop(L, 1);
-               }
-       }
-       lua_concat(L, join);
-
-       x509_raw cert;
-       x509write_init_raw(&cert);
-       x509write_add_pubkey(&cert, &px5g->rsa);
-       x509write_add_subject(&cert, (unsigned char*)lua_tostring(L, -1));
-       x509write_add_validity(&cert, (unsigned char*)fstr, (unsigned char*)tstr);
-       x509write_create_selfsign(&cert, &px5g->rsa);
-
-       lua_pushlstring(L, (char*)cert.raw.data, cert.raw.len);
-       x509write_free_raw(&cert);
-       return 1;
-}
-
-static int px5g_rsa__gc(lua_State *L) {
-       px5g_rsa *px5g = luaL_checkudata(L, 1, PX5G_KEY_META);
-       if (px5g->stat) {
-               rsa_free(&px5g->rsa);
-               px5g->stat = 0;
-       }
-       return 0;
-}
-
-static int px5g_rsa__tostring(lua_State *L) {
-       px5g_rsa *px5g = luaL_checkudata(L, 1, PX5G_KEY_META);
-       lua_pushfstring(L, "px5g context %p", px5g);
-       return 1;
-}
-
-/* method table */
-static const luaL_reg M[] = {
-       {"asn1",                                px5g_rsa_asn1},
-       {"create_selfsigned",   px5g_rsa_create_selfsigned},
-       {"__gc",                                px5g_rsa__gc},
-       {"__tostring",                  px5g_rsa__tostring},
-       {NULL,                  NULL}
-};
-
-/* module table */
-static const luaL_reg R[] = {
-       {"genkey",              px5g_genkey},
-       {NULL,                  NULL}
-};
-
-int luaopen_px5g(lua_State *L) {
-       /* register module */
-       luaL_register(L, "px5g", R);
-
-       /* Meta Table */
-       luaL_newmetatable(L, PX5G_KEY_META);
-       luaL_register(L, NULL, M);
-       lua_pushvalue(L, -1);
-       lua_setfield(L, -2, "__index");
-
-       lua_setfield(L, -2, "meta_key");
-       return 1;
-}
diff --git a/package/luci/libs/luci-lib-px5g/src/px5g.h b/package/luci/libs/luci-lib-px5g/src/px5g.h
deleted file mode 100644 (file)
index 47542b5..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <lua.h>
-#include <lualib.h>
-#include <lauxlib.h>
-
-#include "polarssl/havege.h"
-#include "polarssl/bignum.h"
-#include "polarssl/x509.h"
-#include "polarssl/rsa.h"
-
-#define PX5G_KEY_META "px5g.key"
-
-typedef struct px5g_rsa {
-       int stat;
-       havege_state hs;
-       rsa_context rsa;
-} px5g_rsa;
diff --git a/package/luci/libs/luci-lib-rpcc/Makefile b/package/luci/libs/luci-lib-rpcc/Makefile
deleted file mode 100644 (file)
index e0fea28..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI Support for AHCPd
-LUCI_DEPENDS:=@BROKEN
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/libs/luci-lib-rpcc/luasrc/rpcc.lua b/package/luci/libs/luci-lib-rpcc/luasrc/rpcc.lua
deleted file mode 100644 (file)
index 5558910..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
--- Copyright 2009 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local util = require "luci.util"
-local json = require "luci.json"
-local ltn12 = require "luci.ltn12"
-local nixio = require "nixio", require "nixio.util"
-
-local tostring, assert, setmetatable = tostring, assert, setmetatable
-local error = error
-
-module "luci.rpcc"
-
-RQLIMIT = 32 * nixio.const.buffersize
-
-Client = util.class()
-
-function Client.__init__(self, fd, v1)
-       self.fd = fd
-       self.uniqueid = tostring(self):match("0x([a-f0-9]+)")
-       self.msgid = 1
-       self.v1 = v1
-end
-
-function Client.request(self, method, params, notification)
-       local oldchunk = self.decoder and self.decoder.chunk
-       self.decoder = json.ActiveDecoder(self.fd:blocksource(nil, RQLIMIT))
-       self.decoder.chunk = oldchunk
-       
-       local reqid = self.msgid .. self.uniqueid
-       local reqdata = json.Encoder({
-               id = (not notification) and (self.msgid .. self.uniqueid) or nil,
-               jsonrpc = (not self.v1) and "2.0" or nil,
-               method = method,
-               params = params
-       })
-       ltn12.pump.all(reqdata:source(), self.fd:sink())
-       if not notification then
-               self.msgid = self.msgid + 1
-               local response = self.decoder:get()
-               assert(response.id == reqid, "Invalid response id")
-               if response.error then
-                       error(response.error.message or response.error)
-               end
-               return response.result
-       end
-end
-
-function Client.proxy(self, prefix)
-       prefix = prefix or ""
-       return setmetatable({}, {
-               __call = function(proxy, ...)
-                       return self:request(prefix, {...})
-               end,
-               __index = function(proxy, name)
-                       return self:proxy(prefix .. name .. ".")
-               end
-       })
-end
\ No newline at end of file
diff --git a/package/luci/libs/luci-lib-rpcc/luasrc/rpcc.luadoc b/package/luci/libs/luci-lib-rpcc/luasrc/rpcc.luadoc
deleted file mode 100644 (file)
index 5609bfd..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
----[[
-LuCI RPC Client.
-
-@cstyle instance
-]]
-module "luci.rpcc"
-
----[[
-Create a new JSON-RPC stream client.
-
-@class function
-@param fd File descriptor
-@param v1 Use protocol version 1.0
-@return RPC Client
-]]
-
----[[
-Request an RP call and get the response.
-
-@class function
-@name Client.request
-@param method Remote method
-@param params Parameters
-@param notification Notification only?
-@return response 
-]]
-
----[[
-Create a transparent RPC proxy.
-
-@class function
-@name Client.proxy
-@param prefix Method prefix
-@return RPC Proxy object
-]]
-
diff --git a/package/luci/libs/luci-lib-rpcc/luasrc/rpcc/ruci.lua b/package/luci/libs/luci-lib-rpcc/luasrc/rpcc/ruci.lua
deleted file mode 100644 (file)
index 275c396..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
--- Copyright 2009 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local util = require "luci.util"
-local rawget, setmetatable = rawget, setmetatable
-local ipairs = ipairs
-
-module "luci.rpcc.ruci"
-
-
-local Proxy = util.class()
-
-function factory(rpccl)
-       return {
-               cursor = function(...)
-                       return Proxy(rpccl, rpccl:request("ruci.cursor", {...}))
-               end,
-               cursor_state = function(...)
-                       return Proxy(rpccl, rpccl:request("ruci.cursor_state", {...}))
-               end
-       }
-end
-
-function Proxy.__init__(self, rpccl, objid)
-       self.__rpccl = rpccl
-       self.__objid = objid
-
-       setmetatable(self, {
-               __index = function(self, key)
-                       return rawget(self, key) or Proxy[key] or function(self, ...)
-                               local argv = {self.__objid, ...}
-                               return self.__rpccl:request("ruci."..key, argv)
-                       end
-               end
-       })
-end
-
-function Proxy.foreach(self, config, section, callback)
-       local sections = self.__rpccl:request("ruci.foreach", {self.__objid, config, section})
-       if sections then
-               for _, s in ipairs(sections) do
-                       callback(s)
-               end
-               return true
-       else
-               return false
-       end
-end
diff --git a/package/luci/libs/luci-lib-rpcc/luasrc/rpcc/ruci.luadoc b/package/luci/libs/luci-lib-rpcc/luasrc/rpcc/ruci.luadoc
deleted file mode 100644 (file)
index 9c842c5..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
----[[
-Transparent UCI over RPC client.
-
-@cstyle instance
-]]
-module "luci.rpcc.ruci"
-
----[[
-Create a new UCI over RPC proxy.
-
-@class function
-@name factory
-@param rpccl RPC client
-@return Network transparent UCI module 
-]]
-
diff --git a/package/luci/libs/rpcd-mod-rrdns/Makefile b/package/luci/libs/rpcd-mod-rrdns/Makefile
deleted file mode 100644 (file)
index f0bf140..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#
-# Copyright (C) 2016-2017 Jo-Philipp Wich <jo@mein.io>
-#
-# Licensed under the Apache License, Version 2.0.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=rpcd-mod-rrdns
-PKG_VERSION:=20170710
-PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
-
-PKG_LICENSE:=Apache-2.0
-
-PKG_BUILD_PARALLEL:=1
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/cmake.mk
-
-define Build/Prepare
-       $(INSTALL_DIR) $(PKG_BUILD_DIR)
-       $(CP) ./src/* $(PKG_BUILD_DIR)/
-endef
-
-define Package/rpcd-mod-rrdns
-  SECTION:=libs
-  CATEGORY:=Libraries
-  TITLE:=Rapid reverse DNS rpcd module
-  DEPENDS:=+rpcd +libubox +libubus
-endef
-
-define Package/rpcd-mod-rrdns/description
- Provides rapid mass reverse DNS lookup functionality.
-endef
-
-define Package/rpcd-mod-rrdns/install
-       $(INSTALL_DIR) $(1)/usr/lib/rpcd
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/rrdns.so $(1)/usr/lib/rpcd/
-endef
-
-define Package/rpcd-mod-rrdns/postinst
-#!/bin/sh
-killall -HUP rpcd 2>/dev/null
-exit 0
-endef
-
-$(eval $(call BuildPackage,rpcd-mod-rrdns))
diff --git a/package/luci/libs/rpcd-mod-rrdns/src/CMakeLists.txt b/package/luci/libs/rpcd-mod-rrdns/src/CMakeLists.txt
deleted file mode 100644 (file)
index ace6ac8..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-cmake_minimum_required(VERSION 2.6)
-
-PROJECT(rpcd-mod-rrdns C)
-
-ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -Wmissing-declarations)
-
-SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
-
-IF(APPLE)
-  INCLUDE_DIRECTORIES(/opt/local/include)
-  LINK_DIRECTORIES(/opt/local/lib)
-ENDIF()
-
-FIND_LIBRARY(resolv NAMES resolv)
-IF(resolv STREQUAL "LIBS-NOTFOUND")
-  SET(resolv "")
-ENDIF()
-
-ADD_LIBRARY(rpcd-mod-rrdns MODULE rrdns.c)
-TARGET_LINK_LIBRARIES(rpcd-mod-rrdns ubox ubus ${resolv})
-SET_TARGET_PROPERTIES(rpcd-mod-rrdns PROPERTIES OUTPUT_NAME rrdns PREFIX "")
-
-INSTALL(TARGETS rpcd-mod-rrdns LIBRARY DESTINATION lib)
diff --git a/package/luci/libs/rpcd-mod-rrdns/src/rrdns.c b/package/luci/libs/rpcd-mod-rrdns/src/rrdns.c
deleted file mode 100644 (file)
index 691db9c..0000000
+++ /dev/null
@@ -1,389 +0,0 @@
-/*
- * rrdns - Rapid Reverse DNS lookup plugin for the UBUS RPC server
- *
- *   Copyright (C) 2016 Jo-Philipp Wich <jow@openwrt.org>
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <resolv.h>
-
-#include <libubox/avl.h>
-#include <libubox/usock.h>
-#include <libubox/uloop.h>
-
-#include <rpcd/plugin.h>
-
-#include "rrdns.h"
-
-
-enum {
-       RPC_L_ADDRS,
-       RPC_L_TIMEOUT,
-       RPC_L_SERVER,
-       RPC_L_PORT,
-       RPC_L_LIMIT,
-       __RPC_L_MAX,
-};
-
-static const struct blobmsg_policy rpc_lookup_policy[__RPC_L_MAX] = {
-       [RPC_L_ADDRS]   = { .name = "addrs",   .type = BLOBMSG_TYPE_ARRAY  },
-       [RPC_L_TIMEOUT] = { .name = "timeout", .type = BLOBMSG_TYPE_INT32  },
-       [RPC_L_SERVER]  = { .name = "server",  .type = BLOBMSG_TYPE_STRING },
-       [RPC_L_PORT]    = { .name = "port",    .type = BLOBMSG_TYPE_INT16  },
-       [RPC_L_LIMIT]   = { .name = "limit",   .type = BLOBMSG_TYPE_INT32  },
-};
-
-
-static int
-rrdns_cmp_id(const void *k1, const void *k2, void *ptr)
-{
-       const uint16_t *id1 = k1, *id2 = k2;
-       return (*id1 - *id2);
-}
-
-static int
-rrdns_cmp_addr(const void *k1, const void *k2, void *ptr)
-{
-       const struct in6_addr *a1 = k1, *a2 = k2;
-       return memcmp(a1, a2, sizeof(*a1));
-}
-
-static int
-rrdns_parse_response(struct rrdns_context *rctx)
-{
-       int n, len;
-       uint16_t id;
-       struct rrdns_request *req;
-       unsigned char res[512];
-       char buf[INET6_ADDRSTRLEN], dname[MAXDNAME];
-       HEADER *hdr;
-       ns_msg handle;
-       ns_rr rr;
-
-       len = recv(rctx->socket.fd, res, sizeof(res), 0);
-
-       if (len < sizeof(*hdr))
-               return -ENODATA;
-
-       hdr = (HEADER *)res;
-       id  = hdr->id;
-       req = avl_find_element(&rctx->request_ids, &id, req, by_id);
-
-       if (!req)
-               return -ENOENT;
-
-       avl_delete(&rctx->request_ids, &req->by_id);
-
-       if (ns_initparse(res, len, &handle))
-               return -EINVAL;
-
-       for (n = 0; n < ns_msg_count(handle, ns_s_an); n++) {
-               if (ns_parserr(&handle, ns_s_an, n, &rr))
-                       return -EINVAL;
-
-               if (ns_rr_type(rr) != ns_t_ptr)
-                       continue;
-
-               if (ns_name_uncompress(ns_msg_base(handle), ns_msg_end(handle),
-                                      ns_rr_rdata(rr), dname, sizeof(dname)) < 0)
-                       return -EINVAL;
-
-               inet_ntop(req->family, &req->addr, buf, sizeof(buf));
-               blobmsg_add_string(&rctx->blob, buf, dname);
-       }
-
-       return 0;
-}
-
-static int
-rrdns_next_query(struct rrdns_context *rctx)
-{
-       const char *addr = NULL, *hex = "0123456789abcdef";
-       struct rrdns_request *req;
-       int i, alen, family;
-       char *p, dname[73];
-
-       union {
-               unsigned char uchar[4];
-               struct in6_addr in6;
-               struct in_addr in;
-       } a = { };
-
-       union {
-               unsigned char buf[512];
-               HEADER hdr;
-       } msg;
-
-       if (rctx->addr_rem > 0 &&
-           blob_pad_len(rctx->addr_cur) <= rctx->addr_rem &&
-           blob_pad_len(rctx->addr_cur) >= sizeof(struct blob_attr)) {
-
-               addr = blobmsg_get_string(rctx->addr_cur);
-               rctx->addr_rem -= blob_pad_len(rctx->addr_cur);
-               rctx->addr_cur = blob_next(rctx->addr_cur);
-       }
-
-       if (!addr)
-               return 0;
-
-       if (inet_pton(AF_INET6, addr, &a.in6)) {
-               memset(dname, 0, sizeof(dname));
-
-               for (i = 0, p = dname; i < 16; i++) {
-                       *p++ = hex[a.in6.s6_addr[15-i] % 16];
-                       *p++ = '.';
-                       *p++ = hex[a.in6.s6_addr[15-i] / 16];
-                       *p++ = '.';
-               }
-
-               p += snprintf(p, p - dname - 1, "ip6.arpa");
-
-               family = AF_INET6;
-               alen = p - dname;
-       }
-       else if (inet_pton(AF_INET, addr, &a.in)) {
-               family = AF_INET;
-               alen = snprintf(dname, sizeof(dname), "%u.%u.%u.%u.in-addr.arpa",
-                               a.uchar[3], a.uchar[2], a.uchar[1], a.uchar[0]);
-       }
-       else {
-               return -EINVAL;
-       }
-
-       alen = res_mkquery(QUERY, dname, C_IN, T_PTR, NULL, 0, NULL,
-                          msg.buf, sizeof(msg.buf));
-
-       if (alen < 0)
-               return alen;
-
-       if (avl_find(&rctx->request_addrs, &a.in6))
-               return -ENOTUNIQ;
-
-       if (send(rctx->socket.fd, msg.buf, alen, 0) != alen)
-               return -errno;
-
-       req = calloc(1, sizeof(*req));
-
-       if (!req)
-               return -ENOMEM;
-
-       req->id = msg.hdr.id;
-       req->by_id.key = &req->id;
-       avl_insert(&rctx->request_ids, &req->by_id);
-
-       req->family = family;
-       req->addr.in6 = a.in6;
-       req->by_addr.key = &req->addr.in6;
-       avl_insert(&rctx->request_addrs, &req->by_addr);
-
-       return 0;
-}
-
-static void
-rdns_shutdown(struct rrdns_context *rctx)
-{
-       struct rrdns_request *req, *tmp;
-
-       uloop_timeout_cancel(&rctx->timeout);
-       uloop_fd_delete(&rctx->socket);
-
-       close(rctx->socket.fd);
-
-       ubus_send_reply(rctx->context, &rctx->request, rctx->blob.head);
-       ubus_complete_deferred_request(rctx->context, &rctx->request,
-                                      UBUS_STATUS_OK);
-
-       avl_remove_all_elements(&rctx->request_addrs, req, by_addr, tmp)
-               free(req);
-
-       blob_buf_free(&rctx->blob);
-       free(rctx);
-}
-
-static void
-rrdns_handle_timeout(struct uloop_timeout *utm)
-{
-       struct rrdns_context *rctx =
-               container_of(utm, struct rrdns_context, timeout);
-
-       rdns_shutdown(rctx);
-}
-
-static void
-rrdns_handle_response(struct uloop_fd *ufd, unsigned int ev)
-{
-       struct rrdns_context *rctx =
-               container_of(ufd, struct rrdns_context, socket);
-
-       int err = rrdns_parse_response(rctx);
-
-       if (err != -ENODATA && err != -ENOENT)
-               rrdns_next_query(rctx);
-
-       if (avl_is_empty(&rctx->request_ids))
-               rdns_shutdown(rctx);
-}
-
-static char *
-rrdns_find_nameserver(void)
-{
-       static char line[2*INET6_ADDRSTRLEN];
-       struct in6_addr in6;
-       FILE *resolvconf;
-       char *p;
-
-       resolvconf = fopen("/etc/resolv.conf", "r");
-
-       if (!resolvconf)
-               return NULL;
-
-       while (fgets(line, sizeof(line), resolvconf)) {
-               p = strtok(line, " \t");
-
-               if (!p || strcmp(p, "nameserver"))
-                       continue;
-
-               p = strtok(NULL, " \t\r\n");
-
-               if (!p)
-                       continue;
-
-               if (!inet_pton(AF_INET6, p, &in6) && !inet_pton(AF_INET, p, &in6))
-                       continue;
-
-               fclose(resolvconf);
-               return p;
-       }
-
-       fclose(resolvconf);
-       return NULL;
-}
-
-static int
-rpc_rrdns_lookup(struct ubus_context *ctx, struct ubus_object *obj,
-                    struct ubus_request_data *req, const char *method,
-                    struct blob_attr *msg)
-{
-       int port = 53, limit = RRDNS_DEF_LIMIT, timeout = RRDNS_DEF_TIMEOUT;
-       struct blob_attr *tb[__RPC_L_MAX];
-       struct rrdns_context *rctx;
-       const char *server = NULL;
-
-       blobmsg_parse(rpc_lookup_policy, __RPC_L_MAX, tb,
-                     blob_data(msg), blob_len(msg));
-
-       if (tb[RPC_L_PORT])
-               port = blobmsg_get_u16(tb[RPC_L_PORT]);
-
-       if (tb[RPC_L_LIMIT])
-               limit = blobmsg_get_u32(tb[RPC_L_LIMIT]);
-
-       if (tb[RPC_L_TIMEOUT])
-               timeout = blobmsg_get_u32(tb[RPC_L_TIMEOUT]);
-
-       if (tb[RPC_L_SERVER])
-               server = blobmsg_get_string(tb[RPC_L_SERVER]);
-
-
-       if (!tb[RPC_L_ADDRS])
-               return UBUS_STATUS_INVALID_ARGUMENT;
-
-       if (port <= 0)
-               return UBUS_STATUS_INVALID_ARGUMENT;
-
-       if (limit <= 0 || limit > RRDNS_MAX_LIMIT)
-               return UBUS_STATUS_INVALID_ARGUMENT;
-
-       if (timeout <= 0 || timeout > RRDNS_MAX_TIMEOUT)
-               return UBUS_STATUS_INVALID_ARGUMENT;
-
-
-       if (!server || !*server)
-               server = rrdns_find_nameserver();
-
-       if (!server)
-               return UBUS_STATUS_NOT_FOUND;
-
-       rctx = calloc(1, sizeof(*rctx));
-
-       if (!rctx)
-               return UBUS_STATUS_UNKNOWN_ERROR;
-
-       rctx->socket.fd = usock(USOCK_UDP, server, usock_port(port));
-
-       if (rctx->socket.fd < 0) {
-               free(rctx);
-               return UBUS_STATUS_UNKNOWN_ERROR;
-       }
-
-       rctx->context = ctx;
-       rctx->addr_cur = blobmsg_data(tb[RPC_L_ADDRS]);
-       rctx->addr_rem = blobmsg_data_len(tb[RPC_L_ADDRS]);
-
-       avl_init(&rctx->request_ids, rrdns_cmp_id, false, NULL);
-       avl_init(&rctx->request_addrs, rrdns_cmp_addr, false, NULL);
-
-       rctx->timeout.cb = rrdns_handle_timeout;
-       uloop_timeout_set(&rctx->timeout, timeout);
-
-       rctx->socket.cb = rrdns_handle_response;
-       uloop_fd_add(&rctx->socket, ULOOP_READ);
-
-       blob_buf_init(&rctx->blob, 0);
-
-       while (limit--)
-               rrdns_next_query(rctx);
-
-       ubus_defer_request(ctx, req, &rctx->request);
-
-       return UBUS_STATUS_OK;
-}
-
-
-static int
-rpc_rrdns_api_init(const struct rpc_daemon_ops *o, struct ubus_context *ctx)
-{
-       static const struct ubus_method rrdns_methods[] = {
-               UBUS_METHOD("lookup", rpc_rrdns_lookup, rpc_lookup_policy),
-       };
-
-       static struct ubus_object_type rrdns_type =
-               UBUS_OBJECT_TYPE("rpcd-rrdns", rrdns_methods);
-
-       static struct ubus_object obj = {
-               .name = "network.rrdns",
-               .type = &rrdns_type,
-               .methods = rrdns_methods,
-               .n_methods = ARRAY_SIZE(rrdns_methods),
-       };
-
-       return ubus_add_object(ctx, &obj);
-}
-
-struct rpc_plugin rpc_plugin = {
-       .init = rpc_rrdns_api_init
-};
diff --git a/package/luci/libs/rpcd-mod-rrdns/src/rrdns.h b/package/luci/libs/rpcd-mod-rrdns/src/rrdns.h
deleted file mode 100644 (file)
index 3f95116..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * rrdns - Rapid Reverse DNS lookup plugin for the UBUS RPC server
- *
- *   Copyright (C) 2016-2017 Jo-Philipp Wich <jo@mein.io>
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <libubus.h>
-#include <libubox/avl.h>
-#include <libubox/uloop.h>
-
-#define RRDNS_MAX_TIMEOUT 5000
-#define RRDNS_DEF_TIMEOUT 250
-
-#define RRDNS_MAX_LIMIT 1000
-#define RRDNS_DEF_LIMIT 10
-
-
-struct rrdns_request {
-       struct avl_node by_id;
-       struct avl_node by_addr;
-       uint16_t id;
-       uint16_t family;
-       union {
-               struct in_addr in;
-               struct in6_addr in6;
-       } addr;
-};
-
-struct rrdns_context {
-       struct ubus_context *context;
-       struct ubus_request_data request;
-       struct uloop_timeout timeout;
-       struct blob_attr *addr_cur;
-       int addr_rem;
-       struct uloop_fd socket;
-       struct blob_buf blob;
-       struct avl_tree request_ids;
-       struct avl_tree request_addrs;
-};
diff --git a/package/luci/luci.mk b/package/luci/luci.mk
deleted file mode 100644 (file)
index 2dab144..0000000
+++ /dev/null
@@ -1,264 +0,0 @@
-#
-# Copyright (C) 2008-2015 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-LUCI_NAME?=$(notdir ${CURDIR})
-LUCI_TYPE?=$(word 2,$(subst -, ,$(LUCI_NAME)))
-LUCI_BASENAME?=$(patsubst luci-$(LUCI_TYPE)-%,%,$(LUCI_NAME))
-LUCI_LANGUAGES:=$(sort $(filter-out templates,$(notdir $(wildcard ${CURDIR}/po/*))))
-LUCI_DEFAULTS:=$(notdir $(wildcard ${CURDIR}/root/etc/uci-defaults/*))
-LUCI_PKGARCH?=$(if $(realpath src/Makefile),,all)
-
-# Language code titles
-LUCI_LANG.ca=Català (Catalan)
-LUCI_LANG.cs=Čeština (Czech)
-LUCI_LANG.de=Deutsch (German)
-LUCI_LANG.el=Ελληνικά (Greek)
-LUCI_LANG.en=English
-LUCI_LANG.es=Español (Spanish)
-LUCI_LANG.fr=Français (French)
-LUCI_LANG.he=עִבְרִית (Hebrew)
-LUCI_LANG.hu=Magyar (Hungarian)
-LUCI_LANG.it=Italiano (Italian)
-LUCI_LANG.ja=日本語 (Japanese)
-LUCI_LANG.ko=한국어 (Korean)
-LUCI_LANG.ms=Bahasa Melayu (Malay)
-LUCI_LANG.no=Norsk (Norwegian)
-LUCI_LANG.pl=Polski (Polish)
-LUCI_LANG.pt-br=Português do Brasil (Brazialian Portuguese)
-LUCI_LANG.pt=Português (Portuguese)
-LUCI_LANG.ro=Română (Romanian)
-LUCI_LANG.ru=Русский (Russian)
-LUCI_LANG.sk=Slovenčina (Slovak)
-LUCI_LANG.sv=Svenska (Swedish)
-LUCI_LANG.tr=Türkçe (Turkish)
-LUCI_LANG.uk=Українська (Ukrainian)
-LUCI_LANG.vi=Tiếng Việt (Vietnamese)
-LUCI_LANG.zh-cn=中文 (Chinese)
-LUCI_LANG.zh-tw=臺灣華語 (Taiwanese)
-
-# Submenu titles
-LUCI_MENU.col=1. Collections
-LUCI_MENU.mod=2. Modules
-LUCI_MENU.app=3. Applications
-LUCI_MENU.theme=4. Themes
-LUCI_MENU.proto=5. Protocols
-LUCI_MENU.lib=6. Libraries
-
-
-PKG_NAME?=$(LUCI_NAME)
-
-PKG_VERSION?=$(if $(DUMP),x,$(strip $(shell \
-       if svn info >/dev/null 2>/dev/null; then \
-               revision="svn-r$$(LC_ALL=C svn info | sed -ne 's/^Revision: //p')"; \
-       elif git log -1 >/dev/null 2>/dev/null; then \
-               revision="svn-r$$(LC_ALL=C git log -1 | sed -ne 's/.*git-svn-id: .*@\([0-9]\+\) .*/\1/p')"; \
-               if [ "$$revision" = "svn-r" ]; then \
-                       set -- $$(git log -1 --format="%ct %h" --abbrev=7); \
-                       secs="$$(($$1 % 86400))"; \
-                       yday="$$(date --utc --date="@$$1" "+%y.%j")"; \
-                       revision="$$(printf 'git-%s.%05d-%s' "$$yday" "$$secs" "$$2")"; \
-               fi; \
-       else \
-               revision="unknown"; \
-       fi; \
-       echo "$$revision" \
-)))
-
-PKG_GITBRANCH?=$(if $(DUMP),x,$(strip $(shell \
-       variant="LuCI"; \
-       if git log -1 >/dev/null 2>/dev/null; then \
-               branch="$$(git branch --remote --verbose --no-abbrev --contains 2>/dev/null | \
-                       sed -rne 's|^[^/]+/([^ ]+) [a-f0-9]{40} .+$$|\1|p' | head -n1)"; \
-               if [ "$$branch" != "master" ]; then \
-                       variant="LuCI $$branch branch"; \
-               else \
-                       variant="LuCI Master"; \
-               fi; \
-       fi; \
-       echo "$$variant" \
-)))
-
-PKG_RELEASE?=1
-PKG_INSTALL:=$(if $(realpath src/Makefile),1)
-PKG_BUILD_DEPENDS += lua/host luci-base/host LUCI_CSSTIDY:csstidy/host $(LUCI_BUILD_DEPENDS)
-PKG_CONFIG_DEPENDS += CONFIG_LUCI_SRCDIET CONFIG_LUCI_JSMIN CONFIG_LUCI_CSSTIDY
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/$(PKG_NAME)
-  SECTION:=luci
-  CATEGORY:=LuCI
-  SUBMENU:=$(if $(LUCI_MENU.$(LUCI_TYPE)),$(LUCI_MENU.$(LUCI_TYPE)),$(LUCI_MENU.app))
-  TITLE:=$(if $(LUCI_TITLE),$(LUCI_TITLE),LuCI $(LUCI_NAME) $(LUCI_TYPE))
-  DEPENDS:=$(LUCI_DEPENDS)
-  $(if $(LUCI_EXTRA_DEPENDS),EXTRA_DEPENDS:=$(LUCI_EXTRA_DEPENDS))
-  $(if $(LUCI_PKGARCH),PKGARCH:=$(LUCI_PKGARCH))
-endef
-
-ifneq ($(LUCI_DESCRIPTION),)
- define Package/$(PKG_NAME)/description
-   $(strip $(LUCI_DESCRIPTION))
- endef
-endif
-
-# Language selection for luci-base
-ifeq ($(PKG_NAME),luci-base)
- define Package/luci-base/config
-   config LUCI_SRCDIET
-       bool "Minify Lua sources"
-       default n
-
-   config LUCI_JSMIN
-       bool "Minify JavaScript sources"
-       default y
-
-   config LUCI_CSSTIDY
-        bool "Minify CSS files"
-        default y
-
-   menu "Translations"$(foreach lang,$(LUCI_LANGUAGES),
-
-     config LUCI_LANG_$(lang)
-          tristate "$(shell echo '$(LUCI_LANG.$(lang))' | sed -e 's/^.* (\(.*\))$$/\1/') ($(lang))")
-
-   endmenu
- endef
-endif
-
-define Build/Prepare
-       for d in luasrc htdocs root src; do \
-         if [ -d ./$$$$d ]; then \
-           mkdir -p $(PKG_BUILD_DIR)/$$$$d; \
-               $(CP) ./$$$$d/* $(PKG_BUILD_DIR)/$$$$d/; \
-         fi; \
-       done
-       $(call Build/Prepare/Default)
-endef
-
-define Build/Configure
-endef
-
-ifneq ($(wildcard ${CURDIR}/src/Makefile),)
- MAKE_PATH := src/
- MAKE_VARS += FPIC="$(FPIC)" LUCI_VERSION="$(PKG_VERSION)" LUCI_GITBRANCH="$(PKG_GITBRANCH)"
-
- define Build/Compile
-       $(call Build/Compile/Default,clean compile)
- endef
-else
- define Build/Compile
- endef
-endif
-
-HTDOCS = /www
-LUA_LIBRARYDIR = /usr/lib/lua
-LUCI_LIBRARYDIR = $(LUA_LIBRARYDIR)/luci
-
-define SrcDiet
-       $(FIND) $(1) -type f -name '*.lua' | while read src; do \
-               if LUA_PATH="$(STAGING_DIR_HOSTPKG)/lib/lua/5.1/?.lua" luasrcdiet --noopt-binequiv -o "$$$$src.o" "$$$$src"; \
-               then mv "$$$$src.o" "$$$$src"; fi; \
-       done
-endef
-
-define JsMin
-       $(FIND) $(1) -type f -name '*.js' | while read src; do \
-               if jsmin < "$$$$src" > "$$$$src.o"; \
-               then mv "$$$$src.o" "$$$$src"; fi; \
-       done
-endef
-
-define CssTidy
-       $(FIND) $(1) -type f -name '*.css' | while read src; do \
-               if csstidy "$$$$src" --template=highest --remove_last_semicolon=true "$$$$src.o"; \
-               then mv "$$$$src.o" "$$$$src"; fi; \
-       done
-endef
-
-define SubstituteVersion
-       $(FIND) $(1) -type f -name '*.htm' | while read src; do \
-               $(SED) 's/<%# *\([^ ]*\)PKG_VERSION *%>/\1$(PKG_VERSION)/g' \
-                   -e 's/"\(<%= *\(media\|resource\) *%>[^"]*\.\(js\|css\)\)"/"\1?v=$(PKG_VERSION)"/g' \
-                       "$$$$src"; \
-       done
-endef
-
-define Package/$(PKG_NAME)/install
-       if [ -d $(PKG_BUILD_DIR)/luasrc ]; then \
-         $(INSTALL_DIR) $(1)$(LUCI_LIBRARYDIR); \
-         cp -pR $(PKG_BUILD_DIR)/luasrc/* $(1)$(LUCI_LIBRARYDIR)/; \
-         $(FIND) $(1)$(LUCI_LIBRARYDIR)/ -type f -name '*.luadoc' | $(XARGS) rm; \
-         $(if $(CONFIG_LUCI_SRCDIET),$(call SrcDiet,$(1)$(LUCI_LIBRARYDIR)/),true); \
-         $(call SubstituteVersion,$(1)$(LUCI_LIBRARYDIR)/); \
-       else true; fi
-       if [ -d $(PKG_BUILD_DIR)/htdocs ]; then \
-         $(INSTALL_DIR) $(1)$(HTDOCS); \
-         cp -pR $(PKG_BUILD_DIR)/htdocs/* $(1)$(HTDOCS)/; \
-         $(if $(CONFIG_LUCI_JSMIN),$(call JsMin,$(1)$(HTDOCS)/),true); \
-         $(if $(CONFIG_LUCI_CSSTIDY),$(call CssTidy,$(1)$(HTDOCS)/),true); \
-       else true; fi
-       if [ -d $(PKG_BUILD_DIR)/root ]; then \
-         $(INSTALL_DIR) $(1)/; \
-         cp -pR $(PKG_BUILD_DIR)/root/* $(1)/; \
-       else true; fi
-       if [ -d $(PKG_BUILD_DIR)/src ]; then \
-         $(call Build/Install/Default) \
-         $(CP) $(PKG_INSTALL_DIR)/* $(1)/; \
-       else true; fi
-endef
-
-ifneq ($(LUCI_DEFAULTS),)
-define Package/$(PKG_NAME)/postinst
-[ -n "$${IPKG_INSTROOT}" ] || {$(foreach script,$(LUCI_DEFAULTS),
-       (. /etc/uci-defaults/$(script)) && rm -f /etc/uci-defaults/$(script))
-       exit 0
-}
-endef
-endif
-
-
-LUCI_BUILD_PACKAGES := $(PKG_NAME)
-
-define LuciTranslation
-  define Package/luci-i18n-$(LUCI_BASENAME)-$(1)
-    SECTION:=luci
-    CATEGORY:=LuCI
-    TITLE:=$(PKG_NAME) - $(1) translation
-    HIDDEN:=1
-    DEFAULT:=LUCI_LANG_$(1)||(ALL&&m)
-    DEPENDS:=$(PKG_NAME)
-    PKGARCH:=all
-  endef
-
-  define Package/luci-i18n-$(LUCI_BASENAME)-$(1)/description
-    Translation for $(PKG_NAME) - $(LUCI_LANG.$(1))
-  endef
-
-  define Package/luci-i18n-$(LUCI_BASENAME)-$(1)/install
-       $$(INSTALL_DIR) $$(1)/etc/uci-defaults
-       echo "uci set luci.languages.$(subst -,_,$(1))='$(LUCI_LANG.$(1))'; uci commit luci" \
-               > $$(1)/etc/uci-defaults/luci-i18n-$(LUCI_BASENAME)-$(1)
-       $$(INSTALL_DIR) $$(1)$(LUCI_LIBRARYDIR)/i18n
-       $(foreach po,$(wildcard ${CURDIR}/po/$(1)/*.po), \
-               po2lmo $(po) \
-                       $$(1)$(LUCI_LIBRARYDIR)/i18n/$(basename $(notdir $(po))).$(1).lmo;)
-  endef
-
-  define Package/luci-i18n-$(LUCI_BASENAME)-$(1)/postinst
-       [ -n "$$$${IPKG_INSTROOT}" ] || {
-               (. /etc/uci-defaults/luci-i18n-$(LUCI_BASENAME)-$(1)) && rm -f /etc/uci-defaults/luci-i18n-$(LUCI_BASENAME)-$(1)
-               exit 0
-       }
-  endef
-
-  LUCI_BUILD_PACKAGES += luci-i18n-$(LUCI_BASENAME)-$(1)
-
-endef
-
-$(foreach lang,$(LUCI_LANGUAGES),$(eval $(call LuciTranslation,$(lang))))
-$(foreach pkg,$(LUCI_BUILD_PACKAGES),$(eval $(call BuildPackage,$(pkg))))
diff --git a/package/luci/modules/luci-base/Makefile b/package/luci/modules/luci-base/Makefile
deleted file mode 100644 (file)
index 9bc8ec1..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# Copyright (C) 2008-2015 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=luci-base
-
-LUCI_TYPE:=mod
-LUCI_BASENAME:=base
-
-LUCI_TITLE:=LuCI core libraries
-LUCI_DEPENDS:=+lua +luci-lib-nixio +luci-lib-ip +rpcd +libubus-lua +luci-lib-jsonc +liblucihttp-lua
-
-
-PKG_SOURCE:=v1.0.0.tar.gz
-PKG_SOURCE_URL:=https://github.com/jirutka/luasrcdiet/archive/
-PKG_HASH:=48162e63e77d009f5848f18a5cabffbdfc867d0e5e73c6d407f6af5d6880151b
-PKG_LICENSE:=MIT
-
-HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/luasrcdiet-1.0.0
-
-include $(INCLUDE_DIR)/host-build.mk
-
-define Package/luci-base/conffiles
-/etc/luci-uploads
-/etc/config/luci
-/etc/config/ucitrack
-endef
-
-include ../../luci.mk
-
-define Host/Configure
-endef
-
-define Host/Compile
-       $(MAKE) -C src/ clean po2lmo jsmin
-endef
-
-define Host/Install
-       $(INSTALL_DIR) $(1)/bin
-       $(INSTALL_DIR) $(1)/lib/lua/5.1
-       $(INSTALL_BIN) src/po2lmo $(1)/bin/po2lmo
-       $(INSTALL_BIN) src/jsmin $(1)/bin/jsmin
-       $(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/luasrcdiet $(1)/bin/luasrcdiet
-       $(CP) $(HOST_BUILD_DIR)/luasrcdiet $(1)/lib/lua/5.1/
-endef
-
-$(eval $(call HostBuild))
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/modules/luci-base/htdocs/cgi-bin/luci b/package/luci/modules/luci-base/htdocs/cgi-bin/luci
deleted file mode 100755 (executable)
index 529d1d0..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/lua
-require "luci.cacheloader"
-require "luci.sgi.cgi"
-luci.dispatcher.indexcache = "/tmp/luci-indexcache"
-luci.sgi.cgi.run()
\ No newline at end of file
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi.js b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi.js
deleted file mode 100644 (file)
index 67ddc6a..0000000
+++ /dev/null
@@ -1,2137 +0,0 @@
-/*
-       LuCI - Lua Configuration Interface
-
-       Copyright 2008 Steven Barth <steven@midlink.org>
-       Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
-
-       Licensed under the Apache License, Version 2.0 (the "License");
-       you may not use this file except in compliance with the License.
-       You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-*/
-
-var cbi_d = [];
-var cbi_strings = { path: {}, label: {} };
-
-function s8(bytes, off) {
-       var n = bytes[off];
-       return (n > 0x7F) ? (n - 256) >>> 0 : n;
-}
-
-function u16(bytes, off) {
-       return ((bytes[off + 1] << 8) + bytes[off]) >>> 0;
-}
-
-function sfh(s) {
-       if (s === null || s.length === 0)
-               return null;
-
-       var bytes = [];
-
-       for (var i = 0; i < s.length; i++) {
-               var ch = s.charCodeAt(i);
-
-               if (ch <= 0x7F)
-                       bytes.push(ch);
-               else if (ch <= 0x7FF)
-                       bytes.push(((ch >>>  6) & 0x1F) | 0xC0,
-                                  ( ch         & 0x3F) | 0x80);
-               else if (ch <= 0xFFFF)
-                       bytes.push(((ch >>> 12) & 0x0F) | 0xE0,
-                                  ((ch >>>  6) & 0x3F) | 0x80,
-                                  ( ch         & 0x3F) | 0x80);
-               else if (code <= 0x10FFFF)
-                       bytes.push(((ch >>> 18) & 0x07) | 0xF0,
-                                  ((ch >>> 12) & 0x3F) | 0x80,
-                                  ((ch >>   6) & 0x3F) | 0x80,
-                                  ( ch         & 0x3F) | 0x80);
-       }
-
-       if (!bytes.length)
-               return null;
-
-       var hash = (bytes.length >>> 0),
-           len = (bytes.length >>> 2),
-           off = 0, tmp;
-
-       while (len--) {
-               hash += u16(bytes, off);
-               tmp   = ((u16(bytes, off + 2) << 11) ^ hash) >>> 0;
-               hash  = ((hash << 16) ^ tmp) >>> 0;
-               hash += hash >>> 11;
-               off  += 4;
-       }
-
-       switch ((bytes.length & 3) >>> 0) {
-       case 3:
-               hash += u16(bytes, off);
-               hash  = (hash ^ (hash << 16)) >>> 0;
-               hash  = (hash ^ (s8(bytes, off + 2) << 18)) >>> 0;
-               hash += hash >>> 11;
-               break;
-
-       case 2:
-               hash += u16(bytes, off);
-               hash  = (hash ^ (hash << 11)) >>> 0;
-               hash += hash >>> 17;
-               break;
-
-       case 1:
-               hash += s8(bytes, off);
-               hash  = (hash ^ (hash << 10)) >>> 0;
-               hash += hash >>> 1;
-               break;
-       }
-
-       hash  = (hash ^ (hash << 3)) >>> 0;
-       hash += hash >>> 5;
-       hash  = (hash ^ (hash << 4)) >>> 0;
-       hash += hash >>> 17;
-       hash  = (hash ^ (hash << 25)) >>> 0;
-       hash += hash >>> 6;
-
-       return (0x100000000 + hash).toString(16).substr(1);
-}
-
-function _(s) {
-       return (window.TR && TR[sfh(s)]) || s;
-}
-
-function Int(x) {
-       return (/^-?\d+$/.test(x) ? +x : NaN);
-}
-
-function Dec(x) {
-       return (/^-?\d+(?:\.\d+)?$/.test(x) ? +x : NaN);
-}
-
-function IPv4(x) {
-       if (!x.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/))
-               return null;
-
-       if (RegExp.$1 > 255 || RegExp.$2 > 255 || RegExp.$3 > 255 || RegExp.$4 > 255)
-               return null;
-
-       return [ +RegExp.$1, +RegExp.$2, +RegExp.$3, +RegExp.$4 ];
-}
-
-function IPv6(x) {
-       if (x.match(/^([a-fA-F0-9:]+):(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/)) {
-               var v6 = RegExp.$1, v4 = IPv4(RegExp.$2);
-
-               if (!v4)
-                       return null;
-
-               x = v6 + ':' + (v4[0] * 256 + v4[1]).toString(16)
-                      + ':' + (v4[2] * 256 + v4[3]).toString(16);
-       }
-
-       if (!x.match(/^[a-fA-F0-9:]+$/))
-               return null;
-
-       var prefix_suffix = x.split(/::/);
-
-       if (prefix_suffix.length > 2)
-               return null;
-
-       var prefix = (prefix_suffix[0] || '0').split(/:/);
-       var suffix = prefix_suffix.length > 1 ? (prefix_suffix[1] || '0').split(/:/) : [];
-
-       if (suffix.length ? (prefix.length + suffix.length > 7)
-                         : ((prefix_suffix.length < 2 && prefix.length < 8) || prefix.length > 8))
-               return null;
-
-       var i, word;
-       var words = [];
-
-       for (i = 0, word = parseInt(prefix[0], 16); i < prefix.length; word = parseInt(prefix[++i], 16))
-               if (prefix[i].length <= 4 && !isNaN(word) && word <= 0xFFFF)
-                       words.push(word);
-               else
-                       return null;
-
-       for (i = 0; i < (8 - prefix.length - suffix.length); i++)
-               words.push(0);
-
-       for (i = 0, word = parseInt(suffix[0], 16); i < suffix.length; word = parseInt(suffix[++i], 16))
-               if (suffix[i].length <= 4 && !isNaN(word) && word <= 0xFFFF)
-                       words.push(word);
-               else
-                       return null;
-
-       return words;
-}
-
-var CBIValidatorPrototype = {
-       apply: function(name, value, args) {
-               var func;
-
-               if (typeof(name) === 'function')
-                       func = name;
-               else if (typeof(this.types[name]) === 'function')
-                       func = this.types[name];
-               else
-                       return false;
-
-               if (value !== undefined && value !== null)
-                       this.value = value;
-
-               return func.apply(this, args);
-       },
-
-       assert: function(condition, message) {
-               if (!condition) {
-                       this.field.classList.add('cbi-input-invalid');
-                       this.error = message;
-                       return false;
-               }
-
-               this.field.classList.remove('cbi-input-invalid');
-               this.error = null;
-               return true;
-       },
-
-       compile: function(code) {
-               var pos = 0;
-               var esc = false;
-               var depth = 0;
-               var stack = [ ];
-
-               code += ',';
-
-               for (var i = 0; i < code.length; i++) {
-                       if (esc) {
-                               esc = false;
-                               continue;
-                       }
-
-                       switch (code.charCodeAt(i))
-                       {
-                       case 92:
-                               esc = true;
-                               break;
-
-                       case 40:
-                       case 44:
-                               if (depth <= 0) {
-                                       if (pos < i) {
-                                               var label = code.substring(pos, i);
-                                                       label = label.replace(/\\(.)/g, '$1');
-                                                       label = label.replace(/^[ \t]+/g, '');
-                                                       label = label.replace(/[ \t]+$/g, '');
-
-                                               if (label && !isNaN(label)) {
-                                                       stack.push(parseFloat(label));
-                                               }
-                                               else if (label.match(/^(['"]).*\1$/)) {
-                                                       stack.push(label.replace(/^(['"])(.*)\1$/, '$2'));
-                                               }
-                                               else if (typeof this.types[label] == 'function') {
-                                                       stack.push(this.types[label]);
-                                                       stack.push(null);
-                                               }
-                                               else {
-                                                       throw "Syntax error, unhandled token '"+label+"'";
-                                               }
-                                       }
-
-                                       pos = i+1;
-                               }
-
-                               depth += (code.charCodeAt(i) == 40);
-                               break;
-
-                       case 41:
-                               if (--depth <= 0) {
-                                       if (typeof stack[stack.length-2] != 'function')
-                                               throw "Syntax error, argument list follows non-function";
-
-                                       stack[stack.length-1] = this.compile(code.substring(pos, i));
-                                       pos = i+1;
-                               }
-
-                               break;
-                       }
-               }
-
-               return stack;
-       },
-
-       validate: function() {
-               /* element is detached */
-               if (!findParent(this.field, 'form'))
-                       return true;
-
-               this.field.classList.remove('cbi-input-invalid');
-               this.value = matchesElem(this.field, 'select') ? this.field.options[this.field.selectedIndex].value : this.field.value;
-               this.error = null;
-
-               var valid;
-
-               if (this.value.length === 0)
-                       valid = this.assert(this.optional, _('non-empty value'));
-               else
-                       valid = this.vstack[0].apply(this, this.vstack[1]);
-
-               if (!valid) {
-                       this.field.setAttribute('data-tooltip', _('Expecting %s').format(this.error));
-                       this.field.setAttribute('data-tooltip-style', 'error');
-                       this.field.dispatchEvent(new CustomEvent('validation-failure', { bubbles: true }));
-               }
-               else {
-                       this.field.removeAttribute('data-tooltip');
-                       this.field.removeAttribute('data-tooltip-style');
-                       this.field.dispatchEvent(new CustomEvent('validation-success', { bubbles: true }));
-               }
-
-               return valid;
-       },
-
-       types: {
-               integer: function() {
-                       return this.assert(Int(this.value) !== NaN, _('valid integer value'));
-               },
-
-               uinteger: function() {
-                       return this.assert(Int(this.value) >= 0, _('positive integer value'));
-               },
-
-               float: function() {
-                       return this.assert(Dec(this.value) !== NaN, _('valid decimal value'));
-               },
-
-               ufloat: function() {
-                       return this.assert(Dec(this.value) >= 0, _('positive decimal value'));
-               },
-
-               ipaddr: function(nomask) {
-                       return this.assert(this.apply('ip4addr', null, [nomask]) || this.apply('ip6addr', null, [nomask]),
-                               nomask ? _('valid IP address') : _('valid IP address or prefix'));
-               },
-
-               ip4addr: function(nomask) {
-                       var re = nomask ? /^(\d+\.\d+\.\d+\.\d+)$/ : /^(\d+\.\d+\.\d+\.\d+)(?:\/(\d+\.\d+\.\d+\.\d+)|\/(\d{1,2}))?$/,
-                           m = this.value.match(re);
-
-                       return this.assert(m && IPv4(m[1]) && (m[2] ? IPv4(m[2]) : (m[3] ? this.apply('ip4prefix', m[3]) : true)),
-                               nomask ? _('valid IPv4 address') : _('valid IPv4 address or network'));
-               },
-
-               ip6addr: function(nomask) {
-                       var re = nomask ? /^([0-9a-fA-F:.]+)$/ : /^([0-9a-fA-F:.]+)(?:\/(\d{1,3}))?$/,
-                           m = this.value.match(re);
-
-                       return this.assert(m && IPv6(m[1]) && (m[2] ? this.apply('ip6prefix', m[2]) : true),
-                               nomask ? _('valid IPv6 address') : _('valid IPv6 address or prefix'));
-               },
-
-               ip4prefix: function() {
-                       return this.assert(!isNaN(this.value) && this.value >= 0 && this.value <= 32,
-                               _('valid IPv4 prefix value (0-32)'));
-               },
-
-               ip6prefix: function() {
-                       return this.assert(!isNaN(this.value) && this.value >= 0 && this.value <= 128,
-                               _('valid IPv6 prefix value (0-128)'));
-               },
-
-               cidr: function() {
-                       return this.assert(this.apply('cidr4') || this.apply('cidr6'), _('valid IPv4 or IPv6 CIDR'));
-               },
-
-               cidr4: function() {
-                       var m = this.value.match(/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\/(\d{1,2})$/);
-                       return this.assert(m && IPv4(m[1]) && this.apply('ip4prefix', m[2]), _('valid IPv4 CIDR'));
-               },
-
-               cidr6: function() {
-                       var m = this.value.match(/^([0-9a-fA-F:.]+)\/(\d{1,3})$/);
-                       return this.assert(m && IPv6(m[1]) && this.apply('ip6prefix', m[2]), _('valid IPv6 CIDR'));
-               },
-
-               ipnet4: function() {
-                       var m = this.value.match(/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/);
-                       return this.assert(m && IPv4(m[1]) && IPv4(m[2]), _('IPv4 network in address/netmask notation'));
-               },
-
-               ipnet6: function() {
-                       var m = this.value.match(/^([0-9a-fA-F:.]+)\/([0-9a-fA-F:.]+)$/);
-                       return this.assert(m && IPv6(m[1]) && IPv6(m[2]), _('IPv6 network in address/netmask notation'));
-               },
-
-               ip6hostid: function() {
-                       if (this.value == "eui64" || this.value == "random")
-                               return true;
-
-                       var v6 = IPv6(this.value);
-                       return this.assert(!(!v6 || v6[0] || v6[1] || v6[2] || v6[3]), _('valid IPv6 host id'));
-               },
-
-               ipmask: function() {
-                       return this.assert(this.apply('ipmask4') || this.apply('ipmask6'),
-                               _('valid network in address/netmask notation'));
-               },
-
-               ipmask4: function() {
-                       return this.assert(this.apply('cidr4') || this.apply('ipnet4') || this.apply('ip4addr'),
-                               _('valid IPv4 network'));
-               },
-
-               ipmask6: function() {
-                       return this.assert(this.apply('cidr6') || this.apply('ipnet6') || this.apply('ip6addr'),
-                               _('valid IPv6 network'));
-               },
-
-               port: function() {
-                       var p = Int(this.value);
-                       return this.assert(p >= 0 && p <= 65535, _('valid port value'));
-               },
-
-               portrange: function() {
-                       if (this.value.match(/^(\d+)-(\d+)$/)) {
-                               var p1 = +RegExp.$1;
-                               var p2 = +RegExp.$2;
-                               return this.assert(p1 <= p2 && p2 <= 65535,
-                                       _('valid port or port range (port1-port2)'));
-                       }
-
-                       return this.assert(this.apply('port'), _('valid port or port range (port1-port2)'));
-               },
-
-               macaddr: function() {
-                       return this.assert(this.value.match(/^([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}$/) != null,
-                               _('valid MAC address'));
-               },
-
-               host: function(ipv4only) {
-                       return this.assert(this.apply('hostname') || this.apply(ipv4only == 1 ? 'ip4addr' : 'ipaddr'),
-                               _('valid hostname or IP address'));
-               },
-
-               hostname: function(strict) {
-                       if (this.value.length <= 253)
-                               return this.assert(
-                                       (this.value.match(/^[a-zA-Z0-9_]+$/) != null ||
-                                               (this.value.match(/^[a-zA-Z0-9_][a-zA-Z0-9_\-.]*[a-zA-Z0-9]$/) &&
-                                                this.value.match(/[^0-9.]/))) &&
-                                       (!strict || !this.value.match(/^_/)),
-                                       _('valid hostname'));
-
-                       return this.assert(false, _('valid hostname'));
-               },
-
-               network: function() {
-                       return this.assert(this.apply('uciname') || this.apply('host'),
-                               _('valid UCI identifier, hostname or IP address'));
-               },
-
-               hostport: function(ipv4only) {
-                       var hp = this.value.split(/:/);
-                       return this.assert(hp.length == 2 && this.apply('host', hp[0], [ipv4only]) && this.apply('port', hp[1]),
-                               _('valid host:port'));
-               },
-
-               ip4addrport: function() {
-                       var hp = this.value.split(/:/);
-                       return this.assert(hp.length == 2 && this.apply('ip4addr', hp[0], [true]) && this.apply('port', hp[1]),
-                               _('valid IPv4 address:port'));
-               },
-
-               ipaddrport: function(bracket) {
-                       var m4 = this.value.match(/^([^\[\]:]+):(\d+)$/),
-                           m6 = this.value.match((bracket == 1) ? /^\[(.+)\]:(\d+)$/ : /^([^\[\]]+):(\d+)$/);
-
-                       if (m4)
-                               return this.assert(this.apply('ip4addr', m4[1], [true]) && this.apply('port', m4[2]),
-                                       _('valid address:port'));
-
-                       return this.assert(m6 && this.apply('ip6addr', m6[1], [true]) && this.apply('port', m6[2]),
-                               _('valid address:port'));
-               },
-
-               wpakey: function() {
-                       var v = this.value;
-
-                       if (v.length == 64)
-                               return this.assert(v.match(/^[a-fA-F0-9]{64}$/), _('valid hexadecimal WPA key'));
-
-                       return this.assert((v.length >= 8) && (v.length <= 63), _('key between 8 and 63 characters'));
-               },
-
-               wepkey: function() {
-                       var v = this.value;
-
-                       if (v.substr(0, 2) === 's:')
-                               v = v.substr(2);
-
-                       if ((v.length == 10) || (v.length == 26))
-                               return this.assert(v.match(/^[a-fA-F0-9]{10,26}$/), _('valid hexadecimal WEP key'));
-
-                       return this.assert((v.length === 5) || (v.length === 13), _('key with either 5 or 13 characters'));
-               },
-
-               uciname: function() {
-                       return this.assert(this.value.match(/^[a-zA-Z0-9_]+$/), _('valid UCI identifier'));
-               },
-
-               range: function(min, max) {
-                       var val = Dec(this.value);
-                       return this.assert(val >= +min && val <= +max, _('value between %f and %f').format(min, max));
-               },
-
-               min: function(min) {
-                       return this.assert(Dec(this.value) >= +min, _('value greater or equal to %f').format(min));
-               },
-
-               max: function(max) {
-                       return this.assert(Dec(this.value) <= +max, _('value smaller or equal to %f').format(max));
-               },
-
-               rangelength: function(min, max) {
-                       var val = '' + this.value;
-                       return this.assert((val.length >= +min) && (val.length <= +max),
-                               _('value between %d and %d characters').format(min, max));
-               },
-
-               minlength: function(min) {
-                       return this.assert((''+this.value).length >= +min,
-                               _('value with at least %d characters').format(min));
-               },
-
-               maxlength: function(max) {
-                       return this.assert((''+this.value).length <= +max,
-                               _('value with at most %d characters').format(max));
-               },
-
-               or: function() {
-                       var errors = [];
-
-                       for (var i = 0; i < arguments.length; i += 2) {
-                               if (typeof arguments[i] != 'function') {
-                                       if (arguments[i] == this.value)
-                                               return this.assert(true);
-                                       errors.push('"%s"'.format(arguments[i]));
-                                       i--;
-                               }
-                               else if (arguments[i].apply(this, arguments[i+1])) {
-                                       return this.assert(true);
-                               }
-                               else {
-                                       errors.push(this.error);
-                               }
-                       }
-
-                       return this.assert(false, _('one of:\n - %s'.format(errors.join('\n - '))));
-               },
-
-               and: function() {
-                       for (var i = 0; i < arguments.length; i += 2) {
-                               if (typeof arguments[i] != 'function') {
-                                       if (arguments[i] != this.value)
-                                               return this.assert(false, '"%s"'.format(arguments[i]));
-                                       i--;
-                               }
-                               else if (!arguments[i].apply(this, arguments[i+1])) {
-                                       return this.assert(false, this.error);
-                               }
-                       }
-
-                       return this.assert(true);
-               },
-
-               neg: function() {
-                       return this.apply('or', this.value.replace(/^[ \t]*![ \t]*/, ''), arguments);
-               },
-
-               list: function(subvalidator, subargs) {
-                       this.field.setAttribute('data-is-list', 'true');
-
-                       var tokens = this.value.match(/[^ \t]+/g);
-                       for (var i = 0; i < tokens.length; i++)
-                               if (!this.apply(subvalidator, tokens[i], subargs))
-                                       return this.assert(false, this.error);
-
-                       return this.assert(true);
-               },
-
-               phonedigit: function() {
-                       return this.assert(this.value.match(/^[0-9\*#!\.]+$/),
-                               _('valid phone digit (0-9, "*", "#", "!" or ".")'));
-               },
-
-               timehhmmss: function() {
-                       return this.assert(this.value.match(/^[0-6][0-9]:[0-6][0-9]:[0-6][0-9]$/),
-                               _('valid time (HH:MM:SS)'));
-               },
-
-               dateyyyymmdd: function() {
-                       if (this.value.match(/^(\d\d\d\d)-(\d\d)-(\d\d)/)) {
-                               var year  = +RegExp.$1,
-                                   month = +RegExp.$2,
-                                   day   = +RegExp.$3,
-                                   days_in_month = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
-
-                               function is_leap_year(year) {
-                                       return ((!(year % 4) && (year % 100)) || !(year % 400));
-                               }
-
-                               function get_days_in_month(month, year) {
-                                       return (month === 2 && is_leap_year(year)) ? 29 : days_in_month[month - 1];
-                               }
-
-                               /* Firewall rules in the past don't make sense */
-                               return this.assert(year >= 2015 && month && month <= 12 && day && day <= get_days_in_month(month, year),
-                                       _('valid date (YYYY-MM-DD)'));
-
-                       }
-
-                       return this.assert(false, _('valid date (YYYY-MM-DD)'));
-               },
-
-               unique: function(subvalidator, subargs) {
-                       var ctx = this,
-                               option = findParent(ctx.field, '[data-type][data-name]'),
-                           section = findParent(option, '.cbi-section'),
-                           query = '[data-type="%s"][data-name="%s"]'.format(option.getAttribute('data-type'), option.getAttribute('data-name')),
-                           unique = true;
-
-                       section.querySelectorAll(query).forEach(function(sibling) {
-                               if (sibling === option)
-                                       return;
-
-                               var input = sibling.querySelector('[data-type]'),
-                                   values = input ? (input.getAttribute('data-is-list') ? input.value.match(/[^ \t]+/g) : [ input.value ]) : null;
-
-                               if (values !== null && values.indexOf(ctx.value) !== -1)
-                                       unique = false;
-                       });
-
-                       if (!unique)
-                               return this.assert(false, _('unique value'));
-
-                       if (typeof(subvalidator) === 'function')
-                               return this.apply(subvalidator, undefined, subargs);
-
-                       return this.assert(true);
-               },
-
-               hexstring: function() {
-                       return this.assert(this.value.match(/^([a-f0-9][a-f0-9]|[A-F0-9][A-F0-9])+$/),
-                               _('hexadecimal encoded value'));
-               }
-       }
-};
-
-function CBIValidator(field, type, optional)
-{
-       this.field = field;
-       this.optional = optional;
-       this.vstack = this.compile(type);
-}
-
-CBIValidator.prototype = CBIValidatorPrototype;
-
-
-function cbi_d_add(field, dep, index) {
-       var obj = (typeof(field) === 'string') ? document.getElementById(field) : field;
-       if (obj) {
-               var entry
-               for (var i=0; i<cbi_d.length; i++) {
-                       if (cbi_d[i].id == obj.id) {
-                               entry = cbi_d[i];
-                               break;
-                       }
-               }
-               if (!entry) {
-                       entry = {
-                               "node": obj,
-                               "id": obj.id,
-                               "parent": obj.parentNode.id,
-                               "deps": [],
-                               "index": index
-                       };
-                       cbi_d.unshift(entry);
-               }
-               entry.deps.push(dep)
-       }
-}
-
-function cbi_d_checkvalue(target, ref) {
-       var value = null,
-           query = 'input[id="'+target+'"], input[name="'+target+'"], ' +
-                   'select[id="'+target+'"], select[name="'+target+'"]';
-
-       document.querySelectorAll(query).forEach(function(i) {
-               if (value === null && ((i.type !== 'radio' && i.type !== 'checkbox') || i.checked === true))
-                       value = i.value;
-       });
-
-       return (((value !== null) ? value : "") == ref);
-}
-
-function cbi_d_check(deps) {
-       var reverse;
-       var def = false;
-       for (var i=0; i<deps.length; i++) {
-               var istat = true;
-               reverse = false;
-               for (var j in deps[i]) {
-                       if (j == "!reverse") {
-                               reverse = true;
-                       } else if (j == "!default") {
-                               def = true;
-                               istat = false;
-                       } else {
-                               istat = (istat && cbi_d_checkvalue(j, deps[i][j]))
-                       }
-               }
-
-               if (istat ^ reverse) {
-                       return true;
-               }
-       }
-       return def;
-}
-
-function cbi_d_update() {
-       var state = false;
-       for (var i=0; i<cbi_d.length; i++) {
-               var entry = cbi_d[i];
-               var node  = document.getElementById(entry.id);
-               var parent = document.getElementById(entry.parent);
-
-               if (node && node.parentNode && !cbi_d_check(entry.deps)) {
-                       node.parentNode.removeChild(node);
-                       state = true;
-               }
-               else if (parent && (!node || !node.parentNode) && cbi_d_check(entry.deps)) {
-                       var next = undefined;
-
-                       for (next = parent.firstChild; next; next = next.nextSibling) {
-                               if (next.getAttribute && parseInt(next.getAttribute('data-index'), 10) > entry.index)
-                                       break;
-                       }
-
-                       if (!next)
-                               parent.appendChild(entry.node);
-                       else
-                               parent.insertBefore(entry.node, next);
-
-                       state = true;
-               }
-
-               // hide optionals widget if no choices remaining
-               if (parent && parent.parentNode && parent.getAttribute('data-optionals'))
-                       parent.parentNode.style.display = (parent.options.length <= 1) ? 'none' : '';
-       }
-
-       if (entry && entry.parent)
-               cbi_tag_last(parent);
-
-       if (state)
-               cbi_d_update();
-       else if (parent)
-               parent.dispatchEvent(new CustomEvent('dependency-update', { bubbles: true }));
-}
-
-function cbi_init() {
-       var nodes;
-
-       nodes = document.querySelectorAll('[data-strings]');
-
-       for (var i = 0, node; (node = nodes[i]) !== undefined; i++) {
-               var str = JSON.parse(node.getAttribute('data-strings'));
-               for (var key in str) {
-                       for (var key2 in str[key]) {
-                               var dst = cbi_strings[key] || (cbi_strings[key] = { });
-                                   dst[key2] = str[key][key2];
-                       }
-               }
-       }
-
-       nodes = document.querySelectorAll('[data-depends]');
-
-       for (var i = 0, node; (node = nodes[i]) !== undefined; i++) {
-               var index = parseInt(node.getAttribute('data-index'), 10);
-               var depends = JSON.parse(node.getAttribute('data-depends'));
-               if (!isNaN(index) && depends.length > 0) {
-                       for (var alt = 0; alt < depends.length; alt++)
-                               cbi_d_add(node, depends[alt], index);
-               }
-       }
-
-       nodes = document.querySelectorAll('[data-update]');
-
-       for (var i = 0, node; (node = nodes[i]) !== undefined; i++) {
-               var events = node.getAttribute('data-update').split(' ');
-               for (var j = 0, event; (event = events[j]) !== undefined; j++)
-                       node.addEventListener(event, cbi_d_update);
-       }
-
-       nodes = document.querySelectorAll('[data-choices]');
-
-       for (var i = 0, node; (node = nodes[i]) !== undefined; i++) {
-               var choices = JSON.parse(node.getAttribute('data-choices'));
-               var options = {};
-
-               for (var j = 0; j < choices[0].length; j++)
-                       options[choices[0][j]] = choices[1][j];
-
-               var def = (node.getAttribute('data-optional') === 'true')
-                       ? node.placeholder || '' : null;
-
-               cbi_combobox_init(node, options, def,
-                                 node.getAttribute('data-manual'));
-       }
-
-       nodes = document.querySelectorAll('[data-dynlist]');
-
-       for (var i = 0, node; (node = nodes[i]) !== undefined; i++) {
-               var choices = JSON.parse(node.getAttribute('data-dynlist'));
-               var options = null;
-
-               if (choices[0] && choices[0].length) {
-                       options = {};
-
-                       for (var j = 0; j < choices[0].length; j++)
-                               options[choices[0][j]] = choices[1][j];
-               }
-
-               cbi_dynlist_init(node, choices[2], choices[3], options);
-       }
-
-       nodes = document.querySelectorAll('[data-type]');
-
-       for (var i = 0, node; (node = nodes[i]) !== undefined; i++) {
-               cbi_validate_field(node, node.getAttribute('data-optional') === 'true',
-                                  node.getAttribute('data-type'));
-       }
-
-       document.querySelectorAll('.cbi-dropdown').forEach(cbi_dropdown_init);
-       document.querySelectorAll('[data-browser]').forEach(cbi_browser_init);
-
-       document.querySelectorAll('.cbi-tooltip:not(:empty)').forEach(function(s) {
-               s.parentNode.classList.add('cbi-tooltip-container');
-       });
-
-       document.querySelectorAll('.cbi-section-remove > input[name^="cbi.rts"]').forEach(function(i) {
-               var handler = function(ev) {
-                       var bits = this.name.split(/\./),
-                           section = document.getElementById('cbi-' + bits[2] + '-' + bits[3]);
-
-                   section.style.opacity = (ev.type === 'mouseover') ? 0.5 : '';
-               };
-
-               i.addEventListener('mouseover', handler);
-               i.addEventListener('mouseout', handler);
-       });
-
-       cbi_d_update();
-}
-
-function cbi_combobox_init(id, values, def, man) {
-       var obj = (typeof(id) === 'string') ? document.getElementById(id) : id;
-       var sb = E('div', {
-               'name': obj.name,
-               'class': 'cbi-dropdown',
-               'display-items': 5,
-               'optional': obj.getAttribute('data-optional'),
-               'placeholder': _('-- Please choose --'),
-               'data-type': obj.getAttribute('data-type'),
-               'data-optional': obj.getAttribute('data-optional')
-       }, [ E('ul') ]);
-
-       if (!(obj.value in values) && obj.value.length) {
-               sb.lastElementChild.appendChild(E('li', {
-                       'data-value': obj.value,
-                       'selected': ''
-               }, obj.value.length ? obj.value : (def || _('-- Please choose --'))));
-       }
-
-       for (var i in values) {
-               sb.lastElementChild.appendChild(E('li', {
-                       'data-value': i,
-                       'selected': (i == obj.value) ? '' : null
-               }, values[i]));
-       }
-
-       sb.lastElementChild.appendChild(E('li', { 'data-value': '-' }, [
-               E('input', {
-                       'type': 'text',
-                       'class': 'create-item-input',
-                       'data-type': obj.getAttribute('data-type'),
-                       'data-optional': true,
-                       'placeholder': (man || _('-- custom --'))
-               })
-       ]));
-
-       sb.value = obj.value;
-       obj.parentNode.replaceChild(sb, obj);
-}
-
-function cbi_filebrowser(id, defpath) {
-       var field   = L.dom.elem(id) ? id : document.getElementById(id);
-       var browser = window.open(
-               cbi_strings.path.browser + (field.value || defpath || '') + '?field=' + field.id,
-               "luci_filebrowser", "width=300,height=400,left=100,top=200,scrollbars=yes"
-       );
-
-       browser.focus();
-}
-
-function cbi_browser_init(field)
-{
-       field.parentNode.insertBefore(
-               E('img', {
-                       'src': L.resource('cbi/folder.gif'),
-                       'class': 'cbi-image-button',
-                       'click': function(ev) {
-                               cbi_filebrowser(field, field.getAttribute('data-browser'));
-                               ev.preventDefault();
-                       }
-               }), field.nextSibling);
-}
-
-CBIDynamicList = {
-       addItem: function(dl, value, text, flash) {
-               var exists = false,
-                   new_item = E('div', { 'class': flash ? 'item flash' : 'item', 'tabindex': 0 }, [
-                               E('span', {}, text || value),
-                               E('input', {
-                                       'type': 'hidden',
-                                       'name': dl.getAttribute('data-prefix'),
-                                       'value': value })]);
-
-               dl.querySelectorAll('.item, .add-item').forEach(function(item) {
-                       if (exists)
-                               return;
-
-                       var hidden = item.querySelector('input[type="hidden"]');
-
-                       if (hidden && hidden.value === value)
-                               exists = true;
-                       else if (!hidden || hidden.value >= value)
-                               exists = !!item.parentNode.insertBefore(new_item, item);
-               });
-
-               cbi_d_update();
-       },
-
-       removeItem: function(dl, item) {
-               var sb = dl.querySelector('.cbi-dropdown');
-               if (sb) {
-                       var value = item.querySelector('input[type="hidden"]').value;
-
-                       sb.querySelectorAll('ul > li').forEach(function(li) {
-                               if (li.getAttribute('data-value') === value)
-                                       li.removeAttribute('unselectable');
-                       });
-               }
-
-               item.parentNode.removeChild(item);
-               cbi_d_update();
-       },
-
-       handleClick: function(ev) {
-               var dl = ev.currentTarget,
-                   item = findParent(ev.target, '.item');
-
-               if (item) {
-                       this.removeItem(dl, item);
-               }
-               else if (matchesElem(ev.target, '.cbi-button-add')) {
-                       var input = ev.target.previousElementSibling;
-                       if (input.value.length && !input.classList.contains('cbi-input-invalid')) {
-                               this.addItem(dl, input.value, null, true);
-                               input.value = '';
-                       }
-               }
-       },
-
-       handleDropdownChange: function(ev) {
-               var dl = ev.currentTarget,
-                   sbIn = ev.detail.instance,
-                   sbEl = ev.detail.element,
-                   sbVal = ev.detail.value;
-
-               if (sbVal === null)
-                       return;
-
-               sbIn.setValues(sbEl, null);
-               sbVal.element.setAttribute('unselectable', '');
-
-               this.addItem(dl, sbVal.value, sbVal.text, true);
-       },
-
-       handleKeydown: function(ev) {
-               var dl = ev.currentTarget,
-                   item = findParent(ev.target, '.item');
-
-               if (item) {
-                       switch (ev.keyCode) {
-                       case 8: /* backspace */
-                               if (item.previousElementSibling)
-                                       item.previousElementSibling.focus();
-
-                               this.removeItem(dl, item);
-                               break;
-
-                       case 46: /* delete */
-                               if (item.nextElementSibling) {
-                                       if (item.nextElementSibling.classList.contains('item'))
-                                               item.nextElementSibling.focus();
-                                       else
-                                               item.nextElementSibling.firstElementChild.focus();
-                               }
-
-                               this.removeItem(dl, item);
-                               break;
-                       }
-               }
-               else if (matchesElem(ev.target, '.cbi-input-text')) {
-                       switch (ev.keyCode) {
-                       case 13: /* enter */
-                               if (ev.target.value.length && !ev.target.classList.contains('cbi-input-invalid')) {
-                                       this.addItem(dl, ev.target.value, null, true);
-                                       ev.target.value = '';
-                                       ev.target.blur();
-                                       ev.target.focus();
-                               }
-
-                               ev.preventDefault();
-                               break;
-                       }
-               }
-       }
-};
-
-function cbi_dynlist_init(dl, datatype, optional, choices)
-{
-       if (!(this instanceof cbi_dynlist_init))
-               return new cbi_dynlist_init(dl, datatype, optional, choices);
-
-       dl.classList.add('cbi-dynlist');
-       dl.appendChild(E('div', { 'class': 'add-item' }, E('input', {
-               'type': 'text',
-               'name': 'cbi.dynlist.' + dl.getAttribute('data-prefix'),
-               'class': 'cbi-input-text',
-               'placeholder': dl.getAttribute('data-placeholder'),
-               'data-type': datatype,
-               'data-optional': true
-       })));
-
-       if (choices)
-               cbi_combobox_init(dl.lastElementChild.lastElementChild, choices, '', _('-- custom --'));
-       else
-               dl.lastElementChild.appendChild(E('div', { 'class': 'cbi-button cbi-button-add' }, '+'));
-
-       dl.addEventListener('click', this.handleClick.bind(this));
-       dl.addEventListener('keydown', this.handleKeydown.bind(this));
-       dl.addEventListener('cbi-dropdown-change', this.handleDropdownChange.bind(this));
-
-       try {
-               var values = JSON.parse(dl.getAttribute('data-values') || '[]');
-
-               if (typeof(values) === 'object' && Array.isArray(values))
-                       for (var i = 0; i < values.length; i++)
-                               this.addItem(dl, values[i], choices ? choices[values[i]] : null);
-       }
-       catch (e) {}
-}
-
-cbi_dynlist_init.prototype = CBIDynamicList;
-
-
-function cbi_validate_form(form, errmsg)
-{
-       /* if triggered by a section removal or addition, don't validate */
-       if (form.cbi_state == 'add-section' || form.cbi_state == 'del-section')
-               return true;
-
-       if (form.cbi_validators) {
-               for (var i = 0; i < form.cbi_validators.length; i++) {
-                       var validator = form.cbi_validators[i];
-
-                       if (!validator() && errmsg) {
-                               alert(errmsg);
-                               return false;
-                       }
-               }
-       }
-
-       return true;
-}
-
-function cbi_validate_reset(form)
-{
-       window.setTimeout(
-               function() { cbi_validate_form(form, null) }, 100
-       );
-
-       return true;
-}
-
-function cbi_validate_field(cbid, optional, type)
-{
-       var field = isElem(cbid) ? cbid : document.getElementById(cbid);
-       var validatorFn;
-
-       try {
-               var cbiValidator = new CBIValidator(field, type, optional);
-               validatorFn = cbiValidator.validate.bind(cbiValidator);
-       }
-       catch(e) {
-               validatorFn = null;
-       };
-
-       if (validatorFn !== null) {
-               var form = findParent(field, 'form');
-
-               if (!form.cbi_validators)
-                       form.cbi_validators = [ ];
-
-               form.cbi_validators.push(validatorFn);
-
-               field.addEventListener("blur",  validatorFn);
-               field.addEventListener("keyup", validatorFn);
-               field.addEventListener("cbi-dropdown-change", validatorFn);
-
-               if (matchesElem(field, 'select')) {
-                       field.addEventListener("change", validatorFn);
-                       field.addEventListener("click",  validatorFn);
-               }
-
-               validatorFn();
-       }
-}
-
-function cbi_row_swap(elem, up, store)
-{
-       var tr = findParent(elem.parentNode, '.cbi-section-table-row');
-
-       if (!tr)
-               return false;
-
-       tr.classList.remove('flash');
-
-       if (up) {
-               var prev = tr.previousElementSibling;
-
-               if (prev && prev.classList.contains('cbi-section-table-row'))
-                       tr.parentNode.insertBefore(tr, prev);
-               else
-                       return;
-       }
-       else {
-               var next = tr.nextElementSibling ? tr.nextElementSibling.nextElementSibling : null;
-
-               if (next && next.classList.contains('cbi-section-table-row'))
-                       tr.parentNode.insertBefore(tr, next);
-               else if (!next)
-                       tr.parentNode.appendChild(tr);
-               else
-                       return;
-       }
-
-       var ids = [ ];
-
-       for (var i = 0, n = 0; i < tr.parentNode.childNodes.length; i++) {
-               var node = tr.parentNode.childNodes[i];
-               if (node.classList && node.classList.contains('cbi-section-table-row')) {
-                       node.classList.remove('cbi-rowstyle-1');
-                       node.classList.remove('cbi-rowstyle-2');
-                       node.classList.add((n++ % 2) ? 'cbi-rowstyle-2' : 'cbi-rowstyle-1');
-
-                       if (/-([^\-]+)$/.test(node.id))
-                               ids.push(RegExp.$1);
-               }
-       }
-
-       var input = document.getElementById(store);
-       if (input)
-               input.value = ids.join(' ');
-
-       window.scrollTo(0, tr.offsetTop);
-       void tr.offsetWidth;
-       tr.classList.add('flash');
-
-       return false;
-}
-
-function cbi_tag_last(container)
-{
-       var last;
-
-       for (var i = 0; i < container.childNodes.length; i++) {
-               var c = container.childNodes[i];
-               if (matchesElem(c, 'div')) {
-                       c.classList.remove('cbi-value-last');
-                       last = c;
-               }
-       }
-
-       if (last)
-               last.classList.add('cbi-value-last');
-}
-
-function cbi_submit(elem, name, value, action)
-{
-       var form = elem.form || findParent(elem, 'form');
-
-       if (!form)
-               return false;
-
-       if (action)
-               form.action = action;
-
-       if (name) {
-               var hidden = form.querySelector('input[type="hidden"][name="%s"]'.format(name)) ||
-                       E('input', { type: 'hidden', name: name });
-
-               hidden.value = value || '1';
-               form.appendChild(hidden);
-       }
-
-       form.submit();
-       return true;
-}
-
-String.prototype.format = function()
-{
-       if (!RegExp)
-               return;
-
-       var html_esc = [/&/g, '&#38;', /"/g, '&#34;', /'/g, '&#39;', /</g, '&#60;', />/g, '&#62;'];
-       var quot_esc = [/"/g, '&#34;', /'/g, '&#39;'];
-
-       function esc(s, r) {
-               if (typeof(s) !== 'string' && !(s instanceof String))
-                       return '';
-
-               for (var i = 0; i < r.length; i += 2)
-                       s = s.replace(r[i], r[i+1]);
-
-               return s;
-       }
-
-       var str = this;
-       var out = '';
-       var re = /^(([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X|q|h|j|t|m))/;
-       var a = b = [], numSubstitutions = 0, numMatches = 0;
-
-       while (a = re.exec(str)) {
-               var m = a[1];
-               var leftpart = a[2], pPad = a[3], pJustify = a[4], pMinLength = a[5];
-               var pPrecision = a[6], pType = a[7];
-
-               numMatches++;
-
-               if (pType == '%') {
-                       subst = '%';
-               }
-               else {
-                       if (numSubstitutions < arguments.length) {
-                               var param = arguments[numSubstitutions++];
-
-                               var pad = '';
-                               if (pPad && pPad.substr(0,1) == "'")
-                                       pad = leftpart.substr(1,1);
-                               else if (pPad)
-                                       pad = pPad;
-                               else
-                                       pad = ' ';
-
-                               var justifyRight = true;
-                               if (pJustify && pJustify === "-")
-                                       justifyRight = false;
-
-                               var minLength = -1;
-                               if (pMinLength)
-                                       minLength = +pMinLength;
-
-                               var precision = -1;
-                               if (pPrecision && pType == 'f')
-                                       precision = +pPrecision.substring(1);
-
-                               var subst = param;
-
-                               switch(pType) {
-                                       case 'b':
-                                               subst = (+param || 0).toString(2);
-                                               break;
-
-                                       case 'c':
-                                               subst = String.fromCharCode(+param || 0);
-                                               break;
-
-                                       case 'd':
-                                               subst = ~~(+param || 0);
-                                               break;
-
-                                       case 'u':
-                                               subst = ~~Math.abs(+param || 0);
-                                               break;
-
-                                       case 'f':
-                                               subst = (precision > -1)
-                                                       ? ((+param || 0.0)).toFixed(precision)
-                                                       : (+param || 0.0);
-                                               break;
-
-                                       case 'o':
-                                               subst = (+param || 0).toString(8);
-                                               break;
-
-                                       case 's':
-                                               subst = param;
-                                               break;
-
-                                       case 'x':
-                                               subst = ('' + (+param || 0).toString(16)).toLowerCase();
-                                               break;
-
-                                       case 'X':
-                                               subst = ('' + (+param || 0).toString(16)).toUpperCase();
-                                               break;
-
-                                       case 'h':
-                                               subst = esc(param, html_esc);
-                                               break;
-
-                                       case 'q':
-                                               subst = esc(param, quot_esc);
-                                               break;
-
-                                       case 't':
-                                               var td = 0;
-                                               var th = 0;
-                                               var tm = 0;
-                                               var ts = (param || 0);
-
-                                               if (ts > 60) {
-                                                       tm = Math.floor(ts / 60);
-                                                       ts = (ts % 60);
-                                               }
-
-                                               if (tm > 60) {
-                                                       th = Math.floor(tm / 60);
-                                                       tm = (tm % 60);
-                                               }
-
-                                               if (th > 24) {
-                                                       td = Math.floor(th / 24);
-                                                       th = (th % 24);
-                                               }
-
-                                               subst = (td > 0)
-                                                       ? String.format('%dd %dh %dm %ds', td, th, tm, ts)
-                                                       : String.format('%dh %dm %ds', th, tm, ts);
-
-                                               break;
-
-                                       case 'm':
-                                               var mf = pMinLength ? +pMinLength : 1000;
-                                               var pr = pPrecision ? ~~(10 * +('0' + pPrecision)) : 2;
-
-                                               var i = 0;
-                                               var val = (+param || 0);
-                                               var units = [ ' ', ' K', ' M', ' G', ' T', ' P', ' E' ];
-
-                                               for (i = 0; (i < units.length) && (val > mf); i++)
-                                                       val /= mf;
-
-                                               subst = (i ? val.toFixed(pr) : val) + units[i];
-                                               pMinLength = null;
-                                               break;
-                               }
-                       }
-               }
-
-               if (pMinLength) {
-                       subst = subst.toString();
-                       for (var i = subst.length; i < pMinLength; i++)
-                               if (pJustify == '-')
-                                       subst = subst + ' ';
-                               else
-                                       subst = pad + subst;
-               }
-
-               out += leftpart + subst;
-               str = str.substr(m.length);
-       }
-
-       return out + str;
-}
-
-String.prototype.nobr = function()
-{
-       return this.replace(/[\s\n]+/g, '&#160;');
-}
-
-String.format = function()
-{
-       var a = [ ];
-
-       for (var i = 1; i < arguments.length; i++)
-               a.push(arguments[i]);
-
-       return ''.format.apply(arguments[0], a);
-}
-
-String.nobr = function()
-{
-       var a = [ ];
-
-       for (var i = 1; i < arguments.length; i++)
-               a.push(arguments[i]);
-
-       return ''.nobr.apply(arguments[0], a);
-}
-
-if (window.NodeList && !NodeList.prototype.forEach) {
-       NodeList.prototype.forEach = function (callback, thisArg) {
-               thisArg = thisArg || window;
-               for (var i = 0; i < this.length; i++) {
-                       callback.call(thisArg, this[i], i, this);
-               }
-       };
-}
-
-if (!window.requestAnimationFrame) {
-       window.requestAnimationFrame = function(f) {
-               window.setTimeout(function() {
-                       f(new Date().getTime())
-               }, 1000/30);
-       };
-}
-
-
-function isElem(e) { return L.dom.elem(e) }
-function toElem(s) { return L.dom.parse(s) }
-function matchesElem(node, selector) { return L.dom.matches(node, selector) }
-function findParent(node, selector) { return L.dom.parent(node, selector) }
-function E() { return L.dom.create.apply(L.dom, arguments) }
-
-if (typeof(window.CustomEvent) !== 'function') {
-       function CustomEvent(event, params) {
-               params = params || { bubbles: false, cancelable: false, detail: undefined };
-               var evt = document.createEvent('CustomEvent');
-                   evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );
-               return evt;
-       }
-
-       CustomEvent.prototype = window.Event.prototype;
-       window.CustomEvent = CustomEvent;
-}
-
-CBIDropdown = {
-       openDropdown: function(sb) {
-               var st = window.getComputedStyle(sb, null),
-                   ul = sb.querySelector('ul'),
-                   li = ul.querySelectorAll('li'),
-                   fl = findParent(sb, '.cbi-value-field'),
-                   sel = ul.querySelector('[selected]'),
-                   rect = sb.getBoundingClientRect(),
-                   items = Math.min(this.dropdown_items, li.length);
-
-               document.querySelectorAll('.cbi-dropdown[open]').forEach(function(s) {
-                       s.dispatchEvent(new CustomEvent('cbi-dropdown-close', {}));
-               });
-
-               sb.setAttribute('open', '');
-
-               var pv = ul.cloneNode(true);
-                   pv.classList.add('preview');
-
-               if (fl)
-                       fl.classList.add('cbi-dropdown-open');
-
-               if ('ontouchstart' in window) {
-                       var vpWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0),
-                           vpHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0),
-                           scrollFrom = window.pageYOffset,
-                           scrollTo = scrollFrom + rect.top - vpHeight * 0.5,
-                           start = null;
-
-                       ul.style.top = sb.offsetHeight + 'px';
-                       ul.style.left = -rect.left + 'px';
-                       ul.style.right = (rect.right - vpWidth) + 'px';
-                       ul.style.maxHeight = (vpHeight * 0.5) + 'px';
-                       ul.style.WebkitOverflowScrolling = 'touch';
-
-                       var scrollStep = function(timestamp) {
-                               if (!start) {
-                                       start = timestamp;
-                                       ul.scrollTop = sel ? Math.max(sel.offsetTop - sel.offsetHeight, 0) : 0;
-                               }
-
-                               var duration = Math.max(timestamp - start, 1);
-                               if (duration < 100) {
-                                       document.body.scrollTop = scrollFrom + (scrollTo - scrollFrom) * (duration / 100);
-                                       window.requestAnimationFrame(scrollStep);
-                               }
-                               else {
-                                       document.body.scrollTop = scrollTo;
-                               }
-                       };
-
-                       window.requestAnimationFrame(scrollStep);
-               }
-               else {
-                       ul.style.maxHeight = '1px';
-                       ul.style.top = ul.style.bottom = '';
-
-                       window.requestAnimationFrame(function() {
-                               var height = items * li[Math.max(0, li.length - 2)].offsetHeight;
-
-                               ul.scrollTop = sel ? Math.max(sel.offsetTop - sel.offsetHeight, 0) : 0;
-                               ul.style[((rect.top + rect.height + height) > window.innerHeight) ? 'bottom' : 'top'] = rect.height + 'px';
-                               ul.style.maxHeight = height + 'px';
-                       });
-               }
-
-               ul.querySelectorAll('[selected] input[type="checkbox"]').forEach(function(c) {
-                       c.checked = true;
-               });
-
-               ul.classList.add('dropdown');
-
-               sb.insertBefore(pv, ul.nextElementSibling);
-
-               li.forEach(function(l) {
-                       l.setAttribute('tabindex', 0);
-               });
-
-               sb.lastElementChild.setAttribute('tabindex', 0);
-
-               this.setFocus(sb, sel || li[0], true);
-       },
-
-       closeDropdown: function(sb, no_focus) {
-               if (!sb.hasAttribute('open'))
-                       return;
-
-               var pv = sb.querySelector('ul.preview'),
-                   ul = sb.querySelector('ul.dropdown'),
-                   li = ul.querySelectorAll('li'),
-                   fl = findParent(sb, '.cbi-value-field');
-
-               li.forEach(function(l) { l.removeAttribute('tabindex'); });
-               sb.lastElementChild.removeAttribute('tabindex');
-
-               sb.removeChild(pv);
-               sb.removeAttribute('open');
-               sb.style.width = sb.style.height = '';
-
-               ul.classList.remove('dropdown');
-               ul.style.top = ul.style.bottom = ul.style.maxHeight = '';
-
-               if (fl)
-                       fl.classList.remove('cbi-dropdown-open');
-
-               if (!no_focus)
-                       this.setFocus(sb, sb);
-
-               this.saveValues(sb, ul);
-       },
-
-       toggleItem: function(sb, li, force_state) {
-               if (li.hasAttribute('unselectable'))
-                       return;
-
-               if (this.multi) {
-                       var cbox = li.querySelector('input[type="checkbox"]'),
-                           items = li.parentNode.querySelectorAll('li'),
-                           label = sb.querySelector('ul.preview'),
-                           sel = li.parentNode.querySelectorAll('[selected]').length,
-                           more = sb.querySelector('.more'),
-                           ndisplay = this.display_items,
-                           n = 0;
-
-                       if (li.hasAttribute('selected')) {
-                               if (force_state !== true) {
-                                       if (sel > 1 || this.optional) {
-                                               li.removeAttribute('selected');
-                                               cbox.checked = cbox.disabled = false;
-                                               sel--;
-                                       }
-                                       else {
-                                               cbox.disabled = true;
-                                       }
-                               }
-                       }
-                       else {
-                               if (force_state !== false) {
-                                       li.setAttribute('selected', '');
-                                       cbox.checked = true;
-                                       cbox.disabled = false;
-                                       sel++;
-                               }
-                       }
-
-                       while (label.firstElementChild)
-                               label.removeChild(label.firstElementChild);
-
-                       for (var i = 0; i < items.length; i++) {
-                               items[i].removeAttribute('display');
-                               if (items[i].hasAttribute('selected')) {
-                                       if (ndisplay-- > 0) {
-                                               items[i].setAttribute('display', n++);
-                                               label.appendChild(items[i].cloneNode(true));
-                                       }
-                                       var c = items[i].querySelector('input[type="checkbox"]');
-                                       if (c)
-                                               c.disabled = (sel == 1 && !this.optional);
-                               }
-                       }
-
-                       if (ndisplay < 0)
-                               sb.setAttribute('more', '');
-                       else
-                               sb.removeAttribute('more');
-
-                       if (ndisplay === this.display_items)
-                               sb.setAttribute('empty', '');
-                       else
-                               sb.removeAttribute('empty');
-
-                       more.innerHTML = (ndisplay === this.display_items) ? this.placeholder : '···';
-               }
-               else {
-                       var sel = li.parentNode.querySelector('[selected]');
-                       if (sel) {
-                               sel.removeAttribute('display');
-                               sel.removeAttribute('selected');
-                       }
-
-                       li.setAttribute('display', 0);
-                       li.setAttribute('selected', '');
-
-                       this.closeDropdown(sb, true);
-               }
-
-               this.saveValues(sb, li.parentNode);
-       },
-
-       transformItem: function(sb, li) {
-               var cbox = E('form', {}, E('input', { type: 'checkbox', tabindex: -1, onclick: 'event.preventDefault()' })),
-                   label = E('label');
-
-               while (li.firstChild)
-                       label.appendChild(li.firstChild);
-
-               li.appendChild(cbox);
-               li.appendChild(label);
-       },
-
-       saveValues: function(sb, ul) {
-               var sel = ul.querySelectorAll('li[selected]'),
-                   div = sb.lastElementChild,
-                   strval = '',
-                   values = [];
-
-               while (div.lastElementChild)
-                       div.removeChild(div.lastElementChild);
-
-               sel.forEach(function (s) {
-                       if (s.hasAttribute('placeholder'))
-                               return;
-
-                       var v = {
-                               text: s.innerText,
-                               value: s.hasAttribute('data-value') ? s.getAttribute('data-value') : s.innerText,
-                               element: s
-                       };
-
-                       div.appendChild(E('input', {
-                               type: 'hidden',
-                               name: s.hasAttribute('name') ? s.getAttribute('name') : (sb.getAttribute('name') || ''),
-                               value: v.value
-                       }));
-
-                       values.push(v);
-
-                       strval += strval.length ? ' ' + v.value : v.value;
-               });
-
-               var detail = {
-                       instance: this,
-                       element: sb
-               };
-
-               if (this.multi)
-                       detail.values = values;
-               else
-                       detail.value = values.length ? values[0] : null;
-
-               sb.value = strval;
-
-               sb.dispatchEvent(new CustomEvent('cbi-dropdown-change', {
-                       bubbles: true,
-                       detail: detail
-               }));
-
-               cbi_d_update();
-       },
-
-       setValues: function(sb, values) {
-               var ul = sb.querySelector('ul');
-
-               if (this.multi) {
-                       ul.querySelectorAll('li[data-value]').forEach(function(li) {
-                               if (values === null || !(li.getAttribute('data-value') in values))
-                                       this.toggleItem(sb, li, false);
-                               else
-                                       this.toggleItem(sb, li, true);
-                       });
-               }
-               else {
-                       var ph = ul.querySelector('li[placeholder]');
-                       if (ph)
-                               this.toggleItem(sb, ph);
-
-                       ul.querySelectorAll('li[data-value]').forEach(function(li) {
-                               if (values !== null && (li.getAttribute('data-value') in values))
-                                       this.toggleItem(sb, li);
-                       });
-               }
-       },
-
-       setFocus: function(sb, elem, scroll) {
-               if (sb && sb.hasAttribute && sb.hasAttribute('locked-in'))
-                       return;
-
-               if (sb.target && findParent(sb.target, 'ul.dropdown'))
-                       return;
-
-               document.querySelectorAll('.focus').forEach(function(e) {
-                       if (!matchesElem(e, 'input')) {
-                               e.classList.remove('focus');
-                               e.blur();
-                       }
-               });
-
-               if (elem) {
-                       elem.focus();
-                       elem.classList.add('focus');
-
-                       if (scroll)
-                               elem.parentNode.scrollTop = elem.offsetTop - elem.parentNode.offsetTop;
-               }
-       },
-
-       createItems: function(sb, value) {
-               var sbox = this,
-                   val = (value || '').trim(),
-                   ul = sb.querySelector('ul');
-
-               if (!sbox.multi)
-                       val = val.length ? [ val ] : [];
-               else
-                       val = val.length ? val.split(/\s+/) : [];
-
-               val.forEach(function(item) {
-                       var new_item = null;
-
-                       ul.childNodes.forEach(function(li) {
-                               if (li.getAttribute && li.getAttribute('data-value') === item)
-                                       new_item = li;
-                       });
-
-                       if (!new_item) {
-                               var markup,
-                                   tpl = sb.querySelector(sbox.template);
-
-                               if (tpl)
-                                       markup = (tpl.textContent || tpl.innerHTML || tpl.firstChild.data).replace(/^<!--|-->$/, '').trim();
-                               else
-                                       markup = '<li data-value="{{value}}">{{value}}</li>';
-
-                               new_item = E(markup.replace(/{{value}}/g, item));
-
-                               if (sbox.multi) {
-                                       sbox.transformItem(sb, new_item);
-                               }
-                               else {
-                                       var old = ul.querySelector('li[created]');
-                                       if (old)
-                                               ul.removeChild(old);
-
-                                       new_item.setAttribute('created', '');
-                               }
-
-                               new_item = ul.insertBefore(new_item, ul.lastElementChild);
-                       }
-
-                       sbox.toggleItem(sb, new_item, true);
-                       sbox.setFocus(sb, new_item, true);
-               });
-       },
-
-       closeAllDropdowns: function() {
-               document.querySelectorAll('.cbi-dropdown[open]').forEach(function(s) {
-                       s.dispatchEvent(new CustomEvent('cbi-dropdown-close', {}));
-               });
-       },
-
-       handleClick: function(ev) {
-               var sb = ev.currentTarget;
-
-               if (!sb.hasAttribute('open')) {
-                       if (!matchesElem(ev.target, 'input'))
-                               this.openDropdown(sb);
-               }
-               else {
-                       var li = findParent(ev.target, 'li');
-                       if (li && li.parentNode.classList.contains('dropdown'))
-                               this.toggleItem(sb, li);
-                       else if (li && li.parentNode.classList.contains('preview'))
-                               this.closeDropdown(sb);
-               }
-
-               ev.preventDefault();
-               ev.stopPropagation();
-       },
-
-       handleKeydown: function(ev) {
-               var sb = ev.currentTarget;
-
-               if (matchesElem(ev.target, 'input'))
-                       return;
-
-               if (!sb.hasAttribute('open')) {
-                       switch (ev.keyCode) {
-                       case 37:
-                       case 38:
-                       case 39:
-                       case 40:
-                               this.openDropdown(sb);
-                               ev.preventDefault();
-                       }
-               }
-               else {
-                       var active = findParent(document.activeElement, 'li');
-
-                       switch (ev.keyCode) {
-                       case 27:
-                               this.closeDropdown(sb);
-                               break;
-
-                       case 13:
-                               if (active) {
-                                       if (!active.hasAttribute('selected'))
-                                               this.toggleItem(sb, active);
-                                       this.closeDropdown(sb);
-                                       ev.preventDefault();
-                               }
-                               break;
-
-                       case 32:
-                               if (active) {
-                                       this.toggleItem(sb, active);
-                                       ev.preventDefault();
-                               }
-                               break;
-
-                       case 38:
-                               if (active && active.previousElementSibling) {
-                                       this.setFocus(sb, active.previousElementSibling);
-                                       ev.preventDefault();
-                               }
-                               break;
-
-                       case 40:
-                               if (active && active.nextElementSibling) {
-                                       this.setFocus(sb, active.nextElementSibling);
-                                       ev.preventDefault();
-                               }
-                               break;
-                       }
-               }
-       },
-
-       handleDropdownClose: function(ev) {
-               var sb = ev.currentTarget;
-
-               this.closeDropdown(sb, true);
-       },
-
-       handleDropdownSelect: function(ev) {
-               var sb = ev.currentTarget,
-                   li = findParent(ev.target, 'li');
-
-               if (!li)
-                       return;
-
-               this.toggleItem(sb, li);
-               this.closeDropdown(sb, true);
-       },
-
-       handleMouseover: function(ev) {
-               var sb = ev.currentTarget;
-
-               if (!sb.hasAttribute('open'))
-                       return;
-
-               var li = findParent(ev.target, 'li');
-
-               if (li && li.parentNode.classList.contains('dropdown'))
-                       this.setFocus(sb, li);
-       },
-
-       handleFocus: function(ev) {
-               var sb = ev.currentTarget;
-
-               document.querySelectorAll('.cbi-dropdown[open]').forEach(function(s) {
-                       if (s !== sb || sb.hasAttribute('open'))
-                               s.dispatchEvent(new CustomEvent('cbi-dropdown-close', {}));
-               });
-       },
-
-       handleCanaryFocus: function(ev) {
-               this.closeDropdown(ev.currentTarget.parentNode);
-       },
-
-       handleCreateKeydown: function(ev) {
-               var input = ev.currentTarget,
-                   sb = findParent(input, '.cbi-dropdown');
-
-               switch (ev.keyCode) {
-               case 13:
-                       ev.preventDefault();
-
-                       if (input.classList.contains('cbi-input-invalid'))
-                               return;
-
-                       this.createItems(sb, input.value);
-                       input.value = '';
-                       input.blur();
-                       break;
-               }
-       },
-
-       handleCreateFocus: function(ev) {
-               var input = ev.currentTarget,
-                   cbox = findParent(input, 'li').querySelector('input[type="checkbox"]'),
-                   sb = findParent(input, '.cbi-dropdown');
-
-               if (cbox)
-                       cbox.checked = true;
-
-               sb.setAttribute('locked-in', '');
-       },
-
-       handleCreateBlur: function(ev) {
-               var input = ev.currentTarget,
-                   cbox = findParent(input, 'li').querySelector('input[type="checkbox"]'),
-                   sb = findParent(input, '.cbi-dropdown');
-
-               if (cbox)
-                       cbox.checked = false;
-
-               sb.removeAttribute('locked-in');
-       },
-
-       handleCreateClick: function(ev) {
-               ev.currentTarget.querySelector(this.create).focus();
-       }
-};
-
-function cbi_dropdown_init(sb) {
-       if (!(this instanceof cbi_dropdown_init))
-               return new cbi_dropdown_init(sb);
-
-       this.multi = sb.hasAttribute('multiple');
-       this.optional = sb.hasAttribute('optional');
-       this.placeholder = sb.getAttribute('placeholder') || '---';
-       this.display_items = parseInt(sb.getAttribute('display-items') || 3);
-       this.dropdown_items = parseInt(sb.getAttribute('dropdown-items') || 5);
-       this.create = sb.getAttribute('item-create') || '.create-item-input';
-       this.template = sb.getAttribute('item-template') || 'script[type="item-template"]';
-
-       var ul = sb.querySelector('ul'),
-           more = sb.appendChild(E('span', { class: 'more', tabindex: -1 }, '···')),
-           open = sb.appendChild(E('span', { class: 'open', tabindex: -1 }, '▾')),
-           canary = sb.appendChild(E('div')),
-           create = sb.querySelector(this.create),
-           ndisplay = this.display_items,
-           n = 0;
-
-       if (this.multi) {
-               var items = ul.querySelectorAll('li');
-
-               for (var i = 0; i < items.length; i++) {
-                       this.transformItem(sb, items[i]);
-
-                       if (items[i].hasAttribute('selected') && ndisplay-- > 0)
-                               items[i].setAttribute('display', n++);
-               }
-       }
-       else {
-               if (this.optional && !ul.querySelector('li[data-value=""]')) {
-                       var placeholder = E('li', { placeholder: '' }, this.placeholder);
-                       ul.firstChild ? ul.insertBefore(placeholder, ul.firstChild) : ul.appendChild(placeholder);
-               }
-
-               var items = ul.querySelectorAll('li'),
-                   sel = sb.querySelectorAll('[selected]');
-
-               sel.forEach(function(s) {
-                       s.removeAttribute('selected');
-               });
-
-               var s = sel[0] || items[0];
-               if (s) {
-                       s.setAttribute('selected', '');
-                       s.setAttribute('display', n++);
-               }
-
-               ndisplay--;
-       }
-
-       this.saveValues(sb, ul);
-
-       ul.setAttribute('tabindex', -1);
-       sb.setAttribute('tabindex', 0);
-
-       if (ndisplay < 0)
-               sb.setAttribute('more', '')
-       else
-               sb.removeAttribute('more');
-
-       if (ndisplay === this.display_items)
-               sb.setAttribute('empty', '')
-       else
-               sb.removeAttribute('empty');
-
-       more.innerHTML = (ndisplay === this.display_items) ? this.placeholder : '···';
-
-
-       sb.addEventListener('click', this.handleClick.bind(this));
-       sb.addEventListener('keydown', this.handleKeydown.bind(this));
-       sb.addEventListener('cbi-dropdown-close', this.handleDropdownClose.bind(this));
-       sb.addEventListener('cbi-dropdown-select', this.handleDropdownSelect.bind(this));
-
-       if ('ontouchstart' in window) {
-               sb.addEventListener('touchstart', function(ev) { ev.stopPropagation(); });
-               window.addEventListener('touchstart', this.closeAllDropdowns);
-       }
-       else {
-               sb.addEventListener('mouseover', this.handleMouseover.bind(this));
-               sb.addEventListener('focus', this.handleFocus.bind(this));
-
-               canary.addEventListener('focus', this.handleCanaryFocus.bind(this));
-
-               window.addEventListener('mouseover', this.setFocus);
-               window.addEventListener('click', this.closeAllDropdowns);
-       }
-
-       if (create) {
-               create.addEventListener('keydown', this.handleCreateKeydown.bind(this));
-               create.addEventListener('focus', this.handleCreateFocus.bind(this));
-               create.addEventListener('blur', this.handleCreateBlur.bind(this));
-
-               var li = findParent(create, 'li');
-
-               li.setAttribute('unselectable', '');
-               li.addEventListener('click', this.handleCreateClick.bind(this));
-       }
-}
-
-cbi_dropdown_init.prototype = CBIDropdown;
-
-function cbi_update_table(table, data, placeholder) {
-       var target = isElem(table) ? table : document.querySelector(table);
-
-       if (!isElem(target))
-               return;
-
-       target.querySelectorAll('.tr.table-titles, .cbi-section-table-titles').forEach(function(thead) {
-               var titles = [];
-
-               thead.querySelectorAll('.th').forEach(function(th) {
-                       titles.push(th);
-               });
-
-               if (Array.isArray(data)) {
-                       var n = 0, rows = target.querySelectorAll('.tr');
-
-                       data.forEach(function(row) {
-                               var trow = E('div', { 'class': 'tr' });
-
-                               for (var i = 0; i < titles.length; i++) {
-                                       var text = (titles[i].innerText || '').trim();
-                                       var td = trow.appendChild(E('div', {
-                                               'class': titles[i].className,
-                                               'data-title': (text !== '') ? text : null
-                                       }, row[i] || ''));
-
-                                       td.classList.remove('th');
-                                       td.classList.add('td');
-                               }
-
-                               trow.classList.add('cbi-rowstyle-%d'.format((n++ % 2) ? 2 : 1));
-
-                               if (rows[n])
-                                       target.replaceChild(trow, rows[n]);
-                               else
-                                       target.appendChild(trow);
-                       });
-
-                       while (rows[++n])
-                               target.removeChild(rows[n]);
-
-                       if (placeholder && target.firstElementChild === target.lastElementChild) {
-                               var trow = target.appendChild(E('div', { 'class': 'tr placeholder' }));
-                               var td = trow.appendChild(E('div', { 'class': titles[0].className }, placeholder));
-
-                               td.classList.remove('th');
-                               td.classList.add('td');
-                       }
-               }
-               else {
-                       thead.parentNode.style.display = 'none';
-
-                       thead.parentNode.querySelectorAll('.tr, .cbi-section-table-row').forEach(function(trow) {
-                               if (trow !== thead) {
-                                       var n = 0;
-                                       trow.querySelectorAll('.th, .td').forEach(function(td) {
-                                               if (n < titles.length) {
-                                                       var text = (titles[n++].innerText || '').trim();
-                                                       if (text !== '')
-                                                               td.setAttribute('data-title', text);
-                                               }
-                                       });
-                               }
-                       });
-
-                       thead.parentNode.style.display = '';
-               }
-       });
-}
-
-function showModal(title, children)
-{
-       return L.showModal(title, children);
-}
-
-function hideModal()
-{
-       return L.hideModal();
-}
-
-
-document.addEventListener('DOMContentLoaded', function() {
-       document.addEventListener('validation-failure', function(ev) {
-               if (ev.target === document.activeElement)
-                       L.showTooltip(ev);
-       });
-
-       document.addEventListener('validation-success', function(ev) {
-               if (ev.target === document.activeElement)
-                       L.hideTooltip(ev);
-       });
-
-       document.querySelectorAll('.table').forEach(cbi_update_table);
-});
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/add.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/add.gif
deleted file mode 100644 (file)
index 0888abf..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/add.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/apply.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/apply.gif
deleted file mode 100644 (file)
index 82ae7ed..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/apply.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/arrow.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/arrow.gif
deleted file mode 100644 (file)
index 10d797e..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/arrow.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/down.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/down.gif
deleted file mode 100644 (file)
index f0bb6a4..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/down.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/download.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/download.gif
deleted file mode 100644 (file)
index f99a538..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/download.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/edit.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/edit.gif
deleted file mode 100644 (file)
index e06e37c..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/edit.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/fieldadd.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/fieldadd.gif
deleted file mode 100644 (file)
index eebe0ff..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/fieldadd.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/file.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/file.gif
deleted file mode 100644 (file)
index 342a846..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/file.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/find.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/find.gif
deleted file mode 100644 (file)
index 9ae5e34..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/find.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/folder.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/folder.gif
deleted file mode 100644 (file)
index 22b583b..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/folder.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/help.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/help.gif
deleted file mode 100644 (file)
index 9dfa0e1..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/help.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/key.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/key.gif
deleted file mode 100644 (file)
index e3853e5..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/key.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/link.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/link.gif
deleted file mode 100644 (file)
index f0bb78d..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/link.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/reload.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/reload.gif
deleted file mode 100644 (file)
index 8268958..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/reload.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/remove.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/remove.gif
deleted file mode 100644 (file)
index bf43a0a..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/remove.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/reset.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/reset.gif
deleted file mode 100644 (file)
index c941c19..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/reset.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/save.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/save.gif
deleted file mode 100644 (file)
index 35e9499..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/save.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/up.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/up.gif
deleted file mode 100644 (file)
index e823417..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/up.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/user.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/user.gif
deleted file mode 100644 (file)
index dcb5c2a..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi/user.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/alias.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/alias.png
deleted file mode 100644 (file)
index 8772bba..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/alias.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/alias_disabled.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/alias_disabled.png
deleted file mode 100644 (file)
index 38d0531..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/alias_disabled.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/bridge.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/bridge.png
deleted file mode 100644 (file)
index 7faadec..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/bridge.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/bridge_disabled.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/bridge_disabled.png
deleted file mode 100644 (file)
index b3e620b..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/bridge_disabled.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/ethernet.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/ethernet.png
deleted file mode 100644 (file)
index e3d24f2..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/ethernet.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/ethernet_disabled.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/ethernet_disabled.png
deleted file mode 100644 (file)
index d8792df..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/ethernet_disabled.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/loading.gif b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/loading.gif
deleted file mode 100644 (file)
index 7154314..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/loading.gif and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/port_down.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/port_down.png
deleted file mode 100644 (file)
index 5a2b235..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/port_down.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/port_up.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/port_up.png
deleted file mode 100644 (file)
index 8105e77..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/port_up.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-0-25.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-0-25.png
deleted file mode 100644 (file)
index b3a8118..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-0-25.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-0.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-0.png
deleted file mode 100644 (file)
index 333b155..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-0.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-25-50.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-25-50.png
deleted file mode 100644 (file)
index b465de3..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-25-50.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-50-75.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-50-75.png
deleted file mode 100644 (file)
index cd7bcaf..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-50-75.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-75-100.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-75-100.png
deleted file mode 100644 (file)
index f7a3658..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-75-100.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-none.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-none.png
deleted file mode 100644 (file)
index 4a11356..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/signal-none.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/switch.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/switch.png
deleted file mode 100644 (file)
index be99b19..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/switch.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/switch_disabled.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/switch_disabled.png
deleted file mode 100644 (file)
index 54588d2..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/switch_disabled.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/tunnel.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/tunnel.png
deleted file mode 100644 (file)
index 63eabfe..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/tunnel.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/tunnel_disabled.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/tunnel_disabled.png
deleted file mode 100644 (file)
index ca79d81..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/tunnel_disabled.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/vlan.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/vlan.png
deleted file mode 100644 (file)
index be99b19..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/vlan.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/vlan_disabled.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/vlan_disabled.png
deleted file mode 100644 (file)
index 54588d2..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/vlan_disabled.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/wifi.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/wifi.png
deleted file mode 100644 (file)
index 80a23e8..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/wifi.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/wifi_disabled.png b/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/wifi_disabled.png
deleted file mode 100644 (file)
index e989a2b..0000000
Binary files a/package/luci/modules/luci-base/htdocs/luci-static/resources/icons/wifi_disabled.png and /dev/null differ
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/luci.js b/package/luci/modules/luci-base/htdocs/luci-static/resources/luci.js
deleted file mode 100644 (file)
index 4cb8bf4..0000000
+++ /dev/null
@@ -1,511 +0,0 @@
-(function(window, document, undefined) {
-       var modalDiv = null,
-           tooltipDiv = null,
-           tooltipTimeout = null,
-           dummyElem = null,
-           domParser = null;
-
-       LuCI.prototype = {
-               /* URL construction helpers */
-               path: function(prefix, parts) {
-                       var url = [ prefix || '' ];
-
-                       for (var i = 0; i < parts.length; i++)
-                               if (/^(?:[a-zA-Z0-9_.%,;-]+\/)*[a-zA-Z0-9_.%,;-]+$/.test(parts[i]))
-                                       url.push('/', parts[i]);
-
-                       if (url.length === 1)
-                               url.push('/');
-
-                       return url.join('');
-               },
-
-               url: function() {
-                       return this.path(this.env.scriptname, arguments);
-               },
-
-               resource: function() {
-                       return this.path(this.env.resource, arguments);
-               },
-
-               location: function() {
-                       return this.path(this.env.scriptname, this.env.requestpath);
-               },
-
-
-               /* HTTP resource fetching */
-               get: function(url, args, cb) {
-                       return this.poll(0, url, args, cb, false);
-               },
-
-               post: function(url, args, cb) {
-                       return this.poll(0, url, args, cb, true);
-               },
-
-               poll: function(interval, url, args, cb, post) {
-                       var data = post ? { token: this.env.token } : null;
-
-                       if (!/^(?:\/|\S+:\/\/)/.test(url))
-                               url = this.url(url);
-
-                       if (typeof(args) === 'object' && args !== null) {
-                               data = data || {};
-
-                               for (var key in args)
-                                       if (args.hasOwnProperty(key))
-                                               switch (typeof(args[key])) {
-                                               case 'string':
-                                               case 'number':
-                                               case 'boolean':
-                                                       data[key] = args[key];
-                                                       break;
-
-                                               case 'object':
-                                                       data[key] = JSON.stringify(args[key]);
-                                                       break;
-                                               }
-                       }
-
-                       if (interval > 0)
-                               return XHR.poll(interval, url, data, cb, post);
-                       else if (post)
-                               return XHR.post(url, data, cb);
-                       else
-                               return XHR.get(url, data, cb);
-               },
-
-               stop: function(entry) { XHR.stop(entry) },
-               halt: function() { XHR.halt() },
-               run: function() { XHR.run() },
-
-
-               /* Modal dialog */
-               showModal: function(title, children) {
-                       var dlg = modalDiv.firstElementChild;
-
-                       dlg.setAttribute('class', 'modal');
-
-                       this.dom.content(dlg, this.dom.create('h4', {}, title));
-                       this.dom.append(dlg, children);
-
-                       document.body.classList.add('modal-overlay-active');
-
-                       return dlg;
-               },
-
-               hideModal: function() {
-                       document.body.classList.remove('modal-overlay-active');
-               },
-
-
-               /* Tooltip */
-               showTooltip: function(ev) {
-                       var target = findParent(ev.target, '[data-tooltip]');
-
-                       if (!target)
-                               return;
-
-                       if (tooltipTimeout !== null) {
-                               window.clearTimeout(tooltipTimeout);
-                               tooltipTimeout = null;
-                       }
-
-                       var rect = target.getBoundingClientRect(),
-                           x = rect.left              + window.pageXOffset,
-                           y = rect.top + rect.height + window.pageYOffset;
-
-                       tooltipDiv.className = 'cbi-tooltip';
-                       tooltipDiv.innerHTML = '▲ ';
-                       tooltipDiv.firstChild.data += target.getAttribute('data-tooltip');
-
-                       if (target.hasAttribute('data-tooltip-style'))
-                               tooltipDiv.classList.add(target.getAttribute('data-tooltip-style'));
-
-                       if ((y + tooltipDiv.offsetHeight) > (window.innerHeight + window.pageYOffset)) {
-                               y -= (tooltipDiv.offsetHeight + target.offsetHeight);
-                               tooltipDiv.firstChild.data = '▼ ' + tooltipDiv.firstChild.data.substr(2);
-                       }
-
-                       tooltipDiv.style.top = y + 'px';
-                       tooltipDiv.style.left = x + 'px';
-                       tooltipDiv.style.opacity = 1;
-
-                       tooltipDiv.dispatchEvent(new CustomEvent('tooltip-open', {
-                               bubbles: true,
-                               detail: { target: target }
-                       }));
-               },
-
-               hideTooltip: function(ev) {
-                       if (ev.target === tooltipDiv || ev.relatedTarget === tooltipDiv ||
-                           tooltipDiv.contains(ev.target) || tooltipDiv.contains(ev.relatedTarget))
-                               return;
-
-                       if (tooltipTimeout !== null) {
-                               window.clearTimeout(tooltipTimeout);
-                               tooltipTimeout = null;
-                       }
-
-                       tooltipDiv.style.opacity = 0;
-                       tooltipTimeout = window.setTimeout(function() { tooltipDiv.removeAttribute('style'); }, 250);
-
-                       tooltipDiv.dispatchEvent(new CustomEvent('tooltip-close', { bubbles: true }));
-               },
-
-
-               /* Widget helper */
-               itemlist: function(node, items, separators) {
-                       var children = [];
-
-                       if (!Array.isArray(separators))
-                               separators = [ separators || E('br') ];
-
-                       for (var i = 0; i < items.length; i += 2) {
-                               if (items[i+1] !== null && items[i+1] !== undefined) {
-                                       var sep = separators[(i/2) % separators.length],
-                                           cld = [];
-
-                                       children.push(E('span', { class: 'nowrap' }, [
-                                               items[i] ? E('strong', items[i] + ': ') : '',
-                                               items[i+1]
-                                       ]));
-
-                                       if ((i+2) < items.length)
-                                               children.push(this.dom.elem(sep) ? sep.cloneNode(true) : sep);
-                               }
-                       }
-
-                       this.dom.content(node, children);
-
-                       return node;
-               }
-       };
-
-       /* Tabs */
-       LuCI.prototype.tabs = {
-               init: function() {
-                       var groups = [], prevGroup = null, currGroup = null;
-
-                       document.querySelectorAll('[data-tab]').forEach(function(tab) {
-                               var parent = tab.parentNode;
-
-                               if (!parent.hasAttribute('data-tab-group'))
-                                       parent.setAttribute('data-tab-group', groups.length);
-
-                               currGroup = +parent.getAttribute('data-tab-group');
-
-                               if (currGroup !== prevGroup) {
-                                       prevGroup = currGroup;
-
-                                       if (!groups[currGroup])
-                                               groups[currGroup] = [];
-                               }
-
-                               groups[currGroup].push(tab);
-                       });
-
-                       for (var i = 0; i < groups.length; i++)
-                               this.initTabGroup(groups[i]);
-
-                       document.addEventListener('dependency-update', this.updateTabs.bind(this));
-
-                       this.updateTabs();
-
-                       if (!groups.length)
-                               this.setActiveTabId(-1, -1);
-               },
-
-               initTabGroup: function(panes) {
-                       if (!Array.isArray(panes) || panes.length === 0)
-                               return;
-
-                       var menu = E('ul', { 'class': 'cbi-tabmenu' }),
-                           group = panes[0].parentNode,
-                           groupId = +group.getAttribute('data-tab-group'),
-                           selected = null;
-
-                       for (var i = 0, pane; pane = panes[i]; i++) {
-                               var name = pane.getAttribute('data-tab'),
-                                   title = pane.getAttribute('data-tab-title'),
-                                   active = pane.getAttribute('data-tab-active') === 'true';
-
-                               menu.appendChild(E('li', {
-                                       'class': active ? 'cbi-tab' : 'cbi-tab-disabled',
-                                       'data-tab': name
-                               }, E('a', {
-                                       'href': '#',
-                                       'click': this.switchTab.bind(this)
-                               }, title)));
-
-                               if (active)
-                                       selected = i;
-                       }
-
-                       group.parentNode.insertBefore(menu, group);
-
-                       if (selected === null) {
-                               selected = this.getActiveTabId(groupId);
-
-                               if (selected < 0 || selected >= panes.length)
-                                       selected = 0;
-
-                               menu.childNodes[selected].classList.add('cbi-tab');
-                               menu.childNodes[selected].classList.remove('cbi-tab-disabled');
-                               panes[selected].setAttribute('data-tab-active', 'true');
-
-                               this.setActiveTabId(groupId, selected);
-                       }
-               },
-
-               getActiveTabState: function() {
-                       var page = document.body.getAttribute('data-page');
-
-                       try {
-                               var val = JSON.parse(window.sessionStorage.getItem('tab'));
-                               if (val.page === page && Array.isArray(val.groups))
-                                       return val;
-                       }
-                       catch(e) {}
-
-                       window.sessionStorage.removeItem('tab');
-                       return { page: page, groups: [] };
-               },
-
-               getActiveTabId: function(groupId) {
-                       return +this.getActiveTabState().groups[groupId] || 0;
-               },
-
-               setActiveTabId: function(groupId, tabIndex) {
-                       try {
-                               var state = this.getActiveTabState();
-                                   state.groups[groupId] = tabIndex;
-
-                           window.sessionStorage.setItem('tab', JSON.stringify(state));
-                       }
-                       catch (e) { return false; }
-
-                       return true;
-               },
-
-               updateTabs: function(ev) {
-                       document.querySelectorAll('[data-tab-title]').forEach(function(pane) {
-                               var menu = pane.parentNode.previousElementSibling,
-                                   tab = menu.querySelector('[data-tab="%s"]'.format(pane.getAttribute('data-tab'))),
-                                   n_errors = pane.querySelectorAll('.cbi-input-invalid').length;
-
-                               if (!pane.firstElementChild) {
-                                       tab.style.display = 'none';
-                                       tab.classList.remove('flash');
-                               }
-                               else if (tab.style.display === 'none') {
-                                       tab.style.display = '';
-                                       requestAnimationFrame(function() { tab.classList.add('flash') });
-                               }
-
-                               if (n_errors) {
-                                       tab.setAttribute('data-errors', n_errors);
-                                       tab.setAttribute('data-tooltip', _('%d invalid field(s)').format(n_errors));
-                                       tab.setAttribute('data-tooltip-style', 'error');
-                               }
-                               else {
-                                       tab.removeAttribute('data-errors');
-                                       tab.removeAttribute('data-tooltip');
-                               }
-                       });
-               },
-
-               switchTab: function(ev) {
-                       var tab = ev.target.parentNode,
-                           name = tab.getAttribute('data-tab'),
-                           menu = tab.parentNode,
-                           group = menu.nextElementSibling,
-                           groupId = +group.getAttribute('data-tab-group'),
-                           index = 0;
-
-                       ev.preventDefault();
-
-                       if (!tab.classList.contains('cbi-tab-disabled'))
-                               return;
-
-                       menu.querySelectorAll('[data-tab]').forEach(function(tab) {
-                               tab.classList.remove('cbi-tab');
-                               tab.classList.remove('cbi-tab-disabled');
-                               tab.classList.add(
-                                       tab.getAttribute('data-tab') === name ? 'cbi-tab' : 'cbi-tab-disabled');
-                       });
-
-                       group.childNodes.forEach(function(pane) {
-                               if (L.dom.matches(pane, '[data-tab]')) {
-                                       if (pane.getAttribute('data-tab') === name) {
-                                               pane.setAttribute('data-tab-active', 'true');
-                                               L.tabs.setActiveTabId(groupId, index);
-                                       }
-                                       else {
-                                               pane.setAttribute('data-tab-active', 'false');
-                                       }
-
-                                       index++;
-                               }
-                       });
-               }
-       };
-
-       /* DOM manipulation */
-       LuCI.prototype.dom = {
-               elem: function(e) {
-                       return (typeof(e) === 'object' && e !== null && 'nodeType' in e);
-               },
-
-               parse: function(s) {
-                       var elem;
-
-                       try {
-                               domParser = domParser || new DOMParser();
-                               elem = domParser.parseFromString(s, 'text/html').body.firstChild;
-                       }
-                       catch(e) {}
-
-                       if (!elem) {
-                               try {
-                                       dummyElem = dummyElem || document.createElement('div');
-                                       dummyElem.innerHTML = s;
-                                       elem = dummyElem.firstChild;
-                               }
-                               catch (e) {}
-                       }
-
-                       return elem || null;
-               },
-
-               matches: function(node, selector) {
-                       var m = this.elem(node) ? node.matches || node.msMatchesSelector : null;
-                       return m ? m.call(node, selector) : false;
-               },
-
-               parent: function(node, selector) {
-                       if (this.elem(node) && node.closest)
-                               return node.closest(selector);
-
-                       while (this.elem(node))
-                               if (this.matches(node, selector))
-                                       return node;
-                               else
-                                       node = node.parentNode;
-
-                       return null;
-               },
-
-               append: function(node, children) {
-                       if (!this.elem(node))
-                               return null;
-
-                       if (Array.isArray(children)) {
-                               for (var i = 0; i < children.length; i++)
-                                       if (this.elem(children[i]))
-                                               node.appendChild(children[i]);
-                                       else if (children !== null && children !== undefined)
-                                               node.appendChild(document.createTextNode('' + children[i]));
-
-                               return node.lastChild;
-                       }
-                       else if (typeof(children) === 'function') {
-                               return this.append(node, children(node));
-                       }
-                       else if (this.elem(children)) {
-                               return node.appendChild(children);
-                       }
-                       else if (children !== null && children !== undefined) {
-                               node.innerHTML = '' + children;
-                               return node.lastChild;
-                       }
-
-                       return null;
-               },
-
-               content: function(node, children) {
-                       if (!this.elem(node))
-                               return null;
-
-                       while (node.firstChild)
-                               node.removeChild(node.firstChild);
-
-                       return this.append(node, children);
-               },
-
-               attr: function(node, key, val) {
-                       if (!this.elem(node))
-                               return null;
-
-                       var attr = null;
-
-                       if (typeof(key) === 'object' && key !== null)
-                               attr = key;
-                       else if (typeof(key) === 'string')
-                               attr = {}, attr[key] = val;
-
-                       for (key in attr) {
-                               if (!attr.hasOwnProperty(key) || attr[key] === null || attr[key] === undefined)
-                                       continue;
-
-                               switch (typeof(attr[key])) {
-                               case 'function':
-                                       node.addEventListener(key, attr[key]);
-                                       break;
-
-                               case 'object':
-                                       node.setAttribute(key, JSON.stringify(attr[key]));
-                                       break;
-
-                               default:
-                                       node.setAttribute(key, attr[key]);
-                               }
-                       }
-               },
-
-               create: function() {
-                       var html = arguments[0],
-                           attr = (arguments[1] instanceof Object && !Array.isArray(arguments[1])) ? arguments[1] : null,
-                           data = attr ? arguments[2] : arguments[1],
-                           elem;
-
-                       if (this.elem(html))
-                               elem = html;
-                       else if (html.charCodeAt(0) === 60)
-                               elem = this.parse(html);
-                       else
-                               elem = document.createElement(html);
-
-                       if (!elem)
-                               return null;
-
-                       this.attr(elem, attr);
-                       this.append(elem, data);
-
-                       return elem;
-               }
-       };
-
-       /* Setup */
-       LuCI.prototype.setupDOM = function(ev) {
-               this.tabs.init();
-       };
-
-       function LuCI(env) {
-               this.env = env;
-
-               modalDiv = document.body.appendChild(
-                       this.dom.create('div', { id: 'modal_overlay' },
-                               this.dom.create('div', { class: 'modal', role: 'dialog', 'aria-modal': true })));
-
-               tooltipDiv = document.body.appendChild(this.dom.create('div', { class: 'cbi-tooltip' }));
-
-               document.addEventListener('mouseover', this.showTooltip.bind(this), true);
-               document.addEventListener('mouseout', this.hideTooltip.bind(this), true);
-               document.addEventListener('focus', this.showTooltip.bind(this), true);
-               document.addEventListener('blur', this.hideTooltip.bind(this), true);
-
-               document.addEventListener('DOMContentLoaded', this.setupDOM.bind(this));
-       }
-
-       window.LuCI = LuCI;
-})(window, document);
diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/xhr.js b/package/luci/modules/luci-base/htdocs/luci-static/resources/xhr.js
deleted file mode 100644 (file)
index 3133898..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * xhr.js - XMLHttpRequest helper class
- * (c) 2008-2018 Jo-Philipp Wich <jo@mein.io>
- */
-
-XHR.prototype = {
-       _encode: function(obj) {
-               obj = obj ? obj : { };
-               obj['_'] = Math.random();
-
-               if (typeof obj == 'object') {
-                       var code = '';
-                       var self = this;
-
-                       for (var k in obj)
-                               code += (code ? '&' : '') +
-                                       k + '=' + encodeURIComponent(obj[k]);
-
-                       return code;
-               }
-
-               return obj;
-       },
-
-       _response: function(callback, ts) {
-               if (this._xmlHttp.readyState !== 4)
-                       return;
-
-               var status = this._xmlHttp.status,
-                   login = this._xmlHttp.getResponseHeader("X-LuCI-Login-Required"),
-                   type = this._xmlHttp.getResponseHeader("Content-Type"),
-                   json = null;
-
-               if (status === 403 && login === 'yes') {
-                       XHR.halt();
-
-                       showModal(_('Session expired'), [
-                               E('div', { class: 'alert-message warning' },
-                                       _('A new login is required since the authentication session expired.')),
-                               E('div', { class: 'right' },
-                                       E('div', {
-                                               class: 'btn primary',
-                                               click: function() {
-                                                       var loc = window.location;
-                                                       window.location = loc.protocol + '//' + loc.host + loc.pathname + loc.search;
-                                               }
-                                       }, _('To login…')))
-                       ]);
-               }
-               else if (type && type.toLowerCase().match(/^application\/json\b/)) {
-                       try {
-                               json = JSON.parse(this._xmlHttp.responseText);
-                       }
-                       catch(e) {
-                               json = null;
-                       }
-               }
-
-               callback(this._xmlHttp, json, Date.now() - ts);
-       },
-
-       busy: function() {
-               if (!this._xmlHttp)
-                       return false;
-
-               switch (this._xmlHttp.readyState)
-               {
-                       case 1:
-                       case 2:
-                       case 3:
-                               return true;
-
-                       default:
-                               return false;
-               }
-       },
-
-       abort: function() {
-               if (this.busy())
-                       this._xmlHttp.abort();
-       },
-
-       get: function(url, data, callback, timeout) {
-               this._xmlHttp = new XMLHttpRequest();
-
-               var xhr = this._xmlHttp,
-                   code = this._encode(data);
-
-               url = location.protocol + '//' + location.host + url;
-
-               if (code)
-                       if (url.substr(url.length-1,1) == '&')
-                               url += code;
-                       else
-                               url += '?' + code;
-
-               xhr.open('GET', url, true);
-
-               if (!isNaN(timeout))
-                       xhr.timeout = timeout;
-
-               xhr.onreadystatechange = this._response.bind(this, callback, Date.now());
-               xhr.send(null);
-       },
-
-       post: function(url, data, callback, timeout) {
-               this._xmlHttp = new XMLHttpRequest();
-
-               var xhr = this._xmlHttp,
-                   code = this._encode(data);
-
-               xhr.open('POST', url, true);
-
-               if (!isNaN(timeout))
-                       xhr.timeout = timeout;
-
-               xhr.onreadystatechange = this._response.bind(this, callback, Date.now());
-               xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
-               xhr.send(code);
-       },
-
-       cancel: function() {
-               this._xmlHttp.onreadystatechange = function() {};
-               this._xmlHttp.abort();
-       },
-
-       send_form: function(form, callback, extra_values) {
-               var code = '';
-
-               for (var i = 0; i < form.elements.length; i++) {
-                       var e = form.elements[i];
-
-                       if (e.options) {
-                               code += (code ? '&' : '') +
-                                       form.elements[i].name + '=' + encodeURIComponent(
-                                               e.options[e.selectedIndex].value
-                                       );
-                       }
-                       else if (e.length) {
-                               for (var j = 0; j < e.length; j++)
-                                       if (e[j].name) {
-                                               code += (code ? '&' : '') +
-                                                       e[j].name + '=' + encodeURIComponent(e[j].value);
-                                       }
-                       }
-                       else {
-                               code += (code ? '&' : '') +
-                                       e.name + '=' + encodeURIComponent(e.value);
-                       }
-               }
-
-               if (typeof extra_values == 'object')
-                       for (var key in extra_values)
-                               code += (code ? '&' : '') +
-                                       key + '=' + encodeURIComponent(extra_values[key]);
-
-               return (form.method == 'get'
-                       ? this.get(form.getAttribute('action'), code, callback)
-                       : this.post(form.getAttribute('action'), code, callback));
-       }
-}
-
-XHR.get = function(url, data, callback) {
-       (new XHR()).get(url, data, callback);
-}
-
-XHR.post = function(url, data, callback) {
-       (new XHR()).post(url, data, callback);
-}
-
-XHR.poll = function(interval, url, data, callback, post) {
-       if (isNaN(interval) || interval <= 0)
-               interval = L.env.pollinterval;
-
-       if (!XHR._q) {
-               XHR._t = 0;
-               XHR._q = [ ];
-               XHR._r = function() {
-                       for (var i = 0, e = XHR._q[0]; i < XHR._q.length; e = XHR._q[++i])
-                       {
-                               if (!(XHR._t % e.interval) && !e.xhr.busy())
-                                       e.xhr[post ? 'post' : 'get'](e.url, e.data, e.callback, e.interval * 1000 * 5 - 5);
-                       }
-
-                       XHR._t++;
-               };
-       }
-
-       var e = {
-               interval: interval,
-               callback: callback,
-               url:      url,
-               data:     data,
-               xhr:      new XHR()
-       };
-
-       XHR._q.push(e);
-
-       return e;
-}
-
-XHR.stop = function(e) {
-       for (var i = 0; XHR._q && XHR._q[i]; i++) {
-               if (XHR._q[i] === e) {
-                       e.xhr.cancel();
-                       XHR._q.splice(i, 1);
-                       return true;
-               }
-       }
-
-       return false;
-}
-
-XHR.halt = function() {
-       if (XHR._i) {
-               /* show & set poll indicator */
-               try {
-                       document.getElementById('xhr_poll_status').style.display = '';
-                       document.getElementById('xhr_poll_status_on').style.display = 'none';
-                       document.getElementById('xhr_poll_status_off').style.display = '';
-               } catch(e) { }
-
-               window.clearInterval(XHR._i);
-               XHR._i = null;
-       }
-}
-
-XHR.run = function() {
-       if (XHR._r && !XHR._i) {
-               /* show & set poll indicator */
-               try {
-                       document.getElementById('xhr_poll_status').style.display = '';
-                       document.getElementById('xhr_poll_status_on').style.display = '';
-                       document.getElementById('xhr_poll_status_off').style.display = 'none';
-               } catch(e) { }
-
-               /* kick first round manually to prevent one second lag when setting up
-                * the poll interval */
-               XHR._r();
-               XHR._i = window.setInterval(XHR._r, 1000);
-       }
-}
-
-XHR.running = function() {
-       return !!(XHR._r && XHR._i);
-}
-
-function XHR() {}
-
-document.addEventListener('DOMContentLoaded', XHR.run);
diff --git a/package/luci/modules/luci-base/luasrc/cacheloader.lua b/package/luci/modules/luci-base/luasrc/cacheloader.lua
deleted file mode 100644 (file)
index 11e5f69..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local config = require "luci.config"
-local ccache = require "luci.ccache"
-
-module "luci.cacheloader"
-
-if config.ccache and config.ccache.enable == "1" then
-       ccache.cache_ondemand()
-end
\ No newline at end of file
diff --git a/package/luci/modules/luci-base/luasrc/cbi.lua b/package/luci/modules/luci-base/luasrc/cbi.lua
deleted file mode 100644 (file)
index 971830f..0000000
+++ /dev/null
@@ -1,1965 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.cbi", package.seeall)
-
-require("luci.template")
-local util = require("luci.util")
-require("luci.http")
-
-
---local event      = require "luci.sys.event"
-local fs         = require("nixio.fs")
-local uci        = require("luci.model.uci")
-local datatypes  = require("luci.cbi.datatypes")
-local dispatcher = require("luci.dispatcher")
-local class      = util.class
-local instanceof = util.instanceof
-
-FORM_NODATA  =  0
-FORM_PROCEED =  0
-FORM_VALID   =  1
-FORM_DONE       =  1
-FORM_INVALID = -1
-FORM_CHANGED =  2
-FORM_SKIP    =  4
-
-AUTO = true
-
-CREATE_PREFIX = "cbi.cts."
-REMOVE_PREFIX = "cbi.rts."
-RESORT_PREFIX = "cbi.sts."
-FEXIST_PREFIX = "cbi.cbe."
-
--- Loads a CBI map from given file, creating an environment and returns it
-function load(cbimap, ...)
-       local fs   = require "nixio.fs"
-       local i18n = require "luci.i18n"
-       require("luci.config")
-       require("luci.util")
-
-       local upldir = "/etc/luci-uploads/"
-       local cbidir = luci.util.libpath() .. "/model/cbi/"
-       local func, err
-
-       if fs.access(cbidir..cbimap..".lua") then
-               func, err = loadfile(cbidir..cbimap..".lua")
-       elseif fs.access(cbimap) then
-               func, err = loadfile(cbimap)
-       else
-               func, err = nil, "Model '" .. cbimap .. "' not found!"
-       end
-
-       assert(func, err)
-
-       local env = {
-               translate=i18n.translate,
-               translatef=i18n.translatef,
-               arg={...}
-       }
-
-       setfenv(func, setmetatable(env, {__index =
-               function(tbl, key)
-                       return rawget(tbl, key) or _M[key] or _G[key]
-               end}))
-
-       local maps       = { func() }
-       local uploads    = { }
-       local has_upload = false
-
-       for i, map in ipairs(maps) do
-               if not instanceof(map, Node) then
-                       error("CBI map returns no valid map object!")
-                       return nil
-               else
-                       map:prepare()
-                       if map.upload_fields then
-                               has_upload = true
-                               for _, field in ipairs(map.upload_fields) do
-                                       uploads[
-                                               field.config .. '.' ..
-                                               (field.section.sectiontype or '1') .. '.' ..
-                                               field.option
-                                       ] = true
-                               end
-                       end
-               end
-       end
-
-       if has_upload then
-               local uci = luci.model.uci.cursor()
-               local prm = luci.http.context.request.message.params
-               local fd, cbid
-
-               luci.http.setfilehandler(
-                       function( field, chunk, eof )
-                               if not field then return end
-                               if field.name and not cbid then
-                                       local c, s, o = field.name:gmatch(
-                                               "cbid%.([^%.]+)%.([^%.]+)%.([^%.]+)"
-                                       )()
-
-                                       if c and s and o then
-                                               local t = uci:get( c, s ) or s
-                                               if uploads[c.."."..t.."."..o] then
-                                                       local path = upldir .. field.name
-                                                       fd = io.open(path, "w")
-                                                       if fd then
-                                                               cbid = field.name
-                                                               prm[cbid] = path
-                                                       end
-                                               end
-                                       end
-                               end
-
-                               if field.name == cbid and fd then
-                                       fd:write(chunk)
-                               end
-
-                               if eof and fd then
-                                       fd:close()
-                                       fd   = nil
-                                       cbid = nil
-                               end
-                       end
-               )
-       end
-
-       return maps
-end
-
---
--- Compile a datatype specification into a parse tree for evaluation later on
---
-local cdt_cache = { }
-
-function compile_datatype(code)
-       local i
-       local pos = 0
-       local esc = false
-       local depth = 0
-       local stack = { }
-
-       for i = 1, #code+1 do
-               local byte = code:byte(i) or 44
-               if esc then
-                       esc = false
-               elseif byte == 92 then
-                       esc = true
-               elseif byte == 40 or byte == 44 then
-                       if depth <= 0 then
-                               if pos < i then
-                                       local label = code:sub(pos, i-1)
-                                               :gsub("\\(.)", "%1")
-                                               :gsub("^%s+", "")
-                                               :gsub("%s+$", "")
-
-                                       if #label > 0 and tonumber(label) then
-                                               stack[#stack+1] = tonumber(label)
-                                       elseif label:match("^'.*'$") or label:match('^".*"$') then
-                                               stack[#stack+1] = label:gsub("[\"'](.*)[\"']", "%1")
-                                       elseif type(datatypes[label]) == "function" then
-                                               stack[#stack+1] = datatypes[label]
-                                               stack[#stack+1] = { }
-                                       else
-                                               error("Datatype error, bad token %q" % label)
-                                       end
-                               end
-                               pos = i + 1
-                       end
-                       depth = depth + (byte == 40 and 1 or 0)
-               elseif byte == 41 then
-                       depth = depth - 1
-                       if depth <= 0 then
-                               if type(stack[#stack-1]) ~= "function" then
-                                       error("Datatype error, argument list follows non-function")
-                               end
-                               stack[#stack] = compile_datatype(code:sub(pos, i-1))
-                               pos = i + 1
-                       end
-               end
-       end
-
-       return stack
-end
-
-function verify_datatype(dt, value)
-       if dt and #dt > 0 then
-               if not cdt_cache[dt] then
-                       local c = compile_datatype(dt)
-                       if c and type(c[1]) == "function" then
-                               cdt_cache[dt] = c
-                       else
-                               error("Datatype error, not a function expression")
-                       end
-               end
-               if cdt_cache[dt] then
-                       return cdt_cache[dt][1](value, unpack(cdt_cache[dt][2]))
-               end
-       end
-       return true
-end
-
-
--- Node pseudo abstract class
-Node = class()
-
-function Node.__init__(self, title, description)
-       self.children = {}
-       self.title = title or ""
-       self.description = description or ""
-       self.template = "cbi/node"
-end
-
--- hook helper
-function Node._run_hook(self, hook)
-       if type(self[hook]) == "function" then
-               return self[hook](self)
-       end
-end
-
-function Node._run_hooks(self, ...)
-       local f
-       local r = false
-       for _, f in ipairs(arg) do
-               if type(self[f]) == "function" then
-                       self[f](self)
-                       r = true
-               end
-       end
-       return r
-end
-
--- Prepare nodes
-function Node.prepare(self, ...)
-       for k, child in ipairs(self.children) do
-               child:prepare(...)
-       end
-end
-
--- Append child nodes
-function Node.append(self, obj)
-       table.insert(self.children, obj)
-end
-
--- Parse this node and its children
-function Node.parse(self, ...)
-       for k, child in ipairs(self.children) do
-               child:parse(...)
-       end
-end
-
--- Render this node
-function Node.render(self, scope)
-       scope = scope or {}
-       scope.self = self
-
-       luci.template.render(self.template, scope)
-end
-
--- Render the children
-function Node.render_children(self, ...)
-       local k, node
-       for k, node in ipairs(self.children) do
-               node.last_child = (k == #self.children)
-               node.index = k
-               node:render(...)
-       end
-end
-
-
---[[
-A simple template element
-]]--
-Template = class(Node)
-
-function Template.__init__(self, template)
-       Node.__init__(self)
-       self.template = template
-end
-
-function Template.render(self)
-       luci.template.render(self.template, {self=self})
-end
-
-function Template.parse(self, readinput)
-       self.readinput = (readinput ~= false)
-       return Map.formvalue(self, "cbi.submit") and FORM_DONE or FORM_NODATA
-end
-
-
---[[
-Map - A map describing a configuration file
-]]--
-Map = class(Node)
-
-function Map.__init__(self, config, ...)
-       Node.__init__(self, ...)
-
-       self.config = config
-       self.parsechain = {self.config}
-       self.template = "cbi/map"
-       self.apply_on_parse = nil
-       self.readinput = true
-       self.proceed = false
-       self.flow = {}
-
-       self.uci = uci.cursor()
-       self.save = true
-
-       self.changed = false
-
-       local path = "%s/%s" %{ self.uci:get_confdir(), self.config }
-       if fs.stat(path, "type") ~= "reg" then
-               fs.writefile(path, "")
-       end
-
-       local ok, err = self.uci:load(self.config)
-       if not ok then
-               local url = dispatcher.build_url(unpack(dispatcher.context.request))
-               local source = self:formvalue("cbi.source")
-               if type(source) == "string" then
-                       fs.writefile(path, source:gsub("\r\n", "\n"))
-                       ok, err = self.uci:load(self.config)
-                       if ok then
-                               luci.http.redirect(url)
-                       end
-               end
-               self.save = false
-       end
-
-       if not ok then
-               self.template   = "cbi/error"
-               self.error      = err
-               self.source     = fs.readfile(path) or ""
-               self.pageaction = false
-       end
-end
-
-function Map.formvalue(self, key)
-       return self.readinput and luci.http.formvalue(key) or nil
-end
-
-function Map.formvaluetable(self, key)
-       return self.readinput and luci.http.formvaluetable(key) or {}
-end
-
-function Map.get_scheme(self, sectiontype, option)
-       if not option then
-               return self.scheme and self.scheme.sections[sectiontype]
-       else
-               return self.scheme and self.scheme.variables[sectiontype]
-                and self.scheme.variables[sectiontype][option]
-       end
-end
-
-function Map.submitstate(self)
-       return self:formvalue("cbi.submit")
-end
-
--- Chain foreign config
-function Map.chain(self, config)
-       table.insert(self.parsechain, config)
-end
-
-function Map.state_handler(self, state)
-       return state
-end
-
--- Use optimized UCI writing
-function Map.parse(self, readinput, ...)
-       if self:formvalue("cbi.skip") then
-               self.state = FORM_SKIP
-       elseif not self.save then
-               self.state = FORM_INVALID
-       elseif not self:submitstate() then
-               self.state = FORM_NODATA
-       end
-
-       -- Back out early to prevent unauthorized changes on the subsequent parse
-       if self.state ~= nil then
-               return self:state_handler(self.state)
-       end
-
-       self.readinput = (readinput ~= false)
-       self:_run_hooks("on_parse")
-
-       Node.parse(self, ...)
-
-       if self.save then
-               self:_run_hooks("on_save", "on_before_save")
-               local i, config
-               for i, config in ipairs(self.parsechain) do
-                       self.uci:save(config)
-               end
-               self:_run_hooks("on_after_save")
-               if (not self.proceed and self.flow.autoapply) or luci.http.formvalue("cbi.apply") then
-                       self:_run_hooks("on_before_commit")
-                       if self.apply_on_parse == false then
-                               for i, config in ipairs(self.parsechain) do
-                                       self.uci:commit(config)
-                               end
-                       end
-                       self:_run_hooks("on_commit", "on_after_commit", "on_before_apply")
-                       if self.apply_on_parse == true or self.apply_on_parse == false then
-                               self.uci:apply(self.apply_on_parse)
-                               self:_run_hooks("on_apply", "on_after_apply")
-                       else
-                               -- This is evaluated by the dispatcher and delegated to the
-                               -- template which in turn fires XHR to perform the actual
-                               -- apply actions.
-                               self.apply_needed = true
-                       end
-
-                       -- Reparse sections
-                       Node.parse(self, true)
-               end
-               for i, config in ipairs(self.parsechain) do
-                       self.uci:unload(config)
-               end
-               if type(self.commit_handler) == "function" then
-                       self:commit_handler(self:submitstate())
-               end
-       end
-
-       if not self.save then
-               self.state = FORM_INVALID
-       elseif self.proceed then
-               self.state = FORM_PROCEED
-       elseif self.changed then
-               self.state = FORM_CHANGED
-       else
-               self.state = FORM_VALID
-       end
-
-       return self:state_handler(self.state)
-end
-
-function Map.render(self, ...)
-       self:_run_hooks("on_init")
-       Node.render(self, ...)
-end
-
--- Creates a child section
-function Map.section(self, class, ...)
-       if instanceof(class, AbstractSection) then
-               local obj  = class(self, ...)
-               self:append(obj)
-               return obj
-       else
-               error("class must be a descendent of AbstractSection")
-       end
-end
-
--- UCI add
-function Map.add(self, sectiontype)
-       return self.uci:add(self.config, sectiontype)
-end
-
--- UCI set
-function Map.set(self, section, option, value)
-       if type(value) ~= "table" or #value > 0 then
-               if option then
-                       return self.uci:set(self.config, section, option, value)
-               else
-                       return self.uci:set(self.config, section, value)
-               end
-       else
-               return Map.del(self, section, option)
-       end
-end
-
--- UCI del
-function Map.del(self, section, option)
-       if option then
-               return self.uci:delete(self.config, section, option)
-       else
-               return self.uci:delete(self.config, section)
-       end
-end
-
--- UCI get
-function Map.get(self, section, option)
-       if not section then
-               return self.uci:get_all(self.config)
-       elseif option then
-               return self.uci:get(self.config, section, option)
-       else
-               return self.uci:get_all(self.config, section)
-       end
-end
-
---[[
-Compound - Container
-]]--
-Compound = class(Node)
-
-function Compound.__init__(self, ...)
-       Node.__init__(self)
-       self.template = "cbi/compound"
-       self.children = {...}
-end
-
-function Compound.populate_delegator(self, delegator)
-       for _, v in ipairs(self.children) do
-               v.delegator = delegator
-       end
-end
-
-function Compound.parse(self, ...)
-       local cstate, state = 0
-
-       for k, child in ipairs(self.children) do
-               cstate = child:parse(...)
-               state = (not state or cstate < state) and cstate or state
-       end
-
-       return state
-end
-
-
---[[
-Delegator - Node controller
-]]--
-Delegator = class(Node)
-function Delegator.__init__(self, ...)
-       Node.__init__(self, ...)
-       self.nodes = {}
-       self.defaultpath = {}
-       self.pageaction = false
-       self.readinput = true
-       self.allow_reset = false
-       self.allow_cancel = false
-       self.allow_back = false
-       self.allow_finish = false
-       self.template = "cbi/delegator"
-end
-
-function Delegator.set(self, name, node)
-       assert(not self.nodes[name], "Duplicate entry")
-
-       self.nodes[name] = node
-end
-
-function Delegator.add(self, name, node)
-       node = self:set(name, node)
-       self.defaultpath[#self.defaultpath+1] = name
-end
-
-function Delegator.insert_after(self, name, after)
-       local n = #self.chain + 1
-       for k, v in ipairs(self.chain) do
-               if v == after then
-                       n = k + 1
-                       break
-               end
-       end
-       table.insert(self.chain, n, name)
-end
-
-function Delegator.set_route(self, ...)
-       local n, chain, route = 0, self.chain, {...}
-       for i = 1, #chain do
-               if chain[i] == self.current then
-                       n = i
-                       break
-               end
-       end
-       for i = 1, #route do
-               n = n + 1
-               chain[n] = route[i]
-       end
-       for i = n + 1, #chain do
-               chain[i] = nil
-       end
-end
-
-function Delegator.get(self, name)
-       local node = self.nodes[name]
-
-       if type(node) == "string" then
-               node = load(node, name)
-       end
-
-       if type(node) == "table" and getmetatable(node) == nil then
-               node = Compound(unpack(node))
-       end
-
-       return node
-end
-
-function Delegator.parse(self, ...)
-       if self.allow_cancel and Map.formvalue(self, "cbi.cancel") then
-               if self:_run_hooks("on_cancel") then
-                       return FORM_DONE
-               end
-       end
-
-       if not Map.formvalue(self, "cbi.delg.current") then
-               self:_run_hooks("on_init")
-       end
-
-       local newcurrent
-       self.chain = self.chain or self:get_chain()
-       self.current = self.current or self:get_active()
-       self.active = self.active or self:get(self.current)
-       assert(self.active, "Invalid state")
-
-       local stat = FORM_DONE
-       if type(self.active) ~= "function" then
-               self.active:populate_delegator(self)
-               stat = self.active:parse()
-       else
-               self:active()
-       end
-
-       if stat > FORM_PROCEED then
-               if Map.formvalue(self, "cbi.delg.back") then
-                       newcurrent = self:get_prev(self.current)
-               else
-                       newcurrent = self:get_next(self.current)
-               end
-       elseif stat < FORM_PROCEED then
-               return stat
-       end
-
-
-       if not Map.formvalue(self, "cbi.submit") then
-               return FORM_NODATA
-       elseif stat > FORM_PROCEED
-       and (not newcurrent or not self:get(newcurrent)) then
-               return self:_run_hook("on_done") or FORM_DONE
-       else
-               self.current = newcurrent or self.current
-               self.active = self:get(self.current)
-               if type(self.active) ~= "function" then
-                       self.active:populate_delegator(self)
-                       local stat = self.active:parse(false)
-                       if stat == FORM_SKIP then
-                               return self:parse(...)
-                       else
-                               return FORM_PROCEED
-                       end
-               else
-                       return self:parse(...)
-               end
-       end
-end
-
-function Delegator.get_next(self, state)
-       for k, v in ipairs(self.chain) do
-               if v == state then
-                       return self.chain[k+1]
-               end
-       end
-end
-
-function Delegator.get_prev(self, state)
-       for k, v in ipairs(self.chain) do
-               if v == state then
-                       return self.chain[k-1]
-               end
-       end
-end
-
-function Delegator.get_chain(self)
-       local x = Map.formvalue(self, "cbi.delg.path") or self.defaultpath
-       return type(x) == "table" and x or {x}
-end
-
-function Delegator.get_active(self)
-       return Map.formvalue(self, "cbi.delg.current") or self.chain[1]
-end
-
---[[
-Page - A simple node
-]]--
-
-Page = class(Node)
-Page.__init__ = Node.__init__
-Page.parse    = function() end
-
-
---[[
-SimpleForm - A Simple non-UCI form
-]]--
-SimpleForm = class(Node)
-
-function SimpleForm.__init__(self, config, title, description, data)
-       Node.__init__(self, title, description)
-       self.config = config
-       self.data = data or {}
-       self.template = "cbi/simpleform"
-       self.dorender = true
-       self.pageaction = false
-       self.readinput = true
-end
-
-SimpleForm.formvalue = Map.formvalue
-SimpleForm.formvaluetable = Map.formvaluetable
-
-function SimpleForm.parse(self, readinput, ...)
-       self.readinput = (readinput ~= false)
-
-       if self:formvalue("cbi.skip") then
-               return FORM_SKIP
-       end
-
-       if self:formvalue("cbi.cancel") and self:_run_hooks("on_cancel") then
-               return FORM_DONE
-       end
-
-       if self:submitstate() then
-               Node.parse(self, 1, ...)
-       end
-
-       local valid = true
-       for k, j in ipairs(self.children) do
-               for i, v in ipairs(j.children) do
-                       valid = valid
-                        and (not v.tag_missing or not v.tag_missing[1])
-                        and (not v.tag_invalid or not v.tag_invalid[1])
-                        and (not v.error)
-               end
-       end
-
-       local state =
-               not self:submitstate() and FORM_NODATA
-               or valid and FORM_VALID
-               or FORM_INVALID
-
-       self.dorender = not self.handle
-       if self.handle then
-               local nrender, nstate = self:handle(state, self.data)
-               self.dorender = self.dorender or (nrender ~= false)
-               state = nstate or state
-       end
-       return state
-end
-
-function SimpleForm.render(self, ...)
-       if self.dorender then
-               Node.render(self, ...)
-       end
-end
-
-function SimpleForm.submitstate(self)
-       return self:formvalue("cbi.submit")
-end
-
-function SimpleForm.section(self, class, ...)
-       if instanceof(class, AbstractSection) then
-               local obj  = class(self, ...)
-               self:append(obj)
-               return obj
-       else
-               error("class must be a descendent of AbstractSection")
-       end
-end
-
--- Creates a child field
-function SimpleForm.field(self, class, ...)
-       local section
-       for k, v in ipairs(self.children) do
-               if instanceof(v, SimpleSection) then
-                       section = v
-                       break
-               end
-       end
-       if not section then
-               section = self:section(SimpleSection)
-       end
-
-       if instanceof(class, AbstractValue) then
-               local obj  = class(self, section, ...)
-               obj.track_missing = true
-               section:append(obj)
-               return obj
-       else
-               error("class must be a descendent of AbstractValue")
-       end
-end
-
-function SimpleForm.set(self, section, option, value)
-       self.data[option] = value
-end
-
-
-function SimpleForm.del(self, section, option)
-       self.data[option] = nil
-end
-
-
-function SimpleForm.get(self, section, option)
-       return self.data[option]
-end
-
-
-function SimpleForm.get_scheme()
-       return nil
-end
-
-
-Form = class(SimpleForm)
-
-function Form.__init__(self, ...)
-       SimpleForm.__init__(self, ...)
-       self.embedded = true
-end
-
-
---[[
-AbstractSection
-]]--
-AbstractSection = class(Node)
-
-function AbstractSection.__init__(self, map, sectiontype, ...)
-       Node.__init__(self, ...)
-       self.sectiontype = sectiontype
-       self.map = map
-       self.config = map.config
-       self.optionals = {}
-       self.defaults = {}
-       self.fields = {}
-       self.tag_error = {}
-       self.tag_invalid = {}
-       self.tag_deperror = {}
-       self.changed = false
-
-       self.optional = true
-       self.addremove = false
-       self.dynamic = false
-end
-
--- Define a tab for the section
-function AbstractSection.tab(self, tab, title, desc)
-       self.tabs      = self.tabs      or { }
-       self.tab_names = self.tab_names or { }
-
-       self.tab_names[#self.tab_names+1] = tab
-       self.tabs[tab] = {
-               title       = title,
-               description = desc,
-               childs      = { }
-       }
-end
-
--- Check whether the section has tabs
-function AbstractSection.has_tabs(self)
-       return (self.tabs ~= nil) and (next(self.tabs) ~= nil)
-end
-
--- Appends a new option
-function AbstractSection.option(self, class, option, ...)
-       if instanceof(class, AbstractValue) then
-               local obj  = class(self.map, self, option, ...)
-               self:append(obj)
-               self.fields[option] = obj
-               return obj
-       elseif class == true then
-               error("No valid class was given and autodetection failed.")
-       else
-               error("class must be a descendant of AbstractValue")
-       end
-end
-
--- Appends a new tabbed option
-function AbstractSection.taboption(self, tab, ...)
-
-       assert(tab and self.tabs and self.tabs[tab],
-               "Cannot assign option to not existing tab %q" % tostring(tab))
-
-       local l = self.tabs[tab].childs
-       local o = AbstractSection.option(self, ...)
-
-       if o then l[#l+1] = o end
-
-       return o
-end
-
--- Render a single tab
-function AbstractSection.render_tab(self, tab, ...)
-
-       assert(tab and self.tabs and self.tabs[tab],
-               "Cannot render not existing tab %q" % tostring(tab))
-
-       local k, node
-       for k, node in ipairs(self.tabs[tab].childs) do
-               node.last_child = (k == #self.tabs[tab].childs)
-               node.index = k
-               node:render(...)
-       end
-end
-
--- Parse optional options
-function AbstractSection.parse_optionals(self, section, noparse)
-       if not self.optional then
-               return
-       end
-
-       self.optionals[section] = {}
-
-       local field = nil
-       if not noparse then
-               field = self.map:formvalue("cbi.opt."..self.config.."."..section)
-       end
-
-       for k,v in ipairs(self.children) do
-               if v.optional and not v:cfgvalue(section) and not self:has_tabs() then
-                       if field == v.option then
-                               field = nil
-                               self.map.proceed = true
-                       else
-                               table.insert(self.optionals[section], v)
-                       end
-               end
-       end
-
-       if field and #field > 0 and self.dynamic then
-               self:add_dynamic(field)
-       end
-end
-
--- Add a dynamic option
-function AbstractSection.add_dynamic(self, field, optional)
-       local o = self:option(Value, field, field)
-       o.optional = optional
-end
-
--- Parse all dynamic options
-function AbstractSection.parse_dynamic(self, section)
-       if not self.dynamic then
-               return
-       end
-
-       local arr  = luci.util.clone(self:cfgvalue(section))
-       local form = self.map:formvaluetable("cbid."..self.config.."."..section)
-       for k, v in pairs(form) do
-               arr[k] = v
-       end
-
-       for key,val in pairs(arr) do
-               local create = true
-
-               for i,c in ipairs(self.children) do
-                       if c.option == key then
-                               create = false
-                       end
-               end
-
-               if create and key:sub(1, 1) ~= "." then
-                       self.map.proceed = true
-                       self:add_dynamic(key, true)
-               end
-       end
-end
-
--- Returns the section's UCI table
-function AbstractSection.cfgvalue(self, section)
-       return self.map:get(section)
-end
-
--- Push events
-function AbstractSection.push_events(self)
-       --luci.util.append(self.map.events, self.events)
-       self.map.changed = true
-end
-
--- Removes the section
-function AbstractSection.remove(self, section)
-       self.map.proceed = true
-       return self.map:del(section)
-end
-
--- Creates the section
-function AbstractSection.create(self, section)
-       local stat
-
-       if section then
-               stat = section:match("^[%w_]+$") and self.map:set(section, nil, self.sectiontype)
-       else
-               section = self.map:add(self.sectiontype)
-               stat = section
-       end
-
-       if stat then
-               for k,v in pairs(self.children) do
-                       if v.default then
-                               self.map:set(section, v.option, v.default)
-                       end
-               end
-
-               for k,v in pairs(self.defaults) do
-                       self.map:set(section, k, v)
-               end
-       end
-
-       self.map.proceed = true
-
-       return stat
-end
-
-
-SimpleSection = class(AbstractSection)
-
-function SimpleSection.__init__(self, form, ...)
-       AbstractSection.__init__(self, form, nil, ...)
-       self.template = "cbi/nullsection"
-end
-
-
-Table = class(AbstractSection)
-
-function Table.__init__(self, form, data, ...)
-       local datasource = {}
-       local tself = self
-       datasource.config = "table"
-       self.data = data or {}
-
-       datasource.formvalue = Map.formvalue
-       datasource.formvaluetable = Map.formvaluetable
-       datasource.readinput = true
-
-       function datasource.get(self, section, option)
-               return tself.data[section] and tself.data[section][option]
-       end
-
-       function datasource.submitstate(self)
-               return Map.formvalue(self, "cbi.submit")
-       end
-
-       function datasource.del(...)
-               return true
-       end
-
-       function datasource.get_scheme()
-               return nil
-       end
-
-       AbstractSection.__init__(self, datasource, "table", ...)
-       self.template = "cbi/tblsection"
-       self.rowcolors = true
-       self.anonymous = true
-end
-
-function Table.parse(self, readinput)
-       self.map.readinput = (readinput ~= false)
-       for i, k in ipairs(self:cfgsections()) do
-               if self.map:submitstate() then
-                       Node.parse(self, k)
-               end
-       end
-end
-
-function Table.cfgsections(self)
-       local sections = {}
-
-       for i, v in luci.util.kspairs(self.data) do
-               table.insert(sections, i)
-       end
-
-       return sections
-end
-
-function Table.update(self, data)
-       self.data = data
-end
-
-
-
---[[
-NamedSection - A fixed configuration section defined by its name
-]]--
-NamedSection = class(AbstractSection)
-
-function NamedSection.__init__(self, map, section, stype, ...)
-       AbstractSection.__init__(self, map, stype, ...)
-
-       -- Defaults
-       self.addremove = false
-       self.template = "cbi/nsection"
-       self.section = section
-end
-
-function NamedSection.prepare(self)
-       AbstractSection.prepare(self)
-       AbstractSection.parse_optionals(self, self.section, true)
-end
-
-function NamedSection.parse(self, novld)
-       local s = self.section
-       local active = self:cfgvalue(s)
-
-       if self.addremove then
-               local path = self.config.."."..s
-               if active then -- Remove the section
-                       if self.map:formvalue("cbi.rns."..path) and self:remove(s) then
-                               self:push_events()
-                               return
-                       end
-               else           -- Create and apply default values
-                       if self.map:formvalue("cbi.cns."..path) then
-                               self:create(s)
-                               return
-                       end
-               end
-       end
-
-       if active then
-               AbstractSection.parse_dynamic(self, s)
-               if self.map:submitstate() then
-                       Node.parse(self, s)
-               end
-               AbstractSection.parse_optionals(self, s)
-
-               if self.changed then
-                       self:push_events()
-               end
-       end
-end
-
-
---[[
-TypedSection - A (set of) configuration section(s) defined by the type
-       addremove:      Defines whether the user can add/remove sections of this type
-       anonymous:  Allow creating anonymous sections
-       validate:       a validation function returning nil if the section is invalid
-]]--
-TypedSection = class(AbstractSection)
-
-function TypedSection.__init__(self, map, type, ...)
-       AbstractSection.__init__(self, map, type, ...)
-
-       self.template = "cbi/tsection"
-       self.deps = {}
-       self.anonymous = false
-end
-
-function TypedSection.prepare(self)
-       AbstractSection.prepare(self)
-
-       local i, s
-       for i, s in ipairs(self:cfgsections()) do
-               AbstractSection.parse_optionals(self, s, true)
-       end
-end
-
--- Return all matching UCI sections for this TypedSection
-function TypedSection.cfgsections(self)
-       local sections = {}
-       self.map.uci:foreach(self.map.config, self.sectiontype,
-               function (section)
-                       if self:checkscope(section[".name"]) then
-                               table.insert(sections, section[".name"])
-                       end
-               end)
-
-       return sections
-end
-
--- Limits scope to sections that have certain option => value pairs
-function TypedSection.depends(self, option, value)
-       table.insert(self.deps, {option=option, value=value})
-end
-
-function TypedSection.parse(self, novld)
-       if self.addremove then
-               -- Remove
-               local crval = REMOVE_PREFIX .. self.config
-               local name = self.map:formvaluetable(crval)
-               for k,v in pairs(name) do
-                       if k:sub(-2) == ".x" then
-                               k = k:sub(1, #k - 2)
-                       end
-                       if self:cfgvalue(k) and self:checkscope(k) then
-                               self:remove(k)
-                       end
-               end
-       end
-
-       local co
-       for i, k in ipairs(self:cfgsections()) do
-               AbstractSection.parse_dynamic(self, k)
-               if self.map:submitstate() then
-                       Node.parse(self, k, novld)
-               end
-               AbstractSection.parse_optionals(self, k)
-       end
-
-       if self.addremove then
-               -- Create
-               local created
-               local crval = CREATE_PREFIX .. self.config .. "." .. self.sectiontype
-               local origin, name = next(self.map:formvaluetable(crval))
-               if self.anonymous then
-                       if name then
-                               created = self:create(nil, origin)
-                       end
-               else
-                       if name then
-                               -- Ignore if it already exists
-                               if self:cfgvalue(name) then
-                                       name = nil
-                                       self.err_invalid = true
-                               else
-                                       name = self:checkscope(name)
-
-                                       if not name then
-                                               self.err_invalid = true
-                                       end
-
-                                       if name and #name > 0 then
-                                               created = self:create(name, origin) and name
-                                               if not created then
-                                                       self.invalid_cts = true
-                                               end
-                                       end
-                               end
-                       end
-               end
-
-               if created then
-                       AbstractSection.parse_optionals(self, created)
-               end
-       end
-
-       if self.sortable then
-               local stval = RESORT_PREFIX .. self.config .. "." .. self.sectiontype
-               local order = self.map:formvalue(stval)
-               if order and #order > 0 then
-                       local sids, sid = { }, nil
-                       for sid in util.imatch(order) do
-                               sids[#sids+1] = sid
-                       end
-                       if #sids > 0 then
-                               self.map.uci:reorder(self.config, sids)
-                               self.changed = true
-                       end
-               end
-       end
-
-       if created or self.changed then
-               self:push_events()
-       end
-end
-
--- Verifies scope of sections
-function TypedSection.checkscope(self, section)
-       -- Check if we are not excluded
-       if self.filter and not self:filter(section) then
-               return nil
-       end
-
-       -- Check if at least one dependency is met
-       if #self.deps > 0 and self:cfgvalue(section) then
-               local stat = false
-
-               for k, v in ipairs(self.deps) do
-                       if self:cfgvalue(section)[v.option] == v.value then
-                               stat = true
-                       end
-               end
-
-               if not stat then
-                       return nil
-               end
-       end
-
-       return self:validate(section)
-end
-
-
--- Dummy validate function
-function TypedSection.validate(self, section)
-       return section
-end
-
-
---[[
-AbstractValue - An abstract Value Type
-       null:           Value can be empty
-       valid:          A function returning the value if it is valid otherwise nil
-       depends:        A table of option => value pairs of which one must be true
-       default:        The default value
-       size:           The size of the input fields
-       rmempty:        Unset value if empty
-       optional:       This value is optional (see AbstractSection.optionals)
-]]--
-AbstractValue = class(Node)
-
-function AbstractValue.__init__(self, map, section, option, ...)
-       Node.__init__(self, ...)
-       self.section = section
-       self.option  = option
-       self.map     = map
-       self.config  = map.config
-       self.tag_invalid = {}
-       self.tag_missing = {}
-       self.tag_reqerror = {}
-       self.tag_error = {}
-       self.deps = {}
-       --self.cast = "string"
-
-       self.track_missing = false
-       self.rmempty   = true
-       self.default   = nil
-       self.size      = nil
-       self.optional  = false
-end
-
-function AbstractValue.prepare(self)
-       self.cast = self.cast or "string"
-end
-
--- Add a dependencie to another section field
-function AbstractValue.depends(self, field, value)
-       local deps
-       if type(field) == "string" then
-               deps = {}
-               deps[field] = value
-       else
-               deps = field
-       end
-
-       table.insert(self.deps, deps)
-end
-
--- Serialize dependencies
-function AbstractValue.deplist2json(self, section, deplist)
-       local deps, i, d = { }
-
-       if type(self.deps) == "table" then
-               for i, d in ipairs(deplist or self.deps) do
-                       local a, k, v = { }
-                       for k, v in pairs(d) do
-                               if k:find("!", 1, true) then
-                                       a[k] = v
-                               elseif k:find(".", 1, true) then
-                                       a['cbid.%s' % k] = v
-                               else
-                                       a['cbid.%s.%s.%s' %{ self.config, section, k }] = v
-                               end
-                       end
-                       deps[#deps+1] = a
-               end
-       end
-
-       return util.serialize_json(deps)
-end
-
--- Generates the unique CBID
-function AbstractValue.cbid(self, section)
-       return "cbid."..self.map.config.."."..section.."."..self.option
-end
-
--- Return whether this object should be created
-function AbstractValue.formcreated(self, section)
-       local key = "cbi.opt."..self.config.."."..section
-       return (self.map:formvalue(key) == self.option)
-end
-
--- Returns the formvalue for this object
-function AbstractValue.formvalue(self, section)
-       return self.map:formvalue(self:cbid(section))
-end
-
-function AbstractValue.additional(self, value)
-       self.optional = value
-end
-
-function AbstractValue.mandatory(self, value)
-       self.rmempty = not value
-end
-
-function AbstractValue.add_error(self, section, type, msg)
-       self.error = self.error or { }
-       self.error[section] = msg or type
-
-       self.section.error = self.section.error or { }
-       self.section.error[section] = self.section.error[section] or { }
-       table.insert(self.section.error[section], msg or type)
-
-       if type == "invalid" then
-               self.tag_invalid[section] = true
-       elseif type == "missing" then
-               self.tag_missing[section] = true
-       end
-
-       self.tag_error[section] = true
-       self.map.save = false
-end
-
-function AbstractValue.parse(self, section, novld)
-       local fvalue = self:formvalue(section)
-       local cvalue = self:cfgvalue(section)
-
-       -- If favlue and cvalue are both tables and have the same content
-       -- make them identical
-       if type(fvalue) == "table" and type(cvalue) == "table" then
-               local equal = #fvalue == #cvalue
-               if equal then
-                       for i=1, #fvalue do
-                               if cvalue[i] ~= fvalue[i] then
-                                       equal = false
-                               end
-                       end
-               end
-               if equal then
-                       fvalue = cvalue
-               end
-       end
-
-       if fvalue and #fvalue > 0 then -- If we have a form value, write it to UCI
-               local val_err
-               fvalue, val_err = self:validate(fvalue, section)
-               fvalue = self:transform(fvalue)
-
-               if not fvalue and not novld then
-                       self:add_error(section, "invalid", val_err)
-               end
-
-               if self.alias then
-                       self.section.aliased = self.section.aliased or {}
-                       self.section.aliased[section] = self.section.aliased[section] or {}
-                       self.section.aliased[section][self.alias] = true
-               end
-
-               if fvalue and (self.forcewrite or not (fvalue == cvalue)) then
-                       if self:write(section, fvalue) then
-                               -- Push events
-                               self.section.changed = true
-                               --luci.util.append(self.map.events, self.events)
-                       end
-               end
-       else                                                    -- Unset the UCI or error
-               if self.rmempty or self.optional then
-                       if not self.alias or
-                          not self.section.aliased or
-                          not self.section.aliased[section] or
-                          not self.section.aliased[section][self.alias]
-                       then
-                               if self:remove(section) then
-                                       -- Push events
-                                       self.section.changed = true
-                                       --luci.util.append(self.map.events, self.events)
-                               end
-                       end
-               elseif cvalue ~= fvalue and not novld then
-                       -- trigger validator with nil value to get custom user error msg.
-                       local _, val_err = self:validate(nil, section)
-                       self:add_error(section, "missing", val_err)
-               end
-       end
-end
-
--- Render if this value exists or if it is mandatory
-function AbstractValue.render(self, s, scope)
-       if not self.optional or self.section:has_tabs() or self:cfgvalue(s) or self:formcreated(s) then
-               scope = scope or {}
-               scope.section = s
-               scope.cbid    = self:cbid(s)
-               Node.render(self, scope)
-       end
-end
-
--- Return the UCI value of this object
-function AbstractValue.cfgvalue(self, section)
-       local value
-       if self.tag_error[section] then
-               value = self:formvalue(section)
-       else
-               value = self.map:get(section, self.alias or self.option)
-       end
-
-       if not value then
-               return nil
-       elseif not self.cast or self.cast == type(value) then
-               return value
-       elseif self.cast == "string" then
-               if type(value) == "table" then
-                       return value[1]
-               end
-       elseif self.cast == "table" then
-               return { value }
-       end
-end
-
--- Validate the form value
-function AbstractValue.validate(self, value)
-       if self.datatype and value then
-               if type(value) == "table" then
-                       local v
-                       for _, v in ipairs(value) do
-                               if v and #v > 0 and not verify_datatype(self.datatype, v) then
-                                       return nil
-                               end
-                       end
-               else
-                       if not verify_datatype(self.datatype, value) then
-                               return nil
-                       end
-               end
-       end
-
-       return value
-end
-
-AbstractValue.transform = AbstractValue.validate
-
-
--- Write to UCI
-function AbstractValue.write(self, section, value)
-       return self.map:set(section, self.alias or self.option, value)
-end
-
--- Remove from UCI
-function AbstractValue.remove(self, section)
-       return self.map:del(section, self.alias or self.option)
-end
-
-
-
-
---[[
-Value - A one-line value
-       maxlength:      The maximum length
-]]--
-Value = class(AbstractValue)
-
-function Value.__init__(self, ...)
-       AbstractValue.__init__(self, ...)
-       self.template  = "cbi/value"
-       self.keylist = {}
-       self.vallist = {}
-       self.readonly = nil
-end
-
-function Value.reset_values(self)
-       self.keylist = {}
-       self.vallist = {}
-end
-
-function Value.value(self, key, val)
-       val = val or key
-       table.insert(self.keylist, tostring(key))
-       table.insert(self.vallist, tostring(val))
-end
-
-function Value.parse(self, section, novld)
-       if self.readonly then return end
-       AbstractValue.parse(self, section, novld)
-end
-
--- DummyValue - This does nothing except being there
-DummyValue = class(AbstractValue)
-
-function DummyValue.__init__(self, ...)
-       AbstractValue.__init__(self, ...)
-       self.template = "cbi/dvalue"
-       self.value = nil
-end
-
-function DummyValue.cfgvalue(self, section)
-       local value
-       if self.value then
-               if type(self.value) == "function" then
-                       value = self:value(section)
-               else
-                       value = self.value
-               end
-       else
-               value = AbstractValue.cfgvalue(self, section)
-       end
-       return value
-end
-
-function DummyValue.parse(self)
-
-end
-
-
---[[
-Flag - A flag being enabled or disabled
-]]--
-Flag = class(AbstractValue)
-
-function Flag.__init__(self, ...)
-       AbstractValue.__init__(self, ...)
-       self.template  = "cbi/fvalue"
-
-       self.enabled  = "1"
-       self.disabled = "0"
-       self.default  = self.disabled
-end
-
--- A flag can only have two states: set or unset
-function Flag.parse(self, section, novld)
-       local fexists = self.map:formvalue(
-               FEXIST_PREFIX .. self.config .. "." .. section .. "." .. self.option)
-
-       if fexists then
-               local fvalue = self:formvalue(section) and self.enabled or self.disabled
-               local cvalue = self:cfgvalue(section)
-               local val_err
-               fvalue, val_err = self:validate(fvalue, section)
-               if not fvalue then
-                       if not novld then
-                               self:add_error(section, "invalid", val_err)
-                       end
-                       return
-               end
-               if fvalue == self.default and (self.optional or self.rmempty) then
-                       self:remove(section)
-               else
-                       self:write(section, fvalue)
-               end
-               if (fvalue ~= cvalue) then self.section.changed = true end
-       else
-               self:remove(section)
-               self.section.changed = true
-       end
-end
-
-function Flag.cfgvalue(self, section)
-       return AbstractValue.cfgvalue(self, section) or self.default
-end
-function Flag.validate(self, value)
-       return value
-end
-
---[[
-ListValue - A one-line value predefined in a list
-       widget: The widget that will be used (select, radio)
-]]--
-ListValue = class(AbstractValue)
-
-function ListValue.__init__(self, ...)
-       AbstractValue.__init__(self, ...)
-       self.template  = "cbi/lvalue"
-
-       self.size   = 1
-       self.widget = "select"
-
-       self:reset_values()
-end
-
-function ListValue.reset_values(self)
-       self.keylist = {}
-       self.vallist = {}
-       self.deplist = {}
-end
-
-function ListValue.value(self, key, val, ...)
-       if luci.util.contains(self.keylist, key) then
-               return
-       end
-
-       val = val or key
-       table.insert(self.keylist, tostring(key))
-       table.insert(self.vallist, tostring(val))
-       table.insert(self.deplist, {...})
-end
-
-function ListValue.validate(self, val)
-       if luci.util.contains(self.keylist, val) then
-               return val
-       else
-               return nil
-       end
-end
-
-
-
---[[
-MultiValue - Multiple delimited values
-       widget: The widget that will be used (select, checkbox)
-       delimiter: The delimiter that will separate the values (default: " ")
-]]--
-MultiValue = class(AbstractValue)
-
-function MultiValue.__init__(self, ...)
-       AbstractValue.__init__(self, ...)
-       self.template = "cbi/mvalue"
-
-       self.widget = "checkbox"
-       self.delimiter = " "
-
-       self:reset_values()
-end
-
-function MultiValue.render(self, ...)
-       if self.widget == "select" and not self.size then
-               self.size = #self.vallist
-       end
-
-       AbstractValue.render(self, ...)
-end
-
-function MultiValue.reset_values(self)
-       self.keylist = {}
-       self.vallist = {}
-       self.deplist = {}
-end
-
-function MultiValue.value(self, key, val)
-       if luci.util.contains(self.keylist, key) then
-               return
-       end
-
-       val = val or key
-       table.insert(self.keylist, tostring(key))
-       table.insert(self.vallist, tostring(val))
-end
-
-function MultiValue.valuelist(self, section)
-       local val = self:cfgvalue(section)
-
-       if not(type(val) == "string") then
-               return {}
-       end
-
-       return luci.util.split(val, self.delimiter)
-end
-
-function MultiValue.validate(self, val)
-       val = (type(val) == "table") and val or {val}
-
-       local result
-
-       for i, value in ipairs(val) do
-               if luci.util.contains(self.keylist, value) then
-                       result = result and (result .. self.delimiter .. value) or value
-               end
-       end
-
-       return result
-end
-
-
-StaticList = class(MultiValue)
-
-function StaticList.__init__(self, ...)
-       MultiValue.__init__(self, ...)
-       self.cast = "table"
-       self.valuelist = self.cfgvalue
-
-       if not self.override_scheme
-        and self.map:get_scheme(self.section.sectiontype, self.option) then
-               local vs = self.map:get_scheme(self.section.sectiontype, self.option)
-               if self.value and vs.values and not self.override_values then
-                       for k, v in pairs(vs.values) do
-                               self:value(k, v)
-                       end
-               end
-       end
-end
-
-function StaticList.validate(self, value)
-       value = (type(value) == "table") and value or {value}
-
-       local valid = {}
-       for i, v in ipairs(value) do
-               if luci.util.contains(self.keylist, v) then
-                       table.insert(valid, v)
-               end
-       end
-       return valid
-end
-
-
-DynamicList = class(AbstractValue)
-
-function DynamicList.__init__(self, ...)
-       AbstractValue.__init__(self, ...)
-       self.template  = "cbi/dynlist"
-       self.cast = "table"
-       self:reset_values()
-end
-
-function DynamicList.reset_values(self)
-       self.keylist = {}
-       self.vallist = {}
-end
-
-function DynamicList.value(self, key, val)
-       val = val or key
-       table.insert(self.keylist, tostring(key))
-       table.insert(self.vallist, tostring(val))
-end
-
-function DynamicList.write(self, section, value)
-       local t = { }
-
-       if type(value) == "table" then
-               local x
-               for _, x in ipairs(value) do
-                       if x and #x > 0 then
-                               t[#t+1] = x
-                       end
-               end
-       else
-               t = { value }
-       end
-
-       if self.cast == "string" then
-               value = table.concat(t, " ")
-       else
-               value = t
-       end
-
-       return AbstractValue.write(self, section, value)
-end
-
-function DynamicList.cfgvalue(self, section)
-       local value = AbstractValue.cfgvalue(self, section)
-
-       if type(value) == "string" then
-               local x
-               local t = { }
-               for x in value:gmatch("%S+") do
-                       if #x > 0 then
-                               t[#t+1] = x
-                       end
-               end
-               value = t
-       end
-
-       return value
-end
-
-function DynamicList.formvalue(self, section)
-       local value = AbstractValue.formvalue(self, section)
-
-       if type(value) == "string" then
-               if self.cast == "string" then
-                       local x
-                       local t = { }
-                       for x in value:gmatch("%S+") do
-                               t[#t+1] = x
-                       end
-                       value = t
-               else
-                       value = { value }
-               end
-       end
-
-       return value
-end
-
-
-DropDown = class(MultiValue)
-
-function DropDown.__init__(self, ...)
-       ListValue.__init__(self, ...)
-       self.template = "cbi/dropdown"
-       self.delimiter = " "
-end
-
-
---[[
-TextValue - A multi-line value
-       rows:   Rows
-]]--
-TextValue = class(AbstractValue)
-
-function TextValue.__init__(self, ...)
-       AbstractValue.__init__(self, ...)
-       self.template  = "cbi/tvalue"
-end
-
---[[
-Button
-]]--
-Button = class(AbstractValue)
-
-function Button.__init__(self, ...)
-       AbstractValue.__init__(self, ...)
-       self.template  = "cbi/button"
-       self.inputstyle = nil
-       self.rmempty = true
-        self.unsafeupload = false
-end
-
-
-FileUpload = class(AbstractValue)
-
-function FileUpload.__init__(self, ...)
-       AbstractValue.__init__(self, ...)
-       self.template = "cbi/upload"
-       if not self.map.upload_fields then
-               self.map.upload_fields = { self }
-       else
-               self.map.upload_fields[#self.map.upload_fields+1] = self
-       end
-end
-
-function FileUpload.formcreated(self, section)
-       if self.unsafeupload then
-               return AbstractValue.formcreated(self, section) or
-                       self.map:formvalue("cbi.rlf."..section.."."..self.option) or
-                       self.map:formvalue("cbi.rlf."..section.."."..self.option..".x") or
-                       self.map:formvalue("cbid."..self.map.config.."."..section.."."..self.option..".textbox")
-       else
-               return AbstractValue.formcreated(self, section) or
-                       self.map:formvalue("cbid."..self.map.config.."."..section.."."..self.option..".textbox")
-       end
-end
-
-function FileUpload.cfgvalue(self, section)
-       local val = AbstractValue.cfgvalue(self, section)
-       if val and fs.access(val) then
-               return val
-       end
-       return nil
-end
-
--- If we have a new value, use it
--- otherwise use old value
--- deletion should be managed by a separate button object
--- unless self.unsafeupload is set in which case if the user
--- choose to remove the old file we do so.
--- Also, allow to specify (via textbox) a file already on router
-function FileUpload.formvalue(self, section)
-       local val = AbstractValue.formvalue(self, section)
-       if val then
-               if self.unsafeupload then
-                       if not self.map:formvalue("cbi.rlf."..section.."."..self.option) and
-                           not self.map:formvalue("cbi.rlf."..section.."."..self.option..".x")
-                       then
-                               return val
-                       end
-                       fs.unlink(val)
-                       self.value = nil
-                       return nil
-                elseif val ~= "" then
-                       return val
-                end
-       end
-       val = luci.http.formvalue("cbid."..self.map.config.."."..section.."."..self.option..".textbox")
-       if val == "" then
-               val = nil
-       end
-        if not self.unsafeupload then
-               if not val then
-                       val = self.map:formvalue("cbi.rlf."..section.."."..self.option)
-               end
-        end
-       return val
-end
-
-function FileUpload.remove(self, section)
-       if self.unsafeupload then
-               local val = AbstractValue.formvalue(self, section)
-               if val and fs.access(val) then fs.unlink(val) end
-               return AbstractValue.remove(self, section)
-       else
-               return nil
-       end
-end
-
-FileBrowser = class(AbstractValue)
-
-function FileBrowser.__init__(self, ...)
-       AbstractValue.__init__(self, ...)
-       self.template = "cbi/browser"
-end
diff --git a/package/luci/modules/luci-base/luasrc/cbi/datatypes.lua b/package/luci/modules/luci-base/luasrc/cbi/datatypes.lua
deleted file mode 100644 (file)
index b4206e9..0000000
+++ /dev/null
@@ -1,466 +0,0 @@
--- Copyright 2010 Jo-Philipp Wich <jow@openwrt.org>
--- Copyright 2017 Dan Luedtke <mail@danrl.com>
--- Licensed to the public under the Apache License 2.0.
-
-local fs = require "nixio.fs"
-local ip = require "luci.ip"
-local math = require "math"
-local util = require "luci.util"
-local tonumber, tostring, type, unpack, select = tonumber, tostring, type, unpack, select
-
-
-module "luci.cbi.datatypes"
-
-
-_M['or'] = function(v, ...)
-       local i
-       for i = 1, select('#', ...), 2 do
-               local f = select(i, ...)
-               local a = select(i+1, ...)
-               if type(f) ~= "function" then
-                       if f == v then
-                               return true
-                       end
-                       i = i - 1
-               elseif f(v, unpack(a)) then
-                       return true
-               end
-       end
-       return false
-end
-
-_M['and'] = function(v, ...)
-       local i
-       for i = 1, select('#', ...), 2 do
-               local f = select(i, ...)
-               local a = select(i+1, ...)
-               if type(f) ~= "function" then
-                       if f ~= v then
-                               return false
-                       end
-                       i = i - 1
-               elseif not f(v, unpack(a)) then
-                       return false
-               end
-       end
-       return true
-end
-
-function neg(v, ...)
-       return _M['or'](v:gsub("^%s*!%s*", ""), ...)
-end
-
-function list(v, subvalidator, subargs)
-       if type(subvalidator) ~= "function" then
-               return false
-       end
-       local token
-       for token in v:gmatch("%S+") do
-               if not subvalidator(token, unpack(subargs)) then
-                       return false
-               end
-       end
-       return true
-end
-
-function bool(val)
-       if val == "1" or val == "yes" or val == "on" or val == "true" then
-               return true
-       elseif val == "0" or val == "no" or val == "off" or val == "false" then
-               return true
-       elseif val == "" or val == nil then
-               return true
-       end
-
-       return false
-end
-
-function uinteger(val)
-       local n = tonumber(val)
-       if n ~= nil and math.floor(n) == n and n >= 0 then
-               return true
-       end
-
-       return false
-end
-
-function integer(val)
-       local n = tonumber(val)
-       if n ~= nil and math.floor(n) == n then
-               return true
-       end
-
-       return false
-end
-
-function ufloat(val)
-       local n = tonumber(val)
-       return ( n ~= nil and n >= 0 )
-end
-
-function float(val)
-       return ( tonumber(val) ~= nil )
-end
-
-function ipaddr(val)
-       return ip4addr(val) or ip6addr(val)
-end
-
-function ip4addr(val)
-       if val then
-               return ip.IPv4(val) and true or false
-       end
-
-       return false
-end
-
-function ip4prefix(val)
-       val = tonumber(val)
-       return ( val and val >= 0 and val <= 32 )
-end
-
-function ip6addr(val)
-       if val then
-               return ip.IPv6(val) and true or false
-       end
-
-       return false
-end
-
-function ip6prefix(val)
-       val = tonumber(val)
-       return ( val and val >= 0 and val <= 128 )
-end
-
-function cidr4(val)
-       local ip, mask = val:match("^([^/]+)/([^/]+)$")
-
-       return ip4addr(ip) and ip4prefix(mask)
-end
-
-function cidr6(val)
-       local ip, mask = val:match("^([^/]+)/([^/]+)$")
-
-       return ip6addr(ip) and ip6prefix(mask)
-end
-
-function ipnet4(val)
-       local ip, mask = val:match("^([^/]+)/([^/]+)$")
-
-       return ip4addr(ip) and ip4addr(mask)
-end
-
-function ipnet6(val)
-       local ip, mask = val:match("^([^/]+)/([^/]+)$")
-
-       return ip6addr(ip) and ip6addr(mask)
-end
-
-function ipmask(val)
-       return ipmask4(val) or ipmask6(val)
-end
-
-function ipmask4(val)
-       return cidr4(val) or ipnet4(val) or ip4addr(val)
-end
-
-function ipmask6(val)
-       return cidr6(val) or ipnet6(val) or ip6addr(val)
-end
-
-function ip6hostid(val)
-       if val == "eui64" or val == "random" then
-               return true
-       else
-               local addr = ip.IPv6(val)
-               if addr and addr:prefix() == 128 and addr:lower("::1:0:0:0:0") then
-                       return true
-               end
-       end
-
-       return false
-end
-
-function port(val)
-       val = tonumber(val)
-       return ( val and val >= 0 and val <= 65535 )
-end
-
-function portrange(val)
-       local p1, p2 = val:match("^(%d+)%-(%d+)$")
-       if p1 and p2 and port(p1) and port(p2) then
-               return true
-       else
-               return port(val)
-       end
-end
-
-function macaddr(val)
-       return ip.checkmac(val) and true or false
-end
-
-function hostname(val, strict)
-       if val and (#val < 254) and (
-          val:match("^[a-zA-Z_]+$") or
-          (val:match("^[a-zA-Z0-9_][a-zA-Z0-9_%-%.]*[a-zA-Z0-9]$") and
-           val:match("[^0-9%.]"))
-       ) then
-               return (not strict or not val:match("^_"))
-       end
-       return false
-end
-
-function host(val, ipv4only)
-       return hostname(val) or ((ipv4only == 1) and ip4addr(val)) or ((not (ipv4only == 1)) and ipaddr(val))
-end
-
-function network(val)
-       return uciname(val) or host(val)
-end
-
-function hostport(val, ipv4only)
-       local h, p = val:match("^([^:]+):([^:]+)$")
-       return not not (h and p and host(h, ipv4only) and port(p))
-end
-
-function ip4addrport(val, bracket)
-       local h, p = val:match("^([^:]+):([^:]+)$")
-       return (h and p and ip4addr(h) and port(p))
-end
-
-function ip4addrport(val)
-       local h, p = val:match("^([^:]+):([^:]+)$")
-       return (h and p and ip4addr(h) and port(p))
-end
-
-function ipaddrport(val, bracket)
-       local h, p = val:match("^([^%[%]:]+):([^:]+)$")
-       if (h and p and ip4addr(h) and port(p)) then
-               return true
-       elseif (bracket == 1) then
-               h, p = val:match("^%[(.+)%]:([^:]+)$")
-               if  (h and p and ip6addr(h) and port(p)) then
-                       return true
-               end
-       end
-       h, p = val:match("^([^%[%]]+):([^:]+)$")
-       return (h and p and ip6addr(h) and port(p))
-end
-
-function wpakey(val)
-       if #val == 64 then
-               return (val:match("^[a-fA-F0-9]+$") ~= nil)
-       else
-               return (#val >= 8) and (#val <= 63)
-       end
-end
-
-function wepkey(val)
-       if val:sub(1, 2) == "s:" then
-               val = val:sub(3)
-       end
-
-       if (#val == 10) or (#val == 26) then
-               return (val:match("^[a-fA-F0-9]+$") ~= nil)
-       else
-               return (#val == 5) or (#val == 13)
-       end
-end
-
-function hexstring(val)
-       if val then
-               return (val:match("^[a-fA-F0-9]+$") ~= nil)
-       end
-       return false
-end
-
-function hex(val, maxbytes)
-       maxbytes = tonumber(maxbytes)
-       if val and maxbytes ~= nil then
-               return ((val:match("^0x[a-fA-F0-9]+$") ~= nil) and (#val <= 2 + maxbytes * 2))
-       end
-       return false
-end
-
-function base64(val)
-       if val then
-               return (val:match("^[a-zA-Z0-9/+]+=?=?$") ~= nil) and (math.fmod(#val, 4) == 0)
-       end
-       return false
-end
-
-function string(val)
-       return true             -- Everything qualifies as valid string
-end
-
-function directory(val, seen)
-       local s = fs.stat(val)
-       seen = seen or { }
-
-       if s and not seen[s.ino] then
-               seen[s.ino] = true
-               if s.type == "dir" then
-                       return true
-               elseif s.type == "lnk" then
-                       return directory( fs.readlink(val), seen )
-               end
-       end
-
-       return false
-end
-
-function file(val, seen)
-       local s = fs.stat(val)
-       seen = seen or { }
-
-       if s and not seen[s.ino] then
-               seen[s.ino] = true
-               if s.type == "reg" then
-                       return true
-               elseif s.type == "lnk" then
-                       return file( fs.readlink(val), seen )
-               end
-       end
-
-       return false
-end
-
-function device(val, seen)
-       local s = fs.stat(val)
-       seen = seen or { }
-
-       if s and not seen[s.ino] then
-               seen[s.ino] = true
-               if s.type == "chr" or s.type == "blk" then
-                       return true
-               elseif s.type == "lnk" then
-                       return device( fs.readlink(val), seen )
-               end
-       end
-
-       return false
-end
-
-function uciname(val)
-       return (val:match("^[a-zA-Z0-9_]+$") ~= nil)
-end
-
-function range(val, min, max)
-       val = tonumber(val)
-       min = tonumber(min)
-       max = tonumber(max)
-
-       if val ~= nil and min ~= nil and max ~= nil then
-               return ((val >= min) and (val <= max))
-       end
-
-       return false
-end
-
-function min(val, min)
-       val = tonumber(val)
-       min = tonumber(min)
-
-       if val ~= nil and min ~= nil then
-               return (val >= min)
-       end
-
-       return false
-end
-
-function max(val, max)
-       val = tonumber(val)
-       max = tonumber(max)
-
-       if val ~= nil and max ~= nil then
-               return (val <= max)
-       end
-
-       return false
-end
-
-function rangelength(val, min, max)
-       val = tostring(val)
-       min = tonumber(min)
-       max = tonumber(max)
-
-       if val ~= nil and min ~= nil and max ~= nil then
-               return ((#val >= min) and (#val <= max))
-       end
-
-       return false
-end
-
-function minlength(val, min)
-       val = tostring(val)
-       min = tonumber(min)
-
-       if val ~= nil and min ~= nil then
-               return (#val >= min)
-       end
-
-       return false
-end
-
-function maxlength(val, max)
-       val = tostring(val)
-       max = tonumber(max)
-
-       if val ~= nil and max ~= nil then
-               return (#val <= max)
-       end
-
-       return false
-end
-
-function phonedigit(val)
-       return (val:match("^[0-9\*#!%.]+$") ~= nil)
-end
-
-function timehhmmss(val)
-       return (val:match("^[0-6][0-9]:[0-6][0-9]:[0-6][0-9]$") ~= nil)
-end
-
-function dateyyyymmdd(val)
-       if val ~= nil then
-               yearstr, monthstr, daystr = val:match("^(%d%d%d%d)-(%d%d)-(%d%d)$")
-               if (yearstr == nil) or (monthstr == nil) or (daystr == nil) then
-                       return false;
-               end
-               year = tonumber(yearstr)
-               month = tonumber(monthstr)
-               day = tonumber(daystr)
-               if (year == nil) or (month == nil) or (day == nil) then
-                       return false;
-               end
-
-               local days_in_month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
-
-               local function is_leap_year(year)
-                       return (year % 4 == 0) and ((year % 100 ~= 0) or (year % 400 == 0))
-               end
-
-               function get_days_in_month(month, year)
-                       if (month == 2) and is_leap_year(year) then
-                               return 29
-                       else
-                               return days_in_month[month]
-                       end
-               end
-               if (year < 2015) then
-                       return false
-               end
-               if ((month == 0) or (month > 12)) then
-                       return false
-               end
-               if ((day == 0) or (day > get_days_in_month(month, year))) then
-                       return false
-               end
-               return true
-       end
-       return false
-end
-
-function unique(val)
-       return true
-end
diff --git a/package/luci/modules/luci-base/luasrc/ccache.lua b/package/luci/modules/luci-base/luasrc/ccache.lua
deleted file mode 100644 (file)
index bcc76e6..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local io = require "io"
-local fs = require "nixio.fs"
-local util = require "luci.util"
-local nixio = require "nixio"
-local debug = require "debug"
-local string = require "string"
-local package = require "package"
-
-local type, loadfile = type, loadfile
-
-
-module "luci.ccache"
-
-function cache_ondemand(...)
-       if debug.getinfo(1, 'S').source ~= "=?" then
-               cache_enable(...)
-       end
-end
-
-function cache_enable(cachepath, mode)
-       cachepath = cachepath or "/tmp/luci-modulecache"
-       mode = mode or "r--r--r--"
-
-       local loader = package.loaders[2]
-       local uid    = nixio.getuid()
-
-       if not fs.stat(cachepath) then
-               fs.mkdir(cachepath)
-       end
-
-       local function _encode_filename(name)
-               local encoded = ""
-               for i=1, #name do
-                       encoded = encoded .. ("%2X" % string.byte(name, i))
-               end
-               return encoded
-       end
-
-       local function _load_sane(file)
-               local stat = fs.stat(file)
-               if stat and stat.uid == uid and stat.modestr == mode then
-                       return loadfile(file)
-               end
-       end
-
-       local function _write_sane(file, func)
-               if nixio.getuid() == uid then
-                       local fp = io.open(file, "w")
-                       if fp then
-                               fp:write(util.get_bytecode(func))
-                               fp:close()
-                               fs.chmod(file, mode)
-                       end
-               end
-       end
-
-       package.loaders[2] = function(mod)
-               local encoded = cachepath .. "/" .. _encode_filename(mod)
-               local modcons = _load_sane(encoded)
-               
-               if modcons then
-                       return modcons
-               end
-
-               -- No cachefile
-               modcons = loader(mod)
-               if type(modcons) == "function" then
-                       _write_sane(encoded, modcons)
-               end
-               return modcons
-       end
-end
diff --git a/package/luci/modules/luci-base/luasrc/config.lua b/package/luci/modules/luci-base/luasrc/config.lua
deleted file mode 100644 (file)
index d01153f..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local util = require "luci.util"
-module("luci.config",
-               function(m)
-                       if pcall(require, "luci.model.uci") then
-                               local config = util.threadlocal()
-                               setmetatable(m, {
-                                       __index = function(tbl, key)
-                                               if not config[key] then
-                                                       config[key] = luci.model.uci.cursor():get_all("luci", key)
-                                               end
-                                               return config[key]
-                                       end
-                               })
-                       end
-               end)
diff --git a/package/luci/modules/luci-base/luasrc/controller/admin/index.lua b/package/luci/modules/luci-base/luasrc/controller/admin/index.lua
deleted file mode 100644 (file)
index 1f7db0c..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.admin.index", package.seeall)
-
-function index()
-       function toplevel_page(page, preflookup, preftarget)
-               if preflookup and preftarget then
-                       if lookup(preflookup) then
-                               page.target = preftarget
-                       end
-               end
-
-               if not page.target then
-                       page.target = firstchild()
-               end
-       end
-
-       local uci = require("luci.model.uci").cursor()
-
-       local root = node()
-       if not root.target then
-               root.target = alias("admin")
-               root.index = true
-       end
-
-       local page   = node("admin")
-
-       page.title   = _("Administration")
-       page.order   = 10
-       page.sysauth = "root"
-       page.sysauth_authenticator = "htmlauth"
-       page.ucidata = true
-       page.index = true
-       page.target = firstnode()
-
-       -- Empty menu tree to be populated by addons and modules
-
-       page = node("admin", "status")
-       page.title = _("Status")
-       page.order = 10
-       page.index = true
-       -- overview is from mod-admin-full
-       toplevel_page(page, "admin/status/overview", alias("admin", "status", "overview"))
-
-       page = node("admin", "system")
-       page.title = _("System")
-       page.order = 20
-       page.index = true
-       -- system/system is from mod-admin-full
-       toplevel_page(page, "admin/system/system", alias("admin", "system", "system"))
-
-       -- Only used if applications add items
-       page = node("admin", "services")
-       page.title = _("Services")
-       page.order = 40
-       page.index = true
-       toplevel_page(page, false, false)
-
-       -- Even for mod-admin-full network just uses first submenu item as landing
-       page = node("admin", "network")
-       page.title = _("Network")
-       page.order = 50
-       page.index = true
-       toplevel_page(page, false, false)
-
-       if nixio.fs.access("/etc/config/dhcp") then
-               page = entry({"admin", "dhcplease_status"}, call("lease_status"), nil)
-               page.leaf = true
-       end
-
-       local has_wifi = false
-
-       uci:foreach("wireless", "wifi-device",
-               function(s)
-                       has_wifi = true
-                       return false
-               end)
-
-       if has_wifi then
-               page = entry({"admin", "wireless_assoclist"}, call("wifi_assoclist"), nil)
-               page.leaf = true
-
-               page = entry({"admin", "wireless_deauth"}, post("wifi_deauth"), nil)
-               page.leaf = true
-       end
-
-       page = entry({"admin", "translations"}, call("action_translations"), nil)
-       page.leaf = true
-
-       -- Logout is last
-       entry({"admin", "logout"}, call("action_logout"), _("Logout"), 999)
-end
-
-function action_logout()
-       local dsp = require "luci.dispatcher"
-       local utl = require "luci.util"
-       local sid = dsp.context.authsession
-
-       if sid then
-               utl.ubus("session", "destroy", { ubus_rpc_session = sid })
-
-               luci.http.header("Set-Cookie", "sysauth=%s; expires=%s; path=%s" %{
-                       '', 'Thu, 01 Jan 1970 01:00:00 GMT', dsp.build_url()
-               })
-       end
-
-       luci.http.redirect(dsp.build_url())
-end
-
-function action_translations(lang)
-       local i18n = require "luci.i18n"
-       local http = require "luci.http"
-       local fs = require "nixio".fs
-
-       if lang and #lang > 0 then
-               lang = i18n.setlanguage(lang)
-               if lang then
-                       local s = fs.stat("%s/base.%s.lmo" %{ i18n.i18ndir, lang })
-                       if s then
-                               http.header("Cache-Control", "public, max-age=31536000")
-                               http.header("ETag", "%x-%x-%x" %{ s["ino"], s["size"], s["mtime"] })
-                       end
-               end
-       end
-
-       http.prepare_content("application/javascript; charset=utf-8")
-       http.write("window.TR=")
-       http.write_json(i18n.dump())
-end
-
-
-function lease_status()
-       local s = require "luci.tools.status"
-
-       luci.http.prepare_content("application/json")
-       luci.http.write('[')
-       luci.http.write_json(s.dhcp_leases())
-       luci.http.write(',')
-       luci.http.write_json(s.dhcp6_leases())
-       luci.http.write(']')
-end
-
-function wifi_assoclist()
-       local s = require "luci.tools.status"
-
-       luci.http.prepare_content("application/json")
-       luci.http.write_json(s.wifi_assoclist())
-end
-
-function wifi_deauth()
-       local iface = luci.http.formvalue("iface")
-       local bssid = luci.http.formvalue("bssid")
-
-       if iface and bssid then
-               luci.util.ubus("hostapd.%s" % iface, "del_client", {
-                       addr = bssid,
-                       deauth = true,
-                       reason = 5,
-                       ban_time = 60000
-               })
-       end
-       luci.http.status(200, "OK")
-end
diff --git a/package/luci/modules/luci-base/luasrc/controller/admin/uci.lua b/package/luci/modules/luci-base/luasrc/controller/admin/uci.lua
deleted file mode 100644 (file)
index 1d955dd..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2010-2015 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.admin.uci", package.seeall)
-
-function index()
-       local redir = luci.http.formvalue("redir", true)
-               or table.concat(luci.dispatcher.context.request, "/")
-
-       entry({"admin", "uci"}, nil, _("Configuration"))
-       entry({"admin", "uci", "changes"}, post_on({ trigger_apply = true }, "action_changes"), _("Changes"), 40).query = {redir=redir}
-       entry({"admin", "uci", "revert"}, post("action_revert"), _("Revert"), 30).query = {redir=redir}
-
-       local node
-       local authen = function(checkpass, allowed_users)
-               return "root", luci.http.formvalue("sid")
-       end
-
-       node = entry({"admin", "uci", "apply_rollback"}, post("action_apply_rollback"), nil)
-       node.cors = true
-       node.sysauth_authenticator = authen
-
-       node = entry({"admin", "uci", "apply_unchecked"}, post("action_apply_unchecked"), nil)
-       node.cors = true
-       node.sysauth_authenticator = authen
-
-       node = entry({"admin", "uci", "confirm"}, call("action_confirm"), nil)
-       node.cors = true
-       node.sysauth = false
-end
-
-
-function action_changes()
-       local uci  = require "luci.model.uci"
-       local changes = uci:changes()
-
-       luci.template.render("admin_uci/changes", {
-               changes       = next(changes) and changes,
-               timeout       = timeout,
-               trigger_apply = luci.http.formvalue("trigger_apply") and true or false
-       })
-end
-
-function action_revert()
-       local uci = require "luci.model.uci"
-       local changes = uci:changes()
-
-       -- Collect files to be reverted
-       local r, tbl
-       for r, tbl in pairs(changes) do
-               uci:revert(r)
-       end
-
-       luci.template.render("admin_uci/revert", {
-               changes        = next(changes) and changes,
-               trigger_revert = true
-       })
-end
-
-
-local function ubus_state_to_http(errstr)
-       local map = {
-               ["Invalid command"]   = 400,
-               ["Invalid argument"]  = 400,
-               ["Method not found"]  = 404,
-               ["Entry not found"]   = 404,
-               ["No data"]           = 204,
-               ["Permission denied"] = 403,
-               ["Timeout"]           = 504,
-               ["Not supported"]     = 500,
-               ["Unknown error"]     = 500,
-               ["Connection failed"] = 503
-       }
-
-       local code = map[errstr] or 200
-       local msg  = errstr      or "OK"
-
-       luci.http.status(code, msg)
-
-       if code ~= 204 then
-               luci.http.prepare_content("text/plain")
-               luci.http.write(msg)
-       end
-end
-
-function action_apply_rollback()
-       local uci = require "luci.model.uci"
-       local token, errstr = uci:apply(true)
-       if token then
-               luci.http.prepare_content("application/json")
-               luci.http.write_json({ token = token })
-       else
-               ubus_state_to_http(errstr)
-       end
-end
-
-function action_apply_unchecked()
-       local uci = require "luci.model.uci"
-       local _, errstr = uci:apply(false)
-       ubus_state_to_http(errstr)
-end
-
-function action_confirm()
-       local uci = require "luci.model.uci"
-       local token = luci.http.formvalue("token")
-       local _, errstr = uci:confirm(token)
-       ubus_state_to_http(errstr)
-end
diff --git a/package/luci/modules/luci-base/luasrc/debug.lua b/package/luci/modules/luci-base/luasrc/debug.lua
deleted file mode 100644 (file)
index 8ff1bb6..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-local debug = require "debug"
-local io = require "io"
-local collectgarbage, floor = collectgarbage, math.floor
-
-module "luci.debug"
-__file__ = debug.getinfo(1, 'S').source:sub(2)
-
--- Enables the memory tracer with given flags and returns a function to disable the tracer again
-function trap_memtrace(flags, dest)
-       flags = flags or "clr"
-       local tracefile = io.open(dest or "/tmp/memtrace", "w")
-       local peak = 0
-
-       local function trap(what, line)
-               local info = debug.getinfo(2, "Sn")
-               local size = floor(collectgarbage("count"))
-               if size > peak then
-                       peak = size
-               end
-               if tracefile then
-                       tracefile:write(
-                               "[", what, "] ", info.source, ":", (line or "?"), "\t",
-                               (info.namewhat or ""), "\t",
-                               (info.name or ""), "\t",
-                               size, " (", peak, ")\n"
-                       )
-               end
-       end
-
-       debug.sethook(trap, flags)
-
-       return function()
-               debug.sethook()
-               tracefile:close()
-       end
-end
-
diff --git a/package/luci/modules/luci-base/luasrc/dispatcher.lua b/package/luci/modules/luci-base/luasrc/dispatcher.lua
deleted file mode 100644 (file)
index d85cb58..0000000
+++ /dev/null
@@ -1,1028 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008-2015 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local fs = require "nixio.fs"
-local sys = require "luci.sys"
-local util = require "luci.util"
-local http = require "luci.http"
-local nixio = require "nixio", require "nixio.util"
-
-module("luci.dispatcher", package.seeall)
-context = util.threadlocal()
-uci = require "luci.model.uci"
-i18n = require "luci.i18n"
-_M.fs = fs
-
--- Index table
-local index = nil
-
--- Fastindex
-local fi
-
-
-function build_url(...)
-       local path = {...}
-       local url = { http.getenv("SCRIPT_NAME") or "" }
-
-       local p
-       for _, p in ipairs(path) do
-               if p:match("^[a-zA-Z0-9_%-%.%%/,;]+$") then
-                       url[#url+1] = "/"
-                       url[#url+1] = p
-               end
-       end
-
-       if #path == 0 then
-               url[#url+1] = "/"
-       end
-
-       return table.concat(url, "")
-end
-
-function _ordered_children(node)
-       local name, child, children = nil, nil, {}
-
-       for name, child in pairs(node.nodes) do
-               children[#children+1] = {
-                       name  = name,
-                       node  = child,
-                       order = child.order or 100
-               }
-       end
-
-       table.sort(children, function(a, b)
-               if a.order == b.order then
-                       return a.name < b.name
-               else
-                       return a.order < b.order
-               end
-       end)
-
-       return children
-end
-
-function node_visible(node)
-   if node then
-         return not (
-                (not node.title or #node.title == 0) or
-                (not node.target or node.hidden == true) or
-                (type(node.target) == "table" and node.target.type == "firstchild" and
-                 (type(node.nodes) ~= "table" or not next(node.nodes)))
-         )
-   end
-   return false
-end
-
-function node_childs(node)
-       local rv = { }
-       if node then
-               local _, child
-               for _, child in ipairs(_ordered_children(node)) do
-                       if node_visible(child.node) then
-                               rv[#rv+1] = child.name
-                       end
-               end
-       end
-       return rv
-end
-
-
-function error404(message)
-       http.status(404, "Not Found")
-       message = message or "Not Found"
-
-       local function render()
-               local template = require "luci.template"
-               template.render("error404")
-       end
-
-       if not util.copcall(render) then
-               http.prepare_content("text/plain")
-               http.write(message)
-       end
-
-       return false
-end
-
-function error500(message)
-       util.perror(message)
-       if not context.template_header_sent then
-               http.status(500, "Internal Server Error")
-               http.prepare_content("text/plain")
-               http.write(message)
-       else
-               require("luci.template")
-               if not util.copcall(luci.template.render, "error500", {message=message}) then
-                       http.prepare_content("text/plain")
-                       http.write(message)
-               end
-       end
-       return false
-end
-
-function httpdispatch(request, prefix)
-       http.context.request = request
-
-       local r = {}
-       context.request = r
-
-       local pathinfo = http.urldecode(request:getenv("PATH_INFO") or "", true)
-
-       if prefix then
-               for _, node in ipairs(prefix) do
-                       r[#r+1] = node
-               end
-       end
-
-       local node
-       for node in pathinfo:gmatch("[^/%z]+") do
-               r[#r+1] = node
-       end
-
-       local stat, err = util.coxpcall(function()
-               dispatch(context.request)
-       end, error500)
-
-       http.close()
-
-       --context._disable_memtrace()
-end
-
-local function require_post_security(target)
-       if type(target) == "table" then
-               if type(target.post) == "table" then
-                       local param_name, required_val, request_val
-
-                       for param_name, required_val in pairs(target.post) do
-                               request_val = http.formvalue(param_name)
-
-                               if (type(required_val) == "string" and
-                                   request_val ~= required_val) or
-                                  (required_val == true and request_val == nil)
-                               then
-                                       return false
-                               end
-                       end
-
-                       return true
-               end
-
-               return (target.post == true)
-       end
-
-       return false
-end
-
-function test_post_security()
-       if http.getenv("REQUEST_METHOD") ~= "POST" then
-               http.status(405, "Method Not Allowed")
-               http.header("Allow", "POST")
-               return false
-       end
-
-       if http.formvalue("token") ~= context.authtoken then
-               http.status(403, "Forbidden")
-               luci.template.render("csrftoken")
-               return false
-       end
-
-       return true
-end
-
-local function session_retrieve(sid, allowed_users)
-       local sdat = util.ubus("session", "get", { ubus_rpc_session = sid })
-
-       if type(sdat) == "table" and
-          type(sdat.values) == "table" and
-          type(sdat.values.token) == "string" and
-          (not allowed_users or
-           util.contains(allowed_users, sdat.values.username))
-       then
-               uci:set_session_id(sid)
-               return sid, sdat.values
-       end
-
-       return nil, nil
-end
-
-local function session_setup(user, pass, allowed_users)
-       if util.contains(allowed_users, user) then
-               local login = util.ubus("session", "login", {
-                       username = user,
-                       password = pass,
-                       timeout  = tonumber(luci.config.sauth.sessiontime)
-               })
-
-               local rp = context.requestpath
-                       and table.concat(context.requestpath, "/") or ""
-
-               if type(login) == "table" and
-                  type(login.ubus_rpc_session) == "string"
-               then
-                       util.ubus("session", "set", {
-                               ubus_rpc_session = login.ubus_rpc_session,
-                               values = { token = sys.uniqueid(16) }
-                       })
-
-                       io.stderr:write("luci: accepted login on /%s for %s from %s\n"
-                               %{ rp, user, http.getenv("REMOTE_ADDR") or "?" })
-
-                       return session_retrieve(login.ubus_rpc_session)
-               end
-
-               io.stderr:write("luci: failed login on /%s for %s from %s\n"
-                       %{ rp, user, http.getenv("REMOTE_ADDR") or "?" })
-       end
-
-       return nil, nil
-end
-
-function dispatch(request)
-       --context._disable_memtrace = require "luci.debug".trap_memtrace("l")
-       local ctx = context
-       ctx.path = request
-
-       local conf = require "luci.config"
-       assert(conf.main,
-               "/etc/config/luci seems to be corrupt, unable to find section 'main'")
-
-       local i18n = require "luci.i18n"
-       local lang = conf.main.lang or "auto"
-       if lang == "auto" then
-               local aclang = http.getenv("HTTP_ACCEPT_LANGUAGE") or ""
-               for aclang in aclang:gmatch("[%w_-]+") do
-                       local country, culture = aclang:match("^([a-z][a-z])[_-]([a-zA-Z][a-zA-Z])$")
-                       if country and culture then
-                               local cc = "%s_%s" %{ country, culture:lower() }
-                               if conf.languages[cc] then
-                                       lang = cc
-                                       break
-                               elseif conf.languages[country] then
-                                       lang = country
-                                       break
-                               end
-                       elseif conf.languages[aclang] then
-                               lang = aclang
-                               break
-                       end
-               end
-       end
-       if lang == "auto" then
-               lang = i18n.default
-       end
-       i18n.setlanguage(lang)
-
-       local c = ctx.tree
-       local stat
-       if not c then
-               c = createtree()
-       end
-
-       local track = {}
-       local args = {}
-       ctx.args = args
-       ctx.requestargs = ctx.requestargs or args
-       local n
-       local preq = {}
-       local freq = {}
-
-       for i, s in ipairs(request) do
-               preq[#preq+1] = s
-               freq[#freq+1] = s
-               c = c.nodes[s]
-               n = i
-               if not c then
-                       break
-               end
-
-               util.update(track, c)
-
-               if c.leaf then
-                       break
-               end
-       end
-
-       if c and c.leaf then
-               for j=n+1, #request do
-                       args[#args+1] = request[j]
-                       freq[#freq+1] = request[j]
-               end
-       end
-
-       ctx.requestpath = ctx.requestpath or freq
-       ctx.path = preq
-
-       -- Init template engine
-       if (c and c.index) or not track.notemplate then
-               local tpl = require("luci.template")
-               local media = track.mediaurlbase or luci.config.main.mediaurlbase
-               if not pcall(tpl.Template, "themes/%s/header" % fs.basename(media)) then
-                       media = nil
-                       for name, theme in pairs(luci.config.themes) do
-                               if name:sub(1,1) ~= "." and pcall(tpl.Template,
-                                "themes/%s/header" % fs.basename(theme)) then
-                                       media = theme
-                               end
-                       end
-                       assert(media, "No valid theme found")
-               end
-
-               local function _ifattr(cond, key, val)
-                       if cond then
-                               local env = getfenv(3)
-                               local scope = (type(env.self) == "table") and env.self
-                               if type(val) == "table" then
-                                       if not next(val) then
-                                               return ''
-                                       else
-                                               val = util.serialize_json(val)
-                                       end
-                               end
-                               return string.format(
-                                       ' %s="%s"', tostring(key),
-                                       util.pcdata(tostring( val
-                                        or (type(env[key]) ~= "function" and env[key])
-                                        or (scope and type(scope[key]) ~= "function" and scope[key])
-                                        or "" ))
-                               )
-                       else
-                               return ''
-                       end
-               end
-
-               tpl.context.viewns = setmetatable({
-                  write       = http.write;
-                  include     = function(name) tpl.Template(name):render(getfenv(2)) end;
-                  translate   = i18n.translate;
-                  translatef  = i18n.translatef;
-                  export      = function(k, v) if tpl.context.viewns[k] == nil then tpl.context.viewns[k] = v end end;
-                  striptags   = util.striptags;
-                  pcdata      = util.pcdata;
-                  media       = media;
-                  theme       = fs.basename(media);
-                  resource    = luci.config.main.resourcebase;
-                  ifattr      = function(...) return _ifattr(...) end;
-                  attr        = function(...) return _ifattr(true, ...) end;
-                  url         = build_url;
-               }, {__index=function(tbl, key)
-                       if key == "controller" then
-                               return build_url()
-                       elseif key == "REQUEST_URI" then
-                               return build_url(unpack(ctx.requestpath))
-                       elseif key == "FULL_REQUEST_URI" then
-                               local url = { http.getenv("SCRIPT_NAME") or "", http.getenv("PATH_INFO") }
-                               local query = http.getenv("QUERY_STRING")
-                               if query and #query > 0 then
-                                       url[#url+1] = "?"
-                                       url[#url+1] = query
-                               end
-                               return table.concat(url, "")
-                       elseif key == "token" then
-                               return ctx.authtoken
-                       else
-                               return rawget(tbl, key) or _G[key]
-                       end
-               end})
-       end
-
-       track.dependent = (track.dependent ~= false)
-       assert(not track.dependent or not track.auto,
-               "Access Violation\nThe page at '" .. table.concat(request, "/") .. "/' " ..
-               "has no parent node so the access to this location has been denied.\n" ..
-               "This is a software bug, please report this message at " ..
-               "https://github.com/openwrt/luci/issues"
-       )
-
-       if track.sysauth and not ctx.authsession then
-               local authen = track.sysauth_authenticator
-               local _, sid, sdat, default_user, allowed_users
-
-               if type(authen) == "string" and authen ~= "htmlauth" then
-                       error500("Unsupported authenticator %q configured" % authen)
-                       return
-               end
-
-               if type(track.sysauth) == "table" then
-                       default_user, allowed_users = nil, track.sysauth
-               else
-                       default_user, allowed_users = track.sysauth, { track.sysauth }
-               end
-
-               if type(authen) == "function" then
-                       _, sid = authen(sys.user.checkpasswd, allowed_users)
-               else
-                       sid = http.getcookie("sysauth")
-               end
-
-               sid, sdat = session_retrieve(sid, allowed_users)
-
-               if not (sid and sdat) and authen == "htmlauth" then
-                       local user = http.getenv("HTTP_AUTH_USER")
-                       local pass = http.getenv("HTTP_AUTH_PASS")
-
-                       if user == nil and pass == nil then
-                               user = http.formvalue("luci_username")
-                               pass = http.formvalue("luci_password")
-                       end
-
-                       sid, sdat = session_setup(user, pass, allowed_users)
-
-                       if not sid then
-                               local tmpl = require "luci.template"
-
-                               context.path = {}
-
-                               http.status(403, "Forbidden")
-                               http.header("X-LuCI-Login-Required", "yes")
-                               tmpl.render(track.sysauth_template or "sysauth", {
-                                       duser = default_user,
-                                       fuser = user
-                               })
-
-                               return
-                       end
-
-                       http.header("Set-Cookie", 'sysauth=%s; path=%s; HttpOnly%s' %{
-                               sid, build_url(), http.getenv("HTTPS") == "on" and "; secure" or ""
-                       })
-                       http.redirect(build_url(unpack(ctx.requestpath)))
-               end
-
-               if not sid or not sdat then
-                       http.status(403, "Forbidden")
-                       http.header("X-LuCI-Login-Required", "yes")
-                       return
-               end
-
-               ctx.authsession = sid
-               ctx.authtoken = sdat.token
-               ctx.authuser = sdat.username
-       end
-
-       if track.cors and http.getenv("REQUEST_METHOD") == "OPTIONS" then
-               luci.http.status(200, "OK")
-               luci.http.header("Access-Control-Allow-Origin", http.getenv("HTTP_ORIGIN") or "*")
-               luci.http.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS")
-               return
-       end
-
-       if c and require_post_security(c.target) then
-               if not test_post_security(c) then
-                       return
-               end
-       end
-
-       if track.setgroup then
-               sys.process.setgroup(track.setgroup)
-       end
-
-       if track.setuser then
-               sys.process.setuser(track.setuser)
-       end
-
-       local target = nil
-       if c then
-               if type(c.target) == "function" then
-                       target = c.target
-               elseif type(c.target) == "table" then
-                       target = c.target.target
-               end
-       end
-
-       if c and (c.index or type(target) == "function") then
-               ctx.dispatched = c
-               ctx.requested = ctx.requested or ctx.dispatched
-       end
-
-       if c and c.index then
-               local tpl = require "luci.template"
-
-               if util.copcall(tpl.render, "indexer", {}) then
-                       return true
-               end
-       end
-
-       if type(target) == "function" then
-               util.copcall(function()
-                       local oldenv = getfenv(target)
-                       local module = require(c.module)
-                       local env = setmetatable({}, {__index=
-
-                       function(tbl, key)
-                               return rawget(tbl, key) or module[key] or oldenv[key]
-                       end})
-
-                       setfenv(target, env)
-               end)
-
-               local ok, err
-               if type(c.target) == "table" then
-                       ok, err = util.copcall(target, c.target, unpack(args))
-               else
-                       ok, err = util.copcall(target, unpack(args))
-               end
-               if not ok then
-                       error500("Failed to execute " .. (type(c.target) == "function" and "function" or c.target.type or "unknown") ..
-                                " dispatcher target for entry '/" .. table.concat(request, "/") .. "'.\n" ..
-                                "The called action terminated with an exception:\n" .. tostring(err or "(unknown)"))
-               end
-       else
-               local root = node()
-               if not root or not root.target then
-                       error404("No root node was registered, this usually happens if no module was installed.\n" ..
-                                "Install luci-mod-admin-full and retry. " ..
-                                "If the module is already installed, try removing the /tmp/luci-indexcache file.")
-               else
-                       error404("No page is registered at '/" .. table.concat(request, "/") .. "'.\n" ..
-                                "If this url belongs to an extension, make sure it is properly installed.\n" ..
-                                "If the extension was recently installed, try removing the /tmp/luci-indexcache file.")
-               end
-       end
-end
-
-function createindex()
-       local controllers = { }
-       local base = "%s/controller/" % util.libpath()
-       local _, path
-
-       for path in (fs.glob("%s*.lua" % base) or function() end) do
-               controllers[#controllers+1] = path
-       end
-
-       for path in (fs.glob("%s*/*.lua" % base) or function() end) do
-               controllers[#controllers+1] = path
-       end
-
-       if indexcache then
-               local cachedate = fs.stat(indexcache, "mtime")
-               if cachedate then
-                       local realdate = 0
-                       for _, obj in ipairs(controllers) do
-                               local omtime = fs.stat(obj, "mtime")
-                               realdate = (omtime and omtime > realdate) and omtime or realdate
-                       end
-
-                       if cachedate > realdate and sys.process.info("uid") == 0 then
-                               assert(
-                                       sys.process.info("uid") == fs.stat(indexcache, "uid")
-                                       and fs.stat(indexcache, "modestr") == "rw-------",
-                                       "Fatal: Indexcache is not sane!"
-                               )
-
-                               index = loadfile(indexcache)()
-                               return index
-                       end
-               end
-       end
-
-       index = {}
-
-       for _, path in ipairs(controllers) do
-               local modname = "luci.controller." .. path:sub(#base+1, #path-4):gsub("/", ".")
-               local mod = require(modname)
-               assert(mod ~= true,
-                      "Invalid controller file found\n" ..
-                      "The file '" .. path .. "' contains an invalid module line.\n" ..
-                      "Please verify whether the module name is set to '" .. modname ..
-                      "' - It must correspond to the file path!")
-
-               local idx = mod.index
-               assert(type(idx) == "function",
-                      "Invalid controller file found\n" ..
-                      "The file '" .. path .. "' contains no index() function.\n" ..
-                      "Please make sure that the controller contains a valid " ..
-                      "index function and verify the spelling!")
-
-               index[modname] = idx
-       end
-
-       if indexcache then
-               local f = nixio.open(indexcache, "w", 600)
-               f:writeall(util.get_bytecode(index))
-               f:close()
-       end
-end
-
--- Build the index before if it does not exist yet.
-function createtree()
-       if not index then
-               createindex()
-       end
-
-       local ctx  = context
-       local tree = {nodes={}, inreq=true}
-
-       ctx.treecache = setmetatable({}, {__mode="v"})
-       ctx.tree = tree
-
-       local scope = setmetatable({}, {__index = luci.dispatcher})
-
-       for k, v in pairs(index) do
-               scope._NAME = k
-               setfenv(v, scope)
-               v()
-       end
-
-       return tree
-end
-
-function assign(path, clone, title, order)
-       local obj  = node(unpack(path))
-       obj.nodes  = nil
-       obj.module = nil
-
-       obj.title = title
-       obj.order = order
-
-       setmetatable(obj, {__index = _create_node(clone)})
-
-       return obj
-end
-
-function entry(path, target, title, order)
-       local c = node(unpack(path))
-
-       c.target = target
-       c.title  = title
-       c.order  = order
-       c.module = getfenv(2)._NAME
-
-       return c
-end
-
--- enabling the node.
-function get(...)
-       return _create_node({...})
-end
-
-function node(...)
-       local c = _create_node({...})
-
-       c.module = getfenv(2)._NAME
-       c.auto = nil
-
-       return c
-end
-
-function lookup(...)
-       local i, path = nil, {}
-       for i = 1, select('#', ...) do
-               local name, arg = nil, tostring(select(i, ...))
-               for name in arg:gmatch("[^/]+") do
-                       path[#path+1] = name
-               end
-       end
-
-       for i = #path, 1, -1 do
-               local node = context.treecache[table.concat(path, ".", 1, i)]
-               if node and (i == #path or node.leaf) then
-                       return node, build_url(unpack(path))
-               end
-       end
-end
-
-function _create_node(path)
-       if #path == 0 then
-               return context.tree
-       end
-
-       local name = table.concat(path, ".")
-       local c = context.treecache[name]
-
-       if not c then
-               local last = table.remove(path)
-               local parent = _create_node(path)
-
-               c = {nodes={}, auto=true, inreq=true}
-
-               local _, n
-               for _, n in ipairs(path) do
-                       if context.path[_] ~= n then
-                               c.inreq = false
-                               break
-                       end
-               end
-
-               c.inreq = c.inreq and (context.path[#path + 1] == last)
-
-               parent.nodes[last] = c
-               context.treecache[name] = c
-       end
-
-       return c
-end
-
--- Subdispatchers --
-
-function _find_eligible_node(root, prefix, deep, types, descend)
-       local children = _ordered_children(root)
-
-       if not root.leaf and deep ~= nil then
-               local sub_path = { unpack(prefix) }
-
-               if deep == false then
-                       deep = nil
-               end
-
-               local _, child
-               for _, child in ipairs(children) do
-                       sub_path[#prefix+1] = child.name
-
-                       local res_path = _find_eligible_node(child.node, sub_path,
-                                                            deep, types, true)
-
-                       if res_path then
-                               return res_path
-                       end
-               end
-       end
-
-       if descend and
-          (not types or
-           (type(root.target) == "table" and
-            util.contains(types, root.target.type)))
-       then
-               return prefix
-       end
-end
-
-function _find_node(recurse, types)
-       local path = { unpack(context.path) }
-       local name = table.concat(path, ".")
-       local node = context.treecache[name]
-
-       path = _find_eligible_node(node, path, recurse, types)
-
-       if path then
-               dispatch(path)
-       else
-               require "luci.template".render("empty_node_placeholder")
-       end
-end
-
-function _firstchild()
-       return _find_node(false, nil)
-end
-
-function firstchild()
-       return { type = "firstchild", target = _firstchild }
-end
-
-function _firstnode()
-       return _find_node(true, { "cbi", "form", "template", "arcombine" })
-end
-
-function firstnode()
-       return { type = "firstnode", target = _firstnode }
-end
-
-function alias(...)
-       local req = {...}
-       return function(...)
-               for _, r in ipairs({...}) do
-                       req[#req+1] = r
-               end
-
-               dispatch(req)
-       end
-end
-
-function rewrite(n, ...)
-       local req = {...}
-       return function(...)
-               local dispatched = util.clone(context.dispatched)
-
-               for i=1,n do
-                       table.remove(dispatched, 1)
-               end
-
-               for i, r in ipairs(req) do
-                       table.insert(dispatched, i, r)
-               end
-
-               for _, r in ipairs({...}) do
-                       dispatched[#dispatched+1] = r
-               end
-
-               dispatch(dispatched)
-       end
-end
-
-
-local function _call(self, ...)
-       local func = getfenv()[self.name]
-       assert(func ~= nil,
-              'Cannot resolve function "' .. self.name .. '". Is it misspelled or local?')
-
-       assert(type(func) == "function",
-              'The symbol "' .. self.name .. '" does not refer to a function but data ' ..
-              'of type "' .. type(func) .. '".')
-
-       if #self.argv > 0 then
-               return func(unpack(self.argv), ...)
-       else
-               return func(...)
-       end
-end
-
-function call(name, ...)
-       return {type = "call", argv = {...}, name = name, target = _call}
-end
-
-function post_on(params, name, ...)
-       return {
-               type = "call",
-               post = params,
-               argv = { ... },
-               name = name,
-               target = _call
-       }
-end
-
-function post(...)
-       return post_on(true, ...)
-end
-
-
-local _template = function(self, ...)
-       require "luci.template".render(self.view)
-end
-
-function template(name)
-       return {type = "template", view = name, target = _template}
-end
-
-
-local function _cbi(self, ...)
-       local cbi = require "luci.cbi"
-       local tpl = require "luci.template"
-       local http = require "luci.http"
-
-       local config = self.config or {}
-       local maps = cbi.load(self.model, ...)
-
-       local state = nil
-
-       local i, res
-       for i, res in ipairs(maps) do
-               if util.instanceof(res, cbi.SimpleForm) then
-                       io.stderr:write("Model %s returns SimpleForm but is dispatched via cbi(),\n"
-                               % self.model)
-
-                       io.stderr:write("please change %s to use the form() action instead.\n"
-                               % table.concat(context.request, "/"))
-               end
-
-               res.flow = config
-               local cstate = res:parse()
-               if cstate and (not state or cstate < state) then
-                       state = cstate
-               end
-       end
-
-       local function _resolve_path(path)
-               return type(path) == "table" and build_url(unpack(path)) or path
-       end
-
-       if config.on_valid_to and state and state > 0 and state < 2 then
-               http.redirect(_resolve_path(config.on_valid_to))
-               return
-       end
-
-       if config.on_changed_to and state and state > 1 then
-               http.redirect(_resolve_path(config.on_changed_to))
-               return
-       end
-
-       if config.on_success_to and state and state > 0 then
-               http.redirect(_resolve_path(config.on_success_to))
-               return
-       end
-
-       if config.state_handler then
-               if not config.state_handler(state, maps) then
-                       return
-               end
-       end
-
-       http.header("X-CBI-State", state or 0)
-
-       if not config.noheader then
-               tpl.render("cbi/header", {state = state})
-       end
-
-       local redirect
-       local messages
-       local applymap   = false
-       local pageaction = true
-       local parsechain = { }
-
-       for i, res in ipairs(maps) do
-               if res.apply_needed and res.parsechain then
-                       local c
-                       for _, c in ipairs(res.parsechain) do
-                               parsechain[#parsechain+1] = c
-                       end
-                       applymap = true
-               end
-
-               if res.redirect then
-                       redirect = redirect or res.redirect
-               end
-
-               if res.pageaction == false then
-                       pageaction = false
-               end
-
-               if res.message then
-                       messages = messages or { }
-                       messages[#messages+1] = res.message
-               end
-       end
-
-       for i, res in ipairs(maps) do
-               res:render({
-                       firstmap   = (i == 1),
-                       redirect   = redirect,
-                       messages   = messages,
-                       pageaction = pageaction,
-                       parsechain = parsechain
-               })
-       end
-
-       if not config.nofooter then
-               tpl.render("cbi/footer", {
-                       flow          = config,
-                       pageaction    = pageaction,
-                       redirect      = redirect,
-                       state         = state,
-                       autoapply     = config.autoapply,
-                       trigger_apply = applymap
-               })
-       end
-end
-
-function cbi(model, config)
-       return {
-               type = "cbi",
-               post = { ["cbi.submit"] = true },
-               config = config,
-               model = model,
-               target = _cbi
-       }
-end
-
-
-local function _arcombine(self, ...)
-       local argv = {...}
-       local target = #argv > 0 and self.targets[2] or self.targets[1]
-       setfenv(target.target, self.env)
-       target:target(unpack(argv))
-end
-
-function arcombine(trg1, trg2)
-       return {type = "arcombine", env = getfenv(), target = _arcombine, targets = {trg1, trg2}}
-end
-
-
-local function _form(self, ...)
-       local cbi = require "luci.cbi"
-       local tpl = require "luci.template"
-       local http = require "luci.http"
-
-       local maps = luci.cbi.load(self.model, ...)
-       local state = nil
-
-       local i, res
-       for i, res in ipairs(maps) do
-               local cstate = res:parse()
-               if cstate and (not state or cstate < state) then
-                       state = cstate
-               end
-       end
-
-       http.header("X-CBI-State", state or 0)
-       tpl.render("header")
-       for i, res in ipairs(maps) do
-               res:render()
-       end
-       tpl.render("footer")
-end
-
-function form(model)
-       return {
-               type = "cbi",
-               post = { ["cbi.submit"] = true },
-               model = model,
-               target = _form
-       }
-end
-
-translate = i18n.translate
-
--- This function does not actually translate the given argument but
--- is used by build/i18n-scan.pl to find translatable entries.
-function _(text)
-       return text
-end
diff --git a/package/luci/modules/luci-base/luasrc/dispatcher.luadoc b/package/luci/modules/luci-base/luasrc/dispatcher.luadoc
deleted file mode 100644 (file)
index a77f8d8..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
----[[
-LuCI web dispatcher.
-]]
-module "luci.dispatcher"
-
----[[
-Build the URL relative to the server webroot from given virtual path.
-
-@class function
-@name build_url
-@param ...     Virtual path
-@return                Relative URL
-]]
-
----[[
-Check whether a dispatch node shall be visible
-
-@class function
-@name node_visible
-@param node    Dispatch node
-@return                Boolean indicating whether the node should be visible
-]]
-
----[[
-Return a sorted table of visible children within a given node
-
-@class function
-@name node_childs
-@param node    Dispatch node
-@return                Ordered table of child node names
-]]
-
----[[
-Send a 404 error code and render the "error404" template if available.
-
-@class function
-@name error404
-@param message Custom error message (optional)
-@return                        false
-]]
-
----[[
-Send a 500 error code and render the "error500" template if available.
-
-@class function
-@name error500
-@param message Custom error message (optional)#
-@return                        false
-]]
-
----[[
-Dispatch an HTTP request.
-
-@class function
-@name httpdispatch
-@param request LuCI HTTP Request object
-]]
-
----[[
-Dispatches a LuCI virtual path.
-
-@class function
-@name dispatch
-@param request Virtual path
-]]
-
----[[
-Generate the dispatching index using the native file-cache based strategy.
-
-
-@class function
-@name createindex
-]]
-
----[[
-Create the dispatching tree from the index.
-
-Build the index before if it does not exist yet.
-
-@class function
-@name createtree
-]]
-
----[[
-Clone a node of the dispatching tree to another position.
-
-@class function
-@name assign
-@param path    Virtual path destination
-@param clone   Virtual path source
-@param title   Destination node title (optional)
-@param order   Destination node order value (optional)
-@return                        Dispatching tree node
-]]
-
----[[
-Create a new dispatching node and define common parameters.
-
-@class function
-@name entry
-@param path    Virtual path
-@param target  Target function to call when dispatched.
-@param title   Destination node title
-@param order   Destination node order value (optional)
-@return                        Dispatching tree node
-]]
-
----[[
-Fetch or create a dispatching node without setting the target module or
-enabling the node.
-
-@class function
-@name get
-@param ...             Virtual path
-@return                        Dispatching tree node
-]]
-
----[[
-Fetch or create a new dispatching node.
-
-@class function
-@name node
-@param ...             Virtual path
-@return                        Dispatching tree node
-]]
-
----[[
-Lookup node in dispatching tree.
-
-@class function
-@name lookup
-@param  ...            Virtual path
-@return Node object, canonical url or nil if the path was not found.
-]]
-
----[[
-Alias the first (lowest order) page automatically
-
-
-@class function
-@name firstchild
-]]
-
----[[
-Create a redirect to another dispatching node.
-
-@class function
-@name alias
-@param ...             Virtual path destination
-]]
-
----[[
-Rewrite the first x path values of the request.
-
-@class function
-@name rewrite
-@param n               Number of path values to replace
-@param ...             Virtual path to replace removed path values with
-]]
-
----[[
-Create a function-call dispatching target.
-
-@class function
-@name call
-@param name    Target function of local controller
-@param ...             Additional parameters passed to the function
-]]
-
----[[
-Create a template render dispatching target.
-
-@class function
-@name template
-@param name    Template to be rendered
-]]
-
----[[
-Create a CBI model dispatching target.
-
-@class function
-@name cbi
-@param model   CBI model to be rendered
-]]
-
----[[
-Create a combined dispatching target for non argv and argv requests.
-
-@class function
-@name arcombine
-@param trg1    Overview Target
-@param trg2    Detail Target
-]]
-
----[[
-Create a CBI form model dispatching target.
-
-@class function
-@name form
-@param model   CBI form model tpo be rendered
-]]
-
----[[
-Access the luci.i18n translate() api.
-
-@class  function
-@name   translate
-@param  text    Text to translate
-]]
-
----[[
-No-op function used to mark translation entries for menu labels.
-
-This function does not actually translate the given argument but
-is used by build/i18n-scan.pl to find translatable entries.
-
-@class function
-@name _
-]]
-
diff --git a/package/luci/modules/luci-base/luasrc/http.lua b/package/luci/modules/luci-base/luasrc/http.lua
deleted file mode 100644 (file)
index 20b55f2..0000000
+++ /dev/null
@@ -1,554 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2010-2018 Jo-Philipp Wich <jo@mein.io>
--- Licensed to the public under the Apache License 2.0.
-
-local util  = require "luci.util"
-local coroutine = require "coroutine"
-local table = require "table"
-local lhttp = require "lucihttp"
-local nixio = require "nixio"
-local ltn12 = require "luci.ltn12"
-
-local table, ipairs, pairs, type, tostring, tonumber, error =
-       table, ipairs, pairs, type, tostring, tonumber, error
-
-module "luci.http"
-
-HTTP_MAX_CONTENT      = 1024*100               -- 100 kB maximum content size
-
-context = util.threadlocal()
-
-Request = util.class()
-function Request.__init__(self, env, sourcein, sinkerr)
-       self.input = sourcein
-       self.error = sinkerr
-
-
-       -- File handler nil by default to let .content() work
-       self.filehandler = nil
-
-       -- HTTP-Message table
-       self.message = {
-               env = env,
-               headers = {},
-               params = urldecode_params(env.QUERY_STRING or ""),
-       }
-
-       self.parsed_input = false
-end
-
-function Request.formvalue(self, name, noparse)
-       if not noparse and not self.parsed_input then
-               self:_parse_input()
-       end
-
-       if name then
-               return self.message.params[name]
-       else
-               return self.message.params
-       end
-end
-
-function Request.formvaluetable(self, prefix)
-       local vals = {}
-       prefix = prefix and prefix .. "." or "."
-
-       if not self.parsed_input then
-               self:_parse_input()
-       end
-
-       local void = self.message.params[nil]
-       for k, v in pairs(self.message.params) do
-               if k:find(prefix, 1, true) == 1 then
-                       vals[k:sub(#prefix + 1)] = tostring(v)
-               end
-       end
-
-       return vals
-end
-
-function Request.content(self)
-       if not self.parsed_input then
-               self:_parse_input()
-       end
-
-       return self.message.content, self.message.content_length
-end
-
-function Request.getcookie(self, name)
-       return lhttp.header_attribute("cookie; " .. (self:getenv("HTTP_COOKIE") or ""), name)
-end
-
-function Request.getenv(self, name)
-       if name then
-               return self.message.env[name]
-       else
-               return self.message.env
-       end
-end
-
-function Request.setfilehandler(self, callback)
-       self.filehandler = callback
-
-       if not self.parsed_input then
-               return
-       end
-
-       -- If input has already been parsed then uploads are stored as unlinked
-       -- temporary files pointed to by open file handles in the parameter
-       -- value table. Loop all params, and invoke the file callback for any
-       -- param with an open file handle.
-       local name, value
-       for name, value in pairs(self.message.params) do
-               if type(value) == "table" then
-                       while value.fd do
-                               local data = value.fd:read(1024)
-                               local eof = (not data or data == "")
-
-                               callback(value, data, eof)
-
-                               if eof then
-                                       value.fd:close()
-                                       value.fd = nil
-                               end
-                       end
-               end
-       end
-end
-
-function Request._parse_input(self)
-       parse_message_body(
-                self.input,
-                self.message,
-                self.filehandler
-       )
-       self.parsed_input = true
-end
-
-function close()
-       if not context.eoh then
-               context.eoh = true
-               coroutine.yield(3)
-       end
-
-       if not context.closed then
-               context.closed = true
-               coroutine.yield(5)
-       end
-end
-
-function content()
-       return context.request:content()
-end
-
-function formvalue(name, noparse)
-       return context.request:formvalue(name, noparse)
-end
-
-function formvaluetable(prefix)
-       return context.request:formvaluetable(prefix)
-end
-
-function getcookie(name)
-       return context.request:getcookie(name)
-end
-
--- or the environment table itself.
-function getenv(name)
-       return context.request:getenv(name)
-end
-
-function setfilehandler(callback)
-       return context.request:setfilehandler(callback)
-end
-
-function header(key, value)
-       if not context.headers then
-               context.headers = {}
-       end
-       context.headers[key:lower()] = value
-       coroutine.yield(2, key, value)
-end
-
-function prepare_content(mime)
-       if not context.headers or not context.headers["content-type"] then
-               if mime == "application/xhtml+xml" then
-                       if not getenv("HTTP_ACCEPT") or
-                         not getenv("HTTP_ACCEPT"):find("application/xhtml+xml", nil, true) then
-                               mime = "text/html; charset=UTF-8"
-                       end
-                       header("Vary", "Accept")
-               end
-               header("Content-Type", mime)
-       end
-end
-
-function source()
-       return context.request.input
-end
-
-function status(code, message)
-       code = code or 200
-       message = message or "OK"
-       context.status = code
-       coroutine.yield(1, code, message)
-end
-
--- This function is as a valid LTN12 sink.
--- If the content chunk is nil this function will automatically invoke close.
-function write(content, src_err)
-       if not content then
-               if src_err then
-                       error(src_err)
-               else
-                       close()
-               end
-               return true
-       elseif #content == 0 then
-               return true
-       else
-               if not context.eoh then
-                       if not context.status then
-                               status()
-                       end
-                       if not context.headers or not context.headers["content-type"] then
-                               header("Content-Type", "text/html; charset=utf-8")
-                       end
-                       if not context.headers["cache-control"] then
-                               header("Cache-Control", "no-cache")
-                               header("Expires", "0")
-                       end
-                       if not context.headers["x-frame-options"] then
-                               header("X-Frame-Options", "SAMEORIGIN")
-                       end
-                       if not context.headers["x-xss-protection"] then
-                               header("X-XSS-Protection", "1; mode=block")
-                       end
-                       if not context.headers["x-content-type-options"] then
-                               header("X-Content-Type-Options", "nosniff")
-                       end
-
-                       context.eoh = true
-                       coroutine.yield(3)
-               end
-               coroutine.yield(4, content)
-               return true
-       end
-end
-
-function splice(fd, size)
-       coroutine.yield(6, fd, size)
-end
-
-function redirect(url)
-       if url == "" then url = "/" end
-       status(302, "Found")
-       header("Location", url)
-       close()
-end
-
-function build_querystring(q)
-       local s, n, k, v = {}, 1, nil, nil
-
-       for k, v in pairs(q) do
-               s[n+0] = (n == 1) and "?" or "&"
-               s[n+1] = util.urlencode(k)
-               s[n+2] = "="
-               s[n+3] = util.urlencode(v)
-               n = n + 4
-       end
-
-       return table.concat(s, "")
-end
-
-urldecode = util.urldecode
-
-urlencode = util.urlencode
-
-function write_json(x)
-       util.serialize_json(x, write)
-end
-
--- from given url or string. Returns a table with urldecoded values.
--- Simple parameters are stored as string values associated with the parameter
--- name within the table. Parameters with multiple values are stored as array
--- containing the corresponding values.
-function urldecode_params(url, tbl)
-       local parser, name
-       local params = tbl or { }
-
-       parser = lhttp.urlencoded_parser(function (what, buffer, length)
-               if what == parser.TUPLE then
-                       name, value = nil, nil
-               elseif what == parser.NAME then
-                       name = lhttp.urldecode(buffer)
-               elseif what == parser.VALUE and name then
-                       params[name] = lhttp.urldecode(buffer) or ""
-               end
-
-               return true
-       end)
-
-       if parser then
-               parser:parse((url or ""):match("[^?]*$"))
-               parser:parse(nil)
-       end
-
-       return params
-end
-
--- separated by "&". Tables are encoded as parameters with multiple values by
--- repeating the parameter name with each value.
-function urlencode_params(tbl)
-       local k, v
-       local n, enc = 1, {}
-       for k, v in pairs(tbl) do
-               if type(v) == "table" then
-                       local i, v2
-                       for i, v2 in ipairs(v) do
-                               if enc[1] then
-                                       enc[n] = "&"
-                                       n = n + 1
-                               end
-
-                               enc[n+0] = lhttp.urlencode(k)
-                               enc[n+1] = "="
-                               enc[n+2] = lhttp.urlencode(v2)
-                               n = n + 3
-                       end
-               else
-                       if enc[1] then
-                               enc[n] = "&"
-                               n = n + 1
-                       end
-
-                       enc[n+0] = lhttp.urlencode(k)
-                       enc[n+1] = "="
-                       enc[n+2] = lhttp.urlencode(v)
-                       n = n + 3
-               end
-       end
-
-       return table.concat(enc, "")
-end
-
--- Content-Type. Stores all extracted data associated with its parameter name
--- in the params table within the given message object. Multiple parameter
--- values are stored as tables, ordinary ones as strings.
--- If an optional file callback function is given then it is fed with the
--- file contents chunk by chunk and only the extracted file name is stored
--- within the params table. The callback function will be called subsequently
--- with three arguments:
---  o Table containing decoded (name, file) and raw (headers) mime header data
---  o String value containing a chunk of the file data
---  o Boolean which indicates whether the current chunk is the last one (eof)
-function mimedecode_message_body(src, msg, file_cb)
-       local parser, header, field
-       local len, maxlen = 0, tonumber(msg.env.CONTENT_LENGTH or nil)
-
-       parser, err = lhttp.multipart_parser(msg.env.CONTENT_TYPE, function (what, buffer, length)
-               if what == parser.PART_INIT then
-                       field = { }
-
-               elseif what == parser.HEADER_NAME then
-                       header = buffer:lower()
-
-               elseif what == parser.HEADER_VALUE and header then
-                       if header:lower() == "content-disposition" and
-                          lhttp.header_attribute(buffer, nil) == "form-data"
-                       then
-                               field.name = lhttp.header_attribute(buffer, "name")
-                               field.file = lhttp.header_attribute(buffer, "filename")
-                               field[1] = field.file
-                       end
-
-                       if field.headers then
-                               field.headers[header] = buffer
-                       else
-                               field.headers = { [header] = buffer }
-                       end
-
-               elseif what == parser.PART_BEGIN then
-                       return not field.file
-
-               elseif what == parser.PART_DATA and field.name and length > 0 then
-                       if field.file then
-                               if file_cb then
-                                       file_cb(field, buffer, false)
-                                       msg.params[field.name] = msg.params[field.name] or field
-                               else
-                                       if not field.fd then
-                                               field.fd = nixio.mkstemp(field.name)
-                                       end
-
-                                       if field.fd then
-                                               field.fd:write(buffer)
-                                               msg.params[field.name] = msg.params[field.name] or field
-                                       end
-                               end
-                       else
-                               field.value = buffer
-                       end
-
-               elseif what == parser.PART_END and field.name then
-                       if field.file and msg.params[field.name] then
-                               if file_cb then
-                                       file_cb(field, "", true)
-                               elseif field.fd then
-                                       field.fd:seek(0, "set")
-                               end
-                       else
-                               local val = msg.params[field.name]
-
-                               if type(val) == "table" then
-                                       val[#val+1] = field.value or ""
-                               elseif val ~= nil then
-                                       msg.params[field.name] = { val, field.value or "" }
-                               else
-                                       msg.params[field.name] = field.value or ""
-                               end
-                       end
-
-                       field = nil
-
-               elseif what == parser.ERROR then
-                       err = buffer
-               end
-
-               return true
-       end, HTTP_MAX_CONTENT)
-
-       return ltn12.pump.all(src, function (chunk)
-               len = len + (chunk and #chunk or 0)
-
-               if maxlen and len > maxlen + 2 then
-                       return nil, "Message body size exceeds Content-Length"
-               end
-
-               if not parser or not parser:parse(chunk) then
-                       return nil, err
-               end
-
-               return true
-       end)
-end
-
--- Content-Type. Stores all extracted data associated with its parameter name
--- in the params table within the given message object. Multiple parameter
--- values are stored as tables, ordinary ones as strings.
-function urldecode_message_body(src, msg)
-       local err, name, value, parser
-       local len, maxlen = 0, tonumber(msg.env.CONTENT_LENGTH or nil)
-
-       parser = lhttp.urlencoded_parser(function (what, buffer, length)
-               if what == parser.TUPLE then
-                       name, value = nil, nil
-               elseif what == parser.NAME then
-                       name = lhttp.urldecode(buffer, lhttp.DECODE_PLUS)
-               elseif what == parser.VALUE and name then
-                       local val = msg.params[name]
-
-                       if type(val) == "table" then
-                               val[#val+1] = lhttp.urldecode(buffer, lhttp.DECODE_PLUS) or ""
-                       elseif val ~= nil then
-                               msg.params[name] = { val, lhttp.urldecode(buffer, lhttp.DECODE_PLUS) or "" }
-                       else
-                               msg.params[name] = lhttp.urldecode(buffer, lhttp.DECODE_PLUS) or ""
-                       end
-               elseif what == parser.ERROR then
-                       err = buffer
-               end
-
-               return true
-       end, HTTP_MAX_CONTENT)
-
-       return ltn12.pump.all(src, function (chunk)
-               len = len + (chunk and #chunk or 0)
-
-               if maxlen and len > maxlen + 2 then
-                       return nil, "Message body size exceeds Content-Length"
-               elseif len > HTTP_MAX_CONTENT then
-                       return nil, "Message body size exceeds maximum allowed length"
-               end
-
-               if not parser or not parser:parse(chunk) then
-                       return nil, err
-               end
-
-               return true
-       end)
-end
-
--- This function will examine the Content-Type within the given message object
--- to select the appropriate content decoder.
--- Currently the application/x-www-urlencoded and application/form-data
--- mime types are supported. If the encountered content encoding can't be
--- handled then the whole message body will be stored unaltered as "content"
--- property within the given message object.
-function parse_message_body(src, msg, filecb)
-       if msg.env.CONTENT_LENGTH or msg.env.REQUEST_METHOD == "POST" then
-               local ctype = lhttp.header_attribute(msg.env.CONTENT_TYPE, nil)
-
-               -- Is it multipart/mime ?
-               if ctype == "multipart/form-data" then
-                       return mimedecode_message_body(src, msg, filecb)
-
-               -- Is it application/x-www-form-urlencoded ?
-               elseif ctype == "application/x-www-form-urlencoded" then
-                       return urldecode_message_body(src, msg)
-
-               end
-
-               -- Unhandled encoding
-               -- If a file callback is given then feed it chunk by chunk, else
-               -- store whole buffer in message.content
-               local sink
-
-               -- If we have a file callback then feed it
-               if type(filecb) == "function" then
-                       local meta = {
-                               name = "raw",
-                               encoding = msg.env.CONTENT_TYPE
-                       }
-                       sink = function( chunk )
-                               if chunk then
-                                       return filecb(meta, chunk, false)
-                               else
-                                       return filecb(meta, nil, true)
-                               end
-                       end
-               -- ... else append to .content
-               else
-                       msg.content = ""
-                       msg.content_length = 0
-
-                       sink = function( chunk )
-                               if chunk then
-                                       if ( msg.content_length + #chunk ) <= HTTP_MAX_CONTENT then
-                                               msg.content        = msg.content        .. chunk
-                                               msg.content_length = msg.content_length + #chunk
-                                               return true
-                                       else
-                                               return nil, "POST data exceeds maximum allowed length"
-                                       end
-                               end
-                               return true
-                       end
-               end
-
-               -- Pump data...
-               while true do
-                       local ok, err = ltn12.pump.step( src, sink )
-
-                       if not ok and err then
-                               return nil, err
-                       elseif not ok then -- eof
-                               return true
-                       end
-               end
-
-               return true
-       end
-
-       return false
-end
diff --git a/package/luci/modules/luci-base/luasrc/http.luadoc b/package/luci/modules/luci-base/luasrc/http.luadoc
deleted file mode 100644 (file)
index 8f6f380..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
----[[
-LuCI Web Framework high-level HTTP functions.
-]]
-module "luci.http"
-
----[[
-Close the HTTP-Connection.
-
-@class                 function
-@name                  close
-]]
-
----[[
-Return the request content if the request was of unknown type.
-
-@class                 function
-@name                  content
-@return                        HTTP request body
-@return                        HTTP request body length
-]]
-
----[[
-Get a certain HTTP input value or a table of all input values.
-
-@class                 function
-@name                  formvalue
-@param name            Name of the GET or POST variable to fetch
-@param noparse Don't parse POST data before getting the value
-@return                        HTTP input value or table of all input value
-]]
-
----[[
-Get a table of all HTTP input values with a certain prefix.
-
-@class                 function
-@name                  formvaluetable
-@param prefix  Prefix
-@return                        Table of all HTTP input values with given prefix
-]]
-
----[[
-Get the value of a certain HTTP-Cookie.
-
-@class                 function
-@name                  getcookie
-@param name            Cookie Name
-@return                        String containing cookie data
-]]
-
----[[
-Get the value of a certain HTTP environment variable
-or the environment table itself.
-
-@class                 function
-@name                  getenv
-@param name            Environment variable
-@return                        HTTP environment value or environment table
-]]
-
----[[
-Set a handler function for incoming user file uploads.
-
-@class                 function
-@name                  setfilehandler
-@param callback        Handler function
-]]
-
----[[
-Send a HTTP-Header.
-
-@class                 function
-@name                  header
-@param key             Header key
-@param value   Header value
-]]
-
----[[
-Set the mime type of following content data.
-
-@class                 function
-@name                  prepare_content
-@param mime            Mimetype of following content
-]]
-
----[[
-Get the RAW HTTP input source
-
-@class                 function
-@name                  source
-@return                        HTTP LTN12 source
-]]
-
----[[
-Set the HTTP status code and status message.
-
-@class                 function
-@name                  status
-@param code            Status code
-@param message Status message
-]]
-
----[[
-Send a chunk of content data to the client.
-
-This function is as a valid LTN12 sink.
-If the content chunk is nil this function will automatically invoke close.
-
-@class                 function
-@name                  write
-@param content Content chunk
-@param src_err Error object from source (optional)
-@see close
-]]
-
----[[
-Splice data from a filedescriptor to the client.
-
-@class                 function
-@name                  splice
-@param fp              File descriptor
-@param size            Bytes to splice (optional)
-]]
-
----[[
-Redirects the client to a new URL and closes the connection.
-
-@class                 function
-@name                  redirect
-@param url             Target URL
-]]
-
----[[
-Create a querystring out of a table of key - value pairs.
-
-@class                 function
-@name                  build_querystring
-@param table   Query string source table
-@return                        Encoded HTTP query string
-]]
-
----[[
-Return the URL-decoded equivalent of a string.
-
-@class                 function
-@name                  urldecode
-@param str             URL-encoded string
-@param no_plus Don't decode + to " "
-@return                        URL-decoded string
-@see                   urlencode
-]]
-
----[[
-Return the URL-encoded equivalent of a string.
-
-@class                 function
-@name                  urlencode
-@param str             Source string
-@return                        URL-encoded string
-@see                   urldecode
-]]
-
----[[
-Send the given data as JSON encoded string.
-
-@class                 function
-@name                  write_json
-@param data            Data to send
-]]
-
----[[
-Extract and split urlencoded data pairs, separated bei either "&" or ";"
-from given url or string. Returns a table with urldecoded values.
-
-Simple parameters are stored as string values associated with the parameter
-name within the table. Parameters with multiple values are stored as array
-containing the corresponding values.
-
-@class                 function
-@name                  urldecode_params
-@param url             The url or string which contains x-www-urlencoded form data
-@param tbl             Use the given table for storing values (optional)
-@return                        Table containing the urldecoded parameters
-@see                   urlencode_params
-]]
-
----[[
-Encode each key-value-pair in given table to x-www-urlencoded format,
-separated by "&".
-
-Tables are encoded as parameters with multiple values by repeating the
-parameter name with each value.
-
-@class                 function
-@name                  urlencode_params
-@param tbl             Table with the values
-@return                        String containing encoded values
-@see                   urldecode_params
-]]
-
----[[
-Decode a mime encoded http message body with multipart/form-data Content-Type.
-
-Stores all extracted data associated with its parameter name
-in the params table within the given message object. Multiple parameter
-values are stored as tables, ordinary ones as strings.
-
-If an optional file callback function is given then it is fed with the
-file contents chunk by chunk and only the extracted file name is stored
-within the params table. The callback function will be called subsequently
-with three arguments:
- o Table containing decoded (name, file) and raw (headers) mime header data
- o String value containing a chunk of the file data
- o Boolean which indicates whether the current chunk is the last one (eof)
-
-@class                 function
-@name                  mimedecode_message_body
-@param src             Ltn12 source function
-@param msg             HTTP message object
-@param filecb  File callback function (optional)
-@return                        Value indicating successful operation (not nil means "ok")
-@return                        String containing the error if unsuccessful
-@see                   parse_message_header
-]]
-
----[[
-Decode an urlencoded http message body with application/x-www-urlencoded
-Content-Type.
-
-Stores all extracted data associated with its parameter name in the params
-table within the given message object. Multiple parameter values are stored
-as tables, ordinary ones as strings.
-
-@class                 function
-@name                  urldecode_message_body
-@param src             Ltn12 source function
-@param msg             HTTP message object
-@return                        Value indicating successful operation (not nil means "ok")
-@return                        String containing the error if unsuccessful
-@see                   parse_message_header
-]]
-
----[[
-Try to extract and decode a http message body from the given ltn12 source.
-This function will examine the Content-Type within the given message object
-to select the appropriate content decoder.
-
-Currently the application/x-www-urlencoded and application/form-data
-mime types are supported. If the encountered content encoding can't be
-handled then the whole message body will be stored unaltered as "content"
-property within the given message object.
-
-@class                 function
-@name                  parse_message_body
-@param src             Ltn12 source function
-@param msg             HTTP message object
-@param filecb  File data callback (optional, see mimedecode_message_body())
-@return                        Value indicating successful operation (not nil means "ok")
-@return                        String containing the error if unsuccessful
-@see                   parse_message_header
-]]
diff --git a/package/luci/modules/luci-base/luasrc/i18n.lua b/package/luci/modules/luci-base/luasrc/i18n.lua
deleted file mode 100644 (file)
index 323912b..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local tparser  = require "luci.template.parser"
-local util     = require "luci.util"
-local tostring = tostring
-
-module "luci.i18n"
-
-i18ndir = util.libpath() .. "/i18n/"
-context = util.threadlocal()
-default = "en"
-
-
-function setlanguage(lang)
-       local code, subcode = lang:match("^([A-Za-z][A-Za-z])[%-_]([A-Za-z][A-Za-z])$")
-       if not (code and subcode) then
-               subcode = lang:match("^([A-Za-z][A-Za-z])$")
-               if not subcode then
-                       return nil
-               end
-       end
-
-       context.parent = code and code:lower()
-       context.lang   = context.parent and context.parent.."-"..subcode:lower() or subcode:lower()
-
-       if tparser.load_catalog(context.lang, i18ndir) and
-          tparser.change_catalog(context.lang)
-       then
-               return context.lang
-
-       elseif context.parent then
-               if tparser.load_catalog(context.parent, i18ndir) and
-                  tparser.change_catalog(context.parent)
-               then
-                       return context.parent
-               end
-       end
-
-       return nil
-end
-
-function translate(key)
-       return tparser.translate(key) or key
-end
-
-function translatef(key, ...)
-       return tostring(translate(key)):format(...)
-end
-
-function dump()
-       local rv = {}
-       tparser.get_translations(function(k, v) rv[k] = v end)
-       return rv
-end
diff --git a/package/luci/modules/luci-base/luasrc/i18n.luadoc b/package/luci/modules/luci-base/luasrc/i18n.luadoc
deleted file mode 100644 (file)
index b76c298..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
----[[
-LuCI translation library.
-]]
-module "luci.i18n"
-
----[[
-Set the context default translation language.
-
-@class function
-@name setlanguage
-@param lang    An IETF/BCP 47 language tag or ISO3166 country code, e.g. "en-US" or "de"
-@return                The effective loaded language, e.g. "en" for "en-US" - or nil on failure
-]]
-
----[[
-Return the translated value for a specific translation key.
-
-@class function
-@name translate
-@param key     Default translation text
-@return                Translated string
-]]
-
----[[
-Return the translated value for a specific translation key and use it as sprintf pattern.
-
-@class function
-@name translatef
-@param key             Default translation text
-@param ...             Format parameters
-@return                        Translated and formatted string
-]]
-
----[[
-Return all currently loaded translation strings as a key-value table. The key is the
-hexadecimal representation of the translation key while the value is the translated
-text content.
-
-@class function
-@name dump
-@return                        Key-value translation string table.
-]]
diff --git a/package/luci/modules/luci-base/luasrc/ltn12.lua b/package/luci/modules/luci-base/luasrc/ltn12.lua
deleted file mode 100644 (file)
index 3a7268c..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
---[[
-LuaSocket 2.0.2 license
-Copyright � 2004-2007 Diego Nehab
-
-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.
-]]--
---[[
-       Changes made by LuCI project:
-               * Renamed to luci.ltn12 to avoid collisions with luasocket
-               * Added inline documentation
-]]--
------------------------------------------------------------------------------
--- LTN12 - Filters, sources, sinks and pumps.
--- LuaSocket toolkit.
--- Author: Diego Nehab
--- RCS ID: $Id$
------------------------------------------------------------------------------
-
------------------------------------------------------------------------------
--- Declare module
------------------------------------------------------------------------------
-local string = require("string")
-local table = require("table")
-local base = _G
-
--- See http://lua-users.org/wiki/FiltersSourcesAndSinks for design concepts 
-module("luci.ltn12")
-
-filter = {}
-source = {}
-sink = {}
-pump = {}
-
--- 2048 seems to be better in windows...
-BLOCKSIZE = 2048
-_VERSION = "LTN12 1.0.1"
-
------------------------------------------------------------------------------
--- Filter stuff
------------------------------------------------------------------------------
-
-
--- by passing it each chunk and updating a context between calls. 
-function filter.cycle(low, ctx, extra)
-    base.assert(low)
-    return function(chunk)
-        local ret
-        ret, ctx = low(ctx, chunk, extra)
-        return ret
-    end
-end
-
--- (thanks to Wim Couwenberg)
-function filter.chain(...)
-    local n = table.getn(arg)
-    local top, index = 1, 1
-    local retry = ""
-    return function(chunk)
-        retry = chunk and retry
-        while true do
-            if index == top then
-                chunk = arg[index](chunk)
-                if chunk == "" or top == n then return chunk
-                elseif chunk then index = index + 1
-                else
-                    top = top+1
-                    index = top
-                end
-            else
-                chunk = arg[index](chunk or "")
-                if chunk == "" then
-                    index = index - 1
-                    chunk = retry
-                elseif chunk then
-                    if index == n then return chunk
-                    else index = index + 1 end
-                else base.error("filter returned inappropriate nil") end
-            end
-        end
-    end
-end
-
------------------------------------------------------------------------------
--- Source stuff
------------------------------------------------------------------------------
-
-
--- create an empty source
-local function empty()
-    return nil
-end
-
-function source.empty()
-    return empty
-end
-
-function source.error(err)
-    return function()
-        return nil, err
-    end
-end
-
-function source.file(handle, io_err)
-    if handle then
-        return function()
-            local chunk = handle:read(BLOCKSIZE)
-            if chunk and chunk:len() == 0 then chunk = nil end
-            if not chunk then handle:close() end
-            return chunk
-        end
-    else return source.error(io_err or "unable to open file") end
-end
-
-function source.simplify(src)
-    base.assert(src)
-    return function()
-        local chunk, err_or_new = src()
-        src = err_or_new or src
-        if not chunk then return nil, err_or_new
-        else return chunk end
-    end
-end
-
-function source.string(s)
-    if s then
-        local i = 1
-        return function()
-            local chunk = string.sub(s, i, i+BLOCKSIZE-1)
-            i = i + BLOCKSIZE
-            if chunk ~= "" then return chunk
-            else return nil end
-        end
-    else return source.empty() end
-end
-
-function source.rewind(src)
-    base.assert(src)
-    local t = {}
-    return function(chunk)
-        if not chunk then
-            chunk = table.remove(t)
-            if not chunk then return src()
-            else return chunk end
-        else
-            t[#t+1] = chunk
-        end
-    end
-end
-
-function source.chain(src, f)
-    base.assert(src and f)
-    local last_in, last_out = "", ""
-    local state = "feeding"
-    local err
-    return function()
-        if not last_out then
-            base.error('source is empty!', 2)
-        end
-        while true do
-            if state == "feeding" then
-                last_in, err = src()
-                if err then return nil, err end
-                last_out = f(last_in)
-                if not last_out then
-                    if last_in then
-                        base.error('filter returned inappropriate nil')
-                    else
-                        return nil
-                    end
-                elseif last_out ~= "" then
-                    state = "eating"
-                    if last_in then last_in = "" end
-                    return last_out
-                end
-            else
-                last_out = f(last_in)
-                if last_out == "" then
-                    if last_in == "" then
-                        state = "feeding"
-                    else
-                        base.error('filter returned ""')
-                    end
-                elseif not last_out then
-                    if last_in then
-                        base.error('filter returned inappropriate nil')
-                    else
-                        return nil
-                    end
-                else
-                    return last_out
-                end
-            end
-        end
-    end
-end
-
--- Sources will be used one after the other, as if they were concatenated
--- (thanks to Wim Couwenberg)
-function source.cat(...)
-    local src = table.remove(arg, 1)
-    return function()
-        while src do
-            local chunk, err = src()
-            if chunk then return chunk end
-            if err then return nil, err end
-            src = table.remove(arg, 1)
-        end
-    end
-end
-
------------------------------------------------------------------------------
--- Sink stuff
------------------------------------------------------------------------------
-
-
-function sink.table(t)
-    t = t or {}
-    local f = function(chunk, err)
-        if chunk then t[#t+1] = chunk end
-        return 1
-    end
-    return f, t
-end
-
-function sink.simplify(snk)
-    base.assert(snk)
-    return function(chunk, err)
-        local ret, err_or_new = snk(chunk, err)
-        if not ret then return nil, err_or_new end
-        snk = err_or_new or snk
-        return 1
-    end
-end
-
-function sink.file(handle, io_err)
-    if handle then
-        return function(chunk, err)
-            if not chunk then
-                handle:close()
-                return 1
-            else return handle:write(chunk) end
-        end
-    else return sink.error(io_err or "unable to open file") end
-end
-
--- creates a sink that discards data
-local function null()
-    return 1
-end
-
-function sink.null()
-    return null
-end
-
-function sink.error(err)
-    return function()
-        return nil, err
-    end
-end
-
-function sink.chain(f, snk)
-    base.assert(f and snk)
-    return function(chunk, err)
-        if chunk ~= "" then
-            local filtered = f(chunk)
-            local done = chunk and ""
-            while true do
-                local ret, snkerr = snk(filtered, err)
-                if not ret then return nil, snkerr end
-                if filtered == done then return 1 end
-                filtered = f(done)
-            end
-        else return 1 end
-    end
-end
-
------------------------------------------------------------------------------
--- Pump stuff
------------------------------------------------------------------------------
-
-
-function pump.step(src, snk)
-    local chunk, src_err = src()
-    local ret, snk_err = snk(chunk, src_err)
-    if chunk and ret then return 1
-    else return nil, src_err or snk_err end
-end
-
-function pump.all(src, snk, step)
-    base.assert(src and snk)
-    step = step or pump.step
-    while true do
-        local ret, err = step(src, snk)
-        if not ret then
-            if err then return nil, err
-            else return 1 end
-        end
-    end
-end
-
diff --git a/package/luci/modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua b/package/luci/modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua
deleted file mode 100644 (file)
index 6e04465..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
--- Copyright 2011-2012 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-local ifc = net:get_interface()
-
-local hostname, accept_ra, send_rs
-local bcast, defaultroute, peerdns, dns, metric, clientid, vendorclass
-
-
-hostname = section:taboption("general", Value, "hostname",
-       translate("Hostname to send when requesting DHCP"))
-
-hostname.placeholder = luci.sys.hostname()
-hostname.datatype    = "hostname"
-
-
-bcast = section:taboption("advanced", Flag, "broadcast",
-       translate("Use broadcast flag"),
-       translate("Required for certain ISPs, e.g. Charter with DOCSIS 3"))
-
-bcast.default = bcast.disabled
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Use default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-peerdns = section:taboption("advanced", Flag, "peerdns",
-       translate("Use DNS servers advertised by peer"),
-       translate("If unchecked, the advertised DNS server addresses are ignored"))
-
-peerdns.default = peerdns.enabled
-
-
-dns = section:taboption("advanced", DynamicList, "dns",
-       translate("Use custom DNS servers"))
-
-dns:depends("peerdns", "")
-dns.datatype = "ipaddr"
-dns.cast     = "string"
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-
-
-clientid = section:taboption("advanced", Value, "clientid",
-       translate("Client ID to send when requesting DHCP"))
-clientid.datatype  = "hexstring"
-
-
-vendorclass = section:taboption("advanced", Value, "vendorid",
-       translate("Vendor Class to send when requesting DHCP"))
-
-
-luci.tools.proto.opt_macaddr(section, ifc, translate("Override MAC address"))
-
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
-mtu.placeholder = "1500"
-mtu.datatype    = "max(9200)"
diff --git a/package/luci/modules/luci-base/luasrc/model/cbi/admin_network/proto_none.lua b/package/luci/modules/luci-base/luasrc/model/cbi/admin_network/proto_none.lua
deleted file mode 100644 (file)
index 6fdded9..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
diff --git a/package/luci/modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua b/package/luci/modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua
deleted file mode 100644 (file)
index 246d2c0..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-local ifc = net:get_interface()
-
-local netmask, gateway, broadcast, dns, accept_ra, send_rs, ip6addr, ip6gw
-local mtu, metric, usecidr, ipaddr_single, ipaddr_multi
-
-
-local function is_cidr(s)
-       return (type(s) == "string" and luci.ip.IPv4(s) and s:find("/"))
-end
-
-usecidr = section:taboption("general", Value, "ipaddr_usecidr")
-usecidr.forcewrite = true
-
-usecidr.cfgvalue = function(self, section)
-       local cfgvalue = self.map:get(section, "ipaddr")
-       return (type(cfgvalue) == "table" or is_cidr(cfgvalue)) and "1" or "0"
-end
-
-usecidr.render = function(self, section, scope)
-       luci.template.Template(nil, [[
-               <input type="hidden"<%= attr("id", cbid) .. attr("name", cbid) .. attr("value", value) %> />
-       ]]):render({
-               cbid = self:cbid(section),
-               value = self:cfgvalue(section)
-       })
-end
-
-usecidr.write = function(self, section)
-       local cfgvalue = self.map:get(section, "ipaddr")
-       local formvalue = (self:formvalue(section) == "1") and ipaddr_multi:formvalue(section) or ipaddr_single:formvalue(section)
-       local equal = (cfgvalue == formvalue)
-
-       if not equal and type(cfgvalue) == "table" and type(formvalue) == "table" and #cfgvalue == #formvalue then
-               equal = true
-
-               local _, v
-               for _, v in ipairs(cfgvalue) do
-                       if v ~= formvalue[_] then
-                               equal = false
-                               break
-                       end
-               end
-       end
-
-       if not equal then
-               self.map:set(section, "ipaddr", formvalue or "")
-       end
-
-       return not equal
-end
-
-
-ipaddr_multi = section:taboption("general", DynamicList, "ipaddrs", translate("IPv4 address"))
-ipaddr_multi:depends("ipaddr_usecidr", "1")
-ipaddr_multi.datatype = "or(cidr4,ipnet4)"
-ipaddr_multi.placeholder = translate("Add IPv4 address…")
-
-ipaddr_multi.alias = "ipaddr"
-ipaddr_multi.write = function() end
-ipaddr_multi.remove = function() end
-ipaddr_multi.cfgvalue = function(self, section)
-       local addr = self.map:get(section, "ipaddr")
-       local mask = self.map:get(section, "netmask")
-
-       if is_cidr(addr) then
-               return { addr }
-       elseif type(addr) == "string" and
-              type(mask) == "string" and
-              #addr > 0 and #mask > 0
-       then
-               return { "%s/%s" %{ addr, mask } }
-       elseif type(addr) == "table" then
-               return addr
-       else
-               return {}
-       end
-end
-
-
-ipaddr_single = section:taboption("general", Value, "ipaddr", translate("IPv4 address"))
-ipaddr_single:depends("ipaddr_usecidr", "0")
-ipaddr_single.datatype = "ip4addr"
-ipaddr_single.template = "cbi/ipaddr"
-ipaddr_single.write = function() end
-ipaddr_single.remove = function() end
-
-
-netmask = section:taboption("general", Value, "netmask", translate("IPv4 netmask"))
-netmask:depends("ipaddr_usecidr", "0")
-netmask.datatype = "ip4addr"
-netmask:value("255.255.255.0")
-netmask:value("255.255.0.0")
-netmask:value("255.0.0.0")
-
-
-gateway = section:taboption("general", Value, "gateway", translate("IPv4 gateway"))
-gateway.datatype = "ip4addr"
-
-
-broadcast = section:taboption("general", Value, "broadcast", translate("IPv4 broadcast"))
-broadcast.datatype = "ip4addr"
-
-
-dns = section:taboption("general", DynamicList, "dns",
-       translate("Use custom DNS servers"))
-
-dns.datatype = "ipaddr"
-dns.cast     = "string"
-
-
-if luci.model.network:has_ipv6() then
-
-       local ip6assign = section:taboption("general", Value, "ip6assign", translate("IPv6 assignment length"),
-               translate("Assign a part of given length of every public IPv6-prefix to this interface"))
-       ip6assign:value("", translate("disabled"))
-       ip6assign:value("64")
-       ip6assign.datatype = "max(64)"
-
-       local ip6hint = section:taboption("general", Value, "ip6hint", translate("IPv6 assignment hint"),
-               translate("Assign prefix parts using this hexadecimal subprefix ID for this interface."))
-       for i=33,64 do ip6hint:depends("ip6assign", i) end
-
-       ip6addr = section:taboption("general", DynamicList, "ip6addr", translate("IPv6 address"))
-       ip6addr.datatype = "ip6addr"
-       ip6addr.placeholder = translate("Add IPv6 address…")
-       ip6addr:depends("ip6assign", "")
-
-
-       ip6gw = section:taboption("general", Value, "ip6gw", translate("IPv6 gateway"))
-       ip6gw.datatype = "ip6addr"
-       ip6gw:depends("ip6assign", "")
-
-
-       local ip6prefix = s:taboption("general", Value, "ip6prefix", translate("IPv6 routed prefix"),
-               translate("Public prefix routed to this device for distribution to clients."))
-       ip6prefix.datatype = "ip6addr"
-       ip6prefix:depends("ip6assign", "")
-
-       local ip6ifaceid = s:taboption("general", Value, "ip6ifaceid", translate("IPv6 suffix"),
-               translate("Optional. Allowed values: 'eui64', 'random', fixed value like '::1' " ..
-                       "or '::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a " ..
-                       "delegating server, use the suffix (like '::1') to form the IPv6 address " ..
-                       "('a:b:c:d::1') for the interface."))
-       ip6ifaceid.datatype = "ip6hostid"
-       ip6ifaceid.placeholder = "::1"
-       ip6ifaceid.rmempty = true
-
-end
-
-
-luci.tools.proto.opt_macaddr(section, ifc, translate("Override MAC address"))
-
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
-mtu.placeholder = "1500"
-mtu.datatype    = "max(9200)"
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
diff --git a/package/luci/modules/luci-base/luasrc/model/firewall.lua b/package/luci/modules/luci-base/luasrc/model/firewall.lua
deleted file mode 100644 (file)
index feff085..0000000
+++ /dev/null
@@ -1,568 +0,0 @@
--- Copyright 2009 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local type, pairs, ipairs, table, luci, math
-       = type, pairs, ipairs, table, luci, math
-
-local tpl = require "luci.template.parser"
-local utl = require "luci.util"
-local uci = require "luci.model.uci"
-
-module "luci.model.firewall"
-
-
-local uci_r, uci_s
-
-function _valid_id(x)
-       return (x and #x > 0 and x:match("^[a-zA-Z0-9_]+$"))
-end
-
-function _get(c, s, o)
-       return uci_r:get(c, s, o)
-end
-
-function _set(c, s, o, v)
-       if v ~= nil then
-               if type(v) == "boolean" then v = v and "1" or "0" end
-               return uci_r:set(c, s, o, v)
-       else
-               return uci_r:delete(c, s, o)
-       end
-end
-
-
-function init(cursor)
-       uci_r = cursor or uci_r or uci.cursor()
-       uci_s = uci_r:substate()
-
-       return _M
-end
-
-function save(self, ...)
-       uci_r:save(...)
-       uci_r:load(...)
-end
-
-function commit(self, ...)
-       uci_r:commit(...)
-       uci_r:load(...)
-end
-
-function get_defaults()
-       return defaults()
-end
-
-function new_zone(self)
-       local name = "newzone"
-       local count = 1
-
-       while self:get_zone(name) do
-               count = count + 1
-               name = "newzone%d" % count
-       end
-
-       return self:add_zone(name)
-end
-
-function add_zone(self, n)
-       if _valid_id(n) and not self:get_zone(n) then
-               local d = defaults()
-               local z = uci_r:section("firewall", "zone", nil, {
-                       name    = n,
-                       network = " ",
-                       input   = d:input()   or "DROP",
-                       forward = d:forward() or "DROP",
-                       output  = d:output()  or "DROP"
-               })
-
-               return z and zone(z)
-       end
-end
-
-function get_zone(self, n)
-       if uci_r:get("firewall", n) == "zone" then
-               return zone(n)
-       else
-               local z
-               uci_r:foreach("firewall", "zone",
-                       function(s)
-                               if n and s.name == n then
-                                       z = s['.name']
-                                       return false
-                               end
-                       end)
-               return z and zone(z)
-       end
-end
-
-function get_zones(self)
-       local zones = { }
-       local znl = { }
-
-       uci_r:foreach("firewall", "zone",
-               function(s)
-                       if s.name then
-                               znl[s.name] = zone(s['.name'])
-                       end
-               end)
-
-       local z
-       for z in utl.kspairs(znl) do
-               zones[#zones+1] = znl[z]
-       end
-
-       return zones
-end
-
-function get_zone_by_network(self, net)
-       local z
-
-       uci_r:foreach("firewall", "zone",
-               function(s)
-                       if s.name and net then
-                               local n
-                               for n in utl.imatch(s.network or s.name) do
-                                       if n == net then
-                                               z = s['.name']
-                                               return false
-                                       end
-                               end
-                       end
-               end)
-
-       return z and zone(z)
-end
-
-function del_zone(self, n)
-       local r = false
-
-       if uci_r:get("firewall", n) == "zone" then
-               local z = uci_r:get("firewall", n, "name")
-               r = uci_r:delete("firewall", n)
-               n = z
-       else
-               uci_r:foreach("firewall", "zone",
-                       function(s)
-                               if n and s.name == n then
-                                       r = uci_r:delete("firewall", s['.name'])
-                                       return false
-                               end
-                       end)
-       end
-
-       if r then
-               uci_r:foreach("firewall", "rule",
-                       function(s)
-                               if s.src == n or s.dest == n then
-                                       uci_r:delete("firewall", s['.name'])
-                               end
-                       end)
-
-               uci_r:foreach("firewall", "redirect",
-                       function(s)
-                               if s.src == n or s.dest == n then
-                                       uci_r:delete("firewall", s['.name'])
-                               end
-                       end)
-
-               uci_r:foreach("firewall", "forwarding",
-                       function(s)
-                               if s.src == n or s.dest == n then
-                                       uci_r:delete("firewall", s['.name'])
-                               end
-                       end)
-       end
-
-       return r
-end
-
-function rename_zone(self, old, new)
-       local r = false
-
-       if _valid_id(new) and not self:get_zone(new) then
-               uci_r:foreach("firewall", "zone",
-                       function(s)
-                               if old and s.name == old then
-                                       if not s.network then
-                                               uci_r:set("firewall", s['.name'], "network", old)
-                                       end
-                                       uci_r:set("firewall", s['.name'], "name", new)
-                                       r = true
-                                       return false
-                               end
-                       end)
-
-               if r then
-                       uci_r:foreach("firewall", "rule",
-                               function(s)
-                                       if s.src == old then
-                                               uci_r:set("firewall", s['.name'], "src", new)
-                                       end
-                                       if s.dest == old then
-                                               uci_r:set("firewall", s['.name'], "dest", new)
-                                       end
-                               end)
-
-                       uci_r:foreach("firewall", "redirect",
-                               function(s)
-                                       if s.src == old then
-                                               uci_r:set("firewall", s['.name'], "src", new)
-                                       end
-                                       if s.dest == old then
-                                               uci_r:set("firewall", s['.name'], "dest", new)
-                                       end
-                               end)
-
-                       uci_r:foreach("firewall", "forwarding",
-                               function(s)
-                                       if s.src == old then
-                                               uci_r:set("firewall", s['.name'], "src", new)
-                                       end
-                                       if s.dest == old then
-                                               uci_r:set("firewall", s['.name'], "dest", new)
-                                       end
-                               end)
-               end
-       end
-
-       return r
-end
-
-function del_network(self, net)
-       local z
-       if net then
-               for _, z in ipairs(self:get_zones()) do
-                       z:del_network(net)
-               end
-       end
-end
-
-
-defaults = utl.class()
-function defaults.__init__(self)
-       uci_r:foreach("firewall", "defaults",
-               function(s)
-                       self.sid  = s['.name']
-                       return false
-               end)
-
-       self.sid = self.sid or uci_r:section("firewall", "defaults", nil, { })
-end
-
-function defaults.get(self, opt)
-       return _get("firewall", self.sid, opt)
-end
-
-function defaults.set(self, opt, val)
-       return _set("firewall", self.sid, opt, val)
-end
-
-function defaults.syn_flood(self)
-       return (self:get("syn_flood") == "1")
-end
-
-function defaults.drop_invalid(self)
-       return (self:get("drop_invalid") == "1")
-end
-
-function defaults.input(self)
-       return self:get("input") or "DROP"
-end
-
-function defaults.forward(self)
-       return self:get("forward") or "DROP"
-end
-
-function defaults.output(self)
-       return self:get("output") or "DROP"
-end
-
-
-zone = utl.class()
-function zone.__init__(self, z)
-       if uci_r:get("firewall", z) == "zone" then
-               self.sid  = z
-               self.data = uci_r:get_all("firewall", z)
-       else
-               uci_r:foreach("firewall", "zone",
-                       function(s)
-                               if s.name == z then
-                                       self.sid  = s['.name']
-                                       self.data = s
-                                       return false
-                               end
-                       end)
-       end
-end
-
-function zone.get(self, opt)
-       return _get("firewall", self.sid, opt)
-end
-
-function zone.set(self, opt, val)
-       return _set("firewall", self.sid, opt, val)
-end
-
-function zone.masq(self)
-       return (self:get("masq") == "1")
-end
-
-function zone.name(self)
-       return self:get("name")
-end
-
-function zone.network(self)
-       return self:get("network")
-end
-
-function zone.input(self)
-       return self:get("input") or defaults():input() or "DROP"
-end
-
-function zone.forward(self)
-       return self:get("forward") or defaults():forward() or "DROP"
-end
-
-function zone.output(self)
-       return self:get("output") or defaults():output() or "DROP"
-end
-
-function zone.add_network(self, net)
-       if uci_r:get("network", net) == "interface" then
-               local nets = { }
-
-               local n
-               for n in utl.imatch(self:get("network") or self:get("name")) do
-                       if n ~= net then
-                               nets[#nets+1] = n
-                       end
-               end
-
-               nets[#nets+1] = net
-
-               _M:del_network(net)
-               self:set("network", table.concat(nets, " "))
-       end
-end
-
-function zone.del_network(self, net)
-       local nets = { }
-
-       local n
-       for n in utl.imatch(self:get("network") or self:get("name")) do
-               if n ~= net then
-                       nets[#nets+1] = n
-               end
-       end
-
-       if #nets > 0 then
-               self:set("network", table.concat(nets, " "))
-       else
-               self:set("network", " ")
-       end
-end
-
-function zone.get_networks(self)
-       local nets = { }
-
-       local n
-       for n in utl.imatch(self:get("network") or self:get("name")) do
-               nets[#nets+1] = n
-       end
-
-       return nets
-end
-
-function zone.clear_networks(self)
-       self:set("network", " ")
-end
-
-function zone.get_forwardings_by(self, what)
-       local name = self:name()
-       local forwards = { }
-
-       uci_r:foreach("firewall", "forwarding",
-               function(s)
-                       if s.src and s.dest and s[what] == name then
-                               forwards[#forwards+1] = forwarding(s['.name'])
-                       end
-               end)
-
-       return forwards
-end
-
-function zone.add_forwarding_to(self, dest)
-       local exist, forward
-
-       for _, forward in ipairs(self:get_forwardings_by('src')) do
-               if forward:dest() == dest then
-                       exist = true
-                       break
-               end
-       end
-
-       if not exist and dest ~= self:name() and _valid_id(dest) then
-               local s = uci_r:section("firewall", "forwarding", nil, {
-                       src     = self:name(),
-                       dest    = dest
-               })
-
-               return s and forwarding(s)
-       end
-end
-
-function zone.add_forwarding_from(self, src)
-       local exist, forward
-
-       for _, forward in ipairs(self:get_forwardings_by('dest')) do
-               if forward:src() == src then
-                       exist = true
-                       break
-               end
-       end
-
-       if not exist and src ~= self:name() and _valid_id(src) then
-               local s = uci_r:section("firewall", "forwarding", nil, {
-                       src     = src,
-                       dest    = self:name()
-               })
-
-               return s and forwarding(s)
-       end
-end
-
-function zone.del_forwardings_by(self, what)
-       local name = self:name()
-
-       uci_r:delete_all("firewall", "forwarding",
-               function(s)
-                       return (s.src and s.dest and s[what] == name)
-               end)
-end
-
-function zone.add_redirect(self, options)
-       options = options or { }
-       options.src = self:name()
-
-       local s = uci_r:section("firewall", "redirect", nil, options)
-       return s and redirect(s)
-end
-
-function zone.add_rule(self, options)
-       options = options or { }
-       options.src = self:name()
-
-       local s = uci_r:section("firewall", "rule", nil, options)
-       return s and rule(s)
-end
-
-function zone.get_color(self)
-       if self and self:name() == "lan" then
-               return "#90f090"
-       elseif self and self:name() == "wan" then
-               return "#f09090"
-       elseif self then
-               math.randomseed(tpl.hash(self:name()))
-
-               local r   = math.random(128)
-               local g   = math.random(128)
-               local min = 0
-               local max = 128
-
-               if ( r + g ) < 128 then
-                       min = 128 - r - g
-               else
-                       max = 255 - r - g
-               end
-
-               local b = min + math.floor( math.random() * ( max - min ) )
-
-               return "#%02x%02x%02x" % { 0xFF - r, 0xFF - g, 0xFF - b }
-       else
-               return "#eeeeee"
-       end
-end
-
-
-forwarding = utl.class()
-function forwarding.__init__(self, f)
-       self.sid = f
-end
-
-function forwarding.src(self)
-       return uci_r:get("firewall", self.sid, "src")
-end
-
-function forwarding.dest(self)
-       return uci_r:get("firewall", self.sid, "dest")
-end
-
-function forwarding.src_zone(self)
-       local z = zone(self:src())
-       return z.sid and z
-end
-
-function forwarding.dest_zone(self)
-       local z = zone(self:dest())
-       return z.sid and z
-end
-
-
-rule = utl.class()
-function rule.__init__(self, f)
-       self.sid = f
-end
-
-function rule.get(self, opt)
-       return _get("firewall", self.sid, opt)
-end
-
-function rule.set(self, opt, val)
-       return _set("firewall", self.sid, opt, val)
-end
-
-function rule.src(self)
-       return uci_r:get("firewall", self.sid, "src")
-end
-
-function rule.dest(self)
-       return uci_r:get("firewall", self.sid, "dest")
-end
-
-function rule.src_zone(self)
-       return zone(self:src())
-end
-
-function rule.dest_zone(self)
-       return zone(self:dest())
-end
-
-
-redirect = utl.class()
-function redirect.__init__(self, f)
-       self.sid = f
-end
-
-function redirect.get(self, opt)
-       return _get("firewall", self.sid, opt)
-end
-
-function redirect.set(self, opt, val)
-       return _set("firewall", self.sid, opt, val)
-end
-
-function redirect.src(self)
-       return uci_r:get("firewall", self.sid, "src")
-end
-
-function redirect.dest(self)
-       return uci_r:get("firewall", self.sid, "dest")
-end
-
-function redirect.src_zone(self)
-       return zone(self:src())
-end
-
-function redirect.dest_zone(self)
-       return zone(self:dest())
-end
diff --git a/package/luci/modules/luci-base/luasrc/model/network.lua b/package/luci/modules/luci-base/luasrc/model/network.lua
deleted file mode 100644 (file)
index 49e1657..0000000
+++ /dev/null
@@ -1,1902 +0,0 @@
--- Copyright 2009-2015 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local type, next, pairs, ipairs, loadfile, table, select
-       = type, next, pairs, ipairs, loadfile, table, select
-
-local tonumber, tostring, math = tonumber, tostring, math
-
-local pcall, require, setmetatable = pcall, require, setmetatable
-
-local nxo = require "nixio"
-local nfs = require "nixio.fs"
-local ipc = require "luci.ip"
-local utl = require "luci.util"
-local uci = require "luci.model.uci"
-local lng = require "luci.i18n"
-local jsc = require "luci.jsonc"
-
-module "luci.model.network"
-
-
-IFACE_PATTERNS_VIRTUAL  = { }
-IFACE_PATTERNS_IGNORE   = { "^wmaster%d", "^wifi%d", "^hwsim%d", "^imq%d", "^ifb%d", "^mon%.wlan%d", "^sit%d", "^gre%d", "^gretap%d", "^ip6gre%d", "^ip6tnl%d", "^tunl%d", "^lo$" }
-IFACE_PATTERNS_WIRELESS = { "^wlan%d", "^wl%d", "^ath%d", "^%w+%.network%d" }
-
-IFACE_ERRORS = {
-       CONNECT_FAILED                  = lng.translate("Connection attempt failed"),
-       INVALID_ADDRESS                 = lng.translate("IP address in invalid"),
-       INVALID_GATEWAY                 = lng.translate("Gateway address is invalid"),
-       INVALID_LOCAL_ADDRESS   = lng.translate("Local IP address is invalid"),
-       MISSING_ADDRESS                 = lng.translate("IP address is missing"),
-       MISSING_PEER_ADDRESS    = lng.translate("Peer address is missing"),
-       NO_DEVICE                               = lng.translate("Network device is not present"),
-       NO_IFACE                                = lng.translate("Unable to determine device name"),
-       NO_IFNAME                               = lng.translate("Unable to determine device name"),
-       NO_WAN_ADDRESS                  = lng.translate("Unable to determine external IP address"),
-       NO_WAN_LINK                             = lng.translate("Unable to determine upstream interface"),
-       PEER_RESOLVE_FAIL               = lng.translate("Unable to resolve peer host name"),
-       PIN_FAILED                              = lng.translate("PIN code rejected")
-}
-
-
-protocol = utl.class()
-
-local _protocols = { }
-
-local _interfaces, _bridge, _switch, _tunnel, _swtopo
-local _ubusnetcache, _ubusdevcache, _ubuswificache
-local _uci
-
-function _filter(c, s, o, r)
-       local val = _uci:get(c, s, o)
-       if val then
-               local l = { }
-               if type(val) == "string" then
-                       for val in val:gmatch("%S+") do
-                               if val ~= r then
-                                       l[#l+1] = val
-                               end
-                       end
-                       if #l > 0 then
-                               _uci:set(c, s, o, table.concat(l, " "))
-                       else
-                               _uci:delete(c, s, o)
-                       end
-               elseif type(val) == "table" then
-                       for _, val in ipairs(val) do
-                               if val ~= r then
-                                       l[#l+1] = val
-                               end
-                       end
-                       if #l > 0 then
-                               _uci:set(c, s, o, l)
-                       else
-                               _uci:delete(c, s, o)
-                       end
-               end
-       end
-end
-
-function _append(c, s, o, a)
-       local val = _uci:get(c, s, o) or ""
-       if type(val) == "string" then
-               local l = { }
-               for val in val:gmatch("%S+") do
-                       if val ~= a then
-                               l[#l+1] = val
-                       end
-               end
-               l[#l+1] = a
-               _uci:set(c, s, o, table.concat(l, " "))
-       elseif type(val) == "table" then
-               local l = { }
-               for _, val in ipairs(val) do
-                       if val ~= a then
-                               l[#l+1] = val
-                       end
-               end
-               l[#l+1] = a
-               _uci:set(c, s, o, l)
-       end
-end
-
-function _stror(s1, s2)
-       if not s1 or #s1 == 0 then
-               return s2 and #s2 > 0 and s2
-       else
-               return s1
-       end
-end
-
-function _get(c, s, o)
-       return _uci:get(c, s, o)
-end
-
-function _set(c, s, o, v)
-       if v ~= nil then
-               if type(v) == "boolean" then v = v and "1" or "0" end
-               return _uci:set(c, s, o, v)
-       else
-               return _uci:delete(c, s, o)
-       end
-end
-
-local function _wifi_state()
-       if not next(_ubuswificache) then
-               _ubuswificache = utl.ubus("network.wireless", "status", {}) or {}
-       end
-       return _ubuswificache
-end
-
-local function _wifi_state_by_sid(sid)
-       local t1, n1 = _uci:get("wireless", sid)
-       if t1 == "wifi-iface" and n1 ~= nil then
-               local radioname, radiostate
-               for radioname, radiostate in pairs(_wifi_state()) do
-                       if type(radiostate) == "table" and
-                          type(radiostate.interfaces) == "table"
-                       then
-                               local netidx, netstate
-                               for netidx, netstate in ipairs(radiostate.interfaces) do
-                                       if type(netstate) == "table" and
-                                          type(netstate.section) == "string"
-                                       then
-                                               local t2, n2 = _uci:get("wireless", netstate.section)
-                                               if t1 == t2 and n1 == n2 then
-                                                       return radioname, radiostate, netstate
-                                               end
-                                       end
-                               end
-                       end
-               end
-       end
-end
-
-local function _wifi_state_by_ifname(ifname)
-       if type(ifname) == "string" then
-               local radioname, radiostate
-               for radioname, radiostate in pairs(_wifi_state()) do
-                       if type(radiostate) == "table" and
-                          type(radiostate.interfaces) == "table"
-                       then
-                               local netidx, netstate
-                               for netidx, netstate in ipairs(radiostate.interfaces) do
-                                       if type(netstate) == "table" and
-                                          type(netstate.ifname) == "string" and
-                                          netstate.ifname == ifname
-                                       then
-                                               return radioname, radiostate, netstate
-                                       end
-                               end
-                       end
-               end
-       end
-end
-
-function _wifi_iface(x)
-       local _, p
-       for _, p in ipairs(IFACE_PATTERNS_WIRELESS) do
-               if x:match(p) then
-                       return true
-               end
-       end
-       return false
-end
-
-local function _wifi_iwinfo_by_ifname(ifname, force_phy_only)
-       local stat, iwinfo = pcall(require, "iwinfo")
-       local iwtype = stat and type(ifname) == "string" and iwinfo.type(ifname)
-       local is_nonphy_op = {
-               bitrate     = true,
-               quality     = true,
-               quality_max = true,
-               mode        = true,
-               ssid        = true,
-               bssid       = true,
-               assoclist   = true,
-               encryption  = true
-       }
-
-       if iwtype then
-               -- if we got a type but no real netdev, we're referring to a phy
-               local phy_only = force_phy_only or (ipc.link(ifname).type ~= 1)
-
-               return setmetatable({}, {
-                       __index = function(t, k)
-                               if k == "ifname" then
-                                       return ifname
-                               elseif phy_only and is_nonphy_op[k] then
-                                       return nil
-                               elseif iwinfo[iwtype][k] then
-                                       return iwinfo[iwtype][k](ifname)
-                               end
-                       end
-               })
-       end
-end
-
-local function _wifi_sid_by_netid(netid)
-       if type(netid) == "string" then
-               local radioname, netidx = netid:match("^(%w+)%.network(%d+)$")
-               if radioname and netidx then
-                       local i, n = 0, nil
-
-                       netidx = tonumber(netidx)
-                       _uci:foreach("wireless", "wifi-iface",
-                               function(s)
-                                       if s.device == radioname then
-                                               i = i + 1
-                                               if i == netidx then
-                                                       n = s[".name"]
-                                                       return false
-                                               end
-                                       end
-                               end)
-
-                       return n
-               end
-       end
-end
-
-function _wifi_sid_by_ifname(ifn)
-       local sid = _wifi_sid_by_netid(ifn)
-       if sid then
-               return sid
-       end
-
-       local _, _, netstate = _wifi_state_by_ifname(ifn)
-       if netstate and type(netstate.section) == "string" then
-               return netstate.section
-       end
-end
-
-local function _wifi_netid_by_sid(sid)
-       local t, n = _uci:get("wireless", sid)
-       if t == "wifi-iface" and n ~= nil then
-               local radioname = _uci:get("wireless", n, "device")
-               if type(radioname) == "string" then
-                       local i, netid = 0, nil
-
-                       _uci:foreach("wireless", "wifi-iface",
-                               function(s)
-                                       if s.device == radioname then
-                                               i = i + 1
-                                               if s[".name"] == n then
-                                                       netid = "%s.network%d" %{ radioname, i }
-                                                       return false
-                                               end
-                                       end
-                               end)
-
-                       return netid, radioname
-               end
-       end
-end
-
-local function _wifi_netid_by_netname(name)
-       local netid = nil
-
-       _uci:foreach("wireless", "wifi-iface",
-               function(s)
-                       local net
-                       for net in utl.imatch(s.network) do
-                               if net == name then
-                                       netid = _wifi_netid_by_sid(s[".name"])
-                                       return false
-                               end
-                       end
-               end)
-
-       return netid
-end
-
-function _iface_virtual(x)
-       local _, p
-       for _, p in ipairs(IFACE_PATTERNS_VIRTUAL) do
-               if x:match(p) then
-                       return true
-               end
-       end
-       return false
-end
-
-function _iface_ignore(x)
-       local _, p
-       for _, p in ipairs(IFACE_PATTERNS_IGNORE) do
-               if x:match(p) then
-                       return true
-               end
-       end
-       return false
-end
-
-function init(cursor)
-       _uci = cursor or _uci or uci.cursor()
-
-       _interfaces = { }
-       _bridge     = { }
-       _switch     = { }
-       _tunnel     = { }
-       _swtopo     = { }
-
-       _ubusnetcache  = { }
-       _ubusdevcache  = { }
-       _ubuswificache = { }
-
-       -- read interface information
-       local n, i
-       for n, i in ipairs(nxo.getifaddrs()) do
-               local name = i.name:match("[^:]+")
-
-               if _iface_virtual(name) then
-                       _tunnel[name] = true
-               end
-
-               if _tunnel[name] or not (_iface_ignore(name) or _iface_virtual(name)) then
-                       _interfaces[name] = _interfaces[name] or {
-                               idx      = i.ifindex or n,
-                               name     = name,
-                               rawname  = i.name,
-                               flags    = { },
-                               ipaddrs  = { },
-                               ip6addrs = { }
-                       }
-
-                       if i.family == "packet" then
-                               _interfaces[name].flags   = i.flags
-                               _interfaces[name].stats   = i.data
-                               _interfaces[name].macaddr = ipc.checkmac(i.addr)
-                       elseif i.family == "inet" then
-                               _interfaces[name].ipaddrs[#_interfaces[name].ipaddrs+1] = ipc.IPv4(i.addr, i.netmask)
-                       elseif i.family == "inet6" then
-                               _interfaces[name].ip6addrs[#_interfaces[name].ip6addrs+1] = ipc.IPv6(i.addr, i.netmask)
-                       end
-               end
-       end
-
-       -- read bridge informaton
-       local b, l
-       for l in utl.execi("brctl show") do
-               if not l:match("STP") then
-                       local r = utl.split(l, "%s+", nil, true)
-                       if #r == 4 then
-                               b = {
-                                       name    = r[1],
-                                       id      = r[2],
-                                       stp     = r[3] == "yes",
-                                       ifnames = { _interfaces[r[4]] }
-                               }
-                               if b.ifnames[1] then
-                                       b.ifnames[1].bridge = b
-                               end
-                               _bridge[r[1]] = b
-                       elseif b then
-                               b.ifnames[#b.ifnames+1] = _interfaces[r[2]]
-                               b.ifnames[#b.ifnames].bridge = b
-                       end
-               end
-       end
-
-       -- read switch topology
-       local boardinfo = jsc.parse(nfs.readfile("/etc/board.json") or "")
-       if type(boardinfo) == "table" and type(boardinfo.switch) == "table" then
-               local switch, layout
-               for switch, layout in pairs(boardinfo.switch) do
-                       if type(layout) == "table" and type(layout.ports) == "table" then
-                               local _, port
-                               local ports = { }
-                               local nports = { }
-                               local netdevs = { }
-
-                               for _, port in ipairs(layout.ports) do
-                                       if type(port) == "table" and
-                                          type(port.num) == "number" and
-                                          (type(port.role) == "string" or
-                                           type(port.device) == "string")
-                                       then
-                                               local spec = {
-                                                       num    = port.num,
-                                                       role   = port.role or "cpu",
-                                                       index  = port.index or port.num
-                                               }
-
-                                               if port.device then
-                                                       spec.device = port.device
-                                                       spec.tagged = port.need_tag
-                                                       netdevs[tostring(port.num)] = port.device
-                                               end
-
-                                               ports[#ports+1] = spec
-
-                                               if port.role then
-                                                       nports[port.role] = (nports[port.role] or 0) + 1
-                                               end
-                                       end
-                               end
-
-                               table.sort(ports, function(a, b)
-                                       if a.role ~= b.role then
-                                               return (a.role < b.role)
-                                       end
-
-                                       return (a.index < b.index)
-                               end)
-
-                               local pnum, role
-                               for _, port in ipairs(ports) do
-                                       if port.role ~= role then
-                                               role = port.role
-                                               pnum = 1
-                                       end
-
-                                       if role == "cpu" then
-                                               port.label = "CPU (%s)" % port.device
-                                       elseif nports[role] > 1 then
-                                               port.label = "%s %d" %{ role:upper(), pnum }
-                                               pnum = pnum + 1
-                                       else
-                                               port.label = role:upper()
-                                       end
-
-                                       port.role = nil
-                                       port.index = nil
-                               end
-
-                               _swtopo[switch] = {
-                                       ports = ports,
-                                       netdevs = netdevs
-                               }
-                       end
-               end
-       end
-
-       return _M
-end
-
-function save(self, ...)
-       _uci:save(...)
-       _uci:load(...)
-end
-
-function commit(self, ...)
-       _uci:commit(...)
-       _uci:load(...)
-end
-
-function ifnameof(self, x)
-       if utl.instanceof(x, interface) then
-               return x:name()
-       elseif utl.instanceof(x, protocol) then
-               return x:ifname()
-       elseif type(x) == "string" then
-               return x:match("^[^:]+")
-       end
-end
-
-function get_protocol(self, protoname, netname)
-       local v = _protocols[protoname]
-       if v then
-               return v(netname or "__dummy__")
-       end
-end
-
-function get_protocols(self)
-       local p = { }
-       local _, v
-       for _, v in ipairs(_protocols) do
-               p[#p+1] = v("__dummy__")
-       end
-       return p
-end
-
-function register_protocol(self, protoname)
-       local proto = utl.class(protocol)
-
-       function proto.__init__(self, name)
-               self.sid = name
-       end
-
-       function proto.proto(self)
-               return protoname
-       end
-
-       _protocols[#_protocols+1] = proto
-       _protocols[protoname]     = proto
-
-       return proto
-end
-
-function register_pattern_virtual(self, pat)
-       IFACE_PATTERNS_VIRTUAL[#IFACE_PATTERNS_VIRTUAL+1] = pat
-end
-
-function register_error_code(self, code, message)
-       if type(code) == "string" and
-          type(message) == "string" and
-          not IFACE_ERRORS[code]
-       then
-               IFACE_ERRORS[code] = message
-               return true
-       end
-
-       return false
-end
-
-function has_ipv6(self)
-       return nfs.access("/proc/net/ipv6_route")
-end
-
-function add_network(self, n, options)
-       local oldnet = self:get_network(n)
-       if n and #n > 0 and n:match("^[a-zA-Z0-9_]+$") and not oldnet then
-               if _uci:section("network", "interface", n, options) then
-                       return network(n)
-               end
-       elseif oldnet and oldnet:is_empty() then
-               if options then
-                       local k, v
-                       for k, v in pairs(options) do
-                               oldnet:set(k, v)
-                       end
-               end
-               return oldnet
-       end
-end
-
-function get_network(self, n)
-       if n and _uci:get("network", n) == "interface" then
-               return network(n)
-       elseif n then
-               local stat = utl.ubus("network.interface", "status", { interface = n })
-               if type(stat) == "table" and
-                  type(stat.proto) == "string"
-               then
-                       return network(n, stat.proto)
-               end
-       end
-end
-
-function get_networks(self)
-       local nets = { }
-       local nls = { }
-
-       _uci:foreach("network", "interface",
-               function(s)
-                       nls[s['.name']] = network(s['.name'])
-               end)
-
-       local dump = utl.ubus("network.interface", "dump", { })
-       if type(dump) == "table" and
-          type(dump.interface) == "table"
-       then
-               local _, net
-               for _, net in ipairs(dump.interface) do
-                       if type(net) == "table" and
-                          type(net.proto) == "string" and
-                          type(net.interface) == "string"
-                       then
-                               if not nls[net.interface] then
-                                       nls[net.interface] = network(net.interface, net.proto)
-                               end
-                       end
-               end
-       end
-
-       local n
-       for n in utl.kspairs(nls) do
-               nets[#nets+1] = nls[n]
-       end
-
-       return nets
-end
-
-function del_network(self, n)
-       local r = _uci:delete("network", n)
-       if r then
-               _uci:delete_all("luci", "ifstate",
-                       function(s) return (s.interface == n) end)
-
-               _uci:delete_all("network", "alias",
-                       function(s) return (s.interface == n) end)
-
-               _uci:delete_all("network", "route",
-                       function(s) return (s.interface == n) end)
-
-               _uci:delete_all("network", "route6",
-                       function(s) return (s.interface == n) end)
-
-               _uci:foreach("wireless", "wifi-iface",
-                       function(s)
-                               local net
-                               local rest = { }
-                               for net in utl.imatch(s.network) do
-                                       if net ~= n then
-                                               rest[#rest+1] = net
-                                       end
-                               end
-                               if #rest > 0 then
-                                       _uci:set("wireless", s['.name'], "network",
-                                                     table.concat(rest, " "))
-                               else
-                                       _uci:delete("wireless", s['.name'], "network")
-                               end
-                       end)
-       end
-       return r
-end
-
-function rename_network(self, old, new)
-       local r
-       if new and #new > 0 and new:match("^[a-zA-Z0-9_]+$") and not self:get_network(new) then
-               r = _uci:section("network", "interface", new, _uci:get_all("network", old))
-
-               if r then
-                       _uci:foreach("network", "alias",
-                               function(s)
-                                       if s.interface == old then
-                                               _uci:set("network", s['.name'], "interface", new)
-                                       end
-                               end)
-
-                       _uci:foreach("network", "route",
-                               function(s)
-                                       if s.interface == old then
-                                               _uci:set("network", s['.name'], "interface", new)
-                                       end
-                               end)
-
-                       _uci:foreach("network", "route6",
-                               function(s)
-                                       if s.interface == old then
-                                               _uci:set("network", s['.name'], "interface", new)
-                                       end
-                               end)
-
-                       _uci:foreach("wireless", "wifi-iface",
-                               function(s)
-                                       local net
-                                       local list = { }
-                                       for net in utl.imatch(s.network) do
-                                               if net == old then
-                                                       list[#list+1] = new
-                                               else
-                                                       list[#list+1] = net
-                                               end
-                                       end
-                                       if #list > 0 then
-                                               _uci:set("wireless", s['.name'], "network",
-                                                             table.concat(list, " "))
-                                       end
-                               end)
-
-                       _uci:delete("network", old)
-               end
-       end
-       return r or false
-end
-
-function get_interface(self, i)
-       if _interfaces[i] or _wifi_iface(i) then
-               return interface(i)
-       else
-               local netid = _wifi_netid_by_sid(i)
-               return netid and interface(netid)
-       end
-end
-
-function get_interfaces(self)
-       local iface
-       local ifaces = { }
-       local nfs = { }
-
-       -- find normal interfaces
-       _uci:foreach("network", "interface",
-               function(s)
-                       for iface in utl.imatch(s.ifname) do
-                               if not _iface_ignore(iface) and not _iface_virtual(iface) and not _wifi_iface(iface) then
-                                       nfs[iface] = interface(iface)
-                               end
-                       end
-               end)
-
-       for iface in utl.kspairs(_interfaces) do
-               if not (nfs[iface] or _iface_ignore(iface) or _iface_virtual(iface) or _wifi_iface(iface)) then
-                       nfs[iface] = interface(iface)
-               end
-       end
-
-       -- find vlan interfaces
-       _uci:foreach("network", "switch_vlan",
-               function(s)
-                       if type(s.ports) ~= "string" or
-                          type(s.device) ~= "string" or
-                          type(_swtopo[s.device]) ~= "table"
-                       then
-                               return
-                       end
-
-                       local pnum, ptag
-                       for pnum, ptag in s.ports:gmatch("(%d+)([tu]?)") do
-                               local netdev = _swtopo[s.device].netdevs[pnum]
-                               if netdev then
-                                       if not nfs[netdev] then
-                                               nfs[netdev] = interface(netdev)
-                                       end
-                                       _switch[netdev] = true
-
-                                       if ptag == "t" then
-                                               local vid = tonumber(s.vid or s.vlan)
-                                               if vid ~= nil and vid >= 0 and vid <= 4095 then
-                                                       local iface = "%s.%d" %{ netdev, vid }
-                                                       if not nfs[iface] then
-                                                               nfs[iface] = interface(iface)
-                                                       end
-                                                       _switch[iface] = true
-                                               end
-                                       end
-                               end
-                       end
-               end)
-
-       for iface in utl.kspairs(nfs) do
-               ifaces[#ifaces+1] = nfs[iface]
-       end
-
-       -- find wifi interfaces
-       local num = { }
-       local wfs = { }
-       _uci:foreach("wireless", "wifi-iface",
-               function(s)
-                       if s.device then
-                               num[s.device] = num[s.device] and num[s.device] + 1 or 1
-                               local i = "%s.network%d" %{ s.device, num[s.device] }
-                               wfs[i] = interface(i)
-                       end
-               end)
-
-       for iface in utl.kspairs(wfs) do
-               ifaces[#ifaces+1] = wfs[iface]
-       end
-
-       return ifaces
-end
-
-function ignore_interface(self, x)
-       return _iface_ignore(x)
-end
-
-function get_wifidev(self, dev)
-       if _uci:get("wireless", dev) == "wifi-device" then
-               return wifidev(dev)
-       end
-end
-
-function get_wifidevs(self)
-       local devs = { }
-       local wfd  = { }
-
-       _uci:foreach("wireless", "wifi-device",
-               function(s) wfd[#wfd+1] = s['.name'] end)
-
-       local dev
-       for _, dev in utl.vspairs(wfd) do
-               devs[#devs+1] = wifidev(dev)
-       end
-
-       return devs
-end
-
-function get_wifinet(self, net)
-       local wnet = _wifi_sid_by_ifname(net)
-       if wnet then
-               return wifinet(wnet)
-       end
-end
-
-function add_wifinet(self, net, options)
-       if type(options) == "table" and options.device and
-               _uci:get("wireless", options.device) == "wifi-device"
-       then
-               local wnet = _uci:section("wireless", "wifi-iface", nil, options)
-               return wifinet(wnet)
-       end
-end
-
-function del_wifinet(self, net)
-       local wnet = _wifi_sid_by_ifname(net)
-       if wnet then
-               _uci:delete("wireless", wnet)
-               return true
-       end
-       return false
-end
-
-function get_status_by_route(self, addr, mask)
-       local route_statuses = { }
-       local _, object
-       for _, object in ipairs(utl.ubus()) do
-               local net = object:match("^network%.interface%.(.+)")
-               if net then
-                       local s = utl.ubus(object, "status", {})
-                       if s and s.route then
-                               local rt
-                               for _, rt in ipairs(s.route) do
-                                       if not rt.table and rt.target == addr and rt.mask == mask then
-                                               route_statuses[net] = s
-                                       end
-                               end
-                       end
-               end
-       end
-
-       return route_statuses
-end
-
-function get_status_by_address(self, addr)
-       local _, object
-       for _, object in ipairs(utl.ubus()) do
-               local net = object:match("^network%.interface%.(.+)")
-               if net then
-                       local s = utl.ubus(object, "status", {})
-                       if s and s['ipv4-address'] then
-                               local a
-                               for _, a in ipairs(s['ipv4-address']) do
-                                       if a.address == addr then
-                                               return net, s
-                                       end
-                               end
-                       end
-                       if s and s['ipv6-address'] then
-                               local a
-                               for _, a in ipairs(s['ipv6-address']) do
-                                       if a.address == addr then
-                                               return net, s
-                                       end
-                               end
-                       end
-                       if s and s['ipv6-prefix-assignment'] then
-                               local a
-                               for _, a in ipairs(s['ipv6-prefix-assignment']) do
-                                       if a and a['local-address'] and a['local-address'].address == addr then
-                                               return net, s
-                                       end
-                               end
-                       end
-               end
-       end
-end
-
-function get_wan_networks(self)
-       local k, v
-       local wan_nets = { }
-       local route_statuses = self:get_status_by_route("0.0.0.0", 0)
-
-       for k, v in pairs(route_statuses) do
-               wan_nets[#wan_nets+1] = network(k, v.proto)
-       end
-
-       return wan_nets
-end
-
-function get_wan6_networks(self)
-       local k, v
-       local wan6_nets = { }
-       local route_statuses = self:get_status_by_route("::", 0)
-
-       for k, v in pairs(route_statuses) do
-               wan6_nets[#wan6_nets+1] = network(k, v.proto)
-       end
-
-       return wan6_nets
-end
-
-function get_switch_topologies(self)
-       return _swtopo
-end
-
-
-function network(name, proto)
-       if name then
-               local p = proto or _uci:get("network", name, "proto")
-               local c = p and _protocols[p] or protocol
-               return c(name)
-       end
-end
-
-function protocol.__init__(self, name)
-       self.sid = name
-end
-
-function protocol._get(self, opt)
-       local v = _uci:get("network", self.sid, opt)
-       if type(v) == "table" then
-               return table.concat(v, " ")
-       end
-       return v or ""
-end
-
-function protocol._ubus(self, field)
-       if not _ubusnetcache[self.sid] then
-               _ubusnetcache[self.sid] = utl.ubus("network.interface.%s" % self.sid,
-                                                  "status", { })
-       end
-       if _ubusnetcache[self.sid] and field then
-               return _ubusnetcache[self.sid][field]
-       end
-       return _ubusnetcache[self.sid]
-end
-
-function protocol.get(self, opt)
-       return _get("network", self.sid, opt)
-end
-
-function protocol.set(self, opt, val)
-       return _set("network", self.sid, opt, val)
-end
-
-function protocol.ifname(self)
-       local ifname
-       if self:is_floating() then
-               ifname = self:_ubus("l3_device")
-       else
-               ifname = self:_ubus("device")
-       end
-       if not ifname then
-               ifname = _wifi_netid_by_netname(self.sid)
-       end
-       return ifname
-end
-
-function protocol.proto(self)
-       return "none"
-end
-
-function protocol.get_i18n(self)
-       local p = self:proto()
-       if p == "none" then
-               return lng.translate("Unmanaged")
-       elseif p == "static" then
-               return lng.translate("Static address")
-       elseif p == "dhcp" then
-               return lng.translate("DHCP client")
-       else
-               return lng.translate("Unknown")
-       end
-end
-
-function protocol.type(self)
-       return self:_get("type")
-end
-
-function protocol.name(self)
-       return self.sid
-end
-
-function protocol.uptime(self)
-       return self:_ubus("uptime") or 0
-end
-
-function protocol.expires(self)
-       local u = self:_ubus("uptime")
-       local d = self:_ubus("data")
-
-       if type(u) == "number" and type(d) == "table" and
-          type(d.leasetime) == "number"
-       then
-               local r = (d.leasetime - (u % d.leasetime))
-               return r > 0 and r or 0
-       end
-
-       return -1
-end
-
-function protocol.metric(self)
-       return self:_ubus("metric") or 0
-end
-
-function protocol.zonename(self)
-       local d = self:_ubus("data")
-
-       if type(d) == "table" and type(d.zone) == "string" then
-               return d.zone
-       end
-
-       return nil
-end
-
-function protocol.ipaddr(self)
-       local addrs = self:_ubus("ipv4-address")
-       return addrs and #addrs > 0 and addrs[1].address
-end
-
-function protocol.ipaddrs(self)
-       local addrs = self:_ubus("ipv4-address")
-       local rv = { }
-
-       if type(addrs) == "table" then
-               local n, addr
-               for n, addr in ipairs(addrs) do
-                       rv[#rv+1] = "%s/%d" %{ addr.address, addr.mask }
-               end
-       end
-
-       return rv
-end
-
-function protocol.netmask(self)
-       local addrs = self:_ubus("ipv4-address")
-       return addrs and #addrs > 0 and
-               ipc.IPv4("0.0.0.0/%d" % addrs[1].mask):mask():string()
-end
-
-function protocol.gwaddr(self)
-       local _, route
-       for _, route in ipairs(self:_ubus("route") or { }) do
-               if route.target == "0.0.0.0" and route.mask == 0 then
-                       return route.nexthop
-               end
-       end
-end
-
-function protocol.dnsaddrs(self)
-       local dns = { }
-       local _, addr
-       for _, addr in ipairs(self:_ubus("dns-server") or { }) do
-               if not addr:match(":") then
-                       dns[#dns+1] = addr
-               end
-       end
-       return dns
-end
-
-function protocol.ip6addr(self)
-       local addrs = self:_ubus("ipv6-address")
-       if addrs and #addrs > 0 then
-               return "%s/%d" %{ addrs[1].address, addrs[1].mask }
-       else
-               addrs = self:_ubus("ipv6-prefix-assignment")
-               if addrs and #addrs > 0 then
-                       return "%s/%d" %{ addrs[1].address, addrs[1].mask }
-               end
-       end
-end
-
-function protocol.ip6addrs(self)
-       local addrs = self:_ubus("ipv6-address")
-       local rv = { }
-       local n, addr
-
-       if type(addrs) == "table" then
-               for n, addr in ipairs(addrs) do
-                       rv[#rv+1] = "%s/%d" %{ addr.address, addr.mask }
-               end
-       end
-
-       addrs = self:_ubus("ipv6-prefix-assignment")
-
-       if type(addrs) == "table" then
-               for n, addr in ipairs(addrs) do
-                       if type(addr["local-address"]) == "table" and
-                          type(addr["local-address"].mask) == "number" and
-                          type(addr["local-address"].address) == "string"
-                       then
-                               rv[#rv+1] = "%s/%d" %{
-                                       addr["local-address"].address,
-                                       addr["local-address"].mask
-                               }
-                       end
-               end
-       end
-
-       return rv
-end
-
-function protocol.gw6addr(self)
-       local _, route
-       for _, route in ipairs(self:_ubus("route") or { }) do
-               if route.target == "::" and route.mask == 0 then
-                       return ipc.IPv6(route.nexthop):string()
-               end
-       end
-end
-
-function protocol.dns6addrs(self)
-       local dns = { }
-       local _, addr
-       for _, addr in ipairs(self:_ubus("dns-server") or { }) do
-               if addr:match(":") then
-                       dns[#dns+1] = addr
-               end
-       end
-       return dns
-end
-
-function protocol.ip6prefix(self)
-       local prefix = self:_ubus("ipv6-prefix")
-       if prefix and #prefix > 0 then
-               return "%s/%d" %{ prefix[1].address, prefix[1].mask }
-       end
-end
-
-function protocol.errors(self)
-       local _, err, rv
-       local errors = self:_ubus("errors")
-       if type(errors) == "table" then
-               for _, err in ipairs(errors) do
-                       if type(err) == "table" and
-                          type(err.code) == "string"
-                       then
-                               rv = rv or { }
-                               rv[#rv+1] = IFACE_ERRORS[err.code] or lng.translatef("Unknown error (%s)", err.code)
-                       end
-               end
-       end
-       return rv
-end
-
-function protocol.is_bridge(self)
-       return (not self:is_virtual() and self:type() == "bridge")
-end
-
-function protocol.opkg_package(self)
-       return nil
-end
-
-function protocol.is_installed(self)
-       return true
-end
-
-function protocol.is_virtual(self)
-       return false
-end
-
-function protocol.is_floating(self)
-       return false
-end
-
-function protocol.is_dynamic(self)
-       return (self:_ubus("dynamic") == true)
-end
-
-function protocol.is_alias(self)
-       local ifn, parent = nil, nil
-
-       for ifn in utl.imatch(_uci:get("network", self.sid, "ifname")) do
-               if #ifn > 1 and ifn:byte(1) == 64 then
-                       parent = ifn:sub(2)
-               elseif parent ~= nil then
-                       parent = nil
-               end
-       end
-
-       return parent
-end
-
-function protocol.is_empty(self)
-       if self:is_floating() then
-               return false
-       else
-               local empty = true
-
-               if (self:_get("ifname") or ""):match("%S+") then
-                       empty = false
-               end
-
-               if empty and _wifi_netid_by_netname(self.sid) then
-                       empty = false
-               end
-
-               return empty
-       end
-end
-
-function protocol.is_up(self)
-       return (self:_ubus("up") == true)
-end
-
-function protocol.add_interface(self, ifname)
-       ifname = _M:ifnameof(ifname)
-       if ifname and not self:is_floating() then
-               -- if its a wifi interface, change its network option
-               local wif = _wifi_sid_by_ifname(ifname)
-               if wif then
-                       _append("wireless", wif, "network", self.sid)
-
-               -- add iface to our iface list
-               else
-                       _append("network", self.sid, "ifname", ifname)
-               end
-       end
-end
-
-function protocol.del_interface(self, ifname)
-       ifname = _M:ifnameof(ifname)
-       if ifname and not self:is_floating() then
-               -- if its a wireless interface, clear its network option
-               local wif = _wifi_sid_by_ifname(ifname)
-               if wif then _filter("wireless", wif, "network", self.sid) end
-
-               -- remove the interface
-               _filter("network", self.sid, "ifname", ifname)
-       end
-end
-
-function protocol.get_interface(self)
-       if self:is_virtual() then
-               _tunnel[self:proto() .. "-" .. self.sid] = true
-               return interface(self:proto() .. "-" .. self.sid, self)
-       elseif self:is_bridge() then
-               _bridge["br-" .. self.sid] = true
-               return interface("br-" .. self.sid, self)
-       else
-               local ifn = self:_ubus("l3_device") or self:_ubus("device")
-               if ifn then
-                       return interface(ifn, self)
-               end
-
-               for ifn in utl.imatch(_uci:get("network", self.sid, "ifname")) do
-                       ifn = ifn:match("^[^:/]+")
-                       return ifn and interface(ifn, self)
-               end
-
-               ifn = _wifi_netid_by_netname(self.sid)
-               return ifn and interface(ifn, self)
-       end
-end
-
-function protocol.get_interfaces(self)
-       if self:is_bridge() or (self:is_virtual() and not self:is_floating()) then
-               local ifaces = { }
-
-               local ifn
-               local nfs = { }
-               for ifn in utl.imatch(self:get("ifname")) do
-                       ifn = ifn:match("^[^:/]+")
-                       nfs[ifn] = interface(ifn, self)
-               end
-
-               for ifn in utl.kspairs(nfs) do
-                       ifaces[#ifaces+1] = nfs[ifn]
-               end
-
-               local wfs = { }
-               _uci:foreach("wireless", "wifi-iface",
-                       function(s)
-                               if s.device then
-                                       local net
-                                       for net in utl.imatch(s.network) do
-                                               if net == self.sid then
-                                                       ifn = _wifi_netid_by_sid(s[".name"])
-                                                       if ifn then
-                                                               wfs[ifn] = interface(ifn, self)
-                                                       end
-                                               end
-                                       end
-                               end
-                       end)
-
-               for ifn in utl.kspairs(wfs) do
-                       ifaces[#ifaces+1] = wfs[ifn]
-               end
-
-               return ifaces
-       end
-end
-
-function protocol.contains_interface(self, ifname)
-       ifname = _M:ifnameof(ifname)
-       if not ifname then
-               return false
-       elseif self:is_virtual() and self:proto() .. "-" .. self.sid == ifname then
-               return true
-       elseif self:is_bridge() and "br-" .. self.sid == ifname then
-               return true
-       else
-               local ifn
-               for ifn in utl.imatch(self:get("ifname")) do
-                       ifn = ifn:match("[^:]+")
-                       if ifn == ifname then
-                               return true
-                       end
-               end
-
-               local wif = _wifi_sid_by_ifname(ifname)
-               if wif then
-                       local n
-                       for n in utl.imatch(_uci:get("wireless", wif, "network")) do
-                               if n == self.sid then
-                                       return true
-                               end
-                       end
-               end
-       end
-
-       return false
-end
-
-function protocol.adminlink(self)
-       local stat, dsp = pcall(require, "luci.dispatcher")
-       return stat and dsp.build_url("admin", "network", "network", self.sid)
-end
-
-
-interface = utl.class()
-
-function interface.__init__(self, ifname, network)
-       local wif = _wifi_sid_by_ifname(ifname)
-       if wif then
-               self.wif    = wifinet(wif)
-               self.ifname = self.wif:ifname()
-       end
-
-       self.ifname  = self.ifname or ifname
-       self.dev     = _interfaces[self.ifname]
-       self.network = network
-end
-
-function interface._ubus(self, field)
-       if not _ubusdevcache[self.ifname] then
-               _ubusdevcache[self.ifname] = utl.ubus("network.device", "status",
-                                                     { name = self.ifname })
-       end
-       if _ubusdevcache[self.ifname] and field then
-               return _ubusdevcache[self.ifname][field]
-       end
-       return _ubusdevcache[self.ifname]
-end
-
-function interface.name(self)
-       return self.wif and self.wif:ifname() or self.ifname
-end
-
-function interface.mac(self)
-       return ipc.checkmac(self:_ubus("macaddr"))
-end
-
-function interface.ipaddrs(self)
-       return self.dev and self.dev.ipaddrs or { }
-end
-
-function interface.ip6addrs(self)
-       return self.dev and self.dev.ip6addrs or { }
-end
-
-function interface.type(self)
-       if self.ifname and self.ifname:byte(1) == 64 then
-               return "alias"
-       elseif self.wif or _wifi_iface(self.ifname) then
-               return "wifi"
-       elseif _bridge[self.ifname] then
-               return "bridge"
-       elseif _tunnel[self.ifname] then
-               return "tunnel"
-       elseif self.ifname:match("%.") then
-               return "vlan"
-       elseif _switch[self.ifname] then
-               return "switch"
-       else
-               return "ethernet"
-       end
-end
-
-function interface.shortname(self)
-       if self.wif then
-               return self.wif:shortname()
-       else
-               return self.ifname
-       end
-end
-
-function interface.get_i18n(self)
-       if self.wif then
-               return "%s: %s %q" %{
-                       lng.translate("Wireless Network"),
-                       self.wif:active_mode(),
-                       self.wif:active_ssid() or self.wif:active_bssid() or self.wif:id() or "?"
-               }
-       else
-               return "%s: %q" %{ self:get_type_i18n(), self:name() }
-       end
-end
-
-function interface.get_type_i18n(self)
-       local x = self:type()
-       if x == "alias" then
-               return lng.translate("Alias Interface")
-       elseif x == "wifi" then
-               return lng.translate("Wireless Adapter")
-       elseif x == "bridge" then
-               return lng.translate("Bridge")
-       elseif x == "switch" then
-               return lng.translate("Ethernet Switch")
-       elseif x == "vlan" then
-               if _switch[self.ifname] then
-                       return lng.translate("Switch VLAN")
-               else
-                       return lng.translate("Software VLAN")
-               end
-       elseif x == "tunnel" then
-               return lng.translate("Tunnel Interface")
-       else
-               return lng.translate("Ethernet Adapter")
-       end
-end
-
-function interface.adminlink(self)
-       if self.wif then
-               return self.wif:adminlink()
-       end
-end
-
-function interface.ports(self)
-       local members = self:_ubus("bridge-members")
-       if members then
-               local _, iface
-               local ifaces = { }
-               for _, iface in ipairs(members) do
-                       ifaces[#ifaces+1] = interface(iface)
-               end
-       end
-end
-
-function interface.bridge_id(self)
-       if self.br then
-               return self.br.id
-       else
-               return nil
-       end
-end
-
-function interface.bridge_stp(self)
-       if self.br then
-               return self.br.stp
-       else
-               return false
-       end
-end
-
-function interface.is_up(self)
-       local up = self:_ubus("up")
-       if up == nil then
-               up = (self:type() == "alias")
-       end
-       return up or false
-end
-
-function interface.is_bridge(self)
-       return (self:type() == "bridge")
-end
-
-function interface.is_bridgeport(self)
-       return self.dev and self.dev.bridge and true or false
-end
-
-function interface.tx_bytes(self)
-       local stat = self:_ubus("statistics")
-       return stat and stat.tx_bytes or 0
-end
-
-function interface.rx_bytes(self)
-       local stat = self:_ubus("statistics")
-       return stat and stat.rx_bytes or 0
-end
-
-function interface.tx_packets(self)
-       local stat = self:_ubus("statistics")
-       return stat and stat.tx_packets or 0
-end
-
-function interface.rx_packets(self)
-       local stat = self:_ubus("statistics")
-       return stat and stat.rx_packets or 0
-end
-
-function interface.get_network(self)
-       return self:get_networks()[1]
-end
-
-function interface.get_networks(self)
-       if not self.networks then
-               local nets = { }
-               local _, net
-               for _, net in ipairs(_M:get_networks()) do
-                       if net:contains_interface(self.ifname) or
-                          net:ifname() == self.ifname
-                       then
-                               nets[#nets+1] = net
-                       end
-               end
-               table.sort(nets, function(a, b) return a.sid < b.sid end)
-               self.networks = nets
-               return nets
-       else
-               return self.networks
-       end
-end
-
-function interface.get_wifinet(self)
-       return self.wif
-end
-
-
-wifidev = utl.class()
-
-function wifidev.__init__(self, name)
-       local t, n = _uci:get("wireless", name)
-       if t == "wifi-device" and n ~= nil then
-               self.sid    = n
-               self.iwinfo = _wifi_iwinfo_by_ifname(self.sid, true)
-       end
-       self.sid    = self.sid    or name
-       self.iwinfo = self.iwinfo or { ifname = self.sid }
-end
-
-function wifidev.get(self, opt)
-       return _get("wireless", self.sid, opt)
-end
-
-function wifidev.set(self, opt, val)
-       return _set("wireless", self.sid, opt, val)
-end
-
-function wifidev.name(self)
-       return self.sid
-end
-
-function wifidev.hwmodes(self)
-       local l = self.iwinfo.hwmodelist
-       if l and next(l) then
-               return l
-       else
-               return { b = true, g = true }
-       end
-end
-
-function wifidev.get_i18n(self)
-       local t = self.iwinfo.hardware_name or "Generic"
-       if self.iwinfo.type == "wl" then
-               t = "Broadcom"
-       end
-
-       local m = ""
-       local l = self:hwmodes()
-       if l.a then m = m .. "a" end
-       if l.b then m = m .. "b" end
-       if l.g then m = m .. "g" end
-       if l.n then m = m .. "n" end
-       if l.ac then m = "ac" end
-
-       return "%s 802.11%s Wireless Controller (%s)" %{ t, m, self:name() }
-end
-
-function wifidev.is_up(self)
-       if _ubuswificache[self.sid] then
-               return (_ubuswificache[self.sid].up == true)
-       end
-
-       return false
-end
-
-function wifidev.get_wifinet(self, net)
-       if _uci:get("wireless", net) == "wifi-iface" then
-               return wifinet(net)
-       else
-               local wnet = _wifi_sid_by_ifname(net)
-               if wnet then
-                       return wifinet(wnet)
-               end
-       end
-end
-
-function wifidev.get_wifinets(self)
-       local nets = { }
-
-       _uci:foreach("wireless", "wifi-iface",
-               function(s)
-                       if s.device == self.sid then
-                               nets[#nets+1] = wifinet(s['.name'])
-                       end
-               end)
-
-       return nets
-end
-
-function wifidev.add_wifinet(self, options)
-       options = options or { }
-       options.device = self.sid
-
-       local wnet = _uci:section("wireless", "wifi-iface", nil, options)
-       if wnet then
-               return wifinet(wnet, options)
-       end
-end
-
-function wifidev.del_wifinet(self, net)
-       if utl.instanceof(net, wifinet) then
-               net = net.sid
-       elseif _uci:get("wireless", net) ~= "wifi-iface" then
-               net = _wifi_sid_by_ifname(net)
-       end
-
-       if net and _uci:get("wireless", net, "device") == self.sid then
-               _uci:delete("wireless", net)
-               return true
-       end
-
-       return false
-end
-
-
-wifinet = utl.class()
-
-function wifinet.__init__(self, name, data)
-       local sid, netid, radioname, radiostate, netstate
-
-       -- lookup state by radio#.network# notation
-       sid = _wifi_sid_by_netid(name)
-       if sid then
-               netid = name
-               radioname, radiostate, netstate = _wifi_state_by_sid(sid)
-       else
-               -- lookup state by ifname (e.g. wlan0)
-               radioname, radiostate, netstate = _wifi_state_by_ifname(name)
-               if radioname and radiostate and netstate then
-                       sid = netstate.section
-                       netid = _wifi_netid_by_sid(sid)
-               else
-                       -- lookup state by uci section id (e.g. cfg053579)
-                       radioname, radiostate, netstate = _wifi_state_by_sid(name)
-                       if radioname and radiostate and netstate then
-                               sid = name
-                               netid = _wifi_netid_by_sid(sid)
-                       else
-                               -- no state available, try to resolve from uci
-                               netid, radioname = _wifi_netid_by_sid(name)
-                               if netid and radioname then
-                                       sid = name
-                               end
-                       end
-               end
-       end
-
-       local iwinfo =
-               (netstate and _wifi_iwinfo_by_ifname(netstate.ifname)) or
-               (radioname and _wifi_iwinfo_by_ifname(radioname)) or
-               { ifname = (netid or sid or name) }
-
-       self.sid       = sid or name
-       self.wdev      = iwinfo.ifname
-       self.iwinfo    = iwinfo
-       self.netid     = netid
-       self._ubusdata = {
-               radio = radioname,
-               dev   = radiostate,
-               net   = netstate
-       }
-end
-
-function wifinet.ubus(self, ...)
-       local n, v = self._ubusdata
-       for n = 1, select('#', ...) do
-               if type(v) == "table" then
-                       v = v[select(n, ...)]
-               else
-                       return nil
-               end
-       end
-       return v
-end
-
-function wifinet.get(self, opt)
-       return _get("wireless", self.sid, opt)
-end
-
-function wifinet.set(self, opt, val)
-       return _set("wireless", self.sid, opt, val)
-end
-
-function wifinet.mode(self)
-       return self:ubus("net", "config", "mode") or self:get("mode") or "ap"
-end
-
-function wifinet.ssid(self)
-       return self:ubus("net", "config", "ssid") or self:get("ssid")
-end
-
-function wifinet.bssid(self)
-       return self:ubus("net", "config", "bssid") or self:get("bssid")
-end
-
-function wifinet.network(self)
-       local net, networks = nil, { }
-       for net in utl.imatch(self:ubus("net", "config", "network") or self:get("network")) do
-               networks[#networks+1] = net
-       end
-       return networks
-end
-
-function wifinet.id(self)
-       return self.netid
-end
-
-function wifinet.name(self)
-       return self.sid
-end
-
-function wifinet.ifname(self)
-       local ifname = self:ubus("net", "ifname") or self.iwinfo.ifname
-       if not ifname or ifname:match("^wifi%d") or ifname:match("^radio%d") then
-               ifname = self.netid
-       end
-       return ifname
-end
-
-function wifinet.get_device(self)
-       local dev = self:ubus("radio") or self:get("device")
-       return dev and wifidev(dev) or nil
-end
-
-function wifinet.is_up(self)
-       local ifc = self:get_interface()
-       return (ifc and ifc:is_up() or false)
-end
-
-function wifinet.active_mode(self)
-       local m = self.iwinfo.mode or self:ubus("net", "config", "mode") or self:get("mode") or "ap"
-
-       if     m == "ap"      then m = "Master"
-       elseif m == "sta"     then m = "Client"
-       elseif m == "adhoc"   then m = "Ad-Hoc"
-       elseif m == "mesh"    then m = "Mesh"
-       elseif m == "monitor" then m = "Monitor"
-       end
-
-       return m
-end
-
-function wifinet.active_mode_i18n(self)
-       return lng.translate(self:active_mode())
-end
-
-function wifinet.active_ssid(self)
-       return self.iwinfo.ssid or self:ubus("net", "config", "ssid") or self:get("ssid")
-end
-
-function wifinet.active_bssid(self)
-       return self.iwinfo.bssid or self:ubus("net", "config", "bssid") or self:get("bssid")
-end
-
-function wifinet.active_encryption(self)
-       local enc = self.iwinfo and self.iwinfo.encryption
-       return enc and enc.description or "-"
-end
-
-function wifinet.assoclist(self)
-       return self.iwinfo.assoclist or { }
-end
-
-function wifinet.frequency(self)
-       local freq = self.iwinfo.frequency
-       if freq and freq > 0 then
-               return "%.03f" % (freq / 1000)
-       end
-end
-
-function wifinet.bitrate(self)
-       local rate = self.iwinfo.bitrate
-       if rate and rate > 0 then
-               return (rate / 1000)
-       end
-end
-
-function wifinet.channel(self)
-       return self.iwinfo.channel or self:ubus("dev", "config", "channel") or
-               tonumber(self:get("channel"))
-end
-
-function wifinet.signal(self)
-       return self.iwinfo.signal or 0
-end
-
-function wifinet.noise(self)
-       return self.iwinfo.noise or 0
-end
-
-function wifinet.country(self)
-       return self.iwinfo.country or self:ubus("dev", "config", "country") or "00"
-end
-
-function wifinet.txpower(self)
-       local pwr = (self.iwinfo.txpower or 0)
-       return pwr + self:txpower_offset()
-end
-
-function wifinet.txpower_offset(self)
-       return self.iwinfo.txpower_offset or 0
-end
-
-function wifinet.signal_level(self, s, n)
-       if self:active_bssid() ~= "00:00:00:00:00:00" then
-               local signal = s or self:signal()
-               local noise  = n or self:noise()
-
-               if signal < 0 and noise < 0 then
-                       local snr = -1 * (noise - signal)
-                       return math.floor(snr / 5)
-               else
-                       return 0
-               end
-       else
-               return -1
-       end
-end
-
-function wifinet.signal_percent(self)
-       local qc = self.iwinfo.quality or 0
-       local qm = self.iwinfo.quality_max or 0
-
-       if qc > 0 and qm > 0 then
-               return math.floor((100 / qm) * qc)
-       else
-               return 0
-       end
-end
-
-function wifinet.shortname(self)
-       return "%s %q" %{
-               lng.translate(self:active_mode()),
-               self:active_ssid() or self:active_bssid() or self:id()
-       }
-end
-
-function wifinet.get_i18n(self)
-       return "%s: %s %q (%s)" %{
-               lng.translate("Wireless Network"),
-               lng.translate(self:active_mode()),
-               self:active_ssid() or self:active_bssid() or self:id(),
-               self:ifname()
-       }
-end
-
-function wifinet.adminlink(self)
-       local stat, dsp = pcall(require, "luci.dispatcher")
-       return dsp and dsp.build_url("admin", "network", "wireless", self.netid)
-end
-
-function wifinet.get_network(self)
-       return self:get_networks()[1]
-end
-
-function wifinet.get_networks(self)
-       local nets = { }
-       local net
-       for net in utl.imatch(self:ubus("net", "config", "network") or self:get("network")) do
-               if _uci:get("network", net) == "interface" then
-                       nets[#nets+1] = network(net)
-               end
-       end
-       table.sort(nets, function(a, b) return a.sid < b.sid end)
-       return nets
-end
-
-function wifinet.get_interface(self)
-       return interface(self:ifname())
-end
-
-
--- setup base protocols
-_M:register_protocol("static")
-_M:register_protocol("dhcp")
-_M:register_protocol("none")
-
--- load protocol extensions
-local exts = nfs.dir(utl.libpath() .. "/model/network")
-if exts then
-       local ext
-       for ext in exts do
-               if ext:match("%.lua$") then
-                       require("luci.model.network." .. ext:gsub("%.lua$", ""))
-               end
-       end
-end
diff --git a/package/luci/modules/luci-base/luasrc/model/uci.lua b/package/luci/modules/luci-base/luasrc/model/uci.lua
deleted file mode 100644 (file)
index a50e28a..0000000
+++ /dev/null
@@ -1,508 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local os    = require "os"
-local util  = require "luci.util"
-local table = require "table"
-
-
-local setmetatable, rawget, rawset = setmetatable, rawget, rawset
-local require, getmetatable, assert = require, getmetatable, assert
-local error, pairs, ipairs, select = error, pairs, ipairs, select
-local type, tostring, tonumber, unpack = type, tostring, tonumber, unpack
-
--- The typical workflow for UCI is:  Get a cursor instance from the
--- cursor factory, modify data (via Cursor.add, Cursor.delete, etc.),
--- save the changes to the staging area via Cursor.save and finally
--- Cursor.commit the data to the actual config files.
--- LuCI then needs to Cursor.apply the changes so daemons etc. are
--- reloaded.
-module "luci.model.uci"
-
-local ERRSTR = {
-       "Invalid command",
-       "Invalid argument",
-       "Method not found",
-       "Entry not found",
-       "No data",
-       "Permission denied",
-       "Timeout",
-       "Not supported",
-       "Unknown error",
-       "Connection failed"
-}
-
-local session_id = nil
-
-local function call(cmd, args)
-       if type(args) == "table" and session_id then
-               args.ubus_rpc_session = session_id
-       end
-       return util.ubus("uci", cmd, args)
-end
-
-
-function cursor()
-       return _M
-end
-
-function cursor_state()
-       return _M
-end
-
-function substate(self)
-       return self
-end
-
-
-function get_confdir(self)
-       return "/etc/config"
-end
-
-function get_savedir(self)
-       return "/tmp/.uci"
-end
-
-function get_session_id(self)
-       return session_id
-end
-
-function set_confdir(self, directory)
-       return false
-end
-
-function set_savedir(self, directory)
-       return false
-end
-
-function set_session_id(self, id)
-       session_id = id
-       return true
-end
-
-
-function load(self, config)
-       return true
-end
-
-function save(self, config)
-       return true
-end
-
-function unload(self, config)
-       return true
-end
-
-
-function changes(self, config)
-       local rv, err = call("changes", { config = config })
-
-       if type(rv) == "table" and type(rv.changes) == "table" then
-               return rv.changes
-       elseif err then
-               return nil, ERRSTR[err]
-       else
-               return { }
-       end
-end
-
-
-function revert(self, config)
-       local _, err = call("revert", { config = config })
-       return (err == nil), ERRSTR[err]
-end
-
-function commit(self, config)
-       local _, err = call("commit", { config = config })
-       return (err == nil), ERRSTR[err]
-end
-
-function apply(self, rollback)
-       local _, err
-
-       if rollback then
-               local sys = require "luci.sys"
-               local conf = require "luci.config"
-               local timeout = tonumber(conf and conf.apply and conf.apply.rollback or 30) or 0
-
-               _, err = call("apply", {
-                       timeout = (timeout > 30) and timeout or 30,
-                       rollback = true
-               })
-
-               if not err then
-                       local now = os.time()
-                       local token = sys.uniqueid(16)
-
-                       util.ubus("session", "set", {
-                               ubus_rpc_session = "00000000000000000000000000000000",
-                               values = {
-                                       rollback = {
-                                               token   = token,
-                                               session = session_id,
-                                               timeout = now + timeout
-                                       }
-                               }
-                       })
-
-                       return token
-               end
-       else
-               _, err = call("changes", {})
-
-               if not err then
-                       if type(_) == "table" and type(_.changes) == "table" then
-                               local k, v
-                               for k, v in pairs(_.changes) do
-                                       _, err = call("commit", { config = k })
-                                       if err then
-                                               break
-                                       end
-                               end
-                       end
-               end
-
-               if not err then
-                       _, err = call("apply", { rollback = false })
-               end
-       end
-
-       return (err == nil), ERRSTR[err]
-end
-
-function confirm(self, token)
-       local is_pending, time_remaining, rollback_sid, rollback_token = self:rollback_pending()
-
-       if is_pending then
-               if token ~= rollback_token then
-                       return false, "Permission denied"
-               end
-
-               local _, err = util.ubus("uci", "confirm", {
-                       ubus_rpc_session = rollback_sid
-               })
-
-               if not err then
-                       util.ubus("session", "set", {
-                               ubus_rpc_session = "00000000000000000000000000000000",
-                               values = { rollback = {} }
-                       })
-               end
-
-               return (err == nil), ERRSTR[err]
-       end
-
-       return false, "No data"
-end
-
-function rollback(self)
-       local is_pending, time_remaining, rollback_sid = self:rollback_pending()
-
-       if is_pending then
-               local _, err = util.ubus("uci", "rollback", {
-                       ubus_rpc_session = rollback_sid
-               })
-
-               if not err then
-                       util.ubus("session", "set", {
-                               ubus_rpc_session = "00000000000000000000000000000000",
-                               values = { rollback = {} }
-                       })
-               end
-
-               return (err == nil), ERRSTR[err]
-       end
-
-       return false, "No data"
-end
-
-function rollback_pending(self)
-       local rv, err = util.ubus("session", "get", {
-               ubus_rpc_session = "00000000000000000000000000000000",
-               keys = { "rollback" }
-       })
-
-       local now = os.time()
-
-       if type(rv) == "table" and
-          type(rv.values) == "table" and
-          type(rv.values.rollback) == "table" and
-          type(rv.values.rollback.token) == "string" and
-          type(rv.values.rollback.session) == "string" and
-          type(rv.values.rollback.timeout) == "number" and
-          rv.values.rollback.timeout > now
-       then
-               return true,
-                       rv.values.rollback.timeout - now,
-                       rv.values.rollback.session,
-                       rv.values.rollback.token
-       end
-
-       return false, ERRSTR[err]
-end
-
-
-function foreach(self, config, stype, callback)
-       if type(callback) == "function" then
-               local rv, err = call("get", {
-                       config = config,
-                       type   = stype
-               })
-
-               if type(rv) == "table" and type(rv.values) == "table" then
-                       local sections = { }
-                       local res = false
-                       local index = 1
-
-                       local _, section
-                       for _, section in pairs(rv.values) do
-                               section[".index"] = section[".index"] or index
-                               sections[index] = section
-                               index = index + 1
-                       end
-
-                       table.sort(sections, function(a, b)
-                               return a[".index"] < b[".index"]
-                       end)
-
-                       for _, section in ipairs(sections) do
-                               local continue = callback(section)
-                               res = true
-                               if continue == false then
-                                       break
-                               end
-                       end
-                       return res
-               else
-                       return false, ERRSTR[err] or "No data"
-               end
-       else
-               return false, "Invalid argument"
-       end
-end
-
-local function _get(self, operation, config, section, option)
-       if section == nil then
-               return nil
-       elseif type(option) == "string" and option:byte(1) ~= 46 then
-               local rv, err = call(operation, {
-                       config  = config,
-                       section = section,
-                       option  = option
-               })
-
-               if type(rv) == "table" then
-                       return rv.value or nil
-               elseif err then
-                       return false, ERRSTR[err]
-               else
-                       return nil
-               end
-       elseif option == nil then
-               local values = self:get_all(config, section)
-               if values then
-                       return values[".type"], values[".name"]
-               else
-                       return nil
-               end
-       else
-               return false, "Invalid argument"
-       end
-end
-
-function get(self, ...)
-       return _get(self, "get", ...)
-end
-
-function get_state(self, ...)
-       return _get(self, "state", ...)
-end
-
-function get_all(self, config, section)
-       local rv, err = call("get", {
-               config  = config,
-               section = section
-       })
-
-       if type(rv) == "table" and type(rv.values) == "table" then
-               return rv.values
-       elseif err then
-               return false, ERRSTR[err]
-       else
-               return nil
-       end
-end
-
-function get_bool(self, ...)
-       local val = self:get(...)
-       return (val == "1" or val == "true" or val == "yes" or val == "on")
-end
-
-function get_first(self, config, stype, option, default)
-       local rv = default
-
-       self:foreach(config, stype, function(s)
-               local val = not option and s[".name"] or s[option]
-
-               if type(default) == "number" then
-                       val = tonumber(val)
-               elseif type(default) == "boolean" then
-                       val = (val == "1" or val == "true" or
-                              val == "yes" or val == "on")
-               end
-
-               if val ~= nil then
-                       rv = val
-                       return false
-               end
-       end)
-
-       return rv
-end
-
-function get_list(self, config, section, option)
-       if config and section and option then
-               local val = self:get(config, section, option)
-               return (type(val) == "table" and val or { val })
-       end
-       return { }
-end
-
-
-function section(self, config, stype, name, values)
-       local rv, err = call("add", {
-               config = config,
-               type   = stype,
-               name   = name,
-               values = values
-       })
-
-       if type(rv) == "table" then
-               return rv.section
-       elseif err then
-               return false, ERRSTR[err]
-       else
-               return nil
-       end
-end
-
-
-function add(self, config, stype)
-       return self:section(config, stype)
-end
-
-function set(self, config, section, option, ...)
-       if select('#', ...) == 0 then
-               local sname, err = self:section(config, option, section)
-               return (not not sname), err
-       else
-               local _, err = call("set", {
-                       config  = config,
-                       section = section,
-                       values  = { [option] = select(1, ...) }
-               })
-               return (err == nil), ERRSTR[err]
-       end
-end
-
-function set_list(self, config, section, option, value)
-       if section == nil or option == nil then
-               return false
-       elseif value == nil or (type(value) == "table" and #value == 0) then
-               return self:delete(config, section, option)
-       elseif type(value) == "table" then
-               return self:set(config, section, option, value)
-       else
-               return self:set(config, section, option, { value })
-       end
-end
-
-function tset(self, config, section, values)
-       local _, err = call("set", {
-               config  = config,
-               section = section,
-               values  = values
-       })
-       return (err == nil), ERRSTR[err]
-end
-
-function reorder(self, config, section, index)
-       local sections
-
-       if type(section) == "string" and type(index) == "number" then
-               local pos = 0
-
-               sections = { }
-
-               self:foreach(config, nil, function(s)
-                       if pos == index then
-                               pos = pos + 1
-                       end
-
-                       if s[".name"] ~= section then
-                               pos = pos + 1
-                               sections[pos] = s[".name"]
-                       else
-                               sections[index + 1] = section
-                       end
-               end)
-       elseif type(section) == "table" then
-               sections = section
-       else
-               return false, "Invalid argument"
-       end
-
-       local _, err = call("order", {
-               config   = config,
-               sections = sections
-       })
-
-       return (err == nil), ERRSTR[err]
-end
-
-
-function delete(self, config, section, option)
-       local _, err = call("delete", {
-               config  = config,
-               section = section,
-               option  = option
-       })
-       return (err == nil), ERRSTR[err]
-end
-
-function delete_all(self, config, stype, comparator)
-       local _, err
-       if type(comparator) == "table" then
-               _, err = call("delete", {
-                       config = config,
-                       type   = stype,
-                       match  = comparator
-               })
-       elseif type(comparator) == "function" then
-               local rv = call("get", {
-                       config = config,
-                       type   = stype
-               })
-
-               if type(rv) == "table" and type(rv.values) == "table" then
-                       local sname, section
-                       for sname, section in pairs(rv.values) do
-                               if comparator(section) then
-                                       _, err = call("delete", {
-                                               config  = config,
-                                               section = sname
-                                       })
-                               end
-                       end
-               end
-       elseif comparator == nil then
-               _, err = call("delete", {
-                       config  = config,
-                       type    = stype
-               })
-       else
-               return false, "Invalid argument"
-       end
-
-       return (err == nil), ERRSTR[err]
-end
diff --git a/package/luci/modules/luci-base/luasrc/model/uci.luadoc b/package/luci/modules/luci-base/luasrc/model/uci.luadoc
deleted file mode 100644 (file)
index 0189d49..0000000
+++ /dev/null
@@ -1,369 +0,0 @@
----[[
-LuCI UCI model library.
-
-The typical workflow for UCI is:  Get a cursor instance from the
-cursor factory, modify data (via Cursor.add, Cursor.delete, etc.),
-save the changes to the staging area via Cursor.save and finally
-Cursor.commit the data to the actual config files.
-LuCI then needs to Cursor.apply the changes so daemons etc. are
-reloaded.
-@cstyle        instance
-]]
-module "luci.model.uci"
-
----[[
-Create a new UCI-Cursor.
-
-@class                         function
-@name                          cursor
-@return                                UCI-Cursor
-]]
-
----[[
-Create a new Cursor initialized to the state directory.
-
-@class                         function
-@name                          cursor_state
-@return                                UCI cursor
-]]
-
----[[
-Applies UCI configuration changes.
-
-If the rollback parameter is set to true, the apply function will invoke the
-rollback mechanism which causes the configuration to be automatically reverted
-if no confirm() call occurs within a certain timeout.
-
-The current default timeout is 30s and can be increased using the
-"luci.apply.timeout" uci configuration key.
-
-@class                         function
-@name                          Cursor.apply
-@param rollback                Enable rollback mechanism
-@return                                Boolean whether operation succeeded
-]]
-
----[[
-Confirms UCI apply process.
-
-If a previous UCI apply with rollback has been invoked using apply(true),
-this function confirms the process and cancels the pending rollback timer.
-
-If no apply with rollback session is active, the function has no effect and
-returns with a "No data" error.
-
-@class                         function
-@name                          Cursor.confirm
-@return                                Boolean whether operation succeeded
-]]
-
----[[
-Cancels UCI apply process.
-
-If a previous UCI apply with rollback has been invoked using apply(true),
-this function cancels the process and rolls back the configuration to the
-pre-apply state.
-
-If no apply with rollback session is active, the function has no effect and
-returns with a "No data" error.
-
-@class                         function
-@name                          Cursor.rollback
-@return                                Boolean whether operation succeeded
-]]
-
----[[
-Checks whether a pending rollback is scheduled.
-
-If a previous UCI apply with rollback has been invoked using apply(true),
-and has not been confirmed or rolled back yet, this function returns true
-and the remaining time until rollback in seconds. If no rollback is pending,
-the function returns false. On error, the function returns false and an
-additional string describing the error.
-
-@class                         function
-@name                          Cursor.rollback_pending
-@return                                Boolean whether rollback is pending
-@return                                Remaining time in seconds
-]]
-
----[[
-Delete all sections of a given type that match certain criteria.
-
-@class                         function
-@name                          Cursor.delete_all
-@param config          UCI config
-@param type                    UCI section type
-@param comparator      Function that will be called for each section and returns
-                                       a boolean whether to delete the current section (optional)
-]]
-
----[[
-Create a new section and initialize it with data.
-
-@class                         function
-@name                          Cursor.section
-@param config          UCI config
-@param type                    UCI section type
-@param name                    UCI section name (optional)
-@param values          Table of key - value pairs to initialize the section with
-@return                                Name of created section
-]]
-
----[[
-Updated the data of a section using data from a table.
-
-@class                         function
-@name                          Cursor.tset
-@param config          UCI config
-@param section         UCI section name (optional)
-@param values          Table of key - value pairs to update the section with
-]]
-
----[[
-Get a boolean option and return it's value as true or false.
-
-@class                         function
-@name                          Cursor.get_bool
-@param config          UCI config
-@param section         UCI section name
-@param option          UCI option
-@return                                Boolean
-]]
-
----[[
-Get an option or list and return values as table.
-
-@class                         function
-@name                          Cursor.get_list
-@param config          UCI config
-@param section         UCI section name
-@param option          UCI option
-@return table.         If the option was not found, you will simply get an empty
-                                       table.
-]]
-
----[[
-Get the given option from the first section with the given type.
-
-@class                         function
-@name                          Cursor.get_first
-@param config          UCI config
-@param type                    UCI section type
-@param option          UCI option (optional)
-@param default         Default value (optional)
-@return                                UCI value
-]]
-
----[[
-Set given values as list. Setting a list option to an empty list
-has the same effect as deleting the option.
-
-@class                         function
-@name                          Cursor.set_list
-@param config          UCI config
-@param section         UCI section name
-@param option          UCI option
-@param value           Value or table. Non-table values will be set as single
-                                       item UCI list.
-@return                                Boolean whether operation succeeded
-]]
-
----[[
-Create a sub-state of this cursor.
-
-The sub-state is tied to the parent cursor, means it the parent unloads or
-loads configs, the sub state will do so as well.
-
-@class                         function
-@name                          Cursor.substate
-@return                                UCI state cursor tied to the parent cursor
-]]
-
----[[
-Add an anonymous section.
-
-@class                         function
-@name                          Cursor.add
-@param config          UCI config
-@param type                    UCI section type
-@return                                Name of created section
-]]
-
----[[
-Get a table of saved but uncommitted changes.
-
-@class                         function
-@name                          Cursor.changes
-@param config          UCI config
-@return                                Table of changes
-@see                           Cursor.save
-]]
-
----[[
-Commit saved changes.
-
-@class                         function
-@name                          Cursor.commit
-@param config          UCI config
-@return                                Boolean whether operation succeeded
-@see                           Cursor.revert
-@see                           Cursor.save
-]]
-
----[[
-Deletes a section or an option.
-
-@class                         function
-@name                          Cursor.delete
-@param config          UCI config
-@param section         UCI section name
-@param option          UCI option (optional)
-@return                                Boolean whether operation succeeded
-]]
-
----[[
-Call a function for every section of a certain type.
-
-@class                         function
-@name                          Cursor.foreach
-@param config          UCI config
-@param type                    UCI section type
-@param callback                Function to be called
-@return                                Boolean whether operation succeeded
-]]
-
----[[
-Get a section type or an option
-
-@class                         function
-@name                          Cursor.get
-@param config          UCI config
-@param section         UCI section name
-@param option          UCI option (optional)
-@return                                UCI value
-]]
-
----[[
-Get all sections of a config or all values of a section.
-
-@class                         function
-@name                          Cursor.get_all
-@param config          UCI config
-@param section         UCI section name (optional)
-@return                                Table of UCI sections or table of UCI values
-]]
-
----[[
-Manually load a config.
-
-@class                         function
-@name                          Cursor.load
-@param config          UCI config
-@return                                Boolean whether operation succeeded
-@see                           Cursor.save
-@see                           Cursor.unload
-]]
-
----[[
-Revert saved but uncommitted changes.
-
-@class                         function
-@name                          Cursor.revert
-@param config          UCI config
-@return                                Boolean whether operation succeeded
-@see                           Cursor.commit
-@see                           Cursor.save
-]]
-
----[[
-Saves changes made to a config to make them committable.
-
-@class                         function
-@name                          Cursor.save
-@param config          UCI config
-@return                                Boolean whether operation succeeded
-@see                           Cursor.load
-@see                           Cursor.unload
-]]
-
----[[
-Set a value or create a named section.
-
-When invoked with three arguments `config`, `sectionname`, `sectiontype`,
-then a named section of the given type is created.
-
-When invoked with four arguments `config`, `sectionname`, `optionname` and
-`optionvalue` then the value of the specified option is set to the given value.
-
-@class                         function
-@name                          Cursor.set
-@param config          UCI config
-@param section         UCI section name
-@param option          UCI option or UCI section type
-@param value           UCI value or nothing if you want to create a section
-@return                                Boolean whether operation succeeded
-]]
-
----[[
-Get the configuration directory.
-
-@class                         function
-@name                          Cursor.get_confdir
-@return                                Configuration directory
-]]
-
----[[
-Get the directory for uncomitted changes.
-
-@class                         function
-@name                          Cursor.get_savedir
-@return                                Save directory
-]]
-
----[[
-Get the effective session ID.
-
-@class                         function
-@name                          Cursor.get_session_id
-@return                                String containing the session ID
-]]
-
----[[
-Set the configuration directory.
-
-@class                         function
-@name                          Cursor.set_confdir
-@param directory       UCI configuration directory
-@return                                Boolean whether operation succeeded
-]]
-
----[[
-Set the directory for uncommitted changes.
-
-@class                         function
-@name                          Cursor.set_savedir
-@param directory       UCI changes directory
-@return                                Boolean whether operation succeeded
-]]
-
----[[
-Set the effective session ID.
-
-@class                         function
-@name                          Cursor.set_session_id
-@param id                      String containing the session ID to set
-@return                                Boolean whether operation succeeded
-]]
-
----[[
-Discard changes made to a config.
-
-@class                         function
-@name                          Cursor.unload
-@param config          UCI config
-@return                                Boolean whether operation succeeded
-@see                           Cursor.load
-@see                           Cursor.save
-]]
-
diff --git a/package/luci/modules/luci-base/luasrc/sgi/cgi.lua b/package/luci/modules/luci-base/luasrc/sgi/cgi.lua
deleted file mode 100644 (file)
index 68ae17a..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-exectime = os.clock()
-module("luci.sgi.cgi", package.seeall)
-local ltn12 = require("luci.ltn12")
-require("nixio.util")
-require("luci.http")
-require("luci.sys")
-require("luci.dispatcher")
-
--- Limited source to avoid endless blocking
-local function limitsource(handle, limit)
-       limit = limit or 0
-       local BLOCKSIZE = ltn12.BLOCKSIZE
-
-       return function()
-               if limit < 1 then
-                       handle:close()
-                       return nil
-               else
-                       local read = (limit > BLOCKSIZE) and BLOCKSIZE or limit
-                       limit = limit - read
-
-                       local chunk = handle:read(read)
-                       if not chunk then handle:close() end
-                       return chunk
-               end
-       end
-end
-
-function run()
-       local r = luci.http.Request(
-               luci.sys.getenv(),
-               limitsource(io.stdin, tonumber(luci.sys.getenv("CONTENT_LENGTH"))),
-               ltn12.sink.file(io.stderr)
-       )
-       
-       local x = coroutine.create(luci.dispatcher.httpdispatch)
-       local hcache = ""
-       local active = true
-       
-       while coroutine.status(x) ~= "dead" do
-               local res, id, data1, data2 = coroutine.resume(x, r)
-
-               if not res then
-                       print("Status: 500 Internal Server Error")
-                       print("Content-Type: text/plain\n")
-                       print(id)
-                       break;
-               end
-
-               if active then
-                       if id == 1 then
-                               io.write("Status: " .. tostring(data1) .. " " .. data2 .. "\r\n")
-                       elseif id == 2 then
-                               hcache = hcache .. data1 .. ": " .. data2 .. "\r\n"
-                       elseif id == 3 then
-                               io.write(hcache)
-                               io.write("\r\n")
-                       elseif id == 4 then
-                               io.write(tostring(data1 or ""))
-                       elseif id == 5 then
-                               io.flush()
-                               io.close()
-                               active = false
-                       elseif id == 6 then
-                               data1:copyz(nixio.stdout, data2)
-                               data1:close()
-                       end
-               end
-       end
-end
diff --git a/package/luci/modules/luci-base/luasrc/sgi/uhttpd.lua b/package/luci/modules/luci-base/luasrc/sgi/uhttpd.lua
deleted file mode 100644 (file)
index 2836bf0..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
--- Copyright 2010 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-require "nixio.util"
-require "luci.http"
-require "luci.sys"
-require "luci.dispatcher"
-require "luci.ltn12"
-
-function handle_request(env)
-       exectime = os.clock()
-       local renv = {
-               CONTENT_LENGTH  = env.CONTENT_LENGTH,
-               CONTENT_TYPE    = env.CONTENT_TYPE,
-               REQUEST_METHOD  = env.REQUEST_METHOD,
-               REQUEST_URI     = env.REQUEST_URI,
-               PATH_INFO       = env.PATH_INFO,
-               SCRIPT_NAME     = env.SCRIPT_NAME:gsub("/+$", ""),
-               SCRIPT_FILENAME = env.SCRIPT_NAME,
-               SERVER_PROTOCOL = env.SERVER_PROTOCOL,
-               QUERY_STRING    = env.QUERY_STRING
-       }
-
-       local k, v
-       for k, v in pairs(env.headers) do
-               k = k:upper():gsub("%-", "_")
-               renv["HTTP_" .. k] = v
-       end
-
-       local len = tonumber(env.CONTENT_LENGTH) or 0
-       local function recv()
-               if len > 0 then
-                       local rlen, rbuf = uhttpd.recv(4096)
-                       if rlen >= 0 then
-                               len = len - rlen
-                               return rbuf
-                       end
-               end
-               return nil
-       end
-
-       local send = uhttpd.send
-
-       local req = luci.http.Request(
-               renv, recv, luci.ltn12.sink.file(io.stderr)
-       )
-       
-
-       local x = coroutine.create(luci.dispatcher.httpdispatch)
-       local hcache = { }
-       local active = true
-
-       while coroutine.status(x) ~= "dead" do
-               local res, id, data1, data2 = coroutine.resume(x, req)
-
-               if not res then
-                       send("Status: 500 Internal Server Error\r\n")
-                       send("Content-Type: text/plain\r\n\r\n")
-                       send(tostring(id))
-                       break
-               end
-
-               if active then
-                       if id == 1 then
-                               send("Status: ")
-                               send(tostring(data1))
-                               send(" ")
-                               send(tostring(data2))
-                               send("\r\n")
-                       elseif id == 2 then
-                               hcache[data1] = data2
-                       elseif id == 3 then
-                               for k, v in pairs(hcache) do
-                                       send(tostring(k))
-                                       send(": ")
-                                       send(tostring(v))
-                                       send("\r\n")
-                               end
-                               send("\r\n")
-                       elseif id == 4 then
-                               send(tostring(data1 or ""))
-                       elseif id == 5 then
-                               active = false
-                       elseif id == 6 then
-                               data1:copyz(nixio.stdout, data2)
-                       end
-               end
-       end
-end
diff --git a/package/luci/modules/luci-base/luasrc/store.lua b/package/luci/modules/luci-base/luasrc/store.lua
deleted file mode 100644 (file)
index 34eb296..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
--- Copyright 2009 Steven Barth <steven@midlink.org>
--- Copyright 2009 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local util = require "luci.util"
-module("luci.store", util.threadlocal)
\ No newline at end of file
diff --git a/package/luci/modules/luci-base/luasrc/sys.lua b/package/luci/modules/luci-base/luasrc/sys.lua
deleted file mode 100644 (file)
index 7e4a9d6..0000000
+++ /dev/null
@@ -1,623 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local io     = require "io"
-local os     = require "os"
-local table  = require "table"
-local nixio  = require "nixio"
-local fs     = require "nixio.fs"
-local uci    = require "luci.model.uci"
-local ntm    = require "luci.model.network"
-
-local luci  = {}
-luci.util   = require "luci.util"
-luci.ip     = require "luci.ip"
-
-local tonumber, ipairs, pairs, pcall, type, next, setmetatable, require, select, unpack =
-       tonumber, ipairs, pairs, pcall, type, next, setmetatable, require, select, unpack
-
-
-module "luci.sys"
-
-function call(...)
-       return os.execute(...) / 256
-end
-
-exec = luci.util.exec
-
-function mounts()
-       local data = {}
-       local k = {"fs", "blocks", "used", "available", "percent", "mountpoint"}
-       local ps = luci.util.execi("df")
-
-       if not ps then
-               return
-       else
-               ps()
-       end
-
-       for line in ps do
-               local row = {}
-
-               local j = 1
-               for value in line:gmatch("[^%s]+") do
-                       row[k[j]] = value
-                       j = j + 1
-               end
-
-               if row[k[1]] then
-
-                       -- this is a rather ugly workaround to cope with wrapped lines in
-                       -- the df output:
-                       --
-                       --      /dev/scsi/host0/bus0/target0/lun0/part3
-                       --                   114382024  93566472  15005244  86% /mnt/usb
-                       --
-
-                       if not row[k[2]] then
-                               j = 2
-                               line = ps()
-                               for value in line:gmatch("[^%s]+") do
-                                       row[k[j]] = value
-                                       j = j + 1
-                               end
-                       end
-
-                       table.insert(data, row)
-               end
-       end
-
-       return data
-end
-
-function mtds()
-       local data = {}
-
-       if fs.access("/proc/mtd") then
-               for l in io.lines("/proc/mtd") do
-                       local d, s, e, n = l:match('^([^%s]+)%s+([^%s]+)%s+([^%s]+)%s+"([^%s]+)"')
-                       if s and n then
-                               local d = {}
-                               d.size = tonumber(s, 16)
-                               d.name = n
-                               table.insert(data, d)
-                       end
-               end
-       end
-
-       return data
-end
-
--- containing the whole environment is returned otherwise this function returns
--- the corresponding string value for the given name or nil if no such variable
--- exists.
-getenv = nixio.getenv
-
-function hostname(newname)
-       if type(newname) == "string" and #newname > 0 then
-               fs.writefile( "/proc/sys/kernel/hostname", newname )
-               return newname
-       else
-               return nixio.uname().nodename
-       end
-end
-
-function httpget(url, stream, target)
-       if not target then
-               local source = stream and io.popen or luci.util.exec
-               return source("wget -qO- %s" % luci.util.shellquote(url))
-       else
-               return os.execute("wget -qO %s %s" %
-                       {luci.util.shellquote(target), luci.util.shellquote(url)})
-       end
-end
-
-function reboot()
-       return os.execute("reboot >/dev/null 2>&1")
-end
-
-function syslog()
-       return luci.util.exec("logread")
-end
-
-function dmesg()
-       return luci.util.exec("dmesg")
-end
-
-function uniqueid(bytes)
-       local rand = fs.readfile("/dev/urandom", bytes)
-       return rand and nixio.bin.hexlify(rand)
-end
-
-function uptime()
-       return nixio.sysinfo().uptime
-end
-
-
-net = {}
-
-local function _nethints(what, callback)
-       local _, k, e, mac, ip, name
-       local cur = uci.cursor()
-       local ifn = { }
-       local hosts = { }
-       local lookup = { }
-
-       local function _add(i, ...)
-               local k = select(i, ...)
-               if k then
-                       if not hosts[k] then hosts[k] = { } end
-                       hosts[k][1] = select(1, ...) or hosts[k][1]
-                       hosts[k][2] = select(2, ...) or hosts[k][2]
-                       hosts[k][3] = select(3, ...) or hosts[k][3]
-                       hosts[k][4] = select(4, ...) or hosts[k][4]
-               end
-       end
-
-       luci.ip.neighbors(nil, function(neigh)
-               if neigh.mac and neigh.family == 4 then
-                       _add(what, neigh.mac:string(), neigh.dest:string(), nil, nil)
-               elseif neigh.mac and neigh.family == 6 then
-                       _add(what, neigh.mac:string(), nil, neigh.dest:string(), nil)
-               end
-       end)
-
-       if fs.access("/etc/ethers") then
-               for e in io.lines("/etc/ethers") do
-                       mac, name = e:match("^([a-fA-F0-9:-]+)%s+(%S+)")
-                       mac = luci.ip.checkmac(mac)
-                       if mac and name then
-                               if luci.ip.checkip4(name) then
-                                       _add(what, mac, name, nil, nil)
-                               else
-                                       _add(what, mac, nil, nil, name)
-                               end
-                       end
-               end
-       end
-
-       cur:foreach("dhcp", "dnsmasq",
-               function(s)
-                       if s.leasefile and fs.access(s.leasefile) then
-                               for e in io.lines(s.leasefile) do
-                                       mac, ip, name = e:match("^%d+ (%S+) (%S+) (%S+)")
-                                       mac = luci.ip.checkmac(mac)
-                                       if mac and ip then
-                                               _add(what, mac, ip, nil, name ~= "*" and name)
-                                       end
-                               end
-                       end
-               end
-       )
-
-       cur:foreach("dhcp", "host",
-               function(s)
-                       for mac in luci.util.imatch(s.mac) do
-                               mac = luci.ip.checkmac(mac)
-                               if mac then
-                                       _add(what, mac, s.ip, nil, s.name)
-                               end
-                       end
-               end)
-
-       for _, e in ipairs(nixio.getifaddrs()) do
-               if e.name ~= "lo" then
-                       ifn[e.name] = ifn[e.name] or { }
-                       if e.family == "packet" and e.addr and #e.addr == 17 then
-                               ifn[e.name][1] = e.addr:upper()
-                       elseif e.family == "inet" then
-                               ifn[e.name][2] = e.addr
-                       elseif e.family == "inet6" then
-                               ifn[e.name][3] = e.addr
-                       end
-               end
-       end
-
-       for _, e in pairs(ifn) do
-               if e[what] and (e[2] or e[3]) then
-                       _add(what, e[1], e[2], e[3], e[4])
-               end
-       end
-
-       for _, e in pairs(hosts) do
-               lookup[#lookup+1] = (what > 1) and e[what] or (e[2] or e[3])
-       end
-
-       if #lookup > 0 then
-               lookup = luci.util.ubus("network.rrdns", "lookup", {
-                       addrs   = lookup,
-                       timeout = 250,
-                       limit   = 1000
-               }) or { }
-       end
-
-       for _, e in luci.util.kspairs(hosts) do
-               callback(e[1], e[2], e[3], lookup[e[2]] or lookup[e[3]] or e[4])
-       end
-end
-
---          Each entry contains the values in the following order:
---          [ "mac", "name" ]
-function net.mac_hints(callback)
-       if callback then
-               _nethints(1, function(mac, v4, v6, name)
-                       name = name or v4
-                       if name and name ~= mac then
-                               callback(mac, name or v4)
-                       end
-               end)
-       else
-               local rv = { }
-               _nethints(1, function(mac, v4, v6, name)
-                       name = name or v4
-                       if name and name ~= mac then
-                               rv[#rv+1] = { mac, name or v4 }
-                       end
-               end)
-               return rv
-       end
-end
-
---          Each entry contains the values in the following order:
---          [ "ip", "name" ]
-function net.ipv4_hints(callback)
-       if callback then
-               _nethints(2, function(mac, v4, v6, name)
-                       name = name or mac
-                       if name and name ~= v4 then
-                               callback(v4, name)
-                       end
-               end)
-       else
-               local rv = { }
-               _nethints(2, function(mac, v4, v6, name)
-                       name = name or mac
-                       if name and name ~= v4 then
-                               rv[#rv+1] = { v4, name }
-                       end
-               end)
-               return rv
-       end
-end
-
---          Each entry contains the values in the following order:
---          [ "ip", "name" ]
-function net.ipv6_hints(callback)
-       if callback then
-               _nethints(3, function(mac, v4, v6, name)
-                       name = name or mac
-                       if name and name ~= v6 then
-                               callback(v6, name)
-                       end
-               end)
-       else
-               local rv = { }
-               _nethints(3, function(mac, v4, v6, name)
-                       name = name or mac
-                       if name and name ~= v6 then
-                               rv[#rv+1] = { v6, name }
-                       end
-               end)
-               return rv
-       end
-end
-
-function net.host_hints(callback)
-       if callback then
-               _nethints(1, function(mac, v4, v6, name)
-                       if mac and mac ~= "00:00:00:00:00:00" and (v4 or v6 or name) then
-                               callback(mac, v4, v6, name)
-                       end
-               end)
-       else
-               local rv = { }
-               _nethints(1, function(mac, v4, v6, name)
-                       if mac and mac ~= "00:00:00:00:00:00" and (v4 or v6 or name) then
-                               local e = { }
-                               if v4   then e.ipv4 = v4   end
-                               if v6   then e.ipv6 = v6   end
-                               if name then e.name = name end
-                               rv[mac] = e
-                       end
-               end)
-               return rv
-       end
-end
-
-function net.conntrack(callback)
-       local ok, nfct = pcall(io.lines, "/proc/net/nf_conntrack")
-       if not ok or not nfct then
-               return nil
-       end
-
-       local line, connt = nil, (not callback) and { }
-       for line in nfct do
-               local fam, l3, l4, timeout, tuples =
-                       line:match("^(ipv[46]) +(%d+) +%S+ +(%d+) +(%d+) +(.+)$")
-
-               if fam and l3 and l4 and timeout and not tuples:match("^TIME_WAIT ") then
-                       l4 = nixio.getprotobynumber(l4)
-
-                       local entry = {
-                               bytes = 0,
-                               packets = 0,
-                               layer3 = fam,
-                               layer4 = l4 and l4.name or "unknown",
-                               timeout = tonumber(timeout, 10)
-                       }
-
-                       local key, val
-                       for key, val in tuples:gmatch("(%w+)=(%S+)") do
-                               if key == "bytes" or key == "packets" then
-                                       entry[key] = entry[key] + tonumber(val, 10)
-                               elseif key == "src" or key == "dst" then
-                                       if entry[key] == nil then
-                                               entry[key] = luci.ip.new(val):string()
-                                       end
-                               elseif key == "sport" or key == "dport" then
-                                       if entry[key] == nil then
-                                               entry[key] = val
-                                       end
-                               elseif val then
-                                       entry[key] = val
-                               end
-                       end
-
-                       if callback then
-                               callback(entry)
-                       else
-                               connt[#connt+1] = entry
-                       end
-               end
-       end
-
-       return callback and true or connt
-end
-
-function net.devices()
-       local devs = {}
-       local seen = {}
-       for k, v in ipairs(nixio.getifaddrs()) do
-               if v.name and not seen[v.name] then
-                       seen[v.name] = true
-                       devs[#devs+1] = v.name
-               end
-       end
-       return devs
-end
-
-
-process = {}
-
-function process.info(key)
-       local s = {uid = nixio.getuid(), gid = nixio.getgid()}
-       return not key and s or s[key]
-end
-
-function process.list()
-       local data = {}
-       local k
-       local ps = luci.util.execi("/bin/busybox top -bn1")
-
-       if not ps then
-               return
-       end
-
-       for line in ps do
-               local pid, ppid, user, stat, vsz, mem, cpu, cmd = line:match(
-                       "^ *(%d+) +(%d+) +(%S.-%S) +([RSDZTW][W ][<N ]) +(%d+) +(%d+%%) +(%d+%%) +(.+)"
-               )
-
-               local idx = tonumber(pid)
-               if idx then
-                       data[idx] = {
-                               ['PID']     = pid,
-                               ['PPID']    = ppid,
-                               ['USER']    = user,
-                               ['STAT']    = stat,
-                               ['VSZ']     = vsz,
-                               ['%MEM']    = mem,
-                               ['%CPU']    = cpu,
-                               ['COMMAND'] = cmd
-                       }
-               end
-       end
-
-       return data
-end
-
-function process.setgroup(gid)
-       return nixio.setgid(gid)
-end
-
-function process.setuser(uid)
-       return nixio.setuid(uid)
-end
-
-process.signal = nixio.kill
-
-local function xclose(fd)
-       if fd and fd:fileno() > 2 then
-               fd:close()
-       end
-end
-
-function process.exec(command, stdout, stderr, nowait)
-       local out_r, out_w, err_r, err_w
-       if stdout then out_r, out_w = nixio.pipe() end
-       if stderr then err_r, err_w = nixio.pipe() end
-
-       local pid = nixio.fork()
-       if pid == 0 then
-               nixio.chdir("/")
-
-               local null = nixio.open("/dev/null", "w+")
-               if null then
-                       nixio.dup(out_w or null, nixio.stdout)
-                       nixio.dup(err_w or null, nixio.stderr)
-                       nixio.dup(null, nixio.stdin)
-                       xclose(out_w)
-                       xclose(out_r)
-                       xclose(err_w)
-                       xclose(err_r)
-                       xclose(null)
-               end
-
-               nixio.exec(unpack(command))
-               os.exit(-1)
-       end
-
-       local _, pfds, rv = nil, {}, { code = -1, pid = pid }
-
-       xclose(out_w)
-       xclose(err_w)
-
-       if out_r then
-               pfds[#pfds+1] = {
-                       fd = out_r,
-                       cb = type(stdout) == "function" and stdout,
-                       name = "stdout",
-                       events = nixio.poll_flags("in", "err", "hup")
-               }
-       end
-
-       if err_r then
-               pfds[#pfds+1] = {
-                       fd = err_r,
-                       cb = type(stderr) == "function" and stderr,
-                       name = "stderr",
-                       events = nixio.poll_flags("in", "err", "hup")
-               }
-       end
-
-       while #pfds > 0 do
-               local nfds, err = nixio.poll(pfds, -1)
-               if not nfds and err ~= nixio.const.EINTR then
-                       break
-               end
-
-               local i
-               for i = #pfds, 1, -1 do
-                       local rfd = pfds[i]
-                       if rfd.revents > 0 then
-                               local chunk, err = rfd.fd:read(4096)
-                               if chunk and #chunk > 0 then
-                                       if rfd.cb then
-                                               rfd.cb(chunk)
-                                       else
-                                               rfd.buf = rfd.buf or {}
-                                               rfd.buf[#rfd.buf + 1] = chunk
-                                       end
-                               else
-                                       table.remove(pfds, i)
-                                       if rfd.buf then
-                                               rv[rfd.name] = table.concat(rfd.buf, "")
-                                       end
-                                       rfd.fd:close()
-                               end
-                       end
-               end
-       end
-
-       if not nowait then
-               _, _, rv.code = nixio.waitpid(pid)
-       end
-
-       return rv
-end
-
-
-user = {}
-
---                             { "uid", "gid", "name", "passwd", "dir", "shell", "gecos" }
-user.getuser = nixio.getpw
-
-function user.getpasswd(username)
-       local pwe = nixio.getsp and nixio.getsp(username) or nixio.getpw(username)
-       local pwh = pwe and (pwe.pwdp or pwe.passwd)
-       if not pwh or #pwh < 1 or pwh == "!" or pwh == "x" then
-               return nil, pwe
-       else
-               return pwh, pwe
-       end
-end
-
-function user.checkpasswd(username, pass)
-       local pwh, pwe = user.getpasswd(username)
-       if pwe then
-               return (pwh == nil or nixio.crypt(pass, pwh) == pwh)
-       end
-       return false
-end
-
-function user.setpasswd(username, password)
-       return os.execute("(echo %s; sleep 1; echo %s) | passwd %s >/dev/null 2>&1" %{
-               luci.util.shellquote(password),
-               luci.util.shellquote(password),
-               luci.util.shellquote(username)
-       })
-end
-
-
-wifi = {}
-
-function wifi.getiwinfo(ifname)
-       ntm.init()
-
-       local wnet = ntm:get_wifinet(ifname)
-       if wnet and wnet.iwinfo then
-               return wnet.iwinfo
-       end
-
-       local wdev = ntm:get_wifidev(ifname)
-       if wdev and wdev.iwinfo then
-               return wdev.iwinfo
-       end
-
-       return { ifname = ifname }
-end
-
-
-init = {}
-init.dir = "/etc/init.d/"
-
-function init.names()
-       local names = { }
-       for name in fs.glob(init.dir.."*") do
-               names[#names+1] = fs.basename(name)
-       end
-       return names
-end
-
-function init.index(name)
-       if fs.access(init.dir..name) then
-               return call("env -i sh -c 'source %s%s enabled; exit ${START:-255}' >/dev/null"
-                       %{ init.dir, name })
-       end
-end
-
-local function init_action(action, name)
-       if fs.access(init.dir..name) then
-               return call("env -i %s%s %s >/dev/null" %{ init.dir, name, action })
-       end
-end
-
-function init.enabled(name)
-       return (init_action("enabled", name) == 0)
-end
-
-function init.enable(name)
-       return (init_action("enable", name) == 1)
-end
-
-function init.disable(name)
-       return (init_action("disable", name) == 0)
-end
-
-function init.start(name)
-       return (init_action("start", name) == 0)
-end
-
-function init.stop(name)
-       return (init_action("stop", name) == 0)
-end
diff --git a/package/luci/modules/luci-base/luasrc/sys.luadoc b/package/luci/modules/luci-base/luasrc/sys.luadoc
deleted file mode 100644 (file)
index 162650e..0000000
+++ /dev/null
@@ -1,441 +0,0 @@
----[[
-LuCI Linux and POSIX system utilities.
-]]
-module "luci.sys"
-
----[[
-Execute a given shell command and return the error code
-
-@class         function
-@name          call
-@param                 ...             Command to call
-@return                Error code of the command
-]]
-
----[[
-Execute a given shell command and capture its standard output
-
-@class         function
-@name          exec
-@param command Command to call
-@return                        String containing the return the output of the command
-]]
-
----[[
-Retrieve information about currently mounted file systems.
-
-@class function
-@name mounts
-@return        Table containing mount information
-]]
-
----[[
-Retrieve environment variables. If no variable is given then a table
-
-containing the whole environment is returned otherwise this function returns
-the corresponding string value for the given name or nil if no such variable
-exists.
-@class         function
-@name          getenv
-@param var     Name of the environment variable to retrieve (optional)
-@return                String containing the value of the specified variable
-@return                Table containing all variables if no variable name is given
-]]
-
----[[
-Get or set the current hostname.
-
-@class function
-@name hostname
-@param         String containing a new hostname to set (optional)
-@return                String containing the system hostname
-]]
-
----[[
-Returns the contents of a documented referred by an URL.
-
-@class function
-@name httpget
-@param url      The URL to retrieve
-@param stream Return a stream instead of a buffer
-@param target Directly write to target file name
-@return                String containing the contents of given the URL
-]]
-
----[[
-Initiate a system reboot.
-
-@class function
-@name reboot
-@return        Return value of os.execute()
-]]
-
----[[
-Retrieves the output of the "logread" command.
-
-@class function
-@name syslog
-@return        String containing the current log buffer
-]]
-
----[[
-Retrieves the output of the "dmesg" command.
-
-@class function
-@name dmesg
-@return        String containing the current log buffer
-]]
-
----[[
-Generates a random id with specified length.
-
-@class function
-@name uniqueid
-@param bytes   Number of bytes for the unique id
-@return                String containing hex encoded id
-]]
-
----[[
-Returns the current system uptime stats.
-
-@class function
-@name uptime
-@return        String containing total uptime in seconds
-]]
-
----[[
-LuCI system utilities / network related functions.
-
-@class module
-@name  luci.sys.net
-]]
-
----[[
-Returns the current arp-table entries as two-dimensional table.
-
-@class function
-@name net.arptable
-@return        Table of table containing the current arp entries.
---                     The following fields are defined for arp entry objects:
---                     { "IP address", "HW address", "HW type", "Flags", "Mask", "Device" }
-]]
-
----[[
-Returns a two-dimensional table of mac address hints.
-
-@class function
-@name net.mac_hints
-@return  Table of table containing known hosts from various sources.
-         Each entry contains the values in the following order:
-         [ "mac", "name" ]
-]]
-
----[[
-Returns a two-dimensional table of IPv4 address hints.
-
-@class function
-@name net.ipv4_hints
-@return  Table of table containing known hosts from various sources.
-         Each entry contains the values in the following order:
-         [ "ip", "name" ]
-]]
-
----[[
-Returns a two-dimensional table of IPv6 address hints.
-
-@class function
-@name net.ipv6_hints
-@return  Table of table containing known hosts from various sources.
-         Each entry contains the values in the following order:
-         [ "ip", "name" ]
-]]
-
----[[
-Returns a two-dimensional table of host hints.
-
-@class function
-@name net.host_hints
-@return  Table of table containing known hosts from various sources,
-         indexed by mac address. Each subtable contains at least one
-         of the fields "name", "ipv4" or "ipv6".
-]]
-
----[[
-Returns conntrack information
-
-@class function
-@name net.conntrack
-@return        Table with the currently tracked IP connections
-]]
-
----[[
-Determine the names of available network interfaces.
-
-@class function
-@name net.devices
-@return        Table containing all current interface names
-]]
-
----[[
-Return information about available network interfaces.
-
-@class function
-@name net.deviceinfo
-@return        Table containing all current interface names and their information
-]]
-
----[[
-Returns the current kernel routing table entries.
-
-@class function
-@name net.routes
-@return        Table of tables with properties of the corresponding routes.
---                     The following fields are defined for route entry tables:
---                     { "dest", "gateway", "metric", "refcount", "usecount", "irtt",
---                       "flags", "device" }
-]]
-
----[[
-Returns the current ipv6 kernel routing table entries.
-
-@class function
-@name net.routes6
-@return        Table of tables with properties of the corresponding routes.
---                     The following fields are defined for route entry tables:
---                     { "source", "dest", "nexthop", "metric", "refcount", "usecount",
---                       "flags", "device" }
-]]
-
----[[
-Tests whether the given host responds to ping probes.
-
-@class function
-@name net.pingtest
-@param host    String containing a hostname or IPv4 address
-@return                Number containing 0 on success and >= 1 on error
-]]
-
----[[
-LuCI system utilities / process related functions.
-
-@class module
-@name  luci.sys.process
-]]
-
----[[
-Get the current process id.
-
-@class function
-@name  process.info
-@return        Number containing the current pid
-]]
-
----[[
-Retrieve information about currently running processes.
-
-@class function
-@name process.list
-@return        Table containing process information
-]]
-
----[[
-Set the gid of a process identified by given pid.
-
-@class function
-@name process.setgroup
-@param gid     Number containing the Unix group id
-@return                Boolean indicating successful operation
-@return                String containing the error message if failed
-@return                Number containing the error code if failed
-]]
-
----[[
-Set the uid of a process identified by given pid.
-
-@class function
-@name process.setuser
-@param uid     Number containing the Unix user id
-@return                Boolean indicating successful operation
-@return                String containing the error message if failed
-@return                Number containing the error code if failed
-]]
-
----[[
-Send a signal to a process identified by given pid.
-
-@class function
-@name  process.signal
-@param pid     Number containing the process id
-@param sig     Signal to send (default: 15 [SIGTERM])
-@return                Boolean indicating successful operation
-@return                Number containing the error code if failed
-]]
-
----[[
-Execute a process, optionally capturing stdio.
-
-Executes the process specified by the given argv vector, e.g.
-`{ "/bin/sh", "-c", "echo 1" }` and waits for it to terminate unless a true
-value has been passed for the "nowait" parameter.
-
-When a function value is passed for the stdout or stderr arguments, the passed
-function is repeatedly called for each chunk read from the corresponding stdio
-stream. The read data is passed as string containing at most 4096 bytes at a
-time.
-
-When a true, non-function value is passed for the stdout or stderr arguments,
-the data of the corresponding stdio stream is read into an internal string
-buffer and returned as "stdout" or "stderr" field respectively in the result
-table.
-
-When a true value is passed to the nowait parameter, the function does not
-await process termination but returns as soon as all captured stdio streams
-have been closed or - if no streams are captured - immediately after launching
-the process.
-
-@class function
-@name  process.exec
-@param commend Table containing the argv vector to execute
-@param stdout  Callback function or boolean to indicate capturing (optional)
-@param stderr  Callback function or boolean to indicate capturing (optional)
-@param nowait  Don't wait for process termination when true (optional)
-@return                Table containing at least the fields "code" which holds the exit
-            status of the invoked process or "-1" on error and "pid", which
-            contains the process id assigned to the spawned process. When
-            stdout and/or stderr capturing has been requested, it additionally
-            contains "stdout" and "stderr" fields respectively, holding the
-            captured stdio data as string.
-]]
-
----[[
-LuCI system utilities / user related functions.
-
-@class module
-@name  luci.sys.user
-]]
-
----[[
-Retrieve user information for given uid.
-
-@class         function
-@name          getuser
-@param uid     Number containing the Unix user id
-@return                Table containing the following fields:
---                             { "uid", "gid", "name", "passwd", "dir", "shell", "gecos" }
-]]
-
----[[
-Retrieve the current user password hash.
-
-@class function
-@name user.getpasswd
-@param username        String containing the username to retrieve the password for
-@return                        String containing the hash or nil if no password is set.
-@return                        Password database entry
-]]
-
----[[
-Test whether given string matches the password of a given system user.
-
-@class function
-@name user.checkpasswd
-@param username        String containing the Unix user name
-@param pass            String containing the password to compare
-@return                        Boolean indicating whether the passwords are equal
-]]
-
----[[
-Change the password of given user.
-
-@class function
-@name user.setpasswd
-@param username        String containing the Unix user name
-@param password        String containing the password to compare
-@return                        Number containing 0 on success and >= 1 on error
-]]
-
----[[
-LuCI system utilities / wifi related functions.
-
-@class module
-@name  luci.sys.wifi
-]]
-
----[[
-Get wireless information for given interface.
-
-@class function
-@name wifi.getiwinfo
-@param ifname        String containing the interface name
-@return              A wrapped iwinfo object instance
-]]
-
----[[
-LuCI system utilities / init related functions.
-
-@class module
-@name  luci.sys.init
-]]
-
----[[
-Get the names of all installed init scripts
-
-@class function
-@name init.names
-@return        Table containing the names of all inistalled init scripts
-]]
-
----[[
-Get the index of he given init script
-
-@class function
-@name init.index
-@param name    Name of the init script
-@return                Numeric index value
-]]
-
----[[
-Test whether the given init script is enabled
-
-@class function
-@name init.enabled
-@param name    Name of the init script
-@return                Boolean indicating whether init is enabled
-]]
-
----[[
-Enable the given init script
-
-@class function
-@name init.enable
-@param name    Name of the init script
-@return                Boolean indicating success
-]]
-
----[[
-Disable the given init script
-
-@class function
-@name init.disable
-@param name    Name of the init script
-@return                Boolean indicating success
-]]
-
----[[
-Start the given init script
-
-@class function
-@name init.start
-@param name    Name of the init script
-@return                Boolean indicating success
-]]
-
----[[
-Stop the given init script
-
-@class function
-@name init.stop
-@param name    Name of the init script
-@return                Boolean indicating success
-]]
-
diff --git a/package/luci/modules/luci-base/luasrc/sys/zoneinfo.lua b/package/luci/modules/luci-base/luasrc/sys/zoneinfo.lua
deleted file mode 100644 (file)
index aa054a2..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
--- Licensed to the public under the Apache License 2.0.
-
-local setmetatable, require, rawget, rawset = setmetatable, require, rawget, rawset
-
-module "luci.sys.zoneinfo"
-
-setmetatable(_M, {
-       __index = function(t, k)
-               if k == "TZ" and not rawget(t, k) then
-                       local m = require "luci.sys.zoneinfo.tzdata"
-                       rawset(t, k, rawget(m, k))
-               elseif k == "OFFSET" and not rawget(t, k) then
-                       local m = require "luci.sys.zoneinfo.tzoffset"
-                       rawset(t, k, rawget(m, k))
-               end
-
-               return rawget(t, k)
-       end
-})
diff --git a/package/luci/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua b/package/luci/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua
deleted file mode 100644 (file)
index 39fd4a3..0000000
+++ /dev/null
@@ -1,456 +0,0 @@
--- Licensed to the public under the Apache License 2.0.
-
-module "luci.sys.zoneinfo.tzdata"
-
-TZ = {
-       { 'Africa/Abidjan', 'GMT0' },
-       { 'Africa/Accra', 'GMT0' },
-       { 'Africa/Addis Ababa', 'EAT-3' },
-       { 'Africa/Algiers', 'CET-1' },
-       { 'Africa/Asmara', 'EAT-3' },
-       { 'Africa/Bamako', 'GMT0' },
-       { 'Africa/Bangui', 'WAT-1' },
-       { 'Africa/Banjul', 'GMT0' },
-       { 'Africa/Bissau', 'GMT0' },
-       { 'Africa/Blantyre', 'CAT-2' },
-       { 'Africa/Brazzaville', 'WAT-1' },
-       { 'Africa/Bujumbura', 'CAT-2' },
-       { 'Africa/Cairo', 'EET-2' },
-       { 'Africa/Ceuta', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Africa/Conakry', 'GMT0' },
-       { 'Africa/Dakar', 'GMT0' },
-       { 'Africa/Dar es Salaam', 'EAT-3' },
-       { 'Africa/Djibouti', 'EAT-3' },
-       { 'Africa/Douala', 'WAT-1' },
-       { 'Africa/Freetown', 'GMT0' },
-       { 'Africa/Gaborone', 'CAT-2' },
-       { 'Africa/Harare', 'CAT-2' },
-       { 'Africa/Johannesburg', 'SAST-2' },
-       { 'Africa/Juba', 'EAT-3' },
-       { 'Africa/Kampala', 'EAT-3' },
-       { 'Africa/Khartoum', 'CAT-2' },
-       { 'Africa/Kigali', 'CAT-2' },
-       { 'Africa/Kinshasa', 'WAT-1' },
-       { 'Africa/Lagos', 'WAT-1' },
-       { 'Africa/Libreville', 'WAT-1' },
-       { 'Africa/Lome', 'GMT0' },
-       { 'Africa/Luanda', 'WAT-1' },
-       { 'Africa/Lubumbashi', 'CAT-2' },
-       { 'Africa/Lusaka', 'CAT-2' },
-       { 'Africa/Malabo', 'WAT-1' },
-       { 'Africa/Maputo', 'CAT-2' },
-       { 'Africa/Maseru', 'SAST-2' },
-       { 'Africa/Mbabane', 'SAST-2' },
-       { 'Africa/Mogadishu', 'EAT-3' },
-       { 'Africa/Monrovia', 'GMT0' },
-       { 'Africa/Nairobi', 'EAT-3' },
-       { 'Africa/Ndjamena', 'WAT-1' },
-       { 'Africa/Niamey', 'WAT-1' },
-       { 'Africa/Nouakchott', 'GMT0' },
-       { 'Africa/Ouagadougou', 'GMT0' },
-       { 'Africa/Porto-Novo', 'WAT-1' },
-       { 'Africa/Sao Tome', 'GMT0' },
-       { 'Africa/Tripoli', 'EET-2' },
-       { 'Africa/Tunis', 'CET-1' },
-       { 'Africa/Windhoek', 'CAT-2' },
-       { 'America/Adak', 'HST10HDT,M3.2.0,M11.1.0' },
-       { 'America/Anchorage', 'AKST9AKDT,M3.2.0,M11.1.0' },
-       { 'America/Anguilla', 'AST4' },
-       { 'America/Antigua', 'AST4' },
-       { 'America/Araguaina', '<-03>3' },
-       { 'America/Argentina/Buenos Aires', '<-03>3' },
-       { 'America/Argentina/Catamarca', '<-03>3' },
-       { 'America/Argentina/Cordoba', '<-03>3' },
-       { 'America/Argentina/Jujuy', '<-03>3' },
-       { 'America/Argentina/La Rioja', '<-03>3' },
-       { 'America/Argentina/Mendoza', '<-03>3' },
-       { 'America/Argentina/Rio Gallegos', '<-03>3' },
-       { 'America/Argentina/Salta', '<-03>3' },
-       { 'America/Argentina/San Juan', '<-03>3' },
-       { 'America/Argentina/San Luis', '<-03>3' },
-       { 'America/Argentina/Tucuman', '<-03>3' },
-       { 'America/Argentina/Ushuaia', '<-03>3' },
-       { 'America/Aruba', 'AST4' },
-       { 'America/Asuncion', '<-04>4<-03>,M10.1.0/0,M3.4.0/0' },
-       { 'America/Atikokan', 'EST5' },
-       { 'America/Bahia', '<-03>3' },
-       { 'America/Bahia Banderas', 'CST6CDT,M4.1.0,M10.5.0' },
-       { 'America/Barbados', 'AST4' },
-       { 'America/Belem', '<-03>3' },
-       { 'America/Belize', 'CST6' },
-       { 'America/Blanc-Sablon', 'AST4' },
-       { 'America/Boa Vista', '<-04>4' },
-       { 'America/Bogota', '<-05>5' },
-       { 'America/Boise', 'MST7MDT,M3.2.0,M11.1.0' },
-       { 'America/Cambridge Bay', 'MST7MDT,M3.2.0,M11.1.0' },
-       { 'America/Campo Grande', '<-04>4<-03>,M11.1.0/0,M2.3.0/0' },
-       { 'America/Cancun', 'EST5' },
-       { 'America/Caracas', '<-04>4' },
-       { 'America/Cayenne', '<-03>3' },
-       { 'America/Cayman', 'EST5' },
-       { 'America/Chicago', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/Chihuahua', 'MST7MDT,M4.1.0,M10.5.0' },
-       { 'America/Costa Rica', 'CST6' },
-       { 'America/Creston', 'MST7' },
-       { 'America/Cuiaba', '<-04>4<-03>,M11.1.0/0,M2.3.0/0' },
-       { 'America/Curacao', 'AST4' },
-       { 'America/Danmarkshavn', 'GMT0' },
-       { 'America/Dawson', 'PST8PDT,M3.2.0,M11.1.0' },
-       { 'America/Dawson Creek', 'MST7' },
-       { 'America/Denver', 'MST7MDT,M3.2.0,M11.1.0' },
-       { 'America/Detroit', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Dominica', 'AST4' },
-       { 'America/Edmonton', 'MST7MDT,M3.2.0,M11.1.0' },
-       { 'America/Eirunepe', '<-05>5' },
-       { 'America/El Salvador', 'CST6' },
-       { 'America/Fort Nelson', 'MST7' },
-       { 'America/Fortaleza', '<-03>3' },
-       { 'America/Glace Bay', 'AST4ADT,M3.2.0,M11.1.0' },
-       { 'America/Godthab', '<-03>3<-02>,M3.5.0/-2,M10.5.0/-1' },
-       { 'America/Goose Bay', 'AST4ADT,M3.2.0,M11.1.0' },
-       { 'America/Grand Turk', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Grenada', 'AST4' },
-       { 'America/Guadeloupe', 'AST4' },
-       { 'America/Guatemala', 'CST6' },
-       { 'America/Guayaquil', '<-05>5' },
-       { 'America/Guyana', '<-04>4' },
-       { 'America/Halifax', 'AST4ADT,M3.2.0,M11.1.0' },
-       { 'America/Havana', 'CST5CDT,M3.2.0/0,M11.1.0/1' },
-       { 'America/Hermosillo', 'MST7' },
-       { 'America/Indiana/Indianapolis', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Indiana/Knox', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/Indiana/Marengo', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Indiana/Petersburg', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Indiana/Tell City', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/Indiana/Vevay', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Indiana/Vincennes', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Indiana/Winamac', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Inuvik', 'MST7MDT,M3.2.0,M11.1.0' },
-       { 'America/Iqaluit', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Jamaica', 'EST5' },
-       { 'America/Juneau', 'AKST9AKDT,M3.2.0,M11.1.0' },
-       { 'America/Kentucky/Louisville', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Kentucky/Monticello', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Kralendijk', 'AST4' },
-       { 'America/La Paz', '<-04>4' },
-       { 'America/Lima', '<-05>5' },
-       { 'America/Los Angeles', 'PST8PDT,M3.2.0,M11.1.0' },
-       { 'America/Lower Princes', 'AST4' },
-       { 'America/Maceio', '<-03>3' },
-       { 'America/Managua', 'CST6' },
-       { 'America/Manaus', '<-04>4' },
-       { 'America/Marigot', 'AST4' },
-       { 'America/Martinique', 'AST4' },
-       { 'America/Matamoros', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/Mazatlan', 'MST7MDT,M4.1.0,M10.5.0' },
-       { 'America/Menominee', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/Merida', 'CST6CDT,M4.1.0,M10.5.0' },
-       { 'America/Metlakatla', 'AKST9AKDT,M3.2.0,M11.1.0' },
-       { 'America/Mexico City', 'CST6CDT,M4.1.0,M10.5.0' },
-       { 'America/Miquelon', '<-03>3<-02>,M3.2.0,M11.1.0' },
-       { 'America/Moncton', 'AST4ADT,M3.2.0,M11.1.0' },
-       { 'America/Monterrey', 'CST6CDT,M4.1.0,M10.5.0' },
-       { 'America/Montevideo', '<-03>3' },
-       { 'America/Montserrat', 'AST4' },
-       { 'America/Nassau', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/New York', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Nipigon', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Nome', 'AKST9AKDT,M3.2.0,M11.1.0' },
-       { 'America/Noronha', '<-02>2' },
-       { 'America/North Dakota/Beulah', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/North Dakota/Center', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/North Dakota/New Salem', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/Ojinaga', 'MST7MDT,M3.2.0,M11.1.0' },
-       { 'America/Panama', 'EST5' },
-       { 'America/Pangnirtung', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Paramaribo', '<-03>3' },
-       { 'America/Phoenix', 'MST7' },
-       { 'America/Port of Spain', 'AST4' },
-       { 'America/Port-au-Prince', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Porto Velho', '<-04>4' },
-       { 'America/Puerto Rico', 'AST4' },
-       { 'America/Punta Arenas', '<-03>3' },
-       { 'America/Rainy River', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/Rankin Inlet', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/Recife', '<-03>3' },
-       { 'America/Regina', 'CST6' },
-       { 'America/Resolute', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/Rio Branco', '<-05>5' },
-       { 'America/Santarem', '<-03>3' },
-       { 'America/Santiago', '<-04>4<-03>,M9.1.6/24,M4.1.6/24' },
-       { 'America/Santo Domingo', 'AST4' },
-       { 'America/Sao Paulo', '<-03>3<-02>,M11.1.0/0,M2.3.0/0' },
-       { 'America/Scoresbysund', '<-01>1<+00>,M3.5.0/0,M10.5.0/1' },
-       { 'America/Sitka', 'AKST9AKDT,M3.2.0,M11.1.0' },
-       { 'America/St Barthelemy', 'AST4' },
-       { 'America/St Johns', 'NST3:30NDT,M3.2.0,M11.1.0' },
-       { 'America/St Kitts', 'AST4' },
-       { 'America/St Lucia', 'AST4' },
-       { 'America/St Thomas', 'AST4' },
-       { 'America/St Vincent', 'AST4' },
-       { 'America/Swift Current', 'CST6' },
-       { 'America/Tegucigalpa', 'CST6' },
-       { 'America/Thule', 'AST4ADT,M3.2.0,M11.1.0' },
-       { 'America/Thunder Bay', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Tijuana', 'PST8PDT,M3.2.0,M11.1.0' },
-       { 'America/Toronto', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Tortola', 'AST4' },
-       { 'America/Vancouver', 'PST8PDT,M3.2.0,M11.1.0' },
-       { 'America/Whitehorse', 'PST8PDT,M3.2.0,M11.1.0' },
-       { 'America/Winnipeg', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/Yakutat', 'AKST9AKDT,M3.2.0,M11.1.0' },
-       { 'America/Yellowknife', 'MST7MDT,M3.2.0,M11.1.0' },
-       { 'Antarctica/Casey', '<+08>-8' },
-       { 'Antarctica/Davis', '<+07>-7' },
-       { 'Antarctica/DumontDUrville', '<+10>-10' },
-       { 'Antarctica/Macquarie', '<+11>-11' },
-       { 'Antarctica/Mawson', '<+05>-5' },
-       { 'Antarctica/McMurdo', 'NZST-12NZDT,M9.5.0,M4.1.0/3' },
-       { 'Antarctica/Palmer', '<-03>3' },
-       { 'Antarctica/Rothera', '<-03>3' },
-       { 'Antarctica/Syowa', '<+03>-3' },
-       { 'Antarctica/Troll', '<+00>0<+02>-2,M3.5.0/1,M10.5.0/3' },
-       { 'Antarctica/Vostok', '<+06>-6' },
-       { 'Arctic/Longyearbyen', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Asia/Aden', '<+03>-3' },
-       { 'Asia/Almaty', '<+06>-6' },
-       { 'Asia/Amman', 'EET-2EEST,M3.5.4/24,M10.5.5/1' },
-       { 'Asia/Anadyr', '<+12>-12' },
-       { 'Asia/Aqtau', '<+05>-5' },
-       { 'Asia/Aqtobe', '<+05>-5' },
-       { 'Asia/Ashgabat', '<+05>-5' },
-       { 'Asia/Atyrau', '<+05>-5' },
-       { 'Asia/Baghdad', '<+03>-3' },
-       { 'Asia/Bahrain', '<+03>-3' },
-       { 'Asia/Baku', '<+04>-4' },
-       { 'Asia/Bangkok', '<+07>-7' },
-       { 'Asia/Barnaul', '<+07>-7' },
-       { 'Asia/Beirut', 'EET-2EEST,M3.5.0/0,M10.5.0/0' },
-       { 'Asia/Bishkek', '<+06>-6' },
-       { 'Asia/Brunei', '<+08>-8' },
-       { 'Asia/Chita', '<+09>-9' },
-       { 'Asia/Choibalsan', '<+08>-8' },
-       { 'Asia/Colombo', '<+0530>-5:30' },
-       { 'Asia/Damascus', 'EET-2EEST,M3.5.5/0,M10.5.5/0' },
-       { 'Asia/Dhaka', '<+06>-6' },
-       { 'Asia/Dili', '<+09>-9' },
-       { 'Asia/Dubai', '<+04>-4' },
-       { 'Asia/Dushanbe', '<+05>-5' },
-       { 'Asia/Famagusta', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
-       { 'Asia/Gaza', 'EET-2EEST,M3.4.6/1,M10.5.6/1' },
-       { 'Asia/Hebron', 'EET-2EEST,M3.4.6/1,M10.5.6/1' },
-       { 'Asia/Ho Chi Minh', '<+07>-7' },
-       { 'Asia/Hong Kong', 'HKT-8' },
-       { 'Asia/Hovd', '<+07>-7' },
-       { 'Asia/Irkutsk', '<+08>-8' },
-       { 'Asia/Jakarta', 'WIB-7' },
-       { 'Asia/Jayapura', 'WIT-9' },
-       { 'Asia/Jerusalem', 'IST-2IDT,M3.4.4/26,M10.5.0' },
-       { 'Asia/Kabul', '<+0430>-4:30' },
-       { 'Asia/Kamchatka', '<+12>-12' },
-       { 'Asia/Karachi', 'PKT-5' },
-       { 'Asia/Kathmandu', '<+0545>-5:45' },
-       { 'Asia/Khandyga', '<+09>-9' },
-       { 'Asia/Kolkata', 'IST-5:30' },
-       { 'Asia/Krasnoyarsk', '<+07>-7' },
-       { 'Asia/Kuala Lumpur', '<+08>-8' },
-       { 'Asia/Kuching', '<+08>-8' },
-       { 'Asia/Kuwait', '<+03>-3' },
-       { 'Asia/Macau', 'CST-8' },
-       { 'Asia/Magadan', '<+11>-11' },
-       { 'Asia/Makassar', 'WITA-8' },
-       { 'Asia/Manila', 'PST-8' },
-       { 'Asia/Muscat', '<+04>-4' },
-       { 'Asia/Nicosia', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
-       { 'Asia/Novokuznetsk', '<+07>-7' },
-       { 'Asia/Novosibirsk', '<+07>-7' },
-       { 'Asia/Omsk', '<+06>-6' },
-       { 'Asia/Oral', '<+05>-5' },
-       { 'Asia/Phnom Penh', '<+07>-7' },
-       { 'Asia/Pontianak', 'WIB-7' },
-       { 'Asia/Pyongyang', 'KST-9' },
-       { 'Asia/Qatar', '<+03>-3' },
-       { 'Asia/Qostanay', '<+06>-6' },
-       { 'Asia/Qyzylorda', '<+05>-5' },
-       { 'Asia/Riyadh', '<+03>-3' },
-       { 'Asia/Sakhalin', '<+11>-11' },
-       { 'Asia/Samarkand', '<+05>-5' },
-       { 'Asia/Seoul', 'KST-9' },
-       { 'Asia/Shanghai', 'CST-8' },
-       { 'Asia/Singapore', '<+08>-8' },
-       { 'Asia/Srednekolymsk', '<+11>-11' },
-       { 'Asia/Taipei', 'CST-8' },
-       { 'Asia/Tashkent', '<+05>-5' },
-       { 'Asia/Tbilisi', '<+04>-4' },
-       { 'Asia/Tehran', '<+0330>-3:30<+0430>,J79/24,J263/24' },
-       { 'Asia/Thimphu', '<+06>-6' },
-       { 'Asia/Tokyo', 'JST-9' },
-       { 'Asia/Tomsk', '<+07>-7' },
-       { 'Asia/Ulaanbaatar', '<+08>-8' },
-       { 'Asia/Urumqi', '<+06>-6' },
-       { 'Asia/Ust-Nera', '<+10>-10' },
-       { 'Asia/Vientiane', '<+07>-7' },
-       { 'Asia/Vladivostok', '<+10>-10' },
-       { 'Asia/Yakutsk', '<+09>-9' },
-       { 'Asia/Yangon', '<+0630>-6:30' },
-       { 'Asia/Yekaterinburg', '<+05>-5' },
-       { 'Asia/Yerevan', '<+04>-4' },
-       { 'Atlantic/Azores', '<-01>1<+00>,M3.5.0/0,M10.5.0/1' },
-       { 'Atlantic/Bermuda', 'AST4ADT,M3.2.0,M11.1.0' },
-       { 'Atlantic/Canary', 'WET0WEST,M3.5.0/1,M10.5.0' },
-       { 'Atlantic/Cape Verde', '<-01>1' },
-       { 'Atlantic/Faroe', 'WET0WEST,M3.5.0/1,M10.5.0' },
-       { 'Atlantic/Madeira', 'WET0WEST,M3.5.0/1,M10.5.0' },
-       { 'Atlantic/Reykjavik', 'GMT0' },
-       { 'Atlantic/South Georgia', '<-02>2' },
-       { 'Atlantic/St Helena', 'GMT0' },
-       { 'Atlantic/Stanley', '<-03>3' },
-       { 'Australia/Adelaide', 'ACST-9:30ACDT,M10.1.0,M4.1.0/3' },
-       { 'Australia/Brisbane', 'AEST-10' },
-       { 'Australia/Broken Hill', 'ACST-9:30ACDT,M10.1.0,M4.1.0/3' },
-       { 'Australia/Currie', 'AEST-10AEDT,M10.1.0,M4.1.0/3' },
-       { 'Australia/Darwin', 'ACST-9:30' },
-       { 'Australia/Eucla', '<+0845>-8:45' },
-       { 'Australia/Hobart', 'AEST-10AEDT,M10.1.0,M4.1.0/3' },
-       { 'Australia/Lindeman', 'AEST-10' },
-       { 'Australia/Lord Howe', '<+1030>-10:30<+11>-11,M10.1.0,M4.1.0' },
-       { 'Australia/Melbourne', 'AEST-10AEDT,M10.1.0,M4.1.0/3' },
-       { 'Australia/Perth', 'AWST-8' },
-       { 'Australia/Sydney', 'AEST-10AEDT,M10.1.0,M4.1.0/3' },
-       { 'Etc/GMT', 'GMT0' },
-       { 'Etc/GMT+1', '<-01>1' },
-       { 'Etc/GMT+10', '<-10>10' },
-       { 'Etc/GMT+11', '<-11>11' },
-       { 'Etc/GMT+12', '<-12>12' },
-       { 'Etc/GMT+2', '<-02>2' },
-       { 'Etc/GMT+3', '<-03>3' },
-       { 'Etc/GMT+4', '<-04>4' },
-       { 'Etc/GMT+5', '<-05>5' },
-       { 'Etc/GMT+6', '<-06>6' },
-       { 'Etc/GMT+7', '<-07>7' },
-       { 'Etc/GMT+8', '<-08>8' },
-       { 'Etc/GMT+9', '<-09>9' },
-       { 'Etc/GMT-1', '<+01>-1' },
-       { 'Etc/GMT-10', '<+10>-10' },
-       { 'Etc/GMT-11', '<+11>-11' },
-       { 'Etc/GMT-12', '<+12>-12' },
-       { 'Etc/GMT-13', '<+13>-13' },
-       { 'Etc/GMT-14', '<+14>-14' },
-       { 'Etc/GMT-2', '<+02>-2' },
-       { 'Etc/GMT-3', '<+03>-3' },
-       { 'Etc/GMT-4', '<+04>-4' },
-       { 'Etc/GMT-5', '<+05>-5' },
-       { 'Etc/GMT-6', '<+06>-6' },
-       { 'Etc/GMT-7', '<+07>-7' },
-       { 'Etc/GMT-8', '<+08>-8' },
-       { 'Etc/GMT-9', '<+09>-9' },
-       { 'Europe/Amsterdam', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Andorra', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Astrakhan', '<+04>-4' },
-       { 'Europe/Athens', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
-       { 'Europe/Belgrade', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Berlin', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Bratislava', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Brussels', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Bucharest', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
-       { 'Europe/Budapest', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Busingen', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Chisinau', 'EET-2EEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Copenhagen', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Dublin', 'IST-1GMT0,M10.5.0,M3.5.0/1' },
-       { 'Europe/Gibraltar', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Guernsey', 'GMT0BST,M3.5.0/1,M10.5.0' },
-       { 'Europe/Helsinki', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
-       { 'Europe/Isle of Man', 'GMT0BST,M3.5.0/1,M10.5.0' },
-       { 'Europe/Istanbul', '<+03>-3' },
-       { 'Europe/Jersey', 'GMT0BST,M3.5.0/1,M10.5.0' },
-       { 'Europe/Kaliningrad', 'EET-2' },
-       { 'Europe/Kiev', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
-       { 'Europe/Kirov', '<+03>-3' },
-       { 'Europe/Lisbon', 'WET0WEST,M3.5.0/1,M10.5.0' },
-       { 'Europe/Ljubljana', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/London', 'GMT0BST,M3.5.0/1,M10.5.0' },
-       { 'Europe/Luxembourg', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Madrid', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Malta', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Mariehamn', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
-       { 'Europe/Minsk', '<+03>-3' },
-       { 'Europe/Monaco', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Moscow', 'MSK-3' },
-       { 'Europe/Oslo', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Paris', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Podgorica', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Prague', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Riga', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
-       { 'Europe/Rome', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Samara', '<+04>-4' },
-       { 'Europe/San Marino', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Sarajevo', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Saratov', '<+04>-4' },
-       { 'Europe/Simferopol', 'MSK-3' },
-       { 'Europe/Skopje', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Sofia', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
-       { 'Europe/Stockholm', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Tallinn', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
-       { 'Europe/Tirane', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Ulyanovsk', '<+04>-4' },
-       { 'Europe/Uzhgorod', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
-       { 'Europe/Vaduz', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Vatican', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Vienna', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Vilnius', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
-       { 'Europe/Volgograd', '<+04>-4' },
-       { 'Europe/Warsaw', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Zagreb', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Europe/Zaporozhye', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
-       { 'Europe/Zurich', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Indian/Antananarivo', 'EAT-3' },
-       { 'Indian/Chagos', '<+06>-6' },
-       { 'Indian/Christmas', '<+07>-7' },
-       { 'Indian/Cocos', '<+0630>-6:30' },
-       { 'Indian/Comoro', 'EAT-3' },
-       { 'Indian/Kerguelen', '<+05>-5' },
-       { 'Indian/Mahe', '<+04>-4' },
-       { 'Indian/Maldives', '<+05>-5' },
-       { 'Indian/Mauritius', '<+04>-4' },
-       { 'Indian/Mayotte', 'EAT-3' },
-       { 'Indian/Reunion', '<+04>-4' },
-       { 'Pacific/Apia', '<+13>-13<+14>,M9.5.0/3,M4.1.0/4' },
-       { 'Pacific/Auckland', 'NZST-12NZDT,M9.5.0,M4.1.0/3' },
-       { 'Pacific/Bougainville', '<+11>-11' },
-       { 'Pacific/Chatham', '<+1245>-12:45<+1345>,M9.5.0/2:45,M4.1.0/3:45' },
-       { 'Pacific/Chuuk', '<+10>-10' },
-       { 'Pacific/Easter', '<-06>6<-05>,M9.1.6/22,M4.1.6/22' },
-       { 'Pacific/Efate', '<+11>-11' },
-       { 'Pacific/Enderbury', '<+13>-13' },
-       { 'Pacific/Fakaofo', '<+13>-13' },
-       { 'Pacific/Fiji', '<+12>-12<+13>,M11.1.0,M1.2.2/123' },
-       { 'Pacific/Funafuti', '<+12>-12' },
-       { 'Pacific/Galapagos', '<-06>6' },
-       { 'Pacific/Gambier', '<-09>9' },
-       { 'Pacific/Guadalcanal', '<+11>-11' },
-       { 'Pacific/Guam', 'ChST-10' },
-       { 'Pacific/Honolulu', 'HST10' },
-       { 'Pacific/Kiritimati', '<+14>-14' },
-       { 'Pacific/Kosrae', '<+11>-11' },
-       { 'Pacific/Kwajalein', '<+12>-12' },
-       { 'Pacific/Majuro', '<+12>-12' },
-       { 'Pacific/Marquesas', '<-0930>9:30' },
-       { 'Pacific/Midway', 'SST11' },
-       { 'Pacific/Nauru', '<+12>-12' },
-       { 'Pacific/Niue', '<-11>11' },
-       { 'Pacific/Norfolk', '<+11>-11' },
-       { 'Pacific/Noumea', '<+11>-11' },
-       { 'Pacific/Pago Pago', 'SST11' },
-       { 'Pacific/Palau', '<+09>-9' },
-       { 'Pacific/Pitcairn', '<-08>8' },
-       { 'Pacific/Pohnpei', '<+11>-11' },
-       { 'Pacific/Port Moresby', '<+10>-10' },
-       { 'Pacific/Rarotonga', '<-10>10' },
-       { 'Pacific/Saipan', 'ChST-10' },
-       { 'Pacific/Tahiti', '<-10>10' },
-       { 'Pacific/Tarawa', '<+12>-12' },
-       { 'Pacific/Tongatapu', '<+13>-13' },
-       { 'Pacific/Wake', '<+12>-12' },
-       { 'Pacific/Wallis', '<+12>-12' },
-}
diff --git a/package/luci/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua b/package/luci/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua
deleted file mode 100644 (file)
index e63e2a6..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
--- Licensed to the public under the Apache License 2.0.
-
-module "luci.sys.zoneinfo.tzoffset"
-
-OFFSET = {
-       gmt   =      0, -- GMT
-       eat   =  10800, -- EAT
-       cet   =   3600, -- CET
-       wat   =   3600, -- WAT
-       cat   =   7200, -- CAT
-       eet   =   7200, -- EET
-       sast  =   7200, -- SAST
-       hst   = -36000, -- HST
-       hdt   = -32400, -- HDT
-       akst  = -32400, -- AKST
-       akdt  = -28800, -- AKDT
-       ast   = -14400, -- AST
-       est   = -18000, -- EST
-       cst   = -21600, -- CST
-       cdt   = -18000, -- CDT
-       mst   = -25200, -- MST
-       mdt   = -21600, -- MDT
-       pst   = -28800, -- PST
-       pdt   = -25200, -- PDT
-       nst   = -12600, -- NST
-       ndt   =  -9000, -- NDT
-       nzst  =  43200, -- NZST
-       nzdt  =  46800, -- NZDT
-       hkt   =  28800, -- HKT
-       wib   =  25200, -- WIB
-       wit   =  32400, -- WIT
-       ist   =   7200, -- IST
-       idt   =  10800, -- IDT
-       pkt   =  18000, -- PKT
-       wita  =  28800, -- WITA
-       kst   =  32400, -- KST
-       jst   =  32400, -- JST
-       wet   =      0, -- WET
-       acst  =  34200, -- ACST
-       acdt  =  37800, -- ACDT
-       aest  =  36000, -- AEST
-       awst  =  28800, -- AWST
-       msk   =  10800, -- MSK
-       sst   = -39600, -- SST
-}
diff --git a/package/luci/modules/luci-base/luasrc/template.lua b/package/luci/modules/luci-base/luasrc/template.lua
deleted file mode 100644 (file)
index ed46f50..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local util = require "luci.util"
-local config = require "luci.config"
-local tparser = require "luci.template.parser"
-
-local tostring, pairs, loadstring = tostring, pairs, loadstring
-local setmetatable, loadfile = setmetatable, loadfile
-local getfenv, setfenv, rawget = getfenv, setfenv, rawget
-local assert, type, error = assert, type, error
-
---- LuCI template library.
-module "luci.template"
-
-config.template = config.template or {}
-viewdir = config.template.viewdir or util.libpath() .. "/view"
-
-
--- Define the namespace for template modules
-context = util.threadlocal()
-
---- Render a certain template.
--- @param name         Template name
--- @param scope                Scope to assign to template (optional)
-function render(name, scope)
-       return Template(name):render(scope or getfenv(2))
-end
-
---- Render a template from a string.
--- @param template     Template string
--- @param scope                Scope to assign to template (optional)
-function render_string(template, scope)
-       return Template(nil, template):render(scope or getfenv(2))
-end
-
-
--- Template class
-Template = util.class()
-
--- Shared template cache to store templates in to avoid unnecessary reloading
-Template.cache = setmetatable({}, {__mode = "v"})
-
-
--- Constructor - Reads and compiles the template on-demand
-function Template.__init__(self, name, template)
-       if name then
-               self.template = self.cache[name]
-               self.name = name
-       else
-               self.name = "[string]"
-       end
-
-       -- Create a new namespace for this template
-       self.viewns = context.viewns
-       
-       -- If we have a cached template, skip compiling and loading
-       if not self.template then
-
-               -- Compile template
-               local err
-               local sourcefile
-
-               if name then
-                       sourcefile = viewdir .. "/" .. name .. ".htm"
-                       self.template, _, err = tparser.parse(sourcefile)
-               else
-                       sourcefile = "[string]"
-                       self.template, _, err = tparser.parse_string(template)
-               end
-
-               -- If we have no valid template throw error, otherwise cache the template
-               if not self.template then
-                       error("Failed to load template '" .. name .. "'.\n" ..
-                             "Error while parsing template '" .. sourcefile .. "':\n" ..
-                             (err or "Unknown syntax error"))
-               elseif name then
-                       self.cache[name] = self.template
-               end
-       end
-end
-
-
--- Renders a template
-function Template.render(self, scope)
-       scope = scope or getfenv(2)
-       
-       -- Put our predefined objects in the scope of the template
-       setfenv(self.template, setmetatable({}, {__index =
-               function(tbl, key)
-                       return rawget(tbl, key) or self.viewns[key] or scope[key]
-               end}))
-       
-       -- Now finally render the thing
-       local stat, err = util.copcall(self.template)
-       if not stat then
-               error("Failed to execute template '" .. self.name .. "'.\n" ..
-                     "A runtime error occurred: " .. tostring(err or "(nil)"))
-       end
-end
diff --git a/package/luci/modules/luci-base/luasrc/tools/proto.lua b/package/luci/modules/luci-base/luasrc/tools/proto.lua
deleted file mode 100644 (file)
index 147688d..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
--- Copyright 2012 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.tools.proto", package.seeall)
-
-function opt_macaddr(s, ifc, ...)
-       local v = luci.cbi.Value
-       local o = s:taboption("advanced", v, "macaddr", ...)
-
-       o.placeholder = ifc and ifc:mac()
-       o.datatype    = "macaddr"
-
-       function o.cfgvalue(self, section)
-               local w = ifc and ifc:get_wifinet()
-               if w then
-                       return w:get("macaddr")
-               else
-                       return v.cfgvalue(self, section)
-               end
-       end
-
-       function o.write(self, section, value)
-               local w = ifc and ifc:get_wifinet()
-               if w then
-                       w:set("macaddr", value)
-               elseif value then
-                       v.write(self, section, value)
-               else
-                       v.remove(self, section)
-               end
-       end
-
-       function o.remove(self, section)
-               self:write(section, nil)
-       end
-end
diff --git a/package/luci/modules/luci-base/luasrc/tools/status.lua b/package/luci/modules/luci-base/luasrc/tools/status.lua
deleted file mode 100644 (file)
index 6359953..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.tools.status", package.seeall)
-
-local uci = require "luci.model.uci".cursor()
-local ipc = require "luci.ip"
-
-local function duid_to_mac(duid)
-       local b1, b2, b3, b4, b5, b6
-
-       -- DUID-LLT / Ethernet
-       if type(duid) == "string" and #duid == 28 then
-               b1, b2, b3, b4, b5, b6 = duid:match("^00010001(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)%x%x%x%x%x%x%x%x$")
-
-       -- DUID-LL / Ethernet
-       elseif type(duid) == "string" and #duid == 20 then
-               b1, b2, b3, b4, b5, b6 = duid:match("^00030001(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)$")
-       end
-
-       return b1 and ipc.checkmac(table.concat({ b1, b2, b3, b4, b5, b6 }, ":"))
-end
-
-local function dhcp_leases_common(family)
-       local rv = { }
-       local nfs = require "nixio.fs"
-       local sys = require "luci.sys"
-       local leasefile = "/tmp/dhcp.leases"
-
-       uci:foreach("dhcp", "dnsmasq",
-               function(s)
-                       if s.leasefile and nfs.access(s.leasefile) then
-                               leasefile = s.leasefile
-                               return false
-                       end
-               end)
-
-       local fd = io.open(leasefile, "r")
-       if fd then
-               while true do
-                       local ln = fd:read("*l")
-                       if not ln then
-                               break
-                       else
-                               local ts, mac, ip, name, duid = ln:match("^(%d+) (%S+) (%S+) (%S+) (%S+)")
-                               local expire = tonumber(ts) or 0
-                               if ts and mac and ip and name and duid then
-                                       if family == 4 and not ip:match(":") then
-                                               rv[#rv+1] = {
-                                                       expires  = (expire ~= 0) and os.difftime(expire, os.time()),
-                                                       macaddr  = ipc.checkmac(mac) or "00:00:00:00:00:00",
-                                                       ipaddr   = ip,
-                                                       hostname = (name ~= "*") and name
-                                               }
-                                       elseif family == 6 and ip:match(":") then
-                                               rv[#rv+1] = {
-                                                       expires  = (expire ~= 0) and os.difftime(expire, os.time()),
-                                                       ip6addr  = ip,
-                                                       duid     = (duid ~= "*") and duid,
-                                                       hostname = (name ~= "*") and name
-                                               }
-                                       end
-                               end
-                       end
-               end
-               fd:close()
-       end
-
-       local lease6file = "/tmp/hosts/odhcpd"
-       uci:foreach("dhcp", "odhcpd",
-               function(t)
-                       if t.leasefile and nfs.access(t.leasefile) then
-                               lease6file = t.leasefile
-                               return false
-                       end
-               end)
-       local fd = io.open(lease6file, "r")
-       if fd then
-               while true do
-                       local ln = fd:read("*l")
-                       if not ln then
-                               break
-                       else
-                               local iface, duid, iaid, name, ts, id, length, ip = ln:match("^# (%S+) (%S+) (%S+) (%S+) (-?%d+) (%S+) (%S+) (.*)")
-                               local expire = tonumber(ts) or 0
-                               if ip and iaid ~= "ipv4" and family == 6 then
-                                       rv[#rv+1] = {
-                                               expires  = (expire >= 0) and os.difftime(expire, os.time()),
-                                               duid     = duid,
-                                               ip6addr  = ip,
-                                               hostname = (name ~= "-") and name
-                                       }
-                               elseif ip and iaid == "ipv4" and family == 4 then
-                                       rv[#rv+1] = {
-                                               expires  = (expire >= 0) and os.difftime(expire, os.time()),
-                                               macaddr  = ipc.checkmac(duid:gsub("^(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)$", "%1:%2:%3:%4:%5:%6")) or "00:00:00:00:00:00",
-                                               ipaddr   = ip,
-                                               hostname = (name ~= "-") and name
-                                       }
-                               end
-                       end
-               end
-               fd:close()
-       end
-
-       if family == 6 then
-               local _, lease
-               local hosts = sys.net.host_hints()
-               for _, lease in ipairs(rv) do
-                       local mac = duid_to_mac(lease.duid)
-                       local host = mac and hosts[mac]
-                       if host then
-                               if not lease.name then
-                                       lease.host_hint = host.name or host.ipv4 or host.ipv6
-                               elseif host.name and lease.hostname ~= host.name then
-                                       lease.host_hint = host.name
-                               end
-                       end
-               end
-       end
-
-       return rv
-end
-
-function dhcp_leases()
-       return dhcp_leases_common(4)
-end
-
-function dhcp6_leases()
-       return dhcp_leases_common(6)
-end
-
-function wifi_networks()
-       local rv = { }
-       local ntm = require "luci.model.network".init()
-
-       local dev
-       for _, dev in ipairs(ntm:get_wifidevs()) do
-               local rd = {
-                       up       = dev:is_up(),
-                       device   = dev:name(),
-                       name     = dev:get_i18n(),
-                       networks = { }
-               }
-
-               local net
-               for _, net in ipairs(dev:get_wifinets()) do
-                       local a, an = nil, 0
-                       for _, a in pairs(net:assoclist() or {}) do
-                               an = an + 1
-                       end
-
-                       rd.networks[#rd.networks+1] = {
-                               name       = net:shortname(),
-                               link       = net:adminlink(),
-                               up         = net:is_up(),
-                               mode       = net:active_mode(),
-                               ssid       = net:active_ssid(),
-                               bssid      = net:active_bssid(),
-                               encryption = net:active_encryption(),
-                               frequency  = net:frequency(),
-                               channel    = net:channel(),
-                               signal     = net:signal(),
-                               quality    = net:signal_percent(),
-                               noise      = net:noise(),
-                               bitrate    = net:bitrate(),
-                               ifname     = net:ifname(),
-                               country    = net:country(),
-                               txpower    = net:txpower(),
-                               txpoweroff = net:txpower_offset(),
-                               num_assoc  = an,
-                               disabled   = (dev:get("disabled") == "1" or
-                                            net:get("disabled") == "1")
-                       }
-               end
-
-               rv[#rv+1] = rd
-       end
-
-       return rv
-end
-
-function wifi_network(id)
-       local ntm = require "luci.model.network".init()
-       local net = ntm:get_wifinet(id)
-       if net then
-               local dev = net:get_device()
-               if dev then
-                       return {
-                               id         = id,
-                               name       = net:shortname(),
-                               link       = net:adminlink(),
-                               up         = net:is_up(),
-                               mode       = net:active_mode(),
-                               ssid       = net:active_ssid(),
-                               bssid      = net:active_bssid(),
-                               encryption = net:active_encryption(),
-                               frequency  = net:frequency(),
-                               channel    = net:channel(),
-                               signal     = net:signal(),
-                               quality    = net:signal_percent(),
-                               noise      = net:noise(),
-                               bitrate    = net:bitrate(),
-                               ifname     = net:ifname(),
-                               country    = net:country(),
-                               txpower    = net:txpower(),
-                               txpoweroff = net:txpower_offset(),
-                               disabled   = (dev:get("disabled") == "1" or
-                                             net:get("disabled") == "1"),
-                               device     = {
-                                       up     = dev:is_up(),
-                                       device = dev:name(),
-                                       name   = dev:get_i18n()
-                               }
-                       }
-               end
-       end
-       return { }
-end
-
-function wifi_assoclist()
-       local sys = require "luci.sys"
-       local ntm = require "luci.model.network".init()
-       local hosts = sys.net.host_hints()
-
-       local assoc = {}
-       local _, dev, net, bss
-
-       for _, dev in ipairs(ntm:get_wifidevs()) do
-               local radioname = dev:get_i18n()
-
-               for _, net in ipairs(dev:get_wifinets()) do
-                       local netname = net:shortname()
-                       local netlink = net:adminlink()
-                       local ifname  = net:ifname()
-
-                       for _, bss in pairs(net:assoclist() or {}) do
-                               local host = hosts[_]
-
-                               bss.bssid  = _
-                               bss.ifname = ifname
-                               bss.radio  = radioname
-                               bss.name   = netname
-                               bss.link   = netlink
-
-                               bss.host_name = (host) and (host.name or host.ipv4 or host.ipv6)
-                               bss.host_hint = (host and host.name and (host.ipv4 or host.ipv6)) and (host.ipv4 or host.ipv6)
-
-                               assoc[#assoc+1] = bss
-                       end
-               end
-       end
-
-       table.sort(assoc, function(a, b)
-               if a.radio ~= b.radio then
-                       return a.radio < b.radio
-               elseif a.ifname ~= b.ifname then
-                       return a.ifname < b.ifname
-               else
-                       return a.bssid < b.bssid
-               end
-       end)
-
-       return assoc
-end
-
-function switch_status(devs)
-       local dev
-       local switches = { }
-       for dev in devs:gmatch("[^%s,]+") do
-               local ports = { }
-               local swc = io.popen("swconfig dev %s show"
-                       % luci.util.shellquote(dev), "r")
-
-               if swc then
-                       local l
-                       repeat
-                               l = swc:read("*l")
-                               if l then
-                                       local port, up = l:match("port:(%d+) link:(%w+)")
-                                       if port then
-                                               local speed  = l:match(" speed:(%d+)")
-                                               local duplex = l:match(" (%w+)-duplex")
-                                               local txflow = l:match(" (txflow)")
-                                               local rxflow = l:match(" (rxflow)")
-                                               local auto   = l:match(" (auto)")
-
-                                               ports[#ports+1] = {
-                                                       port   = tonumber(port) or 0,
-                                                       speed  = tonumber(speed) or 0,
-                                                       link   = (up == "up"),
-                                                       duplex = (duplex == "full"),
-                                                       rxflow = (not not rxflow),
-                                                       txflow = (not not txflow),
-                                                       auto   = (not not auto)
-                                               }
-                                       end
-                               end
-                       until not l
-                       swc:close()
-               end
-               switches[dev] = ports
-       end
-       return switches
-end
diff --git a/package/luci/modules/luci-base/luasrc/tools/webadmin.lua b/package/luci/modules/luci-base/luasrc/tools/webadmin.lua
deleted file mode 100644 (file)
index 106810a..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008-2015 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.tools.webadmin", package.seeall)
-
-local util = require "luci.util"
-local uci  = require "luci.model.uci"
-local ip   = require "luci.ip"
-
-function byte_format(byte)
-       local suff = {"B", "KB", "MB", "GB", "TB"}
-       for i=1, 5 do
-               if byte > 1024 and i < 5 then
-                       byte = byte / 1024
-               else
-                       return string.format("%.2f %s", byte, suff[i]) 
-               end 
-       end
-end
-
-function date_format(secs)
-       local suff = {"min", "h", "d"}
-       local mins = 0
-       local hour = 0
-       local days = 0
-       
-       secs = math.floor(secs)
-       if secs > 60 then
-               mins = math.floor(secs / 60)
-               secs = secs % 60
-       end
-       
-       if mins > 60 then
-               hour = math.floor(mins / 60)
-               mins = mins % 60
-       end
-       
-       if hour > 24 then
-               days = math.floor(hour / 24)
-               hour = hour % 24
-       end
-       
-       if days > 0 then
-               return string.format("%.0fd %02.0fh %02.0fmin %02.0fs", days, hour, mins, secs)
-       else
-               return string.format("%02.0fh %02.0fmin %02.0fs", hour, mins, secs)
-       end
-end
-
-function cbi_add_networks(field)
-       uci.cursor():foreach("network", "interface",
-               function (section)
-                       if section[".name"] ~= "loopback" then
-                               field:value(section[".name"])
-                       end
-               end
-       )
-       field.titleref = luci.dispatcher.build_url("admin", "network", "network")
-end
-
-function cbi_add_knownips(field)
-       local _, n
-       for _, n in ipairs(ip.neighbors({ family = 4 })) do
-               if n.dest then
-                       field:value(n.dest:string())
-               end
-       end
-end
-
-function firewall_find_zone(name)
-       local find
-       
-       luci.model.uci.cursor():foreach("firewall", "zone", 
-               function (section)
-                       if section.name == name then
-                               find = section[".name"]
-                       end
-               end
-       )
-       
-       return find
-end
-
-function iface_get_network(iface)
-       local link = ip.link(tostring(iface))
-       if link.master then
-               iface = link.master
-       end
-
-       local cur = uci.cursor()
-       local dump = util.ubus("network.interface", "dump", { })
-       if dump then
-               local _, net
-               for _, net in ipairs(dump.interface) do
-                       if net.l3_device == iface or net.device == iface then
-                               -- cross check with uci to filter out @name style aliases
-                               local uciname = cur:get("network", net.interface, "ifname")
-                               if type(uciname) == "string" and uciname:sub(1,1) ~= "@" or uciname then
-                                       return net.interface
-                               end
-                       end
-               end
-       end
-end
diff --git a/package/luci/modules/luci-base/luasrc/util.lua b/package/luci/modules/luci-base/luasrc/util.lua
deleted file mode 100644 (file)
index 1a329f3..0000000
+++ /dev/null
@@ -1,777 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local io = require "io"
-local math = require "math"
-local table = require "table"
-local debug = require "debug"
-local ldebug = require "luci.debug"
-local string = require "string"
-local coroutine = require "coroutine"
-local tparser = require "luci.template.parser"
-local json = require "luci.jsonc"
-local lhttp = require "lucihttp"
-
-local _ubus = require "ubus"
-local _ubus_connection = nil
-
-local getmetatable, setmetatable = getmetatable, setmetatable
-local rawget, rawset, unpack, select = rawget, rawset, unpack, select
-local tostring, type, assert, error = tostring, type, assert, error
-local ipairs, pairs, next, loadstring = ipairs, pairs, next, loadstring
-local require, pcall, xpcall = require, pcall, xpcall
-local collectgarbage, get_memory_limit = collectgarbage, get_memory_limit
-
-module "luci.util"
-
---
--- Pythonic string formatting extension
---
-getmetatable("").__mod = function(a, b)
-       local ok, res
-
-       if not b then
-               return a
-       elseif type(b) == "table" then
-               local k, _
-               for k, _ in pairs(b) do if type(b[k]) == "userdata" then b[k] = tostring(b[k]) end end
-
-               ok, res = pcall(a.format, a, unpack(b))
-               if not ok then
-                       error(res, 2)
-               end
-               return res
-       else
-               if type(b) == "userdata" then b = tostring(b) end
-
-               ok, res = pcall(a.format, a, b)
-               if not ok then
-                       error(res, 2)
-               end
-               return res
-       end
-end
-
-
---
--- Class helper routines
---
-
--- Instantiates a class
-local function _instantiate(class, ...)
-       local inst = setmetatable({}, {__index = class})
-
-       if inst.__init__ then
-               inst:__init__(...)
-       end
-
-       return inst
-end
-
--- The class object can be instantiated by calling itself.
--- Any class functions or shared parameters can be attached to this object.
--- Attaching a table to the class object makes this table shared between
--- all instances of this class. For object parameters use the __init__ function.
--- Classes can inherit member functions and values from a base class.
--- Class can be instantiated by calling them. All parameters will be passed
--- to the __init__ function of this class - if such a function exists.
--- The __init__ function must be used to set any object parameters that are not shared
--- with other objects of this class. Any return values will be ignored.
-function class(base)
-       return setmetatable({}, {
-               __call  = _instantiate,
-               __index = base
-       })
-end
-
-function instanceof(object, class)
-       local meta = getmetatable(object)
-       while meta and meta.__index do
-               if meta.__index == class then
-                       return true
-               end
-               meta = getmetatable(meta.__index)
-       end
-       return false
-end
-
-
---
--- Scope manipulation routines
---
-
-coxpt = setmetatable({}, { __mode = "kv" })
-
-local tl_meta = {
-       __mode = "k",
-
-       __index = function(self, key)
-               local t = rawget(self, coxpt[coroutine.running()]
-                or coroutine.running() or 0)
-               return t and t[key]
-       end,
-
-       __newindex = function(self, key, value)
-               local c = coxpt[coroutine.running()] or coroutine.running() or 0
-               local r = rawget(self, c)
-               if not r then
-                       rawset(self, c, { [key] = value })
-               else
-                       r[key] = value
-               end
-       end
-}
-
--- the current active coroutine. A thread local store is private a table object
--- whose values can't be accessed from outside of the running coroutine.
-function threadlocal(tbl)
-       return setmetatable(tbl or {}, tl_meta)
-end
-
-
---
--- Debugging routines
---
-
-function perror(obj)
-       return io.stderr:write(tostring(obj) .. "\n")
-end
-
-function dumptable(t, maxdepth, i, seen)
-       i = i or 0
-       seen = seen or setmetatable({}, {__mode="k"})
-
-       for k,v in pairs(t) do
-               perror(string.rep("\t", i) .. tostring(k) .. "\t" .. tostring(v))
-               if type(v) == "table" and (not maxdepth or i < maxdepth) then
-                       if not seen[v] then
-                               seen[v] = true
-                               dumptable(v, maxdepth, i+1, seen)
-                       else
-                               perror(string.rep("\t", i) .. "*** RECURSION ***")
-                       end
-               end
-       end
-end
-
-
---
--- String and data manipulation routines
---
-
-function pcdata(value)
-       return value and tparser.pcdata(tostring(value))
-end
-
-function urlencode(value)
-       if value ~= nil then
-               local str = tostring(value)
-               return lhttp.urlencode(str, lhttp.ENCODE_IF_NEEDED + lhttp.ENCODE_FULL)
-                       or str
-       end
-       return nil
-end
-
-function urldecode(value, decode_plus)
-       if value ~= nil then
-               local flag = decode_plus and lhttp.DECODE_PLUS or 0
-               local str = tostring(value)
-               return lhttp.urldecode(str, lhttp.DECODE_IF_NEEDED + flag)
-                       or str
-       end
-       return nil
-end
-
-function striptags(value)
-       return value and tparser.striptags(tostring(value))
-end
-
-function shellquote(value)
-       return string.format("'%s'", string.gsub(value or "", "'", "'\\''"))
-end
-
--- for bash, ash and similar shells single-quoted strings are taken
--- literally except for single quotes (which terminate the string)
--- (and the exception noted below for dash (-) at the start of a
--- command line parameter).
-function shellsqescape(value)
-   local res
-   res, _ = string.gsub(value, "'", "'\\''")
-   return res
-end
-
--- bash, ash and other similar shells interpret a dash (-) at the start
--- of a command-line parameters as an option indicator regardless of
--- whether it is inside a single-quoted string.  It must be backlash
--- escaped to resolve this.  This requires in some funky special-case
--- handling.  It may actually be a property of the getopt function
--- rather than the shell proper.
-function shellstartsqescape(value)
-   res, _ = string.gsub(value, "^\-", "\\-")
-   res, _ = string.gsub(res, "^-", "\-")
-   return shellsqescape(value)
-end
-
--- containing the resulting substrings. The optional max parameter specifies
--- the number of bytes to process, regardless of the actual length of the given
--- string. The optional last parameter, regex, specifies whether the separator
--- sequence is interpreted as regular expression.
---                                     pattern as regular expression (optional, default is false)
-function split(str, pat, max, regex)
-       pat = pat or "\n"
-       max = max or #str
-
-       local t = {}
-       local c = 1
-
-       if #str == 0 then
-               return {""}
-       end
-
-       if #pat == 0 then
-               return nil
-       end
-
-       if max == 0 then
-               return str
-       end
-
-       repeat
-               local s, e = str:find(pat, c, not regex)
-               max = max - 1
-               if s and max < 0 then
-                       t[#t+1] = str:sub(c)
-               else
-                       t[#t+1] = str:sub(c, s and s - 1)
-               end
-               c = e and e + 1 or #str + 1
-       until not s or max < 0
-
-       return t
-end
-
-function trim(str)
-       return (str:gsub("^%s*(.-)%s*$", "%1"))
-end
-
-function cmatch(str, pat)
-       local count = 0
-       for _ in str:gmatch(pat) do count = count + 1 end
-       return count
-end
-
--- one token per invocation, the tokens are separated by whitespace. If the
--- input value is a table, it is transformed into a string first. A nil value
--- will result in a valid iterator which aborts with the first invocation.
-function imatch(v)
-       if type(v) == "table" then
-               local k = nil
-               return function()
-                       k = next(v, k)
-                       return v[k]
-               end
-
-       elseif type(v) == "number" or type(v) == "boolean" then
-               local x = true
-               return function()
-                       if x then
-                               x = false
-                               return tostring(v)
-                       end
-               end
-
-       elseif type(v) == "userdata" or type(v) == "string" then
-               return tostring(v):gmatch("%S+")
-       end
-
-       return function() end
-end
-
--- value or 0 if the unit is unknown. Upper- or lower case is irrelevant.
--- Recognized units are:
---     o "y"   - one year   (60*60*24*366)
---  o "m"      - one month  (60*60*24*31)
---  o "w"      - one week   (60*60*24*7)
---  o "d"      - one day    (60*60*24)
---  o "h"      - one hour       (60*60)
---  o "min"    - one minute (60)
---  o "kb"  - one kilobyte (1024)
---  o "mb"     - one megabyte (1024*1024)
---  o "gb"     - one gigabyte (1024*1024*1024)
---  o "kib" - one si kilobyte (1000)
---  o "mib"    - one si megabyte (1000*1000)
---  o "gib"    - one si gigabyte (1000*1000*1000)
-function parse_units(ustr)
-
-       local val = 0
-
-       -- unit map
-       local map = {
-               -- date stuff
-               y   = 60 * 60 * 24 * 366,
-               m   = 60 * 60 * 24 * 31,
-               w   = 60 * 60 * 24 * 7,
-               d   = 60 * 60 * 24,
-               h   = 60 * 60,
-               min = 60,
-
-               -- storage sizes
-               kb  = 1024,
-               mb  = 1024 * 1024,
-               gb  = 1024 * 1024 * 1024,
-
-               -- storage sizes (si)
-               kib = 1000,
-               mib = 1000 * 1000,
-               gib = 1000 * 1000 * 1000
-       }
-
-       -- parse input string
-       for spec in ustr:lower():gmatch("[0-9%.]+[a-zA-Z]*") do
-
-               local num = spec:gsub("[^0-9%.]+$","")
-               local spn = spec:gsub("^[0-9%.]+", "")
-
-               if map[spn] or map[spn:sub(1,1)] then
-                       val = val + num * ( map[spn] or map[spn:sub(1,1)] )
-               else
-                       val = val + num
-               end
-       end
-
-
-       return val
-end
-
--- also register functions above in the central string class for convenience
-string.pcdata      = pcdata
-string.striptags   = striptags
-string.split       = split
-string.trim        = trim
-string.cmatch      = cmatch
-string.parse_units = parse_units
-
-
-function append(src, ...)
-       for i, a in ipairs({...}) do
-               if type(a) == "table" then
-                       for j, v in ipairs(a) do
-                               src[#src+1] = v
-                       end
-               else
-                       src[#src+1] = a
-               end
-       end
-       return src
-end
-
-function combine(...)
-       return append({}, ...)
-end
-
-function contains(table, value)
-       for k, v in pairs(table) do
-               if value == v then
-                       return k
-               end
-       end
-       return false
-end
-
--- Both table are - in fact - merged together.
-function update(t, updates)
-       for k, v in pairs(updates) do
-               t[k] = v
-       end
-end
-
-function keys(t)
-       local keys = { }
-       if t then
-               for k, _ in kspairs(t) do
-                       keys[#keys+1] = k
-               end
-       end
-       return keys
-end
-
-function clone(object, deep)
-       local copy = {}
-
-       for k, v in pairs(object) do
-               if deep and type(v) == "table" then
-                       v = clone(v, deep)
-               end
-               copy[k] = v
-       end
-
-       return setmetatable(copy, getmetatable(object))
-end
-
-
--- Serialize the contents of a table value.
-function _serialize_table(t, seen)
-       assert(not seen[t], "Recursion detected.")
-       seen[t] = true
-
-       local data  = ""
-       local idata = ""
-       local ilen  = 0
-
-       for k, v in pairs(t) do
-               if type(k) ~= "number" or k < 1 or math.floor(k) ~= k or ( k - #t ) > 3 then
-                       k = serialize_data(k, seen)
-                       v = serialize_data(v, seen)
-                       data = data .. ( #data > 0 and ", " or "" ) ..
-                               '[' .. k .. '] = ' .. v
-               elseif k > ilen then
-                       ilen = k
-               end
-       end
-
-       for i = 1, ilen do
-               local v = serialize_data(t[i], seen)
-               idata = idata .. ( #idata > 0 and ", " or "" ) .. v
-       end
-
-       return idata .. ( #data > 0 and #idata > 0 and ", " or "" ) .. data
-end
-
--- with loadstring().
-function serialize_data(val, seen)
-       seen = seen or setmetatable({}, {__mode="k"})
-
-       if val == nil then
-               return "nil"
-       elseif type(val) == "number" then
-               return val
-       elseif type(val) == "string" then
-               return "%q" % val
-       elseif type(val) == "boolean" then
-               return val and "true" or "false"
-       elseif type(val) == "function" then
-               return "loadstring(%q)" % get_bytecode(val)
-       elseif type(val) == "table" then
-               return "{ " .. _serialize_table(val, seen) .. " }"
-       else
-               return '"[unhandled data type:' .. type(val) .. ']"'
-       end
-end
-
-function restore_data(str)
-       return loadstring("return " .. str)()
-end
-
-
---
--- Byte code manipulation routines
---
-
--- will be stripped before it is returned.
-function get_bytecode(val)
-       local code
-
-       if type(val) == "function" then
-               code = string.dump(val)
-       else
-               code = string.dump( loadstring( "return " .. serialize_data(val) ) )
-       end
-
-       return code -- and strip_bytecode(code)
-end
-
--- numbers and debugging numbers will be discarded. Original version by
--- Peter Cawley (http://lua-users.org/lists/lua-l/2008-02/msg01158.html)
-function strip_bytecode(code)
-       local version, format, endian, int, size, ins, num, lnum = code:byte(5, 12)
-       local subint
-       if endian == 1 then
-               subint = function(code, i, l)
-                       local val = 0
-                       for n = l, 1, -1 do
-                               val = val * 256 + code:byte(i + n - 1)
-                       end
-                       return val, i + l
-               end
-       else
-               subint = function(code, i, l)
-                       local val = 0
-                       for n = 1, l, 1 do
-                               val = val * 256 + code:byte(i + n - 1)
-                       end
-                       return val, i + l
-               end
-       end
-
-       local function strip_function(code)
-               local count, offset = subint(code, 1, size)
-               local stripped = { string.rep("\0", size) }
-               local dirty = offset + count
-               offset = offset + count + int * 2 + 4
-               offset = offset + int + subint(code, offset, int) * ins
-               count, offset = subint(code, offset, int)
-               for n = 1, count do
-                       local t
-                       t, offset = subint(code, offset, 1)
-                       if t == 1 then
-                               offset = offset + 1
-                       elseif t == 4 then
-                               offset = offset + size + subint(code, offset, size)
-                       elseif t == 3 then
-                               offset = offset + num
-                       elseif t == 254 or t == 9 then
-                               offset = offset + lnum
-                       end
-               end
-               count, offset = subint(code, offset, int)
-               stripped[#stripped+1] = code:sub(dirty, offset - 1)
-               for n = 1, count do
-                       local proto, off = strip_function(code:sub(offset, -1))
-                       stripped[#stripped+1] = proto
-                       offset = offset + off - 1
-               end
-               offset = offset + subint(code, offset, int) * int + int
-               count, offset = subint(code, offset, int)
-               for n = 1, count do
-                       offset = offset + subint(code, offset, size) + size + int * 2
-               end
-               count, offset = subint(code, offset, int)
-               for n = 1, count do
-                       offset = offset + subint(code, offset, size) + size
-               end
-               stripped[#stripped+1] = string.rep("\0", int * 3)
-               return table.concat(stripped), offset
-       end
-
-       return code:sub(1,12) .. strip_function(code:sub(13,-1))
-end
-
-
---
--- Sorting iterator functions
---
-
-function _sortiter( t, f )
-       local keys = { }
-
-       local k, v
-       for k, v in pairs(t) do
-               keys[#keys+1] = k
-       end
-
-       local _pos = 0
-
-       table.sort( keys, f )
-
-       return function()
-               _pos = _pos + 1
-               if _pos <= #keys then
-                       return keys[_pos], t[keys[_pos]], _pos
-               end
-       end
-end
-
--- the provided callback function.
-function spairs(t,f)
-       return _sortiter( t, f )
-end
-
--- The table pairs are sorted by key.
-function kspairs(t)
-       return _sortiter( t )
-end
-
--- The table pairs are sorted by value.
-function vspairs(t)
-       return _sortiter( t, function (a,b) return t[a] < t[b] end )
-end
-
-
---
--- System utility functions
---
-
-function bigendian()
-       return string.byte(string.dump(function() end), 7) == 0
-end
-
-function exec(command)
-       local pp   = io.popen(command)
-       local data = pp:read("*a")
-       pp:close()
-
-       return data
-end
-
-function execi(command)
-       local pp = io.popen(command)
-
-       return pp and function()
-               local line = pp:read()
-
-               if not line then
-                       pp:close()
-               end
-
-               return line
-       end
-end
-
--- Deprecated
-function execl(command)
-       local pp   = io.popen(command)
-       local line = ""
-       local data = {}
-
-       while true do
-               line = pp:read()
-               if (line == nil) then break end
-               data[#data+1] = line
-       end
-       pp:close()
-
-       return data
-end
-
-
-local ubus_codes = {
-       "INVALID_COMMAND",
-       "INVALID_ARGUMENT",
-       "METHOD_NOT_FOUND",
-       "NOT_FOUND",
-       "NO_DATA",
-       "PERMISSION_DENIED",
-       "TIMEOUT",
-       "NOT_SUPPORTED",
-       "UNKNOWN_ERROR",
-       "CONNECTION_FAILED"
-}
-
-local function ubus_return(...)
-       if select('#', ...) == 2 then
-               local rv, err = select(1, ...), select(2, ...)
-               if rv == nil and type(err) == "number" then
-                       return nil, err, ubus_codes[err]
-               end
-       end
-
-       return ...
-end
-
-function ubus(object, method, data)
-       if not _ubus_connection then
-               _ubus_connection = _ubus.connect()
-               assert(_ubus_connection, "Unable to establish ubus connection")
-       end
-
-       if object and method then
-               if type(data) ~= "table" then
-                       data = { }
-               end
-               return ubus_return(_ubus_connection:call(object, method, data))
-       elseif object then
-               return _ubus_connection:signatures(object)
-       else
-               return _ubus_connection:objects()
-       end
-end
-
-function serialize_json(x, cb)
-       local js = json.stringify(x)
-       if type(cb) == "function" then
-               cb(js)
-       else
-               return js
-       end
-end
-
-
-function libpath()
-       return require "nixio.fs".dirname(ldebug.__file__)
-end
-
-function checklib(fullpathexe, wantedlib)
-       local fs = require "nixio.fs"
-       local haveldd = fs.access('/usr/bin/ldd')
-       local haveexe = fs.access(fullpathexe)
-       if not haveldd or not haveexe then
-               return false
-       end
-       local libs = exec(string.format("/usr/bin/ldd %s", shellquote(fullpathexe)))
-       if not libs then
-               return false
-       end
-       for k, v in ipairs(split(libs)) do
-               if v:find(wantedlib) then
-                       return true
-               end
-       end
-       return false
-end
-
--------------------------------------------------------------------------------
--- Coroutine safe xpcall and pcall versions
---
--- Encapsulates the protected calls with a coroutine based loop, so errors can
--- be dealed without the usual Lua 5.x pcall/xpcall issues with coroutines
--- yielding inside the call to pcall or xpcall.
---
--- Authors: Roberto Ierusalimschy and Andre Carregal
--- Contributors: Thomas Harning Jr., Ignacio Burgueño, Fabio Mascarenhas
---
--- Copyright 2005 - Kepler Project
---
--- $Id: coxpcall.lua,v 1.13 2008/05/19 19:20:02 mascarenhas Exp $
--------------------------------------------------------------------------------
-
--------------------------------------------------------------------------------
--- Implements xpcall with coroutines
--------------------------------------------------------------------------------
-local coromap = setmetatable({}, { __mode = "k" })
-
-local function handleReturnValue(err, co, status, ...)
-       if not status then
-               return false, err(debug.traceback(co, (...)), ...)
-       end
-       if coroutine.status(co) == 'suspended' then
-               return performResume(err, co, coroutine.yield(...))
-       else
-               return true, ...
-       end
-end
-
-function performResume(err, co, ...)
-       return handleReturnValue(err, co, coroutine.resume(co, ...))
-end
-
-local function id(trace, ...)
-       return trace
-end
-
-function coxpcall(f, err, ...)
-       local current = coroutine.running()
-       if not current then
-               if err == id then
-                       return pcall(f, ...)
-               else
-                       if select("#", ...) > 0 then
-                               local oldf, params = f, { ... }
-                               f = function() return oldf(unpack(params)) end
-                       end
-                       return xpcall(f, err)
-               end
-       else
-               local res, co = pcall(coroutine.create, f)
-               if not res then
-                       local newf = function(...) return f(...) end
-                       co = coroutine.create(newf)
-               end
-               coromap[co] = current
-               coxpt[co] = coxpt[current] or current or 0
-               return performResume(err, co, ...)
-       end
-end
-
-function copcall(f, ...)
-       return coxpcall(f, id, ...)
-end
diff --git a/package/luci/modules/luci-base/luasrc/util.luadoc b/package/luci/modules/luci-base/luasrc/util.luadoc
deleted file mode 100644 (file)
index 4ec68dd..0000000
+++ /dev/null
@@ -1,413 +0,0 @@
----[[
-LuCI utility functions.
-]]
-module "luci.util"
-
----[[
-Create a Class object (Python-style object model).
-
-The class object can be instantiated by calling itself.
-Any class functions or shared parameters can be attached to this object.
-Attaching a table to the class object makes this table shared between
-all instances of this class. For object parameters use the __init__ function.
-Classes can inherit member functions and values from a base class.
-Class can be instantiated by calling them. All parameters will be passed
-to the __init__ function of this class - if such a function exists.
-The __init__ function must be used to set any object parameters that are not shared
-with other objects of this class. Any return values will be ignored.
-
-@class                         function
-@name                          class
-@param base                    The base class to inherit from (optional)
-@return                                A class object
-@see                           instanceof
-@see                           clone
-]]
-
----[[
-Test whether the given object is an instance of the given class.
-
-@class                         function
-@name                          instanceof
-@param object          Object instance
-@param class           Class object to test against
-@return                                Boolean indicating whether the object is an instance
-@see                           class
-@see                           clone
-]]
-
----[[
-Create a new or get an already existing thread local store associated with
-the current active coroutine.
-
-A thread local store is private a table object
-whose values can't be accessed from outside of the running coroutine.
-
-@class                         function
-@name                          threadlocal
-@return                                Table value representing the corresponding thread local store
-]]
-
----[[
-Write given object to stderr.
-
-@class                         function
-@name                          perror
-@param obj                     Value to write to stderr
-@return                                Boolean indicating whether the write operation was successful
-]]
-
----[[
-Recursively dumps a table to stdout, useful for testing and debugging.
-
-@class                         function
-@name                          dumptable
-@param t                       Table value to dump
-@param maxdepth                Maximum depth
-@return                                Always nil
-]]
-
----[[
-Create valid XML PCDATA from given string.
-
-@class                         function
-@name                          pcdata
-@param value           String value containing the data to escape
-@return                                String value containing the escaped data
-]]
-
----[[
-Decode an URL-encoded string - optionally decoding the "+" sign to space.
-
-@class                         function
-@name                          urldecode
-@param str                     Input string in x-www-urlencoded format
-@param decode_plus     Decode "+" signs to spaces if true (optional)
-@return                                The decoded string
-@see                           urlencode
-]]
-
----[[
-URL-encode given string.
-
-@class                         function
-@name                          urlencode
-@param str                     String to encode
-@return                                String containing the encoded data
-@see                           urldecode
-]]
-
----[[
-Strip HTML tags from given string.
-
-@class                         function
-@name                          striptags
-@param value           String containing the HTML text
-@return                                String with HTML tags stripped of
-]]
-
----[[
-Safely quote value for use in shell commands.
-
-@class                         function
-@name                          shellquote
-@param value           String containing the value to quote
-@return                        Single-quote enclosed string with embedded quotes escaped
-]]
-
----[[
-Splits given string on a defined separator sequence and return a table
-containing the resulting substrings.
-
-The optional max parameter specifies the number of bytes to process,
-regardless of the actual length of the given string. The optional last
-parameter, regex, specifies whether the separator sequence is
-nterpreted as regular expression.
-
-@class                         function
-@name                          split
-@param str                     String value containing the data to split up
-@param pat                     String with separator pattern (optional, defaults to "\n")
-@param max                     Maximum times to split (optional)
-@param regex           Boolean indicating whether to interpret the separator
---                                     pattern as regular expression (optional, default is false)
-@return                                Table containing the resulting substrings
-]]
-
----[[
-Remove leading and trailing whitespace from given string value.
-
-@class                         function
-@name                          trim
-@param str                     String value containing whitespace padded data
-@return                                String value with leading and trailing space removed
-]]
-
----[[
-Count the occurrences of given substring in given string.
-
-@class                         function
-@name                          cmatch
-@param str                     String to search in
-@param pattern         String containing pattern to find
-@return                                Number of found occurrences
-]]
-
----[[
-Return a matching iterator for the given value.
-
-The iterator will return one token per invocation, the tokens are separated by
-whitespace. If the input value is a table, it is transformed into a string first.
-A nil value will result in a valid iterator which aborts with the first invocation.
-
-@class                         function
-@name                          imatch
-@param val                     The value to scan (table, string or nil)
-@return                                Iterator which returns one token per call
-]]
-
----[[
-Parse certain units from the given string and return the canonical integer
-value or 0 if the unit is unknown.
-
-Upper- or lower case is irrelevant.
-Recognized units are:
-
---     o "y"   - one year   (60*60*24*366)
- o "m" - one month  (60*60*24*31)
- o "w" - one week   (60*60*24*7)
- o "d" - one day    (60*60*24)
- o "h" - one hour       (60*60)
- o "min"       - one minute (60)
- o "kb"  - one kilobyte (1024)
- o "mb"        - one megabyte (1024*1024)
- o "gb"        - one gigabyte (1024*1024*1024)
- o "kib" - one si kilobyte (1000)
- o "mib"       - one si megabyte (1000*1000)
- o "gib"       - one si gigabyte (1000*1000*1000)
-
-@class                         function
-@name                          parse_units
-@param ustr                    String containing a numerical value with trailing unit
-@return                                Number containing the canonical value
-]]
-
----[[
-Appends numerically indexed tables or single objects to a given table.
-
-@class                         function
-@name                          append
-@param src                     Target table
-@param ...                     Objects to insert
-@return                                Target table
-]]
-
----[[
-Combines two or more numerically indexed tables and single objects into one table.
-
-@class                         function
-@name                          combine
-@param tbl1                    Table value to combine
-@param tbl2                    Table value to combine
-@param ...                     More tables to combine
-@return                                Table value containing all values of given tables
-]]
-
----[[
-Checks whether the given table contains the given value.
-
-@class                         function
-@name                          contains
-@param table           Table value
-@param value           Value to search within the given table
-@return                                Number indicating the first index at which the given value occurs
---                                     within table or false.
-]]
-
----[[
-Update values in given table with the values from the second given table.
-
-Both table are - in fact - merged together.
-
-@class                         function
-@name                          update
-@param t                       Table which should be updated
-@param updates         Table containing the values to update
-@return                                Always nil
-]]
-
----[[
-Retrieve all keys of given associative table.
-
-@class                         function
-@name                          keys
-@param t                       Table to extract keys from
-@return                                Sorted table containing the keys
-]]
-
----[[
-Clones the given object and return it's copy.
-
-@class                         function
-@name                          clone
-@param object          Table value to clone
-@param deep                    Boolean indicating whether to do recursive cloning
-@return                                Cloned table value
-]]
-
----[[
-Recursively serialize given data to lua code, suitable for restoring
-with loadstring().
-
-@class                         function
-@name                          serialize_data
-@param val                     Value containing the data to serialize
-@return                                String value containing the serialized code
-@see                           restore_data
-@see                           get_bytecode
-]]
-
----[[
-Restore data previously serialized with serialize_data().
-
-@class                         function
-@name                          restore_data
-@param str                     String containing the data to restore
-@return                                Value containing the restored data structure
-@see                           serialize_data
-@see                           get_bytecode
-]]
-
----[[
-Return the current runtime bytecode of the given data. The byte code
-will be stripped before it is returned.
-
-@class                         function
-@name                          get_bytecode
-@param val                     Value to return as bytecode
-@return                                String value containing the bytecode of the given data
-]]
-
----[[
-Strips unnecessary lua bytecode from given string.
-
-Information like line numbers and debugging numbers will be discarded.
-Original version by Peter Cawley (http://lua-users.org/lists/lua-l/2008-02/msg01158.html)
-
-@class                         function
-@name                          strip_bytecode
-@param code                    String value containing the original lua byte code
-@return                                String value containing the stripped lua byte code
-]]
-
----[[
-Return a key, value iterator which returns the values sorted according to
-the provided callback function.
-
-@class                         function
-@name                          spairs
-@param t                       The table to iterate
-@param f                       A callback function to decide the order of elements
-@return                                Function value containing the corresponding iterator
-]]
-
----[[
-Return a key, value iterator for the given table.
-
-The table pairs are sorted by key.
-
-@class                         function
-@name                          kspairs
-@param t                       The table to iterate
-@return                                Function value containing the corresponding iterator
-]]
-
----[[
-Return a key, value iterator for the given table.
-
-The table pairs are sorted by value.
-
-@class                         function
-@name                          vspairs
-@param t                       The table to iterate
-@return                                Function value containing the corresponding iterator
-]]
-
----[[
-Test whether the current system is operating in big endian mode.
-
-@class                         function
-@name                          bigendian
-@return                                Boolean value indicating whether system is big endian
-]]
-
----[[
-Execute given commandline and gather stdout.
-
-@class                         function
-@name                          exec
-@param command         String containing command to execute
-@return                                String containing the command's stdout
-]]
-
----[[
-Return a line-buffered iterator over the output of given command.
-
-@class                         function
-@name                          execi
-@param command         String containing the command to execute
-@return                                Iterator
-]]
-
----[[
-Issue an ubus call.
-
-@class                         function
-@name                          ubus
-@param object          String containing the ubus object to call
-@param method          String containing the ubus method to call
-@param values          Table containing the values to pass
-@return                                Table containin the ubus result
-]]
-
----[[
-Convert data structure to JSON
-
-@class                         function
-@name                          serialize_json
-@param data                    The data to serialize
-@param writer          A function to write a chunk of JSON data (optional)
-@return                                String containing the JSON if called without write callback
-]]
-
----[[
-Returns the absolute path to LuCI base directory.
-
-@class                         function
-@name                          libpath
-@return                                String containing the directory path
-]]
-
----[[
-This is a coroutine-safe drop-in replacement for Lua's "xpcall"-function
-
-@class                         function
-@name                          coxpcall
-@param f                       Lua function to be called protected
-@param err                     Custom error handler
-@param ...                     Parameters passed to the function
-@return                                A boolean whether the function call succeeded and the return
---                                     values of either the function or the error handler
-]]
-
----[[
-This is a coroutine-safe drop-in replacement for Lua's "pcall"-function
-
-@class                         function
-@name                          copcall
-@param f                       Lua function to be called protected
-@param ...                     Parameters passed to the function
-@return                                A boolean whether the function call succeeded and the returns
---                                     values of the function or the error object
-]]
-
diff --git a/package/luci/modules/luci-base/luasrc/version.lua b/package/luci/modules/luci-base/luasrc/version.lua
deleted file mode 100644 (file)
index 8af2e80..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
--- Licensed to the public under the Apache License 2.0.
-
-module "luci.version"
-
-distname    = "Host System"
-distversion = "SDK"
-
-luciname    = "LuCI"
-luciversion = "SVN"
diff --git a/package/luci/modules/luci-base/luasrc/view/admin_uci/changelog.htm b/package/luci/modules/luci-base/luasrc/view/admin_uci/changelog.htm
deleted file mode 100644 (file)
index 9d6267c..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-<%#
- Copyright 2010 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<% export("uci_changelog", function(changes) -%>
-<div class="cbi-section">
-       <strong><%:Legend:%></strong>
-       <div class="uci-change-legend">
-               <div class="uci-change-legend-label"><ins>&#160;</ins> <%:Section added%></div>
-               <div class="uci-change-legend-label"><del>&#160;</del> <%:Section removed%></div>
-               <div class="uci-change-legend-label"><var><ins>&#160;</ins></var> <%:Option changed%></div>
-               <div class="uci-change-legend-label"><var><del>&#160;</del></var> <%:Option removed%></div>
-               <br style="clear:both" />
-       </div>
-       <br />
-
-       <div class="uci-change-list"><%
-               local util = luci.util
-               local tpl = {
-                       ["add-3"] = "<ins>uci add %0 <strong>%3</strong> # =%2</ins>",
-                       ["set-3"] = "<ins>uci set %0.<strong>%2</strong>=%3</ins>",
-                       ["set-4"] = "<var><ins>uci set %0.%2.%3=<strong>%4</strong></ins></var>",
-                       ["remove-2"] = "<del>uci del %0.<strong>%2</strong></del>",
-                       ["remove-3"] = "<var><del>uci del %0.%2.<strong>%3</strong></del></var>",
-                       ["order-3"] = "<var>uci reorder %0.%2=<strong>%3</strong></var>",
-                       ["list-add-4"] = "<var><ins>uci add_list %0.%2.%3=<strong>%4</strong></ins></var>",
-                       ["list-del-4"] = "<var><del>uci del_list %0.%2.%3=<strong>%4</strong></del></var>",
-                       ["rename-3"] = "<var>uci rename %0.%2=<strong>%3</strong></var>",
-                       ["rename-4"] = "<var>uci rename %0.%2.%3=<strong>%4</strong></var>"
-               }
-
-               local conf, deltas
-               for conf, deltas in util.kspairs(changes) do
-                       write("<h3># /etc/config/%s</h3>" % conf)
-
-                       local _, delta, added
-                       for _, delta in pairs(deltas) do
-                               local t = tpl["%s-%d" %{ delta[1], #delta }]
-
-                               write(t:gsub("%%(%d)", function(n)
-                                       if n == "0" then
-                                               return conf
-                                       elseif n == "2" then
-                                               if added and delta[2] == added[1] then
-                                                       return "@%s[-1]" % added[2]
-                                               else
-                                                       return delta[2]
-                                               end
-                                       elseif n == "4" then
-                                               return util.shellquote(delta[4])
-                                       else
-                                               return delta[tonumber(n)]
-                                       end
-                               end))
-
-                               if delta[1] == "add" then
-                                       added = { delta[2], delta[3] }
-                               end
-                       end
-
-                       write("<br />")
-               end
-       %></div>
-</div>
-<%- end) %>
diff --git a/package/luci/modules/luci-base/luasrc/view/admin_uci/changes.htm b/package/luci/modules/luci-base/luasrc/view/admin_uci/changes.htm
deleted file mode 100644 (file)
index 43bd7c2..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<%-
-       local node, redir_url = luci.dispatcher.lookup(luci.http.formvalue("redir"))
-       export("redirect", redir_url or url("admin/uci/changes"))
-
-       include("admin_uci/changelog")
--%>
-
-<h2 name="content"><%:Configuration%> / <%:Changes%></h2>
-
-<% if changes then %>
-       <%- uci_changelog(changes) -%>
-<% else %>
-       <p><strong><%:There are no pending changes!%></strong></p>
-<% end %>
-
-<div class="alert-message" id="cbi_apply_status" style="display:none"></div>
-
-<div class="cbi-page-actions">
-       <% if redir_url then %>
-       <form method="get" action="<%=luci.util.pcdata(redir_url)%>">
-               <input class="cbi-button cbi-button-link" type="submit" value="<%:Back%>" />
-       </form>
-       <% end %>
-
-       <form method="post" action="<%=url("admin/uci/changes")%>">
-               <input type="hidden" name="token" value="<%=token%>" />
-               <input type="hidden" name="redir" value="<%=pcdata(luci.http.formvalue("redir"))%>" />
-               <input class="cbi-button cbi-button-save" type="submit" name="trigger_apply" value="<%:Save & Apply%>" />
-       </form>
-       <form method="post" action="<%=url("admin/uci/revert")%>">
-               <input type="hidden" name="token" value="<%=token%>" />
-               <input type="hidden" name="redir" value="<%=pcdata(luci.http.formvalue("redir"))%>" />
-               <input class="cbi-button cbi-button-reset" type="submit" value="<%:Revert%>" />
-       </form>
-</div>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-base/luasrc/view/admin_uci/revert.htm b/package/luci/modules/luci-base/luasrc/view/admin_uci/revert.htm
deleted file mode 100644 (file)
index d8fd3de..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<%-
-       local node, redir_url = luci.dispatcher.lookup(luci.http.formvalue("redir"))
-       export("redirect", redir_url or url("admin/uci/changes"))
-
-       include("admin_uci/changelog")
--%>
-
-<h2 name="content"><%:Configuration%> / <%:Revert%></h2>
-
-<% if changes then %>
-       <p><strong><%:The following changes have been reverted%>:</strong></p>
-       <%- uci_changelog(changes) -%>
-<% else %>
-       <p><strong><%:There are no pending changes to revert!%></strong></p>
-<% end %>
-
-<% if redir_url then %>
-       <div class="cbi-page-actions">
-               <form class="inline" method="get" action="<%=luci.util.pcdata(redir_url)%>">
-                       <input class="cbi-button cbi-button-link" style="margin:0" type="submit" value="<%:Back%>" />
-               </form>
-       </div>
-<% end %>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/apply_widget.htm b/package/luci/modules/luci-base/luasrc/view/cbi/apply_widget.htm
deleted file mode 100644 (file)
index 0f96673..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-<% export("cbi_apply_widget", function(redirect_ok, rollback_token) -%>
-<script type="text/javascript">//<![CDATA[
-       var xhr = new XHR(),
-           uci_apply_auth = { sid: '<%=luci.dispatcher.context.authsession%>', token: '<%=token%>' },
-           uci_apply_rollback = <%=math.max(luci.config and luci.config.apply and luci.config.apply.rollback or 30, 30)%>,
-           uci_apply_holdoff = <%=math.max(luci.config and luci.config.apply and luci.config.apply.holdoff or 4, 1)%>,
-           uci_apply_timeout = <%=math.max(luci.config and luci.config.apply and luci.config.apply.timeout or 5, 1)%>,
-           uci_apply_display = <%=math.max(luci.config and luci.config.apply and luci.config.apply.display or 1.5, 1)%>,
-           uci_confirm_auth = <% if rollback_token then %>{ token: '<%=rollback_token%>' }<% else %>null<% end %>,
-           was_xhr_poll_running = false;
-
-       function uci_status_message(type, content) {
-               if (type) {
-                       var message = showModal('', '');
-
-                       message.classList.add('alert-message');
-                       DOMTokenList.prototype.add.apply(message.classList, type.split(/\s+/));
-
-                       if (content)
-                               message.innerHTML = content;
-
-                       if (!was_xhr_poll_running) {
-                               was_xhr_poll_running = XHR.running();
-                               XHR.halt();
-                       }
-               }
-               else {
-                       hideModal();
-
-                       if (was_xhr_poll_running)
-                               XHR.run();
-               }
-       }
-
-       function uci_rollback(checked) {
-               if (checked) {
-                       uci_status_message('warning spinning',
-                               '<p><%:Failed to confirm apply within %ds, waiting for rollback…%></p>'.format(uci_apply_rollback));
-
-                       var call = function(r, data, duration) {
-                               if (r.status === 204) {
-                                       uci_status_message('warning',
-                                               '<h4><%:Configuration has been rolled back!%></h4>' +
-                                               '<p><%:The device could not be reached within %d seconds after applying the pending changes, which caused the configuration to be rolled back for safety reasons. If you believe that the configuration changes are correct nonetheless, proceed by applying anyway. Alternatively, you can dismiss this warning and edit changes before attempting to apply again, or revert all pending changes to keep the currently working configuration state.%></p>'.format(uci_apply_rollback) +
-                                               '<div class="right">' +
-                                                       '<input type="button" class="btn" onclick="uci_status_message(false)" value="<%:Dismiss%>" /> ' +
-                                                       '<input type="button" class="btn cbi-button-action important" onclick="uci_revert()" value="<%:Revert changes%>" /> ' +
-                                                       '<input type="button" class="btn cbi-button-negative important" onclick="uci_apply(false)" value="<%:Apply anyway%>" />' +
-                                               '</div>');
-
-                                       return;
-                               }
-
-                               var delay = isNaN(duration) ? 0 : Math.max(1000 - duration, 0);
-                               window.setTimeout(function() {
-                                       xhr.post('<%=url("admin/uci/confirm")%>', uci_apply_auth, call, uci_apply_timeout * 1000);
-                               }, delay);
-                       };
-
-                       call({ status: 0 });
-               }
-               else {
-                       uci_status_message('warning',
-                               '<h4><%:Device unreachable!%></h4>' +
-                               '<p><%:Could not regain access to the device after applying the configuration changes. You might need to reconnect if you modified network related settings such as the IP address or wireless security credentials.%></p>');
-               }
-       }
-
-       function uci_confirm(checked, deadline) {
-               var tt;
-               var ts = Date.now();
-
-               uci_status_message('notice');
-
-               var call = function(r, data, duration) {
-                       if (Date.now() >= deadline) {
-                               window.clearTimeout(tt);
-                               uci_rollback(checked);
-                               return;
-                       }
-                       else if (r && (r.status === 200 || r.status === 204)) {
-                               var indicator = document.querySelector('.uci_change_indicator');
-                               if (indicator) indicator.style.display = 'none';
-
-                               uci_status_message('notice', '<p><%:Configuration has been applied.%></p>');
-
-                               window.clearTimeout(tt);
-                               window.setTimeout(function() {
-                                       <% if redirect_ok then -%>
-                                               location.href = decodeURIComponent('<%=luci.util.urlencode(redirect_ok)%>');
-                                       <%- else -%>
-                                               window.location = window.location.href.split('#')[0];
-                                       <% end %>
-                               }, uci_apply_display * 1000);
-
-                               return;
-                       }
-
-                       var delay = isNaN(duration) ? 0 : Math.max(1000 - duration, 0);
-                       window.setTimeout(function() {
-                               xhr.post('<%=url("admin/uci/confirm")%>', uci_confirm_auth, call, uci_apply_timeout * 1000);
-                       }, delay);
-               };
-
-               var tick = function() {
-                       var now = Date.now();
-
-                       uci_status_message('notice spinning',
-                               '<p><%:Waiting for configuration to be applied… %ds%></p>'.format(Math.max(Math.floor((deadline - Date.now()) / 1000), 0)));
-
-                       if (now >= deadline)
-                               return;
-
-                       tt = window.setTimeout(tick, 1000 - (now - ts));
-                       ts = now;
-               };
-
-               tick();
-
-               /* wait a few seconds for the settings to become effective */
-               window.setTimeout(call, Math.max(uci_apply_holdoff * 1000 - ((ts + uci_apply_rollback * 1000) - deadline), 1));
-       }
-
-       function uci_apply(checked) {
-               uci_status_message('notice spinning', '<p><%:Starting configuration apply…%></p>');
-
-               xhr.post('<%=url("admin/uci")%>/' + (checked ? 'apply_rollback' : 'apply_unchecked'), uci_apply_auth, function(r, tok) {
-                       if (r.status === (checked ? 200 : 204)) {
-                               if (checked && tok !== null && typeof(tok) === 'object' && typeof(tok.token) === 'string')
-                                       uci_confirm_auth = tok;
-
-                               uci_confirm(checked, Date.now() + uci_apply_rollback * 1000);
-                       }
-                       else if (checked && r.status === 204) {
-                               uci_status_message('notice', '<p><%:There are no changes to apply.%></p>');
-                               window.setTimeout(function() {
-                                       <% if redirect_ok then -%>
-                                               location.href = decodeURIComponent('<%=luci.util.urlencode(redirect_ok)%>');
-                                       <%- else -%>
-                                               uci_status_message(false);
-                                       <%- end %>
-                               }, uci_apply_display * 1000);
-                       }
-                       else {
-                               uci_status_message('warning', '<p><%_Apply request failed with status <code>%h</code>%></p>'.format(r.responseText || r.statusText || r.status));
-                               window.setTimeout(function() { uci_status_message(false); }, uci_apply_display * 1000);
-                       }
-               });
-       }
-
-       function uci_revert() {
-               uci_status_message('notice spinning', '<p><%:Reverting configuration…%></p>');
-
-               xhr.post('<%=url("admin/uci/revert")%>', uci_apply_auth, function(r) {
-                       if (r.status === 200) {
-                               uci_status_message('notice', '<p><%:Changes have been reverted.%></p>');
-                               window.setTimeout(function() {
-                                       <% if redirect_ok then -%>
-                                               location.href = decodeURIComponent('<%=luci.util.urlencode(redirect_ok)%>');
-                                       <%- else -%>
-                                               window.location = window.location.href.split('#')[0];
-                                       <%- end %>
-                               }, uci_apply_display * 1000);
-                       }
-                       else {
-                               uci_status_message('warning', '<p><%_Revert request failed with status <code>%h</code>%></p>'.format(r.statusText || r.status));
-                               window.setTimeout(function() { uci_status_message(false); }, uci_apply_display * 1000);
-                       }
-               });
-       }
-//]]></script>
-<%-    end) %>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/browser.htm b/package/luci/modules/luci-base/luasrc/view/cbi/browser.htm
deleted file mode 100644 (file)
index eb47ffa..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<%+cbi/valueheader%>
-
-<input class="cbi-input-text" type="text"<%=
-       attr("id", cbid) ..
-       attr("name", cbid) ..
-       attr("value", self:cfgvalue(section) or self.default) ..
-       attr("data-browser", self.default_path or "")
-%> />
-
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/button.htm b/package/luci/modules/luci-base/luasrc/view/cbi/button.htm
deleted file mode 100644 (file)
index 6ccba58..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<%+cbi/valueheader%>
-       <% if self:cfgvalue(section) ~= false then %>
-               <input class="cbi-button cbi-button-<%=self.inputstyle or "button" %>" type="submit"<%= attr("name", cbid) .. attr("id", cbid) .. attr("value", self.inputtitle or self.title)%> />
-       <% else %>
-               -
-       <% end %>
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/cell_valuefooter.htm b/package/luci/modules/luci-base/luasrc/view/cbi/cell_valuefooter.htm
deleted file mode 100644 (file)
index bdd6bc9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-</div>
-</div>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/cell_valueheader.htm b/package/luci/modules/luci-base/luasrc/view/cbi/cell_valueheader.htm
deleted file mode 100644 (file)
index ea0568f..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<%-
-       local title = luci.util.trim(striptags(self.title))
-       local descr = luci.util.trim(striptags(self.description))
-       local ftype = self.typename or (self.template and self.template:gsub("^.+/", ""))
--%>
-<div class="td cbi-value-field<% if self.error and self.error[section] then %> cbi-value-error<% end %>"<%=
-       attr("data-name", self.option) ..
-       ifattr(ftype and #ftype > 0, "data-type", ftype) ..
-       ifattr(title and #title > 0, "data-title", title) ..
-       ifattr(descr and #descr > 0, "data-description", descr)
-%>>
-<div id="cbi-<%=self.config.."-"..section.."-"..self.option%>" data-index="<%=self.index%>" data-depends="<%=pcdata(self:deplist2json(section))%>">
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/compound.htm b/package/luci/modules/luci-base/luasrc/view/cbi/compound.htm
deleted file mode 100644 (file)
index 12d02bb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<%- self:render_children() %>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/delegator.htm b/package/luci/modules/luci-base/luasrc/view/cbi/delegator.htm
deleted file mode 100644 (file)
index 4fd1926..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<%- self.active:render() %>
-       <div class="cbi-page-actions">
-               <input type="hidden" name="cbi.delg.current" value="<%=self.current%>" />
-<% for _, x in ipairs(self.chain) do %>
-               <input type="hidden" name="cbi.delg.path" value="<%=x%>" />
-<% end %>
-<% if not self.disallow_pageactions then %>
-<% if self.allow_finish and not self:get_next(self.current) then %>
-       <input class="cbi-button cbi-button-finish" type="submit" value="<%:Finish%>" />
-<% elseif self:get_next(self.current) then %>
-               <input class="cbi-button cbi-button-next" type="submit" value="<%:Next »%>" />
-<% end %>
-<% if self.allow_cancel then %>
-               <input class="cbi-button cbi-button-cancel" type="submit" name="cbi.cancel" value="<%:Cancel%>" />
-<% end %>
-<% if self.allow_reset then %>
-               <input class="cbi-button cbi-button-reset" type="reset" value="<%:Reset%>" />
-<% end %>
-<% if self.allow_back and self:get_prev(self.current) then %>
-               <input class="cbi-button cbi-button-back" type="submit" name="cbi.delg.back" value="<%:« Back%>" />
-<% end %>
-<% end %>
-               <script type="text/javascript">cbi_d_update();</script>
-       </div>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/dropdown.htm b/package/luci/modules/luci-base/luasrc/view/cbi/dropdown.htm
deleted file mode 100644 (file)
index 6f4b899..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<%+cbi/valueheader%>
-
-<%-
-       local selected = { }
-
-       if self.multiple then
-               local val
-               for val in luci.util.imatch(self:cfgvalue(section)) do
-                       selected[val] = true
-               end
-       else
-               selected[self:cfgvalue(section)] = true
-       end
-
-       if not next(selected) and self.default then
-               selected[self.default] = true
-       end
--%>
-
-<div class="cbi-dropdown"<%=
-       attr("name", cbid) ..
-       attr("display-items", self.display or self.size or 3) ..
-       attr("dropdown-items", self.dropdown or self.display or self.size or 5) ..
-       attr("placeholder", self.placeholder or translate("-- please select --")) ..
-       ifattr(self.multiple, "multiple", "multiple") ..
-       ifattr(self.optional or self.rmempty, "optional", "optional")
-%>>
-       <ul>
-               <% local i, key; for i, key in pairs(self.keylist) do %>
-                       <li<%=
-                               attr("data-index", i) ..
-                               attr("data-depends", self:deplist2json(section, self.deplist[i])) ..
-                               attr("data-value", key) ..
-                               ifattr(selected[key], "selected", "selected")
-                       %>>
-                               <%=pcdata(self.vallist[i])%>
-                       </li>
-               <% end %>
-               <% if self.custom then %>
-                       <li>
-                               <input type="password" style="display:none" />
-                               <input class="create-item-input" type="text"<%=
-                                       attr("placeholder", self.custom ~= true and
-                                               self.custom or
-                                               (self.multiple and
-                                                       translate("Enter custom values") or
-                                                       translate("Enter custom value")))
-                               %> />
-                       </li>
-               <% end %>
-       </ul>
-</div>
-
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/dvalue.htm b/package/luci/modules/luci-base/luasrc/view/cbi/dvalue.htm
deleted file mode 100644 (file)
index 78e6f32..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<%+cbi/valueheader%>
-<% if self.href then %><a href="<%=self.href%>"><% end -%>
-       <%
-               local val = self:cfgvalue(section) or self.default or ""
-               if not self.rawhtml then
-                       write(pcdata(val))
-               else
-                       write(val)
-               end
-       %>
-<%- if self.href then %></a><%end%>
-<input type="hidden" id="<%=cbid%>" value="<%=pcdata(self:cfgvalue(section) or self.default or "")%>" />
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/dynlist.htm b/package/luci/modules/luci-base/luasrc/view/cbi/dynlist.htm
deleted file mode 100644 (file)
index fa7dbdb..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<%+cbi/valueheader%>
-<div<%=
-       attr("data-prefix", cbid) ..
-       attr("data-browser-path", self.default_path) ..
-       attr("data-dynlist", luci.util.serialize_json({
-               self.keylist, self.vallist,
-               self.datatype, self.optional or self.rmempty
-       })) ..
-       attr("data-values", luci.util.serialize_json(self:cfgvalue(section))) ..
-       ifattr(self.size, "data-size", self.size) ..
-       ifattr(self.placeholder, "data-placeholder", self.placeholder)
-%>></div>
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/error.htm b/package/luci/modules/luci-base/luasrc/view/cbi/error.htm
deleted file mode 100644 (file)
index 75ec108..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<div class="cbi-map" id="cbi-<%=self.config%>">
-       <% if self.title and #self.title > 0 then %><h2 name="content"><%=self.title%></h2><% end %>
-       <% if self.description and #self.description > 0 then %><div class="cbi-map-descr"><%=self.description%></div><% end %>
-
-       <p class="alert-message danger">
-               <%: The configuration file could not be loaded due to the following error: %><br />
-               <code><%=pcdata(self.error)%></code>
-       </p>
-
-       <textarea name="cbi.source" style="width:100%; margin-bottom:1em" rows="<%=math.max(self.source:cmatch("\n"), 10)%>"><%=pcdata(self.source)%></textarea>
-
-       <p class="alert-message">
-               <%: Edit the raw configuration data above to fix any error and hit "Save" to reload the page. %>
-       </p>
-
-       <div class="cbi-page-actions">
-               <input class="cbi-button cbi-button-apply" type="submit" name="cbi.save" value="<%:Save%>" />
-       </div>
-</div>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/filebrowser.htm b/package/luci/modules/luci-base/luasrc/view/cbi/filebrowser.htm
deleted file mode 100644 (file)
index 806b1b5..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-    <title>Filebrowser - LuCI</title>
-       <style type="text/css">
-               #path, #listing {
-                       font-size: 85%;
-               }
-
-               ul {
-                       padding-left: 0;
-                       list-style-type: none;
-               }
-
-               li img {
-                       vertical-align: bottom;
-                       margin-right: 0.2em;
-               }
-       </style>
-
-       <script type="text/javascript">
-               function callback(path) {
-                       if( window.opener ) {
-                               var input = window.opener.document.getElementById(decodeURIComponent('<%=luci.http.urlencode(luci.http.formvalue('field'))%>'));
-                               if( input ) {
-                                       input.value = decodeURIComponent(path);
-                                       window.close();
-                               }
-                       }
-               }
-       </script>
-</head>
-<body>
-       <%
-               require("nixio.fs")
-               require("nixio.util")
-               require("luci.http")
-               require("luci.dispatcher")
-
-               local field   = luci.http.formvalue('field')
-               local request = luci.dispatcher.context.args
-               local path    = { '' }
-
-               for i = 1, #request do
-                       if request[i] ~= '..' and #request[i] > 0 then
-                               path[#path+1] = request[i]
-                       end
-               end
-
-               local filestat = nixio.fs.stat(table.concat(path, '/'))
-               local baseurl  = { 'admin', 'filebrowser' }
-
-               if filestat and filestat.type == "reg" then
-                       path[#path] = ''
-               elseif not (filestat and filestat.type == "dir") then
-                       path = { '', '' }
-               else
-                       path[#path+1] = ''
-               end
-
-               filepath = table.concat(path, '/')
-
-               local entries = {}
-               local _, e
-               for _, e in luci.util.vspairs(nixio.util.consume((nixio.fs.dir(filepath)))) do
-                       local p = filepath .. e
-                       local s = nixio.fs.stat(p)
-                       if s then
-                               entries[#entries+1] = {
-                                       name = e,
-                                       path = p,
-                                       type = s.type
-                               }
-                       end
-               end
-       -%>
-       <div id="path">
-               Location:
-               <% for i, dir in ipairs(path) do %>
-                       <% if i == 1 then %>
-                               <a href="<%=url(unpack(baseurl))%>?field=<%=luci.http.urlencode(field)%>">(root)</a>
-                       <% elseif next(path, i) then %>
-                               <% baseurl[#baseurl+1] = luci.http.urlencode(dir) %>
-                               / <a href="<%=url(unpack(baseurl))%>?field=<%=luci.http.urlencode(field)%>"><%=pcdata(dir)%></a>
-                       <% else %>
-                               <% baseurl[#baseurl+1] = luci.http.urlencode(dir) %>
-                               / <%=pcdata(dir)%>
-                       <% end %>
-               <% end %>
-       </div>
-
-       <hr />
-
-       <div id="listing">
-               <ul>
-                       <% for _, e in ipairs(entries) do if e.type == 'dir' then -%>
-                               <li class="dir">
-                                       <img src="<%=resource%>/cbi/folder.gif" alt="<%:Directory%>" />
-                                       <a href="<%=url(unpack(baseurl))%>/<%=luci.http.urlencode(e.name)%>?field=<%=luci.http.urlencode(field)%>"><%=pcdata(e.name)%>/</a>
-                               </li>
-                       <% end end -%>
-
-                       <% for _, e in ipairs(entries) do if e.type ~= 'dir' then -%>
-                               <li class="file">
-                                       <img src="<%=resource%>/cbi/file.gif" alt="<%:File%>" />
-                                       <a href="#" onclick="callback('<%=luci.http.urlencode(e.path)%>')"><%=pcdata(e.name)%></a>
-                               </li>
-                       <% end end -%>
-               </ul>
-       </div>
-</body>
-</html>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm b/package/luci/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm
deleted file mode 100644 (file)
index dc251db..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<%+cbi/valueheader%>
-
-<%-
-       local utl = require "luci.util"
-       local fwm = require "luci.model.firewall".init()
-       local nwm = require "luci.model.network".init()
-
-       local zone, fwd, fz
-       local value = self:formvalue(section)
-       if not value or value == "-" then
-               value = self:cfgvalue(section) or self.default
-       end
-
-       local def  = fwm:get_defaults()
-       local zone = fwm:get_zone(value)
-       local empty = true
-
-       local function render_zone(zone)
--%>
-               <label class="zonebadge" style="background-color:<%=zone:get_color()%>">
-                       <strong><%=zone:name()%></strong>
-                       <div class="cbi-tooltip">
-                       <%-
-                               local zempty = true
-                               for _, net in ipairs(zone:get_networks()) do
-                                       net = nwm:get_network(net)
-                                       if net then
-                                               zempty = false
-                       -%>
-                               <span class="ifacebadge<% if net:name() == self.network then %> ifacebadge-active<% end %>"><%=net:name()%>:&#160;
-                               <%
-                                       local nempty = true
-                                       for _, iface in ipairs(net:is_bridge() and net:get_interfaces() or { net:get_interface() }) do
-                                               nempty = false
-                                %>
-                                       <img<%=attr("title", iface:get_i18n())%> src="<%=resource%>/icons/<%=iface:type()%><%=iface:is_up() and "" or "_disabled"%>.png" />
-                               <% end %>
-                               <% if nempty then %><em><%:(empty)%></em><% end %>
-                               </span>
-                       <%- end end -%>
-                       <% if zempty then %><span class="ifacebadge"><em><%:(empty)%></em></span><% end %>
-                       </div>
-               </label>
-<%-
-       end
--%>
-
-<% if zone then %>
-<div class="zone-forwards">
-       <div class="zone-src">
-               <%=render_zone(zone)%>
-       </div>
-       <span>&#8658;</span>
-       <div class="zone-dest">
-       <%
-               for _, fwd in ipairs(zone:get_forwardings_by("src")) do
-                       fz = fwd:dest_zone()
-                       if fz then
-                               empty = false
-                               render_zone(fz)
-                       end
-               end
-               if empty then
-       %>
-               <label class="zonebadge zonebadge-empty">
-                       <strong><%=def:forward():upper()%></strong>
-               </label>
-       <% end %>
-       </div>
-</div>
-<% end %>
-
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm b/package/luci/modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm
deleted file mode 100644 (file)
index 7ecec10..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-<%+cbi/valueheader%>
-
-<%-
-       local utl = require "luci.util"
-       local fwm = require "luci.model.firewall".init()
-       local nwm = require "luci.model.network".init()
-
-       local zone, net, iface
-       local zones = fwm:get_zones()
-       local value = self:formvalue(section)
-       if not value or value == "-" then
-               value = self:cfgvalue(section) or self.default
-       end
-
-       local selected = false
-       local checked = { }
-
-       for value in utl.imatch(value) do
-               checked[value] = true
-       end
-
-       if not next(checked) then
-               checked[""] = true
-       end
--%>
-
-<div class="cbi-dropdown" dropdown-items="5" placeholder="<%:-- please select -- %>"<%=
-       attr("name", cbid) ..
-       ifattr(self.widget == "checkbox", "multiple", "multiple") ..
-       ifattr(self.rmempty or self.optional, "optional", "optional")
-%>>
-       <script type="item-template"><!--
-               <li data-value="{{value}}">
-                       <span class="zonebadge" style="background:repeating-linear-gradient(45deg,rgba(204,204,204,0.5),rgba(204,204,204,0.5) 5px,rgba(255,255,255,0.5) 5px,rgba(255,255,255,0.5) 10px)">
-                               <strong>{{value}}:</strong><em>(<%:create%>)</em>
-                       </span>
-               </li>
-       --></script>
-       <ul>
-               <% if self.allowlocal then %>
-               <li data-value=""<%=ifattr(checked[""], "selected", "selected")%>>
-                       <span style="background-color:<%=fwm.zone.get_color()%>" class="zonebadge">
-                               <strong><%:Device%></strong>
-                               <% if self.allowany and self.allowlocal then -%>
-                                       (<%= self.alias ~= "dest"
-                                               and translate("output") or translate("input") %>)
-                               <%- end %>
-                       </span>
-               </li>
-               <% elseif self.widget ~= "checkbox" and (self.rmempty or self.optional) then %>
-               <li data-value=""<%=ifattr(checked[""], "selected", "selected")%>>
-                       <span class="zonebadge">
-                               <em><%:unspecified%></em>
-                       </span>
-               </li>
-               <% end %>
-               <% if self.allowany then %>
-               <li data-value="*"<%=ifattr(checked["*"], "selected", "selected")%>>
-                       <span style="background-color:<%=fwm.zone.get_color()%>" class="zonebadge">
-                               <strong><%:Any zone%></strong>
-                               <% if self.allowany and self.allowlocal then %>(<%:forward%>)<% end %>
-                       </span>
-               </li>
-               <% end %>
-               <%
-                       for _, zone in utl.spairs(zones, function(a,b) return (zones[a]:name() < zones[b]:name()) end) do
-                               if zone:name() ~= self.exclude then
-                                       selected = selected or (value == zone:name())
-               %>
-               <li<%=attr("data-value", zone:name()) .. ifattr(checked[zone:name()], "selected", "selected")%>>
-                       <span style="background-color:<%=zone:get_color()%>" class="zonebadge">
-                               <strong><%=zone:name()%>:</strong>
-                               <%-
-                                       local zempty = true
-                                       for _, net in ipairs(zone:get_networks()) do
-                                               net = nwm:get_network(net)
-                                               if net then
-                                                       zempty = false
-                               -%>
-                                       <span class="ifacebadge<% if net:name() == self.network then %> ifacebadge-active<% end %>"><%=net:name()%>:
-                                       <%-
-                                               local nempty = true
-                                               for _, iface in ipairs(net:is_bridge() and net:get_interfaces() or { net:get_interface() }) do
-                                                       nempty = false
-                                       %>
-                                               <img<%=attr("title", iface:get_i18n())%> src="<%=resource%>/icons/<%=iface:type()%><%=iface:is_up() and "" or "_disabled"%>.png" />
-                                       <% end %>
-                                       <% if nempty then %><em><%:(empty)%></em><% end -%>
-                                       </span>
-                               <%- end end -%>
-                               <%- if zempty then %><em><%:(empty)%></em><% end -%>
-                       </span>
-               </li>
-               <% end end %>
-
-               <% if self.widget ~= "checkbox" and not self.nocreate then %>
-               <li data-value="-">
-                       <span class="zonebadge">
-                               <em><%:create%>:</em>
-                               <input type="password" style="display:none" />
-                               <input class="create-item-input" type="text" data-type="and(uciname,maxlength(11))" data-optional="true" />
-                       </span>
-               </li>
-               <% end %>
-       </ul>
-</div>
-
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/footer.htm b/package/luci/modules/luci-base/luasrc/view/cbi/footer.htm
deleted file mode 100644 (file)
index ed63220..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<%
-       local display_back  = (redirect and not flow.hidebackbtn)
-       local display_skip  = (flow.skip)
-       local display_apply = (not autoapply and not flow.hideapplybtn)
-       local display_save  = (not flow.hidesavebtn)
-       local display_reset = (not flow.hideresetbtn)
-
-       if pageaction and
-          (display_back or display_skip or display_apply or display_save or display_reset)
-       then
-               %><div class="cbi-page-actions"><%
-
-               if display_back then
-                       %><input class="cbi-button cbi-button-link" type="button" value="<%:Back to Overview%>" onclick="location.href='<%=pcdata(redirect)%>'" /> <%
-               end
-
-               if display_skip then
-                       %><input class="cbi-button cbi-button-skip" type="button" value="<%:Skip%>" onclick="cbi_submit(this, 'cbi.skip')" /> <%
-               end
-
-               if display_apply then
-                       %><input class="cbi-button cbi-button-apply" type="button" value="<%:Save & Apply%>" onclick="cbi_submit(this, 'cbi.apply')" /> <%
-               end
-
-               if display_save then
-                       %><input class="cbi-button cbi-button-save" type="submit" value="<%:Save%>" /> <%
-               end
-
-               if display_reset then
-                       %><input class="cbi-button cbi-button-reset" type="button" value="<%:Reset%>" onclick="location.href='<%=REQUEST_URI%>'" /> <%
-               end
-
-               %></div><%
-       end
-%>
-
-</form>
-
-<script type="text/javascript">cbi_init();</script>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/full_valuefooter.htm b/package/luci/modules/luci-base/luasrc/view/cbi/full_valuefooter.htm
deleted file mode 100644 (file)
index d4ad093..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-               <% if self.description and #self.description > 0 then -%>
-                       <% if not luci.util.instanceof(self, luci.cbi.DynamicList) and (not luci.util.instanceof(self, luci.cbi.Flag) or self.orientation == "horizontal") then -%>
-                               <br />
-                       <%- end %>
-                       <div class="cbi-value-description">
-                               <%=self.description%>
-                       </div>
-               <%- end %>
-       <%- if self.title and #self.title > 0 then -%>
-       </div>
-       <%- end -%>
-</div>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/full_valueheader.htm b/package/luci/modules/luci-base/luasrc/view/cbi/full_valueheader.htm
deleted file mode 100644 (file)
index 10a5543..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<div class="cbi-value<% if self.error and self.error[section] then %> cbi-value-error<% end %><% if self.last_child then %> cbi-value-last<% end %>" id="cbi-<%=self.config.."-"..section.."-"..self.option%>" data-index="<%=self.index%>" data-depends="<%=pcdata(self:deplist2json(section))%>">
-       <%- if self.title and #self.title > 0 then -%>
-       <label class="cbi-value-title"<%= attr("for", cbid) %>>
-       <%- if self.titleref then -%><a title="<%=self.titledesc or translate('Go to relevant configuration page')%>" class="cbi-title-ref" href="<%=self.titleref%>"><%- end -%>
-               <%-=self.title-%>
-       <%- if self.titleref then -%></a><%- end -%>
-       </label>
-               <div class="cbi-value-field">
-       <%- end -%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/fvalue.htm b/package/luci/modules/luci-base/luasrc/view/cbi/fvalue.htm
deleted file mode 100644 (file)
index 197d03c..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<%+cbi/valueheader%>
-       <input type="hidden" value="1"<%=
-               attr("name", "cbi.cbe." .. self.config .. "." .. section .. "." .. self.option)
-       %> />
-       <input class="cbi-input-checkbox" data-update="click change" type="checkbox"<%=
-               attr("id", cbid) .. attr("name", cbid) .. attr("value", self.enabled or 1) ..
-               ifattr((self:cfgvalue(section) or self.default) == self.enabled, "checked", "checked")
-       %> />
-       <label<%= attr("for", cbid)%>></label>
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/header.htm b/package/luci/modules/luci-base/luasrc/view/cbi/header.htm
deleted file mode 100644 (file)
index 821fa3e..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<%+header%>
-<form method="post" name="cbi" action="<%=REQUEST_URI%>" enctype="multipart/form-data" onreset="return cbi_validate_reset(this)" onsubmit="return cbi_validate_form(this, '<%:Some fields are invalid, cannot save values!%>')"<%=
-       attr("data-strings", luci.util.serialize_json({
-               label = {
-                       choose = translate('-- Please choose --'),
-                       custom = translate('-- custom --'),
-               },
-               path = {
-                       resource = resource,
-                       browser  = url("admin/filebrowser")
-               }
-       }))
-%>>
-       <div>
-               <input type="hidden" name="token" value="<%=token%>" />
-               <input type="hidden" name="cbi.submit" value="1" />
-               <input type="submit" value="<%:Save%>" class="hidden" />
-       </div>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/ipaddr.htm b/package/luci/modules/luci-base/luasrc/view/cbi/ipaddr.htm
deleted file mode 100644 (file)
index 1c924e1..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<%+cbi/valueheader%>
-       <script type="text/javascript">
-               function switchToCIDRList(ev) {
-                       var input = ev.target.previousElementSibling,
-                           usecidr = document.getElementById(input.id + '_usecidr');
-
-                       ev.preventDefault();
-
-                       usecidr.value = '1';
-                       cbi_d_update();
-               }
-       </script>
-       <input data-update="change"<%=
-               attr("id", cbid) ..
-               attr("name", cbid) ..
-               attr("type", "text") ..
-               attr("class", "cbi-input-text") ..
-               attr("value", self:cfgvalue(section) or self.default) ..
-               ifattr(self.size, "size") ..
-               ifattr(self.placeholder, "placeholder") ..
-               ifattr(self.datatype, "data-type", self.datatype) ..
-               ifattr(self.datatype, "data-optional", self.optional or self.rmempty) ..
-               ifattr(self.combobox_manual, "data-manual", self.combobox_manual) ..
-               ifattr(#self.keylist > 0, "data-choices", { self.keylist, self.vallist })
-       %> /><!--
-       --><button class="cbi-button cbi-button-neutral" title="<%:Switch to CIDR list notation%>" aria-label="<%:Switch to CIDR list notation%>" onclick="switchToCIDRList(event)">…</button>
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/lvalue.htm b/package/luci/modules/luci-base/luasrc/view/cbi/lvalue.htm
deleted file mode 100644 (file)
index 34d02ee..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<%
-       local i, key
-       local br = self.orientation == "horizontal" and '&#160;' or '<br />'
-%>
-
-<%+cbi/valueheader%>
-<% if self.widget == "select" then %>
-       <select class="cbi-input-select" data-update="change"<%=
-               attr("id", cbid) ..
-               attr("name", cbid) ..
-               ifattr(self.size, "size")
-       %>>
-               <% for i, key in pairs(self.keylist) do -%>
-                       <option<%=
-                               attr("id", cbid.."-"..key) ..
-                               attr("value", key) ..
-                               attr("data-index", i) ..
-                               attr("data-depends", self:deplist2json(section, self.deplist[i])) ..
-                               ifattr(tostring(self:cfgvalue(section) or self.default) == key, "selected", "selected")
-                       %>><%=pcdata(self.vallist[i])%></option>
-               <%- end %>
-       </select>
-<% elseif self.widget == "radio" then %>
-       <div>
-               <% for i, key in pairs(self.keylist) do %>
-                       <label<%=
-                               attr("data-index", i) ..
-                               attr("data-depends", self:deplist2json(section, self.deplist[i]))
-                       %>>
-                               <input class="cbi-input-radio" data-update="click change" type="radio"<%=
-                                       attr("id", cbid.."-"..key) ..
-                                       attr("name", cbid) ..
-                                       attr("value", key) ..
-                                       ifattr((self:cfgvalue(section) or self.default) == key, "checked", "checked")
-                               %> />
-                               <label<%= attr("for", cbid.."-"..key)%>></label>
-                               <%=pcdata(self.vallist[i])%>
-                       </label>
-                       <% if i == self.size then write(br) end %>
-               <% end %>
-       </div>
-<% end %>
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/map.htm b/package/luci/modules/luci-base/luasrc/view/cbi/map.htm
deleted file mode 100644 (file)
index cda4d35..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<%- if firstmap and messages then local msg; for _, msg in ipairs(messages) do -%>
-       <div class="alert-message warning"><%=pcdata(msg)%></div>
-<%- end end -%>
-
-<div class="cbi-map" id="cbi-<%=self.config%>">
-       <% if self.title and #self.title > 0 then %>
-               <h2 name="content"><%=self.title%></h2>
-       <% end %>
-       <% if self.description and #self.description > 0 then %>
-               <div class="cbi-map-descr"><%=self.description%></div>
-       <% end %>
-       <% if self.tabbed then %>
-               <div>
-                       <% for i, section in ipairs(self.children) do
-                              tab = section.section or section.sectiontype %>
-                               <div class="cbi-tabcontainer"<%=
-                                       attr("id", "container.m-%s.%s" %{ self.config, tab }) ..
-                                       attr("data-tab", tab) ..
-                                       attr("data-tab-title", section.title or tab)
-                               %>>
-                                       <% section:render() %>
-                               </div>
-                       <% end %>
-               </div>
-
-               <% if not self.save then -%>
-                       <div class="cbi-section-error">
-                               <% for _, section in ipairs(self.children) do %>
-                                       <% if section.error and section.error[section.section] then -%>
-                                               <ul><li>
-                                                       <%:One or more invalid/required values on tab%>:&nbsp;<%=section.title or section.section or section.sectiontype%>
-                                               </li></ul>
-                                       <%- end %>
-                               <% end %>
-                       </div>
-               <%- end %>
-       <% else %>
-               <%- self:render_children() %>
-       <% end %>
-</div>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/mvalue.htm b/package/luci/modules/luci-base/luasrc/view/cbi/mvalue.htm
deleted file mode 100644 (file)
index db17450..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<%
-       local i, key
-       local v = self:valuelist(section) or {}
--%>
-
-<%+cbi/valueheader%>
-<% if self.widget == "select" then %>
-       <select class="cbi-input-select" multiple="multiple" data-update="click change"<%=
-               attr("id", cbid) ..
-               attr("name", cbid) ..
-               ifattr(self.size, "size")
-       %>>
-               <% for i, key in pairs(self.keylist) do -%>
-                       <option<%=
-                               attr("id", cbid.."-"..key) ..
-                               attr("value", key) ..
-                               attr("data-index", i) ..
-                               attr("data-depends", self:deplist2json(section, self.deplist[i])) ..
-                               ifattr(luci.util.contains(v, key), "selected", "selected")
-                       %>><%=pcdata(self.vallist[i])%></option>
-               <%- end %>
-       </select>
-<% elseif self.widget == "checkbox" then %>
-       <div>
-               <% for i, key in pairs(self.keylist) do %>
-                       <label<%=
-                               attr("data-index", i) ..
-                               attr("data-depends", self:deplist2json(section, self.deplist[i]))
-                       %>>
-                               <input class="cbi-input-checkbox" type="checkbox" data-update="click change"<%=
-                                       attr("id", cbid.."-"..key) ..
-                                       attr("name", cbid) ..
-                                       attr("value", key) ..
-                                       ifattr(luci.util.contains(v, key), "checked", "checked")
-                               %> />
-                               <label<%= attr("for", cbid.."-"..key)%>></label>
-                               <%=pcdata(self.vallist[i])%>
-                       </label>
-                       <% if self.size and (i % self.size) == 0 then write('<br />') end %>
-               <% end %>
-       </div>
-<% end %>
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/network_ifacelist.htm b/package/luci/modules/luci-base/luasrc/view/cbi/network_ifacelist.htm
deleted file mode 100644 (file)
index 55a7e31..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<%+cbi/valueheader%>
-
-<%-
-       local utl = require "luci.util"
-       local net = require "luci.model.network".init()
-       local cbeid = luci.cbi.FEXIST_PREFIX .. self.config .. "." .. section .. "." .. self.option
-
-       local iface
-       local ifaces = net:get_interfaces()
-       local value
-
-       if self.map:formvalue(cbeid) == "1" then
-               value = self:formvalue(section) or self.default or ""
-       else
-               value = self:cfgvalue(section) or self.default
-       end
-
-       local checked = { }
-
-       if value then
-               for value in utl.imatch(value) do
-                       for value in utl.imatch(value) do
-                               checked[value] = true
-                       end
-               end
-       else
-               local n = self.network and net:get_network(self.network)
-               if n then
-                       local a = n:is_alias()
-                       if a then
-                               checked['@' .. a] = true
-                       else
-                               local i
-                               for _, i in ipairs(n:get_interfaces() or { n:get_interface() }) do
-                                       checked[i:name()] = true
-                               end
-                       end
-               end
-       end
--%>
-
-<input type="hidden" name="<%=cbeid%>" value="1" />
-
-<div class="cbi-dropdown" display-items="5" placeholder="<%:-- please select -- %>"<%=
-       attr("name", cbid) ..
-       ifattr(self.widget == "checkbox", "multiple", "multiple") ..
-       ifattr(self.widget == "checkbox", "optional", "optional")
-%>>
-       <script type="item-template"><!--
-               <li data-value="{{value}}">
-                       <img title="<%:Custom Interface%>: &quot;{{value}}&quot;" src="<%=resource%>/icons/ethernet_disabled.png" />
-                       <span class="hide-open">{{value}}</span>
-                       <span class="hide-close"><%:Custom Interface%>: "{{value}}"</span>
-               </li>
-       --></script>
-       <ul>
-               <% for _, iface in ipairs(ifaces) do
-                       if (not self.noaliases  or iface:type() ~= "alias") and
-                          (not self.nobridges  or not iface:is_bridge()) and
-                          (not self.noinactive or iface:is_up()) and
-                          iface:name() ~= self.exclude
-                       then %>
-               <li<%=
-                       attr("data-value", iface:name()) ..
-                       ifattr(checked[iface:name()], "selected", "selected")
-               %>>
-                       <img<%=attr("title", iface:get_i18n())%> src="<%=resource%>/icons/<%=iface:type()%><%=iface:is_up() and "" or "_disabled"%>.png" />
-                       <span class="hide-open"><%=pcdata(iface:name())%></span>
-                       <span class="hide-close">
-                               <%=pcdata(iface:get_i18n())%>
-                               <% local ns = iface:get_networks(); if #ns > 0 then %>(
-                                       <%- local i, n; for i, n in ipairs(ns) do -%>
-                                               <%-= (i>1) and ', ' -%>
-                                               <a href="<%=n:adminlink()%>"><%=n:name()%></a>
-                                       <%- end -%>
-                               )<% end %>
-                       </span>
-               </li>
-               <% end end %>
-               <% if not self.nocreate then %>
-               <li data-value="">
-                       <img title="<%:Custom Interface%>" src="<%=resource%>/icons/ethernet_disabled.png" />
-                       <span><%:Custom Interface%>:</span>
-                       <input type="password" style="display:none" />
-                       <input class="create-item-input" type="text" />
-               </li>
-               <% end %>
-       </ul>
-</div>
-
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/network_netinfo.htm b/package/luci/modules/luci-base/luasrc/view/cbi/network_netinfo.htm
deleted file mode 100644 (file)
index 4fd8411..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<%+cbi/valueheader%>
-
-<%-
-       local value = self:formvalue(section)
-       if not value or value == "-" then
-               value = self:cfgvalue(section) or self.default
-       end
-
-       local nwm = require "luci.model.network".init()
-       local net = nwm:get_network(value)
--%>
-
-<% if net then %>
-<span class="ifacebadge"><%=net:name()%>:
-       <%
-               local empty = true
-               for _, iface in ipairs(net:get_interfaces() or { net:get_interface() }) do
-                       if not iface:is_bridge() then
-                               empty = false
-        %>
-               <img<%=attr("title", iface:get_i18n())%> style="width:16px; height:16px; vertical-align:middle" src="<%=resource%>/icons/<%=iface:type()%><%=iface:is_up() and "" or "_disabled"%>.png" />
-       <% end end %>
-       <% if empty then %><em><%:(no interfaces attached)%></em><% end %>
-</span>
-<% end %>
-
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/network_netlist.htm b/package/luci/modules/luci-base/luasrc/view/cbi/network_netlist.htm
deleted file mode 100644 (file)
index d3efcc0..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-<%+cbi/valueheader%>
-
-<%-
-       local utl = require "luci.util"
-       local nwm = require "luci.model.network".init()
-
-       local net, iface
-       local networks = nwm:get_networks()
-       local value = self:formvalue(section)
-
-       self.cast = nil
-
-       if not value or value == "-" then
-               value = self:cfgvalue(section) or self.default
-       end
-
-       local checked = { }
-       for value in utl.imatch(value) do
-               checked[value] = true
-       end
--%>
-
-<div class="cbi-dropdown" display-items="5" placeholder="<%:-- please select -- %>"<%=
-       attr("name", cbid) ..
-       ifattr(self.widget == "checkbox", "multiple", "multiple") ..
-       ifattr(self.widget == "checkbox", "optional", "optional")
-%>>
-       <script type="item-template"><!--
-               <li data-value="{{value}}">
-                       <span class="ifacebadge" style="background:repeating-linear-gradient(45deg,rgba(204,204,204,0.5),rgba(204,204,204,0.5) 5px,rgba(255,255,255,0.5) 5px,rgba(255,255,255,0.5) 10px)">
-                               {{value}}: <em>(<%:create%>)</em>
-                       </span>
-               </li>
-       --></script>
-       <ul>
-               <% if self.widget ~= "checkbox" then %>
-               <li data-value=""<%= ifattr(not value, "selected", "selected") %>>
-                       <em><%:unspecified%></em>
-               </li>
-               <% end %>
-
-               <% for _, net in ipairs(networks) do
-                      if (net:name() ~= "loopback") and
-                             (net:name() ~= self.exclude) and
-                             (not self.novirtual or not net:is_virtual())
-                          then %>
-               <li<%= attr("data-value", net:name()) .. ifattr(checked[net:name()], "selected", "selected") %>>
-                       <span class="ifacebadge"><%=net:name()%>:
-                               <%
-                                       local empty = true
-                                       for _, iface in ipairs(net:is_bridge() and net:get_interfaces() or { net:get_interface() }) do
-                                               if not iface:is_bridge() then
-                                                       empty = false
-                               -%>
-                                       <img<%=attr("title", iface:get_i18n())%> style="width:16px; height:16px; vertical-align:middle" src="<%=resource%>/icons/<%=iface:type()%><%=iface:is_up() and "" or "_disabled"%>.png" />
-                               <%- end end %>
-                               <% if empty then %>
-                                       <em class="hide-close"><%:(no interfaces attached)%></em>
-                                       <em class="hide-open">-</em>
-                               <% end %>
-                       </span>
-               </li>
-               <% end end %>
-
-               <% if not self.nocreate then %>
-               <li data-value="-"<%= ifattr(not value and self.widget ~= "checkbox", "selected", "selected") %>>
-                       <em>
-                               <%- if self.widget == "checkbox" then -%>
-                                       <%:create:%>
-                               <%- else -%>
-                                       <%:unspecified -or- create:%>
-                               <%- end -%>
-                       </em>
-                       <input style="display:none" type="password" />
-                       <input class="create-item-input" type="text" />
-               </li>
-               <% end %>
-       </ul>
-</div>
-
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/nsection.htm b/package/luci/modules/luci-base/luasrc/view/cbi/nsection.htm
deleted file mode 100644 (file)
index 14232e3..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<% if self:cfgvalue(self.section) then section = self.section %>
-       <div class="cbi-section">
-               <% if self.title and #self.title > 0 then -%>
-                       <legend><%=self.title%></legend>
-               <%- end %>
-               <% if self.description and #self.description > 0 then -%>
-                       <div class="cbi-section-descr"><%=self.description%></div>
-               <%- end %>
-               <% if self.addremove then -%>
-                       <div class="cbi-section-remove right">
-                               <input type="submit" class="cbi-button" name="cbi.rns.<%=self.config%>.<%=section%>" value="<%:Delete%>" />
-                       </div>
-               <%- end %>
-               <div class="cbi-section-node<% if self.tabs then %> cbi-section-node-tabbed<% end %>" id="cbi-<%=self.config%>-<%=section%>">
-                       <%+cbi/ucisection%>
-               </div>
-       </div>
-<% elseif self.addremove then %>
-       <% if self.template_addremove then include(self.template_addremove) else -%>
-       <div class="cbi-section" id="cbi-<%=self.config%>-<%=self.section%>">
-               <% if self.title and #self.title > 0 then -%>
-                       <legend><%=self.title%></legend>
-               <%- end %>
-               <div class="cbi-section-descr"><%=self.description%></div>
-               <input type="submit" class="cbi-button cbi-button-add" name="cbi.cns.<%=self.config%>.<%=self.section%>" value="<%:Add%>" />
-       </div>
-       <%- end %>
-<% end %>
-<!-- /nsection -->
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/nullsection.htm b/package/luci/modules/luci-base/luasrc/view/cbi/nullsection.htm
deleted file mode 100644 (file)
index 7230719..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<div class="cbi-section">
-       <% if self.title and #self.title > 0 then -%>
-               <legend><%=self.title%></legend>
-       <%- end %>
-       <% if self.description and #self.description > 0 then -%>
-               <div class="cbi-section-descr"><%=self.description%></div>
-       <%- end %>
-       <div class="cbi-section-node">
-               <div id="cbi-<%=self.config%>-<%=tostring(self):sub(8)%>">
-                       <% self:render_children(1, scope or {}) %>
-               </div>
-               <% if self.error and self.error[1] then -%>
-                       <div class="cbi-section-error">
-                               <ul><% for _, e in ipairs(self.error[1]) do -%>
-                                       <li>
-                                               <%- if e == "invalid" then -%>
-                                                       <%:One or more fields contain invalid values!%>
-                                               <%- elseif e == "missing" then -%>
-                                                       <%:One or more required fields have no value!%>
-                                               <%- else -%>
-                                                       <%=pcdata(e)%>
-                                               <%- end -%>
-                                       </li>
-                               <%- end %></ul>
-                       </div>
-               <%- end %>
-       </div>
-</div>
-<%-
-       if type(self.hidden) == "table" then
-               for k, v in pairs(self.hidden) do
--%>
-       <input type="hidden" id="<%=k%>" name="<%=k%>" value="<%=pcdata(v)%>" />
-<%-
-               end
-       end
-%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/simpleform.htm b/package/luci/modules/luci-base/luasrc/view/cbi/simpleform.htm
deleted file mode 100644 (file)
index 3e10724..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-<%
-       if not self.embedded then
-               %><form method="post" enctype="multipart/form-data" action="<%=REQUEST_URI%>">
-                       <input type="hidden" name="token" value="<%=token%>" />
-                       <input type="hidden" name="cbi.submit" value="1" /><%
-       end
-
-       %><div class="cbi-map" id="cbi-<%=self.config%>"><%
-
-       if self.title and #self.title > 0 then
-               %><h2 name="content"><%=self.title%></h2><%
-       end
-
-       if self.description and #self.description > 0 then
-               %><div class="cbi-map-descr"><%=self.description%></div><%
-       end
-
-       self:render_children()
-
-       %></div><%
-
-       if self.message then
-               %><div class="alert-message notice"><%=self.message%></div><%
-       end
-
-       if self.errmessage then
-               %><div class="alert-message warning"><%=self.errmessage%></div><%
-       end
-
-       if not self.embedded then
-               if type(self.hidden) == "table" then
-                       local k, v
-                       for k, v in pairs(self.hidden) do
-                               %><input type="hidden" id="<%=k%>" name="<%=k%>" value="<%=pcdata(v)%>" /><%
-                       end
-               end
-
-               local display_back   = (redirect)
-               local display_cancel = (self.cancel ~= false and self.on_cancel)
-               local display_skip   = (self.flow and self.flow.skip)
-               local display_submit = (self.submit ~= false)
-               local display_reset  = (self.reset ~= false)
-
-               if display_back or display_cancel or display_skip or display_submit or display_reset then
-                       %><div class="cbi-page-actions"><%
-
-                       if display_back then
-                               %><input class="cbi-button cbi-button-link" type="button" value="<%:Back to Overview%>" onclick="location.href='<%=pcdata(redirect)%>'" /> <%
-                       end
-
-                       if display_cancel then
-                               local label = pcdata(self.cancel or translate("Cancel"))
-                               %><input class="cbi-button cbi-button-link" type="button" value="<%=label%>" onclick="cbi_submit(this, 'cbi.cancel')" /> <%
-                       end
-
-                       if display_skip then
-                               %><input class="cbi-button cbi-button-neutral" type="button" value="<%:Skip%>" onclick="cbi_submit(this, 'cbi.skip')" /> <%
-                       end
-
-                       if display_submit then
-                               local label = pcdata(self.submit or translate("Submit"))
-                               %><input class="cbi-button cbi-button-save" type="submit" value="<%=label%>" /> <%
-                       end
-
-                       if display_reset then
-                               local label = pcdata(self.reset or translate("Reset"))
-                               %><input class="cbi-button cbi-button-reset" type="reset" value="<%=label%>" /> <%
-                       end
-
-                       %></div><%
-               end
-
-               %></form><%
-       end
-%>
-
-<script type="text/javascript">cbi_init();</script>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/tabcontainer.htm b/package/luci/modules/luci-base/luasrc/view/cbi/tabcontainer.htm
deleted file mode 100644 (file)
index 7fcb835..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<% for _, tab in ipairs(self.tab_names) do data = self.tabs[tab] %>
-       <div class="cbi-tabcontainer"<%=
-               attr("id", "container.%s.%s.%s" %{ self.config, section, tab }) ..
-               attr("data-tab", tab) ..
-               attr("data-tab-title", data.title) ..
-               attr("data-tab-active", tostring(tab == self.selected_tab))
-       %>>
-               <% if data.description then %>
-                       <div class="cbi-tab-descr"><%=data.description%></div>
-               <% end %>
-
-               <% self:render_tab(tab, section, scope or {}) %>
-       </div>
-<% end %>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/tblsection.htm b/package/luci/modules/luci-base/luasrc/view/cbi/tblsection.htm
deleted file mode 100644 (file)
index 408dfa7..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-<%-
-local rowcnt = 0
-
-function rowstyle()
-       rowcnt = rowcnt + 1
-       if rowcnt % 2 == 0 then
-               return " cbi-rowstyle-1"
-       else
-               return " cbi-rowstyle-2"
-       end
-end
-
-function width(o)
-       if o.width then
-               if type(o.width) == 'number' then
-                       return ' style="width:%dpx"' % o.width
-               end
-               return ' style="width:%s"' % o.width
-       end
-       return ''
-end
-
-local has_titles = false
-local has_descriptions = false
-
-local anonclass = (not self.anonymous or self.sectiontitle) and "named" or "anonymous"
-local titlename = ifattr(not self.anonymous or self.sectiontitle, "data-title", translate("Name"))
-
-local i, k
-for i, k in pairs(self.children) do
-       if not k.typename then
-               k.typename = k.template and k.template:gsub("^.+/", "") or ""
-       end
-
-       if not has_titles and k.title and #k.title > 0 then
-               has_titles = true
-       end
-
-       if not has_descriptions and k.description and #k.description > 0 then
-               has_descriptions = true
-       end
-end
-
-function render_titles()
-       if not has_titles then
-               return
-       end
-
-       %><div class="tr cbi-section-table-titles <%=anonclass%>"<%=titlename%>><%
-
-       local i, k
-       for i, k in ipairs(self.children) do
-               if not k.optional then
-                       %><div class="th cbi-section-table-cell"<%=
-                               width(k) .. attr('data-type', k.typename) %>><%
-
-                       if k.titleref then
-                               %><a title="<%=self.titledesc or translate('Go to relevant configuration page')%>" class="cbi-title-ref" href="<%=k.titleref%>"><%
-                       end
-
-                       write(k.title)
-
-                       if k.titleref then
-                               %></a><%
-                       end
-
-                       %></div><%
-               end
-       end
-
-       if self.sortable or self.extedit or self.addremove then
-               %><div class="th cbi-section-table-cell cbi-section-actions"></div><%
-       end
-
-       %></div><%
-
-       rowcnt = rowcnt + 1
-end
-
-function render_descriptions()
-       if not has_descriptions then
-               return
-       end
-
-       %><div class="tr cbi-section-table-descr <%=anonclass%>"><%
-
-       local i, k
-       for i, k in ipairs(self.children) do
-               if not k.optional then
-                       %><div class="th cbi-section-table-cell"<%=
-                               width(k) .. attr("data-type", k.typename) %>><%
-
-                       write(k.description)
-
-                       %></div><%
-               end
-       end
-
-       if self.sortable or self.extedit or self.addremove then
-               %><div class="th cbi-section-table-cell cbi-section-actions"></div><%
-       end
-
-       %></div><%
-
-       rowcnt = rowcnt + 1
-end
-
--%>
-
-<!-- tblsection -->
-<div class="cbi-section cbi-tblsection" id="cbi-<%=self.config%>-<%=self.sectiontype%>">
-       <% if self.title and #self.title > 0 then -%>
-               <h3><%=self.title%></h3>
-       <%- end %>
-       <%- if self.sortable then -%>
-               <input type="hidden" id="cbi.sts.<%=self.config%>.<%=self.sectiontype%>" name="cbi.sts.<%=self.config%>.<%=self.sectiontype%>" value="" />
-       <%- end -%>
-       <div class="cbi-section-descr"><%=self.description%></div>
-       <div class="table cbi-section-table">
-               <%-
-                       render_titles()
-                       render_descriptions()
-
-                       local isempty, section, i, k = true, nil, nil
-                   for i, k in ipairs(self:cfgsections()) do
-                               isempty = false
-                               section = k
-
-                               local sectionname = striptags((type(self.sectiontitle) == "function") and self:sectiontitle(section) or k)
-                               local sectiontitle = ifattr(sectionname and (not self.anonymous or self.sectiontitle), "data-title", sectionname)
-                               local colorclass = (self.extedit or self.rowcolors) and rowstyle() or ""
-                               local scope = {
-                                       valueheader = "cbi/cell_valueheader",
-                                       valuefooter = "cbi/cell_valuefooter"
-                               }
-               -%>
-               <div class="tr cbi-section-table-row<%=colorclass%>" id="cbi-<%=self.config%>-<%=section%>"<%=sectiontitle%>>
-                       <%-
-                               local node
-                               for k, node in ipairs(self.children) do
-                                       if not node.optional then
-                                               node:render(section, scope or {})
-                                       end
-                               end
-                       -%>
-
-                       <%- if self.sortable or self.extedit or self.addremove then -%>
-                               <div class="td cbi-section-table-cell nowrap cbi-section-actions">
-                                       <div>
-                                               <%- if self.sortable then -%>
-                                                       <input class="cbi-button cbi-button-up" type="button" value="<%:Up%>" onclick="return cbi_row_swap(this, true, 'cbi.sts.<%=self.config%>.<%=self.sectiontype%>')" title="<%:Move up%>" />
-                                                       <input class="cbi-button cbi-button-down" type="button" value="<%:Down%>" onclick="return cbi_row_swap(this, false, 'cbi.sts.<%=self.config%>.<%=self.sectiontype%>')" title="<%:Move down%>" />
-                                               <% end; if self.extedit then -%>
-                                                       <input class="cbi-button cbi-button-edit" type="button" value="<%:Edit%>"
-                                                       <%- if type(self.extedit) == "string" then
-                                                       %> onclick="location.href='<%=self.extedit:format(section)%>'"
-                                                       <%- elseif type(self.extedit) == "function" then
-                                                       %> onclick="location.href='<%=self:extedit(section)%>'"
-                                                       <%- end
-                                                       %> alt="<%:Edit%>" title="<%:Edit%>" />
-                                               <% end; if self.addremove then %>
-                                                       <input class="cbi-button cbi-button-remove" type="submit" value="<%:Delete%>"  onclick="this.form.cbi_state='del-section'; return true" name="cbi.rts.<%=self.config%>.<%=k%>" alt="<%:Delete%>" title="<%:Delete%>" />
-                                               <%- end -%>
-                                       </div>
-                               </div>
-                       <%- end -%>
-               </div>
-               <%- end -%>
-
-               <%- if isempty then -%>
-               <div class="tr cbi-section-table-row placeholder">
-                       <div class="td"><em><%:This section contains no values yet%></em></div>
-               </div>
-               <%- end -%>
-       </div>
-
-       <% if self.error then %>
-               <div class="cbi-section-error">
-                       <ul><% for _, c in pairs(self.error) do for _, e in ipairs(c) do -%>
-                               <li><%=pcdata(e):gsub("\n","<br />")%></li>
-                       <%- end end %></ul>
-               </div>
-       <% end %>
-
-       <%- if self.addremove then -%>
-               <% if self.template_addremove then include(self.template_addremove) else -%>
-               <div class="cbi-section-create cbi-tblsection-create">
-                       <% if self.anonymous then %>
-                               <input class="cbi-button cbi-button-add" type="submit" value="<%:Add%>" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" title="<%:Add%>" />
-                       <% else %>
-                               <% if self.invalid_cts then -%>
-                                       <div class="cbi-section-error"><%:Invalid%></div>
-                               <%- end %>
-                               <div>
-                                       <input type="text" class="cbi-section-create-name" id="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" data-type="uciname" data-optional="true" />
-                               </div>
-                               <input class="cbi-button cbi-button-add" type="submit" onclick="this.form.cbi_state='add-section'; return true" value="<%:Add%>" title="<%:Add%>" />
-                       <% end %>
-               </div>
-               <%- end %>
-       <%- end -%>
-</div>
-<!-- /tblsection -->
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/tsection.htm b/package/luci/modules/luci-base/luasrc/view/cbi/tsection.htm
deleted file mode 100644 (file)
index 547a793..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<div class="cbi-section" id="cbi-<%=self.config%>-<%=self.sectiontype%>">
-       <% if self.title and #self.title > 0 then -%>
-               <legend><%=self.title%></legend>
-       <%- end %>
-       <% if self.description and #self.description > 0 then -%>
-               <div class="cbi-section-descr"><%=self.description%></div>
-       <%- end %>
-       <% local isempty = true for i, k in ipairs(self:cfgsections()) do -%>
-               <% if self.addremove then -%>
-                       <div class="cbi-section-remove right">
-                               <input type="submit" name="cbi.rts.<%=self.config%>.<%=k%>" onclick="this.form.cbi_state='del-section'; return true" value="<%:Delete%>" class="cbi-button" />
-                       </div>
-               <%- end %>
-
-               <%- section = k; isempty = false -%>
-
-               <% if not self.anonymous then -%>
-                       <h3><%=section:upper()%></h3>
-               <%- end %>
-
-               <div class="cbi-section-node<% if self.tabs then %> cbi-section-node-tabbed<% end %>" id="cbi-<%=self.config%>-<%=section%>">
-                       <%+cbi/ucisection%>
-               </div>
-       <%- end %>
-
-       <% if isempty then -%>
-               <em><%:This section contains no values yet%><br /><br /></em>
-       <%- end %>
-
-       <% if self.addremove then -%>
-               <% if self.template_addremove then include(self.template_addremove) else -%>
-               <div class="cbi-section-create">
-                       <% if self.anonymous then -%>
-                               <input type="submit" class="cbi-button cbi-button-add" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" value="<%:Add%>" />
-                       <%- else -%>
-                               <% if self.invalid_cts then -%>
-                                       <div class="cbi-section-error"><%:Invalid%></div>
-                               <%- end %>
-                               <div>
-                                       <input type="text" class="cbi-section-create-name" id="cbi.cts.<%=self.config%>.<%=self.sectiontype%>." name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>." data-type="uciname" data-optional="true" />
-                               </div>
-                               <input class="cbi-button cbi-button-add" type="submit" onclick="this.form.cbi_state='add-section'; return true" value="<%:Add%>" title="<%:Add%>" />
-                       <%- end %>
-               </div>
-               <%- end %>
-       <%- end %>
-</div>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/tvalue.htm b/package/luci/modules/luci-base/luasrc/view/cbi/tvalue.htm
deleted file mode 100644 (file)
index d1e9e66..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<%+cbi/valueheader%>
-       <textarea class="cbi-input-textarea" <% if not self.size then %> style="width: 100%"<% else %> cols="<%=self.size%>"<% end %> data-update="change"<%= attr("name", cbid) .. attr("id", cbid) .. ifattr(self.rows, "rows") .. ifattr(self.wrap, "wrap")  .. ifattr(self.readonly, "readonly") %>>
-       <%-=pcdata(self:cfgvalue(section))-%>
-       </textarea>
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/ucisection.htm b/package/luci/modules/luci-base/luasrc/view/cbi/ucisection.htm
deleted file mode 100644 (file)
index 8fa11d6..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<%-
-       if type(self.hidden) == "table" then
-               for k, v in pairs(self.hidden) do
--%>
-       <input type="hidden" id="<%=k%>" name="<%=k%>" value="<%=pcdata(v)%>" />
-<%-
-               end
-       end
-%>
-
-<% if self.tabs then %>
-       <%+cbi/tabcontainer%>
-<% else %>
-       <% self:render_children(section, scope or {}) %>
-<% end %>
-
-<% if self.error and self.error[section] then -%>
-       <div class="cbi-section-error" data-index="<%=#self.children + 1%>">
-               <ul><% for _, e in ipairs(self.error[section]) do -%>
-                       <li>
-                               <%- if e == "invalid" then -%>
-                                       <%:One or more fields contain invalid values!%>
-                               <%- elseif e == "missing" then -%>
-                                       <%:One or more required fields have no value!%>
-                               <%- else -%>
-                                       <%=pcdata(e)%>
-                               <%- end -%>
-                       </li>
-               <%- end %></ul>
-       </div>
-<%- end %>
-
-<% if self.optionals[section] and #self.optionals[section] > 0 or self.dynamic then %>
-       <div class="cbi-optionals" data-index="<%=#self.children + 1%>">
-               <%-
-               if self.dynamic then
-                       local keys, vals, name, opt = { }, { }
-                       for name, opt in pairs(self.optionals[section]) do
-                               keys[#keys+1] = name
-                               vals[#vals+1] = opt.title
-                       end
-               -%>
-                       <input type="text" id="cbi.opt.<%=self.config%>.<%=section%>" name="cbi.opt.<%=self.config%>.<%=section%>" data-type="uciname" data-optional="true"<%=
-                               ifattr(#keys > 0, "data-choices", luci.util.json_encode({keys, vals}))
-                       %> />
-               <%- else -%>
-                       <select id="cbi.opt.<%=self.config%>.<%=section%>" name="cbi.opt.<%=self.config%>.<%=section%>" data-optionals="true">
-                               <option><%: -- Additional Field -- %></option>
-                               <% for key, val in pairs(self.optionals[section]) do -%>
-                                       <option id="cbi-<%=self.config.."-"..section.."-"..val.option%>" value="<%=val.option%>" data-index="<%=val.index%>" data-depends="<%=pcdata(val:deplist2json(section))%>"><%=striptags(val.title)%></option>
-                               <%- end %>
-                       </select>
-               <%- end -%>
-               <input type="submit" class="cbi-button cbi-button-fieldadd" value="<%:Add%>" />
-       </div>
-<% end %>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/upload.htm b/package/luci/modules/luci-base/luasrc/view/cbi/upload.htm
deleted file mode 100644 (file)
index 3c3d82b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<%
-       local t = require("luci.tools.webadmin")
-       local v = self:cfgvalue(section)
-       local s = v and nixio.fs.stat(v)
--%>
-<%+cbi/valueheader%>
-       <% if s then %>
-               <%:Uploaded File%> (<%=t.byte_format(s.size)%>)
-                <% if self.unsafeupload then %>
-                   <input type="hidden"<%= attr("value", v) .. attr("name", cbid) .. attr("id", cbid) %> />
-                   <input class="cbi-button cbi-button-image" type="image" value="<%:Replace entry%>" name="cbi.rlf.<%=section .. "." .. self.option%>" alt="<%:Replace entry%>" title="<%:Replace entry%>" src="<%=resource%>/cbi/reload.gif" />
-                <% end %>
-       <% end %>
-
-        <% if not self.unsafeupload then %>
-               <input type="hidden"<%= attr("value", v) .. attr("name", "cbi.rlf." .. section .. "." .. self.option) .. attr("id", "cbi.rlf." .. section .. "." .. self.option) %> />
-       <% end %>
-
-       <% if (not s) or (s and not self.unsafeupload) then %>
-               <input class="cbi-input-file" type="file"<%= attr("name", cbid) .. attr("id", cbid) %> />
-       <% end %>
-       <input type="text" class="cbi-input-text" data-update="change"<%=
-               attr("name", cbid .. ".textbox") .. attr("id", cbid .. ".textbox") .. attr("value", luci.cbi.AbstractValue.cfgvalue(self, section) or self.default) .. ifattr(self.size, "size") .. ifattr(self.placeholder, "placeholder") .. ifattr(self.readonly, "readonly") .. ifattr(self.maxlength, "maxlength") %> />
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/value.htm b/package/luci/modules/luci-base/luasrc/view/cbi/value.htm
deleted file mode 100644 (file)
index 27f3cb2..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<%+cbi/valueheader%>
-       <%- if self.password then -%>
-               <input type="password" style="position:absolute; left:-1000px" aria-hidden="true" tabindex="-1"<%=
-                       attr("name", "password." .. cbid)
-               %> />
-       <%- end -%>
-       <input data-update="change"<%=
-               attr("id", cbid) ..
-               attr("name", cbid) ..
-               attr("type", self.password and "password" or "text") ..
-               attr("class", self.password and "cbi-input-password" or "cbi-input-text") ..
-               attr("value", self:cfgvalue(section) or self.default) ..
-               ifattr(self.password, "autocomplete", "new-password") ..
-               ifattr(self.size, "size") ..
-               ifattr(self.placeholder, "placeholder") ..
-               ifattr(self.readonly, "readonly") ..
-               ifattr(self.maxlength, "maxlength") ..
-               ifattr(self.datatype, "data-type", self.datatype) ..
-               ifattr(self.datatype, "data-optional", self.optional or self.rmempty) ..
-               ifattr(self.combobox_manual, "data-manual", self.combobox_manual) ..
-               ifattr(#self.keylist > 0, "data-choices", { self.keylist, self.vallist })
-       %> />
-       <%- if self.password then -%>
-               <button class="cbi-button cbi-button-neutral" title="<%:Reveal/hide password%>" aria-label="<%:Reveal/hide password%>" onclick="var e = this.previousElementSibling; e.type = (e.type === 'password') ? 'text' : 'password'; event.preventDefault()">∗</button>
-       <% end %>
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/valuefooter.htm b/package/luci/modules/luci-base/luasrc/view/cbi/valuefooter.htm
deleted file mode 100644 (file)
index 805312e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<% include( valuefooter or "cbi/full_valuefooter" ) %>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/valueheader.htm b/package/luci/modules/luci-base/luasrc/view/cbi/valueheader.htm
deleted file mode 100644 (file)
index 761a54a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<% include( valueheader or "cbi/full_valueheader" ) %>
diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm b/package/luci/modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm
deleted file mode 100644 (file)
index ebb02e4..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-<%+cbi/valueheader%>
-
-<script type="text/javascript">//<![CDATA[
-       var freqlist = <%= luci.http.write_json(self.iwinfo.freqlist) %>;
-       var hwmodes  = <%= luci.http.write_json(self.iwinfo.hwmodelist or {}) %>;
-       var htmodes  = <%= luci.http.write_json(self.iwinfo.htmodelist) %>;
-
-       var channels = {
-               '11g': [
-                       'auto', 'auto', true
-               ],
-               '11a': [
-                       'auto', 'auto', true
-               ]
-       };
-
-       for (var i = 0; i < freqlist.length; i++)
-               channels[(freqlist[i].mhz > 2484) ? '11a' : '11g'].push(
-                       freqlist[i].channel,
-                       '%d (%d MHz)'.format(freqlist[i].channel, freqlist[i].mhz),
-                       !freqlist[i].restricted
-               );
-
-       var modes = [
-               '', 'Legacy', true,
-               'n', 'N', hwmodes.n,
-               'ac', 'AC', hwmodes.ac
-       ];
-
-       var htmodes = {
-               '':   [
-                       '', '-', true
-               ],
-               'n':  [
-                       'HT20', '20 MHz', htmodes.HT20,
-                       'HT40', '40 MHz', htmodes.HT40
-               ],
-               'ac': [
-                       'VHT20', '20 MHz', htmodes.VHT20,
-                       'VHT40', '40 MHz', htmodes.VHT40,
-                       'VHT80', '80 MHz', htmodes.VHT80,
-                       'VHT160', '160 MHz', htmodes.VHT160
-               ]
-       };
-
-       var bands = {
-               '':   [
-                       '11g', '2.4 GHz', (channels['11g'].length > 3),
-                       '11a', '5 GHz', (channels['11a'].length > 3)
-               ],
-               'n':  [
-                       '11g', '2.4 GHz', (channels['11g'].length > 3),
-                       '11a', '5 GHz', (channels['11a'].length > 3)
-               ],
-               'ac': [
-                       '11a', '5 GHz', true
-               ]
-       };
-
-       function cbi_set_values(sel, vals)
-       {
-               if (sel.vals)
-                       sel.vals.selected = sel.selectedIndex;
-
-               while (sel.options[0])
-                       sel.remove(0);
-
-               for (var i = 0; vals && i < vals.length; i += 3)
-               {
-                       if (!vals[i+2])
-                               continue;
-
-                       var opt = document.createElement('option');
-                           opt.value = vals[i+0];
-                           opt.text  = vals[i+1];
-
-                       sel.add(opt);
-               }
-
-               if (!isNaN(vals.selected))
-                       sel.selectedIndex = vals.selected;
-
-               sel.parentNode.style.display = (sel.options.length <= 1) ? 'none' : '';
-               sel.vals = vals;
-       }
-
-       function cbi_toggle_wifi_mode(id)
-       {
-               cbi_toggle_wifi_htmode(id);
-               cbi_toggle_wifi_band(id);
-       }
-
-       function cbi_toggle_wifi_htmode(id)
-       {
-               var mode = document.getElementById(id + '.mode');
-               var bwdt = document.getElementById(id + '.htmode');
-
-               cbi_set_values(bwdt, htmodes[mode.value]);
-       }
-
-       function cbi_toggle_wifi_band(id)
-       {
-               var mode = document.getElementById(id + '.mode');
-               var band = document.getElementById(id + '.band');
-
-               cbi_set_values(band, bands[mode.value]);
-               cbi_toggle_wifi_channel(id);
-       }
-
-       function cbi_toggle_wifi_channel(id)
-       {
-               var band = document.getElementById(id + '.band');
-               var chan = document.getElementById(id + '.channel');
-
-               cbi_set_values(chan, channels[band.value]);
-       }
-
-       function cbi_init_wifi(id)
-       {
-               var mode = document.getElementById(id + '.mode');
-               var band = document.getElementById(id + '.band');
-               var chan = document.getElementById(id + '.channel');
-               var bwdt = document.getElementById(id + '.htmode');
-
-               cbi_set_values(mode, modes);
-
-               if (/VHT20|VHT40|VHT80|VHT160/.test(<%= luci.http.write_json(self.map:get(section, "htmode")) %>))
-                       mode.value = 'ac';
-               else if (/HT20|HT40/.test(<%= luci.http.write_json(self.map:get(section, "htmode")) %>))
-                       mode.value = 'n';
-               else
-                       mode.value = '';
-
-               cbi_toggle_wifi_mode(id);
-
-               if (/a/.test(<%= luci.http.write_json(self.map:get(section, "hwmode")) %>))
-                       band.value = '11a';
-               else
-                       band.value = '11g';
-
-               cbi_toggle_wifi_band(id);
-
-               bwdt.value = <%= luci.http.write_json(self.map:get(section, "htmode")) %>;
-               chan.value = <%= luci.http.write_json(self.map:get(section, "channel")) %>;
-       }
-//]]></script>
-
-<label style="float:left; margin-right:3px">
-       <%:Mode%><br />
-       <select style="width:auto" id="<%= cbid %>.mode" name="<%= cbid %>.mode" onchange="cbi_toggle_wifi_mode('<%= cbid %>')"></select>
-</label>
-<label style="float:left; margin-right:3px">
-       <%:Band%><br />
-       <select style="width:auto" id="<%= cbid %>.band" name="<%= cbid %>.band" onchange="cbi_toggle_wifi_band('<%= cbid %>')"></select>
-</label>
-<label style="float:left; margin-right:3px">
-       <%:Channel%><br />
-       <select style="width:auto" id="<%= cbid %>.channel" name="<%= cbid %>.channel"></select>
-</label>
-<label style="float:left; margin-right:3px">
-       <%:Width%><br />
-       <select style="width:auto" id="<%= cbid %>.htmode" name="<%= cbid %>.htmode"></select>
-</label>
-<br style="clear:left" />
-
-<script type="text/javascript">cbi_init_wifi('<%= cbid %>');</script>
-
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-base/luasrc/view/csrftoken.htm b/package/luci/modules/luci-base/luasrc/view/csrftoken.htm
deleted file mode 100644 (file)
index 57ac03f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<%#
- Copyright 2015 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<h2 name="content"><%:Form token mismatch%></h2>
-<br />
-
-<p class="alert-message"><%:The submitted security token is invalid or already expired!%></p>
-
-<p><%:
-       In order to prevent unauthorized access to the system, your request has
-       been blocked. Click "Continue »" below to return to the previous page.
-%></p>
-
-<hr />
-
-<p class="right">
-       <strong><a href="#" onclick="window.history.back();">Continue »</a></strong>
-</p>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-base/luasrc/view/empty_node_placeholder.htm b/package/luci/modules/luci-base/luasrc/view/empty_node_placeholder.htm
deleted file mode 100644 (file)
index b7e276b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<%#
- Copyright 2010 Jo-Philipp Wich <jow@openwrt.org>
- Copyright 2018 Daniel F. Dickinson <cshored@thecshore.com>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<p>Component not present.</p>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-base/luasrc/view/error404.htm b/package/luci/modules/luci-base/luasrc/view/error404.htm
deleted file mode 100644 (file)
index a762f60..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-<h2 name="content">404 <%:Not Found%></h2>
-<p><%:Sorry, the object you requested was not found.%></p>
-<tt><%:Unable to dispatch%>: <%=url(unpack(luci.dispatcher.context.request))%></tt>
-<%+footer%>
diff --git a/package/luci/modules/luci-base/luasrc/view/error500.htm b/package/luci/modules/luci-base/luasrc/view/error500.htm
deleted file mode 100644 (file)
index 34a52cd..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-<h2 name="content">500 <%:Internal Server Error%></h2>
-<p><%:Sorry, the server encountered an unexpected error.%></p>
-<pre class="error500"><%=message%></pre>
-<%+footer%>
diff --git a/package/luci/modules/luci-base/luasrc/view/footer.htm b/package/luci/modules/luci-base/luasrc/view/footer.htm
deleted file mode 100644 (file)
index 1667d3a..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%
-       local is_rollback_pending, rollback_time_remaining, rollback_session, rollback_token = luci.model.uci:rollback_pending()
-
-       if is_rollback_pending or trigger_apply or trigger_revert then
-               include("cbi/apply_widget")
-               cbi_apply_widget(redirect, rollback_token)
-%>
-       <div class="alert-message" id="cbi_apply_status" style="display:none"></div>
-       <script type="text/javascript">
-               document.addEventListener("DOMContentLoaded", function() {
-                       <% if trigger_apply then -%>
-                               uci_apply(true);
-                       <%- elseif trigger_revert then -%>
-                               uci_revert();
-                       <%- else -%>
-                               uci_confirm(true, Date.now() + <%=rollback_time_remaining%> * 1000);
-                       <%- end %>
-               });
-       </script>
-<%
-       end
-
-       include("themes/" .. theme .. "/footer")
-%>
diff --git a/package/luci/modules/luci-base/luasrc/view/header.htm b/package/luci/modules/luci-base/luasrc/view/header.htm
deleted file mode 100644 (file)
index d68e39f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%
-       if not luci.dispatcher.context.template_header_sent then
-               include("themes/" .. theme .. "/header")
-               luci.dispatcher.context.template_header_sent = true
-       end
-%>
-
-<script type="text/javascript" src="<%=resource%>/luci.js"></script>
-<script type="text/javascript">
-       L = new LuCI(<%= luci.http.write_json({
-               token       = token,
-               resource    = resource,
-               scriptname  = luci.http.getenv("SCRIPT_NAME"),
-               pathinfo    = luci.http.getenv("PATH_INFO"),
-               requestpath = luci.dispatcher.context.requestpath,
-               pollinterval    = luci.config.main.pollinterval or 5
-       }) %>);
-</script>
diff --git a/package/luci/modules/luci-base/luasrc/view/indexer.htm b/package/luci/modules/luci-base/luasrc/view/indexer.htm
deleted file mode 100644 (file)
index 28fc3de..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<% include("themes/" .. theme .. "/indexer") %>
\ No newline at end of file
diff --git a/package/luci/modules/luci-base/luasrc/view/lease_status.htm b/package/luci/modules/luci-base/luasrc/view/lease_status.htm
deleted file mode 100644 (file)
index bf2a896..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-<script type="text/javascript">//<![CDATA[
-       XHR.poll(-1, '<%=url('admin/dhcplease_status')%>', null,
-               function(x, st)
-               {
-                       var tb = document.getElementById('lease_status_table');
-                       if (st && st[0] && tb)
-                       {
-                               var rows = [];
-
-                               for (var i = 0; i < st[0].length; i++)
-                               {
-                                       var timestr;
-
-                                       if (st[0][i].expires === false)
-                                               timestr = '<em><%:unlimited%></em>';
-                                       else if (st[0][i].expires <= 0)
-                                               timestr = '<em><%:expired%></em>';
-                                       else
-                                               timestr = String.format('%t', st[0][i].expires);
-
-                                       rows.push([
-                                               st[0][i].hostname || '?',
-                                               st[0][i].ipaddr,
-                                               st[0][i].macaddr,
-                                               timestr
-                                       ]);
-                               }
-
-                               cbi_update_table(tb, rows, '<em><%:There are no active leases.%></em>');
-                       }
-
-                       var tb6 = document.getElementById('lease6_status_table');
-                       if (st && st[1] && tb6)
-                       {
-                               tb6.parentNode.style.display = 'block';
-
-                               var rows = [];
-
-                               for (var i = 0; i < st[1].length; i++)
-                               {
-                                       var timestr;
-
-                                       if (st[1][i].expires === false)
-                                               timestr = '<em><%:unlimited%></em>';
-                                       else if (st[1][i].expires <= 0)
-                                               timestr = '<em><%:expired%></em>';
-                                       else
-                                               timestr = String.format('%t', st[1][i].expires);
-
-                                       var name = st[1][i].hostname,
-                                           hint = st[1][i].host_hint;
-
-                                       rows.push([
-                                               hint ? '%h (%h)'.format(name || '?', hint) : (name || '?'),
-                                               st[1][i].ip6addr,
-                                               st[1][i].duid,
-                                               timestr
-                                       ]);
-                               }
-
-                               cbi_update_table(tb6, rows, '<em><%:There are no active leases.%></em>');
-                       }
-               }
-       );
-//]]></script>
-
-<div class="cbi-section">
-       <h3><%:Active DHCP Leases%></h3>
-       <div class="table" id="lease_status_table">
-               <div class="tr table-titles">
-                       <div class="th"><%:Hostname%></div>
-                       <div class="th"><%:IPv4-Address%></div>
-                       <div class="th"><%:MAC-Address%></div>
-                       <div class="th"><%:Leasetime remaining%></div>
-               </div>
-               <div class="tr placeholder">
-                       <div class="td"><em><%:Collecting data...%></em></div>
-               </div>
-       </div>
-</div>
-
-<div class="cbi-section" style="display:none">
-       <h3><%:Active DHCPv6 Leases%></h3>
-       <div class="table" id="lease6_status_table">
-               <div class="tr table-titles">
-                       <div class="th"><%:Host%></div>
-                       <div class="th"><%:IPv6-Address%></div>
-                       <div class="th"><%:DUID%></div>
-                       <div class="th"><%:Leasetime remaining%></div>
-               </div>
-               <div class="tr placeholder">
-                       <div class="td"><em><%:Collecting data...%></em></div>
-               </div>
-       </div>
-</div>
diff --git a/package/luci/modules/luci-base/luasrc/view/sysauth.htm b/package/luci/modules/luci-base/luasrc/view/sysauth.htm
deleted file mode 100644 (file)
index 9b0e2de..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2012 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<form method="post" action="<%=pcdata(FULL_REQUEST_URI)%>">
-       <%- if fuser then %>
-               <div class="alert-message warning">
-                       <p><%:Invalid username and/or password! Please try again.%></p>
-               </div>
-       <% end -%>
-
-       <div class="cbi-map">
-               <h2 name="content"><%:Authorization Required%></h2>
-               <div class="cbi-map-descr">
-                       <%:Please enter your username and password.%>
-               </div>
-               <div class="cbi-section"><div class="cbi-section-node">
-                       <div class="cbi-value">
-                               <label class="cbi-value-title"><%:Username%></label>
-                               <div class="cbi-value-field">
-                                       <input class="cbi-input-text" type="text" name="luci_username" value="<%=duser%>" />
-                               </div>
-                       </div>
-                       <div class="cbi-value cbi-value-last">
-                               <label class="cbi-value-title"><%:Password%></label>
-                               <div class="cbi-value-field">
-                                       <input class="cbi-input-text" type="password" name="luci_password" />
-                               </div>
-                       </div>
-               </div></div>
-       </div>
-
-       <div class="cbi-page-actions">
-               <input type="submit" value="<%:Login%>" class="cbi-button cbi-button-apply" />
-               <input type="reset" value="<%:Reset%>" class="cbi-button cbi-button-reset" />
-       </div>
-</form>
-<script type="text/javascript">//<![CDATA[
-       var input = document.getElementsByName('luci_password')[0];
-       if (input)
-               input.focus();
-//]]></script>
-
-<%
-local uci  = require "luci.model.uci".cursor()
-local fs  = require "nixio.fs"
-local https_key = uci:get("uhttpd", "main", "key")
-local https_port = uci:get("uhttpd", "main", "listen_https")
-if type(https_port) == "table" then
-       https_port = https_port[1]
-end
-
-if https_port and fs.access(https_key) then
-       https_port = https_port:match("(%d+)$")
-%>
-
-<script type="text/javascript">//<![CDATA[
-       if (document.location.protocol != 'https:') {
-               var url = 'https://' + window.location.hostname + ':' + '<%=https_port%>' + window.location.pathname;
-               var img=new Image;
-               img.onload=function(){window.location = url};
-               img.src='https://' + window.location.hostname + ':' + '<%=https_port%>' + '<%=resource%>/cbi/up.gif?' + Math.random();;
-               setTimeout(function(){
-                       img.src=''
-               }, 5000);
-       }
-//]]></script>
-
-<% end %>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-base/luasrc/view/wifi_assoclist.htm b/package/luci/modules/luci-base/luasrc/view/wifi_assoclist.htm
deleted file mode 100644 (file)
index f6f66fb..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-<%
-       local supports_deauth = {}
-
-       local _, v
-       for _, v in ipairs(luci.util.ubus()) do
-               local iface = v:match("^hostapd%.(.+)$")
-               if iface then
-                       local funcs = luci.util.ubus(v)
-                       if type(funcs) == "table" and funcs.del_client then
-                               supports_deauth[iface] = true
-                       end
-               end
-       end
-%>
-
-<script type="text/javascript">//<![CDATA[
-       var supports_deauth = <%= luci.http.write_json(supports_deauth) %>;
-
-       function wifirate(bss, rx) {
-               var p = rx ? 'rx_' : 'tx_',
-                   s = '%.1f <%:Mbit/s%>, %d<%:MHz%>'
-                                       .format(bss[p+'rate'] / 1000, bss[p+'mhz']),
-                   ht = bss[p+'ht'], vht = bss[p+'vht'],
-                       mhz = bss[p+'mhz'], nss = bss[p+'nss'],
-                       mcs = bss[p+'mcs'], sgi = bss[p+'short_gi'];
-
-               if (ht || vht) {
-                       if (vht) s += ', VHT-MCS %d'.format(mcs);
-                       if (nss) s += ', VHT-NSS %d'.format(nss);
-                       if (ht)  s += ', MCS %s'.format(mcs);
-                       if (sgi) s += ', <%:Short GI%>';
-               }
-
-               return s;
-       }
-
-       function handleDeauth(ev) {
-               (new XHR()).post('<%=url('admin/wireless_deauth')%>', {
-                       token: '<%=token%>',
-                       iface: ev.target.getAttribute('data-iface'),
-                       bssid: ev.target.getAttribute('data-bssid')
-               }, function() {
-                       ev.target.disabled = true;
-               });
-       }
-
-       XHR.poll(-1, '<%=url('admin/wireless_assoclist')%>', null,
-               function(x, st)
-               {
-                       var tb = document.getElementById('wifi_assoclist_table');
-                       if (st && tb)
-                       {
-                               var rows = [];
-
-                               st.forEach(function(bss) {
-                                       var icon;
-                                       var q = (-1 * (bss.noise - bss.signal)) / 5;
-                                       if (q < 1)
-                                               icon = "<%=resource%>/icons/signal-0.png";
-                                       else if (q < 2)
-                                               icon = "<%=resource%>/icons/signal-0-25.png";
-                                       else if (q < 3)
-                                               icon = "<%=resource%>/icons/signal-25-50.png";
-                                       else if (q < 4)
-                                               icon = "<%=resource%>/icons/signal-50-75.png";
-                                       else
-                                               icon = "<%=resource%>/icons/signal-75-100.png";
-
-                                       rows.push([
-                                               '<span class="ifacebadge" title="%q"><img src="<%=resource%>/icons/wifi.png" /> <a href="%s">%h</a><small>&#160;(%h)</small></span>'.format(
-                                                       bss.radio,
-                                                       bss.link,
-                                                       bss.name,
-                                                       bss.ifname),
-                                               bss.bssid,
-                                               bss.host_hint ? '%h (%h)'.format(bss.host_name || '?', bss.host_hint) : (bss.host_name || '?'),
-                                               '<span class="ifacebadge" title="<%:Signal%>: %d <%:dBm%> / <%:Noise%>: %d <%:dBm%> / <%:SNR%>: %d"><img src="%s" /> %d / %d <%:dBm%></span>'.format(
-                                                       bss.signal,
-                                                       bss.noise,
-                                                       bss.signal - bss.noise,
-                                                       icon,
-                                                       bss.signal,
-                                                       bss.noise),
-                                               E('span', {}, [
-                                                       E('span', wifirate(bss, true)),
-                                                       E('br'),
-                                                       E('span', wifirate(bss, false))
-                                               ]),
-                                               supports_deauth[bss.ifname] ? E('input', {
-                                                       type: 'button',
-                                                       class: 'cbi-button cbi-button-remove',
-                                                       value: '<%:Disconnect%>',
-                                                       'data-bssid': bss.bssid,
-                                                       'data-iface': bss.ifname,
-                                                       click: handleDeauth
-                                               }) : '-'
-                                       ]);
-                               });
-
-                               cbi_update_table(tb, rows, '<em><%:No information available%></em>');
-                       }
-               }
-       );
-//]]></script>
-
-<div class="table" id="wifi_assoclist_table">
-       <div class="tr table-titles">
-               <div class="th nowrap"><%:Network%></div>
-               <div class="th hide-xs"><%:MAC-Address%></div>
-               <div class="th nowrap"><%:Host%></div>
-               <div class="th nowrap"><%:Signal%> / <%:Noise%></div>
-               <div class="th nowrap"><%:RX Rate%> / <%:TX Rate%></div>
-               <% if next(supports_deauth) then %>
-                       <div class="th right"><%:Disconnect%></div>
-               <% end %>
-       </div>
-       <div class="tr placeholder">
-               <div class="td"><em><%:Collecting data...%></em></div>
-       </div>
-</div>
diff --git a/package/luci/modules/luci-base/po/ca/base.po b/package/luci/modules/luci-base/po/ca/base.po
deleted file mode 100644 (file)
index d486ddf..0000000
+++ /dev/null
@@ -1,6532 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2014-06-06 11:17+0200\n"
-"Last-Translator: Alex <alexhenrie24@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: ca\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(finestra de %d minuts, interval de %d segons)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s disponibles)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(buit)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(sense interfícies adjuntes)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Camp addicional --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Escolliu, si us plau --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- personalitzat --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Càrrega d'1 minut:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Càrrega de 15 minuts:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Càrrega de 5 minuts:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "Port de consulta <abbr title=\"Domain Name System\">DNS</abbr> "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "Port del servidor <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"Es consultaran els servidors <abbr title=\"Domain Name System\">DNS</abbr> "
-"segons l'ordre del fitxer de resolució"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "Adreça <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "Passarel·la <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr ""
-"Màscara de xarxa <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"Adreça <abbr title=\"Internet Protocol Version 6\">IPv6</abbr> o Xarxa (CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "Passarel·la <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "Configuració dels <abbr title=\"Light Emitting Diode\">LED</abbr>s"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "Nom <abbr title=\"Light Emitting Diode\">LED</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "Adreça <abbr title=\"Media Access Control\">MAC</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"Arrendaments de <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> <abbr title=\"màxims\">max.</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"Mida <abbr title=\"màxima\">màx.</abbr> de paquet <abbr title=\"Extension "
-"Mechanisms for Domain Name System\">EDNS0</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "Consultes concurrents <abbr title=\"màximes\">max.</abbr>"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-"Avís: cal reiniciar manualment el servei cron si el fitxer crontab estava "
-"buit abans d'editar-lo."
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "Llindar de reintent ARP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "Ponts ATM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "Identificador de canal virtual (VCI) ATM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "Identificador de camí virtual (VPI) ATM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"Els ponts ATM mostren ethernet encapsulat en connexions AAL5 com interfícies "
-"de xarxa virtual de Linux que es poden utilitzar conjuntament amb DHCP o PPP "
-"per trucar a la xarxa del proveïdor."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "Número de dispositiu ATM"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Concentrador d'accés"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Punt d'accés"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Accions"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "Rutes <abbr title=\"Internet Protocol Version 4\">IPv4</abbr> actives"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "Rutes <abbr title=\"Internet Protocol Version 6\">IPv6</abbr> actives"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Connexions actives"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Arrendaments DHCP actius"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Arrendaments DHCPv6 actius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Afegeix"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-"Afegeix el sufix de domini local als noms servits des dels fitxers de hosts"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Afegeix una interfície nova..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Fitxers de Hosts addicionals"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Adreça"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Adreça per accedir al relay bridge local"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Administració"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Paràmetres avançats"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Alerta"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-"Permetre l'autenticació <abbr title=\"Secure Shell\">SSH</abbr> amb "
-"contrasenya"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Permet-les totes menys les llistades"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Permet només les llistades"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Permetre el localhost"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"Permetre a màquines remotes de connectar-se als ports reenviats de l'SSH "
-"local"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Accés d'administrador amb contrasenya"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "Permetre l'accés de l'usurari <em>root</em> amb contrasenya"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr "Permet respostes del rang 127.0.0.0/8, p.e. per serveis RBL"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Antena 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Antena 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Configuració d'antena"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Qualsevol zona"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Assigna interfícies..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Estacions associades"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Autenticació"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Autoritzada"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Es requereix autenticació"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Refresc automàtic"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Disponible"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Mitjana:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Enrere"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Enrere al Resum"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Enrere a la configuració"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Enrere al resum"
-
-# Endarrere cap a resultats d'escaneig
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Enrere als resultats de l'escaneig"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Còpia de seguretat"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Còpia de seguretat i microprogramari"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Llista de còpies de seguretat"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Adreça mal especificada!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"A sota hi ha la llista determinada de fitxers per fer-ne còpia. Consisteix "
-"en els fitxers de configuració canviats i marcats per l'opkg, fitxers base "
-"essencials i els patrons de còpia de seguretat definits per l'usuari."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Velocitat de bits"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Substitució dels dominis NX falsos"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Pont"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Pont d'interfícies"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Número d'unitat de pont"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Aixecar a l'engegada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Controlador sense fil Broadcom 802.11%s"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Controlador sense fil Broadcom BCM%04x 802.11"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "En memòria intermèdia"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Ús de CPU (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Cancel·la"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Cadena"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Canvis"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Canvis aplicats."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Canvia la paraula clau de l'administrador per accedir al dispositiu"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Canal"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Comprovació"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Suma de verificació"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Escolliu la zona de tallafocs que voleu assignar a aquesta interfície. Trieu "
-"<em>sense especificar</em> per esborrar la interfície de la zona associada o "
-"ompliu el camp <em>crea</em> per definir una nova zona i adjuntar-hi la "
-"interfície."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"Trieu les xarxes que voleu adjuntar a la interfície sense fil o ompliu el "
-"camp <em>crea</em> per definir una xarxa nova."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Xifra"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Fes clic a \"Genera l'arxiu\" per obtenir un fitxer .tar.gz amb els fitxers "
-"de configuració actuals."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Client"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "ID de client a enviar en les sol·licituds DHCP"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Tanca la llista..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Aplegant dades..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Ordre"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Configuració comuna"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Configuració"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Confirmació"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Connecta"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Connectat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Límit de connexió"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Connexions"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "País"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Codi de País"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Cobreix la interfície següent"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Cobreix les interfícies següents"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Crea / Assigna zona de tallafocs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Crea interfície"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Crea un pont entre múltiples interfícies"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Crític"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Nivell de registre del Cron"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Interfície personalitzada"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Personalitza el comportament dels <abbr title=\"Light Emitting Diode\">LED</"
-"abbr>s del dispositiu, si és possible."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "Servidor DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP i DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "Client DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "Opcions DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "Reenviaments DNS"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Depuració"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "%d per defecte"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Passarel·la per defecte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Estat per defecte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Definiu el nom d'aquesta xarxa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Suprimeix"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Suprimeix aquesta xarxa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Descripció"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Destí"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Dispositiu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Configuració de dispositiu"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Diagnòstics"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Directori"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Inhabilita"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Inhabilita el <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> en aquesta interfície."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Inhabilitat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "Descarta les respostes RFC1918 des de dalt"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Optimització de distància"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Distància al membre de la xarxa més allunyat en metres."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Diversitat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"El Dnsmasq és un servidor <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr> combinat i un reenviador de <abbr title=\"Domain Name System"
-"\">DNS</abbr> per tallafocs <abbr title=\"Network Address Translation\">NAT</"
-"abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Es requereix un domini"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"No reenviïs les peticions <abbr title=\"Domain Name System\">DNS</abbr> "
-"sense el nom <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Descarrega còpia de seguretat"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Instància de Dropbear"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"El Dropbear ofereix accés a una consola <abbr title=\"Secure Shell\">SSH</"
-"abbr> per xarxa i un servidor <abbr title=\"Secure Copy\">SCP</abbr> integrat"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> dinàmic"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Túnel dinàmic"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "Mètode EAP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Edita"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Edita aquesta interfície"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Edita aquesta xarxa"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Emergència"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Habilita"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Habilita l'<abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "Habilita negociació IPv6 en la enllaç PPP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Habilita el passatge de trames enormes"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "Habilita el client NTP"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Habilita el servidor TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Habilita la funcionalitat VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Habilita l'aprenentatge i l'envelliment"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Activa/Desactiva"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Habilitat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "Habilita l'Spanning Tree Protocol a aquest pont"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Mode d'encapsulació"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Encriptació"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Esborrant..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Error"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Adaptador Ethernet"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Switch Ethernet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Caduca"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Servidor de registre del sistema extern"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Port del servidor de registre del sistema extern"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr "Protocol del servidor de registre del sistema extern"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Fitxer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "Nom de fitxer de la imatge d'inici que es publica als clients"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Sistema de fitxers"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Filtra privat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Filtra els no útils"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Troba i uneix-te a la xarxa"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Acaba"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Tallafocs"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Ajusts de tallafocs"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Estat de tallafocs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Versió de microprogramari"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Escriptura del microprogramari a la memòria flaix"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Puja una imatge..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Escriu una imatge nova a la memòria flaix"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Operacions a la memòria flaix"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Escrivint a la memòria flaix..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Força"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Força el CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr "Força el DHCP en aquesta xarxa encara que es detecti altre servidor."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Força el TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Força el TKIP i el CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "Reenvia el trànsit DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Reenvia el trànsit difós"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Mode de reenviament"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Llindar de fragmentació"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Lliure"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Només GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Passarel·la"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Ports de passarel·la"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Ajusts generals"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Genera l'arxiu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "Controlador sense fils 802.11%s genèric"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-"La contrasenya i la confirmació de contrasenya no es coincideixen. La "
-"contrasenya no s'ha canviat!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Vés a la configuració de contrasenya"
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Vés a la pàgina de configuració"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "Contrasenya de HE.net"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Penja"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Ací pots configurar els aspectes bàsics del teu dispositiu, com el nom de la "
-"màquina o el fus horari."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-"No mostris l'<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr "Nom de màquina"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Entrades de noms de màquina"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "Xarxa o adreça <abbr title=\"Internet Protocol Address\">IP</abbr>"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Nom de màquina"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Noms de màquina"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "Adreça IP"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "Tallafocs IPv4"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "Adreça IPv4"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "Difusió IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "Passarel·la IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "Màscara de xarxa IPv4"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "Longitud de prefix IPv4"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "Adreça IPv4"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "Tallafocs IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr "Veïns IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "Adreça IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "Passarel·la IPv6"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "Prefix IPv6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "Longitud de prefix IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "Adreça IPv6"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6-en-IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6-sobre-IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6-sobre-IPv4 (6to4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identitat"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Si la teva memòria física és insuficient, les dades no usades es poden "
-"intercanviar a un dispositiu d'intercanvi, pel qual hi haurà una quantitat "
-"més gran de memòria <abbr title=\"Random Access Memory\">RAM</abbr> usable. "
-"Tingues en compte que intercanviar dades és un procés molt lent, ja que no "
-"es pot accedir al dispositiu d'intercanvi amb unes taxes tan altes com les "
-"de la <abbr title=\"Random Access Memory\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Ignora <code>/etc/hosts</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Ignora la interfície"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Ignora el fitxer de resolució"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Fitxer d'imatge"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "Entr."
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "Temps d'espera d'inactivitat"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Entrant:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Informació"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Script d'inici"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Scripts d'inici"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Instal·la el paquet %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Instal·la extensions de protocol"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Interfície"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Configuració d'interfície"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Visió de conjunt de la interfície"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "La interfície s'està reconnectant..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Interfícies"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Error de servidor intern"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Invàlid"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Usuari i/o contrasenya invàlids! Si us plau prova-ho de nou."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Sembla que intentes actualitzar una imatge que no hi cap a la memòria flaix, "
-"si us plau verifica el fitxer d'imatge!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "Es requereix JavaScript!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Uneix-te a la xarxa"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Mantenir la configuració"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Registre del nucli"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Versió del nucli"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Clau"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Clau #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Mata"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "Servidor L2TP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "Llindar de fracàs d'eco LCP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "Interval d'eco LCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Etiqueta"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Llengua"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Llengua i estil"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Fitxer d'arrendament"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Temps d'arrendament restant"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Deixeu-ho en blanc per autodetectar"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "Deixeu-ho en blanc per utilitzar l'adreça WAN actual"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Llegenda:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Límit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Enllaç actiu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-"Habilita el servei en totes les interfícies o, si no se n'especifica cap, en "
-"totes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Càrrega"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Càrrega mitjana"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Carregant"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Adreça IPv4 local"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Adreça IPv6 local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Inici local"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Hora local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Domini local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Servidor local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Localitza les peticions"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Nivell de sortida de registre"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Registra les peticions"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "Registre"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Entra"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Surt"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "Adreça MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Filtre d'adreces MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "Filtre MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "Llista MAC"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Memòria"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Ús de Memòria (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Mètrica"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "Manca l'extensió de protocol del protocol %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Mode"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Dispositiu mòdem"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "Temps d'espera d'inici de mòdem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Monitor"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Punt de muntatge"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Punts de muntatge"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Els punts de muntatge defineixen en quin punt un dispositiu de memòria "
-"s'adjuntarà amb el sistema de fitxers"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Opcions de muntatge"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Sistemes de fitxers muntats"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Baixa"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Puja"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "Candidats de servidor NTP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Nom"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Nom de la nova interfície"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Nom de la nova xarxa"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navegació"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Màscara de xarxa"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Xarxa"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Utilitats de xarxa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "Imatge d'inici de xarxa"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Xarxa sense interfícies."
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Següent"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Cap servidor DHCP configurat en aquesta interfície"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Cap fitxer trobat"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "No hi ha informació disponible"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "Sense memòria cau negativa"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Cap xarxa configurada en aquest dispositiu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "Cap nom de xarxa especificat"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "No hi ha cap contrasenya establerta!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "No hi ha regles en aquesta cadena"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Cap zona assignada"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Soroll"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Soroll:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Cap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Normal"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "No trobat"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "No associat"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "No connectat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Avís"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "Nslookup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"En aquesta pàgina pots configurar les interfícies de xarxa. Pots fer un pont "
-"entre diverses interfícies clicant sobre el camp \"interfície pont\" i "
-"introduint els noms de les diverses interfícies de xarxa separats per "
-"espais. També pots fer servir la notació <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr> <samp>INTERFACE.VLANNR</samp> (<abbr title=\"per "
-"exemple\">p.e.</abbr>: <samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "Cal especificar o el nom de host o l'adreça MAC!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Un o més dels camps requerits conté un valor invàlid!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Un o més dels camps requerits no té valor!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Obre una llista..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Opció canviada"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Opció treta"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Opcions"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Altres:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Sort."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "Sortint:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Visió de conjunt"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Propietari"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "Contrasenya PAP/CHAP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "Nom d'usuari PAP/CHAP"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "Encapsulació PPPoA"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "Es requereix el paquet libiwinfo!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Paquets"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "Part de la zona %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Contrasenya"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Autenticació per contrasenya"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Contrasenya de la clau privada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Ruta als Certificats CA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Ruta a la clau privada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Màxim:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Executa un reinici"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Executa un reinici"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "Velocitat física:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Ajusts físics"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Paquets"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Si us plau entra el teu nom d'usuari i contrasenya."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Política"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Port"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Estatus de port"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Evita la comunicació client a client"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Procedeix"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Processos"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protocol"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "Habilita el servidor NTP"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Pseudo Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Calidad"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "Llindar RTS/CTS"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "Velocitat RX"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Llegeix <code>/etc/ethers</code> per configurar el servidor <abbr title="
-"\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Connexions en temps real"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Gràfiques en temps real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Càrrega en temps real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Trànsit en temps real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Dispositiu sense fils en temps real"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Reinicia"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Reiniciant..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Arranca de nou el sistema operatiu del teu dispositiu"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Recepció"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Antena receptora"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Reconnex aquesta interfície"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Referències"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "Relé"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "Pont de relé"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "Relé entre xarxes"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "Pont de relé"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "Adreça IPv4 remota"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr "Adreça IPv4 remota o FQDN"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Treu"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Reemplaça l'entrada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Reemplaça la configuració sense fil"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "Alguns ISP ho requereixen, per exemple el Charter amb DOCSIS 3"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Restableix"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Reinicia els comptadors"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Reestableix els valors per defecte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Reinicia"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Reinicia el tallafocs"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Restauració de la configuració"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Restaura còpia de seguretat"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Mostra/amaga la contrasenya"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Reverteix"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Arrel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "Directori arrel dels fitxers servits per TFTP"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Contrasenya de l'encaminador"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Rutes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Les rutes especifiquen per quina interfície i passarel·la es pot arribar a "
-"un cert ordinador o xarxa."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "Accés SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "Claus SSH"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Desa"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Desa i aplica"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Escaneja"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Tasques programades"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Secció afegida"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Secció treta"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Clients separats"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Ajusts de servidor"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Nom de servei"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Tipus de servei"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Serveis"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-#, fuzzy
-msgid "Set up Time Synchronization"
-msgstr "Configura la sincronització de l'hora"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Atura aquesta interfície"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Senyal"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Senyal:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Mida"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Salta"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Salta al contingut"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Salta a la navegació"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "No es pot desar els valors perquè alguns camps estan invàlids!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "Tristament, l'object que heu sol·licitat no s'ha trobat."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "Tristament, el servidor ha encontrat un error inesperat."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Origen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "Especifica el directori a que el dispositiu està adjuntat"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "Especifica el port d'escolta d'aquesta instància del <em>Dropbear</em>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Especifiqueu el clau de xifració secret aquí."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Inici"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Prioritat d'inici"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Arrencada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Rutes IPv4 estàtiques"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Rutes IPv6 estàtiques"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Leases estàtics"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Rutes estàtiques"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Adreça estàtica"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Estat"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Atura"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Ordre estricte"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Envia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Entrada d'intercanvi"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Commutador"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "Commutador %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "Commutador %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "Protocol de commutador"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Sincronitza amb el navegador"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Sincronitzant..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Sistema"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Registre del sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Propietats del sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "Mida de la memòria intermèdia per al registre del sistema"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "Ajusts TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "Arrel del servidor TFTP"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "Velocitat TX"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Taula"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Destí"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Acaba"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"El paquet <em>libiwinfo-lua</em> no està instal·lat. Heu de instal·lar "
-"aquest component per tenir una configuració sense fil funcionant!"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"Els caràcters permets són: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> i <code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"El fitxer de dispositiu de la memòria o partició (<abbr title=\"per exemple"
-"\">p.e.</abbr> <code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"El sistema the fitxers que es va fer servir per formatar la memòria (<abbr "
-"title=\"per exemple example\">p.e.</abbr> <samp><abbr title=\"Third Extended "
-"Filesystem\">ext3</abbr></samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"S'ha pujat la imatge per a la memòria flaix. A sota hi ha llistades la suma "
-"de verificació i la mida del fitxer per assegurar la integritat de les dades."
-"<br />Fes clic a \"Procedeix\" a continuació per començar el procés "
-"d'escriptura a la memòria flaix."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "S&#39;han desfet els següents canvis"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "Les següents regles estan actualment actives en aquest sistema."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "El nom de xarxa donat no és únic"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-#, fuzzy
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-"El maquinari no es capaç de múltiples SSID i la configuració existent es "
-"reemplaçara si procediu."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-"La longitud del prefix IPv4 en bits, el reste s'utilitza en les adreces IPv6."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "La longitud del prefix IPv6 en bits"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "El protocol seleccionat necessita un dispositiu assignat"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-"El sistema està esborrant la partició de configuració i es reiniciarà quan "
-"termini."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"S'està escrivint la imatge del microprogramari a la memòria flaix.<br />NO "
-"APAGUIS EL DISPOSITIU!<br />Espera uns minuts abans d'intentar connectar-te "
-"de nou. Pot ser necessari que renovis l'adreça DHCP del teu ordinador per "
-"connectar-te de nou a l'encaminador, depenent de la configuració que hi "
-"tinguis."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"La imatge pujada no conté un format suportat. Assegura't de triar el format "
-"d'imatge genèric per la teva plataforma."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Tema"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "No hi ha arrendaments actius."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "No hi ha canvis pendents per revertir!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "No hi ha canvis pendents!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"No s'ha establert cap contrasenya en aquest encaminador. Si us plau, "
-"configura una contrasenya per protegir la interfície web i l'accés SSH."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"Aquest és el contingut de /etc/rc.local. Afegeix-hi les teves comandes "
-"(abans de la línia 'exit 0') per executar-les en finalitzar el procés "
-"d'arrencada."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"Aquest és l'únic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> a la teva xarxa local"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-"Aquest és el crontab del sistema en el qual es poden definir tasques "
-"programades."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"Aquesta llista mostra una vista general sobre els processos corrent al "
-"sistema actualment i el seu estat."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr ""
-"Aquesta pàgina ofereix una vista general de les connexions de xarxa actives "
-"actualment."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Aquesta secció encara no conté cap valor"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Sincronització de l'hora"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "La sincronització de hora encara no s'ha configurat."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Zona horària"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"Per restaurar els fitxers de configuració, pots pujar una còpia de seguretat "
-"generada anteriorment aquí. Per restablir el microprogramari al seu estat "
-"inicial, fes clic a \"Restableix la configuració\" (només funciona amb "
-"imatges squashfs)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Total disponible"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Rastre de ruta"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Trànsit"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Transferència"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Taxa de transmissió"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Transmissió"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Potència de transmissió"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Antena transmissora"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "Activador"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "Mode d'activació"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "ID del túnel"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Interfície del túnel"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Potència Tx"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Tipus"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "Només UMTS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "Dispositiu USB"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Desconegut"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "Sense gestionar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Canvis sense desar"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Tipus de protocol no suportat."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"Puja aquí una imatge compatible amb sysupgrade per reemplaçar el "
-"microprogramari actual. Activa \"Mantenir la configuració\" per retenir la "
-"configuració actual (requereix una imatge de microprogramari compatible)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Puja un arxiu..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Fitxer pujat"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Temps en marxa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Fes servir <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "Utilitza la bandera de difusió"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Usat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Nom d'usuari"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLANs en %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLANs en %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "Servidor VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "Classe de venidor per enviar al sol·licitar DHCP"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Verifica"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "Sistema obert WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "Clau compartit WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "Contrasenya WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "Mode WMM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "Contrasenya WPA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"La xifratge WPA requereix que sigui instal·lat el wpa_supplicant (pel mode "
-"client) o el hostapd (pels modes AP i ad hoc)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "Esperant que s'apliquin els canvis..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "Esperant que s'acabi l'ordre..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr "Esperant el dispositiu..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Advertència"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Sense fils"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Adaptador sense fils"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Xarxa sense fils"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Resum sense fils"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Seguretat sense fils"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "El dispositiu sense fils està inhabilitat"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "El dispositiu sense fils està sense associar"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "El dispositiu sense fils està reiniciant..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "La xarxa sense fil està inhabilitada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "La xarxa sense fils està habilitada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Escriure les peticions DNS rebudes al registre del sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr "Escriure el registre del sistema al fitxer"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Pots activar o desactivar els scripts d'inici instal·lats ací. Els canvis "
-"s'aplicaran després d'arrancar de nou el dispositiu.<br /><strong>Atenció: "
-"Si desactives scripts d'inici necessaris com el \"network\", el teu "
-"dispositiu pot resultar inaccessible!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"Has d'activar el JavaScript al teu navegador o LuCI no funcionarà "
-"correctament."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "qualsevol"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "auto"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "pontejat"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "crea:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "crea un pont entre les interfícies especificades"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "inhabilita"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "caducat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"fitxer on els leases de <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr> s'emmagatzemaran"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "transemès"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "amagat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "si el destí és una xarxa"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "entrada"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "fitxer <abbr title=\"Domain Name System\">DNS</abbr> local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "no"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "cap enllaç"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "parat"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "engegat"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "obert"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "encaminat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "etiquetat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "desconegut"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "il·limitat"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "sense espeficicar"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "sense espeficicar -o- crear:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "sense etiquetar"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "sí"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Enrere"
-
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr ""
-#~ "Aquí pots afegir-hi les claus SSH públiques (una per línia) per entrar "
-#~ "per SSH amb autenticació per clau."
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "La contrasenya s'ha canviat amb èxit!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "La contrasenya no s'ha canviat a causa d'un error desconegut!"
-
-#~ msgid "Design"
-#~ msgstr "Disseny"
-
-#~ msgid "Available packages"
-#~ msgstr "Paquets disponibles"
-
-#~ msgid ""
-#~ "Build/distribution specific feed definitions. This file will NOT be "
-#~ "preserved in any sysupgrade."
-#~ msgstr ""
-#~ "Repositoris específics de la distribució/compilació. Aquest fitxer NO es "
-#~ "preservarà durant les actualitzacions del microprogramari del sistema."
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "Mostrant només els paquets que contenen"
-
-#~ msgid "Distribution feeds"
-#~ msgstr "Repositoris de la distribució"
-
-#~ msgid "Download and install package"
-#~ msgstr "Descarrega i instal·la el paquet"
-
-#~ msgid "Filter"
-#~ msgstr "Filtre"
-
-#~ msgid "Find package"
-#~ msgstr "Cerca paquet"
-
-#~ msgid "Free space"
-#~ msgstr "Espai lliure"
-
-#~ msgid "General options for opkg"
-#~ msgstr "Opcions generals d'opkg"
-
-#~ msgid "Install"
-#~ msgstr "Instal·la"
-
-#~ msgid "Installed packages"
-#~ msgstr "Paquets instal·lats"
-
-#~ msgid "No package lists available"
-#~ msgstr "No hi ha llistes de paquets disponibles"
-
-#~ msgid "OK"
-#~ msgstr "D'acord"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "Configuració d&#39;OPKG"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "Les llistes de paquets tenen més de 24 hores"
-
-#~ msgid "Package name"
-#~ msgstr "Nom del paquet"
-
-#~ msgid "Size (.ipk)"
-#~ msgstr "Mida (.ipk)"
-
-#~ msgid "Software"
-#~ msgstr "Programari"
-
-#~ msgid "Update lists"
-#~ msgstr "Actualitza les llistes"
-
-#~ msgid "Version"
-#~ msgstr "Versió"
-
-#~ msgid "none"
-#~ msgstr "cap"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 i IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "Només IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "Només IPv6"
-
-#~ msgid "Lease validity time"
-#~ msgstr "Duració de validitat d'arrendament"
-
-#~ msgid "Multicast address"
-#~ msgstr "Adreça de difusió selectiva"
-
-#~ msgid "No chains in this table"
-#~ msgstr "No hi ha cadenes en aquesta taula"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "Es mantindran els fitxers de configuració."
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Nota: Els fitxers de configuració s'esborraran."
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Parella: %s / Grup: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "Activa aquesta xarxa"
-
-#~ msgid "Hermes 802.11b Wireless Controller"
-#~ msgstr "Controlador sense fil Hermes 802.11b"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "La interfície s'està aturant..."
-
-#~ msgid "RaLink 802.11%s Wireless Controller"
-#~ msgstr "Controlador sense fil RaLink 802.11%s"
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "Reconnectant la interfície"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "Atura aquesta xarxa"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "Sense fils reinciat"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "Sense fils aturat"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "Arrendaments DHCP"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "Arrendaments DHCPv6"
-
-#~ msgid "Sort"
-#~ msgstr "Ordena"
-
-#~ msgid "help"
-#~ msgstr "ajuda"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "Estat WAN IPv4"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "Estat WAN IPv6"
-
-#~ msgid "Apply"
-#~ msgstr "Aplica"
-
-#~ msgid "Applying changes"
-#~ msgstr "Aplicant els canvis"
-
-#~ msgid "Configuration applied."
-#~ msgstr "S'ha aplicat la configuració."
-
-#~ msgid "Save &#38; Apply"
-#~ msgstr "Desa i aplica"
-
-#~ msgid "The following changes have been committed"
-#~ msgstr "S'han comès els següents canvis"
-
-#~ msgid "There are no pending changes to apply!"
-#~ msgstr "No hi ha canvis pendents per aplicar!"
-
-#~ msgid "Action"
-#~ msgstr "Acció"
-
-#~ msgid "Buttons"
-#~ msgstr "Botons"
-
-#~ msgid "Leasetime"
-#~ msgstr "Duració d'arrendament"
-
-#, fuzzy
-#~ msgid "automatic"
-#~ msgstr "estàtic"
-
-#~ msgid "AR Support"
-#~ msgstr "Suport AR"
-
-#~ msgid "Atheros 802.11%s Wireless Controller"
-#~ msgstr "Controlador sense fils d'Atheros 802.11%s"
-
-#~ msgid "Background Scan"
-#~ msgstr "Escaneig de fons"
-
-#~ msgid "Compression"
-#~ msgstr "Compressió"
-
-#~ msgid "Disable HW-Beacon timer"
-#~ msgstr "Inhabilita el temporitzador HW-Beacon"
-
-#~ msgid "Do not send probe responses"
-#~ msgstr "No enviïs les respostes de prova"
-
-#~ msgid "Fast Frames"
-#~ msgstr "Fast Frames"
-
-#~ msgid "Maximum Rate"
-#~ msgstr "Velocitat màxima"
-
-#~ msgid "Minimum Rate"
-#~ msgstr "Velocitat mínima"
-
-#~ msgid "Multicast Rate"
-#~ msgstr "Velocitat de difusió selectiva"
-
-#~ msgid "Outdoor Channels"
-#~ msgstr "Canals d'exteriors"
-
-#~ msgid "Regulatory Domain"
-#~ msgstr "Domini regulatori"
-
-#~ msgid "Separate WDS"
-#~ msgstr "WDS separat"
-
-#~ msgid "Static WDS"
-#~ msgstr "WDS estàtic"
-
-#~ msgid "Turbo Mode"
-#~ msgstr "Mode Turbo"
-
-#~ msgid "XR Support"
-#~ msgstr "Suport XR"
-
-#~ msgid "An additional network will be created if you leave this unchecked."
-#~ msgstr "Es crearà una xarxa addicional si deixes això sense marcar."
-
-#~ msgid "Join Network: Settings"
-#~ msgstr "Unir-se a la xarxa: Ajusts"
-
-#~ msgid "CPU"
-#~ msgstr "CPU"
-
-#~ msgid "Port %d"
-#~ msgstr "Port %d"
-
-#~ msgid "VLAN Interface"
-#~ msgstr "Interfície VLAN"
diff --git a/package/luci/modules/luci-base/po/cs/base.po b/package/luci/modules/luci-base/po/cs/base.po
deleted file mode 100644 (file)
index 4004cd2..0000000
+++ /dev/null
@@ -1,6602 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-05-31 13:59+0200\n"
-"Last-Translator: koli <lukas.koluch@gmail.com>\n"
-"Language-Team: none\n"
-"Language: cs\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(%d minutové okno, %d sekundový interval)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s k dispozici)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(prázdný)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(bez rozhraní připojení)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Doplňující pole --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Prosím vyberte --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- vlastní --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Zatížení za 1 minutu:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Zatížení za 15 minut:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Zatížení za 5 minut:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "port dotazů <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "port serveru <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servery budou dotazovány podle "
-"pořadí resolvfile"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Internet Protokol Verze 4\">IPv4</abbr>-Adresa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Verze 4\">IPv4</abbr>-Brána"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Internet Protokol Verze 4\">IPv4</abbr>-Maska sítě"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Internet Protokol Verze 6\">IPv6</abbr>-Adresa nebo Síť (CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protokol Verze 6\">IPv6</abbr>-Brána"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> Konfigurace"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> Název"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Media Access Control\">MAC</abbr>-Adresa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"Nejvyšší počet <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> výpůjček"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"Největší povolená velikost <abbr title=\"Extension Mechanisms for Domain "
-"Name System\">EDNS0</abbr> packetů"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "Nejvyšší počet souběžných dotazů"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "ARP limit opakování"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "ATM mosty"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "Identifikátor virtuálního kanálu ATM (VCI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "Identifikátor virtuální cesty ATM (VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"Otevře ATM mosty přes uzavřené ethernetové rozhraní v AAL5 připojení jako "
-"virtuální síťová rozhraní Linuxu, které mohou být použity ve spojení s DHCP "
-"nebo PPP vytáčeného připojení od poskytovatele sítě."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "číslo ATM zařízení"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Přístupový koncentrátor"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Přístupový bod"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Akce"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-"Aktivní záznamy ve směrovací tabulce <abbr title=\"Internet Protocol Version "
-"4\">IPv4</abbr>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-"Aktivní záznamy ve směrovací tabulce <abbr title=\"Internet Protocol Version "
-"6\">IPv6</abbr>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Aktivní spojení"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Aktivní propůjčené DHCP adresy (leases)"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Aktivní propůjčené DHCPv6 adresy (leases)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Přidat"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr "Přidat lokální koncovku k doménovým jménům ze souboru hosts"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Přidat rozhraní..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Dodatečné Hosts soubory"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Adresa"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Adresa pro přístup k místnímu relay bridge"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Správa"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Pokročilé nastavení"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Upozornění"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "Povolit <abbr title=\"Secure Shell\">SSH</abbr> autentizaci heslem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Povolit vše mimo uvedené"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Povolit pouze uvedené"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Povolit localhost"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"Povolit vzdáleným hostitelům připojování k místním portům přesměrovaným "
-"pomocí SSH"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Povolit přihlašovaní root účtu pomocí hesla"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "Povolit <em>root</em> účtu přihlášení bez nastaveného hesla"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr "Povolit upstream odpovědi na 127.0.0.0/8 rozsah, např. pro RBL služby"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Anténa 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Anténa 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Konfigurace antén"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Libovolná zóna"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Přiřadit rozhraní..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Připojení klienti"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Autentizace"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Autoritativní"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Vyžadována autorizace"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Automaticky obnovovat"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Dostupné"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Průměr:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Zpět"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Zpět k přehledu"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Zpět ke konfiguraci"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Zpět k přehledu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Zpět k výsledkům vyhledávání"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Zálohovat"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Zálohovat / nahrát firmware"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Seznam souborů k zálohování"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Zadána neplatná adresa!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Seznam souborů k zálohování lze nalézt níže. Sestává se z konfiguračních "
-"souborů označených opkg, nezbyných systémových souborů a souborů "
-"vyhovujících uživatelem určeným vzorům."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Přenosová rychlost"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Přepíše falešnou hodnotu NX Domény"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Síťový most"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Síťové mosty"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Číslo síťového mostu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Zapnout po startu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Broadcom 802.11%s bezdrátový ovladač"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Broadcom modul BCM%04x 802.11 bezdrátový ovladač"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Bufferováno"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Vytížení CPU (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Storno"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Řetěz"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Změny"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Změny aplikovány."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Změní administrátorské heslo pro přístup k zařízení"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Kanál"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Kontrola"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Kontrolní součet"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Zóna firewallu přiřazená k tomuto rozhraní. Pro odstranění rozhraní z "
-"přiřazené zóny vyberte volbu <em>nespecifikovaná</em>. Pro vytvoření nové "
-"zóny a její následné přiřazení danému rozhraní vyplňte pole <em>vytvořit</"
-"em>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"Vyberte síť(ě), které chcete připojit k tomuto bezdrátovému rozhraní, nebo "
-"vyplňte pole <em>vytvořit</em> a pojmenujte novou síť."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Šifra"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Pro stažení archivu tar s aktuální konfigurací stiskněte \"Vytvořit archiv\"."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Klient"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "Klientské ID odesílané v DHCP požadavku"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Uzavírat neaktivní spojení po daném počtu sekund. Pro vypnutí časového "
-"omezení použijte jako hodntu nulu"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Zavřít seznam..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Probíhá sběr dat..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Příkaz"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Společná nastavení"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Nastavení"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Ověření"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Připojit"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Připojeno"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Omezení počtu připojení"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Připojení"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Země"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Kód země"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Pokrýt následující rozhraní"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Pokrýt následující rozhraní"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Vytvořit / přiřadit zónu firewallu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Vytvořit rozhraní"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Vytvořit síťový most přes více rozhraní"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Kritické"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Úroveň protokolování Cronu"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Vlastní rozhraní"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Upraví chování <abbr title=\"Light Emitting Diode\">LED</abbr> diod zařízení "
-"pokud je to možné."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "DHCP server"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP a DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "DHCP klient"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "Volby DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "Přeposílání DNS"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Ladění"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "Výchozí %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Výchozí brána"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Výchozí stav"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Jméno sítě."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Další možnosti DHCP, například \"<code>6,192.168.2.1,192.168.2.2</code>\", "
-"které odkazuje na různé DNS servery pro klienty."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Odstranit"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Odstranit tuto síť"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Popis"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Cíl"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Zařízení"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Nastavení zařízení"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Diagnostika"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Adresář"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Zakázat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Pro toto rozhraní zakázat <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Zakázáno"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "Vyřadit upstream RFC1918 odpovědi"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Optimalizace na vzdálenost"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Vzdálenost nejodlehlejšího člena sítě v metrech."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Diverzita"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq je kombinace <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr> serveru a <abbr title=\"Domain Name System\">DNS</abbr> "
-"forwarderu pro použití v <abbr title=\"Network Address Translation\">NAT</"
-"abbr> firewallech"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr "Necachovat negativní odpovědi (např. pro neexistující domény)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"Nepřeposílat požadavky, které nemohou být zodpovězeny veřejnými jmennými "
-"servery"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr "Nepřeposílat reverzní dotazy na místní sítě"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Vyžadována doména"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "Whitelist domén"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Nepřeposílat <abbr title=\"Domain Name System\">DNS</abbr> dotazy bez <abbr "
-"title=\"Domain Name System\">DNS</abbr> jména"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Stáhnout zálohu"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Instance Dropbear"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear poskytuje <abbr title=\"Secure Shell\">SSH</abbr> přístup a <abbr "
-"title=\"Secure Copy\">SCP</abbr> server"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"Dynamický <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Dynamický tunel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"Pro klienty alokovat DHCP adresy dynamicky. Pokud je volba zakázána, budou "
-"obsloužení pouze klienti se statickými výpůjčkami."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "Metoda EAP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Upravit"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Upravit toto rozhraní"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Upravit tuto síť"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Záchrana"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Povolit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Povolit <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "Povolit dynamickou aktualizaci koncového bodu HE.net"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "Na PPP spoji povolit vyjednání IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Povolit průchod jumbo rámců"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "Povolit NTP klienta"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Povolit TFTP server"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Povolit funkcionalitu VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Povolit ARP učení a stárnutí"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "Povolit tento přípojný bod"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "Povolit tento swapovací oddíl"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Povolit/Zakázat"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Povoleno"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "Na tomto síťovém mostě povolit Spanning Tree Protocol"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Režim zapouzdření"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Šifrování"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Odstraňování..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Chyba"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Ethernetový adaptér"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Ethernetový switch"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "Rozšířit hostitele"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Vyprší"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-#, fuzzy
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-"Čas vypršení vypůjčené adresy, minimum jsou 2 minuty (<code>2m</code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Externí protokolovací server"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Port externího protokolovacího serveru"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Soubor"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "Název souboru s bootovacím obrazem oznamovaný klientům"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Souborový systém"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Filtrovat soukromé"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Filtrovat nepotřebné"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Vyhledat a připojit síť"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Dokončit"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Firewall"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Nastavení firewallu"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Stav firewallu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Verze firmwaru"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "Pevný zdrojový port pro odchozí DNS dotazy"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Nahrát firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Nahrát obraz..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Nahrát nový obraz s firmwarem"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Operace nad flash pamětí"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Nahrávám..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Vynutit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Vynutit CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr "Na této síti vynutit DHCP i v případě detekování jiného serveru."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Vynutit TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Vynutit TKIP a CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "Přeposílat DHCP provoz"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Přeposílat broadcasty"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Režim přeposílání"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Hranice fragmentace"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Dávkování rámců"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Volné"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Pouze GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Brána"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Porty brány"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Obecná nastavení"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Obecné nastavení"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Vytvorǐt archív"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "Generic 802.11%s Wireless Controller"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr "Heslo nezměněno z důvodu nesouhlasu nového hesla a ověření hesla!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Přejít na nastavení hesla..."
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Přejít na související konfigurační stránku"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "Heslo HE.net"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Zavěsit"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Nastavení základních vlastností zařízení jako je časová zóna nebo název "
-"zařízení."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "Skrývat <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Záznamy hostitelů"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr "Vypršení časového limitu hostitele"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr ""
-"<abbr title=\"Internet Protocol Address\">IP</abbr> adresa hostitele nebo síť"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Jméno hostitele"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "Jméno hostitele odesílané s DHCP požadavky"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Jména hostitelů"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "IP adresy"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "IPv4 firewall"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "IPv4 adresa"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "IPv4 broadcast"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "IPv4 brána"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "IPv4 maska sítě"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "Délka IPv4 prefixu"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "IPv4 adresa"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "IPv6 firewall"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "IPv6 adresa"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "IPv6 brána"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "IPv6 prefix"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "Délka IPv6 prefixu"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "IPv6 adresa"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6-in-IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6-over-IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6-over-IPv4 (6to4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identita"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr "Namísto pevného uzlu zařízení připojovat pomocí UUID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr "Namísto pevného uzlu zařízení připojovat pomocí názvu oddílu"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "Pokud není povoleno, není nastaven žádný výchozí směrovací záznam"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "Pokud není povoleno, oznámené adresy DNS serverů budou ignorovány"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Pokud máte nedostatek fyzické paměti, nepoužívaná data mohou být dočasně "
-"odložena do odkládacího zařízení, což bude mít za důsledek větší množství "
-"použitelné  <abbr title=\"Random Access Memory\">RAM</abbr>. Vezměte na "
-"vědomí, že odkládání dat je velice pomalý proces, stejně jako fakt, že "
-"přístup na odkládací zařízení je řádově pomalejší, než přístup do paměti "
-"<abbr title=\"Random Access Memory\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Ignorovat rozhraní"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Ignorovat resolv soubor"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Obraz"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "Dovnitř"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "Časový limit nečinnosti"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Příchozí:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Info"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Initskript"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Initskripty"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Instalovat balíček %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Instalovat protokolové rozšíření..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Rozhraní"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Konfigurace rozhraní"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Přehled rozhraní"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "Rozhraní se znovu připojuje..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "Rozhraní není přítomné nebo je dosud nepřipojeno."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Rozhraní"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-# Není co dodat.
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Vnitřní chyba serveru"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Neplatná vstupní hodnota"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-"Uvedené VLAN ID je neplatné! Jsou povolena pouze ID z rozsahu %d až %d."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "Uvedené VLAN ID je neplatné! Každé ID musí být jedinečné"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Špatné uživatelské jméno a/nebo heslo! Prosím zkuste to znovu."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Zdá se, že se pokoušíte zapsat obraz, který se nevejde do flash paměti. "
-"Prosím ověřte soubor s obrazem!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "Vyžadován JavaScript!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Připojit k síti"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "Připojit k síti: Vyhledání bezdrátových sítí"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Zachovat nastavení"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Záznam jádra"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Verze jádra"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Klíč"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Klíč #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Zabít"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "L2TP Server"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "LCP echo prahová hodnota selhání"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "LCP interval upozornění"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Popis"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Jazyk"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Jazyk a styl"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Soubor zájpůjček"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Zbývající doba trvání zápůjčky"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Ponechte prázdné pro automatickou detekci"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "Ponecháte-li prázdné, použije stávající WAN adresu"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Legenda:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Limit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Odkaz na"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"Seznam <abbr title=\"Domain Name System\">DNS</abbr> serverů, na které "
-"přeposílat požadavky"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "Seznam domén, pro které povolit odpovědi podle RFC1918"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr "Seznam hostitelů, kteří udávají falešné hodnoty NX domén"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-"Poslouchat pouze na daném rozhraní, nebo pokud není specifikováno, na všech"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "Port pro příchozí dotazy DNS"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Zátěž"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Zátěž průměrná"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Načítání"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Místní IPv4 adresa"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Místní IPv6 adresa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Místní startup"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Místní čas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Místní doména"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-#, fuzzy
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-"Specifikace místní domény. Jména shodná s touto doménou nikdy nebudou "
-"přesměrována ani rozlušťována pomocí DHCP nebo souborů hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-"Přípona místní domény, připojená za názvy DHCP jmen a záznamů v souboru hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Místní server"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-"Lokalizovat jméno v závislosti na dotazující se podsíti, pokud bylo nalezeno "
-"více IP adres"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Lokalizační dotazy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Úroveň logování"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Dotazy pro logování"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "Logování"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Přihlásit"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Odhlásit"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr "Nejnižší zapůjčenou adresu použít jako offset síťové adresy."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "MAC-Adresa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Filtr MAC adres"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "Filtr MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "Seznam Mac"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "Nejvyšší povolené množství aktivních DHCP zápůjček"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "Nejvyšší povolené množství souběžných DNS dotazů"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "Nejvyšší povolená velikost EDNS.0 UDP paketů"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "Nejvyšší počet sekund čekání, než bude modem připraven"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "Maximální počet zapůjčených adres."
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Paměť"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Využití paměti (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Metrika"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "Chybějící rozšíření protokolu %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Mód"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Modemové zařízení"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "Časový limit inicializace modemu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Sledování"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "Připojit vstup"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Přípojný bod"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Přípojné body"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "Přípojné body - vstupy"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "Přípojné body - změna vstupu"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Přípojný bod určuje místo v souborovém systému, na kterém bude připojeno "
-"paměťové zařízení"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Volby připojení"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Přípojný bod"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Připojené souborové systémy"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Přesunout dolů"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Přesunout nahoru"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "Kandidáti NTP serveru"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Název"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Název nového rozhraní"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Název nové sítě"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navigace"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Síťová maska"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Síť"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Síťové nástroje"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "Síťový bootovací obraz"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Síť bez rozhraní."
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Další »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Pro toto rozhraní není nastaven žádný DHCP server"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Nebyly nalezeny žádné soubory"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Údaje nejsou k dispozici"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "Žádná negativní mezipaměť"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Síť není nastavena na tomto zařízení"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "Neuvedeno jméno sítě"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Žádné heslo!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Žádná pravidla v tomto řetězci"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Žádná zóna nepřiřazena"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Šum"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Šum:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Žádný"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Normální"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "Nenalezeno"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "Neasociováno"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "Nepřipojeno"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Oznámení"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "Nslookup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "Vypnutí prodlevy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"Na této stránce můžete nastavit síťová rozhraní. Můžete přemostit několik "
-"rozhraní zaškrtnutím pole \"přemostit rozhraní\" a zápisem názvů rozhraní, "
-"vzájemně oddělených mezerami. Také můžete použít <abbr title=\"Virtual Local "
-"Area Network\">VLAN</abbr> zápis <samp>INTERFACE.VLANNR</samp> (<abbr title="
-"\"například\">např.</abbr>: <samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "Zapnutí prodlevy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "Jedno jméno nebo mac adresa, musí být zadáno!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Jedno nebo více polí obsahuje neplatné hodnoty!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Jedno nebo více požadovaných polí neobsahuje hodnotu!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Otevřít seznam..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Volba změněna"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Volba odstraněna"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Možnosti"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Ostatní:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Ven"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "Odchozí:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "Přepsat MAC adresu"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "Přepsat MTU"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "Přepsat bránu v DHCP odpovědích"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-"Přepsat síťovou masku, odesílanou klientům. Obvykle je spočítána podle "
-"subsítě, která je obsluhována."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr "Přepsat tabulku, používanou pro vnitřní cesty"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Přehled"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Vlastník"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "Heslo PAP/CHAP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "Uživatelské jméno PAP/CHAP"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "Zapouzdření PPPoA"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "Vyžadován balíček libiwinfo!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Pakety"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "Část zóny %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Heslo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Autentizace heslem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Heslo privátního klíče"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Cesta k certifikátu CA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "Cesta k certifikátu klienta"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Cesta k privátnímu klíči"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Špička:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Provést restart"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Provést reset"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "Fyzická rychlost:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Fyzické nastavení"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ping"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Paketů"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Prosím vložte vaše uživatelské jméno a heslo."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Politika"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Port"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Stav portu:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-"Po takovém množství LCP echo selhání předpokládám, že peer je mrtvý. "
-"Použijte 0 pro ignorování chyb"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Zabraňuje komunikaci klient-klient"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Pokračovat"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Procesy"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protokol"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Protokol nového rozhraní"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "Podpora pro protokol není nainstalována"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "Poskytování NTP serveru"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "Poskytování nové sítě"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Pseudo Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Kvalita"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "Práh RTS/CTS"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "RX Rate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Port pro Radius-Accounting"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Tajný klíč pro Radius-Accounting"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Server Radius-Accounting"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Výběr ověřování portů"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Tajný klíč pro Radius-Authentication"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Server Radius-Authentication"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Přečtěte si <code>/etc/ethers</code> ke konfiguraci <abbr title=\"Dynamic "
-"Host Configuration Protocol\">DHCP</abbr> Serveru"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"Opravdu odstranit bezdrátovou síť? Odstranění nelze vrátit zpět!\n"
-"Můžete ztratit přístup k zařízení, pokud jste připojeni prostřednictvím této "
-"sítě."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "Opravdu resetovat všechny změny?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "Opravdu prohodit protokol?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Připojení v reálném čase"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Grafy v reálném čase"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Zátěž v reálném čase"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Provoz v reálném čase"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Wireless v reálném čase"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "Opětovné nastavení ochrany"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Reboot"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Rebootuji..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Rebootuje operační systém vašeho zařízení"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Přijmout"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Přijímací anténa"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Přepojit toto rozhraní"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Reference"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "Přenos"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "Přenášet mezi sítěmi"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "Vzdálená IPv4 adresa"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Odstranit"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Opakovat skenování"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Nahradit vstup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Nahradit bezdrátovou konfiguraci"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-# Charter je poskytovate
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "Vyžadováno u některých ISP, např. Charter s DocSIS 3"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Reset"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Resetovat čítače"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Obnovit na výchozí"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Soubory Resolv a Hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "Soubor resolve"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Restart"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Restartovat firewall"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Obnovit"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Obnovit zálohu"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Odhalit/skrýt heslo"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Vrátit zpět"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Root"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "Kořenový adresář souborů, přístupných přes TFTP"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Heslo routeru"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Trasy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Trasy určují, přes jaké rozhraní a bránu může být konkrétního hosta dosaženo."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "Spustit kontrolu souborového systému před připojením zařízení"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Spustit kontrolu souborového systému"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "Přístup přes SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "SSH klíče"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Uložit"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Uložit & použít"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Skenovat"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Naplánované úlohy"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Přidána sekce"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Sekce odebrána"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "Podrobnosti viz manuálová stránka příkazu \"mount\""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-"Odesílat LCP echo požadaveky každých x sekund, účinné pouze ve spojení s "
-"prahem selhání."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Oddělovat klienty"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Nastavení serveru"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Název služby"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Typ služby"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Služby"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-#, fuzzy
-msgid "Set up Time Synchronization"
-msgstr "Nastavit synchronizaci času"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "Nastavit DHCP server"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "Ukázat aktuální seznam záložních souborů"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Shodit toho rozhraní"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Signál"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Signál:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Velikost"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Přeskočit"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Skočit na obsah"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Skočit na navigaci"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "Time sloty"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Některá pole obsahují neplatné hodnoty, nelze uložit!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "Omlouváme se, ale požadovaný objekt nebyl nalezen."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "Omlouváme se, na serveru došlo k neočekávané vyjímce."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"Omlouváme se, ale v tomto zařízení není přítomná podpora pro upgrade "
-"systému. Nový obraz firmwaru musí být zapsán ručně. Prosím, obraťte se na "
-"wiki pro zařízení specifické instalační instrukce."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Zdroj"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "Určuje port na kterém bude tato instance <em>Dropbearu</em> naslouchat"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-"Určuje množství neúspěšných ARP požadavků, po kterém je hostitel považován "
-"za mrtvého"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr "Určuje počet sekund, po kterém je hostitel považovám za mrtvého"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Zde nastavte soukromý šifrovací klíč."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Start"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Priorita spouštění"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Po spuštění"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Statické IPv4 trasy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Statické IPv6 trasy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Statické zápůjčky"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Statické trasy"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Statická adresa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"Statické zápůjčky se používají pro přiřazení fixních IP adres a symbolických "
-"jmen DHCP klientům. Jsou také vyžadovány pro nedynamické konfigurace "
-"rozhraní, kde jsou povoleni pouze hosté s odpovídajícím nastavením."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Stav"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Stop"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Striktní výběr"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Odeslat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr "Potlačit logování"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Vstupní bod"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Směrovač"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "Směrovač číslo %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "Směrovač číslo %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "Směrovací protokol"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Synchronizovat s prohlížečem"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Synchronizuji..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Systém"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Systémový log"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Vlastnosti systému"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "Velikost bufferu systémového logu"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "Nastavení TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "Kořenový adresář TFTP serveru"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "Rychlost TX"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Cíl"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Ukončit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-#, fuzzy
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"Sekce <em>Nastavení zařízení</em> pokrývá fyzické nastavení radiového "
-"hardwaru jako kanál, vysílací výkon nebo výběr antény, které je sdíleno mezi "
-"všemi bezdrátovými sítěmi (pokud hardware podporuje multi-SSID). Nastavení "
-"konkrétní sítě jako šifrování, operační mód jsou seskupeny v sekci "
-"<em>Nastavení rozhraní</em>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"Balíček <em>libiwinfo-lua</em> není nainstalován. Tato komponenta musí být "
-"nainstalována, aby fungovalo nastavení bezdátové sítě!"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr "IPv6 prefix přidělený poskytovatelm většinou končí  <code>::</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"Povolené znaky jsou: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> a "
-"<code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"Soubor zařízení paměti nebo oddílu (<abbr title=\"například\">např.</abbr> "
-"<code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"Souborový systém, který byl použit pro formátování paměti (<abbr title="
-"\"například\">napři.</abbr> <samp><abbr title=\"Souborový systém\">ext3</"
-"abbr></samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"Obraz flash byl nahrán. Prosím porovnejte níže uvedený checksum a velikost "
-"souboru s originálním souborem pro zajištění integrity dat.<br /> Kliknutím "
-"na \"Pokračovat\" spustíte proceduru flashování."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "Následující změny byly vráceny"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "Následující pravidla jsou v nyní na tomto systému aktivní."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "Zadané jméno sítě není jedinečné"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-#, fuzzy
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-"Tento hardware nepodporuje multi-SSID. Pokud budete pokračovat, existující "
-"konfigurace bude nahrazena."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr "Délka IPv4 prefixu v bitech, zbytek se používá v IPv6 adresách"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "Délka IPv6 prefixu v bitech"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"Síťové porty tohoto zařízení mohou být kombinovány do několika <abbr title="
-"\"Virtualních místních sítí\">VLAN</abbr>ve kterých počítače mohou "
-"komunikovat přímo mezi sebou. <abbr title=\"Virtualní místní sítě \">VLAN</"
-"abbr>se často používají na oddělení různých siťových částí. Většinou je "
-"jeden port pro připojení k vyšší síti (Uplink) jako třeba internet a "
-"zbývající porty pro místní síť."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "Vybraný protokol potřebuje mít přiřazeno zařízení"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-"Systém maže konfigurační oddíl, po skončení procesu bude automaticky "
-"restartován."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"Systém nyní nahrává firmware.<br /> NEVYPÍNEJTE ZAŘÍZENÍ!<br /> Počkejte "
-"několik minut než se pokusíte znovu připojit. V záležitosti na vašem "
-"nastavení, bude možná nutné obnovit adresu vašeho počítače, aby jste se "
-"mohli znovu připojit."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Vzhled"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Nejsou žádné aktivní zápůjčky."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "Nejsou zde žádné nevyřízené změny k navrácení!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "Nejsou zde žádné nevyřízené změny!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-"Zatím zde není přiřazeno zařízení, prosím připojte nějaké v záložce "
-"\"Fyzické nastavení\""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"Na tomto routeru není nastaveno heslo. Prosím, nastavte heslo uživatele root "
-"tak, abyste ochránili webové rozhraní a mohli povolit SSH."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"Zde vidíte obsah souboru /etc/rc.local. Příkazy, které sem vložíte (před "
-"příkaz 'exit 0') budou spuštěny na konci bootovacího procesu."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"Toto je jediný <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> v mistní síti"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-"Toto je systémový crontab, v němž můžete nastavit naplánované úlohy. "
-"Podrobnosti naleznete v crontab(5)."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"V tomto seznamu vidíte přehled aktuálně běžících systémových procesů a "
-"jejich stavy."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "Tato stránka zobrazuje přehled aktivních síťových spojení."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Tato sekce zatím neobsahuje žádné hodnoty"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Synchronizace času"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "Synchronizace času dosud není nakonfigurována."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Časové pásmo"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"Zde můžete nahrát dříve vygenerovaný záložní archiv, pokud chcete obnovit "
-"konfigurační soubory. Pro obnovení továrního nastavení stiskněte \"Obnovit "
-"výchozí\" (možné pouze s obrazy squashfs)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Dostupná celkem"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Traceroute"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Provoz"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Přenos"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Vysílací rychlost"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Přenos"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Vysílací výkon"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Anténa vysílače"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "Spouštění"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "Trigger mód"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "ID tunelu"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Rozhraní tunelu"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Tx-Power"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Typ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "Pouze UMTS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "USB zařízení"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Neznámý"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "Nespravovaný"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Neuložené změny"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Nepodporovaný typ protokolu."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"Nahrát obraz pro upgrade systému, jímž bude přepsán běžící firmware. "
-"Zkontrolujte \"Keep settings\" za účelem udržení aktuální konfigurace "
-"(vyžaduje obraz kompatabilního firmwaru)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Nahrát archiv..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Nahrát soubor"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Uptime"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Použít <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "Použít DHCP bránu"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "Pomocí ISO/IEC 3166 alpha2 kódů zemí."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr "Použít MTU na rozhraní tunelu"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "Použít TTL na rozhraní tunelu"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "Použít příznak broadcastu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Použít vlastní DNS servery"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Použít výchozí bránu"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Použít směrovací tabulku"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"Použitím tlačítka <em>Přidat</em> přidáte novou zápůjčku (lease). <em>MAC "
-"adresa</em> identifikuje počítač, <em>IPv4 adresa</em> určuje, jaká pevná "
-"adresa bude použita. <em>Hostname</em> je přiřazeno jako symbolické jméno."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Použit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Uživatelské jméno"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLANy na %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLANy na %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "VPN server"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Ověřit"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "WEP Open System"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "Sdílený klíč WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "WEP heslo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "WMM mód"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "WPA heslo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"Šifrování WPA vyžaduje nainstalovaný wpa_supplicant (pro klientský režim) "
-"nebo hostapd (pro AP a ad-hoc režim)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "Čekání na realizaci změn..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "Čekání na dokončení příkazu..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Varování"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Bezdrátová síť"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Bezdrátový adaptér"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Bezdrátová síť"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Přehled bezdrátových sití"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Zabezpečení bezdrátové sítě"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "Bezdrátová síť vypnuta"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "Bezdrátová síť nespojena"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "Probíhá restartování bezdrátové sítě..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "Bezdrátová síť je zakázána"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "Bezdrátová síť je povolena"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Zapisovat přijaté požadavky DNS do systemového logu"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Zde můžete povolit nebo zakázat init skripty. Změny se projeví po restartu "
-"zařízení.<br /><strong>Varování: Pokud zakážete základní init skripty jako "
-"\"network\", vaše zařízení se může stát nepřístupným!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"Aby LuCI fungoval správně, musíte mít v prohlížeči povolený JavaScript."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "libovolný"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "auto"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "přemostěný"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "vytvoří most přes vybraná rozhraní"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "zakázat"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "expirované"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"Soubor, ve kterém budou uloženy zadané <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr> výpůjčky (leases)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "plný-duplex"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "poloviční-duplex"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "skrytý"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "pokud cílem je síť"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "vstup"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "místní <abbr title=\"Domain Name System\">DNS</abbr> soubor"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "ne"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "žádné spojení"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "off"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "on"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "směrované"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "označený"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "neznámý"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "neomezený"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "nespecifikovaný"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "nespecifikovaný -nebo- vytvořit:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "neoznačený"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "ano"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Zpět"
-
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr ""
-#~ "Vložte veřejné klíče (na každý řadek jeden) pro ověřovaní SSH přístupu."
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "Heslo bylo úspěšně změněno!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "Neznámá chyba, heslo nebylo změněno!"
-
-#~ msgid "Design"
-#~ msgstr "Vzhled"
-
-#~ msgid "Available packages"
-#~ msgstr "Dostupné balíčky"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "Zobrazeny pouze balíčky obsahující"
-
-#~ msgid "Download and install package"
-#~ msgstr "Stáhnout a nainstalovat balíček"
-
-#~ msgid "Filter"
-#~ msgstr "Filtr"
-
-#~ msgid "Find package"
-#~ msgstr "Vyhledat balíček"
-
-#~ msgid "Free space"
-#~ msgstr "Volné místo"
-
-#~ msgid "Install"
-#~ msgstr "Instalovat"
-
-#~ msgid "Installed packages"
-#~ msgstr "Nainstalované balíčky"
-
-#~ msgid "No package lists available"
-#~ msgstr "Seznam balíčků není k dispozici"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "Konfigurace balíčků OPKG"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "Seznamy balíčků jsou starší než 24 hodin"
-
-#~ msgid "Package name"
-#~ msgstr "Název balíčku"
-
-#~ msgid "Software"
-#~ msgstr "Software"
-
-#~ msgid "Update lists"
-#~ msgstr "Aktualizovat seznamy"
-
-#~ msgid "Version"
-#~ msgstr "Verze"
-
-#~ msgid "none"
-#~ msgstr "žádný"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "Zakázat nastavení DNS"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 a IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "Pouze IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "Pouze IPv6"
-
-#~ msgid "Lease validity time"
-#~ msgstr "Doba platnosti zápůjčky"
-
-#~ msgid "Multicast address"
-#~ msgstr "Adresa vícesměrového vysílání"
-
-#~ msgid "Protocol family"
-#~ msgstr "Rodina protokolů"
-
-#~ msgid "No chains in this table"
-#~ msgstr "Žádné řetězce v této tabulce"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "Konfigurační soubory budou zachovány."
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Pozn: Konfigurační soubory budou vymazány."
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "Aktivovat tuto síť"
-
-#~ msgid "Hermes 802.11b Wireless Controller"
-#~ msgstr "Hermes 802.11b bezdrátový ovladač"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "Rozhraní se vypíná..."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "Rozhraní bylo znovu připojeno"
-
-#~ msgid "Interface shut down"
-#~ msgstr "Rozhraní bylo vypnuto"
-
-#~ msgid "Prism2/2.5/3 802.11b Wireless Controller"
-#~ msgstr "Prism2/2.5/3 802.11b Wireless Controller"
-
-#~ msgid "RaLink 802.11%s Wireless Controller"
-#~ msgstr "RaLink 802.11%s Wireless Controller"
-
-#~ msgid ""
-#~ "Really shutdown interface \"%s\"? You might lose access to this device if "
-#~ "you are connected via this interface."
-#~ msgstr ""
-#~ "Opravdu vypnout rozhraní \"%s\" ?\n"
-#~ "Můžete ztratit přístup k zařízení, pokud jste připojeni prostřednictvím "
-#~ "tohoto rozhraní."
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "Přepojuji rozhraní"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "Shodit tuto síť"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "Bezdrátová síť restartována"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "Bezdrátová síť vypnuta"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "DHCP výpůjčky"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "DHCPv6 přidělené IP"
-
-#~ msgid ""
-#~ "Really delete this interface? The deletion cannot be undone! You might "
-#~ "lose access to this device if you are connected via this interface."
-#~ msgstr ""
-#~ "Opravdu odstranit toto rozhraní? Odstranění nelze vrátit zpět!\n"
-#~ "Můžete ztratit přístup k zařízení, pokud jste připojeni prostřednictvím "
-#~ "tohoto rozhraní."
-
-#, fuzzy
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "Opravdu vypnout síť ?\n"
-#~ "Můžete ztratit přístup k zařízení, pokud jste připojeni prostřednictvím "
-#~ "tohoto rozhraní."
-
-#~ msgid "Sort"
-#~ msgstr "Seřadit"
-
-#~ msgid "help"
-#~ msgstr "pomoc"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "Stav IPv4 WAN"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "Stav IPv6 WAN"
-
-#~ msgid "Apply"
-#~ msgstr "Použít"
-
-#~ msgid "Applying changes"
-#~ msgstr "Probíhá uplatňování nastavení"
-
-#~ msgid "Configuration applied."
-#~ msgstr "Nastavení uplatněno."
-
-#~ msgid "Save &#38; Apply"
-#~ msgstr "Uložit &#38; použít"
-
-#~ msgid "The following changes have been committed"
-#~ msgstr "Následující změny byly provedeny"
-
-#~ msgid "There are no pending changes to apply!"
-#~ msgstr "Nejsou zde žádné nevyřízené změny k aplikaci!"
-
-#~ msgid "Action"
-#~ msgstr "Akce"
-
-#~ msgid "Buttons"
-#~ msgstr "Tlačítka"
-
-#~ msgid "Handler"
-#~ msgstr "Handler"
-
-#~ msgid "Maximum hold time"
-#~ msgstr "Maximální doba držení"
-
-#~ msgid "Minimum hold time"
-#~ msgstr "Minimální čas zápůjčky"
-
-#~ msgid "Path to executable which handles the button event"
-#~ msgstr "Cesta ke spustitelnému souboru, který obsluhuje událost tlačítka"
-
-#~ msgid "This page allows the configuration of custom button actions"
-#~ msgstr "Na této stránce si můžete nastavit vlastní události tlačítek"
-
-#~ msgid "Leasetime"
-#~ msgstr "Doba trvání zápůjčky"
-
-#~ msgid "AR Support"
-#~ msgstr "Podpora AR"
-
-#~ msgid "Atheros 802.11%s Wireless Controller"
-#~ msgstr "Atheros 802.11%s bezdrátový ovladač"
-
-#~ msgid "Background Scan"
-#~ msgstr "Vyhledávat na pozadí"
-
-#~ msgid "Compression"
-#~ msgstr "Komprese"
-
-#~ msgid "Disable HW-Beacon timer"
-#~ msgstr "Zakázat HW-Beacon časovač"
-
-#~ msgid "Do not send probe responses"
-#~ msgstr "Neodpovídat na vyhledávání"
-
-#~ msgid "Fast Frames"
-#~ msgstr "Rychlé rámce"
-
-#~ msgid "Maximum Rate"
-#~ msgstr "Nejvyšší míra"
-
-#~ msgid "Minimum Rate"
-#~ msgstr "Nejnižší hodnota"
-
-#~ msgid "Multicast Rate"
-#~ msgstr "Hodnota vícesměrového vysílání"
-
-#~ msgid "Outdoor Channels"
-#~ msgstr "Venkovní kanály"
-
-#~ msgid "Regulatory Domain"
-#~ msgstr "Doména regulátora"
-
-#~ msgid "Separate WDS"
-#~ msgstr "Oddělovat WDS"
-
-#~ msgid "Static WDS"
-#~ msgstr "Statický WDS"
-
-#~ msgid "Turbo Mode"
-#~ msgstr "Turbo mód"
-
-#~ msgid "XR Support"
-#~ msgstr "Podpora XR"
-
-#~ msgid "An additional network will be created if you leave this unchecked."
-#~ msgstr "Pokud není zaškrtnuto, bude vytvořena dodatečná síť."
-
-#~ msgid "Join Network: Settings"
-#~ msgstr "Připojit k síti: nastavení"
-
-#~ msgid "CPU"
-#~ msgstr "CPU"
-
-#~ msgid "Port %d"
-#~ msgstr "Port %d"
-
-#~ msgid "Port %d is untagged in multiple VLANs!"
-#~ msgstr "Port %d je neoznačený ve více VLAN!"
-
-#~ msgid "VLAN Interface"
-#~ msgstr "Rozhraní VLAN"
diff --git a/package/luci/modules/luci-base/po/de/base.po b/package/luci/modules/luci-base/po/de/base.po
deleted file mode 100644 (file)
index 21665a9..0000000
+++ /dev/null
@@ -1,6754 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-26 17:57+0200\n"
-"PO-Revision-Date: 2018-12-13 11:43+0100\n"
-"Last-Translator: Jo-Philipp Wich <jo@mein.io>\n"
-"Language-Team: \n"
-"Language: de\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.8.11\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr "%d ungültige Felder"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr "%s darf nicht ohne VLAN-Tag in mehreren VLAN-Gruppen vorkommen!"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(%d Minuten Abschnitt, %d Sekunden Intervall)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s verfügbar)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(leer)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(keine Schnittstellen)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Zusätzliches Feld --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Bitte auswählen --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- benutzerdefiniert --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr "-- anhand Gerätedatei selektieren --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr "-- anhand Label selektieren --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr "-- UUID vergleichen --"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr "-- Bitte auswählen --"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Systemlast (1 Minute):"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Systemlast (15 Minuten):"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr "vierstellige hexadezimale ID"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Systemlast (5 Minuten):"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr "sechstellige hexadezimale ID (ohne Doppelpunkte)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr "802.11r: Schnelle Client-Übergabe"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr "Maximales Timeout für Quelladressprüfungen (SA Query)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr "Wiederholungsintervall für Quelladressprüfungen (SA Query)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr "802.11w: Schutz von Management-Frames aktivieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr "802.11w: Maximales Timeout"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr "802.11w: Wiederholungsintervall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> Abfrageport"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> Serverport"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"<abbr title=\"Domain Name System\">DNS</abbr>-Server in der Reihenfolge der "
-"Resolv-Datei abfragen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "IPv4-Adresse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "IPv4-Gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "IPv4-Netzmaske"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr "IPv6 Host- oder Netzwerk-Addresse (CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "IPv6-Gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr "IPv6-Suffix (hexadezimal)"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "LED Konfiguration"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "MAC-Adresse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-"<abbr title=\"Eindeutiger DHCP Bezeichner (DHCP Unique Identifier)\">DUID</"
-"abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"<abbr title=\"maximal\">Max.</abbr> Anzahl von <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Leases"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"maximal\">Max.</abbr> Größe von <abbr title=\"Extension "
-"Mechanisms for Domain Name System\">EDNS0</abbr>-Paketen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"maximal\">Max.</abbr> Anzahl gleichzeitiger Abfragen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-"<br/>Hinweis: Der Cron-Dienst muss manuell neu gestartet werden wenn die "
-"Crontab-Datei vor der Bearbeitung leer war."
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-"Ein neuer Login ist erforderlich da die Benutzersitzung abgelaufen ist."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "Grenzwert für ARP-Auflösungsversuche"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr "ATM (Asynchroner Transfer-Modus)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "ATM Brücken"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "ATM Virtual Channel Identifier (VCI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "ATM Virtual Path Identifier (VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"ATM Brücken exponieren in AAL5 gekapselten Ethernetverkehr als virtuelle "
-"Linux Netzwerkschnittstellen welche z.B. in Verbindung mit DHCP oder PPP "
-"genutzt werden können um sich in das Providernetzwerk einzuwählen."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "ATM Geräteindex"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Access Concentrator"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Access Point"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Aktionen"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "Aktive IPv4-Routen"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "Aktive IPv6-Routen"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Aktive Verbindungen"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Aktive DHCP-Leases"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Aktive DHCPv6-Leases"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Hinzufügen"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr "IPv4-Adresse hinzufügen…"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr "IPv6-Adresse hinzufügen…"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr "Schlüssel hinzufügen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr "Lokalen Domainsuffx an Namen aus der Hosts-Datei anhängen"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Neue Schnittstelle hinzufügen..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Zusätzliche Hosts-Dateien"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr "Zusätzliche Nameserver-Datei"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Adresse"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Adresse der lokalen Relay-Brücke"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Administration"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Erweiterte Einstellungen"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr "Vollständige Sendeleistung (ACTATP)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Alarm"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr "Alias-Schnittstelle"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr "Alias von \"%s\""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr "Alle Server"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-"IP-Adressen sequenziell vergeben, beginnend mit der kleinsten verfügbaren "
-"Adresse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr "IPs sequenziell vergeben"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "Erlaube Anmeldung per Passwort"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-"Erlaubt dem Access-Point die Trennung von Clients mit schlechter "
-"Signalqualität"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Alle außer gelistete erlauben"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr "Veraltete 802.11b Raten erlauben"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Nur gelistete erlauben"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Erlaube localhost"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr "Entfernten Hosts erlauben zu lokale SSH-Tunnel-Ports zu verbinden"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "\"root\" Login mit Passwort aktivieren"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr ""
-"Erlaubt es dem <em>root</em> Benutzer sich mit einem Passwort statt einem "
-"Zertifikat einzuloggen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-"Dies erlaubt DNS-Antworten im 127.0.0.0/8 Bereich der z.B. für RBL Dienste "
-"genutzt wird"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr "Erlaubte IP-Adressen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr "Immer Defaultrouter ankündigen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-"Immer 40MHz Kanalbandbreite benutzen, auch wenn sich der sekundäre Kanal mit "
-"benachbarten Funkzellen überlappt. Die Benutzung dieser Option ist eine "
-"Verletzung des IEEE 802.11n-2009 Standards!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr "Annex A, L und M (alle)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr "Annex B (alle Arten)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr "Annex J (alle Arten)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr "Annex M (alle Arten)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-"Kündigt im Netzwerk einen Defaultrouter an, auch wenn kein öffentlicher "
-"Adressbereich verfügbar ist."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr "Angekündigte Suchdomains"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr "Angekündigte DNS Server"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr "Anonyme Identität"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr "automatische Mountpunkte"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr "automatische Swap-Aktivierung"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Antenne 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Antenne 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Antennenkonfiguration"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Beliebige Zone"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr "Ungeprüft anwenden"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-"Anforderung zur Anwendung der Änderungen mit Status <code>%h</code> "
-"fehlgeschlagen"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr "Architektur"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-"Legt die Größe der dieser Schnittstelle zugewiesenen Partitionen der "
-"öffentlichen IPv6-Präfixe fest."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Schnittstellen zuweisen..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-"Der Schnittstelle zugewiesene Partitionen des Adressraums werden anhand "
-"dieser hexadezimalen ID gewählt."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Assoziierte Clients"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr "Assoziierungen"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr "Berechtigungsgruppe"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Authentifizierung"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr "Authentifizierungstyp"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Authoritativ"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Autorisierung benötigt"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Automatisches Neuladen"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr "Automatisch"
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr "automatisches Homenet-Protokoll (HNCP)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr "Dateisystem vor dem Einhängen automatisch auf Fehler prüfen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr "Unkonfigurierte Dateisysteme automatisch einhängen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr "Unkonfigurierte SWAP-Partitionen automatisch aktivieren"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr "Dateisystem automatisch einhängen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr "SWAP automatisch aktivieren"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Verfügbar"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Durchschnitt:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Zurück"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Zurück zur Übersicht"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Zurück zur Konfiguration"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Zurück zur Übersicht"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Zurück zu den Scan-Ergebnissen"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Sichern"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Backup / Firmware Update"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Liste zu sichernder Dateien"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Ungültige Adresse angegeben!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr "Frequenztyp"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr "Beacon-Intervall"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Nachfolgend wird eine generierte Liste der zu sichernden Dateien angezeigt. "
-"Sie enthält alle notwendigen Systemdateien sowie die von opkg als geändert "
-"markierten Konfigurationsdateien. Des Weiteren sind die durch "
-"benutzerdefinierte Dateiemuster betroffenen Dateien enthalten."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-"Dynamisch an Schnittstellen binden statt die globale Standardadresse zu "
-"benutzen (als Standard für Linux-Systeme empfohlen)"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr "An Schnittstelle binden"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr "Tunnelendpunkt an diese Schnittstelle binden (optional)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Bitrate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Ungültige \"NX-Domain\" Antworten ignorieren"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Bridge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Netzwerkbrücke"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Geräteindex der Brücke"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Während des Bootvorgangs starten"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Broadcom 802.11%s W-LAN Adapter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Broadcom BCM%04x 802.11 W-LAN Adapter"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Gepuffert"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-"CA-Zertifikat (wird beim ersten Verbindungsaufbau automatisch gespeichert "
-"wenn leer). "
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "CPU-Nutzung (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr "Anruf fehlgeschlagen"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr "Kategorie"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr "Achtung: Konfigurationsdateien werden gelöscht"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr "Achtung: Systemupgrade wird erzwungen"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Kette"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr "Login-Passwort ändern"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Änderungen"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Änderungen angewendet."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr "Änderungen wurden verworfen"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Ändert das Administratorpasswort für den Zugriff auf dieses Gerät"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr "Ändere Passwort…"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Kanal"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-"Kanal %d ist in der Regulierungszone \"%s\" nicht verfügbar und wurde "
-"automatisch auf %d gesetzt."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Prüfen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr "Dateisysteme prüfen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-"Diese Option setzen um existierende Netzwerke auf dem Radio zu löschen."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Prüfsumme"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr "Wähle \"mtdblock\" Datei"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Ordnet dieser Schnittstelle eine Firewallzone zu. Den Wert "
-"<em>unspezifiziert</em> wählen um die Schnittstelle von der Zone zu lösen "
-"oder das <em>erstellen</em> Feld ausfüllen um eine neue Zone direkt "
-"anzulegen und zuzuweisen."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"Wählt die Netzwerke die dieser WLAN-Schnittstelle zugeordnet werden. Das "
-"<em>erstelle</em>-Feld ausfüllen um ein neues Netzwerk zu erzeugen."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Verschlüsselungsalgorithmus"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr "Cisco UDP-Kapselung"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Zum Herunterladen der aktuellen Konfigurationsdateien als gepacktes Archiv "
-"\"Sicherung erstellen\" drücken."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-"\"Speichere mtdblock\" anklicken um die ausgewählte mtdblock-Datei "
-"herunterzuladen. (Hinweis: Diese Funktionalität ist nur für Experten "
-"gedacht!)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Client"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "Zu sendende Client-ID bei DHCP Anfragen"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr "Schließen"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Inaktive Verbindungen nach Ablauf dieser Zeit in Sekunden schließen (0 um "
-"die Verbindung immer aufrecht zu erhalten)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Schließe Liste..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Sammle Daten..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Befehl"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr "Kommentar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Allgemeine Konfiguration"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-"Deaktiviert bestimmte EAPOL-Key-Retransmissionen um Key-Reinstallation "
-"(KRACK) Angriffe auf Client-Seite zu erschweren. Diese Abhilfemaßnahme kann "
-"Kompatibilitätsprobleme verursachen und die Zuverlässigkeit von "
-"Schlüsselerneuerungen in ausgelasteten Umgebungen verringern."
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Konfiguration"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr "Konfiguration fehlgeschlagen"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr "Konfigurationsdateien werden beibehalten"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr "Die Konfiguration wurde angewendet."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr "Die Konfiguration wurde zurückgerollt!"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Bestätigung"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Verbinden"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Verbunden"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Verbindungslimit"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr "Verbindungsversuch fehlgeschlagen"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Verbindungen"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-"Das Gerät konnte nach Anwendung der Konfigurationsänderungen nicht mehr "
-"erreicht werden. Unter Umständen müssen Sie sich neu verbinden wenn "
-"netzwerkbezogene Einstellungen wie die IP-Adresse oder W-LAN Passwörter "
-"geändert wurden."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Land"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Ländercode"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Die folgende Schnittstelle abdecken"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Die folgende Schnittstellen abdecken"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Firewallzone anlegen / zuweisen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Erzeuge Schnittstelle"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Erzeuge Netzwerkbrücke über mehrere Schnittstellen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Kritisch"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Cron Protokolllevel"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "benutzerdefinierte Schnittstelle"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr "Delegierter IPv6-Präfix"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-"Eigene Dateien wie Zertifikate oder Scripte können unter Umständen auf dem "
-"System verbleiben. Um dies zu vermeiden, sollte zuerst auf "
-"Werkseinstellungen zurückgesetzt werden."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr "Passt das Verhalten der Geräte-LEDs an - wenn dies möglich ist."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "DHCP-Server"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP und DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "DHCP Client"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "DHCP-Optionen"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr "DHCPv6 Client"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr "DHCPv6-Modus"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr "DHCPv6-Dienst"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "DNS-Weiterleitungen"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr "DNSSEC Signaturstatus prüfen"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr "DPD Inaktivitätstimeout"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr "DS-Lite AFTR-Adresse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr "DSL Leitungsmodus"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr "Datenrate"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Debug"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "Standard %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Default Gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr "Der Standardwert ist zustandslos und zustandsorientiert"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Ausgangszustand"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Definiert einen Namen für dieses Netzwerk"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Definiert zusätzliche DHCP-Optionen, z.B. \"<code>6,192.168.2.1,192.168.2.2</"
-"code>\" um einen anderen DNS-Server an Clients zu verteilen."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Löschen"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr "Schlüssel löschen"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Dieses Netzwerk löschen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Beschreibung"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Ziel"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Gerät"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Gerätekonfiguration"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr "Das Gerät startet neu..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr "Das Gerät ist nicht erreichbar"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr "Gerät nicht erreichbar! Wartet immer noch..."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Diagnosen"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr "Einwahlnummer"
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Verzeichnis"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Deaktivieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>-Server auf "
-"dieser Schnittstelle deaktivieren"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr "Verschlüsselung deaktivieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr "Inaktivitäts-Proben deaktivieren"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr "Dieses Netzwerk deaktivieren"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Deaktiviert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr "Deaktiviert (Standard)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr "Trennung bei schlechtem Antwortverhalten"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "Eingehende RFC1918-Antworten verwerfen"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr "Trennen"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr "Verbindungstrennung fehlgeschlagen"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr "Schließen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Distanzoptimierung"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Distanz zum am weitesten entfernten Funkpartner in Metern."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Diversität"
-
-# Nur für NAT-Firewalls?
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq ist ein kombinierter <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr>-Server und <abbr title=\"Domain Name System\">DNS</"
-"abbr>-Forwarder für <abbr title=\"Network Address Translation\">NAT</abbr> "
-"Router"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-"Negative Antworten nicht zwischenspeichern, z.B. bei nicht existierenden "
-"Domains"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"Keine Anfragen weiterleiten welche nicht durch öffentliche Server "
-"beantwortet werden können"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr "Keine Rückwärtsauflösungen für lokale Netzwerke weiterleiten"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-"Soll der untenstehende SSH-Schlüssel wirklich vom System entfernt werden?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Anfragen nur mit Domain"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "Domain-Whitelist"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr "Nicht fragmentieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr "Anfragen ohne Domainnamen nicht weiterleiten"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr "runter"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Backup herunterladen"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr "Mtdblock-Datei herunterladen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr "Downstream SNR-Offset"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Dropbear Instanz"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Der SSH-Server ermöglicht Shell-Zugriff über das Netzwerk und bietet einen "
-"integrierten SCP-Dienst."
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr "Dynamisches DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Dynamischer Tunnel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"DHCP Adressen dynamisch erzeugen. Wenn dies deaktiviert ist, werden nur "
-"Clients mit konfigurierten statischen Leases bedient"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr "EA-Bitlänge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "EAP-Methode"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-"Um die Syntaxfehler zu beheben, bitte die obige unformatierte Konfiguration "
-"anpassen und \"Speichern\" klicken um die Seite neu zu laden."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Diese Schnittstelle bearbeiten"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Dieses Netzwerk bearbeiten"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Notfall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Aktivieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-"<abbr title=\"Internet Group Management Protocol\">IGMP</abbr>-Erkennung "
-"aktivieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "<abbr title=\"Spanning Tree Protocol\">STP</abbr> aktivieren"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "Dynamisches HE.net IP-Adress-Update aktivieren"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr "IPv6 anfordern"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "Aushandeln von IPv6-Adressen auf der PPP-Verbindung aktivieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Aktiviere Jumbo Frame Durchleitung"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "Aktiviere NTP-Client"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr "Single-DES aktivieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "TFTP-Server aktivieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "VLAN-Funktionalität aktivieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr "WPS-via-Knopfdruck aktivieren, erfordert WPA(2)-PSK"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr "Key Reinstallation (KRACK) Gegenmaßnahmen aktivieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Learning und Aging aktivieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr "Port-Mirroring für eingehende Pakete aktivieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr "Port-Mirroring für ausgehende Pakete aktivieren"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr "Das DF-Bit (Nicht fragmentieren) auf gekapselten Paketen setzen."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "Diesen Mountpunkt aktivieren"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr "Dieses Netzwerk aktivieren"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "Diesen Auslagerungsspeicher aktivieren"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Aktivieren/Deaktivieren"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Aktiviert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr "Aktiviert die automatische IGMP-Erkennung auf dieser Netzwerkbrücke"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-"Aktiviert schnelles Roaming zwischen Access-Points des selben "
-"Mobilitätsbereiches"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "Aktiviert das Spanning Tree Protokoll auf dieser Netzwerkbrücke"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Kapselung"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Verschlüsselung"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr "Entfernter Server"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr "Entfernter Port"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr "Eigenen Wert angeben"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr "Eigene Werte angeben"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Lösche..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Fehler"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr "Fehlersekunden (ES)"
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Netzwerkschnittstelle"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Netzwerk Switch"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr "Schnittstellen ausschließen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "Hosts vervollständigen"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr "Erwarte %s"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Verfällt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-#, fuzzy
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-"Gültigkeitsdauer von vergebenen Adressen. Das Minimum sind 2 Minuten "
-"(<code>2m</code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr "Extern"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr "Externe R0-Key-Holder-List"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr "Externe R1-Key-Holder-List"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Externer Protokollserver IP"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Externer Protokollserver Port"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr "Externes Protokollserver Protokoll"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr "Zusätzliche SSH-Kommando-Optionen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr "FT-über-DS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr "FT-drahtlos"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr "FT Protokoll"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-"Konnte nicht innerhalb von %d Sekunden bestätigen, warte auf Zurückrollen "
-"der Änderungen..."
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Datei"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "Dateiname des Boot-Images welches den Clients mitgeteilt wird."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Dateisystem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Private Anfragen filtern"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Windowsanfragen filtern"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr "Finalisierung fehlgeschlagen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-"Findet alle angeschlossenen Dateisysteme und SWAP-Partitionen und generiert "
-"die Konfiguration mit passenden Standardwerten für alle gefundenen Geräte "
-"neu."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Suchen und Verbinden von Netzwerken"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Fertigstellen"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Firewall"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr "Firewall-Markierung"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Firewall Einstellungen"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Firewall-Status"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr "Firmware-Datei"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Firmware Version"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "Fester Port für ausgehende DNS-Anfragen"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Firmware aktualisieren"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Firmware aktualisieren..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Neues Firmware Image schreiben"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Flash-Operationen"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Firmware wird installiert..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Start erzwingen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr "40MHz-Modus forcieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "CCMP (AES) erzwingen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-"Aktiviere DHCP-Server für dieses Netzwerk, selbst wenn ein anderer aktiver "
-"Server erkannt wurde."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Erzwinge TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Erzwinge TKIP und CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr "Erzwinge Verbindung"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr "Erzwinge Upgrade"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr "Benutzung von NAT-T erzwingen"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr "Abweichendes Formular-Token"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "DHCP Traffic weiterleiten"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr "Fehlerkorrektursekunden (FECS)"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Broadcasts weiterleiten"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr "Mesh-Nachbar-Traffic weiterleiten"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Weiterleitungstyp"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Fragmentierungsschwelle"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Frame Bursting"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Frei"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-"Weitere Informationen zu WireGuard-Schnittstellen und Peers unter <a href="
-"\"http://wireguard.com\">wireguard.com</a>."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Nur GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Gateway"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr "Gateway-Adresse ist ungültig"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Gateway-Ports"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Allgemeine Einstellungen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Allgemeine Einstellungen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr "Konfiguration generieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr "PMK lokal generieren"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Sicherung erstellen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "Generischer 802.11%s W-LAN Adapter"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-"Die angegebenen Passwörter stimmen nicht überein, das Systempasswort wurde "
-"nicht geändert!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr "Globale Einstellungen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr "Globale Netzwerkeinstellungen"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Zur Passwortkonfiguration..."
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Gehe zur entsprechenden Konfigurationsseite"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr "Gruppenpasswort"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr "Gast"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "HE.net Passwort"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr "HE.net Benutzername"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr "HT-Modus (802.11n)"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Auflegen"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr "Anzahl Header-Error-Code-Fehler (HEC)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"An dieser Stelle können Grundeinstellungen des Systems wie Hostname oder "
-"Zeitzone vorgenommen werden."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "ESSID verstecken"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr "Leere Chains ausblenden"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Host-Einträge"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr "Host Verfallsdatum"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> oder Netzwerk"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr "\"Host-Uniq\"-Bezeichner"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Hostname"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "Zu sendender Hostname bei DHCP Anfragen"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Rechnernamen"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr "IKE-DH-Gruppe"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr "IP-Adressen"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr "IP-Protokoll"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "IP-Adresse"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr "IP-Adresse ist ungültig"
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr "IP-Adresse fehlt"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "IPv4 Firewall"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "IPv4 Adresse"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr "IPv4 Zuweisungslänge"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "IPv4 Broadcast"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "IPv4 Gateway"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "IPv4 Netzmaske"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr "IPv4-Netzwerk in Addresse/Netzmaske-Notation"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr "IPv4 Bereich"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "Länge des IPv4 Präfix"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "IPv4-Adresse"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "IPv6 Firewall"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr "IPv6 Nachbarn"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr "IPv6 Einstellungen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr "IPv6 ULA-Präfix"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "IPv6 Adresse"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr "IPv6 Zuweisungshinweis"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr "IPv6 Zuweisungslänge"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "IPv6 Gateway"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr "IPv6-Netzwerk in Addresse/Netzmaske-Notation"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "IPv6 Präfix"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "Länge des IPv6 Präfix"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr "Gerouteter IPv6-Präfix"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr "IPv6 Endung"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "IPv6-Adresse"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr "IPv6 Präfixdelegation (PD)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6-in-IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6-über-IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6-über-IPv4 (6to4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identität"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr "Aktiviert die Benutzung von 1DES, wenn ausgewählt"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr "Deaktiviert die Verschlüsselung, wenn ausgewählt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-"Wenn angegeben, wird das Gerät anhand seiner UUID statt fester Gerätedatei "
-"gemounted"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-"Wenn angegeben, wird das Gerät nach anhhand des Partitionslabels statt "
-"fester Gerätedatei gemounted"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "Wenn deaktiviert, wird keine Default-Route gesetzt"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "Falls deaktiviert werden die zugewiesenen DNS-Server ignoriert"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Falls der Arbeitsspeicher des Routers nicht ausreicht, kann dieser nicht "
-"benutzte Daten zeitweise auf einem SWAP-Laufwerk auslagern um so die "
-"effektive Größe des Arbeitsspeichers zu erhöhen. Die Auslagerung der Daten "
-"ist natürlich bedeutend langsamer als direkte Arbeitsspeicherzugriffe."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Ignoriere /etc/hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Schnittstelle ignorieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Resolv-Datei ignorieren"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Image"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "Ein"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-"Um unauthorisierte Zugriffe auf das System zu verhindern, wurde dieser "
-"Request blockiert. Auf \"Weiter\" klicken um zur vorherigen Seite "
-"zurückzukehren."
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "Timeout bei Inaktivität"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Eingehend:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Info"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr "Initialisierung fehlgeschlagen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Startscript"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Startscripte"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-"Bitte \"iputils-traceroute6\" installieren um IPv6-Routenverfolgung nutzen "
-"zu können"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Installiere Paket %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Installiere Protokoll-Erweiterungen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Schnittstelle"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-"Das Gerät der Schnittstelle %q wurde automatisch von %q auf %q geändert."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Schnittstellenkonfiguration"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Schnittstellenübersicht"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "Schnittstelle verbindet neu..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr "Schnittstellenname"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "Schnittstelle existiert nicht oder ist nicht verbunden."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Schnittstellen"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr "Intern"
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Interner Serverfehler"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Ungültige Eingabe"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr "Ungültige VLAN ID angegeben! Nur IDs zwischen %d und %d sind erlaubt."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "Ungültige VLAN ID angegeben! Die ID ist muß eindeutig sein!"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr ""
-"Ungültiger Benutzername oder ungültiges Passwort! Bitte erneut versuchen. "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr "Clients isolieren"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Das verwendete Image scheint zu groß für den internen Flash-Speicher zu "
-"sein. Überprüfen Sie die Imagedatei!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "JavaScript benötigt!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Netzwerk beitreten"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "Netzwerk beitreten: Suche nach Netzwerken"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr "Trete Netzwerk %q bei"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Konfiguration behalten"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Kernelprotokoll"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Kernel Version"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Schlüssel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Schlüssel Nr. %d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Töten"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "L2TP Server"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "LCP Echo Fehler Schwellenwert"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "LCP Echo Intervall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Label"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Sprache"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Sprache und Aussehen"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr "Latenz"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr "Zweigstelle"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr "Laufzeit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Leasedatei"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Verbleibende Gültigkeit"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Zur automatischen Erkennung leer lassen"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "Leer lassen um die aktuelle WAN-Adresse zu verwenden"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Legende:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Limit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-"DNS-Dienste auf direkte lokale Subnetze beschränken um Missbrauch durch "
-"Dritte zu verhindern."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr "Dienste auf die angegeben Schnittstellen plus Loopback beschränken."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr "Dämpfung (LATN)"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr "Verbindungsmodus"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr "Verbindungsstatus"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr "Verbindungsdauer"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Verbindung hergestellt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"Liste von <abbr title=\"Domain Name System\">DNS</abbr>-Servern an welche "
-"Requests weitergeleitet werden"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-"Liste von R0KH-Bezeichnern innerhalb der selben Mobilitätsdomäne. <br /"
-">Format: MAC-Adresse,NAS-Identifier,128 Bit Schlüssel in Hex-Notation. <br /"
-">Diese Liste wird verwendet um R0KH-Bezeichner (NAS Identifier) einer Ziel-"
-"MAC-Adresse zuzuordnen damit ein PMK-R1-Schlüssel von der R0KH angefordert "
-"werden kann, mit der sich der Client wärend der anfänglichen "
-"Mobilitätsdomänen-Assoziation verbunden hat."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-"Liste von R1KH-Bezeichnern innerhalb der selben Mobilitätsdomäne. <br /"
-">Format: MAC-Adresse,R1KH-ID im MAC-Adress-Format,128 Bit Schlüssel in Hex-"
-"Notation. <br />Diese Liste wird benutzt um einer R1KH-ID eine Ziel-MAC-"
-"Adresse zuzuordnen wenn ein PMK-R1-Schlüssel von einer R0KH-Station "
-"versendet wird. Die Liste dient auch zur Authorisierung von R1KH-IDs, welche "
-"innerhalb der Mobilitätsdomain PMK-R1-Schlüssel anfordern dürfen."
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr "Liste der SSH Schlüssel zur Authentifikation"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "Liste von Domains für welche RFC1918-Antworten erlaubt sind"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr "Liste von Servern die falsche \"NX Domain\" Antworten liefern"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr "Aktive Schnittstellen"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr "Aktive Ports"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-"Nur auf die gegebene Schnittstelle reagieren, nutze alle wenn nicht "
-"spezifiziert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "Serverport für eingehende DNS Abfragen"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Last"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Durchschnittslast"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Lade"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr "Lade SSH-Schlüssel…"
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr "Lokale IP-Adresse ist ungültig"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr "Lokale IP-Adresse"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Lokale IPv4 Adresse"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Lokale IPv6 Adresse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr "Nur lokale Dienste"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Lokales Startskript"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Lokale Zeit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Lokale Domain"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-#, fuzzy
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-"Spezifiziert den lokalen Domainnamen. Anfragen für Hostnamen welche auf "
-"diese Domain zutreffen werden nie weitergeleitet und ausschließlich aus DHCP-"
-"Namen oder Hosts-Dateien aufgelöst"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-"Lokaler Domain-Suffix welcher an DHCP Namen und Host-Datei Einträge "
-"angehangen wird"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Lokaler Server"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-"Hostnamen je nach anfragendem Subnetz auflösen wenn mehrere IPs verfügbar "
-"sind"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Lokalisiere Anfragen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr "Festgelegt auf Kanal %s, verwendet durch: %s"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Protokolllevel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Schreibe Abfragelog"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "Protokollierung"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Anmelden"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Abmelden"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr "Signalverlustsekunden (LOSS)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr "Kleinste vergebene Adresse (Netzwerkadresse + x)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "MAC-Adresse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "MAC-Adressfilter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "MAC-Filter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "MAC-Adressliste"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr "MAP-Regel ist ungültig"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr "Das Root-Dateisystem muss mit folgenden Kommandsos vorbereitet werden:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr "Manuell"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr "Maximal erreichbare Datenrate (ATTNDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr "Maximal erlaubter Inaktivitätszeitraum"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "Maximal zulässige Anzahl von aktiven DHCP-Leases"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "Maximal zulässige Anzahl an gleichzeitigen DNS-Anfragen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "Maximal zulässige Größe von EDNS.0 UDP Paketen"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "Maximale Zeit die gewartet wird bis das Modem bereit ist (in Sekunden)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-"Die maximale Länge des Names ist auf 15 Zeichen beschränkt, abzüglich des "
-"automatischen Protokoll- oder Bridge-Prefixes wie \"br-\" oder \"pppoe-\" "
-"etc."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "Maximal zulässige Anzahl von vergeben DHCP-Adressen"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Hauptspeicher"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Speichernutzung (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr "Mesh-ID"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Metrik"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr "Spiegel-Monitor-Port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr "Spiegel-Quell-Port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "Erweiterung für Protokoll %q fehlt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr "Mobilitätsbereich"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Modus"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr "Modell"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr "Modem-Grundeinstellung"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Modemgerät"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr "Modem-Informationsabfrage fehlgeschlagen"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "Wartezeit für Modeminitialisierung"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Monitor"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "Mount-Eintrag"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Einhängepunkt"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Einhängepunkte"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "Mountpunkte - Mount-Eintrag"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "Mountpunkte - Auslagerungsdatei"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Einhängepunkte bestimmen, an welcher Stelle des Dateisystems bestimmte "
-"Laufwerke und Speicher zur Verwendung eingebunden werden."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr "Nicht explizit konfigurierte Dateisysteme einhängen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Mount-Optionen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Mountpunkt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr "Unkonfigurierte SWAP-Partitionen aktivieren"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Eingehängte Dateisysteme"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Nach unten schieben"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Nach oben schieben"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr "NAT-T Modus"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr "NAT64 Präfix"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "NTP Server Kandidaten"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Name"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Name der neuen Schnittstelle"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Name des neuen Netzwerkes"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navigation"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Netzmaske"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Netzwerk"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Netzwerk-Werkzeuge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "Netzwerk-Boot-Image"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr "Netzwerkgerät ist nicht vorhanden"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Netzwerk ohne Schnittstellen."
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Weiter »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr "Nein"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Kein DHCP Server auf dieser Schnittstelle eingerichtet"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr "Kein NAT-T"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Keine Dateien gefunden"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Keine Informationen verfügbar"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr "Kein passendes delegiertes Prefix"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "Kein Negativ-Cache"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Keine Netzwerke auf diesem Gerät konfiguriert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "Netzwerkname nicht angegeben"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Kein Passwort gesetzt!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr "Bisher keine SSH-Schlüssel hinterlegt."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Keine Regeln in dieser Kette"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr "Noch keine Scan-Ergebnisse verfügbar..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Keine Zone zugewiesen"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Rauschen"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr "Signal-Rausch-Abstand (SNR)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Noise:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr "Nicht-präemptive CRC-Fehler (CRC_P)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr "An Schnittstellen binden"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "keine"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Normal"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "Nicht Gefunden"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "Nicht assoziiert"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "Nicht verbunden"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr "Hinweis: Länge des Namens beachten"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Notiz"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "DNS-Auflösung"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-"Anzahl der zwischengespeicherten DNS-Einträge. Maximum sind 10000 Einträge, "
-"\"0\" deaktiviert die Zwischenspeicherung."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr "Für Kompression benutze parallele Prozessanzahl"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr "Chiffriertes Gruppenpasswort"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr "Chiffriertes Passwort"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr "IPv6-Adresse beziehen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "Verzögerung für Ausschalt-Zustand"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"An dieser Stelle können die einzelnen Schnittstellen des Netzwerkes "
-"konfiguriert werden. Es können mehrere Schnittstellen zu einer Brücke "
-"zusammengefasst werden, indem diese durch Leerzeichen getrennt aufgezählt "
-"werden und ein entsprechender Haken im Feld Netzwerkbrücke gesetzt wird. Es "
-"können VLANs in der Notation SCHNITTSTELLE.VLANNR (z.B.: eth0.1) verwendet "
-"werden."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "Verzögerung für Anschalt-Zustand"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "Es muss entweder ein Hostname oder eine MAC-Adresse angegeben werden!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Ein oder mehrere Felder enthalten ungültige Werte!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr "Ein oder mehrere ungültige/benötigte Werte auf Registerkarte"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Ein oder mehr benötigte Felder sind nicht ausgefüllt!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Liste öffnen..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr "Betriebsfrequenz"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Option geändert"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Option entfernt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr "Optional"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-"Optional. 32-Bit-Marke für ausgehende, verschlüsselte Pakete. Wert in "
-"hexadezimal mit führendem <code>0x</code> angeben."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-"Optional. Mögliche Werte: 'eui64', 'random' oder Suffixes wie '::1' oder "
-"'::1:2'. Wenn ein IPv6-Präfix (wie z.B. 'a:b:c:d::') von einem delegierendem "
-"Server empfangen wird, kombiniert das System das Suffix mit dem Präfix um "
-"eine IPv6-Adresse (z.B. 'a:b:c:d::1') für die Schnittstelle zu formen."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-"Optional. Base64-kodierter, vorhab ausgetauschter Schlüssel um eine weitere "
-"Ebene an symmetrischer Verschlüsselung für erhöhte Sicherheit hinzuzufügen."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr "Optional. Routen für erlaubte IP-Adressen erzeugen."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr "Optionale Beschreibung des entfernten VPN-Partners."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-"Optional. Hostname oder Adresse des Verbindungspartners. Namen werden vor "
-"dem Verbindungsaufbau aufgelöst."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr "Optional. Maximale MTU für Tunnelschnittstellen."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr "Optional. Port-Nummer des Verbindungspartners."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-"Optional. Sekunden zwischen Keep-Alive-Nachrichten. Standardwert is 0 "
-"(deaktiviert). Der empfohlene Wert für Geräte hinter einem NAT sind 25 "
-"Sekunden."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-"Optional. Benutzte UDP-Port-Nummer für ausgehende und eingehende Pakete."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Optionen"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Andere:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Aus"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "Ausgehend:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr "Ausgehende Schnittstelle"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "MAC-Adresse überschreiben"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "MTU-Wert überschreiben"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr "TOS-Wert überschreiben"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr "TTL-Wert überschreiben"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr "Standard Schnittstellennamen überschreiben"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "Gateway-Adresse in DHCP-Antworten überschreiben"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-"Überschreibt die Netzmaske welche an Clients geschickt wird. Normalerweise "
-"wird diese vom bedienten Subnetz abgeleitet."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr "Überschreibt die benutzte Tabelle für interne Routen"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Übersicht"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Besitzer"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "PAP/CHAP Passwort"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "PAP/CHAP Benutzername"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr "PIN-Code abgelehnt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "PPPoA Kapselung"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr "PSID-Offset"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr "PSID-Bitlänge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr "PTM/EFM (Paket-Transfer-Modus)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "Benötige das libiwinfo Paket!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Pakete"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "Teil von Zone %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Passwort"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Passwortanmeldung"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Passwort des privaten Schlüssels"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr "Password des inneren, privaten Schlüssels"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr "Passwort Bestätigung"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr "Schlüssel einfügen oder Schlüsseldatei hereinziehen…"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Pfad zum CA-Zertifikat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "Pfad zu Client-Zertifikat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Pfad zum Privaten Schlüssel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr "Pfad zum inneren CA-Zertifikat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr "Pfad zum inneren Client-Zertifikat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr "Pfad zum inneren, privaten Schlüssel"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Spitze:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr "Entfernte IP-Adresse"
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr "Entfernte IP-Adresse fehlt"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr "Verbindungspartner"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Neustart durchführen"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Reset durchführen"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr "Persistentes Keep-Alive"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "Phy-Rate:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Physische Einstellungen"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ping-Anfrage"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Pkte."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Bitte Benutzernamen und Passwort eingeben."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Standardregel"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Port"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Port-Status:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr "Energiesparmodus"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr "Präemptive CRC-Fehler (CRCP_P)"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr "LTE bevorzugen"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr "UMTS bevorzugen"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr "Delegiertes Präfix"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr "Gemeinsamer Schlüssel"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-"Deklariere den Client als tot nach der angegebenen Anzahl von LCP Echo "
-"Fehlschlägen, nutze den Wert 0 um Fehler zu ignorieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr "Verhindert das Binden an diese Schnittstellen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Unterbindet Client-Client-Verkehr"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr "Privater Schlüssel"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Fortfahren"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Prozesse"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr "Profil"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protokoll"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Protokoll für die neue Schnittstelle"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "Protokollunterstützung ist nicht installiert"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "NTP-Server anbieten"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "Neues Netzwerk anbieten"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Pseudo Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr "Öffentlicher Schlüssel"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-"Öffentliche Schlüssel erlauben eine passwortlose SSH-Anmeldung mit höherer "
-"Sicherheit im Vergleich zur Benutzung einfacher Passwörter. Um einen neuen "
-"Schlüssel auf dem Gerät zu hinterlegen, kann entweder eine OpenSSH-"
-"kompatible öffentliche Schlüsselzeile in das Eingabefeld kopiert, oder eine "
-"eine Schlüsseldatei mit der Endung <code>.pub</code> in das Eingabefeld "
-"gezogen werden."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-"Zu diesem Gerät geroutetes öffentliches Präfix zur Weiterverteilung an "
-"Clients."
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Qualität"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr "Alle verfügbaren übergeordneten DNS-Server abfragen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr "R0-Schlüsselgültigkeit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr "R1-Schlüsselinhaber"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr "RFC3947 \"NAT-T\"-Modus"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "RTS/CTS-Schwelle"
-
-# Ein / Aus, eingehend / ausgehend?
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "RX-Rate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Radius-Accounting-Port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Radius-Accounting-Secret"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Radius-Accounting-Server"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Radius-Authentication-Port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Radius-Authentication-Secret"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Radius-Authentication-Server"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-"Hexadezimal-kodierte Zeichensequenz. Nur angeben wenn der Internetanbieter "
-"einen bestimmten Wert erwartet."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr "Lese Informationen aus /etc/ethers um den DHCP-Server zu konfigurieren"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-"Diese Schnittstelle wirklich löschen? Das Löschen kann nicht rückgängig "
-"gemacht werden! Der Kontakt zum Gerät könnte verloren gehen wenn die "
-"Verbidung über diese Schnittstelle erfolgt."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"Dieses Drahtlosnetzwerk wirklich löschen? Der Schritt kann nicht rückgängig "
-"gemacht werden!\n"
-"Der Zugriff auf das Gerät könnte verlorengehen wenn Sie über dieses Netzwerk "
-"verbunden sind."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "Sollen wirklich alle Änderungen verworfen werden?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "Protokoll wirklich wechseln?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Echtzeitverbindungen"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Echtzeit-Diagramme"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Echtzeitsystemlast"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Echtzeitverkehr"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Echtzeit-WLAN-Signal"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr "Reassoziierungsfrist"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "DNS-Rebind-Schutz"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Neu Starten"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Das System wird neu gestartet..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Startet das Betriebssystem des Routers neu."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Empfangen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Empfangsantenne"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr "Empfohlen. IP-Adresse der WireGuard-Schnittstelle."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Diese Schnittstelle neu verbinden"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Verweise"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "Relay"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "Relay-Brücke"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "Zwischen folgenden Netzwerken weiterleiten"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "Relay-Brücke"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "Entfernte IPv4-Adresse"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr "Entfernte IPv4-Adresse oder Hostname"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Entfernen"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Scan wiederholen"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Eintrag ersetzen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Drahtloskonfiguration ersetzen"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr "IPv6-Adresse anfordern"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr "IPv6-Präfix dieser Länge anfordern"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr "Benötigt"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-"Wird von bestimmten Internet-Providern benötigt, z.B. Charter mit DOCSIS 3"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr "Benötigt. Base64-kodierter privater Schlüssel für diese Schnittstelle"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-"Benötigt. Base64-kodierter öffentlicher Schlüssel für diese Schnittstelle"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-"Benötigt. IP-Adressen und Präfixe die der Verbindungspartner innerhalb des "
-"Tunnels nutzen darf. Entspricht üblicherweise der Tunnel-IP-Adresse des "
-"Verbindungspartners und den Netzwerken, die dieser durch den Tunnel routet."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-"Benötigt die \"volle\" Variante des wpad oder hostapd Paketes und "
-"Unterstützung vom WLAN-Treiber."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-"Setzt DNSSEC-Unterstützung im DNS-Zielserver vorraus; überprüft ob "
-"unsignierte Antworten wirklich von unsignierten Domains kommen."
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Zurücksetzen"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Zähler zurücksetzen"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Auslieferungszustand wiederherstellen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Resolv- und Hosts-Dateien"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "Resolv-Datei"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Neustarten"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Firewall neu starten"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr "W-LAN-Gerät neu starten"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Wiederherstellen"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Sicherung wiederherstellen"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Passwort zeigen/verstecken"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Verwerfen"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr "Änderungen verwerfen"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr "Anforderung zum Verwerfen mit Status <code>%h</code> fehlgeschlagen"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr "Verwerfe Konfigurationsänderungen..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Root"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "Wurzelverzeichnis für über TFTP ausgelieferte Dateien "
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr "Wurzelverzeichnis erzeugen"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr "Erlaubte IP-Addressen routen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr "Routen-Typ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr "Router-Advertisement-Dienst"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Routerpasswort"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Routen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Netzwerkrouten geben an, über welche Schnittstellen bestimmte Rechner oder "
-"Netzwerke erreicht werden können"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr "Regel"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "Vor dem Einhängen Dateisystemprüfung starten "
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Dateisystemprüfung durchführen"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "SSH-Zugriff"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr "SSH-Server-Adresse"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr "SSH-Server-Port"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr "SSH Benutzername"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "SSH-Schlüssel"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Speichern"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Speichern & Anwenden"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr "Speichere mtdblock"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr "Inhalte von mtdblock-Partitionen speichern"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr "Speichere Schlüssel…"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Scan"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr "Scan-Anforderung fehlgeschlagen"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Geplante Aufgaben"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Sektion hinzugefügt"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Sektion entfernt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "Siehe \"mount\" Handbuch für Details"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-"\"Upgrade erzwingen\" auswählen um die Abbilddatei auch dann zu schreiben, "
-"wenn die Formatüberprüfung fehlschlägt. Diese Option nur benutzen wenn das "
-"Abbild korrekt und für dieses Gerät bestimmt ist!"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-"Sende LCP Echo Anforderungen im angegebenem Interval in Sekunden, nur "
-"effektiv in Verbindung mit einem Fehler-Schwellwert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Clients isolieren"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Servereinstellungen"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Service-Name"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Service-Typ"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Dienste"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr "Sitzung abgelaufen"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr "VPN als Defaultroute benutzen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-"Schnittstelleneigenschaften werden unabhängig vom Link gesetzt (ist die "
-"Option ausgewählt, so werden die Hotplug-Skripte bei Änderung nicht "
-"aufgerufen)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-#, fuzzy
-msgid "Set up Time Synchronization"
-msgstr "Zeitsynchronisierung einrichten"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr "Setzen der PLMN fehlgeschlagen"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr "Setzen des Betriebsmodus fehlgeschlagen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "DHCP Server einrichten"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr "schwerwiegende Fehlersekunden (SES)"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr "kurzes Guardintervall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr "Kurze Präambel"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "Zeige aktuelle Liste der gesicherten Dateien"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr "Leere Chains anzeigen"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Diese Schnittstelle herunterfahren"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Signal"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr "Signaldämpfung (SATN)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Signal:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Größe"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr "Größe des DNS-Caches"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr "Größe der ZRAM-Gerätedatei in Megabytes."
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Überspringen"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Zum Inhalt springen"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Zur Navigation springen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "Zeitslot"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr "Software-VLAN"
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Einige Felder sind ungültig, kann das Formular nicht speichern!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "Entschuldigung, das anfgeforderte Objekt wurde nicht gefunden."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
-"Entschuldigung, auf dem Server ist ein unerwarteter Fehler aufgetreten."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"Aufgrund des fehlenden sysupgrade-Supports muss die neue Firmware manuell "
-"geflasht werden. Weitere Informationen sowie gerätespezifische "
-"Installationsanleitungen entnehmen Sie bitte dem Wiki."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Quelle"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "Nennt das Verzeichnis, an welches das Gerät angebunden ist"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "Gibt den Server-Port dieser <em>Dropbear</em>-Instanz an"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-"Maximale Anzahl fehlgeschlagener ARP-Anfragen bis ein Host als nicht "
-"verfügbar gilt"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-"Spezifiziert die maximale Anzahl an Sekunde nach denen Hoss als tot erachtet "
-"werden"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr "Setzt einen spezifischen TOS (Type of Service) Wert"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-"Setzt eine spezifische TTL (Time to Live) für gekapselte Pakete, anstatt der "
-"standardmäßigen 64."
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-"Setzt eine spezifische MTU (Maximum Transmission Unit) abweichend von den "
-"standardmäßigen 1280 Bytes."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Geben Sie hier den geheimen Netzwerkschlüssel an"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Start"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Startpriorität"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr "Starte Anwendung der Konfigurationsänderungen..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr "Starte WLAN Scan..."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Systemstart"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Statische IPv4 Routen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Statische IPv6 Routen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Statische Einträge"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Statische Routen"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Statische Adresse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"Statische Leases werden genutzt um feste IP-Adressen und Hostnames zu DHCP-"
-"Clients zuzuordnen. Sie werden auch für nicht-dynamische Schnittstellen-"
-"Konfigurationen benötigt auf denen lediglich Hosts mit zugehörigem "
-"statischem Lease-Eintrag bedient werden."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr "Client-Inaktivitäts-Limit"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Status"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Stoppen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Strikte Reihenfolge"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Absenden"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr "Logeinträge unterdrücken"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-"Logeinträge für erfolgreiche Operationen dieser Protokolle unterdrücken"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr "Auslagerungsspeicher"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Auslagerungsdatei"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Switch"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "Switch %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "Switch %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-"Der Switch %q hat eine unbekannte Struktur, die VLAN Settings könnten "
-"unpassend sein."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr "Switch-Port-Maske"
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr "Switch-VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "Wechsle Protokoll"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr "Auf CIDR-Listen-Notation wechseln"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Mit Browser synchronisieren"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Synchronisiere..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "System"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Systemprotokoll"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Systemeigenschaften"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "Größe des Systemprotokoll-Puffers"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "TFTP Einstellungen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "TFTP Wurzelverzeichnis"
-
-# same as RX
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "TX-Rate"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Tabelle"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Ziel"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr "Zielnetzwerk"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Beenden"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"Die <em>Gerätekonfiguration</em> deckt physische Einstellungen der WLAN-"
-"Hardware wie Kanal, Sendestärke oder Antennenauswahl ab. Diese Einstellungen "
-"werden von allen Netzwerken auf dem Gerät geteilt. Netzwerk-spezifische "
-"Einstellungen wie Verschlüsselung oder Betriebsmodus sind in der "
-"<em>Schnittstellenkonfiguration</em> gruppiert."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"Das <em>libiwinfo-lua</em> Paket ist nicht installiert. Dieses Paket muss "
-"für eine funktionierende WLAN-Konfiguration vorhanden sein!"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-"Die Updateprozedur für HE.net Tunnel-IP-Adrerssen hat sich geändert, statt "
-"der numerischen User-ID muss nun der normale Benutzername angegeben werden."
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-"Die IPv4-Adresse oder der volle Domain Name des entfernten Tunnel-Endpunktes."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-"Vom Provider zugewiesener IPv6 Präfix, endet normalerweise mit <code>::</"
-"code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"Erlaubte Buchstaben sind: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr "Das Backup-Archiv scheint keine valide GZip-Datei zu sein."
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-"Die Konfigurationsdatei konnte aufgrund der folgenden Fehler nicht geladen "
-"werden:"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-"Das Gerät konnte nach dem Anwenden der ausstehenden Änderungen innerhalb von "
-"%d Sekunden nicht mehr erreicht werden, daher wurde die Änderungen aus "
-"Sicherheitsgründen zurückgerollt. Wenn Sie der Meinung sind, dass die "
-"Änderungen trotzdem korrekt sind, wenden sie die Änderungen ungeprüft an. "
-"Alternativ können Sie diese Meldung schließen und die Konfiguration weiter "
-"bearbeiten bevor Sie das Anwenden neu versuchen oder alle austehenden "
-"Änderungen verwerfen um den aktuell funktionierenden Konfigurationsstand "
-"beizubehalten."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr "Die Gerätedatei des Speichers oder der Partition (z.B.: /dev/sda)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr "Das Dateisystem mit dem der Speicher formatiert ist (z.B.: ext3)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"Das Firmware-Image wurde hochgeladen. Nachfolgend sind die Prüfsumme und "
-"Dateigröße gelistet. Vergleichen Sie diese mit der Originaldatei um die "
-"Integrität sicherzustellen.<br /> Klicken Sie \"Fortfahren\" um die Flash-"
-"Prozedur zu starten."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "Die folgenden Änderungen wurden verworfen"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "Die folgenden Regeln sind zur Zeit auf dem System aktiv."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr "Der angegebene öffentliche SSH-Schlüssel wurde bereits hinzugefügt."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-"Der angegebene öffentliche SSH Schlüssel ist ungültig, bitte OpenSSH-"
-"kompatible öffentliche RSA oder ECDSA-Schlüssel verwenden."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "Der angebene Netzwerk-Name ist nicht eindeutig"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-#, fuzzy
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-"Die Hardware ist nicht Multi-SSID fähig und die existierende Konfiguration "
-"wird beim Fortfahren ersetzt."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-"Länge des IPv4 Präfix in Bits, die übrigen Bits werden in der IPv6 Adresse "
-"verwendet."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "Länge des IPv6 Präfix in Bits"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr "Die lokale IPv4-Adresse über die der Tunnel aufgebaut wird (optional)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"Die Netzwerkschnittstellen dieses Geräts können zu verschienden <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s zusammengefasst werden, in denen "
-"Geräte miteinander direkt kommunizieren können. <abbr title=\"Virtual Local "
-"Area Network\">VLAN</abbr>s werden auch häufig dazu genutzt, um Netzwerke "
-"voneinander zu trennen. So ist oftmals eine Schnittstelle als Uplink zu "
-"einem größeren Netz, wie dem Internet, vorkonfiguriert und die anderen "
-"Schnittstellen bilden ein <abbr title=\"Virtual Local Area Network\">VLAN</"
-"abbr> für das lokale Netzwerk."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "Dem ausgewähltem Protokoll muss ein Gerät zugeordnet werden"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-"Das mitgesendete Sicherheits-Token ist ungültig oder bereits abgelaufen!"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-"Die Einstellungen werden nun gelöscht! Anschließend wird ein Neustart des "
-"Systems durchgeführt."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"Der Flashvorgang läuft jetzt.<br /> SCHALTEN SIE NICHT DEN STROM AUS!<br /> "
-"Warten Sie einige Minuten bis das Gerät wieder erreichbar ist. Je nach "
-"Konfiguration ist es notwendig, dass Sie auf Ihrem Computer eine neue IP-"
-"Adresse beziehen müssen um auf das Gerät zugreifen zu können."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr "Das Systempasswort wurde erfolgreich geändert."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"Das hochgeladene Firmware-Image hat ein nicht unterstütztes Format. Stellen "
-"Sie sicher dass Sie das generische Format für Ihre Platform gewählt haben."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Thema"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Es gibt z.Z. keine aktiven Leases."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr "Es gibt keine ausstehenden Änderungen anzuwenden."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "Es gibt keine ausstehenen Änderungen zurückzusetzen!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "Es gibt keine ausstehenen Änderungen!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-"Es wurde noch kein Netzwerkgerät zugeordnet, bitte ein Gerät im \"Physische "
-"Einstellungen\" Bereich anfügen"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"Es ist kein Passwort auf diesem Router gesetzt. Bitte konfigurieren Sie ein "
-"Root-Passwort um das Web-Interface zu schützen und SSH zu aktivieren."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr "IPv4-Adresse des Relais"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-"Diese Datei beinhaltet Zeilen in der Art 'server=/domain/1.2.3.4' oder "
-"'server=1.2.3.4' für domainspezifische oder komplette Ziel-DNS-Server."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-"Dies ist eine Liste von Shell-Glob-Mustern um Dateien und Verzeichnisse zu "
-"selektieren welche während eines System-Upgrade gesichert werden sollen. "
-"Modifizierte Dateien in /etc/config/ und bestimmte andere essenzielle "
-"Konfigurationsdateien werden automatisch gesichert."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-"Dies ist entweder der \"Update Key\" der für diesen Tunnel eingerichtet "
-"wurde oder das normale Account-Passwort wenn kein separater Schlüssel "
-"gesetzt wurde."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"Dies ist der Inhalt von /etc/rc.local. Hier kann man eigene Befehle einfügen "
-"(vor 'exit 0'), die dann am Ende des Bootvorgangs ausgeführt werden."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-"Dies ist die lokale, vom Broker zugewiesene IPv6-Adresse, sie endet "
-"üblicherweise mit <code>...:2/64</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr "Dies ist der einzige DHCP im lokalen Netz"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr "Das ist der normale Login-Name für den Account."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-"Dies ist das vom Tunnel-Broker geroutete öffentliche Präfix zur Verwendung "
-"durch nachgelagerte Clients."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-"Dies ist die System-Crontab in der geplante Aufgaben definiert werden können."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-"Dies ist üblicherweise die Adresse des nächstgelegenen PoPs betrieben durch "
-"den Tunnelbroker"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"Diese Tabelle gibt eine Übersicht über aktuell laufende Systemprozesse und "
-"deren Status."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "Diese Seite gibt eine Übersicht über aktive Netzwerkverbindungen."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Diese Sektion enthält noch keine Einträge"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Zeitsynchronisation"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "Die Zeitsynchronisation wurde noch nicht konfiguriert."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr "Zeitintervall für die neubestimmung des Gruppenschlüssels"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Zeitzone"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr "Zum Login…"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"Zum Wiederherstellen der Konfiguration kann hier ein bereits vorhandenes "
-"Backup-Archiv hochgeladen werden. \"Konfiguration zurücksetzen\" stellt den "
-"Auslieferungszustand des Systems wieder her (nur möglich bei squashfs-"
-"Images)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr "Ton"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Gesamt verfügbar"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Routenverfolgung"
-
-# Ich bin der Meinung Traffic versteht jeder! Wenn der Begriff "deutscher" sein soll, würde ich "Datenmenge" angeben. Aber "Verkehrs" passt nicht!
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Traffic"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Transfer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Übertragungsrate"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Senden"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Sendeleistung"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Sendeantenne"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "Auslöser"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "Auslösmechanismus"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "Tunnel-ID"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Tunnelschnittstelle"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr "Basisschnittstelle"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Sendestärke"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Typ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "Nur UMTS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "USB-Gerät"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr "USB Anschlüsse"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr "Gerätename konnte nicht bestimmt werden"
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr "Externe IP-Adresse konnte nicht bestimmt werden"
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr "Externe Netzwerkschnittstelle konnte nicht bestimmt werden"
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr "Kann Anfrage nicht zustellen"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr "Client-ID konnte nicht bezogen werden"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr "Der AFTR-Hostname konnte nicht aufgelöst werden"
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr "Der Name des entfernten Hosts konnte nicht aufgelöst werden"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr "Nicht verfügbare Sekunden (UAS)"
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Unbekannt"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr "Protokollfehler: %s"
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "Ignoriert"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr "Aushängen"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr "Unbenannter Schlüssel"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Ungespeicherte Änderungen"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr "Nicht unterstützter MAP-Typ"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr "Nicht unterstütztes Modem"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Nicht unterstützter Protokolltyp."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr "Hoch"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"Zum Ersetzen der aktuellen Firmware kann hier ein sysupgrade-Kompatibles "
-"Image hochgeladen werden. Wenn die vorhandene Konfiguration auch nach dem "
-"Update noch aktiv sein soll, aktivieren Sie \"Konfiguration behalten\"."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Backup wiederherstellen..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "hochgeladene Datei"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Laufzeit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Verwende /etc/ethers"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "Benutze DHCP-Gateway"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "Benutze die von der Gegenstelle zugewiesenen DNS-Server"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "Muss ein ISO/IEC 3166 Länderkürzel sein."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr "Benutze MTU auf der Tunnelschnittstelle"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "Benutze TTL auf der Tunnelschnittstelle"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr "Als externes Overlay benutzen (/overlay)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr "Als Root-Dateisystem benutzen (/)"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "Benutze Broadcast-Flag"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr "Eingebautes IPv6-Management nutzen"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Benutze eigene DNS-Server"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Benutze Standard-Gateway"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "Benutze Gateway-Metrik"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Benutze Routing-Tabelle"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"Die <em>Hinzufügen</em> Schaltfläche fügt einen neuen Lease-Eintrag hinzu. "
-"Die <em>MAC-Adresse</em> identifiziert den Host, die <em>IPv4-Adresse</em> "
-"definiert die zu nutzende statische Adresse und der <em>Hostname</em> ist "
-"der symbolische Name der dem Host zugewisen wird."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Belegt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "Benutzer Schlüsselindex"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-"Wird als RADIUS-NAS-ID und als 802.11r R0KH-ID verwendet. Nicht benötigt für "
-"WPA(2)-PSK."
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr "PEM-kodiertes Benutzerzertifikat"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr "PEM-kodierter Benutzerschlüssel"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Benutzername"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLANs auf %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLANs auf %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr "Lokale VPN-Adresse"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr "Lokaler VPN-Port"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "VPN-Server"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr "VPN-Server Port"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr "SHA1-Hash des VPN-Server-Zertifikates"
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr "VPNC (VPN für CISCO 3000 und Ähnliche)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr "Hersteller"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "Bei DHCP-Anfragen gesendete Vendor-Klasse"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Verifizieren"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr "Virtuelle dynamisches Schnittstelle"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "WEP Open System"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "WEP Shared Key"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "WEP Schlüssel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "WMM Modus"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "WPA Schlüssel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"WPA-Verschlüsselung benötigt wpa_supplicant (für Client-Modus) oder hostapd "
-"(für AP oder Ad-Hoc Modus)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "Änderungen werden angewandt..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "Der Befehl wird ausgeführt..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr "Warte auf das Anwenden der Konfigurationsänderungen... %d Sekunden"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr "Warte auf Gerät..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Warnung"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-"Achtung: Es gibt ungespeicherte Änderungen die bei einem Neustart verloren "
-"gehen!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-"Wenn PSK-Schlüssel benutzt werden kann der PMK-Schlüssel automatisch "
-"generiert werden. Wenn diese Option aktiviert ist, werden die nachfolgenden "
-"R0/R1-Schlüsseloptionen nicht verwendet."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr "Breite"
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "WLAN"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "WLAN-Gerät"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Drahtlosnetzwerk"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Drahtlosübersicht"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "WLAN-Verschlüsselung"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "W-LAN ist deaktiviert"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "W-LAN ist nicht assoziiert"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "WLAN startet neu..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "Das WLAN-Netzwerk ist deaktiviert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "Das WLAN-Netzwerk ist aktiviert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Empfangene DNS-Anfragen in das Systemprotokoll schreiben"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr "Systemprotokoll in Datei schreiben"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr "Ja"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Hier können installierte Startscripte aktiviert oder deaktiviert werden. "
-"Änderungen werden erst mit einem Geräteneustart angewendet.<br /"
-"><strong>Warnung: Wenn essentialle Startscripte wie \"network\" deaktiviert "
-"werden könnte das Gerät unerreichbar werden!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"Im Browser muss JavaScript aktiviert sein oder LuCI wird nicht richtig "
-"funktionieren."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-"Die benutzte Version des Internet Explorers ist zu alt, um diese Seite "
-"korrekt darzustellen. Bitte mindestens auf Version 7 upgraden oder einen "
-"anderen Browser wie Firefox, Opera oder Safari benutzen."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr "ZRAM Kompressionsalgorithmus"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr "ZRAM Kompressionsprozesse"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr "ZRAM Einstellungen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr "ZRAM Größe"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "beliebig"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "auto"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "bridged"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr "erzeugen"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "erstelle:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "überbrückt angegebene Schnittstelle(n)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "deaktivieren"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr "deaktiviert"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "abgelaufen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr "Speicherort für vergebenen DHCP-Adressen"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "weitergeleitet"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "Voll-Duplex"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "Halb-Duplex"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr "hexadezimal kodierten Wert"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "versteckt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr "hybrider Modus"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "falls Ziel ein Netzwerk ist"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "eingehend"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr "Schlüssel zwischen 8 und 63 Zeichen"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr "Schlüssel mit exakt 5 oder 13 Zeichen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "Lokale DNS-Datei"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr "Minuten"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr "gemischtes WPA/WPA2"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "nein"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "nicht verbunden"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr "nicht-leeren Wert"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr "nicht vorhanden"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "aus"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "ein"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-"einen von:\n"
-"- %s"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "offen"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr "ausgehend"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr "Overlay"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr "positiven Dezimalwert"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr "positive Ganzzahl"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr "zufällig"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr "Relay-Modus"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "routed"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr "Sekunden"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr "Server-Modus"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr "nur zustandsorientiert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr "nur zustandlos"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr "zustandslos + zustandsorientiert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "tagged"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr "Zeiteinheiten (TUs / 1024 ms) [1000-65535]"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr "eindeutigen Wert"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "unbekannt"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "unbegrenzt"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "unspezifiziert"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "nichts auswählen -oder- erstellen:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "untagged"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr "gültige IP-Adresse"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr "gültige IP-Adresse oder gültigen IP-Präfix"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr "gültige IPv4-CIDR-Notation"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr "gültige IPv4-Adresse"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr "gültige IPv4-Adresse oder gültiges IPv4-Netzwerk"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr "gültige IPv4 \"Adresse:Port\" Notation"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr "gültiges IPv4-Netzwerk"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr "gültige IPv4- oder IPv6-CIDR-Notation"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr "gültigen IPv4-Präfix-Wert (0-32)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr "gültige iPv6-CIDR-Notation"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr "gültige IPv6-Adresse"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr "gültige IPv6-Addresse oder gültiges IPv6-Präfix"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr "gültige IPv6 Host-Identifikation"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr "gültiges IPv6-Netzwerk"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr "gültigen IPv6-Präfix-Wert (0-128)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr "gültige MAC-Adresse"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr "gültigen UCI-Bezeichner"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr "gültigen UCI-Bezeichner, Hostnamen oder IP-Adresse"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr "gültige \"Adresse:Port\" Notation"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr "gültiges Datum (JJJJ-MM-DD)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr "gültigen Dezimalwert"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr "gültigen hexadezimalen WEP-Schlüssel"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr "gültigen hexadezimalen WPA-Schlüssel"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr "gültige \"Host:Port\" Notation"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr "gültigen Hostnamen"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr "gültigen Hostnamen oder IP-Adresse"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr "gültige Ganzzahl"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr "gültiges Netzwerk in \"Addresse/Netzmaske\" Notation"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr "gültige Telefonnummernziffer (0-0, \"*\", \"#\", \"!\" oder \".\")"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr "gültigen Netzwerkport oder Port-Bereich (von-bis)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr "gültigen Netzwerkport"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr "gültige Zeit (SS:MM:ss)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr "Wert zwischen %d und %d Zeichen"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr "Wert zwischen %f und %f"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr "Wert größer oder gleich %f"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr "Wert kleiner oder gleich %f"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr "Wert mit mindestens %d Zeichen"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr "Wert mit maximal %d Zeichen"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "ja"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Zurück"
-
-#~ msgid ""
-#~ "When using a PSK, the PMK can be generated locally without inter AP "
-#~ "communications"
-#~ msgstr ""
-#~ "Wenn PSK in Verwendung ist, können PMK-Schlüssel lokal ohne Inter-Access-"
-#~ "Point-Kommunikation erzeugt werden."
-
-#, fuzzy
-#~ msgid ""
-#~ "The device could not be reached within %d seconds after applying the "
-#~ "pending changes, which caused the configuration to be rolled back for "
-#~ "safety reasons. If you believe that the configuration changes are correct "
-#~ "nonetheless, perform an unchecked configuration apply. Alternatively, you "
-#~ "can dismiss this warning and edit changes before attempting to apply "
-#~ "again, or revert all pending changes to keep the currently working "
-#~ "configuration state."
-#~ msgstr ""
-#~ "Das Gerät konnte nach Anwendung der ausstehenden Konfigurationsänderungen "
-#~ "nicht mehr innerhalb von %d Sekunden erreicht werden, daher wurde die "
-#~ "Konfiguration aus Sicherheitsgründen zurückgerollt. Wenn die Änderungen "
-#~ "dennoch korrekt sind, kann die Konfiguration ungeprüft "
-
-#~ msgid "Waiting for configuration to get applied… %ds"
-#~ msgstr "Warte auf das Anwenden der Konfiguration… %d Sek."
-
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr ""
-#~ "Hier können öffentliche SSH-Schlüssel reinkopiert werden (einer pro "
-#~ "Zeile)."
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "Passwort erfolgreich geändert!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "Unbekannter Fehler, Passwort nicht geändert!"
-
-#~ msgid "Design"
-#~ msgstr "Design"
-
-#~ msgid "Available packages"
-#~ msgstr "Verfügbare Pakete"
-
-#~ msgid "Bind only to specific interfaces rather than wildcard address."
-#~ msgstr ""
-#~ "Nur auf angegebenen Schnittstellen reagieren, anstatt auf allen "
-#~ "Schnittstellen zu antworten."
-
-#~ msgid ""
-#~ "Build/distribution specific feed definitions. This file will NOT be "
-#~ "preserved in any sysupgrade."
-#~ msgstr ""
-#~ "Konfiguriert die distributionsspezifischen Paket-Repositories. Diese "
-#~ "Konfiguration wird bei Upgrades NICHT gesichert."
-
-#~ msgid ""
-#~ "Custom feed definitions, e.g. private feeds. This file can be preserved "
-#~ "in a sysupgrade."
-#~ msgstr ""
-#~ "Selbst konfigurierte Paket-Repositories, z.B. private oder inoffizielle "
-#~ "Quellen. Diese Konfiguration wird by Upgrades gesichert."
-
-#~ msgid "Custom feeds"
-#~ msgstr "Eigene Repositories"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "Nur Pakete mit folgendem Inhalt anzeigen"
-
-#~ msgid "Distribution feeds"
-#~ msgstr "Distributionsrepositories"
-
-#~ msgid "Download and install package"
-#~ msgstr "Paket herunterladen und installieren"
-
-#~ msgid "Filter"
-#~ msgstr "Filter"
-
-#~ msgid "Find package"
-#~ msgstr "Paket suchen"
-
-#~ msgid "Free space"
-#~ msgstr "Freier Platz"
-
-#~ msgid "General options for opkg"
-#~ msgstr "Allgemeine Optionen für Opkg."
-
-#~ msgid "Install"
-#~ msgstr "Installieren"
-
-#~ msgid "Installed packages"
-#~ msgstr "Installierte Pakete"
-
-# Ich glab das ist so richtiger
-#~ msgid "No package lists available"
-#~ msgstr "Es sind keine Paketlisten vorhanden"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "OPKG-Konfiguration"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "Die Paketlisten sind älter als 24 Stunden"
-
-#~ msgid "Package name"
-#~ msgstr "Paketname"
-
-#~ msgid "Please update package lists first"
-#~ msgstr "Bitte zuerst die Paketlisten aktualisieren"
-
-#~ msgid "Size (.ipk)"
-#~ msgstr "Größe (.ipk)"
-
-#~ msgid "Software"
-#~ msgstr "Paketverwaltung"
-
-#~ msgid "Update lists"
-#~ msgstr "Listen aktualisieren"
-
-#~ msgid "Version"
-#~ msgstr "Version"
-
-#~ msgid "none"
-#~ msgstr "keine"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "DNS-Verarbeitung deaktivieren"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 und IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "nur IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "nur IPv6"
-
-#~ msgid "Lease validity time"
-#~ msgstr "Lease-Gültigkeitsdauer"
-
-#~ msgid "Multicast address"
-#~ msgstr "Multicast-Adresse"
-
-#~ msgid "Protocol family"
-#~ msgstr "Protokollfamilie"
-
-#~ msgid "No chains in this table"
-#~ msgstr "Keine Ketten in dieser Tabelle"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "Konfigurationsdateien sichern"
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Warnung: Konfigurationsdateien werden gelöscht."
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Paarweise: %s / Gruppe: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "Dieses Netzwerk aktivieren"
-
-#~ msgid "Hermes 802.11b Wireless Controller"
-#~ msgstr "Hermes 802.11b W-LAN Adapter"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "Schnittstelle fährt herunter..."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "Schnittstelle neu verbunden"
-
-#~ msgid "Interface shut down"
-#~ msgstr "Schnittstelle heruntergefahren"
-
-#~ msgid "Prism2/2.5/3 802.11b Wireless Controller"
-#~ msgstr "Prism2/2.5/3 802.11b W-LAN Adapter"
-
-#~ msgid "RaLink 802.11%s Wireless Controller"
-#~ msgstr "RaLink 802.11%s W-LAN Adapter"
-
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface"
-#~ msgstr ""
-#~ "Dieses Netzwerk wirklich herunterfahren? Der Kontakt zum Gerät könnte "
-#~ "verloren gehen wenn die Verbindung über dieses Netzwerk erfolgt."
-
-#~ msgid ""
-#~ "Really shutdown interface \"%s\"? You might lose access to this device if "
-#~ "you are connected via this interface."
-#~ msgstr ""
-#~ "Die Schnitstelle \"%s\" wirklich herunterfahren?\n"
-#~ "Der Zugriff auf das Gerät könnte verlorengehen wenn Sie über diese "
-#~ "Schnittstelle verbunden sind."
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "Verbinde Schnittstelle neu"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "Dieses Netzwerk herunterfahren"
-
-#~ msgid "Wireless is disabled or not associated"
-#~ msgstr "WLAN ist deaktiviert oder nicht assoziiert"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "WLAN neu gestartet"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "WLAN heruntergefahren"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "DHCP-Leases"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "DHCPv6-Leases"
-
-#~ msgid ""
-#~ "Really delete this interface? The deletion cannot be undone! You might "
-#~ "lose access to this device if you are connected via this interface."
-#~ msgstr ""
-#~ "Diese Schnittstelle wirklich löschen? Der Schritt kann nicht rückgängig "
-#~ "gemacht werden!\n"
-#~ "Der Zugriff auf das Gerät könnte verlorengehen wenn Sie über diese "
-#~ "Schnittstelle verbunden sind."
-
-#, fuzzy
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "Das Netzwerk wirklich herunterfahren?\n"
-#~ "Der Zugriff auf das Gerät könnte verlorengehen wenn Sie über diese "
-#~ "Schnittstelle verbunden sind."
-
-#~ msgid "Sort"
-#~ msgstr "Sortieren"
-
-#~ msgid "help"
-#~ msgstr "Hilfe"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "IPv4 WAN Status"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "IPv6 WAN Status"
diff --git a/package/luci/modules/luci-base/po/el/base.po b/package/luci/modules/luci-base/po/el/base.po
deleted file mode 100644 (file)
index 3086ea9..0000000
+++ /dev/null
@@ -1,6493 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2012-03-31 15:35+0200\n"
-"Last-Translator: Vasilis <acinonyx@openwrt.gr>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: el\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(παράθυρο %d λεπτών, διάστημα %d δευτερολέπτων)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s διαθέσιμα)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(κενό)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(χωρίς προσαρτημένες διεπαφές)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Επιπλέον Πεδίο --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Παρακαλώ επιλέξτε --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- προσαρμοσμένο --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Φορτίο 1 λεπτού:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Φορτίο 15 λεπτών:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Φορτίο 5 λεπτών:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "Θύρα ερωτημάτων <abbr title=\"Σύστημα Ονόματος Τομέα\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "Θύρα εξυπηρετητή <abbr title=\"Σύστημα Ονόματος Τομέα\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"Οι <abbr title=\"Σύστημα Ονόματος Τομέα\">DNS</abbr> εξυπηρετητές θα "
-"ερωτηθούν με την σειρά εμφάνισης στο αρχείο resolvfile"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "Διεύθυνση <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "Πύλη <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "Μάσκα <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"Διεύθυνση <abbr title=\"Internet Protocol Version 6\">IPv6</abbr> ή Δίκτυο "
-"(CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "Πύλη <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "Παραμετροποίηση <abbr title=\"Light Emitting Diode\">LED</abbr>"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "Όνομα <abbr title=\"Light Emitting Diode\">LED</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "Διεύθυνση <abbr title=\"Media Access Control\">MAC</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"<abbr title=\"μέγιστο\">Μεγ.</abbr> πλήθος <abbr title=\"Πρωτόκολλο "
-"Παραμετροποίησης Δυναμικού Συστήματος\">DHCP</abbr> leases"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"μέγιστο\">Μεγ.</abbr> μέγεθος πακέτου <abbr title=\"Μηχανισμοί "
-"επεκτάσεων για Συστήματα Ονόματος Τομέα\">EDNS0</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"μέγιστο\">Μεγ.</abbr> πλήθος ταυτόχρονων ερωτηματων"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "Όριο επαναδοκιμών ARP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "Γέφυρες ΑΤΜ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "ATM Εικονικό Κανάλι Αναγνωριστή (VCI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "ATM Εικονικό μονοπάτι Αναγνωριστή (VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"Οι γέφυρες ATM αποκαλύπτουν ενθυλακωμένες ethernet σε συνδέσεις AAL5 σαν "
-"εικονικές διεπαφές δικτύου Linux, οι οποίες μπορούν να χρησιμοποιηθούν σε "
-"συνδυασμό με DHCP ή PPP για την κλήση προς τον παροχέα δικτύου."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "Αριθμός συσκευής ATM"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Συγκεντρωτής Πρόσβασης "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Σημείο Πρόσβασης"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Ενέργειες"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-"Ενεργές Διαδρομές <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-"Ενεργές Διαδρομές <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Ενεργές Συνδέσεις"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Προσθήκη"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-"Προσθήκη κατάληξης τοπικού τομέα για ονόματα εξυπηρετούμενα από αρχεία hosts "
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Προσθήκη νέας διεπαφής..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Επιπλέον αρχεία Hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Διεύθυνση"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Διεύθυνση για πρόσβαση σε την τοπική γέφυρα αναμετάδοσης"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Διαχείριση"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Προχωρημένες Ρυθμίσεις"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Ειδοποίηση"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-"Επιτρέπει την εξουσιοδότηση <abbr title=\"Secure Shell\">SSH</abbr> με "
-"κωδικό πρόσβασης"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Να επιτρέπονται όλες, εκτός από αυτές στη λίστα"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Να επιτρέπονται μόνο αυτές στην λίστα"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Να επιτρέπεται το localhost"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"Να επιτρέπεται σε απομακρυσμένα συστήματα να συνδέονται σε τοπικά "
-"προωθημένες SSH θύρες"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Να επιτρέπονται root συνδέσεις με κωδικό πρόσβασης"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr ""
-"Να επιτρέπεται στον χρήστη <em>root</em> να συνδέετε με κωδικό πρόσβασης"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-"Να επιτρέπονται απαντήσεις από ανώτερο επίπεδο εντός του εύρους 127.0.0.0/8, "
-"π.χ. για υπηρεσίες RBL"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Κεραία 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Κεραία 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Οιαδήποτε ζώνη"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Συνδεδεμένοι Σταθμοί"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Εξουσιοδότηση"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Κύριος"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Απαιτείται Εξουσιοδότηση"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Αυτόματη Ανανέωση"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Διαθέσιμο"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Μέσος Όρος:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Πίσω"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Πίσω προς Επισκόπηση"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Πίσω προς παραμετροποίηση"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Πίσω προς επισκόπηση"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Πίσω στα αποτελέσματα σάρωσης"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Αποθήκευση"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Αντίγραφο ασφαλείας / Εγγραφή FLASH Υλικολογισμικό"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Λίστα αρχείων για αντίγραφο ασφαλείας"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-#, fuzzy
-msgid "Bad address specified!"
-msgstr "Μη έγκυρη διεύθυνση!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Παρακάτω είναι η προκαθορισμένη λίστα αρχείων για αντιγραφή ασφαλείας. "
-"Αποτελείτε από αλλαγμένα αρχεία παραμετροποίησης σημαδεμένα από το opkg, "
-"ουσιώδη βασικά αρχεία καθώς και καθορισμένα από το χρήστη μοτίβα αντιγράφων "
-"ασφαλείας."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Ρυθμός δεδομένων"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Παράκαμψη Ψευδούς Τομέα NX"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Γέφυρα"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Γεφύρωμα διεπαφών"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Αριθμός μονάδας γέφυρας"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Ανέβασμα κατά την εκκίνηση"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Χρήση CPU (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Ακύρωση"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Αλυσίδα"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Αλλαγές"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Αλλαγές εφαρμόστηκαν."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Αλλάζει τον κωδικό διαχειριστή για πρόσβαση στη συσκευή"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Κανάλι"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Έλεγχος"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Άθροισμα Ελέγχου"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Επιλέξατε την ζώνη τείχους προστασίας που επιθυμητέ να αναθέσετε σε αυτήν "
-"την διεπαφή. Επιλέξτε <em>απροσδιόριστο</em> για να αφαιρέσετε την διεπαφή "
-"από την συσχετισμένη ζώνη ή συμπληρώστε το <em>δημιουργία</em> πεδίο για να "
-"προσδιορίσετε μία νέα ζώνη και να προσαρτήσετε την διεπαφή σε αυτό."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Κλικ στο \"Δημιουργία αρχείου\" για να κατεβάσετε ένα tar αρχείο με τα "
-"τρέχοντα αρχεία παραμετροποίησης."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Πελάτης"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "Αναγνωριστικό πελάτη που αποστέλλετε κατά την αίτηση DHCP"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Κλείσιμο, μη ενεργών συνδέσεων μετά το πέρας του ορισμένου αριθμού "
-"δευτερολέπτων, χρησιμοποιήστε 0 για να εξακολουθούν να υφίστανται επ' "
-"αόριστον"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Κλείσιμο λίστας..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Συλλογή δεδομένων..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Εντολή"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Κοινή Παραμετροποίηση"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Παραμετροποίηση"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Επιβεβαίωση"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Σύνδεση"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Συνδεδεμένος"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Όριο Συνδέσεων"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Συνδέσεις"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Χώρα"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Κωδικός Χώρας"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Κάλυψη της ακόλουθης διεπαφής"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Κάλυψη των ακόλουθων διεπαφών"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Δημιουργία / Ανάθεση ζώνης τείχους προστασίας"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Δημιουργία Διεπαφής"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Επίπεδο Καταγραφής Cron"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Ρυθμίζει, αν είναι δυνατόν, την συμπεριφορά των <abbr title=\"Light Emitting "
-"Diode\">LED</abbr> της συσκευής."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "Εξυπηρετητής DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP και DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "Πελάτης DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "Επιλογές DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "Προωθήσεις DNS"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Αποσφαλμάτωση"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "Προεπιλογή %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Προεπιλεγμένη πύλη"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Προεπιλεγμένη κατάσταση"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Ορίστε ένα όνομα για αυτό το δίκτυο."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Ορίστε επιπλέον επιλογές DHCP, που διαφημίζουν διαφορετικούς εξυπηρετητές "
-"DNS στους πελάτες, για παράδειγμα \"<code>6,192.168.2.1,192.168.2.2</code>\"."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Διαγραφή"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Διαγραφή αυτού του δικτύου"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Περιγραφή"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Προορισμός"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Συσκευή"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Παραμετροποίηση Συσκευής"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Διαγνωστικά"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Κατάλογος"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Απενεργοποίηση"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Απενεργοποίηση <abbr title=\"Πρωτόκολλο Δυναμικής Απόδοσης Διεύθυνσης"
-"\">DHCP</abbr> για αυτή τη διεπαφή."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Απενεργοποιημένο"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "Αγνόησε τις απαντήσεις ανοδικής ροής RFC1918"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Βελτιστοποίηση Απόστασης"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Απόσταση σε μέτρα από το πιο απομακρυσμένο μέλος του δικτύου."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Διαφορική Λήψη"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Ο Dnsmasq είναι ένας συνδυασμός εξυπηρετητή <abbr title=\"Πρωτόκολλο "
-"Δυναμικής Απόδοσης Παραμέτρων Συστήματος\">DHCP</abbr> και προωθητή<abbr "
-"title=\"Σύστημα Ονόματος Τομέα\">DNS</abbr> για τείχη προστασίας <abbr title="
-"\"Μεταφραστή Διεύθυνσης Δικτύου\">NAT</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-"Να μην αποθηκεύονται στη λανθάνουσα μνήμη οι αρνητικές απαντήσεις, π.χ. για "
-"μη υπαρκτούς τομείς."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"Να μην προωθούνται αιτήματα τα οποία δεν μπορούν να απαντηθούν από δημόσιους "
-"εξυπηρετητές ονομάτων"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Απαίτηση για όνομα τομέα"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "Λευκή λίστα τομέων"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Να μην προωθούνται ερωτήματα <abbr title=\"Domain Name System\">DNS</abbr> "
-"χωρίς όνομα τομέα <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Κατέβασμα αντιγράφου ασφαλείας"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Το Dropbear προσφέρει πρόσβαση σε <abbr title=\"Secure Shell\">SSH</abbr> "
-"κέλυφος μέσω δικτύου και έναν ενσωματωμένο εξυπηρετητή <abbr title=\"Secure "
-"Copy\">SCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"Δυναμικό <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Δυναμικό τούνελ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"Δυναμική απόδοση DHCP διευθύνσεων στους πελάτες. Σε περίπτωση "
-"απενεργοποίησης, μόνο πελάτες με στατικα leases θα εξυπηρετούνται."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "Μέθοδος EAP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Επεξεργασία"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Επεξεργασία αυτής της διεπαφής"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Επεξεργασία αυτού του δικτύου"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Έκτακτη ανάγκη"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Ενεργοποίηση"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Ενεργοποίηση <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "Ενεργοποίηση ενημέρωσης δυναμικού τερματικού σημείου HE.net."
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "Ενεργοποίηση διαπραγμάτευσης IPv6 πάνω στη PPP ζεύξη"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Ενεργοποίηση διέλευσης Jumbo Frame"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Ενεργοποίηση εξυπηρετητή TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Ενεργοποίηση λειτουργίας VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Ένεργοποίηση learning and aging"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "Ενεργοποίηση αυτής της προσάρτησης"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "Ενεργοποίηση αυτής της swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Ενεργοποίηση/Απενεργοποίηση"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Ενεργοποιημένο"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Λειτουργία ενθυλάκωσης"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Κρυπτογράφηση"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Διαγράφεται..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Σφάλμα"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Προσαρμογέας Ethernet"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Ethernet Switch"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Λήγει"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-#, fuzzy
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-"Ο ελάχιστος χρόνος λήξεως των διευθύνσεων lease είναι 2 λεπτά (<code>2m</"
-"code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Εξωτερικός εξυπηρετητής καταγραφής συστήματος"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Αρχείο"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "Όνομα αρχείου της εικόνας εκκίνησης που διαφημίζετε στους πελάτες"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Σύστημα Αρχείων"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Φιλτράρισμα ιδιωτικών"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Φιλτράρισμα άχρηστων"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Εύρεση και σύνδεση σε δίκτυο"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Τέλος"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Τείχος Προστασίας"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Ρυθμίσεις Τείχους Προστασίας"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Κατάσταση Τείχους Προστασίας"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Έκδοση Υλικολογισμικού"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Φλασάρισμα Firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Φλασάρισμα εικόνας..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Φλασάρισμα νέας εικόνας υλικολογισμικού"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Λειτουργίες φλασάρισματος"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Φλασάρεται..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Επιβολή"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Επιβολή CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-"Επιβολή DHCP σε αυτό το δίκτυο ακόμα κι αν έχει εντοπιστεί άλλος εξυπηρετητής"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Επιβολή TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Επιβολή TKIP και CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "Προώθηση κίνησης DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Προώθηση κίνησης broadcast"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Μέθοδος προώθησης"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Όριο Κατακερµατισµού"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Bursting Πλαισίων"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Πύλη"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Θύρες πύλης"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Γενικές Ρυθμίσεις"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Μετάβαση στη σχετική σελίδα ρυθμίσεων"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Κρέμασμα"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Εδώ μπορείτε να παραμετροποιήσετε βασικές πλευρές της συσκευής σας όπως το "
-"όνομα υπολογιστή ή τη ζώνη ώρας."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "Κρυφό <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Καταχωρήσεις Υπολογιστών"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr ""
-"<abbr title=\"Internet Protocol Address\">IP</abbr> Υπολογιστή ή Δικτύου"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Όνομα Υπολογιστή"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Ονόματα Υπολογιστών"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "Διεύθυνση IP"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "IPv4 Τείχος Προστασίας"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "Διεύθυνση IPv4"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "Πύλη IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "Μάσκα IPv4"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "IPv4-Διεύθυνση"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "IPv6 Τείχος Προστασίας"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "Διεύθυνση IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "Πύλη IPv6"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6-in-IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Ταυτότητα"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-"Αν οριστεί, προσάρτησε τη συσκευή με βάση το UUID της αντί για το "
-"καθορισμένο όνομα της"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-"Αν οριστεί, προσάρτησε τη συσκευή με βάση την ετικέτα της αντί για το "
-"καθορισμένο όνομα της"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Αν η φυσική μνήμη δεν είναι αρκετή, μη-χρησιμοποιούμενα δεδομένα μπορούν "
-"προσωρινά να εναλλάσσονται σε μία συσκευή swap με αποτέλεσμα περισσότερη "
-"ενεργή <abbr title=\"Random Access Memory\">RAM</abbr>. Η εναλλαγή δεδομένων "
-"είναι μία πολύ αργή διαδικασία αφού η συσκευή swap δεν μπορεί να "
-"προσπελαστεί με τους υψηλούς ρυθμούς μεταφοράς δεδομένων που διαθέτει η "
-"<abbr title=\"Random Access Memory\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Αγνόησε <code>/etc/hosts</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Αγνόησε διεπαφή"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Αγνόησε αρχείο resolve"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "Είσοδος"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Πληροφορίες"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Σενάριο εκκίνησης"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Σενάρια Εκκίνησης"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Εγκατάσταση πακέτου %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Εγκατάσταση επεκτάσεων πρωτοκόλλου..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Διεπαφή"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Παραμετροποίηση Διεπαφής"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Επισκόπηση Διεπαφής"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "Η διεπαφή επανασυνδέεται..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "Η διεπαφή δεν υπάρχει ή δεν έχει συνδεθεί ακόμη."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Διεπαφές"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Άκυρη τιμή εισόδου"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Άκυρο όνομα χρήστη και/ή κωδικός πρόσβασης! Παρακαλώ προσπαθήστε ξανά."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Φαίνεται πως προσπαθείτε να φλασάρετε μια εικόνα που δεν χωράει στην μνήμη "
-"flash, παρακαλώ επιβεβαιώστε το αρχείο εικόνας!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "Απαιτείται JavaScript!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Διατήρηση ρυθμίσεων"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Καταγραφή Πυρήνα"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Έκδοση Πυρήνα"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Κλειδί"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Κλειδί #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Σκότωμα"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Ετικέτα"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Γλώσσα"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Αρχείο Leases"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Υπόλοιπο χρόνου Lease"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Αφήστε το κενό για να γίνει αυτόματη ανίχνευση"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "Αφήστε το κενό για να γίνει χρήση της τρέχουσας διεύθυνσης WAN"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Υπόμνημα:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Όριο"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Αναμμένο με Ζεύξη"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Φόρτος"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Μέσος όρος φόρτου"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Φόρτωση"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Τοπική διεύθυνση IPv4"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Τοπική διεύθυνση IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Τοπική Ώρα"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Τοπικός εξυπηρετητής"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Τοπικά ερωτήματα"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Επίπεδο εξόδου αρχείων καταγραφής"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Καταγραφή ερωτημάτων"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "Καταγραφή"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Σύνδεση"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Αποσύνδεση"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "MAC-Διεύθυνση"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Φίλτρο MAC Διευθύνσεων"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "MAC-Φίλτρο"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "Λίστα MAC"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "Μέγιστος επιτρεπόμενος αριθμός ενεργών DHCP leases"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "Μέγιστος επιτρεπόμενος αριθμός ταυτόχρονων ερωτημάτων DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "Μέγιστο επιτρεπόμενο μέγεθος EDNS.0 UDP πακέτων"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr ""
-"Μέγιστος αριθμός δευτερολέπτων αναμονής ώστε το modem να καταστεί έτοιμο"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "Μέγιστος αριθμός διευθύνσεων lease"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Μνήμη"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Χρήση Μνήμης (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Μέτρο"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Λειτουργία"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Συσκευή Modem"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Παρακολούθηση"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-#, fuzzy
-msgid "Mount Entry"
-msgstr "Προσάρτηση"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Σημείο Προσάρτησης"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Σημεία Προσάρτησης"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "Σημεία Προσάρτησης - Είσοδος Προσάρτησης"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Τα σημεία προσάρτησης ορίζουν σε ποιο σημείο στο σύστημα αρχείων θα "
-"προσαρτηθεί μία συσκευή μνήμης"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Επιλογές προσάρτησης"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Σημείο προσάρτησης"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Προσαρτημένα συστήματα αρχείων"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Μετακίνηση κάτω"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Μετακίνηση πάνω"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Όνομα"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Όνομα νέας διεπαφής"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Όνομα νέου δικτύου"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Πλοήγηση"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Μάσκα δικτύου"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Δίκτυο"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Εργαλεία Δικτύου"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Επόμενο »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Δεν υπάρχει ρυθμισμένος DHCP εξυπηρετητής για αυτή τη διεπαφή"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Δε βρέθηκαν αρχεία"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Δεν υπάρχουν πληροφορίες διαθέσιμες"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Δεν υπάρχει παραμετροποιημένο δίκτυο σε αυτή τη συσκευή"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "Δεν έχει οριστεί όνομα δικτύου"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Δεν έχει οριστεί κωδικός πρόσβασης!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Δεν υπάρχει κανόνας σε αυτή την αλυσίδα"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Δεν έχει ανατεθεί ζώνη"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Θόρυβος"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Θόρυβος:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Κανένα"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Φυσιολογικό"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Επισήμανση"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"Σε αυτή τη σελίδα μπορείτε να ρυθμίσετε τις διεπαφές δικτύου. Μπορείτε να "
-"γεφυρώσετε πολλαπλές διεπαφές τικάροντας το πεδίο \"γεφύρωμα διεπαφών\" και "
-"εισάγοντας τα ονόματα των διεπαφών δικτύου χωρισμένα με κενά. Μπορείτε "
-"επίσης να χρησιμοποιήσετε παράσταση τύπου <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr> <samp>INTERFACE.VLANNR</samp> (<abbr title="
-"\"παραδείγματος χάριν\">π.χ.</abbr>: <samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Ένα ή περισσότερα πεδία περιέχουν μη έγκυρες τιμές!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Ένα ή περισσότερα πεδία δεν περιέχουν τιμές!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Η επιλογή άλλαξε"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Η επιλογή αφαιρέθηκε"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Επιλογές"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Έξοδος"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Επισκόπηση"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Κάτοχος"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "Ενθυλάκωση PPPoA"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "Απαιτείται το πακέτο libiwinfo!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Πακέτα"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "Μέρος της ζώνης %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Κωδικός Πρόσβασης"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Εξουσιοδότηση με κωδικό πρόσβασης"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Κωδικός Πρόσβασης του Ιδιωτικού Κλειδιού"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Διαδρομή για Πιστοποιητικό CA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "Διαδρομή για Πιστοποιητικό-Πελάτη"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Διαδρομή για Ιδιωτικό Κλειδί"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Εκτέλεση επανεκκίνησης"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Διενέργεια αρχικοποίησης"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Πκτ."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Παρακαλώ εισάγετε όνομα χρήστη και κωδικό πρόσβασης."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Πολιτική"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Θύρα"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-#, fuzzy
-msgid "Prevents client-to-client communication"
-msgstr "Αποτρέπει την επικοινωνία μεταξύ πελατών"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Συνέχεια"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Εργασίες"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Πρωτ."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Πρωτόκολλο"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Πρωτόκολλο νέας διεπαφής"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "Η υποστήριξη πρωτοκόλλου δεν έχει εκγατασταθεί"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Ψευδό Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "Όριο RTS/CTS"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Διάβασμα του <code>/etc/ethers</code> για την παραμετροποίηση του "
-"εξυπηρετητή <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "Αρχικοποίηση όλων των αλλαγών;"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "Αλλαγή πρωτοκόλλου;"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Συνδέσεις πραγματικού χρόνου"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Γραφήματα πραγματικού χρόνου"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Κίνηση πραγματικού χρόνου"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Επανεκκίνηση"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Επανεκκίνηση..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Επανεκκίνηση του λειτουργικού συστήματος της συσκευής σας"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Λήψη"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Κεραία Λήψης"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Επανασύνδεση της διεπαφής"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Αναφορές"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "Απομακρυσμένη διεύθυνση IPv4"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Αφαίρεση"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Επανάληψη σάρωσης"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Αντικατάσταση καταχώρησης"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Αντικατάσταση ρυθμίσεων ασύρματης σύνδεσης"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Αρχικοποίηση"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Αρχικοποίηση Μετρητών"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Αρχικοποίηση στις προεπιλεγμένες τιμές"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Αρχεία Resolv και Hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "Αρχείο Resolve"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Επανεκκίνηση"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Επανεκκίνηση Τείχους Προστασίας"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Επαναφορά Αντίγραφου Ασφαλείας"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Επαναφορά αντιγράφου ασφαλείας"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Αναίρεση"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Root"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "Κατάλογος Root για αρχεία που σερβίρονται μέσω TFTP"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Κωδικός Πρόσβασης Δρομολογητή"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-#, fuzzy
-msgid "Routes"
-msgstr "Διαδρομές"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Οι διαδρομές ορίζουν τη διεπαφή και πύλη από την οποία κάποιος υπολογιστής ή "
-"δίκτυο μπορεί να είναι προσβάσιμο/ς."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "Εκτέλεση ελέγχου του συστήματος αρχείων πριν προσαρτηθεί η συσκευή"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Εκτέλεση ελέγχου συστήματος αρχείων"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "Πρόσβαση SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "Κλειδιά SSH"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Αποθήκευση"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Αποθήκευση & Εφαρμογή"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Σάρωση"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Προγραμματισμένες Εργασίες"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "Δείτε το manpage του \"mount\" για λεπτομέρειες"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-#, fuzzy
-msgid "Separate Clients"
-msgstr "Απομόνωση Πελατών"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Ρυθμίσεις Εξυπηρετητή"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Όνομα Υπηρεσίας"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Είδος Υπηρεσίας"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Υπηρεσίες"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "Ρύθμιση Εξυπηρετητή DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Απενεργοποίηση αυτής της διεπαφής"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Σήμα"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Σήμα:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Μέγεθος"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Παράκαμψη"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Παράκαμψη σε περιεχόμενο"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Παράκαμψη σε πλοήγηση"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Κάποια πεδία δεν είναι έγκυρα, δεν μπορούν να αποθηκευτούν οι τιμές!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Πηγή"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-#, fuzzy
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr ""
-"Προσδιορίζει την θύρα ακρόασης αυτού του στιγμιοτύπου <em>Dropbear</em>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Ορίστε το κρυφό κλειδί κρυπτογράφησης."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Αρχή"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Προτεραιότητα εκκίνησης"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Εκκίνηση"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Στατικές Διαδρομές IPv4"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Στατικές Διαδρομές IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Στατικά Leases"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Στατικές Διαδρομές"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Στατική διεύθυνση"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Κατάσταση"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Αυστηρή σειρά"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Υποβολή"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Switch"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Συγχρονισμός..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Σύστημα"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Καταγραφή Συστήματος"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Ιδιότητες Συστήματος"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "Ρυθμίσεις TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Πίνακας"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Στόχος"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Τερματισμός"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"Οι επιτρεπόμενοι χαρακτήρες είναι: <code>A-Z</code>, <code>a-z</code>, "
-"<code>0-9</code> και <code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"Το αρχείο συσκευής της μνήμης ή του διαμέρισματος (<abbr title="
-"\"παραδείγματος χάρην\">π.χ.</abbr> <code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"Το σύστημα αρχείων που χρησιμοποιήθηκε για διαμόρφωση (<abbr title="
-"\"παραδείγματος χάρην\">π.χ.</abbr> <samp><abbr title=\"Third Extended "
-"Filesystem\">ext3</abbr></samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "Οι παρακάτω αλλαγές έχουν αναιρεθεί"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "Οι παρακάτω κανόνες είναι αυτή τη στιγμή ενεργοί σε αυτό το σύστημα."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "Το παρεχόμενο όνομα δικτύου δεν είναι μοναδικό"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"Το σύστημα φλασάρετε τώρα.<br /> ΜΗ ΣΒΗΣΕΤΕ ΤΗΝ ΣΥΣΚΕΥΗ!<br /> Περιμένετε "
-"λίγα λεπτά για να δοκιμάσετε επανασύνδεση. Ανάλογα με τις ρυθμίσεις σας, "
-"είναι πιθανό να χρειαστεί να ανανεώσετε την διεύθυνση του υπολογιστή σας για "
-"να αποκτήσετε ξανά πρόσβαση στη συσκευή."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"Η εικόνα που ανεβάσατε δεν περιέχει κάποια υποστηριζόμενη μορφή. Βεβαιωθείτε "
-"ότι επιλέξατε την γενική μορφή εικόνας για την πλατφόρμα σας."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Εμφάνιση"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Δεν υπάρχουν ενεργά leases."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"Αυτός είναι ο μόνος <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr> στο τοπικό δίκτυο"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-"Αυτό είναι το crontab του συστήματος στο οποίο μπορούν να οριστούν "
-"προγραμματισμένες εργασίες."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"Αυτή η λίστα δίνει μία εικόνα των τρέχοντων εργασιών συστήματος και της "
-"κατάστασής τους."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr ""
-"Αυτή η σελίδα δίνει μία εικόνα για τις τρέχουσες ενεργές συνδέσεις δικτύου."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Αυτό το τμήμα δεν περιέχει τιμές ακόμη"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Ζώνη ώρας"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. Για να επαναφέρετε το υλικολογισμικό στην αρχική του "
-"κατάσταση, κάντε κλικ στο \"Εκτέλεσε επαναφορά\" (δυνατό μόνο σε squashfs "
-"εικόνες)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Διαθέσιμο Συνολικά"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Κίνηση"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Μεταφέρθηκαν"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Ρυθμός Εκπομπής"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Εκπομπή"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Ισχύς Εκπομπής"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Κεραία Εκπομπής"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Διεπαφή Τούνελ"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Ισχύς Εκπομπής"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Τύπος"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "Συσκευή USB"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Άγνωστο"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Μη-αποθηκευμένες Αλλαγές"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Το Αρχείο Ανέβηκε"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Χρόνος εν λειτουργία"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Χρήση <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "Χρήση πύλης DHCP"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Χρήση προεπιλεγμένης πύλης"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Σε χρήση"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "Χρησιμοποιούμενη Υποδοχή Κλειδιού"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Όνομα Χρήστη"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "Εξυπηρετητής VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "Μοιραζόμενο κλειδί WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "Κωδική φράση WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "Υποστήριξη WMM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "Κωδική φράση WPA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Προειδοποίηση"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Ασύρματο"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Ασύρματος Προσαρμογέας"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Ασύρματο Δίκτυο"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Επισκόπηση Ασύρματου Δικτύου"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Ασφάλεια Ασύρματου Δικτύου"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "Το ασύρματο δίκτυο είναι απενεργοποιημένο"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "Το ασύρματο δίκτυο μη συνδεδεμένο"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "Το ασύρματο δίκτυο επανεκκινείται..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "Το ασύρματο δίκτυο είναι ανενεργό"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "Το ασύρματο δίκτυο είναι ενεργό"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Καταγραφή των ληφθέντων DNS αιτήσεων στο syslog"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Μπορείτε να ενεργοποιήσετε ή να απενεργοποιήσετε σενάρια εκκίνησης εδώ. Οι "
-"αλλαγές θα εφαρμοστούν αφού επανεκκινήσετε τη συσκευή.<br /"
-"><strong>Προειδοποίηση: Αν απενεργοποιήσετε απαραίτητα σενάρια εκκίνησης "
-"όπως το \"network\", η συσκευή σας μπορεί να καταστεί μη-προσβάσιμη!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "αυτόματα"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-#, fuzzy
-msgid "creates a bridge over specified interface(s)"
-msgstr "δημιουργεί μία γέφυρα μεταξύ των ορισμένων διεπαφών"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "ανενεργό"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"αρχείο όπου θα αποθηκεύονται τα Leases του <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "προώθηση"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "αν ο στόχος είναι ένα δίκτυο"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "είσοδος"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "τοπικό αρχείο <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "όχι"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "κλειστό"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "ανοιχτό"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "απεριόριστα"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "μη-καθορισμένο"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "μη-καθορισμένο -ή- δημιουργείστε:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "ναι"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Πίσω"
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "Ο κωδικός πρόσβασης άλλαξε επιτυχώς!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "Άγνωστο Λάθος. ο κωδικός πρόσβασης δεν άλλαξε!"
-
-#~ msgid "Design"
-#~ msgstr "Εμφάνιση"
-
-#~ msgid "Available packages"
-#~ msgstr "Διαθέσιμα πακέτα"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "Εμφάνιση μόνο πακέτων που περιέχουν"
-
-#~ msgid "Download and install package"
-#~ msgstr "Κατέβασμα και εγκατάσταση πακέτου"
-
-#~ msgid "Filter"
-#~ msgstr "Φίλτρο"
-
-#~ msgid "Find package"
-#~ msgstr "Εύρεση πακέτου"
-
-#~ msgid "Free space"
-#~ msgstr "Ελεύθερος χώρος"
-
-#~ msgid "Install"
-#~ msgstr "Εγκατάσταση"
-
-#~ msgid "Installed packages"
-#~ msgstr "Εγκατεστημένα πακέτα"
-
-#~ msgid "No package lists available"
-#~ msgstr "Δεν υπάρχουν διαθέσιμες λίστες πακέτων"
-
-#~ msgid "OK"
-#~ msgstr "Εντάξει"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "Παραμετροποίηση OPKG"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "Οι λίστες πακέτων έχουν να ανανεωθούν πάνω από 24 ώρες"
-
-#~ msgid "Package name"
-#~ msgstr "Όνομα πακέτου"
-
-#~ msgid "Software"
-#~ msgstr "Λογισμικό"
-
-#~ msgid "Version"
-#~ msgstr "Έκδοση"
-
-#~ msgid "none"
-#~ msgstr "κανένα"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "Απενεργοποίηση ρυθμίσεων DNS"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 και IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "Μόνο IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "Μόνο IPv6"
-
-#~ msgid "Multicast address"
-#~ msgstr "Διεύθυνση Multicast"
-
-#~ msgid "Protocol family"
-#~ msgstr "Οικογένεια πρωτοκόλλου"
-
-#~ msgid "No chains in this table"
-#~ msgstr "Δεν υπάρχουν αλυσίδες σε αυτόν τον πίνακα"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "Τα αρχεία παραμετροποίησης θα διατηρηθούν."
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Σημείωση: Τα αρχεία παραμετροποίησης θα διαγραφούν."
-
-#~ msgid "Activate this network"
-#~ msgstr "Ενεργοποίηση αυτού του δικτύου"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "Η διεπαφή απενεργοποιείται..."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "Η διεπαφή επανασυνδέθηκε"
-
-#~ msgid "Interface shut down"
-#~ msgstr "Η διεπαφή απενεργοποιήθηκε"
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "Επανασύνδεση της διεπαφής"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "Απενεργοποίηση αυτού του δικτύου"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "Το ασύρματο δίκτυο επανεκκινήθηκε"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "Το ασύρματο δίκτυο τερματίστηκε"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "DHCP Leases"
-
-#~ msgid "Sort"
-#~ msgstr "Ταξινόμηση"
-
-#~ msgid "help"
-#~ msgstr "βοήθεια"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "Κατάσταση IPv6 WAN"
-
-#~ msgid "Apply"
-#~ msgstr "Εφαρμογή"
-
-#~ msgid "Applying changes"
-#~ msgstr "Εφαρμογή αλλαγών"
-
-#~ msgid "Configuration applied."
-#~ msgstr "Η Παραμετροποίηση εφαρμόστηκε."
-
-#~ msgid "Save &#38; Apply"
-#~ msgstr "Αποθήκευση &#38; Εφαρμογή"
-
-#~ msgid "The following changes have been committed"
-#~ msgstr "Οι παρακάτω αλλαγές έχουν υποβληθεί"
-
-#~ msgid "Action"
-#~ msgstr "Ενέργεια"
-
-#~ msgid "Buttons"
-#~ msgstr "Κουμπιά"
-
-#~ msgid "Maximum hold time"
-#~ msgstr "Μέγιστος χρόνος κράτησης"
-
-#~ msgid "Minimum hold time"
-#~ msgstr "Ελάχιστος χρόνος κράτησης"
-
-#~ msgid "Path to executable which handles the button event"
-#~ msgstr "Διαδρομή για το εκτελέσιμο που χειρίζεται το γεγονός του κουμπιού"
-
-#~ msgid "Leasetime"
-#~ msgstr "Χρόνος Lease"
-
-#, fuzzy
-#~ msgid "automatic"
-#~ msgstr "στατικό"
-
-#~ msgid "AR Support"
-#~ msgstr "Υποστήριξη AR"
-
-#~ msgid "Background Scan"
-#~ msgstr "Σάρωση Παρασκηνίου"
-
-#~ msgid "Compression"
-#~ msgstr "Συμπίεση"
-
-#~ msgid "Disable HW-Beacon timer"
-#~ msgstr "Απενεργοποίηση χρονιστή HW-Beacon"
-
-#~ msgid "Do not send probe responses"
-#~ msgstr "Να μην στέλνονται απαντήσεις σε probes"
-
-#~ msgid "Fast Frames"
-#~ msgstr "Γρήγορα Πλαίσια"
-
-#~ msgid "Maximum Rate"
-#~ msgstr "Μέγιστος Ρυθμός"
-
-#~ msgid "Minimum Rate"
-#~ msgstr "Ελάχιστος Ρυθμός"
-
-#~ msgid "Multicast Rate"
-#~ msgstr "Ρυθμός Multicast"
-
-#~ msgid "Outdoor Channels"
-#~ msgstr "Εξωτερικά Κανάλια"
-
-#~ msgid "Regulatory Domain"
-#~ msgstr "Ρυθμιστική Περιοχή"
-
-#~ msgid "Separate WDS"
-#~ msgstr "Ξεχωριστά WDS"
-
-#~ msgid "Turbo Mode"
-#~ msgstr "Λειτουργία Turbo"
-
-#~ msgid "XR Support"
-#~ msgstr "Υποστήριξη XR"
-
-#~ msgid "An additional network will be created if you leave this unchecked."
-#~ msgstr "Ένα επιπλέον δίκτυο θα δημιουργηθεί εάν αυτό αφεθεί κενό"
-
-#~ msgid "Port %d"
-#~ msgstr "Θύρα %d"
-
-#~ msgid "VLAN Interface"
-#~ msgstr "Διεπαφή VLAN"
diff --git a/package/luci/modules/luci-base/po/en/base.po b/package/luci/modules/luci-base/po/en/base.po
deleted file mode 100644 (file)
index 6840537..0000000
+++ /dev/null
@@ -1,6377 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2012-04-03 08:44+0200\n"
-"Last-Translator: juhosg <juhosg@openwrt.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: en\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(%d minute window, %d second interval)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s available)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(empty)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(no interfaces attached)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Additional Field --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Please choose --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- custom --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "1 Minute Load:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "15 Minute Load:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "5 Minute Load:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "ARP retry threshold"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "ATM Bridges"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "ATM Virtual Channel Identifier (VCI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "ATM Virtual Path Identifier (VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "ATM device number"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Access Concentrator"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Access Point"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Actions"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Active Connections"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Add"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr "Add local domain suffix to names served from hosts files"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Add new interface..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Additional Hosts files"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Address"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Address to access local relay bridge"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Administration"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Advanced Settings"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Alert"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Allow all except listed"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Allow listed only"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Allow localhost"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr "Allow remote hosts to connect to local SSH forwarded ports"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Allow root logins with password"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "Allow the <em>root</em> user to login with password"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Antenna 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Antenna 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Any zone"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Assign interfaces..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Associated Stations"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Authentication"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Authoritative"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Authorization Required"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Auto Refresh"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Available"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Average:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Back"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Back to Overview"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Back to configuration"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Back to overview"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Back to scan results"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Backup / Flash Firmware"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Backup file list"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Bad address specified!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Bitrate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Bogus NX Domain Override"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Bridge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Bridge interfaces"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Bridge unit number"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Bring up on boot"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Buffered"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "CPU usage (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Cancel"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Chain"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Changes"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Changes applied."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Changes the administrator password for accessing the device"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Channel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Check"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Checksum"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Cipher"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Client"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "Client ID to send when requesting DHCP"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Close list..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Collecting data..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Command"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Common Configuration"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Configuration"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Confirmation"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Connect"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Connected"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Connection Limit"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Connections"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Country"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Country Code"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Cover the following interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Cover the following interfaces"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Create / Assign firewall-zone"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Create Interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Create a bridge over multiple interfaces"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Critical"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Cron Log Level"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Custom Interface"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "DHCP Server"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP and DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "DHCP client"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "DHCP-Options"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "DNS forwardings"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Debug"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "Default %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Default gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Default state"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Define a name for this network."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Delete"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Delete this network"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Description"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Destination"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Device"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Device Configuration"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Diagnostics"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Directory"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Disabled"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Distance Optimization"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Distance to farthest network member in meters."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Diversity"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Domain required"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Don&#39;t forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests "
-"without <abbr title=\"Domain Name System\">DNS</abbr>-Name"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "EAP-Method"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Edit"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Enable/Disable"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Enabled"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "Enables the Spanning Tree Protocol on this bridge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Encryption"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Error"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Ethernet Adapter"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Ethernet Switch"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Filesystem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Filter private"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Filter useless"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Firewall"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Firewall Settings"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Firewall Status"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Flash Firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Force"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Fragmentation Threshold"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Frame Bursting"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "General Setup"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Go to relevant configuration page"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Hang Up"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Host entries"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Hostname"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Hostnames"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "IP address"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identity"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Ignore <code>/etc/hosts</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Ignore interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Ignore resolve file"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "In"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Initscript"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Initscripts"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Interfaces"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Invalid input value"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Invalid username and/or password! Please try again."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"It appears that you try to flash an image that does not fit into the flash "
-"memory, please verify the image file!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Join Network"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Kernel Log"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Key"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Kill"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Language"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Leasefile"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Leasetime remaining"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Limit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Link On"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Load"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Local Time"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Localise queries"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Log queries"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Login"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Logout"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "MAC-Address Filter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "MAC-Filter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "MAC-List"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Memory"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Memory usage (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Metric"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Mode"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Modem device"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Monitor"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Mount Point"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Mount Points"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Mounted file systems"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Name"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Name of the new network"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navigation"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Network"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "No rules in this chain."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Noise"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Options"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Out"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Overview"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Owner"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "PPPoA Encapsulation"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Packets"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Password"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Password authentication"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Password of Private Key"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Path to CA-Certificate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Path to Private Key"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Perform reboot"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Physical Settings"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Pkts."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Please enter your username and password."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Policy"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Port"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Prevents client-to-client communication"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Proceed"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Processes"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protocol"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Pseudo Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "RTS/CTS Threshold"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Reboot"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Reboots the operating system of your device"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Receive"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Receiver Antenna"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "References"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Remove"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Repeat scan"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Replace entry"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Reset"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Reset Counters"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Restart"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Restart Firewall"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Restore backup"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Revert"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Routes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Save"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Save & Apply"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Scan"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Scheduled Tasks"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Separate Clients"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Services"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Signal"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Size"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Skip"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Skip to content"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Skip to navigation"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "Slot time"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Source"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Start"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Start priority"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Static IPv4 Routes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Static IPv6 Routes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Static Leases"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Static Routes"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Status"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Stop"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Strict order"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Submit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Switch"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "System"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "System Log"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Table"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Target"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Terminate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "The following changes have been reverted"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "The following rules are currently active on this system."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes until you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Theme"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr "This is the system crontab in which scheduled tasks can be defined."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"This list gives an overview over currently running system processes and "
-"their status."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "This page gives an overview over currently active network connections."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "This section contains no values yet"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Timezone"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Traffic"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Transfer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Transmission Rate"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Transmit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Transmit Power"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Transmitter Antenna"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Type"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Unsaved Changes"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Uploaded File"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Uptime"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Use <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Used"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Username"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "WMM Mode"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Wireless Adapter"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Wireless Network"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Wireless Overview"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Wireless Security"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "auto"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "creates a bridge over specified interface(s)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "disable"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "if target is a network"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "unspecified -or- create:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Back"
-
-#~ msgid "Design"
-#~ msgstr "Design"
-
-#~ msgid "Available packages"
-#~ msgstr "Available packages"
-
-#~ msgid "Download and install package"
-#~ msgstr "Download and install package"
-
-#~ msgid "Filter"
-#~ msgstr "Filter"
-
-#~ msgid "Find package"
-#~ msgstr "Find package"
-
-#~ msgid "Install"
-#~ msgstr "Install"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "OPKG-Configuration"
-
-#~ msgid "Package name"
-#~ msgstr "Package name"
-
-#~ msgid "Software"
-#~ msgstr "Software"
-
-#~ msgid "Version"
-#~ msgstr "Version"
-
-#~ msgid "none"
-#~ msgstr "none"
-
-#~ msgid "No chains in this table"
-#~ msgstr "No chains in this table"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "Configuration files will be kept."
-
-#~ msgid "Activate this network"
-#~ msgstr "Activate this network"
-
-#~ msgid "Backup / Restore"
-#~ msgstr "Backup / Restore"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "DHCP Leases"
-
-#~ msgid "help"
-#~ msgstr "help"
-
-#~ msgid "Apply"
-#~ msgstr "Apply"
-
-#~ msgid "Applying changes"
-#~ msgstr "Applying changes"
-
-#~ msgid "Configuration applied."
-#~ msgstr "Configuration applied."
-
-#~ msgid "Action"
-#~ msgstr "Action"
-
-#~ msgid "Buttons"
-#~ msgstr "Buttons"
-
-#~ msgid "Handler"
-#~ msgstr "Handler"
-
-#~ msgid "Maximum hold time"
-#~ msgstr "Maximum hold time"
-
-#~ msgid "Minimum hold time"
-#~ msgstr "Minimum hold time"
-
-#~ msgid "Specifies the button state to handle"
-#~ msgstr "Specifies the button state to handle"
-
-#~ msgid "Leasetime"
-#~ msgstr "Leasetime"
-
-#~ msgid "automatic"
-#~ msgstr "automatic"
-
-#~ msgid "AR Support"
-#~ msgstr "AR Support"
-
-#~ msgid "Background Scan"
-#~ msgstr "Background Scan"
-
-#~ msgid "Compression"
-#~ msgstr "Compression"
-
-#~ msgid "Disable HW-Beacon timer"
-#~ msgstr "Disable HW-Beacon timer"
-
-#~ msgid "Do not send probe responses"
-#~ msgstr "Do not send probe responses"
-
-#~ msgid "Fast Frames"
-#~ msgstr "Fast Frames"
-
-#~ msgid "Maximum Rate"
-#~ msgstr "Maximum Rate"
-
-#~ msgid "Minimum Rate"
-#~ msgstr "Minimum Rate"
-
-#~ msgid "Multicast Rate"
-#~ msgstr "Multicast Rate"
-
-#~ msgid "Outdoor Channels"
-#~ msgstr "Outdoor Channels"
-
-#~ msgid "Regulatory Domain"
-#~ msgstr "Regulatory Domain"
-
-#~ msgid "Separate WDS"
-#~ msgstr "Separate WDS"
-
-#~ msgid "Turbo Mode"
-#~ msgstr "Turbo Mode"
-
-#~ msgid "XR Support"
-#~ msgstr "XR Support"
-
-#~ msgid "An additional network will be created if you leave this unchecked."
-#~ msgstr "An additional network will be created if you leave this unchecked."
-
-#~ msgid "CPU"
-#~ msgstr "CPU"
diff --git a/package/luci/modules/luci-base/po/es/base.po b/package/luci/modules/luci-base/po/es/base.po
deleted file mode 100644 (file)
index 4a4c296..0000000
+++ /dev/null
@@ -1,6637 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2014-05-04 11:38+0200\n"
-"Last-Translator: José Vicente <josevteg@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: es\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(ventana de %d minutos, intervalo de %d segundos)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s está disponible)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(vacío)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(sin interfaces conectados)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Campo Adicional --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Elija, por favor --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- introducir --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Carga a 1 minuto:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Carga a 15 minutos:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Carga a 5 minutos:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr ""
-"<abbr title=\"Identificador de conjunto de servicios básicos\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "Puerto de consultas al <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "Puerto del servidor <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"Los servidores de <abbr title=\"Domain Name System\">DNS</abbr> se consultan "
-"en el orden en que aparecen en el fichero resolv"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-"<abbr title=\"Identificador de conjunto de servicios extendidos\">ESSID</"
-"abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "Dirección <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr ""
-"Puerta de enlace <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "Máscara de red <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"Dirección o red (CIDR)<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr ""
-"Puerta de enlace <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "Configuración de <abbr title=\"Light Emitting Diode\">LEDs</abbr>"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "Nombre del <abbr title=\"Light Emitting Diode\">LED</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "Dirección <abbr title=\"Media Access Control\">MAC</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"Máximas cesiones <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr "Tamaño máximo de paquetes EDNS0"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "Máximo número de consultas concurrentes"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "Umbral de reintento ARP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "Puente ATM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "Identificador de canal virtual ATM (VCI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "Identificador de camino virtual ATM (VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"Los puentes ATM exponen conexiones AAL5 ethernet encapsuladas como "
-"interfaces de red Linux que se pueden usar junto a DHCP o PPP para conectar "
-"a la red del proveedor."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "Número de dispositivo ATM"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Concentrador de acceso"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Punto de Acceso"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Acciones"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "Rutas activas <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "Rutas activas <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Conexiones activas"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Cesiones DHCP activas"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Cesiones DHCPv6 activas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Añadir"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-"Añadir el sufijo de dominio local a los nombres servidos desde el fichero de "
-"máquinas"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Añadir nueva interfaz..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Ficheros de máquinas adicionales"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Dirección"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Dirección del puente relé local"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Administración"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Configuración avanzada"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Alerta"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-"Permitir autenticación de contraseña via <abbr title=\"Secure Shell\">SSH</"
-"abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Permitir a todos excepto a los de la lista"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Permitir a los pertenecientes en la lista"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Permitir a la propia máquina"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr "Permitir a máquinas remotas conectar a puestos SSH locales traspasados"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Permitir conexiones a root con contraseña"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "Permitir al usuario <em>root</em> conectar con contraseña"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-"Permitir respuestas en el rango 127.0.0.0/8, por ejemplo para servicios RBL"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Antena 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Antena 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Configuración de la antena"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Cualquier zona"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Asigne interfaces..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Estaciones asociadas"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Autentificación"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Autorizado"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Conéctese"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Autorefresco"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Disponible"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Media:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Volver"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Volver al resumen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Volver a la configuración"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Volver al resumen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Volver a resultados de la exploración"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Salvar"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Copia de seguridad / Grabar firmware"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Salvar lista de ficheros"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "¡Dirección no válida!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Lista de ficheros a los que hacer copia de seguridad. Es una lista de "
-"ficheros de configuración cambiados por ficheros marcados por opkg, ficheros "
-"esenciales base y los patrones de copia de seguridad definidos por el "
-"usuario."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Bitrate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Ignorar dominio falso NX"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Puente"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Puentear interfaces"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Número de unidad del puente"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Activar en el arranque"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Controlador inalámbrico 802.11%s Broadcom"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Controlador inalámbrico 802.11 BCM%04x"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "En búfer"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Uso de CPU (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Cadena"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Cambios"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Cambios aplicados."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Cambie la contraseña del administrador para acceder al dispositivo"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Canal"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Comprobar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Comprobación"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Elija la zona del cortafuegos a la que quiere asignar esta interfaz. "
-"Seleccione <em>no especificado</em> para eliminar la interfaz de la zona "
-"asociada o rellene el campo <em>crear</em> para definir una zona nueva a la "
-"que asignarla."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"Elija la red o redes a las que quiere unir esta interfaz inalámbrica o vacíe "
-"el campo <em>crear</em> para definir una red nueva."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Cifrado"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Pulse \"generar archivo\" para descargar un fichero tar con los ficheros de "
-"configuración actuales."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Cliente"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "ID de cliente que se enviará al solicitar DHCP"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Cerrar las conexiones inactivas tras los segundos dados. Use 0 para una "
-"conexión permanente"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Cerrar lista..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Un momento..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Comando"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Configuración común"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Configuración"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Confirmación"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Conectar"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Conectado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Límite de conexión"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Conexiones"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "País"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Código de país"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Cubre el interfaz siguiente"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Cubre los siguientes interfaces"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Crear / Asignar zona de seguridad"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Crear interfaz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Crear un puente sobre múltiples interfaces"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Crítico"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Nivel de registro de cron"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Interfaz propio"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Personaliza el comportamiento de los <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s del dispositivo, si es posible."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "Servidor DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP y DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "Cliente DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "Opciones de DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "Retransmisión DNS"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Depuración"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "%d por defecto"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Gateway por defecto"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Estado por defecto"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Definir un nombre para esta red."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Definir optiones adicionales DHCP, por ejemplo "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" que publica diferentes servidores "
-"DNS a los clientes."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Eliminar"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Borrar esta red"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Descripción"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Destino"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Dispositivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Configuración del dispositivo"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Diagnósticos"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Directorio"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Desactivar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Desactivar <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> "
-"para esta interfaz."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Desactivar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "Descartar respuestas RFC1918 salientes"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Optimización de distancia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Distancia al miembro de la red mas lejana en metros."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Diversidad"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq es un programa que combina un servidor <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr> y un reenviador <abbr title=\"Domain "
-"Name System\">DNS</abbr> para cortafuegos <abbr title=\"Network Address "
-"Translation\">NAT</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr "No guardar respuestas negativas, por ejemplo dominios inexistentes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"No retransmitir peticiones que no se puedan responder por servidores de "
-"nombres públicos"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr "No retransmitir búsquedas inversas para redes locales"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Dominio requerido"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "Lista blanca de dominios"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"No reenviar peticiones de <abbr title=\"Domain Name System\">DNS</abbr> sin "
-"un nombre de <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Descargar copia de seguridad"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Instancia Dropbear"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear ofrece acceso <abbr title=\"Secure Shell\">SSH</abbr> y un servidor "
-"<abbr title=\"Secure Copy\">SCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> dinámico"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Túnel dinámico"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"Reparte direcciones DHCP dinámicamente a los clientes. Si se desactiva sólo "
-"se servirá a clientes con cesiones estáticas."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "Método EAP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Editar"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Editar esta interfaz"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Editar esta red"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Emergencia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Activar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Activar <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "Activar actualización dinámica de punto final HE.net"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "Activar negociación IPv6 en el enlace PPP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Activar paso de tramas jumbo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "Activar cliente NTP"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Activar servidor TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Activar funcionalidad VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Activar aprendizaje y envejecimiento"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "Active este punto de montaje"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "Activar este swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Activar/Desactivar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Activado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "Activa el protocol STP en este puente"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Modo de encapsulado"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Encriptación"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Borrando..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Error"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Adaptador ethernet"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Switch ethernet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "Expandir nombre de máquina"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Expira"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-#, fuzzy
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-"Tiempo de finalización de direcciones cedidas (mínimo dos minutos: <code>2m</"
-"code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Servidor externo de registro del sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Puerto del servidor externo de registro del sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Fichero"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "Nombre del fichero de imagen de arranque mostrado a los clientes"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Sistema de ficheros"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Filtro privado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Filtro inútil"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Encontrar y unirse a red"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Terminar"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Cortafuegos"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Configuración del cortafuegos"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Estado del cortafuegos"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Versión del firmware"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "Puerto origen fijo para peticiones de DNS salientes"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Grabar firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Grabar imagen..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Grabar imágenes del firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Operaciones de grabado"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Grabando..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Forzar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Forzar CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr "Forzar DHCP en esta red aunque se detecte otro servidor."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Forzar TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Forzar TKIP y CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "Retransmitir tráfico DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Retransmitir tráfico de propagación"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Modo de retransmisión"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Umbral de fragmentación"
-
-# It should be "Frame Bursting" at once!
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Frame Bursting"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Libre"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Sólo GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Pasarela"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Puertos del gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Configuración general"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Configuración general"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Generar archivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "Controlador inalámbrico 802.11%s genérico"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-"La confirmación y la contraseña no coinciden. ¡No se ha cambiado la "
-"contraseña!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Ir a configuración de contraseña..."
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Ir a la página principal de configuración"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "Contraseña HE.net"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Suspender"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Aspectos básicos de su dispositivo como la zona horaria o nombre de máquina."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "Ocultar <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Entradas de máquina"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr "Espera para caducidad de máquinas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr ""
-"Dirección <abbr title=\"Internet Protocol Address\">IP</abbr> de máquina o "
-"red"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Nombre de máquina"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "Nombre de máquina a enviar cuando se solicite DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Nombres de máquina"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "Dirección IP"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "Cortafuegos IPv4"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "Dirección IPv4"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "Propagación IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "Gateway IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "Máscara de red IPv4"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "Longitud de prefijo IPv4"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "Dirección IPv4"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "Cortafuegos IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "Dirección IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "Gateway IPv6"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "Prefijo IPv6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "Longitud de prefijo IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "Dirección IPv6"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6-en-IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6-sobre-IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6-sobre-IPv4 (6to4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identidad"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-"Montar el dispositivo por su UUID en vez de un nodo fijo de dispositivo si "
-"se especifica"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-"Montar el dispositivo por la etiqueta de la partición en vez de por el nodo "
-"fijo de dispositivo si se especifica"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "Si está desmarcado no se configurará una ruta por defecto"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-"Si está desmarcado las direcciones de servidor DNS anunciadas se ignorarán"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Si su dispositivo no tiene memoria <abbr title=\"Random Access Memory\">RAM</"
-"abbr> suficiente, los datos no utilizados pueden ser guardados temporalmente "
-"en un dispositivo de intercambio (swap-device) liberando el espacio que "
-"ocupan. Tenga en cuenta que el intercambio es un proceso lento porque los "
-"dispositivos de intercambio no pueden transferir volúmenes de información a "
-"alta velocidad tal y como hace la memoria <abbr title=\"Random Access Memory"
-"\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Ignorar <code>/etc/hosts</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Ignorar interfaz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Ignorar el fichero resolv"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Imagen"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "Entrada"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "Espera de inactividad"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Entrantes:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Información"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Nombre del script de inicio"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Scripts de inicio"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Instalar el paquete %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Instalar extensiones de protocolo..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Interfaz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Configuración del interfaz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Resumen de interfaces"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "Reconectando interfaz..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "El interfaz no existe o no está aún conectado."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Interfaces"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Error interno del servidor"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Valor ingresado inválido"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr "¡ID VLAN no válido! Sólo se permiten IDs entre %d y %d."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "¡ID VLAN no válido! Sólo se permiten IDs únicos"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr ""
-"¡Nombre de usuario o contraseña no válidos!. Pruebe de nuevo, por favor."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Parece que está intentando grabar una imagen de firmware mayor que la "
-"memoria flash de su equipo. ¡Por favor, verifique el archivo!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "¡Se necesita JavaScript!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Unirse a Red"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "Unirse a una red: Exploración inalámbrica"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Conservar la configuración del router"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Registro del Kernel"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Versión del Kernel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Clave"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Clave #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Matar"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "Servidor L2TP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "Umbral de fracaso en eco LCP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "Intervalo de eco LCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Etiqueta"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Idioma"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Idioma y Estilo"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Archivo de cesiones"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Tiempo de cesión restante"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Dejar vacío para autodetectar"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "Dejar vacío para usar la dirección WAN actual"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Leyenda:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Límite"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Enlace activado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"Lista de servidores <abbr title=\"Domain Name System\">DNS</abbr> a los que "
-"enviar solicitudes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "Lista de dominios a los que se permiten respuestas RFC1918"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr "Lista de máquinas que proporcionan resultados de dominio NX falsos"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr "Escucha solo en la interfaz dada o, si no se especifica, en todas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "Puerto de escucha para consultas DNS entrantes"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Carga"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Carga Media"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Cargando"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Dirección local IPv4"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Dirección local IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Arranque local"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Hora local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Dominio local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-#, fuzzy
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-"Especificación de dominio local. Los nombres que coincidan con este dominio "
-"nunca se retransmiten y se resuelven desde DHCP o ficheros de máquina locales"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-"Sufijo del dominio local que se añade a los nombres DHCP y a las entradas "
-"del fichero de máquinas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Servidor local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-"Localizar nombre de máquina dependiendo de que la subred peticionaria si hay "
-"disponibles múltiples IPs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Localizar consultas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Nivel de registro"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Registrar consultas"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "Registro"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Iniciar sesión"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Cerrar sesión"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr "Dirección cedida más baja como diferencia de la dirección de red."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "Dirección MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Filtro por dirección MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "Filtro por dirección MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "Lista de direcciones MAC"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "Número máximo de cesiones DHCP activas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "Número máximo de consultas DNS concurrentes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "Tamaño máximo de paquetes EDNS.0 paquetes UDP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "Segundos máximos de espera a que el módem esté activo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "Máximas cesiones activas."
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Memoria"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Uso de memoria (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Métrica"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "Extensión de protocolo faltante para %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Modo"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Dispositivo de módem"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "Espera de inicialización del modem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Monitor"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "Entrada de montaje"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Punto de montaje"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Puntos de montaje"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "Puntos de montaje - Entrada de montaje"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "Puntos de montaje - Entrada de intercambio"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Los puntos de montaje definen el directorio en el que un dispositivo de "
-"memoria se unirá al sistema del archivos"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Opciones de montaje"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Punto de montaje"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Sistemas de archivo montados"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Bajar"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Subir"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "Servidores NTP a consultar"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Nombre"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Nombre de la nueva interfaz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Nombre de la nueva red"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navegación"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Máscara de red"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Red"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Utilidades de red"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "Imagen de arranque en red"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Red sin interfaces."
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Siguiente »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "No se ha configurado un servidor DHCP para esta interfaz"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "No se han encontrado ficheros"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "No hay información disponible"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "Sin caché negativa"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "No hay red configurada para este dispositivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "No se ha especificado un nombre de red"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "¡Sin contraseña!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "No hay reglas en esta cadena"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Sin zona asignada"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Ruido"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Ruido:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Ninguno"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Normal"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "No encontrado"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "No asociado"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "No conectado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Aviso"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "NSLookup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "Retraso de desconexión"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"Configure las interfaces de red. Puede hacer puentes con diferentes "
-"interfaces, marcando el campo \"puentear interfaces\" e introduciendo el "
-"nombre de las mismas separadas por espacios. También puede usar la notación "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr>, <samp>INTERFACE."
-"VLANNR</samp> (<abbr title=\"por ejemplo\">Ej.</abbr>: <samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "Retraso de activación"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "¡Debe especificar al menos un nombre de máquina o dirección mac!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "¡Valores no válidos!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "¡Campos vacíos!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Abrir lista..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Opción cambiada"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Opción eliminada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Opciones"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Otros:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Salida"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "Saliente:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "Ignorar dirección MAC"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "Ignorar MTU"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "Ignorar la pasarela en las respuestas DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-"Ignorar la máscara de red enviada a los clientes. Normalmente se calcula "
-"desde la subred desde la que se sirve."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr "Ignorar la tabla usada para rutas internas"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Descripción general"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Propietario"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "Contraseña PAP/CHAP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "Nombre de usuario PAP/CHAP"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "Encapsulación PPPoA"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "¡Se necesita el paquete libiwinfo!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Paquetes"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "Parte de zona %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Contraseña"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Autentificación de contraseña"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Contraseña de la Clave Privada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Ruta al Certificado CA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "Camino al certificado de cliente"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Ruta a la Clave Privada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Pico:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Rearrancar"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Reiniciar"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "Ratio Phy:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Configuración física"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ping"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Paq."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Por favor, introduzca su nombre de usuario y contraseña."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Política"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Puerto"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Estado del puerto:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-"Asumir que el otro estará muerto tras estos fallos de echo LCP, use 0 para "
-"ignorar fallos"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Impide la comunicación cliente a cliente"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Proceder"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Procesos"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protocolo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Protocolo de la nueva interfaz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "No está instalado el soporte al protocolo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "Dar servicio NTP"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "Introduzca una nueva red"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Pseudo Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Calidad"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "Umbral RTS/CTS"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "Ratio RX"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Puerto de contabilidad Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Secreto de contabilidad Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Servidor de contabilidad Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Puerto de autentificación Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Secreto de autentificación Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Servidor de autentificación Radius"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Leer <code>/etc/ethers</code> para configurar el servidor <abbr title="
-"\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"¿Está seguro de borrar esta red inalámbrica?. ¡No será posible deshacer el "
-"borrado!\n"
-"Puede perder el acceso a este dispositivo si está conectado por esta red."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "¿Está seguro de querer reiniciar todos los cambios?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "¿Está seguro de querer cambiar el protocolo?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Conexiones en tiempo real"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Gráficas en tiempo real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Carga en tiempo real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Tráfico en tiempo real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Red inalámbrica en tiempo real"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "Protección contra reasociación"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Rearrancar"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Rearrancando..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Rearranque el sistema operativo de su dispositivo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Recibir"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Antena Receptora"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Reconectar esta interfaz"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Referencias"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "Relé"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "Puente relé"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "Relé entre redes"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "Puente relé"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "Dirección IPv4 remota"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Desinstalar"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Repetir exploración"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Reemplazar entrada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Cambiar la configuración inalámbrica"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "Necesario para ciertos ISPs, por ejemplo Charter con DOCSIS 3"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Reiniciar"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Reiniciar contadores"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Reiniciar a valores por defecto"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Ficheros Resolv y Hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "Fichero de resolución"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Rearrancar"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Rearrancar cortafuegos"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Restaurar"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Restaurar copia de seguridad"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Mostrar/ocultar contraseña"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Anular"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Raíz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "Directorio raíz para los ficheros servidos por TFTP"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Contraseña del router"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Rutas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Las rutas especifican sobre qué interfaz y pasarela se puede llegar a una "
-"cierta máquina o red."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "Comprobar el sistema de ficheros antes de montar el dispositivo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Comprobar el sistema de ficheros"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "Acceso SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "Claves SSH"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Guardar"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Guardar y aplicar"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Explorar"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Tareas programadas"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Sección añadida"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Sección eliminada"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "Vea la página del manual de \"mount\" para detalles"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-"Enviar peticiones de echo LCP cada intervalo de segundos dado, solo efectivo "
-"usado conjuntamente con el umbral de fallo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Aislar clientes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Configuración del servidor"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Nombre de servicio"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Tipo de servicio"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Servicios"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-#, fuzzy
-msgid "Set up Time Synchronization"
-msgstr "Sincronización horaria"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "Configuración del servidor DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "Mostrar lista de ficheros a salvar"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Apagar esta interfaz"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Señal"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Señal:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Tamaño"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Saltar"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Saltar al contenido"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Saltar a navegación"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "Tiempo asignado"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Algunos campos no son válidos, ¡no se pueden guardar!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "Objeto no encontrado."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "El servidor encontró un error inesperado."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"No está instalado el soporte para el sysupgrade, la nueva imagen debe "
-"grabarse manualmente. Por favor, mire el wiki para instrucciones de "
-"instalación específicas."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Origen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "Especifica el directorio al que está enlazado el dispositivo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr ""
-"Especifica los puertos de escucha de esta instancia de <em>Dropbear</em>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-"Especifica la cantidad de peticiones ARP fallidas hasta suponer muerta una "
-"máquina"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-"Especifica la cantidad de segundos a transcurrir hasta suponer muerta una "
-"máquina"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Especifica la clave secreta de encriptado."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Arrancar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Prioridad de arranque"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Arranque"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Rutas estáticas IPv4"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Rutas estáticas IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Cesiones estáticas"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Rutas estáticas"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Dirección estática"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"Las cesiones estáticas se usan para asignar direcciones IP fijas y nombres "
-"simbólicos de máquina a clientes DHCP. También son necesarias para "
-"configuraciones de interfaz no dinámica en las que a cada máquina siempre se "
-"le quiere servir la misma dirección IP."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Estado"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Parar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Orden estricto"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Guardar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Entrada de intercambio"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Switch"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "Switch %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "Switch %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "Intercambiar protocolo"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Sincronizar con el navegador"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Sincronizando..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Sistema"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Registro del sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Propiedades del sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "Tamaño del buffer de registro del sistema"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "Configuración TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "Raíz del servidor TFTP"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "Ratio TX"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Tabla"
-
-# Target = Meta --> Objetivo --> Destino?
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Objetivo"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Terminar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-#, fuzzy
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"La sección de <em>Configuración del dispositivo</em> ocupa la configuración "
-"física del hardware de radio como el canal, la potencia de transmisión o la "
-"selección de antena que se comparte entre todas las redes inalámbricas "
-"definidas (si el hardware de radio es capaz de ser multi-SSID). "
-"Configuración por red como encriptado o modo de operación se agrupan en "
-"<em>Configuración del interfaz</em>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"El paquete <em>libiwinfo-lua</em> no está instalado. ¡Debe instalarlo para "
-"poder configurar la conectividad inalambrica!"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-"El prefijo IPv6 asignado por el proveedor, suele termina con <code>::</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"Los caracteres permitidos son: <code>A-Z</code>, <code>a-z</code>, "
-"<code>0-9</code> y <code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"El archivo de dispositivo de memoria o partición (<abbr title=\"Por ejemplo"
-"\">e.j.</abbr> <code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"El sistema de archivo que fue utilizado para dar formato a la memoria (<abbr "
-"title=\"por ejemplo\">Ej.</abbr> <samp><abbr title=\"Third Extended "
-"Filesystem\">ext3</abbr></samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"Imagen recibida. Verifique que la comprobación y tamaño del fichero recibido "
-"coinciden con los del original.<br />Pulse \"Proceder\" para empezar el "
-"grabado."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "Se han anulado los siguientes cambios"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "Rutas activas."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "Nombre de red repetido"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-#, fuzzy
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-"El hardware no es capaz de multi-SSD y la configuración actual se cambiará "
-"si continúa."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-"Longitud del prefijo IPv4 en bits, el resto se usará en direcciones IPv6."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "Longitud del prefijo IPv6 en bits"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"Los puertos de red de este dispositivo se pueden combinar en varias <abbr "
-"title=\"Virtual Local Area Network\">VLAN</abbr>s en las que los ordenadores "
-"se pueden comunicar directamente entre ellos. Las <abbr title=\"Virtual "
-"Local Area Network\">VLAN</abbr>s se usan a menudo para separar diferentes "
-"segmentos de red. Es común que exista un puerto por defecto para subida "
-"hacia una red mayor como internet y el resto se dediquen a la red local."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "Este protocolo necesita estar asignado a un dispositivo"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-"El sistema está borrando la partición de configuración y rearrancará cuando "
-"termine."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"Escribiendo en la memoria flash.<br />¡NO APAGUE EL DISPOSITIVO!<br /> "
-"Espere unos minutos antes de reconectar. Es posible que tenga que renovar la "
-"conexión de su ordenador para poder acceder de nuevo al dispositivo."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"El archivo con la imagen de firmware subido no tiene un formato adecuado. "
-"Asegúrese de haber elegido la imagen correcta para su plataforma."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Tema"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Sin cesiones activas."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "¡No hay cambios a anular!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "¡Sin cambios pendientes!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-"No hay dispositivo asignado aún. Por favor, enlace un dispositivo de red en "
-"la pestaña \"Configuración física\""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"No hay contraseñas en este router. Por favor, configure una contraseña para "
-"proteger el interfaz web y activar SSH."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr "Dirección IPv4 del relé"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-"Lista de patrones shell con los ficheros y directorios que se deben incluir "
-"en un sysupgrade. Los ficheros modificados en /etc/config/ y ciertas otras "
-"configuraciones se guardarán automáticamente."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"Contenido de /etc/rc.local. Ponga sus propios comandos aquí (antes de 'exit "
-"0') para ejecutarlos al final del proceso de inicio."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-"Esta es la dirección de punto final asignada por el broker del túnel, suele "
-"terminar con <code>...:2/64</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"Este es el único servidor <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr> en la red de área local"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr "Definición de tareas programadas para crontab."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-"Esta es normalmente la dirección del PoP más cercano operada por el broker "
-"del túnel"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr "Procesos de sistema que se están ejecutando actualmente y su estado."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "Conexiones de red activas."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "No hay reglas definidas"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Sincronización horaria"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "Sincronización horaria no configurada."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Zona horaria"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"Para restaurar los ficheros de configuración, debe subir primero una copia "
-"de seguridad. Para reiniciar el firmware a su estado inicial pulse "
-"\"Reiniciar\" (sólo posible con imágenes squashfs)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Total disponible"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Traceroute"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Tráfico"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Transferencia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Tasa de Transmisión"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Transmitir"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Potencia de transmisión"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Antena Transmisora"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "Disparador"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "Modo de disparador"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "ID de túnel"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Interfaz de túnel"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Potencia-TX"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Tipo"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "Sólo UMTS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "Dispositivo USB"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr "Imposible repartir"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Desconocido"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "No gestionado"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Cambios no guardados"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Tipo de protocolo no soportado."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"Suba una imagen compatible con sysupgrade para reemplazar el firmware "
-"actual. Puede marcar \"Conservar la configuración\" si lo desea (es "
-"necesario que la imagen sea compatible)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Subir archivo..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Archivo subido"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Tiempo activo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Usar <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "Usar pasarela DHCP"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "Utiliza servidores DNS anunciados por otros"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "Usa códigos de país ISO/IEC 3166 alpha2."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr "MTU a usar en el interfaz de túnel"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "TTL a usar en el interfaz de túnel"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "Usar marca de propagación"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Usar servidores DNS personalizados"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Usar pasarela por defecto"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "Usar métrica de la pasarela"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Usar tabla de rutas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"Pulse el botón <em>Añadir</em> para insertar una nueva cesión. <em>Dirección "
-"MAC</em> identificará la máquina, <em>dirección IPv4</em> especificará la "
-"dirección fija a usar y <em>Nombre de máquina</em> se asignará como nombre "
-"simbólico."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Usado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "Espacio de clave usado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Nombre de usuario"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLANs en %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLANs en %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "Servidor VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "Clase de vendedor a enviar cuando solicite DHCP"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Verificar"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "Sistema abierto WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "Clave compartida WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "Frase de paso WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "Modo WMM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "Frase de paso WPA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"WPA-Encryption necesita que estén instalados wpa_supplicant (para el modo "
-"cliente o hostapd (para los modos AP y ad-hoc)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "Esperando a que se realicen los cambios..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "Esperando a que termine el comando..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Aviso"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Red inalámbrica"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Adaptador inalámbrico"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Red inalámbrica"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Redes inalámbricas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Seguridad inalámbrica"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "Red inalámbrica desconectada"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "Red inalámbrica no asociada"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "Rearrancando red inalámbrica..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "Red inalámbrica desconectada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "Red inalámbrica conectada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Escribir las peticiones de DNS recibidas en el registro del sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Gestione los scripts de inicio. Los cambios serán aplicados tras reiniciar "
-"el equipo.<br /><strong>ADVERTENCIA: ¡Si desactiva scripts de inicio "
-"esenciales como\"network\", su equipo puede no arrancar o quedar "
-"inaccesible!.</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"Debe activar JavaScript en su navegador o LuCI no funcionará correctamente."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "cualquiera"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "auto"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "puenteado"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "crear:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "crea un puente sobre la interfaz o interfaces asociadas"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "desabilitar"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "expirado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"archivo en el que se guardarán las direcciones <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr> cedidas"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "retransmisión"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "full dúplex"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "half dúplex"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "oculto"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "si el destino es una red"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "entrada"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "KB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "KB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "Kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "Archvo <abbr title=\"Domain Name System\">DNS</abbr> local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "no"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "sin enlace"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "parado"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "activo"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "abierto"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "enrutado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "marcado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "desconocido"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "ilimitado"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "no especificado"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "no especificado -o- crear:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "desmarcado"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "sí"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Volver"
-
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr "Claves públicas SSH. Ponga una por línea."
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "¡Contraseña cambiada!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "Error desconocido, ¡no se ha cambiado la contraseña!"
-
-#~ msgid "Design"
-#~ msgstr "Diseño"
-
-#~ msgid "Available packages"
-#~ msgstr "Paquetes disponibles"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "Mostrar sólo paquete que contienen"
-
-#~ msgid "Download and install package"
-#~ msgstr "Descargar e instalar paquete"
-
-#~ msgid "Filter"
-#~ msgstr "Filtro"
-
-#~ msgid "Find package"
-#~ msgstr "Buscar paquete"
-
-#~ msgid "Free space"
-#~ msgstr "Espacio libre"
-
-#~ msgid "Install"
-#~ msgstr "Instalar"
-
-#~ msgid "Installed packages"
-#~ msgstr "Paquetes instalados"
-
-#~ msgid "No package lists available"
-#~ msgstr "No hay listas de paquetes disponibles"
-
-#~ msgid "OK"
-#~ msgstr "Aceptar"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "Configuración de OPKG"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "Las listas de paquetes tienen más de 24 horas"
-
-#~ msgid "Package name"
-#~ msgstr "Nombre del paquete"
-
-#~ msgid "Software"
-#~ msgstr "Instalación de programas"
-
-#~ msgid "Update lists"
-#~ msgstr "Actualizar listas"
-
-#~ msgid "Version"
-#~ msgstr "Versión"
-
-#~ msgid "none"
-#~ msgstr "ninguno"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "Desactivar configuración de DNS"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 e IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "Sólo IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "Sólo IPv6"
-
-#~ msgid "Lease validity time"
-#~ msgstr "Tiempo de validación de cesión"
-
-#~ msgid "Multicast address"
-#~ msgstr "Dirección multicast"
-
-#~ msgid "Protocol family"
-#~ msgstr "Familia de procolo"
-
-#~ msgid "No chains in this table"
-#~ msgstr "No hay cadenas en esta tabla"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "Se mantendrán los ficheros de configuración."
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Nota: se borrarán los ficheros de configuración."
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Pairwise: %s / Grupo: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "Activar esta red"
-
-#~ msgid "Hermes 802.11b Wireless Controller"
-#~ msgstr "Controlador inalámbrico 802.11b Hermes"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "Parando interfaz..."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "Interfaz reconectado"
-
-#~ msgid "Interface shut down"
-#~ msgstr "Interfaz detenido"
-
-#~ msgid "Prism2/2.5/3 802.11b Wireless Controller"
-#~ msgstr "Controlador inalámbrico 802.11n Prism2/2.5/3"
-
-#~ msgid "RaLink 802.11%s Wireless Controller"
-#~ msgstr "Controlador inalámbrico 802.11%s RaLink"
-
-#~ msgid ""
-#~ "Really shutdown interface \"%s\"? You might lose access to this device if "
-#~ "you are connected via this interface."
-#~ msgstr ""
-#~ "¿Está seguro de apagar la interfaz \"%s\"?.\n"
-#~ "Puede perder el acceso a este dispositivo si está conectado por interfaz."
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "Reconectando la interfaz"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "Apagar esta red"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "Red inalámbrica rearrancada"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "Apagando red inalámbrica"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "Cesiones DHCP"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "Cesiones DHCPv6"
-
-#~ msgid ""
-#~ "Really delete this interface? The deletion cannot be undone! You might "
-#~ "lose access to this device if you are connected via this interface."
-#~ msgstr ""
-#~ "¿Está seguro de borrar esta interfaz?. ¡No será posible deshacer el "
-#~ "borrado!\n"
-#~ "Puede perder el acceso a este dispositivo si está conectado por esta "
-#~ "interfaz."
-
-#, fuzzy
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "¿Está seguro de querer apagar esta red?.\n"
-#~ "Puede perder el acceso a este dispositivo si está conectado por esta red."
-
-#~ msgid "Sort"
-#~ msgstr "Ordenar"
-
-#~ msgid "help"
-#~ msgstr "ayuda"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "Estado de la WAN IPv4"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "Estado de la WAN IPv6"
-
-#~ msgid "Apply"
-#~ msgstr "Aplicar"
-
-#~ msgid "Applying changes"
-#~ msgstr "Aplicando cambios"
-
-#~ msgid "Configuration applied."
-#~ msgstr "Configuración establecida."
-
-#~ msgid "Save &#38; Apply"
-#~ msgstr "Guardar y aplicar"
-
-#~ msgid "The following changes have been committed"
-#~ msgstr "Se han hecho los siguientes cambios"
-
-#~ msgid "There are no pending changes to apply!"
-#~ msgstr "¡No hay cambios pendientes!"
-
-#~ msgid "Action"
-#~ msgstr "Acción"
-
-#~ msgid "Buttons"
-#~ msgstr "Botones"
-
-#~ msgid "Handler"
-#~ msgstr "Manejador"
-
-#~ msgid "Maximum hold time"
-#~ msgstr "Pausa máxima de transmisión"
-
-#~ msgid "Minimum hold time"
-#~ msgstr "Pausa mínima de espera"
-
-#~ msgid "Path to executable which handles the button event"
-#~ msgstr "Ruta al ejecutable que maneja el evento button"
-
-#~ msgid "Specifies the button state to handle"
-#~ msgstr "Especifica el estado de botón a manejar"
-
-#~ msgid "This page allows the configuration of custom button actions"
-#~ msgstr "Configuración de acciones personalizadas para los botones"
-
-#~ msgid "Leasetime"
-#~ msgstr "Tiempo de cesión"
-
-#, fuzzy
-#~ msgid "automatic"
-#~ msgstr "estático"
-
-#~ msgid "AR Support"
-#~ msgstr "Soporte a AR"
-
-#~ msgid "Atheros 802.11%s Wireless Controller"
-#~ msgstr "Controlador inalámbrico 802.11%s Atheros"
-
-#~ msgid "Background Scan"
-#~ msgstr "Exploración en segundo plano"
-
-#~ msgid "Compression"
-#~ msgstr "Compresión"
-
-#~ msgid "Disable HW-Beacon timer"
-#~ msgstr "Desactivar el temporizador de baliza hardware"
-
-#~ msgid "Do not send probe responses"
-#~ msgstr "No enviar respuestas de prueba"
-
-#~ msgid "Fast Frames"
-#~ msgstr "Tramas rápidas"
-
-#~ msgid "Maximum Rate"
-#~ msgstr "Ratio Máximo"
-
-#~ msgid "Minimum Rate"
-#~ msgstr "Ratio mínimo"
-
-#~ msgid "Multicast Rate"
-#~ msgstr "Ratio multicast"
-
-#~ msgid "Outdoor Channels"
-#~ msgstr "Canales al aire libre"
-
-#~ msgid "Regulatory Domain"
-#~ msgstr "Dominio Regulador"
-
-#~ msgid "Separate WDS"
-#~ msgstr "WDS aislado"
-
-#~ msgid "Static WDS"
-#~ msgstr "WDS estático"
-
-#~ msgid "Turbo Mode"
-#~ msgstr "Modo Turbo"
-
-#~ msgid "XR Support"
-#~ msgstr "Soporte de XR"
-
-#~ msgid "An additional network will be created if you leave this unchecked."
-#~ msgstr "Se creará una red adicional si deja esto desmarcado."
-
-#~ msgid "Join Network: Settings"
-#~ msgstr "Unirse a Red: Configuración"
-
-#~ msgid "CPU"
-#~ msgstr "CPU"
-
-#~ msgid "Port %d"
-#~ msgstr "Puerto %d"
-
-#~ msgid "Port %d is untagged in multiple VLANs!"
-#~ msgstr "¡El puerto %d está desmarcado en múltiples VLANs!"
-
-#~ msgid "VLAN Interface"
-#~ msgstr "Interfaz VLAN"
diff --git a/package/luci/modules/luci-base/po/fr/base.po b/package/luci/modules/luci-base/po/fr/base.po
deleted file mode 100644 (file)
index 2e398c9..0000000
+++ /dev/null
@@ -1,6656 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2013-12-22 17:11+0200\n"
-"Last-Translator: goofy <pierre.gaufillet@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(fenêtre de %d minutes, intervalle de %d secondes)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s disponible)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(vide)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(pas d'interface connectée)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Champ Supplémentaire --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Choisir --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- autre --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Charge sur 1 minute :"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Charge sur 15 minutes :"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Charge sur 5 minutes :"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "Port des requêtes <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "Port du serveur <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"Les serveurs <abbr title=\"Domain Name System\">DNS</abbr> seront<br/"
-">interrogés dans l'ordre du fichier de résolution"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "Adresse <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "Passerelle <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "Masque réseau <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"Adresse ou réseau <abbr title=\"Internet Protocol Version 6\">IPv6</abbr> "
-"(notation CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "Passerelle <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr ""
-"Configuration des <abbr title=\"Diode Électro-Luminescente\">DEL</abbr>s"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "Nom de la <abbr title=\"Diode Électro-Luminescente\">DEL</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "Adresse <abbr title=\"Media Access Control\">MAC</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"Nombre de baux <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> maximum"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"taille maximum des paquets <abbr title=\"Extension Mechanisms for Domain "
-"Name System\">EDNS0</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "Maximum de requêtes concurrentes"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "Niveau de ré-essai ARP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "Ponts ATM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr ""
-"Identifiant de canal virtuel (<abbr title=\"Virtual Channel Idendifier"
-"\">VCI</abbr>) ATM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr ""
-"Identifiant de chemin virtuel (<abbr title=\"Virtual Path Idendifier\">VPI</"
-"abbr>) ATM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"Les ponts ATM présentent l'Ethernet encapsulé dans des connexions AAL5 comme "
-"des interfaces réseau virtuelles Linux qui peuvent être utilisées avec DHCP "
-"ou PPP pour se connecter au réseau du fournisseur d'accès."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "Numéro de périphérique ATM"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Concentrateur d'accès"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Point d'accès"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Actions"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "Routes <abbr title=\"Internet Protocol Version 4\">IPv4</abbr> actives"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "Routes <abbr title=\"Internet Protocol Version 6\">IPv6</abbr> actives"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Connexions actives"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Bails DHCP actifs"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Bails DHCPv6 actifs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Ajouter"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-"Ajouter le suffixe du domaine local aux noms résolus d'après le fichier hosts"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Ajout d'une nouvelle interface..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Fichiers hosts supplémetaires"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Adresse"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Adresse pour accéder au pont-relais local"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Administration"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Paramètres avancés"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Alerte"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-"Autoriser l'authentification <abbr title=\"Secure Shell\">SSH</abbr> par mot "
-"de passe"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Autoriser tout sauf ce qui est listé"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Autoriser seulement ce qui est listé"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Autoriser l'hôte local"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"Permettre à des hôtes distants de se conecter à des ports SSH locaux "
-"correspondants (« forwarded »)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Autoriser les connexions administrateur avec mot de passe"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr ""
-"Autoriser l'utilisateur <em>root</em> à se connecter avec un mot de passe"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-"Autorise les réponses de l'amont dans la plage 127.0.0.0/8, par ex. pour les "
-"services RBL"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Antenne 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Antenne 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Configuration de l'antenne"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "N'importe quelle zone"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Affecte les interfaces…"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Équipements associés"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Authentification"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Autoritaire"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Autorisation requise"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Rafraîchissement automatique"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Disponible"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Moyenne :"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Retour"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Retour à la vue générale"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Retour à la configuration"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Retour à la vue générale"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Retour aux résultats de la recherche"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Sauvegarder"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Sauvegarde / Mise à jour du micrologiciel"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Liste des fichiers de sauvegarde"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Adresse spécifiée incorrecte!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Voici la liste des fichiers à sauvegarder. Elle est constituée des fichiers "
-"de configuration modifiés marqués par opkg, des fichiers de base essentiels, "
-"et des motifs de sauvegarde définis par l'utilisateur."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Débit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Contourne les «  NX Domain » bogués"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Pont"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Interfaces en pont"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Numéro d'unité du pont"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "L'activer au démarrage"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Contrôleur sans fil Broadcom 802.11%s"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Contrôleur sans fil Broadcom BCM%04x 802.11"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Temporisé"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Utilisation CPU (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Annuler"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Chaîne"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Changements"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Changements appliqués."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Change le mot de passe administrateur pour accéder à l'équipement"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Canal"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Vérification"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Somme de contrôle"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Choisissez la zone de pare-feu à laquelle vous voulez affecter cette "
-"interface. Sélectionnez <em>non précisé</em> pour retirer l'interface de la "
-"zone associée, ou remplissez le champ <em>créer</em> pour définir une "
-"nouvelle zone et y inclure cette interface."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"Choisissez le(s) réseau(x)  que vous souhaitez attachez a cette interface "
-"sans-fil ou remplissez le <em>créer</em>  champ pour définir un nouveau "
-"réseau. "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Code de chiffrement"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Cliquer sur \"Construire l'archive\" pour télécharger une archive tar des "
-"fichiers de la configuration actuelle."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Client"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "Identifiant client à envoyer dans les requêtes DHCP"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Fermer une connexion inactive après le délai donné en secondes, mettre 0 "
-"pour garder les connexions"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Fermer la liste…"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Récupération de données..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Commande"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Configuration commune"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Configuration"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Confirmation"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Se connecter"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Connecté"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Limite de connexion"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Connexions"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Pays"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Code pays"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Couvre l'interface suivante"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Couvre les interfaces suivantes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Créer / Assigner une zone du pare-feu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Créer une interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Créer un pont par dessus plusieurs interfaces"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Critique"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Niveau de journalisation de Cron"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Interface spécifique"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Personnaliser le comportement des <abbr title=\"Diode Électro-Luminescente"
-"\">DEL</abbr>s si possible."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "Serveur DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP et DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "client DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "Options DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "transmissions DNS"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Deboguage"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "%d par défaut"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Passerelle par défaut"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "État par défaut"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Donne un nom à ce réseau."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Définir des options DHCP supplémentaires, par exemple "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" qui publie différents serveurs "
-"DNS à ses clients."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Effacer"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Supprimer ce réseau"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Description"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Destination"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Équipement"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Configuration de l'équipement"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Diagnostics"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Répertoire"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Désactiver"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Désactiver <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> "
-"pour cette interface."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Désactivé"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "Jeter les réponses en RFC1918 amont"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Optimisation de la distance"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Distance au membre du réseau le plus éloigné, en mètres."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Diversité"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq est un serveur <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr> combiné à un relais <abbr title=\"Domain Name System\">DNS</"
-"abbr> pour les pare-feu <abbr title=\"Network Address Translation\">NAT</"
-"abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-"Ne pas mettre en cache les réponses négatives, par ex. pour des domaines "
-"inexistants"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"Ne pas transmettre les requêtes qui ne peuvent être résolues par les "
-"serveurs de noms publics"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-"Ne pas transmettre les requêtes de recherche inverse pour les réseaux locaux"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Domaine nécessaire"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "Liste blanche de domaines"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Ne pas transmettre de requêtes <abbr title=\"Domain Name System\">DNS</abbr> "
-"sans nom <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Télécharger la sauvegarde"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Session Dropbear"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear est un serveur <abbr title=\"Secure Shell\">SSH</abbr> et intègre "
-"un serveur <abbr title=\"Secure Copy\">SCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> dynamique"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Tunnel dynamique"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"Alloue dynamiquement des adresses pour les clients du DHCP. Si désactivé, "
-"seuls les clients ayant des baux statiques seront gérés."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "Méthode EAP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Éditer"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Éditer cette interface"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Éditer ce réseau"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Urgence"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Activer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Activer le protocole <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "Activer la mise à jour dynamique de l'extrémité du tunnel chez HE.net"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "Activer la négociation IPv6 sur le lien PPP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Activer la circulation de très grandes trames (Jumbo)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "Activer client NTP"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Activer le serveur TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Acviter la gestion des VLANs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Activer l'apprentissage et la péremption"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "Activer ce montage"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "Activer cette mémoire d'échange (swap)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Activer/Désactiver"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Activé"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr ""
-"Activer le protocole <abbr title=\"Spanning Tree Protocol\">STP</abbr> sur "
-"ce pont"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Mode encapsulé"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Chiffrement"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Effacement…"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Erreur"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Module Ethernet"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Commutateur Ethernet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "Étendre le nom d'hôte"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Expire"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-#, fuzzy
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-"Délai d'expiration des adresses allouées, le minimum est de 2 minutes "
-"(<code>2m</code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Serveur distant de journaux système"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Port du serveur distant de journaux système"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Fichier"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "Nom de fichier d'une image de démarrage publiée aux clients"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Système de fichiers"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Filtrer les requêtes privées"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Filtrer les requêtes inutiles"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Cherche et rejoint un réseau"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Terminer"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Pare-feu"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Paramètres du pare-feu"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "État du pare-feu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Version du micrologiciel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "Port source fixe pour les requêtes DNS sortantes"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Mise à jour du micrologiciel"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Écriture de l'image…"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Écrire l'image du nouveau micrologiciel"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Opérations d'écriture"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Écriture…"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Forcer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Forcer CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr "Force le DHCP sur ce réseau même si un autre serveur est détecté."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Forcer TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Forcer TKIP et CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "Transmettre le trafic DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Transmettre le trafic de diffusion"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Mode de transmission"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Seuil de fragmentation"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Rafale de trames"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Libre"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "Ghz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "seulement GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Passerelle"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Ports de la passerelle"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Paramètres généraux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Configuration générale"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Construire l'archive"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "Contrôleur sans fil générique 802.11%s"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-"La confirmation du nouveau mot de passe ne correspond pas, changement "
-"annulé !"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Aller à la configuration du mot de passe…"
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Aller à la page de configuration correspondante"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "Mot de passe HE.net"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Signal (HUP)"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Ici, vous pouvez configurer les aspects basiques de votre routeur comme son "
-"nom ou son fuseau horaire."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "Cacher le ESSID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Entrées d'hôtes"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr "Délai d'expiration pour les hôtes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "adresse IP ou réseau"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Nom d'hôte"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "Nom d'hôte à envoyer dans une requête DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Noms d'hôtes"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "Adresse IP"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "Pare-feu IPv4"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "Adresse IPv4"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "Diffusion IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "Passerelle IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "Masque-réseau IPv4"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "longueur du préfixe IPv4"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "Adresse IPv4"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "Pare-feu IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "Adresse IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "Passerelle IPv6"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "Préfixe IPv6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "longueur du préfixe IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "Adresse IPv6"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6 dans IPv4 (RFC 4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6 sur IPv4 (6ème)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6 sur IPv4 (6 vers 4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identité"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-"Monte le périphérique identifié par cet UUID au lieu d'un nom de "
-"périphérique fixe"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-"Monte le périphérique identifié par cette étiquette au lieu d'un nom de "
-"périphérique fixe"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "Décoché, aucune route par défaut n'est configurée"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "Décoché, les adresses des serveurs DNS publiés sont ignorées"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Si la mémoire physique n'est pas en quantité suffisante, les données "
-"inutilisées peuvent être temporairement transférée sur une partition "
-"d'échange, relevant la quantité de RAM disponible. Ce processus est lent car "
-"la mémoire d'échange ne peut être accédée aux taux de transfert de la RAM."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Ignorer /etc/hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Ignorer l'interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Ignorer le fichier de résolution"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Image"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "Entrée"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "Délai d'inactivité"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Intérieur :"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Info"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Script d'initialisation"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Scripts d'initialisation"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Installer le paquet %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Installation des extensions de protocole…"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Configuration de l'interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Vue d'ensemble de l'interface"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "L'interface se reconnecte…"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "L'interface n'est pas présente ou pas encore connectée."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Interfaces"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Erreur Serveur Interne"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Erreur : donnée entrée invalide"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-"Identifiant VLAN invalide !Seuls les IDs entre %d et %d sont autorisés."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-"Identifiant VLAN donné invalide ! Seuls les identifiants uniques sont "
-"autorisés"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Nom d'utilisateur et/ou mot de passe invalides ! Réessayez !"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Il semble que vous essayez de programmer votre routeur avec une image qui ne "
-"tient pas dans sa mémoire flash, vérifiez s'il vous plait votre fichier-"
-"image !"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "Nécessite un Script Java !"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Rejoindre un réseau"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "Rejoindre un réseau : recherche des réseaux sans-fil"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Garder le paramètrage"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Journal du noyau"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Version du noyau"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Clé"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Clé n° %d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Tuer"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "Serveur L2TP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "Seuil d'erreur des échos LCP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "Intervalle entre échos LCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Étiquette"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Langue"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Langue et apparence"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Fichier de baux"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Durée de validité"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Laisser vide pour l'auto-détection"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "Laisser vide pour utiliser l'adresse WAN actuelle"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Légende :"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Limite"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Lien établi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"Liste des serveurs auquels sont transmis les requêtes <abbr title=\"Domain "
-"Name System\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "Liste des domaines où sont permises les réponses de type RFC1918"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-"Liste des hôtes qui fournissent des résultats avec des « NX domain » bogués"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr "Écouter seulement sur l'interface spécifié, sinon sur toutes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "Port d'écoute des requêtes DNS entrantes"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Charger"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Charge moyenne"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Chargement"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Adresse IPv4 locale"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Adresse IPv6 locale"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Démarrage local"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Heure Locale"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Domaine local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-#, fuzzy
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-"Domaine local à préciser. Les noms correspondants à ce domaine ne sont "
-"jamais transmis, mais résolus seulement depuis le serveur DHCP ou le fichier "
-"Hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-"Suffixe du domaine local ajouté aux noms du serveur DHCP et du fichier Hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Serveur local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-"Trouve le nom d'hôte suivant le sous-réseau d'où vient la requête si "
-"plusieurs adresses IPs sont possibles"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Localiser les requêtes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Niveau de journalisation"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Journaliser les requêtes"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "Journalisation"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Connexion"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Déconnexion"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-"Adresse allouée la plus basse, spécifiée par un décalage à partir de "
-"l'adresse réseau."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "Adresse MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Filtrage par adresses MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "Filtrage par adresses MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "Liste des adresses MAC"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "Nombre maximum de baux DHCP actifs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "Nombre maximum de requêtes DNS au même moment"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "Taille maximum autorisée des paquets UDP EDNS.0"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "Délai d'attente maximum que le modem soit prêt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "Nombre maximum d'adresses allouées."
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Mémoire"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Utilisation Mémoire (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Metrique"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "Extention de protocole manquante pour le proto %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Mode"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Interface Modem"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "Délai max. d'initialisation du modem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Monitor"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "Montage"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Point de montage"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Point de montage"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "Points de montage - élément à monter"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "Points de montage - partition d'échange"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Les points de montage définissent l'attachement d'un périphérique au système "
-"de fichier"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Options de montage"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Point de montage"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Systèmes de fichiers montés"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Descendre"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Monter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "Serveurs NTP candidats"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Nom"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Nom de la nouvelle interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Nom du nouveau réseau"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navigation"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Masque de réseau"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Réseau"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Utilitaires réseau"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "Image de démarrage réseau"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Réseau sans interfaces."
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Prochain »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Aucun serveur DHCP configuré sur cette interface"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Aucun fichier trouvé"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Information indisponible"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "Pas de cache négatif"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Ce périphérique n'a aucune adresse configurée"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "Aucun nom de réseau donné"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Pas de mot de passe positionné !"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Aucune règle dans cette chaîne"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Aucune zone attribuée"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Bruit"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Bruit :"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Vide"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Normal"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "Pas trouvé"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "Pas associé"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "Non connecté"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Note"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "Nslookup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "Durée éteinte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"Dans cette page vous pourrez configurer les interfaces réseaux. Vous pouvez "
-"bridger différentes interfaces en cochant le champ \"bridger les interfaces"
-"\" et en saisissant les noms des interfaces réseau séparées par des espaces. "
-"Vous pouvez aussi utiliser la notation VLAN, INTERFACE.VLANNB (ex : eth0.1)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "Durée allumée"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "Il faut indiquer un nom d'hôte ou une adresse MAC !"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Un ou plusieurs champs contiennent des valeurs incorrectes !"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Un ou plusieurs champs n'ont pas de valeur !"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Ouvrir la liste…"
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Option modifiée"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Option retirée"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Options"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Autres :"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Sortie"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "Extérieur :"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "Modifier l'adresse MAC"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "Modifier le MTU"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "Modifier la passerelle dans les réponses DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-"Remplacer le masque réseau envoyés aux clients. Il est normalement calculé à "
-"partir du sous-réseau géré."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr "Modifier la table utilisée pour les routes internes"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Vue d'ensemble"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Propriétaire"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "Mot de passe PAP/CHAP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "Identifiant PAP/CHAP"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "code PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "PPPoA Encapsulation"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "Nécessite le paquet libiwinfo !"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Paquets"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "Fait partie de la zone %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Mot de passe"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Authentification par mot de passe"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Mot de passe de la clé privée"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Chemin de la CA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "Chemin du certificat-client"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Chemin de la clé privée"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Pic :"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Redémarrer"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Réinitialiser"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "Débit de la puce:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Paramètres physiques"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ping"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Pqts."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Saisissez votre nom d'utilisateur et mot de passe."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Politique"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Port"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Statut du port :"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-"Suppose que le distant a disparu une fois le nombre donné d'erreurs d'échos "
-"LCP ; utiliser 0 pour ignorer ces erreurs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Empêche la communication directe entre clients"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Continuer"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Processus"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protocole"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Protocole de la nouvelle interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "La gestion du protocole n'est pas installée"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "Fournir serveur NTP"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "Donner un nouveau réseau"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Pseudo Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Qualitée"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "Seuil RTS/CTS"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "Reçu"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "Débit en réception"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Port de la comptabilisation Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Secret de la comptabilisation Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Serveur de la comptabilisation Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Port de l'authentification Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Secret de l'authentification Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Serveur de l'authentification Radius"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr "Lire /etc/ethers pour configurer le serveur DHCP"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"Voulez-vous vraiment supprimer ce réseau sans-fil? L'effacement ne peut être "
-"annulé!\n"
-"Vous pourriez perdre l'accès à l'équipement si vous y êtes connecté par ce "
-"réseau."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "Voulez-vous vraiment ré-initialiser toutes les modifications ?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "Voulez-vous vraiment changer de protocole ?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Connexions temps-réel"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Graphiques temps-réel"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Charge temps-réel"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Trafic temps-réel"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Qualité de réception actuelle"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "Protection contre l'attaque « rebind »"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Redémarrage"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Redémarre…"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Redémarrage du système d'exploitation de votre équipement"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Reçoit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Antenne émettrice"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Reconnecter cet interface"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Références"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "Relais"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "Pont-relais"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "Relais entre réseaux"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "Pont-relais"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "Adresse IPv4 distante"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Désinstaller"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Répéter la recherche"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Remplacer l'entrée"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Remplacer la configuration sans-fil"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "Nécessaire avec certains FAIs, par ex. : Charter avec DOCSIS 3"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Remise à zéro"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Remise à zéro des compteurs"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Ré-initialisation"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Fichiers Resolv et Hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "Fichier de résolution des noms"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Redémarrer"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Redémarrer le pare-feu"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Restaurer"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Restaurer une sauvegarde"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Montrer/cacher le mot de passe"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Revenir"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Racine"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "Répertoire racine des fichiers fournis par TFTP"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Mot de passe du routeur"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Routes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Avec les routes statiques vous pouvez spécifier à travers quelle interface "
-"ou passerelle un réseau peut être contacté."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr ""
-"Faire un vérification du système de fichiers avant de monter le périphérique"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Faire une vérification du système de fichiers"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "Accès SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "Clés SSH"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Sauvegarder"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Sauvegarder et Appliquer"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Scan"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Tâches Régulières"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Section ajoutée"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Section retirée"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "Voir le manuel de « mount » pour les détails"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-"Envoyer des demandes d'échos LCP à intervalles donnés, en secondes ; utile "
-"uniqument associé à un seuil d'erreurs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Isoler les clients"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Paramètres du serveur"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Nom du service"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Type du service"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Services"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-#, fuzzy
-msgid "Set up Time Synchronization"
-msgstr "Configurer la synchronisation de l'heure"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "Configurer le serveur DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "Afficher la liste des fichiers de la sauvegarde actuelle"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Arrêter cet interface"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Signal"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Signal :"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Taille"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Passer au suivant"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Skip to content"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Skip to navigation"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "Tranche de temps"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Certains champs sont invalides, ne peut sauvegarder les valeurs !"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "Désolé, l'objet que vous avez demandé n'as pas été trouvé."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "Désolé, le serveur à rencontré une erreur inattendue."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"Désolé, il n'y a pas de gestion de mise à jour disponible, une nouvelle "
-"image du micrologiciel doit être écrite manuellement. Reportez-vous S.V.P. "
-"au wiki pour connaître les instructions d'installation spécifiques à votre "
-"matériel."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Source"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "Indique le répertoire auquel le périphérique est rattaché"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "Indique le port d'écoute de cette instance <em>Dropbear</em>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-"Indique le nombre de requêtes ARP ratées au delà duquel les hôtes seront "
-"supposés disparus"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr "Indique le délai après quoi les hôtes seront supposés disparus"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Spécifiez ici la clé secrète de chiffrage."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Démarrer"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Priorité de démarrage"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Démarrage"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Routes IPv4 statiques"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Routes IPv6 statiques"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Baux Statiques"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Routes statiques"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Adresse statique"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"Les baux statiques sont utilisés pour donner des adresses IP fixes et des "
-"noms symboliques à des clients DHCP. Il sont également nécessaires pour les "
-"interfaces sans configuration dynamique où l'on fournit un bail aux seuls "
-"hôtes configurés."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Status"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Arrêter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Ordre stricte"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Soumettre"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Élement de partition d'échange"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Commutateur"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "Commutateur %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "Commutateur %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "Protocole du commutateur"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Synchro avec le navigateur"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Synchronisation…"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Système"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Journal système"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Propriétés système"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "Taille du tampon du journal système"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP :"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "Paramètres TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "Racine du serveur TFTP"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "Transmis"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "Débit en émission"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Table"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Cible"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Terminer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-#, fuzzy
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"La section <em>Configuration de l'équipement</em> couvre les paramètres "
-"physiques du matériel radio comme le canal, la puissance d'émission ou la "
-"sélection de l'antenne, qui sont partagés entre tous les réseaux sans-fil "
-"définis (si le matériel radio gère plusieurs réseaux SSID). Les paramètres "
-"dépendant de chaque réseau comme le chiffrage ou le mode de fonctionnement "
-"sont groupés dans <em>Configuration de l'interface</em>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"Le paquet <em>libiwinfo-lua</em> n'est pas installé. Vous devez l'installer "
-"pour une configuration sans-fil fonctionnelle !"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-"Le préfixe IPv6 attribué par le fournisseur, se termine généralement par "
-"<code>::</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"Les caractères autorisés sont : <code>A-Z</code>, <code>a-z</code>, "
-"<code>0-9</code> et <code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr "Le périphérique de bloc contenant la partition (ex : /dev/sda1)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"Le système de fichiers utilisé pour formatter le support de stockage (ex : "
-"ext3)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"L'image du micrologiciel a été chargée. Ci-dessous la taille et la somme de "
-"contrôle de cette image, comparez-les avec le fichier original pour vous "
-"assurer de son intégrité.<br /> Cliquez sur \"Continuer\" pour lancer la "
-"procédure d'écriture."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "Les changements suivants ont été annulés"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "Les règles suivantes sont actuellement actives sur ce système."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "Le nom de réseau donné n'est pas unique"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-#, fuzzy
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-"Le matériel ne sait pas gérer plusieurs SSID et la configuration existante "
-"sera remplacée si vous continuez."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-"La longueur du préfixe IPv4 en bits, le reste est utilisé dans les adresses "
-"IPv6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "La longueur du préfixe IPv6 en bits"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"Les ports de votre équipement peuvent être configurés pour combiner "
-"plusieurs <abbr title=\"Virtual Local Area Network\">VLANs</abbr> dans "
-"lesquels les machines connectées peuvent dialoguer directement l'une avec "
-"l'autre. Les <abbr title=\"Virtual Local Area Network\">VLAN</abbr>s sont "
-"souvent utilisés pour séparer différences sous-réseaux. Bien souvent il y a "
-"un port d'uplink pour une connexion vers un réseau plus vaste, comme "
-"internet et les autres ports sont réservés au réseau local."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "Le protocole sélectionné nécessite l'attribution d'un périphérique"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-"Le système est en train d'effacer la partition de configuration et "
-"redémarrera tout seul une fois cela fini."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes until you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Apparence"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Il n'y a aucun bail actif."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "Il n'y a aucun changement à annuler !"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "Il n'y a aucun changement en attente !"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-"Il n'y a aucun périphérique attribué pour l'instant, liez s.v.p. un "
-"périphérique réseau dans l'onglet \"Paramètres du matériel\""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"Ce routeur n'a pas de mot de passe configuré. Veuillez configurer un mot de "
-"passe pour l'utilisateur root pour protéger l'accès de votre interface web "
-"et activer l'accès par SSH."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr "L'adresse IPv4 du relais"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-"Voici la liste des motifs de type glob shell utilisés pour sélectionner les "
-"fichiers et répertoires à inclure durant la mise à jour système. Les "
-"fichiers modifiés dans /etc/config/ et certains autres sont automatiquement "
-"conservés."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"Voici le contenu de /etc/rc.local. Placez-y vos propres commandes (avant le "
-"« exit 0 ») pour qu'ils soient exécutés en fin de démarrage."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-"Il s'agit de l'adresse de l'extrémité locale attribuée par le fournisseur de "
-"tunnels, elle se termine habituellement avec <code>...:2/64</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr "C'est le seul serveur DHCP sur le réseau local"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-"Ceci est le système crontab avec lequel sont définies les tâches récurrentes."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-"Il s'agit habituellement de l'adresse du plus proche PoP géré par le "
-"fournisseur de tunnels"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"Cette liste donne une vue d'ensemble des processus en exécution et leur "
-"statut."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr ""
-"Cette page donne une vue d'ensemble des connexions réseaux actuellement "
-"actives."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Cette section ne contient pas encore de valeur"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Synchronisation de l'heure"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "La synchronisation de l'heure n'est pas encore configurée."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Fuseau horaire"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"Pour restaurer les fichiers de configuration, vous pouvez charger ici une "
-"archive de sauvegarde construite précédemment. Pour réinitialiser le "
-"micrologiciel dans son état initial, cliquer sur \"Réinitialiser\" (possible "
-"seulement avec les images de type squashfs)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Total disponible"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Traceroute"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Trafic"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Transfert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Débit d'émission"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Transmet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Puissance d'émission"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Antenne émettrice"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "Déclenchement"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "Mode de déclenchement"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "ID du tunnel"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Interface du tunnel"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Puissance d'émission"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Type"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP :"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "seulement UMTS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "Périphérique USB"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr "Impossible d'envoyer"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Inconnu"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "non-géré"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Changements non appliqués"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Type de protocole non pris en charge."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"Envoyer ici une image compatible avec le système de mise à jour pour "
-"remplacer le micrologiciel actuel. Cochez \"Garder la configuration\" pour "
-"maintenir la configuration actuelle (nécessite une image de micrologiciel "
-"compatible)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Envoi de l'archive…"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Fichier Uploadé"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Uptime"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Utiliser /etc/ethers"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "Utiliser la passerelle DHCP"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "Utiliser les serveurs DNS publiés par le distant"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "Utiliser les codes-pays ISO/IEC 3166 alpha2."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr "Utiliser le MTU sur l'interface du tunnel"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "Utiliser le TTL sur l'interface du tunnel"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "Utiliser une marque de diffusion"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Utiliser des serveurs DNS spécifiques"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Utiliser la passerelle par défaut"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "Utiliser la métrique de la passerelle"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Utiliser la table de routage"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"Utiliser le bouton <em>Ajouter</em> pour créer un nouveau bail. "
-"L'<em>adresse MAC</em> identifie l'hôte, l'<em>adresse IPv4</em> décrit "
-"l'adresse fixe à utiliser et le <em>nom d'hôte</em> sera le nom symbolique "
-"attribué à l'hôte qui fait la demande."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Utilisé"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "Clé utilisée"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Nom d'utilisateur"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLANs sur %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLANs sur %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "Serveur VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "Classe de fournisseur à envoyer dans les requêtes DHCP"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Vérifier"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "Système ouvert WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "Clé partagée WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "Mot de passe WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "Mode WMM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "Mot de passe WPA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"Le chiffrage WPA nécessite l'installation du paquet wpa_supplicant (en mode "
-"client) ou hostapd (en mode Point d'accès ou Ad-hoc)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "En attente de l'application des changements..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "En attente de la fin de la commande..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Attention"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Sans-fil"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Module Wi-Fi"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Réseau sans-fil"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Présentation des réseaux sans-fil"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Sécurité des réseaux sans-fil"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "Le Wi-Fi est désactivé"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "Le Wi-Fi est non associé"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "Le Wi-Fi est ré-initialisé…"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "Le réseau Wi-Fi est désactivé"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "Le réseau Wi-Fi est activé"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Écrire les requêtes DNS reçues dans syslog"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Vous pouvez ici activer ou désactiver les scripts d'initialisation "
-"installés. Les changements seront pris en compte après un redémarrage.<br/"
-"><strong>Attention: Si vous désactivez des scripts essentiels comme \"réseau"
-"\", votre équipement pourrait ne plus être accessible&#160;!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"Vous devez activer JavaScript dans votre navigateur pour que LuCI fonctionne "
-"correctement."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "n'importe lequel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "auto"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "ponté"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "créer:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "créer un bridge entre plusieurs interfaces"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "désactiver"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "expiré"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr "fichier dans lequel les baux DHCP seront stockés"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "transfert"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "full-duplex"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "half-duplex"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "cacher"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "si la destination est un réseau"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "entrée"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "fichier de résolution local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "non"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "pas de lien"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "Arrêté"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "Actif"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "ouvrir"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "routé"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "marqué"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "inconnu"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "non limité"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "non précisé"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "non précisé -ou- créer :"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "non marqué"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "oui"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Retour"
-
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr ""
-#~ "Vous pouvez copier ici des clés SSH publiques (une par ligne) pour une "
-#~ "authentification SSH sur clés publiques."
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "Mot de passe changé avec succès !"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "Erreur inconnue, mot de passe inchangé !"
-
-#~ msgid "Design"
-#~ msgstr "Apparence"
-
-#~ msgid "Available packages"
-#~ msgstr "Paquets disponibles"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "N'afficher que les paquets contenant"
-
-#~ msgid "Download and install package"
-#~ msgstr "Télécharge et installe le paquet"
-
-#~ msgid "Filter"
-#~ msgstr "Filtrer"
-
-#~ msgid "Find package"
-#~ msgstr "Trouver un paquet"
-
-#~ msgid "Free space"
-#~ msgstr "Espace libre"
-
-#~ msgid "Install"
-#~ msgstr "Installer"
-
-#~ msgid "Installed packages"
-#~ msgstr "Paquets installés"
-
-#~ msgid "No package lists available"
-#~ msgstr "Aucune liste de paquets disponible"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "Configuration OPKG"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "Les listes de paquets ont plus de 24 heures"
-
-#~ msgid "Package name"
-#~ msgstr "Nom du paquet"
-
-#~ msgid "Software"
-#~ msgstr "Logiciels"
-
-#~ msgid "Update lists"
-#~ msgstr "Mettre les listes à jour"
-
-#~ msgid "Version"
-#~ msgstr "Version"
-
-#~ msgid "none"
-#~ msgstr "aucun"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "Désactiver la configuration DNS"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 et IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "IPv4 seulement"
-
-#~ msgid "IPv6 only"
-#~ msgstr "IPv6 seulement"
-
-#~ msgid "Lease validity time"
-#~ msgstr "Durée de validité d'un bail"
-
-#~ msgid "Multicast address"
-#~ msgstr "Adresse multidiffusion"
-
-#~ msgid "Protocol family"
-#~ msgstr "Famille du protocole"
-
-#~ msgid "No chains in this table"
-#~ msgstr "Aucune chaîne dans cette table"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "Les fichiers de configuration seront préservés."
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Note : les fichiers de configuration seront effacés."
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "Activer ce réseau"
-
-#~ msgid "Hermes 802.11b Wireless Controller"
-#~ msgstr "Contrôleur sans fil Hermes 802.11b"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "L'interface s'arrête…"
-
-#~ msgid "Interface reconnected"
-#~ msgstr "Interface reconnectée"
-
-#~ msgid "Interface shut down"
-#~ msgstr "Interface arrêtée"
-
-#~ msgid "Prism2/2.5/3 802.11b Wireless Controller"
-#~ msgstr "Contrôleur sans fil Prism2/2.5/3 802.11b"
-
-#~ msgid "RaLink 802.11%s Wireless Controller"
-#~ msgstr "Contrôleur sans fil RaLink 802.11%s"
-
-#~ msgid ""
-#~ "Really shutdown interface \"%s\"? You might lose access to this device if "
-#~ "you are connected via this interface."
-#~ msgstr ""
-#~ "Voulez-vous vraiment arrêter l'interface %s ?\n"
-#~ "Vous pourriez perdre l'accès à l'équipement si vous y êtes connecté par "
-#~ "cette interface."
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "Reconnecte cet interface"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "Arrêter ce réseau"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "Wi-Fi ré-initialisé"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "Wi-Fi arrêté"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "Baux DHCP"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "Bails DHCPv6"
-
-#~ msgid ""
-#~ "Really delete this interface? The deletion cannot be undone! You might "
-#~ "lose access to this device if you are connected via this interface."
-#~ msgstr ""
-#~ "Voulez-vous vraiment supprimer cette interface? L'effacement ne peut être "
-#~ "annulé!\n"
-#~ "Vous pourriez perdre l'accès à l'équipement si vous y êtes connecté par "
-#~ "cette interface."
-
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "Voulez-vous vraiment arrêter l'interface %s ?\n"
-#~ "Vous pourriez perdre l'accès à l'équipement si vous y êtes connecté par "
-#~ "cette interface."
-
-#~ msgid "Sort"
-#~ msgstr "Trier"
-
-#~ msgid "help"
-#~ msgstr "aide"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "État IPv4 du WAN"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "État IPv6 du WAN"
-
-#~ msgid "Apply"
-#~ msgstr "Appliquer"
-
-#~ msgid "Applying changes"
-#~ msgstr "Changements en cours"
-
-#~ msgid "Configuration applied."
-#~ msgstr "Configuration appliquée."
-
-#~ msgid "Save &#38; Apply"
-#~ msgstr "Sauvegarder et appliquer"
-
-#~ msgid "The following changes have been committed"
-#~ msgstr "Les changements suivants ont été appliqués"
-
-#~ msgid "There are no pending changes to apply!"
-#~ msgstr "Il n'y a aucun changement en attente d'être appliqués !"
-
-#~ msgid "Action"
-#~ msgstr "Action"
-
-#~ msgid "Buttons"
-#~ msgstr "Boutons"
-
-#~ msgid "Handler"
-#~ msgstr "Gestionnaire"
-
-#~ msgid "Maximum hold time"
-#~ msgstr "Temps de maintien maximum"
-
-#~ msgid "Minimum hold time"
-#~ msgstr "Temps de maintien mimimum"
-
-#~ msgid "Path to executable which handles the button event"
-#~ msgstr "Chemin du programme exécutable gérant les évènements liés au bouton"
-
-#~ msgid "Specifies the button state to handle"
-#~ msgstr "Indique l'état du bouton à gérer"
-
-#~ msgid "This page allows the configuration of custom button actions"
-#~ msgstr ""
-#~ "Cette page permet la configuration d'actions spécifiques des boutons"
-
-#~ msgid "Leasetime"
-#~ msgstr "Durée du bail"
-
-#, fuzzy
-#~ msgid "automatic"
-#~ msgstr "statique"
-
-#~ msgid "AR Support"
-#~ msgstr "Gestion du mode AR"
-
-#~ msgid "Atheros 802.11%s Wireless Controller"
-#~ msgstr "Contrôleur sans fil Atheros 802.11%s "
-
-#~ msgid "Background Scan"
-#~ msgstr "Recherche en arrière-plan"
-
-#~ msgid "Compression"
-#~ msgstr "Compression"
-
-#~ msgid "Disable HW-Beacon timer"
-#~ msgstr "Désactiver l'émission périodique de balises wifi (« HW-Beacon »)"
-
-#~ msgid "Do not send probe responses"
-#~ msgstr "Ne pas envoyer de réponses de test"
-
-#~ msgid "Fast Frames"
-#~ msgstr "Trames rapides"
-
-#~ msgid "Maximum Rate"
-#~ msgstr "Débit maximum"
-
-#~ msgid "Minimum Rate"
-#~ msgstr "Débit minimum"
-
-#~ msgid "Multicast Rate"
-#~ msgstr "Débit multidiffusion"
-
-#~ msgid "Outdoor Channels"
-#~ msgstr "Canaux en extérieur"
-
-#~ msgid "Regulatory Domain"
-#~ msgstr "Domaine de certification"
-
-#~ msgid "Separate WDS"
-#~ msgstr "WDS séparé"
-
-#~ msgid "Static WDS"
-#~ msgstr "WDS statique"
-
-#~ msgid "Turbo Mode"
-#~ msgstr "Mode Turbo"
-
-#~ msgid "XR Support"
-#~ msgstr "Gestion du mode XR"
-
-#~ msgid "An additional network will be created if you leave this unchecked."
-#~ msgstr "Un réseau supplémentaire sera créé si vous laissé ceci décoché."
-
-#~ msgid "Join Network: Settings"
-#~ msgstr "Rejoindre un réseau : paramètres"
-
-#~ msgid "CPU"
-#~ msgstr "CPU"
-
-#~ msgid "Port %d"
-#~ msgstr "Port %d"
-
-#~ msgid "Port %d is untagged in multiple VLANs!"
-#~ msgstr "Le port %d n'est pas marqué dans plusieurs VLANs !"
-
-#~ msgid "VLAN Interface"
-#~ msgstr "Interface du VLAN"
diff --git a/package/luci/modules/luci-base/po/he/base.po b/package/luci/modules/luci-base/po/he/base.po
deleted file mode 100644 (file)
index f9f786b..0000000
+++ /dev/null
@@ -1,6284 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2013-02-02 14:32+0200\n"
-"Last-Translator: oranav <oranav@gmail.com>\n"
-"Language-Team: none\n"
-"Language: he\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s פנוי)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(ריק)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(אין ממשק מצורף)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- שדה נוסף --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- נא לבחור --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- מותאם אישית --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "עומס במשך דקה:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "עומס במשך רבע שעה:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "עומס במשך 5 דקות:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> יציאת שאילתא"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> יציאת שרת"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "כתובות <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"כתובת או רשת (CIDR) <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "הגדרות <abbr title=\"Light Emitting Diode\">LED</abbr>"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "שם <abbr title=\"Light Emitting Diode\">LED</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "כתובת-<abbr title=\"Media Access Control\">MAC</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-#, fuzzy
-msgid "ARP retry threshold"
-msgstr "סף נסיונות של ARP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-#, fuzzy
-msgid "ATM Bridges"
-msgstr "גשרי ATM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-#, fuzzy
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "מזהה ערוצים ווירטואליים של ATM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-#, fuzzy
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "מזהה נתיבים ווירטואליים של ATM  (VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "מס' התקן של ATM"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-#, fuzzy
-msgid "Access Concentrator"
-msgstr "מרכז גישות"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "נקודת גישה"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "פעולות"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "חיבורים פעילים"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "הרשאות DHCP פעילות"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "הרשאות DHCPv6 פעילות"
-
-# צריך אימות של מישהו שמבין יותר במושגים האלו אם צריך בכלל לתרגם את זה או להשאיר כמו שזה
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-#, fuzzy
-msgid "Ad-Hoc"
-msgstr "אד-הוק"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "הוסף"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-#, fuzzy
-msgid "Add local domain suffix to names served from hosts files"
-msgstr "הוסף דומיין מקומי לשמות המוגשים מהקבצים של המארח"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "הוסף ממשק חדש..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "קבצי מארח נוספים"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "כתובת"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-#, fuzzy
-msgid "Administration"
-msgstr "מנהלה"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "הגדרות מתקדמות"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-#, fuzzy
-msgid "Alert"
-msgstr "אזעקה"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-#, fuzzy
-msgid "Allow all except listed"
-msgstr "אפשר הכל חוץ מהרשומים"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "אפשר רשומים בלבד"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-#, fuzzy
-msgid "Allow localhost"
-msgstr "אפשר localhost"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "אנטנה 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "אנטנה 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "הגדרות אנטנה"
-
-# אזור?
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-#, fuzzy
-msgid "Any zone"
-msgstr "כל תחום"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "הקצה ממשקים"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "תחנות קשורות"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "אימות"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "מוסמך"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "דרוש אימות"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "רענון אוטומטי"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "זמין"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "ממוצע:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "חזרה"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "חזרה לסקירה"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "חזרה להגדרות"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "חזרה לסקירה"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "חזרה לתוצאות סריקה"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "גיבוי"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "גיבוי / קושחת פלאש"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "גיבוי רשימת קבצים"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "פורטה כתובת לא תקינה"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"למטה יש את הרשימה הסופית של קבצים לגיבוי. היא מורכבת ע\"י קבצי הגדרות ששונו, "
-"המסומנים ב opkg ׁOpen PacKaGe Managementׂ, קבצי בסיס חיוניים ותבניות הגיבוי "
-"המוגדרות ע\"י המשתמש."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "גשר"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "ממשקי גשר"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "מס' יח' גשר"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-#, fuzzy
-msgid "Bring up on boot"
-msgstr "הבא באיתחול"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "שלט אלחוטי Broadcom 802.11%s"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "שלט אלחוטי Broadcom BCM%04x 802.11"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "שימוש מעבד (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "בטל"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "שרשרת"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "שינויים"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "השינויים הוחלו"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "משנה את סיסמת המנהל לגישה למכשיר"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "ערוץ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "לבדוק"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr "סגור חיבורים לא פעילים אחרי מספר השניות שהוגדר, הזן 0 על-מנת לא לסגור"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "סגור רשימה..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "אוסף מידע..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "פקודה"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "הגדרות נפוצות"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "הגדרות"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "אישור"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "התחבר"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "מחובר"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "מגבלת חיבורים"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "חיבורים"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "מדינה"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "קוד מדינה"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "כסה את הממשק הבא"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "כסה את הממשקים הבאים"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "צור / הקצה תחום-חומת אש"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "צור ממשק"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "צור גשר בין מספר ממשקים"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "קריטי"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "ממשק מותאם אישית"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"מתאים את הגדרות ה-<abbr title=\"Light Emitting Diode\">LED</abbr>-ים במכשיר "
-"(אם אפשרי)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "שרת DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP ו- DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "לקוח DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "אפשרויות-DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "הגדר שם לרשת זו"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"הגדר אפשרויות DHCP נוספות, למשל \"<code>6,192.168.2.1,192.168.2.2</code>\" "
-"אשר מציגות שרתי DNS שונים ללקוח"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "למחוק"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "מחק רשת זו"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "תיאור"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "יעד"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "מכשיר"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "הגדרות מכשיר"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "אבחון"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "מרחק לנק' הרשת הרחוקה ביותר במטרים"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "גיוון"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "הורד גיבוי"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear מאפשר גישת <abbr title=\"Secure Shell\">SSH</abbr> רשתית ושרת <abbr "
-"title=\"Secure Copy\">SCP</abbr> מובנה"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr "<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> דינאמי"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "ערוך"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "ערוך ממשק זה"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "ערוך רשת זו"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "מצב חרום"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "אפשר"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "אפשר <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "אפשר שרת TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "אפשר תפקוד VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "אפשר למידה והזדקנות"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "אפשר"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "הצפנה"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "מוחק..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "שגיאה"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "כתבות IPv4"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr "מספר VLAN שגוי! רק ערכים בין %d לבין %d הם חוקיים."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "שם משתמש ו/או סיסמה שגויים! אנא נסה שנית."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "עומס"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "עומס ממוצע"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "טוען"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "כתובת IPv4 מקומית"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "כתובת IPv6 מקומית"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "שרת מקומי"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "שם"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "לא הוגדרה סיסמה!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "לא מחובר"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "ישנם שדות המכילים ערכים בלתי חוקיים!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "נתיב למפתח הפרטי"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "אנא הזן את שם המשתמש והסיסמה שלך:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "קצב קליטה"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "שחזור"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "הרץ בדיקת מערכת קבצים"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "שירותים"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-#, fuzzy
-msgid "Set up Time Synchronization"
-msgstr "סנכרון זמן"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "דלג אל התוכן"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "דלג אל הניווט"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "חלק מהשדות אינם תקינים, אין אפשרות לשמור את הערכים!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "סליחה, אך האובייקט שביקשת אינו נמצא."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "סליחה, השרת נתקל בשגיאה לא צפויה."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"סליחה, אין תמיכה בעדכון מערכת, ולכן קושחה חדשה חייבת להיצרב ידנית. אנא פנה "
-"אל ה-wiki של OpenWrt עבור הוראות ספציפיות למכשיר שלך."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "מקור"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "אתחול"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "ניתובי IPv4 סטטיים"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "ניתובי IPv6 סטטיים"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "הקצאות סטטיות"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "ניתובים סטטיים"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "כתובת סטטית"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"הקצאות סטטיות נועדו להקצות כתובות IP קבועות ואת שם הרשת שלהן ללקוחות DHCP. "
-"הן נחוצות גם עבור הגדרות ממשק שאינן דינאמיות, בהן מטופלות רק ישויות בעלות "
-"הקצאה מתאימה."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "מצב"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "עצור"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "שלח"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "הגדרות TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "שידור"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "קצב שידור"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "טבלה"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "יעד"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "החוקים הבאים מאופשרים כרגע במערכת זו."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "השם שניתן לרשת איננו ייחודי"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-#, fuzzy
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr "החומרה אינה תומכת בריבוי SSID ולכן ההגדרות הנוכחיות יוחלפו אם תמשיך."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "עיצוב"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr "רשימה זו מציגה סקירה של תהליכי המערכת הרצים כרגע ואת מצבם."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "דף זה מציג סקירה של חיבורי הרשת הפעילים כרגע."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "אזור זה עדיין לא מכיל ערכים."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "סנכרון זמן"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "סנכרון זמן עדיין לא הוגדר."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "אזור זמן"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"על מנת לשחזר את קבצי ההגדרות, באפשרותך להעלות ארכיון גיבוי שנוצר לפני כן."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "סה\"כ פנוי"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "תעבורה"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "העברה"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "קצב שידור"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "שידור"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "עוצמת שידור"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "אנטנת שידור"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "עוצמת שידור"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "השתמש בדגל broadcast"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "השתמש בשרתי DNS מותאמים אישית"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "השתמש בטבלת ניתוב"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "שם משתמש"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "שרת VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "סיסמת WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "סיסמת WPA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "אזהרה"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "רשת אלחוטית מנוטרלת"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "רשת אלחוטית מאופשרת"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr "אתה חייב להפעיל את JavaScript בדפדפן שלך; אחרת, LuCI לא יפעל כראוי."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "כלשהו"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "אוטומטי"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "בטל"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "קדימה"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "אם היעד הוא רשת"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "קלט"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "לא"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "כבוי"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "פועל"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "מנותב"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "מתויג"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "ללא הגבלה"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "לא מוגדר"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "לא מוגדר -או- יצר"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "לא מתויג"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "כן"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "<< אחורה"
-
-#~ msgid "Design"
-#~ msgstr "עיצוב"
-
-#~ msgid "Available packages"
-#~ msgstr "חבילות זמינות"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "מציג רק חבילות המכילות"
-
-#~ msgid "Download and install package"
-#~ msgstr "הורד והתקן חבילות"
-
-#~ msgid "No package lists available"
-#~ msgstr "אין רשימת חבילות זמינה"
-
-#~ msgid "Package name"
-#~ msgstr "שם החבילה"
-
-#~ msgid "Software"
-#~ msgstr "תוכנה"
-
-#~ msgid "Version"
-#~ msgstr "גרסה"
-
-#~ msgid "none"
-#~ msgstr "ללא"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 ו-IPv6"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "קבצי ההגדרות ישמרו."
-
-#~ msgid "Activate this network"
-#~ msgstr "הפעל רשת זו"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "הרשאות DHCP"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "הרשאות DHCPv6"
-
-#, fuzzy
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "האם למחוק את הרשת האלחוטית הזו? המחיקה אינה ניתנת לביטול!\n"
-#~ "ייתכן ותאבד גישה לנתב הזה אם אתה מחובר דרך השרת הזו."
-
-#~ msgid "Sort"
-#~ msgstr "מיין"
-
-#~ msgid "help"
-#~ msgstr "עזרה"
-
-#~ msgid "Apply"
-#~ msgstr "החל"
-
-#~ msgid "Applying changes"
-#~ msgstr "מחיל הגדרות"
-
-#~ msgid "Configuration applied."
-#~ msgstr "הגדרות הוחלו"
-
-#~ msgid "Action"
-#~ msgstr "פעולה"
-
-#~ msgid "Buttons"
-#~ msgstr "כפתורים"
-
-#~ msgid "This page allows the configuration of custom button actions"
-#~ msgstr "דף זה מאפשר להגדיר פעולות מיוחדות עבור הלחצנים."
-
-#~ msgid "AR Support"
-#~ msgstr "תמיכת AR"
-
-#~ msgid "Atheros 802.11%s Wireless Controller"
-#~ msgstr "שלט אלחוטי Atheros 802.11%s"
-
-#~ msgid "Background Scan"
-#~ msgstr "סריקת רקע"
-
-#~ msgid "Compression"
-#~ msgstr "דחיסה"
-
-#~ msgid "Static WDS"
-#~ msgstr "WDS סטטי"
-
-#, fuzzy
-#~ msgid "An additional network will be created if you leave this unchecked."
-#~ msgstr "רשת נוספת תווצר אם תשאיר את זה לא מסומן"
-
-#~ msgid "CPU"
-#~ msgstr "מעבד"
diff --git a/package/luci/modules/luci-base/po/hu/base.po b/package/luci/modules/luci-base/po/hu/base.po
deleted file mode 100644 (file)
index 7eadb60..0000000
+++ /dev/null
@@ -1,6640 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-01-31 09:59+0200\n"
-"Last-Translator: Gabor <juhosg@openwrt.org>\n"
-"Language-Team: none\n"
-"Language: hu\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(%d perces ablak, %d másodperces intervallum)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s elérhető)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(üres)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(nincs csatalkoztatott interfész)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- További mező --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Kérem válasszon --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- egyéni --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Terhelés (utolsó 1 perc):"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Terhelés (utolsó 15 perc):"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Terhelés (utolsó 5 perc):"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> lekérdezési port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> szerver port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"<abbr title=\"Domain Name System\">DNS</abbr> szerverek a resolv fájl "
-"sorrendjében"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-cím"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-útválasztó"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-cím, vagy hálózat "
-"(CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-útválasztó"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> konfiguráció"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> Név"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Media Access Control\">MAC</abbr>-cím"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> bérlés"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> csomagméret"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"maximal\">Max.</abbr> párhuzamos lekérdezés"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "ARP újrapróbálkozási küszöbérték"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "ATM Hidak"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "ATM Virtuális Csatorna Azonosító (VCI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "ATM Virtuális Út Azonosító (VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"Az ATM hidak az AAL5-be ágyazott ethernet kapcsolatokat mint virtuális Linux "
-"hálózati interfész mutatják, mely így DHCP-vel vagy PPP-vel összekapcsolva "
-"használható a szolgáltatói hálózatba történő betárcsázáshoz."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "ATM eszközszám"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Elérési központ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Hozzáférési pont"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Műveletek"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-"Aktív <abbr title=\"Internet Protocol Version 4\">IPv4</abbr> útvonalak"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-"Aktív <abbr title=\"Internet Protocol Version 6\">IPv6</abbr> útvonalak"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Aktív kapcsolatok"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Aktív DHCP bérletek"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Aktív DHCPv6 bérletek"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Hozzáadás"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-"Helyi tartomány utótag hozzáadása a hosts fájlokból kiszolgált nevekhez"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Új interfész hozzáadása..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "További 'hosts' fájlok"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Cím"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Helyi közvetítő híd elérési címe"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Adminisztráció"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Haladó beállítások"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Riasztás"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-"<abbr title=\"Secure Shell\">SSH</abbr> jelszó hitelesítés engedélyezése"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Összes engedélyezése a felsoroltakon kívül"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Csak a felsoroltak engedélyezése"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Lolcalhost engedélyezése"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"Távoli hostok csatlakozásának engedélyezése a helyi SSH továbbított "
-"portokhoz."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "root jelszavas bejelentkezésének engedélyezése"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "Engedélyezi a <em>root</em> felhasználó jelszavas bejelentkezését"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-"A 127.0.0.0/8-as tartományba eső DNS válaszok engedélyezése (pl. RBL "
-"szervizek)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "1-es antenna"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "2-es antenna"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Antenna beállítások"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Bármelyik zóna"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Interfészek összekapcsolása..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Kapcsolódó kliensek"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Hitelesítés"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Hiteles"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Hitelesítés szükséges"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Automatikus frissítés"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Elérhető"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Átlag:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Vissza"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Vissza az áttekintéshez"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Vissza a beállításokhoz"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Vissza az áttekintéshez"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Vissza a felderítési eredményekhez"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Mentés"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Mentés / Firmware frissítés"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Mentési fájl lista"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Hibás címet adott meg!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Alább található a biztonsági mentésbe kerülő fájlok listája. A lista az opkg "
-"által megjelölt módosított konfigurációs fájlokból, fontos alapvető "
-"fájlokból valamint a felhasználó által megadott mintáknak megfelelő "
-"fájlokból áll."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Bitráta"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Hamis NX tartomány felülbírálása"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Híd"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Híd interfészek"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Híd eszközszám"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Hozza fel a rendszer indításakor"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Broadcom 802.11%s vezeték-nélküli vezérlő"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Broadcom BCM%04x 802.11 vezeték-nélküli vezérlő"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Átmeneti tárban van"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Processzor használat (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Mégsem"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Lánc"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Módosítások"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "A módosítások alkalmazva."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr ""
-"Itt módosíthatja az eszköz eléréséhez szükséges adminisztrátori jelszót"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Csatorna"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Ellenőrzés"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Ellenőrző összeg"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Válassza ki a tűzfal zónát amit hozzá akar rendelni ehhez az interfészhez. "
-"Válassza a <em>nincs megadva</em> elemet az interfésznek a hozzárendelt "
-"zónából történő eltávolításához, vagy töltse ki az <em>új</em> mezőt új zóna "
-"megadásához és csatlakoztassa az interfészt ahhoz."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"Válassza ki azokat a hálózatokat, amelyeket csatlakoztatni akar ehhez a "
-"vezetéknélküli interfészhez, vagy töltse ki az <em>új</em> mezőt egy új "
-"hálózat definiálásához."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Titkosító"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Kattintson az \"Archívum készítése\" gombra a jelenlegi konfiguráció tar "
-"archívumként történő letöltéséhez."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Ügyfél"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "DHCP kérés során küldendő kliens azonosító"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Inaktív kapcsolatok bezárása a megadott másodpercek után, használjon 0-t "
-"állandó kapcsolathoz"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Lista bezárása..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Adatok összegyűjtése..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Parancs"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Álatános beállítás"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Beállítás"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Megerősítés"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Kapcsolódás"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Kapcsolódva"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Kapcsolati korlát"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Kapcsolatok"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Ország"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Országkód"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "A következő interfészt tartalmazza"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "A következő interfészeket tartalmazza"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Tűzfal zóna készítés / hozzárendelés"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Új interfész"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Híd létrehozása több interfész között"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Kritikus"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Cron naplózási szint"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Egyéni interfész"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Az eszköz <abbr title=\"Light Emitting Diode\">LED</abbr>-jei működésének "
-"testreszabása."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "DHCP kiszolgáló"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP és DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "DHCP ügyfél"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "DHCP beállítások"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "DNS továbbítások"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Hibakeresés"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "Alapértelmezés %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Alapértelmezett átjáró"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Alapértelmezett állapot"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Adja meg a hálózat nevét."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Adjon meg további DHCP opciókat, például \"<code>6,192.168.2.1,192.168.2.2</"
-"code>\", mely különböző DNS kiszolgálókat hirdet az ügyfelek részére."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Törlés"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Hálózat törlése"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Leírás"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Cél"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Eszköz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Eszköz beállítások"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Diagnosztika"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Könyvtár"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Letiltás"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> tiltása ezen "
-"az interfészen."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Letiltva"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "Beérkező RFC1918 DHCP válaszok elvetése. "
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Távolság optimalizáció"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "A hálózat legtávolabbi tagjának távolsága méterben."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Diverzitás"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"A Dnsmasq egy kombinált <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-kiszolgáló és  <abbr title=\"Domain Name System\">DNS</abbr>-"
-"továbbító <abbr title=\"Network Address Translation\">NAT</abbr> tűzfalak "
-"számára"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-"Ne gyorsítótárazza a negatív válaszokat, pl. nem létező domain-ok esetén"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"Ne továbbítsa a publikus név szerverek által nem megválaszolható kéréseket"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr "Ne továbbítson fordított keresési kéréseket a helyi hálózathoz"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Tartomány szükséges"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "Tartomány fehérlista"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Ne továbbítsa a <abbr title=\"Domain Name System\">DNS</abbr>-név nélküli "
-"<abbr title=\"Domain Name System\">DNS</abbr>-kéréseket "
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Biztonsági mentés letöltése"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Dropbear példány"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"A Dropbear a hálózaton <abbr title=\"Secure Shell\">SSH</abbr> hozzáférést "
-"tesz lehetővé, valamint integrált <abbr title=\"Secure Copy\">SCP</abbr> "
-"szolgáltatást nyújt."
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"Dinamikus <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Dinamikus alagút"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"Az ügyfelek számára kiosztott DHCP címek dinamikus lefoglalása. Letiltása "
-"esetén csak a statikus DHCP bérlettel rendelkező kliensek lesznek "
-"kiszolgálva."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "EAP metódus"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Szerkesztés"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Interfész szerkesztése"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Hálózat szerkesztése"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Vészhelyzet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Engedélyezés"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "<abbr title=\"Spanning Tree Protocol\">STP</abbr> engedélyezése"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "HE.net dinamikus végpont frissítésének engedélyezése"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "IPv6 egyeztetés engedélyezése a PPP linken"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Óriás keretek átengedésének engedélyezése"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "NTP-kliens engedélyezése"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "TFTP kiszolgáló engedélyezése"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "VLAN funkció engedélyezése"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Tanulás és aging engedélyezése"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "A csatolás engedélyezése"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "A lapozó terület engedélyezése"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Engedélyezés/Letiltás"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Engedélyezve"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "A Spanning Tree prokoll engedélyezése erre a hídra"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Beágyazási mód"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Titkosítás"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Törlés..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Hiba"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Ethernet adapter"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Ethernet switch"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "Gépek kibontása"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Lejárat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-#, fuzzy
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr "A bérelt címek lejárati ideje, a minimális érték 2 perc."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Külső rendszernapló kiszolgáló"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Külső rendszernapló kiszolgáló port"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Fájl"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "A kliensek részére közzétett betöltö kép fájlneve"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Fájlrendszer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Privát kérések szűrése"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Használhahatlan kérések szűrése"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Hálózatok keresése és csatlakozás"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Befejezés"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Tűzfal"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Tűzfal Beállítások"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Tűzfal Állapot"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Tűzfal verzió"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "Rögzített forrás port a kimenő DNS kérésekhez"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Firmware flash-elés"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Flash image..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Új firmware image flash-elése"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Flash műveletek"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Flash-elés..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Kényszerítés"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "CCMP (AES) kényszerítése"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-"DHCP kényszerítése ezen a hálózaton még akkor is ha van másik szerver "
-"észlelve."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "TKIP kényszerítése"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "TKIP és CCMP (AES) kényszerítése"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "DHCP forgalom továbbítás"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Broadcast forgalom továbbítás"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Továbbítás módja"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Töredezettségi küszöb"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Keretfűzés"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Szabad"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Csak GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Átjáró"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Átjáró portok"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Általános beállítások"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Általános beállítások"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Archívum készítése"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "Általános 802.11%s vezeték-nélküli vezérlő"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr "A megadott jelszavak nem egyeznek, a jelszó nem lett megváltoztatva!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Ugrás a jelszó beállításhoz..."
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Ugrás a tárgyhoz tartozó beállításokhoz"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "HE.net jelszó"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Befejezés"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Itt állíthatja be az eszköz alapvető tulajdonságait, mint például a gépnév "
-"vagy az időzóna."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr> elrejtése"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Host bejegyzések"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr "Host lejárati idő"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> vagy hálózat"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Gépnév"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "DHCP kérés során küldendő gépnév"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Gépnevek"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "IP cím"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "IPv4 tűzfal"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "IPv4 cím"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "IPv4 broadcast"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "IPv4 átjáró"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "IPv4 hálózati maszk"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "IPv4 prefix hossza"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "IPv4-cím"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "IPv6 tűzfal"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "IPv6 cím"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "IPv6 átjáró"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "IPv6 előtag"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "IPv6 prefix hossz"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "IPv6-cím"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6 IPv4-ben (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6 IPv4 felett (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6 IPv4 felett (6to4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identitás"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-"Megadás esetén az eszköz csomópont helyett UUID alapján történő csatolása"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-"Megadás esetén az eszköz csomópont helyett címke alapján történő csatolása"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "Ha nincs kiválasztva, akkor nincs alapértelmezett útvonal beállítva"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-"Ha nincs kiválasztva, akkor a hirdetett DNS kiszolgáló címeket nem veszi "
-"figyelembe"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Ha a fizikai memória túl kevés a nem használt adatok ideiglenesen áttehetők "
-"egy swap-eszközre mely így nagyobb mennyiségű használható <abbr title="
-"\"Random Access Memory\">RAM</abbr>-ot eredményez. Az adatok áttétele egy "
-"nagyon lassú folyamat mivel a swap-eszköz nem érhető el akkora sebességgel "
-"mint a <abbr title=\"Random Access Memory\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Interfész figyelmen kívül hagyása"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "A resolve fájl figyelmen kívül hagyása"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Image"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "Be"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "Inaktivitási időtúllépés"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Bejövő"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Információk"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Indítási állomány"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Indítási állományok"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "%q csomag telepítése"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Protokoll kiterjesztések telepítése..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Interfész"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Interfész beállítások"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Interfész áttekintés"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "Interfész újracsatlakoztatása..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "Az interfész nincs jelen, vagy még nincs csatlakoztatva."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Interfészek"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Belső szerverhiba"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Érvénytelen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-"A megadott VLAN azonosító érvénytelen. Az azonosítónak %d és %d közé kell "
-"esnie."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-"A megadott VLAN azonosító érvénytelen! Minden VLAN-hoz egyedi azonosító kell."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Érvénytelen felhasználói név és/vagy jelszó! Kérem próbálja újra!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Úgy tűnik, hogy a flash-elendő kép-file nem fér el a Flash-memóriába. Kérem "
-"ellenőrizze a kép fájlt!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "JavaScript szükséges!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Csatlakozás a hálózathoz"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "Csatlakozás a hálózathoz: vezetéknélküli hálózatok keresése"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Beállítások megtartása"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Kernel napló"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Kernel verzió"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Kulcs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Kulcs #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Kilövés"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "L2TP szerver"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "LCP echo hibaküszöb"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "LCP Echo időtartam"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Címke"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Nyelv"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Nyelv és megjelenés"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Bérlet fájl"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "A bérletből hátralévő idő"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Automatikus észleléshez hagyja üresen"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "A jelenlegi WAN cím használatához hagyja üresen"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Jelmagyarázat:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Korlát"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Kapcsolat létrehozva"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"<abbr title=\"Domain Name System\">DNS</abbr> szerverek listája, ahová a "
-"kérések továbbításra kerülnek"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "Domain-ok listája, melyeknél az RFC1918 válaszok megengedettek"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr "A hamis NX tartomány eredményeket szolgáltató gépek listája"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-"Csak a megadott interfészen hallgat, vagy az összesen, amennyiben nem adja "
-"meg"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "Szerver port a beérkező DNS kérések számára"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Terhelés"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Átlagos terhelés"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Betöltés"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Helyi IPv4 cím"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Helyi IPv6 cím"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Helyi indítóscript"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Helyi idő"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Helyi tartomány"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-#, fuzzy
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-"Helyi tartomány meghatározása. Az ezzel a tartománnyal egyező nevek soha "
-"nincsenek továbbítva és csak DHCP-n vagy host fájlok által kerülnek "
-"feloldásra"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-"A helyi tartomány utótag csatolása a DHCP nevekhez és hosts fájl "
-"bejegyzésekhez"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Helyi kiszolgáló"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-"Gépnév lokalizációja a lekérdező alhálózattól függően, ha több IP cím is "
-"elérhető"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Lekérdezések lokalizációja"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Napló kimeneti szintje"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Kérések naplózása"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "Naplózás"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Bejelentkezés"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Kijelentkezés"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr "A legalacsonyabb bérleti címnek az interfész címétől való távolsága"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "MAC-cím"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "MAC-cím szűrő"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "MAC-szűrő"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "MAC-lista"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "Aktív DHCP bérletek maximális száma"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "Párhuzamos DNS kérések maximális száma"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "EDNS.0 UDP csomagok maximális mérete"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "Maximális várakozási idő a modem kész állapotára (másodpercben)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "DHCP címek maximális száma"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Memória"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Memória használat (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Metrika"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "Hiányzó protokoll kiterjesztés a %q progokoll számára"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Mód"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Modemeszköz"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "Modem inicializálás időtúllépés"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Ellenőrzés"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "Csatolási bejegyzés"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Csatolási pont"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Csatolási pontok"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "Csatolási pontok - Csatolási bejegyzés"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "Csatolási pontok - Lapozóterület bejegyzés"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"A csatolási pontok határozzák meg, hogy egy memória eszköz hová lesz "
-"csatlakoztatva a fájlendszeren belül "
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Csatolási beállítások"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Csatolási pont"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Csatolt fájlrendszerek"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Mozgatás lefelé"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Mozgatás felfelé"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS azonosító"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "Kijelölt NTP kiszolgálók"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Név"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Az új interfész neve"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Az új hálózat neve"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navigáció"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Hálózati maszk"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Hálózat"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Hálózati eszközök"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "Hálózati rendszertöltő lemezkép"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Interfészhez nem rendelt hálózat"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Következő »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Ehhez az interfészhez nincs DHCP kiszolgáló beállítva"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Nem találhatók fájlok"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Nincs elérhető információ"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "Nincs negatív gyorsítótár"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Ehhez az eszközhöz nincs hálózat beállítva"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "Nincs megadva hálózatnév"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Nincs jelszó!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Ez a lánc nem tartalmaz szabályokat"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Nincs hozzárendelt zóna"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Zaj"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Zaj:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Nincs"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Normál"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "Nem található"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "Nincs hozzárendelve"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "Nincs kapcsolódva"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Megjegyzés"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "Nslookup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "Kikapcsolt állapot késleltetés"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"Ezen az oldalon a hálózati interfészeket állíthatja be. Több interfész "
-"között híd hozható létre a \"híd interfész\" mező bejelölésével és több "
-"hálózati interfész nevének szóközzel történő elválasztásával. Lehetőség van "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> jelölés "
-"<samp>INTERFÉSZ.VLANSZÁM</samp> használatára is, pl. <samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "Bekapcsolt állapot késleltetés"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "Legalább gépnevet vagy MAC-címet meg kell adni!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Egy vagy több mező érvénytelen adatot tartalmaz!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Egy vagy több kötelezően kitöltendő mező üres!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Lista megnyitása..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Beállítás módosítva"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Beállítás eltávolítva"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Lehetőségek"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Egyéb:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Ki"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "Kimenő:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "MAC cím felülbírálása"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "MTU felülbíráslás"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "Átjáró felülbírálása a DHCP válaszokban"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-"Az ügyfelek részére küldött hálózati masz felülbírálása. Ez alapesetben a "
-"kiszolgált alhálózat alapján kerül meghatározásra."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr "A belső útvonalakhoz használt tábla felülbírálása"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Áttekintés"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Tulajdonos"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "PAP/CHAP jelszó"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "PAP/CHAP felhasználói név"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "PPPoA beágyazás"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "A libiwinfo csomag szükséges!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Csomagok"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "A %q zóna része"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Jelszó"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Jelszó hitelesítés"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "A privát kulcsh jelszava"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "CA tanúsítvány elérési útja"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "Kliens tanúsítvány elérési útja"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "A privát kulcs elérési útja"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Csúcs:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Újraindítás végrehajtása"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Visszaállítás végrehajtása"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "Phy sebesség:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Fizikai beállítások"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ping"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "csom."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Adja meg a felhasználónevét és a jelszavát."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Szabály"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Port"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Port állapot:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-"A peer halottnak tekintése a megadott számú LCP echo hibák után. Használjon "
-"0-t a hibák figyelmen kívül hagyásához."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Ügyfél-ügyfél közötti kommunikáció megakadályozása"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Folytatás"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Folyamatok"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protokoll"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Az új interfész protokollja"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "Protokoll támogatás nincs telepítve"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "NTP kiszolgáló"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "Új hálózat nyújtása"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Ál Ad-hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Minőség"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "RTS/CTS küszöbérték"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "RX sebesség"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Radius-Naplózási-Port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Radius-Naplózás-Kulcs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Radius-Naplózás-Kiszolgáló"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Radius-Hitelesítés-Port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Radius-Hitelesítés-Kulcs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Radius-Hitelesítés-Kiszolgáló"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Az <code>/etc/ethers</code> fájl olvasása a <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr> kiszolgáló beállításához"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"Biztosan törli ezt a vezetéknélküli hálózatot? A törlés nem visszavonható!\n"
-"Lehet, hogy elveszti a hozzáférést az eszközhöz, amennyiben ezen a hálózaton "
-"keresztül kapcsolódik."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "Biztos, hogy visszavonja az összes módosítást?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "Biztos, hogy cserélni szeretné a protokollt?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Valósidejű kapcsolatok"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Valósidejű grafikonok"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Valósidejű terhelés"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Valósidejű forgalom"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Valósidejű vezetéknélküli adatok"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "Rebind elleni védelem"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Újraindítás"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Újraindítás..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Újraindítja az eszköz operációs rendszerét"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Fogadás"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Vevő antenna"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Csatlakoztassa újra az interfészt"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Hivatkozások"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "Átjátszás"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "Átjátszó híd"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "Átjátszás hálózatok között"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "Átjátszó híd"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "Távoli IPv4 cím"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Eltávolítás"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Felderítés ismétlése"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Bejegyés lecserélése"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Vezetéknélküli beállítások lecserélése"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-"Szükséges bizonyos internetszolgáltatók esetén, pl. Charter 'DOCSIS 3'-al"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Visszaállítás"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Számlálók nullázása"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Alapértelmezések visszaállítása"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Resolv és hosts fájlok"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "Resolv fájl"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Újraindítás"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Tűzfal újraindítása"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Visszaállítás"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Biztonsági mentés visszaállítása"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Jelszó mutatása/elrejtése"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Visszavonás"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Gyökérkönyvtár"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "TFTP-n keresztül megosztott fájlok gyökérkönyvtára"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Router jelszó"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Útvonalak"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Az útvonalak határozzák meg, hogy bizonyos gépek illetve hálózatok melyik "
-"interfészen keresztül érhetők el."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "Fájlrendszer ellenőrzés futtatása az eszköz csatolása előtt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Fájlrendszer ellenőrzés futtatása"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "SSH hozzáférés"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "SSH kulcsok"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Mentés"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Mentés & Alkalmazás"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Felderítés"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Ütemezett feladatok"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Szakasz hozzáadva"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Szakasz eltávolítva"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "Részletekért lásd a 'mount' man oldalát"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-"LCP echo kérések küldése a másodpercben megadott időközönként, csak a "
-"hibaküszöbbel együtt van hatása."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Kliensek szétválasztása"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Kiszolgáló beállításai"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Szolgáltatás neve"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Szolgáltatás típusa"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Szolgáltatások"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-#, fuzzy
-msgid "Set up Time Synchronization"
-msgstr "Idő szinkronizálás beállítása"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "DHCP kiszolgáló beállítása"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "Mentendő fájlok aktuális listájának megjelenítése"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Interfész leállítása"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Jel"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Jel:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Méret"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Ugrás"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Ugrás a tartalomhoz"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Ugrás a navigációhoz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "Időrés"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Néhán mező érvénytelen, az értékek nem menthetők!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "Sajnálom, a kért objektum nem található."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "Sajnálom, a szerver váratlan hibát észlelt."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"Sajnáljuk, a 'sysupgrade' támogatás nem elérhető, az új firmware fájl "
-"telepítését manuálisan kell elvégezni. Az eszközhöz tartozó telepítési "
-"utasításokért keresse fel az wiki-t."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Forrás"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "Megadja az eszköz csatlakozási könyvtárát."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "Megadja a <em>Dropbear</em> példány portját"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-"Megadja a maximális sikertelen ARP kérések számát, amik után a host nem "
-"elérhetőnek tekinthető"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-"Megadja a másodpercek számát, amik után a host nem elérhetőnek tekinthető"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Itt adja meg a titkosító kulcsot."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Indítás"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Indítás prioritása"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Rendszerindítás"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Statikus IPv4 útvonalak"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Statikus IPv6 útvonalak"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Statikus bérletek"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Statikus útvonalak"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Statikus cím"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"A statikus bérletekkel a DHCP kliensekhez fix IP-címet és hostnevet "
-"rendelhet. Olyan nem dinamikus interfész konfigurációk esetén is "
-"szükségesek, ahol a csak a megfelelő bérlettel rendelkező hosztok kerülnek "
-"kiszolgálásra."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Állapot"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Leállítás"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Kötött sorrend"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Elküldés"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Lapozóterület"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Kapcsoló"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "Kapcsoló %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "Kapcsoló %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "Protokoll csere"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Szinkronizálás a böngészővel"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Szinkronizálás..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Rendszer"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Rendszernapló"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Rendszer tulajdonságok"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "Rendszer napló puffer méret"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "TFTP beállítások"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "TFTP szerver gyökér könyvtár"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "TX sebesség"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Tábla"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Cél"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Megszakítás"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-#, fuzzy
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"Az <em>Eszköz beállítások</em> szakasz a rádió hardver fizikai beállításait, "
-"úgymint csatorna, adóteljesítmény vagy antenna választás teszi lehetővé, "
-"amelyen az összes definiált vezeték nélküli hálózat (ha a rádió hardver "
-"multi-SSID képes) osztozik. A hálózatonkénti beállítások, mint az "
-"titkosítás, mód az <em>Interfész beállítások</em> alá vannak csoportosítva."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"A <em>libiwinfo-lua</em> nincs telepítve. A vezetéknélküli beállítás "
-"működéséhez ezt az összetevőt telepítnei kell."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-"A szolgáltatóhoz rendelt IPv6 előtag, általában így végződik: <code>::</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"A következő karakterek használhatók: <code>A-Z</code>, <code>a-z</code>, "
-"<code>0-9</code> and <code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"A memória vagy partíció eszköz fájlja (<abbr title=\"például\">pl.</abbr> "
-"<code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"A memória formázásához használt fájlrendszer típusa (<abbr title=\"for "
-"example\">pl.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</"
-"abbr></samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"Az image feltöltve. Alább található a fájl ellenőrző összege és mérete, "
-"hasonlítsa össze az eredeti fájllal a feltöltött adatok sértetlenségének "
-"ellenőrzéséhez.<br />Kattintson az alábbi \"Folytatás\" gombra a flash-elési "
-"eljárás elindításához."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "A következő módosítások lettek visszavonva"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "Jelenleg a következő szabályok aktívak a rendszeren."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "A megadott hálózati név már létezik"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-#, fuzzy
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-"A hardver nem képes többszörös SSID kezelésre ezért a meglévő beállítások "
-"elvesznek ha folytatja."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-"Az IPv4 előtag hossza bitekben, a maradék az IPv6 címekben használatos."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "Az IPv6 előtag hossza bitekben"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"Az eszközön található hálózati portok kombinálhatók több <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>-ba, amelyekben a számítógépek "
-"közvetlenül kommunikálhatnak egmással. A <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>-ok gyakran a hálózati szegmensek elkülönítésére "
-"használják. Gyakran van egy alapértelmezett Uplink port a következő nagyobb "
-"hálózathoz (pl. az internet) való kapcsolódásra és a többi port a helyi "
-"hálózathoz."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "A kiválasztott protokoll eszköz hozzárendelést igényel"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr "A rendszer most törli a konfigurációs partíciót majd újraindul."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"A rendszer frissítése folyamatban.<br /> NE KAPCSOLJA KI AZ ESZKÖZT!<br /> "
-"Várjon néhány percet, amíg az eszköz ismételten elérhető. Az eszköz "
-"eléréséhez a beállításaitól függően szükséges lehet a számítógépe IP-címének "
-"megújítása."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"A feltöltött image fájl formátuma nem támogatott. Ügyeljen arra, hogy a "
-"platformjának megfelelő általános image formátumot válassza ki."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Megjelenés"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Nincsenek aktív bérletek."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "Nincsenek visszavonásra váró változtatások!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "Nincsenek el nem mentett változtatások!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-"Nincs hozzárendelt eszköz, kérem csatoljon egy hálózati eszközt a \"Fizikai "
-"beállítások\" fülön."
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"A routeren jelenleg nincs jelszó beállítva. Állítsa be a root felhasználó "
-"jelszavát a felhasználói felület védelme és az SSH elérés engélyezése "
-"érdekében."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr "Az átjátszó IPV4 címe"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-"Ez egy shell mintákból álló lista a rendszer frissítés során megőrzendő "
-"fájlok és könytárak meghatározására. Az /etc/config/ könyvtárban található "
-"módosított fájlok és bizonyos további beállítások automatikusan megőrződnek."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"Ez a /etc/rc.local fájl tartalma. Ide írhatja be a saját parancsait (az "
-"'exit 0' sor elé) a boot folyamat végén történő futtatásukhoz."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-"Ez az alagút közvetítő (tunnel broker) által megadott helyi végpont címe, "
-"általában így végződik: <code>...:2/64</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"Ez az egyetlen <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> a helyi hálózaton"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr "Ez a rendszer crontab, amiben időzített feladatok definiálhatók."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-"Ez általában a legközelebbi alagút közvetítő (tunnel broker) által vezérelt "
-"jelenléti pont (PoP) címe"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"Ez a lista a rendszerben jelenleg futó folyamatokról és azok állapotáról ad "
-"áttekintést."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr ""
-"Ez a lap a rendszerben jelenleg aktív hálózati kapcsolatokról ad áttekintést."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Ez a szakasz még nem tartalmaz értékeket"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Idő szinkronizálás"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "Idő szinkronizálás még nincs beállítva."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Időzóna"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"Itt tölthet fel egy korábban létrehozott biztonsági mentés archívumot a "
-"konfigurációs fájlok visszaállításához. A firmware kezdeti állapotának "
-"visszaállításához kattintson a \"Visszaállítás végrehajtása\" gombra (csak "
-"squashfs image-ek esetén lehetséges)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Összes elérhető"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Traceroute"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Forgalom"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Átvitel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Átviteli sebesség"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Küldés"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Adóteljesítmény"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Adó antenna"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "Trigger"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "Trigger mód"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "Tunnel azonosító"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Tunnel interfész"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Adóteljesítmény"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Típus"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "Csak UTMS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "USB eszköz"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr "Nem indiítható"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Ismeretlen"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "Nem kezelt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "El nem mentett módosítások"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Nem támogatott protokoll típus."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"Itt tölthet fel egy új sysupgrade-kompatibilis képet a futó firmware "
-"lecseréléséhez. A jelenlegi beállítások megtartásához jelölje be a "
-"\"Beállítások megtartása\" négyzetet (kompatibilis firmware kép szükséges)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Archívum feltöltése..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Feltöltött fájl"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Működési idő"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "<code>/etc/ethers</code> használata"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "DHCP kiszolgáló használata"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "Másik fél által ajánlott DNS szerverek használata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "ISO/IEC 3166 alpha2 országkódok használata"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr "MTU használata az alagút interfészen"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "TTL használata az alagút interfészen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "Broadcast flag használata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Egyedi DNS szerverek használata"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Alapértelmezett átjáró használata"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "Átjáró metrikájának használata"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Útválasztó tábla használata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"Használja a <em>Hozzáadás</em> gombot új bérleti bejegyzés hozzáadásához. A "
-"<em>MAC-cím</em> azonosítja a gépet. az <em>IPv4-cím</em> adja meg a "
-"használandó rögzített IP címet és a <em>Gépnév</em> lesz szimbolikus névként "
-"hozzárendelve az igénylő géphez."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Használt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "Használt kulcsindex"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Felhasználónév"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLAN-ok %q-n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLAN-ok %q-n (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "VPN kiszolgáló"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "DHCP kérés során küldendő 'Vendor Class'"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Ellenőrzés"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "WEP nyílt rendszer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "WEP megosztott kulcs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "WEP jelmondat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "WMM mód"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "WPA jelmondat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"WPA titkosításhoz kliens módnál 'wpa_supplicant', hozzáférési pont illetve "
-"ad-hoc módnál 'hostapd' telepítése szükséges."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "Várakozás a változtatások alkalmazására..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "Várakozás a parancs befejezésére..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Figyelmeztetés"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Vezetéknélküli rész"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Vezetéknélküli adapter"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Vezetéknélküli hálózat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Vezetéknélküli rész áttekintés"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Vezetéknélküli biztonság"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "Vezetéknélküli hálózat le van tiltva"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "Vezetéknélküli hálózat nincs kapcsolódva"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "Vezetéknélküli rész újraindítása folyamatban..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "Vezetéknélküli hálózat letiltva"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "Vezetéknélküli hálózat engedélyezve"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "A kapott DNS kéréseket írja a rendszernaplóba"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Itt engedélyezheti vagy tilthatja le a telepített indítási állományokat. A "
-"módosítások a rendszer újraindítása után lesznek alakalmazva.<br /"
-"><strong>Figyelem: alapvető indítási állomány pl. \"network\" letiltása "
-"esetén, az eszköz elérhetetlenné válhat!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"Engélyezze a Java Szkripteket a böngészőjében, mert anélkül a LuCI nem fog "
-"megfelelően működni."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "bármelyik"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "automatikus"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "áthidalt"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "új:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "híd létrehozása a megadott interfész(ek) között"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "letiltás"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "lejárt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"fájl ahová a <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> "
-"bérletek tárolásra kerülnek"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "továbbítás"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "full-duplex"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "half-duplex"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "rejtett"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "ha a cél hálózat"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "bemenet"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "helyi <abbr title=\"Domain Name System\">DNS</abbr> fájl"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "nem"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "nincs link"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "ki"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "be"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "nyitás"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "irányított"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "cimkézett"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "ismeretlen"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "korlátlan"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "nincs meghatározva"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "nincs magadva -vagy- új:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "cimkézetlen"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "igen"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Vissza"
-
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr ""
-#~ "Nyilvános kulcs alapú SSH azonosításhoz itt adhat meg nyilvános SSH "
-#~ "kulcsokat (soronként egyet)."
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "A jelszó megváltoztatása sikeres!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "Ismeretlen hiba, a jelszó nem lett megváltoztatva!"
-
-#~ msgid "Design"
-#~ msgstr "Megjelenés"
-
-#~ msgid "Available packages"
-#~ msgstr "Elérhető csomagok"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "Csak azon csomagok megjelenítése, amelyek tartalmazzák"
-
-#~ msgid "Download and install package"
-#~ msgstr "Csomag letöltése és telepítése"
-
-#~ msgid "Filter"
-#~ msgstr "Szűrő"
-
-#~ msgid "Find package"
-#~ msgstr "Csomag keresése"
-
-#~ msgid "Free space"
-#~ msgstr "Szabad hely"
-
-#~ msgid "Install"
-#~ msgstr "Telepítés"
-
-#~ msgid "Installed packages"
-#~ msgstr "Telepített csomagok"
-
-#~ msgid "No package lists available"
-#~ msgstr "Csomaglisták nem állnak rendelkezésre"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "OPKG-Beállítások"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "A csomag listák 24 óránál régebbiek"
-
-#~ msgid "Package name"
-#~ msgstr "Csomagnév"
-
-#~ msgid "Software"
-#~ msgstr "Szoftver"
-
-#~ msgid "Update lists"
-#~ msgstr "Listák frissítése"
-
-#~ msgid "Version"
-#~ msgstr "Verzió"
-
-#~ msgid "none"
-#~ msgstr "nincs"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "DNS beállítás letiltása"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 és IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "csak IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "csak IPv6"
-
-#~ msgid "Lease validity time"
-#~ msgstr "Bérlet érvényességi ideje"
-
-#~ msgid "Multicast address"
-#~ msgstr "Multicast cím"
-
-#~ msgid "Protocol family"
-#~ msgstr "Protokoll család"
-
-#~ msgid "No chains in this table"
-#~ msgstr "Ez a tábla nem tartalmaz láncokat."
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "A konfigurációs fájlok megmaradnak."
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Megjegyzés: konfigurációs fájlok törölve lesznek."
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "Hálózat aktiválása"
-
-#~ msgid "Hermes 802.11b Wireless Controller"
-#~ msgstr "Hermes 802.11b vezeték nélküli vezérlő"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "Interfész leállítása..."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "Interfész újracsatlakoztatva"
-
-#~ msgid "Interface shut down"
-#~ msgstr "Interfész leállítás"
-
-#~ msgid "Prism2/2.5/3 802.11b Wireless Controller"
-#~ msgstr "Prism2/2.5/3 802.11b vezeték nélküli vezérlő"
-
-#~ msgid "RaLink 802.11%s Wireless Controller"
-#~ msgstr "RaLink 802.11%s vezeték nélküli vezérlő"
-
-#~ msgid ""
-#~ "Really shutdown interface \"%s\"? You might lose access to this device if "
-#~ "you are connected via this interface."
-#~ msgstr ""
-#~ "Biztos, hogy leállítja a \"%s\" interfészt?\n"
-#~ " Lehet, hogy elveszti a hozzáférést az eszközhöz, amennyiben ezen az "
-#~ "interfészen keresztül kapcsolódik."
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "Interfész újracsatlakoztatása"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "Hálózat leállítása"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "Vezetéknélküli rész újraindítva"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "Vezetéknélküli rész leállítása"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "DHCP bérletek"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "DHCPv6 bérletek"
-
-#~ msgid ""
-#~ "Really delete this interface? The deletion cannot be undone! You might "
-#~ "lose access to this device if you are connected via this interface."
-#~ msgstr ""
-#~ "Biztosan törli az interfészt? A törlés nem visszavonható!\n"
-#~ " Lehet, hogy elveszti a hozzáférést az eszközhöz, amennyiben ezen az "
-#~ "interfészen keresztül kapcsolódik."
-
-#, fuzzy
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "Biztos, hogy leállítja a hálózatot?!\n"
-#~ " Lehet, hogy elveszti a hozzáférést az eszközhöz, amennyiben ezen a "
-#~ "hálózaton keresztül kapcsolódik."
-
-#~ msgid "Sort"
-#~ msgstr "Sorbarendezés"
-
-#~ msgid "help"
-#~ msgstr "súgó"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "IPv4 WAN állapot"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "IPv6 WAN állapot"
-
-#~ msgid "Apply"
-#~ msgstr "Alkalmaz"
-
-#~ msgid "Applying changes"
-#~ msgstr "Módosítások alkalmazása"
-
-#~ msgid "Configuration applied."
-#~ msgstr "Beállítások alkalmazva."
-
-#~ msgid "Save &#38; Apply"
-#~ msgstr "Mentés &#38; Alkalmazás"
-
-#~ msgid "The following changes have been committed"
-#~ msgstr "A következő módosítások lettek alkalmazva"
-
-#~ msgid "There are no pending changes to apply!"
-#~ msgstr "Nincsenek alkalmazásra váró módosítások!"
-
-#~ msgid "Action"
-#~ msgstr "Művelet"
-
-#~ msgid "Buttons"
-#~ msgstr "Gombok"
-
-#~ msgid "Handler"
-#~ msgstr "Kezelő"
-
-#~ msgid "Maximum hold time"
-#~ msgstr "Maximális tartási idő"
-
-#~ msgid "Minimum hold time"
-#~ msgstr "Minimális tartási idő"
-
-#~ msgid "Path to executable which handles the button event"
-#~ msgstr "A gomb eseményeit kezelő végrehajtható állomány elérési útja"
-
-#~ msgid "Specifies the button state to handle"
-#~ msgstr "Meghatározza a gomb kezelendő állapotát"
-
-#~ msgid "This page allows the configuration of custom button actions"
-#~ msgstr "Ez a lap a gombok egyedi működésének beállítását teszi lehetővé"
-
-#~ msgid "Leasetime"
-#~ msgstr "Bérlet időtartama"
-
-#~ msgid "AR Support"
-#~ msgstr "AR Támogatás"
-
-#~ msgid "Atheros 802.11%s Wireless Controller"
-#~ msgstr "Atheros 802.11%s vezeték-nélküli vezérlő"
-
-#~ msgid "Background Scan"
-#~ msgstr "Felderítés a háttérben"
-
-#~ msgid "Compression"
-#~ msgstr "Tömörítés"
-
-#~ msgid "Disable HW-Beacon timer"
-#~ msgstr "Hardveres beacon időzítő letiltása"
-
-#~ msgid "Do not send probe responses"
-#~ msgstr "Ne válaszoljon a szondázásra"
-
-#~ msgid "Fast Frames"
-#~ msgstr "Gyors keretek"
-
-#~ msgid "Maximum Rate"
-#~ msgstr "Maximális sebesség"
-
-#~ msgid "Minimum Rate"
-#~ msgstr "Minimális sebesség"
-
-#~ msgid "Multicast Rate"
-#~ msgstr "Multicast sebesség"
-
-#~ msgid "Outdoor Channels"
-#~ msgstr "Kültéri csatornák"
-
-#~ msgid "Regulatory Domain"
-#~ msgstr "Szabályozó tartomány"
-
-#~ msgid "Separate WDS"
-#~ msgstr "WDS szétválasztása"
-
-#~ msgid "Static WDS"
-#~ msgstr "Statikus WDS"
-
-#~ msgid "Turbo Mode"
-#~ msgstr "Turbó mód"
-
-#~ msgid "XR Support"
-#~ msgstr "XR támogatás"
-
-#~ msgid "An additional network will be created if you leave this unchecked."
-#~ msgstr "Amennyiben ezt jelöletlenül hagyja, egy további hálózat jön létre"
-
-#~ msgid "Join Network: Settings"
-#~ msgstr "Csatlakozás a hálózathoz: Beállítások"
-
-#~ msgid "CPU"
-#~ msgstr "Processzor"
-
-#~ msgid "Port %d"
-#~ msgstr "Port %d"
-
-#~ msgid "Port %d is untagged in multiple VLANs!"
-#~ msgstr "A %d port egyszerre több VLAN-ban is cimkézetlen!"
-
-#~ msgid "VLAN Interface"
-#~ msgstr "VLAN interfész"
diff --git a/package/luci/modules/luci-base/po/it/base.po b/package/luci/modules/luci-base/po/it/base.po
deleted file mode 100644 (file)
index b45d78d..0000000
+++ /dev/null
@@ -1,6484 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: LuCI\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2017-09-05 00:33+0100\n"
-"Last-Translator: bubu83 <bubu83@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: it\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.6.10\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(%d finestra in minuti , %d secondi intervallo)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s disponibile)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(vuoto)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(nessuna interfaccia collegata)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Campo aggiuntivo --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Per favore scegli --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- personalizzato --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Carico in 1 minuto:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Carico in 15 minut:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Carico in 5 minuti:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr ""
-"<abbr title=\"Servizio basilare di impostazione Identificatore\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "Richiesta porta <abbr title=\"Sistema Nome Dominio\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "Porta Server <abbr title=\"Sistema Nome Dominio\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"<abbr title=\"Sistema Nome Dominio\">DNS</abbr> I server che verranno "
-"interrogati nell'ordine del resolv file"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-"<abbr title=\"Impostazione Identificatore Servizio Esteso\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "Indirizzo <abbr title=\"Protocollo Internet Versione 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "Gateway <abbr title=\"Protocollo Internet Versione 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr ""
-"Maschera di rete <abbr title=\"Protocollo Internet Versione 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"Indirizzo <abbr title=\"Protocollo Internet Versione 6\">IPv6</abbr> o rete "
-"(CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "Gateway <abbr title=\"Protocollo Internet Versione 6\">IPv6</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "Configurazione <abbr title=\"Diodo ad Emissione di Luce\">LED</abbr>"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Diodo ad Emissione di Luce\">LED</abbr> Nome"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "Indirizzo <abbr title=\"Controllo Accesso Supporto\">MAC</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"<abbr title=\"maximal\">Max.</abbr> Contratto <abbr title=\"Configurazione "
-"Protocollo Host Dinamico\">DHCP</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"maximal\">Max.</abbr> dimensione pacchetti <abbr title="
-"\"Estensione Meccanismi per il Sistema dei Nomi dei Domini\">EDNS0</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"maximal\">Max.</abbr> Richiesta in uso"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-"<br/>Nota: devi riavviare manualmente il servizio cron se il file crontab "
-"era vuoto prima delle modifiche."
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "riprova soglia ARP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "Ponti ATM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "Identificatore Canale Virtuale ATM (VCI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "Identificatore Percorso Virtuale ATM (VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"I ponti ATM incapsulano connessioni in AAL5, in modo che i dispositivi "
-"virtuali si possono interfacciare con le reti virtuali Linux in congiunzione "
-"con la comunicazione DHCP o PPP dell'ISP."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "Numero dispositivo ATM "
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Accesso Concentratore"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Punto di Accesso"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Azioni"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-"Instradamento <abbr title=\"Protocollo Internet Versione 4\">IPv4</abbr> "
-"attivo"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-"Instradamento <abbr title=\"Protocollo Internet Versione 6\">IPv6</abbr> "
-"attivo"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Connessioni attive"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Contratti attivi DHCP"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Contratti attivi DHCPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Aggiungi"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-"Aggiungere il suffisso di dominio locale ai nomi serviti dal file hosts"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Aggiungi nuova interfaccia..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "File Hosts Aggiuntivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Indirizzo"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Indirizzo per accedere al ponte locale di trasmissione"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Amministrazione"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Opzioni Avanzate"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Allerta"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-"Permetti autenticazione <abbr title=\"Secure Shell\">SSH</abbr> tramite "
-"password"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Consenti tutti tranne quelli nell'elenco"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Consenti solo quelli nell'elenco"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Permetti localhost"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"Permetti agli host remoti di connettersi tramite ssh reindirizzando le porte"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Permetti l'accesso a root con password"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "Abilita l'utente root con l'accesso via password"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-"Permetti le risposte upstream nell'intervallo 127.0.0.0/8, per esempio nei "
-"servizi RBL"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Antenna 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Antenna 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Configurazione dell'Antenna"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Qualsiasi Zona"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Assegna Interfacce..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Dispositivi Wi-Fi connessi"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Autenticazione PEAP"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Autoritativo"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Autorizzazione richiesta"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Aggiornamento Automatico"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr "Automatico"
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr "Homenet (HNCP) automatico"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr "Controlla automaticamente il filesystem per errori prima di montare"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr "Monta automaticamente i filesystem in hotplug"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr "Monta automaticamente lo swap in hotplug"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr "Automonta Filesystem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr "Automonta Swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Disponibile"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Media:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Indietro"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Ritorna alla panoramica"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Indietro alla configurazione"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Ritorna alla panoramica"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Ritorno ai risultati della scansione"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Copia di Sicurezza"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Copia di Sicurezza / Flash Firmware"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Elenco dei file di cui effettuare una copia di sicurezza"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "E' stato specificato un indirizzo errato!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Di seguito l'elenco dei file di cui effettuare la copia di sicurezza. Essa è "
-"composta dai file di configurazione modificati installati da opkg, file di "
-"base essenziali e i file di backup definiti dall'utente."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Bitrate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Ignora Dominio Bogus NX"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Ponte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Interfacce Ponte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Numero Unità Ponte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Attivare all'avvio"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Dispositivo Wireless Broadcom 802.11%s"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Dispositivo Wireless Broadcom BCM%04x 802.11"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Buffered"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Uso CPU (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Annulla"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr "Categoria"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Catena"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Modifiche"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Modifiche applicate."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Cambia la password di amministratore per accedere al dispositivo"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Canale"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Verifica"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr "Controlla i filesystem prima di montare"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr "Marca questa opzione per cancellare le reti esistenti da questa radio."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Checksum"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Scegli la zona del firewall che si desidera assegnare a questa interfaccia. "
-"Selezionare <em>non specificato</em> per rimuovere l'interfaccia dalla zona "
-"associata o compilare il campo <em>crea</em> per definire una nuova zona e "
-"collegare l'interfaccia ad esso."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"Scegliere la/le rete/reti a cui vuoi collegare questa interfaccia wireless o "
-"riempire il campo <em>crea<em> per definire una nuova rete."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Cifratura"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Premi su \"Genera archivio\" per scaricare un archivio tar di backup dei "
-"file di configurazione attuali."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Cliente"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "ID Cliente da inviare all'interno della richiesta DHCP"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Chiudi le connessioni inattive dopo x secondi, usa 0 per connessioni "
-"persistenti"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Scegliere dall'elenco..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Raccolgo i dati..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Comando"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Configurazioni Comuni"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Configurazione"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Conferma"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Connetti"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Connesso"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Limite connessioni"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Connessioni"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Nazione"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Codice Nazione"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Coprire la seguente interfaccia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Coprire le seguenti interfacce"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Crea / Assegna zona firewall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Crea Interfaccia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Crea un ponte tra interfacce multiple"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Critico"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Livello di log del Cron"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Interfaccia personalizzata"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Personalizza la configurazione dei <abbr title=\"Light Emitting Diode\">LED</"
-"abbr> del sistema se possibile."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "Server DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP e DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "Cliente DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "Opzioni DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr "Cliente DHCPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "Inoltri DNS"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Debug"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "Predefinito %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Gateway predefinito"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Stato Predefinito"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Definisci un nome per questa rete."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Definisci opzioni DHCP aggiuntive, per esempio "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" fornisce differenti server DNS ai "
-"client."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Elimina"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Rimuovi questa rete"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Descrizione"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Destinazione"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Dispositivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Configurazione del dispositivo"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr "Dispositivo in riavvio..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr "Dispositivo irraggiungibile"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Diagnostica"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Cartella"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Disabilita"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Disabilita <abbr title=\"Protocollo di Configurazione Host Dinamico\">DHCP</"
-"abbr> per questa interfaccia."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr "Disabilita Crittografia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Disabilitato"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr "Disabilitato (default)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "Ignora risposte RFC1918 upstream"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Ottimizzazione distanza"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Distanza del membro più lontano della rete in metri."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Diversità"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq è un server <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr> e inoltratore <abbr title=\"Domain Name System\">DNS</abbr> "
-"per firewall <abbr title=\"Network Address Translation\">NAT</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr "Non memorizzare le repliche negative, es. per domini non esistenti"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"Non inoltrare le richieste che non possono essere risolte dai name server "
-"pubblici"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr "Non proseguire con le ricerche inverse per le reti locali."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Dominio richiesto"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "Elenco Domini consentiti"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr "Non Frammentare"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Non inoltrare le richieste <abbr title=\"Domain Name System\">DNS</abbr> "
-"senza nome <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Download backup"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Instanza di Dropbear"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear offre accesso <abbr title=\"Secure Shell\">SSH</abbr> e integra un "
-"server <abbr title=\"Secure Copy\">SCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> dinamico"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Dynamic tunnel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"Fornisci dinamicamente gli indirizzi DHCP ai client. Se disabilitato, solo i "
-"client con un indirizzo statico saranno serviti."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "Metodo EAP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Modifica"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Modifica questa interfaccia"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Modifica questa rete"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Emergenza"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Abilita"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Abilita <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "Abilitazione aggiornamento endpoint dinamico HE.net"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr "Abilita negoziazione IPv6"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "Attiva la negoziazione IPv6 sul collegamento PPP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Abilita Jumbo Frame passthrough"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "Attiva il cliente NTP"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr "Abilita Single DES"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Abilita il server TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Abilita la funzionalità VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr "Abilita pulsante WPS, richiede WPA(2)-PSK"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Attivare l'apprendimento e l'invecchiamento"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr "Abilita mirroring dei pacchetti in ingresso"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr "Abilita mirroring dei pacchetti in uscita"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr "Abilita l'opzione DF (non Frammentare) dei pacchetti incapsulati"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "Abilita questo mount"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "Abilita questo swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Abilita/Disabilita"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Abilitato"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "Abilita il protocollo di Spanning Tree su questo bridge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Modalità di incapsulamento"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Crittografia"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Cancellazione..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Errore"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Scheda di Rete"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Switch di Rete"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "Espandi gli hosts"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Scadenze"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-"Tempo di scadenza di indirizzi a contratto, il minimo è di 2 minuti (<code> "
-"2m </code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Server Log di Sistema esterno"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Porta Server Log di Sistema esterno"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "File"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "Nome del file dell'immagine di avvio annunciato ai clienti."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Filesystem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Filtra privati"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Filtra inutili"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Trova e aggiungi una rete"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Fine"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Firewall"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Impostazioni Firewall"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Stato del Firewall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Versione del Firmware"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "Porta di origine fissa per le richieste DNS in uscita"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Flash Firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Flash immagine..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Flash immagine nuovo firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Operazioni Flash"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Flashing..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Forza"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Forza CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr "Forza DHCP su questa rete, anche se un altro server viene rilevato."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Forza TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Forza TKIP e CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr "Forza collegamento"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr "Forza uso del NAT-T"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "Inoltra il traffico DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Inoltra il traffico broadcast"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Modalità di Inoltro"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Soglia di frammentazione"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Frame Bursting"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Disponibile"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Solo GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Gateway"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Porte Gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Opzioni Generali"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Impostazioni Generali"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr "Genera Configurazione"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Genera Archivio"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "Dispositivo Wireless 802.11%s Generico"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-"La conferma della password assegnata non ha prodotto risultati, la password "
-"non è stata cambiata!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr "Impostazioni Globali"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr "Opzioni rete globale"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Vai alla configurazione della password..."
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Vai alla pagina di configurazione relativa"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "Password HE.net"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Hangup"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Qui puoi configurare gli aspetti base del tuo dispositivo come l&#39;"
-"hostname o il fuso orario."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "Nascondi <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Campi host"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr "Timeout scadenza Host"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr ""
-"<abbr title=\"Internet Protocol Address\">IP</abbr> dell&#39;host o rete"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Hostname"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "Nome host da inviare al momento della richiesta DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Hostname"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr "Ibrido"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr "Indirizzi IP"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "Indirizzo IP"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "IPv4 Firewall"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "Indirizzi IPv4"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "trasmissione IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "Gateway IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "Maschera rete IPv4"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr "Prefisso IPv4"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "Lunghezza prefisso IPv4"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "Indirizzo-IPv4"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "IPv6 Firewall"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr "Impostazioni IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "Indirizzi IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "Gateway IPv6"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "Prefisso IPv6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "Lunghezza prefisso IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr "Suffisso IPv6"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "Indirizzo-IPv6"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6-in-IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6-su-IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6-su-IPv4 (6to4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identità PEAP"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr "Se selezionata, 1DES è abilitata"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr "Se selezionata, crittografia è disabilitata"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-"Se specificato, montare il dispositivo dal suo UUID invece che dal nodo di "
-"dispositivo fisso"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-"Se specificato, montare il dispositivo dall'etichetta della partizione al "
-"posto di un nodo di un dispositivo fisso"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "Se deselezionata, alcun percorso predefinito è configurato"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-"Se deselezionata, gli indirizzi ai Server DNS annunciati saranno ignorati"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Se la tua memoria è insufficiente i dati non usati possono venire "
-"temporaneamente spostati in un'area di swap risultando in un più grande "
-"quantitativo di <abbr title=\"Random Access Memory\">RAM</abbr> usabile. "
-"Sappi che spostare dati in swap è un processo molto lento e che il "
-"dispositivo di swap non può essere acceduto alle alte velocità della <abbr "
-"title=\"Random Access Memory\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Ignora <code>/etc/hosts</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Ignora interfaccia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Ignora file resolv"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Immagine"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "In"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "Tempo di Inattività"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "In entrata:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Informazioni"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Script di avvio"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Scripts di avvio"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Installa il pacchetto %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Installa le estensioni del protocollo..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Interfaccia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Configurazione Interfaccia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Riassunto Interfaccia"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "L'interfaccia si sta ricollegando..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr "Nome Interfaccia"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "Interfaccia non presente o non ancora connessa."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Interfacce"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr "Interno"
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Errore del Server Interno"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Valore immesso non valido"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr "ID VLAN non valido! Solo gli ID compresi tra %d e %d sono consentiti."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "ID VLAN non valido! Solo gli ID unici sono consentiti"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Username o password non validi! Per favore riprova."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr "Isola Clienti"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Sembra tu stia provando a flashare un'immagine più grande delle dimensioni "
-"della memoria flash, per favore controlla il file!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "Richiesto JavaScript!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Aggiungi Rete"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "Aggiunta Rete: Rilevamento Wireless"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Mantieni le Impostazioni"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Registro del Kernel"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Versione del Kernel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Chiave"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Chiave #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Uccidi"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "Server L2TP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "Fallimento soglia echo LCP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "Intervallo echo LCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Etichetta"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Lingua"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Lingua e Stile"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr "Tempo Contratto"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "File di contratti"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Tempo contratto residuo"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Lasciare vuoto per l'autorilevamento"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "Lasciare vuoto per usare l'indirizzo WAN attuale"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Legenda:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Limite"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Collegamento on"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"Elenco di Server <abbr title=\"Sistema Nome Dimio\">DNS</abbr>a cui "
-"inoltrare le richieste in"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "Elenco di domini da consentire le risposte RFC1918 per"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr "Elenco degli host che forniscono falsi risultati di dominio NX"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr "Ascolta solo l'interfaccia data o, se non specificato, su tutte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "Porta di ascolto per le richieste DNS in entrata"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Carico"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Carico Medio"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Caricamento"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Indirizzo IPv4 locale"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Indirizzo IPv6 locale"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Avvio Locale"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Ora locale"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Dominio Locale"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-#, fuzzy
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-"Specifiche dominio locale. I nomi di dominio corrispondenti a questi criteri "
-"non sono mai inoltrate e risolti solo da DHCP o file hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-"Suffisso di dominio locale aggiunto ai nomi dei DHCP e voci del file hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Server Locale"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-"Localizzare nome host a seconda della sottorete richiedente se sono "
-"disponibili IP multipli"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Localizza richieste"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Livello di dettaglio registro"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Logga richieste"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "Logging"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Login"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Slogga"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Filtro indirizzo MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "Filtro MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "Lista MAC"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr "Manuale"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "Numero massimo indirizzi in contratto"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Memoria"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Uso Memoria (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Metrica"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Modalità"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr "Modello"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Dispositivo modem"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Monitor"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "Voce di Mount"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Punto di Mount"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Punti di Mount"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "Punti di Mount - Voce di Mount"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "Punti di Mount - Voce Swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"I punti di mount definiscono in quale punto un dispositivo di memoria verrà "
-"attaccato al tuo filesystem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Opzioni di mount"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Punto di mount"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr "Monta swap non configurato specificatamente"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "File system montati"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Muovi giù"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Muovi su"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "ID della NAS"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "Candidati server NTP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Nome"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Nome della nuova interfaccia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Nome della nuova rete"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navigazione"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Maschera di rete"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Rete"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Utilità di Rete"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Rete senza interfaccia"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Prossimo »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Nessun Server DHCP configurato per questa interfaccia"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Nessun file trovato"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Nessuna informazione disponibile"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Nessuna rete è configurata su questo dispositivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Nessuna password immessa!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Nessuna regola in questa catena"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Nessuna zona assegnata"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Rumore"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr "Margine di Rumore (SNR)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Rumore:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Nessuno"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Normale"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "Non Trovato"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "Non associato"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "Non connesso"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr "Nota: lunghezza nome interfaccia"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Notifica"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"In questa pagina puoi configurare le interfacce di rete.Puoi unire più "
-"interfacce spuntando la voce \"unisci interfacce\" e inserendo i nomi di più "
-"interfacce di rete separate da spazi. Puoi anche usare la notazione <abbr "
-"title=\"Virtual Local Area Network\">VLAN</abbr> <samp>INTERFACCIA.VLANNUM</"
-"samp> (<abbr title=\"per esempio\">e.s.</abbr>: <samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Uno o più campi contengono valori non validi!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Uno o più campi obbligatori sono vuoti!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Apri lista..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Opzione cambiata"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Opzione cancellata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Opzioni"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Altro:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Uscita"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "In uscita:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "Sovrascrivi indirizzo MAC"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "Sovrascrivi MTU"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr "Sovrascrivi TOS"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr "Sovrascrivi TTL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr "Sovrascrivi nome interfaccia di default"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "Sovrascrivi il gateway nelle risposte DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-"Sovrascrivi la netmask data ai clienti. Normalmente è calcolata dalla subnet "
-"servita."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr "Sovrascrivi la tabella usata per le route interne"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Riassunto"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Proprietario"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "Incapsulamento PPPoA"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "E' richiesto il pacchetto libiwinfo!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Pacchetti"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "Parte della zona %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Password"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Password di authenticazione"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Password della chiave privata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Percorso al certificato CA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Percorso alla chiave privata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Picco:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Esegui un riavvio"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Per favore inserisci il tuo username e la password."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Porta"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Status porta:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Impedisci la comunicazione fra Client"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Continuare"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Processi"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr "Profilo"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protocollo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Protocollo della nuova interfaccia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "Supporto protocollo non installato"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "Fornisci server NTP"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "Fornisci nuova rete"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Pseudo Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr "Chiave Pubblica"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Qualità"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "Soglia RTS/CTS"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "Velocità RX"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Leggi <code>/etc/ethers</code> per configurare il server <abbr title="
-"\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"Vuoi davvero rimuovere questa interfaccia wireless? La rimozione non può "
-"essere ripristinata! Potresti perdere l'accesso a questo dispositivo se sei "
-"connesso con questa rete."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "Azzerare veramente tutte le modifiche?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "Cambiare veramente il protocollo?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Connessioni in Tempo Reale"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Grafici in Tempo Reale"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Carico in Tempo Reale"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Traffico in Tempo Reale"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Wireless in Tempo Reale"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Riavvia"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Riavviando..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Riavvia il sistema operativo del tuo dispositivo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Ricezione"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Antenna Ricevente"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Ricollega questa interfaccia"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Riferimenti"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Rimuovi"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Ripeti scan"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Sostituisci campo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Sostituisci configurazione wireless"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr "Richiede indirizzo-IPv6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr "Richiede prefisso-IPv6 di lunghezza"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr "Richiesto"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Reset"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Azzera Contatori"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Azzera a default"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "File Resolve"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Riavvia"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Riavvia Firewall"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Ripristina"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Ripristina backup"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Rivela/nascondi password"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Ripristina"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Route"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Le route specificano attraverso quale interfaccia e gateway un certo host o "
-"rete può essere raggiunto."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "Esegui un controllo del filesystem prima di montare il dispositivo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Esegui controllo del filesystem"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Salva"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Salva & applica"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Scan"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Operazioni programmate"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Sezione aggiunta"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Sezione rimossa"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "Vedi \"mount\" manpage per dettagli"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Isola utenti"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Impostazioni Server"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Servizi"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Segnale"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Dimensione"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Salta"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Salta a contenuto"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Salta a navigazione"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "Slot time"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Alcuni campi non sono validi, non è possibile salvare i valori!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "Siamo spiacenti, l'oggetto che hai richiesto non è stato trovato."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "Spiacente, il server ha rilevato un errore imprevisto."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"Spiacenti, non è presente alcun supporto sysupgrade, una nuova immagine "
-"firmware deve essere memorizzata (Flash) manualmente. Si prega di fare "
-"riferimento al wiki per le istruzioni di installazione di dispositivi "
-"specifici."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Origine"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "Specifica la cartella a cui è collegato il dispositivo in"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "Specifica la porta di ascolto di questa istanza <em>Dropbear</em>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-"Consente di specificare la quantità massima di richieste ARP fallite finché "
-"gli host si presume siano morti."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-"Specifica la quantità massima di secondi dopo di che si presume che gli host "
-"siano morti."
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Specificare la chiave di cifratura qui."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Inizio"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Priorità di avvio"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Avvio"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Instradamento statico IPv4"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Instradamento statico IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Contratti statici"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Instradamenti Statici"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Indirizzo Statico"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"I contratti statici vengono utilizzati per assegnare indirizzi IP fissi e "
-"nomi host simbolici ai client DHCP. Essi sono necessari anche per interfacce "
-"di configurazione non dinamici, dove solo gli host col contratto "
-"corrispondente vengono serviti."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Stato"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Ferma"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Ordine severo"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Invia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Scambia ingresso"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Switch"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "Switch %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "Switch %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "Cambia protocollo"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Sincronizza con il browser"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Sincronizzazione..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Sistema"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Registro di Sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Proprietà di Sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "Dimensione Buffer Log di Sistema"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "Impostazioni TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "Server TFTP principale"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "Velocità TX"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Tabella"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Destinazione"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Termina"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-#, fuzzy
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"La sezione <em>Configurazione del Dispositivo</em> illustra le impostazioni "
-"fisiche del hardware radio come canale, la potenza di trasmissione o la "
-"selezione dell'antenna che viene condiviso tra tutte le reti wireless "
-"definite (se l'hardware radio è multi-SSID compatibilie). Per le "
-"impostazioni di rete come la crittografia o la modalità di funzionamento "
-"sono raggruppati nella <em>configurazione dell'interfaccia</em>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"Il pacchetto <em>libiwinfo-lua</em> non è installato. È necessario "
-"installare questo componente per il lavoro di configurazione wireless!"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-"Il prefisso IPv6 assegnati dal provider, si conclude di solito con <code>::</"
-"code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"Il file del dispositivo di memoria o della partizione (<abbr title=\"per "
-"esempio\">e.s.</abbr> <code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"Il filesystem usato per formattare la memoria (<abbr title=\"per esempio\">e."
-"s.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "Le seguenti modifiche sono state annullate"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "Le seguenti regole sono al momento attive su questo sistema."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes until you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Tema"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Non ci sono contratti attivi."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "Non ci sono cambiamenti pendenti da regredire"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "Non ci sono cambiamenti pendenti!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"Questo è l&#39;unico server <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr> nella tua rete locale"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-"Questa è la crontab del sistema nella quale possono essere definiti le "
-"operazioni da programmare."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"Questa lista da un riassunto dei processi correntemente attivi e del loro "
-"stato."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "Questa pagina ti da una riassunto delle connessioni al momento attive."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Questa sezione non contiene ancora valori"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Sincronizzazione Orario"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "Sincronizzazione Orario non ancora configurata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Fuso orario"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"Per ripristinare i file configurazione, puoi inviare un archivio di backup "
-"generato precedentemente qui. Per ripristinare il firmware al suo stato "
-"iniziale premi \"Esegui Ripristino\" (solo per firmware basati su squashfs)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Totale"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Traffico"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Velocità di transmissione"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Trasmissione"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Potenza di trasmissione"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Antenna trasmettente"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Tipo"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "Periferica USB"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr "Porte USB"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Sconosciuto"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "Non gestito"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr "Smonta"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Modifiche non salvate"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Tipo protocollo non supportato."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"Carica un'immagine sysupgrade compatibile quì per sostituire il firmware in "
-"esecuzione. Attivare la spunta \"Mantieni Impostazioni\" per mantenere la "
-"configurazione corrente (richiede un immagine del firmware compatibile)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Carica archivio..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "File Inviato"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Tempo di attività"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Usa <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "Usa il DHCP del gateway"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "Usa i server DNS annunciati dal peer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "Usa i codici delle nazioni ISO/IEC 3166 alpha2."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr "Usa MTU nel tunnel dell'interfaccia"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "Usa TTL nel tunnel dell'interfaccia"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "Usa flag broadcast"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Usa server DNS personalizzati"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Usa il gateway predefinito"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "Usa la metrica del gateway"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Utilizzare tabella di instradamento"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"Utilizzare il pulsante <em>Aggiungi</em> per aggiungere una nuova voce di "
-"contratto. L'<em>Indirizzo-MAC</em> identifica l'host, l'<em>Indirizzo-IPv4</"
-"em> specifica l'indirizzo fisso da utilizzare e il <em>Nome Host</em> è "
-"assegnato come nome simbolico alla richiesta dell'host. L'opzionale "
-"<em>tempo di Contratto</em> può essere usato per impostare un tempo di "
-"contratto non-standard a uno specifico host, p.e. 12h, 3d o infinito."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Usato"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "Slot Chiave Usata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Nome Utente"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLANs su %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLANs su %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "Server VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "Classe del Produttore da 'inviare al momento della richiesta DHCP"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Verifica"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "Sistema Aperto WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "Chiave Condivisa WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "frase di accesso WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "Modalità WMM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "frase di accesso WPA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"La crittografia WPA richiede wpa_supplicant (per la modalità client) o "
-"hostapd (per AP e modalità ad hoc) per essere installato."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "In attesa delle modifiche da applicare ..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "In attesa del comando da completare..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Avviso"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Wireless"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Dispositivo Wireless"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Rete Wireless"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Panoramica Wireless"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Sicurezza Wireless"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "La rete Wireless è disattivata"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "La rete Wireless è non associata"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "Riavvio della Wireless..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "La rete Wireless è disattivata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "La rete wireless è attivata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Scrittura delle richiesta DNS ricevute nel syslog"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr "Scrivi registro di sistema su file"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"È possibile abilitare o disabilitare gli script di inizializzazione "
-"installati qui. Le modifiche saranno applicate dopo il riavvio del "
-"dispositivo <br/><strong>Attenzione: Se si disattiva gli script di "
-"inizializzazione essenziali come ad esempio la \"rete\", il dispositivo "
-"potrebbe diventare inaccessibile!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"È necessario attivare JavaScript nel tuo browser o LuCI non funzionerà "
-"correttamente."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "qualsiasi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "auto"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "ponte"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "crea:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "Crea un ponte sulle interfacce selezionate"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "disabilita"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr "disabilitato"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "scaduto"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"file dove vengono salvati i contratti <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr> dati"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "inoltro"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "full-duplex"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "half-duplex"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "nascosto"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr "modo ibrido"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "se la destinazione è una rete"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "ingresso"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "File <abbr title=\"Sistema Nome Dominio\">DNS</abbr> locale"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "no"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "Nessun collegamento"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "spento"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "acceso"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "apri"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "instradato"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "etichettato"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "sconosciuto"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "illimitato"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "non specificato"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "non specificato - o - creato:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "non etichettato"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "Sì"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Indietro"
-
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr ""
-#~ "Qui è possibile incollare le chiavi pubbliche SSH (uno per riga) per "
-#~ "l'autenticazione con chiave pubblica SSH."
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "Password cambiata con successo!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "Errore sconosciuto, password non cambiata!"
-
-#~ msgid "Design"
-#~ msgstr "Tema"
-
-#~ msgid "Available packages"
-#~ msgstr "Pacchetti disponibili"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "Visualizza solo i pacchetti contenenti"
-
-#~ msgid "Download and install package"
-#~ msgstr "Scarica e installa pacchetto"
-
-#~ msgid "Filter"
-#~ msgstr "Filtro"
-
-#~ msgid "Find package"
-#~ msgstr "Cerca pacchetto"
-
-#~ msgid "Free space"
-#~ msgstr "Spazio libero"
-
-#~ msgid "General options for opkg"
-#~ msgstr "Opzioni generali per opkg"
-
-#~ msgid "Install"
-#~ msgstr "Installa"
-
-#~ msgid "Installed packages"
-#~ msgstr "Pacchetti installati"
-
-#~ msgid "No package lists available"
-#~ msgstr "Nessuna lista pacchetti disponibile"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "Configurazione di OPKG"
-
-#~ msgid "Package name"
-#~ msgstr "Nome pacchetto"
-
-#~ msgid "Software"
-#~ msgstr "Software"
-
-#~ msgid "Update lists"
-#~ msgstr "Aggiorna liste"
-
-#~ msgid "Version"
-#~ msgstr "Versione"
-
-#~ msgid "none"
-#~ msgstr "nessuna"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "Disabilita il setup dei DNS"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 e IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "Solo IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "Solo IPv6"
-
-#~ msgid "Lease validity time"
-#~ msgstr "Periodo di Validità del Contratto"
-
-#~ msgid "Multicast address"
-#~ msgstr "Indirizzo Multicast"
-
-#~ msgid "Protocol family"
-#~ msgstr "Famiglia protocollo"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "I file di configurazione verranno mantenuti."
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Nota: i files di Configurazione saranno eliminati"
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Accoppiata: %s / Gruppo: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "Attiva questa rete"
-
-#~ msgid "Hermes 802.11b Wireless Controller"
-#~ msgstr "Dispositivo Wireless Hermes 802.11b"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "L'intefaccia si sta spegnendo..."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "Interfaccia ricollegata."
-
-#~ msgid "Interface shut down"
-#~ msgstr "Interfaccia spenta"
-
-#~ msgid ""
-#~ "Really shutdown interface \"%s\"? You might lose access to this device if "
-#~ "you are connected via this interface."
-#~ msgstr ""
-#~ "Vuoi davvero spegnere questa interfaccia \"%s\"? Potresti perdere "
-#~ "l'accesso a questo router se stai usando questa interfaccia."
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "Sto ricollegando l'interfaccia"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "Wireless riavviato"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "Wireless spento"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "Contratti DHCP"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "Contratti DHCPv6"
-
-#~ msgid ""
-#~ "Really delete this interface? The deletion cannot be undone! You might "
-#~ "lose access to this device if you are connected via this interface."
-#~ msgstr ""
-#~ "Vuoi davvero rimuovere questa interfaccia? La rimozione non può essere "
-#~ "ripristinata! Potresti perdere l'accesso a questo dispositivo se sei "
-#~ "connesso con questa rete."
-
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "Vuoi davvero spegnere questa interfaccia? Potresti perdere l'accesso a "
-#~ "questo router se sei connesso usando questa interfaccia."
-
-#~ msgid "Sort"
-#~ msgstr "Ordina"
-
-#~ msgid "help"
-#~ msgstr "aiuto"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "Stato WAN IPv4"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "Stato WAN IPv6"
diff --git a/package/luci/modules/luci-base/po/ja/base.po b/package/luci/modules/luci-base/po/ja/base.po
deleted file mode 100644 (file)
index a9afeb0..0000000
+++ /dev/null
@@ -1,6406 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2018-12-26 19:48+0900\n"
-"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
-"Language-Team: \n"
-"Language: ja\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 2.2\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr "%.1f dB"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr "%d ビット"
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr "無効な入力欄: %d 個"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr "%s は複数のVLANにUntaggedしています!"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(%d 分幅, %d 秒間隔)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s 使用可能)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(空)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(インターフェースが接続されていません)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- 追加項目 --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- 選択してください --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- 手動設定 --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr "-- デバイスを指定 --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr "-- ラベルを指定 --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr "-- UUID を指定 --"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr "-- 選択してください --"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "過去1分の負荷:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "過去15分の負荷:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr "464XLAT (CLAT)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "過去5分の負荷:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr "802.11r 高速ローミング"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr "802.11w アソシエーションSAクエリの最大タイムアウト時間です。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr "802.11w アソシエーションSAクエリの再試行タイムアウト時間です。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr "802.11w 管理フレーム保護"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr "802.11w 最大タイムアウト"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr "802.11w 再試行タイムアウト"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> クエリポート"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> サーバーポート"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"リゾルバファイルの順番に、<abbr title=\"Domain Name System\">DNS</abbr>サー"
-"バーに問い合わせを行います"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-アドレス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-ゲートウェイ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-ネットマスク"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-アドレス又はネット"
-"ワーク (CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-ゲートウェイ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-サフィックス (16進数)"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> 設定"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> 名"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Media Access Control\">MAC</abbr>-アドレス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"<abbr title=\"maximal\">最大</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> リース"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"maximal\">最大</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> パケットサイズ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"maximal\">最大</abbr> 並列処理クエリ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-"<br />注意: 編集前の crontab ファイルが空の場合、手動で cron サービスの再起動"
-"を行う必要があります。"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr "認証セッションの期限切れのため、再ログインが必要です。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr "A43C + J43 + A43"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr "A43C + J43 + A43 + V43"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr "ADSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr "ANSI T1.413"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "ARP再試行しきい値"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "ATMブリッジ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "ATM仮想チャネル識別子 (VCI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "ATM仮想パス識別子 (VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "ATMデバイス番号"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Access Concentrator"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "アクセスポイント"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "動作"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-"稼働中の <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-経路情報"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-"稼働中の <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-経路情報"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "アクティブ コネクション"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "アクティブなDHCPリース"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "アクティブなDHCPv6リース"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "アドホック"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "追加"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr "IPv4 アドレスを追加…"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr "IPv6 アドレスを追加…"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr "公開鍵を追加"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-"hosts ファイルにより解決される名前にローカルドメイン サフィックスを付加しま"
-"す。"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "インターフェースの新規作成..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "追加のホストファイル"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr "追加のサーバー ファイル"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "アドレス"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "ローカル リレーブリッジにアクセスするためのIPアドレス"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "管理画面"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "詳細設定"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "警告"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr "エイリアス インターフェース"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr "\"%s\" のエイリアス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr "全てのサーバー"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "<abbr title=\"Secure Shell\">SSH</abbr> パスワード認証を許可します。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr "AP モード動作時に、低 ACK(確認応答)状態の STA の切断を許可します。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "リスト内の端末からのアクセスを禁止"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr "レガシー 802.11b レートを許可"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "リスト内の端末からのアクセスを許可"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "ローカルホストを許可する"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"リモートホストがSSH転送されたローカルのポートに接続することを許可します。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "パスワードでの root ログインを許可"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "パスワードを使用した <em>root</em> 権限でのログインを許可します。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr "許可されるIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr "常にデフォルト ルーターを通知する"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr "常にオフ (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr "常にオン (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-"セカンダリ チャンネルの重複にかかわらず、常に 40MHz チャンネルを使用します。"
-"このオプションの使用は、 IEEE 802.11n-2009 に準拠しません!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-"利用可能なパブリック プレフィクスが無くても、デフォルトのルーターとして通知し"
-"ます。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr "アノニマス マウント"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr "アノニマス スワップ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "アンテナ 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "アンテナ 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "アンテナ設定"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "全てのゾーン"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr "チェックなしの適用"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr "適用リクエストはステータス <code>%h</code> により失敗しました"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr "アーキテクチャ"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "インターフェースの割当て..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "アソシエーション済み端末"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr "アソシエーション数"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr "認証グループ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "認証"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Authoritative"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "ログイン認証"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "自動更新"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr "自動"
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr "マウント実行前にファイルシステムのエラーを自動的にチェックします。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr "ホットプラグによってファイルシステムを自動的にマウントします。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr "ホットプラグによってスワップ パーティションを自動的にマウントします。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr "ファイルシステム 自動マウント"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr "スワップ 自動マウント"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "使用可"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "平均値:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "戻る"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "概要へ戻る"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "設定へ戻る"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "概要へ戻る"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "スキャン結果へ戻る"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "バックアップ"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "バックアップ / ファームウェア更新"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "バックアップファイル リスト"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "無効なアドレスです!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr "ビーコン間隔"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"以下は、バックアップの際に含まれるファイルのリストです。このリストは、opkgに"
-"よって認識されている設定ファイル、重要なベースファイル、ユーザーが設定したパ"
-"ターンに一致したファイルの一覧です。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-"ワイルドカード アドレスよりもインターフェースへ動的にバインド(Linux のデフォ"
-"ルトとして推奨されます)"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr "インターフェースのバインド"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "ビットレート"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "ブリッジ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "ブリッジ インターフェース"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "ブリッジ ユニット番号"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "デフォルトで起動する"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Broadcom 802.11%s 無線LANコントローラ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Broadcom BCM%04x 802.11 無線LANコントローラ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "バッファ"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr "CA証明書(空白の場合、初回の接続後に保存されます。)"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "CPU使用率 (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "キャンセル"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr "カテゴリー"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr "注意: 設定ファイルは消去されます"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr "注意: システムは強制的にアップグレードされます"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "チェイン"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr "ログイン パスワードの変更"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "変更"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "変更が適用されました。"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr "変更は取り消されました。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "デバイスの管理者パスワードを変更します"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr "パスワードを変更中…"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "チャネル"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-"チャンネル %d は、 %s 領域内では規制により利用できません。%d へ自動調整されま"
-"した。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "チェック"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr "マウント前にファイルシステムをチェックする"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-"この無線から既存のネットワークを削除する場合、このオプションを有効にします。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "チェックサム"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr "mtdblock を選択"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"このインターフェースに設定するファイウォール ゾーンを選択してください。<em>設"
-"定しない</em>を選択すると、設定済みのゾーンを削除します。また、<em>作成</em>"
-"フィールドにゾーン名を入力すると、新しくゾーンを作成し、このインターフェース"
-"に設定します。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"無線インターフェースをアタッチするネットワークを選択してください。または、"
-"<em>作成</em>欄を選択すると新しいネットワークを作成します。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "暗号化方式"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"\"バックアップ アーカイブを生成\" をクリックすると、現在の設定ファイルをtar形"
-"式のアーカイブファイルとしてダウンロードします。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-"指定した mtdblock ファイルをダウンロードするには、 \"mtdblock を保存\" をク"
-"リックしてください。(注: この機能はプロフェッショナル向けです!)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "クライアント"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "DHCPリクエスト時に送信するクライアントID"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr "閉じる"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"設定した秒数後に、使用していない接続を閉じます。0を設定した場合、接続を維持し"
-"ます"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "リストを閉じる"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "データ収集中です..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "コマンド"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr "コメント"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "一般設定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-"キーのインストールに使用される EAPOL キーフレームの再送信を無効にすることによ"
-"り、クライアント サイドの Key Reinstallation Attacks (KRACK) を困難にします。"
-"この回避策は、相互運用性の問題や、特に高負荷のトラフィック環境下におけるキー "
-"ネゴシエーションの信頼性低下の原因となることがあります。"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "設定"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr "設定が失敗しました"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr "設定ファイルは保持されます"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr "設定が適用されました。"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr "設定はロールバックされました!"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "確認"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "接続"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "接続中"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "接続制限"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr "接続の試行が失敗しました"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "ネットワーク接続"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-"設定の変更を適用後、デバイスへのアクセスを回復できませんでした。もし IP アド"
-"レスや無線のセキュリティ認証情報などのネットワーク関連の設定を変更した場合、"
-"再接続が必要かもしれません。"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "国"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "国コード"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "インターフェースの指定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "インターフェースの指定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "ファイアウォール ゾーンの作成 / 割り当て"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "インターフェースの作成"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "複数のインタフェースを指定してブリッジを作成します"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "重大"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Cronのログ出力レベル"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "新しいインターフェース"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-"カスタム ファイル(証明書, スクリプト)がシステムに残るかもしれません。これを"
-"防ぐには、まず最初に factory-reset を行います。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr "カスタムな点滅間隔 (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"<abbr title=\"Light Emitting Diode\">LED</abbr> デバイスの挙動をカスタマイズ"
-"します。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "DHCPサーバー"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP 及び DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "DHCP クライアント"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "DHCPオプション"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr "DHCPv6 クライアント"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr "DHCPv6-モード"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr "DHCPv6-サービス"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "DNSフォワーディング"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr "DNS-ラベル / FQDN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr "DNSSEC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr "DS-Lite AFTR アドレス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr "DSL"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr "DSL ステータス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr "DTIM インターバル"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "デバッグ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "標準設定 %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr "デフォルト ルート"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "デフォルト ゲートウェイ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr "デフォルトは ステートレス + ステートフル です。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "標準状態"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "ネットワーク名を設定してください。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"追加のDHCPオプションを設定します。(例:\"<code>6,192.168.2.1,192.168.2.2</"
-"code>\" と設定することで、クライアントに指定のDNSサーバーを通知します。)"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "削除"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr "公開鍵を削除"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "ネットワークを削除します"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr "Delivery Traffic Indication Message インターバル"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "詳細"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "宛先"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "デバイス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "デバイス設定"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr "デバイスを再起動中です..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr "デバイスに到達できません"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr "デバイスに到達できません!まだデバイスを待っています..."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "診断機能"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "ディレクトリ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "無効"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"このインターフェースでは<abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>機能を使用しません。"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr "暗号化を無効にする"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr "非アクティブ状態ポーリングを無効化"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr "このネットワークを無効にします"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "無効"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr "無効(デフォルト)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr "低 Acknowledgement 時のアソシエーション解除"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "RFC1918の応答を破棄します"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr "切断"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr "切断の試行が失敗しました"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr "閉じる"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "距離の最適化"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "最も遠い端末との距離(メートル)を設定してください。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "ダイバシティ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq は <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-"サーバーと <abbr title=\"Network Address Translation\">NAT</abbr>ファイア"
-"ウォールの為の <abbr title=\"Domain Name System\">DNS</abbr>フォワーダーを複"
-"合したサービスです。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-"無効なリプライをキャッシュしません (例:存在しないドメインからの返答など)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr "パブリック DNSサーバーが返答できなかったリクエストを転送しません"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr "ローカル ネットワークへの逆引きを転送しません"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr "本当に以下の SSH 公開鍵を削除しますか?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "ドメイン必須"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "ドメイン ホワイトリスト"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr "非フラグメント化"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"<abbr title=\"Domain Name System\">DNS</abbr>名の無い <abbr title=\"Domain "
-"Name System\">DNS</abbr>リクエストを転送しません"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr "下へ"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "バックアップ アーカイブのダウンロード"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr "mtdblock のダウンロード"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Dropbear設定"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear は <abbr title=\"Secure Shell\">SSH</abbr> ネットワークへのシェルア"
-"クセスと統合された <abbr title=\"Secure Copy\">SCP</abbr> サーバーを提供しま"
-"す。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr "Dual-Stack Lite (RFC6333)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr "動的 <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "動的トンネル機能"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"クライアントに対して動的にDHCPアドレスを割り振ります。無効に設定した場合、静"
-"的リースのみを行います。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "EAPメソッド"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "編集"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-"上記の設定データを直接編集してエラーを修正し、 \"保存\" ボタンを押してこの"
-"ページをリロードします。"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "インターフェースを編集します"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "ネットワークを編集"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "緊急"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "有効"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-"<abbr title=\"Internet Group Management Protocol\">IGMP</abbr> スヌーピングの"
-"有効化"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "<abbr title=\"Spanning Tree Protocol\">STP</abbr>を有効にする"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "HE.netの動的endpoint更新を有効にします"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr "IPv6 ネゴシエーションの有効化"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "PPPリンクのIPv6 ネゴシエーションを有効にする"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "ジャンボフレーム パススルーを有効にする"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "NTPクライアント機能を有効にする"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr "シングルDESの有効化"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "TFTPサーバーを有効にする"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "VLAN機能を有効にする"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr "WPS プッシュボタンを有効化するには、WPA(2)-PSKが必要です。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr "Key Reinstallation (KRACK) 対策の有効化"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "ラーニング エイジング機能を有効にする"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr "受信パケットのミラーリングを有効化"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr "送信パケットのミラーリングを有効化"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr "カプセル化されたパケットの DF (Don't Fragment) フラグを有効にします。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "マウント設定を有効にする"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr "このネットワークを有効にします"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "スワップ設定を有効にする"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "有効 / 無効"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "有効"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr "ブリッジの IGMP スヌーピングを有効にします"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-"同一のモビリティ ドメイン(モビリティ グループ)に属するアクセスポイント間の"
-"高速ローミングを有効にします。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "スパニングツリー プロトコルを有効にする"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "カプセル化モード"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "暗号化モード"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr "エンドポイント ホスト"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr "エンドポイント ポート"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr "カスタム値を入力"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr "カスタム値を入力"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "消去中..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "エラー"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "イーサネットアダプタ"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "イーサネットスイッチ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr "除外インターフェース"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "拡張ホスト設定"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr "期待される値: %s"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "期限切れ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-"リースアドレスの有効時間を入力します。最小設定値は2分です。 (<code>2m</"
-"code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr "外部"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "外部システムログ サーバー"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "外部システムログ・サーバー ポート"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr "外部システムログ・サーバー プロトコル"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr "拡張 SSHコマンドオプション"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr "%d 秒以内の適用を確認できませんでした。ロールバック中です..."
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "ファイル"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "クライアントに通知するブートイメージのファイル名"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "ファイルシステム"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "プライベートフィルター"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-"現在アタッチされている全てのファイルシステムとスワップを検索し、検出結果に基"
-"づいてデフォルト設定を置き換えます。"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "ネットワークの検索と参加"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "終了"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "ファイアウォール"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "ファイアウォール設定"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "ファイアウォール ステータス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr "ファームウェア ファイル"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "ファームウェア バージョン"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "DNSクエリを送信する送信元ポートを固定します"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "ファームウェアの更新"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "更新"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "ファームウェアの更新"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "更新機能"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "更新中..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr "フラッシュメモリー 書込アクセス (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "強制"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr "強制 40MHz モード"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "CCMP (AES) を使用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-"別のDHCPサーバーが検出された場合でも、DHCPサーバー機能を強制的に起動します。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "TKIP を使用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "TKIP 及びCCMP (AES) を使用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr "強制リンク"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr "強制アップグレード"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr "NAT-Tの強制使用"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr "フォーム トークンの不一致"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "DHCPトラフィックを転送する"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "ブロードキャスト トラフィックを転送する"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "転送モード"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "フラグメンテーションしきい値"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "フレームバースト"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "空き"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-"WireGuard インターフェースとピアについての詳細情報: <a href=\"http://"
-"wireguard.com\">wireguard.com</a>"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "GPRSのみ"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "ゲートウェイ"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr "無効なゲートウェイ アドレスです"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "ゲートウェイ ポート"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "一般設定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "一般設定"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr "コンフィグ生成"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "バックアップ アーカイブを生成"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "802.11%s 無線LANコントローラ"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr "入力されたパスワードが一致しません。パスワードは変更されませんでした!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr "全体設定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr "グローバル ネットワークオプション"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "パスワード設定へ移動..."
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "関連する設定ページへ移動"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr "グループ パスワード"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr "ゲスト"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "HE.net パスワード"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr "HE.net ユーザー名"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr "HT モード (802.11n)"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "再起動"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr "ハートビート (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"このページではホスト名やタイムゾーンなどの基本的な設定を行うことが出来ます。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>の隠匿"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr "空のチェインを非表示"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr "ホスト"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "ホスト エントリー"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr ""
-"ホスト<abbr title=\"Internet Protocol Address\">IP</abbr> または ネットワーク"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "ホスト名"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "DHCPリクエスト時に送信するホスト名"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "ホスト名"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr "ハイブリッド"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr "IKE DHグループ"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr "IPアドレス"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr "IP プロトコル"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "IPアドレス"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr "無効な IP アドレスです"
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr "IP アドレスがありません"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "IPv4 ファイアウォール"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr "IPv4 アップストリーム"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "IPv4 アドレス"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr "IPv4 割り当て長"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "IPv4 ブロードキャスト"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "IPv4 ゲートウェイ"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "IPv4 ネットマスク"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr "IPv4 ネットワーク(アドレス/ネットマスク 表記)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr "IPv4 プレフィクス"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "IPv4 プレフィクス長"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr "IPv4+IPv6"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "IPv4-アドレス"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr "IPv4-in-IPv4 (RFC2003)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "IPv6 ファイアウォール"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr "IPv6 設定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr "IPv6 ULA-プレフィクス"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr "IPv6 アップストリーム"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "IPv6 アドレス"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr "IPv6 割り当て長"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "IPv6 ゲートウェイ"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr "IPv6 ネットワーク(アドレス/ネットマスク 表記)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "IPv6 プレフィクス"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "IPv6 プレフィクス長"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr "IPv6 サフィックス"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "IPv6-アドレス"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr "IPv6-PD"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6-in-IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6-over-IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6-over-IPv4 (6to4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "識別子"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr "チェックした場合、暗号化は無効になります。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-"固定のデバイス ノード名のかわりに、設定されたUUIDを使用してマウントします"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-"固定のデバイス ノード名のかわりに、設定されたパーティション ラベルを使用して"
-"マウントします。"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "チェックされていない場合、デフォルト ルートを設定しません"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "チェックされていない場合、通知されたDNSサーバー アドレスを無視します"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"物理メモリが不足する場合、使用されていないデータを一時的にスワップ デバイスに"
-"スワップし、<abbr title=\"Random Access Memory\">RAM</abbr>の使用可能領域を増"
-"やすことができます。ただし、スワップ デバイスは<abbr title=\"Random Access "
-"Memory\">RAM</abbr>から高速にアクセスすることができないため、データのスワップ"
-"は非常に遅い処理であることに注意します。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "<code>/etc/hosts</code>を無視"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "インターフェースを無視する"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "リゾルバ ファイルを無視する"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "イメージ"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "イン"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-"システムへの未認証のアクセスを防ぐために、リクエストはブロックされました。以"
-"下の \"続行\" をクリックして、前のページに戻ります。"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "未使用時タイムアウト"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "受信:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "情報"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "起動スクリプト"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "起動スクリプト"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-"IPv6 の traceroute を使用するには、 iputils-traceroute6 をインストールしま"
-"す。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "%q パッケージをインストールします"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "プロトコル拡張機能をインストールします..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "インターフェース"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "インターフェース設定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "インターフェース一覧"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "インターフェース再接続中..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr "インターフェース名"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "インターフェースが存在しないか、接続していません"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "インターフェース"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr "内部"
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "内部サーバー エラー"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "入力値が不正です"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr "無効なVLAN IDです! IDは%dから%dまでの値のみ入力可能です。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "無効なVLAN IDです! ユニークなIDを入力してください。"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr ""
-"ユーザー名かパスワード、もしくは両方が不正です!もう一度入力してください。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr "クライアント間の分離"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"更新しようとしたイメージファイルはこのフラッシュメモリに適合しません。イメー"
-"ジファイルを確認してください!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "JavaScriptを有効にしてください!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "ネットワークに接続する"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "ネットワークに接続する: 無線LANスキャン"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr "ネットワークに接続: %q"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "設定を保持する"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "カーネル ログ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "カーネル バージョン"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "暗号キー"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "キー #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "強制終了"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "L2TP サーバー"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "LCP echo 失敗数しきい値"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "LCP echo 送信間隔"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "ラベル"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "言語"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "言語とスタイル"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr "レイテンシー"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr "リース時間"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "リースファイル"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "残りリース時間"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "空欄の場合、自動検知を行います"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "空欄の場合、現在のWANアドレスを使用します"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "凡例:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "割り当て数"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-"DNS サービスを、現在 DNS を提供しているサブネットのインターフェースに限定しま"
-"す。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr "待ち受けをこれらのインターフェースとループバックに制限します。"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "リンクオン"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"問い合わせを転送する<abbr title=\"Domain Name System\">DNS</abbr> サーバーの"
-"リストを設定します"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr "認証用 SSH暗号キー ファイルのリスト"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "RFC1918の応答を許可するリスト"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr "待ち受けインターフェース"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr "待ち受けポート"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-"指定されたインターフェースでのみ待ち受けを行います。設定しない場合はすべての"
-"インタフェースが対象です。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "DNSクエリを受信するポート"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "負荷"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "システム平均負荷"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "ロード中"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr "SSH 鍵をロード中…"
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr "無効なローカル IP アドレスです"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr "割り当てるローカル IPアドレス"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "ローカル IPv4 アドレス"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "ローカル IPv6 アドレス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr "ローカルサービスのみ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "ローカル スタートアップ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "時刻"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "ローカル ドメイン"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-"ローカル ドメインの定義です。このドメインに一致する名前は転送が行われず、 "
-"DHCP または hosts ファイルのみにより解決されます。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-"DHCP名とhostsファイルのエントリーに付される、ローカルドメイン サフィックスで"
-"す。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "ローカル サーバー"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-"複数の IP が利用可能な場合に、ホスト名をリクエスト中のサブネットによってロー"
-"カライズします"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "ローカライズクエリ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr "チャネル %s にロックされています。次で使用されています: %s"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "ログ出力レベル"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "ログ クエリ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "ログ"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "ログイン"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "ログアウト"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-"ネットワークアドレスをオフセットとして、最小のアドレスを設定してください"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr "MAC"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "MAC-アドレス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "MAC-アドレス フィルタ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "MAC-フィルタ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "MAC-リスト"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr "MAP / LW4over6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr "無効な MAP ルールです"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr "MD5"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-"以下のようなコマンドを使用して、ルート ファイルシステムを複製してください:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr "手動"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr "許容される最大 Listen 間隔"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "DHCPリースの許可される最大数"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "並列DNSクエリの許可される最大数"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "EDNS.0 UDP パケットサイズの許可される最大数"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "モデムが準備完了状態になるまでの最大待ち時間"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-"名前の長さは、自動的に含まれるプロトコル/ブリッジ プレフィックス (br-, "
-"6in4-, pppoe- など)と合わせて最大15文字です。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "リースされるアドレスの最大数です。"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "メモリー"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "メモリ使用率 (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "メトリック"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr "ミラー監視ポート"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr "ミラー元ポート"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "プロトコル %qのプロトコル拡張が見つかりません"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr "モビリティ ドメイン"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "モード"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr "モデル"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr "モデム デフォルト"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "モデム デバイス"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "モデム初期化タイムアウト"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "モニター"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "マウント機能"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "マウントポイント"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "マウントポイント"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "マウントポイント - マウント"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "マウントポイント - スワップ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"マウントポイントは、記憶デバイスがファイルシステムのどこに接続されているかを"
-"表示しています。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr "明確に設定されていないファイルシステムをマウントします。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "マウントオプション"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "マウントポイント"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr "明確に設定されていないスワップ パーティションをマウントします。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "マウント中のファイルシステム"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "下へ移動"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "上へ移動"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr "NAT-T モード"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr "NAT64 プレフィクス"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr "NDP-プロキシ"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr "NT ドメイン"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "NTPサーバー候補"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "名前"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "新しいインターフェースの名前"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "新しいネットワークの名前"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "ナビゲーション"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "ネットマスク"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "ネットワーク"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "ネットワーク ユーティリティ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "ネットワークブート用イメージ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr "ネットワークデバイス アクティビティ (%s)"
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr "ネットワーク デバイスが存在しません"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "インターフェースの無いネットワークです。"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "次 »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr "いいえ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "このインターフェースにはDHCPサーバーが設定されていません"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr "NAT-Tを使用しない"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "ファイルが見つかりませんでした"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "情報がありません"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "ネガティブキャッシュを行なわない"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "このデバイスに設定されているネットワークがありません"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "ネットワーク名が設定されていません"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "パスワードが設定されていません!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr "まだ公開鍵はありません。"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "チェイン内にルールがありません"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr "利用可能なスキャン結果はまだありません..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "ゾーンが設定されていません"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "ノイズ"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "ノイズ:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr "非ワイルドカード"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "なし"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "標準"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "見つかりません"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "アソシエーションされていません"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "未接続"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr "注意: インターフェース名の長さ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "注意"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "Nslookup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-"キャッシュされる DNS エントリーの数です。(最大 10000 件。 0の場合はキャッ"
-"シュしません)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr "圧縮に使用される、並列スレッド数です。"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "消灯時間"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"このページではネットワーク インターフェースの設定を行うことが出来ます。\"ブ"
-"リッジインターフェース\"フィールドにチェックを付け、複数のネットワーク イン"
-"ターフェースをリストから選択することで複数のインターフェースをブリッジするこ"
-"とが出来ます。また、<samp>INTERFACE.VLANNR</samp>という表記により<abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>も使用することが出来ます。(<abbr "
-"title=\"for example\">例</abbr>: <samp>eth0.1</samp>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "点灯時間"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "1つ以上のホスト名またはMACアドレスを設定してください!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "1つ以上のフィールドに無効な値が設定されています!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr "タブに1つ以上の 無効/必須 の値があります。"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "1つ以上のフィールドに値が設定されていません!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "リストを開く..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr "OpenConnect (CISCO AnyConnect)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr "動作周波数"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "変更されるオプション"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "削除されるオプション"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr "オプション"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-"ピアのホストです。名前はインターフェースの起動前に解決されます。(オプショ"
-"ン)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr "トンネル インターフェースのMaximum Transmission Unit(オプション)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr "ピアのポート(オプション)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-"キープアライブ メッセージの送信間隔(秒)です。既定値: 0。このデバイスがNAT"
-"以下に存在する場合の推奨値は25です。(オプション)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr "発信パケットと受信パケットに使用されるUDPポート(オプション)"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "オプション"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "その他:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "アウト"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "送信:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr "出力インターフェース"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "MACアドレスを上書きする"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "MTUを上書きする"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr "デフォルトのインターフェース名を上書きします。"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "DHCPレスポンス内のゲートウェイアドレスを上書きする"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-"クライアントへ通知するネットマスクを上書きします。通常は、設定されているサブ"
-"ネットから計算されます。"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr "内部ルートに使用されるテーブルを上書きします。"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "概要"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "所有者"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "PAP/CHAP パスワード"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "PAP/CHAP ユーザー名"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr "PIN コードが拒否されました"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "PPPoAカプセル化"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr "PPPoSSH"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "libiwinfo パッケージが必要です!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "パケット"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "ゾーン %q の一部"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "パスワード"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "パスワード認証"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "秘密鍵のパスワード"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr "秘密鍵のパスワード"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr "パスワード2"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr "貼付けまたは SSH 鍵ファイルをドラッグ…"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "CA証明書のパス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "クライアント証明書のパス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "秘密鍵のパス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr "CA 証明書のパス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr "クライアント証明書のパス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr "秘密鍵のパス"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "ピーク:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr "ピアのアドレスがありません"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr "ピア"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "再起動を実行"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "設定リセットを実行"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr "永続的なキープアライブ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "物理レート:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "デバイス設定"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ping"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "パケット"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "ユーザー名とパスワードを入力してください。"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "ポリシー"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "ポート"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "ポート ステータス:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr "委任されたプレフィクス (PD)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr "事前共有鍵"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-"設定回数のLCP echo 確認失敗後、ピアノードがダウンしているものと見なします。0"
-"を設定した場合、失敗しても無視します"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr "これらのインターフェースでの待ち受けを停止します。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "クライアント同士の通信を制限します"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr "秘密鍵"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "続行"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "プロセス"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr "プロファイル"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "プロトコル"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "プロトコル"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "新しいインターフェースのプロトコル"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "プロトコル サポートがインストールされていません"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "NTPサーバー機能を有効にする"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "新しいネットワークを設定します"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "擬似アドホック (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr "公開鍵"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-"公開鍵は、プレーン パスワードの使用と比べ、高セキュリティなパスワード無しで"
-"の SSH ログインを可能とします。新しい鍵をデバイスにアップロードするために、入"
-"力欄に OpenSSH 互換の公開鍵(1行)を貼り付けるか、 <code>.pub</code> ファイル"
-"をドラッグしてください。"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "クオリティ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-"アップストリームの利用可能な全 <abbr title=\"Domain Name System\">DNS</abbr> "
-"サーバを問い合わせます"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr "RFC3947 NAT-Tモード"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "RTS/CTSしきい値"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "受信レート"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Radiusアカウントサーバー ポート番号"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Radiusアカウント秘密鍵"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Radiusアカウントサーバー"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Radius認証サーバー ポート番号"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Radius認証秘密鍵"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Radius認証サーバー"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>サーバーの設定"
-"として<code>/etc/ethers</code> をロードします"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-"本当にこのインターフェースを削除しますか?一度削除すると、元に戻すことはでき"
-"ません!もしこのインターフェースを経由して接続している場合、このデバイスにア"
-"クセスできなくなる場合があります"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"本当にこの無線ネットワークを削除しますか?一度削除すると、元に戻すことはできま"
-"せん!\n"
-"このネットワークを経由して接続している場合、デバイスにアクセスできなくなる場"
-"合があります。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "本当に全ての変更をリセットしますか?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "本当にプロトコルを切り替えますか?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "リアルタイム・コネクション"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "リアルタイム グラフ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "リアルタイム・ロード"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "リアルタイム・トラフィック"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "リアルタイム・無線LAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "DNSリバインディング・プロテクション"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "再起動"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "再起動中..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "デバイスのオペレーティングシステムを再起動します。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "受信"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "受信アンテナ"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr "WireGuard インターフェースのIPアドレスです。(推奨)"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "インターフェースを再接続します"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "参照カウンタ"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "リレー"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "リレーブリッジ"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "ネットワーク間のリレー設定"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "リレーブリッジ"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "リモート IPv4アドレス"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr "リモート IPv4アドレス または FQDN"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "削除"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "再スキャン"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "エントリーの置換"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "無線設定を置換する"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr "IPv6-アドレスのリクエスト"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr "リクエストするIPv6-プレフィクス長"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr "必須"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "DOCSIS 3.0を使用するいくつかのISPでは必要になります"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr "このインターフェースに使用するBase64-エンコード 秘密鍵(必須)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-"'フル' バージョンの wpad/hostapd と、無線LANドライバーによるサポートが必要で"
-"す。<br />(2019年1月現在: ath9k、ath10k、mwlwifi 及び mt76)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "リセット"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "カウンタをリセット"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "標準設定にリセット"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "名前解決およびホストファイル設定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "リゾルバファイル"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "再起動"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "ファイアウォールを再起動"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr "無線インターフェースを再起動します"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "復元"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "バックアップから復元する"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "パスワードを表示する/隠す"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "元に戻す"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr "変更の取り消し"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr "取り消しのリクエストはステータス <code>%h</code> により失敗しました"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr "設定を元に戻しています..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "ルート"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "TFTP経由でファイルを取り扱う際のルートディレクトリ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr "ルートの準備"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr "ルート タイプ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr "ルーター アドバタイズメント-サービス"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "ルーター パスワード"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "経路情報"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"特定のホスト又はネットワークに、どのインターフェース及びゲートウェイを通して"
-"通信を行うか、経路情報を設定します。"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr "ルール"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "デバイスのマウントを行う前にファイルシステムチェックを行う"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "ファイルシステムチェックを行う"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr "SHA256"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr "SNR"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "SSH アクセス"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr "SSH サーバーアドレス"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr "SSH サーバーポート"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr "SSH ユーザー名"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "SSH キー"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr "スワップ"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "保存"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "保存 & 適用"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr "mtdblock を保存"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr "mtdblock の保存"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr "公開鍵を保存中…"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "スキャン"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr "スキャン要求が失敗しました"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "スケジュールタスク"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "追加されるセクション"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "削除されるセクション"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "詳細情報は \"mount\" のmanページを参照してください"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-"イメージ形式のチェックが失敗した場合でも更新を行う場合、'強制アップグレード' "
-"を選択してください。ファームウェアが正しいこと、デバイスに適していることを確"
-"認できている場合にのみ使用してください!"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-"設定された秒間隔でLCP echoリクエストを送信します。失敗数しきい値を設定した場"
-"合のみ、機能が有効になります。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "クライアントの分離"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "サーバー設定"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "サービス名"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "サービスタイプ"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "サービス"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr "セッションの期限切れ"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr "VPN をデフォルト ルートとして設定します。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr "時刻同期設定"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "DHCPサーバーを設定"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr "Short GI"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr "Short Preamble"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "現在のバックアップファイルのリストを表示する"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr "空のチェインを表示"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "インターフェースを終了します"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "信号強度"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "信号:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "サイズ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr "DNS クエリ キャッシュのサイズ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr "ZRam デバイスのサイズ (MB) です。"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "スキップ"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "コンテンツへ移動"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "ナビゲーションへ移動"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "スロット時間"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "無効な値が設定されているフィールドがあるため、保存できません。"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "申し訳ありません。リクエストされたオブジェクトは見つかりませんでした。"
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "申し訳ありません。サーバーに予期せぬエラーが発生しました。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"申し訳ありません。現在このボードではsysupgradeがサポートがされていないため、"
-"ファームウェア更新は手動で行っていただく必要があります。wikiを参照して、この"
-"デバイスのインストール手順を参照してください。"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "送信元"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "デバイスが接続するディレクトリを設定します"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "<em>Dropbear</em> の待ち受けポートを設定してください。"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "暗号鍵を設定します。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "開始"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "優先順位"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr "設定の適用を開始しています..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr "無線LANのスキャンを開始しています..."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "スタートアップ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "IPv4 静的ルーティング"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "IPv6 静的ルーティング"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "静的リース"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "静的ルーティング"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "静的アドレス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"静的リース機能は、DHCPクライアントに対して固定のIPアドレス及び一時的なホスト"
-"名をアサインします。また、クライアントは対応するリースを使用するホストがその1"
-"台のみで、かつ静的なインターフェース設定にする必要があります。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr "非アクティブなステーションの制限"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "ステータス"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "停止"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "問い合わせの制限"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "送信"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr "ログの抑制"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr "これらのプロトコルの、ルーチン的操作についてのログを抑制します。"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr "スワップ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "スワップ機能"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "スイッチ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "スイッチ %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "スイッチ %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-"スイッチ %q は不明なトポロジを持っています - VLAN 設定は正確ではないかもしれ"
-"ません。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr "スイッチポート マスク"
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "プロトコルの切り替え"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr "CIDR リスト表記へ切替"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr "スイッチポート アクティビティ (%s)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "ブラウザの時刻と同期"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "同期中..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "システム"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "システムログ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "システム プロパティ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "システムログ バッファサイズ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "TFTP設定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "TFTPサーバー・ルート"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "送信レート"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "テーブル"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "ターゲット"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr "対象ネットワーク"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "停止"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"<em>デバイス設定</em>セクションでは、チャネル、送信出力、アンテナ設定などの無"
-"線ハードウェアの設定を行います。また、無線ハードウェアがマルチSSID機能をサ"
-"ポートしている場合、これらの設定は全て共通の設定として扱われます。暗号化設定"
-"や無線モードなどのネットワーク毎の設定は、<em>インターフェース設定</em>で設定"
-"を行います。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"<em>libiwinfo-lua</em> パッケージがインストールされていません。無線設定機能を"
-"正しく動作させるために、このパッケージをインストールする必要があります。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-"プロバイダに割り当てられる IPv6 プレフィクスです。通常、 <code>::</code> で終"
-"わります。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"使用可能な文字は右記の通りです: <code>A-Z</code>, <code>a-z</code>, "
-"<code>0-9</code>, <code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr "設定ファイルは以下のエラーにより読み込めませんでした:"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-"未適用の変更を適用後、デバイスは %d 秒以内に完了できなかった可能性がありま"
-"す。これは、安全上の理由によりロールバックされる設定に起因するものです。それ"
-"でも設定の変更が正しいと思う場合は、チェックなしの変更の適用を行ってくださ"
-"い。もしくは、再度適用を試行する前にこの警告を閉じて設定内容の編集を行うか、"
-"現在動作している設定状況を維持するために未適用の変更を取り消してください。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"デバイスファイルまたはパーティション(<abbr title=\"for example\">例</abbr> "
-"<code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"記憶領域をフォーマットしているファイルシステムを指定します。(<abbr title="
-"\"for example\">例</abbr> <samp><abbr title=\"Third Extended Filesystem"
-"\">ext3</abbr></samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"更新用イメージがアップロードされました。以下はそのチェックサム及びファイルサ"
-"イズです。オリジナルファイルと比較し、整合性を確認してください。<br />\"続行"
-"\"ボタンをクリックすると、更新処理を開始します。"
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "以下の変更が取り消されました"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "このシステムでは、現在以下のルールが有効になっています。"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr "入力された SSH 公開鍵は既に追加されています。"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-"入力された SSH 公開鍵は無効です。正しい RSA または ECDSA 鍵を入力してくださ"
-"い。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "設定されたネットワーク名はユニークなものではありません"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-"このハードウェアでは複数のESSIDを設定することができないため、続行した場合、設"
-"定は既存の設定と置き換えられます。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "IPv6 プレフィクスの長さ (bit) です。"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"ネットワーク ポートは、コンピュータが他と直接通信することができる複数の "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> にまとめることができま"
-"す。 <abbr title=\"Virtual Local Area Network\">VLAN</abbr> は、異なるネット"
-"ワーク セグメントの分離にしばしば用いられます。通常、インターネットなどより上"
-"位のネットワークへの接続に使用するアップリンク ポートと、ローカル ネットワー"
-"ク用のその他のポートが存在します。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "選択中のプロトコルを使用する場合、デバイスを設定する必要があります"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr "送信されたセキュリティ トークンは無効もしくは期限切れです!"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr "システムは設定領域を消去中です。完了後、自動的に再起動します。"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"システム更新中です。<br />絶対に電源を切らないでください!<br />ルーターの再"
-"接続まで数分お待ち下さい。システムが更新されることにより、ルーターの設定が変"
-"わる可能性があるため、再接続時にあなたのコンピュータのIPアドレスを変更しなけ"
-"ればならない場合があります。"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr "システム パスワードの変更に成功しました。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"アップロードされたイメージファイルは、このボードでサポートされているフォー"
-"マットではありません。このプラットフォームに適合したイメージファイルかどう"
-"か、確認してください。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "テーマ"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "リース中のIPアドレスはありません。"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr "適用する変更はありません。"
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "復元が未完了の変更はありません!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "未完了の変更はありません!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-"デバイスが設定されていません。\"デバイス設定\"タブで、ネットワークデバイスを"
-"選択してください。"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"ルーターにパスワードが設定されていません。Webインターフェースの保護及びSSH"
-"サービスを有効にするために、管理者パスワードを設定してください。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr "リレーの IPv4 アドレス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-"このファイルは、特定ドメイン用、または上位 <abbr title=\"Domain Name System"
-"\">DNS</abbr> サーバーのための 'server=/domain/1.2.3.4' や 'server=1.2.3.4' "
-"というような行を含めることができます。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-"以下は、sysupgrade中にバックアップ対象に含めるファイルとディレクトリのパター"
-"ンリストです。/etc/config/内の設定ファイル及びその他特定の設定ファイルは自動"
-"的に保持されます。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"/etc/rc.localを表示しています。実行したいコマンドを'exit 0'行より上に入力して"
-"ください。これらのコマンドはブートプロセスの最後に実行されます。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-"プロバイダからアサインされた、ローカルのエンドポイント アドレスです。通常、"
-"<code>...:2/64</code>が終端に設定されます。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"これはローカル ネットワーク内のみの <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> です。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-"スケジュールタスク システムを使用することで、定期的に特定のタスクの実行を行う"
-"ことが可能です。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"このリストは現在システムで動作しているプロセスとそのステータスを表示していま"
-"す。"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "このページでは、現在アクティブなネットワーク接続を表示します。"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "このセクションは未設定です。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "時刻設定"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "時刻同期機能はまだ設定されていません。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr "Group Temporal Key (GTK) 再生成間隔"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "タイムゾーン"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr "ログイン…"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"設定を復元するには、作成しておいたバックアップ アーカイブをアップロードしてく"
-"ださい。設定のリセットを行う場合、\"設定リセット\"をクリックしてください。(た"
-"だし、squashfsをお使いの場合のみ使用可能です)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "合計"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Traceroute"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "トラフィック"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "転送"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "転送レート"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "送信"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "電波出力"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "送信アンテナ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "トリガー"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "トリガーモード"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "トンネル ID"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "トンネルインターフェース"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr "トンネルリンク"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "送信電力"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "タイプ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "UMTSのみ"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "USBデバイス"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr "USB ポート"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr "デバイス名を確定できません"
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr "外部 IP アドレスを確定できません"
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr "アップストリーム インターフェースを確定できません"
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr "ディスパッチできません"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr "AFTR ホスト名を解決できません"
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr "ピアのホスト名を解決できません"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "不明"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr "不明なエラー (%s)"
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "Unmanaged"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr "アンマウント"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr "名称未設定の公開鍵"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "保存されていない変更"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr "非対応の MAP タイプです"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "サポートされていないプロトコルタイプ"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr "上へ"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"システムをアップデートする場合、sysupgrade機能に互換性のあるファームウェア イ"
-"メージをここにアップロードしてください。\"設定の保持\"を有効にすると、現在の"
-"設定を維持してアップデートを行います(互換性のあるファームウェア イメージが必"
-"要)。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "アーカイブをアップロード..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "アップロード完了"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "起動時間"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "<code>/etc/ethers</code> を使用する"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "DHCPゲートウェイを使用する"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "ピアから通知されたDNSサーバーを使用する"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "ISO/IEC 3166 alpha2の国コードを使用します。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr "トンネル インターフェースのMTUを設定"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "トンネル インターフェースのTTLを設定"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr "外部オーバーレイとして使用する (/overlay)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr "ルート ファイルシステムとして使用する (/)"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "ブロードキャスト フラグを使用する"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr "ビルトインのIPv6-マネジメントを使用する"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "DNSサーバーを手動で設定"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "デフォルト ゲートウェイを使用する"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "ゲートウェイ メトリックを使用する"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "ルーティング テーブルの使用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"<em>追加</em> ボタンを押して、新しくエントリーを作成してください。<em>MAC-ア"
-"ドレス</em> はそのホストを識別し, <em>IPv4-アドレス</em> には払いだす固定のア"
-"ドレスを設定します。また、<em>ホスト名</em> はそのホストに対して一時的なホス"
-"ト名をアサインします。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "使用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "使用するキースロット"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr "ユーザー証明書(PEM エンコード)"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr "ユーザー秘密鍵(PEM エンコード)"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "ユーザー名"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr "VDSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "%q上のVLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "%q上のVLAN (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr "VPN ローカルアドレス"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr "VPN ローカルポート"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "VPN サーバー"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr "VPN サーバーポート"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr "VPN サーバー証明書 SHA1ハッシュ"
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr "VPNC (CISCO 3000 (またはその他の) VPN)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr "ベンダー"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "DHCPリクエスト送信時のベンダークラスを設定"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "確認"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr "仮想ダイナミックインターフェース"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "WEP オープンシステム"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "WEP 共有キー"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "WEP 暗号フレーズ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "WMM モード"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "WPA 暗号フレーズ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"WPA暗号化を使用する場合、wpa_supplicant (クライアントモードの場合)又は "
-"hostapd (アクセスポイント及びアドホック) がインストールされている必要がありま"
-"す。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "変更を適用中です..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "コマンド実行中です..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr "設定を適用中です... %d 秒"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr "デバイスを起動中です..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "警告"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr "警告: 再起動すると消えてしまう、保存されていない設定があります!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr "無線アクティビティ (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr "無線クライアント アソシエーション (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr "無線データ受信状態 (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr "無線データ送信状態 (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr "無線オン (%s)"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr "帯域幅"
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr "WireGuard VPN"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "無線"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "無線アダプタ"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "無線ネットワーク"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "無線LANデバイス一覧"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "無線LANセキュリティ"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "無線LAN機能は無効になっています"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "無線LAN機能がアソシエーションされていません"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "無線LAN機能再起動中..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "無線LAN機能は無効になっています"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "無線LAN機能は有効になっています"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "受信したDNSリクエストをsyslogへ記録します"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr "システムログをファイルに書き込む"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr "はい"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"ルーターが起動する際のサービスの有効化/無効化を行うことができます。また、変更"
-"は再起動後に適用されます。<br /><strong>警告: \"network\" のような重要なサー"
-"ビスを無効にするとルーターにアクセスできなくなりますので、注意してください。"
-"</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr "JavaScriptを有効にしない場合、LuCIは正しく動作しません。"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-"Internet Explorerが古すぎるため、このページを正しく表示することができません。"
-"バージョン 7以上にアップグレードするか、FirefoxやOpera、Safariなど別のブラウ"
-"ザーを使用してください。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr "ZRam 圧縮アルゴリズム"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr "ZRam 圧縮ストリーム"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr "ZRam 設定"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr "ZRam サイズ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "全て"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "自動"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "ブリッジ"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr "作成"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "作成:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "指定したインターフェースでブリッジを作成します"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "無効"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr "無効"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "期限切れ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>リース情報を記"
-"録するファイル"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "転送"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "全二重"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "半二重"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr "エンコードされた値(16進数)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "(不明)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr "ハイブリッド モード"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "ターゲットがネットワークの場合"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "入力"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr "8 文字以上 63 文字以下のキー"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr "5 文字または 13 文字のキー"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "ローカル <abbr title=\"Domain Name System\">DNS</abbr>ファイル"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr "分"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr "mixed WPA/WPA2"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "いいえ"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "リンクなし"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr "空ではない値"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "オフ"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "オン"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-"以下を満たす1つ:\n"
-" - %s"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "オープン"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr "出力"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr "オーバーレイ"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr "正の値(10進数)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr "正の整数値"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr "ランダム"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr "リレー モード"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "routed"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr "秒"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr "サーバー モード"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr "ステートフルのみ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr "ステートレス"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr "ステートレス + ステートフル"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "tagged"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr "ユニークな値"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "不明"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "無期限"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "設定しない"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "設定しない -又は- 作成:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "untagged"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr "有効な IP アドレス"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr "有効な IP アドレスまたはプレフィクス"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr "有効な IPv4 CIDR"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr "有効な IPv4 アドレス"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr "有効な IPv4 アドレスまたはネットワーク"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr "有効な IPv4 アドレス:ポート"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr "有効な IPv4 ネットワーク"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr "有効な IPv4 または IPv6 CIDR"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr "有効な IPv4 プレフィクス値 (0 - 32)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr "有効な IPv6 CIDR"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr "有効な IPv6 アドレス"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr "有効な IPv6 アドレスまたはプレフィクス"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr "有効な IPv6 ホスト ID"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr "有効な IPv6 ネットワーク"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr "有効な IPv6 プレフィクス値 (0 - 128)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr "有効な MAC アドレス"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr "有効な UCI 識別子"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr "有効な UCI 識別子またはホスト名、 IP アドレス"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr "有効なアドレス:ポート"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr "有効な日付 (YYYY-MM-DD)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr "有効な10進数の値"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr "有効な WEP キー(16進数)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr "有効な WPA キー(16進数)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr "有効なホスト:ポート"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr "有効なホスト名"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr "有効なホスト名または IP アドレス"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr "有効な整数値"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr "有効なネットワーク(アドレス/ネットマスク 表記)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr "有効なポートまたはポート範囲(port1-port2)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr "有効なポート番号"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr "有効な時刻 (HH:MM:SS)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr "%d 以上 %d 文字以下の値"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr "%f 以上 %f 以下の値"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr "%f 以上の値"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr "%f 以下の値"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr " %d 文字以上の値"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr "%d 文字以下の値"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "はい"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« 戻る"
diff --git a/package/luci/modules/luci-base/po/ko/base.po b/package/luci/modules/luci-base/po/ko/base.po
deleted file mode 100644 (file)
index ed4b1f7..0000000
+++ /dev/null
@@ -1,6362 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2012-04-03 08:44+0200\n"
-"Last-Translator: Weongyo Jeong <weongyo@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: en\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(%d 분 window, %d 초 간격)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "1 분 부하:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "15 분 부하:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "5 분 부하:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> query 포트"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> 서버 포트"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-주소"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> 설정"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> 이름"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Media Access Control\">MAC</abbr>-주소"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"<abbr title=\"maximal\">최대</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> lease 수"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"maximal\">최대</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> 패킷 크기"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"maximal\">최대</abbr> 동시 처리 query 수"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "관리 도구"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-"Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Route 경로"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-"Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Route 경로"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Active 연결수"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Active DHCP 임대 목록"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Active DHCPv6 임대 목록"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "추가"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "새로운 인터페이스 추가..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "추가적인 Hosts 파일들"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "주소"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "관리"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "고급 설정"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "<abbr title=\"Secure Shell\">SSH</abbr> 암호 인증을 허용합니다"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "암호를 이용한 root 접근 허용"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "암호를 이용한 <em>root</em> 사용자 접근을 허용합니다"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "연결된 station 들"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "인증이 필요합니다"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "자동 Refresh"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "평균:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "뒤로"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "개요로 이동"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "설정으로 돌아가기"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "백업"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Firmware 백업 / Flash"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"아래는 백업할 파일 목록입니다.   이 목록은 opkg 이 수정되었다고 판단한 파일, "
-"필수 기본 파일 그리고 사용자가 패턴 정의로 백업하도록 지정한 것로 이루어져 있"
-"습니다."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Bridge 인터페이스"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "부팅시 활성화"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "버퍼된 양"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "CPU 사용량 (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "변경 사항"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "장비 접근을 위한 관리자 암호를 변경합니다"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"이 인터페이스에 할당하고자 하는 firewall zone 을 선택하세요. 연결된 zone 으로"
-"부터 인터페이스를 제거하고 싶다면 <em>unspecified</em> 를 선택하세요.  새로"
-"운 zone 을 정의하고 인터페이스 연결을 원한다면 <em>create</em> 항목을 입력하"
-"세요."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"이 무선랜 인터페이스와 연결하고자 하는 네트워크(들)을 선택하세요. 혹은 새로"
-"운 네트워크를 정의할려면 <em>create</em> 을 작성하세요."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"현재 설정 파일에 대한 tar 아카이브 다운로드를 원한다면 \"아카이브 생성\" 버튼"
-"을 클릭하세요."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "DHCP 요청시 전송할 Client ID"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "목록 닫기..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Data 를 수집중입니다..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "명령어"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "공통 설정"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "설정"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "다시 확인"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "연결"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "연결 시간"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "연결"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Firewall-zone 생성 / 할당"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "임의의 인터페이스"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"원한다면 장치에 부착된 <abbr title=\"Light Emitting Diode\">LED</abbr> 들의 "
-"행동을 마음대로 변경할 수 있습니다."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "DHCP 서버"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP 와 DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "DHCP client"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "DHCP-옵션들"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "기본 상태"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"추가적인 DHCP 옵션을 정의합니다. 예를 들어 "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" 는 client 에게 다른 DNS 서버를 세"
-"팅하도록 권고할 수 있습니다."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "삭제"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "이 네트워크를 삭제합니다"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "설명"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "장치 설정"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "진단"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "비활성화"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"이 인터페이스에 대해 <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr> 기능을 비활성합니다."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq 는 <abbr title=\"Network Address Translation\">NAT</abbr> 방화벽을 위"
-"한 <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>-서버와 "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Forwarder 기능을 제공합니다."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "백업 다운로드"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear 는 <abbr title=\"Secure Shell\">SSH</abbr> network shell 접근과 "
-"<abbr title=\"Secure Copy\">SCP</abbr> 서버 기능을 제공합니다"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"동적으로 DHCP 주소를 client 에게 할당합니다.  만약 비활성화시, static lease "
-"가 설정된 client 만 주소 제공이 이루어집니다."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "수정"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "이 인터페이스를 수정합니다"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "이 네트워크를 수정합니다"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "활성화"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "<abbr title=\"Spanning Tree Protocol\">STP</abbr> 활성화"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "NTP client 활성화"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "TFTP 서버 활성화"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "VLAN 기능 활성화"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "활성/비활성"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "활성화됨"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "이 bridge 에 Spanning Tree Protocol 활성화합니다"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "암호화"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Ethernet 스위치"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "만료 시간"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr "임대한 주소의 유효 시간.  최소값은  2 분 (<code>2m</code>) 입니다."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "외부 system log 서버"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "외부 system log 서버 포트"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr "외부 system log 서버 프로토콜"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "네트워크 검색 및 연결합니다"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "방화벽"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "방화벽 설정"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "방화벽 상태"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Firmware 버전"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "이미지로 Flash..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "새로운 firmware 이미지로 flash"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Flash 작업"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "강제하기"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr "다른 DHCP 서버가 탐지되더라도 이 네트워크에 DHCP 를 강제합니다."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "이용 가능한 양"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "기본 설정"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "기본 설정"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "아카이브 생성"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "암호 설정 하기"
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"여기서 호스트이름이나 시간대와 같은 기본적인 장비 설정을 할 수 있습니다."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr> 숨기기"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr "호스트"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "호스트 목록들"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> 혹은 Network"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "호스트이름"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "DHCP 요청시 전달할 호스트이름"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "호스트이름"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "IP 주소"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "IPv4 방화벽"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "IPv4 주소"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "IPv4-주소"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "IPv6 방화벽"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr "IPv6 Neighbour 들"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr "IPv6 설정"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "IPv6-주소"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "체크하지 않을 경우, 기본 route 가 설정되지 않습니다"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "체크하지 않을 경우, 사용하도록 권장된 DNS 주소는 무시됩니다"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "<code>/etc/hosts</code> 파일 무시"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "인터페이스 무시"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "resolve 파일 무시"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "이미지"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "In"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Initscript 들"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "인터페이스"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "인터페이스 설정"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "인터페이스 개요"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr "인터페이스 이름"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "인터페이스"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "네트워크 연결"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "네트워크 연결: 무선랜 스캔 결과"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr "네트워크 연결중: %q"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "설정 유지"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Kernel 로그"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Kernel 버전"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "언어"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "언어와 스타일"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr "임대 시간"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "남아있는 임대 시간"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "제한"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-"DNS 를 제공하기로한 subnet 인터페이스들에 대해서만 DNS 서비스를 제공합니다."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-"지정한 인터페이스에만 listening 하며 미지정시 모든 인터페이스에 적용됩니다"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "부하"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "부하 평균"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Local 시작 프로그램"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "지역 시간"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Log output 레벨"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "로그인"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "로그아웃"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr "임대되는 주소의 최소 시작점. (네트워크 주소로 부터의 offset)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "MAC-주소"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "MAC-주소 필터"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "MAC-필터"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "Active DHCP lease 건의 최대 허용 숫자"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "허용되는 최대 동시 DNS query 수"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "허용된 최대 EDNS.0 UDP 패킷 크기"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "임대될 수 있는 주소의 최대 숫자."
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "메모리"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "메모리 사용량 (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr "모델"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "NTP 서버 목록"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "이름"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "네트워크"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "네트워크 유틸리티"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "네트워크 boot 이미지"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "이용 가능한 정보가 없습니다"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "암호 설정을 해주세요!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "노이즈"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "연결되지 않음"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"이 페이지에서는 네트워크 인터페이스를 설정할 수 있습니다. \"Bridge 인터페이스"
-"\" 항목을 클릭하고, 공백으로 구분된 네트워크 인터페이스들의 이름을 적는 방식"
-"으로 여러 인터페이스들을 bridge 할 수 있습니다.  또한 <abbr title=\"Virtual "
-"Local Area Network\">VLAN</abbr> 표기법인 <samp>INTERFACE.VLANNR</samp> "
-"(<abbr title=\"for example\">예</abbr>: <samp>eth0.1</samp>) 를 사용하실 수 "
-"있습니다."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "목록 열람..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr "동작 주파수"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "변경된 option"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "삭제된 option"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "MAC 주소 덮어쓰기"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "MTU 덮어쓰기"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr "기본 인터페이스 이름을 덮어씁니다"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-"Client 에 전달될 netmask 를 덮어 쓸 수 있습니다.  보통 해당 값은 제공되는 "
-"subnet 에 따라 자동 계산됩니다."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "개요"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "암호"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "암호 인증"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "최고치:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "재부팅하기"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Reset 하기"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Physical 설정"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Pkts."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "사용자이름과 암호를 입력해 주세요."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "포트"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "포트 상태:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "프로세스"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "프로토콜"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "새로운 네트워크를 추가합니다"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"<code>/etc/ethers</code> 파일을 읽어 <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-서버를 설정합니다"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "정말 프로토콜 변경을 원하세요?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "실시간 연결수"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "실시간 그래프"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "실시간 부하"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "실시간 트래픽"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "재부팅"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "장치의 운영체제를 재부팅합니다"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "이 인터페이스를 재연결합니다"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "제거"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "특정 ISP 들에 요구됨.  예: Charter (DOCSIS 3 기반)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "초기화"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Counter 초기화"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "초기값으로 reset"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Resolv 와 Hosts 파일"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "Resolve 파일"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "재시작"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "방화벽 재시작"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "복구"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "백업 복구"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "암호 보이기/숨기기"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "변경 취소"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "TFTP 를 통해 제공되는 파일들의 root 디렉토리"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "라우터 암호"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Route 경로"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Route 경로는 특정 호스트 혹은 네트워크가 사용해야 할 인터페이스와 gateway 정"
-"보를 나타냅니다."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "저장"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "저장 & 적용"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Scan 하기"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "작업 관리"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "추가된 section"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "삭제된 section"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "서버 설정"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "서비스"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "현재 백업 파일 목록 보기"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "이 인터페이스를 정지합니다"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "신호"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Size"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "<em>Dropbear</em> instance 의 listening 포트를 지정합니다"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "시작"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "시작 우선순위"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "시작 프로그램"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Static IPv4 Route 경로"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Static IPv6 Route 경로"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Static Lease 들"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Static Route 경로"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"Static Lease 는 DHCP client 에게 고정된 IP 주소와 symbolic hostname 을 할당"
-"할 때 사용됩니다.  이 기능은 또한 지정된 host 에 대해서만 주소 임대를 하도록 "
-"하는 non-dynamic 인터페이스 설정에도 사용됩니다."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "상태"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "정지"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Strict order"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "제출하기"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "스위치"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "스위치 %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "스위치 %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr "스위치 VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "프로토콜 변경"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "브라우저 시간대로 동기화"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "시스템"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "시스템 로그"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "시스템 등록 정보"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "System log 버퍼 크기"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "TFTP 설정"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "TFTP 서버 root"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"<em>장치 설정<em> 섹션은 channel, transmit power 혹은 antenna 선택과 같은 물"
-"리적인 설정 내용을 다룹니다.  이 설정은 (만약 radio 하드웨어가 multi-SSID 지"
-"원이 가능하다면) 정의된 모든 무선 네트워크에 공통적으로 적용됩니다. 암호화 혹"
-"은 operation mode 와 같은 각 네트워크 설정들은 <em>인터페이스 설정</em>에서 "
-"다루어집니다."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "다음의 변경 사항들이 취소되었습니다"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "다음의 rule 들이 현재 이 시스템에 적용 중입니다."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"이 장치의 네트워크 포트들은 컴퓨터끼리 직접 통신을 할 수 있도록 여러 <abbr "
-"title=\"Virtual Local Area Network\">VLAN</abbr> 으로 구성될 수 있습니다. "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr>은 종종 다른 네트워크 "
-"segment 들을 분리하는데 사용되기도 합니다. 한 개의 uplink 포트가 인터넷에 연"
-"결되어 있고 나머지 포트들은 local 네트워크로 연결되는 구성에 자주 사용됩니다."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "디자인"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"이 공유기에 암호 설정이 되지 않았습니다. 웹 UI 와 SSH 부분을 보호하기 위해서 "
-"꼭 root 암호를 설정해 주세요."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-"이것은 sysupgrade 시 유지되어야 하는 파일과 디렉토리 목록에 대한 shell glob "
-"패턴들입니다.  /etc/config/ 하위의 수정된 파일이나 특정 다른 설정들은 자동적"
-"으로 변경 사항이 보존됩니다."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"이것은 /etc/rc.local 파일의 내용입니다.  여기에 ('exit 0' 앞에) 부팅 절차가 "
-"끝날 때 실행하고자 하는 명령들을 삽입하세요."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr "아래는 예정된 작업들이 정의된 시스템 crontab 내용입니다."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"이 목록은 현재 실행중인 시스템 프로세스와 해당 상태에 대한 개요를 보여줍니다."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "이 페이지는 현재 active 상태인 네트워크 연결을 보여줍니다."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "이 section 은 아직 입력된 값이 없습니다"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "시간 동기화"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "시간 동기화가 아직 설정되지 않았습니다."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "시간대"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"설정 파일을 복구하고자 한다면 이전에 백업하신 아카이브 파일을 여기로 업로드"
-"할 수 있습니다.  Firmware 의 초기 설정 reset 을 원한다면 \"Reset 하기\" 를 클"
-"릭하세요. (squashfs 이미지들만 가능)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "총 이용 가능한 양"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "트래픽"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "전송량"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "유형"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "알수없음"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "적용 안된 변경 사항"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"실행중인 firmware 변경을 하고자 한다면 여기에 sysupgrade 호환성이 유지되는 이"
-"미지를 업로드하세요.  현재의 설정을 유지하고자 한다면 \"설정 유지\" 를 체크하"
-"세요. (이를 지원하는 firmware 이미지 필요)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "아카이브 업로드..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Uploaded File"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "가동 시간"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "<code>/etc/ethers</code> 사용"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "Peer 가 권장한 DNS 서버 사용"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "Broadcast flag 사용"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr "자체 내장 IPv6-관리 기능 사용"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "임의의 DNS 서버 사용"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Default gateway 사용"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "Gateway metric 사용"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Routing table 사용"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"새로운 항목을 추가하기 위해서는 <em>추가</em> 버튼을 사용하세요. <em>MAC-주소"
-"</em>는 host 를 나타내며, <em>IPv4-주소</em>는 사용할 고정 주소를 나타내고, "
-"요청하는 host 에 대해 <em>hostname</em> 이 symbolic name 으로 부여됩니다. 선"
-"택 사항인 <em>임대 시간</em>은 해당 host 에만 해당되는 시각을 설정하는데 사용"
-"될 수 있습니다.  예를 들어 12h, 3d 혹은 infinite 값들이 가능합니다."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "사용자이름"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLAN 설정: %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "DHCP 요청시 전송할 Vendor Class"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "WMM Mode"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "변경 사항이 적용되기를 기다리는 중입니다..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "실행한 명령이 끝나기를 기다리는 중입니다..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "무선"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "무선랜 네트워크"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "무선랜 개요"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "무선랜 보안"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "무선이 비활성화되어"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "무선이 연결되어 있지 않습니다"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "무선랜이 재시작중입니다..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "무선 네트워크가 꺼져 있음"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "무선 네트워크가 켜져 있음"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "받은 DNS 요청 내용을 systlog 에 기록합니다"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr "System log 출력 파일 경로"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"이 메뉴에서 설치된 init script 를 활성화/비활성화 할 수 있습니다. 변경 사항"
-"은 장치가 재부팅 될 때 적용되게 됩니다.<br /><strong>경고: 만약 \"network\" "
-"와 같은 중요 init script 를 비활성화 할 경우, 장치에 접속을 못하실 수 있습니"
-"다!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "지정한 인터페이스(들)로 구성된 bridge 를 생성합니다"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "만료됨"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"할당된 <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>-lease "
-"정보가 저장되는 파일"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "Target 이 네트워크일 경우"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "local <abbr title=\"Domain Name System\">DNS</abbr> 파일"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "link 없음"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "unspecified -혹은- create:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr ""
-
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr ""
-#~ "아래에 SSH public-key 인증을 위한 공개 SSH-Key 들 (한 줄당 한개) 를 입력"
-#~ "할 수 있습니다."
-
-#~ msgid "Design"
-#~ msgstr "디자인"
-
-#~ msgid "Available packages"
-#~ msgstr "이용 가능한 패키지"
-
-#~ msgid ""
-#~ "Build/distribution specific feed definitions. This file will NOT be "
-#~ "preserved in any sysupgrade."
-#~ msgstr ""
-#~ "Build/distribution 지정 feed 목록입니다.  이 파일의 내용은 sysupgrade 시 "
-#~ "초기화됩니다."
-
-#~ msgid ""
-#~ "Custom feed definitions, e.g. private feeds. This file can be preserved "
-#~ "in a sysupgrade."
-#~ msgstr ""
-#~ "개인이 운영하는 feed 같은 정보를 입력할 수 있는 custom feed 목록입니다. "
-#~ "이 파일은 sysupgrade 시 입력된 정보가 유지됩니다."
-
-#~ msgid "Custom feeds"
-#~ msgstr "Custom feed 들"
-
-#~ msgid "Distribution feeds"
-#~ msgstr "Distribution feed 들"
-
-#~ msgid "Download and install package"
-#~ msgstr "패키지 다운로드 후 설치"
-
-#~ msgid "Filter"
-#~ msgstr "필터"
-
-#~ msgid "Find package"
-#~ msgstr "패키지 찾기"
-
-#~ msgid "Free space"
-#~ msgstr "여유 공간"
-
-#~ msgid "General options for opkg"
-#~ msgstr "opkg 명령의 기본 옵션들"
-
-#~ msgid "Install"
-#~ msgstr "설치"
-
-#~ msgid "Installed packages"
-#~ msgstr "설치된 패키지"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "OPKG-설정"
-
-#~ msgid "Package name"
-#~ msgstr "패키지 이름"
-
-#~ msgid "Size (.ipk)"
-#~ msgstr "크기 (.ipk)"
-
-#~ msgid "Software"
-#~ msgstr "소프트웨어"
-
-#~ msgid "Version"
-#~ msgstr "버전"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 와 IPv6"
-
-#~ msgid "No chains in this table"
-#~ msgstr "이 table 에는 정의된 chain 이 없음"
-
-#~ msgid "Activate this network"
-#~ msgstr "이 네트워를 활성화합니다"
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "인터페이스 재연결중입니다"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "이 네트워크를 shutdown 합니다"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "무선랜이 재시작되었습니다"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "무선랜이 shutdown 되었습니다"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "DHCP 임대 정보"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "DHCPv6 임대 정보"
-
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "정말로 네트워크를 shutdown 하시겠습니까?\\n이 인터페이스를 통해 연결하였다"
-#~ "면 접속이 끊어질 수 있습니다."
-
-#~ msgid "Sort"
-#~ msgstr "순서"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "IPv4 WAN 상태"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "IPv6 WAN 상태"
-
-#~ msgid "Apply"
-#~ msgstr "적용"
-
-#~ msgid "Save &#38; Apply"
-#~ msgstr "저장 &#38; 적용"
-
-#~ msgid "Leasetime"
-#~ msgstr "임대 시간"
diff --git a/package/luci/modules/luci-base/po/ms/base.po b/package/luci/modules/luci-base/po/ms/base.po
deleted file mode 100644 (file)
index 8eb6936..0000000
+++ /dev/null
@@ -1,6328 +0,0 @@
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-05-07 17:57+1000\n"
-"PO-Revision-Date: 2010-05-07 17:57+1000\n"
-"Last-Translator: Wai Chet Teow <waichet@hotmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s sedia)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(tiada interface dipasang)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Gelanggang Tambahan --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Sila pilih --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- memperibadi --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-"<abbr title=\"perkhidmatan set mengenalpasti diperpanjangkan\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "IPv4-Alamat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "IPv4-Pintu gerbang"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "IPv4-Netmask"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr "IPv6 Host-Alamat atau Rangkaian (CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "IPv6-Pintu gerbang"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "Konfigurasi lampu LED"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "MAC-Alamat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Pusat akses"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Aksi"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "Aktive IPv4-Routen"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "Aktif IPv6-Laluan"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Sambungan Aktif"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Tambah"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Pentadbiran"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Tetapan Lanjutan"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "Membenarkan pengesahan kata laluan SSH"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Izinkan semua kecualian yang disenaraikan"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Izinkan senarai saja"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Antena 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Antena 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Associated Stesen"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Authentifizierung"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Pengesahan"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Otorisasi Diperlukan"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Boleh didapati"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Kembali ke ikhtisar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Kembali ke keputusan scan"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Sandaran"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Bridge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Antara Muka Bridge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Penggunaan CPU (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Batal"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Rantai"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Laman"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Laman diterapkan."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Saluran"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Jumlah disemak "
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr "Pilih zon firewall yang anda ingin tetapkan untuk antar muka ini."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#, fuzzy
-msgid "Client"
-msgstr "Pelanggan"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Perintah"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Konfigurasi"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Pengesahan"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Sambungan Batas"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Kod negara"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Buat / Menetapkan dinding api-zon"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr "Mengkustomisasi perilaku peranti LED jika mungkin."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "DHCP-Pilihan"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Padam"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Keterangan"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Tempat tujuan"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Alat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Jarak Optimasi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Jarak ke rangkaian terjauh ahli dalam meter."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Keanekaragaman"
-
-# Nur für NAT-Firewalls?
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq adalah gabungan <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Pelayan dan<abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder untuk <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Domain diperlukan"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr "Jangan hantar permintaan DNS tanpa nama DNS"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear menawarkan SSH kulit rangkaian aksesdan pelayan yang terintegrasi."
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr "Dinamik DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "EAP-Kaedah"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Sunting"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Mengaktifkan <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "Aktifkan spanning Tree Protokol di jambatan ini"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Enkripsi"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Kesalahan"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Ethernet Adapter"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Ethernet Beralih"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Fail Sistem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Penapis swasta"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Penapis tak berguna"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Selesai"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Firewall"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Tetapan Firewall"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Status Firewall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Firmware Flash"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Paksa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Fragmentasi Ambang"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Bingkai Meletup"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Setup Umum"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Menuju ke halaman konfigurasi yang relevan"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Menutup"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Di sini anda boleh mengkonfigurasi aspek asas peranti anda seperti nama host "
-"atau zon."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "Menyembunyikan ESSID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Entri host"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "IP host atau rangkaian"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Nama Host"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Nama Host"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "Alamat IP"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "Konfigurasi IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identiti"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Jika memori fizikal anda tidak cukup data yang boleh digunakan sementara "
-"menukar ke peranti-penukar yang dihasilkan dalam jumlah RAM berguna yang "
-"lebih tinggi. Berhati-hatilah bahawa penukaran data adalah proses yang "
-"sangat lambat kerana peranti-penukar tidak boleh diakses dengan datarates "
-"yang tinggi pada RAM."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Mengabaikan /etc/hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Abaikan antara muka"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Abaikan fail yang selesai"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "Masuk"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Interface"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Tak Sah"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Username dan / atau password tak sah! Sila cuba lagi."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Tampak bahawa anda cuba untuk flash fail gambar yang tidak sesuai dengan "
-"memori flash, sila buat pengesahan pada fail gambar!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-#, fuzzy
-msgid "Join Network"
-msgstr "Gabung Rangkaian"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Log Kernel"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Kunci"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Tamatkan"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Bahasa"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Sewa fail"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Sisa masa penyewaan"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Batas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Link Pada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Load"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Masa Tempatan"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Soalan tempatan"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Log soalan"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Login"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Logout"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Penapis alamat MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "Penapis MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "Senarai MAC"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Memori"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Penggunaan Memori (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Metrik"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Mode"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Alat modem"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Monitor"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Mount Point"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Mount Points"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Mount Points menentukan di mana titik peranti memori akan melekat pada fail "
-"sistem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Mounted fail sistems"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Nama"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Nama rangkaian baru"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navigation"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Rangkaian"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Kemudian »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Tidak ada peraturan dalam rantai ini"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Kebisingan"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"Pada halaman ini anda boleh mengkonfigurasi antara muka rangkaian. Anda "
-"boleh menjembatani beberapa antara muka dengan menanda jambatan antara muka "
-"gelanggang dan masukkan beberapa nama antara muka rangkaian dipisahkan "
-"dengan ruang. Anda juga boleh menggunakan antara muka VLAN notasi. Seperti "
-"eth0.1."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Pilihan"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Keluar"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Keseluruhan"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Pemilik"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "Pengkapsulan PPPoA"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Paket"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Kata laluan"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Kata laluan pengesahan"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Kata Laluan Kunci Swasta"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Path ke CA-Sijil"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Path ke Kunci Swasta"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Lakukan reboot"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Tetapan Fizikal"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Pkts."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Sila masukkan username dan kata laluan anda."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Dasar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Port"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Mencegah komunikasi sesama Pelanggan"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Teruskan"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Proses"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protokol"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Pseudo Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "RTS/CTS-Ambang"
-
-# Ein / Aus, eingehend / ausgehend?
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr "Baca /etc/ethers untuk mengkonfigurasikan DHCP-Server"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Reboot"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Reboot sistem operasi peranti anda"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Menerima"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Antena Penerima"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Rujukan"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Menghapuskan"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Ulangi scan"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Tukar entri"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Reset"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Reset Loket"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Restart Firewall"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Mengembalikan"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Kembalikan sandaran"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Kembali"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Laluan"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Laluan menentukan di mana interface dan gateway host atau rangkaian tertentu "
-"yang boleh dicapai."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Simpan"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Simpan & Melaksanakan"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Scan"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Tugas Jadual"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "Rujuk \"mount\" laman manual untuk detail"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Pisahkan Pelanggan"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Perkhidmatan"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Isyarat"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Saiz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Skip"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Skip ke kadar"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Skip ke navigation"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "Slot masa"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Sumber"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Mula"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Laluan IPv4 Statik"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Laluan IPv6 Statik"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Statische Einträge"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Laluan Statik"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Status"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Order Ketat"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Menyerahkan"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Beralih"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Sistem"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Log Sistem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr ""
-
-# same as RX
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Meja"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Sasaran"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Menamatkan"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"Karakter yang diizinkan adalah: <code>A-Z</code>, <code>a-z</code>, "
-"<code>0-9</code> dan <code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr "Fail peranti memori atau partisyen, (contohnya: /dev/sda)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr "Failsistem yang digunakan untuk memformat memori (contohnya: ext3)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"Fail gambar flash telah di-upload. Berikut ini adalah checksum dan saiz fail "
-"yang berdaftar, membandingkannya dengan fail gambar asli untuk memastikan "
-"integriti data.<br /> Klik butang terus di bawah untuk memulakan prosedur "
-"flash."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "Laman berikut telah kembali"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "Peraturan berikut sedang aktif pada sistem ini."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"Sistem ini sekarang mula flash.<br /> JANGAN TUTUP KUASA UNTUK PERANTI!<br /"
-"> Tunggu beberapa minit sehingga anda cuba untuk menyambung kembali. Mungkin "
-"anda perlu mengemas kini alamat komputer anda untuk mencapai peranti lagi, "
-"bergantung pada tetapan anda."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"Format Fail gambar yang diupload tidak disokongkan. Pastikan anda memilih "
-"fail format gambar yang generik untuk platform anda."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Tema"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr "Ini adalah DHCP hanya dalam rangkaian tempatan."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-"Ini adalah crontab sistem di mana tugas-tugas yang dijadualkan boleh "
-"ditakrifkan."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"Senarai ini memberikan gambaran lebih pada proses sistem yang sedang "
-"berjalan dan statusnya."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr ""
-"Laman ini memberikan gambaran lebih dari saat ini sambungan rangkaian yang "
-"aktif."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Bahagian ini belum mengandungi nilai-nilai lagi"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Zon masa"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Lalu lintas"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Pemindahan"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Kelajuan Penghantaran"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Pancar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Daya Pancar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Antena Pemancar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Jenis"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Perubahan yang belum disimpan"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Uploaded Fail"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Masa Aktif"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Guna /etc/ethers"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Diguna"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Username"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "WMM Mod"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"WPA-Enkripsi memerlukan pemohan wpa (untuk mod pelanggan) atau hostapd "
-"(untuk AP dan mod ad-hoc) yang akan dipasangkan."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Adapter Wayarles"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Rangkaian Wayarles"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Gambaran keseluruhan Wayarles"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Keselamatan WLAN"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "auto"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "mencipta jambatan di antara muka tertentu"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "mematikan"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr "fail dimana DHCP-sewa akan disimpan"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "jika target itu ialah rangkaian"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "Fail DNS tempatan"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "Tidak dirinci -atau- buat:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Kembali"
-
-#~ msgid "Design"
-#~ msgstr "Disain"
-
-#~ msgid "Download and install package"
-#~ msgstr "Turun dan memasang pakej"
-
-#~ msgid "Filter"
-#~ msgstr "Penapis"
-
-#~ msgid "Find package"
-#~ msgstr "Cari pakej"
-
-#~ msgid "Install"
-#~ msgstr "Memasang"
-
-#~ msgid "OK"
-#~ msgstr "Baik"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "OPKG-Konfigurasi"
-
-#~ msgid "Package name"
-#~ msgstr "Nama pakej"
-
-#~ msgid "Software"
-#~ msgstr "Perisian"
-
-#~ msgid "Version"
-#~ msgstr "Versi"
-
-#~ msgid "none"
-#~ msgstr "tidak ada"
-
-#~ msgid "No chains in this table"
-#~ msgstr "Tiada rantai dalam jadual ini"
-
-#~ msgid "help"
-#~ msgstr "Membantu"
-
-#~ msgid "Apply"
-#~ msgstr "Melaksanakan"
-
-#~ msgid "Applying changes"
-#~ msgstr "Melaksanakan perubahan"
-
-#~ msgid "Action"
-#~ msgstr "Aksi"
-
-#~ msgid "Buttons"
-#~ msgstr "Butang"
-
-#~ msgid "Handler"
-#~ msgstr "Kawalan"
-
-#, fuzzy
-#~ msgid "Maximum hold time"
-#~ msgstr "Memegang masa maksimum"
-
-#, fuzzy
-#~ msgid "Minimum hold time"
-#~ msgstr "Memegang masa minimum"
-
-#~ msgid "Path to executable which handles the button event"
-#~ msgstr "Path ke eksekusi yang mengendalikan acara butang"
-
-#, fuzzy
-#~ msgid "Specifies the button state to handle"
-#~ msgstr "Menentukan state butang untuk melaku"
-
-#~ msgid "This page allows the configuration of custom button actions"
-#~ msgstr "Laman ini membolehkan konfigurasi butang tindakan peribadi"
-
-#~ msgid "Leasetime"
-#~ msgstr "Masa penyewaan"
-
-#~ msgid "automatic"
-#~ msgstr "automatik"
-
-#~ msgid "AR Support"
-#~ msgstr "AR-Penyokong"
-
-#~ msgid "Background Scan"
-#~ msgstr "Latar Belakang Scan"
-
-#~ msgid "Compression"
-#~ msgstr "Mampatan"
-
-#~ msgid "Disable HW-Beacon timer"
-#~ msgstr "Mematikan pemasa HW-Beacon"
-
-#~ msgid "Do not send probe responses"
-#~ msgstr "Jangan menghantar jawapan penyelidikan"
-
-#~ msgid "Fast Frames"
-#~ msgstr "Frame Cepat"
-
-#~ msgid "Maximum Rate"
-#~ msgstr "Rate Maksimum"
-
-#~ msgid "Minimum Rate"
-#~ msgstr "Rate Minimum"
-
-#~ msgid "Multicast Rate"
-#~ msgstr "Multicast Rate"
-
-#~ msgid "Outdoor Channels"
-#~ msgstr "Saluran Outdoor"
-
-#~ msgid "Regulatory Domain"
-#~ msgstr "Peraturan Domain"
-
-#~ msgid "Separate WDS"
-#~ msgstr "Pisahkan WDS"
-
-#~ msgid "Turbo Mode"
-#~ msgstr "Mod Turbo"
-
-#~ msgid "XR Support"
-#~ msgstr "Sokongan XR"
diff --git a/package/luci/modules/luci-base/po/no/base.po b/package/luci/modules/luci-base/po/no/base.po
deleted file mode 100644 (file)
index d775341..0000000
+++ /dev/null
@@ -1,6607 +0,0 @@
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2013-03-25 23:36+0200\n"
-"Last-Translator: protx <lars.hardy@gmail.com>\n"
-"Language: no\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(%d minutters vindu, %d sekunds intervall)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s Tilgjengelig)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(tom)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(ingen grensesnitt tilknyttet)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Tilleggs Felt --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Vennligst velg --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- egendefinert --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "1 minutts belastning:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "15 minutters belastning:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "5 minutters belastning:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> spørre port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servere skal følge rekkefølgen "
-"i oppslagsfilen ved spørringer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Adresse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Nettmaske"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Adresse eller "
-"Nettverk (CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> Konfigurasjon"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> Navn"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Media Access Control\">MAC</abbr>-Adresse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"Maksimalt antall <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> leier"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"Maksimal\">Maks.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> pakke størrelse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"Maksimal\">Maks.</abbr> samtidige spørringer"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "<abbr title=\"Aksesspunkt Navn\">APN</abbr>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "APR terskel for nytt forsøk"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "<abbr title=\"Asynchronous Transfer Mode\">ATM</abbr> Broer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr ""
-"<abbr title=\"Asynchronous Transfer Mode\">ATM</abbr> Virtuell kanal "
-"identifikator <abbr title=\"Virtual Channel Identifier\">(VCI)</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr ""
-"<abbr title=\"Asynchronous Transfer Mode\">ATM</abbr> Virtuell plasserings "
-"identifikator <abbr title=\"Virtual Path Identifier\">(VPI)</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"ATM broer viser innkapslede ethernet i AAL5 forbindelser som virtuelle Linux-"
-"nettverk grensesnitt, dette kan brukes sammen med DHCP eller PPP for å koble "
-"seg mot en leverandørs nettverk."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "<abbr title=\"Asynchronous Transfer Mode\">ATM</abbr> enhetsnummer"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Tilgangskonsentrator"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Aksesspunkt"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Handlinger"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "Aktive <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Ruter"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "Aktive <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Ruter"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Aktive Tilkoblinger"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Aktive DHCP Leier"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Aktive DHCPv6 Leier"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc (Uavhengig)"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Legg til"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr "Legg det lokale domenesuffikset til navn utgitt fra vertsfiler"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Legg til grensesnitt..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Tilleggs vertsfiler"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Adresse"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Adresse for tilgang til lokal relébro"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Administrasjon"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Avanserte Innstillinger"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Varsle"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "Tillat <abbr title=\"Secure Shell\">SSH</abbr> passord godkjenning"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Tillat alle unntatt oppførte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Tillat kun oppførte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Tillat lokalvert"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr "Tillat eksterne verter å koble til lokale SSH videresendt porter"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Tillat root pålogginger med passord"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "Tillat bruker <em>root</em> å logge inn med passord"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr "Tillat oppstrøms svar i 127.0.0.0/8 nettet, f.eks for RBL tjenester"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Antenne 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Antenne 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Antennekonfigurasjon"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Alle soner"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Tilknytt grensesnitt..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Tilkoblede Klienter"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Godkjenning"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Autoritativ"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Autorisasjon er nødvendig"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Automatisk oppdatering"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Tilgjengelig"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Gjennomsnitt:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Tilbake"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Tilbake til oversikt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Tilbake til konfigurasjon"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Tilbake til oversikt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Tilbake til skanne resultat"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Sikkerhetskopi"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Sikkerhetskopiering/Firmware oppgradering"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Sikkerhetskopier filliste"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Ugyldig adresse oppgitt!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Nedenfor er listen med filer som blir sikkerthetskopiert. Listen består av "
-"konfigurasjonsfiler som er merket av opkg, essensielle enhets filer og andre "
-"filer valgt av bruker."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Bitrate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Overstyr falske NX Domener"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Bro"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Sammenkoble grensesnitt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Bro enhetsnummer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Slå på ved oppstart"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Broadcom 802.11%s Trådløs Kontroller"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Broadcom BCM%04x 802.11 Trådløs Kontroller"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Bufret"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "CPU forbruk (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Lenke"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Endringer"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Endringer utført."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Endrer administrator passordet for tilgang til enheten"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Kanal"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Kontroller"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Kontrollsum"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Velg brannmur sonen du ønsker å knytte til dette grensesnittet. Velg "
-"<em>uspesifisert</em> for å fjerne grensesnittet fra den tilknyttede sonen. "
-"Eller fyll ut <em>Opprett</em> feltet for å definere en ny sone og tilknytte "
-"grensesnittet til det."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"Velg det eller de nettverk du vil legge til dette trådløse grensesnittet, "
-"eller fyll ut <em>Opprett</em> feltet for å definere et nytt nettverk."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Krypteringsmetode"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Klikk \"Opprett arkiv\" for å laste ned et tar arkiv av de gjeldende "
-"konfigurasjons filer."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Klient"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "Klient ID som sendes ved DHCP spørring"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Lukk inaktiver tilkoblinger etter angitt antall sekunder, bruk 0 for en "
-"kontinuerlig tilkobling"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Lukk liste..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Henter data..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Kommando"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Vanlige Innstillinger"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Konfigurasjon"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Bekreftelse"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Koble til"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Tilkoblet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Tilkoblingsgrense (antall)"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Tilkoblinger"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Land"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Landskode"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Gjelder det følgende grensesnitt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Gjelder de følgende grensesnitt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Opprett/Tildel brannmur sone"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Opprett Grensesnitt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Opprett en bro over flere grensesnitt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Kritisk"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Cron logg nivå"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Egendefinerte Grensesnitt"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Tilpasser oppførselen til enhetens <abbr title=\"Light Emitting Diode\">LED</"
-"abbr>s om mulig."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "DHCP Server"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP og DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "DHCP klient"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "DHCP-Alternativer"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "DNS videresendinger"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Feilsøking"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "Standard %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Standard gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Standard tilstand"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Definer et navn for dette nettverket."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Definer flere DHCP valg, f.eks \"<code>192.168.2.1,192.168.2.2</code>\" som "
-"annonserer forskjellige DNS servere til klientene."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Fjern"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Fjern dette nettverket"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Beskrivelse"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Destinasjon"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Enhet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Enhet Konfigurasjon"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Nettverksdiagnostikk"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Katalog"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Deaktiver"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Deaktiver <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> "
-"for dette nettverket."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Deaktivert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "Forkast oppstrøms RFC1918 svar"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Avstand Optimalisering"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Avstand i meter til det medlem av nettverket som er lengst unna."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Antennevariasjon"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq er en kombinert <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server og <abbr title=\"Domain Navn System\">DNS</abbr>-"
-"Fremsender for <abbr title =\"Network Address Translation\">NAT</abbr> "
-"brannmurer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr "Ikke cache negative svar, f.eks for ikke eksisterende domener"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"Ikke videresend forespørsler som ikke kan besvares med offentlige "
-"navneservere"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr "Ikke videresend reverserte oppslag for lokale nettverk"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Domene kreves"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "Domene hviteliste"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Ikke videresend <abbr title=\"Domain Name System\">DNS</abbr>-Forespørsler "
-"uten <abbr title=\"Domain Name System\">DNS</abbr>-Navn"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Last ned sikkerhetskopi"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Dropbear Instans"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear tilbyr <abbr title=\"Secure Shell\">SSH</abbr>-nettverks shell "
-"tilgang og en integrert <abbr title=\"Secure Copy\">SCP</abbr> server"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"Dynamisk <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Dynamisk tunnel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"Dynamisk tildeling av DHCP adresser til klienter. Om deaktivert, kan en kun "
-"bruke klienter med statisk leie."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "EAP-metode"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Endre"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Endre dette grensesnittet"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Endre dette nettverket"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Krisesituasjon"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Aktiver"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Aktiver <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "Aktiver HE,net dynamisk endepunkt oppdatering"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "Aktiver IPv6 på PPP lenke"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Aktiver Jumbo Frames gjennomgang"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "Aktiver NTP klient"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Aktiver TFTP server"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Aktiver VLAN funksjonalitet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Aktiver 'læring' og 'aldring'"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "Aktiver dette monteringspunktet"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "Aktiver denne swapenhet"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Aktiver/Deaktiver"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Aktivert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "Aktiverer Spanning Tree Protocol på denne broen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Innkapsling modus"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Kryptering"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Sletter..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Feil"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Ethernet Tilslutning"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Ethernet Svitsj"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "Utvid vertsliste"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Utgår"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-#, fuzzy
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr "Utløpstid på leide adresser, minimum er 2 minutter (<code>2m</code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Ekstern systemlogg server"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Ekstern systemlogg server port"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Fil"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "Filnavn fra boot image annonsert til klienter"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Filsystem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Filtrer private"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Filtrer ubrukelige"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Finn og koble til nettverk"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Fullfør"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Brannmur"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Brannmur Innstillinger"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Brannmur Status"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Firmware Versjon"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "Fast kilde port for utgående DNS-spørringer"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Firmware Oppradering"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Flash firmware..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Flash nytt firmware image"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Flash operasjoner"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Flasher..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Bruk"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Bruk CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-"Bruk DHCP i dette nettverket, selv om en annen DHCP server er oppdaget."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Bruk TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Bruk TKIP og CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "Videresend DHCP trafikk"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Videresend kringkastingstrafikk"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Videresending modus"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Fragmenterings Terskel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Frame Bursting"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Ledig"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Kun GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Gateway"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Gateway porter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Generelle Innstillinger"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Generelt Oppsett"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Opprett arkiv"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "Generell 802.11%s Trådløs Kontroller"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr "Det oppgitte passordet var ikke korrekt, passord ble ikke endret!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Gå til passord konfigurasjon..."
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Gå til relevant konfigurasjonen side"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "HE.net passord"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Slå av"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Her kan du konfigurere grunnleggende aspekter av enheten som f.eks. dens "
-"vertsnavn eller tidssone."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "Skjul <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Vertsoppføringer"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr "Verts utløpstid"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr ""
-"Verts-<abbr title=\"Internet Protocol Address\">IP</abbr> eller Nettverk"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Vertsnavn"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "Vertsnavn som sendes ved DHCP forespørsel"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Vertsnavn"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "IP adresse"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "IPv4 Brannmur"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "IPv4 adresse"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "IPv4 kringkasting"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "IPv4 gateway"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "IPv4 nettmaske"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "IPv4 prefikslengde"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "IPv4-Adresse"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "IPv6 Brannmur"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "IPv6 adresse"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "IPv6 gateway"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "IPv6 prefiks"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "IPv6 prefikslengde"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "IPv6-Adresse"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6-i-IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6-over-IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6-over-IPv4 (6til4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identitet"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr "Hvis oppgitt vil denne enhet monteres ut fra dens UUID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr "Hvis oppgitt vil denne enheten bli montert utfra dens Volumnavn"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "Dersom ikke avmerket blir ingen standard rute konfigurert"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "Dersom ikke avmerket blir de annonserte DNS server adresser ignorert"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Om ruterens fysiske minne er utilstrekkelig, ubrukte data kan midlertidig "
-"gjøres om til en swap-enhet som gir deg mere tilgjengelig <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Vær oppmerksom på at bruk av swap er "
-"mye langsommere en <abbr title=\"Random Access Memory\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Ignorer grensesnitt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Ignorer oppslagsfil"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Firmware"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "i"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "Tidsavbrudd etter innaktivitet"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Innkommende:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Informasjon"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Oppstartskript"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Oppstartsskript"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Installer pakken %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Installer protokoll utvidelser..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Grensesnitt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Grensesnitt Konfigurasjon"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Grensesnitt Oversikt"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "Grensesnittet kobler til igjen..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "Grensesnittet er ikke tilgjengelig eller er ikke tilknyttet."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Grensesnitt"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Intern server feil"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Ugyldig"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr "Ugyldig VLAN ID gitt! Bare IDer mellom %d og %d er tillatt."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "Ugyldig VLAN ID gitt! Bare unike ID'er er tillatt"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Ugyldig brukernavn og/eller passord! Vennligst prøv igjen."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Det virker som du prøver å flashe med en firmware som ikke passer inn i "
-"flash-minnet, vennligst kontroller firmware filen!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "JavaScript kreves!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Koble til nettverket"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "Koble til nettverk: Trådløs Skanning"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Behold innstillinger"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Kjerne Logg"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Kjerne Versjon"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Nøkkel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Nøkkel #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Drep"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "L2TP Server"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "LCP ekko feil terskel"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "LCP ekko intervall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Volumnavn"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Språk"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Språk og Utseende"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "<abbr title=\"Leasefile\">Leie-fil</abbr>"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Gjenværende leietid"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "La stå tomt for automatisk oppdagelse"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "La stå tomt for å bruke gjeldene WAN adresse"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Forklaring:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Grense"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Forbindelse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"Liste med <abbr title=\"Domain Name System\">DNS</abbr> servere som "
-"forespørsler blir videresendt til"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "Liste over domener hvor en tillater RFC1918 svar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr "Liste over verter som returneren falske NX domene resultater"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-"Lytt kun på det angitte grensesnitt, om ingen er angitt lyttes det på alle"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "Lytte-port for innkommende DNS-spørring"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Belastning"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Belastning Gjennomsnitt"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Laster"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Lokal IPv4 adresse"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Lokal IPv6 adresse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Lokal Oppstart"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Lokal tid"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Lokalt domene"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-#, fuzzy
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-"Lokalt domene spesifikasjon. Navn som passer dette domenet blir aldri "
-"videresendt, de blir kun løst av DHCP eller vertsfiler"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr "Lokalt domenesuffiks lagt til DHCP navn og vertsfil oppføringer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Lokal server"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-"Lokaliser vertsnavn avhengig av subnett hvis flere IP-adresser er "
-"tilgjengelig"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Lokalisere søk"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Logg nivå"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Logg spørringer"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "Logging"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Logg inn"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Logg ut"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr "Laveste leide adresse, forskjøvet fra nettverks adressen."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "MAC-Adresse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "MAC-Addresse Filter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "MAC-Filter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "MAC-Liste"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "Maksimalt antall aktive DHCP leieavtaler"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "Maksimalt antall samtidige DNS spørringer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "Maksimal tillatt størrelse på EDNS.0 UDP-pakker"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "Maksimalt antall sekunder å vente på at modemet skal bli klart"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "Maksimalt antall utleide adresser."
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Minne"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Minne forbruk (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Metrisk"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "Mangler protokoll utvidelse for proto %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Modus"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Modem"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "Modem initiering tidsavbrudd"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Monitor"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "Monterings Enhet"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Monterings Punkt"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Monterings Punkter"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "Monterings Punkter - Monterings Enhet"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "Monterings Punkter - Swap Enhet"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Monterings punkter definerer hvor lagrings enheter blir tilsluttet "
-"filsystemet"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Monterings alternativer"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Monterings punkt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Monterte Filsystemer"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Flytt ned"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Flytt opp"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "NTP server kandidater"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Navn"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Navnet til det nye grensesnittet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Navnet til det nye nettverket"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navigasjon"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Nettmaske"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Nettverk"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Nettverks Verktøy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "Nettverks boot image"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Nettverk uten grensesnitt."
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Neste »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Ingen DHCP server er konfigurert for dette grensesnittet"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Ingen filer funnet"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Ingen informasjon tilgjengelig"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "Ingen negative cache"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Ingen nettverk er konfigurert på denne enheten"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "Ingen nettverksnavn spesifisert"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Ruteren er ikke passordbeskyttet!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Ingen regler i denne tabellen"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Ingen sone tilknyttet"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Støy"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Støy:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Ingen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Normal"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "Ikke funnet"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "Ikke tilknyttet"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "Ikke tilkoblet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Merk"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "Nslookup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "Forsinkelse ved tilstand Av"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"På denne siden kan du konfigurere nettverks grensesnittet. Du kan "
-"sammenkoble flere grensesnitt ved å hake av \"Sammekoble grensesnitt\" "
-"feltet og skrive inn navn på grensesnittene atskilt med mellomrom. Du kan "
-"også bruke <abbr title=\"Virtual Local Area Network\">VLAN</abbr> betegnelse "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for eksempel\">f.eks</abbr>: "
-"<samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "Forsinkelse ved tilstand -På-"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "Enten Vertsnavn eller Mac-adresse må oppgis!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Ett eller flere felt inneholder ugyldige verdier!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Ett eller flere obligatoriske felter har ingen verdi!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Åpne liste..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Innstilling endret"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Innstilling fjernet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Alternativer"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Andre:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Ut"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "Ugående:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "Overstyr MAC adresse"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "Overstyr MTU"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "Overstyr gatewayen mottatt av DHCP respons"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-"Overstyr nettmaske sendt til klienter. Normalt er nettmasken beregnet ut fra "
-"subnettet som blir tildelt."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr "Overstyr tabellen som brukes for interne ruter"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Oversikt"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Eier"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "PAP/CHAP passord"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "PAP/CHAP brukernavn"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "PPPoA Innkapsling"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "Pakken libiwinfo er nødvendig!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Pakker"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "En del av sone %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Passord"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Passord godkjenning"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Passord for privatnøkkel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Sti til CA-sertifikat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "Sti til klient-sertifikat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Sti til privatnøkkel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Maksimalt:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Omstart nå"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Foreta nullstilling"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "Phy Hastighet:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Fysiske Innstillinger"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ping"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Pakker."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Skriv inn ditt brukernavn og passord."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Policy"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Port"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Port status:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-"Annta at peer er uten forbindelse om angitt LCP ekko feiler, bruk verdi 0 "
-"for å overse feil"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Hindrer klient-til-klient kommunikasjon"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Fortsett"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Prosesser"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protokoll"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Protokoll til det nye grensesnittet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "Protokoll støtte er ikke installert"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "Funger som NTP Server"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "Lag nytt nettverk"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Pseudo Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Kvalitet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "RTS/CTS Terskel"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "RX Rate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Radius-Accounting-Port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Radius-Accounting-Secret"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Radius-Accounting-Server"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Radius-Authentication-Port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Radius-Authentication-Secret"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Radius-Authentication-Server"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Benytt <code>/etc/ethers</code> for å konfigurere <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"Fjerne dette trådløse nettverket? Slettingen kan ikke omgjøres!\n"
-"Du kan miste kontakten med ruteren om du er tilkoblet via dette nettverket."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "Vil du nullstille alle endringer?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "Vil du endre protokoll?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Tilkoblinger Sanntid"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Grafer i sanntid"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Belastning Sanntid"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Trafikk Sanntid"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Trådløst i sanntid"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "Binde beskyttelse"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Omstart"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Starter på nytt..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Omstarter operativsystemet på enheten"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Motta"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Mottak antenne"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Koble til igjen"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Referanser"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "Relay"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "Relay bro"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "Relay mellom nettverk"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "Relay bro"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "Ekstern IPv4 adresse"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Avinstaller"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Skann på nytt"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Erstatt oppføring"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Erstatt trådløs konfigurasjon"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "Er nødvendig for noen nettleverandører, f.eks Charter med DOCSIS 3"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Nullstill"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Nullstill Tellere"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Nullstill til standard innstilling"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Oppslag og Vertsfiler"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "<abbr title=\"Resolvefile\">Oppslagsfil</abbr>"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Omstart"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Omstart Brannmur"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Gjenoppretting"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Gjenopprett sikkerhetskopi"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Vis/Skjul passord"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Tilbakestill"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Rot"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "Rot katalog for filer gitt fra TFTP"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Ruter Passord"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Ruter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Ruter, angir hvilket nettverksgrensesnitt og hvilken gateway som brukes for "
-"å nå et gitt nettverk eller vert."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "Kjør filsystem sjekk før montering av enheten"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Kjør filsystem sjekk"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "SSH Tilgang"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "SSH-Nøkler"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Lagre"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Lagre & Aktiver"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Skann"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Planlagte Oppgaver"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Seksjon lagt til"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Seksjon fjernet"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "Se \"mount\" manpage for detaljer"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-"Send LCP ekko forespørsler etter angitt intervall i sekunder, dette er kun "
-"gjeldene dersom feilterskelen er nådd"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Separerte Klienter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Server Innstillinger"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Tjeneste navn"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Tjeneste type"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Tjenester"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-#, fuzzy
-msgid "Set up Time Synchronization"
-msgstr "Oppsett tidssynkronisering"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "Oppsett DHCP server"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "Vis gjeldende liste med sikkerhetskopifiler"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Slå av dette grensesnittet"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Signal"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Signal:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Størrelse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Gå videre"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Gå til innhold"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Gå til navigasjon"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "Slot tid"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Noen felt er ugyldige, kan ikke lagre verdier!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "Beklager, objektet du spurte om ble ikke funnet."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "Beklager, det oppstod en uventet feil på serveren."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"Beklager, men finner ikke støtte for 'sysupgrade', ny firmware må derfor "
-"flashes manuelt. Viser til wiki for installering av firmare på forskjellige "
-"enheter."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Kilde"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "Hvor lagrings enheten blir tilsluttet filsystemet (f.eks. /mnt/sda1)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "Angir den lyttende porten for denne <em>Dropbear</em> instansen"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-"Angir maksimalt antall feilede ARP forespørsler før verter ansees frakoblet"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr "Angir maksimalt antall sekunder før verter ansees som frakoblet"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Angi krypteringsnøkkelen her."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Start"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Start prioritet"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Oppstart"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Statiske IPv4 Ruter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Statiske IPv6 Ruter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Statiske Leier"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Statiske Ruter"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Statisk adresse"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"Statisk leieavtaler brukes til å tildele faste IP adresser og symbolske "
-"vertsnavn til DHCP klienter. Dette er nødvendig om grensesnittet ikke er "
-"dynamisk konfigurert og kun klienter med dhcp leieavtale får IP."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Status"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Stop"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Streng overholdelse"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Send"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Swap Enhet"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Svitsj"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "Svitsj %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "Svitsj %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "Svitsj protokoll"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Synkroniser med nettleser"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Synkroniser..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "System"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "System Logg"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "System Egenskaper"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "System logg buffer størrelse"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "TFTP Innstillinger"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "TFTP server roten"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "TX rate"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Tabell"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Mål"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Avslutte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-#, fuzzy
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"<em>Enhet Konfigurasjon</em> seksjonen omhandler innstillingene av den "
-"trådløse enheten som kanaler, sende stryke eller antenne valg. Disse "
-"innstillingene er delt mellom alle definerte trådløse nettverk opprettet "
-"utfra denne enhet. (om den trådløse enheten støtter mulit-SSID). Nettverks "
-"innstillinger som kryptering eller kanaler er gruppert i <em>Grensesnitt "
-"Konfigurasjon</em>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"Pakken <em>libiwinfo-lua</em> er ikke installert. Du må installere denne "
-"pakken for å kunne konfigurerer trådløse enheter!"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-"IPv6 prefikset tilordnet mot leverandør, ender som regel med <code>::</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"Gyldige tegn er: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> og "
-"<code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"Filenheten til partisjonen eller minnet (<abbr title=\"for eksempel\">f.eks."
-"</abbr> <code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"Filsystemet som ble brukt til å formatere partisjonen eller minnet. (<abbr "
-"title=\"for eksempel\">f.eks.</abbr> <samp><abbr title=\"Third Extended "
-"Filesystem\">ext3</abbr></samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"Firmwaren ble lastet opp. Nedenfor er kontrollsum og filstørrelse oppført, "
-"sammenlign dem med den opprinnelige filen for å sikre dataintegriteten.<br /"
-"> Klikk \"Fortsett\" nedenfor for å starte flash prosedyren."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "Følgende endringer er forkastet"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "Følgende regler er aktiver på systemet."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "Det angitte nettverksnavnet er ikke unikt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-#, fuzzy
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-"Maskinvaren er ikke multi-SSID kapabel og den ekisterende konfigurasjonen "
-"vil bli erstattet om du fortsetter."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr "Lengden IPv4 prefikset i bits, resten brukt i IPv6-adresser."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "Lengden på IPv6 prefikset i bits"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"Nettverks portene på ruteren kan kombineres til flere <abbr title=\"Virtual "
-"Local Area Network\">VLAN</abbr>s der datamaskiner kan kommunisere direkte "
-"med hverandre. <abbr title=\"Virtual Local Area Network\">VLAN</abbr>s "
-"brukes ofte for å skille ulike nettverk segmenter. Det er vanlig og ha en "
-"Uplink port for tilkobling til større nettverk som internett og andre porter "
-"til lokalt nettverk."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "Den valgte protokoll må ha en enhet tilknyttet"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-"Systemet sletter konfigurasjonspartisjonen nå, enheten vil bli startet på "
-"nytt når dette er utført."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"Systemet flashes nå.<br /> IKKE SLÅ AV ENHETEN!<br /> Vent noen minutter før "
-"du prøver å koble til igjen. Det kan være nødvendig å fornye ip-adressen til "
-"datamaskinen din for å nå enheten på nytt. (avhengig av innstillingene dine)"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"Den opplastede programvaren er av et format som ikke støttes. Sørg for at du "
-"velger det generelle firmware-bildet for din plattform."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Tema"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Det er ingen aktive leieavtaler."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "Det finnes ingen endriger å reversere!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "Det finnes ingen endringer!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-"Det er ingen enhet som er tilordnet ennå, vennligst legg til en "
-"nettverksenhet i \"Fysiske Innstillinger\""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"Det er ikke satt noe passord på denne ruter. Vennligst konfigurer et "
-"passord, dette beskytter webgrensesnittet og aktiverer SSH."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr "Dette IPv4 adressen til relayet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-"Dette er en liste med 'shell glob patterns' for å matche filer og kataloger "
-"som skal inkluderes under sysupgrade. Endrede filer i /etc/config/ og "
-"enkelte andre konfigurasjoner blir automatisk bevart."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"Dette er innholdet i /etc/rc.local. Her kan du legge til egne kommandoer som "
-"blir startet ved slutten av boot sekvensen. (før 'exit 0')"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-"Dette er den lokale endepunkt adressen som ble tildelt av tunnel 'broker', "
-"adressen ender vanligvis med <code>...:2/64</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"Dette er den eneste <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr> server i det lokale nettverket"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr "Dette er systemets crontab, hvor planlagte oppgaver kan defineres."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-"Dette er vanligvis adressen til nærmeste PoP som drives av tunell 'broker'"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr "Denne listen gir en oversikt over kjørende prosesser og deres status."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr ""
-"Denne siden gir en oversikt over gjeldende aktive nettverkstilkoblinger."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Denne seksjonen inneholder ennå ingen verdier"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Tidssynkronisering"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "Tiden Synkroniseringen er ikke konfigurert ennå."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Tidssone"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"For å gjenopprette konfigurasjonsfiler, kan du her laste opp et backup arkiv "
-"som ble opprettet tidligere. For å nullstille firmwaren til opprinnelig "
-"tilstand, klikker du på \"Utfør nullstilling\" (kun mulig på squashfs "
-"firmwarer)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Totalt Tilgjengelig"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Traceroute"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Trafikk"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Overføring"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Overførings rate"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Sende"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Sende styrke"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Sende Antenne"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "Utløser"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "Utløsende Tilstand"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "Tunnel ID"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Tunnel grensesnitt"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Tx-Styrke"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Type"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "Kun UMTS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "USB Enhet"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr "Kan ikke sende"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Ukjent"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "Uhåndtert"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Ulagrede Endringer"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Protokoll type er ikke støttet."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"Last her opp en sysupgrade-kompatibel firmware som skal erstatte den "
-"kjørende firmware. Merk av \"Behold innstillinger\" for å beholde gjeldene "
-"konfigurasjon. (en kompatibel firmware er nødvendig)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Last opp arkiv..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Opplastet Fil"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Oppetid"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Bruk <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "Bruk DHCP gateway"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "Bruk DNS servere annonsert av peer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "Bruk ISO/IEC 3166 alpha2 landskoder."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr "Bruk MTU på tunnel grensesnitt"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "Bruk TTL på tunnel grensesnitt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "Bruk kringkasting flagg"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Bruk egendefinerte DNS servere"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Bruk standard gateway"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "Bruk gateway metrikk"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Bruk rutingtabellen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"Bruk <em>Legg til</em> knappen får å legge til en leieavtale. <em>MAC-"
-"Adresse</em> identifiserer verten, <em>IPv4-Adresse</em> angir hvilken "
-"statisk IP adresse som skal brukes og <em>Vertsnavn</em> blir symbolsk "
-"tilknyttet den anmodende verten."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Brukt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "Brukte Nøkler"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Brukernavn"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLANs på %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLANs på %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "VPN server"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "Leverandør klasse som sendes ved DHCP spørring"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Bekreft"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "WEP åpent system"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "WEP delt nøkkel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "WEP passord"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "WMM Modus"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "WPA passord"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"WPA-Kryptering krever at wpa_supplicant (for klient-modus) eller hostapd "
-"(for AP og ad-hoc-modus) er installert."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "Venter på at endringer utføres..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "Venter på at kommando fullføres..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Advarsel"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Trådløs"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Trådløs Tilslutning"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Trådløst Nettverk"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Trådløs Oversikt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Trådløs Sikkerhet"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "Trådløs er deaktiver"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "Trådløs er ikke tilknyttet"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "Trådløst starter på nytt..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "Trådløst nettverk er deaktivert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "Trådløst nettverk er aktivert"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Skriv mottatte DNS forespørsler til syslog"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Her kan du aktivere eller deaktivere installerte oppstartsskript. Enheten må "
-"omstartes før endringene blir tatt i bruk.<br /><strong>Advarsel: Om du "
-"deaktiverer nødvendige init skript som f.eks. \"nettverk\", kan enheten bli "
-"utilgjengelig! </strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"Du må aktivere JavaScript i nettleseren din ellers vil ikke LuCI fungere "
-"skikkelig."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "enhver"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "auto"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "brokoblet"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "opprett:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "Oppretter en bro mellom angitte grensesnitt"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "Deaktiver"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "utgått"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"filen der gitt <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leier vil bli lagret"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "videresend"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "full-dupleks"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "halv-dupleks"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "skjult"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "Dersom målet er et nettverk"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "inndata"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "lokal <abbr title=\"Domain Navn System\">DNS</abbr>-fil"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "nei"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "ingen forbindelse"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "av"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "på"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "åpen"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "rutet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "tagget"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "ukjent"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "ubegrenset"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "uspesifisert"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "uspesifisert --eller-- opprett:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "utagget"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "ja"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Tilbake"
-
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr ""
-#~ "Her kan du lime inn felles SSH-nøkler(en per linje), for SSH godkjenning."
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "Passordet er endret!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "Ukjent feil, passordet ble ikke endret!"
-
-#~ msgid "Design"
-#~ msgstr "Design"
-
-#~ msgid "Available packages"
-#~ msgstr "Tilgjengelige pakker"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "Viser bare pakker som inneholder"
-
-#~ msgid "Download and install package"
-#~ msgstr "Last ned og installer pakken"
-
-#~ msgid "Filter"
-#~ msgstr "Filter"
-
-#~ msgid "Find package"
-#~ msgstr "Finn pakke"
-
-#~ msgid "Free space"
-#~ msgstr "Ledig plass"
-
-#~ msgid "Install"
-#~ msgstr "Installer"
-
-#~ msgid "Installed packages"
-#~ msgstr "Installerte pakker"
-
-#~ msgid "No package lists available"
-#~ msgstr "Ingen pakkelister tilgjengelig"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "<abbr title=\"Open PacKaGe Management\">OPKG</abbr>-Konfigurasjon"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "Pakkelistene er eldre enn 24 timer"
-
-#~ msgid "Package name"
-#~ msgstr "Pakkenavn"
-
-#~ msgid "Software"
-#~ msgstr "Programvare"
-
-#~ msgid "Update lists"
-#~ msgstr "Oppdater lister"
-
-#~ msgid "Version"
-#~ msgstr "Versjon"
-
-#~ msgid "none"
-#~ msgstr "ingen"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "Deaktiver DNS oppsett"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 og IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "Kun IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "Kun IPv6"
-
-#~ msgid "Lease validity time"
-#~ msgstr "Gyldig leietid"
-
-#~ msgid "Multicast address"
-#~ msgstr "Multicast adresse"
-
-#~ msgid "Protocol family"
-#~ msgstr "Protokoll familie"
-
-#~ msgid "No chains in this table"
-#~ msgstr "Ingen lenker i denne tabellen"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "Konfigurasjonsfiler vil bli bevart."
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Merk: Konfigurasjonsfiler vil bli slettet"
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Parvis: %s / Gruppe: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "Aktiver dette nettverket"
-
-#~ msgid "Hermes 802.11b Wireless Controller"
-#~ msgstr "Hermes 802.11b Trådløs Kontroller"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "Grensesnittet slår seg av..."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "Grensesnittet er koblet til igjen"
-
-#~ msgid "Interface shut down"
-#~ msgstr "Grensesnittet er slått av"
-
-#~ msgid "Prism2/2.5/3 802.11b Wireless Controller"
-#~ msgstr "Prism2/2.5/3 802.11b Trådløs Kontroller"
-
-#~ msgid "RaLink 802.11%s Wireless Controller"
-#~ msgstr "RaLink 802.11%s Trådløs Kontroller"
-
-#~ msgid ""
-#~ "Really shutdown interface \"%s\"? You might lose access to this device if "
-#~ "you are connected via this interface."
-#~ msgstr ""
-#~ "Slå av dette grensesnittet \"%s\" ?\n"
-#~ "Du kan miste kontakten med ruteren om du er tilkoblet via dette "
-#~ "grensesnittet."
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "Kobler til igjen"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "Slå av dette nettverket"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "Trådløst startet på nytt"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "Trådløst er slått av"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "DHCP Leier"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "DHCPv6 Leier"
-
-#~ msgid ""
-#~ "Really delete this interface? The deletion cannot be undone! You might "
-#~ "lose access to this device if you are connected via this interface."
-#~ msgstr ""
-#~ "Fjerne dette grensesnittet? Slettingen kan ikke omgjøres!\n"
-#~ "Du kan miste kontakten med ruteren om du er tilkoblet via dette "
-#~ "grensesnittet."
-
-#, fuzzy
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "Slå av dette nettverket ?\n"
-#~ "Du kan miste kontakten med ruteren om du er tilkoblet via dette "
-#~ "grensesnittet."
-
-#~ msgid "Sort"
-#~ msgstr "Sortering"
-
-#~ msgid "help"
-#~ msgstr "Hjelp"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "IPv4 WAN Status"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "IPv6 WAN Status"
-
-#~ msgid "Apply"
-#~ msgstr "Bruk"
-
-#~ msgid "Applying changes"
-#~ msgstr "Utfører endringer"
-
-#~ msgid "Configuration applied."
-#~ msgstr "Konfigurasjons endring utført."
-
-#~ msgid "Save &#38; Apply"
-#~ msgstr "Lagre &#38; Aktiver"
-
-#~ msgid "The following changes have been committed"
-#~ msgstr "Følgende endringer er foretatt"
-
-#~ msgid "There are no pending changes to apply!"
-#~ msgstr "Det finnes ingen endringer som kan utføres!"
-
-#~ msgid "Action"
-#~ msgstr "Handling"
-
-#~ msgid "Buttons"
-#~ msgstr "Knapper"
-
-#~ msgid "Handler"
-#~ msgstr "Behandler"
-
-#~ msgid "Maximum hold time"
-#~ msgstr "Maksimal holde tid"
-
-#~ msgid "Minimum hold time"
-#~ msgstr "Minimum holde tid"
-
-#~ msgid "Path to executable which handles the button event"
-#~ msgstr "Sti til program som håndterer handling ved bruk av knapp"
-
-#~ msgid "Specifies the button state to handle"
-#~ msgstr "Spesifiserer knappens handlemønster"
-
-#~ msgid "This page allows the configuration of custom button actions"
-#~ msgstr ""
-#~ "Denne siden gir mulighet for å definerte egne knappers handlingsmønster"
-
-#~ msgid "Leasetime"
-#~ msgstr "<abbr title=\"Leasetime\">Leietid</abbr>"
-
-#~ msgid "AR Support"
-#~ msgstr "AR Støtte"
-
-#~ msgid "Atheros 802.11%s Wireless Controller"
-#~ msgstr "Atheros 802.11%s Trådløs Kontroller"
-
-#~ msgid "Background Scan"
-#~ msgstr "Bakgrunns Skanning"
-
-#~ msgid "Compression"
-#~ msgstr "Komprimering"
-
-#~ msgid "Disable HW-Beacon timer"
-#~ msgstr "Deaktiver HW-Beacon timer"
-
-#~ msgid "Do not send probe responses"
-#~ msgstr "Ikke send probe svar"
-
-#~ msgid "Fast Frames"
-#~ msgstr "Fast Frames"
-
-#~ msgid "Maximum Rate"
-#~ msgstr "Maksimal hastighet"
-
-#~ msgid "Minimum Rate"
-#~ msgstr "Minimum hastighet"
-
-#~ msgid "Multicast Rate"
-#~ msgstr "Multicast hastighet"
-
-#~ msgid "Outdoor Channels"
-#~ msgstr "Utendørs Kanaler"
-
-#~ msgid "Regulatory Domain"
-#~ msgstr "Regulerende Domene"
-
-#~ msgid "Separate WDS"
-#~ msgstr "Separert WDS"
-
-#~ msgid "Static WDS"
-#~ msgstr "Statisk WDS"
-
-#~ msgid "Turbo Mode"
-#~ msgstr "Turbo Modus"
-
-#~ msgid "XR Support"
-#~ msgstr "XR Støtte"
-
-#~ msgid "An additional network will be created if you leave this unchecked."
-#~ msgstr "Et nytt nettverk vil bli opprettet hvis du tar bort haken."
-
-#~ msgid "Join Network: Settings"
-#~ msgstr "Koble til nettverk: Innstilling"
-
-#~ msgid "CPU"
-#~ msgstr "CPU"
-
-#~ msgid "Port %d"
-#~ msgstr "Port %d"
-
-#~ msgid "Port %d is untagged in multiple VLANs!"
-#~ msgstr "Port %d er utagget i flere VLANs!"
-
-#~ msgid "VLAN Interface"
-#~ msgstr "VLAN grensesnitt"
diff --git a/package/luci/modules/luci-base/po/pl/base.po b/package/luci/modules/luci-base/po/pl/base.po
deleted file mode 100644 (file)
index 7bc1e1e..0000000
+++ /dev/null
@@ -1,6634 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: LuCI\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-20 09:40+0200\n"
-"PO-Revision-Date: 2019-01-05 19:30+0200\n"
-"Last-Translator: Rixerx <krystian.kozak20@gmail.com>\n"
-"Language-Team: Polish\n"
-"Language: pl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr "%d nieprawidłowe pole(pola)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr "%s jest nieotagowany w wielu grupach VLAN!"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(okno %d minut, interwał %d sekund)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(dostępne %s)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(pusty)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(brak podłączonych interfejsów)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Dodatkowe pole --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Proszę wybrać --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- własne --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr "-- dopasuj według urządzenia --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr "-- dopasuj po etykiecie --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr "-- dopasuj po uuid --"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Obciążenie 1 min.:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Obciążenie 15 min.:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr "464XLAT (CLAT)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Obciążenie 5 min.:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr "Identyfikator 6-oktetowy jako ciąg szesnastkowy - bez dwukropków"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr "802.11w maksymalny czas oczekiwania"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr "802.11w interwał ponawiania prób"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "Port wywołania <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "Port serwera <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"Nazwa <abbr title=\"Domain Name System\">DNS</abbr> będzie rozwijana przez "
-"kolejne serwery w porządku podanym w resolvfile"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "Adres <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "Brama <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "Maska sieci <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"Adres sieci (CIDR) <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "Brama <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr "Sufiks <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>(hex)"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "Konfiguracja diod <abbr title=\"Light Emitting Diode\">LED</abbr>"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "Nazwa diody <abbr title=\"Light Emitting Diode\">LED</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "Adres <abbr title=\"Media Access Control\">MAC</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"<abbr title=\"Maksymalna ilość\">Maks.</abbr> dzierżaw <abbr title=\"Dynamic "
-"Host Configuration Protocol\">DHCP</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"Maksymalny\">Maks.</abbr> rozmiar pakietu <abbr title="
-"\"Extension Mechanisms for Domain Name System\">EDNS0</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"Maksymalna ilość\">Maks.</abbr> zapytań równoczesnych"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-"<br/>Uwaga: musisz ręcznie zrestartować usługę cron, jeśli plik crontab był "
-"pusty przed edycją."
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr "Wymagane jest ponowne zalogowanie ponieważ sesja wygasła."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr "ADSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "Próg powtórzeń ARP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "Mosty ATM"
-
-# Nie wiem czy to powinno się tłumaczyć wg. mnie lepiej zostawić po angielsku
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "Identyfikator kanału wirtualnego ATM (VCI)"
-
-# j.w.
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "Identyfikator ścieżki wirtualnej ATM (VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"Mosty ATM eksponują enkapsulowaną sieć Ethernet w połączeniach AAL5 jako "
-"wirtualne interfejsy sieciowe systemu Linux, które mogą być używane w "
-"połączeniu z protokołem DHCP lub PPP w celu polączenia się z siecią dostawcy."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "Numer urządzenia ATM"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr "ID dostawcy systemu ATU-C"
-
-# co to takiego?
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Koncentrator dostępowy (ATM)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Punkt dostępowy"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Akcje"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-"Aktywne trasy routingu <abbr title=\"Internet Protocol Version 4\">IPv4</"
-"abbr>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-"Aktywne trasy routingu <abbr title=\"Internet Protocol Version 6\">IPv6</"
-"abbr>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Aktywne połączenia"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Aktywne dzierżawy DHCP"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Aktywne dzierżawy DHCPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Dodaj"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr "Dodaj adres IPv4…"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr "Dodaj adres IPv6…"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr "Dodaj klucz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr "Dodaj lokalny sufiks domeny do nazw urządzeń z pliku hosts"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Dodaj nowy interfejs..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Dodatkowe pliki Hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr "Dodatkowe pliki serwera"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Adres"
-
-# Na upartego można by zrobić Adres dostępowy mostu przekaźnikowego - ale kto to zrozumie?
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Adres dostępowy do \"relay bridge\""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Zarządzanie"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Ustawienia zaawansowane"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr "Agregacja siły transmisji (ACTATP)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Alarm"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr "Alias Interfejsu"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr "Alias \"%s\""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr "Wszystkie serwery"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-"Przydziel sekwencyjnie adresy IP, zaczynając od najmniejszego dostępnego"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr "Przydzielaj adresy IP po kolei"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "Pozwól na logowanie <abbr title=\"Secure Shell\">SSH</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr "Pozwól aby tryb AP rozłączał stacje STA w oparciu o niski stan ACK"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Pozwól wszystkim oprócz wymienionych"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr "Zezwalaj na starsze wersje 802.11b"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Pozwól tylko wymienionym"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Pozwól tylko sobie (localhost)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"Zezwalaj zdalnym hostom na łączenie się z lokalnie przekazywanymi portami SSH"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Zezwól na logowanie roota przy pomocy hasła"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "Pozwól użytkownikowi <em>root</em> na logowanie się przy pomocy hasła"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-"Pozwól na ruch wychodzący (odpowiedzi) z podsieci 127.0.0.0/8, np. usługi RBL"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr "Dozwolone adresy IP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr "Zawsze rozgłaszaj domyślny router"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr "Zawsze wyłączony (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr "Zawsze włączony (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-"Zawsze używaj kanału 40 MHz, nawet jeśli kanał dodatkowy nachodzi na inny. "
-"Używanie tej opcji nie jest zgodne z IEEE 802.11n-2009!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-"Rozgłaszaj jako domyślny router nawet jeśli publiczny prefiks nie jest "
-"dostępny."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr "Rozgłaszaj domeny DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr "Rozgłaszaj serwery DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Antena 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Antena 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Ustawienia anteny"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Dowolna strefa"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr "Zatwierdź mimo to"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr "Żądanie zatwierdzenia nie powiodło się ze statusem <code>%h</code>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr "Architektura"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-"Przypisz część danej długości każdego publicznego prefiksu IPv6 do tego "
-"interfejsu"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Przypisz interfejsy..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-"Przypisz cześć prefiksu za pomocą szesnastkowego ID subprefiksu dla tego "
-"interfejsu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Połączone stacje"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr "Połączeni"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Uwierzytelnianie"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Autorytatywny"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Wymagana autoryzacja"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Automatyczne odświeżanie"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Dostępne"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Średnia:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Wróć"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Wróć do przeglądu"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Wróć do konfiguracji"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Wróć do przeglądu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Wróć do wyników skanowania"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Kopia zapasowa"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Kopia zapasowa / aktualizacja firmware"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Kopia zapasowa listy plików"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Wprowadzono zły adres"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr "Interwał Beaconu"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Poniżej widoczna jest lista plików przeznaczonych do kopii zapasowej. "
-"Zawiera ona zmienione pliki konfiguracyjne oznaczone przez opkg, podstawowe "
-"pliki systemowe, oraz pliki oznaczone do kopiowania przez użytkownika."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Szybkość transmisji"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Podrób statystyki NXDOMAIN"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Most"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Interfejs mostu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Numer Mostu (urządzenia)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Podnieś przy stracie"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Bezprzewodowy kontroler Broadcom 802.11%s"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Bezprzewodowy kontroler Broadcom BCM%04x 802.11"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Buforowana"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Użycie CPU (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr "Połączenie nieudane"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Anuluj"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr "Uwaga: Pliki konfiguracyjne zostaną usunięte"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr "Uwaga: Zostanie wymuszone uaktualnienie systemu"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Łańcuch"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr "Zmień hasło logowania"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Zmiany"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Zmiany zostały zastosowane."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr "Zmiany zostały cofnięte."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Zmienia hasło administratora"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr "Zmieniam hasło…"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Kanał"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Sprawdź"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Suma kontrolna"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr "Wybierz mtdblock"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Wybierz strefę firewalla którą chcesz przypisać do tego interfejsu. Wybierz "
-"<em>nieokreślone</em> aby usunąć interfejs z przypisanej strefy lub wybierz "
-"pole <em>utwórz</em> aby zdefiniować nową strefę i przypisać ją do "
-"interfejsu."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"Wybierz sieć/sieci które chcesz przyłączyć do tego interfejsu "
-"bezprzewodowego lub wypełnij pole <em>utwórz</em> aby utworzyć nową sieć."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Szyfr"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Kliknij \"Twórz archiwum\" aby pobrać archiwum tar zawierające bieżące pliki "
-"konfiguracyjne."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-"Kliknij \"Zapisz mtdblock\", aby pobrać określony plik mtdblock. (UWAGA: TA "
-"FUNKCJA JEST DLA PROFESJONALISTÓW! )"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Klient"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "Nazwa (ID) klienta do wysłania podczas negocjacji DHCP"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr "Zamknij"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Zamknij nieaktywne połączenia po określonym czasie podanym w sekundach, "
-"wpisz 0 aby uzyskać stałe połączenie."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Zamknij listę..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Zbieranie danych..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Polecenie"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr "Komentarz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Konfiguracja podstawowa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-"Komplikuje atak ponownej instalacji klucza po stronie klienta, wyłączając "
-"retransmisję ramek klucza EAPOL, które są używane do instalowania kluczy. To "
-"obejście może powodować problemy z interoperacyjnością i zmniejszoną "
-"odporność kluczowych negocjacji, szczególnie w środowiskach o dużym "
-"natężeniu ruchu."
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Konfiguracja"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr "Konfiguracja nieudana"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr "Pliki konfiguracyjne zostaną zachowane"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr "Konfiguracja została zastosowana."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr "Konfiguracja została wycofana!"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Potwierdzenie"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Połącz"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Połączony"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Limit połączeń"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr "Próba połączenia nieudana"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Połączenia"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Kraj"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Kod kraju"
-
-# Pokrywa następujące interfejsy
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Pokrywa następujący interfejs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Pokrywa następujące interfejsy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Utwórz / Przypisz strefę firewalla"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Utwórz interfejs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Utwórz most pomiędzy wieloma interfejsami"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Krytyczne"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Poziom logowania Cron`a"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Interfejs niestandardowy"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr "Delegowany niestandardowy prefiks IPv6"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-"Własne pliki (certyfikaty, skrypty) mogą pozostać w systemie. Aby zapobiec "
-"temu, wykonaj najpierw reset do ustawień fabrycznych"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr "Własny interwał flash (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Dostosuj zachowanie diod <abbr title=\"Light Emitting Diode\">LED</abbr> "
-"urządzenia jeśli jest to możliwe."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr "DAE-Klient"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr "DAE-Port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "Serwer DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP i DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "Klient DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "Opcje DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr "Klient DHCPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr "Tryb DHCPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr "Serwis DHCPv6"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "Przekierowania DNS"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr "Sprawdzanie DNSSEC bez podpisu"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr "DSL"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr "Status DSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr "Interwał DTIM"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr "Szybkość przesyłania danych"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Debug"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "Domyślne %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr "Domyślna ścieżka routingu"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Brama domyślna"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr "Domyślnie jest to stateless + stateful"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Stan domyślny"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Określ nazwę dla tej sieci."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Zdefiniuj dodatkowe opcje DHCP, np. \"<code>6,192.168.2.1,192.168.2.2</code>"
-"\" rozgłasza domyślne serwery DNS klientom DHCP."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Usuń"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr "Usuń klucz"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Usuń tą sieć"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr "Interwał komunikatu o wskazaniu dostawy ruchu"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Opis"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Przeznaczenie"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Urządzenie"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Konfiguracja urządzenia"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr "Urządzenie jest uruchamiane ponownie ..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr "Urządzenie nieosiągalne!"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr "Urządzenie nieosiągalne! Wciąż czekam na urządzenie..."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Diagnostyka"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Katalog"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Wyłącz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Wyłącz <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> na "
-"tym interfejsie."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr "Wyłącz szyfrowanie"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr "Wyłącz tą sieć"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Wyłączony"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr "Wyłączone (domyślnie)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr "Rozłączaj przy niskim stanie ramek ACK"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "Odrzuć wychodzące odpowiedzi RFC1918"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr "Próba rozłączenia nie powiodła się"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Optymalizacja odległości"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Odległość do najdalej oddalonego członka sieci w metrach."
-
-# Jak poprzednio trzymam się konwencji
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Wielorakość"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq jest kombajnem serwera <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> połączonym z serwerem <abbr title=\"Domain Name System"
-"\">DNS</abbr>. Jest to serwer przekazujący (Fowarder) dla firewalli <abbr "
-"title=\"Network Address Translation\">NAT</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr "Nie cache`uj odpowiedzi negatywnych, np. nie dla bieżących domen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"Nie przekazuj zapytań które nie mogą być zrealizowane przez publiczne "
-"serwery nazw"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr "Nie przekazuj odwrotnych lookup`ów do sieci lokalnych"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr "Czy na pewno chcesz usunąć następujący klucz SSH?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Wymagana domena"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "Whitelist domen (Dozwolone domeny)"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Nie przekazuj zapytań <abbr title=\"Domain Name System\">DNS</abbr> bez "
-"nazwy <abbr title=\"Domain Name System\">DNS</abbr>'a"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Pobierz kopię zapasową"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr "Pobierz mtdblock"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Usługa Dropbear"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear oferuje zdalny dostęp do konsoli (shell`a) poprzez swojego klienta "
-"<abbr title=\"Secure Shell\">SSH</abbr> oraz serwer <abbr title=\"Secure Copy"
-"\">SCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> dynamiczne"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Tunel dynamiczny"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"Dynamicznie rezerwuje adresy DHCP dla klientów. Jeśli jest wyłączone tylko "
-"klienci posiadający stałe dzierżawy będą obsłużeni."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "Metoda EAP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Edycja"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Edytuj ten interfejs"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Edytuj tą sieć"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Zagrożenie"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Włącz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-"Włącz nasłuchiwanie <abbr title=\"Internet Group Management Protocol\">IGMP</"
-"abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Włącz <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "Włącz dynamiczną aktualizację punktu końcowego sieci HE.net"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr "Włącz negocjację IPv6"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "Włącz negocjację IPv6 na łączu PPP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Włącz przechodzenie ramek Jumbo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "Włącz klienta NTP"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Włącz serwer TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Włącz funkcjonalność VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr "Włącz przycisk WPS, wymaga WPA(2)-PSK"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr "Włącz środki zaradcze dotyczące ponownej instalacji kluczy (KRACK)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Włącz uczenie się i starzenie"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "Włącz ten punkt montowania"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "Włącz ten swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Wlącz/Wyłącz"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Włączony"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr "Włącz nasłuchiwanie IGMP na tym moście"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-"Aktywuje szybki roaming pomiędzy punktami dostępowymi, które należą do tej "
-"samej domeny"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr ""
-"Włącz protokół <abbr title=\"Spanning Tree Protocol\">STP</abbr> na tym "
-"moście"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Sposób enkapsulacji"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Szyfrowanie"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Usuwanie..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Błąd"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr "Ilość błędów (ES)"
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Karta Ethernet"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Switch Ethernet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr "Wyklucz interfejsy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "Rozwiń hosty"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr "Oczekiwano %s"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Wygasa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-#, fuzzy
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-"Czas wygasania dzierżawy adresu, minimum to 2 Minuty (<code>2m</code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Serwer zewnętrzny dla logów systemowych"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Port zewnętrznego serwera logów systemowych"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr "Protokół zewnętrznego serwera logów systemowych"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr "Nie udało się zatwierdzić w ciągu %ds, czekam na wycofanie…"
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Plik"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "Rozgłoszono nazwę pliku obrazu startowego do klientów"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "System plików"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Filtruj prywatne"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Filtruj bezużyteczne"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr "Finalizacja nie powiodła się"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Znajdź i podłącz się do sieci"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Zakończ"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Firewall"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Ustawienia firewalla"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Stan firewalla"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr "Plik firmware"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Wersja firmware"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "Stały port źródłowy dla wychodzących zapytań DNS"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Aktualizuj firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Wgraj obraz..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Wgraj nowy firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Operacje aktualizacji"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Flashowanie..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr "Dostęp do zapisu flashmemory (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Wymuś"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr "Wymuś tryb 40MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Wymuś CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-"Wymuś uruchomienie serwera DHCP w tej sieci nawet gdy wykryto inny serwer."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Wymuś TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Wymuś TKIP i CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr "Wymuś połączenie"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr "Wymuś uaktualnienie"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "Przekazuj ruch DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr "Próby korekcji błędów (FECS)"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Przekazuj broadcast`y"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Tryb przekazywania"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Próg Fragmentacji"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Dzielenie ramek"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Wolna"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Tylko GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Brama"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr "Adres bramy jest nieprawidłowy"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Porty bramy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Ustawienia główne"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Ustawienia podstawowe"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr "Wygeneruj konfigurację"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr "Wygeneruj PMK lokalnie"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Twórz archiwum"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "Ogólny bezprzewodowy kontroler 802.11%s"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-"Hasło nie zostało zmienione, wpisane poprzednie hasło routera jest "
-"niewłaściwe!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr "Globalne opcje sieciowe"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Przejdź do konfiguracji hasła..."
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Przejdź do powiązanych ustawień"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr "Gość"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "Hasło HE.net"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Rozłącz"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr "Błędy kodu nagłówka (HEC)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr "Interwał Heartbeata (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Tutaj możesz skonfigurować podstawowe ustawienia twojego urządzenia, np. "
-"nazwę hosta, strefę czasową."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-"Ukryj <abbr title=\"Extended Service Set Identifier (Nazwę sieci)\">ESSID</"
-"abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr "Ukryj puste łańcuchy"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Wpisy PC"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr "Czas wygasania hosta"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "<abbr title=\"Internet Protocol Address\">IP</abbr> lub sieć Hosta"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr "Zawartość znacznika Host-Uniq"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Nazwa hosta"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "Nazwa hosta wysyłana podczas negocjacji DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Nazwy hostów"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr "Protokół IP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "Adres IP"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr "Nieprawidłowy adres IP"
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr "Brakuje adresu IP"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "Firewall IPv4"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr "Źródłowy IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "Adres IPv4"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "Broadcast IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "Brama IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "Maska IPv4"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "Długość prefiksu IPv4"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "Adres IPv4"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "Firewall IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr "Sąsiedztwo IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr "Ustawienia IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr "IPv6 Prefiks-ULA"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr "Źródłowy IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "Adres IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr "Wskazówka przypisania IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr "Długość przydziału IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "Brama IPv6"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "Prefiks IPv6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "Długość prefiksu IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr "Sufiks IPv6"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "Adres IPv6"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6-w-IPv4 (RFC4213)"
-
-# 6rd to nie "szóste", tylko IPv6 rapid deployment
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6-przez-IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6-przez-IPv4 (6to4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Tożsamość"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-"Jeśli podano, zainstaluj urządzenie poprzez jego UUID zamiast <abbr title="
-"\"fixed device node\">ustalonego węzła urządzenia</abbr>"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-"Jeśli podano, zainstaluj urządzenie poprzez nazwę partycji zamiast <abbr "
-"title=\"fixed device node\">ustalonego węzła urządzenia</abbr>"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "Jeśli odznaczone, nie ma zdefiniowanej domyślnej ścieżki routingu"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "Jeśli odznaczone, rozgłoszane adresy serwerów DNS są ignorowane"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Jeśli ilość twojej pamięci fizycznej jest niewystarczająca, nieużywane "
-"miejsce na dysku może być tymczasowo wykorzystane na urządzenie pliku "
-"wymiany. W rezultacie większa ilość pamięci <abbr title=\"Random Access "
-"Memory\">RAM</abbr> będzie dostępna. Uwaga - plik wymiany jest dużo "
-"wolniejszy niż pamięć <abbr title=\"Random Access Memory\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Ignoruj interfejs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Ignoruj pliki resolve"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Obraz"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "W"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "Czas bezczynności"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Przychodzący:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Info"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr "Błąd inicjalizacji"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Skrypt startowy"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Skrypty startowe"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-"Zainstaluj iputils-traceroute6 w celu skorzystania z traceroute dla iPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Instaluj pakiet %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Instaluj rozszerzenia protokołów..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Interfejs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Konfiguracja Interfejsu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Przegląd Interfejsów"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "Ponowne łączenie interfejsu..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr "Nazwa interfejsu"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "Interfejs nie istnieje lub nie jest jeszcze podłączony."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Interfejsy"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Wewnętrzny błąd serwera"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Niewłaściwy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr "Podano niewłaściwy ID VLAN`u! Dozwolone są tylko ID pomiędzy %d a %d."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "Podano niewłaściwy ID VLAN`u! Dozwolone są tylko unikalne ID."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Niewłaściwy login i/lub hasło! Spróbuj ponownie."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr "Izoluj klientów"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Wygląda na to, że próbujesz wgrać obraz większy niż twoja pamięć flash, "
-"proszę sprawdź czy to właściwy obraz!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "JavaScript jest wymagany!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Połącz z siecią"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "Przyłącz do sieci: Skanuj sieci Wi-Fi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr "Przyłączanie do sieci: %q"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Zachowaj ustawienia"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Log jądra"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Wersja jądra"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Klucz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Klucz #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Zabij"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "Serwer L2TP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "Próg błędu echa LCP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "Interwał echa LCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Oznaczenie"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Język"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Wygląd i język"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr "Opoźnienie"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr "Czas dzierżawy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Plik dzierżaw"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Pozostały czas dzierżawy"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Pozostaw puste, aby automatycznie wykryć"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "Pozostaw puste, aby użyć bieżącego adresu WAN"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Legenda:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Limit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-"Ogranicz usługi DNS do podsieci interfejsów, na których obsługujemy DNS."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr "Ogranicz nasłuchiwanie do tych interfesjów, oraz loopbacku."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr "Tłumienie linii (LATN)"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr "Tryb linii"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr "Stan linii"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr "Czas działania linii"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Połączenie aktywne"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"Lista serwerów <abbr title=\"Domain Name System\">DNS</abbr> do których będą "
-"przekazywane zapytania"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "Lista domen zezwalających na odpowiedzi RFC1918"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr "Lista hostów które dostarczają zafałszowane wyniki NX domain"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr "Nasłuchuj interfejs"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr "Nasłuchuj port"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-"Słuchaj tylko na podanym interfejsie, lub jeśli nie podano na wszystkich"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "Port nasłuchu dla przychodzących zapytań DNS"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Obciążenie"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Średnie obciążenie"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Ładowanie"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr "Ładowanie kluczy SSH…"
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr "Lokalny adres IP jest nieprawidłowy"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr "Lokalny adres IP do przypisania"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Lokalny adres IPv4"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Lokalny adres IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr "Tylko serwis lokalny"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Lokalny autostart"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Czas lokalny"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Domena lokalna"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-#, fuzzy
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-"Specyfikacja domeny lokalnej. Nazwy należące do tej domeny nie są "
-"przekazywane dalej ani rozwijane przez DHCP lub tylko pliki hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-"Przyrostek (sufiks) domeny przyłączany do nazw DHCP i wpisów w pliku hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Serwer lokalny"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-"Zlokalizuj nazwę hosta w zależności od odpytującej podsieci jeśli jest "
-"dostępne więcej niż jedno IP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Zapytania lokalizujące"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Poziom logowania"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Loguj zapytania"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "Logowanie"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Zaloguj"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Wyloguj"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr "Utrata sygnału (LOSS)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr "Najniższy wydzierżawiony adres jako offset dla adresu sieci."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr "MAC"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "Adres MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Filtr adresów MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "Filtr adresów MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "Lista MAC"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr "Reguła MAP jest nieprawidłowa"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr "MD5"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-"Upewnij się, że klonujesz główny system plików, używając czegoś podobnego do "
-"poleceń poniżej:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr "Max. Osiągalna przepustowość danych (ATTNDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "Maksymalna dozwolona liczba aktywnych dzierżaw DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "Maksymalna dozwolona liczba jednoczesnych zapytań DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "Maksymalny dozwolony rozmiar pakietu EDNS.0 UDP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "Maksymalny czas podany w sekundach do pełnej gotowości modemu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "Maksymalna liczba dzierżawionych adresów."
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Pamięć"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Użycie pamięci (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Metryka"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "Brakujące rozszerzenie protokołu dla protokołu %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Tryb"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr "Model"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr "Domyślny modem"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Urządzenie modemowe"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr "Zapytanie dotyczące modemu nie powiodło się"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "Limit czasu inicjacji modemu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Monitor"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "Wpis montowania"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Punkt montowania"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Punkty montowania"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "Punkty montowania - Wpis montownia"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "Punkty montowania - Wpis Swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Punkty montowania definiują gdzie urządzenie pamięci zostanie podłączone do "
-"systemu plików"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Opcje montowania"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Punkt montownia"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Zamontowane systemy plików"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Przesuń w dół"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Przesuń w górę"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr "NCM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr "Proxy NDP"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "Lista serwerów NTP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Nazwa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Nazwa nowego interfejsu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Nazwa nowej sieci"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Nawigacja"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Maska sieci"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Sieć"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Narzędzia sieciowe"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "Sieciowy obraz startowy"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr "Aktywność urządzenia sieciowego (%s)"
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr "Urządzenie sieciowe nie jest obecne"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Sieć bez interfejsów"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Następna »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Brak skonfigurowanego serwera DHCP dla tego interfejsu"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Nie znaleziono plików"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Brak dostępnych informacji"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr "Brak zgodnej delegacji prefiksu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "Brak odwrotnego cache`a"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Brak skonfigurowanych sieci na tym urządzeniu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "Nie podano nazwy sieci"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Nie ustawiono hasła!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr "Nie ma jeszcze kluczy publicznych."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Brak zasad w tym łańcuchu."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr "Brak wyników skanowania..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Brak przypisanej strefy"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Szum"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr "Margines szumów (SNR)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Szum:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr "Nieprzewidziane błedy CRC (CRC_P)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr "Bez symboli wieloznacznych"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Brak"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Normalny"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "Nie znaleziono"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "Nie powiązany"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "Nie podłączony"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Spostrzeżenie"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "Nslookup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-"Liczba buforowanych wpisów DNS (max wynosi 10000, 0 oznacza brak pamięci "
-"podręcznej)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr "Uzyskaj adres IPv6"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "Zwłoka wyłączenia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"Na tej stronie można skonfigurować interfejsy urządzenia. Możesz zmostkować "
-"kilka interfejsów zaznaczając pole \"mostkuj interfejsy\", a następnie "
-"wpisując ich nazwy oddzielone spacjami. Można także użyć notacji <abbr title="
-"\"Virtual Local Area Network\">VLAN`ów</abbr> <samp>INTERFACE.VLANNR</samp> "
-"(<abbr title=\"na przykład\">np.</abbr>: <samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "Zwłoka włączenia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "Nazwa hosta lub adres MAC musu być podany!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Jedno lub więcej pól zawiera nieprawidłowe wartości!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Jedno lub więcej pól nie posiada wpisanych wartości!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Otwórz listę..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr "Częstotliwość"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Wartość zmieniona"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Usunięto wartość"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr "Opcjonalny"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-"Opcjonalne. Dopuszczalne wartości: 'eui64', 'random', stałe wartości takie "
-"jak '::1' lub '::1:2'. Kiedy prefiks IPv6 (taki jak 'a:b:c:d::') jest "
-"odbierany z serwera delegującego, użyj sufiksa (takiego jak '::1') aby "
-"utworzyć adres IPv6 ('a:b:c:d::1') dla tego interfejsu."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr "Opcjonalny. Opis peera."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Opcje"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Inne:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Wychodzące"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "Wychodzący:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "Nadpisz adres MAC"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "Nadpisz MTU"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr "Nadpisz TOS"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr "Nadpisz TTL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr "Nadpisz domyślną nazwę interfejsu"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "Nadpisz adres bramy w odpowiedziach DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-"Nadpisz maskę sieci wysyłaną do klientów. Zazwyczaj jest ona wyliczana z "
-"podsieci która jest rozsyłana."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr "Nadpisz tablicę routingu używaną dla wewnętrznych tras routowania"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Przegląd"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Właściciel"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "Hasło PAP/CHAP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "Nazwa użytkownika PAP/CHAP"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr "Kod PIN został odrzucony"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr "PMK R1 Push"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "Enkapsulacja PPPoA"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr "PPPoSSH"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "Wymagany pakiet libiwinfo!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Pakiety"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "Część strefy %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Hasło"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Uwierzytelnianie hasłem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Hasło lub klucz prywatny"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr "Wewnętrzne hasło klucza prywatnego"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr "Wklej lub przeciągnij plik klucza SSH…"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Ścieżka do certyfikatu CA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "Ścieżka do certyfikatu klienta"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Ścieżka do Klucza Prywatnego"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr "Ścieżka do wewnętrznego certyfikatu CA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr "Ścieżka do wewnętrznego certyfikatu Klienta"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr "Ścieżka do wewnętrznego klucza prywatnego "
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Szczyt:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr "Brakuje adresu Peera"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Wykonaj restart"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Wykonaj reset"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "Szybkość Phy:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Ustawienia sprzętowe"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ping"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Pktw."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Proszę wprowadź swój login i hasło."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Zasada"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Port"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Status portu:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr "Tryb zarządzania energią"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr "Przewidziane błedy CRC (CRCP_P)"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr "Preferuj LTE"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr "Preferuj UMTS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-"Przypuszczaj że klient może być martwy po zadanej ilości błedów echa LCP, "
-"wpisz 0 aby zignorować te błędy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr "Zapobiegaj nasłuchiwaniu na tych interfejsach."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Zapobiega komunikacji między klientem a klientem"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr "Klucz prywatny"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Wykonaj"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Procesy"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr "Profil"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protokół"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Protokół nowego interfejsu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "Wsparcie dla protokołu nie jest zainstalowane"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "Włącz serwer NTP"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "Utwórz nową sieć"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Pseudo Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr "Klucz publiczny"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-"Klucze publiczne pozwalają na logowanie bez haseł SSH z wyższymi "
-"zabezpieczeniami w porównaniu do użycia zwykłych haseł. Aby przesłać nowy "
-"klucz do urządzenia, wklej klucz publiczny zgodny z OpenSSH lub przeciągnij "
-"plik <code>.pub</code> do pola wejściowego."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr "Komórkowy QMI"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Jakość"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-"Zapytaj o wszystkie dostępne serwery <abbr title=\"Domain Name System\">DNS</"
-"abbr> "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "Próg RTS/CTS"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "Szybkość RX"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Port Radius-Accounting"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Sekret Radius-Accounting"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Serwer Radius-Accounting"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Port Radius-Authentication"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Sekret Radius-Authentication"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Serwer Radius-Authentication"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-"Surowe bajty kodowane szesnastkowo. Pozostaw puste, chyba że wymaga tego "
-"dostawca internetowy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Przejrzyj plik <code>/etc/ethers</code> aby skonfigurować serwer <abbr title="
-"\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"Naprawdę usunąć tę sieć bezprzewodową? Usunięcie nie może zostać cofnięte!\n"
-"Możesz stracić dostęp do tego urządzenia, jeśli jesteś połączony przez tę "
-"sieć!"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "Naprawdę usunąć wszelkie zmiany?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "Naprawdę zmienić protokół?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Połączenia w czasie rzeczywistym"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Wykresy w czasie rzeczywistym"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Obciążenie w czasie rzeczywistym"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Ruch w czasie rzeczywistym"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Wi-Fi w czasie rzeczywistym"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr "Termin reasocjacji"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "Przypisz ochronę"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Restart"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Ponowne uruchamianie..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Uruchamia ponownie system na twoim urządzeniu"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Odebrane"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Antena odbiorcza"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Połącz ponownie ten interfejs"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Referencje"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "Przekaźnik"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "Most przekaźnikowy"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "Przekaźnik pomiędzy sieciami"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "Most przekaźnikowy"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "Zdalny adres IPv4"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr "Zdalny adres IPv4 lub FQDN"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Usuń"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Powtórz skanowanie"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Zamień wpis"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Zamień konfigurację WiFi"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr "Zażądaj adresu IPv6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr "Zażądaj długość prefiksu IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr "Wymagany"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "Wymagany dla niektórych dostawców internetu, np. Charter z DOCSIS 3"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-"Wymagane jest wsparcie dla DNSSEC; sprawdzanie, czy niepodpisane odpowiedzi "
-"w domenie rzeczywiście pochodzą z domen bez znaku"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Resetuj"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Wyczyść liczniki"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Resetuj do domyślnych"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Pliki Resolv i Hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "Plik Resolve"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Uruchom ponownie"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Uruchom ponownie Firewalla"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr "Uruchom ponownie interfejs radiowy"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Przywróć"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Przywróć kopię zapasową"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Odsłoń/Ukryj hasło"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Przywróć"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr "Przywróć zmiany"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr "Żądanie powrotu nie powiodło się ze statusem <code>%h</code>"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr "Przywracanie konfiguracji…"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Root"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "Katalog Root`a dla plików udostępnianych przez TFTP"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr "Typ trasy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr "Serwis rozgłoszeniowy routera"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Hasło routera"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Ścieżki routingu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Ścieżki routingu pokazują routerowi przez który interfejs oraz którą bramę "
-"może skomunikować się z daną siecią lub komputerem."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr "Reguła"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr ""
-"Sprawdź czy system plików nie zawiera błędów przed zamontowaniem urządzenia"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Sprawdź czy system plików nie zawiera błędów"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr "SNR"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "Dostęp SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr "Adres serwera SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr "Port serwera SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "Klucze SSH"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr "SWAP"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Zapisz"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Zapisz i zastosuj"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr "Zapisz mtdblock"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr "Zapisz zawartość mtdblock"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Skanuj"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr "Próba skanowania nie powiodła się"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Zaplanowane Zadania"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Dodano sekcję"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Usunięto sekcję"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "Aby poznać szczegóły przeczytaj stronę instrukcji \"mount\""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-"Wybierz 'Wymuś uaktualnienie', aby wgrać obraz nawet jeśli sprawdzenie "
-"formatu obrazu nie powiedzie się. Używaj tylko wtedy, gdy masz pewność że "
-"oprogramowanie jest poprawne i jest przeznaczone dla Twojego urządzenia!"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-"Wysyłaj żądania echa LCP w określonym przedziale czasowym, efektywne tylko "
-"wtedy gdy jest ustawiony próg błedu LCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Rozdziel klientów"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Ustawienia serwera"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Nazwa serwisu"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Typ serwisu"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Serwisy"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr "Sesja wygasła"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-"Ustaw właściwości interfejsu, niezależnie od operatora łącza (nie wpływa na "
-"programy operatora które ustanawiają połączenie)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-#, fuzzy
-msgid "Set up Time Synchronization"
-msgstr "Ustawienia synchronizacji czasu"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr "Ustawienie PLMN nie powiodło się"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr "Ustawienie trybu nie powiodło się"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "Ustawienia serwera DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr "Ilość poważnych błedów (SES)"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr "Krótki Wstęp"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "Pokaż aktualną listę plików do backupu"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr "Pokaż puste łańcuchy"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Wyłącz ten interfejs"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Sygnał"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr "Tłumienie sygnału (SATN)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Sygnał:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Rozmiar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr "Rozmiar pamięci podręcznej zapytań DNS"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Pomiń"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Pomiń do zawartości"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Pomiń do nawigacji"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "Szczelina czasowa"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr "Programowy VLAN"
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Wartości pewnych pól są niewłaściwe, nie mogę ich zachować!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "Przepraszamy, ale żądany obiekt nie został znaleziony."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "Przepraszamy, ale serwer napotkał nieoczekiwany błąd."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"Przepraszamy, ale nie ma wsparcia dla trybu sysupgrade. Nowy firmware musi "
-"być wgrany ręcznie. Sprawdź stronę wiki, aby uzyskać instrukcję dla danego "
-"urządzenia."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Źródło"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "Podaje katalog do którego jest podłączone urządzenie"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "Określa port nasłuchu dla tej instancji <em>Dropbear</em>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-"Określa maksymalną ilość błędów dla zapytania ARP przed założeniem, że host "
-"jest martwy"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-"Określa maksymalny czas w sekundach przed założeniem, że host jest martwy"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Określ tajny klucz szyfrowania."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Uruchomienie"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Priorytet uruchomienia"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr "Zatwierdzanie konfiguracji…"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr "Rozpoczynanie skanowania..."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Autostart"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Statyczne ścieżki routingu IPv4"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Statyczne ścieżki routingu IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Dzierżawy statyczne"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Statyczne ścieżki routingu"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Stały adres"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"Statyczne dzierżawy są używane do przypisania stałych adresów IP i "
-"symbolicznych nazw klientom DHCP. Są one również wymagane dla "
-"niedynamicznych konfiguracji interfejsu, gdzie obsługiwane są tylko hosty z "
-"odpowiednim dzierżawami."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr "Station inactivity limit"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Status"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Stop"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Zachowaj kolejność"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Wyślij"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr "Pomiń rejestrowanie"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr "Pomiń rejestrowanie rutynowych operacji dla tych protokołów"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr "Swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Zamień wpis"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Przełącznik"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "Przełącznik %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "Przełącznik %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "Protokół przełącznika"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr "Przejdź do notacji listy CIDR"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr "Aktywność Switchportu (%s)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Synchronizuj z przeglądarką"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Synchronizacja..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "System"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Log systemowy"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Właściwości systemu"
-
-# Wszędzie używane jest "loga" z małej litery.
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "Rozmiar bufora loga systemu"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "Ustawienia TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "Root serwera TFTP"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "Szybkość TX"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Tablica"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Cel"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Zakończ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-#, fuzzy
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"Sekcja <em>Konfiguracja Urządzenia</em> zawiera sprzętowe ustawienia toru "
-"transmisji radiowej takie jak kanał, moc sygnału, czy wybór anteny, które to "
-"są wspólne dla wszystkich zdefiniowanych sieci bezprzewodowych (jeśli tor "
-"transmisji jest kompatybilny z transmisją multi-SSID). Ustawienia sieci "
-"takie jak szyfrowanie lub tryb operacji są zebrane w sekcji <em>Konfiguracja "
-"Interfejsu</em>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"Pakiet <em>libiwinfo-lua</em> nie jest zainstalowany. Musisz go zainstalować "
-"aby WiFi prawidłowo zadziałało!"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-"Prefiks IPv6 przypisany do dostawcy, zazwyczaj kończy się <code>::</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"Dozwolone znaki to: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> "
-"oraz <code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr "Archiwum kopii zapasowej nie wygląda na prawidłowe."
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-"Nie można uzyskać dostępu do urządzenia w ciągu %d sekund po zastosowaniu "
-"oczekujących zmian, które spowodowały wycofanie konfiguracji ze względów "
-"bezpieczeństwa. Jeśli jednak uważasz, że zmiany konfiguracji są poprawne, "
-"kontynuuj, stosując je mimo to. Możesz też odrzucić to ostrzeżenie i "
-"edytować zmiany przed ponownym zastosowaniem lub odrzucić wszystkie "
-"oczekujące zmiany, aby zachować aktualnie działający stan konfiguracji."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"Plik urządzenia - pamięci lub partycji (<abbr title=\"na przykład\">np.</"
-"abbr> <code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"System plików, który został użyty do sformatowania nośnika (<abbr title=\"na "
-"przykład\">np.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</"
-"abbr></samp>)"
-
-# Przycisk nazywa się "Wykonaj", więc taki sam opis ma być w podpowiedzi.
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"Obraz flash został przesłany. Poniżej znajduje się suma kontrolna i rozmiar "
-"pliku, porównaj je z orginałem aby zapewnić integralność danych.<br /> "
-"Wciśnij \"Wykonaj\" aby kontynuować aktualizację."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "Następujące zmiany zostały odrzucone"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "Następujące zasady są obecnie aktywne w tym systemie."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr "Podany klucz publiczny SSH został już dodany."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-"Podany klucz publiczny SSH jest nieprawidłowy. Podaj odpowiedni publiczny "
-"RSA lub klucze ECDSA."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "Podana sieć nie jest unikalna"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-#, fuzzy
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-"Sprzęt nie jest urządzeniem typu multi-SSID, więc bieżąca konfiguracja "
-"zostanie nadpisana nową jeśli będziesz kontynuować."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-"Długość prefiksu IPv4 w bitach, pozostała część jest używana w adresach IPv6."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "Długość prefiksu IPv6 w bitach"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr "Lokalny adres IPv4, na którym tworzony jest tunel (opcjonalnie)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"Porty sieciowe na tym urządzeniu mogą być łączone w kilka sieci <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>, w których komputery mogą "
-"komunikować się ze sobą bezpośrednio. Sieci <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr> są często stosowane w celu oddzielenia różnych "
-"segmentów sieci. Często domyślnie jeden port typu Uplink jest wykorzystywany "
-"do połączenia z większą siecią, taką jak Internet, a inne porty dla sieci "
-"lokalnej."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "Wybrany protokół potrzebuje przypisanego urządzenia"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr "The submitted security token is invalid or already expired!"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-"System usuwa teraz partycję konfiguracji i zrestartuje się po zakończeniu."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"System wykonuje flashowanie.<br /> NIE WYŁĄCZAĆ URZĄDZENIA!<br /> Poczekaj "
-"kilka minut, zanim spróbujesz połączyć się ponownie. W zależności od "
-"ustawień może być konieczne odnowienie adresu Twojego komputera, aby dostać "
-"się do urządzenia."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr "Hasło systemowe zostało pomyślnie zmienione."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"Przesłany plik obrazu nie zawiera obsługiwanego formatu. Upewnij się, że "
-"wybrałeś odpowiedni format obrazu dla danej platformy."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Motyw"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Brak aktywnych dzierżaw."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr "Brak zmian do zastosowania."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "Brak oczekujących zmian do przywrócenia!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "Brak oczekujących zmian!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-"Żadne urządzenie nie jest jeszcze przypisane. Proszę dołączyć urządzenie "
-"sieciowe na karcie \"Ustawienia sprzętowe\""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"Hasło nie zostało ustawione. Proszę skonfigurować hasło roota, aby "
-"zabezpieczyć interfejs WWW i włączyć SSH."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr "Ten adres IPv4 przekaźnika"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-"Ten plik może zawierać linie takie jak 'server=/domain/1.2.3.4' lub "
-"'server=1.2.3.4' dla specyficznych dla domeny lub pełnych serwerów <abbr "
-"title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-"Jest to lista globalnych wzorców dopasowywania plików i katalogów "
-"uwzględnianych podczas przeprowadzania aktualizacji z użyciem \"sysupgrade"
-"\". Zmodyfikowane pliki w /etc/config/ i w niektórych innych ustawieniach są "
-"automatycznie zachowywane."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"To jest zawartość pliku /etc/rc.local. Wstaw tutaj własne komendy (przed "
-"'exit 0'), aby zostały wykonane pod koniec procesu rozruchu."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-"To jest lokalny adres końcowy przypisany przez tunnel broker'a, zwykle "
-"kończący się z <code>...:2/64</code>"
-
-# w tłumaczeniu pojawiła się spacja po DHCP</abbr> co powoduje niepoprawne wyświetlanie się strony z lang PL
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"To jest jedyny serwer <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr> w sieci lokalnej"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-"To jest system crontab, w którym mogą być zdefiniowane zaplanowane zadania."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-"Zwykle jest to adres najbliższego PoP prowadzonego przez tunnel broker'a"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"Poniższa lista przedstawia aktualnie uruchomione procesy systemowe i ich "
-"status."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "Poniższa strona przedstawia aktualnie aktywne połączenia sieciowe."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Ta sekcja nie zawiera jeszcze żadnych wartości"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Synchronizacja czasu"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "Synchronizacja czasu nie jest jeszcze skonfigurowana."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Strefa czasowa"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr "Zaloguj się…"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"Aby przywrócić pliki konfiguracyjne, możesz przesłać tutaj wcześniej "
-"utworzoną kopię zapasową. Aby przywrócić ustawienia domyślne wciśnij "
-"\"Wykonaj reset\" (możliwe tylko w przypadku obrazu squashfs)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr "Ton"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Całkowicie dostępna"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Trasa routowania"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Ruch"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Transfer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Prędkość transmisji"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Nadawanie"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Siła nadawania"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Antena nadajnika"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "Trigger"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "Rodzaj Triggeru"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "Numer identyfikacyjny tunelu"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Interfejs tunelu"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Moc nadawania"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Typ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "Tylko UMTS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "Urządzenie USB"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr "Porty USB"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr "Nie można ustalić nazwy urządzenia"
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr "Nie można ustalić zewnętrznego adresu IP"
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr "Nie można określić interfejsu źródłowego"
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr "Nie można wysłać"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr "Nie można uzyskać ID klienta"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr "Nie można rozpoznać nazwy AFTR hosta"
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr "Nie można rozpoznać nazwy peera"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr "Czas niedostępnośći (UAS)"
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Nieznany"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr "Nieznany błąd (%s)"
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "Niezarządzalny"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr "Odmontuj"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr "Klucz beznazwy"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Niezapisane zmiany"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr "Nieobsługiwany typ MAP"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr "Nieobsługiwany modem"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Nieobsługiwany typ protokołu."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"Prześlij tutaj obraz zgodny z funkcją sysupgrade, aby zastąpić aktualnie "
-"działające opragramowanie. Zaznacz opcję \"Zachowaj ustawienia\", aby "
-"zachować bieżącą konfigurację (wymagany obraz zgodny z bieżącym "
-"opragramowaniem)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Załaduj archiwum..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Załaduj plik"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Czas pracy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Użyj <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "Użyj bramy DHCP"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "Użyj serwerów DNS rozgłaszanych przez peera"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "Użyj kodów kraju ISO/IEC 3166 alpha2"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr "Użyj MTU na interfejsie tunelu"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "Użyj TTL na interfejsie tunelu"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr "Użyj jako systemu plików root (/)"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "Użyj flagi rozgłaszania"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr "Skorzystaj z wbudowanego zarządzania protokołem IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Użyj własne serwery DNS"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Użyj domyślnej bramy"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "Użyj metryki bramy"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Użyj tabeli routingu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"Użyj przycisku <em>Dodaj</em>, aby dodać nowy wpis dzierżawy. <em>Adres MAC</"
-"em> identyfikuje hosta, <em>Adres IPv4</em> określa, którego stałego adresu "
-"użyć, natomiast <em>Nazwa hosta</em> jest przypisana jako symboliczna nazwa "
-"do określonego hosta."
-
-# Przy liście zamontowanych systemów plików
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Użyte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "Użyte gniazdo klucza"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr "Certyfikat użytkownika (kodowany PEM)"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr "Klucz użytkownika (kodowany PEM)"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Nazwa użytkownika"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr "VDSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "Sieci VLAN na %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "Sieci VLAN na %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "Serwer VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr "Port serwera VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr "Producent"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "Klasa producenta do wysłania podczas żądania DHCP"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Zweryfikuj"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr "Wirtualny interfejs dynamiczny"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "Otwarty system WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "Współdzielony klucz WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "Hasło WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "Tryb WMM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "Hasło WPA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"Kodowanie WPA wymaga zainstalowanych modułów wpa_supplicant (tryb klienta) "
-"lub hostapd (tryb AP lub ad-hoc)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "Trwa wprowadzenie zmian..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "Trwa wykonanie polecenia..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr "Oczekiwanie na zastosowanie konfiguracji… %ds"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr "Oczekiwanie na urządzenie..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Ostrzeżenie"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-"Ostrzeżenie: Istnieją niezapisane zmiany, które zostaną utracone po ponownym "
-"uruchomieniu urządzenia!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr "Aktywność Wi-Fi (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr "Powiązanie klienta Wi-Fi (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr "Odbiór danych Wi-Fi (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr "Transmisja danych Wi-Fi (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr "Wi-Fi włączone (%s)"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr "Szerokość"
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr "WireGuard VPN"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Sieć bezprzewodowa"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Adapter bezprzewodowy"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Sieć bezprzewodowa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Przegląd sieci bezprzewodowych"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Zabezpieczenia sieci bezprzewodowych"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "Sieć bezprzewodowa jest wyłączona"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "Sieć bezprzewodowa jest niepołączona"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "Restart sieci bezprzewodowej..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "Sieć bezprzewodowa jest wyłączona"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "Sieć bezprzewodowa jest włączona"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Zapisz otrzymane żądania DNS do syslog'a"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr "Zapisz log systemowy do pliku"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Tutaj można włączyć lub wyłączyć zainstalowane skrypty. Zmiany zostaną "
-"zastosowane po ponownym uruchomieniu urządzenia.<br /><strong>Ostrzeżenie: "
-"Jeśli wyłączysz podstawowe skrypty typu \"network\", urządzenie może stać "
-"się nieosiągalne!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"Musisz włączyć obsługę JavaScript w swojej przeglądarce, inaczej LuCI nie "
-"będzie działać poprawnie."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-"Twój Internet Explorer jest za stary, aby poprawnie wyświetlić tę stronę "
-"zaktualizuj go do wersji co najmniej 7 lub użyj innej przeglądarki, takiej "
-"jak Firefox, Opera czy Safari."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr "Alogrytm kompresji ZRam"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr "Strumienie kompresji ZRam"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr "Ustawienia ZRam"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr "Rozmiar ZRam"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "dowolny"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "auto"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "zmostkowany"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "utwórz:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "utwórz most na określonych interfejsach"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "wyłącz"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr "wyłączony"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "wygasły"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"plik, w którym podano żądania <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr>, zostanie zachowany"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "przekaż"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "pełny-duplex"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "pół-duplex"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "ukryty"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr "tryb hybrydowy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "jeżeli celem jest sieć"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "wejście"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr "klucz od 8 do 63 znaków"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr "klucz z 5 lub 13 znakami"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "lokalny plik <abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr "minuty"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr "mieszany WPA/WPA2"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "nie"
-
-# skorzystałem z niemieckiego tłumaczenia
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "niepowiązane"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr "nieobecny"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "wyłączone"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "włączone"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "otwarte"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr "losowy"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "routowane"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr "tryb serwera"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "otagowane"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr "jednostki czasu (TUs / 1.024 ms) [1000-65535]"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "nieznane"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "nielimitowane"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "nieokreślone"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "nieokreślone -lub- utwórz:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "nieotagowane"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "tak"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Wróć"
-
-# nie ma słowa "autentykacji". Uwierzytelnianie!
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr ""
-#~ "Tutaj wklej swoje klucze publiczne SSH (po jednym w linii), dla "
-#~ "uwierzytelniania SSH"
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "Pomyślnie zmieniono hasło!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "Nieznany błąd, hasło nie zostało zmienione!"
-
-#~ msgid "Design"
-#~ msgstr "Motyw"
-
-#~ msgid "Available packages"
-#~ msgstr "Dostępne pakiety"
-
-#~ msgid "Bind only to specific interfaces rather than wildcard address."
-#~ msgstr ""
-#~ "Powiąż tylko ze specyficznymi interfejsami, a nie z adresami "
-#~ "wieloznacznymi."
-
-#~ msgid ""
-#~ "Build/distribution specific feed definitions. This file will NOT be "
-#~ "preserved in any sysupgrade."
-#~ msgstr ""
-#~ "Kompiluj/rozpowszechniaj określone definicje źródeł. Ten plik NIE "
-#~ "zostanie zachowany w procesie sysupgrade"
-
-#~ msgid ""
-#~ "Custom feed definitions, e.g. private feeds. This file can be preserved "
-#~ "in a sysupgrade."
-#~ msgstr ""
-#~ "Niestandardowe definicje plików danych, np. prywatne źródła. Ten plik "
-#~ "może być zachowany podczas sysupgrade. "
-
-#~ msgid "Custom feeds"
-#~ msgstr "Niestandardowe źródła"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "Pokazuję tylko paczki zawierające"
-
-#~ msgid "Distribution feeds"
-#~ msgstr "Dystrybucja źródeł"
-
-#~ msgid "Download and install package"
-#~ msgstr "Pobierz i zainstaluj pakiet"
-
-#~ msgid "Filter"
-#~ msgstr "Filtr"
-
-#~ msgid "Find package"
-#~ msgstr "Znajdź pakiet"
-
-#~ msgid "Free space"
-#~ msgstr "Wolna przestrzeń"
-
-#~ msgid "General options for opkg"
-#~ msgstr "Ogólne opcje dla opkg"
-
-#~ msgid "Install"
-#~ msgstr "Instaluj"
-
-#~ msgid "Installed packages"
-#~ msgstr "Zainstalowane pakiety"
-
-#~ msgid "No package lists available"
-#~ msgstr "Lista pakietów nie jest dostępna"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "Konfiguracja OPKG"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "Lista pakietów jest starsza niż 24 godziny"
-
-#~ msgid "Package name"
-#~ msgstr "Nazwa pakietu"
-
-#~ msgid "Size (.ipk)"
-#~ msgstr "Rozmiar (.ipk)"
-
-#~ msgid "Software"
-#~ msgstr "Oprogramowanie"
-
-#~ msgid "Update lists"
-#~ msgstr "Aktualizuj listy"
-
-#~ msgid "Version"
-#~ msgstr "Wersja"
-
-#~ msgid "none"
-#~ msgstr "żaden"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "Wyłącz konfigurację DNS"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 oraz IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "Tylko IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "Tylko IPv6"
-
-#~ msgid "Lease validity time"
-#~ msgstr "Czas ważności dzierżawy"
-
-#~ msgid "Multicast address"
-#~ msgstr "Adres Multicast`u"
-
-#~ msgid "Protocol family"
-#~ msgstr "Rodzina protokołów"
-
-#~ msgid "No chains in this table"
-#~ msgstr "Brak łańcuchów w tej tablicy"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "Pliki konfiguracyjne zostaną zachowane."
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Uwaga: Pliki konfiguracyjne zostaną usunięte."
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Par: %s / Grup: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "Aktywuj tą sieć"
-
-#~ msgid "Hermes 802.11b Wireless Controller"
-#~ msgstr "Kontroler bezprzewodowy Hermes 802.11b"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "Interfejs jest wyłączany..."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "Połączono ponownie interfejs"
-
-#~ msgid "Interface shut down"
-#~ msgstr "Wyłączono interfejs"
-
-#~ msgid "Prism2/2.5/3 802.11b Wireless Controller"
-#~ msgstr "Kontroler bezprzewodowy Prism2/2.5/3 802.11b"
-
-#~ msgid "RaLink 802.11%s Wireless Controller"
-#~ msgstr "Kontroler bezprzewodowy RaLink 802.11%s"
-
-#~ msgid ""
-#~ "Really shutdown interface \"%s\"? You might lose access to this device if "
-#~ "you are connected via this interface."
-#~ msgstr ""
-#~ "Naprawdę wyłączyć interfejs \"%s\"?\n"
-#~ "Możesz stracić dostęp do tego urządzenia jeśli jesteś połączony przez ten "
-#~ "interfejs!"
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "Łączę ponownie interfejs"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "Wyłącz tą sieć"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "Zrestartowano sieć bezprzewodową"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "Wyłączanie sieci bezprzewodowej"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "Dzierżawy DHCP"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "Dzierżawy DHCPv6"
-
-#~ msgid ""
-#~ "Really delete this interface? The deletion cannot be undone! You might "
-#~ "lose access to this device if you are connected via this interface."
-#~ msgstr ""
-#~ "Naprawdę usunąć ten interfejs? Usunięcie nie może zostać cofnięte!\n"
-#~ "Możesz stracić dostęp do tego urządzenia, jeśli jesteś połączony przez "
-#~ "ten interfejs!"
-
-#, fuzzy
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "Naprawdę wyłączyć tę sieć?\n"
-#~ "Możesz stracić dostęp do tego urządzenia jeśli jesteś połączony przez ten "
-#~ "interfejs!"
-
-#~ msgid "Sort"
-#~ msgstr "Posortuj"
-
-#~ msgid "help"
-#~ msgstr "pomoc"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "Status IPv4 WAN"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "Status WAN IPv6"
diff --git a/package/luci/modules/luci-base/po/pt-br/base.po b/package/luci/modules/luci-base/po/pt-br/base.po
deleted file mode 100644 (file)
index 6ecc8e9..0000000
+++ /dev/null
@@ -1,6783 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2018-09-20 21:19-0300\n"
-"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
-"Language-Team: \n"
-"Language: pt_BR\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Poedit 2.1.1\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr "%.1f dB"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr "%s está sem etiqueta em múltiplas VLANs!"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(janela de %d minutos, intervalo de %d segundos)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s disponível)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(vazio)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(nenhuma interface conectada)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Campo Adicional --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Por favor, escolha --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- personalizado --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr "-- casar por dispositivo --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr "-- casar por rótulo --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-"-- casar por <abbr title=\"Universal Unique IDentifier/Identificador Único "
-"Universal\">UUID</abbr> --"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr "-- por favor, selecione --"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Carga 1 Minuto:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Carga 15 Minutos:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr "Identificador hexadecimal de 4 caracteres"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr "464XLAT (CLAT)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Carga 5 Minutos:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-"Identificador de 6 octetos como uma cadeia hexadecimal - sem dois pontos"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr "802.11r Fast Transition"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr "Tempo de expiração máximo da consulta da Associação SA do 802.11w"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-"Tempo de expiração de tentativa de consulta da Associação SA do 802.11w"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr "Proteção do Quadro de Gerenciamento do 802.11w"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr "Estouro de tempo máximo do 802.11w"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr "Estouro de tempo da nova tentativa do 802.11w"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr ""
-"<abbr title=\"Identificador de Conjunto Básico de Serviços\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr ""
-"Porta de consulta <abbr title=\"Sistema de Nomes de Domínios\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr ""
-"Porta do servidor <abbr title=\"Sistema de Nomes de Domínios\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"O servidor <abbr title=\"Sistema de Nomes de Domínios\">DNS</abbr> irá "
-"consultar na ordem do arquivo resolvfile"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-"<abbr title=\"Identificador de Conjunto de Serviços Estendidos\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "Endereço <abbr title=\"Protocolo de Internet Versão 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "Roteador <abbr title=\"Protocolo de Internet Versão 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr ""
-"Máscara de rede <abbr title=\"Protocolo de Internet Versão 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"Endereço do <abbr title=\"Protocolo de Internet Versão 6\">IPv6</abbr> "
-"Endereço ou rede (CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "Roteador <abbr title=\"Protocolo de Internet Versão 6\">IPv6</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6/Protocolo Internet Versão "
-"6\">IPv6</abbr>-Suffix (hex)"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "Configuração do <abbr title=\"Diodo Emissor de Luz\">LED</abbr>"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "Nome do <abbr title=\"Diodo Emissor de Luz\">LED</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "Endereço <abbr title=\"Controle de Acesso ao Meio\">MAC</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr "<abbr title=\"Identificador Único do DHCP\">DUID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"Numero máximo de alocações <abbr title=\"Protocolo de Configuração Dinâmica "
-"de Equipamentos\">DHCP</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"Tamanho máximo do pacote do <abbr title=\"Extension Mechanisms for Domain "
-"Name System\">EDNS0</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "Número máximo de consultas concorrentes"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-"<br/>Nota: você precisa reiniciar manualmente o serviço da cron se o arquivo "
-"crontab estava vazio antes da edição."
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr "A43C + J43 + A43"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr "A43C + J43 + A43 + V43"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-"<abbr title=\"Assymetrical Digital Subscriber Line/Linha Digital Assimétrica "
-"para Assinante\">ADSL</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr "ANSI T1.413"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "<abbr title=\"Access Point Name\">APN</abbr>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr ""
-"Limite de retentativas do <abbr title=\"Address Resolution Protocol\">ARP</"
-"abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr "ATM (Asynchronous Transfer Mode)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "Ponte ATM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr ""
-"Identificador de Canal Virtual ATM (<abbr title=\"Virtual Channel Identifier"
-"\">VCI</abbr>)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr ""
-"Identificador de Caminho Virtual ATM (<abbr title=\"Virtual Path Identifier"
-"\">VPI</abbr>)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"Pontes ATM expõem ethernet encapsuladas em conexões AAL5 como interfaces de "
-"rede virutais no Linux. Estas podem ser usadas em conjunto com o DHCP ou PPP "
-"para discar em um provedor de rede."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "Número do dispositivo ATM"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr "Identificador de"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Concentrador de Acesso"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Ponto de Acceso (AP)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Ações"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-"Rotas <abbr title=\"Protocolo de Internet Versão 4\">IPv4</abbr> ativas"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-"Rotas <abbr title=\"Protocolo de Internet Versão 6\">IPv6</abbr> ativas"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Conexões Ativas"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Alocações DHCP ativas"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Alocações DHCPv6 ativas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Adicionar"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr "Adiciona um sufixo de domínio local para equipamentos conhecidos"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Adiciona uma nova interface..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Arquivos adicionais de equipamentos conhecidos (hosts)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr "Arquivo de servidores adicionais"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Endereço"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Endereço para acessar a ponte por retransmissão local"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Administração"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Opções Avançadas"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-"Potência de Transmissão Agregada (<abbr title=\"Aggregate Transmit Power"
-"\">ACTATP</abbr>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Alerta"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr "Interface Adicional"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr "Interface adicional de \"%s\""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr "Todos os Servidores"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-"Alocar endereços IP sequencialmente, iniciando a partir do endereço mais "
-"baixo disponível"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr "Alocar endereços IP sequencialmente"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-"Permitir autenticação <abbr title=\"Shell Seguro\">SSH</abbr> por senha"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-"Permitir, em modo AP, a desconexão de estações baseada na baixa qualidade "
-"das confirmações (ACK)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Permitir todos, exceto os listados"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr "Permitir taxas legadas do 802.11b"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Permitir somente os listados"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Permitir computador local"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"Permitir que equipamentos remotos conectem à portas locais encaminhadas por "
-"SSH"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Permite autenticação do root com senha"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "Permite que o usuário <em>root</em> se autentique utilizando senha"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-"Permite respostas que apontem para 127.0.0.0/8 de servidores externos, por "
-"exemplo, para os serviços RBL"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr "Endereços IP autorizados"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr "Sempre anuncie o roteador padrão"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-"Permitir o uso de canais 40Mhz mesmo se o canal secundário estiver "
-"sobreposto. Esta opção não está de acordo com IEEE 802.11n-2009!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr "Anexo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr "Anexos A + L + M (todo)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr "Anexo A G.992.1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr "Anexo A G.992.2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr "Anexo A G.992.3"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr "Anexo A G.992.5"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr "Anexo B (todo)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr "Anexo B G.992.1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr "Anexo B G.992.3"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr "Anexo B G.992.5"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr "Anexo J (todo)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr "Anexo L G.992.3 POTS 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr "Anexo M (todo)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr "Anexo M G.992.3"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr "Anexo M G.992.5"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-"Anuncie-se como rotador padrão mesmo se não existir um prefixo público."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr "Domínios DNS anunciados"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr "Servidores DNS anunciados"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr "Identidade Anônima"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr "Montagem Anônima"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr "Espaço de Troca (swap) Anônimo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Antena 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Antena 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Configuração da antena"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Qualquer zona"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr "Aplicar sem verificação"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr "Pedido para aplicar falhou com o estado <code>%h</code>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr "Arquitetura"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-"Atribua uma parte do comprimento de cada prefixo IPv6 público para esta "
-"interface"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Atribuir as interfaces..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-"Atribua partes do prefixo usando este identificador hexadecimal do "
-"subprefixo para esta interface."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Estações associadas"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr "Associações"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr "Grupo de Autenticação"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Autenticação"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr "Tipo de Autenticação"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Autoritário"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Autorização Necessária"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Atualização Automática"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr "Automático"
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-"Rede Doméstica Automática (<abbr title=\"Homenet Control Protocol\">HNCP</"
-"abbr>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-"Execute automaticamente a verificação do sistema de arquivos antes da "
-"montagem do dispositivo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr "Monte automaticamente o espaço de troca (swap) ao conectar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr "Monte automaticamente o espaço de troca (swap) ao conectar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr "Montagem Automática de Sistema de Arquivo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr "Montagem Automática do Espaço de Troca (swap)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Disponível"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Média:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr "B43 + B43C"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr "B43 + B43C + V43"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr "BR / DMR / AFTR"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Voltar"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Voltar para Visão Geral"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Voltar para configuração"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Voltar para visão geral"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Voltar para os resultados da busca"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Cópia de Segurança"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Cópia de Segurança / Gravar Firmware"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Lista de arquivos para a cópia de segurança"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Endereço especificado está incorreto!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr "Banda"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr "Intervalo do quadro de monitoramento (Beacon)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Abaixo estão os arquivos para a cópia de segurança. Ela consiste de arquivos "
-"de configuração alterados marcados pelo opkg, arquivos base essenciais e "
-"padrões para a cópia de segurança definidos pelo usuário."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr "Interface Vinculada"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr "Vincule o túnel a esta interface (opcional)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Taxa de bits"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Substituir Domínio NX Falsos"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Ponte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Juntar interfaces em uma ponte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Número da ponte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Levantar na iniciação"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Controlador Wireless Broadcom 802.11%s"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Broadcom BCM%04x 802.11 Wireless Controlador"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Buffered"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-"Certificado da AC; se em branco, será salvo depois da primeira conexão."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Uso da CPU (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr "A chamada falhou"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr "Categoria"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr "Cuidado: As configurações serão apagadas"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr "Cuidado: A atualização do sistema será forçada"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Cadeia"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Alterações"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Alterações aplicadas."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr "As mudanças foram revertidas."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Muda a senha do administrador para acessar este dispositivo"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Canal"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-"O canal %d não está disponível no domínio regulatório '%s' e foi ajustado "
-"automaticamente para %d."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Verificar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-"Execute a verificação do sistema de arquivos antes da montagem do dispositivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr "Marque esta opção para remover as redes existentes neste rádio."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Soma de verificação"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr "Escolha o bloco mtd"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Escolha a zona do firewall que você quer definir para esta interface. "
-"Selecione <em>não especificado -ou- criar</em> para remover a interface da "
-"zona associada ou preencha o campo para criar uma nova zona associada a esta "
-"interface."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"Escolha a rede (s) que deseja anexar a este interface wireless ou preencha o "
-"<em> criar </em> campo para definir uma nova rede."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Cifra"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr "Encapsulamento UDP da Cisco"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Clique em \"Gerar arquivo\" para baixar um arquivo tar com os arquivos de "
-"configuração atuais."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-"Clique em \"Salvar o bloco mtd\" para baixar o arquivo do bloco mtd "
-"especificado. (NOTA: ESTE RECURSO É PARA PROFISSIONAIS!)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Cliente"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr ""
-"Identificador do cliente enviando quando a requisição do DHCP é realizada"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Feche as conexões inativas após uma dada quantidade de segundos. Use 0 para "
-"manter as conexões"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Fechar a lista..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Coletando dados..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Comando"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Configuração Comum"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-"Dificulta o ataque de reinstalação de chaves no lado do cliente ao "
-"desabilitar a retransmissão de quadros EAPOL-Key que são usados para "
-"instalar chaves. Esta solução de contorno pode causar problemas de "
-"compatibilidade e reduzir a robustez da negociação de chaves, especialmente "
-"em ambientes com muito tráfego."
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Configuração"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr "A configuração falhou"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr "Arquivos de configuração que serão mantidos"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr "A configuração foi aplicada."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr "A configuração foi revertida!"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Confirmação"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Conectar"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Conectado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Limite de conexão"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr "A tentativa de conexão falhou"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Conexões"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-"Não foi possível reestabelecer o acesso ao dispositivo depois de aplicar as "
-"mudanças na configuração. Pode ser necessário reconectar se você modificou "
-"configurações relacionadas a rede, como endereços IP ou credenciais de "
-"segurança da rede sem fio."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "País"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Código do País"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Utilizando a seguinte interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Utilizando as seguintes interfaces"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Criar / Atribuir a uma zona de firewall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Criar Interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Criar uma ponte juntando múltiplas interfaces"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Crítico"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Nível de Registro da Cron"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Interface Personalizada"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr "Prefixo IPv6 delegado personalizado"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-"Arquivos personalizados (certificados, scripts) podem permanecer no sistema. "
-"Para evitar isso, restaure antes as configurações inicias."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Se possível, personaliza o comportamento dos <abbr title=\"Diodo Emissor de "
-"Luz\">LED</abbr>s."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "Servidor DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP e DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "Cliente DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "Opções de DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr "Cliente DHCPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr "Modo DHCPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr "Serviço DHCPv6"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "Encaminhamentos DNS"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr "Rótulo DNS / FQDN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr "DNSSEC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr "Verificar DNSSEC sem assinatura"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr "Tempo de expiração para ociosidade do DPD"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr "Endereço DS-Lite AFTR"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr "DSL"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr "Estado da DSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr "Modo de linha DSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-"Intervalo <abbr title=\"Mensagem Indicativa de Envio de Tráfego/Delivery "
-"Traffic Indication Message\">DTIM</abbr>"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr "Taxa de Dados"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Depurar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "Padrão %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Roteador Padrão"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr "O padrão é sem estado + com estado"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Estado padrão"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Define um nome para esta rede."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Define opções adicionais do DHCP. Por exemplo "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" que anuncia diferentes servidores "
-"DNS para os clientes."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Apagar"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Apagar esta rede"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr "Intervalo da Mensagem Indicativa de Envio de Tráfego"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Descrição"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Destino"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Dispositivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Configuração do Dispositivo"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr "O dispositivo está reiniciando..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr "Dispositivo não alcançável!"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-"O dispositivo está fora de alcance! Ainda aguardando pelo dispositivo..."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Diagnóstico"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr "Número de discagem"
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Diretório"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Desabilitar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Desabilita <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> "
-"para esta interface."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr "Desabilitar Cifragem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr "Desabilitar esta rede"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Desabilitado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr "Desabilitado (padrão)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr "Desassociar quando tiver baixa confirmação de recebimento"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr ""
-"Descartar respostas de servidores externos para redes privadas (RFC1918)"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr "A tentativa de desconexão falhou"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr "Dispensar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Otimização de Distância"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Distância para o computador mais distante da rede (em metros)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Diversidade"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq é um servidor combinado de <abbr title=\"Protocolo de Configuração "
-"Dinâmica de Hosts\">DHCP</abbr> e <abbr title=\"Sistema de Nomes de Domínios"
-"\">DNS</abbr> para firewalls <abbr title=\"Tradução de Endereço de Rede"
-"\">NAT</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-"Não mantenha em cache para respostas negativas como, por exemplo, para os "
-"domínios inexistentes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"Não encaminhe requisições que não podem ser respondidas por servidores de "
-"nomes públicos"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr "Não encaminhe buscas por endereço reverso das redes local"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Requerer domínio"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "Lista branca de domínios"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr "Não Fragmentar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Não encaminhar consultas <abbr title=\"Sistema de Nomes de Domínios\">DNS</"
-"abbr> sem o nome completo do <abbr title=\"Sistema de Nomes de Domínios"
-"\">DNS</abbr>"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr "Abaixo"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Baixar a cópia de segurança"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr "Baixar o bloco mtd"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-"Deslocamento <abbr title=\"Razão entre Sinal e Ruído/Signal to Noise Ratio"
-"\">SNR</abbr> do sinal recebido"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Dropbear"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear oferece um acesso shell seguro à rede <abbr title=\"Shell Seguro"
-"\">(SSH)</abbr> e um servidor <abbr title=\"Cópia Segura\">SCP</abbr> "
-"integrado"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr "Duas Pilhas Leve (RFC6333)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"<abbr title=\"Protocolo de Configuração Dinâmica de Hosts\">DHCP</abbr> "
-"Dinâmico"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Túnel dinâmico"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"Aloca dinamicamente os endereços do DHCP para os clientes. Se desabilitado, "
-"somente os clientes com atribuições estáticas serão servidos."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr "Comprimento dos bits EA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "Método EAP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Editar"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-"Edite os dados de configuração brutos abaixo para arrumar qualquer erro e "
-"clique em \"Salvar\" para recarregar a página."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Editar esta interface"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Editar esta rede"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Emergência"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Ativar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-"Habilitar o monitoramento do <abbr title=\"Protocolo de Gerenciamento de "
-"Grupos da Internet/Internet Group Management Protocol\">IGMP</abbr> "
-"(Snooping)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Ativar <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "Ativar a atualização de ponto final dinâmico HE.net"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr "Ativar a negociação de IPv6"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "Ativar a negociação de IPv6 no enlace PPP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Ativar o encaminhamento de quadros jumbos (Jumbo Frames)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "Ativar o cliente <abbr title=\"Network Time Protocol\">NTP</abbr>"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr "Habilitar DES Simples"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Ativar servidor TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Ativar funcionalidade de VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr "Habilite o botão WPS. requer WPA(2)-PSK"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-"Habilitar contramedidas contra o ataque de reinstalação de chave (KRACK)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Ativar o aprendizado e obsolescência"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr "Habilitar espelhamento dos pacotes entrantes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr "Habilitar espelhamento dos pacotes saintes"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr "Habilita o campo DF (Não Fragmentar) dos pacotes encapsulados."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "Ativar esta montagem"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr "Habilitar esta rede"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "Ativar este espaço de troca (swap)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Ativar/Desativar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Ativado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-"Habilitar o monitoramento do <abbr title=\"Protocolo de Gerenciamento de "
-"Grupos da Internet/Internet Group Management Protocol\">IGMP</abbr> "
-"(Snooping) nesta ponte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-"Ativa a troca rápida entre pontos de acesso que pertencem ao mesmo Domínio "
-"de Mobilidade"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "Ativa o protocolo STP nesta ponte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Modo de encapsulamento"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Cifragem"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr "Equipamento do ponto final"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr "Porta do ponto final"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr "Entre com valor personalizado"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr "Entre com valores personalizados"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Apagando..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Erro"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr "Segundos com erro (ES)"
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Adaptador Ethernet"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Switch Ethernet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr "Excluir interfaces"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "Expandir arquivos de equipamentos conhecidos (hosts)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Expira"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-"Tempo de expiração dos endereços atribuídos. Mínimo é 2 minutos (<code>2m</"
-"code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr "Externo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr "Lista dos Detentor de Chave R0 Externa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr "Lista dos Detentor de Chave R1 Externa"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Servidor externo de registros do sistema (syslog)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Porta do servidor externo de registro do sistema (syslog)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr "Protocolo do servidor externo de registro do sistema (syslog)"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr "Opções adicionais do comando SSH"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-"<abbr title=\"Transição Rápida/Fast Transition\">FT</abbr> sobre  <abbr "
-"title=\"Sistema Distribuído/Distributed System\">DS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr "<abbr title=\"Transição Rápida/Fast Transition\">FT</abbr> pelo ar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-"Protocolo de <abbr title=\"Transição Rápida/Fast Transition\">FT</abbr>"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-"A confirmação das mudanças na configuração não foram confirmadas em %d "
-"segundos. Aguardando a reversão da configuração..."
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Arquivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "Nome do arquivo da imagem de boot anunciada para os clientes"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Sistema de Arquivos"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Filtrar endereços privados"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Filtrar consultas inúteis"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr "A finalização falhou"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-"Encontre todos os sistemas de arquivos e espaços de troca (swap) atualmente "
-"conectados e substitua a configuração com valores padrão baseados no que foi "
-"detectado"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Procurar e conectar à rede"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Terminar"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Firewall"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr "Marca do Firewall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Configurações do Firewall"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Estado do Firewall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr "Arquivo da Firmware"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Versão do Firmware"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "Porta de origem fixa para saída de consultas DNS"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Gravar Firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Gravar imagem..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Gravar nova imagem do firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Operações na memória flash"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Gravando na flash..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Forçar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr "Force o modo 40MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Forçar CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr "Forçar o DHCP nesta rede mesmo se outro servidor for detectado."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Forçar TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Forçar TKIP e CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr "Forçar o enlace"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr "Forçar a atualização"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr "Force o uso do NAT-T"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr "Chave eletrônica do formulário não casa"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "Encaminhar tráfego DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-"Segundos a frente de correção de erros ( <abbr title=\"Forward Error "
-"Correction Seconds\">FECS</abbr>)"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Encaminhar tráfego broadcast"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr "Encaminhar o tráfego do parceiro da malha"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Modo de encaminhamento"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Limiar de Fragmentação"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Explosão de Quadros (Frame Bursting)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Livre"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-"Mais informações sobre interfaces e parceiros WireGuard em <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Somente GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Roteador"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr "O endereço do roteador padrão é inválido"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Acesso remoto a portas encaminhadas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Configurações Gerais"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Configurações Gerais"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr "Gerar Configuração"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-"Gerar a <abbr title=\"Chave mestre do emparelhamento/Pairwise Master Key"
-"\">PMK</abbr> localmente"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Gerar arquivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "Generico 802.11%s Wireless Controlador"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr "A senha de confirmação informada não casa. Senha não alterada!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr "Configurações Globais"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr "Opções de rede globais"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Ir para a configuração de senha..."
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Ir para a página de configuração pertinente"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr "Senha do Grupo"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr "Convidado"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "Senha HE.net"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr "Usuário do HE.net"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-"Modo <abbr title=\"High Throughput/Alta Taxa de Transferência\">HT</abbr>  "
-"(802.11n)"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Suspender"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-"Erros de Código de Erro de Cabeçalho (<abbr title=\"Header Error Code\">HEC</"
-"abbr>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Aqui você pode configurar os aspectos básicos do seu equipamento, como o "
-"nome do equipamento ou o fuso horário."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-"Ocultar <abbr title=\"Identificador de Conjunto de Serviços Estendidos"
-"\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr "Equipamento"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Entradas de Equipamentos"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr "Tempo limite de expiração de equipamento"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr ""
-"<abbr title=\"Endereço do Protocolo de Internet\">IP</abbr> do Equipamento "
-"ou Rede"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr "Conteúdo da etiqueta única do equipamento"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Nome do equipamento"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "Nome do equipamento enviado quando requisitar DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Nome dos equipamentos"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr "Híbrido"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-"Grupo <abbr title=\"Diffie-Hellman\">DH</abbr>  do <abbr title=\"Internet "
-"Key Exchange/Troca de Chaves na Internet\">IKE</abbr>"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr "Endereços IP"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr "Protocolo IP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "Endereço IP"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr "O endereço IP é inválido"
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr "O endereço IP está ausente"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "Firewall para IPv4"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr "Enlace IPv4 Superior"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "Endereço IPv4"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr "Tamanho da atribuição IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "Broadcast IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "Roteador padrão IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "Máscara de rede IPv4"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr "Prefixo IPv4"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "Tamanho do prefixo IPv4"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr "IPv4+IPv6"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "Endereço IPv4"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr "IPv4-in-IPv4 (RFC2003)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "Firewall para IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr "Vizinhos IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr "Configurações IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-"Prefixo <abbr title=\"Unique Local Address/Endereço Local Único\">ULA</abbr> "
-"IPv6"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr "Enlace IPv6 Superior"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "Endereço IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr "Sugestão de atribuição IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr "Tamanho da atribuição IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "Roteador padrão do IPv6"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "Prefixo IPv6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "Tamanho Prefixo IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr "Prefixo roteável IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr "Sufixo IPv6"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "Endereço IPv6"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr "IPv6-PD"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6-in-IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6-sobre-IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6-sobre-IPv4 (6to4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identidade PEAP"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr "Se marcado, a cifragem 1DES será habilitada"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr "Se marcado, a cifragem estará desabilitada"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-"Se especificado, monta o dispositivo pelo seu UUID ao invés de um nó de "
-"dispositivo fixo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-"Se especificado, monta o dispositivo pela etiqueta da partiçãoo ao invés de "
-"um nó de dispositivo fixo"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "Se desmarcado, nenhuma rota padrão será configurada"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-"Se desmarcado, os endereços dos servidores DNS anunciados serão ignorados"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Se a sua memória física for insuficiente, os dados não utilizados poderão "
-"ser armazenados temporariamente em um dispositivo swap, resultando em uma "
-"maior quantidade de memória <abbr title=\"Memória de Acesso Aleatório\">RAM</"
-"abbr> utilizável. Esteja ciente de que a troca de dados (swap) é um processo "
-"muito lento, uma vez que o dispositivo swap não pode ser acessado com taxas "
-"de transferência tão altas com a memória <abbr title=\"Memória de Acesso "
-"Aleatório\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Ignorar <code>/etc/hosts</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Ignorar interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Ignorar arquivo de resolução de nomes (resolv.conf)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Imagem"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "Entrada"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-"Para prevenir acesso não autorizado neste sistema, sua requisição foi "
-"bloqueada. Clique abaixo em \"Continuar »\" para retornar à página anterior."
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "Tempo limite de inatividade"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Entrando:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Informação"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr "Falha na iniciação"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Script de iniciação"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Scripts de iniciação"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr "Instale iputils-traceroute6 para rastrear rotas IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Instalar pacote %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Instalar extensões de protocolo..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr "Dispositivo da interface %q foi migrada automaticamente de %q para &q."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Configuração da Interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Visão Geral da Interface"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "A interface está reconectando..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr "Nome da Interface"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "A interface não está presente ou não está conectada ainda."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Interfaces"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr "Interno"
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Erro Interno no Servidor"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Valor inválido"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-"O valor informado do ID da VLAN é inválido! Somente valores entre %d e %d "
-"são permitidos."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-"O valor informado do ID da VLAN é inválido! Somente valores únicos são "
-"permitidos"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Usuário e/ou senha inválida! Por favor, tente novamente."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr "Isolar Clientes"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"A imagem que está a tentar carregar aparenta nao caber na flash do "
-"equipamento. Por favor verifique o arquivo da imagem!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "É necessário JavaScript!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Conectar à Rede"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "Conectar à Rede: Busca por Rede Sem Fio"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr "Juntando-se à rede %q"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Manter configurações"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Registro do Kernel"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Versão do Kernel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Chave"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Chave #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Matar"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "Servidor L2TP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "Limite de falha no eco do LCP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "Intervalo do eco do LCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Etiqueta"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Idioma"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Idioma e Estilo"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr "Latência"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr "Folha"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr "Tempo de concessão"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Arquivo de atribuições"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Tempo restante da atribuição"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Deixe vazio para detectar automaticamente"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "Deixe vazio para usar o endereço WAN atual"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Legenda:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Limite"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-"Limite o serviço DNS para subredes das interfaces nas quais estamos servindo "
-"DNS."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr "Escute somente nestas interfaces e na interface local (loopback)."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr "Atenuação de Linha (<abbr title=\"Line Attenuation\">LATN</abbr>)"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr "Modo da Linha"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr "Estado da Linha"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr "Tempo de Atividade da Linha"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Enlace Ativo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"Lista dos servidores <abbr title=\"Domain Name System\">DNS</abbr> para "
-"encaminhar as requisições"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-"Lista dos R0KHs no mesmo Domínio de Mobilidade. <br /> Formato: Endereço "
-"MAC, Identificador NAS, chave de 128 bits como cadeia hexadecimal. <br /> "
-"Esta lista é usada para mapear o Identificador R0KH (Identificador NAS) para "
-"um endereço MAC de destino ao solicitar a chave PMK-R1 a partir do R0KH que "
-"o STA usado durante a Associação de Domínio de Mobilidade Inicial."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-"Lista dos R1KHs no mesmo Domínio de Mobilidade. <br /> Formato: Endereço "
-"MAC, R1KH-ID como 6 octetos com dois pontos, chave de 128 bits como cadeia "
-"hexadecimal. <br /> Esta lista é usada para mapear o identificador R1KH para "
-"um endereço MAC de destino ao enviar a chave PMK-R1 a partir do R0KH. Esta é "
-"também a lista de R1KHs autorizados no MD que podem solicitar chaves PMK-R1."
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr "Lista de arquivos de chaves SSH para autenticação"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr ""
-"Lista dos domínios para os quais será permitido respostas apontando para "
-"redes privadas (RFC1918)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-"Lista de servidores <abbr title=\"Domain Name System\">DNS</abbr> que "
-"fornecem resultados errados para consultas a domínios inexistentes (NX)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr "Interfaces de Escuta"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr "Porta de Escuta"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-"Escuta apenas na interface especificada. Se não especificado, escuta em todas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "Porta de escuta para a entrada das consultas DNS"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Carga"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Carga Média"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Carregando"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr "O endereço IP local é inválido"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr "Endereço IP local para atribuir"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Endereço IPv4 local"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Endereço IPv6 local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr "Somente Serviço Local"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Iniciação Local"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Hora Local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Domínio Local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-"Especificação do domínio local. Nomes que casam com este domínio nunca serão "
-"encaminhados e são resolvidos somente pelo DHCP ou pelo arquivos de "
-"equipamentos conhecidos (hosts)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-"Sufixo do domínio local adicionado aos nomes no DHCP e nas entradas dos "
-"arquivo de equipamentos conhecidos (hosts)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Servidor local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-"Localizar o nome do equipamento dependendo da subrede requisitante se "
-"mútliplos endereços IPs estiverem disponíveis"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Localizar consultas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr "Travado no canal %s usado por: %s"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Nível de detalhamento de saída dos registros"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Registar as consultas"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "Registrando os eventos"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Entrar"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Sair"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-"Segundos de Perda de Sinal (<abbr title=\"Loss of Signal Seconds\">LOSS</"
-"abbr>)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr "O endereço mais baixo concedido como deslocamento do endereço da rede."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr "MAC"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "Endereço MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Filtro de Endereço MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "Filtro de MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "Lista de MAC"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr "MAP / LW4over6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr "A regra MAC é inválida"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr "MD5"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr ""
-"<abbr title=\"Maximum Transmission Unit/Unidade Máxima de Transmissão\">MTU</"
-"abbr>"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-"Certifique-se que clonou o sistema de arquivos raiz com algo como o comando "
-"abaixo:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr "Manual"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-"Taxa de Dados Atingível Máxima (<abbr title=\"Maximum Attainable Data Rate"
-"\">ATTNDR</abbr>)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "Número máximo permitido de alocações DHCP ativas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "Número máximo permitido de consultas DNS concorrentes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "Tamanho máximo permitido dos pacotes UDP EDNS.0"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "Tempo máximo, em segundos, para esperar que o modem fique pronto"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-"Comprimento máximo do nome é de 15 caracteres, incluindo o prefixo "
-"automático do protocolo/ponte (br-, 6in4- pppoe-, etc.)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "Número máximo de endereços atribuídos."
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Memória"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Uso da memória (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr "Identificador da Malha"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Métrica"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr "Porta de monitoramento do espelho"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr "Porta de origem do espelho"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "Extensão para o protocolo %q está ausente"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr "Domínio da Mobilidade"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Modo"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr "Modelo"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr "Padrão do modem"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Dispositivo do Modem"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr "A consulta das informações do modem falhou"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "Estouro de tempo da iniciação do modem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Monitor"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "Entrada de Montagem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Ponto de Montagem"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Pontos de Montagem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "Pontos de Montagem - Entrada de Montagem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "Pontos de Montagem - Entrada da Swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Pontos de montagem definem em que ponto um dispositivo de armazenamento será "
-"anexado ao sistema de arquivos"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr "Monte sistemas de arquivos não especificamente configurados"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Opções de montagem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Ponto de montagem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr "Montar espalho de troca (swap) não especificamente configurado"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Sistemas de arquivos montados"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Mover para baixo"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Mover para cima"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr "Modo NAT-T"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr "Prefixo NAT64"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr "NCM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr "Proxy NDP"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr "Domínio NT"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "Candidatos a servidor NTP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Nome"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Nome da nova interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Nome da nova rede"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navegação"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Máscara de rede"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Rede"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Utilitários de Rede"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "Imagem de boot pela rede"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr "O dispositivo de rede não está presente"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Rede sem interfaces."
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Próximo »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Nenhum Servidor DHCP configurado para esta interface"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr "Sem NAT-T"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Nenhum arquivo encontrado"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Nenhuma informação disponível"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr "Não casou com nenhum prefixo delegado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "Nenhum cache negativo"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Nenhuma rede configurada neste dispositivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "Nenhum nome de rede foi especificado"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Nenhuma senha definida!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Sem regras nesta cadeia"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr "Ainda não existem resultados do escaneamento..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Nenhuma zona definida"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Ruído"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-"Margem de Ruído (<abbr title=\"Razão entre Sinal e Ruído/Signal to Noise "
-"Ratio\">SNR</abbr>)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Ruído:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-"Erros CRC Não Preemptivos<abbr title=\"Non Pre-emptive CRC errors\">CRC_P</"
-"abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr "Sem caracter curinga"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Nenhum"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Normal"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "Não Encontrado"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "Não conectado"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "Não conectado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr "Aviso: tamanho do nome da interface"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Aviso"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "Nslookup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr "Número de entradas DNS em cache (máximo é 10000, 0 desabilita o cache)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr "Senha Ofuscada do Grupo"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr "Senha Ofuscada"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr "Obter Endereço IPv6"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "Atraso no estado de desligado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"Nesta página pode configurar as interfaces de rede. Esta interface pode "
-"formar uma ponte juntando várias interfaces. Para isto, marque o campo "
-"\"Juntar interfaces em uma ponte\" e informar as várias interfaces de rede. "
-"Pode também usar a notação para <abbr title=\"Rede Local Virtual\">VLAN</"
-"abbr> <samp>INTERFACE.VLANNR</samp> (<abbr title=\"por exemplo\">ex.</abbr>: "
-"<samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "Atraso no estado de conexões"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr ""
-"É necessário especificar ao menos um nome de equipamento ou endereço MAC!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Um ou mais campos contém valores inválidos!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr "Um ou mais valores inválidos/obrigatórios na aba"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Um ou mais campos obrigatórios não tem valor!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Abrir lista..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr "OpenConnect (CISCO AnyConnect)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr "Frequência de Operação"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Opção alterada"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Opção removida"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr "Opcional"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-"Opcional. Marca 32 bits dos pacotes cifrados que estão saindo. Entre valores "
-"em hexadecimal, começando com <code>0x</code>."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-"Opcional. Valores permitidos: 'eui64', 'aleatório', ou valores fixos como "
-"'::1' ou '::1:2'. Quando o prefixo IPv6 (como 'a:b:c:d::') for recebido de "
-"um servidor, use este sufixo (como '::1') para formar o endereço IPv6 ('a:b:"
-"c:d::1') para esta interface."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-"Opcional. Adiciona uma camada extra de cifragem simétrica para resistência "
-"pós quântica."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr "Opcional. Cria rotas para endereços IP Autorizados para este parceiro."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr "Opcional. Descrição do parceiro."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-"Opcional. Equipamento do parceiro. Nomes serão resolvido antes de levantar a "
-"interface."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr "Opcional. Unidade Máxima de Transmissão da interface do túnel."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr "Opcional. Porta do parceiro."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-"Opcional. Segundos entre mensagens para manutenção da conexão. O padrão é 0 "
-"(desabilitado). O valor recomendado caso este dispositivo esteja atrás de "
-"uma NAT é 25."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr "Opcional. Porta UDP usada para pacotes saintes ou entrantes."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Opções"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Outro:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Saída"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "Saindo:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr "Interface de Saída"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "Sobrescrever o endereço MAC"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr ""
-"Sobrescrever o <abbr title=\"Maximum Transmission Unit/Unidade Máxima de "
-"Transmissão\">MTU</abbr>"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr "Sobrescrever o TOS"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr "Sobrescrever o TTL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr "Sobrescrever o nome da nova interface"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "Sobrescrever o roteador padrão nas respostas do DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-"Sobrescrever a máscara de rede enviada aos clientes. Normalmente, ela é "
-"calculada a partir da máscara da subrede de onde o cliente solicitou o "
-"endereço."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr "Sobrescrever a tabela usada para as rotas internas"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Visão geral"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Dono"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "Senha do PAP/CHAP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "Usuário do PAP/CHAP"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr "Código PIN rejeitado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr "PMK R1 Push"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "Encapsulamento PPPoA"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr "PPPoSSH"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr "Deslocamento PSID"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr "Comprimento dos bits PSID"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr "PTM/EFM (Modo de Transferência de Pacotes)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "O pacote libiwinfo é necessário!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Pacotes"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "Parte da zona %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Senha"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Autenticação por senha"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Senha da Chave Privada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr "Senha da Chave Privada interna"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr "Senha2"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Caminho para o Certificado da AC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "Caminho para o Certificado do Cliente"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Caminho para a Chave Privada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr "Caminho para o certificado AC interno"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr "Caminho para o Certificado do Cliente interno"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr "Caminho para a Chave Privada interna"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Pico:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr "Endereço IP do parceiro para atribuir"
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr "O endereço do parceiro está ausente"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr "Parceiros"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr "Sigilo Encaminhado Perfeito"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Reiniciar o sistema"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Restaurar as configuração iniciais"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr "Manutenção da Conexão Persistente"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "Taxa física:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Configurações Físicas"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ping"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Pcts."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Entre com o seu usuário e senha."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Política"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Porta"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Status da porta:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr "Modo de Gerenciamento de Energia"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-"Erros CRC Preemptivos<abbr title=\"Pre-emptive CRC errors\">CRCP_P</abbr>"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr "Preferir LTE"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr "Preferir UMTS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr "Prefixo Delegado"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr "Chave Compartilhada"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-"Assumir que o parceiro está morto depois de uma data quantidade de falhas de "
-"echo do LCP. Use 0 para ignorar as falhas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr "Evite escutar nestas Interfaces."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Impede a comunicação de cliente para cliente"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr "Chave Privada"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Proceder"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Processos"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr "Perfil"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Protocolo"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protocolo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Protocolo para a nova interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "O suporte ao protocolo não está instalado"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "Fornecer serviço <abbr title=\"Network Time Protocol\">NTP</abbr>"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "Prover nova rede"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Ad-Hoc falso (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr "Chave Pública"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-"Prefixo público roteado para este dispositivo para distribuição a seus "
-"clientes."
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr "Celular QMI"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Qualidade"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-"Consulte todos os servidores <abbr title=\\\"Sistema de Nomes de Domínios\\"
-"\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr "Validade da Chave R0"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr "Detentor da Chave R1"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr "Modo NAT-T (RFC3947)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "Limiar RTS/CTS"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "Taxa de RX"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Porta de contabilidade do RADIUS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Segredo da contabilidade do RADIUS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Servidor da contabilidade do RADIUS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Porta de autenticação do RADIUS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Segredo da autenticação do RADIUS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Servidor da autenticação do RADIUS"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-"Bytes brutos codificados em hexadecimal. Deixe vazio a não ser que seu "
-"provedor requeira isso"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Ler <code>/etc/ethers</code> para configurar o Servidor-<abbr title="
-"\"Protocolo de Configuração Dinâmica de Hosts\">DHCP</abbr>"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-"Você realmente quer apagar esta interface? Esta operação não pode ser "
-"desfeita! Você pode perder acesso a este dispositivo se você estiver "
-"conectado por meio desta interface"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"Realmente excluir esta interface Wireless? A exclusão não pode ser "
-"desfeita!\n"
-"Você poderá perder o acesso a este dispositivo se você estiver conectado "
-"através desta interface."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "Realmente limpar todas as mudanças?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "Realmente trocar o protocolo?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Conexões em Tempo Real"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Gráficos em Tempo Real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Carga em Tempo Real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Tráfego em Tempo Real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Rede sem fio em Tempo Real"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr "Limite para Reassociação"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "Proteção contra \"Rebind\""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Reiniciar"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Reiniciando..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Reinicia o sistema operacional do seu dispositivo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Receber"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Antena de Recepção"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr "Recomendado. Endereços IP da interface do WireGuard."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Reconectar esta interface"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Referências"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "Retransmissor"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "Ponte por Retransmissão"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "Encaminha o tráfego entre as redes"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "Ponte por retransmissão"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "Endereço IPv4 remoto"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr "Endereço IPv4 remoto ou FQDN"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Remover"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Repetir busca"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Substituir entrada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Substituir a configuração da rede sem fio"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr "Solicita endereço IPv6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr "Solicita prefixo IPv6 de tamanho"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr "Necessário"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-"Obrigatório para alguns provedores de internet, ex. Charter com DOCSIS 3"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr "Obrigatório. Chave privada codificada em Base64 para esta interface."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr "Necessário. Chave Pública do parceiro codificada como Base64."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-"Obrigatório. Endereços IP e prefixos que este parceiro está autorizado a "
-"usar dentro do túnel. Normalmente é o endereço IP do parceiro no túnel e as "
-"redes que o parceiro roteia através do túnel."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-"Exige o suporte DNSSEC do servidor superior; verifica se as respostas não "
-"assinadas realmente vêm de domínios não assinados"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Limpar"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Reiniciar contadores"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Redefinir para os valores padrão"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Arquivos de Resolv e Hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "Arquivo Resolv"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Reiniciar"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Reiniciar o firewall"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr "Reinicie a interface do rádio"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Restauração"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Restaurar cópia de segurança"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Relevar/esconder senha"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Reverter"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr "Reverter as mudanças"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-"O pedido para reverter as configurações falhou com o estado <code>%h</code>"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr "Revertendo configurações..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Raiz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "Diretório raiz para arquivos disponibilizados pelo TFTP"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr "Prepação da raiz (/)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr "Roteie Andereços IP Autorizados"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr "Tipo de rota"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr "Serviço de Anúncio de Roteador"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Senha do Roteador"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Rotas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"As rotas especificam através de qual interface e roteador um certo destino "
-"podem ser alcançado."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr ""
-"Execute a verificação do sistema de arquivos antes da montagem do dispositivo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Execute a verificação do sistema de arquivos"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr "SHA256"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr "SNR"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "Acesso SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr "Endereço do servidor SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr "Porta do servidor SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr "Usuário do SSH"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "Chaves SSH"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Salvar"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Salvar & Aplicar"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr "Salvar o bloco mtd"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr "Salvar o conteúdo do bloco mtd"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Procurar"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr "O pedido de escaneamento falhou"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Tarefas Agendadas"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Seção adicionada"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Seção removida"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "Veja o manual (man) do comando \"mount\" para detalhes"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-"Selecione 'Forçar a atualização' para gravar a imagem mesmo se a verificação "
-"do formato da imagem falhar. Use somente se você estiver confiante que a "
-"firmware está correta e é destinada para seu dispositivo!"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-"Enviar requisições de eco do LCP no dado intervalo em segundos. Somente "
-"efetivo em conjunto com o limite de falhas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Isolar Clientes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Configurações do Servidor"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Nome do Serviço"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Tipo do Serviço"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Serviços"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-"Definir as propriedades da interface independentemente da portadora do "
-"enlace (Se definido, eventos de detecção da portadora não irão gerar eventos "
-"do hotplug)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr "Configurar a Sincronização do Horário"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-"A configuração da <abbr title=\"Public Land Mobile Network\">PLNM</abbr> "
-"falhou"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr "A configuração do modo de operação falhou"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "Configurar Servidor DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-"Segundos com erro severos (<abbr title=\"Severely Errored Seconds\">SES</"
-"abbr>)"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr "Intervalo de guarda curto"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr "Preâmbulo curto"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "Mostra a lista atual de arquivos para a cópia de segurança"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Desligar esta interface"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Sinal"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr "Atenuação do Sinal (<abbr title=\"Signal Attenuation\">SATN</abbr>)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Sinal:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Tamanho"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr "Tamanho do cache de consultas DNS"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Pular"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Pular para o conteúdo"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Pular para a navegação"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "Intervalo de tempo"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr "VLAN em Software"
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Alguns campos estão inválidos e os valores não podem ser salvos!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "Desculpe o objeto solicitado não foi encontrado."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "Desculpe, o servidor encontrou um erro inesperado."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"Sinto muito, não existe suporte para o sysupgrade. Uma nova imagem de "
-"firmware deve ser gravada manualmente. Por favor, consulte a wiki para "
-"instruções específicas da instalação deste dispositivo."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Origem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "Especifica o diretório que o dispositivo está conectado"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "Especifica a porta de escuta deste <em>Dropbear</em>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-"Especifica a quantidade máxima de requisições ARP falhadas antes de "
-"considerar que um equipamento está morto"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-"Especifica a quantidade máxima de segundos antes de considerar que um "
-"equipamento está morto"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr "Especifique um Tipo de Serviço (TOS)"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-"Especifica o tempo de vida (<abbr title=\"Time to Live\">TTL</abbr>) para os "
-"pacotes encapsulados ao invés do padrão (64)."
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-"Especifica a unidade máxima de transmissão (<abbr title=\"Maximum "
-"Transmission Unit\">MTU</abbr>) ao invés do valor padrão (1280 bytes)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Especifique a chave de cifragem secreta aqui."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Iniciar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Prioridade de iniciação"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr "Iniciando a aplicação da configuração..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr "Iniciando o escaneamento da rede sem fio..."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Iniciação"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Rotas Estáticas IPv4"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Rotas Estáticas IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Alocações Estáticas"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Rotas Estáticas"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Endereço Estático"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"Alocações estáticas são usadas para definir um endereço IP fixo e nome "
-"simbólico para os clientes do DHCP. Elas também são necessárias para "
-"configurações não dinâmicas onde um computador com a alocação correspondente "
-"é provido."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Estado"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Parar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Ordem Exata"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Enviar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr "Suprimir registros (log)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr "Suprimir registros (log) de operações rotineiras destes protocolos"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr "Espaço de Troca (swap)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Entrada do espaço de troca (Swap)"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Switch"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "Switch %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "Switch %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-"O Switch %q tem uma topologia desconhecida - as configurações de VLAN podem "
-"não ser precisas."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr "Máscara da porta do Switch"
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr "Switch VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "Trocar o protocolo"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Sincronizar com o navegador"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Sincronizando..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Sistema"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Registro do Sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Propriedades do Sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "Tamanho do buffer de registro do sistema"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "Configurações do TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "Raiz do servidor TFTP"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "Taxa de TX"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Tabela"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Destino"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr "Rede de destino"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Terminar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"A seção da <em>Configuração do Dispositivo</em> engloba as configurações "
-"físicas do rádio como canal, potência de transmissão ou seleção da antena. "
-"Estas configurações são compartilhadas entre todas as redes sem fio (se o "
-"hardware for capaz de utilizar múltiplas SSID). As configurações específicas "
-"de cada rede, como cifragem ou modo de operação estão agrupadas na "
-"<em>Configuração da Interface</em>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"O pacote <em>libiwinfo-lua</em> não está instalado. Você precisa instalar "
-"este componente para ter uma configuração da rede sem fio funcional!"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-"A configuração da atualização de pontas HE.net mudou. Você deve agora usar o "
-"nome do usuário ao invés do identificador do usuário!"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr "O endereço IPv4 ou o nome completo (FQDN) da ponta remota do túnel."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-"O prefixo IPv6 atribuído pelo provedor, geralmente termina com<code>::</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"Os caracteres permitidos são: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> e <code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-"O arquivo de recuperação não parece ser um arquivo válido no formato GZIP."
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-"O arquivo de configuração não pode ser carregado devido ao seguinte erro:"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-"O dispositivo não foi alcançado em %d segundos depois de aplicar as "
-"configurações pendentes. Por questões de segurança, as configurações foram "
-"revertidas. Se você acredita que as mudanças de configuração estão realmente "
-"corretas, aplique as configurações sem verificação. Alternativamente, você "
-"pode dispensar este aviso e editar as configurações antes de tentar aplicá-"
-"las novamente, ou reverter todas as configurações pendentes e manter o "
-"estado atual em uso."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"O arquivo do dispositivo de armazenamento ou da partição (ex: <code>/dev/"
-"sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"O sistema de arquivos que foi usado para formatar a unidade de armazenamento "
-"(<abbr title=\"por exemplo\">ex.</abbr> <samp><abbr title=\"Sistema de "
-"Arquivos ext3\">ext3</abbr></samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"A imagem do firmware foi enviada. Abaixo estão a soma de verificação "
-"(checksum) e o tamanho dom arquivo. Compare-os com o arquivo original para "
-"garantir a integridade dos dados. <br /> Clique em \"Proceder\" para iniciar "
-"o procedimetno de gravação."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "As seguintes alterações foram revertidas"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "As seguintes regras estão atualmente ativas neste sistema."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "O nome de rede informado não é único"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-"Este equipamento não é capaz de utilizar SSID múltiplos e as configurações "
-"existentes serão substituídas se você proceder."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-"O comprimento do prefixo IPv4 em bits, o restante é usado nos endereços IPv6."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "O comprimento do prefixo IPv6 em bits"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr "O endereço IPv4 local sobre o qual o túnel será criado (opcional)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"As portas de rede neste dispositivo podem ser configuradas em diversas <abbr "
-"title=\"Virtual local Network\">VLAN</abbr>s nas quais computadores em uma "
-"mesma <abbr title=\"Virtual local Network\">VLAN</abbr> podem se comunicar "
-"diretamente. <abbr title=\"Virtual local Network\">VLAN</abbr>s são muitas "
-"vezes utilizadas para separar diferentes segmentos de rede. Em geral, existe "
-"uma porta para o enlace superior (uplink) e as demais portas são utilizadas "
-"para a rede local."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "O protocolo selecionado necessita estar associado a um dispositivo"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr "A chave eletrônica enviada é inválida ou já expirou!"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-"O sistema está apagando agora a partição da configuração e irá reiniciar "
-"quando terminado."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"O sistema está gravando o firmware para a flash.<br /> NÃO DESLIGUE O "
-"EQUIPAMENTO!<br /> Espere alguns minutos até tentar reconectar. Dependendo "
-"da sua configuração, pode ser necessário renovar o endereço do seu "
-"computador para poder conectar novamente ao roteador."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"A imagem carregada não contém um formato suportado. Confirme que você "
-"escolheu uma imagem para a sua plataforma."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Tema"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Não existem alocações ativas."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr "Não existem mudanças para aplicar."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "Não existem modificações pendentes para reverter!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "Não existem modificações pendentes!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-"Ainda não existe um dispositivo associado. Por favor, associe um dispositivo "
-"de rede na aba \"Configurações Físicas\""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"Não existem uma senha definida para este roteador. Por favor, configure uma "
-"senha para o root para proteger a interface WEB e habilitar o SSH."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr "Este endereço IPv4 do repassar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-"Este arquivo deve conter linhas como 'server=/domain/1.2.3.4' ou "
-"'server=1.2.3.4' para servidores <abbr title=\"Domain Name System/Sistema de "
-"Nomes de Domínios\">DNS</abbr> por domínio ou completos."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-"Esta é a lista dos padrões de expressão shell para casar com os arquivos e "
-"diretórios incluídos durante a atualização do sistema. Arquivos modificados "
-"em /etc/config/ e alguns outros arquivos de configuração são automaticamente "
-"preservados."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-"Isto é a \"Update Key\" configurada para o túnel ou a senha da cpnta se não "
-"tem uma \"Update Keu\" configurada"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"Este é o conteúdo do /etc/rc.local. Insira seus próprios comandos aqui "
-"(antes de 'exit 0') para executá-los no final do processo de boot."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-"Este é o endereço da ponta local designado pelo agente de túnel. normalmente "
-"ele termina com <code>...:2/64</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"Este é o único <abbr title=\"Protocolo de Configuração Dinâmica de Hosts"
-"\">DHCP</abbr> na rede local"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr "Este é o nome do usuário em para se autenticar na sua conta"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-"Este é o prefixo roteado pelo agente do tunel para você usar com seus "
-"clientes"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr "Este é o sistema de agendamento de tarefas."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-"Este é normalmente o endereço do <abbr title=\"Point of Presence, Ponto de "
-"Presença\">PoP</abbr> mais próximo operado pelo agente de túnel"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"Esta lista fornece uma visão geral sobre os processos em execução no sistema."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "Esta página fornece informações sobre as conexões de rede ativas."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Esta seção ainda não contêm valores"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Sincronização de horário"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "A sincronização do horário ainda não está configurada."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Fuso Horário"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"Para recuperar os arquivos de configuração, você pode enviar aqui uma cópia "
-"de segurança anterior. Para retornar o roteador para o seu estado inicial, "
-"clique em \"Restaurar as configurações iniciais\" (somente possível para "
-"imagens do tipo squashfs)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr "Tom"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Total Disponível"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Traceroute"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Tráfego"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Transferências"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Taxa de Transmissão"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Transmitir"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Potência de Transmissão"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Antena de Transmissão"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "Disparo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "Modo de disparo"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "Identificador do Túnel"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Interface de Tunelamento"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr "Enlace do túnel"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Potência de transmissão"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Tipo"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "UMTS somente"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "Dispositivo USB"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr "Portas USB"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr "Não foi possível determinar o nome do dispositivo"
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr "Não foi possível determinar o endereço IP externo"
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr "Não foi possível determinar a interface com a rede externa"
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr "Não é possível a expedição"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr "Não foi possível obter o identificador do cliente"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr "Não foi possível resolver o nome do AFTR"
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr "Não foi possível resolver o nome do parceiro"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-"Segundos de indisponibilidade (<abbr title=\"Unavailable Seconds\">UAS</"
-"abbr>)"
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Desconhecido"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr "Erro desconhecido (%s)"
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "Não gerenciado"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr "Desmontar"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Alterações Não Salvas"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-"Tipo de <abbr title=\"Mapeamento de Endereço e Porta/Mapping of Address and "
-"Port\">MAP</abbr> não suportado"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr "Modem não suportado"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Tipo de protocolo não suportado."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr "Acima"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"Envia uma imagem compatível do sistema para substituir o firmware em "
-"execução. Marque \"Manter configurações\" para manter as configurações "
-"atuais (requer uma imagem compatível)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Enviar arquivo..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Arquivo Carregado"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Tempo de atividade"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Usar <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "Use o roteador do DHCP"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "Use os servidores DNS anunciados pelo parceiro"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "Usar códigos de países ISO/IEC 3166 alpha2."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-"Use o <abbr title=\"Maximum Transmission Unit/Unidade Máxima de Transmissão"
-"\">MTU</abbr> na interface do túnel"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "Use TTL na interface do túnel"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr "Use como uma sobreposição externa (/overlay)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr "Usar como o sistema de arquivos raiz (/)"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "Use a marcação de broadcast"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr "Use o gerenciamento do IPv6 embarcado"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Use servidores DNS personalizados"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Use o roteador padrão"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "Use a métrica do roteador"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Use a tabela de roteamento"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"Use o botão <em>Adicionar</em> para adicionar uma nova entrada de "
-"atribuição. O endereço <em>MAC-Address</em> identifica o equipamento, o "
-"endereço <em>IPv4</em> especifica o endereço fixo para usar e o <em>nome do "
-"equipamento</em> é designado como nome simbólico (DNS) para o equipamento "
-"requisitante."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Usado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "Posição da Chave Usada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-"Usado para dois diferentes propósitos: identificador do RADIUS NAS e do "
-"802.11r R0KH. Não necessário com o WPA(2)-PSK normal."
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr "Certificado do usuário (codificado em formato PEM)"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr "Chave do usuário (codificada em formato PEM)"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Usuário"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr "VDSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLANs em %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLANs em %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr "Endereço Local da VPN"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr "Porta Local da VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "Servidor VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr "Porta do Servidor VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr "Resumo digital SHA1 do certificado do servidor VPN"
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr "VPNC (VPN do CISCO 3000 (e outros))"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr "Fabricante"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "Classe do fabricante para enviar quando requisitar o DHCP"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Verificar"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr "Interface virtual dinâmica"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "WEP Sistema Aberto"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "WEP Chave Compartilhada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "WEP Senha"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "Modo WMM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "WPA Senha"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"A cifragem WPA requer a instalação do wpa_supplicant (para modo cliente) ou "
-"do hostapd (para modo AP ou ad-hoc)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "Esperando a aplicação das mudanças..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "Esperando o término do comando..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr "Esperando que a configuração seja aplicada...%ds"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr "Esperando pelo dispositivo..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Atenção"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr "Atenção: Existem mudanças não salvas que serão perdidas ao reiniciar!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr "Largura"
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr "VPN WireGuard"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Rede sem fio"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Dispositivo de Rede sem Fio"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Rede sem Fio"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Visão Geral da Rede sem Fio"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Segurança da Rede sem Fio"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "Rede sem fio está desabilitada"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "Rede sem fio está não conectada"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "A rede sem fio está reiniciando..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "A rede sem fio está desabilitada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "A rede sem fio está habilitada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Escreva as requisições DNS para o servidor de registro (syslog)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr "Escrever registro do sistema (log) no arquivo"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Neste local, você pode ativar ou desativar os scripts de iniciação "
-"instalados. As mudanças serão aplicadas após a reiniciação do equipamento."
-"<br /><strong>Aviso: Se você desativar algum script de iniciação essencial "
-"como por exemplo \"rede/network\", o dispositivo poderá tornar-se "
-"inacessível!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"Você precisa habilitar o JavaScript no seu navegador ou o LuCI não irá "
-"funcionar corretamente."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-"Seu Internet Explorer é muito velho para mostrar esta página corretamente. "
-"Por favor, atualiza para, ao menos, a versão 7 ou use outro navegador como o "
-"Firefox, Opera ou Safari."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "qualquer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "automático"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "em ponte"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr "criar"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "criar:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "cria uma ponte sobre determinada(s) interface(s)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "desativar"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr "desabilitado"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "expirado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"arquivo onde as alocações <abbr title=\"Protocolo de Configuração Dinâmica "
-"de Hosts\">DHCP</abbr> são armazenadas"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "encaminhar"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "full-duplex"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "half-duplex"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "ocultar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr "modo híbrido"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "se o destino for uma rede"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "entrada"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr ""
-"arquivo local de <abbr title=\"Sistema de Nomes de Domínios\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr "minutos"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr "WPA/WPA2 em modo misto"
-
-# Is this yes/no or no like in no one?
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "não"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "sem link"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr "não presente"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "desligado"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "ligado"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "aberto"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr "saída"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr "sobreposição"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr "aleatório"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr "modo retransmissor"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "roteado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr "modo servidor"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr "somente com estado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr "sem estado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr "sem estado + com estado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "etiquetado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr "unidades de tempo (TUs / 1.024 ms) [1000-65535]"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "desconhecido"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "ilimitado"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "não especificado"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "não especificado -ou- criar:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "não etiquetado"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "sim"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Voltar"
-
-#~ msgid ""
-#~ "When using a PSK, the PMK can be generated locally without inter AP "
-#~ "communications"
-#~ msgstr ""
-#~ "Quando o PSK é usado, a <abbr title=\"Chave mestre do emparelhamento/"
-#~ "Pairwise Master Key\">PMK</abbr> pode ser gerada localmente sem "
-#~ "comunicação entre os pontos de acesso"
-
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr ""
-#~ "Aqui você pode colar as chaves públicas do SSH (uma por linha) para a "
-#~ "autenticação por chaves do SSH."
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "A senha foi alterada com sucesso!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "Erro Desconhecido, a senha não foi alterada!"
-
-#~ msgid "Design"
-#~ msgstr "Tema"
-
-#~ msgid "Available packages"
-#~ msgstr "Pacotes disponíveis"
-
-#~ msgid "Bind only to specific interfaces rather than wildcard address."
-#~ msgstr ""
-#~ "Vincule somente para as explicitamenteinterfaces ao invés do endereço "
-#~ "coringa."
-
-#~ msgid ""
-#~ "Build/distribution specific feed definitions. This file will NOT be "
-#~ "preserved in any sysupgrade."
-#~ msgstr ""
-#~ "Fonte de pacotes específico da compilação/distribuição. Esta NÃO será "
-#~ "preservada em qualquer atualização do sistema."
-
-#~ msgid ""
-#~ "Custom feed definitions, e.g. private feeds. This file can be preserved "
-#~ "in a sysupgrade."
-#~ msgstr ""
-#~ "Definições de fonte de pacotes personalizadas, ex: fontes privadas. Este "
-#~ "arquivo será preservado em uma atualização do sistema."
-
-#~ msgid "Custom feeds"
-#~ msgstr "Fontes de pacotes customizadas"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "Mostre somente os pacotes contendo"
-
-#~ msgid "Distribution feeds"
-#~ msgstr "Fontes de pacotes da distribuição"
-
-#~ msgid "Download and install package"
-#~ msgstr "Baixe e instale o pacote"
-
-#~ msgid "Filter"
-#~ msgstr "Filtro"
-
-#~ msgid "Find package"
-#~ msgstr "Procurar pacote"
-
-#~ msgid "Free space"
-#~ msgstr "Espaço livre"
-
-#~ msgid "General options for opkg"
-#~ msgstr "Opções gerais para o opkg"
-
-#~ msgid "Install"
-#~ msgstr "Instalar"
-
-#~ msgid "Installed packages"
-#~ msgstr "Pacotes instalados"
-
-#~ msgid "No package lists available"
-#~ msgstr "Nenhuma lista de pacotes disponível"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "Configuração-OPKG"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "As listas de pacotes são mais antigas do que 24 horas"
-
-#~ msgid "Package name"
-#~ msgstr "Nome do Pacote"
-
-#~ msgid "Size (.ipk)"
-#~ msgstr "Tamanho (.ipk)"
-
-#~ msgid "Software"
-#~ msgstr "Software"
-
-#~ msgid "Update lists"
-#~ msgstr "Atualizar listas"
-
-#~ msgid "Version"
-#~ msgstr "Versão"
-
-#~ msgid "none"
-#~ msgstr "nenhum"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "Desabilita a configuração do DNS"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 e IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "Somente IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "Somente IPv6"
-
-#~ msgid "Lease validity time"
-#~ msgstr "Tempo de validade da atribuição"
-
-#~ msgid "Multicast address"
-#~ msgstr "Endereço de Multicast"
-
-#~ msgid "Protocol family"
-#~ msgstr "Família do protocolo"
-
-#~ msgid "No chains in this table"
-#~ msgstr "Nenhuma cadeira nesta tabela"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "Os arquivos de configuração serão mantidos."
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Nota: Os arquivos de configuração serão apagados."
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Par: %s / Grupo: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "Ativar esta rede"
-
-#~ msgid "Hermes 802.11b Wireless Controller"
-#~ msgstr "Hermes 802.11b Wireless Controlador"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "A interface está desligando..."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "Interface reconectada"
-
-#~ msgid "Interface shut down"
-#~ msgstr "Interface desligada"
-
-#~ msgid "Prism2/2.5/3 802.11b Wireless Controller"
-#~ msgstr "Prism2/2.5/3 802.11b Wireless Controlador"
-
-#~ msgid "RaLink 802.11%s Wireless Controller"
-#~ msgstr "RaLink 802.11%s Wireless Controlador"
-
-#~ msgid ""
-#~ "Really shutdown interface \"%s\"? You might lose access to this device if "
-#~ "you are connected via this interface."
-#~ msgstr ""
-#~ "Realmente desligar esta interface\"%s\" ?\n"
-#~ "Você poderá perder o acesso a este dispositivo se você estiver conectado "
-#~ "através desta interface."
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "Reconectando interface"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "Desligar esta rede"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "A rede sem fio reiniciou"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "Rede sem fio desligada"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "Alocações do DHCP"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "Alocações DHCPv6"
-
-#~ msgid ""
-#~ "Really delete this interface? The deletion cannot be undone! You might "
-#~ "lose access to this device if you are connected via this interface."
-#~ msgstr ""
-#~ "Realmente excluir esta interface? A exclusão não pode ser desfeita!\n"
-#~ " Você poderá perder o acesso a este dispositivo se você estiver conectado "
-#~ "através desta interface."
-
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "Realmente desligar esta rede\"%s\" ?\n"
-#~ "Você poderá perder o acesso a este dispositivo se você estiver conectado "
-#~ "através desta interface."
-
-#~ msgid "Sort"
-#~ msgstr "Ordenar"
-
-#~ msgid "help"
-#~ msgstr "ajuda"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "Estado IPv4 da WAN"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "Estado IPv6 da WAN"
diff --git a/package/luci/modules/luci-base/po/pt/base.po b/package/luci/modules/luci-base/po/pt/base.po
deleted file mode 100644 (file)
index 28b70ba..0000000
+++ /dev/null
@@ -1,6600 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-26 19:03+0200\n"
-"PO-Revision-Date: 2013-09-22 18:50+0200\n"
-"Last-Translator: Low <pedroloureiro1@sapo.pt>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: pt\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(janela de %d minutos, intervalo de %d segundos)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s disponível)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(vazio)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(não existem interfaces ligadas)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Campo Adicional --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Por favor escolha --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- personalizado --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Carga de 1 Minuto:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Carga de 15 minutos:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Carga 5 Minutos:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr ""
-"<abbr title=\"Identificador de Conjunto Básico de Serviços\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr ""
-"Porta de consulta de <abbr title=\"Servidor de Nomes de Domínio\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr ""
-"Porta do servidor<abbr title=\"Servidor de Nomes de Domínio\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"Os servidores de <abbr title=\"Servidor de Nomes de Domínio\">DNS</abbr> "
-"serão consultados pela ordem no ficheiro resolv"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-"<abbr title=\"Identificador de Conjunto de Serviços Estendidos\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "Endereço <abbr title=\"Protocolo de Internet Versão 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "Gateway <abbr title=\"Protocolo de Internet Versão 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr ""
-"Máscara de rede <abbr title=\"Protocolo de Internet Versão 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Protocolo de Internet Versão 6\">IPv6</abbr>-Endereço ou Rede "
-"(CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "Gateway <abbr title=\"Protocolo de Internet Versão 6\">IPv6</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "Configuração do <abbr title=\"Diodo Emissor de Luz\">LED</abbr>"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "Nome da <abbr title=\"Diodo Emissor de Luz\">LED</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "Endereço <abbr title=\"Controle de Acesso ao Meio\">MAC</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"<abbr title=\"Máximo\">Max.</abbr> de concessões<abbr title=\"Protocolo de "
-"Configuracao Dinamica de Hosts\">DHCP</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"Tamanho <abbr title=\"Máximo\">Max.</abbr> do pacote <abbr title="
-"\"Mecanismos de Extensão para Sistemas de Nomes de Domínio\">EDNS0</abbr> "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"máximo\">Max.</abbr> consultas concorrentes"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "Limiar de tentativas ARP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "Bridges ATM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "Identificador Canais Virtuais ATM (VCI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "Identificador de Caminho Virtual ATM (VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"As bridges ATM expõem o encapsulamento ethernet em ligações AAL5 como uma "
-"interface de Rede Virtual Linux que pode ser usada em conjugação com o DHCP "
-"ou PPP para marcar para a rede ISP."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "Número de Dispositivo ATM"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Concentrador de Acesso"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Access Point (AP)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Acções"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-"Rotas-<abbr title=\"Protocolo de Internet Versão 4\">IPv4</abbr> ativas"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-"Rotas-<abbr title=\"Protocolo de Internet Versão 6\">IPv6</abbr> ativas"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Ligações Ativas"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Concessões DHCP Ativas"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Concessões DHCPv6 Ativas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Adicionar"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-"Adicionar um sufixo de domínio local aos nomes servidos dos ficheiros de "
-"hosts"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Adicionar uma nova interface..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Ficheiro Adicional de Hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Endereço"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Administração"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Definições Avançadas"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Alerta"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-"Permitir autenticação <abbr title=\"Shell Seguro\">SSH</abbr> por senha"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Permitir todos, excepto os listados"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Permitir somente os listados"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Permitir localhost"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"Permitir que hosts remotos se conectem às portas encaminhadas do SSH local"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Permitir o login como root só com password"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "Permitir que o utilizador <em>root</em> faça login só com password"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-"Permitir respostas a montante na gama 127.0.0.1/8, p.e. para serviços RBL"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Antena 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Antena 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Configuração das Antenas"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Qualquer zona"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Atribuir interfaces..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Estações Associadas"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Autenticação"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Autoritário"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Autorização Requerida"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Actualização Automática"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Disponível"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Média:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Voltar"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Voltar à Visão Global"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Voltar à configuração"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Voltar à vista global"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Voltar aos resultados do scan"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Backup"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Backup / Flashar Firmware"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Lista de ficheiros para backup"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Endereço mal especificado!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Abaixo está a lista de ficheiros para backup. Este consiste nos ficheiros de "
-"configuração alterados e marcados pelo opkg, ficheiros base essenciais e "
-"padrões de backup definidos pelo utilizador."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Taxa de bits"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Bridge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Ativar brigde nas interfaces"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Número de unidade da bridge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Levantar no arranque"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Controlador Wireless Broadcom 802.11%s"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Controlador Wireless Broadcom BCM%04x 802.11"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Uso da CPU (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Cadeia"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Alterações"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Alterações aplicadas."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Altera a password de administrador para acesso ao dispositivo"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Canal"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Verificar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Checksum"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Escolha a zona de firewall que pretende associar a esta interface. Escolha "
-"<em>não especificado</em> para remover a interface da zona associada ou "
-"coloque em branco o campo <em>criar</em> para definir a nova zona e ligar-"
-"lhe a interface."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"Escolha a rede(s) à(s) qual(is) deseja ligar esta interface wireless ou "
-"preencha o campo <em>criar</em> para definir a nova rede."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Cifra"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Clique em \"Gerar arquivo\" para descarregar o ficheiro tar com os actuais "
-"ficheiros de configuração."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Cliente"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "ID de cliente a enviar para pedidos de DHCP"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Fechar ligação inativa após um dado tempo em segundos, usando 0 a ligação é "
-"persistente"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Fechar lista..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "A obter dados..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Comando"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Configuração comum"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Configuração"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Confirmação"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Ligar"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Ligado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Limite de Ligações"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Ligações"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "País"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Código do País"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Abranger a seguinte interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Abranger as seguintes interfaces"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Criar / Atribuir a uma zona de firewall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Criar interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Criar uma bridge entre múltiplas interfaces "
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Critico"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Nível de Log do Cron"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Interface Personalizada"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Customiza o comportamento dos <abbr title=\"Diodo Emissor de Luz\">LED</"
-"abbr>s, se possível."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "Servidor DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP e DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "Cliente DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "Opções DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "Encaminhamentos DNS"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Depurar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Gateway predefinido"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Estado predefinido"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Definir um nome para esta rede."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Definir opções adicionais de DHCP, por exemplo "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" informa os clientes de diferentes "
-"servidores DNS."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Apagar"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Apagar esta rede"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Descrição"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Destino"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Dispositivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Configuração do Dispositivo"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Diagnósticos"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Directório"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Desativar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Desativar <abbr title=\"Protocolo Configuração Dinâmica de Hosts\">DHCP</"
-"abbr> para esta interface."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Desativado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "Descartar respostas RFC1918 a montante"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Optimização de Distância"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Distância para o último host da rede em metros."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Diversidade"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq é um servidor combinado de <abbr title=\"Protocolo de Configuração "
-"Dinâmica de Hosts\">DHCP</abbr> e <abbr title=\"Sistema de Nomes de Domínios"
-"\">DNS</abbr> para firewalls <abbr title=\"Tradução de Endereço de Rede"
-"\">NAT</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-"Não colocar em cache as respostas negativas, p.e. para dominios inexistentes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"Não encaminhar pedidos que não possam ser respondidos por servidor públicos "
-"de nomes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr "Não encaminhar lookups reversos para as redes locais"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Requerer domínio"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "Lista Branca do Dominio"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Não encaminhar consultas <abbr title=\"Sistema de Nomes de Domínios\">DNS</"
-"abbr> sem o nome do <abbr title=\"Sistema de Nomes de Domínios\">DNS</abbr>"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Descarregar backup"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Instância do Dropbear"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear oferece um acesso shell seguro à rede <abbr title=\"Shell Seguro"
-"\">SSH</abbr> e um servidor <abbr title=\"Cópia Segura\">SCP</abbr> integrado"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"<abbr title=\"Protocolo de Configuração Dinâmica de Hosts\">DHCP</abbr> "
-"Dinâmico"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Túnel dinâmico"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"Alocar dinamicamente endereços DHCP para clientes. Se desativado, só os "
-"clientes com reservas estáticas serão servidos."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "Metodo-EAP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Editar"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Editar esta interface"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Editar esta rede"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Emergência"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Ativar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Ativar <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "Ativar a atualização dinâmica de ponto final HE.net"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "Ativar a negociação IPv6 no link PPP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Ativar a passagem de Jumbo Frames"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "Ativar o cliente NTP"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Ativar o servidor TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Ativar a funcionalidade VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Ativar aprendizagem e envelhecimento"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "Ativar este mount"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "Ativar esta swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Ativar/Desativar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Ativado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "Ativa o Spanning Tree nesta bridge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Modo de encapsulamento"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Encriptação"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "A apagar..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Erro"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Adaptador Ethernet"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Switch Ethernet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "Expandir hosts"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Expira"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-#, fuzzy
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-"O tempo de caducidade dos endereços concessionados, minimo de 2 minutos "
-"(<code>2m</code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Servidor externo de logs de sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Porta do Servidor externo de logs de sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Ficheiro"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "Nome de ficheiro da imagem de boot a anunciar aos clientes"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Sistema de ficheiros"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Filtrar endereços privados"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Filtro inútil"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Procurar e ligar rede"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Terminar"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Firewall"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Definições da Firewall"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Estado da Firewall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Versão do Firmware"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "Porta fixa de origem para saída das consultas DNS"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Gravar Firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Flashar imagem..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Flashar nova imagem do firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "A programar...."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Forçar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Forçar CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr "Forçar DHCP nesta rede mesmo se outro servidor for detectado."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Forçar TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Forçar TKIP e CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "Encaminhar tráfego DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Encaminhar trafego de broadcast"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Modo de encaminhamento"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Margem de Fragmentação"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Frame Bursting"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Livre"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Só GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Gateway"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Portas de gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Definições Gerais"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Configuração Geral"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Gerar arquivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "Controlador Wireless Genérico 802.11%s"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-"A confirmação de password não corresponde, a password não foi alterada!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Ir para a configuração da password"
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Ir para a página respectiva de configuração"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "Password HE.net"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Suspender"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Aqui pode configurar os aspectos básicos do seu equipamento, como o nome do "
-"host ou o fuso horário."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-"Ocultar <abbr title=\"Identificador de Conjunto de Serviços Estendidos"
-"\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Entradas de hosts"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr ""
-"<abbr title=\"Endereço do Protocolo de Internet\">IP</abbr> do host ou rede"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Hostname"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "Hostname a enviar quando houver solicitação por DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Hostnames"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "Endereço IP"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "Firewall IPv4"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "Endereço IPv4"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "Broadcast IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "Gateway IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "Máscara IPv4"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "Comprimento do prefixo IPv4"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "Endereço-IPv4"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "Firewall IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "Endereço IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "Gateway IPv6"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "Prefixo IPv6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "Comprimento do prefixo IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "Endereço-IPv6"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6-em-IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6-sobre-IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6-sobre-IPv4 (6to4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identidade"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "Se desmarcado, não é configurada uma rota pré-definida"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "Se desmarcado, os endereços servidor DNS anunciados são ignorados "
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Se a memória física for insuficiente, os dados poderão ser trocados "
-"temporariamente para um dispositivo swap, resultando em uma maior quantidade "
-"de memória utilizável <abbr title=\"Memória de Acesso Aleatório\">RAM</"
-"abbr>. Esteja ciente de que a troca de dados (swap) é um processo muito "
-"lento pois o dispositivo swap não pode ser acedido com um nível elevado de "
-"memória <abbr title=\"Memória de Acesso Aleatório\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Ignorar <code>/etc/hosts</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Ignorar interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Ignorar ficheiro resolv.conf"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Imagem"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "Entrada"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "Tempo de inatividade"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Entrada:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Info"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Script de inicialização"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Scripts de Inicialização"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Instalar pacote %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Instalar extensões do protocolo..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Configuração da Interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Visão Geral da Interface"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "A interface está a religar..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "Interface não presente ou ainda não ligada."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Interfaces"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Erro Interno do Servidor"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Valor inválido"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-"O ID de VLAN fornecido é inválido! Só os IDs entre %d e %d são permitidos."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "O ID de VLAN fornecido é inválido! Só os IDs únicos são permitidos."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Username inválido e/ou a password! Por favor, tente novamente."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"A imagem que está a tentar carregar aparenta não caber na flash do "
-"equipamento. Por favor verifique o ficheiro de imagem."
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "É necessário JavaScript!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Associar Rede"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "Associar Rede: Procurar Redes Wireless"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Manter definições"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Registo do Kernel"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Versão do Kernel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Chave"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Chave #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Matar"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "Servidor L2TP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "Intervalo de echo LCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Etiqueta"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Idioma"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Língua e Tema"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Ficheiro de concessões"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Tempo de atribuição restante"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Deixar em branco para auto-detecção"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "Deixar em branco para usar o endereço WAN actual"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Legenda:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Limite"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Link Ativo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"Lista de servidores <abbr title=\"Sistema Nomes de Domínio\">DNS</abbr> para "
-"onde encaminhar os pedidos"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "Lista de dominios que permitem respostas RFC1918 para"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-"Escutar apenas na interface fornecida ou, se não especificada, em todas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "Porta de escuta para entrada de consultas DNS"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Carga"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Carga Média"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "A carregar"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Endereço IPv4 Local"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Endereço IPv6 Local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Arranque Local"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Hora Local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Domínio local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-#, fuzzy
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-"Especificação de dominio local. Os nomes que correspondam a este dominio "
-"nunca são encaminhados e resolvidos do DHCP ou do ficheiro de hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-"Sufixos de dominio local a juntar aos nomes DHCP e às entradas do ficheiro "
-"de hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Servidor local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Localizar consultas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Nível de output do log"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Registo das consultas"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Login"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Logout"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "Endereço-MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Filtro de Endereço-MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "Filtro-MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "Lista-MAC"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "Número máximo permitido de concessões DHCP ativas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "Número máximo permitido de consultas DNS permitidas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "Número máximo de segundos a esperar pelo modem para ficar pronto"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "Número máximo de endereços concessionados."
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Memória"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Uso de memória (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Métrica"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "Falta a extensão de protocolo para o protocolo %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Modo"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Dispositivo do modem"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Monitor"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "Montar Entrada"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Ponto de Montagem"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Pontos de Montagem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Pontos de montagem definem em que ponto um dispositivo de memória será "
-"anexado ao sistema de arquivos"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Ponto de montagem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Sistemas de arquivos montados"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Subir"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Descer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "Candidatos a servidor NTP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Nome"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Nome da nova interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Nome da nova rede"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navegação"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Mascara de rede"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Rede"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Ferramentas de Rede"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "Imagem de arranque via rede"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Rede sem interfaces."
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Seguinte »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Sem Servidor DHCP configurado nesta interface"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Não foram encontrados ficheiros"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Sem informação disponível"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "Sem cache negativa"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Nenhuma rede configurada no dispositivo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "Nome de rede não especificado"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Sem password definida!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Sem regras nesta cadeia"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Sem zona atribuída"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Ruído"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Ruído:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Nenhum"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Normal"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "Não encontrado"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "Não associado"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "Não ligado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Reparo"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "Nslookup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "Atraso do Off-State"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"Nesta página pode configurar as interfaces de rede. Pode ter várias "
-"interfaces do tipo bridge, assinalando o campo \"interfaces bridge\" e "
-"inserir os nomes de várias interfaces de rede separadas por espaços. Pode "
-"também usar a notação para <abbr title=\"Rede Local Virtual\">VLAN</abbr> "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"por exemplo\">ex.</abbr>: "
-"<samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "Atraso do On-State"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "Um nome de host ou endereço MAC deve ser especificado!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Um ou mais campos contêm valores inválidos!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Um ou mais campos obrigatórios não têm valores!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Abrir lista..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Opção alterada"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Opção removida"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Opções"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Outro:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Saída"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "Saída:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Visão Geral"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Dono"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "Password PAP/CHAP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "Utilizador PAP/CHAP"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "Encapsulamento PPPoA "
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtp"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "O pacote libiwinfo é necessário!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Pacotes"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "Parte da zona %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Senha"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Autenticação por senha"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Senha da Chave Privada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Directorio do Certificado CA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "Caminho para o Certificado de Cliente"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Caminho da Chave Privada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Pico:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Executar reinicialização"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Executar reset"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Definições Físicas"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ping"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Pkts."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Insira o seu username e password."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Política"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Porta"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Estado da porta:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Impede a comunicação cliente-a-cliente"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Proceder"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Processos"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Protocolo"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protocolo"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Protocolo da nova interface"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "O protocolo suportado não está instalado"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Pseudo Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Qualidade"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "RTS/CTS Threshold"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "Taxa RX"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Porta-Conta-Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Segredo-Conta-Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Servidor-Conta-Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Porta-Autenticação-Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Segredo-Autenticação-Radius"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Servidor-Autenticação-Radius"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Ler <code>/etc/ethers</code> para configurar o Servidor-<abbr title="
-"\"Protocolo de Configuração Dinâmica de Hosts\">DHCP</abbr>"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"Deseja mesmo apagar esta rede? A eliminação não poder desfeita!\n"
-"Pode perde a ligação ao dispositivo, caso esta ligado através desta rede."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "Deseja mesmo limpar todas as alterações?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "Deseja mesmo trocar o protocolo?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Ligações em Tempo Real"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Gráficos em Tempo Real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Carga em Tempo Real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Tráfego em Tempo Real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Wireless em Tempo Real"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "Religar protecção"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Reiniciar"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "A reiniciar..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Reinicia o seu dispositivo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Receber"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Antena de Recepção"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Reconetar esta interface"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Referências"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "Endereço IPv4 remoto"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Remover"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Repetir scan"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Substituir entrada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Substituir configuração wireless"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "Necessário para certos ISPs, p.ex. Charter with DOCSIS 3"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Reset"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Limpar contadores"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Ficheiros Resolv e Hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Reiniciar"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Reiniciar Firewall"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Restauração"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Restaurar backup"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Revelar/esconder password"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Reverter"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Password do Router"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Rotas"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"As rotas especificam através de que interfaces ou gateways podem ser "
-"alcançados determinadas redes ou hosts."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr ""
-"Correr uma verificação do sistema de ficheiros antes de montar um dispositivo"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Correr uma verificação do sistema de ficheiros"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "Acesso SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "Chaves-SSH"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Salvar"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Salvar & Aplicar"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Procurar"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Tarefas Agendadas"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Secção adicionada"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Secção removida"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Isolar Clientes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Nome do Serviço"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Tipo de Serviço"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Serviços"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-#, fuzzy
-msgid "Set up Time Synchronization"
-msgstr "Configurar Sincronização Horária"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "Configurar Servidor DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "Mostrar lista ficheiros para backup"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Desligar esta interface"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Sinal"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Sinal:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Tamanho"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Saltar"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Ir para o conteúdo"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Ir para a navegação"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Alguns campos são inválidos, não é possível gravar valores!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "Lamento, o objecto que pediu não foi encontrado."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "Lamento, o servidor encontrou um erro inesperado."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Origem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "Especifica as portas de escuta desta instância <em>Dropbear</em>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Iniciar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Prioridade de inicialização"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Rotas Estáticas IPv4"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Rotas Estáticas IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Atribuições Estáticas"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Rotas Estáticas"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Endereço estático"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Status"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Parar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Ordem exacta"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Enviar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Switch"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Sincronizar com o browser"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "A sincronizar..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Sistema"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Registo do Sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Propriedades do Sistema"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "Definições TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "Raíz do servidor TFTP"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Tabela"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Destino"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Terminar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"O pacote <em>libiwinfo-lua</em> não está instalado. Precisa de instalar este "
-"pacote para que a configuração wireless funcione!"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-"O prefixo IPv6 atribuído ao provider, habitualmente termina com <code>::</"
-"code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"Os caracteres permitidos são: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> e <code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"O arquivo do dispositivo de memória ou da partição (<abbr title=\"por exemplo"
-"\">ex.</abbr> <code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"O sistema que foi usado para formatar a memória (<abbr title=\"por exemplo"
-"\">ex.</abbr> <samp><abbr title=\"Sistema de Arquivos ext3\">ext3</abbr></"
-"samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"A imagem foi carregada. Abaixo está o checksum e o tamanho dos ficheiros, "
-"compare com o ficheiro original para assegurar a integração de dados.<br /> "
-"Click em \"Proceder\" para iniciar o procedimento."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "Foram recuperadas as seguintes alterações "
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "As seguintes regras estão actualmente acivas neste sistema."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "O nome dado não é único"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-#, fuzzy
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-"O hardware não é comporta multi-SSIDs a configuração será substituída se "
-"prosseguir."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-"O tamanho do perfico IPv4 em bits, o restante é usado em endereços IPv6."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "O comprimento do prefixo IPv6 em bits"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"As portas de rede neste dispositivo podem ser combinadas com várias <abbr "
-"title=\"Rede de Área Local Virtual\">VLAN</abbr>s onde os computadores podem "
-"comunicar directamente entre eles. <abbr title=\"Rede de Área Local Virtual"
-"\">VLAN</abbr>s são muito utilizadas para separar dois segmentos de rede "
-"diferentes. Muitas vezes existe por defeito uma porta de Uplink  para uma "
-"ligação para a rede acima como a internet ou outras portas de uma rede local."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "O protocolo escolhido precisa de um dispositivo atribuído."
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-"O sistema está agora a limpar a partição de configuração e irá reiniciar-se "
-"quando terminar."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"O sistema está a carregar o firmware para a flash.<br /> NÃO DESLIGUE O "
-"EQUIPAMENTO!<br /> Espere alguns minutos até tentar uma ligação. Dependendo "
-"da sua configuração, ode ser necessário renovar o endereço do seu computador "
-"para poder ligar novamente ao router."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"A imagem carregada não contém um formato suportado. Confirme que escolhe uma "
-"imagem genérica para a sua plataforma."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Tema"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Não há concessões ativas."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "Não há alterações pendentes para reverter!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "Não há alterações pendentes!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-"Ainda não há um dispositivo atribuído, por favor ligue um dispositivo de "
-"rede nas \"Definições Físicas\""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"Não há uma password definida neste router. Por favor defina uma senha de "
-"root para proteger a interface web e ativar o SSH."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"Este é o conteúdo de /etc/rc.local. Insira os seus próprios comandos aqui "
-"(antes de 'exit 0') para executá-los no final do processo de arranque."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"Este é o único <abbr title=\"Protocolo de Configuração Dinâmica de Hosts"
-"\">DHCP</abbr> na rede local"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr "Este é o sistema de agendamento de tarefas."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"Esta lista fornece uma visão geral sobre os processos em execução no sistema."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "Esta página fornece informações sobre as ligações de rede ativas."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Esta secção ainda não contêm valores"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Sincronização Horária"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "A sincronização horária ainda não está configurada."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Fuso Horário"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"Para restaurar os ficheiros de configuração, pode carregar aqui um ficheiro "
-"de backup gerado anteriormente. Para voltar as definições originais do "
-"firmware, clique \" Fazer reset\" (só possível com imagens squashfs)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Total Disponível"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Traceroute"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Tráfego"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Transferências"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Taxa de Transmissão"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Transmitir"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Potência de Transmissão"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Antena de Transmissão"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "Trigger"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "Modo de Trigger"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "ID do Túnel"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Interface de Túnel"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Potência de Tx"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Tipo"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "Só UMTS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "Dispositivo USB"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Desconhecido"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "Não gerido"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Alterações não Guardadas"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Tipo de protocolo não suportado."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Carregar arquivo..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Ficheiro carregado"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Uptime"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Usar <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "Usar a gateway do DHCP"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "Usar os servidores DNS fornecidos pelo parceiro"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Usar servidores DNS personalizados"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Usar gateway pre-definida"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Usar tabela de roteamento"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Usado"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Utilizador"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLANs em %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLANs em %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "Servidor VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Verificar"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "Sistema Aberto WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "Chave partilhada WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "Palavra-Passe WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "Modo WMM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "Palavra-Passe WPA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"A encriptação-WPA necessita do wpa_supplicant (para modo cliente) ou do "
-"hostapd (para modo AP ou ah-hoc) esteja instalado."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "A aguardar que as mudanças sejam aplicadas..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "A aguardar que o comando termine..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Aviso"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Rede Wireless"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Adaptador Wireless"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Rede Wireless"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Vista Global Wireless"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Segurança Wireless"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "Wireless desativada"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "Wireless não associada"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "A Wireless está a reiniciar..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "Wireless está desativado."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "A rede wireless está ativada"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Escrever os pedidos de DNS para o syslog"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Você pode ativar ou desativar os scripts de inicialização instalados aqui. "
-"As mudanças serão aplicadas após a reinicialização do equipamento.<br /"
-"><strong>Aviso: Se você desativar algum script de inicialização essencial "
-"como por exemplo \"rede/network\", o dispositivo poderá tornar-se "
-"inacessível!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"Tem de activar o JavaScript no seu browser ou a LuCI não funcionará "
-"corretamente."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "qualquer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "automático"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "criar:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "cria uma bridge sobre determinada(s) interface(s)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "desativar"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "expirou"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"Ficheiro onde as atribuições <abbr title=\"Protocolo de Configuração "
-"Dinâmica de Hosts\">DHCP</abbr> são armazenadas"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "full-duplex"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "half-duplex"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "escondido"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "se o destino for uma rede"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "entrada"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr ""
-"Ficheiro local de <abbr title=\"Sistema de Nomes de Domínios\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "não"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "sem link"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "desligado"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "ligado"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "abrir"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "desconhecido"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "ilimitado"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "não especificado"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "sim"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Voltar"
-
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr ""
-#~ "Aqui pode colar as chaves SSH (uma por linha) para a autenticação SSH por "
-#~ "chave pública."
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "Password alterada com sucesso!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "Erro Desconhecido, a password não foi alterada!"
-
-#~ msgid "Design"
-#~ msgstr "Tema"
-
-#~ msgid "Available packages"
-#~ msgstr "Pacotes disponíveis"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "Mostrar somente pacotes contendo"
-
-#~ msgid "Download and install package"
-#~ msgstr "Descarregar e instalar pacote"
-
-#~ msgid "Filter"
-#~ msgstr "Filtro"
-
-#~ msgid "Find package"
-#~ msgstr "Procurar pacote"
-
-#~ msgid "Free space"
-#~ msgstr "Espaço livre"
-
-#~ msgid "Install"
-#~ msgstr "Instalar"
-
-#~ msgid "Installed packages"
-#~ msgstr "Instalar pacotes"
-
-#~ msgid "No package lists available"
-#~ msgstr "Não há listas de pacotes disponiveis"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "Configuração-OPKG"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "As listas de pacotes têm mais de 24 horas"
-
-#~ msgid "Package name"
-#~ msgstr "Nome do pacote"
-
-#~ msgid "Software"
-#~ msgstr "Software"
-
-#~ msgid "Update lists"
-#~ msgstr "Actualizar listas"
-
-#~ msgid "Version"
-#~ msgstr "Versão"
-
-#~ msgid "none"
-#~ msgstr "nenhum"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "Desativar configuração de DNS"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 e IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "Só IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "Só IPv6"
-
-#~ msgid "Lease validity time"
-#~ msgstr "Tempo de validade da concessão"
-
-#~ msgid "Multicast address"
-#~ msgstr "Endereço de multicast"
-
-#~ msgid "Protocol family"
-#~ msgstr "Família do protocolo"
-
-#~ msgid "No chains in this table"
-#~ msgstr "Tabela sem chains"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "Os ficheiros de configuração serão mantidos."
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Nota: Os ficheiros de configuração serão apagados."
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Emparelhada: %s / Grupo: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "Ativar esta rede"
-
-#~ msgid "Hermes 802.11b Wireless Controller"
-#~ msgstr "Controlador Wireless Hermes 802.11b"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "A interface está a desligar..."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "Interface religada"
-
-#~ msgid "Interface shut down"
-#~ msgstr "Desligar interface"
-
-#~ msgid "Prism2/2.5/3 802.11b Wireless Controller"
-#~ msgstr "Controlador Wireless Prism2/2.5/3 802.11b"
-
-#~ msgid "RaLink 802.11%s Wireless Controller"
-#~ msgstr "Controlador Wireless RaLink 802.11%s"
-
-#~ msgid ""
-#~ "Really shutdown interface \"%s\"? You might lose access to this device if "
-#~ "you are connected via this interface."
-#~ msgstr ""
-#~ "Deseja mesmo desligar a interface \"%s\" ?\n"
-#~ "Pode perder o acesso ao dispositivo se estiver ligado através desta "
-#~ "interface."
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "A reconectar interface"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "Desligar esta rede"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "Rede wireless reiniciada"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "Desligar wireless"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "Concessões DHCP"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "Concessões DHCPv6"
-
-#~ msgid ""
-#~ "Really delete this interface? The deletion cannot be undone! You might "
-#~ "lose access to this device if you are connected via this interface."
-#~ msgstr ""
-#~ "Deseja mesmo apagar esta interface? A eliminação não poder desfeita!\n"
-#~ "Pode perde a ligação ao dispositivo, caso esta ligado através desta "
-#~ "interface."
-
-#, fuzzy
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "Deseja mesmo desligar esta rede?\n"
-#~ "Pode perder o acesso ao dispositivo se estiver ligado através desta rede."
-
-#~ msgid "Sort"
-#~ msgstr "Ordenar"
-
-#~ msgid "help"
-#~ msgstr "ajuda"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "Estado WAN IPv4"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "Estado WAN IPv6"
-
-#~ msgid "Apply"
-#~ msgstr "Aplicar"
-
-#~ msgid "Applying changes"
-#~ msgstr "A aplicar as alterações"
-
-#~ msgid "Configuration applied."
-#~ msgstr "Configuração aplicada."
-
-#~ msgid "Save &#38; Apply"
-#~ msgstr "Salvar &#38; Aplicar"
-
-#~ msgid "The following changes have been committed"
-#~ msgstr "As seguintes alterações foram escritas"
-
-#~ msgid "There are no pending changes to apply!"
-#~ msgstr "Não há alterações pendentes para aplicar!"
-
-#~ msgid "Action"
-#~ msgstr "Acção"
-
-#~ msgid "Buttons"
-#~ msgstr "Botões"
-
-#~ msgid "Handler"
-#~ msgstr "Handler"
-
-#~ msgid "Maximum hold time"
-#~ msgstr "Tempo máximo de espera"
-
-#~ msgid "Minimum hold time"
-#~ msgstr "Tempo de retenção mínimo"
-
-#~ msgid "Path to executable which handles the button event"
-#~ msgstr "Caminho do executável que lida com o botão de eventos"
-
-#~ msgid "This page allows the configuration of custom button actions"
-#~ msgstr ""
-#~ "Esta página permite a configuração de botões para acções personalizadas."
-
-#~ msgid "Leasetime"
-#~ msgstr "Tempo de concessão"
-
-#, fuzzy
-#~ msgid "automatic"
-#~ msgstr "estático"
-
-#~ msgid "AR Support"
-#~ msgstr "Suporte AR"
-
-#~ msgid "Atheros 802.11%s Wireless Controller"
-#~ msgstr "Controlador Wireless Atheros 802.11%s"
-
-#~ msgid "Background Scan"
-#~ msgstr "Procurar em Segundo Plano"
-
-#~ msgid "Compression"
-#~ msgstr "Compressão"
-
-#~ msgid "Disable HW-Beacon timer"
-#~ msgstr "Desativar temporizador de HW-Beacon"
-
-#~ msgid "Do not send probe responses"
-#~ msgstr "Não enviar respostas a sondas"
-
-#~ msgid "Fast Frames"
-#~ msgstr "Frames Rápidas"
-
-#~ msgid "Maximum Rate"
-#~ msgstr "Taxa Máxima"
-
-#~ msgid "Minimum Rate"
-#~ msgstr "Taxa Mínima"
-
-#~ msgid "Multicast Rate"
-#~ msgstr "Taxa de Multicast"
-
-#~ msgid "Outdoor Channels"
-#~ msgstr "Canais de Outdoor"
-
-#~ msgid "Regulatory Domain"
-#~ msgstr "Domínio Regulatório"
-
-#~ msgid "Separate WDS"
-#~ msgstr "Separar WDS"
-
-#~ msgid "Static WDS"
-#~ msgstr "WDS Estático"
-
-#~ msgid "Turbo Mode"
-#~ msgstr "Modo Turbo"
-
-#~ msgid "XR Support"
-#~ msgstr "Suporte XR"
-
-#~ msgid "An additional network will be created if you leave this unchecked."
-#~ msgstr "Uma rede adicional será criada se deixar isto desmarcado."
-
-#~ msgid "Join Network: Settings"
-#~ msgstr "Associar Rede: Definições"
-
-#~ msgid "CPU"
-#~ msgstr "CPU"
-
-#~ msgid "Port %d"
-#~ msgstr "Porta %d"
-
-#~ msgid "VLAN Interface"
-#~ msgstr "Interface VLAN"
diff --git a/package/luci/modules/luci-base/po/ro/base.po b/package/luci/modules/luci-base/po/ro/base.po
deleted file mode 100644 (file)
index 4cc48dc..0000000
+++ /dev/null
@@ -1,6353 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-04-01 23:12+0200\n"
-"Last-Translator: xcentric <webcctvservice@gmail.com>\n"
-"Language-Team: none\n"
-"Language: ro\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
-"20)) ? 1 : 2);;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(%d fereastra minute, %d interval secunde)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s disponibil)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(gol)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(nici o interfata atasata)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Camp suplimentar --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Te rog sa alegi --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- particularizat --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Incarcarea in ultimul minut"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Incarcarea in ultimele 15 minute"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Incarcarea in ultimele 5 minute"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr>port de apelare"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> port server"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"<abbr title=\"Domain Name System\">DNS</abbr> serverul va interoga in "
-"vederea procesarii fisierului"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "Adresa <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Poarta Acces "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "Masca de retea <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Addresa retea (CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Poarta Acces"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> Configurare"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> Nume"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Media Access Control\">MAC</abbr>-Addresa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> marime pachet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"maximal\">Max.</abbr> interogari simultane"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "ARP prag reincercare"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "Punti ATM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "ATM Indentificator Canal Virtual (VCI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "ATM Indentificator Cale Virtual(VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"Puntile ATM expune reteaua intergrata în conexiunile AAL5 ca interfețe "
-"virtuale de rețea Linux care pot fi utilizate în asociere cu DHCP sau PPP "
-"pentru a forma în rețeaua furnizorului."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "ATM numar echipament"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Concentrator de Access "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Punct de Acces"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Actiune"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "Rute active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "Rute active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Conexiuni active"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Adauga"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr "Adauga un sufix local numelor servite din fisierele de tip hosts"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Adauga interfata noua.."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Fisiere de tip hosts aditionale"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Adresa"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Adresa de acces punte locala repetor"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Administrare"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Setari avansate"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Alerta"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-"Permite autentificarea prin parola a <abbr title=\"Secure Shell\">SSH</abbr> "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Permite toate cu exceptia celor listate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Permite doar cele listate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Permite localhost"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr "Permite statiilor externe sa se conecteze la porturile SSH locale"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Permite autentificarea contului root cu parola"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "Permite contului <em>root</em> sa se autentifice cu parola"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-"Permite raspuns upstream in plaja 127.0.0.0/8, e.g. pentru serviciile RBL"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Antena 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Antena 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Configurarea Antenei"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Orice Zona"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Inregistreaza interfetele"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Statiile asociate"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Autentificare"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Autoritare"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Necesita Autorizare"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Reimprospatare automata"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Disponibil"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Medie:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Inapoi"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Inapoi la sumar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Inapoi la Configurare"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Inapoi la vedere generala"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Inapoi la rezultatele scanarii"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Salveaza"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Salveaza / Scrie Firmware"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Salveaza lista fisiere"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Adresa specificata gresit !"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Bitrate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Bogus NX Domain Override"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Punte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Leaga interfetele"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Numarul unitatii in punte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Activeaza la pornire"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Broadcom 802.11%s Controller Fara Fir"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Broadcom BCM%04x 802.11 Controller Fara Fir"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Incarcat"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Utilizarea procesorului (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Anuleaza"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Lant"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Modificari"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Modificari aplicate."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Schimba parola administratorului pentru accesarea dispozitivului"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Canal"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Verificare"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Suma de verificare"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Alege zona paravanului care doresti sa o aloci acestei interfete. Selecteaza "
-"<em>nespecificat</em> pentru a sterge interfata sau golire <em>creaza</em> "
-"camp ce defineste o zona noua asociata interfetei."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Colectez datele.."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Comanda"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Configurarea obisnuita"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Configurare"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Confirmare"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Conectare"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Conectat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Limita de conexiune"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Conexiuni"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Tara"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Codul de tara"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Creaza interfata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Critic"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "Server DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP si DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "Optiuni DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Stare implicita"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Definiti un nume pentru aceasta retea."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Sterge"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Sterge aceasta retea"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Descriere"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Destinatie"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Dispozitiv"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Configurarea dispozitivului"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Diagnosticuri"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Director"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Dezactiveaza"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Dezactiveaza <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> "
-"pentru aceasta interfata."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Dezactivat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Optimizarea distantei"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Distanta catre cel mai departat membru din retea in metri."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Diversitate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Domeniul necesar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Descarca backup"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Instanta dropbear"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Editeaza"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Editeaza aceasta interfata"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Editeaza aceasta retea"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Urgenta"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Activeaza"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Activeaza <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Activeaza serverul TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Activeaza VLAN-urile"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Activeaza/Dezactiveaza"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Activat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Modul de incapsulare"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Criptare"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Stergere..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Eroare"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Adaptor de retea ethernet"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Switch-ul ethernet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Expira"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Server de log-uri extern"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Portul serverului de log-uri extern"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Fisier"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Sistem de fisiere"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Filtreaza privatele"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Filtreaza nefolositele"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Gaseste si alatura in retea"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Termina"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Firewall"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Setarile firewall-ului"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Status la firewall"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Versiunea de firmware"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "Portul sursa pentru intrebarile DNS catre exterior"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Rescrie firmware"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Forteaza"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Forteaza CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-"Forteaza facilitatea DHCP in aceasta retea chiar daca alt server DHCP exista."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Forteaza TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Forteaza TKIP si CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Liber"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Doar GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Gateway"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Porturile gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Setari principale"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Configurare generala"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr "Confirmarea parolei nu se potriveste cu prima, parola neschimbata !"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Aici poti configura aspectele de baza ale dispozitivului cum ar fi numele "
-"sau fusul orar."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "Ascunde <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Intrari de tip host"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Numele de host"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Nume de host"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "Adresa IP"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "Firewall IPv4"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "Adresa IPv4"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "Adresa IPv4"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "Firewall IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "Adresa IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identitate"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Imagine"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Intrare:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Informatii"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Script de initializare"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Scripturi de initializare"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Instalati pachetul %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Interfata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Configurarea interfetei"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Prezentare interfata"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "Interfata se reconecteaza.."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "Interfata nu e prezenta sau nu este conectata inca."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Interfete"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Eroare interna de server"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Invalid"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Utilizator si/sau parola invalide! Incearcati din nou."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Se pare ca ai incercat sa rescrii o imagine care nu are loc in memoria "
-"flash, verifica fisierul din nou!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "Ai nevoie de JavaScript !"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Pastrati setarile"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Log-ul kernelului"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Versiunea de kernel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Opreste"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Eticheta"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Limba"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Limba si stilul interfetei"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Legenda:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Limita"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Incarcarea"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Incarcarea medie"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Incarcare"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Adresa IPv4 locala"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Adresa IPv6 locala"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Ora locala"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Domeniu local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Server local"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Autentificare"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Iesire"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "Numarul maxim de intrebari DNS simultane"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Memorie"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Utilizarea memoriei (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Metrica"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Mod"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Nume"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Numele interfetei noi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Numele interfetei noi"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navigare"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Netmask"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Retea"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Utilitare de retea"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Mai departe »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Nici un server DHCP configurat pentru aceasta interfata"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Nici un fisier gasit"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Nici o informatie disponibila"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Nici o retea configurata pe acest dispozitiv"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Nici o parola setata !"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Zgomot"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Zgomot:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Normal"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "Nu a fost gasit"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "Nu este asociat."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "Nu este conectat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Notificare"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Unul sau mai multe campuri contin valori invalide !"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Unul sau mai multe campuri nu contin valori !"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Optiunea schimbata"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Optiunea eliminata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Optiuni"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Altele:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Iesire"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Prezentare generala"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Proprietar"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "Incapsulare PPPoA"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "Pachetul libiwinfo este necesar !"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Pachete"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Parola"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Autentificarea cu parola"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Parola cheii private"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Calea catre certificatul CA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Calea catre cheia privata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Maxim:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Restarteaza"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Reseteaza"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "Rata phy:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Setarile fizice"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Packete."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Introdu utilizatorul si parola."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Port"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Stare port:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Continua"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Procese"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protocol"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Calitate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Citeste fisierul <code>/etc/ethers</code> pentru configurarea serverului "
-"<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>-"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Conexiuni in timp real"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Grafice in timp real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Incarcarea in timp real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Traficul in timp real"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Rebooteaza"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Rebooteaza sistemul de operare al dispozitivului tau"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Antena receptorului"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Reconecteaza aceasta interfata"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Referinte"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Elimina"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Repeta scanarea"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Inlocuieste intrarea"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Inlocuieste configuratia wireless"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Reset"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Reseteaza counterii"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Fisierele de rezolvare si hosturi DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "Fisierul de rezolvare"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Restart"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Restarteaza firewallul"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Restaureaza"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Reface backup-ul"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Arata / ascunde parola"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Parola routerului"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Rute"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "Acces SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "Cheile SSH"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Salveaza"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Salveaza si aplica"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Scan"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Operatiuni programate"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Sectiune adaugata"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Sectiune eliminata"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Setarile serverului"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Nume serviciu"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Tip de serviciu"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Servicii"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-#, fuzzy
-msgid "Set up Time Synchronization"
-msgstr "Configurare sincronizare timp"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "Seteaza serverul DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Opreste aceasta interfata"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Semnal"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Semnal:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Marime"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Sursa"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Start"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Pornire"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Rute statice IPv4"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Rute statice IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Rute statice"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Status"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Stop"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Trimite"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Sistem"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Log de sistem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Proprietati sistem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "Setarile TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Tabel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Tinta"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Termina"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "Nu exista modificari in asteptare de anulat !"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "Nu exista modificari in asteptare !"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"Nu exista o parola pe acest router. Configureaza o parola la contul root "
-"pentru a proteja interfata web si porni SSH."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Fusul orar"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Total disponibil"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Trafic"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Transfer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Rata de transmitere"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Puterea de transmitere"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Antena de transmitere"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Interfata de tunel"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Puterea TX"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Tip"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "Doar UMTS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "Dispozitiv USB"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Necunoscut"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "Neadministrate"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Modificari nesalvate"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Tipul de protocol neacceptat."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Fisier incarcat"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Uptime"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Foloseste <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "Foloseste codurile de tara ISO/IEC 3166 alpha2."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Folosit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "Slot de cheie folosit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Utilizator"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLANuri pe %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "Sistem deschis WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "Sistem de cheie impartasita WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "Parola WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "Mod WMM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "Parola WPA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"Criptarea WPA necesita wpa_supplicant (pentru modul client) sau hostapd "
-"(pentru modul AP sau ad-hoc) instalate."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Avertizare"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Wireless"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Adaptorul wireless"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Retea wireless"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Sumarul wireless"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Securitate wireless"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "Wireless-ul este dezactivat"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "Wireless-ul este ne-asociat"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "Wireless-ul se restarteaza.."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "Reteaua wireless este dezactivata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "Reteaua wireless este activata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Scrie cererile DNS primite in syslog"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "oricare"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "auto"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "dezactiveaza"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "expirat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "ascuns"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "daca tinta este o retea"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "nu"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "rutat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "etichetat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "necunoscut"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "nelimitat"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "nespecificat"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "neetichetat"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "da"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Inapoi"
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "Parola schimbata cu succes !"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "Eroare necunoscuta, parola neschimbata !"
-
-#~ msgid "Available packages"
-#~ msgstr "Pachete disponibile"
-
-#~ msgid "Download and install package"
-#~ msgstr "Descarca si instaleaza pachetul"
-
-#~ msgid "Filter"
-#~ msgstr "Filtreaza"
-
-#~ msgid "Find package"
-#~ msgstr "Gaseste pachet"
-
-#~ msgid "Free space"
-#~ msgstr "Spatiu liber"
-
-#~ msgid "Install"
-#~ msgstr "Instalati"
-
-#~ msgid "Installed packages"
-#~ msgstr "Pachete instalate"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "Configuratia-OPKG"
-
-#~ msgid "Package name"
-#~ msgstr "Numele pachetului"
-
-#~ msgid "Software"
-#~ msgstr "Software"
-
-#~ msgid "Version"
-#~ msgstr "Versiune"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "Dezactiveaza configuratia DNS"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 si IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "Doar IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "Doar IPv6"
-
-#~ msgid "Protocol family"
-#~ msgstr "Familia de protocol"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "Fisierele de configurare vor fi pastrate."
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Nota: fisierele de configurare vor fi sterse."
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "Activeaza aceasta retea"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "Interfata se opreste.."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "Interfata reconectata"
-
-#~ msgid "Interface shut down"
-#~ msgstr "Interfata oprita"
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "Interfata se reconecteaza chiar acum"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "Opreste aceasta retea"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "Wireless-ul restartat"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "Wireless-ul oprit"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "Conexiuni DHCP"
-
-#~ msgid "help"
-#~ msgstr "ajutor"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "Statusul IPv4 pe WAN"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "Statusul IPv6 pe WAN"
-
-#~ msgid "Apply"
-#~ msgstr "Aplica"
-
-#~ msgid "Applying changes"
-#~ msgstr "Se aplica modificarile"
-
-#~ msgid "Configuration applied."
-#~ msgstr "Configurarea aplicata."
-
-#~ msgid "Save &#38; Apply"
-#~ msgstr "Salveaza &#38; Aplica"
-
-#~ msgid "There are no pending changes to apply!"
-#~ msgstr "Nu exista modificari in asteptare de aplicat !"
-
-#~ msgid "Action"
-#~ msgstr "Actiune"
-
-#~ msgid "Buttons"
-#~ msgstr "Butoane"
-
-#~ msgid "Path to executable which handles the button event"
-#~ msgstr "Calea catre executabilul care se ocupa de evenimentul butonului"
-
-#~ msgid "AR Support"
-#~ msgstr "Suport AR"
-
-#~ msgid "Atheros 802.11%s Wireless Controller"
-#~ msgstr "Atheros 802.11%s Controler Fara Fir"
-
-#~ msgid "Background Scan"
-#~ msgstr "Scanare in fundal"
-
-#~ msgid "Compression"
-#~ msgstr "Comprimare"
-
-#~ msgid "Maximum Rate"
-#~ msgstr "Rata maxima"
-
-#~ msgid "Minimum Rate"
-#~ msgstr "Rata minima"
-
-#~ msgid "Multicast Rate"
-#~ msgstr "Rata de multicast"
-
-#~ msgid "Regulatory Domain"
-#~ msgstr "Domeniu regulatoriu"
-
-#~ msgid "Turbo Mode"
-#~ msgstr "Mod turbo"
-
-#~ msgid "XR Support"
-#~ msgstr "Suport XR"
-
-#~ msgid "An additional network will be created if you leave this unchecked."
-#~ msgstr ""
-#~ "Daca lasati aceasta optiune neselectata va fi creata o retea aditionala"
-
-#~ msgid "CPU"
-#~ msgstr "Procesor"
-
-#~ msgid "Port %d"
-#~ msgstr "Port %d"
-
-#~ msgid "VLAN Interface"
-#~ msgstr "Interfata VLAN"
diff --git a/package/luci/modules/luci-base/po/ru/base.po b/package/luci/modules/luci-base/po/ru/base.po
deleted file mode 100644 (file)
index 8b4a5be..0000000
+++ /dev/null
@@ -1,6488 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: LuCI: base\n"
-"POT-Creation-Date: 2010-05-09 01:01+0300\n"
-"PO-Revision-Date: 2019-01-15 06:45+0300\n"
-"Last-Translator: Anton Kikin <a.kikin@tano-systems.com>\n"
-"Language-Team: http://cyber-place.ru\n"
-"Language: ru\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.2\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"Project-Info: Это технический перевод, не дословный. Главное-удобный русский "
-"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr "%.1f дБ"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr "%d бит"
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr "%d неверных полей"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr "%s не тегирован в множестве VLAN!"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(%d минутное окно, %d секундный интервал)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s доступно)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(пусто)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(нет связанных интерфейсов)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Дополнительно --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Сделайте выбор --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- пользовательский --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr "-- проверка по устройству --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr "-- проверка по метке --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr "-- проверка по uuid --"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr "-- сделайте выбор --"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Загрузка за 1 минуту:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Загрузка за 15 минут:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr "4-х значный шестнадцатеричный ID"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr "464XLAT (CLAT)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Загрузка за 5 минут:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr "6-октетный идентификатор в виде шестнадцатеричной строки без двоеточий"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr "802.11r Быстрый Роуминг"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr "802.11w Association SA Query максимальное время ожидания"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr "802.11w время ожидания повтора Association SA Query"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr "802.11w Management Frame Protection"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr "802.11w максимальное время ожидания"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr "802.11w время ожидания повтора"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Идентификатор Набора Базовых Сервисов\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Система доменных имён\">DNS</abbr> порт запроса"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Система доменных имен\">DNS</abbr> порт сервера"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"<abbr title=\"Система доменных имен\">DNS</abbr> сервера будут опрошены в "
-"порядке, определенном в resolvfile файле"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Расширенный идентификатор обслуживания\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Интернет протокол версии 4\">IPv4</abbr>-адрес"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Интернет протокол версии 4\">IPv4</abbr>-шлюз"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Интернет протокол версии 4\">IPv4</abbr>-маска сети"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Интернет протокол версии 6\">IPv6</abbr>-адрес или сеть (CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Интернет протокол версии 6\">IPv6</abbr>-шлюз"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr "<abbr title=\"Интернет протокол версии 6\">IPv6</abbr>-суффикс (hex)"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "Настройка <abbr title=\"Светодиод\">LED</abbr> индикации"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "Имя <abbr title=\"Светодиод\">LED</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Управление доступом к носителю\">MAC</abbr>-адрес"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr "<abbr title=\"Уникальный идентификатор DHCP\">DUID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"<abbr title=\"максимальное\">Макс.</abbr> кол-во аренд <abbr title="
-"\"Протокол динамической настройки узла\">DHCP</abbr> аренды"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"максимальный\">Макс.</abbr><abbr title=\"Extension Mechanisms "
-"for Domain Name System\">EDNS0</abbr> размер пакета"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr ""
-"<abbr title=\"максимальное\">Макс.</abbr> кол-во одновременных запросов"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-"<br />Внимание: вы должны вручную перезапустить службу cron, если этот файл "
-"был пустым перед внесением ваших изменений."
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr "Время сессии истекло, требуется повторная аутентификация."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr "A43C + J43 + A43"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr "A43C + J43 + A43 + V43"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr "ADSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr "ANSI T1.413"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "Порог повтора ARP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr "ATM (режим асинхронной передачи)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "ATM мосты"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "ATM идентификатор виртуального канала (VCI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "ATM идентификатор виртуального пути (VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"Мосты ATM предоставляют собой инкапсулированные ethernet соединения в AAL5, "
-"как виртуальные сетевые интерфейсы Linux, которые могут использоваться "
-"совместно с DHCP или PPP для набора номера в сети провайдера."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "ATM номер устройства"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr "ATU-C идентификатор производителя"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Концентратор доступа"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Точка доступа"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Действия"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-"Активные <abbr title=\"Интернет протокол версии 4\">IPv4</abbr>-маршруты"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-"Активные <abbr title=\"Интернет протокол версии 6\">IPv6</abbr>-маршруты"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Активные соединения"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Активные DHCP аренды"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Активные DHCPv6 аренды"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Добавить"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr "Добавить IPv4 адрес..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr "Добавить IPv6 адрес..."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr "Добавить ключ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-"Добавить локальный суффикс домена для имен из файла хостов (/etc/hosts)"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Добавить новый интерфейс..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Дополнительный hosts файл"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr "Дополнительные файлы серверов"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Адрес"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Адрес для доступа к локальному мосту-ретранслятору"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Управление"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Дополнительные настройки"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr "Aggregate Transmit Power (ACTATP)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Тревога"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr "Псевдоним"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr "Псевдоним интерфейса \"%s\""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr "Все серверы"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-"Выделять IP-адреса последовательно, начинать с меньшего доступного адреса"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr "Выделять IP-адреса последовательно"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-"Разрешить <abbr title=\"Secure Shell\">SSH</abbr> аутентификацию с помощью "
-"пароля"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-"Разрешить режиму AP отключение абонентов на основании низкого уровня "
-"подтверждения (Acknowledge) успешности получения TCP-сегментов"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Разрешить все, кроме перечисленных"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr "Разрешить использование стандарта 802.11b"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Разрешить только перечисленные"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Разрешить локальный хост"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"Разрешить удаленным хостам подключаться к локальным перенаправленным портам "
-"SSH"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Root входит по паролю"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr ""
-"Разрешить пользователю <em>root</em> входить в систему с помощью пароля"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-"Разрешить ответы внешней сети в диапазоне 127.0.0.0/8, например, для RBL-"
-"сервисов"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr "Разрешенные IP-адреса"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr "Объявлять всегда, как маршрутизатор по умолчанию"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr "Всегда выключен (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr "Всегда включен (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-"Всегда использовать каналы 40 МГц, даже если вторичный канал перекрывается. "
-"Использование этой опции не соответствует стандарту IEEE 802.11n-2009!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr "Annex"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr "Annex A + L + M (all)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr "Annex A G.992.1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr "Annex A G.992.2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr "Annex A G.992.3"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr "Annex A G.992.5"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr "Annex B (all)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr "Annex B G.992.1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr "Annex B G.992.3"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr "Annex B G.992.5"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr "Annex J (all)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr "Annex L G.992.3 POTS 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr "Annex M (all)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr "Annex M G.992.3"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr "Annex M G.992.5"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-"Объявить маршрутизатором по умолчанию, даже если общедоступный префикс "
-"недоступен."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr "Объявить DNS домены"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr "Объявить DNS сервера"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr "Анонимная идентификация"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr "Неизвестный раздел"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr "Неизвестный swap"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Антенна 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Антенна 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Настройка антенн"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Любая зона"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr "Применить без проверки"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr "Ошибка <code>%h</code> запроса на применение"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr "Архитектура"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-"Задайте часть данной длины, каждому публичному IPv6-префиксу этого интерфейса"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Назначить интерфейсы..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-"Назначьте префикс части, используя этот шестнадцатеричный ID вложенного "
-"исправления для этого интерфейса."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Подключенные клиенты"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr "Ассоциации"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr "Группа аутентификации"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Аутентификация"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr "Тип аутентификации"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Основной"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Выполните аутентификацию"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Автообновление"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr "Автоматически"
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr "Автоматическая Homenet (HNCP)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-"Автоматическая проверка файловой системы раздела на ошибки, перед "
-"монтированием"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-"Автоматическое монтирование раздела, при подключении к системе во время её "
-"работы, без выключения питания и остановки системы (hotplug)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-"Автоматическое монтирование раздела подкачки при подключении к системе во "
-"время её работы без выключения питания и остановки системы (hotplug)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr "Hotplug раздела"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr "Hotplug раздела подкачки"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Доступно"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Средняя:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr "B43 + B43C"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr "B43 + B43C + V43"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr "BR / DMR / AFTR"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Назад"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Назад к обзору"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Назад к настройкам"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Назад к обзору"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Назад к результатам поиска"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Резервное копирование"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Резервное копирование / Перепрошивка"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Список файлов для резервного копирования"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Указан неправильный адрес!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr "Диапазон"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr "Интервал рассылки пакетов Beacon"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Ниже приводится определённый список файлов для резервного копирования. Он "
-"состоит из измененных config файлов, отмеченных opkg, необходимых базовых "
-"файлов, а также шаблонов резервного копирования, определенных пользователем."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-"Привязывать динамически к интерфейсам, а не по шаблону адреса (рекомендуется "
-"по умолчанию для Linux)"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr "Открытый интерфейс"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr "Открытый туннель для этого интерфейса (необязательно)."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Скорость"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Переопределение поддельного NX-домена"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Мост"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Объединить в мост"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Номер моста"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Запустить при загрузке"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Беспроводной 802.11%s контроллер Broadcom"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Беспроводной 802.11 контроллер Broadcom BCM%04x"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Буферизировано"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-"CA сертификат; если отсутствует, будет сохранен после первого соединения."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Загрузка ЦП (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr "Ошибка вызова"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Отменить"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr "Категория"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr "Внимание: файлы конфигурации будут удалены"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr "Внимание: выбрано принудительное обновление системы"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Цепочка"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr "Изменить пароль"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Изменения"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Изменения приняты."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr "Изменения были возвращены назад."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Изменить пароль администратора для доступа к устройству"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr "Изменение пароля..."
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Канал"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-"Канал %d не доступен в регуляторном домене %s и был автоматически изменен на "
-"%d."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Проверить"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr "Проверка файловых систем перед монтированием"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-"Проверьте эту опцию, чтобы удалить существующие сети беспроводного "
-"устройства."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Контрольная сумма"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr "Выберите MTD раздел"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Укажите зону, которую вы хотите прикрепить к этому интерфейсу. Выберите "
-"<em>'не определено'</em>, чтобы удалить этот интерфейс из зоны, или "
-"заполните поле <em>'создать'</em>, чтобы определить новую зону и прикрепить "
-"к ней этот интерфейс."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"Выберите интерфейс или интерфейсы, которые вы хотите прикрепить к данной "
-"беспроводной сети или заполните поле <em>создать</em>, чтобы создать новый "
-"интерфейс."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Алгоритм шифрования"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr "Формирование пакетов данных Cisco UDP "
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Нажмите 'Создать архив', чтобы загрузить tar-архив текущих config файлов "
-"прошивки устройства, таким образом вы сохраните его настройки."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-"Нажмите \"Сохранить MTD раздел\" для скачивания образа указанного MTD "
-"раздела (ВНИМАНИЕ: ДАННЫЙ ФУНКЦИОНАЛ ТОЛЬКО ДЛЯ ОПЫТНЫХ ПОЛЬЗОВАТЕЛЕЙ)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Клиент"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "ID клиента при DHCP-запросе"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr "Закрыть"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Завершать неактивное соединение после заданного интервала (сек.), "
-"используйте значение 0 для удержания неактивного соединения"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Закрыть список..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Сбор данных..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Команда"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr "Комментарий"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Общие настройки"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-"Усложняет атаки на переустановку ключа на стороне клиента, отключая "
-"ретрансляцию фреймов EAPOL-Key, которые используются для установки ключей. "
-"Может вызвать проблемы совместимости и снижение надежности согласования "
-"нового ключа, при наличии большого трафика."
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Настройка config файла"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr "Ошибка конфигурации"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr "Конфигурационные файлы будут сохранены"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr "Конфигурация применена"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr "Конфигурация возвращена назад!"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Подтверждение пароля"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Соединить"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Подключен"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Ограничение соединений"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr "Ошибка попытки соединения"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Соединения"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-"Не удалось восстановить доступ к устройству после применения конфигурации. "
-"Возможно вам придется подключиться заново, если вы изменили сетевые "
-"настройки, такие как IP-адрес или параметры доступа к беспроводной сети."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Страна"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Код страны"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Включить следующий интерфейс"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Включить следующие интерфейсы"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Создать / назначить зону сетевого экрана"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Создать интерфейс"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Создать мост над несколькими интерфейсами"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Критическая ситуация"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Запись событий cron"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Пользовательский интерфейс"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr "Установленный пользователем IPv6-prefix"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-"Пользовательские файлы (сертификаты, скрипты) могут остаться в системе. "
-"Чтобы этого не произошло, выполните сначала сброс к заводским настройкам."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr "Произвольный интервал мигания (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Настройка поведения светодиодной индикации <abbr title=\"Светодиод\">LED</"
-"abbr> устройства, если это возможно."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr "DAE-Клиент"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr "DAE-Порт"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr "DAE-Секрет"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "DHCP-сервер"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP и DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "DHCP-клиент"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "DHCP настройки"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr "DHCPv6 клиент"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr "DHCPv6 режим"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr "DHCPv6 сервис"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "Перенаправление запросов DNS"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr "DNS-Label / FQDN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr "DNSSEC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr "DNSSEC проверка без знака"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr "DPD время простоя"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr "DS-Lite AFTR-адрес"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr "DSL"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr "Состояние DSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr "DSL линейный режим"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr "Интервал DTIM"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr "Скорость передачи данных"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Отладка"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "По умолчанию %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr "Маршрут по умолчанию"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Шлюз по умолчанию"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr "Значение по умолчанию — 'stateless + stateful'"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Начальное состояние"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Укажите имя этой сети."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Определить дополнительные опции DHCP, например, "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\", чтобы известить клиентов о DNS-"
-"серверах."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Удалить"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr "Удалить ключ"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Удалить эту сеть"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr "Интервал сообщений, регламентирующий доставку трафика"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Описание"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Направление"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Устройство"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Настройка устройства"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr "Перезагрузка..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr "Устройство недоступно!"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr "Устройство недоступно! Ожидание устройства..."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Диагностика"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr "Dial номер"
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Папка"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Отключить"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Отключить <abbr title=\"Протокол динамической настройки узла\">DHCP</abbr> "
-"для этого интерфейса."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr "Отключить шифрование"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr "Отключить отслеживание неактивности клиентов"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr "Отключить данную сеть"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Отключено"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr "Отключено (по умолчанию)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr "Не ассоциировать при низком подтверждении"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "Отбрасывать ответы внешней сети RFC1918"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr "Отключить"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr "Ошибка попытки отключения"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr "Отклонить"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Оптимизация расстояния"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Расстояние до самого удалённого сетевого узла в метрах."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Разновидность антенн"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq содержит в себе <abbr title=\"Протокол динамической настройки узла"
-"\">DHCP</abbr>-сервер и <abbr title=\"Служба доменных имён\">DNS</abbr>-"
-"прокси для сетевых экранов <abbr title=\"Преобразование сетевых адресов"
-"\">NAT</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr "Не кешировать отрицательные ответы, в т.ч. для несуществующих доменов"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"Не перенаправлять запросы, которые не могут быть обработаны публичными DNS-"
-"серверами"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr "Не перенаправлять обратные DNS-запросы для локальных сетей"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr "Вы действительно хотите удалить следующий SSH-ключ?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Требуется домен"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "Белый список доменов"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr "Не фрагментировать"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Не перенаправлять <abbr title=\"Служба доменных имён\">DNS</abbr>-запросы "
-"без <abbr title=\"Служба доменных имён\">DNS</abbr>-имени"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr "Вниз"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Загрузить резервную копию"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr "Скачать MTD раздел"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr "SNR offset внутренней сети"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Экземпляр Dropbear"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear — это <abbr title=\"Secure Shell\">SSH</abbr>-сервер со встроенным "
-"<abbr title=\"Secure Copy\">SCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr "Dual-Stack Lite (RFC6333)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"Динамический <abbr title=\"Протокол динамической настройки узла\">DHCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Динамический туннель"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"Динамически выделять DHCP-адреса клиентам. Если выключено, то будут "
-"обслужены только клиенты с постоянно арендованными адресами."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr "EA-bits длина"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "Метод EAP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Изменить"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-"Изменить данные конфигурации raw выше, чтобы исправить любую ошибку и "
-"нажмите 'Сохранить', чтобы перезагрузить страницу."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Изменить этот интерфейс"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Редактировать эту сеть"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Чрезвычайная ситуация"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Включить"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-"Включить <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Включить <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "Включить динамическое обновление оконечной точки HE.net"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr "Включить IPv6 negotiation"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "Включить IPv6-согласование на PPP-соединении"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Пропускать Jumbo-кадры"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "Включить NTP-клиент"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr "Включить Single DES"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Включить TFTP-сервер"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Включить поддержку VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr "Включить WPS при нажатии на кнопку, в режиме WPA(2)-PSK"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr "Включить защиту от атаки KRACK"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Включить изучение и устаревание (learning/aging)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr "Включить отражение входящих пакетов"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr "Включить отражение исходящих пакетов"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr "Включите флаг DF (не Фрагментировать) инкапсулирующих пакетов."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "Включить эту точку монтирования"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr "Включить данную сеть"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "Включить этот раздел подкачки"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Включить/выключить"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Включено"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr "Включает IGMP snooping на данном мосту"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-"Включить быстрый роуминг между точками доступа, принадлежащими к тому же "
-"домену мобильности"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "Включает Spanning Tree Protocol на этом мосту"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Режим инкапсуляции"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Шифрование"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr "Конечная точка Хоста"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr "Конечная точка Порта"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr "Введите пользовательское значение"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr "Введите пользовательские значения"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Стирание..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Ошибка"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr "Ошибочные секунды (ES)"
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Ethernet-адаптер"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Ethernet-коммутатор"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr "Исключите интерфейсы"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "Расширять имена узлов"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr "Ожидаемое значение %s"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Истекает"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-"Время истечения срока аренды арендованных адресов, минимум 2 минуты "
-"(<code>2m</code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr "Внешний"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr "Внешний R0 Key Holder List"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr "Внешний R0 Key Holder List"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Внешний сервер системного журнала"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Порт внешнего сервера системного журнала"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr "Внешний протокол лог-сервера"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr "Дополнительные опции команды SSH"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr "FT над DS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr "FT над the Air"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr "FT протокол"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-"Не удалось подтвердить применение в течении %d сек., ожидание отката..."
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Файл"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "Имя загрузочного образа, извещаемого клиентам"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Файловая система"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Фильтровать частные"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Фильтровать бесполезные"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr "Ошибка финализации"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-"Найти все разделы (включая swap) и записать в конфигурационный файл "
-"информацию об обнаруженных разделах, т.е. выполнить команду 'block detect > /"
-"etc/config/fstab'"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Найти и присоединиться к сети"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Завершить"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Межсетевой экран"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr "Метка межсетевого экрана"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Настройки межсетевого экрана"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Состояние межсетевого экрана"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr "Файл прошивки"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Версия прошивки"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "Фиксированный порт для исходящих DNS-запросов"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Установить прошивку"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Установить..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Установить новый образ прошивки"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Операции с прошивкой"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Прошивка..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr "Запись во флешпамять (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Назначить"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr "Принудительно использовать режим 40 МГц"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Назначить CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr "Назначить DHCP в этой сети, даже если найден другой сервер."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Назначить TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Назначить TKIP и CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr "Активировать соединение"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr "Принудительная прошивка"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr "Принудительно использовать NAT-T"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr "Несоответствие маркеров формы"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "Перенаправлять трафик DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr "Секунды прямой коррекции ошибок (FECS)"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Перенаправлять широковещательный траффик"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr "Перенаправлять запросы трафика Mesh"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Режим перенаправления"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Порог фрагментации"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Пакетная передача кадров"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Свободно"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-"Дополнительная информация о интерфейсах и партнерах WireGuard приведена в <a "
-"href=\"http://wireguard.com\">wireguard.com</a>."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "ГГц"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Только GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Шлюз"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr "Неверный адрес шлюза"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Порты шлюза"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Основные настройки"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Основные настройки"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr "Создать config"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr "Создать PMK локально"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Создать архив"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "Беспроводной 802.11%s контроллер"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr "Введённые пароли не совпадают, пароль не изменён!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr "Основные настройки"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr "Основные настройки сети"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Перейти к настройке пароля..."
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Перейти к странице настройки"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr "Групповой пароль"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr "Гость"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "Пароль HE.net"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr "HE.net логин"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr "HT режим (802.11n)"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Перезапустить"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr "Ошибки контроля ошибок заголовка (HEC)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr "Интервал heartbeat (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Здесь вы можете настроить основные параметры вашего устройства, такие как "
-"имя хоста или часовой пояс."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "Скрыть <abbr title=\"Расширенный идентификатор сети\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr "Скрыть пустые цепочки"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr "Хост"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Список хостов"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr "Время ожидания хоста"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "<abbr title=\"Адрес Интернет протокола\">IP</abbr>-адрес или сеть"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr "Содержимое Host-Uniq тега"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Имя хоста"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "Имя хоста в DHCP-запросах"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Имена хостов"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr "Гибрид"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr "IKE DH Group"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr "IP-адреса"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr "IP-протокол"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "IP-адрес"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr "Неверный IP-адрес"
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr "IP-адрес не указан"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "Межсетевой экран IPv4"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr "Основной IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "IPv4-адрес"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr "IPv4 assignment length"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "Широковещательный IPv4-адрес"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "IPv4-адрес шлюза"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "Маска сети IPv4"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr "Сеть IPv4 в формате адрес/маска подсети"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr "IPv4 префикс"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "Длина префикса IPv4"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "IPv4-адрес"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr "IPv4-в-IPv4 (RFC2003)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "Межсетевой экран IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr "IPv6 соседи (neighbours)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr "Настройки IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr "IPv6 ULA-префикс"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr "Основной IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "IPv6-адрес"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr "IPv6 подсказка присвоения"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr "IPv6 назначение длины"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "IPv6-адрес шлюза"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr "Сеть IPv6 в формате адрес/маска подсети"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "Префикс IPv6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "Длина префикса IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr "IPv6 направление префикса"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr "IPv6 суффикс"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "IPv6-адрес"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr "IPv6-PD"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6 в IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6 через IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6 через IPv4 (6to4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Идентификация EAP"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr "Если выбрано, то 1DES включено"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr "Если выбрано, то шифрование выключено"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-"Если выбрано, монтировать устройство используя его UUID, а не фиксированный "
-"файл устройства"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-"Если выбрано, монтировать устройство используя название его раздела, а не "
-"фиксированный файл устройства"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "Если не выбрано, то маршрут по умолчанию не настраивается"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "Если не выбрано, то извещаемые адреса DNS серверов игнорируются"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Если физической памяти не достаточно, то неиспользуемые данные могут быть "
-"временно перемещены в раздел подкачки, что в свою очередь приведет к "
-"увеличению объёму свободной <abbr title=\"Random Access Memory\">RAM</abbr>. "
-"Однако, перемещение в файл — это достаточно долгий процесс, так как "
-"устройство, на котором располагается раздел подкачки, работает гораздо "
-"медленнее, чем <abbr title=\"Random Access Memory\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Игнорировать <code>/etc/hosts</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Игнорировать интерфейс"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Игнорировать файл resolv"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Образ"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "В"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-"Для предотвращения несанкционированного доступа к системе ваш запрос "
-"заблокирован. Нажмите кнопку 'Продолжить' ниже, чтобы вернуться на "
-"предыдущую страницу."
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "Промежуток времени бездействия"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Входящий:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Информация"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr "Ошибка инициализации"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Скрипт инициализации"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Скрипты инициализации"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr "Для поддержки IPv6, установите пакет iputils-traceroute6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Установить пакет %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Установить расширения протокола..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Интерфейс"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr "Интерфейс %q устройство авт.перемещается из %q в %q."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Настройка сети"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Список интерфейсов"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "Интерфейс переподключается..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr "Имя интерфейса"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "Интерфейс не существует или пока не подключен."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Интерфейсы"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr "Внутренний"
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Внутренняя ошибка сервера"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Неверно"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-"Указан неверный VLAN ID! Доступны только идентификаторы в диапазоне от %d до "
-"%d."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "Указан неверный VLAN ID! Доступны только уникальные ID"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Неверный логин и/или пароль! Попробуйте снова."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr "Изолировать клиентов"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Оказалось, что вы пытаетесь прошить устройство прошивкой, которая по размеру "
-"не помещается в чип флэш-памяти, проверьте ваш файл прошивки!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "Требуется JavaScript!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Подключение к сети"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "Найденные точки доступа Wi-Fi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr "Подключение к сети: %q"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Сохранить настройки"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Журнал ядра"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Версия ядра"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Пароль (ключ)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Ключ №%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Принудительно завершить"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "L2TP-сервер"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "Порог ошибок эхо-запросов LCP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "Интервал эхо-запросов LCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Метка"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Язык"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Язык и тема"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr "Задержка"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr "Лист"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr "Время аренды адреса"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Файл аренд"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Оставшееся время аренды"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Оставьте поле пустым для автоопределения"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "Оставьте пустым для использования текущего адреса WAN"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "События:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Предел"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr "Ограничение сервиса DNS, для подсетей интерфейса используещего DNS."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr "Ограничьте прослушивание этих интерфейсов и замыкание на себя."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr "Затухание линии (LATN)"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr "Режим линии"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr "Состояние Линии"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr "Время бесперебойной работы линии"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Подключение"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"Список <abbr title=\"Domain Name System\">DNS</abbr>-серверов для "
-"перенаправления запросов"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-"Список R0KHs в том же мобильном домене. <br />В формате: MAC-адрес,NAS-"
-"идентификатор,128-битный ключ как hex строка. <br />этот список используется "
-"для сопоставления R0KH-ID (NAS ID) с целевым MAC-адресом при запросе ключа "
-"PMK-R1 из R0KH , который использовался STA во время начальной ассоциации "
-"доменов Mobility."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-"Список R1KHs в том же домене мобильности. <br />Формат: MAC-адрес,R1KH-ID "
-"как 6 октетов с двоеточиями, 128-битный ключ, как шестнадцатеричная строка. "
-"<br />Этот список используется для сопоставления R1KH-ID с целевым MAC-"
-"адресом при отправке ключа PMK-R1 из R0KH. Это также список авторизованных "
-"R1KHs в MD, которые могут запросить PMK-R1 ключи."
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr "Список файлов ключей SSH для авторизации"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "Список доменов, для которых разрешены ответы RFC1918"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr "Список хостов, поставляющих поддельные результаты домена NX"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr "Интерфейс для входящих соединений"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr "Порт для входящих соединений"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-"Принимать подключения только на указанном интерфейсе или, если интерфейс не "
-"задан, на всех интерфейсах"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "Порт для входящих DNS-запросов"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Загрузка"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Средняя загрузка"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Загрузка"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr "Загрузка SSH ключей..."
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr "Неверный локальный IP-адрес"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr "Присвоение локального IP-адреса"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Локальный IPv4-адрес"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Локальный IPv6-адрес"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr "Только локальный DNS"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Запуск пакетов и служб пользователя, при включении устройства"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Дата и время"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Локальный домен"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-"Согласно требованиям, имена соответствующие этому домену, никогда не "
-"передаются. И разрешаются только из файла DHCP (/etc/config/dhcp) или файла "
-"хостов (/etc/hosts)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-"Суффикс локального домена, который будет добавлен к DHCP-именам и записи "
-"файла хостов (/etc/hosts)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Локальный сервер"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-"Локализировать имя хоста в зависимости от запрашиваемой подсети, если "
-"доступно несколько IP-адресов"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Локализовывать запросы"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr "Блокировать канал %s используемый: %s"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Запись событий"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Запись запросов"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "Настройка журнала"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Войти"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Выйти"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr "Потеря сигнала в секундах (LOSS)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr "Минимальный адрес аренды."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "MAC-адрес"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Фильтр MAC-адресов"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "MAC-фильтр"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "Список MAC"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr "MAP / LW4over6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr "Неверное MAP правило"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "МБ/с"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr "MD5"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "МГц"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-"Прежде чем перенести корневую файловую систему на внешний носитель, "
-"используйте команды приведенные ниже:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr "Вручную"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr "Max. Attainable Data Rate (ATTNDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr "Максимально разрешенное значение интервала прослушивания клиента"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "Максимальное количество активных арендованных DHCP-адресов"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "Максимально допустимое количество одновременных DNS-запросов"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "Максимально допустимый размер UDP пакетов EDNS.0"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "Максимальное время ожидания готовности модема (секунды)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-"Максимальная длина имени составляет 15 символов, включая префикс "
-"автоматического протокола/моста (br-, 6in4-, pppoe- etc.)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "Максимальное количество арендованных адресов"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Мбит/с"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Оперативная память (RAM)"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Использование памяти (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr "Mesh ID"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Метрика"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr "Зеркальный порт наблюдения"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr "Зеркальный исходящий порт"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "Отсутствует расширение протокола %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr "Мобильный домен"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Режим"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr "Модель"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr "Настройки модема по умолчанию"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Модем"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr "Ошибка запроса информации о модеме"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "Время ожидания инициализации модема"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Монитор"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "Настройка config файла fstab (/etc/config/fstab)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Точка монтирования"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Монтирование разделов"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "Точки монтирования — Настройка раздела"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "Точки монтирования — Настройка раздела подкачки"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Точки монтирования определяют, куда в файловой системе будут смонтированы "
-"разделы запоминающего устройства"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr "Монтирование несконфигурированного раздела"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Опции монтирования"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Точка монтирования"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr "Монтирование несконфигурированного раздела подкачки"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Смонтированные разделы"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Переместить вниз"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Переместить вверх"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr "NAT-T режим"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr "NAT64 префикс"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr "NCM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr "NDP-прокси"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr "NT домен"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "Список NTP-серверов"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Имя"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Имя нового интерфейса"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Имя новой сети"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Навигация"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Маска сети"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Сеть"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Сетевые утилиты"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "Образ системы для сетевой загрузки"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr "Активность сетевого устройства (%s)"
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr "Нет сетевого устройства"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Сеть без интерфейсов."
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Следующий »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr "Нет"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "DHCP-сервер не настроен для этого интерфейса"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr "Без NAT-T"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Файлы не найдены"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Нет доступной информации"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr "Отсутствует соответствующая делегация префикса"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "Отключить кэш отрицательных ответов"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Не настроена сеть на устройстве"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "Не задано имя сети"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Пароль не установлен!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr "Нет публичных ключей"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Нет правил в данной цепочке"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr "Результаты сканирования пока недоступны..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Зона не присвоена"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Шум"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr "Соотношение сигнал/шум (SNR)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Шум:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr "Non Pre-emtive CRC errors (CRC_P)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr "Не использовать wildcard"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Ничего"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Нормально"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "Не найдено"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "Не связанный"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "Не подключено"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr "Внимание: длина имени интерфейса"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Заметка"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "DNS-запрос"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-"Количество кэшированных DNS записей (максимум — 10000, 0 — отключить "
-"кэширование)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr "Количество параллельных потоков используемых для компрессии"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr "Obfuscated Group Password"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr "Obfuscated Password"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr "Получение IPv6-адреса"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "Задержка выключенного состояния"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"На этой странице вы можете настроить сетевые интерфейсы. Вы можете "
-"объединить несколько интерфейсов в мост, выбрав опцию 'Объединить в мост' и "
-"введя список интерфейсов, разделенных пробелами. Вы также можете "
-"использовать <abbr title=\"Виртуальные локальные сети\">VLAN</abbr>-"
-"обозначения вида <samp>ИНТЕРФЕЙС.НОМЕРVLAN</samp> (<abbr title=\"например"
-"\">напр.</abbr>: <samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "Задержка включенного состояния"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "Должен быть указан либо MAC-адрес, либо имя хоста!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Одно или несколько полей содержат недопустимые значения!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr "Одно или несколько недопустимых / обязательных значений на странице"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Одно или несколько обязательных полей не заполнены!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Открыть список..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr "OpenConnect (CISCO AnyConnect)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr "Настройка частоты"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Опция изменена"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Опция удалена"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr "Необязательно"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-"Необязательно. 32-разрядная метка для исходящих зашифрованных пакетов. "
-"Введите значение в шестнадцатеричной форме, начиная с <code>0x</code>."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-"Необязательно. Допустимые значения: 'eui64', 'random', фиксированное "
-"значение например '::1' или '::1:2'. Когда IPv6 префикс такой как — ('a:b:c:"
-"d::'), используйте суффикс на вроде ('::1') для этого IPv6 адреса ('a:b:c:"
-"d::1') для этого интерфейса."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-"Необязательно. Base64-шифрованный общий ключ. Добавляет дополнительный слой "
-"криптографии с симметричным ключом для пост-квантового сопротивления."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-"Необязательно. Создавать маршруты для разрешенных IP адресов для этого узла."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr "Необязательно. Описание узла."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-"Необязательно. Запрашивающий хост. Имена разрешаются до появления интерфейса."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr "Необязательно. Максимальная единица передачи туннельного интерфейса."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr "Необязательно. Порт узла."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-"Необязательно. Кол-во секунд между сохранением сообщений. По умолчанию равно "
-"'0' (отключено). Рекомендуемое значение, если это устройство находится за "
-"NAT 25."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-"Необязательно. Udp-порт, используемый для исходящих и входящих пакетов."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Опции"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Другие:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Вне"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "Исходящий:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr "Исходящий интерфейс"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "Назначить MAC-адрес"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "Назначить MTU"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr "Отвергать TOS"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr "Отвергать TTL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr "Назначить имя интерфейса по умолчанию"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "Назначить шлюз в ответах DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-"Переопределите сетевую маску, отправленную клиентам. Обычно это вычислено от "
-"подсети, которая подана."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr "Назначить таблицу внутренних маршрутов"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Обзор"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Пользователь"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "Пароль PAP/CHAP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "Имя пользователя PAP/CHAP"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr "PIN код отвергнут"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr "PMK R1 Push"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "Инкапсуляция PPPoA"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr "PPPoSSH"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr "PSID смещение"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr "PSID длина в битах"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr "PTM/EFM (Packet Transfer Mode)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "Требуется пакет libiwinfo!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Пакеты"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "Часть зоны %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Пароль"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "С помощью пароля"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Пароль к Приватному ключу"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr "Пароль к внутреннему Приватному ключу"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr "Пароль2"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr "Перетащите файл SSH ключа или вставьте содержимое..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Путь к CA-Сертификату"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "Путь к Client-Сертификату"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Путь к Приватному ключу"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr "Путь к внутренним CA-Сертификатам"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr "Путь к внутренним Client-Сертификатам"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr "Путь к внутреннему Приватному ключу"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Пиковая:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr "Запрос IP адреса назначения"
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr "Отсутствует адрес пира"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr "Пиры"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr "Perfect Forward Secrecy"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Выполнить перезагрузку"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Выполнить сброс"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr "Постоянно держать включенным"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "Скорость:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Настройки канала"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Пинг-запрос"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Пакетов"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Введите логин и пароль."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Политика"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Порт"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Состояние порта:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr "Режим управления питанием"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr "Pre-emtive CRC errors (CRCP_P)"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr "Предпочитать LTE"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr "Предпочитать UMTS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr "Делегированный префикс"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr "Предварительный ключ"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-"Предполагать, что узел недоступен после указанного количества ошибок "
-"получения эхо-пакета LCP, введите '0' для игнорирования ошибок"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr "Запретить прослушивание этих интерфейсов."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Не позволяет клиентам обмениваться друг с другом информацией"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr "Приватный ключ"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Продолжить"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Процессы"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr "Профиль"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Прот."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Протокол"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Протокол нового интерфейса"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "Поддержка протокола не установлена"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "Включить NTP-сервер"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "Предоставлять новую сеть"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Псевдо Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr "Публичный ключ"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-"Публичные SSH ключи позволяют выполнять беспарольный SSH вход с большим "
-"уровнем безопасности по сравнению с использованием входа по паролю. Чтобы "
-"загрузить новый публичный SSH ключ, вставьте строку публичного OpenSSH ключа "
-"или перетащите <code>.pub</code> файл в поле ввода ключа."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-"Публичный префикс, направляемый на это устройство для распространения среди "
-"клиентов."
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr "QMI сотовый"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Качество"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-"Опрашивать все имеющиеся внешние <abbr title=\"Domain Name System\">DNS</"
-"abbr>-серверы"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr "R0 Key время жизни"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr "R1 Key Holder"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr "RFC3947 NAT-T режим"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "Порог RTS/CTS"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "Получение (RX)"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "Скорость получения"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Порт Radius-Accounting"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Секрет Radius-Accounting"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Сервер Radius-Accounting"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Порт Radius-Authentication"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Секрет Radius-Authentication"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Сервер Radius-Authentication"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-"Строка в шестнадцатеричном коде. Оставьте пустой, если ваш провайдер не "
-"требует этого"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Читать <code>/etc/ethers</code> для настройки <abbr title=\"Протокол "
-"динамической настройки узла\">DHCP</abbr>-сервера"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-"Действительно удалить этот интерфейс? Удаление не может быть отменено! Вы "
-"можете потерять доступ к этому устройству, если вы подключены через данный "
-"интерфейс"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"Действительно удалить эту беспроводную сеть? Удаление не может быть отменено!"
-"\\nВы можете потерять доступ к этому устройству, если вы подключены через "
-"эту сеть."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "Действительно сбросить все изменения?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "Вы действительно хотите изменить протокол?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Соединения в реальном времени"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Графики в реальном времени"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Загрузка в реальном времени"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Трафик в реальном времени"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Беспроводная сеть в реальном времени"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr "Срок Реассоциации"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "Защита от DNS Rebinding"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Перезагрузка"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Перезагрузка..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr ""
-"Программная перезагрузка вашего устройства, т.е. выполнить команду 'reboot'"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Приём"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Приёмная антенна"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr "Рекомендуемый. IP адреса интерфейса WireGuard."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Переподключить этот интерфейс"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Ссылки"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "Ретранслятор"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "Мост-Ретранслятор"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "Ретранслятор между сетями"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "Мост-ретранслятор"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "Удалённый IPv4-адрес"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr "Удалённый IPv4-адрес или FQDN"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Удалить"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Повторить поиск"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Заменить запись"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Заменить настройку беспроводного соединения"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr "Запрос IPv6 адреса"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr "Запрос IPv6 префикс длины"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr "Требовать"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-"Требуется для некоторых Интернет провайдеров, например использующих DOCSIS 3"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr "Требовать Приватный ключ в кодировке Base64 для этого интерфейса."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr "Требовать Публичный ключ узла в кодировке Base64."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-"Требовать IP-адреса и префиксы, которые разрешено использовать этому "
-"одноранговому узлу внутри туннеля. Обычно туннельные IP-адреса однорангового "
-"узла и сети одноранговых маршрутов через туннель."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-"Требуется 'полная' версия wpad/hostapd и поддержка со стороны WiFi драйвера  "
-"в  <br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-"Требуется поддержка внешней сетью DNSSEC; убедитесь, что ответы "
-"неподписанного домена действительно поступают от неподписанных доменов"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Сбросить"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Сбросить счётчики"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Сбросить на значения по умолчанию"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Файлы resolv и hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "Файл resolv"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Перезапустить"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Перезапустить межсетевой экран"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr "Перезапустить радио-интерфейс"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Восстановление"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Восстановить резервную копию"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Показать/скрыть пароль"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Вернуть"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr "Вернуть изменения"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr "Ошибка <code>%h</code> отмены конфигурации"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr "Отмена конфигурации..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Корень"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "Корневая директория для файлов сервера, вроде TFTP"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr "Подготовка корневой директории"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr "Маршрут разрешенный для IP адресов"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr "Тип маршрута"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr "Доступные режимы работы"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Пароль маршрутизатора"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Маршруты"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Маршрутизация служит для определения через, какой интерфейс и шлюз можно "
-"достичь определенного хоста или сети."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr "Правило"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "Проверять файловую систему перед монтированием раздела"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Проверить"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr "SHA256"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr "SNR"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "Доступ по SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr "Адрес сервера SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr "Порт сервера SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr "SSH логин"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "SSH-ключи"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr "Разделы подкачки (swap)"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Сохранить"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Сохранить и применить"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr "Сохранить MTD раздел"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr "Сохранить содержимое MTD раздела"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr "Сохранение ключей..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Поиск"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr "Ошибка запроса на сканирование"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Запланированные задания"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Строки добавлены"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Строки удалены"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "Для подробной информации обратитесь к справке по 'mount' (man mount)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-"Выберите 'Принудительная прошивка' для проишвки образа даже если проверка "
-"формата завершается с ошибкой. Используйте эту опцию только если уверены, "
-"что файл образа корректный и предназначен именно для данного устройства!"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-"Отправлять эхо-пакеты LCP с указанным интервалом (секунды), эффективно "
-"только в сочетании с порогом ошибок"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Разделять клиентов"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Настройки сервера"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Имя службы"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Тип службы"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Сервисы"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr "Сессия истекла"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr "Установить VPN в качестве маршрута по умолчанию"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-"Автоматически активировать соединение, при подключении в разъем кабеля."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr "Настройка синхронизации времени"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr "Ошибка установки PLMN"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr "Ошибка установки режима работы"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "Настроить сервер DHCP"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr "Секунды с большим числом ошибок (SES)."
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr "Short GI"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr "Короткая преамбула"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "Показать текущий список файлов резервной копии"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr "Показать пустые цепочки"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Выключить этот интерфейс"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Сигнал"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr "Затухание сигнала (SATN)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Сигнал:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Размер"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr "Размер кэша DNS запроса"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr "Размер ZRam в мегабайтах"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Пропустить"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Перейти к содержимому"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Перейти к навигации"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "Время слота"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr "Программное обеспечение VLAN"
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Некоторые значения полей недопустимы, невозможно сохранить информацию!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "Извините, запрошенный объект не был найден."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "Извините, сервер столкнулся с неожиданной ошибкой."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"К сожалению, автоматическое обновление не поддерживается, новая прошивка "
-"должна быть установлена вручную. Обратитесь к wiki для получения конкретных "
-"инструкций для вашего устройства."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Источник"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "Папка, к которой монтируется раздел устройства"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "Порт данного процесса <em>Dropbear</em>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-"Максимальное количество неудачных запросов ARP, после которого узлы "
-"считаются отключенными"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-"Максимальное количество секунд, после которого узлы считаются отключёнными"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr "Укажите TOS (Тип обслуживания)."
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-"Укажите значение TTL (Время Жизни) для инкапсуляции пакетов, по умолчанию "
-"(64)."
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-"Укажите MTU (Максимальный Объем Данных), отличный от стандартного (1280 "
-"байт)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Укажите закрытый ключ."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Старт"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Приоритет"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr "Применение конфигурации..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr "Начато сканирование беспроводных сетей..."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Загрузка"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Статические маршруты IPv4"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Статические маршруты IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Постоянные аренды"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Статические маршруты"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Статический адрес"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"Постоянная аренда используется для присвоения фиксированных IP-адресов и "
-"имён DHCP-клиентам. Постоянная аренда также необходима для статических "
-"интерфейсов, в которых обслуживаются только клиенты с присвоенными адресами."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr "Максимально допустимое время бездействия клиента"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Состояние"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Остановить"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Строгий порядок"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Применить"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr "Подавить логирование"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr "Подавить логирование стандартной работы этих протоколов"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr "Раздел подкачки (swap)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Настройка config файла fstab (/etc/config/fstab)"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Коммутатор"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "Коммутатор %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "Коммутатор %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-"Коммутатор %q имеет неизвестную топологию — настройки VLAN не могут быть "
-"точными."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr "Изменить маску порта"
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr "Изменить VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "Изменить протокол"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr "Переключить в формат CIDR"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr "Активность порта коммутатора (%s)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Синхронизировать с браузером"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Синхронизация..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Система"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Системный журнал"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Свойства системы"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "Размер системного журнала"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "Настройки TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "TFTP сервер root"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "Передача (TX)"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "Cкорость передачи"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Таблица"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Назначение"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr "Сеть назначения"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Завершить"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"Вкладка меню <em>'Настройка устройства'</em> содержит физические настройки "
-"радиооборудования, такие как канал, мощность передачи или выбор антенны, "
-"которые совместно используются всеми настроенными беспроводными сетями (если "
-"радиооборудование поддерживает несколько SSID). Параметры сети, такие как "
-"шифрование или режим работы, смотрите на вкладке <em>'Настройка сети'</em>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"Пакет <em>libiwinfo-lua</em> не установлен. Для включения настроек "
-"беспроводных сетей, вам необходимо установить этот компонент!"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-"HE.net конфигурация обновления конечной точки изменена, теперь вы должны "
-"использовать простое имя пользователя вместо ID пользователя!"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr "IPv4-адрес или полное доменное имя удаленного конца туннеля."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-"Назначенный провайдеру префикс IPv6, обычно заканчивается на <code>::</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"Допустимые символы: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> и "
-"<code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr "Архив резервной копии не является правильным gzip файлом."
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr "Не удалось загрузить config файл из-за следующей ошибки:"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-"Устройство недоступно в течение %d секунд после применения изменений. Это "
-"привело к откату конфигурации из соображений безопасности. Если вы считаете, "
-"что конфигурация верна, выполните настройку без проверки. Кроме того, вы "
-"можете отклонить это предупреждение и отредактировать изменения перед "
-"попыткой применить конфигурацию снова или откатить все изменения, чтобы "
-"сохранить рабочее состояние конфигурации."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"Устройство или раздел (<abbr title=\"например\">напр.</abbr> <code>/dev/"
-"sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"Файловая система (<abbr title=\"например\">напр.</abbr> <samp><abbr title="
-"\"Third Extended Filesystem\">ext3</abbr></samp>)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"Образ загружен. Сравните размер файла и контрольную сумму, чтобы "
-"удостовериться в целостности данных.<br /> Нажмите 'Продолжить', чтобы "
-"начать процедуру обновления прошивки."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "Следующие настройки были отвергнуты"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "На данном устройстве активны следующие правила."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr "Указанный публичный SSH ключ уже добавлен."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-"Указанный публичный SSH ключ неверный. Укажите правильный RSA или ECDSA ключ."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "Заданное имя сети не является уникальным"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-"Аппаратное обеспечение не поддерживает Multi-SSID, и существующие настройки "
-"будут изаменены, если вы продолжите."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-"Длина префикса IPv4 в битах, оставшееся будет использоваться в IPv6-адресах."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "Длина префикса IPv6 в битах"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr "Локальный адрес IPv4, по которому создается туннель (необязательно)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"Сетевые порты этого устройства могут быть объединены в несколько <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>ов, в которых компьютеры могут "
-"связываться напрямую между собой. <abbr title=\"Виртуальные локальные сети"
-"\">VLAN</abbr>ы часто используются для разделения нескольких сетевых "
-"сегментов. Обычно по умолчанию используется один порт для подключения к "
-"внешней сети, например к Интернету и другие порты предназначенные для "
-"внутренней — локальной сети."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "Для выбранного протокола необходимо задать устройство"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr "Представленный маркер безопасности недействителен или уже истек!"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr "Идёт удаление настроек раздела с последующей перезагрузкой системы."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"Сейчас система перепрошивается.<br /> НЕ ОТКЛЮЧАЙТЕ ПИТАНИЕ УСТРОЙСТВА!<br /"
-"> Подождите несколько минут, прежде чем попытаться соединиться. Возможно, "
-"потребуется обновить адрес компьютера, чтобы снова подключиться к "
-"устройству, в зависимости от настроек."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr "Пароль администратора успешно изменен."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"Загруженный файл прошивки не поддерживается. Проверьте, что вы загрузили "
-"подходящую прошивку для чипа вашего устройства."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Тема"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Нет активных арендованных адресов."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr "Нет изменений для применения."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "Нет изменений, которые можно отменить!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "Нет изменений, которые можно применить!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-"Устройство не назначено. Назначьте сетевое устройство на странице 'Настройки "
-"канала'"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"Пароль пользователя root не установлен. Установите пароль, чтобы защитить "
-"веб-интерфейс и включить SSH."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr "IPv4-адрес ретранслятора"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-"Этот файл может содержать такие строки, как 'server=/domain/1.2.3.4' или "
-"'server=1.2.3.4' fordomain-specific или полный список внешней сети <abbr "
-"title=\"Domain Name System\">DNS</abbr> servers."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-"Настройка данного config файла, позволит пользователю создать резервную "
-"копию своих настроек. Копируются config файлы из папки /etc/config и "
-"некоторые другие. При перепрошивке устройства sysupgrade-совместимым "
-"образом, вы сможете воспользоваться резервной копией своих настроек."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-"Это либо \"Update Key\", настроенный для туннеля, либо пароль учетной "
-"записи, если ключ обновления не был настроен"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"Cодержимое config файла /etc/rc.local. Вы можете добавить свои команды "
-"(перед 'exit 0'), чтобы выполнить их во время загрузки устройства."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-"Это локальный адрес, назначенный туннельным брокером, обычно заканчивается "
-"на <code>...:2/64</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"Это единственный <abbr title=\"Протокол динамической настройки узла\">DHCP</"
-"abbr>-сервер в локальной сети"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr "Это просто имя пользователя, для входа в учетную запись"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-"Это префикс, направлен вам брокером туннелей для использования клиентами"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-"Содержимое файла /etc/crontabs/root (задания crontab). Здесь вы можете "
-"запланировать ваши задания."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr "Это адрес ближайшей точки присутствия туннельного брокера"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr "Страница содержит работающие процессы и их состояние."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr ""
-"Страница содержит список всех активных на данный момент сетевых соединений."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Здесь не содержатся необходимые значения"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Синхронизация времени"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "Синхронизация времени ещё не настроена."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr "Интервал регенерации ключей GTK"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Часовой пояс"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr "Аутентификация..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"Чтобы восстановить config файлы, ваши настройки прошивки устройства, вы "
-"можете загрузить ранее созданный вами архив здесь. Для сброса настроек "
-"прошивки к исходному состоянию нажмите 'Выполнить сброс' (возможно только "
-"для squashfs-образов)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr "Тон"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Всего доступно"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Трассировка"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Трафик"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Передача"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Скорость передачи"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Передача"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Мощность передатчика"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Передающая антенна"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "Назначить"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "Режим работы"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "Идентификатор туннеля"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Интерфейс туннеля"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr "Ссылка на туннель"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Мощность передатчика"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Тип"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "Только UMTS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "USB устройство"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr "USB порты"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr "Невозможно определить имя устройства"
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr "Невозможно определить внешний IP-адрес"
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr "Невозможно определить основной интерфейс"
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr "Невозможно обработать запрос для"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr "Невозможно получить идентификатор клиента"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr "Не удалось разрешить AFTR имя хоста"
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr "Не удалось разрешить имя хоста пира"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr "Секунды неготовности (UAS)"
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Неизвестно"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr "Неизвестная ошибка (%s)"
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "Неуправляемый"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr "Отмонтировать"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr "Ключ без имени"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Непринятые изменения"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr "Неподдерживаемый тип MAP"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr "Неподдерживаемый модем"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Неподдерживаемый тип протокола."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr "Вверх"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"Загрузите sysupgrade-совместимый образ, чтобы заменить текущую прошивку "
-"устройства. Поставьте галочку 'Сохранить настройки', чтобы сохранить текущие "
-"config файлы — ваши настройки устройства (требуется совместимый образ "
-"прошивки)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Загрузка архива..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Загруженный файл"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Время работы"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Использовать <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "Использовать шлюз DHCP"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "Использовать объявляемые узлом DNS сервера"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "Использовать коды стран ISO/IEC 3166 alpha2."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr "Использовать MTU на интерфейсе туннеля"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "Использовать TTL на интерфейсе туннеля"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr "Использовать как внешний overlay (/overlay)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr "Использовать как корень (/)"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "Использовать широковещательный флаг"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr "Использовать встроенный IPv6-менеджмент"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Использовать собственные DNS сервера"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Использовать шлюз по умолчанию"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "Использовать метрику шлюза"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Использовать таблицу маршрутизации"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"Нажмите кнопку <em>'Добавить'</em>, чтобы добавить новую запись аренды. "
-"<em>'MAC-адрес'</em> идентифицирует хост, <em>'IPv4-адрес'</em> указывает "
-"фиксированный адрес, а <em>'Имя хоста'</em> присваивается в качестве "
-"символьного имени для запрашивающего хоста. Необязательно <em>'Время аренды "
-"адреса'</em> может быть использовано для того, чтобы установить "
-"индивидуальное время аренды, например 12h, 3d или бесконечное."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Использовано"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "Используемый слот ключа"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-"Используется для двух различных целей: RADIUS NAS ID и 802.11r R0KH-ID. Не "
-"используется с обычным WPA(2)-PSK."
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr "Сертификат пользователя (PEM encoded)"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr "Ключ пользователя (PEM encoded)"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Имя пользователя"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr "VDSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLANы на %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLANы на %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr "Локальный адрес VPN"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr "Локальный порт VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "Сервер VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr "Порт VPN сервера"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr "Сертификат SHA1 hash VPN сервера"
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr "VPNC (CISCO 3000 (and others) VPN)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr "Производитель (Vendor)"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr ""
-"Класс производителя (Vendor class), который отправлять при DHCP-запросах"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Проверить"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr "Виртуальный динамический винтерфейс"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "Открытая система WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "Общий ключ WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "Пароль WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "Режим WMM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "Пароль WPA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"Необходимо установить wpa_supplicant (режим клиента) или hostapd (режим "
-"точки доступа или ad-hoc) для поддержки шифрования WPA."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "Ожидание применения изменений..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "Ожидание завершения выполнения команды..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr "Ожидание применения конфигурации... %d сек"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr "Ожидание подключения устройства..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Внимание"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-"Предупреждение: Есть не сохраненные изменения, которые будут потеряны при "
-"перезагрузке!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-"При использовании PSK, PMK может генерироваться автоматически. Если "
-"включено, опции ключей R0/R1, расположенные ниже, не применяются. Для "
-"использования опций ключей R0/R1 отключите данную опцию."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr "Активность Wi-Fi (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr "Ассоциация Wi-Fi клиента (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr "Приём данных Wi-Fi (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr "Передача данных Wi-Fi (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr "Wi-Fi включен (%s)"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr "Ширина"
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr "WireGuard VPN"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Wi-Fi"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Беспроводной адаптер"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Беспроводная сеть"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Список беспроводных сетей"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Безопасность беспроводной сети"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "Беспроводная сеть отключена"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "Беспроводная сеть не связана"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "Беспроводная сеть перезапускается..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "Беспроводная сеть отключена"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "Беспроводная сеть включена"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Записывать полученные DNS-запросы в системный журнал"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr "Записывать системные события в файл"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr "Да"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Здесь вы можете включить или выключить установленные скрипты инициализации. "
-"Изменения вступят в силу после перезагрузки устройства. <strong>Внимание: "
-"если вы выключите один из основных скриптов инициализации (например "
-"'network'), ваше устройство может оказаться недоступным!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"Вам необходимо включить JavaScript в вашем браузере для корректной работы "
-"LuCI."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-"Ваш Internet Explorer слишком стар, чтобы отобразить эту страницу правильно. "
-"Обновите его до версии 7 или используйте другой браузер, например Firefox, "
-"Opera или Safari."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr "Алгоритм компрессии ZRam"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr "Потоки компрессии ZRam"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr "Настройки ZRam"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr "Размер ZRam"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "любой"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "авто"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "соед. мостом"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr "создать"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "создать:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "Создаёт мост для выбранных сетевых интерфейсов"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "дБ"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "дБм"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "отключить"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr "отключено"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "истекло"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"Файл, где хранятся арендованные <abbr title=\"Протокол динамической "
-"настройки узла\">DHCP</abbr>-адреса"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "перенаправить"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "полный дуплекс"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "полудуплекс"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr "значение в шестнадцатеричном представлении"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "скрытый"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr "гибридный режим"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "если сеть"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "ввод"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "кБ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "кБ/с"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "кбит/с"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr "ключ длиной от 8 до 63 символов"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr "ключ длиной 5 или 13 символов"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "Локальный <abbr title=\"Служба доменных имён\">DNS</abbr>-файл"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr "минут(ы)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr "смешанный WPA/WPA2"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "нет"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "нет соединения"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr "не пустое значение"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr "не существует"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "выключено"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "включено"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-"одно из:\n"
-"- %s"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "открыть"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr "вывод"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr "overlay"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr "положительное десятичное число"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr "положительное целое число"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr "случайно"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr "режим передачи"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "маршрутизируемый"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr "секунды"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr "режим сервера"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr "stateful-only"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr "stateless"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr "stateless + stateful"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "с тегом"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr "единицы измерения времени (TUs / 1.024 ms) [1000-65535]"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr "уникальное значение"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "неизвестный"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "неограниченный"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "не определено"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "не определено -или- создать:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "без тега"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr "верный IP-адрес"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr "верный IP-адрес или префикс"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr "верная IPv4 CIDR"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr "верный IPv4 адрес"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr "верный IPv4 адрес или сеть"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr "верный IPv4 адрес:порт"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr "верная IPv4 сеть"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr "верная IPv4 или IPv6 CIDR"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr "верное значение IPv4 префикса (0-32)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr "верная IPv6 CIDR"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr "верный IPv6 адрес"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr "верный IPv6 адрес или префикс"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr "верный IPv6 идентификатор хоста"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr "верная IPv6 ctnm"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr "верное значение IPv6 префикса (0-128)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr "верный MAC адрес"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr "верный UCI идентификатор"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr "верный UCI идентификатор, имя хоста или IP-адрес"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr "верный адрес:порт"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr "верная дата (ГГГГ-ММ-ДД)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr "верное десятичное число"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr "верное шестнадцатеричное значение WEP ключа"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr "верное шестнадцатеричное значение WPA ключа"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr "верное имя хоста:порт"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr "верное имя хоста"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr "верное имя хоста или IP-адрес"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr "верное целое число"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr "верная сеть в формате адрес/маска подсети"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr "верный символ номера телефона (0-9, \"*\", \"#\", \"!\" or \".\")"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr "верный порт или диапазон портов (порт1-порт2)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr "верное значение порта"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr "верное время (ЧЧ:ММ:СС)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr "значение длиной от %d до %d символов"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr "значение в диапазоне от %f до %f"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr "значение больше или равное %f"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr "значение меньше или равное %f"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr "значение длиной %d или менее символов"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr "значение длиной %d или более символов"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "да"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Назад"
diff --git a/package/luci/modules/luci-base/po/sk/base.po b/package/luci/modules/luci-base/po/sk/base.po
deleted file mode 100644 (file)
index bd8835f..0000000
+++ /dev/null
@@ -1,6153 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr ""
diff --git a/package/luci/modules/luci-base/po/sv/base.po b/package/luci/modules/luci-base/po/sv/base.po
deleted file mode 100644 (file)
index 54e34b3..0000000
+++ /dev/null
@@ -1,6305 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-04-28 09:22+0200\n"
-"Last-Translator: Kristoffer Grundström <hamnisdude@gmail.com>\n"
-"Language-Team: none\n"
-"Language: sv\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr "%s är inte taggad i flera VLAN!"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(%d minut-fönster, %d sekundintervall)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s tillgängligt)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(tomt)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(inga gränssnitt har bifogats)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Ytterligare fält --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Vänligen välj --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- anpassad --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr "-- matcha enligt enhet --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr "-- matcha enligt märke --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr "-- matcha enligt uuid --"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Belastning senaste minuten:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Belastning senaste 15 minutrarna:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Belastning senaste 5 minutrarna:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr "802.11r Snabb förvandling"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr>server-port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-adress"
-
-# I don't think "Gateway" is commonly translated.
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-nätmask"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-adress eller nätverk "
-"(CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Lysdiod\">LED</abbr>-konfiguration"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-"<br/>Notera att: du måste starta om cron-tjänsten om crontab-filen var tom "
-"innan den ändrades."
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr "A43C + J43 + A43"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr "A43C + J43 + A43 + V43"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr "ADSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr "ANSI T1.413"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "ATM-bryggor"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Accesspunkt"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Åtgärder"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "Aktiva <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-rutter"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "Aktiva <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-rutter"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Aktiva anslutningar"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Aktiva DHCP-kontrakt"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Aktiva DHCPv6-kontrakt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Lägg till"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Lägg till ett nytt gränssnitt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Ytterligare värdfiler"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr "Ytterligare server-filer"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Adress"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Adress för att komma åt lokal reläbrygga"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Administration"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Avancerade inställningar"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Varning"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-"Allokera IP-adresser sekventiellt med start från den lägsta möjliga adressen"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr "Allokera IP sekventiellt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "Tillåt <abbr title=\"Secure Shell\">SSH</abbr> lösenordsautentisering"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Tillåt alla utom listade"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Tillåt enbart listade"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Tillåt localhost"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"Tillåt fjärrstyrda värdar att ansluta via SSH till lokalt vidarebefordrade "
-"portar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Tillåt root-inloggningar med lösenord"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "Tillåt <em>root</em>-användaren att logga in med lösenord"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr "Tillåtna IP-adresser"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr "Aviserade DNS-domäner"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr "Aviserade DNS-servrar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr "Anonym identitet"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr "Anonym montering"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr "Anonym Swap"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Antenn 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Antenn 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Konfiguration av antenn"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Någon zon"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Tilldela gränssnitten..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Associerade stationer"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr "Autentiseringsgrupp"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Autentisering"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr "Typ av autentisering"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Auktoritiv"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Tillstånd krävs"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Uppdatera automatiskt"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr "Automatisk"
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr "Automatiskt hemnet (HNCP)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr "Kolla efter fel i filsystemet automatiskt innan det monteras"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr "Monstera filsystem automatiskt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr "Montera Swap automatiskt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Tillgänglig"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Snitt:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr "B43 + B43C"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr "B43 + B43C + V43"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr "BR / DMR / AFTR"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Bakåt"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Backa till Överblick"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Backa till konfiguration"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Backa till överblick"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Backa till skanningsresultat"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Säkerhetskopiera"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Säkerhetskopiera / Flasha inre mjukvara"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Säkerhetskopiera fillista"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Fel adress angiven!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr "Band"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr "Bind gränssnitt"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Bithastighet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Brygga"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Brygga gränssnitt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Broadcom 802.11%s Trådlös kontroller"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Broadcom BCM%04x 802.11 Trådlös kontroller"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Buffrad"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-"CA-certifikat; om tom så kommer den att sparas efter första anslutningen."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "CPU-användning (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr "Kategori"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Kedja"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Ändringar"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Tillämpade ändringar"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Ändrar administratörens lösenord för att få tillgång till enheten"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Kanal"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Kontrollera"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr "Kontrollera filsystemen innan de monteras"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-"Bocka för det här alternativet för att ta bort befintliga nätverk från den "
-"här radion."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Checksumma"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Chiffer"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Klient"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "Klient-ID att skicka vid DHCP-förfrågning"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Stäng ner lista..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Samlar in data..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Kommando"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Vanlig konfiguration"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Konfiguration"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Bekräftelse"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Anslut"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Ansluten"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Anslutningsgräns"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Anslutningar"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Land"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Landskod"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Skapa gränssnitt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Skapa en brygga över flera gränssnitt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Kritisk"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Loggnivå för Cron"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Anpassat gränssnitt"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "DHCP-server"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP och DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "DHCP-klient"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "DHCP-alternativ"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr "DHCPv6-klient"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr "DHCPv6-läge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr "DHCPv6-tjänst"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr "DSL"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr "DSL-status"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr "Datahastighet"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Avlusa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "Standard %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Standard gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Ange ett namn för det här nätverket."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Radera"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Ta bort det här nätverket"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Beskrivning"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Plats"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Enhet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Enhetskonfiguration"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr "Enheten startar om..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr "Enheten kan inte nås"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr "Slå nummer"
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Mapp"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Inaktivera"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Inaktivera <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> "
-"för det här gränssnittet."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr "Inaktivera kryptering"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Inaktiverad"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr "Inaktiverad (standard)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Avståndsoptimering"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Avstånd till nätverksmledlemmen längst bort i metrar."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Mångfald"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr "Cachea inte negativa svar, t.ex för icke-existerade domäner"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"Vidarebefordra inte förfrågningar som inte kan ta emot svar från publika "
-"namnservrar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Domän krävs"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "Vitlista för domäner"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr "Fragmentera inte"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Vidarebefordra inte <abbr title=\"Domain Name System\">DNS</abbr>-"
-"förfrågningar utan <abbr title=\"Domain Name System\">DNS</abbr>-namn"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Ladda ner säkerhetskopia"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Dropbear-instans"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Dynamisk tunnel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "EAP-metod"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Redigera"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Redigera det här gränssnittet"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Redigera det här nätverket"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Nödsituation"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Aktivera"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Aktivera <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "Aktivera NTP-klient"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Aktivera TFTP-server"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Aktivera VLAN-funktionalitet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr "Aktivera WPS-tryckknapp, kräver WPA(2)-PSK"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr "Kräver ominstallation av nyckel (KRACK) motåtgärder"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "Aktivera den här monteringen"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "Aktivera den här swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Aktivera/Inaktivera"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Aktiverad"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Kryptering"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Raderar..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Fel"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Ethernet-adapter"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr "Inkludera inte dessa gränssnitt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "Expandera värdar"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Löper ut"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr "Externt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr "Extra alternativ för SSH-kommandot"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Fil"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Filsystem"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Filtrera privata"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Filtrera icke-användbara"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Hitta och anslut till nätverk"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Avsluta"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Brandvägg"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Inställningar för brandvägg"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Status för brandvägg"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Version för inre mjukvara"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Skriver..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Tvinga"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Tvinga CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr "Tvinga DHCP på det här nätverket även om en annan server är upptäckt."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Tvinga TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Tvinga TKIP och CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr "Tvinga länk"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr "Tvinga användning av NAT-T"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "Vidarebefordra DHCP-trafik"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Vidarebefordringsläge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Fritt"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Endast GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Gateway"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Gateway-portar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Generella inställningar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr "Generera konfig"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Generera arkiv"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr "Angiven lösenordsbekräftelse matchade inte, lösenordet ändrades inte!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr "Globala inställningar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr "Globala nätverksalternativ"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Gå till lösenordskonfiguration..."
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Gå till relevant konfigurationssida"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr "Grupplösenord"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr "Gäst"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "HE.net-lösenord"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr "HE.net-användarnamn"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr "HT-läge (802.11n)"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Lägg på"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "Göm <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr "Värd"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> eller Nätverk"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Värdnamn"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "Värdnamn att skicka vid DHCP-förfrågningar"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Värdnamn"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr "Hybrid"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr "IP-adresser"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "IP-adress"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "IPv4-brandvägg"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "IPv4-adress"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "IPv4-gateway"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "IPv4-nätmask"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "IPv4-Adress"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr "IPv4-i-IPv4 (RFC2003)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "IPv6-brandvägg"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr "IPV6-grannar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr "IPv6-inställningar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "IPv6-adress"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "IPv6-gateway"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "IPv6-adress"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6-i-IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6-över-IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6-över-IPv4 (6till4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Identitet"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Ignorera <code>/etc/hosts</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Ignorera gränssnitt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Ignorera resolv-fil"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Bild"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "I"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Ankommande"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Info"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Initskript"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Initskripten"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr "Installera iputils-traceroute6 för IPv6-traceroute"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Installera paketet %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Installera protokoll-förlängningar..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Gränssnitt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Konfiguration av gränssnitt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Överblick av gränssnitt"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "Gränssnittet återansluter..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr "Gränssnittets namn"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "Gränssnittet är inte närvarande eller är inte anslutet än."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Gränssnitten"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr "Interna"
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Internt server-fel"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Ogiltig"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Ogiltigt användarnamn och/eller lösenord! Vänligen försök igen."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr "Isolera klienter"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "JavaScript krävs!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Anslut till nätverk"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "Anslut till nätverk: Trådlös skanning"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr "Ansluter till nätverk: %q"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Behåll inställningar"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Kernel-logg"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Kernel-version"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Nyckel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Nyckel #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Döda"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "L2TP-server"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Märke"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Språk"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Språk och Stil"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr "Latens"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr "Löv"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr "Kontraktstid"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Kontraktsfil"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Återstående kontraktstid"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Lämna tom för att upptäcka automatiskt"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "Lämna tom för att använda den nuvarande WAN-adressen"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Begränsa"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Länk På"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr "Lista över SSH-nyckelfiler för auth"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr "Lyssningsportar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-"Lyssna endast på det angivna gränssnittet eller, om o-specificerat på alla"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "Lyssningsportar för ankommande DNS-förfrågningar"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Belastning"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Snitt-belastning"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Laddar"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Lokal IPv4-adress"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Lokal IPv6-adress"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr "Enbart lokal tjänst"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Lokal uppstart"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Lokal tid"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Lokal domän"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Lokal server"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Lokalisera förfrågningar"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr "Låst till kanalen %s som används av: %s"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Logga in"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Logga ut"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "MAC-adress"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Filter för MAC-adress"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "MAC-filter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "MAC-lista"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr "MAP / LW4över6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr "MD5"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr "Manuell"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Minne"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Minnesanvändning (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Metrisk"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Läge"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr "Modell"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Modem-enhet"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Övervaka"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Monteringspunkt"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Monteringspunkter"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Monteringsalternativ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Monteringspunkt"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Monterade filsystem"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Flytta ner"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Flytta upp"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS-ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr "NAT-T-läge"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr "NCM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr "NT-domän"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "NTP-serverkandidater"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Namn"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Namn på det nya gränssnittet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Namnet på det nya nätverket"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Navigering"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Nätmask"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Nätverk"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Nätverksverktyg"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "Uppstartsbild för nätverket"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Nätverk utan gränssnitt"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Nästa »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Det finns ingen DHCP-server inställd för det här gränssnittet"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr "Ingen NAT-T"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Inga filer hittades"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Ingen information tillgänglig"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "Ingen negativ cache"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "Det finns inget nätverk inställt på den här enheten"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "Inget nätverksnamn angavs"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Inget lösenord inställt!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Inga regler i den här kedjan"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Buller"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Buller:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Ingen"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Normal"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "Hittades inte"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "Inte associerad"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "Inte ansluten"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr "Notera: längden på gränssnittets namn"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Avisering"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "Nslookup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "En utav värdnamn eller MAC-adress måste anges!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "En eller fler fält innehåller ogiltiga värden!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "En eller fler fält som krävs har inget värde!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Öppna lista..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr "OpenConnect (CISCO AnyConnect)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Alternativet ändrades"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Alternativet togs bort"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr "Valfri"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Alternativ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Andra:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Ut"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "Utgående"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Överblick"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Ägare"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "PAP/CHAP-lösenord"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "PAP/CHAP-användarnamn"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN-kod"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr "PPPoSSH"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "Paketet libiwinfo krävs!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Paket"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "Del av zon %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Lösenord"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Lösenordsautentisering"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Den privata nyckelns lösenord"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr "Lösenordet för den inre privata nyckeln"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr "Lösenord2"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Genväg till CA-certifikat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "Genväg till klient-certifikat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Genväg till privat nyckel"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr "Genväg till det inre CA-certifikatet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr "Genväg till det inre klient-certifikatet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr "Genväg till den inre privata nyckeln"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Utför omstart"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Utför återställning"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Fysiska inställningar"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ping"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "Pkt."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Vänligen ange ditt användarnamn och lösenord."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Port"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Port-status:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr "Föredra LTE"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr "Föredra UMTS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr "Förhindra lyssning på dessa gränssnitt."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Förhindrar kommunikation klient-till-klient"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr "Privat nyckel"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Fortsätt"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Processer"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr "Profil"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protokoll"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Det nya gränssnittets protokoll"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "Stöd för protokoll är inte installerat"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr "Publik nyckel"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr "QMI-telefoni"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Kvalité"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RT"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "RX-hastighet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Läs <code>/etc/ethers</code> för att ställa in <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-servern"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "Verkligen återställa alla ändringar?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "Verkligen byta protokoll?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Anslutningar i realtid"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Realtidsgrafer"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Trafik i realtid"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Trådlöst i realtid"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Starta om"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Startar om..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Startar om din enhets operativsystem"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Ta emot"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Mottagningsantenn"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr "Rekommenderad. WireGuard-gränssnittets IP-adress"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Återanslut det här gränssnittet"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Referens"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "Relä"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "Relä-brygga"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "Relä mellan nätverk"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "Relä-brygga"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Ta bort"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Repetera skanning"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Ersätt trådlös konfiguration"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr "Krävs!"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Återställ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Återställ räknare"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Återställ till standard"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Resolv och Värd-filer"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "Resolv-fil"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Starta om"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Starta om brandvägg"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Återställ"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Återställ säkerhetskopian"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Visa/göm lösenord"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Återgå"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Root"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "Root-mappen för filer som skickas via TFTP"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr "Root-förberedelse"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr "Typ av rutt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Router-lösenord"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Rutter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "Kör en filsystemskontroll innan enheten monteras"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Kör filsystemskontrollen"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr "SHA256"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr "SNR"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "SSH-åtkomst"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr "SSH-serverns adress"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr "SSH-serverns port"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr "Användarnamn för SSH"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "SSH-nycklar"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Spara"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Spara och Verkställ"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Skanna"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Schemalagda uppgifter"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Sektionen lades till"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Sektionen togs bort"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Separera klienter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Inställningar för server"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Namn på tjänst"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Typ av tjänst"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Tjänster"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr "Ställ in Tidssynkronisering"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "Ställ in DHCP-server"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Stäng ner det här gränssnittet"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Signal"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Signal:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Storlek"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Hoppa över"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Hoppa över till innehåll"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Hoppa över till navigering"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Några fält är ogiltiga, kan inte spara värden!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "Tyvärr, objektet som du frågade efter kunde inte hittas."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "Tyvärr, servern stötte på ett oväntat fel."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Källa"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "Anger lyssningsporten för den här <em>Dropbear</em>-instansen"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr "Ange en TaT (Typ av Tjänst)."
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Ange den hemliga krypteringsnyckeln här."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Statiska IPv4-rutter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Statiska IPv6-rutter"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Statiska rutter"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Statiska adresser"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Status"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Strikt sortering"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Skicka in"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr "Swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Byt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "Byt %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "Byt %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr "Byt VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "Byt protokoll"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Synkronisera med webbläsare"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Synkroniserar..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "System"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Systemlogg"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Systemets egenskaper"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "Inställningar för TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "Root för TFTP-server"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "TX-hastighet"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Tabell"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Mål"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr "Målnätverk"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "Det angivna nätverksnamnet är inte unikt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Tema"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Det finns inga aktiva kontrakt."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "Det finns inga pendlande ändringar att återkalla"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "Det finns inga pendlande ändringar!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"Det finns inget lösenord inställt på den här routern. Vänligen ställ in ett "
-"root-lösenord för att skydda webbgränssnittet och för att aktivera SSH."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Synkronisering av tid"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "Synkronisering av tid är inte inställd än."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Tidszon"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"För att återställa konfigurationsfiler så kan du ladda upp ett tidigare "
-"genererat säkerhetskopierings arkiv här."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr "Ton"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Totalt tillgängligt"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Traceroute"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Trafik"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Överför"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Överföringshastighet"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Överför"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "Tunnel-ID"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Tunnelgränssnitt"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr "Tunnel-länk"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Typ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "Endast UMTS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "USB-enhet"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr "USB-portar"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr "Det går inte att skicka"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr "Otillgängliga Sekunder (UAS)"
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Okänd"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr "Avmontera"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Osparade ändringar"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Protokolltypen stöds inte."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Ladda upp arkiv..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Laddade upp fil"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Upptid"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Använd <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "Använd DHCP-gateway"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr "Använd som root-filsystem (/)"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Använd anpassade DNS-servrar"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Använd standard-gateway"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr "Användarcertifikat (PEM-krypterad)"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr "Användarnyckel (PEM-krypterad)"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Användarnamn"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr "VDSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr "Lokal adress för VPN"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr "Lokal port för VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "VPN-server"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr "Port för VPN-server"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr "Tillverkare"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Verkställ"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "Öppet System WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "WEP-lösenordsfras"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "WMM-läge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "WPA-lösenordsfras"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "Väntar på att ändringarna ska tillämpas..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "Väntar på att kommandot ska avsluta..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr "Väntar på enheten..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Varning"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-"Varning: Det finns osparade ändringar som kommer att förloras vid omstart!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr "Bredd"
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Trådlöst"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Trådlös adapter"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Trådlöst nätverk"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Trådlös överblick"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Trådlös säkerhet"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "Trådlöst är avstängt"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "Trådlöst är inte associerat"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "Trådlöst startar om..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "Trådlöst nätverk är avstängt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "Trådlöst nätverk är aktiverat"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Skriv mottagna DNS-förfrågningar till syslogg"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr "Skriv systemlogg till fil"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"Du måste aktivera JavaScript i din webbläsare, annars kommer inte LuCi att "
-"fungera korrekt."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-"Din Internet Explorer är för gammal för att visa den här sidan korrekt. "
-"Vänligen uppgradera den till minst version 7 eller använd en annan "
-"webbläsare till exempel Firefox, Opera eller Safari."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "något"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "auto"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "bryggad"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "skapa:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "skapar en brygga över angivna gränssnitt(en)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "stäng ner"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr "avstängd"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "vidarebefordra"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "full-duplex"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "halv-duplex"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "gömd"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr "hybrid-läge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "om målet är ett nätverk"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "inmatning"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "lokal <abbr title=\"Domain Name System\">DNS</abbr>-fil"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr "minuter"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "nej"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "ingen länk"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr "inte tillgängligt"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "av"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "på"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "öppen"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr "relä-läge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr "server-läge"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "taggad"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "okänd"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "obegränsat"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "ospecifierat"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "ospecifierat -eller- skapa:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "otaggat"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "ja"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Bakåt"
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "Ändring av lösenordet lyckades!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "Okänt fel, lösenordet ändrades inte!"
-
-#~ msgid "Available packages"
-#~ msgstr "Tillgängliga paket"
-
-#~ msgid "Custom feeds"
-#~ msgstr "Anpassade flöden"
-
-#~ msgid "Download and install package"
-#~ msgstr "Ladda ner och installera paket"
-
-#~ msgid "Filter"
-#~ msgstr "Filtrera"
-
-#~ msgid "Find package"
-#~ msgstr "Hitta paket"
-
-#~ msgid "Free space"
-#~ msgstr "Fritt utrymme"
-
-#~ msgid "General options for opkg"
-#~ msgstr "Generella alternativ för opkg"
-
-#~ msgid "Install"
-#~ msgstr "Installera"
-
-#~ msgid "Installed packages"
-#~ msgstr "Installerade paket"
-
-#~ msgid "No package lists available"
-#~ msgstr "Ingen paketlista tillgänglig"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "Paket-listor är äldre än 24 timmar"
-
-#~ msgid "Package name"
-#~ msgstr "Paketnamn"
-
-#~ msgid "Size (.ipk)"
-#~ msgstr "Storlek (.ipk)"
-
-#~ msgid "Software"
-#~ msgstr "Mjukvara"
-
-#~ msgid "Update lists"
-#~ msgstr "Uppdatera listor"
-
-#~ msgid "Version"
-#~ msgstr "Version"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 och IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "Endast IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "Endast IPv6"
-
-#~ msgid "Lease validity time"
-#~ msgstr "Giltighetstid för kontrakt"
-
-#~ msgid "Protocol family"
-#~ msgstr "Protokoll-familj"
-
-#~ msgid "No chains in this table"
-#~ msgstr "Inga kedjor i den här tabellen"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "Konfigurationsfiler kommer att behållas."
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "Notera: Konfigurationsfiler kommer att raderas."
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Pairvis: %s / Grupp: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "Aktivera det här nätverket"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "Gränssnittet stänger ner..."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "Gränssnittet återanslöt"
-
-#~ msgid "Interface shut down"
-#~ msgstr "Gränssnittet stängdes ner"
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "Återansluter gränssnittet"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "Stäng ner det här nätverket"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "Trådlöst startade om"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "Trådlöst stängde ner"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "DHCP-kontrakt"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "DHCPv6-kontrakt"
-
-#~ msgid "Sort"
-#~ msgstr "Sortera"
-
-#~ msgid "help"
-#~ msgstr "hjälp"
diff --git a/package/luci/modules/luci-base/po/templates/base.pot b/package/luci/modules/luci-base/po/templates/base.pot
deleted file mode 100644 (file)
index e4fe50a..0000000
+++ /dev/null
@@ -1,6145 +0,0 @@
-msgid ""
-msgstr "Content-Type: text/plain; charset=UTF-8"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr ""
diff --git a/package/luci/modules/luci-base/po/tr/base.po b/package/luci/modules/luci-base/po/tr/base.po
deleted file mode 100644 (file)
index 5fa4052..0000000
+++ /dev/null
@@ -1,6226 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: 2018-09-13 22:59+0300\n"
-"Last-Translator: Yusuf Soyipek <yusuf@soyipek.com>\n"
-"Language-Team: none\n"
-"Language: tr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 2.1.1\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(%d dakika gösteriliyor, %d saniye aralıklı)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s uygun)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(boş)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(arayüz eklenmedi)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Ek Alan--"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Lütfen seçiniz --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- özel --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr "-- cihaza göre eşleştir --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr "-- etikete göre eşleştir --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr "-- uuid'e göre eşleştir --"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr "-- lütfen seçin --"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "1 Dakikalık Yük:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "15 Dakikalık Yük:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr "4 karakterli HEX ID"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "5 Dakikalık Yük:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\\\"Temel Servis Ayar Tanımlayıcısı\\\"> BSSID </abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Alan Adı Sistemi\">DNS</abbr> port sorgula"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Alan Adı Sistemi\">DNS</abbr> sunucu port"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Internet Protokolü Sürüm 4\">IPv4</abbr>-Adres"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protokolü Sürüm 4\">IPv4</abbr>-Gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Internet Protokolü Sürüm 4\">IPv4</abbr>-Netmask"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Internet Protokolü Sürüm 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protokolü Sürüm 6\">IPv6</abbr>-Gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> Ayarları"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> Adı"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Media Access Control\">MAC</abbr>-Adresi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"<abbr title=\"maximal\">Maks.</abbr> <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr> leases"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"maximal\">Maks.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> paket boyutu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"maximal\">Maks.</abbr> eşzamanlı sorgu"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "ARP yenileme aralığı"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "ATM Köprüleri"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Erişim Noktası"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Eylemler"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr ""
-"Aktif <abbr title=\"İnternet Protokolü Sürüm 4\">IPv4</abbr>-Yönlendiriciler"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr ""
-"Aktif <abbr title=\"İnternet Protokolü Sürüm 4\">IPv6</abbr>-Yönlendiriciler"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Aktif Bağlantılar"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Aktif DHCP Kiraları"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Aktif DHCPv6 Kiraları"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Ekle"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Yeni arabirim ekle..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Ek Hosts dosyaları"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr "Ek sunucular dosyası"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Adres"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Gelişmiş Ayarlar"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Uyarı"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-# "Secure Shell" için ne kullanılabilinir bir fikrim yok.
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-"<abbr title=\"Secure Shell\">SSH</abbr> parola kimlik doğrulamasına izin ver"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Listelenenlerin haricindekilere izin ver"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Yanlızca listelenenlere izin ver"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "1. Anten"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "2. Anten"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Anten Yapılandırması"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr "Mimari"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Arabirim ata..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "İlişkili istasyonlar"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Kimlik Doğrulama"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr "Kimlik doğrulama türü"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Yetkilendirme"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Yetkilendirme Gerekli"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Otomatik Yenileme"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr "Otomatik"
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Kullanılabilir"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Ortalama:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Geri"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Genel Bakışa dön"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Yapılandırmaya dön"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Genel Bakışa dön"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Tarama sonuçlarına dön"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Yedekleme"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Yedek/Firmware Yazma"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Bit hızı"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Köprü"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Köprü arabirimleri"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Tamponlu"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "CPU kullanımı (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Vazgeç"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr "Kategori"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Zincir"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Değişiklikler"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Kanal"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Mevcut yapılandırma dosyalarının yeni bir arşivini indirmek için \"Arşiv "
-"Oluştur\"'u tıklayın."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Onayla"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Bağlan"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Bağlandı"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Bağlantı limiti"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Bağlantılar"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Ülke"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Ülke Kodu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Arabirim Oluştur"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Kritik"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Özel Arabirim"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "Varsayılan"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Default ağ geçidi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Varsayılan durum"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Bu ağ için bir ad tanımlayın."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Sil"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Bu ağı sil"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Açıklama"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Hedef"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Cihaz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Cihaz Yapılandırması"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr "Cihaz yeniden başlatılıyor..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr "Cihaz ulaşılamaz!"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr "Cihaz ulaşılamaz! Hala cihazı bekliyorum..."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Tanı"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr "Arama numarası"
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Dizin"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Pasif"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Bu arabirim için <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>'yi devre dışı bırakın."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr "Şifrelemeyi Devre Dışı"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr "Ağ devre dışı"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Devre dışı"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr "Devre dışı (varsayılan)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr "Bağlantı kesme girişimi başarısız oldu"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr "Reddet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Mesafe Optimizasyonu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Süre Bitişi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Firmware Versiyon"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Firmware Güncelle"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Dosyayı yaz..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Yeni firmware dosyasını yaz"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Boş"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Ağ Geçidi"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Arşiv oluştur"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "IPv4-Adres"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "IPv6-Adres"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Çekirdek Versiyonu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Kalan kira süresi"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Ortalama Yük"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Yerel Zaman"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Oturum Aç"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Oturumu Kapat"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "MAC-Adres"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Bellek"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Ağ Maskesi"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Ağ"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Parazit"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Genel Bakış"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protokol"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Sıfırla"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Sayaçları Sıfırla"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Varsayılanlara dön"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Tekrar başlat"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Geri Yükleme"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Yedeklemeyi geri yükle"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Dönmek"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr "Değişiklikleri geri al"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Kök"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr "Yönlendirme Tipi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Yönlendirici Parolası"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Yönlendirmeler"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "Cihazı bağlamadan önce bir dosya sistemi kontrolü yapın"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Dosya sistemi kontrolünü çalıştır"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr "SHA256"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr "SNR"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "SSH Erişimi"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr "SSH sunucu adresi"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr "SSH sunucu portu"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr "SSH kullanıcı adı"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Kaydet"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Kaydet & Uygula"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Tara"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Zamanlanmış Görevler"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Bölüm eklendi"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Bölüm kaldırıldı"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Servisler"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Sinyal"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr "Sinyal Zayıflama (SATN)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Sinyal:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Boyut"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Atla"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Kaynak"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Başlat"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Durum"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Durdur"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Gönder"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Sistem"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Tema"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Toplam Mevcut"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Yüklenen Dosya"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Çalışma Zamanı"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Özel DNS sunucularını kullan"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Varsayılan ağ geçidini kullan"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "Ağ geçidi metriğini kullan"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Yönlendirme tablosunu kullan"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Kullanılmış"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Kullanıcı adı"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr "Satıcı"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Kontrol"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Uyarı"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr "Genişlik"
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Kablosuz"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"LuCI'nin düzgün çalışması için tarayıcınızda Java Scripti "
-"etkinleştirmelisiniz."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "herhangi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "otomatik"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "köprülü"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "oluşturma:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "etkin değil"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr "devre dışı"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "sona ermiş"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "ileri"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "tam çift yönlü"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "yarı çift yönlü"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "gizli"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr "hibrit mod"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "eğer hedef ağsa"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "giriş"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "yerel <abbr title=\"Domain Name System\">DNS</abbr> dosyası"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr "dakika"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "hayır"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "bağlantı yok"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr "mevcut değil"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "kapalı"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "açık"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "açık"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr "bindirilmiş"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr "rastgele"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr "anahtarlama modu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "yönlendirildi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr "sunucu modu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr "durumsuz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr "durumsuz + durumlu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "etiketlendi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "bilinmeyen"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "sınırsız"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "tanımsız"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "tanımsız -veya- oluşturun:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "etiketsiz"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "evet"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Geri"
-
-#~ msgid "Design"
-#~ msgstr "Tasarım"
-
-#~ msgid "Available packages"
-#~ msgstr "Kullanılabilir Paketler"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "Yalnızca içeren paketler görüntüleniyor"
-
-#~ msgid "Free space"
-#~ msgstr "Boş alan"
-
-#~ msgid "Size (.ipk)"
-#~ msgstr "Boyut (.ipk)"
-
-#~ msgid "Software"
-#~ msgstr "Yazılım"
-
-#~ msgid "Version"
-#~ msgstr "Versiyon"
-
-#~ msgid "none"
-#~ msgstr "hiçbiri"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "DNS kurulumunu devre dışı"
-
-#~ msgid "Activate this network"
-#~ msgstr "Bu ağı etkinleştir"
-
-#~ msgid "Sort"
-#~ msgstr "Sıralama"
-
-#~ msgid "help"
-#~ msgstr "yardım"
-
-#~ msgid "Apply"
-#~ msgstr "Uygula"
-
-#~ msgid "Applying changes"
-#~ msgstr "Değişiklikleri uygula"
-
-#~ msgid "Action"
-#~ msgstr "Eylem"
-
-#~ msgid "AR Support"
-#~ msgstr "AR Desteği"
-
-#~ msgid "Atheros 802.11%s Wireless Controller"
-#~ msgstr "Atheros 802.11%s Kablosuz Denetleyicisi"
-
-#~ msgid "Background Scan"
-#~ msgstr "Arka Planda Tarama"
diff --git a/package/luci/modules/luci-base/po/uk/base.po b/package/luci/modules/luci-base/po/uk/base.po
deleted file mode 100644 (file)
index eb34bd1..0000000
+++ /dev/null
@@ -1,6510 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"PO-Revision-Date: 2019-01-26 17:10+0200\n"
-"Last-Translator: Yurii <yuripet@gmail.com>\n"
-"Language-Team: none\n"
-"Language: uk\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr "%.1f дБ"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr "%d біт"
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr "%d неприпустимі поля"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr "%s є непозначеним у декількох VLAN!"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(вікно - %d хв, інтервал - %d с)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(доступно %s)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(пусто)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(нема приєднаних інтерфейсів)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- Додаткові поля --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- Оберіть --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- нетипово --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr "-- відповідно пристрою --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr "-- відповідно мітці --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr "-- відповідно UUID --"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr "-- виберіть --"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "Навантаження за 1 хвилину:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "Навантаження за 15 хвилин:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr "4-симв. шістнадцятковий ID"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr "464XLAT (CLAT)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "Навантаження за 5 хвилин:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-"6-октетний ідентифікатор у вигляді шістнадцяткового рядка – без двокрапок"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr "Швидкий перехід 802.11r"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr "Максимальний тайм-аут запиту асоціації 802.11w"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr "Тайм-аут повторювання запиту асоціації 802.11w"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr "Захист кадрів управління 802.11w"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr "Максимальний тайм-аут 802.11w"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr "Тайм-аут повторювання 802.11w"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr ""
-"<abbr title=\"Basic Service Set Identifier — ідентифікатор основної служби "
-"послуг\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr ""
-"Порт <abbr title=\"Domain Name System — система доменних імен\">DNS</abbr>-"
-"запиту"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr ""
-"Порт <abbr title=\"Domain Name System — система доменних імен\">DNS</abbr>-"
-"сервера"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"<abbr title=\"Domain Name System — система доменних імен\">DNS</abbr>-"
-"сервери буде опитано в порядку, визначеному файлом <em>resolvfile</em>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-"<abbr title=\"Extended Service Set Identifier — ідентифікатор розширеної "
-"служби послуг\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Інтернет-протокол версії 4\">IPv4</abbr>-адреса"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Інтернет-протокол версії 4\">IPv4</abbr>-шлюз"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Інтернет-протокол версії 4\">IPv4</abbr>-маска"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Інтернет-протокол версії 6\">IPv6</abbr>-адреса або мережа "
-"(CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Інтернет-протокол версії 6\">IPv6</abbr>-шлюз"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr "<abbr title=\"Інтернет-протокол версії 6\">IPv6</abbr>-суфікс (hex)"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr ""
-"Налаштування <abbr title=\"Light Emitting Diode — світлодіод\">LED</abbr>"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "Назва <abbr title=\"Light Emitting Diode — світлодіод\">LED</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr ""
-"<abbr title=\"Media Access Control — управління доступом до носія\">MAC</"
-"abbr>-адреса"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr "<abbr title=\"Унікальний ідентифікатор DHCP\">DUID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"<abbr title=\"Максимум\">Макс.</abbr> оренд <abbr title=\"Dynamic Host "
-"Configuration Protocol — протокол динамічної конфігурації вузла\">DHCP</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"Максимальний\">Макс.</abbr> розмір пакета <abbr title="
-"\"Extension Mechanisms for Domain Name System — Механізми розширень для "
-"доменної системи імен\">EDNS0</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"Максимум\">Макс.</abbr> одночасних запитів"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-"<br/>Примітка: якщо перед редагуванням, файл crontab був порожній, вам "
-"потрібно вручну перезапустити служби cron."
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-"Оскільки сеанс автентифікації закінчився, потрібен новий вхід у систему."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr ""
-"<abbr title=\"Access Point Name — символічна назва точки доступу\">APN</abbr>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "Поріг повторювання ARP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-"<abbr title=\"Asynchronous Transfer Mode — асинхронний режим передавання"
-"\">ATM</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "ATM-мости"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr ""
-"Ідентифікатор віртуального каналу ATM (<abbr title=\"Virtual Channel "
-"Identifier\">VCI</abbr>)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr ""
-"Ідентифікатор віртуального шляху ATM (<abbr title=\"Virtual Path Identifier"
-"\">VPI</abbr>)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"ATM-мости виставляють інкапсульований Ethernet у з’єднаннях AAL5 як "
-"віртуальні мережеві інтерфейси Linux, котрі можуть використовуватися в "
-"поєднанні з DHCP або PPP для підключення до мережі провайдера."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "Номер ATM-пристрою"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "Концентратор доступу"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Точка доступу"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Дії"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "<abbr title=\"Інтернет-протокол версії 4\">IPv4</abbr>-маршрути"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "<abbr title=\"Інтернет-протокол версії 6\">IPv6</abbr>-маршрути"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "Активні підключення"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "Активні оренди DHCP"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "Активні оренди DHCPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Додати"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr "Додати адресу IPv4…"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr "Додати адресу IPv6…"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr "Додати ключ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr "Додавати суфікс локального домену до імен, отриманих із файлів hosts"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "Додати новий інтерфейс..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "Додаткові файли hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr "Додаткові файли servers"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "Адреса"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "Адреса для доступу до мосту локального ретранслятора"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Адміністрування"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr "Додатково"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "Додаткові параметри"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr "Сумарна потужність передавання"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "Тривога"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr "Інтерфейс псевдоніма"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr "Псевдонім \"%s\""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr "Усі сервери"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr "Виділяти IP-адреси послідовно, починаючи з найнижчої доступної адреси"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr "Виділяти IP послідовно"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr ""
-"Дозволити <abbr title=\"Secure Shell — безпечна оболонка\">SSH</abbr>-"
-"перевірку пароля"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-"Дозволити режиму AP відключення абонентів на підставі низького рівня <abbr "
-"title=\"Підтвердження (Acknowledge) успішності отримання TCP-сегменту\">ACK</"
-"abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Дозволити всі, крім зазначених"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr "Дозволити застарілі швидкості 802.11b"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Дозволити тільки зазначені"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "Дозволити локальний вузол"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-"Дозволити віддаленим вузлам підключення до локальних переспрямованих портів "
-"SSH"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "Дозволити root-вхід із паролем"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "Дозволити користувачеві <em>root</em> вхід у систему з паролем"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-"Дозволити висхідні відповіді від клієнта на сервер у діапазоні 127.0.0.0/8, "
-"наприклад, для RBL-послуг"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr "Дозволено IP-адреси"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr "Завжди оголошувати типовим маршрутизатором"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr "Завжди вимкнено (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr "Завжди ввімкнено (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-"Завжди використовувати канали 40 МГц, навіть якщо вторинний канал "
-"перекривається. Використання цієї опції не відповідає стандарту IEEE "
-"802.11n-2009!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-"Оголошувати типовим маршрутизатором, навіть якщо немає доступного публічного "
-"префікса."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr "Оголошено DNS-домени"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr "Оголошено DNS-сервери"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr "Анонімне посвідчення"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr "Анонімне монтування"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr "Анонімний своп"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "Антена 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "Антена 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "Конфигурація антени"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "Будь-яка зона"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr "Все одно застосувати"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr "Сталася помилка запиту на застосування зі статусом <code>%h</code>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr "Архітектура"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-"Призначати частину заданої довжини до кожного публічного IPv6-префікса цього "
-"інтерфейсу"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "Призначення інтерфейсів..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-"Призначати для цього інтерфейсу частину префікса, використовуючи цей "
-"шістнадцятковий ID субпрефікса."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "Приєднано станції"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr "З’єднань"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr "Група автентифікації"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Автентифікація"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr "Тип автентифікації"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Надійний"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Потрібна авторизація"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "Автоматичне оновлення"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr "Автоматично"
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr "Автоматично Homenet (HNCP)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-"Автоматично перевіряти файлову систему на наявність помилок перед монтуванням"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr "Автоматично монтувати файлові системи при оперативниму підключенні"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr "Автоматично монтувати своп при оперативниму підключенні"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr "Автомонтування ФС"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr "Автомонтування своп"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Доступно"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "Середнє значення:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "Назад"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "Повернутися до переліку"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "Повернутися до конфігурації"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "Повернутися до переліку"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "Повернутися до результатів сканування"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "Резервне копіювання"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "Рез. копіювання / Перепрош."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "Список файлів резервних копій"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "Вказано неправильну адресу!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr "Діапазон"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr "Інтервал маяка"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"Нижче наведено визначений список файлів для резервного копіювання. Він "
-"складається із позначених opkg змінених файлів конфігурації, невідокремних "
-"базових файлів, та файлів за користувацькими шаблонами резервного копіювання."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr "Прив’язка інтерфейсу"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr "Прив’язка тунелю до цього інтерфейсу (за бажання)."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "Швидкість передавання даних"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "Відкидати підробки NX-домену"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "Міст"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Об’єднати інтерфейси в міст"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "Номер моста"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "Піднімати при завантаженні"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Бездротовий 802.11%s контролер Broadcom"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Бездротовий 802.11 контролер Broadcom BCM%04x"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "Буферизовано"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-"Сертифікат CA; якщо порожньо, його буде збережено після першого підключення."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "Завантаження ЦП, %"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr "Не вдалося здійснити виклик"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Скасувати"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr "Категорія"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr "Увага: файли конфігурації буде видалено."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr "Увага: систему буде оновлено примусово"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "Ланцюжок"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr "Змінити пароль для входу"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Зміни"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Зміни застосовано."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr "Зміни було скасовано."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "Зміна пароля адміністратора для доступу до пристрою"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr "Зміна пароля…"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Канал"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-"Канал %d не доступний у %s регуляторному домені й був автоматично "
-"скоригований на %d."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "Перевірити"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr "Перевірити файлову систему перед монтуванням"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr "Позначте цей параметр, щоб видалити існуючі мережі з цього радіо."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Контрольна сума"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr "Виберіть mtdblock"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"Оберіть зону брандмауера, яку ви хочете призначити на цей інтерфейс. "
-"Виберіть <em>не визначено</em>, щоб видалити інтерфейс з відповідних зон, "
-"або заповніть поле <em>створити</em>, щоб визначити нову зону і прикріпити "
-"до неї інтерфейс."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"Оберіть мережі, які ви хочете прикріпити до цього бездротового інтерфейсу "
-"або заповніть поле <em>створити</em>, щоб визначити нову мережу."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "Шифр"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr "Інкапсуляція UDP Cisco"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-"Натисніть кнопку \"Створити архів\", щоб завантажити tar-архів поточних "
-"файлів конфігурації."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-"Натисніть \"Зберегти mtdblock\", щоб завантажити вказаний файл mtdblock. "
-"(ПРИМІТКА: ЦЕ ФУНКЦІЯ ДЛЯ ПРОФЕСІОНАЛІВ!)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Клієнт"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "Ідентифікатор клієнта для відправки при запиті DHCP"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr "Закрити"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-"Закривати неактивні з’єднання після певного інтервалу часу (секунди). Для "
-"утримання неактивних з’єднань використовуйте 0"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "Згорнути список..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "Збирання даних..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Команда"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr "Примітка"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "Загальна конфігурація"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-"Ускладнює атаки перевстановлення ключа на стороні клієнта, відключаючи "
-"ретрансляцію кадрів EAPOL-Key, що використовуються для встановлення ключів. "
-"Може викликати проблеми сумісності та зниження стійкості узгодження ключа, "
-"особливо в середовищах з великою завантаженістю трафіку."
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Конфігурація"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr "Помилка налаштування"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr "Конфігураційні файли буде збережено"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr "Конфігурацію застосовано."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr "Конфігурацію було відкочено!"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Підтвердження"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "Підключити"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "Підключено"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Гранична кількість підключень"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr "Невдала спроба підключення"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "Підключення"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-"Після застосування змін конфігурації не вдалося відновити доступ до "
-"пристрою. Вам, можливо, знадобитися повторне підключення, якщо ви змінили "
-"налаштування мережі, такі як IP-адреса або облікові дані безпеки бездротової "
-"мережі."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "Країна"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Код країни"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "Покривати такий інтерфейс"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "Покривати такі інтерфейси"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Створити / Визначити зону брандмауера"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "Створити інтерфейс"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "Створити міст через кілька інтерфейсів"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "Критичний"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Рівень виведення інформації Cron"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "Інтерфейс користувача"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr "Користувацький делегований префікс IPv6"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-"Користувацькі файли (сертифікати, скрипти) можуть залишитися в системі. Щоб "
-"запобігти цьому, спочатку виконайте відновлення мікропрограми до її "
-"початкового стану."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr "Користувацький інтервал спалаху (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Налаштування поведінки <abbr title=\"Light Emitting Diode — світлодіод"
-"\">LED</abbr>, якщо це можливо."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr "Клієнт DAE"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr "Порт DAE"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr "Секрет DAE"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "Сервер DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP та DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "Клієнт DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "Параметри DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr "Клієнт DHCPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr "Режим DHCPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr "Служба DHCPv6"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "Переспрямовування<br />запитів DNS"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr "DNS-мітка / FQDN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr "Перевірка непідписаного DNSSEC"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr "Тайм-аут простою DPD"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr "AFTR-адреса DS-Lite"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr "DSL"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr "Стан DSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr "Режим лінії DSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-"Інтервал <abbr title=\"Delivery Traffic Indication Message — Повідомлення "
-"індикації доправлення трафіку\">DTIM</abbr>"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr "Швидк. передавання"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "Зневаджування"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "Типово %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr "Типовий маршрут"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "Типовий шлюз"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr "Типовим є БЕЗ та ЗІ збереженням стану"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "Типовий стан"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "Визначення імені для цієї мережі."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"Визначення додаткових опцій DHCP, наприклад "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\", щоб оголошувати різні DNS-"
-"сервери для клієнтів."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Видалити"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr "Видалити ключ"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "Видалити цю мережу"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr "Інтервал повідомлень індикації доправлення трафіку"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Опис"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Призначення"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Пристрій"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "Конфігурація пристрою"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr "Пристрій перезавантажується..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr "Пристрій недосяжний!"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr "Пристрій недосяжний! Досі чекаємо на пристрій..."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "Діагностика"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr "Набір номера"
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "Каталог"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "Вимкнути"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"Вимкнути <abbr title=\"Dynamic Host Configuration Protocol — протокол "
-"динамічної конфігурації вузла\">DHCP</abbr> для цього інтерфейсу."
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr "Вимкнути шифрування"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr "Вимкнути опитування неактивності"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr "Вимкнути цю мережу"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "Вимкнено"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr "Вимкнено (типово)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr "Роз'єднувати за низького підтвердження"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "Відкидати висхідні RFC1918-відповіді"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr "Від’єднати"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr "Спроба від’єднання не вдалася"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr "Відхилити"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Оптимізація за відстанню"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Відстань до найвіддаленішого вузла мережі в метрах."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Різновидність"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq являє собою комбінований <abbr title=\"Dynamic Host Configuration "
-"Protocol — протокол динамічної конфігурації вузла\">DHCP</abbr>-сервер і "
-"<abbr title=\"Domain Name System — система доменних імен\">DNS</abbr>-проксі "
-"для брандмауерів <abbr title=\"Network Address Translation — перетворення "
-"(трансляція) мережевих адрес\">NAT</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr "Не кешувати негативні відповіді, наприклад, за неіснуючих доменів"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-"Не переспрямовувати запити, які не може бути оброблено відкритими серверами "
-"імен"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-"Не переспрямовувати зворотні <abbr title=\"Domain Name System — система "
-"доменних імен\">DNS</abbr>-запити для локальних мереж"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr "Справді видалити такий SSH ключ?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Потрібен домен"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "\"Білий список\" доменів"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr "Не фрагментувати"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Не переспрямовувати <abbr title=\"Domain Name System — система доменних імен"
-"\">DNS</abbr>-запити без <abbr title=\"Domain Name System — система доменних "
-"імен\">DNS</abbr>-імені"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr "Вниз"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "Завантажити резервну копію"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr "Завантажити mtdblock"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr "Низхідний зсув SNR"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Реалізація Dropbear"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear — це <abbr title=\"Secure Shell — безпечна оболонка\">SSH</abbr>-"
-"сервер із вбудованим <abbr title=\"Secure Copy\">SCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"Динамічний <abbr title=\"Dynamic Host Configuration Protocol — протокол "
-"динамічної конфігурації вузла\">DHCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "Динамічний тунель"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"Динамічне виділення DHCP-адрес для клієнтів. Якщо вимкнути, будуть "
-"обслуговуватися тільки клієнти, які мають статичні оренди."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr "Довжина EA-бітів"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "EAP-Метод"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Редагувати"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-"Щоб виправити якусь помилку, відредагуйте вихідні дані конфігурації вище і "
-"натисніть \"Зберегти\", щоб перезавантажити сторінку."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "Редагувати цей інтерфейс"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "Редагувати цю мережу"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "Аварійний"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "Увімкнути"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-"Увімкнути відстеження <abbr title=\"Internet Group Management Protocol"
-"\">IGMP</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Увімкнути <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "Увімкнути динамічне оновлення кінцевої точки HE.net"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr "Увімкнути узгодження IPv6"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "Увімкнути узгодження IPv6 для PPP-з’єднань"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "Пропускати Jumbo-фрейми"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "Увімкнути клієнта NTP"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr "Увімкнути Single DES"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "Увімкнути TFTP-сервер"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "Увімкнути підтримку VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr "Увімкнути кнопку WPS, потребує WPA(2)-PSK"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr "Увімкнути протидію<br />перевстановленню ключів (KRACK)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "Увімкнути learning та aging"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr "Увімкнути віддзеркалення вхідних пакетів"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr "Увімкнути віддзеркалення вихідних пакетів"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr "Увімкнути прапорець DF (Don't Fragment) для інкапсульованих пакетів."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "Увімкнути це монтування"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr "Увімкнути цю мережу"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "Увімкнути цей своп"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Увімкнено/Вимкнено"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "Увімкнено"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr "Вмикає відстеження IGMP на цьому мосту"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-"Вмикає швидкий роумінг між точками доступу, що належать до одного і того ж "
-"домену мобільності"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr ""
-"Вмикає <abbr title=\"Spanning Tree Protocol\">STP</abbr> на цьому мосту"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "Режим інкапсуляції"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Шифрування"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr "Хост кінцевої точки"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr "Порт кінцевої точки"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr "Введіть власне значення"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr "Введіть власні значення"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "Видалення..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Помилка"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr "Секунд з помилками (<abbr title=\"Errored seconds\">ES</abbr>)"
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Ethernet-адаптер"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Ethernet-комутатор"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr "Виключити інтерфейси"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "Розширення вузлів"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr "Очікування %s"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "Збігає за"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-#, fuzzy
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr "Термін оренди адрес, мінімум 2 хвилини (<code>2m</code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr "Зовнішнє"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr "Зовнішній список власників ключів R0"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr "Зовнішній список власників ключів R1"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "Зовнішній сервер системного журналу"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "Порт зовнішнього сервера системного журналу"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr "Протокол зовнішнього сервера системного журналу"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr "Додаткові параметри команд SSH"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr "FT через DS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr "FT через повітря"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr "Протокол FT"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr "Не вдалося підтвердити застосування на протязі %d с, очікуємо відкату…"
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "Файл"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "І’мя завантажувального образу, що оголошується клієнтам"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Файлова система"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Фільтрувати приватні"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Фільтрувати непридатні"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr "Завершення не вдалося"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-"Знайти всі файлові системи та свопи, які наразі підключено і замінити "
-"конфігурацію типовою на підставі того, що було виявлено"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "Знайти мережу й приєднатися"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "Готово"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Брандмауер"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr "Позначка брандмауера"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "Налаштування брандмауера"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "Стан брандмауера"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr "Файл мікропрограми"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "Версія мікропрограми"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "Фіксований порт для вихідних DNS-запитів"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Прошиваємо мікропрограму"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "Прошити образ..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "Прошити новий образ мікропрограми"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "Операції прошивання"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "Перепрошиваємо..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr "Доступ до запису флеш-пам’яті (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Примусово"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr "Примусово застосовувати режим '40MHz'"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "Примусово CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr "Примусово DHCP у цій мережі, навіть якщо виявлено інший сервер."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "Примусово TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "Примусово TKIP та CCMP (AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr "Примусове з’єднання"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr "Примусове оновлення"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr "Примусово використовувати NAT-T"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr "Неузгодженість маркера форми"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "Переспрямовувати DHCP-трафік"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr "Секунди прямого коригування помилок (FECS)"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "Переспрямовувати широкомовний трафік"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr "Переспрямовувати одноранговий трафік"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "Режим переспрямовування"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Поріг фрагментації"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Frame Bursting"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "Вільно"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-"Більш детальна інформація про інтерфейси та вузли WireGuard на <a href="
-"\"http://wireguard.com\">wireguard.com</a>."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "ГГц"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "Тільки GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "Шлюз"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr "Неприпустима адреса шлюзу"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "Порти шлюзу"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "Загальні параметри"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "Загальні налаштування"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr "Cтворити конфігурацію"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr "Генерувати PMK локально"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "Cтворити архів"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "Бездротовий 802.11%s контролер"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr "Оскільки пароль і підтвердження не співпадають, то пароль не змінено!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr "Загальні параметри"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr "Глобальні параметри мережі"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "Перейти до конфігурації пароля..."
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Перейти до відповідної сторінки конфігурації"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr "Пароль групи"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr "Гість"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "Пароль HE.net"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr "Ім’я користувача HE.net"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr "Режим HT (802.11n)"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Призупинити"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr "Інтервал пульсації (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Тут ви можете налаштувати основні параметри вигляду вашого пристрою, такі як "
-"назва (ім’я) вузла або часовий пояс."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
-"Приховати <abbr title=\"Extended Service Set Identifier — ідентифікатор "
-"розширеної служби послуг\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr "Приховати порожні ланцюжки"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr "Вузол"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Записи вузлів"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr "Тайм-аут вузла"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "<abbr title=\"Internet Protocol Address\">IP</abbr> вузла або мережа"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr "Зміст тегу Host-Uniq"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Назва (ім’я) вузла"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "Ім’я вузла для надсилання при запиті DHCP"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Імена вузлів"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr "Гібрид"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr "Група IKE DH"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr "IP-адреси"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr "IP-протокол"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "IP-адреса"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr "Неприпустима IP-адреса"
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr "Відсутня IP-адреса"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "Брандмауер IPv4"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr "Висхідне з’єднання IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "Адреса IPv4"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr "Довжина присвоювання IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "Широкомовний IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "Шлюз IPv4"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "Маска мережі IPv4"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr "Мережа IPv4 у позначенні адреси / мережевої маски"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr "Префікс IPv4"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "Довжина префікса IPv4"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr "IPv4+IPv6"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "IPv4-адреса"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr "IPv4 у IPv4 (RFC2003)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "Брандмауер IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr "Сусіди IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr "Налаштування IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-"<abbr title=\"Unique Local Address — унікальна локальна адреса\">ULA</abbr>-"
-"префікс IPv6"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr "Висхідне з’єднання IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "Адреса IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr "Натяк призначення IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr "Довжина призначення IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "Шлюз IPv6"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr "Мережа IPv6 у позначенні адреси / мережевої маски"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "Префікс IPv6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "Довжина префікса IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr "Надісланий префікс IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr "Суфікс IPv6"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "IPv6-адреса"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6 у IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6 через IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6 через IPv4 (6to4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Посвідчення"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr "Якщо позначено, 1DES увімкнено"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr "Якщо позначено, шифрування вимкнено"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-"Якщо обрано, монтувати пристрій за його UUID замість фіксованого вузла "
-"пристрою"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-"Якщо обрано, монтувати пристрій за міткою його розділу замість фіксованого "
-"вузла пристрою"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "Якщо не позначено, типовий маршрут не налаштовано"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "Якщо не позначено, оголошувані адреси DNS-серверів ігноруються"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Якщо фізичної пам’яті недостатньо, невикористовувані дані можуть тимчасово "
-"витіснятися на своп-пристрій, у результаті чого збільшується кількість "
-"корисної оперативної пам’яті (<abbr title=\"Random Access Memory\">RAM</"
-"abbr>). Майте на увазі, що свопінг даних є дуже повільним процесом, оскільки "
-"своп-пристрої не можуть бути доступні з такою високою швидкістю, як <abbr "
-"title=\"Random Access Memory\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Ігнорувати<code>/etc/hosts</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Ігнорувати интерфейс"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Ігнорувати файли resolv"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "Образ"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "Вх."
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-"Щоб запобігти несанкціонованому доступу до системи, ваш запит було "
-"заблоковано. Натисніть \"Продовжити »\" нижче, щоб повернутися до "
-"попередньої сторінки."
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "Тайм-аут бездіяльності"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "Вхідний:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "Інформація"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr "Помилка ініціалізації"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Скрипт ініціалізації"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Скрипти ініціалізації"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr "Інсталюйте iputils-traceroute6 для трасування IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "Інсталяція пакета %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "Інсталяція розширень протоколу..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Інтерфейс"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr "Пристрій інтерфейсу %q автоматичного мігрував із %q на %q."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "Конфігурація інтерфейсу"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "Огляд інтерфейсів"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "Перепідключення інтерфейсу..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr "Ім’я інтерфейсу"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "Інтерфейс відсутній або його ще не підключено."
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Інтерфейси"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr "Внутрішній"
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "Внутрішня помилка сервера"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Неприпустимо"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-"Задано неприпустимий VLAN ID! Доступні тільки ідентифікатори в межах між %d "
-"і %d."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-"Задано неприпустимий VLAN ID! Доступні тільки унікальні ідентифікатори."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Неприпустиме ім’я користувача та/або пароль! Спробуйте ще раз."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr "Ізолювати клієнтів"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Схоже, що ви намагаєтеся прошити образ, який не вміщається до флеш-пам’яті! "
-"Перевірте файл образу!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "Потрібен JavaScript!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "Підключення до мережі"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "Підключення до мережі: Сканування бездротових мереж"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr "Приєднання до мережі: %q"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "Зберегти налаштування"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Журнал ядра"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "Версія ядра"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Ключ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "Ключ #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Знищити"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "Сервер L2TP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "Поріг помилок ехо-запитів LCP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "Інтервал ехо-запитів LCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "Мітка"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Мова"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "Мова та стиль"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr "Затримка"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr "Лист"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr "Час оренди"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Файл оренд"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Час оренди, що лишився"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "Залиште поле порожнім для автовизначення"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "Залиште порожнім, щоб використовувати поточну адресу WAN"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "Легенда:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Межа"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-"Обмежувати службу DNS інтерфейсами підмереж, на яких ми обслуговуємо DNS."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-"Обмежитися прослуховуванням цих інтерфейсів і повернутися до початку циклу."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr "Затухання лінії"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr "Режим лінії"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr "Стан лінії"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr "Час безперервної роботи лінії"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Зв’язок встановлено"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"Список <abbr title=\"Domain Name System\">DNS</abbr>-серверів для "
-"переспрямовування запитів"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-"Список власників ключів R0 у тому ж домені мобільності. <br />Формат: MAC-"
-"адреса,NAS-ідентифікатор,128-бітний ключ у вигляді шістнадцяткового рядка. "
-"<br />Цей список використовується для відображення <abbr title="
-"\"ідентифікатор власника ключа R0\">R0KH-ID</abbr> (NAS-ідентифікатор) на "
-"MAC-адреси призначення при запиті ключа PMK-R1 від <abbr title=\"власник "
-"ключа R0\">R0KH</abbr>, як станції, що була використана під час початкової "
-"асоціації домену мобільності."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-"Список власників ключів R1 у тому ж домені мобільності. <br />Формат: MAC-"
-"адреса,<abbr title=\"ідентифікатор власника ключа R1\">R1KH-ID</abbr> у "
-"формі 6 октетів з двокрапками,128-бітний ключ у вигляді шістнадцяткового "
-"рядка. <br />Цей список використовується для відображення <abbr title="
-"\"ідентифікатор власника ключа R1\">R1KH-ID</abbr> на MAC-адреси призначення "
-"при передаванні ключа PMK-R1 від <abbr title=\"власник ключа R0\">R0KH</"
-"abbr>. Це також список авторизованих <abbr title=\"власник ключа R1\">R1KH</"
-"abbr> у формі <abbr title=\"Message Digest — дайджест повідомлення\">MD</"
-"abbr>, які можуть запитувати ключі PMK-R1."
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr "Список файлів SSH-ключів для авторизації"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "Список доменів, для яких дозволено RFC1918-відповіді"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr "Список доменів, які підтримують результати підробки NX-доменів"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr "Інтерфейси прослуховування"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr "Порти прослуховування"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-"Прослуховувати тільки на цьому інтерфейсі, або на всіх (якщо <em>не "
-"визначено</em>)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "Порт прослуховування для вхідних DNS-запитів"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Навантаження"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "Середнє навантаження"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "Завантаження"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr "Завантаження SSH-ключів…"
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr "Неприпустима локальна ІР-адреса"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr "Локальна IP-адреса для призначення"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "Локальна адреса IPv4"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "Локальна адреса IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr "Тільки локальна служба"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "Локальний запуск"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Місцевий час"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "Локальний домен"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-"Специфікація локального домену. Імена, які зіставлено цьому домену, ніколи "
-"не пересилаються і вирізняються тільки з файлу DHCP (/etc/config/dhcp) або "
-"файлу hosts (/etc/hosts)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-"Суфікс локального домену додається до DHCP-імен вузлів та записів з файлу "
-"hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "Локальний сервер"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-"Локалізувати ім’я хоста залежно від запитуючої підмережі, якщо доступно "
-"кілька IP-адрес"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Локалізувати запити"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr "Заблоковано до каналу %s, який використовує: %s"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "Рівень виведення інформаціі до журналу"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Журнал запитів"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "Журналювання"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Увійти"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Вийти"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr "Найнижча орендована адреса."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr "MAC"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "MAC-адреса"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Фільтр MAC-адрес"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "MAC-фільтр"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "MAC-список"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr "Неприпустиме правило MAP"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MБ/с"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr " МГц"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-"Переконайтеся, що ви клонуєте кореневу файлову систему, використовуючи такі "
-"команди:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr "Вручну"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr "Макс. досяжна швидкість передачі даних (ATTNDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr "Максимальний дозволений інтервал прослуховування"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "Максимально допустима кількість активних оренд DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "Максимально допустима кількість одночасних DNS-запитів"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "Максимально допустимий розмір UDP-пакетів EDNS.0"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "Максимальний час очікування готовності модему (секунд)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-"Максимальна довжина імені становить 15 символів, включаючи префікс "
-"автоматичного протоколу/мосту (br-, 6in4-, pppoe та ін.)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "Максимальна кількість орендованих адрес."
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Мбіт/с"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Пам’ять"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Використання пам’яті, %"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr "Mesh Id"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Метрика"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr "Дзеркало порту диспетчера"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr "Дзеркало вихідного порту"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "Відсутні розширення для протоколу %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr "Домен мобільності"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Режим"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr "Модель"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr "Типові налаштування модема"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Модем"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr "Помилка запиту інформації про модем"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "Тайм-аут ініціалізації модему"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Диспетчер"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "Вхід монтування"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Точка монтування"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Точки монтування"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "Точки монтування – Записи монтування"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "Точки монтування – Вхід свопу"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Точки монтування визначають, до якої точки пристрою пам’яті буде прикріплено "
-"файлову систему"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr "Монтувати не конкретно налаштовані файлові системи"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "Опції монтування"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "Точка монтування"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr "Монтувати не конкретно налаштований своп"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Змонтовано файлові системи"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "Вниз"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "Вгору"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "Ідентифікатор NAS"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr "Режим NAT-T"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr "Префікс NAT64"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr "NCM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr "NDP-проксі"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr "Домен NT"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "Кандидати для синхронізації сервера NTP"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Ім’я"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "Ім’я нового інтерфейсу"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "Назва (ім’я) нової мережі"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Навігація"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "Маска мережі"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "Мережа"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "Мережеві утиліти"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "Образ для мережевого завантаження"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr "Активність мережевого пристрою (%s)"
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr "Мережевий пристрій відсутній"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "Мережа без інтерфейсів."
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "Наступний »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr "№"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "Немає DHCP-сервера, налаштованого для цього інтерфейсу"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr "Немає NAT-T"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "Файли не знайдено"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "Інформація відсутня"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr "Делегування відповідних префіксів відсутнє"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "Ніяких негативних кешувань"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "На цьому пристрої немає налаштованої мережі"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "Ім’я мережі не визначено"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "Пароль не встановлено!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr "Відкритих ключів поки що немає"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "У цьму ланцюжку нема правил."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr "Результати сканування наразі недоступні"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "Зону не призначено"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "Шум"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr "Співвідношення сигнал/шум"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "Шум:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr "Не запобіжні помилки CRC (CRC_P)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr "Без шаблону заміни"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "Жоден"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "Нормальний"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "Не знайдено"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "Не пов’язаний"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "Не підключено"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr "Примітка: довжина імені інтерфейсу"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "Попередження"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "DNS-запит"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr "Кількість кешованих записів DNS (макс. - 10000, 0 - без кешування)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr "Кількість паралельних потоків, що використовуються для стиснення"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr "Обфусований груповий пароль"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr "Обфусований пароль"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr "Отримати IPv6-адресу"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "Затримка Off-State"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"На цій сторінці ви можете налаштувати мережеві інтерфейси. Ви можете "
-"об’єднати кілька інтерфейсів мостом, відзначивши поле \"Об’єднати інтерфейси "
-"в міст\" та ввівши імена кількох мережевих інтерфейсів, розділені пробілами. "
-"Також ви можете використовувати <abbr title=\"Virtual Local Area Network — "
-"віртуальна локальна комп’ютерна мережа\">VLAN</abbr>-позначення "
-"<samp>ІНТЕРФЕЙС.НОМЕР_VLAN</samp> (наприклад, <samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "Затримка On-State"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "Має бути зазначено одне з двох – ім’я вузла або МАС-адреса!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "Одне або декілька полів містять неприпустимі значення!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr "Одне або декілька неприпустимих/обов’язкових значень на вкладці"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "Одне або декілька обов’язкових полів не мають значень!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "Відкрити список..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr "Робоча частота"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "Опція змінена"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "Опція видалена"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr "Необов’язково"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-"Необов’язково. 32-бітна мітка для вихідних зашифрованих пакетів. Введіть "
-"значення в шістнадцятковому форматі, починаючи з <code>0x</code>."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-"Необов’язково. Припустимі значення: 'eui64', 'random' чи фіксоване значення, "
-"наприклад '::1' або '::1:2'. Якщо префікс IPv6 (наприклад, 'a:b:c:d::') "
-"отримано від сервера делегування, для формування IPv6-адреси інтерфейсу  "
-"(наприклад, 'a:b:c:d::1') використовуйте суфікс ('::1')."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-"Необов’язково. Заздалегідь установлений Base64-кодований спільний ключ. "
-"Додавання додатково рівня шифрування із симетричним ключем для пост-"
-"квантової стійкості."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr "Необов’язково. Створити для цього вузла маршрути для дозволених IP."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr "Необов’язково. Опис вузла."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr "Необов’язково. Хост вузла. Імена буде виділено до підняття інтерфейсу."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-"Необов’язково. Максимальний блок передаваних даних тунельного інтерфейсу."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr "Необов’язково. Порт вузла."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-"Необов’язково. Час (сек.) між перевірками активності повідомлень. Типове "
-"значення - 0 (вимкнено). Рекомендоване значення для цього пристрою за NAT - "
-"25."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-"Необов’язково. UDP-порт, який використовується для вихідних та вхідних "
-"пакетів."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Опції"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "Інше:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Вих."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "Вихідний:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr "Вихідний інтерфейс"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "Перевизначити MAC-адресу"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "Перевизначити MTU"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr "Перевизначити TOS"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr "Перевизначити TTL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr "Перевизначення типового імені інтерфейсу"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "Перевизначення шлюзу у відповідях DHCP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-"Перевизначення мережевої маски, яка надсилається клієнтам. Зазвичай вона "
-"обчислюється від підмережі, що обслуговується."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-"Перевизначення таблиці, що використовужться для внутрішніх спрямовувань"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Огляд"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Власник"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "Пароль PAP/CHAP"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "Ім’я користувача PAP/CHAP"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "<abbr title=\"Process Identifier — Ідентифікатор процесу\">PID</abbr>"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr ""
-"<abbr title=\"Personal Identification Number — Персональний ідентифікаційний "
-"номер\">>PIN</abbr>"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr "PIN-код відхилено"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr "Проштовхуваня PMK R1"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "Інкапсуляція PPPoA"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr "PPPoSSH"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "Потрібен пакет libiwinfo!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Пакети"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "Частина зони %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Пароль"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Автентифікація за паролем"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Пароль закритого ключа"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr "Пароль внутрішнього закритого ключа"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr "Пароль2"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr "Вставте або перетягніть файл SSH-ключа…"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Шлях до центру сертифікції"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "Шлях до сертифікату клієнта"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Шлях до закритого ключа"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr "Шлях до внутрішнього CA-сертифікату"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr "Шлях до внутрішнього сертифікату клієнта"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr "Шлях до внутрішнього закритого ключа"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "Пік:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr "Запит IP-адреси призначення"
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr "Відсутня адреса вузла"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr "Вузли"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr "Perfect Forward Secrecy"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Виконати перезавантаження"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "Виконати відновлення"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr "Завжди тримати ввімкненим"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "Фізична швидкість:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Фізичні параметри"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ехо-запит"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "пакетів"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Введіть ім’я користувача і пароль."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Політика"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr "Інтервал опитування"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr "Інтервал опитування для запитів стану (секунди)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Порт"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "Стан порту:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr "Режим керування живленням"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr "Попереджувати помилки CRC (CRCP_P)"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr "Переважно LTE"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr "Переважно UMTS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr "Делеговано префікс"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr "Заздалегідь установлений спільний ключ"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-"Вважати вузол недоступним після визначеної кількості невдач отримання ехо-"
-"пакета LCP, використовуйте 0, щоб ігнорувати невдачі"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr "Перешкоджати прослуховуванню цих інтерфейсів."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Перешкоджати спілкуванню клієнт-клієнт"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr "Приватний ключ"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Продовжити"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Процеси"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr "Профіль"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Прот."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Протокол"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "Протокол нового інтерфейсу"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "Підтримка протоколу не інстальована"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "Забезпечувати сервер NTP"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "Укажіть нову мережу"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Псевдо Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr "Відкритий ключ"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-"Відкриті ключі дозволяють безпарольний SSH-вхід з більш високою безпекою "
-"порівняно з використанням простих паролів. Щоб завантажити до пристрою новий "
-"ключ, вставте сумісний із OpenSSH відкритий ключ або перетягніть файл <code>."
-"pub</code> у поле введення."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr "Публічний префікс надісланий на цей пристрій для поширення клієнтам."
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr "Стільниковий QMI"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "Якість"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-"Запит усіх наявних висхідних <abbr title=\"Domain Name System — система "
-"доменних імен\">DNS</abbr>-серверів"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr "Тривалість життя ключа R0"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr "Власник ключа R1"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr "Режим RFC3947 NAT-T"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "Поріг RTS/CTS"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "Одержано"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "Швидкість приймання"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Порт Radius-Accounting"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Секрет Radius-Accounting"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Сервер Radius-Accounting"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Порт Radius-Authentication"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Секрет Radius-Authentication"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Сервер Radius-Authentication"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-"Сирі шістнадцяткові байти. Залиште порожнім, якщо ваш інтернет-провайдер не "
-"вимагає цього."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Читати <code>/etc/ethers</code> для налаштування <abbr title=\"Dynamic Host "
-"Configuration Protocol — Протокол динамічної конфігурації вузла\">DHCP</"
-"abbr>-сервера"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-"Дійсно видалити цей інтерфейс? Скасувати видалення неможливо! Ви можете "
-"втратити доступ до цього пристрою, якщо вас підключено через цей інтерфейс."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"Дійсно видалити цю бездротову мережу? Скасувати видалення неможливо! Ви "
-"можете втратити доступ до цього пристрою, якщо вас підключено через цю "
-"мережу."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "Дійсно скинути всі зміни?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "Дійсно змінити протокол?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "Підключення у реальному часі"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "Графіки у реальному часі"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "Навантаження у реальному часі"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "Трафік у реальному часі"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "Бездротові мережі у реальному часі"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr "Кінцевий термін реассоціації"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "Захист від переприв’язки"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Перезавантаження"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "Перезавантаження..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Перезавантажити операційну систему вашого пристрою"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Приймання"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Антена приймача"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr "Рекомендовано. IP-адреси інтерфейсу WireGuard."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "Перепідключити цей інтерфейс"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Посилання"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "Ретранслятор"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "Міст-ретранслятор"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "Міжмережевий ретранслятор"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "Міст-ретранслятор"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "Віддалена адреса IPv4"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr "Віддалена адреса IPv4 або FQDN"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Видалити"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "Повторити сканування"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "Замінити запис"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "Замінити конфігурацію бездротової мережі"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr "Запит IPv6-адреси"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr "Запит довжини IPv6-префіксу"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr "Вимагається"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "Вимагається для деяких провайдерів, наприклад, Charter із DOCSIS 3"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr "Вимагається. Base64-кодований закритий ключ для цього інтерфейсу."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr "Вимагається. Base64-кодований відкритий ключ вузла."
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-"Вимагається. IP-адреси та префікси, які цьому вузлу дозволено "
-"використовувати всередині тунелю. Зазвичай тунельні IP-адреси вузла та "
-"мережі маршрутів вузла через тунель."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-"Потребує \"повної\" версії wpad/hostapd та підтримки драйвером WiFi <br /"
-">(станом на січень 2019 року: ath9k, ath10k, mwlwifi та mt76)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Скинути"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Скинути лічильники"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "Відновити початковий стан"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "Файли resolv і hosts"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "Файл resolv"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "Перезавантажити"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Перезавантажити брандмауер"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr "Перезавантажити радіоінтерфейс"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "Відновлення"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Відновити з резервної копії"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "Показати/приховати пароль"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Скасувати"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr "Скасувати зміни"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr "Помилка запиту на скасування зі статусом <code>%h</code>"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr "Відкат конфігурації…"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Корінь"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "Кореневий каталог для файлів TFTP"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr "Підготовка Root"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr "Маршрутизація дозволених IP-адрес"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr "Тип маршруту"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr "Служба оголошень маршрутизатора"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "Пароль маршрутизатора"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Маршрути"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Маршрути визначають через який інтерфейс і шлюз можна досягнути певного "
-"вузла або мережі."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr "Правило"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "Виконати перевірку файлової системи перед монтуванням пристрою"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "Виконати перевірку файлової системи"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "SSH-доступ"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr "Адреса сервера SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr "Порт сервера SSH"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr "Ім’я користувача SSH"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "SSH-ключі"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Зберегти"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Зберегти і застосувати"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr "Зберегти mtdblock"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr "Зберегти вміст mtdblock"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Сканувати"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr "Помилка запиту на сканування"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Заплановані завдання"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "Секцію додано"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "Секцію видалено"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "Подробиці дивись на сторінці керівництва \"mount\"."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-"Щоб прошити образ, навіть якщо не вдається виконати перевірку його формату, "
-"виберіть \"Примусове оновлення\". Використовуйте тільки якщо ви впевнені, що "
-"мікропрограма є правильною і призначена для вашого пристрою!"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-"Надсилати ехо-пакети LCP зі вказаним інтервалом (секунди), ефективно тільки "
-"в поєднанні з порогом помилок"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Розділяти клієнтів"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "Налаштування сервера"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "Назва (ім’я) сервісу"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "Тип сервісу"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Сервіси"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr "Час сеансу минув"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr "Встановити VPN типовим маршрутом"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-"Властивості інтерфейсу встановлюються незалежно від каналу зв’язку (якщо "
-"позначено, обробник автовизначення не викликається при змінах)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr "Налаштування синхронізації часу"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr "Не вдалося налаштувати PLMN"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr "Не вдалося налаштувати режим роботи"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "Налаштування DHCP-сервера"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr "Short GI"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr "Коротка преамбула"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "Показати поточний список файлів резервного копіювання"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr "Показати порожні ланцюжки"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "Вимкнути цей інтерфейс"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "Сигнал"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr "Затухання сигналу (SATN)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "Сигнал:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Розмір"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr "Розмір кешу запитів DNS"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr "Розмір пристрою ZRam у мегабайтах"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "Пропустити"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Перейти до вмісту"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Перейти до навігації"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "Час слота"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr "Програмово реалізований VLAN"
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "Деякі поля є неприпустимими, неможливо зберегти значення!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "На жаль, об’єкт, який ви просили, не знайдено."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "На жаль, на сервері сталася неочікувана помилка."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"На жаль, оновлення системи не підтримується. Новий образ мікропрограми слід "
-"прошити вручну. Зверніться до Wiki за інструкцією з інсталяції для "
-"конкретного пристрою."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Джерело"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "Визначає каталог, до якого приєднаний пристрій"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "Визначає порт прослуховування цієї реалізації <em>Dropbear</em>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-"Визначає максимальну кількість невдалих ARP-запитів до вузлів, після якого "
-"вважається, що вузли \"мертві\""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-"Визначає максимальний час (секунди), після якого вважається, що вузли "
-"\"мертві\""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "Вкажіть тут секретний ключ шифрування."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Запустити"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Стартовий пріоритет"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr "Розпочато застосування конфігурації…"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr "Розпочато сканування бездротових мереж..."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "Запуск"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Статичні маршрути IPv4"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Статичні маршрути IPv6"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Статичні оренди"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Статичні маршрути"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "Статична адреса"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"Статичні оренди використовуються для призначення фіксованих IP-адрес і "
-"символічних імен вузлів DHCP-клієнтам. Вони також необхідні для статичних "
-"конфігурацій інтерфейсів, коли обслуговуються тільки вузли з відповідною "
-"орендою."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr "Обмеження бездіяльності станції"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Стан"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "Зупинити"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Строгий порядок"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Надіслати"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr "Блокувати журналювання"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr "Блокувати ведення журналу звичайної роботи цих протоколів"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr "Своп"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Вхід своп"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "Комутатор"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "Комутатор %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "Комутатор %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-"Комутатор %q має невідому топологію – параметри VLAN можуть бути "
-"неправильними."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr "Маска портів комутатора"
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr "VLAN комутатора"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "Протокол комутатора"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr "Перейти до позначення списку CIDR"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr "Активність порту комутатора (%s)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "Синхронізувати з браузером"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "Синхронізація..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Система"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "Системний журнал"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "Властивості системи"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "Розмір буфера системного журналу"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "Налаштування TFTP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "Корінь TFTP-сервера"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "Передано"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "Швидкість передавання"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Таблиця"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Ціль"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr "Цільова мережа"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Завершити"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-#, fuzzy
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"Розділ <em>Конфігурація пристрою</em> охоплює фізичні параметри апаратних "
-"радіо-засобів, такі, як канал, потужність передавача або вибір антени, які є "
-"спільними для всіх визначених бездротових мереж (якщо апаратні радіо-засоби "
-"здатні підтримувати кілька SSID). Параметри окремих мереж, такі, як "
-"шифрування або режим роботи, згруповано в розділі <em>Конфігурація "
-"інтерфейсу</em>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"Пакет <em>libiwinfo-lua</em> не інстальований. Щоб мати можливість "
-"налаштувати безпровідні мережі, слід інсталювати цей компонент!"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-"Призначений провайдером IPv6-префікс, зазвичай закінчується на <code>::</"
-"code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"Дозволено символи: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> та "
-"<code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr "Архів резервної копії не є правильним файлом gzip."
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr "Файл конфігурації не вдалося завантажити через таку помилку:"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-"Пристрій недосяжний протягом %d секунд після застосування очікуючих змін, що "
-"призвело до відкочування конфигурації з міркувань безпеки. Проте, якщо ви "
-"впевнені, що зміни конфігурації є правильними, все одно продовжіть "
-"застосування. Крім того, ви можете відхилити це попередження та "
-"відредагувати зміни, перш ніж намагатись застосувати їх знову, або ж "
-"скасувати всі очікуючі зміни, щоб зберегти поточну робочу конфігурацію."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr "Файл пристрою пам’яті або розділу (наприклад, <code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"Файлова система, яка використовуватиметься для форматування пам’яті "
-"(наприклад, <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"Образ завантажено. Нижче наведено контрольну суму та розмір файлу. "
-"Порівняйте їх з вихідним файлом, щоб переконатися в цілісності даних.<br /> "
-"Натисніть \"Продовжити\", щоб розпочати процедуру прошивання."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "Наведені нижче зміни було скасовано"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "Наразі в цій системі активні такі правила."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr "Наданий відкритий SSH-ключ вже було додано."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-"Наданий відкритий SSH-ключ є недійсним. Надавайте належні відкриті ключі RSA "
-"або ECDSA."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "Задане мережеве ім’я не є унікальним"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-#, fuzzy
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-"Обладнання не підтримує мульти-SSID і, якщо ви продовжите, існуючу "
-"конфігурацію буде замінено."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr "Довжина IPv4-префікса в бітах, решта використовується в IPv6-адресах."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "Довжина IPv6-префікса в бітах"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"Мережеві порти вашого пристрою може бути об’єднано у декілька <abbr title="
-"\"Virtual Local Area Network — віртуальна локальна комп’ютерна мережа"
-"\">VLAN</abbr>, у яких комп’ютери можуть напряму спілкуватися один з одним. "
-"<abbr title=\"Virtual Local Area Network — віртуальна локальна комп’ютерна "
-"мережа\">VLAN</abbr> часто використовуються для розділення мережі на окремі "
-"сегменти. Зазвичай один виcхідний порт використовується для з’єднання з "
-"більшою мережею, такою наприклад, як Інтернет, а інші порти — для локальної "
-"мережі."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "Обраний протокол потребує призначених пристроїв"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-"Зараз система видаляє розділ конфігурації і коли закінчить, "
-"перезавантажиться."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"Система перепрошивається.<br /> <strong>НЕ ВИМИКАЙТЕ ЖИВЛЕННЯ ПРИСТРОЮ!</"
-"strong><br /> Зачекайте кілька хвилин перед тим, як пробувати знову "
-"під’єднатися. Залежно від налаштувань, можливо, треба буде оновити адресу "
-"вашого комп’ютера, щоб знову отримати доступ до пристрою."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr "Системний пароль успішно змінено."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"Завантажений файл образу не містить підтримуваний формат. Переконайтеся, що "
-"ви вибираєте універсальний формат образу для вашої платформи."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Тема"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "Активних оренд немає."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr "Немає жодних змін до застосування."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "Немає жодних очікуючих змін до скасування!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "Немає жодних очікуючих змін!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-"Немає жодного призначеного пристрою. Призначте мережевий пристрій у вкладці "
-"\"Фізичні параметри\"."
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-"Цей маршрутизатор не має пароля. Встановіть пароль, щоб захистити веб-"
-"інтерфейс і увімкнути SSH."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr "Це IPv4-адреса ретранслятора"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-"Цей файл може містити такі рядки, як 'server=/domain/1.2.3.4' або "
-"'server=1.2.3.4' для домен-орієнтованих або повних висхідних <abbr title="
-"\"Domain Name System\">DNS</abbr>-серверів."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-"Це список шаблонів для відбору файлів і каталогів, які мають увійти до "
-"резервної копії. Змінені файли у <code>/etc/config/</code> та деякі інші "
-"зберігаються автоматично."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-"Це або \"Update Key\", сконфігурований для тунелю, або пароль облікового "
-"запису, якщо ключ оновлення не налаштовано"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"Це вміст файлу <code>/etc/rc.local</code>. Вставте тут ваші власні команди "
-"(перед 'exit 0'), щоб виконати їх у кінці процесу завантаження."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-"Це локальна адреса кінцевої точки, яку присвоєно тунельним брокером, вона "
-"зазвичай закінчується на <code>…:2/64</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"Тільки для <abbr title=\"Dynamic Host Configuration Protocol — протокол "
-"динамічної конфігурації вузла\">DHCP</abbr> у локальній мережі"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr "Це звичайне ім’я користувача для входу до облікового запису"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-"Це префікс, що надсилається до вас тунельним брокером для використання "
-"клієнтами"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr ""
-"Це системна таблиця Cron (crontab), у якій можна визначити заплановані "
-"завдання."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-"Зазвичай, це адреса найближчої точки присутності, що управляється тунельним "
-"брокером"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr "У цьому списку наведено працюючі наразі системні процеси та їх стан."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "Ця сторінка надає огляд поточних активних мережевих підключень."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Ця секція поки що не містить значень"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "Синхронізація часу"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "Синхронізацію часу не налаштовано."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr "Інтервал часу для зміни ключа GTK"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Часовий пояс"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr "Для входу…"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"Щоб відновити файли конфігурації, ви можете відвантажити раніше створений "
-"архів резервної копії. Для відновлення мікропрограми до її початкового стану "
-"натисніть кнопку \"Виконати відновлення\" (можливо тільки з образами "
-"SquashFS)."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr "Тоновий"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "Усього доступно"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Трасування"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "Трафік"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Передано"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Швидкість передавання"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Передавання"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Потужність передавача"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Антена передавача"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "Тригер"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "Режим запуску"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "Ідентифікатор тунелю"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "Інтерфейс тунелю"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr "Посилання тунелю"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "Потужність передавача"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Тип"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "Тільки UMTS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "USB-пристрій"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr "USB-порт"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr "Не вдається визначити ім’я пристрою"
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr "Не вдається визначити зовнішню ІР-адресу"
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr "Не вдається визначити висхідний інтерфейс"
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr "Не вдається опрацювати запит"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr "Не вдається отримати ідентифікатор клієнта"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr "Не вдається розрізнити ім’я хоста AFTR"
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr "Не вдається розрізнити ім’я хоста вузла"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr "Недоступні секунди (<abbr title=\"Unavailable Seconds\">UAS</abbr>)"
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "Невідомо"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr "Невідома помилка (%s)"
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "Некерований"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr "Демонтувати"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr "Безіменний ключ"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Незбережені зміни"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr "Непідтримуваний тип MAP"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr "Непідтримуваний модем"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "Непідтримуваний тип протоколу."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr "Вгору"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"Відвантажити sysupgrade-сумісний образ, щоб замінити поточну мікропрограму. "
-"Для збереження поточної конфігурації встановіть прапорець \"Зберегти "
-"налаштування\" (потрібен сумісний образ мікропрограми)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "Відвантажити архів..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Відвантажений файл"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Час безперервної роботи"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Використовувати <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "Використовувати DHCP-шлюз"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "Використовувати DNS-сервери, оголошувані вузлом"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "Використовуйте коди країн згідно ISO/IEC 3166 alpha2."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr "Використовувати на тунельному інтерфейсі MTU"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "Використовувати на тунельному інтерфейсі TTL"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr "Використовувати як зовнішній оверлей (/overlay)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr "Використовувати як кореневу файлову систему (/)"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "Використовувати прапорець широкомовності"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr "Використовувати вбудоване керування IPv6"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "Використовувати особливі DNS-сервери"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "Використовувати типовий шлюз"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "Використовувати метрику шлюзу"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "Використовувати таблицю маршрутизації"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"Використовуйте кнопку <em>Додати</em>, щоб додати новий запис оренди. "
-"<em>MAC-адреса</em> ідентифікує вузол, <em>IPv4-адреса</em> визначає "
-"фіксовану адресу, яка буде використовуватися, а <em>Назва (ім’я) вузла</em> "
-"призначає символічне ім’я вузла."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Використано"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "Використовується слот ключа"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-"Використовується для двох різних цілей: RADIUS NAS ID і 802.11r <abbr title="
-"\"ідентифікатор власника ключа R0\">R0KH-ID</abbr>. Не потрібно за "
-"звичайного WPA(2)-PSK."
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr "Сертифікат користувача (PEM-кодований)"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr "Ключ користувача (PEM-кодований)"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Ім’я користувача"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr "VDSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLAN на %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLAN на %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr "Локальна адреса VPN"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr "Локальний порт VPN"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "VPN-сервер"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr "Порт VPN-сервера"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr "SHA1-геш сертифіката VPN-сервера"
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr "VPNC (CISCO 3000 (та інш.) VPN)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr "Постачальник"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "Клас постачальника для відправки при запиті DHCP"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "Перевірте"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr "Віртуальний динамічний інтерфейс"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "Відкрита система WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "Спільний ключ WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "Парольна фраза WEP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "Режим <abbr title=\"Wi-Fi Multimedia\">WMM</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "Парольна фраза WPA"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"WPA-шифрування потребує інсталяції <em>wpa_supplicant</em> (для режиму "
-"клієнта) або <em>hostapd</em> (для Точки доступу та режиму ad-hoc)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "Очікуємо, доки зміни наберуть чинності..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "Очікуємо завершення виконання команди..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr "Очікування застосування конфігурації… %d c"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr "Очікуємо пристрій..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "Застереження"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-"Застереження: Є незбережені зміни, які буде втрачено при перезавантаженні!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-"При використанні PSK, PMK може генеруватися автоматично. Якщо ввімкнено, "
-"параметри ключів R0/R1 нижче не застосовуються. Щоб використовувати "
-"параметри ключів R0 та R1, вимкніть цю функцію."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr "Активність Wi-Fi (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr "Асоціація клієнтів Wi-Fi (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr "Приймання даних Wi-Fi (%s"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr "Передавання даних Wi-Fi (%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr "Wi-Fi увімкнено (%s)"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr "Ширина"
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr "WireGuard VPN"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "Бездротові мережі"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Бездротовий адаптер"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "Бездротова мережа"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "Огляд бездротових мереж"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "Безпека бездротової мережі"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "Бездротову мережу вимкнено"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "Бездротову мережу не пов’язано"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "Бездротова мережа перезапускається..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "Бездротову мережу вимкнено"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "Бездротову мережу ввімкнено"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "Записувати отримані DNS-запити до системного журналу"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr "Записувати cистемний журнал до файлу"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr "Так"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Тут ви можете увімкнути або вимкнути інстальовані скрипти ініціалізації. "
-"Зміни набудуть чинності після перезавантаження пристрою.<br /><strong>Увага: "
-"Якщо ви вимкнете основний скрипт ініціалізації (наприклад \"network\"), "
-"пристрій може стати недоступним!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-"Вам слід увімкнути JavaScript у вашому браузері, або LuCI не буде працювати "
-"належним чином."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-"Ваш Internet Explorer занадто старий, щоб правильно відобразити цю сторінку. "
-"Поновіть його, принаймні, до версії 7 або скористайтесь іншим браузером, "
-"таким як Firefox, Opera або Safari."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr "Алгоритм стиснення ZRam"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr "Потоки стиснення ZRam"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr "Налаштування ZRam"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr "Розмір ZRam"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "будь-який"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "авто"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "зв’язано"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr "створити"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "створити:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "Створює міст через зазначені інтерфейси"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "дБ"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "дБм"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "вимкнено"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr "вимкнено"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "минув"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"Файл, де зберігаються видані <abbr title=\"Dynamic Host Configuration "
-"Protocol — протокол динамічної конфігурації вузла\">DHCP</abbr>-оренди"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "переспрямувати"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "повний дуплекс"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "напівдуплекс"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr "шістнадцяткове кодоване значення"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "прихований"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr "гібридний режим"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "якщо ціль — мережа"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "вхід"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "КБ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "КБ/с"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "Кбіт/с"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr "ключ від 8 до 63 символів"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr "ключ із 5 або 13 символів"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr ""
-"Локальний <abbr title=\"Domain Name System — система доменних імен\">DNS</"
-"abbr>-файл"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr "хв."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr "змішаний WPA/WPA2"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "ні"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "нема з’єднання"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr "непусте значення"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr "не присутній"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "вимкнено"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "увімкнено"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-"одне з:\n"
-" - %s"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "відкрита"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr "вихід"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr "оверлей"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr "додатне десяткове значення"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr "додатне ціле значення"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr "випадковий"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr "режим реле"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "спрямовано"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr "с"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr "режим сервера"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr "тільки ЗІ збереженням стану"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr "БЕЗ збереження стану"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr "БЕЗ та ЗІ збереженням стану"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "позначено"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr "одиниці часу (TUs / 1.024 ms) [1000-65535]"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr "унікальне значення"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "невідомий"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "необмежений"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "не визначено"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "не визначено -або- створити:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "не позначено"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr "значення від %d до %d символів"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr "значення від %f до %f"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr "значення, що більше або дорівнює %f"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr "значення, що менше або дорівнює %f"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr "значення з принаймні %d символів"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr "значення з не більше %d символів"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "так"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« Назад"
diff --git a/package/luci/modules/luci-base/po/vi/base.po b/package/luci/modules/luci-base/po/vi/base.po
deleted file mode 100644 (file)
index 8354af2..0000000
+++ /dev/null
@@ -1,6316 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-16 06:59+0200\n"
-"PO-Revision-Date: 2009-08-14 12:23+0200\n"
-"Last-Translator: Hong Phuc Dang <dhppat@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-#, fuzzy
-msgid "(%s available)"
-msgstr "(%s available)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "---Mục bổ sung---"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "--Hãy chọn--"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "--tùy chỉnh--"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Dịch vụ căn bản đặt Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Mở rộng dịch vụ đặt Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "Điểm truy cập"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "Hành động"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "kết nối đang hoạt động"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "Thêm vào"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "Quản trị"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "Cho phép <abbr title=\"Secure Shell\">SSH</abbr> xác thực mật mã"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "Cho phép tất cả trừ danh sách liệt kê"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "Chỉ cho phép danh sách liệt kê"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "Xác thực"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "Authoritative"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "Yêu cầu ủy quyền"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "Sẵn có"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "Giao diện cầu nối"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "CPU usage (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "Bỏ qua"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "chuỗi"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "Thay đổi"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "Thay đổi đã áp dụng"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "Kênh"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "Checksum"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr "Giao diện này chưa thuộc về bất kỳ firewall zone nào."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "Client"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "Lệnh"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "Cấu hình"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "Xác nhận"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "Giới hạn kết nối"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "Mã quốc gia"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "Tạo/ gán firewall-zone"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"Tùy chỉnh chế độ của thiết bị <abbr title=\"Light Emitting Diode\">LED</"
-"abbr>s nếu có thể."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "Tùy chọn DHCP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "Xóa"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "Mô tả"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "Điểm đến"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "Công cụ"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "Khoảng cách tối ưu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "Khoảng cách tới thành viên xa nhất trong mạng lưới tính bằng mét"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "Tính đa dạng"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq là một phối hợp  <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "Domain yêu cầu"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"Don&amp;#39;t chuyển tiếp <abbr title=\"Hệ thống tên miền\">DNS</abbr>-Yêu "
-"cầu không cần <abbr title=\"Hệ thống tên miền\">DNS</abbr>-Tên"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear cung cấp <abbr title=\"Secure Shell\">SSH</abbr> mạng lưới shell "
-"truy cập và một <abbr title=\"Secure Copy\">SCP</abbr> server tích hợp"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "EAP-Method"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "Chỉnh sửa"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "Kích hoạt <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "Cho kích hoạt/ Vô hiệu hóa"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "Kích hoạt Spanning Tree Protocol trên cầu nối này"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "Encryption"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "Lỗi"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "Bộ tương hợp ethernet"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "Bộ chuyển đảo ethernet"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "Tập tin hệ thống"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "Filter private"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "Lọc không hữu dụng"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "Firewall"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "Phần cứng flash"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "Force"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "Ngưỡng cửa Phân đoạn"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "Khung nổ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "Đi tới trang cấu hình thích hợp"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "Hang Up"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr ""
-"Ở đây bạn có thể cấu hình những đặc tính cơ bản của thiết bị như tên máy chủ "
-"hoặc múi giờ."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "Giấu <abbr title=\"Chế độ mở rộng đặt Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "Host entries"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "Tên host"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "Tên host"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "Địa chỉ IP"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "Nhận dạng"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"Nếu bộ nhớ vật lý không đủ dữ liệu không dùng có thể được swap tạm thời đến "
-"một thiết bị swap để tạo ra nhiều khoảng trống hơn trong <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Hãy nhận biết rằng swapping dữ liệu là "
-"một quá trình rất chậm vì một thiết bị swap không thể được truy cập với  "
-"datarates cao hơn của <abbr title=\"Random Access Memory\">RAM</abbr>."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "Lờ đi <code>/etc/hosts</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "Lờ đi giao diện"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "Lờ đi tập tin resolve"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "Trong"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "Initscript"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "Initscripts"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "Giao diện "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "Giao diện "
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "Giá trị nhập vào không hợp lí"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "Tên và mật mã không đúng. Xin thử lại "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr ""
-"Dường như bạn cố gắng flash một hình ảnh không phù hợp với bộ nhớ flash, xin "
-"vui lòng xác minh các tập tin hình ảnh!"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "Kernel Log"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "Phím "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "Kill"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "Ngôn ngữ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "Leasefile"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "Leasetime còn lại"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "Giới hạn "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "Link On"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "Tải "
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "Giờ địa phương"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "Tra vấn địa phương"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "Bản ghi tra vấn"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "Đăng nhập "
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "Thoát ra"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "Lọc địa chỉ MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "Lọc MAC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "Danh sách MAC"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "Bộ nhớ"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "Memory usage (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "Metric"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "Chế độ"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "Thiết bị modem"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "Monitor"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "Lắp điểm"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "Lắp điểm"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr ""
-"Số điểm lắp xác định tại một điểm mà ở đó bộ nhớ sẽ được gắn vào hệ thống "
-"tập tin"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "Lắp tập tin hệ thống"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "Tên"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "Sự điều hướng"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "mạng lưới "
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "Không có quy luật trong chuỗi này"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"Trên trang này bạn có thể định cấu hình giao diện network. Bạn có thể bắt "
-"cầu nhiều giao diện bằng cách đánh dấu &amp;quot;bridge interfaces&amp;quot; "
-"field và nhập tên vào của nhiều giao diện network phân tách bởi những khoảng "
-"trống. Bạn có thể cũng dùng <abbr title=\"Virtual Local Area Network\">VLAN</"
-"abbr> notation <samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e."
-"g.</abbr>: <samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "Lựa chọn "
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "Ra khỏi"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "Nhìn chung"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "Owner"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "PPPoA Encapsulation"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "Gói tin"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "Mật mã"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "Xác thực mật mã"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "Mật mã của private key"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "Đường dẫn tới CA-Certificate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "Đường dẫn tới private key"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "Tiến hành reboot"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "Cài đặt căn bản"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "Nhập tên và mật mã"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "Chính sách"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "Cửa "
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "Ngăn chặn giao tiếp giữa client-và-client"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "Proceed"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "Processes"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "Prot."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "Protocol"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "Pseudo Ad-Hoc (ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "RTS/CTS Threshold"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "RX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"Đọc <code>/etc/ethers</code> để định cấu hình <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "Reboot"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "Reboots hệ điều hành của công cụ"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "Receive"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "Máy thu Antenna"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "Tham chiếu"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "Loại bỏ"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "thay đổi nội dung"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "Reset"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "Reset bộ đếm"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "Khởi động lại Firewall"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "Phục hồi backup"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "Revert"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "Routes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr ""
-"Routes chỉ định trên giao diện và cổng một host nhất định hay network được "
-"tiếp cận."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "Lưu"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "Lưu & áp dụng "
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "Scan"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "Scheduled Tasks"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "Cô lập đối tượng"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "Dịch vụ "
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "Dung lượng "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "Nhảy tới nội dung"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "Chuyển đến mục định hướng"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "Nguồn"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "Bắt đầu "
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "Bắt đầu ưu tiên"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "Static IPv4 Routes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "Static IPv6 Routes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "Thống kê leases"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "Static Routes"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "Tình trạng"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "Yêu cầu nghiêm ngặt"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "Trình "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "chuyển đổi"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "Hệ thống"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "System Log"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "TX"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "Bảng"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "Đích"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "Terminate"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"Tập tin công cụ của bộ nhớ hoặc phân vùng (<abbr title=\"Ví dụ\">e.g.</abbr> "
-"<code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"Filesystem mà được dùng để format memory (<abbr title=\"for example\">e.g.</"
-"abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "Những thay đối sau đây đã được để trở về tình trạng cũ. "
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"Hệ thống bây giờ đang flashing.<br /> DO NOT POWER OFF THE DEVICE!<br /> Chờ "
-"một vài phút cho tới khi kết nối lại. Có thể cần phải làm mới địa chỉ của "
-"máy tính để tiếp cận thiết bị một lần nữa, phụ thuộc vào cài đặt của bạn. "
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"Tập tin đang tải hình ảnh không bao gồm một hổ trợ format. Bảo đảm rằng bạn "
-"chọn một image format tổng quát cho platform."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "Thiết kế"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"Đây là <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> duy "
-"nhất trong mạng địa phương. "
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr "Đây là system crontab mà scheduled tasks có thể bị định nghĩa."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr ""
-"List này đưa ra một tầm nhìn tổng quát về xử lý hệ thống đang chạy và tình "
-"trạng của chúng."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr ""
-"Trang này cung cấp một tổng quan về đang hoạt động kết nối mạng hiện tại."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "Phần này chưa có giá trị nào"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "Múi giờ "
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "Chuyển giao"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "Truyền tải rate"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "Transmit"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "Truyền tải năng lượng"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "Máy phát Antenna"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "Loại "
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "Thay đổi không lưu"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "Tập tin đã tải lên"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "Uptime"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "Dùng <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "Đã sử dụng"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "Tên người dùng "
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "WMM Mode"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "Bộ tương hợp không dây"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"Bạn có thể bật hoặc tắt cài đặt init script tại đây. Thay đổi này sẽ được áp "
-"dụng sau khi một thiết bị khởi động lại.<br /><strong>Cảnh báo: Nếu bạn vô "
-"hiệu hoá init script thiết yếu như &amp;quot;network&amp;quot;, công cụ của "
-"bạn chó thể trở nên không truy cập được</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr ""
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "tự động"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "tạo một cầu nối trên một giao diện được chỉ định"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "Vô hiệu hóa"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"Tập tin được cho <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases sẽ được lưu trữ"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "Nếu mục tiêu là một network"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "Tập tin <abbr title=\"Domain Name System\">DNS</abbr> địa phương"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr ""
-
-#~ msgid "Design"
-#~ msgstr "Thiết kế"
-
-#~ msgid "Download and install package"
-#~ msgstr "Tải và cài đặt gói"
-
-#~ msgid "Filter"
-#~ msgstr "Lọc"
-
-#~ msgid "Find package"
-#~ msgstr "Tìm gói"
-
-#~ msgid "Install"
-#~ msgstr "Cài đặt "
-
-#~ msgid "OK"
-#~ msgstr "OK "
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "Cấu hình OPKG-"
-
-#~ msgid "Package name"
-#~ msgstr "Tên gói"
-
-#~ msgid "Software"
-#~ msgstr "Phần mềm"
-
-#~ msgid "Version"
-#~ msgstr "Phiên bản"
-
-#~ msgid "none"
-#~ msgstr "không "
-
-#~ msgid "No chains in this table"
-#~ msgstr "Không có chuỗi trong bảng này"
-
-#~ msgid "Backup / Restore"
-#~ msgstr "Backup/ Restore"
-
-#~ msgid "Apply"
-#~ msgstr "Áp dụng"
-
-#~ msgid "Applying changes"
-#~ msgstr "Tiến hành thay đổi"
-
-#~ msgid "Action"
-#~ msgstr "Action"
-
-#~ msgid "Maximum hold time"
-#~ msgstr "Mức cao nhất"
-
-#~ msgid "Minimum hold time"
-#~ msgstr "Mức thấp nhất"
-
-#~ msgid "Leasetime"
-#~ msgstr "Leasetime"
-
-#, fuzzy
-#~ msgid "automatic"
-#~ msgstr "thống kê"
-
-#~ msgid "AR Support"
-#~ msgstr "Hỗ trợ AR"
-
-#~ msgid "Background Scan"
-#~ msgstr "Background Scan"
-
-#~ msgid "Compression"
-#~ msgstr "Sức nén"
-
-#~ msgid "Disable HW-Beacon timer"
-#~ msgstr "Vô hiệu hóa bộ chỉnh giờ HW-Beacon"
-
-#~ msgid "Do not send probe responses"
-#~ msgstr "Không gửi nhắc hồi đáp"
-
-#~ msgid "Fast Frames"
-#~ msgstr "Khung nhanh"
-
-#~ msgid "Maximum Rate"
-#~ msgstr "Mức cao nhất"
-
-#~ msgid "Minimum Rate"
-#~ msgstr "Mức thấp nhất"
-
-#~ msgid "Multicast Rate"
-#~ msgstr "Multicast Rate"
-
-#~ msgid "Outdoor Channels"
-#~ msgstr "Kênh ngoại mạng"
-
-#~ msgid "Regulatory Domain"
-#~ msgstr "Miền điều chỉnh"
-
-#~ msgid "Separate WDS"
-#~ msgstr "Phân tách WDS"
-
-#~ msgid "Turbo Mode"
-#~ msgstr "Turbo Mode"
-
-#~ msgid "XR Support"
-#~ msgstr "Hỗ trợ XR"
diff --git a/package/luci/modules/luci-base/po/zh-cn/base.po b/package/luci/modules/luci-base/po/zh-cn/base.po
deleted file mode 100644 (file)
index 594cab7..0000000
+++ /dev/null
@@ -1,6492 +0,0 @@
-#
-# Zheng Qian <sotux82@gmail.com>, 2019.
-# Yangfl <mmyangfl@gmail.com>, 2018, 2019.
-#
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2019-01-25 10:54+0800\n"
-"Last-Translator: Yangfl <mmyangfl@gmail.com>\n"
-"Language-Team:  <debian-l10n-chinese@lists.debian.org>\n"
-"Language: \n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Gtranslator 2.91.7\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr "%.1f dB"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr "%d Bit"
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr "%d 个无效字段"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr "%s 在多个 VLAN 中均未标记!"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(最近 %d 分钟信息,每 %d 秒刷新)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s 可用)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(空)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(没有接口连接)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- 更多选项 --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- 请选择 --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- 自定义 --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr "-- 根据设备匹配 --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr "-- 根据标签匹配 --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr "-- 根据 UUID 匹配 --"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr "-- 请选择 --"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "1 分钟负载:"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "15 分钟负载:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr "4 字符的十六进制 ID"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr "464XLAT (CLAT)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "5 分钟负载:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr "十六进制表示的 6 字节标识符,无冒号分隔"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr "802.11r 快速切换"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr "802.11w 关联 SA 查询最大超时"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr "802.11w 关联 SA 查询重试超时"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr "802.11w 管理帧保护"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr "802.11w 最大超时"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr "802.11w 重试超时"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> 查询端口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> 服务器端口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr ""
-"按照“解析文件”里的顺序查询 <abbr title=\"Domain Name System\">DNS</abbr> 服务"
-"器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr> 地址"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr> 网关"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr> 子网掩码"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr> 地址或网段(CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr> 网关"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr> 后缀(十六进制)"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> 配置"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> 名称"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Media Access Control\">MAC</abbr> 地址"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"最大 <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> 租约数量"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"最大 <abbr title=\"Extension Mechanisms for Domain Name System\">EDNS0</"
-"abbr> 数据包大小"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "最大并发查询数"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-"<br/>注意:如果 crontab 文件在编辑前为空,则需要手动重新启动 cron 服务。"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr "由于身份验证会话已过期,需要重新登录。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr "A43C + J43 + A43"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr "A43C + J43 + A43 + V43"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr "ADSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr "ANSI T1.413"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "ARP 重试阈值"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr "ATM(异步传输模式)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "ATM 桥接"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "ATM 虚拟通道标识(VCI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "ATM 虚拟路径标识(VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"ATM 桥是以 AAL5 协议封装以太网的虚拟 Linux 网桥,用于协同 DHCP 或 PPP 来拨号"
-"连接到网络运营商。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "ATM 设备号码"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr "ATU-C 系统供应商 ID"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "接入集中器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "接入点 AP"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "动作"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "活动的 <abbr title=\"Internet Protocol Version 4\">IPv4</abbr> 路由"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "活动的 <abbr title=\"Internet Protocol Version 6\">IPv6</abbr> 路由"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "活动连接"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "已分配的 DHCP 租约"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "已分配的 DHCPv6 租约"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "点对点 Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "添加"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr "添加 IPv4 地址…"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr "添加 IPv6 地址…"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr "添加密钥"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr "添加本地域名后缀到 HOSTS 文件中的域名"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "添加新接口…"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "额外的 HOSTS 文件"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr "额外的 SERVERS 文件"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "地址"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "接入本地中继桥的地址"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "管理权"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr "高级"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "高级设置"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr "总发射功率(ACTATP)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "警戒"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr "接口别名"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr "\"%s\" 的别名"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr "所有服务器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr "从最低可用地址开始顺序分配 IP 地址"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr "顺序分配 IP"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "允许 <abbr title=\"Secure Shell\">SSH</abbr> 密码验证"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr "允许 AP 模式时在 low ACK 的情况下断开无线终端"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "仅允许列表外"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr "允许传统的 802.11b 速率"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "仅允许列表内"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "允许本机"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr "允许远程主机连接到本地 SSH 转发端口"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "允许 root 用户凭密码登录"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "允许 <em>root</em> 用户凭密码登录"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr "允许 127.0.0.0/8 回环范围内的上行响应,例如:RBL 服务"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr "允许的 IP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr "总是通告默认路由"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr "总是关闭(%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr "总是开启(%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-"即使辅助信道重叠,也始终使用 40MHz 信道。使用此选项不符合 IEEE 802.11n-2009!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr "Annex"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr "Annex A + L + M(全部)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr "Annex A G.992.1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr "Annex A G.992.2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr "Annex A G.992.3"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr "Annex A G.992.5"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr "Annex B(全部)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr "Annex B G.992.1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr "Annex B G.992.3"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr "Annex B G.992.5"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr "Annex J(全部)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr "Annex L G.992.3 POTS 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr "Annex M(全部)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr "Annex M G.992.3"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr "Annex M G.992.5"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr "即使没有可用的公网前缀,也仍通告自己为默认路由。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr "通告的 DNS 域名"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr "通告的 DNS 服务器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr "匿名身份"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr "自动挂载未配置的磁盘分区"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr "自动挂载未配置的 Swap 分区"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "天线 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "天线 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "天线配置"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "任意区域"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr "强制应用"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr "应用请求失败,状态 <code>%h</code>"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr "架构"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr "将每个公共 IPv6 前缀的给定长度部分分配给此接口"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "分配接口…"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr "将此十六进制子 ID 前缀分配给此接口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "已连接站点"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr "关联数"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr "认证组"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "认证"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr "认证类型"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "唯一授权"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "需要授权"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "自动刷新"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr "自动"
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr "自动家庭网络(HNCP)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr "在挂载前自动检查文件系统错误"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr "通过 hotplug 自动挂载磁盘"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr "通过 hotplug 自动挂载 swap 分区"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr "自动挂载磁盘"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr "自动挂载 Swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "可用"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "平均:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr "B43 + B43C"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr "B43 + B43C + V43"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr "BR / DMR / AFTR"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "返回"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "返回至概况"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "返回至配置"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "返回至概况"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "返回至扫描结果"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "备份"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "备份/升级"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "文件备份列表"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "指定了错误的地址!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr "频宽"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr "Beacon 间隔"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"下面是待备份的文件清单。包含了更改的配置文件、必要的基础文件和用户自定义的需"
-"备份文件。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr "动态绑定到接口而不是通配符地址(推荐为 linux 默认值)"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr "绑定接口"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr "将隧道绑定到此接口(可选)。"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "传输速率"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "忽略虚假空域名解析"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "桥接"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "桥接接口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "桥接号"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "开机自动运行"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Broadcom 802.11%s 无线控制器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Broadcom BCM%04x 802.11 无线控制器"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "已缓冲"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr "CA 证书,如果留空,则证书将在第一次连接后被保存。"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "CPU 使用率(%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr "调用失败"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "取消"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr "分类"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr "注意:配置文件将被删除"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr "注意:将强制进行系统升级"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "链"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr "更改登录密码"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "更改数"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "更改已应用。"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr "更改已恢复。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "更改访问设备的管理员密码"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr "正在更改密码…"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "信道"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr "信道 %d 在 %s 监管区域内不可用并已自动调整到 %d。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "检查"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr "在挂载前检查文件系统"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr "选中此选项以从无线中删除现有网络。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "校验值"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr "选择 mtdblock"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"为此接口分配所属的防火墙区域,选择“不指定”可将该接口移出已关联的区域,或者填"
-"写“创建”栏来创建一个新的区域,并将当前接口与之建立关联。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr "选择指派到此无线接口的网络,或者填写“创建”栏来新建网络。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "算法"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr "Cisco UDP 封装"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr "点击“生成备份”下载当前配置文件的 tar 存档。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-"单击“保存 mtdblock”以下载指定的 mtdblock 文件。(注意:此功能适用于专业人"
-"士!)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "客户端 Client"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "请求 DHCP 时发送的客户端 ID"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr "关闭"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr "在给定时间(秒)后关闭非活动链接,0 为保持连接"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "关闭列表…"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "正在收集数据…"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "命令"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr "备注"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "一般配置"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-"通过禁用用于安装密钥的 EAPOL-Key 帧的重新传输,来增加客户端密钥重安装攻击的复"
-"杂度。此解决方法可能会导致互操作性问题,并降低密钥协商的可靠性,特别是在流量"
-"负载较重的环境中。"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "配置"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr "配置失败"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr "将保留配置文件"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr "配置已应用。"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr "配置已回滚!"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "确认密码"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "连接"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "已连接"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "连接数限制"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr "尝试连接失败"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "连接"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-"应用配置更改后,无法重新获得对设备的访问权限。如果您更改了网络相关设置如 IP "
-"地址或无线安全证书,则可能需要重新连接。"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "国家"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "国家代码"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "包括以下接口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "包括以下接口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "创建/分配防火墙区域"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "创建新接口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "在多个接口上创建桥接"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "致命错误"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Cron 日志级别"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "自定义接口"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr "自定义分配的 IPv6 前缀"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-"自定义文件(证书、脚本)会保留在系统上。若无需保留,请先执行恢复出厂设置。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr "自定义闪烁间隔(%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr "自定义此设备的 <abbr title=\"Light Emitting Diode\">LED</abbr> 行为。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr "DAE 客户端"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr "DAE 端口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr "DAE 加密"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "DHCP 服务器"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP/DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "DHCP 客户端"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "DHCP 选项"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr "DHCPv6 客户端"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr "DHCPv6 模式"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr "DHCPv6 服务"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "DNS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "DNS 转发"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr "DNS-Label / FQDN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr "DNSSEC"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr "DNSSEC 检查未签名"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr "DPD 空闲超时"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr "DS-Lite AFTR 地址"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr "DSL"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr "DSL 状态"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr "DSL 线路模式"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr "DTIM 间隔"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DUID"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr "数据速率"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "调试"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "默认 %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr "默认路由"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "默认网关"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr "默认是无状态的 + 有状态的"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "默认状态"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "为网络定义名称。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"设置 DHCP 的附加选项,例如设定 \"<code>6,192.168.2.1,192.168.2.2</code>\" 表"
-"示通告不同的 DNS 服务器给客户端。"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "删除"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr "删除密钥"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "删除此网络"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr "发送流量指示消息间隔"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "描述"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "目标地址"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "设备"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "设备配置"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr "设备正在重启…"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr "无法连接到设备"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr "无法连接到设备!仍旧等待设备…"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "网络诊断"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr "拨号号码"
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "目录"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "禁用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-"不在此接口提供 <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> 服务。"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr "禁用加密"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr "禁用不活动轮询"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr "禁用此网络"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "已禁用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr "已禁用(默认)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr "在低 Ack 应答时断开连接"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "丢弃 RFC1918 上行响应数据"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr "断开连接"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr "尝试断开连接失败"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr "解除"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "距离优化"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "最远网络用户的距离(米)。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "差异"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-"Dnsmasq 为 <abbr title=\"Network Address Translation\">NAT</abbr> 防火墙提供"
-"了一个集成的 <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> "
-"服务器和 <abbr title=\"Domain Name System\">DNS</abbr> 转发器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr "不缓存无用的回应, 比如:不存在的域名"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr "不转发公共域名服务器无法回应的请求"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr "不转发本地网络的反向查询"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr "您真的要删除以下 SSH 密钥吗?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "忽略空域名解析"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "域名白名单"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr "禁止分片"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"不转发没有 <abbr title=\"Domain Name System\">DNS</abbr> 名称的解析请求"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr "下移"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "下载备份"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr "下载 mtdblock"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr "下游 SNR 偏移"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Dropbear 实例"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear 提供 <abbr title=\"Secure Shell\">SSH</abbr> 访问和 <abbr title="
-"\"Secure Copy\">SCP</abbr> 服务"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr "轻型双栈(RFC6333)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr "动态 <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "动态隧道"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr ""
-"为所有客户端提供 DHCP 服务。如果禁用,将只对具有静态租约的客户提供服务。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr "EA-位长"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "EAP 类型"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "编辑"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr "编辑上方的原始配置数据来修复错误,点击“保存”按钮以重新载入此页面。"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "编辑此接口"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "编辑此网络"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "紧急"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "启用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-"启用 <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> 嗅探"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "开启 <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "启用 HE.net 动态终端更新"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr "启用 IPv6 协商"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "在 PPP 链路上启用 IPv6 协商"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "启用巨型帧透传"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "启用 NTP 客户端"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr "启用单个 DES"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "启用 TFTP 服务器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "启用 VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr "启用 WPS 一键加密按钮,需要 WPA(2)-PSK"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr "启用密钥重新安装(KRACK)对策"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "启用智能交换学习"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr "启用流入数据包镜像"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr "启用流出数据包镜像"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr "启用后报文的 DF(禁止分片)标志。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "启用此挂载点"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr "启用此网络"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "启用此 swap 分区"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "启用/禁用"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "已启用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr "在此桥接上启用 IGMP 窥探"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr "启用属于同一移动域的接入点之间的快速漫游"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "在此桥接上启用生成树协议"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "封装模式"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "加密"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr "端点主机"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr "端点端口"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr "输入自定义值"
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr "输入自定义值"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "擦除中…"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "错误"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr "错误秒数(ES)"
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "以太网适配器"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "以太网交换机"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr "排除接口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "扩展 HOSTS 文件中的主机后缀"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr "期望 %s"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "到期时间"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr "租用地址的到期时间,最短 2 分钟(<code>2m</code>)。"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr "外部"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr "外部 <abbr title=\"R0 Key Holder\">R0KH</abbr> 列表"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr "外部 <abbr title=\"R1 Key Holder\">R1KH</abbr> 列表"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "外部系统日志服务器地址"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "外部系统日志服务器端口"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr "外部系统日志服务器协议"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr "额外的 SSH 命令选项"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr "FT over DS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr "FT over the Air"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr "FT 协议"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr "在 %d 秒内确认应用失败,等待回滚…"
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "文件"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "向客户端通告的启动镜像文件名"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "文件系统"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "过滤本地包"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "过滤无用包"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr "最终确认失败"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr "查找当前系统上的所有分区和 swap 设备,并根据查找结果生成并替换现有配置"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "搜索并加入网络"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "完成"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "防火墙"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr "防火墙标识"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "防火墙设置"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "防火墙状态"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr "固件文件"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "固件版本"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "指定的 DNS 查询源端口"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "刷新固件"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "刷写固件…"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "刷写新的固件"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "刷新操作"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "正在刷写…"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr "闪存写访问(%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "强制"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr "强制 40MHz 模式"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "强制 CCMP(AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr "即使检测到另一台服务器,也要强制使用此网络上的 DHCP。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "强制 TKIP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "强制 TKIP 和 CCMP(AES)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr "强制链路"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr "强制升级"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr "强制使用 NAT-T"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr "表单令牌不匹配"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "转发 DHCP 数据包"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr "前向纠错秒数(FECS)"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "转发广播数据包"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr "转发 mesh 节点数据包"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "转发模式"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "分片阈值"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "帧突发"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "空闲数"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-"有关 WireGuard 接口和 Peer 的更多信息:<a href=\"http://wireguard.com"
-"\">wireguard.com</a>。"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "仅 GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "网关"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr "网关地址无效"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "网关端口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "基本设置"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "基本设置"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr "生成配置"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr "本地生成 PMK"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "生成备份"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "通用 802.11%s 无线控制器"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr "由于密码验证不匹配,密码没有更改!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr "全局设置"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr "全局网络选项"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "跳转到密码配置页…"
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "跳转到相关的配置页面"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr "组密码"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr "访客"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr "HE.net 密码"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr "HE.net 用户名"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr "HT 模式(802.11n)"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "挂起"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr "请求头错误代码错误(HEC)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr "心跳间隔(%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr "此处配置设备的基础信息,如主机名称或时区。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "隐藏 <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr "隐藏空链"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr "主机"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "主机目录"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr "主机到期超时"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "主机 <abbr title=\"Internet Protocol Address\">IP</abbr> 或网络"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr "Host-Uniq 标签内容"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "主机名"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "请求 DHCP 时发送的主机名"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "主机名"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr "混合"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr "IKE DH 组"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr "IP 地址"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr "IP 协议"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "IP 地址"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr "IP 地址无效"
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr "IP 地址缺失"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "IPv4 防火墙"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr "IPv4 上游"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "IPv4 地址"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr "分配 IPv4 长度"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "IPv4 广播"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "IPv4 网关"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "IPv4 子网掩码"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr "地址/网络掩码表示法中的 IPv4 网络"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr "IPv4 地址前缀"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "IPv4 地址前缀长度"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr "IPv4+IPv6"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "IPv4 地址"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr "IPv4-in-IPv4 (RFC2003)"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "IPv6 防火墙"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr "IPv6 网上邻居"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr "IPv6 设置"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr "IPv6 ULA 前缀"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr "IPv6 上游"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "IPv6 地址"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr "IPv6 分配提示"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr "IPv6 分配长度"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "IPv6 网关"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr "地址/网络掩码表示法中的 IPv6 网络"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "IPv6 地址前缀"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "IPv6 地址前缀长度"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr "IPv6 路由前缀"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr "IPv6 后缀"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "IPv6 地址"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr "IPv6-PD"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6-in-IPv4 (RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6-over-IPv4 (6rd)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6-over-IPv4 (6to4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "鉴权"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr "如果选中,则启用1DES。"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr "如果选中,则禁用加密"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr "如果指定,则通过 UUID 而不是固定的设备文件来挂载设备"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr "如果指定,则通过分区卷标而不是固定的设备文件来挂载设备"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "留空则不配置默认路由"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "留空则忽略所通告的 DNS 服务器地址"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"如果物理内存不足,闲置数据可自动移到 swap 区暂存,以增加可用的 <abbr title="
-"\"Random Access Memory\">RAM</abbr>。请注意:swap 区的数据处理会非常慢,因为 "
-"swap 设备无法像 <abbr title=\"Random Access Memory\">RAM</abbr> 这样的高速率"
-"访问。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr "忽略 <code>/etc/hosts</code>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "忽略此接口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "忽略解析文件"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "固件文件"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "入口"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-"为了防止未经授权访问系统,您的请求已被阻止。点击下面的 “继续 »” 来返回上一"
-"页。"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "活动超时"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "入站:"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "信息"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr "初始化失败"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "启动脚本"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "启动脚本"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr "安装 iputils-traceroute6 以进行 IPv6 路由追踪"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "安装软件包 %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "安装扩展协议…"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "接口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr "接口设备 %q 从 %q 自动迁移到了 %q。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "接口配置"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "接口总览"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "正在重新连接接口…"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr "接口名称"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "接口不存在或未连接。"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "接口"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr "内部"
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "内部服务器错误"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "无效"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr "无效的 VLAN ID!只有 %d 和 %d 之间的 ID 有效。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "无效的 VLAN ID!只允许唯一的 ID"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "无效的用户名和/或密码!请重试。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr "隔离客户端"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr "您尝试刷写的固件与本路由器不兼容,请重新验证固件文件。"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "需要 JavaScript!"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "加入网络"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "加入网络:搜索无线"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr "加入网络:%q"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "保留配置"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "内核日志"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "内核版本"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "密码"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "密码 #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "强制关闭"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "L2TP 服务器"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "LCP 响应故障阈值"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "LCP 响应间隔"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "卷标"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "语言"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "语言和界面"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr "延迟"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr "叶节点"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr "租期"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "租约文件"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "剩余租期"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "留空则自动探测"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "留空则使用当前 WAN 地址"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "图例:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "客户数"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr "仅在网卡所属的子网中提供 DNS 服务。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr "仅监听这些接口和环回接口。"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr "线路衰减(LATN)"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr "线路模式"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr "线路状态"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr "线路运行时间"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "活动链接"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr ""
-"将请求转发到的 <abbr title=\"Domain Name System\">DNS</abbr> 服务器列表"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-"同一移动域中的 R0KH 列表。<br />格式:MAC 地址,NAS 标识符,128 位密钥(十六"
-"进制字符串)。<br />在从初始移动域关联期间使用的 R0KH 中请求 PMK-R1 密钥时,"
-"该列表用于将 R0KH-ID(NAS 标识符)映射到目标 MAC 地址。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-"同一移动域中的 R1KH 列表。<br />格式:MAC 地址,R1KH-ID(包含冒号的 6 个八位"
-"字节),128 位密钥(十六进制字符串)。<br />当从 R0KH 发送 PMK-R1 键时,此列"
-"表用于将 R1KH-ID 映射到目标 MAC 地址。这也是可以请求 PMK-R1 键的 MD 中授权的 "
-"R1KH 的列表。"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr "用于认证的 SSH 密钥文件列表"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "允许 RFC1918 响应的域名列表"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr "允许虚假空域名响应的服务器列表"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr "监听接口"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr "监听端口"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr "仅监听指定的接口,未指定则监听全部"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "入站 DNS 查询端口"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "负载"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "平均负载"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "加载中"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr "正在加载 SSH 密钥…"
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr "本地 IP 地址无效"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr "要分配的本地 IP 地址"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "本地 IPv4 地址"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "本地 IPv6 地址"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr "仅本地服务"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "本地启动脚本"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "本地时间"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "本地域名"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr "本地域名规则。与此域匹配的名称从不转发,仅从 DHCP 或 HOSTS 文件解析"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr "本地域名后缀将添加到 DHCP 和 HOSTS 文件条目"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "本地服务器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr "如果有多个 IP 可用,则根据请求来源的子网来本地化主机名"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "本地化查询"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr "信道道已被锁定为 %s,因为该信道被 %s 使用"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "日志记录等级"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "记录查询日志"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "日志"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "登录"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "退出"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr "信号丢失秒数(LOSS)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr "网络地址的起始分配基址。"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr "MAC"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "MAC 地址"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "MAC 地址过滤"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "MAC 过滤"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "MAC 列表"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr "MAP / LW4over6"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr "MAP 规则无效"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr "MD5"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr "确保使用以下命令来复制根文件系统:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr "手动"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr "最大可达数据速率(ATTNDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr "允许的最大监听间隔"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "允许的最大 DHCP 租用数"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "允许的最大并发 DNS 查询数"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "允许的最大 EDNS.0 UDP 数据包大小"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "调制解调器就绪的最大等待时间(秒)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-"名称的最大长度为 15 个字符,包含根据协议类型,网桥自动添加上的名字前缀(br-、"
-"6in4-、pppoe- 等)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "最大地址分配数量。"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "内存"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "内存使用率(%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr "Mesh ID"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "跃点数"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr "数据包镜像监听端口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr "数据包镜像源端口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "缺少协议 %q 的协议扩展"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr "移动域"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "模式"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr "主机型号"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr "调制解调器默认"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "调制解调器设备"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr "调制解调器信息查询失败"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "调制解调器初始化超时"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "监听"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "挂载项目"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "挂载点"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "挂载点"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "挂载点 - 存储区"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "挂载点 - 交换区"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr "配置存储设备挂载到文件系统中的位置和参数"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr "自动挂载未专门配置挂载点的分区"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "挂载选项"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "挂载点"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr "自动挂载未专门配置的 swap 分区"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "已挂载的文件系统"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "下移"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "上移"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr "NAS ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr "NAT-T 模式"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr "NAT64 前缀"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr "NCM"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr "NDP 代理"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr "NT 域"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "候选 NTP 服务器"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "名称"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "新接口的名称"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "新网络的名称"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "导航"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "子网掩码"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "网络"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "网络工具"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "网络启动镜像"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr "网络设备活动(%s)"
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr "网络设备不存在"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "无接口的网络。"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "前进 »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr "无"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "本接口未配置 DHCP 服务器"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr "无 NAT-T"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "未找到文件"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "无可用信息"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr "无匹配的前缀委托"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "禁用无效信息缓存"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "本设备未配置网络"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "未指定网络名"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "未设置密码!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr "当前还没有公钥。"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "本链没有规则"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr "还没有可用的扫描结果…"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "未指定区域"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "噪声"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr "噪声容限(SNR)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "噪声:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr "非抢占 CRC 错误(CRC_P)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr "非全部地址"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "无"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "正常"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "未找到"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "未关联"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "未连接"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr "注意:接口名称长度"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "注意"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "Nslookup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr "缓存的 DNS 条目数量(最大 10000,0 表示不缓存)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr "用于压缩的并行线程数"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr "混淆组密码"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr "混淆密码"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr "获取 IPv6 地址"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "关闭时间"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"在此页面,您可以配置网络接口。您可以勾选“桥接接口”,并输入由空格分隔的多个网"
-"络接口的名称来桥接多个接口。接口名称中可以使用 <abbr title=\"Virtual Local "
-"Area Network\">VLAN</abbr> 记号 <samp>INTERFACE.VLANNR</samp>(例如:"
-"<samp>eth0.1</samp>)。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "通电时间"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "请指定主机名或MAC地址!"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "一个或多个选项值有误!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr "选项卡上存在一个或多个无效/必需值"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "一个或多个必选项值为空!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "打开列表…"
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr "OpenConnect (CISCO AnyConnect)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr "工作频率"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "选项已更改"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "选项已移除"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr "可选"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-"可选,传出加密数据包的 32 位标记。请输入十六进制值,以 <code>0x</code> 开头。"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-"可选,允许的值:“eui64”、“random”和其他固定值(例如:“::1”或“::1:2”)。当从授"
-"权服务器获取到 IPv6 前缀(如“a:b:c:d::”),使用后缀(如 “::1”)合成 IPv6 地址"
-"(“a:b:c:d::1”)分配给此接口。"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr "可选,Base64 编码的预共享密钥。"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr "可选,为此 Peer 创建允许 IP 的路由。"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr "可选,Peer 的描述。"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr "可选,Peer 的主机。"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr "可选,隧道接口的最大传输单元。"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr "可选,Peer 的端口。"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-"可选,Keep-Alive 消息之间的秒数,默认为 0(禁用)。如果此设备位于 NAT 之后,"
-"建议使用的值为 25。"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr "可选,用于传出和传入数据包的 UDP 端口。"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "选项"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "其余:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "出口"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "出站:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr "网络出口"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "重设 MAC 地址"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "重设 MTU"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr "重设 TOS"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr "重设 TTL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr "重设默认接口名称"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "重设 DHCP 响应网关"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr "重设发送到客户端的子网掩码。"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr "重设内部路由表"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "总览"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "用户名"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "PAP/CHAP 密码"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "PAP/CHAP 用户名"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr "PIN 码被拒绝"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr "R1 推送 PMK"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "PPPoA 封包"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr "PPPoSSH"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr "PSID 偏移"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr "PSID-位长"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr "PTM/EFM(分组传输模式)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "需要 libiwinfo 软件包!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "数据包"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "区域 %q"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "密码"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "密码验证"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "私有密钥"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr "内部私钥的密码"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr "密码 2"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr "粘贴或拖动 SSH 密钥文件……"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "CA 证书路径"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "客户端证书路径"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "私钥路径"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr "内部 CA 证书的路径"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr "内部客户端证书的路径"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr "内部私钥的路径"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "峰值:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr "要分配的 Peer IP 地址"
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr "Peer 地址缺失"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr "Peers"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr "完全正向保密"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "执行重启"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "执行重置"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr "持续 Keep-Alive"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "物理速率:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "物理设置"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ping"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "数据包"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "请输入用户名和密码。"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "策略"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr "轮询间隔"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr "状态查询的轮询间隔,以秒为单位"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "端口"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "端口状态:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr "电源管理模式"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr "抢占式 CRC 错误(CRCP_P)"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr "首选 LTE"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr "首选 UMTS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr "分发前缀"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr "预共享密钥"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr "在指定数量的 LCP 响应故障后假定链路已断开,0 为忽略故障"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr "不监听这些接口。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "禁止客户端间通信"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr "私钥"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "执行"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "系统进程"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr "配置文件"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "协议"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "协议"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "新接口的协议"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "未安装协议支持"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "作为 NTP 服务器提供服务"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "添加新网络"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "伪装 Ad-Hoc(ahdemo)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr "公钥"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-"与使用普通密码相比,公钥允许无密码 SSH 登录具有更高的安全性。要将新密钥上传到"
-"设备,请粘贴 OpenSSH 兼容的公钥行或将 <code>.pub</code> 文件拖到输入字段中。"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr "分配到此设备的公共前缀,用以分发到客户端。"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr "QMI 蜂窝"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "质量"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-"查询所有可用的上游 <abbr title=\"Domain Name System\">DNS</abbr> 服务器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr "R0 密钥生存期"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr "R1 密钥持有者"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr "RFC3947 NAT-T 模式"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "RTS/CTS 阈值"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "接收"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "接收速率"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Radius 计费端口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Radius 计费密钥"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Radius 计费服务器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Radius 认证端口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Radius 认证密钥"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Radius 认证服务器"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr "原始 16 进制编码的字节。除非您的 ISP 要求,否则请留空"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-"根据 <code>/etc/ethers</code> 来配置 <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr> 服务器"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-"确定要删除此接口?删除操作无法撤消!若您删除此接口,可能导致无法再访问此设备"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"确定要删除此无线网络?删除操作无法撤销!若您删除此无线网络,可能导致无法再访"
-"问此设备。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "确定要放弃所有更改?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "确定要切换协议?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "实时连接"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "实时信息"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "实时负载"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "实时流量"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "实时无线"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr "重关联截止时间"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "重绑定保护"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "重启"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "正在重启…"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "重启您设备上的系统"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "接收"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "接收天线"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr "推荐,WireGuard 接口的 IP 地址。"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "重连此接口"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "引用"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "中继"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "中继桥"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "网络间中继"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "中继桥"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "远程 IPv4 地址"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr "远程 IPv4 地址或 FQDN"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "移除"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "重新扫描"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "重置条目"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "重置无线配置"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr "请求 IPv6 地址"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr "请求指定长度的 IPv6 前缀"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr "必须"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "某些 ISP 需要,例如:同轴线网络 DOCSIS 3"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr "必须,此接口的 Base64 编码私钥。"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr "必须,Peer 的 Base64 编码公钥。"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-"必须,允许该 Peer 在隧道中使用的 IP 地址和前缀,通常是该 Peer 的隧道 IP 地址"
-"和通过隧道的路由网络。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-"需要完整版本的 wpad/hostapd,并且 WiFi 驱动支持<br />(截止 2019.01,已知支持"
-"此特性的驱动有 ath9k、ath10k、mwlwifi 和 mt76)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr "需要上级支持 DNSSEC,验证未签名的响应确实是来自未签名的域名"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "复位"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "复位计数器"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "恢复到出厂设置"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "HOSTS 和解析文件"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "解析文件"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "重启"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "重启防火墙"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr "重启无线接口"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "恢复"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "恢复配置"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "显示/隐藏 密码"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "恢复"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr "恢复更改"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr "恢复请求失败,状态 <code>%h</code>"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr "正在恢复配置…"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "Root"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "TFTP 服务器的根目录"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr "根目录准备"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr "路由允许的 IP"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr "路由类型"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr "路由通告服务"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "主机密码"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "路由表"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr "路由表描述了数据包的可达路径。"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr "规则"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "挂载设备前运行文件系统检查"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "文件系统检查"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr "SHA256"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr "SNR"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "SSH 访问"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr "SSH 服务器地址"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr "SSH 服务器端口"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr "SSH 用户名"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "SSH 密钥"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr "交换分区"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "保存"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "保存并应用"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr "保存 mtdblock"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr "保存 mtdblock 内容"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr "正在保存密钥…"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "扫描"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr "扫描请求失败"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "计划任务"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "添加的节点"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "移除的节点"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "详参“mount”联机帮助"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-"即使映像文件检查失败,也“强制升级”以烧录映像。仅在您确定固件正确且适用于您的"
-"设备时使用!"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr "定时发送 LCP 响应(秒),仅在结合了故障阈值时有效"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "隔离客户端"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "服务器设置"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "服务名"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "服务类型"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "服务"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr "会话已过期"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr "将 VPN 设置为默认路由"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-"不管接口的链路状态如何,总是用应用设置(如果勾选,链路状态变更将不再触发 "
-"hotplug 事件处理)。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-msgid "Set up Time Synchronization"
-msgstr "设置时间同步"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr "设置 PLMN 失败"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr "设置操作模式失败"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "配置 DHCP 服务器"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr "严重误码秒(SES)"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr "Short GI"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr "Short Preamble"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "显示当前备份文件列表"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr "显示空链"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "关闭此接口"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "信号"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr "信号衰减(SATN)"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "信号:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "大小"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr "DNS 查询缓存的大小"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr "ZRam 设备的大小(以兆字节为单位)"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "跳过"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "跳到内容"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "跳转到导航"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "时隙"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr "软件 VLAN"
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "一些项目的值无效,无法保存!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "对不起,请求的目标未找到。"
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "对不起,服务器遇到未知错误。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"抱歉,您的设备暂不支持 sysupgrade 升级,需手动更新固件。请参考 Wiki 中关于此"
-"设备的固件更新说明。"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "源地址"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "指定设备的挂载目录"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "指定此 <em>Dropbear</em> 实例的监听端口"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr "判定主机已下线的最少 ARP 请求失败数"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr "判断主机已下线的超时时间(秒)"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr "指定 TOS(服务类型)。"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr "为封装数据包设置 TTL(生存时间),缺省值:64"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr "设置 MTU(最大传输单位),缺省值:1280 bytes"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "在此指定密钥。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "开始"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "启动优先级"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr "开始应用配置…"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr "正在启动无线扫描…"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "启动项"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "静态 IPv4 路由"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "静态 IPv6 路由"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "静态地址分配"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "静态路由"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "静态地址"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"静态租约用于给 DHCP 客户端分配固定的 IP 地址和主机标识。只有指定的主机才能连"
-"接,并且接口须为非动态配置。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr "非活动站点限制"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "状态"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "关闭"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "严谨查序"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "提交"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr "不记录日志"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr "不记录这些协议的常规操作日志。"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr "Swap"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Swap 节点"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "交换机"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "交换机 %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "交换机 %q(%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr "交换机 %q 具有未知的拓扑结构,VLAN 设置可能不正确。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr "交换机端口掩码"
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr "交换机 VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "切换协议"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr "切换到 CIDR 列表记法"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr "交换口活动(%s)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "同步浏览器时间"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "正在同步…"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "系统"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "系统日志"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "系统属性"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "系统日志缓冲区大小"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "TFTP 设置"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "TFTP 服务器根目录"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "发送"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "发送速率"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "表"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "对象"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr "目标网络"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "关闭"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"“设备配置”区域可配置无线的硬件参数,比如:信道、发射功率或发射天线,如果此无"
-"线硬件支持多 SSID,则全部 SSID 共用此设备配置。“接口配置”区域则可配置接口各自"
-"参数,如工作模式、加密方式等。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr "软件包 <em>libiwinfo-lua</em> 未安装,必须安装此组件以配置无线!"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr "HE.net 客户端更新设置已经被改变,您现在必须使用用户名代替用户 ID!"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr "远程隧道端的 IPv4 地址或完整域名。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr "运营商特定的 IPv6 前缀,通常以 <code>::</code> 为结尾"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"合法字符:<code>A-Z</code>, <code>a-z</code>, <code>0-9</code> 和 <code>_</"
-"code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr "备份存档似乎不是有效的 gzip 文件。"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr "由于以下错误,配置文件无法被加载:"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-"在应用挂起的更改后 %d 秒内无法连接到此设备,出于安全原因导致配置回滚。如果您"
-"认为配置的更改是正确的,请执行强制应用。或者您可以在再次尝试应用之前解除此警"
-"告并编辑配置,或者恢复所有挂起的更改以保持当前正在工作的配置状态。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr "存储器或分区的设备文件(例如:<code>/dev/sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"用于格式化存储器的文件系统(例如:<samp><abbr title=\"Third Extended "
-"Filesystem\">ext3</abbr></samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"固件已上传,请注意核对文件大小和校验值!<br />点击下面的“继续”开始刷写,刷新"
-"过程中切勿断电!"
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "以下更改已恢复"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "以下规则当前在系统中处于活动状态。"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr "已添加给定的 SSH 公钥。"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr "给定的 SSH 公钥无效。请提供适当的公共 RSA 或 ECDSA 密钥。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "给定的网络名重复"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr "本机的硬件不支持多 SSID,如果继续,现有配置将被替换。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr "IPv4 前缀长度(位),其余的用在 IPv6 地址。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "IPv6 前缀长度(位)"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr "所创建隧道的本地 IPv4 地址(可选)。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"本设备可以划分为多个 <abbr title=\"Virtual Local Area Network\">VLAN</abbr>,"
-"并支持电脑间的直接通讯。<abbr title=\"Virtual Local Area Network\">VLAN</"
-"abbr> 也常用于分割不同网段。默认通常是一条上行端口连接 ISP,其余端口为本地子"
-"网。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "所选的协议需要分配设备"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr "提交的安全令牌无效或已过期!"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr "系统正在擦除配置分区,完成后会自动重启。"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"正在刷写系统…<br />切勿关闭电源! DO NOT POWER OFF THE DEVICE!<br />等待数分"
-"钟后即可尝试重新连接到路由。您可能需要更改计算机的 IP 地址以重新连接。"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr "系统密码已更改成功。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr "不支持所上传的映像文件格式,请选择适合当前平台的通用映像文件。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "主题"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "没有已分配的租约。"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr "没有待应用的更改。"
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "没有挂起的更改可恢复!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "没有挂起的更改!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr "尚未分配设备,请在“物理设置”选项卡中选择网络设备"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr "尚未设置密码。请为 root 用户设置密码以保护主机并启用 SSH。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr "中继的 IPv4 地址"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-"此文件包含类似于“server=/domain/1.2.3.4”或“server=1.2.3.4”的行,用于解析特定"
-"域名或指定上游 <abbr title=\"Domain Name System\">DNS</abbr> 服务器。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-"系统升级时要保存的配置文件和目录的清单。目录 /etc/config/ 内更改过的文件以及"
-"部分其他配置会被自动保存。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr "如果更新密钥没有设置的话,隧道的“更新密钥”或者账户密码必须填写。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"此处为 /etc/rc.local 的内容。启动脚本插入到“exit 0”之前即可随系统启动运行。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr "隧道代理分配的本地终端地址,通常以 <code>...:2/64</code> 结尾"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"这是本地网络中唯一的 <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr> 服务器"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr "登录账户时填写的用户名"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr "这是隧道代理分配给您的路由前缀,供客户端使用"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr "自定义系统 crontab 中的计划任务。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr "这通常是隧道代理所管理的最近的 PoP 的地址"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr "系统中正在运行的进程概况和它们的状态信息。"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "活跃的网络连接概况。"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "尚无任何配置"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "时间同步"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "尚未配置时间同步。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr "重新加密 GTK 的时间间隔"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "时区"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr "去登录…"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"上传备份存档以恢复配置。要将固件恢复到初始状态,请单击“执行重置”(仅 "
-"squashfs 格式的固件有效)。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr "Tone"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "可用数"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "Traceroute"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "流量"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "传输"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "传送速率"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "传送"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "无线电功率"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "传送天线"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "触发器"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "触发模式"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "隧道 ID"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "隧道接口"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr "隧道链接"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "传输功率"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "类型"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "仅 UMTS(WCDMA)"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "USB 设备"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr "USB 接口"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr "无法确认设备名称"
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr "无法确认外部 IP 地址"
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr "无法确认上游接口"
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr "无法调度"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr "无法获取客户端 ID"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr "无法解析 AFTR 主机名"
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr "无法解析 Pear 主机名"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr "不可用秒数(UAS)"
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "未知"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr "未知错误(%s)"
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "不配置协议"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr "卸载分区"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr "未命名的密钥"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "未保存的配置"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr "不支持的 MAP 类型"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr "不支持的调制解调器"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "不支持的协议类型"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr "上移"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"上传一个 sysupgrade 格式的固件映像文件以替换当前运行的固件。勾选“保留配置”以"
-"使更新后的系统仍然使用当前的系统配置(新的固件需要和当前固件兼容)。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "上传备份…"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "上传的文件"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "运行时间"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "使用 <code>/etc/ethers</code> 配置"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "使用 DHCP 网关"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "使用对端通告的 DNS 服务器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "参考 ISO/IEC 3166 alpha2 国家代码。"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr "隧道接口的 MTU"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "隧道接口的 TTL"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr "作为外部 overlay 使用(/overlay)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr "作为根文件系统使用(/)"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "使用广播标签"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr "使用内置的 IPv6 管理"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "使用自定义的 DNS 服务器"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "使用默认网关"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "使用网关跃点"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "使用路由表"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"使用“添加”按钮来增加新的租约条目。“IPv4 地址”和“主机名”字段的值将被固定分配"
-"给“MAC 地址”字段标识的主机,“租期”是一个可选字段,可为每个主机单独设定 DHCP "
-"租期的时长,例如:12h、3d、infinite,分别表示 12 小时、3 天、永久。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "已用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "启用密码组"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-"用于两种不同的用途:RADIUS NAS ID 和 802.11r R0KH-ID,普通 WPA(2)-PSK 不需"
-"要。"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr "用户证书(PEM)"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr "用户密钥(PEM)"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "用户名"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr "VDSL"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "%q 上的 VLAN"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "%q(%s)上的 VLAN"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr "VPN 本地地址"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr "VPN 本地端口"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "VPN 服务器"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr "VPN 服务器端口"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr "VPN 服务器证书的 SHA1 哈希值"
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr "VPNC(CISCO 3000 和其他 VPN)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr "Vendor"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "请求 DHCP 时发送的 Vendor Class 选项"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "验证"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr "虚拟动态接口"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "WEP 开放式系统"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "WEP 共享密钥"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "WEP 密钥"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "WMM 模式"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "WPA 密钥"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"WPA 加密需要安装 wpa_supplicant(客户端模式)或安装 hostapd(接入点 AP、点对"
-"点 Ad-Hoc 模式)。"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "正在应用更改…"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "等待命令执行完成…"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr "等待应用配置… %d 秒"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr "等待设备…"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "警告"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr "警告:一些未保存的配置将在重启后丢失!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-"使用 PSK 时,可以自动生成 PMK,因此以下 R0/R1 密钥选项不生效。若要使用 R0 和 "
-"R1 密钥则禁用此选项。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr "Wi-Fi 活动(%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr "Wi-Fi 客户端关联(%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr "Wi-Fi 数据接收(%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr "Wi-Fi 数据传输(%s)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr "Wi-Fi 开启(%s)"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr "频宽"
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr "WireGuard VPN"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "无线"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "无线适配器"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "无线网络"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "无线概况"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "无线安全"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "无线未开启"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "无线未关联"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "无线重启中…"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "无线网络已禁用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "无线网络已启用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "将收到的 DNS 请求写入系统日志"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr "将系统日志写入文件"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr "是"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"在此启用或禁用已安装的启动脚本,更改在设备重启后生效。<br /><strong>警告:如"
-"果禁用了必要的启动脚本,比如“network”,可能会导致无法访问设备!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr "必须开启浏览器的 JavaScript 支持,否则 LuCI 无法正常工作。"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-"您的 IE 浏览器太老了,无法正常显示这个页面!请更新到 IE7 及以上或使用其他浏览"
-"器,如 Firefox、Opera、Safari。"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr "ZRam 压缩算法"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr "ZRam 压缩流"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr "ZRam 设置"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr "ZRam 大小"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "任意"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "自动"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "桥接的"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr "创建"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "创建:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "为指定接口创建桥接"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "禁用"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr "已禁用"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "过期时间"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"用于存放已分配的 <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> 租约的文件"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "转发"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "全双工"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "半双工"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr "十六进制编码值"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "隐藏"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr "混合模式"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "如果对象是一个网络"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "输入"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr "密钥在 8 到 63 个字符之间"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr "密钥为 5 或 13 个字符"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "本地 <abbr title=\"Domain Name System\">DNS</abbr> 解析文件"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr "分钟"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr "混合 WPA/WPA2"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "否"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "未连接"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr "非空值"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr "不存在"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "关"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "开"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-"其一:\n"
-" - %s"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "开放式"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr "输出"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr "覆盖"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr "正十进制值"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr "正整数值"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr "随机"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr "中继模式"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "已路由"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr "秒"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr "服务器模式"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr "有状态"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr "无状态"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr "无状态 + 有状态"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "已标记"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr "时间单位(TUs / 1.024ms)[1000-65535]"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr "唯一值"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "未知"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "无限制"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "未指定"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "不指定或新建:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "未标记"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr "有效 IP 地址"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr "有效 IP 地址或前缀"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr "有效 IPv4 CIDR"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr "有效 IPv4 地址"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr "有效 IPv4 地址或网络"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr "有效 IPv4 address:port"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr "有效 IPv4 网络"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr "有效 IPv4 或 IPv6 CIDR"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr "有效 IPv4 前缀值(0-32)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr "有效 IPv6 CIDR"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr "有效 IPv6 地址"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr "有效 IPv6 地址或前缀"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr "有效 IPv6 主机 ID"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr "有效 IPv6 网络"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr "有效 IPv6 前缀值(0-128)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr "有效 MAC 地址"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr "有效 UCI 识别"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr "有效 UCI 标识符,主机名或 IP 地址"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr "有效 address:port"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr "有效日期(YYYY-MM-DD)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr "有效十进制值"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr "有效十六进制 WEP 密钥"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr "有效十六进制 WPA 密钥"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr "有效 host:port"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr "有效主机名"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr "有效主机名或 IP 地址"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr "有效整数值"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr "地址/网络掩码表示法中的有效网络"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr "有效电话号码(0-9、“*”、“#”、“!”或“.”)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr "有效端口或端口范围(port1-port2)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr "有效端口值"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr "有效时间(HH:MM:SS)"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr "%d 和 %d 字符之间的值"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr "%f 和 %f 之间的值"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr "值大于或等于 %f"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr "值小于或等于 %f"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr "值至少为 %d 个字符"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr "值至多为 %d 个字符"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "是"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« 后退"
-
-#~ msgid ""
-#~ "When using a PSK, the PMK can be generated locally without inter AP "
-#~ "communications"
-#~ msgstr "当使用 PSK 时,PMK 可以在没有 AP 间通信的情况下在本地生成"
-
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr "请在此处粘贴 SSH 公钥,每行一个,用于 SSH 公钥认证。"
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "密码更改成功!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "未知错误,密码未更改!"
-
-#~ msgid "Design"
-#~ msgstr "主题"
-
-#~ msgid "Available packages"
-#~ msgstr "可用软件包"
-
-#~ msgid "Bind only to specific interfaces rather than wildcard address."
-#~ msgstr "仅绑定到特定接口,而不是全部地址。"
-
-#~ msgid ""
-#~ "Build/distribution specific feed definitions. This file will NOT be "
-#~ "preserved in any sysupgrade."
-#~ msgstr "由固件指定的软件源。此处的设置在任何系统升级中都不会被保留。"
-
-#~ msgid ""
-#~ "Custom feed definitions, e.g. private feeds. This file can be preserved "
-#~ "in a sysupgrade."
-#~ msgstr "自定义软件源地址,例如:私有的软件源。此文件在系统升级时将被保留。"
-
-#~ msgid "Custom feeds"
-#~ msgstr "自定义软件源"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "只显示有内容的软件包"
-
-#~ msgid "Distribution feeds"
-#~ msgstr "发行版软件源"
-
-#~ msgid "Download and install package"
-#~ msgstr "下载并安装软件包"
-
-#~ msgid "Filter"
-#~ msgstr "过滤器"
-
-#~ msgid "Find package"
-#~ msgstr "查找软件包"
-
-#~ msgid "Free space"
-#~ msgstr "空闲空间"
-
-#~ msgid "General options for opkg"
-#~ msgstr "OPKG 基础配置"
-
-#~ msgid "Install"
-#~ msgstr "安装"
-
-#~ msgid "Installed packages"
-#~ msgstr "已安装软件包"
-
-#~ msgid "No package lists available"
-#~ msgstr "无可用软件列表"
-
-#~ msgid "OK"
-#~ msgstr "确认"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "OPKG 配置"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "软件包列表已超过 24 小时未更新"
-
-#~ msgid "Package name"
-#~ msgstr "软件包名称"
-
-#~ msgid "Please update package lists first"
-#~ msgstr "请先更新软件包列表"
-
-#~ msgid "Size (.ipk)"
-#~ msgstr "大小(.ipk)"
-
-#~ msgid "Software"
-#~ msgstr "软件包"
-
-#~ msgid "Update lists"
-#~ msgstr "刷新列表"
-
-#~ msgid "Version"
-#~ msgstr "版本"
-
-#~ msgid "none"
-#~ msgstr "无"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "停用 DNS 设定"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4 和 IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "仅 IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "仅 IPv6"
-
-#~ msgid "Lease validity time"
-#~ msgstr "有效租期"
-
-#~ msgid "Multicast address"
-#~ msgstr "多播地址"
-
-#~ msgid "Protocol family"
-#~ msgstr "协议族"
-
-#~ msgid "No chains in this table"
-#~ msgstr "本表中没有链"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "配置文件将被保留。"
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "注意:配置文件将被删除。"
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "激活此网络"
-
-#~ msgid "Hermes 802.11b Wireless Controller"
-#~ msgstr "Hermes 802.11b 无线控制器"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "正在关闭接口..."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "接口已重新连接"
-
-#~ msgid "Interface shut down"
-#~ msgstr "接口已关闭"
-
-#~ msgid "Prism2/2.5/3 802.11b Wireless Controller"
-#~ msgstr "Prism2/2.5/3 802.11b 无线控制器"
-
-#~ msgid "RaLink 802.11%s Wireless Controller"
-#~ msgstr "RaLink 802.11%s 无线控制器"
-
-#~ msgid ""
-#~ "Really shutdown interface \"%s\"? You might lose access to this device if "
-#~ "you are connected via this interface."
-#~ msgstr ""
-#~ "确定要关闭接口 \"%s\"?\\n如果您正在使用此接口连接路由器,关闭此网络可能导"
-#~ "致连接断开!"
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "重连接口中..."
-
-#~ msgid "Shutdown this network"
-#~ msgstr "关闭此网络"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "无线已重启"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "无线已关闭"
-
-#~ msgid "Device unreachableX"
-#~ msgstr "无法连接到设备!"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "DHCP 分配"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "DHCPv6 分配"
-
-#~ msgid ""
-#~ "Really delete this interface? The deletion cannot be undone! You might "
-#~ "lose access to this device if you are connected via this interface."
-#~ msgstr ""
-#~ "确定要删除此接口?删除操作无法撤销!\\n删除此接口,可能导致无法再访问路由"
-#~ "器!"
-
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "确定要关闭此网络?\\n如果您正在使用此接口连接路由器,关闭此网络可能导致连"
-#~ "接断开!"
-
-#~ msgid "Sort"
-#~ msgstr "排序"
-
-#~ msgid "help"
-#~ msgstr "帮助"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "IPv4 WAN 状态"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "IPv6 WAN 状态"
diff --git a/package/luci/modules/luci-base/po/zh-tw/base.po b/package/luci/modules/luci-base/po/zh-tw/base.po
deleted file mode 100644 (file)
index 607658f..0000000
+++ /dev/null
@@ -1,6525 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-05-21 10:34+0200\n"
-"Last-Translator: omnistack <omnistack@gmail.com>\n"
-"Language-Team: none\n"
-"Language: zh_TW\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.6\n"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
-msgid "%.1f dB"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:109
-msgid "%d Bit"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/luci.js:307
-msgid "%d invalid field(s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:256
-msgid "%s is untagged in multiple VLANs!"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:160
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:133
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:128
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:168
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:169
-msgid "(%d minute window, %d second interval)"
-msgstr "(%d 分鐘訊息, %d 秒更新)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:35
-msgid "(%s available)"
-msgstr "(%s 可用)"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:38
-#: modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm:41
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:88
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:91
-msgid "(empty)"
-msgstr "(空白)"
-
-#: modules/luci-base/luasrc/view/cbi/network_netinfo.htm:23
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:58
-msgid "(no interfaces attached)"
-msgstr "(未連接界面)"
-
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:48
-msgid "-- Additional Field --"
-msgstr "-- 更多選項 --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:840
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:849
-#: modules/luci-base/luasrc/view/cbi/header.htm:5
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:26
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:36
-msgid "-- Please choose --"
-msgstr "-- 請選擇 --"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:865
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:1025
-#: modules/luci-base/luasrc/view/cbi/header.htm:6
-msgid "-- custom --"
-msgstr "-- 自訂 --"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:89
-msgid "-- match by device --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:73
-msgid "-- match by label --"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:59
-msgid "-- match by uuid --"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:24
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:27
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:44
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:23
-msgid "-- please select --"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
-msgid "1 Minute Load:"
-msgstr "1分鐘負載"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:272
-msgid "15 Minute Load:"
-msgstr "15分鐘負載"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:879
-msgid "4-character hexadecimal ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:18
-msgid "464XLAT (CLAT)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:262
-msgid "5 Minute Load:"
-msgstr "5分鐘負載"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:915
-msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:850
-msgid "802.11r Fast Transition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1106
-msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1115
-msgid "802.11w Association SA Query retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1088
-msgid "802.11w Management Frame Protection"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1105
-msgid "802.11w maximum timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1114
-msgid "802.11w retry timeout"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:390
-msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:182
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> 查詢通訊埠"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:173
-msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> 伺服器通訊埠"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:122
-msgid ""
-"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
-"order of the resolvfile"
-msgstr "將會按照指定的順序查詢<abbr title=\"Domain Name System\">DNS</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:379
-msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:306
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:45
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-位置"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:30
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:75
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-閘道"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:506
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-遮罩"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-msgid ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
-"(CIDR)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-位置或網路(CIDR)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:72
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-閘道"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:325
-msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> 設定"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:35
-msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> 名稱"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:297
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:46
-msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Media Access Control\">MAC</abbr>-位置"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:312
-msgid "<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:191
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> leases"
-msgstr ""
-"<abbr title=\"maximal\">最大</abbr> <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> 分配數量"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:201
-msgid ""
-"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> packet size"
-msgstr ""
-"<abbr title=\"maximal\">最大</abbr> <abbr title=\"Extension Mechanisms for "
-"Domain Name System\">EDNS0</abbr> 封包大小"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:211
-msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"maximal\">最大</abbr>並發查詢數"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:10
-msgid ""
-"<br/>Note: you need to manually restart the cron service if the crontab file "
-"was empty before editing."
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:39
-msgid "A new login is required since the authentication session expired."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:114
-msgid "A43C + J43 + A43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:115
-msgid "A43C + J43 + A43 + V43"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:127
-msgid "ADSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:103
-msgid "ANSI T1.413"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:33
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:47
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:23
-msgid "APN"
-msgstr "APN"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:56
-msgid "ARP retry threshold"
-msgstr "ARP重試門檻"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:122
-msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:144
-msgid "ATM Bridges"
-msgstr "ATM橋接"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:178
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:21
-msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "ATM虛擬通道識別(VCI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:179
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:26
-msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "ATM虛擬路徑識別(VPI)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:145
-msgid ""
-"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
-"Linux network interfaces which can be used in conjunction with DHCP or PPP "
-"to dial into the provider network."
-msgstr ""
-"ATM橋接是以AAL5協定封裝乙太網路如同虛擬Linux網路界面卡,用於連接DHCP或PPP來撥"
-"號連接到網際網路。"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:184
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:16
-msgid "ATM device number"
-msgstr "ATM裝置號碼"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:117
-msgid "ATU-C System Vendor ID"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:19
-msgid "Access Concentrator"
-msgstr "接入集線器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:367
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-msgid "Access Point"
-msgstr "存取點 (AP)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
-msgid "Actions"
-msgstr "動作"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:69
-msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "啟用 <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-路由"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:97
-msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "啟用 <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-路由"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:315
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:15
-msgid "Active Connections"
-msgstr "啟用連線"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:68
-msgid "Active DHCP Leases"
-msgstr "已分配的DHCP租用"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:83
-msgid "Active DHCPv6 Leases"
-msgstr "已分配的DHCPv6租用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:369
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:12
-msgid "Ad-Hoc"
-msgstr "Ad-Hoc"
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:25
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:189
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:197
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:34
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:42
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:54
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Add"
-msgstr "增加"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:60
-msgid "Add IPv4 address…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:129
-msgid "Add IPv6 address…"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:143
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:149
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:38
-msgid "Add key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:109
-msgid "Add local domain suffix to names served from hosts files"
-msgstr "添加本地網域微碼到HOSTS檔案"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:50
-msgid "Add new interface..."
-msgstr "增加新界面"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:60
-msgid "Additional Hosts files"
-msgstr "額外的HOST檔案"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:116
-msgid "Additional servers file"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:53
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:79
-msgid "Address"
-msgstr "位置"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:12
-msgid "Address to access local relay bridge"
-msgstr "存取本地中繼橋接位置"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:29
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:13
-msgid "Administration"
-msgstr "管理"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
-msgid "Advanced"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:22
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:189
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:463
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:176
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:143
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:363
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:50
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:34
-msgid "Advanced Settings"
-msgstr "進階設定"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:108
-msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:100
-msgid "Alert"
-msgstr "警示"
-
-#: modules/luci-base/luasrc/model/network.lua:1406
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:78
-msgid "Alias Interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:66
-msgid "Alias of \"%s\""
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:126
-msgid "All Servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:69
-msgid ""
-"Allocate IP addresses sequentially, starting from the lowest available "
-"address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:68
-msgid "Allocate IP sequentially"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:30
-msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "允許 <abbr title=\"Secure Shell\">SSH</abbr> 密碼驗證"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:535
-msgid "Allow AP mode to disconnect STAs based on low ACK condition"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:452
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:579
-msgid "Allow all except listed"
-msgstr "僅允許列表外"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:235
-msgid "Allow legacy 802.11b rates"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:451
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:578
-msgid "Allow listed only"
-msgstr "僅允許列表內"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:156
-msgid "Allow localhost"
-msgstr "允許本機"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:47
-msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr "允許遠端主機連接到本機SSH轉送通訊埠"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:38
-msgid "Allow root logins with password"
-msgstr "允許root登入"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:39
-msgid "Allow the <em>root</em> user to login with password"
-msgstr "允許 <em>root</em> 使用者登入"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:157
-msgid ""
-"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr "允許127.0.0.0/8範圍內的上游回應,例如:RBL服務"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:135
-msgid "Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:549
-msgid "Always announce default router"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:50
-msgid "Always off (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:48
-msgid "Always on (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:258
-msgid ""
-"Always use 40MHz channels even if the secondary channel overlaps. Using this "
-"option does not comply with IEEE 802.11n-2009!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:95
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:100
-msgid "Annex"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:96
-msgid "Annex A + L + M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:104
-msgid "Annex A G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:105
-msgid "Annex A G.992.2"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:106
-msgid "Annex A G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:107
-msgid "Annex A G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:97
-msgid "Annex B (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:100
-msgid "Annex B G.992.1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:101
-msgid "Annex B G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:102
-msgid "Annex B G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:98
-msgid "Annex J (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:108
-msgid "Annex L G.992.3 POTS 1"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:99
-msgid "Annex M (all)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:109
-msgid "Annex M G.992.3"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:110
-msgid "Annex M G.992.5"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:550
-msgid "Announce as default router even if no public prefix is available."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:555
-msgid "Announced DNS domains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:554
-msgid "Announced DNS servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1048
-msgid "Anonymous Identity"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Anonymous Mount"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Anonymous Swap"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:321
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:328
-msgid "Antenna 1"
-msgstr "天線 1"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:322
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:329
-msgid "Antenna 2"
-msgstr "天線 2"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:245
-msgid "Antenna Configuration"
-msgstr "天線設定"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:60
-msgid "Any zone"
-msgstr "任意區域"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:48
-msgid "Apply anyway"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:145
-msgid "Apply request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
-msgid "Architecture"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:118
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:19
-msgid ""
-"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:126
-msgid "Assign interfaces..."
-msgstr "分配界面..."
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:124
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:24
-msgid ""
-"Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:148
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:22
-msgid "Associated Stations"
-msgstr "已連接站點"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:159
-msgid "Associations"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:39
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:37
-msgid "Auth Group"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:982
-msgid "Authentication"
-msgstr "認證"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:35
-msgid "Authentication Type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:30
-msgid "Authoritative"
-msgstr "授權"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:17
-msgid "Authorization Required"
-msgstr "需要授權"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:131
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:223
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:247
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:250
-msgid "Auto Refresh"
-msgstr "自動更新"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:53
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:7
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:17
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:63
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:36
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:42
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:36
-msgid "Automatic"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua:7
-msgid "Automatic Homenet (HNCP)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automatically mount filesystems on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automatically mount swap on hotplug"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:61
-msgid "Automount Filesystem"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:57
-msgid "Automount Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:102
-msgid "Available"
-msgstr "可用"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:290
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:300
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:326
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:255
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:265
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:275
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:333
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:343
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:362
-msgid "Average:"
-msgstr "平均:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:116
-msgid "B43 + B43C"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:117
-msgid "B43 + B43C + V43"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:18
-msgid "BR / DMR / AFTR"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:157
-msgid "BSSID"
-msgstr "BSSID"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:29
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:28
-msgid "Back"
-msgstr "返回"
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:48
-msgid "Back to Overview"
-msgstr "返回至總覽"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:41
-msgid "Back to configuration"
-msgstr "返回至設定"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:48
-msgid "Back to overview"
-msgstr "返回至總覽"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:20
-msgid "Back to scan results"
-msgstr "返回至掃描結果"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:17
-msgid "Backup"
-msgstr "備份"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:37
-msgid "Backup / Flash Firmware"
-msgstr "備份/升級韌體"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12
-msgid "Backup file list"
-msgstr "備份檔列表"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:51
-msgid "Bad address specified!"
-msgstr "指定了錯誤的位置!"
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:153
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:287
-msgid "Band"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:260
-msgid "Beacon Interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:39
-msgid ""
-"Below is the determined list of files to backup. It consists of changed "
-"configuration files marked by opkg, essential base files and the user "
-"defined backup patterns."
-msgstr ""
-"下面是待備份的檔案清單。包含了更改的設定檔案、必要的基本檔案和使用者自訂的備"
-"份檔案"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:253
-msgid ""
-"Bind dynamically to interfaces rather than wildcard address (recommended as "
-"linux default)"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind interface"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:16
-msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-msgid "Bitrate"
-msgstr "傳輸速率"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:129
-msgid "Bogus NX Domain Override"
-msgstr "忽略NX網域解析"
-
-#: modules/luci-base/luasrc/model/network.lua:1410
-msgid "Bridge"
-msgstr "橋接"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "Bridge interfaces"
-msgstr "橋接介面"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:185
-msgid "Bridge unit number"
-msgstr "橋接單位號碼"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:250
-msgid "Bring up on boot"
-msgstr "開機自動執行"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:35
-msgid "Broadcom 802.11%s Wireless Controller"
-msgstr "Broadcom 802.11%s 無線控制器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:45
-msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr "Broadcom BCM%04x 802.11 無線控制器"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:18
-msgid "Buffered"
-msgstr "已緩衝"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:75
-msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:13
-msgid "CPU usage (%)"
-msgstr "CPU 使用率 (%)"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:53
-msgid "Call failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:14
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:52
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:60
-msgid "Cancel"
-msgstr "取消"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:6
-msgid "Category"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
-msgid "Caution: Configuration files will be erased"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
-msgid "Caution: System upgrade will be forced"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:234
-msgid "Chain"
-msgstr "鏈"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:9
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:14
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:24
-msgid "Change login password"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:12
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-msgid "Changes"
-msgstr "待修改"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:42
-msgid "Changes applied."
-msgstr "修改已套用"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:156
-msgid "Changes have been reverted."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:9
-msgid "Changes the administrator password for accessing the device"
-msgstr "修改管理員密碼"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:10
-msgid "Changing password…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:157
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:174
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "Channel"
-msgstr "頻道"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:119
-msgid ""
-"Channel %d is not available in the %s regulatory domain and has been auto-"
-"adjusted to %d."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:229
-msgid "Check"
-msgstr "檢查"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:65
-msgid "Check filesystems before mount"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:47
-msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:27
-msgid "Checksum"
-msgstr "效驗碼"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
-msgid "Choose mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
-msgid ""
-"Choose the firewall zone you want to assign to this interface. Select "
-"<em>unspecified</em> to remove the interface from the associated zone or "
-"fill out the <em>create</em> field to define a new zone and attach the "
-"interface to it."
-msgstr ""
-"選擇您要指定給這介面的防火牆區. 撿選<em>unspecified</em>以便從指定區域除這個"
-"介面或者填寫<em>create</em>欄以便定義附加這個介面到一個新的區域上."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:393
-msgid ""
-"Choose the network(s) you want to attach to this wireless interface or fill "
-"out the <em>create</em> field to define a new network."
-msgstr ""
-"選擇您要附加到無線網路介面的多個網路或者填寫<em>create</em> 以便定義一個新的"
-"網路."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:604
-msgid "Cipher"
-msgstr "暗號"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:61
-msgid "Cisco UDP encapsulation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:18
-msgid ""
-"Click \"Generate archive\" to download a tar archive of the current "
-"configuration files."
-msgstr "按下\"壓縮檔製作\"就能下載目前設定檔的tar格式的壓縮."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:65
-msgid ""
-"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
-"FEATURE IS FOR PROFESSIONALS! )"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-msgid "Client"
-msgstr "用戶端"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:55
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:52
-msgid "Client ID to send when requesting DHCP"
-msgstr "當要求DHCP時要傳送的用戶識別碼ID"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:145
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:151
-msgid "Close"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:146
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:127
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:98
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:119
-msgid ""
-"Close inactive connection after the given amount of seconds, use 0 to "
-"persist connection"
-msgstr "幾秒後關閉閒置的連線, 打0代表永遠連線"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:42
-msgid "Close list..."
-msgstr "關閉清單中..."
-
-#: modules/luci-base/luasrc/view/lease_status.htm:77
-#: modules/luci-base/luasrc/view/lease_status.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:118
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:24
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm:6
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:40
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:367
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:11
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:68
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:33
-msgid "Collecting data..."
-msgstr "收集資料中..."
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:12
-msgid "Command"
-msgstr "指令"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64
-msgid "Comment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
-msgid "Common Configuration"
-msgstr "一般設定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1125
-msgid ""
-"Complicates key reinstallation attacks on the client side by disabling "
-"retransmission of EAPOL-Key frames that are used to install keys. This "
-"workaround might cause interoperability issues and reduced robustness of key "
-"negotiation especially in environments with heavy traffic load."
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:11
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:16
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:13
-msgid "Configuration"
-msgstr "設定"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:63
-msgid "Configuration failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
-msgid "Configuration files will be kept"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:85
-msgid "Configuration has been applied."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:43
-msgid "Configuration has been rolled back!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:22
-msgid "Confirmation"
-msgstr "再確認"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Connect"
-msgstr "連線"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:62
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:86
-msgid "Connected"
-msgstr "已連線"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:337
-msgid "Connection Limit"
-msgstr "連線限制"
-
-#: modules/luci-base/luasrc/model/network.lua:27
-msgid "Connection attempt failed"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:32
-msgid "Connections"
-msgstr "連線數"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:65
-msgid ""
-"Could not regain access to the device after applying the configuration "
-"changes. You might need to reconnect if you modified network related "
-"settings such as the IP address or wireless security credentials."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:50
-msgid "Country"
-msgstr "國別"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:336
-msgid "Country Code"
-msgstr "國別碼"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:36
-msgid "Cover the following interface"
-msgstr "覆蓋下列介面"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:43
-msgid "Cover the following interfaces"
-msgstr "覆蓋下列這些介面"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:357
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:86
-msgid "Create / Assign firewall-zone"
-msgstr "建立/指定防火牆作用區"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:9
-msgid "Create Interface"
-msgstr "建立介面"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:33
-msgid "Create a bridge over multiple interfaces"
-msgstr "在多個介面上建立橋接"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:99
-msgid "Critical"
-msgstr "緊急"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:103
-msgid "Cron Log Level"
-msgstr "Cron的日誌級別"
-
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:51
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:82
-#: modules/luci-base/luasrc/view/cbi/network_ifacelist.htm:83
-msgid "Custom Interface"
-msgstr "自訂介面"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:40
-msgid "Custom delegated IPv6-prefix"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:53
-msgid ""
-"Custom files (certificates, scripts) may remain on the system. To prevent "
-"this, perform a factory-reset first."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:52
-msgid "Custom flash intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:4
-msgid ""
-"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
-"\">LED</abbr>s if possible."
-msgstr ""
-"如果可以的話,自定這個設備的動作 <abbr title=\"Light Emitting Diode\">LED</"
-"abbr>s ."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:760
-msgid "DAE-Client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "DAE-Port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:776
-msgid "DAE-Secret"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:448
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:459
-msgid "DHCP Server"
-msgstr "DHCP伺服器"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:107
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:9
-msgid "DHCP and DNS"
-msgstr "DHCP 和 DNS"
-
-#: modules/luci-base/luasrc/model/network.lua:962
-msgid "DHCP client"
-msgstr "DHCP用戶端"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:513
-msgid "DHCP-Options"
-msgstr "DHCP選項"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua:7
-msgid "DHCPv6 client"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:540
-msgid "DHCPv6-Mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:529
-msgid "DHCPv6-Service"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:56
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:57
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:58
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:59
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:60
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:81
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:82
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:83
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:84
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:85
-msgid "DNS"
-msgstr "網域名稱伺服器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:140
-msgid "DNS forwardings"
-msgstr "DNS封包轉發"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:30
-msgid "DNS-Label / FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:90
-msgid "DNSSEC"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:94
-msgid "DNSSEC check unsigned"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:73
-msgid "DPD Idle Timeout"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:14
-msgid "DS-Lite AFTR address"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:92
-#: modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm:14
-msgid "DSL"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:95
-msgid "DSL Status"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:125
-msgid "DSL line mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "DTIM Interval"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:88
-msgid "DUID"
-msgstr "DHCP獨立式別碼DUID "
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:102
-msgid "Data Rate"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:94
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:105
-msgid "Debug"
-msgstr "除錯"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:768
-msgid "Default %d"
-msgstr "預設 %d"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:82
-msgid "Default Route"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:81
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:32
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:67
-msgid "Default gateway"
-msgstr "預設匝道器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:541
-msgid "Default is stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:40
-msgid "Default state"
-msgstr "預設狀態"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:503
-msgid "Define a name for this network."
-msgstr "自訂這個網路名稱"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:514
-msgid ""
-"Define additional DHCP options, for example "
-"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
-"servers to clients."
-msgstr ""
-"定義額外的DHCP選項,例如\"<code>6,192.168.2.1,192.168.2.2</code>\"將會通告不同"
-"的DNS伺服器到客戶端."
-
-#: modules/luci-base/luasrc/view/cbi/nsection.htm:11
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:162
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:11
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:41
-msgid "Delete"
-msgstr "刪除"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:172
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:178
-msgid "Delete key"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Delete this network"
-msgstr "刪除這個網路"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:509
-msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:102
-msgid "Description"
-msgstr "描述"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:62
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:361
-msgid "Destination"
-msgstr "目的地"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:43
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:13
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:50
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:75
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:154
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:253
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:86
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:40
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:88
-msgid "Device"
-msgstr "設備"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:138
-msgid "Device Configuration"
-msgstr "設定設備"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:23
-msgid "Device is rebooting..."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:64
-msgid "Device unreachable!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:49
-msgid "Device unreachable! Still waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:123
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:61
-msgid "Diagnostics"
-msgstr "診斷"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:45
-msgid "Dial number"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:99
-msgid "Directory"
-msgstr "目錄"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:131
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable"
-msgstr "關閉"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:472
-msgid ""
-"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
-"this interface."
-msgstr ""
-" 對這介面關閉 <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:64
-msgid "Disable Encryption"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:520
-msgid "Disable Inactivity Polling"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:39
-msgid "Disable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:43
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:54
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:64
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:43
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:37
-msgid "Disabled"
-msgstr "關閉"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1094
-msgid "Disabled (default)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:534
-msgid "Disassociate On Low Acknowledgement"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:150
-msgid "Discard upstream RFC1918 responses"
-msgstr "丟棄上游RFC1918 虛擬IP網路的回應"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:92
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:114
-msgid "Disconnect"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:64
-msgid "Disconnection attempt failed"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:46
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:17
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:28
-msgid "Dismiss"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:239
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:333
-msgid "Distance Optimization"
-msgstr "最佳化距離"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:240
-msgid "Distance to farthest network member in meters."
-msgstr "到最遠的網路距離以米表示."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:346
-msgid "Diversity"
-msgstr "差異"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:10
-msgid ""
-"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
-"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
-"firewalls"
-msgstr ""
-" Dnsmasq 是組合<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-伺服器 和 <abbr title=\"Domain Name System\">DNS</abbr>-轉發給 <abbr "
-"title=\"Network Address Translation\">NAT</abbr> 防火牆用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:113
-msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr "不快取拒絕的回應,例如.不存在的網域"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:79
-msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr "對不被公用名稱伺服器回應的請求不轉發"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:74
-msgid "Do not forward reverse lookups for local networks"
-msgstr "對本地網域不轉發反解析鎖定"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:173
-msgid "Do you really want to delete the following SSH key?"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:25
-msgid "Domain required"
-msgstr "網域必要的"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:163
-msgid "Domain whitelist"
-msgstr "網域白名單"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Don't Fragment"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:26
-msgid ""
-"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
-"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr ""
-"若沒 <abbr title=\"Domain Name System\">DNS</abbr>-名稱的話,不要轉發 <abbr "
-"title=\"Domain Name System\">DNS</abbr>-請求"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Down"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:23
-msgid "Download backup"
-msgstr "下載備份檔"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
-msgid "Download mtdblock"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:130
-msgid "Downstream SNR offset"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
-msgid "Dropbear Instance"
-msgstr "Dropbear SSH例子"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:6
-msgid ""
-"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
-"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
-msgstr ""
-"Dropbear 提供 <abbr title=\"Secure Shell\">SSH</abbr> 網路shell命令存取和一個"
-"整合的 <abbr title=\"Secure Copy\">SCP</abbr> 伺服器"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:14
-msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:493
-msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr "動態 <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:40
-msgid "Dynamic tunnel"
-msgstr "動態隧道"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:494
-msgid ""
-"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
-"having static leases will be served."
-msgstr "幫用戶端動態發配DHCP位址. 假如關閉的話,僅有有靜態位址的用戶端能被服務"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:53
-msgid "EA-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:945
-msgid "EAP-Method"
-msgstr "EAP協定驗證方式"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:154
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:160
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit"
-msgstr "編輯"
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:13
-msgid ""
-"Edit the raw configuration data above to fix any error and hit \"Save\" to "
-"reload the page."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:38
-msgid "Edit this interface"
-msgstr "修改這個介面"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:42
-msgid "Edit this network"
-msgstr "修改這個網路"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:101
-msgid "Emergency"
-msgstr "緊急"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:127
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable"
-msgstr "啟用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:276
-msgid ""
-"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
-"snooping"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:271
-msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "啟用 <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:41
-msgid "Enable HE.net dynamic endpoint update"
-msgstr "啟用HE.net服務代管動態更新"
-
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:43
-msgid "Enable IPv6 negotiation"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:23
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:35
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:41
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:35
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:37
-msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "啟用PPP連結上的IPv6交涉"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:141
-msgid "Enable Jumbo Frame passthrough"
-msgstr "啟用超大訊框透穿"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:238
-msgid "Enable NTP client"
-msgstr "起用NTP用戶功能"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:69
-msgid "Enable Single DES"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:226
-msgid "Enable TFTP server"
-msgstr "啟用TFTP伺服器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:132
-msgid "Enable VLAN functionality"
-msgstr "啟用VLAN功能"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1139
-msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1124
-msgid "Enable key reinstallation (KRACK) countermeasures"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:136
-msgid "Enable learning and aging"
-msgstr "啟用智慧學習功能"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:148
-msgid "Enable mirroring of incoming packets"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:149
-msgid "Enable mirroring of outgoing packets"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:34
-msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:53
-msgid "Enable this mount"
-msgstr "啟用掛載點"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:36
-msgid "Enable this network"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:37
-msgid "Enable this swap"
-msgstr "啟用swap功能"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:36
-msgid "Enable/Disable"
-msgstr "啟用/關閉"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:152
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:251
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:40
-msgid "Enabled"
-msgstr "啟用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:277
-msgid "Enables IGMP snooping on this bridge"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:851
-msgid ""
-"Enables fast roaming among access points that belong to the same Mobility "
-"Domain"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
-msgid "Enables the Spanning Tree Protocol on this bridge"
-msgstr "在橋接器上啟用802.1d Spanning Tree協定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:120
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:180
-msgid "Encapsulation mode"
-msgstr "封裝模式"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:593
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:33
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:158
-msgid "Encryption"
-msgstr "加密"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:155
-msgid "Endpoint Host"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:165
-msgid "Endpoint Port"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:47
-msgid "Enter custom value"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/dropdown.htm:46
-msgid "Enter custom values"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:264
-msgid "Erasing..."
-msgstr "刪除中..."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:106
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:107
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:108
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:109
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:98
-msgid "Error"
-msgstr "錯誤"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:110
-msgid "Errored seconds (ES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1422
-msgid "Ethernet Adapter"
-msgstr "乙太網路卡"
-
-#: modules/luci-base/luasrc/model/network.lua:1412
-msgid "Ethernet Switch"
-msgstr "乙太交換器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:263
-msgid "Exclude interfaces"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:108
-msgid "Expand hosts"
-msgstr "延伸主機"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
-msgid "Expecting %s"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:61
-msgid "Expires"
-msgstr "過期"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:488
-#, fuzzy
-msgid ""
-"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr "釋放位址的過期週期,最少兩分鐘 (<code>2m</code>)."
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:8
-msgid "External"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:926
-msgid "External R0 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:935
-msgid "External R1 Key Holder List"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:75
-msgid "External system log server"
-msgstr "外部系統日誌伺服器"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:80
-msgid "External system log server port"
-msgstr "外部系統日誌伺服器埠號"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:85
-msgid "External system log server protocol"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:18
-msgid "Extra SSH command options"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:895
-msgid "FT over DS"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:896
-msgid "FT over the Air"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:893
-msgid "FT protocol"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:38
-msgid "Failed to confirm apply within %ds, waiting for rollback…"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/filebrowser.htm:106
-msgid "File"
-msgstr "檔案"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:239
-msgid "Filename of the boot image advertised to clients"
-msgstr "開機影像檔通知給用戶端"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:98
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:199
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:126
-msgid "Filesystem"
-msgstr "檔案系統"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:73
-msgid "Filter private"
-msgstr "私人過濾器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:78
-msgid "Filter useless"
-msgstr "無用過濾器"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:65
-msgid "Finalizing failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid ""
-"Find all currently attached filesystems and swap and replace configuration "
-"with defaults based on what was detected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Find and join network"
-msgstr "搜尋並加入網路"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:9
-msgid "Finish"
-msgstr "完成"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:10
-msgid "Firewall"
-msgstr "防火牆"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:77
-msgid "Firewall Mark"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:193
-msgid "Firewall Settings"
-msgstr "防火牆設定"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
-msgid "Firewall Status"
-msgstr "防火牆狀況"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:137
-msgid "Firmware File"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:20
-msgid "Firmware Version"
-msgstr "防火牆版本"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:183
-msgid "Fixed source port for outbound DNS queries"
-msgstr "外發DNS請求的固定埠號"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Flash Firmware"
-msgstr "韌體更新"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:127
-msgid "Flash image..."
-msgstr "更新映像檔中..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:99
-msgid "Flash new firmware image"
-msgstr "更新新版韌體映像檔"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:9
-msgid "Flash operations"
-msgstr "執行更新"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:185
-msgid "Flashing..."
-msgstr "更新中..."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:58
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:60
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:62
-msgid "Flashmemory write access (%s)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:498
-msgid "Force"
-msgstr "強制"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:257
-msgid "Force 40MHz mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:612
-msgid "Force CCMP (AES)"
-msgstr "強制CCMP (AES)加密"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:499
-msgid "Force DHCP on this network even if another server is detected."
-msgstr "在網路上即使偵測到其它伺服器也強制採用DHCP的設定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:613
-msgid "Force TKIP"
-msgstr "強制TKIP加密"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:614
-msgid "Force TKIP and CCMP (AES)"
-msgstr "強制TKIP+CCMP (AES)加密"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:257
-msgid "Force link"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
-msgid "Force upgrade"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
-msgid "Force use of NAT-T"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:8
-msgid "Form token mismatch"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:34
-msgid "Forward DHCP traffic"
-msgstr "轉發DHCP流量"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:109
-msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:28
-msgid "Forward broadcast traffic"
-msgstr "轉發廣播流量"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:374
-msgid "Forward mesh peer traffic"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:186
-msgid "Forwarding mode"
-msgstr "轉發模式"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:254
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:586
-msgid "Fragmentation Threshold"
-msgstr "分片閥值"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:331
-msgid "Frame Bursting"
-msgstr "訊框爆速"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:17
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:28
-msgid "Free"
-msgstr "空閒"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:91
-msgid ""
-"Further information about WireGuard interfaces and peers at <a href=\"http://"
-"wireguard.com\">wireguard.com</a>."
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:45
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:167
-msgid "GHz"
-msgstr "GHz"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:29
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:36
-msgid "GPRS only"
-msgstr "僅用GPRS"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:55
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:80
-msgid "Gateway"
-msgstr "匝道器"
-
-#: modules/luci-base/luasrc/model/network.lua:29
-msgid "Gateway address is invalid"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:46
-msgid "Gateway ports"
-msgstr "匝道器埠號"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:19
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:49
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:33
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:22
-msgid "General Settings"
-msgstr "一般設定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:188
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:462
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:175
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:141
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:360
-msgid "General Setup"
-msgstr "一般設置"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:41
-msgid "Generate Config"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:900
-msgid "Generate PMK locally"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:25
-msgid "Generate archive"
-msgstr "製作壓縮檔"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:63
-msgid "Generic 802.11%s Wireless Controller"
-msgstr "通用 802.11%s 無線控制器"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:26
-msgid "Given password confirmation did not match, password not changed!"
-msgstr "鍵入的密碼不吻合,密碼將不變更"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:37
-msgid "Global Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:194
-msgid "Global network options"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:198
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:235
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:262
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:289
-msgid "Go to password configuration..."
-msgstr "到密碼設定頁"
-
-#: modules/luci-base/luasrc/view/cbi/full_valueheader.htm:4
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:58
-msgid "Go to relevant configuration page"
-msgstr "到相應設定頁"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:38
-msgid "Group Password"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:11
-msgid "Guest"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:73
-msgid "HE.net password"
-msgstr " HE.net密碼"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:60
-msgid "HE.net username"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:309
-msgid "HT mode (802.11n)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:16
-msgid "Hang Up"
-msgstr "斷線"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:114
-msgid "Header Error Code Errors (HEC)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:56
-msgid "Heartbeat intervall (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-msgid ""
-"Here you can configure the basic aspects of your device like its hostname or "
-"the timezone."
-msgstr "在這設置基本樣貌類似像主機名稱或者時區..等"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:489
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:546
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:569
-msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "隱藏 <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:61
-msgid "Hide empty chains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:86
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:110
-msgid "Host"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:10
-msgid "Host entries"
-msgstr "主機項目"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:48
-msgid "Host expiry timeout"
-msgstr "過期主機"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "主機-<abbr title=\"Internet Protocol Address\">IP</abbr> 或網路"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:118
-msgid "Host-Uniq tag content"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:71
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:283
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:17
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:36
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:129
-msgid "Hostname"
-msgstr "主機名稱"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:12
-msgid "Hostname to send when requesting DHCP"
-msgstr "當請求DHCP服務時傳送的主機名稱"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:112
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:8
-msgid "Hostnames"
-msgstr "主機名稱"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:13
-msgid "Hybrid"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:45
-msgid "IKE DH Group"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:41
-msgid "IP Addresses"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
-msgid "IP Protocol"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
-msgid "IP address"
-msgstr "IP位址"
-
-#: modules/luci-base/luasrc/model/network.lua:28
-msgid "IP address in invalid"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:31
-msgid "IP address is missing"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:18
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:19
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:20
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:22
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:89
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:90
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:91
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:92
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:93
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:73
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:88
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:42
-msgid "IPv4"
-msgstr "IPv4版"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:49
-msgid "IPv4 Firewall"
-msgstr "IPv4防火牆"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:46
-msgid "IPv4 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:57
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:84
-msgid "IPv4 address"
-msgstr "IPv4位址"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:26
-msgid "IPv4 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:104
-msgid "IPv4 broadcast"
-msgstr "IPv4廣播"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:100
-msgid "IPv4 gateway"
-msgstr "IPv4匝道器"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:92
-msgid "IPv4 netmask"
-msgstr "IPv4網路遮罩"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:355
-msgid "IPv4 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
-msgid "IPv4 prefix"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:42
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:30
-msgid "IPv4 prefix length"
-msgstr "IPv4前綴長度"
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
-msgid "IPv4+IPv6"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:72
-msgid "IPv4-Address"
-msgstr "IPv4-位址"
-
-#: protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua:9
-msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:23
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:25
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:26
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:27
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:28
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:29
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:30
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:31
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:32
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:94
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:95
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:96
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:97
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:98
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:99
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:100
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:101
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:102
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:103
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:74
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:89
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:44
-msgid "IPv6"
-msgstr "IPv6版"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:52
-msgid "IPv6 Firewall"
-msgstr "IPv6防火牆"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:128
-msgid "IPv6 Neighbours"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:464
-msgid "IPv6 Settings"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:195
-msgid "IPv6 ULA-Prefix"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
-msgid "IPv6 Upstream"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:127
-msgid "IPv6 address"
-msgstr "IPv6位址"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:123
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:23
-msgid "IPv6 assignment hint"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:117
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:18
-msgid "IPv6 assignment length"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:133
-msgid "IPv6 gateway"
-msgstr "IPv6匝道器"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:360
-msgid "IPv6 network in address/netmask notation"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
-msgid "IPv6 prefix"
-msgstr "IPv6字首"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:34
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:45
-msgid "IPv6 prefix length"
-msgstr "IPv6字首長度"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:138
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:33
-msgid "IPv6 routed prefix"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:143
-msgid "IPv6 suffix"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:87
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
-msgid "IPv6-Address"
-msgstr "IPv6-位址"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:33
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:104
-msgid "IPv6-PD"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:13
-msgid "IPv6-in-IPv4 (RFC4213)"
-msgstr "IPv6包覆在IPv4內(RFC4213)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:17
-msgid "IPv6-over-IPv4 (6rd)"
-msgstr "IPv6凌駕IPv4外(第6版)"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua:15
-msgid "IPv6-over-IPv4 (6to4)"
-msgstr "IPv6凌駕IPv4外(6轉4)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1030
-msgid "Identity"
-msgstr "特性"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:70
-msgid "If checked, 1DES is enabled"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:65
-msgid "If checked, encryption is disabled"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:57
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:48
-msgid ""
-"If specified, mount the device by its UUID instead of a fixed device node"
-msgstr "假若指定的話, 掛載設備的UUID獨立設備識別碼取代固定的設備節點"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:71
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:51
-msgid ""
-"If specified, mount the device by the partition label instead of a fixed "
-"device node"
-msgstr "假若指定的話, 掛載設備的分割標籤取代固定的設備節點"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:27
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:71
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:82
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:52
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:17
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:29
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:68
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:81
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:32
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:45
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:24
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:44
-msgid "If unchecked, no default route is configured"
-msgstr "如果沒打勾點選, 將不會設置預設路由"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:34
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:86
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:35
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:47
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:60
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:39
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:59
-msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "如果沒打勾點選, 公告的DNS伺服器位址將被忽視"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid ""
-"If your physical memory is insufficient unused data can be temporarily "
-"swapped to a swap-device resulting in a higher amount of usable <abbr title="
-"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
-"slow process as the swap-device cannot be accessed with the high datarates "
-"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
-msgstr ""
-"如果您的物理內存不足時,未使用的數據可以是暫時交換到導致更高的交換設備量的可用"
-"<abbr title=\"Random Access Memory\">RAM</abbr>內.請注意,交換數據是一個非常"
-"緩慢的過程,作為交換裝置不能用高數據速率訪問該<abbr title=\"Random Access "
-"Memory\">RAM</縮寫>"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:57
-msgid "Ignore <code>/etc/hosts</code>"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:471
-msgid "Ignore interface"
-msgstr "被忽視的介面"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:46
-msgid "Ignore resolve file"
-msgstr "被忽視的解析檔"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:124
-msgid "Image"
-msgstr "映像檔"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:59
-msgid "In"
-msgstr "輸入"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:13
-msgid ""
-"In order to prevent unauthorized access to the system, your request has been "
-"blocked. Click \"Continue »\" below to return to the previous page."
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:145
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:124
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:126
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:97
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:118
-msgid "Inactivity timeout"
-msgstr "閒置過期"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:287
-msgid "Inbound:"
-msgstr "輸入"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:95
-msgid "Info"
-msgstr "訊息"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:67
-msgid "Initialization failure"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:33
-msgid "Initscript"
-msgstr "初始化腳本"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid "Initscripts"
-msgstr "初始化腳本"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:98
-msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:223
-msgid "Install package %q"
-msgstr "安裝軟體包 %q"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:119
-msgid "Install protocol extensions..."
-msgstr "安裝延伸協定中..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:284
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:342
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:65
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:47
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:134
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:14
-msgid "Interface"
-msgstr "介面"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:35
-msgid "Interface %q device auto-migrated from %q to %q."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:355
-msgid "Interface Configuration"
-msgstr "介面設定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:51
-msgid "Interface Overview"
-msgstr "介面預覽"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:3
-msgid "Interface is reconnecting..."
-msgstr "介面重連"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Interface name"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:130
-msgid "Interface not present or not connected yet."
-msgstr "介面尚未出線或者還沒連上"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:88
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:11
-msgid "Interfaces"
-msgstr "介面"
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:9
-msgid "Internal"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error500.htm:8
-msgid "Internal Server Error"
-msgstr "內部伺服器發生錯誤"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:192
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:37
-msgid "Invalid"
-msgstr "無效"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:286
-msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr "輸入的VLAN ID無效僅有介於 %d 和 %d的被允許"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:282
-msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "打入的是不正確的VLAN ID!僅有獨一無二的IDs被允許"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:12
-msgid "Invalid username and/or password! Please try again."
-msgstr "不正確的用戶名稱和/或者密碼!請再試一次."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:498
-msgid "Isolate Clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:18
-#, fuzzy
-msgid ""
-"It appears that you are trying to flash an image that does not fit into the "
-"flash memory, please verify the image file!"
-msgstr "它顯示您正嘗試更新不適用於這個flash記憶體的映像檔,請檢查確認這個映像檔"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:205
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:220
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:242
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:252
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:296
-msgid "JavaScript required!"
-msgstr "需要Java腳本"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:52
-msgid "Join Network"
-msgstr "加入網路"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:22
-msgid "Join Network: Wireless Scan"
-msgstr "加入網路:無線網路掃描"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:19
-msgid "Joining Network: %q"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:106
-msgid "Keep settings"
-msgstr "保持設定值"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
-#: modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm:8
-msgid "Kernel Log"
-msgstr "核心日誌"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:24
-msgid "Kernel Version"
-msgstr "核心版本"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:784
-msgid "Key"
-msgstr "鑰匙"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:810
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:811
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:812
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:813
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:829
-msgid "Key #%d"
-msgstr "鑰匙  #%d"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:28
-msgid "Kill"
-msgstr "刪除"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:21
-msgid "L2TP"
-msgstr "L2TP"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:10
-msgid "L2TP Server"
-msgstr "L2TP伺服器"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:100
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:80
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:74
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:53
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:73
-msgid "LCP echo failure threshold"
-msgstr "LCP協定呼叫失敗次數門檻"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:118
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:95
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:89
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:68
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:91
-msgid "LCP echo interval"
-msgstr "LCP協定呼叫間隔"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:181
-msgid "LLC"
-msgstr "LLC邏輯鏈結控制層"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:70
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:50
-msgid "Label"
-msgstr "標籤"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:137
-msgid "Language"
-msgstr "語言"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:24
-msgid "Language and Style"
-msgstr "語言和風格"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:104
-msgid "Latency"
-msgstr ""
-
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:10
-msgid "Leaf"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:309
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:487
-msgid "Lease time"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:41
-msgid "Leasefile"
-msgstr "租賃檔案"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:74
-#: modules/luci-base/luasrc/view/lease_status.htm:89
-msgid "Leasetime remaining"
-msgstr "租賃保留時間"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:20
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:27
-msgid "Leave empty to autodetect"
-msgstr "保持空白以便自動偵測"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:21
-msgid "Leave empty to use the current WAN address"
-msgstr "保持空白以便採用現今的寬頻位址"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:8
-msgid "Legend:"
-msgstr "圖例:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:481
-msgid "Limit"
-msgstr "限制"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:247
-msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:259
-msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:105
-msgid "Line Attenuation (LATN)"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:98
-msgid "Line Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:97
-msgid "Line State"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:99
-msgid "Line Uptime"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:118
-msgid "Link On"
-msgstr "鏈接"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:141
-msgid ""
-"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
-"requests to"
-msgstr "列出 <abbr title=\"Domain Name System\">DNS</abbr> 伺服器以便轉發請求"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:927
-msgid ""
-"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
-"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
-"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
-"from the R0KH that the STA used during the Initial Mobility Domain "
-"Association."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:936
-msgid ""
-"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
-"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
-"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
-"R0KH. This is also the list of authorized R1KHs in the MD that can request "
-"PMK-R1 keys."
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:21
-msgid "List of SSH key files for auth"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:164
-msgid "List of domains to allow RFC1918 responses for"
-msgstr "列出允許RFC1918文件虛擬IP回應的網域"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:130
-msgid "List of hosts that supply bogus NX domain results"
-msgstr "列出供應偽裝NX網域成果的主機群"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:258
-msgid "Listen Interfaces"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
-msgid "Listen Port"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
-msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr "只許在給予的介面上聆聽, 如果未指定, 全都允許"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:174
-msgid "Listening port for inbound DNS queries"
-msgstr "進入的DNS請求聆聽埠"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:21
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:128
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:221
-msgid "Load"
-msgstr "掛載"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:27
-msgid "Load Average"
-msgstr "平均掛載"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:33
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:45
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:22
-msgid "Loading"
-msgstr "掛載中"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:35
-msgid "Loading SSH keys…"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:30
-msgid "Local IP address is invalid"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:25
-msgid "Local IP address to assign"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:10
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:11
-msgid "Local IPv4 address"
-msgstr "本地IPv4位址"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:20
-msgid "Local IPv6 address"
-msgstr "本地IPv6位址"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:246
-msgid "Local Service Only"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:77
-msgid "Local Startup"
-msgstr "本地啟動"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:25
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:32
-msgid "Local Time"
-msgstr "本地時區"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:104
-msgid "Local domain"
-msgstr "本地網域"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:101
-#, fuzzy
-msgid ""
-"Local domain specification. Names matching this domain are never forwarded "
-"and are resolved from DHCP or hosts files only"
-msgstr "本地網域格式. 僅限符合從未從DHCP或hosts檔轉發和解析的網域"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:105
-msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr "本地網域後綴附加倒DHCP名稱和hosts檔項目"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:100
-msgid "Local server"
-msgstr "本地伺服器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:84
-msgid ""
-"Localise hostname depending on the requesting subnet if multiple IPs are "
-"available"
-msgstr "若有多個IP可用, 本地化主機名稱端看請求的子網路而言."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:83
-msgid "Localise queries"
-msgstr "本地化網路請求"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:175
-msgid "Locked to channel %s used by: %s"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:93
-msgid "Log output level"
-msgstr "日誌輸出層級"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:137
-msgid "Log queries"
-msgstr "日誌查詢"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:23
-msgid "Logging"
-msgstr "日誌紀錄中"
-
-#: modules/luci-base/luasrc/view/sysauth.htm:38
-msgid "Login"
-msgstr "登入"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:92
-msgid "Logout"
-msgstr "登出"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:112
-msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:476
-msgid "Lowest leased address as offset from the network address."
-msgstr "最低的釋放位址從這網路位址的偏移計算"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:15
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:86
-msgid "MAC"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:73
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:109
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:51
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:133
-msgid "MAC-Address"
-msgstr "MAC-位址"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:447
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:576
-msgid "MAC-Address Filter"
-msgstr "MAC-位址過濾"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:142
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:362
-msgid "MAC-Filter"
-msgstr "MAC-過濾"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:454
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:580
-msgid "MAC-List"
-msgstr "MAC-清單"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:16
-msgid "MAP / LW4over6"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:62
-msgid "MAP rule is invalid"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:70
-msgid "MB/s"
-msgstr "MB/s"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:28
-msgid "MD5"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-msgid "MHz"
-msgstr "MHz"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:82
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:29
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:66
-msgid "MTU"
-msgstr "最大傳輸單位MTU"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:121
-msgid ""
-"Make sure to clone the root filesystem using something like the commands "
-"below:"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:55
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:26
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:38
-msgid "Manual"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:103
-msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:529
-msgid "Maximum allowed Listen Interval"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
-msgid "Maximum allowed number of active DHCP leases"
-msgstr "允許啟用DHCP釋放的最大數量"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:212
-msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "允許同時齊發的DNS請求的最大數量"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:203
-msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "允許EDNS.0 協定的UDP封包最大數量"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:63
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:73
-msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "等待數據機待命的最大秒數"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:27
-msgid ""
-"Maximum length of the name is 15 characters including the automatic protocol/"
-"bridge prefix (br-, 6in4-, pppoe- etc.)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:482
-msgid "Maximum number of leased addresses."
-msgstr "釋放出的位址群最大數量"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:21
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:49
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:168
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:79
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:284
-msgid "Mbit/s"
-msgstr "Mbit/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
-msgid "Memory"
-msgstr "記憶體"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:14
-msgid "Memory usage (%)"
-msgstr "記憶體使用 (%)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:371
-msgid "Mesh Id"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:34
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:76
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:104
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:54
-msgid "Metric"
-msgstr "公測單位"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:152
-msgid "Mirror monitor port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:151
-msgid "Mirror source port"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:408
-msgid "Missing protocol extension for proto %q"
-msgstr "協定  %q 漏失的延伸協定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:878
-msgid "Mobility Domain"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:149
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:41
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:74
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:365
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:31
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:156
-msgid "Mode"
-msgstr "模式"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:18
-msgid "Model"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
-msgid "Modem default"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
-msgid "Modem device"
-msgstr "數據機設備"
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
-msgid "Modem information query failed"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:62
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:72
-msgid "Modem init timeout"
-msgstr "數據機初始化終結時間"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:442
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:544
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:567
-msgid "Monitor"
-msgstr "監視"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
-msgid "Mount Entry"
-msgstr "掛載項目"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:100
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:190
-msgid "Mount Point"
-msgstr "掛載點"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:27
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:36
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid "Mount Points"
-msgstr "掛載各點"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:35
-msgid "Mount Points - Mount Entry"
-msgstr "掛載各點 - 掛載項目"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:20
-msgid "Mount Points - Swap Entry"
-msgstr "掛載各點 - 交換項目"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:137
-msgid ""
-"Mount Points define at which point a memory device will be attached to the "
-"filesystem"
-msgstr "掛載各點定義所指定到記憶體設備將會被附載到檔案系統上"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:53
-msgid "Mount filesystems not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:147
-msgid "Mount options"
-msgstr "掛載選項"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:102
-msgid "Mount point"
-msgstr "掛載點"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:49
-msgid "Mount swap not specifically configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:96
-msgid "Mounted file systems"
-msgstr "已掛載檔案系統"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:152
-msgid "Move down"
-msgstr "往下移"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Move up"
-msgstr "往上移"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:867
-msgid "NAS ID"
-msgstr " 網路附存伺服器ID"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:57
-msgid "NAT-T Mode"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:9
-msgid "NAT64 Prefix"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:26
-msgid "NCM"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:535
-msgid "NDP-Proxy"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:43
-msgid "NT Domain"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:261
-msgid "NTP server candidates"
-msgstr "NTP伺服器備選"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:27
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:502
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:32
-msgid "Name"
-msgstr "名稱"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:17
-msgid "Name of the new interface"
-msgstr "新介面的名稱"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:76
-msgid "Name of the new network"
-msgstr "新網路的名稱"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:167
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:217
-msgid "Navigation"
-msgstr "導覽"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:54
-msgid "Netmask"
-msgstr "網路遮罩"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:62
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:108
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:392
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:358
-#: modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:73
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:101
-msgid "Network"
-msgstr "網路"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:64
-msgid "Network Utilities"
-msgstr "網路多項工具"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:238
-msgid "Network boot image"
-msgstr "網路開機映像檔"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:54
-msgid "Network device activity (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:33
-msgid "Network device is not present"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:125
-msgid "Network without interfaces."
-msgstr "尚無任何介面的網路."
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:11
-msgid "Next »"
-msgstr "下一個 »"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:84
-msgid "No"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:453
-msgid "No DHCP Server configured for this interface"
-msgstr "在這個介面尚無DHCP伺服器"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:59
-msgid "No NAT-T"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:75
-msgid "No files found"
-msgstr "尚未發現任何檔案"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:100
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:172
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:174
-msgid "No information available"
-msgstr "尚無可運用資訊"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:63
-msgid "No matching prefix delegation"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:112
-msgid "No negative cache"
-msgstr "尚無拒絕的快取"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:53
-msgid "No network configured on this device"
-msgstr "尚無網路設定在這個介面上"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:65
-msgid "No network name specified"
-msgstr "尚未指定網路名稱"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:195
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:103
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:232
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:259
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284
-msgid "No password set!"
-msgstr "尚未設定密碼!"
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:116
-msgid "No public keys present yet."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:83
-msgid "No rules in this chain."
-msgstr "尚無規則在這個鏈接上"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
-msgid "No scan results available yet..."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "No zone assigned"
-msgstr "尚未指定區碼"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-msgid "Noise"
-msgstr "噪音比"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:107
-msgid "Noise Margin (SNR)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:340
-msgid "Noise:"
-msgstr "噪音比:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:115
-msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:252
-msgid "Non-wildcard"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:44
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:76
-msgid "None"
-msgstr "無"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:106
-msgid "Normal"
-msgstr "正常"
-
-#: modules/luci-base/luasrc/view/error404.htm:8
-msgid "Not Found"
-msgstr "尚未發現"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:27
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm:5
-msgid "Not associated"
-msgstr "尚未關聯"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-msgid "Not connected"
-msgstr "尚未連線"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
-msgid "Note: interface name length"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:96
-msgid "Notice"
-msgstr "通知"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:104
-msgid "Nslookup"
-msgstr "DNS偵錯Nslookup"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:220
-msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "Number of parallel threads used for compression"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:40
-msgid "Obfuscated Group Password"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:35
-msgid "Obfuscated Password"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:40
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:34
-msgid "Obtain IPv6-Address"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:84
-msgid "Off-State Delay"
-msgstr "關閉狀態延遲"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:16
-msgid ""
-"On this page you can configure the network interfaces. You can bridge "
-"several interfaces by ticking the \"bridge interfaces\" field and enter the "
-"names of several network interfaces separated by spaces. You can also use "
-"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
-"<samp>eth0.1</samp>)."
-msgstr ""
-"在這個頁面您可以設定網路介面. 只要點下這個\"介面群橋接\"而且打入數個以空格分"
-"開網路介面的名稱就可以橋接數個介面群. 您也可以使用<abbr title=\"Virtual "
-"Local Area Network\">VLAN</abbr> 符號<samp>INTERFACE.VLANNR</samp> (<abbr "
-"title=\"for example\">例.如</abbr>: <samp>eth0.1</samp>)."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:81
-msgid "On-State Delay"
-msgstr "啟用狀態延遲"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:338
-msgid "One of hostname or mac address must be specified!"
-msgstr "主機名稱或mac位址任選一個被指定"
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
-msgid "One or more fields contain invalid values!"
-msgstr "有一個以上的欄位包含失效數值!"
-
-#: modules/luci-base/luasrc/view/cbi/map.htm:31
-msgid "One or more invalid/required values on tab"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/nullsection.htm:19
-#: modules/luci-base/luasrc/view/cbi/ucisection.htm:24
-msgid "One or more required fields have no value!"
-msgstr "有一個以上的欄位缺乏任何數值!"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19
-msgid "Open list..."
-msgstr "開啟清單..."
-
-#: protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua:9
-msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:178
-msgid "Operating frequency"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:12
-msgid "Option changed"
-msgstr "選項已變更"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:13
-msgid "Option removed"
-msgstr "選項已移除"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1095
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:55
-msgid "Optional"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:78
-msgid ""
-"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
-"starting with <code>0x</code>."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:144
-msgid ""
-"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or "
-"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating "
-"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
-"for the interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:123
-msgid ""
-"Optional. Base64-encoded preshared key. Adds in an additional layer of "
-"symmetric-key cryptography for post-quantum resistance."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:148
-msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:103
-msgid "Optional. Description of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:156
-msgid ""
-"Optional. Host of peer. Names are resolved prior to bringing up the "
-"interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:67
-msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:166
-msgid "Optional. Port of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:175
-msgid ""
-"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
-"Recommended value if this device is behind a NAT is 25."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:31
-msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:212
-msgid "Options"
-msgstr "選項"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:343
-msgid "Other:"
-msgstr "其它:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:60
-msgid "Out"
-msgstr "出"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:297
-msgid "Outbound:"
-msgstr "外連:"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:26
-msgid "Output Interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:63
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:155
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:33
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:54
-msgid "Override MAC address"
-msgstr "覆蓋MAC位址"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:66
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:158
-#: protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua:35
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:56
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:88
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:125
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:131
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:133
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:104
-msgid "Override MTU"
-msgstr "覆蓋MTU數值"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Override TOS"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid "Override TTL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:503
-msgid "Override default interface name"
-msgstr ""
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:41
-msgid "Override the gateway in DHCP responses"
-msgstr "在DHCP回應中覆蓋匝道器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:507
-msgid ""
-"Override the netmask sent to clients. Normally it is calculated from the "
-"subnet that is served."
-msgstr "覆蓋傳送到客戶端的子網路遮罩. 正常來說它會計算來自於已存在的子網路."
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:65
-msgid "Override the table used for internal routes"
-msgstr "覆蓋之前內部使用的路由表"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:8
-msgid "Overview"
-msgstr "預覽"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:11
-msgid "Owner"
-msgstr "持有者"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:42
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:56
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:17
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:28
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:34
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:18
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:32
-msgid "PAP/CHAP password"
-msgstr "PAP/CHAP驗證密碼"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:39
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:14
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:25
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:11
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:15
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:29
-msgid "PAP/CHAP username"
-msgstr "PAP/CHAP驗證用戶名"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:10
-msgid "PID"
-msgstr "PID碼"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:36
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:50
-#: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:26
-msgid "PIN"
-msgstr "PIN碼"
-
-#: modules/luci-base/luasrc/model/network.lua:39
-msgid "PIN code rejected"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:921
-msgid "PMK R1 Push"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:13
-msgid "PPP"
-msgstr "PPP協定"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:11
-msgid "PPPoA Encapsulation"
-msgstr "PPPoA配置"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:19
-msgid "PPPoATM"
-msgstr "PPPoATM"
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:17
-msgid "PPPoE"
-msgstr "PPPoE"
-
-#: protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua:9
-msgid "PPPoSSH"
-msgstr ""
-
-#: protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua:15
-msgid "PPtP"
-msgstr "PPtP點對點VPN虛擬私人隧道協定"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:59
-msgid "PSID offset"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:56
-msgid "PSID-bits length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:123
-msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:78
-msgid "Package libiwinfo required!"
-msgstr "軟體包必需有libiwinfo!"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Packets"
-msgstr "封包"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:7
-msgid "Part of zone %q"
-msgstr "區域 %q 的部分 "
-
-#: modules/luci-base/luasrc/view/sysauth.htm:29
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1066
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:42
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:33
-msgid "Password"
-msgstr "密碼"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:29
-msgid "Password authentication"
-msgstr "密碼驗證"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:974
-msgid "Password of Private Key"
-msgstr "私人金鑰密碼"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1022
-msgid "Password of inner Private Key"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
-msgid "Password2"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:37
-msgid "Paste or drag SSH key file…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:955
-msgid "Path to CA-Certificate"
-msgstr "CA-證書的路徑"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:962
-msgid "Path to Client-Certificate"
-msgstr "用戶端-證書的路徑"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:968
-msgid "Path to Private Key"
-msgstr "私人金鑰的路徑"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1004
-msgid "Path to inner CA-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1010
-msgid "Path to inner Client-Certificate"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1016
-msgid "Path to inner Private Key"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:293
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:303
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:329
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:339
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:349
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:258
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:268
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:278
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:336
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:346
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:365
-msgid "Peak:"
-msgstr "峰值:"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:28
-msgid "Peer IP address to assign"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:32
-msgid "Peer address is missing"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:90
-msgid "Peers"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:50
-msgid "Perfect Forward Secrecy"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:19
-msgid "Perform reboot"
-msgstr "執行重開"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Perform reset"
-msgstr "執行重置"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:174
-msgid "Persistent Keep Alive"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:359
-msgid "Phy Rate:"
-msgstr "傳輸率:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:190
-msgid "Physical Settings"
-msgstr "實體設置"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:77
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:79
-msgid "Ping"
-msgstr "Ping"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:55
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:170
-msgid "Pkts."
-msgstr "封包數."
-
-#: modules/luci-base/luasrc/view/sysauth.htm:19
-msgid "Please enter your username and password."
-msgstr "請輸入您的用戶名稱和密碼"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-msgid "Policy"
-msgstr "策略"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:178
-msgid "Polling interval"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:179
-msgid "Polling interval for status queries in seconds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:22
-msgid "Port"
-msgstr "埠"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:18
-msgid "Port status:"
-msgstr "埠狀態:"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:118
-msgid "Power Management Mode"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:116
-msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:32
-msgid "Prefer LTE"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:33
-msgid "Prefer UMTS"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:78
-msgid "Prefix Delegated"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:122
-msgid "Preshared Key"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:81
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:75
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:54
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:74
-msgid ""
-"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
-"ignore failures"
-msgstr "假若在給于多次的 LCP 呼叫失敗後終點將死, 使用0忽略失敗"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:264
-msgid "Prevent listening on these interfaces."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:499
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:552
-msgid "Prevents client-to-client communication"
-msgstr "防止用戶端對用戶端的通訊"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:18
-msgid "Private Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:61
-msgid "Proceed"
-msgstr "前進"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:17
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid "Processes"
-msgstr "執行緒"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:101
-msgid "Profile"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:58
-msgid "Prot."
-msgstr "協定."
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:84
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:216
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:52
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:77
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:359
-msgid "Protocol"
-msgstr "協定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:31
-msgid "Protocol of the new interface"
-msgstr "新介面的協定家族"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:222
-msgid "Protocol support is not installed"
-msgstr "支援的協定尚未安裝"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:257
-msgid "Provide NTP server"
-msgstr "提供NTP伺服器"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:16
-msgid "Provide new network"
-msgstr "提供新網路"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:441
-msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "偽裝Ad-Hoc (ahdemo模式)"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:112
-msgid "Public Key"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:30
-msgid ""
-"Public keys allow for the passwordless SSH logins with a higher security "
-"compared to the use of plain passwords. In order to upload a new key to the "
-"device, paste an OpenSSH compatible public key line or drag a <code>.pub</"
-"code> file into the input field."
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:139
-msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:9
-msgid "QMI Cellular"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Quality"
-msgstr "品質"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:127
-msgid ""
-"Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> "
-"servers"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "R0 Key Lifetime"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:914
-msgid "R1 Key Holder"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:58
-msgid "RFC3947 NAT-T mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:255
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:587
-msgid "RTS/CTS Threshold"
-msgstr "RTS/CTS門檻"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:16
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:36
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:87
-msgid "RX"
-msgstr "接收"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "RX Rate"
-msgstr "接收速率"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:744
-msgid "Radius-Accounting-Port"
-msgstr "Radius-驗証帳號-埠"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:752
-msgid "Radius-Accounting-Secret"
-msgstr "Radius-合法帳號-密碼"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:736
-msgid "Radius-Accounting-Server"
-msgstr "Radius-合法帳號-伺服器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:720
-msgid "Radius-Authentication-Port"
-msgstr "Radius-驗証-埠"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:728
-msgid "Radius-Authentication-Secret"
-msgstr "Radius-驗証-密碼"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:712
-msgid "Radius-Authentication-Server"
-msgstr "Radius-驗証-伺服器"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:119
-msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:37
-msgid ""
-"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-Server"
-msgstr ""
-" 讀取<code>/etc/ethers</code> 以便設置<abbr title=\"Dynamic Host "
-"Configuration Protocol\">DHCP</abbr>-伺服器"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:8
-msgid ""
-"Really delete this interface? The deletion cannot be undone! You might lose "
-"access to this device if you are connected via this interface"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2
-msgid ""
-"Really delete this wireless network? The deletion cannot be undone! You "
-"might lose access to this device if you are connected via this network."
-msgstr ""
-"真的要刪除這個無線網路?無法復元的刪除!\n"
-"假如您是透過這個網路連線您可能會無法存取這個設備."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:40
-msgid "Really reset all changes?"
-msgstr "確定要重置回復原廠?"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:237
-msgid "Really switch protocol?"
-msgstr "確定要更換協定?"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:310
-msgid "Realtime Connections"
-msgstr "即時連線"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:19
-msgid "Realtime Graphs"
-msgstr "即時圖表"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:244
-msgid "Realtime Load"
-msgstr "即時負載"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:273
-msgid "Realtime Traffic"
-msgstr "即時流量"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:316
-msgid "Realtime Wireless"
-msgstr "即時無線網路"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:886
-msgid "Reassociation Deadline"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:149
-msgid "Rebind protection"
-msgstr "重新綁護"
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:47
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:9
-msgid "Reboot"
-msgstr "重開機"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:9
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "Rebooting..."
-msgstr "重開中..."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:11
-msgid "Reboots the operating system of your device"
-msgstr "重啟您設備的作業系統"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:120
-msgid "Receive"
-msgstr "接收"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:324
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:349
-msgid "Receiver Antenna"
-msgstr "接收天線"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:42
-msgid "Recommended. IP addresses of the WireGuard interface."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:32
-msgid "Reconnect this interface"
-msgstr "重新連接這個介面"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
-msgid "References"
-msgstr "引用"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:153
-msgid "Relay"
-msgstr "延遲"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:157
-msgid "Relay Bridge"
-msgstr "橋接延遲"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:17
-msgid "Relay between networks"
-msgstr "網路間的延遲"
-
-#: protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua:12
-msgid "Relay bridge"
-msgstr "橋接延遲"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:18
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:18
-msgid "Remote IPv4 address"
-msgstr "遠端IPv4位址"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid "Remote IPv4 address or FQDN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:45
-msgid "Remove"
-msgstr "移除"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:53
-msgid "Repeat scan"
-msgstr "再次掃描"
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:11
-msgid "Replace entry"
-msgstr "替代項目"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:51
-msgid "Replace wireless configuration"
-msgstr "替代性無線設定"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:8
-msgid "Request IPv6-address"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:16
-msgid "Request IPv6-prefix of length"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1096
-msgid "Required"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:20
-msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "對特定的ISP需要,例如.DOCSIS 3 加速有線電視寬頻網路"
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:19
-msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:113
-msgid "Required. Base64-encoded public key of peer."
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:136
-msgid ""
-"Required. IP addresses and prefixes that this peer is allowed to use inside "
-"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
-"routes through the tunnel."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1089
-msgid ""
-"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
-"<br />(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:95
-msgid ""
-"Requires upstream supports DNSSEC; verify unsigned domain responses really "
-"come from unsigned domains"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:30
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:66
-#: modules/luci-base/luasrc/view/sysauth.htm:39
-msgid "Reset"
-msgstr "重置"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:62
-msgid "Reset Counters"
-msgstr "重置計數器"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:38
-msgid "Reset to defaults"
-msgstr "回復預設值"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:20
-msgid "Resolv and Hosts Files"
-msgstr "解析和Hosts檔案"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:49
-msgid "Resolve file"
-msgstr "解析檔"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:28
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:67
-msgid "Restart"
-msgstr "重啟"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:63
-msgid "Restart Firewall"
-msgstr "重啟防火牆"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:14
-msgid "Restart radio interface"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:31
-msgid "Restore"
-msgstr "還原"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:47
-msgid "Restore backup"
-msgstr "還原之前備份設定"
-
-#: modules/luci-base/luasrc/view/cbi/value.htm:24
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:25
-msgid "Reveal/hide password"
-msgstr "明示/隱藏 密碼"
-
-#: modules/luci-base/luasrc/controller/admin/uci.lua:13
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:41
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:16
-msgid "Revert"
-msgstr "回溯"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:47
-msgid "Revert changes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:166
-msgid "Revert request failed with status <code>%h</code>"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:152
-msgid "Reverting configuration…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:217
-msgid "Root"
-msgstr "根"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:230
-msgid "Root directory for files served via TFTP"
-msgstr "透過TFTP存取根目錄檔案"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:109
-msgid "Root preparation"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:147
-msgid "Route Allowed IPs"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:46
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:88
-msgid "Route type"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:523
-msgid "Router Advertisement-Service"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:6
-msgid "Router Password"
-msgstr "路由器密碼"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:8
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:14
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:37
-msgid "Routes"
-msgstr "路由"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:9
-msgid ""
-"Routes specify over which interface and gateway a certain host or network "
-"can be reached."
-msgstr "路由器指定介面導出到特定主機或者能夠到達的網路."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
-msgid "Rule"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:155
-msgid "Run a filesystem check before mounting the device"
-msgstr "掛載這個設備前先跑系統檢查"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:154
-msgid "Run filesystem check"
-msgstr "執行系統檢查"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
-msgid "SHA256"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-msgid "SNR"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:18
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:5
-msgid "SSH Access"
-msgstr "SSH存取"
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:10
-msgid "SSH server address"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:13
-msgid "SSH server port"
-msgstr ""
-
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:8
-msgid "SSH username"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:19
-#: modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm:27
-msgid "SSH-Keys"
-msgstr "SSH-金鑰"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:42
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:73
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:29
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:155
-msgid "SSID"
-msgstr "基地台服務設定識別碼SSID"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
-msgid "SWAP"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:17
-#: modules/luci-base/luasrc/view/cbi/footer.htm:26
-#: modules/luci-base/luasrc/view/cbi/header.htm:17
-#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:32
-msgid "Save"
-msgstr "保存"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:36
-#: modules/luci-base/luasrc/view/cbi/footer.htm:22
-msgid "Save & Apply"
-msgstr "保存並啟用"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
-msgid "Save mtdblock"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
-msgid "Save mtdblock contents"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:120
-msgid "Saving keys…"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:15
-msgid "Scan"
-msgstr "掃描"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:109
-msgid "Scan request failed"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:24
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:8
-msgid "Scheduled Tasks"
-msgstr "排程任務"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:10
-msgid "Section added"
-msgstr "新增的區段"
-
-#: modules/luci-base/luasrc/view/admin_uci/changelog.htm:11
-msgid "Section removed"
-msgstr "區段移除"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
-msgid "See \"mount\" manpage for details"
-msgstr "查看\"mount\"主頁獲取進階資訊"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:119
-msgid ""
-"Select 'Force upgrade' to flash the image even if the image format check "
-"fails. Use only if you are sure that the firmware is correct and meant for "
-"your device!"
-msgstr ""
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:96
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:90
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:69
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:92
-msgid ""
-"Send LCP echo requests at the given interval in seconds, only effective in "
-"conjunction with failure threshold"
-msgstr "傳送LCP呼叫請求在這個給予的秒數間隔內, 僅影響關聯到失敗門檻"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:551
-msgid "Separate Clients"
-msgstr "分隔用戶端"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:15
-msgid "Server Settings"
-msgstr "伺服器設定值"
-
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:26
-msgid "Service Name"
-msgstr "服務名稱"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:25
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:30
-msgid "Service Type"
-msgstr "服務型態"
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:55
-msgid "Services"
-msgstr "各服務"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:37
-msgid "Session expired"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:83
-msgid "Set VPN as Default Route"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:258
-msgid ""
-"Set interface properties regardless of the link carrier (If set, carrier "
-"sense events do not invoke hotplug handlers)."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:229
-#, fuzzy
-msgid "Set up Time Synchronization"
-msgstr "安裝校時同步"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:55
-msgid "Setting PLMN failed"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:68
-msgid "Setting operation mode failed"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:454
-msgid "Setup DHCP Server"
-msgstr "安裝DHCP伺服器"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:111
-msgid "Severely Errored Seconds (SES)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:31
-msgid "Short GI"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:506
-msgid "Short Preamble"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
-msgid "Show current backup file list"
-msgstr "顯示現今的備份檔清單"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
-msgid "Show empty chains"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-msgid "Shutdown this interface"
-msgstr "關閉這個介面"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:111
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:28
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:154
-msgid "Signal"
-msgstr "信號"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:106
-msgid "Signal Attenuation (SATN)"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:330
-msgid "Signal:"
-msgstr "信號:"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:30
-msgid "Size"
-msgstr "大小"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:219
-msgid "Size of DNS query cache"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "Size of the ZRam device in megabytes"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/footer.htm:18
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
-msgid "Skip"
-msgstr "跳過"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:110
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:213
-msgid "Skip to content"
-msgstr "跳到內容"
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:109
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:212
-msgid "Skip to navigation"
-msgstr "跳到導覽"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:334
-msgid "Slot time"
-msgstr "插槽時間"
-
-#: modules/luci-base/luasrc/model/network.lua:1417
-msgid "Software VLAN"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/header.htm:2
-msgid "Some fields are invalid, cannot save values!"
-msgstr "有些欄位失效, 無法儲存數值!"
-
-#: modules/luci-base/luasrc/view/error404.htm:9
-msgid "Sorry, the object you requested was not found."
-msgstr "抱歉, 您請求的這物件尚無發現."
-
-#: modules/luci-base/luasrc/view/error500.htm:9
-msgid "Sorry, the server encountered an unexpected error."
-msgstr "抱歉, 伺服器遭遇非預期的錯誤."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:133
-msgid ""
-"Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the wiki for device specific install "
-"instructions."
-msgstr ""
-"抱歉, 沒有sysupgrade支援出現, 新版韌體映像檔必須手動更新. 請回歸wiki找尋特定"
-"設備安裝指引."
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:360
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
-msgid "Source"
-msgstr "來源"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
-msgid "Specifies the directory the device is attached to"
-msgstr "指定這個設備被附掛到那個目錄"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:23
-msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "指定這個 <em>Dropbear</em>真實聆聽埠"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:57
-msgid ""
-"Specifies the maximum amount of failed ARP requests until hosts are presumed "
-"to be dead"
-msgstr "指定失敗ARP可請求的最大數量直到駭客主機死亡為止"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:49
-msgid ""
-"Specifies the maximum amount of seconds after which hosts are presumed to be "
-"dead"
-msgstr "指定可請求的最大秒數直到駭客主機死亡為止"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:30
-msgid "Specify a TOS (Type of Service)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:25
-msgid ""
-"Specify a TTL (Time to Live) for the encapsulating packet other than the "
-"default (64)."
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:20
-msgid ""
-"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
-"bytes)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:60
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:69
-msgid "Specify the secret encryption key here."
-msgstr "指定加密金鑰在此."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:475
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:61
-msgid "Start"
-msgstr "啟用"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:32
-msgid "Start priority"
-msgstr "啟用優先權順序"
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:125
-msgid "Starting configuration apply…"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:105
-msgid "Starting wireless scan..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:23
-msgid "Startup"
-msgstr "啟動"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:12
-msgid "Static IPv4 Routes"
-msgstr "靜態IPv4路由"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:59
-msgid "Static IPv6 Routes"
-msgstr "靜態IPv6路由"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:269
-msgid "Static Leases"
-msgstr "靜態租約"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:118
-msgid "Static Routes"
-msgstr "靜態路由"
-
-#: modules/luci-base/luasrc/model/network.lua:960
-msgid "Static address"
-msgstr "靜態位址"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:270
-msgid ""
-"Static leases are used to assign fixed IP addresses and symbolic hostnames "
-"to DHCP clients. They are also required for non-dynamic interface "
-"configurations where only hosts with a corresponding lease are served."
-msgstr ""
-"靜態租約是用來指定固定的IP位址和表示的主機名稱給予DHCP用戶端. 它們也需要非動"
-"態介面設定值以便獲取相應租約的主機服務."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "Station inactivity limit"
-msgstr ""
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:40
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:145
-#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:129
-msgid "Status"
-msgstr "狀態"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm:35
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:71
-msgid "Stop"
-msgstr "停止"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:121
-msgid "Strict order"
-msgstr "嚴謹順序"
-
-#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
-msgid "Submit"
-msgstr "提交"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:63
-msgid "Suppress logging"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:64
-msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:24
-msgid "Swap"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:29
-msgid "Swap Entry"
-msgstr "Swap交換頁項目"
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:23
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid "Switch"
-msgstr "交換器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:127
-msgid "Switch %q"
-msgstr "交換器 %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:126
-msgid "Switch %q (%s)"
-msgstr "交換器 %q (%s)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:64
-msgid ""
-"Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:185
-msgid "Switch Port Mask"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:1415
-msgid "Switch VLAN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:238
-msgid "Switch protocol"
-msgstr "切換協定"
-
-#: modules/luci-base/luasrc/view/cbi/ipaddr.htm:26
-msgid "Switch to CIDR list notation"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:64
-msgid "Switchport activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:25
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:34
-msgid "Sync with browser"
-msgstr "同步瀏覽器"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm:18
-msgid "Synchronizing..."
-msgstr "同步中..."
-
-#: modules/luci-base/luasrc/controller/admin/index.lua:47
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:14
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:10
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:14
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:39
-msgid "System"
-msgstr "系統"
-
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:15
-#: modules/luci-mod-status/luasrc/view/admin_status/syslog.htm:8
-msgid "System Log"
-msgstr "系統日誌"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:18
-msgid "System Properties"
-msgstr "系統屬性"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:70
-msgid "System log buffer size"
-msgstr "系統日誌緩衝大小"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:333
-msgid "TCP:"
-msgstr "TCP:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:21
-msgid "TFTP Settings"
-msgstr "TFTP設定"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:229
-msgid "TFTP server root"
-msgstr "TFTP 伺服器根"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:17
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:37
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:88
-msgid "TX"
-msgstr "傳送"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:112
-msgid "TX Rate"
-msgstr "傳送速度"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:8
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:77
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:105
-msgid "Table"
-msgstr "表格"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:21
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:68
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:57
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:102
-msgid "Target"
-msgstr "目標"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:77
-msgid "Target network"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:22
-msgid "Terminate"
-msgstr "中斷"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:27
-#, fuzzy
-msgid ""
-"The <em>Device Configuration</em> section covers physical settings of the "
-"radio hardware such as channel, transmit power or antenna selection which "
-"are shared among all defined wireless networks (if the radio hardware is "
-"multi-SSID capable). Per network settings like encryption or operation mode "
-"are grouped in the <em>Interface Configuration</em>."
-msgstr ""
-"這個<em>Device Configuration</em>欄位會覆蓋無線射頻硬體的物理設定值,如通道、"
-"傳送功率或者天線分享道所有定義的無線網路(假如這個無線射頻硬體是多工-SSID能力"
-"的). 每個網路設定像加密或操作模式是被分群在<em>Interface Configuration</em>"
-"中."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:79
-msgid ""
-"The <em>libiwinfo-lua</em> package is not installed. You must install this "
-"component for working wireless configuration!"
-msgstr ""
-"這 <em>libiwinfo-lua</em> 軟體包尚未安裝. 您必須安裝這個元件以便無線網路設定"
-"有作用."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:66
-msgid ""
-"The HE.net endpoint update configuration changed, you must now use the plain "
-"username instead of the user ID!"
-msgstr ""
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:8
-msgid ""
-"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:27
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:38
-msgid ""
-"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr "指定到這供應商的IPv6字首, 通常用 <code>::</code>結尾"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:18
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:77
-msgid ""
-"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
-"code> and <code>_</code>"
-msgstr ""
-"所允許的字元是: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> and "
-"<code>_</code>"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:59
-msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/error.htm:6
-msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:44
-msgid ""
-"The device could not be reached within %d seconds after applying the pending "
-"changes, which caused the configuration to be rolled back for safety "
-"reasons. If you believe that the configuration changes are correct "
-"nonetheless, proceed by applying anyway. Alternatively, you can dismiss this "
-"warning and edit changes before attempting to apply again, or revert all "
-"pending changes to keep the currently working configuration state."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:87
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:41
-msgid ""
-"The device file of the memory or partition (<abbr title=\"for example\">e.g."
-"</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"記憶體的設備檔或者分割區 (<abbr title=\"for example\">e.g.</abbr> <code>/dev/"
-"sda1</code>)"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:127
-msgid ""
-"The filesystem that was used to format the memory (<abbr title=\"for example"
-"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
-"samp>)"
-msgstr ""
-"這檔案系統適用來格式化記憶體(<abbr title=\"for example\">例.如.</abbr> "
-"<samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></samp>)"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:11
-msgid ""
-"The flash image was uploaded. Below is the checksum and file size listed, "
-"compare them with the original file to ensure data integrity.<br /> Click "
-"\"Proceed\" below to start the flash procedure."
-msgstr ""
-"要刷的映像檔已上傳.下面是這個校驗碼和檔案大小詳列, 用原始檔比對它門以確保資料"
-"完整性.<br />按下面的\"繼續\"便可以開啟更新流程."
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:19
-msgid "The following changes have been reverted"
-msgstr "接下來的修改已經被回復"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:38
-msgid "The following rules are currently active on this system."
-msgstr "以下的規則現正作用在系統中."
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:144
-msgid "The given SSH public key has already been added."
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:150
-msgid ""
-"The given SSH public key is invalid. Please supply proper public RSA or "
-"ECDSA keys."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:67
-msgid "The given network name is not unique"
-msgstr "輸入的網路名稱非獨一"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:52
-#, fuzzy
-msgid ""
-"The hardware is not multi-SSID capable and the existing configuration will "
-"be replaced if you proceed."
-msgstr "如果您繼續的話.這硬體並非多SSID工能並且已存的設定將會被覆蓋."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:43
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:31
-msgid ""
-"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
-"addresses."
-msgstr "這IPv4開頭以位元計的長度, 剩餘部分將會延用在IPv6位址中."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:46
-msgid "The length of the IPv6 prefix in bits"
-msgstr "這IPv6開頭以位元計的長度"
-
-#: protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua:12
-msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:5
-msgid ""
-"The network ports on this device can be combined to several <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-"communicate directly with each other. <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>s are often used to separate different network "
-"segments. Often there is by default one Uplink port for a connection to the "
-"next greater network like the internet and other ports for a local network."
-msgstr ""
-"這設備的網路埠可以被組合到數個 <abbr title=\"Virtual Local Area Network"
-"\">VLAN</abbr>群, 以便在內的電腦可以直接跟別人互通. <abbr title=\"Virtual "
-"Local Area Network\">VLAN</abbr>群經常用來分割網路區段. 預設經常會有一個上傳"
-"埠來連接到下一個大型網路類似Intenet而其它埠則用來本地區網使用."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:77
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:395
-msgid "The selected protocol needs a device assigned"
-msgstr "選到的協定需要指定到設備上"
-
-#: modules/luci-base/luasrc/view/csrftoken.htm:11
-msgid "The submitted security token is invalid or already expired!"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:265
-msgid ""
-"The system is erasing the configuration partition now and will reboot itself "
-"when finished."
-msgstr "系統正在刪除設定分割並且當完成時將自行重開."
-
-#: modules/luci-mod-system/luasrc/controller/admin/system.lua:186
-#, fuzzy
-msgid ""
-"The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
-"few minutes before you try to reconnect. It might be necessary to renew the "
-"address of your computer to reach the device again, depending on your "
-"settings."
-msgstr ""
-"系統現正刷機中.<br /> 請勿關閉設備!<br />  等待數分鐘直到您重新在連線. 可能需"
-"要更新您電腦的位址以便再連設備, 端看您的設定. "
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:15
-msgid "The system password has been successfully changed."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:118
-msgid ""
-"The uploaded image file does not contain a supported format. Make sure that "
-"you choose the generic image format for your platform."
-msgstr ""
-"以上傳的映像檔不包含支援格式. 請確認您選擇的是針對您的平台採用的通用映像檔."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:157
-msgid "Theme"
-msgstr "設計規劃"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:29
-#: modules/luci-base/luasrc/view/lease_status.htm:61
-msgid "There are no active leases."
-msgstr "租賃尚未啟動."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:135
-msgid "There are no changes to apply."
-msgstr ""
-
-#: modules/luci-base/luasrc/view/admin_uci/revert.htm:22
-msgid "There are no pending changes to revert!"
-msgstr "尚無聽候的修改被復元!"
-
-#: modules/luci-base/luasrc/view/admin_uci/changes.htm:21
-msgid "There are no pending changes!"
-msgstr "無聽候的修改!"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
-msgid ""
-"There is no device assigned yet, please attach a network device in the "
-"\"Physical Settings\" tab"
-msgstr "尚未指定設備, 請接上一個網路設備在這\"實體設置\"標籤內"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:196
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:104
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:233
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:260
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:287
-msgid ""
-"There is no password set on this router. Please configure a root password to "
-"protect the web interface and enable SSH."
-msgstr "路由器尚未設密碼. 請設定root密碼以便保護web介面及啟用SSH."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:19
-msgid "This IPv4 address of the relay"
-msgstr "IPv4位址的轉驛"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:117
-msgid ""
-"This file may contain lines like 'server=/domain/1.2.3.4' or "
-"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
-"Name System\">DNS</abbr> servers."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
-msgid ""
-"This is a list of shell glob patterns for matching files and directories to "
-"include during sysupgrade. Modified files in /etc/config/ and certain other "
-"configurations are automatically preserved."
-msgstr ""
-"這是shell通用模式清單用來在系統更新時匹配包括的檔案和目錄. 在/etc/config/ 修"
-"改檔案和特定其它設定檔將會被自動保留."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:74
-msgid ""
-"This is either the \"Update Key\" configured for the tunnel or the account "
-"password if no update key has been configured"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:78
-msgid ""
-"This is the content of /etc/rc.local. Insert your own commands here (in "
-"front of 'exit 0') to execute them at the end of the boot process."
-msgstr ""
-"這是 /etc/rc.local 內容. 在這插入自己的指令 (在 'exit 0' 前面)以便在開機流程"
-"結尾執行它們."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:27
-msgid ""
-"This is the local endpoint address assigned by the tunnel broker, it usually "
-"ends with <code>...:2/64</code>"
-msgstr "這是由通道代理人指定的本地終端位址, 通常用 <code>...:2/64</code>結尾."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:31
-msgid ""
-"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr> in the local network"
-msgstr ""
-"在本地網路中 這是唯一的 <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:61
-msgid "This is the plain username for logging into the account"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:34
-msgid ""
-"This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua:9
-msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr "這是系統預設的例行性工作排程."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:19
-msgid ""
-"This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr "這是由通道代理人操作的近端PoP通用位址"
-
-#: modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua:5
-msgid ""
-"This list gives an overview over currently running system processes and "
-"their status."
-msgstr "這清單提供目前正在執行的系統的執行緒和狀態的預覽."
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:312
-msgid "This page gives an overview over currently active network connections."
-msgstr "這一頁提供目前正在活動中網路連線的預覽."
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:172
-#: modules/luci-base/luasrc/view/cbi/tsection.htm:27
-msgid "This section contains no values yet"
-msgstr "這部分尚未有任何數值."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:223
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:234
-msgid "Time Synchronization"
-msgstr "校時同步"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:228
-msgid "Time Synchronization is not configured yet."
-msgstr "校時同步尚未設定."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-msgid "Time interval for rekeying GTK"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:45
-msgid "Timezone"
-msgstr "時區"
-
-#: modules/luci-base/htdocs/luci-static/resources/xhr.js:47
-msgid "To login…"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:32
-msgid ""
-"To restore configuration files, you can upload a previously generated backup "
-"archive here. To reset the firmware to its initial state, click \"Perform "
-"reset\" (only possible with squashfs images)."
-msgstr ""
-"要復元設定檔, 可以上傳之前製作的備份壓縮檔放這. 要重置回復出廠值,按下\"執行還"
-"原\"(可能只對squashfs影像檔有效)"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:112
-msgid "Tone"
-msgstr ""
-
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:16
-#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:27
-msgid "Total Available"
-msgstr "全部可用"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:92
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:94
-msgid "Traceroute"
-msgstr "路由追蹤"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:24
-msgid "Traffic"
-msgstr "流量"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:362
-msgid "Transfer"
-msgstr "傳輸"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:585
-msgid "Transmission Rate"
-msgstr "傳輸速率"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:119
-msgid "Transmit"
-msgstr "射頻"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:210
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:272
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:344
-msgid "Transmit Power"
-msgstr "射頻功率"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:317
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:348
-msgid "Transmitter Antenna"
-msgstr "射頻天線"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:43
-msgid "Trigger"
-msgstr "觸發"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:115
-msgid "Trigger Mode"
-msgstr "觸發模式"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:54
-msgid "Tunnel ID"
-msgstr "通道ID"
-
-#: modules/luci-base/luasrc/model/network.lua:1420
-msgid "Tunnel Interface"
-msgstr "通道介面"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:11
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:26
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:61
-msgid "Tunnel Link"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-msgid "Tx-Power"
-msgstr "傳送-功率"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:32
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:166
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:11
-msgid "Type"
-msgstr "型態"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/connections.htm:323
-msgid "UDP:"
-msgstr "UDP:"
-
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:28
-msgid "UMTS only"
-msgstr "只用3G UMTS"
-
-#: protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua:10
-msgid "UMTS/GPRS/EV-DO"
-msgstr "UMTS/GPRS/EV-DO"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:123
-msgid "USB Device"
-msgstr "USB設備"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:144
-msgid "USB Ports"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:56
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua:47
-msgid "UUID"
-msgstr "設備通用唯一識別碼UUID"
-
-#: modules/luci-base/luasrc/model/network.lua:34
-#: modules/luci-base/luasrc/model/network.lua:35
-msgid "Unable to determine device name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:36
-msgid "Unable to determine external IP address"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:37
-msgid "Unable to determine upstream interface"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/error404.htm:10
-msgid "Unable to dispatch"
-msgstr "無法發送"
-
-#: protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua:54
-msgid "Unable to obtain client ID"
-msgstr ""
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:61
-msgid "Unable to resolve AFTR host name"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:38
-msgid "Unable to resolve peer host name"
-msgstr ""
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:113
-msgid "Unavailable Seconds (UAS)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:964
-msgid "Unknown"
-msgstr "未知"
-
-#: modules/luci-base/luasrc/model/network.lua:1131
-msgid "Unknown error (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/network.lua:958
-msgid "Unmanaged"
-msgstr "非託管"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:119
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:125
-msgid "Unmount"
-msgstr ""
-
-#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:107
-msgid "Unnamed key"
-msgstr ""
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:148
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:209
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:172
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:141
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:189
-msgid "Unsaved Changes"
-msgstr "尚未存檔的修改"
-
-#: protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua:64
-msgid "Unsupported MAP type"
-msgstr ""
-
-#: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:69
-msgid "Unsupported modem"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:118
-msgid "Unsupported protocol type."
-msgstr "不支援的協定型態"
-
-#: modules/luci-base/luasrc/view/cbi/tblsection.htm:151
-msgid "Up"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:103
-msgid ""
-"Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires a "
-"compatible firmware image)."
-msgstr ""
-"上傳一個sysupgrade-相容的映像檔在這以便替代正執行中的韌體. 勾選\"保持設定\"以"
-"保留目前設定值(必須要是OpenWrt相容性韌體映像檔)."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:51
-msgid "Upload archive..."
-msgstr "上傳壓縮檔..."
-
-#: modules/luci-base/luasrc/view/cbi/upload.htm:8
-msgid "Uploaded File"
-msgstr "檔案已上傳"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js:14
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:85
-#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:26
-msgid "Uptime"
-msgstr "上傳花費時間"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:36
-msgid "Use <code>/etc/ethers</code>"
-msgstr "採用 <code>/etc/ethers</code>"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:40
-msgid "Use DHCP gateway"
-msgstr "使用DHCP的匝道器"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:33
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:85
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:34
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:94
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:46
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:65
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:59
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:38
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:58
-msgid "Use DNS servers advertised by peer"
-msgstr "使用終端發布的DNS伺服器"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:226
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:232
-msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "使用Use ISO/IEC 3166 alpha2 國碼."
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:31
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:100
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:35
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:51
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:86
-msgid "Use MTU on tunnel interface"
-msgstr "在通道介面上使用的MTU數值"
-
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:95
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:65
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:30
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:46
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:81
-msgid "Use TTL on tunnel interface"
-msgstr "在通道介面上使用的TTL存活時間"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:106
-msgid "Use as external overlay (/overlay)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:105
-msgid "Use as root filesystem (/)"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:19
-msgid "Use broadcast flag"
-msgstr "當作廣播旗標"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:253
-msgid "Use builtin IPv6-management"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:40
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:109
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:92
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:45
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:101
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:53
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:72
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:66
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:45
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:65
-msgid "Use custom DNS servers"
-msgstr "使用自定的DNS伺服器"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:26
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:70
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:16
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:28
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:80
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:24
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:50
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:44
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:23
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:43
-msgid "Use default gateway"
-msgstr "使用預設匝道器"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:48
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:164
-#: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:77
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua:24
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua:88
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:58
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua:23
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua:39
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:74
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:86
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:31
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua:38
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua:57
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:51
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:30
-#: protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua:50
-msgid "Use gateway metric"
-msgstr "使用匝道器公測數"
-
-#: protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua:64
-msgid "Use routing table"
-msgstr "使用路由表"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:273
-msgid ""
-"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
-"em> identifies the host, the <em>IPv4-Address</em> specifies the fixed "
-"address to use, and the <em>Hostname</em> is assigned as a symbolic name to "
-"the requesting host. The optional <em>Lease time</em> can be used to set non-"
-"standard host-specific lease time, e.g. 12h, 3d or infinite."
-msgstr ""
-"使用 <em>Add</em> 鍵以便新增一個租賃的項目. 這個 <em>MAC-Address</em> 標誌這"
-"個主機, the <em>IPv4-Address</em> 指定固定位址以便使用,<em>Hostname</em> 備指"
-"定當作象徵名稱到請求的主機上."
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:111
-msgid "Used"
-msgstr "已使用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:807
-msgid "Used Key Slot"
-msgstr "已使用的關鍵插槽"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:868
-msgid ""
-"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
-"needed with normal WPA(2)-PSK."
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:48
-msgid "User certificate (PEM encoded)"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:61
-msgid "User key (PEM encoded)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/sysauth.htm:23
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:41
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:32
-msgid "Username"
-msgstr "用戶名稱"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:182
-msgid "VC-Mux"
-msgstr "虛擬電路多工器VC-Mux"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:128
-msgid "VDSL"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:170
-msgid "VLANs on %q"
-msgstr "VLAN 在 %q"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:169
-msgid "VLANs on %q (%s)"
-msgstr "VLAN 在 %q (%s)"
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:18
-msgid "VPN Local address"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:22
-msgid "VPN Local port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:15
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua:11
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:15
-msgid "VPN Server"
-msgstr "VPN伺服器"
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:18
-msgid "VPN Server port"
-msgstr ""
-
-#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:37
-msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua:9
-msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:44
-msgid "Vendor"
-msgstr ""
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_dhcp.lua:60
-msgid "Vendor Class to send when requesting DHCP"
-msgstr "當請求DHCP封包時要傳送的製造商類別碼"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:9
-msgid "Verify"
-msgstr "確認"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:76
-msgid "Virtual dynamic interface"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:460
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:461
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:543
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:566
-msgid "WDS"
-msgstr "無線分散系統WDS"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:657
-msgid "WEP Open System"
-msgstr "WEP 開放系統"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:658
-msgid "WEP Shared Key"
-msgstr "WEP 共享金鑰"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:59
-msgid "WEP passphrase"
-msgstr "WEP通關密碼"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:493
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:556
-msgid "WMM Mode"
-msgstr "無線多媒體機制"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:68
-msgid "WPA passphrase"
-msgstr "WPA 密碼"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:684
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:696
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:701
-msgid ""
-"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
-"and ad-hoc mode) to be installed."
-msgstr ""
-"WPA-加密需要 wpa_supplican(終端模式)或者hostapd熱點(對AP或者是 ad-hoc模式)已"
-"被安裝."
-
-#: modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm:46
-msgid "Waiting for changes to be applied..."
-msgstr "等待修改被啟用..."
-
-#: modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm:34
-msgid "Waiting for command to complete..."
-msgstr "等待完整性指令..."
-
-#: modules/luci-base/luasrc/view/cbi/apply_widget.htm:109
-msgid "Waiting for configuration to be applied… %ds"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:56
-msgid "Waiting for device..."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:97
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:107
-msgid "Warning"
-msgstr "警告"
-
-#: modules/luci-mod-system/luasrc/view/admin_system/reboot.htm:14
-msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:901
-msgid ""
-"When using a PSK, the PMK can be automatically generated. When enabled, the "
-"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
-"key options."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:74
-msgid "Wi-Fi activity (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:70
-msgid "Wi-Fi client association (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:66
-msgid "Wi-Fi data reception (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:68
-msgid "Wi-Fi data transmission (%s)"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua:72
-msgid "Wi-Fi on (%s)"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/wireless_modefreq.htm:161
-msgid "Width"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua:9
-msgid "WireGuard VPN"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/controller/admin/network.lua:58
-#: modules/luci-mod-status/luasrc/controller/admin/status.lua:28
-#: modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm:14
-msgid "Wireless"
-msgstr "無線網路"
-
-#: modules/luci-base/luasrc/model/network.lua:1408
-msgid "Wireless Adapter"
-msgstr "無線網卡"
-
-#: modules/luci-base/luasrc/model/network.lua:1394
-#: modules/luci-base/luasrc/model/network.lua:1855
-msgid "Wireless Network"
-msgstr "無線網路"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:68
-msgid "Wireless Overview"
-msgstr "無線預覽"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:361
-msgid "Wireless Security"
-msgstr "無線安全"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm:30
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is disabled"
-msgstr "無線被關閉"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:54
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:160
-msgid "Wireless is not associated"
-msgstr "無線未關聯"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:15
-msgid "Wireless is restarting..."
-msgstr "無線重啟中..."
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:126
-msgid "Wireless network is disabled"
-msgstr "無線網路已經被關閉"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:130
-msgid "Wireless network is enabled"
-msgstr "無線網路已啟用"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:138
-msgid "Write received DNS requests to syslog"
-msgstr "寫入已接收的DNS請求到系統日誌中"
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:89
-msgid "Write system log to file"
-msgstr ""
-
-#: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:85
-msgid "Yes"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua:25
-msgid ""
-"You can enable or disable installed init scripts here. Changes will applied "
-"after a device reboot.<br /><strong>Warning: If you disable essential init "
-"scripts like \"network\", your device might become inaccessible!</strong>"
-msgstr ""
-"您可以開啟或關閉初始化指令在這. 修改將會在設備重開後被啟用. <br /><strong>警"
-"告: 假如您關閉必要的初始化腳本像\"網路\", 您的設備將可能無法存取!</strong>"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:206
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:221
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:243
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:253
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:299
-msgid ""
-"You must enable JavaScript in your browser or LuCI will not work properly."
-msgstr "在瀏覽器您必須啟用JavaScript否則LuCI無法正常運作."
-
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:97
-msgid ""
-"Your Internet Explorer is too old to display this page correctly. Please "
-"upgrade it to at least version 7 or use another browser like Firefox, Opera "
-"or Safari."
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:119
-msgid "ZRam Compression Algorithm"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:126
-msgid "ZRam Compression Streams"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:26
-msgid "ZRam Settings"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:114
-msgid "ZRam Size"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
-msgid "any"
-msgstr "任意"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:113
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:121
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:126
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:217
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:281
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:320
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:327
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:611
-#: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:37
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:22
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:29
-#: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua:121
-msgid "auto"
-msgstr "自動"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
-msgid "baseT"
-msgstr "baseT"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:187
-msgid "bridged"
-msgstr "已橋接"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:35
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:99
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:31
-msgid "create"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:69
-msgid "create:"
-msgstr "建立:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:264
-msgid "creates a bridge over specified interface(s)"
-msgstr "在指定的介面群上建立橋接"
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:24
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-msgid "dB"
-msgstr "dB"
-
-#: modules/luci-base/luasrc/view/wifi_assoclist.htm:77
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:34
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:35
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:46
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:47
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js:48
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:277
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:279
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:331
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:334
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:337
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:341
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:344
-#: modules/luci-mod-status/luasrc/view/admin_status/wireless.htm:347
-msgid "dBm"
-msgstr "dBm"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:450
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:577
-msgid "disable"
-msgstr "關閉"
-
-#: modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua:119
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:524
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:530
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:536
-#: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua:18
-msgid "disabled"
-msgstr ""
-
-#: modules/luci-base/luasrc/view/lease_status.htm:17
-#: modules/luci-base/luasrc/view/lease_status.htm:46
-msgid "expired"
-msgstr "過期"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:42
-msgid ""
-"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>-leases will be stored"
-msgstr ""
-"當給予<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>-租賃將"
-"會被存檔"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:61
-msgid "forward"
-msgstr "轉發"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "full-duplex"
-msgstr "全雙工"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:47
-msgid "half-duplex"
-msgstr "半雙工"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:621
-msgid "hexadecimal encoded value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
-msgid "hidden"
-msgstr "隱藏"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:527
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:533
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:538
-msgid "hybrid mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua:25
-msgid "if target is a network"
-msgstr "假如目標是某個網路"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "input"
-msgstr "輸入"
-
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:192
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:193
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:196
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:197
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:200
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:201
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:204
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:205
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:208
-#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:209
-msgid "kB"
-msgstr "kB"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:65
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kB/s"
-msgstr "kB/s"
-
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:74
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:288
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:291
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:294
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:298
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:301
-#: modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm:304
-msgid "kbit/s"
-msgstr "kbit/s"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:459
-msgid "key between 8 and 63 characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:471
-msgid "key with either 5 or 13 characters"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
-msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "本地<abbr title=\"Domain Name System\">DNS</abbr> 檔案"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:907
-msgid "minutes"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:43
-msgid "mixed WPA/WPA2"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:225
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "no"
-msgstr "無"
-
-#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:54
-msgid "no link"
-msgstr "無連線"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
-msgid "non-empty value"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:166
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:176
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:186
-msgid "not present"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:338
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:185
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:133
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:225
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:251
-msgid "off"
-msgstr "關閉"
-
-#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:184
-#: themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm:132
-#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:214
-#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:224
-#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:248
-msgid "on"
-msgstr "開啟"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:525
-msgid ""
-"one of:\n"
-" - %s"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "open"
-msgstr "打開"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:46
-msgid "output"
-msgstr ""
-
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:223
-msgid "overlay"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:305
-msgid "positive decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:297
-msgid "positive integer value"
-msgstr ""
-
-#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
-msgid "random"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:526
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:532
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:537
-msgid "relay mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:188
-msgid "routed"
-msgstr "路由"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:515
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:524
-msgid "sec"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
-msgid "server mode"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:544
-msgid "stateful-only"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:542
-msgid "stateless"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:543
-msgid "stateless + stateful"
-msgstr ""
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:344
-msgid "tagged"
-msgstr "標籤"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:887
-msgid "time units (TUs / 1.024 ms) [1000-65535]"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:611
-msgid "unique value"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:46
-msgid "unknown"
-msgstr "未知"
-
-#: modules/luci-base/luasrc/view/lease_status.htm:15
-#: modules/luci-base/luasrc/view/lease_status.htm:44
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:197
-msgid "unlimited"
-msgstr "無限"
-
-#: modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm:53
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:38
-msgid "unspecified"
-msgstr "尚未指定"
-
-#: modules/luci-base/luasrc/view/cbi/network_netlist.htm:71
-msgid "unspecified -or- create:"
-msgstr "尚未指定 - 或 -建立:"
-
-#: modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua:341
-msgid "untagged"
-msgstr "尚未標籤"
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:310
-msgid "valid IP address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:345
-msgid "valid IPv4 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
-msgid "valid IPv4 address or network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:438
-msgid "valid IPv4 address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:378
-msgid "valid IPv4 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:340
-msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:331
-msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:350
-msgid "valid IPv6 CIDR"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:326
-msgid "valid IPv6 address or prefix"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:368
-msgid "valid IPv6 host id"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:383
-msgid "valid IPv6 network"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
-msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:404
-msgid "valid MAC address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:475
-msgid "valid UCI identifier"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:426
-msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:447
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:450
-msgid "valid address:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:585
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
-msgid "valid date (YYYY-MM-DD)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:301
-msgid "valid decimal value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:469
-msgid "valid hexadecimal WEP key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:457
-msgid "valid hexadecimal WPA key"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:432
-msgid "valid host:port"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:419
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:421
-msgid "valid hostname"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:409
-msgid "valid hostname or IP address"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:293
-msgid "valid integer value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:373
-msgid "valid network in address/netmask notation"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:560
-msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:396
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:399
-msgid "valid port or port range (port1-port2)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:388
-msgid "valid port value"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:565
-msgid "valid time (HH:MM:SS)"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:494
-msgid "value between %d and %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:480
-msgid "value between %f and %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:484
-msgid "value greater or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:488
-msgid "value smaller or equal to %f"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:499
-msgid "value with at least %d characters"
-msgstr ""
-
-#: modules/luci-base/htdocs/luci-static/resources/cbi.js:504
-msgid "value with at most %d characters"
-msgstr ""
-
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:34
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221
-#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:232
-msgid "yes"
-msgstr "是的"
-
-#: modules/luci-base/luasrc/view/cbi/delegator.htm:20
-msgid "« Back"
-msgstr "« 倒退"
-
-#~ msgid ""
-#~ "Here you can paste public SSH-Keys (one per line) for SSH public-key "
-#~ "authentication."
-#~ msgstr "在這裡貼上公用SSH-Keys (每行一個)以便驗證"
-
-#~ msgid "Password successfully changed!"
-#~ msgstr "密碼已變更成功!"
-
-#~ msgid "Unknown Error, password not changed!"
-#~ msgstr "未知錯誤, 密碼尚未改變!"
-
-#~ msgid "Design"
-#~ msgstr "設計規劃"
-
-#~ msgid "Available packages"
-#~ msgstr "可用軟體包"
-
-#~ msgid "Displaying only packages containing"
-#~ msgstr "僅顯示內含的軟體"
-
-#~ msgid "Download and install package"
-#~ msgstr "下載並安裝軟體包"
-
-#~ msgid "Filter"
-#~ msgstr "過濾器"
-
-#~ msgid "Find package"
-#~ msgstr "搜尋軟體包"
-
-#~ msgid "Free space"
-#~ msgstr "剩餘空間"
-
-#~ msgid "Install"
-#~ msgstr "安裝"
-
-#~ msgid "Installed packages"
-#~ msgstr "安裝軟體包"
-
-#~ msgid "No package lists available"
-#~ msgstr "尚無列出的軟體包可運用"
-
-#~ msgid "OK"
-#~ msgstr "行"
-
-#~ msgid "OPKG-Configuration"
-#~ msgstr "OPKG-設定值"
-
-#~ msgid "Package lists are older than 24 hours"
-#~ msgstr "軟體包列表過期24小時"
-
-#~ msgid "Package name"
-#~ msgstr "軟體包名稱"
-
-#~ msgid "Software"
-#~ msgstr "軟體"
-
-#~ msgid "Update lists"
-#~ msgstr "上傳清單"
-
-#~ msgid "Version"
-#~ msgstr "版本"
-
-#~ msgid "none"
-#~ msgstr "無"
-
-#~ msgid "Disable DNS setup"
-#~ msgstr "關閉DNS設置"
-
-#~ msgid "IPv4 and IPv6"
-#~ msgstr "IPv4和IPv6"
-
-#~ msgid "IPv4 only"
-#~ msgstr "僅用IPv4"
-
-#~ msgid "IPv6 only"
-#~ msgstr "僅用IPv6"
-
-#~ msgid "Lease validity time"
-#~ msgstr "租賃有效時間"
-
-#~ msgid "Multicast address"
-#~ msgstr "多點群播位址"
-
-#~ msgid "Protocol family"
-#~ msgstr "協定家族"
-
-#~ msgid "No chains in this table"
-#~ msgstr "尚未綁在這個表格中"
-
-#~ msgid "Configuration files will be kept."
-#~ msgstr "設定檔將被存檔"
-
-#~ msgid "Note: Configuration files will be erased."
-#~ msgstr "注意:設定檔將被刪除."
-
-#~ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-#~ msgstr "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-
-#~ msgid "Activate this network"
-#~ msgstr "啟用此網路"
-
-#~ msgid "Hermes 802.11b Wireless Controller"
-#~ msgstr "Hermes 802.11b 無線網路控制器"
-
-#~ msgid "Interface is shutting down..."
-#~ msgstr "介面正在關閉中..."
-
-#~ msgid "Interface reconnected"
-#~ msgstr "介面已重連"
-
-#~ msgid "Interface shut down"
-#~ msgstr "介面關閉"
-
-#~ msgid "Prism2/2.5/3 802.11b Wireless Controller"
-#~ msgstr "Prism2/2.5/3 802.11b 無線控制器"
-
-#~ msgid "RaLink 802.11%s Wireless Controller"
-#~ msgstr "RaLink 802.11%s 無線控制器"
-
-#~ msgid ""
-#~ "Really shutdown interface \"%s\"? You might lose access to this device if "
-#~ "you are connected via this interface."
-#~ msgstr ""
-#~ "真的要關閉這個介面 \"%s\" ?!\n"
-#~ "假如您要透過這個介面連線您可能會無法存取這個設備."
-
-#~ msgid "Reconnecting interface"
-#~ msgstr "重連這個介面中"
-
-#~ msgid "Shutdown this network"
-#~ msgstr "關閉這個網路"
-
-#~ msgid "Wireless restarted"
-#~ msgstr "無線網路已重啟"
-
-#~ msgid "Wireless shut down"
-#~ msgstr "無線網路關閉"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "DHCP的釋放週期"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "DHCPv6版釋放時間週期"
-
-#~ msgid ""
-#~ "Really delete this interface? The deletion cannot be undone! You might "
-#~ "lose access to this device if you are connected via this interface."
-#~ msgstr ""
-#~ "真的要刪除這介面?無法復元刪除!\n"
-#~ "假如您要透過這個介面連線您可能會無法存取這個設備."
-
-#, fuzzy
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "真的要刪除這個網路 ?\n"
-#~ "假如您是透過這個介面連線您可能會無法存取這個設備."
-
-#~ msgid "Sort"
-#~ msgstr "分類"
-
-#~ msgid "help"
-#~ msgstr "幫助"
-
-#~ msgid "IPv4 WAN Status"
-#~ msgstr "IPv4寬頻連線狀態"
-
-#~ msgid "IPv6 WAN Status"
-#~ msgstr "IPv6寬頻連線狀態"
-
-#~ msgid "Apply"
-#~ msgstr "套用"
-
-#~ msgid "Applying changes"
-#~ msgstr "正在套用變更"
-
-#~ msgid "Configuration applied."
-#~ msgstr "啟用設定"
-
-#~ msgid "Save &#38; Apply"
-#~ msgstr "保存 &#38; 啟用"
-
-#~ msgid "The following changes have been committed"
-#~ msgstr "接下來的修改已經被承諾"
-
-#~ msgid "There are no pending changes to apply!"
-#~ msgstr "尚無聽候的修改被採用"
-
-#~ msgid "Action"
-#~ msgstr "動作"
-
-#~ msgid "Buttons"
-#~ msgstr "按鈕"
-
-#~ msgid "Handler"
-#~ msgstr "多執行緒"
-
-#~ msgid "Maximum hold time"
-#~ msgstr "可持有最長時間"
-
-#~ msgid "Minimum hold time"
-#~ msgstr "可持有的最低時間"
-
-#~ msgid "Path to executable which handles the button event"
-#~ msgstr "處理按鍵效果可執行檔路徑"
-
-#~ msgid "Specifies the button state to handle"
-#~ msgstr "指定這個按鈕狀態以便操作"
-
-#~ msgid "This page allows the configuration of custom button actions"
-#~ msgstr "這一頁允許客製化按鍵動作的設定"
-
-#~ msgid "Leasetime"
-#~ msgstr "租賃時間"
-
-#~ msgid "AR Support"
-#~ msgstr "AR支援"
-
-#~ msgid "Atheros 802.11%s Wireless Controller"
-#~ msgstr "Atheros 802.11%s 無線控制器"
-
-#~ msgid "Background Scan"
-#~ msgstr "背景搜尋"
-
-#~ msgid "Compression"
-#~ msgstr "壓縮"
-
-#~ msgid "Disable HW-Beacon timer"
-#~ msgstr "關閉硬體燈號計時器"
-
-#~ msgid "Do not send probe responses"
-#~ msgstr "不傳送探測回應"
-
-#~ msgid "Fast Frames"
-#~ msgstr "快速迅框群"
-
-#~ msgid "Maximum Rate"
-#~ msgstr "最快速度"
-
-#~ msgid "Minimum Rate"
-#~ msgstr "最低速度"
-
-#~ msgid "Multicast Rate"
-#~ msgstr "多點群播速度"
-
-#~ msgid "Outdoor Channels"
-#~ msgstr "室外通道"
-
-#~ msgid "Regulatory Domain"
-#~ msgstr "監管網域"
-
-#~ msgid "Separate WDS"
-#~ msgstr "分隔WDS中繼"
-
-#~ msgid "Static WDS"
-#~ msgstr "靜態WDS"
-
-#~ msgid "Turbo Mode"
-#~ msgstr "渦輪爆衝模式"
-
-#~ msgid "XR Support"
-#~ msgstr "支援XR無線陣列"
-
-#~ msgid "An additional network will be created if you leave this unchecked."
-#~ msgstr "取消選取將會另外建立一個新網路,而不會覆蓋目前的網路設定"
-
-#~ msgid "Join Network: Settings"
-#~ msgstr "加入網路的設定"
-
-#~ msgid "CPU"
-#~ msgstr "CPU"
-
-#~ msgid "Port %d"
-#~ msgstr "埠 %d"
-
-#~ msgid "Port %d is untagged in multiple VLANs!"
-#~ msgstr "埠 %d 尚未標記在多個VLANs中!"
-
-#~ msgid "VLAN Interface"
-#~ msgstr "VLAN介面"
diff --git a/package/luci/modules/luci-base/root/etc/config/luci b/package/luci/modules/luci-base/root/etc/config/luci
deleted file mode 100644 (file)
index 82c2230..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-config core main
-       option lang auto
-       option mediaurlbase /luci-static/bootstrap
-       option resourcebase /luci-static/resources
-       
-config extern flash_keep
-       option uci              "/etc/config/"
-       option dropbear "/etc/dropbear/"
-       option openvpn  "/etc/openvpn/"
-       option passwd   "/etc/passwd"
-       option opkg             "/etc/opkg.conf"
-       option firewall "/etc/firewall.user"
-       option uploads  "/lib/uci/upload/"
-       
-config internal languages
-       
-config internal sauth
-       option sessionpath "/tmp/luci-sessions"
-       option sessiontime 3600
-       
-config internal ccache
-       option enable 1
-               
-config internal themes
-
-config internal apply
-       option rollback 30
-       option holdoff 4
-       option timeout 5
-       option display 1.5
diff --git a/package/luci/modules/luci-base/root/etc/config/ucitrack b/package/luci/modules/luci-base/root/etc/config/ucitrack
deleted file mode 100644 (file)
index e639866..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-config network
-       option init network
-       list affects dhcp
-       list affects radvd
-
-config wireless
-       list affects network
-
-config firewall
-       option init firewall
-       list affects luci-splash
-       list affects qos
-       list affects miniupnpd
-
-config olsr
-       option init olsrd
-
-config dhcp
-       option init dnsmasq
-       list affects odhcpd
-
-config odhcpd
-       option init odhcpd
-
-config dropbear
-       option init dropbear
-
-config httpd
-       option init httpd
-
-config fstab
-       option exec '/sbin/block mount'
-
-config qos
-       option init qos
-
-config system
-       option init led
-       option exec '/etc/init.d/log reload'
-       list affects luci_statistics
-       list affects dhcp
-
-config luci_splash
-       option init luci_splash
-
-config upnpd
-       option init miniupnpd
-
-config ntpclient
-       option init ntpclient
-
-config samba
-       option init samba
-
-config tinyproxy
-       option init tinyproxy
diff --git a/package/luci/modules/luci-base/root/etc/init.d/ucitrack b/package/luci/modules/luci-base/root/etc/init.d/ucitrack
deleted file mode 100755 (executable)
index 27d34fa..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/sh /etc/rc.common
-
-START=80
-USE_PROCD=1
-
-register_init() {
-       local config="$1"
-       local init="$2"
-       shift; shift
-
-       if [ -x "$init" ] && "$init" enabled && ! grep -sqE 'USE_PROCD=.' "$init"; then
-               logger -t "ucitrack" "Setting up /etc/config/$config reload trigger for non-procd $init"
-               procd_add_config_trigger "config.change" "$config" "$init" "$@"
-       fi
-}
-
-register_trigger() {
-       local sid="$1"
-       local config init exec affects affected
-
-       config_get config "$sid" TYPE
-       config_get init "$sid" init
-       config_get exec "$sid" exec
-       config_get affects "$sid" affects
-
-       if [ -n "$init" ]; then
-               register_init "$config" "/etc/init.d/$init" "reload"
-       fi
-
-       if [ -n "$exec" ]; then
-               case "$exec" in
-                       /etc/init.d/*)
-                               set -- $exec
-                               register_init "$config" "$@"
-                       ;;
-                       *)
-                               logger -t "ucitrack" "Setting up non-init /etc/config/$config reload handler: $exec"
-                               procd_add_config_trigger "config.change" "$config" "$exec"
-                       ;;
-               esac
-       fi
-
-       for affected in $affects; do
-               logger -t "ucitrack" "Setting up /etc/config/$config reload dependency on /etc/config/$affected"
-               procd_add_config_trigger "config.change" "$affected" \
-                       ubus call service event \
-                       "$(printf '{"type":"config.change","data":{"package":"%s"}}' $config)"
-       done
-}
-
-service_triggers() {
-       config_foreach register_trigger
-}
-
-start_service() {
-       config_load ucitrack
-}
diff --git a/package/luci/modules/luci-base/root/etc/luci-uploads/.placeholder b/package/luci/modules/luci-base/root/etc/luci-uploads/.placeholder
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/package/luci/modules/luci-base/root/sbin/luci-reload b/package/luci/modules/luci-base/root/sbin/luci-reload
deleted file mode 100755 (executable)
index cc41da2..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-. /lib/functions.sh
-
-apply_config() {
-       config_get init "$1" init
-       config_get exec "$1" exec
-       config_get test "$1" test
-
-       echo "$2" > "/var/run/luci-reload-status"
-
-       [ -n "$init" ] && reload_init "$2" "$init" "$test"
-       [ -n "$exec" ] && reload_exec "$2" "$exec" "$test"
-}
-
-reload_exec() {
-       local service="$1"
-       local ok="$3"
-       set -- $2
-       local cmd="$1"; shift
-       
-       [ -x "$cmd" ] && {
-               echo "Reloading $service... "
-               ( $cmd "$@" ) 2>/dev/null 1>&2
-               [ -n "$ok" -a "$?" != "$ok" ] && echo '!!! Failed to reload' $service '!!!'
-       }
-}
-
-reload_init() {
-       [ -x /etc/init.d/$2 ] && /etc/init.d/$2 enabled && {
-               echo "Reloading $1... "
-               /etc/init.d/$2 reload >/dev/null 2>&1
-               [ -n "$3" -a "$?" != "$3" ] && echo '!!! Failed to reload' $1 '!!!'
-       }
-}
-
-lock "/var/run/luci-reload"
-
-config_load ucitrack
-
-for i in $*; do
-       config_foreach apply_config $i $i
-done
-
-rm -f "/var/run/luci-reload-status"
-lock -u "/var/run/luci-reload"
diff --git a/package/luci/modules/luci-base/root/usr/share/acl.d/luci-base.json b/package/luci/modules/luci-base/root/usr/share/acl.d/luci-base.json
deleted file mode 100644 (file)
index 4d58236..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "user": "nobody",
-       "access": {
-               "system": {
-                       "methods": [ "board", "info" ]
-               }
-       }
-}
diff --git a/package/luci/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json b/package/luci/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json
deleted file mode 100644 (file)
index ed7ad8a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-       "uci-access": {
-               "description": "Grant uci write access to all configurations",
-               "read": {
-                       "uci": [ "*" ]
-               },
-               "write": {
-                       "uci": [ "*" ]
-               }
-       }
-}
diff --git a/package/luci/modules/luci-base/root/www/index.html b/package/luci/modules/luci-base/root/www/index.html
deleted file mode 100644 (file)
index e964175..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Cache-Control" content="no-cache" />
-<meta http-equiv="refresh" content="0; URL=/cgi-bin/luci/" />
-</head>
-<body style="background-color: white">
-<a style="color: black; font-family: arial, helvetica, sans-serif;" href="/cgi-bin/luci/">LuCI - Lua Configuration Interface</a>
-</body>
-</html>
diff --git a/package/luci/modules/luci-base/src/Makefile b/package/luci/modules/luci-base/src/Makefile
deleted file mode 100644 (file)
index 3e6ead1..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-%.o: %.c
-       $(CC) $(CPPFLAGS) $(CFLAGS) $(FPIC) -c -o $@ $<
-
-clean:
-       rm -f po2lmo parser.so version.lua *.o
-
-jsmin: jsmin.o
-       $(CC) $(LDFLAGS) -o $@ $^
-
-po2lmo: po2lmo.o template_lmo.o
-       $(CC) $(LDFLAGS) -o $@ $^
-
-parser.so: template_parser.o template_utils.o template_lmo.o template_lualib.o
-       $(CC) $(LDFLAGS) -shared -o $@ $^
-
-version.lua:
-       ./mkversion.sh $@ $(LUCI_VERSION) "$(LUCI_GITBRANCH)"
-
-compile: parser.so version.lua
-
-install: compile
-       mkdir -p $(DESTDIR)/usr/lib/lua/luci/template
-       cp parser.so $(DESTDIR)/usr/lib/lua/luci/template/parser.so
-       cp version.lua $(DESTDIR)/usr/lib/lua/luci/version.lua
diff --git a/package/luci/modules/luci-base/src/jsmin b/package/luci/modules/luci-base/src/jsmin
deleted file mode 100755 (executable)
index 5db3e1f..0000000
Binary files a/package/luci/modules/luci-base/src/jsmin and /dev/null differ
diff --git a/package/luci/modules/luci-base/src/jsmin.c b/package/luci/modules/luci-base/src/jsmin.c
deleted file mode 100644 (file)
index d23718d..0000000
+++ /dev/null
@@ -1,292 +0,0 @@
-/* jsmin.c
-   2011-09-30
-
-Copyright (c) 2002 Douglas Crockford  (www.crockford.com)
-
-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 shall be used for Good, not Evil.
-
-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.
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-
-static int   theA;
-static int   theB;
-static int   theLookahead = EOF;
-
-
-/* isAlphanum -- return true if the character is a letter, digit, underscore,
-        dollar sign, or non-ASCII character.
-*/
-
-static int
-isAlphanum(int c)
-{
-    return ((c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') ||
-        (c >= 'A' && c <= 'Z') || c == '_' || c == '$' || c == '\\' ||
-        c > 126);
-}
-
-
-/* get -- return the next character from stdin. Watch out for lookahead. If
-        the character is a control character, translate it to a space or
-        linefeed.
-*/
-
-static int
-get()
-{
-    int c = theLookahead;
-    theLookahead = EOF;
-    if (c == EOF) {
-        c = getc(stdin);
-    }
-    if (c >= ' ' || c == '\n' || c == EOF) {
-        return c;
-    }
-    if (c == '\r') {
-        return '\n';
-    }
-    return ' ';
-}
-
-
-/* peek -- get the next character without getting it.
-*/
-
-static int
-peek()
-{
-    theLookahead = get();
-    return theLookahead;
-}
-
-
-/* next -- get the next character, excluding comments. peek() is used to see
-        if a '/' is followed by a '/' or '*'.
-*/
-
-static int
-next()
-{
-    int c = get();
-    if  (c == '/') {
-        switch (peek()) {
-        case '/':
-            for (;;) {
-                c = get();
-                if (c <= '\n') {
-                    return c;
-                }
-            }
-        case '*':
-            get();
-            for (;;) {
-                switch (get()) {
-                case '*':
-                    if (peek() == '/') {
-                        get();
-                        return ' ';
-                    }
-                    break;
-                case EOF:
-                    fprintf(stderr, "Error: JSMIN Unterminated comment.\n");
-                    exit(1);
-                }
-            }
-        default:
-            return c;
-        }
-    }
-    return c;
-}
-
-
-/* action -- do something! What you do is determined by the argument:
-        1   Output A. Copy B to A. Get the next B.
-        2   Copy B to A. Get the next B. (Delete A).
-        3   Get the next B. (Delete B).
-   action treats a string as a single character. Wow!
-   action recognizes a regular expression if it is preceded by ( or , or =.
-*/
-
-static void
-action(int d)
-{
-    switch (d) {
-    case 1:
-        putc(theA, stdout);
-    case 2:
-        theA = theB;
-        if (theA == '\'' || theA == '"' || theA == '`') {
-            for (;;) {
-                putc(theA, stdout);
-                theA = get();
-                if (theA == theB) {
-                    break;
-                }
-                if (theA == '\\') {
-                    putc(theA, stdout);
-                    theA = get();
-                }
-                if (theA == EOF) {
-                    fprintf(stderr, "Error: JSMIN unterminated string literal.");
-                    exit(1);
-                }
-            }
-        }
-    case 3:
-        theB = next();
-        if (theB == '/' && (theA == '(' || theA == ',' || theA == '=' ||
-                            theA == ':' || theA == '[' || theA == '!' ||
-                            theA == '&' || theA == '|' || theA == '?' ||
-                            theA == '{' || theA == '}' || theA == ';' ||
-                            theA == '\n')) {
-            putc(theA, stdout);
-            putc(theB, stdout);
-            for (;;) {
-                theA = get();
-                if (theA == '[') {
-                    for (;;) {
-                        putc(theA, stdout);
-                        theA = get();
-                        if (theA == ']') {
-                            break;
-                        }
-                        if (theA == '\\') {
-                            putc(theA, stdout);
-                            theA = get();
-                        }
-                        if (theA == EOF) {
-                            fprintf(stderr,
-                                "Error: JSMIN unterminated set in Regular Expression literal.\n");
-                            exit(1);
-                        }
-                    }
-                } else if (theA == '/') {
-                    break;
-                } else if (theA =='\\') {
-                    putc(theA, stdout);
-                    theA = get();
-                }
-                if (theA == EOF) {
-                    fprintf(stderr,
-                        "Error: JSMIN unterminated Regular Expression literal.\n");
-                    exit(1);
-                }
-                putc(theA, stdout);
-            }
-            theB = next();
-        }
-    }
-}
-
-
-/* jsmin -- Copy the input to the output, deleting the characters which are
-        insignificant to JavaScript. Comments will be removed. Tabs will be
-        replaced with spaces. Carriage returns will be replaced with linefeeds.
-        Most spaces and linefeeds will be removed.
-*/
-
-static void
-jsmin()
-{
-    theA = '\n';
-    action(3);
-    while (theA != EOF) {
-        switch (theA) {
-        case ' ':
-            if (isAlphanum(theB)) {
-                action(1);
-            } else {
-                action(2);
-            }
-            break;
-        case '\n':
-            switch (theB) {
-            case '{':
-            case '[':
-            case '(':
-            case '+':
-            case '-':
-                action(1);
-                break;
-            case ' ':
-                action(3);
-                break;
-            default:
-                if (isAlphanum(theB)) {
-                    action(1);
-                } else {
-                    action(2);
-                }
-            }
-            break;
-        default:
-            switch (theB) {
-            case ' ':
-                if (isAlphanum(theA)) {
-                    action(1);
-                    break;
-                }
-                action(3);
-                break;
-            case '\n':
-                switch (theA) {
-                case '}':
-                case ']':
-                case ')':
-                case '+':
-                case '-':
-                case '"':
-                case '\'':
-                case '`':
-                    action(1);
-                    break;
-                default:
-                    if (isAlphanum(theA)) {
-                        action(1);
-                    } else {
-                        action(3);
-                    }
-                }
-                break;
-            default:
-                action(1);
-                break;
-            }
-        }
-    }
-}
-
-
-/* main -- Output any command line arguments as comments
-        and then minify the input.
-*/
-extern int
-main(int argc, char* argv[])
-{
-    int i;
-    for (i = 1; i < argc; i += 1) {
-        fprintf(stdout, "// %s\n", argv[i]);
-    }
-    jsmin();
-    return 0;
-}
diff --git a/package/luci/modules/luci-base/src/mkversion.sh b/package/luci/modules/luci-base/src/mkversion.sh
deleted file mode 100755 (executable)
index e2d02c1..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-cat <<EOF > $1
-local pcall, dofile, _G = pcall, dofile, _G
-
-module "luci.version"
-
-if pcall(dofile, "/etc/openwrt_release") and _G.DISTRIB_DESCRIPTION then
-       distname    = ""
-       distversion = _G.DISTRIB_DESCRIPTION
-       if _G.DISTRIB_REVISION then
-               distrevision = _G.DISTRIB_REVISION
-               if not distversion:find(distrevision,1,true) then
-                       distversion = distversion .. " " .. distrevision
-               end
-       end
-else
-       distname    = "OpenWrt"
-       distversion = "Development Snapshot"
-end
-
-luciname    = "${3:-LuCI}"
-luciversion = "${2:-Git}"
-EOF
diff --git a/package/luci/modules/luci-base/src/po2lmo.c b/package/luci/modules/luci-base/src/po2lmo.c
deleted file mode 100644 (file)
index fd927cb..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * lmo - Lua Machine Objects - PO to LMO conversion tool
- *
- *   Copyright (C) 2009-2012 Jo-Philipp Wich <jow@openwrt.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "template_lmo.h"
-
-static void die(const char *msg)
-{
-       fprintf(stderr, "Error: %s\n", msg);
-       exit(1);
-}
-
-static void usage(const char *name)
-{
-       fprintf(stderr, "Usage: %s input.po output.lmo\n", name);
-       exit(1);
-}
-
-static void print(const void *ptr, size_t size, size_t nmemb, FILE *stream)
-{
-       if( fwrite(ptr, size, nmemb, stream) == 0 )
-               die("Failed to write stdout");
-}
-
-static int extract_string(const char *src, char *dest, int len)
-{
-       int pos = 0;
-       int esc = 0;
-       int off = -1;
-
-       for( pos = 0; (pos < strlen(src)) && (pos < len); pos++ )
-       {
-               if( (off == -1) && (src[pos] == '"') )
-               {
-                       off = pos + 1;
-               }
-               else if( off >= 0 )
-               {
-                       if( esc == 1 )
-                       {
-                               switch (src[pos])
-                               {
-                               case '"':
-                               case '\\':
-                                       off++;
-                                       break;
-                               }
-                               dest[pos-off] = src[pos];
-                               esc = 0;
-                       }
-                       else if( src[pos] == '\\' )
-                       {
-                               dest[pos-off] = src[pos];
-                               esc = 1;
-                       }
-                       else if( src[pos] != '"' )
-                       {
-                               dest[pos-off] = src[pos];
-                       }
-                       else
-                       {
-                               dest[pos-off] = '\0';
-                               break;
-                       }
-               }
-       }
-
-       return (off > -1) ? strlen(dest) : -1;
-}
-
-static int cmp_index(const void *a, const void *b)
-{
-       uint32_t x = ((const lmo_entry_t *)a)->key_id;
-       uint32_t y = ((const lmo_entry_t *)b)->key_id;
-
-       if (x < y)
-               return -1;
-       else if (x > y)
-               return 1;
-
-       return 0;
-}
-
-static void print_uint32(uint32_t x, FILE *out)
-{
-       uint32_t y = htonl(x);
-       print(&y, sizeof(uint32_t), 1, out);
-}
-
-static void print_index(void *array, int n, FILE *out)
-{
-       lmo_entry_t *e;
-
-       qsort(array, n, sizeof(*e), cmp_index);
-
-       for (e = array; n > 0; n--, e++)
-       {
-               print_uint32(e->key_id, out);
-               print_uint32(e->val_id, out);
-               print_uint32(e->offset, out);
-               print_uint32(e->length, out);
-       }
-}
-
-int main(int argc, char *argv[])
-{
-       char line[4096];
-       char key[4096];
-       char val[4096];
-       char tmp[4096];
-       int state  = 0;
-       int offset = 0;
-       int length = 0;
-       int n_entries = 0;
-       void *array = NULL;
-       lmo_entry_t *entry = NULL;
-       uint32_t key_id, val_id;
-
-       FILE *in;
-       FILE *out;
-
-       if( (argc != 3) || ((in = fopen(argv[1], "r")) == NULL) || ((out = fopen(argv[2], "w")) == NULL) )
-               usage(argv[0]);
-
-       memset(line, 0, sizeof(key));
-       memset(key, 0, sizeof(val));
-       memset(val, 0, sizeof(val));
-
-       while( (NULL != fgets(line, sizeof(line), in)) || (state >= 2 && feof(in)) )
-       {
-               if( state == 0 && strstr(line, "msgid \"") == line )
-               {
-                       switch(extract_string(line, key, sizeof(key)))
-                       {
-                               case -1:
-                                       die("Syntax error in msgid");
-                               case 0:
-                                       state = 1;
-                                       break;
-                               default:
-                                       state = 2;
-                       }
-               }
-               else if( state == 1 || state == 2 )
-               {
-                       if( strstr(line, "msgstr \"") == line || state == 2 )
-                       {
-                               switch(extract_string(line, val, sizeof(val)))
-                               {
-                                       case -1:
-                                               state = 4;
-                                               break;
-                                       default:
-                                               state = 3;
-                               }
-                       }
-                       else
-                       {
-                               switch(extract_string(line, tmp, sizeof(tmp)))
-                               {
-                                       case -1:
-                                               state = 2;
-                                               break;
-                                       default:
-                                               strcat(key, tmp);
-                               }
-                       }
-               }
-               else if( state == 3 )
-               {
-                       switch(extract_string(line, tmp, sizeof(tmp)))
-                       {
-                               case -1:
-                                       state = 4;
-                                       break;
-                               default:
-                                       strcat(val, tmp);
-                       }
-               }
-
-               if( state == 4 )
-               {
-                       if( strlen(key) > 0 && strlen(val) > 0 )
-                       {
-                               key_id = sfh_hash(key, strlen(key));
-                               val_id = sfh_hash(val, strlen(val));
-
-                               if( key_id != val_id )
-                               {
-                                       n_entries++;
-                                       array = realloc(array, n_entries * sizeof(lmo_entry_t));
-                                       entry = (lmo_entry_t *)array + n_entries - 1;
-
-                                       if (!array)
-                                               die("Out of memory");
-
-                                       entry->key_id = key_id;
-                                       entry->val_id = val_id;
-                                       entry->offset = offset;
-                                       entry->length = strlen(val);
-
-                                       length = strlen(val) + ((4 - (strlen(val) % 4)) % 4);
-
-                                       print(val, length, 1, out);
-                                       offset += length;
-                               }
-                       }
-
-                       state = 0;
-                       memset(key, 0, sizeof(key));
-                       memset(val, 0, sizeof(val));
-               }
-
-               memset(line, 0, sizeof(line));
-       }
-
-       print_index(array, n_entries, out);
-
-       if( offset > 0 )
-       {
-               print_uint32(offset, out);
-               fsync(fileno(out));
-               fclose(out);
-       }
-       else
-       {
-               fclose(out);
-               unlink(argv[2]);
-       }
-
-       fclose(in);
-       return(0);
-}
diff --git a/package/luci/modules/luci-base/src/template_lmo.c b/package/luci/modules/luci-base/src/template_lmo.c
deleted file mode 100644 (file)
index f7a118c..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- * lmo - Lua Machine Objects - Base functions
- *
- *   Copyright (C) 2009-2010 Jo-Philipp Wich <jow@openwrt.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "template_lmo.h"
-
-/*
- * Hash function from http://www.azillionmonkeys.com/qed/hash.html
- * Copyright (C) 2004-2008 by Paul Hsieh
- */
-
-uint32_t sfh_hash(const char *data, int len)
-{
-       uint32_t hash = len, tmp;
-       int rem;
-
-       if (len <= 0 || data == NULL) return 0;
-
-       rem = len & 3;
-       len >>= 2;
-
-       /* Main loop */
-       for (;len > 0; len--) {
-               hash  += sfh_get16(data);
-               tmp    = (sfh_get16(data+2) << 11) ^ hash;
-               hash   = (hash << 16) ^ tmp;
-               data  += 2*sizeof(uint16_t);
-               hash  += hash >> 11;
-       }
-
-       /* Handle end cases */
-       switch (rem) {
-               case 3: hash += sfh_get16(data);
-                       hash ^= hash << 16;
-                       hash ^= (signed char)data[sizeof(uint16_t)] << 18;
-                       hash += hash >> 11;
-                       break;
-               case 2: hash += sfh_get16(data);
-                       hash ^= hash << 11;
-                       hash += hash >> 17;
-                       break;
-               case 1: hash += (signed char)*data;
-                       hash ^= hash << 10;
-                       hash += hash >> 1;
-       }
-
-       /* Force "avalanching" of final 127 bits */
-       hash ^= hash << 3;
-       hash += hash >> 5;
-       hash ^= hash << 4;
-       hash += hash >> 17;
-       hash ^= hash << 25;
-       hash += hash >> 6;
-
-       return hash;
-}
-
-uint32_t lmo_canon_hash(const char *str, int len)
-{
-       char res[4096];
-       char *ptr, prev;
-       int off;
-
-       if (!str || len >= sizeof(res))
-               return 0;
-
-       for (prev = ' ', ptr = res, off = 0; off < len; prev = *str, off++, str++)
-       {
-               if (isspace(*str))
-               {
-                       if (!isspace(prev))
-                               *ptr++ = ' ';
-               }
-               else
-               {
-                       *ptr++ = *str;
-               }
-       }
-
-       if ((ptr > res) && isspace(*(ptr-1)))
-               ptr--;
-
-       return sfh_hash(res, ptr - res);
-}
-
-lmo_archive_t * lmo_open(const char *file)
-{
-       int in = -1;
-       uint32_t idx_offset = 0;
-       struct stat s;
-
-       lmo_archive_t *ar = NULL;
-
-       if (stat(file, &s) == -1)
-               goto err;
-
-       if ((in = open(file, O_RDONLY)) == -1)
-               goto err;
-
-       if ((ar = (lmo_archive_t *)malloc(sizeof(*ar))) != NULL)
-       {
-               memset(ar, 0, sizeof(*ar));
-
-               ar->fd     = in;
-               ar->size = s.st_size;
-
-               fcntl(ar->fd, F_SETFD, fcntl(ar->fd, F_GETFD) | FD_CLOEXEC);
-
-               if ((ar->mmap = mmap(NULL, ar->size, PROT_READ, MAP_SHARED, ar->fd, 0)) == MAP_FAILED)
-                       goto err;
-
-               idx_offset = ntohl(*((const uint32_t *)
-                                    (ar->mmap + ar->size - sizeof(uint32_t))));
-
-               if (idx_offset >= ar->size)
-                       goto err;
-
-               ar->index  = (lmo_entry_t *)(ar->mmap + idx_offset);
-               ar->length = (ar->size - idx_offset - sizeof(uint32_t)) / sizeof(lmo_entry_t);
-               ar->end    = ar->mmap + ar->size;
-
-               return ar;
-       }
-
-err:
-       if (in > -1)
-               close(in);
-
-       if (ar != NULL)
-       {
-               if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED))
-                       munmap(ar->mmap, ar->size);
-
-               free(ar);
-       }
-
-       return NULL;
-}
-
-void lmo_close(lmo_archive_t *ar)
-{
-       if (ar != NULL)
-       {
-               if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED))
-                       munmap(ar->mmap, ar->size);
-
-               close(ar->fd);
-               free(ar);
-
-               ar = NULL;
-       }
-}
-
-
-lmo_catalog_t *_lmo_catalogs = NULL;
-lmo_catalog_t *_lmo_active_catalog = NULL;
-
-int lmo_load_catalog(const char *lang, const char *dir)
-{
-       DIR *dh = NULL;
-       char pattern[16];
-       char path[PATH_MAX];
-       struct dirent *de = NULL;
-
-       lmo_archive_t *ar = NULL;
-       lmo_catalog_t *cat = NULL;
-
-       if (!lmo_change_catalog(lang))
-               return 0;
-
-       if (!dir || !(dh = opendir(dir)))
-               goto err;
-
-       if (!(cat = malloc(sizeof(*cat))))
-               goto err;
-
-       memset(cat, 0, sizeof(*cat));
-
-       snprintf(cat->lang, sizeof(cat->lang), "%s", lang);
-       snprintf(pattern, sizeof(pattern), "*.%s.lmo", lang);
-
-       while ((de = readdir(dh)) != NULL)
-       {
-               if (!fnmatch(pattern, de->d_name, 0))
-               {
-                       snprintf(path, sizeof(path), "%s/%s", dir, de->d_name);
-                       ar = lmo_open(path);
-
-                       if (ar)
-                       {
-                               ar->next = cat->archives;
-                               cat->archives = ar;
-                       }
-               }
-       }
-
-       closedir(dh);
-
-       cat->next = _lmo_catalogs;
-       _lmo_catalogs = cat;
-
-       if (!_lmo_active_catalog)
-               _lmo_active_catalog = cat;
-
-       return cat->archives ? 0 : -1;
-
-err:
-       if (dh) closedir(dh);
-       if (cat) free(cat);
-
-       return -1;
-}
-
-int lmo_change_catalog(const char *lang)
-{
-       lmo_catalog_t *cat;
-
-       for (cat = _lmo_catalogs; cat; cat = cat->next)
-       {
-               if (!strncmp(cat->lang, lang, sizeof(cat->lang)))
-               {
-                       _lmo_active_catalog = cat;
-                       return 0;
-               }
-       }
-
-       return -1;
-}
-
-static lmo_entry_t * lmo_find_entry(lmo_archive_t *ar, uint32_t hash)
-{
-       unsigned int m, l, r;
-       uint32_t k;
-
-       l = 0;
-       r = ar->length - 1;
-
-       while (1)
-       {
-               m = l + ((r - l) / 2);
-
-               if (r < l)
-                       break;
-
-               k = ntohl(ar->index[m].key_id);
-
-               if (k == hash)
-                       return &ar->index[m];
-
-               if (k > hash)
-               {
-                       if (!m)
-                               break;
-
-                       r = m - 1;
-               }
-               else
-               {
-                       l = m + 1;
-               }
-       }
-
-       return NULL;
-}
-
-int lmo_translate(const char *key, int keylen, char **out, int *outlen)
-{
-       uint32_t hash;
-       lmo_entry_t *e;
-       lmo_archive_t *ar;
-
-       if (!key || !_lmo_active_catalog)
-               return -2;
-
-       hash = lmo_canon_hash(key, keylen);
-
-       for (ar = _lmo_active_catalog->archives; ar; ar = ar->next)
-       {
-               if ((e = lmo_find_entry(ar, hash)) != NULL)
-               {
-                       *out = ar->mmap + ntohl(e->offset);
-                       *outlen = ntohl(e->length);
-                       return 0;
-               }
-       }
-
-       return -1;
-}
-
-void lmo_iterate(lmo_iterate_cb_t cb, void *priv)
-{
-       unsigned int i;
-       lmo_entry_t *e;
-       lmo_archive_t *ar;
-
-       if (!_lmo_active_catalog)
-               return;
-
-       for (ar = _lmo_active_catalog->archives; ar; ar = ar->next)
-               for (i = 0, e = &ar->index[0]; i < ar->length; e = &ar->index[++i])
-                       cb(ntohl(e->key_id), ar->mmap + ntohl(e->offset), ntohl(e->length), priv);
-}
-
-void lmo_close_catalog(const char *lang)
-{
-       lmo_archive_t *ar, *next;
-       lmo_catalog_t *cat, *prev;
-
-       for (prev = NULL, cat = _lmo_catalogs; cat; prev = cat, cat = cat->next)
-       {
-               if (!strncmp(cat->lang, lang, sizeof(cat->lang)))
-               {
-                       if (prev)
-                               prev->next = cat->next;
-                       else
-                               _lmo_catalogs = cat->next;
-
-                       for (ar = cat->archives; ar; ar = next)
-                       {
-                               next = ar->next;
-                               lmo_close(ar);
-                       }
-
-                       free(cat);
-                       break;
-               }
-       }
-}
diff --git a/package/luci/modules/luci-base/src/template_lmo.h b/package/luci/modules/luci-base/src/template_lmo.h
deleted file mode 100644 (file)
index 587884e..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * lmo - Lua Machine Objects - General header
- *
- *   Copyright (C) 2009-2012 Jo-Philipp Wich <jow@openwrt.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#ifndef _TEMPLATE_LMO_H_
-#define _TEMPLATE_LMO_H_
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/mman.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <errno.h>
-#include <fnmatch.h>
-#include <dirent.h>
-#include <ctype.h>
-#include <limits.h>
-
-#if (defined(__GNUC__) && defined(__i386__))
-#define sfh_get16(d) (*((const uint16_t *) (d)))
-#else
-#define sfh_get16(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\
-                                          +(uint32_t)(((const uint8_t *)(d))[0]) )
-#endif
-
-
-struct lmo_entry {
-       uint32_t key_id;
-       uint32_t val_id;
-       uint32_t offset;
-       uint32_t length;
-} __attribute__((packed));
-
-typedef struct lmo_entry lmo_entry_t;
-
-
-struct lmo_archive {
-       int         fd;
-       int             length;
-       uint32_t    size;
-       lmo_entry_t *index;
-       char        *mmap;
-       char            *end;
-       struct lmo_archive *next;
-};
-
-typedef struct lmo_archive lmo_archive_t;
-
-
-struct lmo_catalog {
-       char lang[6];
-       struct lmo_archive *archives;
-       struct lmo_catalog *next;
-};
-
-typedef struct lmo_catalog lmo_catalog_t;
-
-typedef void (*lmo_iterate_cb_t)(uint32_t, const char *, int, void *);
-
-uint32_t sfh_hash(const char *data, int len);
-uint32_t lmo_canon_hash(const char *data, int len);
-
-lmo_archive_t * lmo_open(const char *file);
-void lmo_close(lmo_archive_t *ar);
-
-
-extern lmo_catalog_t *_lmo_catalogs;
-extern lmo_catalog_t *_lmo_active_catalog;
-
-int lmo_load_catalog(const char *lang, const char *dir);
-int lmo_change_catalog(const char *lang);
-int lmo_translate(const char *key, int keylen, char **out, int *outlen);
-void lmo_iterate(lmo_iterate_cb_t cb, void *priv);
-void lmo_close_catalog(const char *lang);
-
-#endif
diff --git a/package/luci/modules/luci-base/src/template_lualib.c b/package/luci/modules/luci-base/src/template_lualib.c
deleted file mode 100644 (file)
index fbab2cc..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * LuCI Template - Lua binding
- *
- *   Copyright (C) 2009 Jo-Philipp Wich <jow@openwrt.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "template_lualib.h"
-
-static int template_L_do_parse(lua_State *L, struct template_parser *parser, const char *chunkname)
-{
-       int lua_status, rv;
-
-       if (!parser)
-       {
-               lua_pushnil(L);
-               lua_pushinteger(L, errno);
-               lua_pushstring(L, strerror(errno));
-               return 3;
-       }
-
-       lua_status = lua_load(L, template_reader, parser, chunkname);
-
-       if (lua_status == 0)
-               rv = 1;
-       else
-               rv = template_error(L, parser);
-
-       template_close(parser);
-
-       return rv;
-}
-
-int template_L_parse(lua_State *L)
-{
-       const char *file = luaL_checkstring(L, 1);
-       struct template_parser *parser = template_open(file);
-
-       return template_L_do_parse(L, parser, file);
-}
-
-int template_L_parse_string(lua_State *L)
-{
-       size_t len;
-       const char *str = luaL_checklstring(L, 1, &len);
-       struct template_parser *parser = template_string(str, len);
-
-       return template_L_do_parse(L, parser, "[string]");
-}
-
-int template_L_utf8(lua_State *L)
-{
-       size_t len = 0;
-       const char *str = luaL_checklstring(L, 1, &len);
-       char *res = utf8(str, len);
-
-       if (res != NULL)
-       {
-               lua_pushstring(L, res);
-               free(res);
-
-               return 1;
-       }
-
-       return 0;
-}
-
-int template_L_pcdata(lua_State *L)
-{
-       size_t len = 0;
-       const char *str = luaL_checklstring(L, 1, &len);
-       char *res = pcdata(str, len);
-
-       if (res != NULL)
-       {
-               lua_pushstring(L, res);
-               free(res);
-
-               return 1;
-       }
-
-       return 0;
-}
-
-int template_L_striptags(lua_State *L)
-{
-       size_t len = 0;
-       const char *str = luaL_checklstring(L, 1, &len);
-       char *res = striptags(str, len);
-
-       if (res != NULL)
-       {
-               lua_pushstring(L, res);
-               free(res);
-
-               return 1;
-       }
-
-       return 0;
-}
-
-static int template_L_load_catalog(lua_State *L) {
-       const char *lang = luaL_optstring(L, 1, "en");
-       const char *dir  = luaL_optstring(L, 2, NULL);
-       lua_pushboolean(L, !lmo_load_catalog(lang, dir));
-       return 1;
-}
-
-static int template_L_close_catalog(lua_State *L) {
-       const char *lang = luaL_optstring(L, 1, "en");
-       lmo_close_catalog(lang);
-       return 0;
-}
-
-static int template_L_change_catalog(lua_State *L) {
-       const char *lang = luaL_optstring(L, 1, "en");
-       lua_pushboolean(L, !lmo_change_catalog(lang));
-       return 1;
-}
-
-static void template_L_get_translations_cb(uint32_t key, const char *val, int len, void *priv) {
-       lua_State *L = priv;
-       char hex[9];
-
-       luaL_checktype(L, 1, LUA_TFUNCTION);
-       snprintf(hex, sizeof(hex), "%08x", key);
-
-       lua_pushvalue(L, 1);
-       lua_pushstring(L, hex);
-       lua_pushlstring(L, val, len);
-       lua_call(L, 2, 0);
-}
-
-static int template_L_get_translations(lua_State *L) {
-       lmo_iterate(template_L_get_translations_cb, L);
-       return 0;
-}
-
-static int template_L_translate(lua_State *L) {
-       size_t len;
-       char *tr;
-       int trlen;
-       const char *key = luaL_checklstring(L, 1, &len);
-
-       switch (lmo_translate(key, len, &tr, &trlen))
-       {
-               case 0:
-                       lua_pushlstring(L, tr, trlen);
-                       return 1;
-
-               case -1:
-                       return 0;
-       }
-
-       lua_pushnil(L);
-       lua_pushstring(L, "no catalog loaded");
-       return 2;
-}
-
-static int template_L_hash(lua_State *L) {
-       size_t len;
-       const char *key = luaL_checklstring(L, 1, &len);
-       lua_pushinteger(L, sfh_hash(key, len));
-       return 1;
-}
-
-
-/* module table */
-static const luaL_reg R[] = {
-       { "parse",                              template_L_parse },
-       { "parse_string",               template_L_parse_string },
-       { "utf8",                               template_L_utf8 },
-       { "pcdata",                             template_L_pcdata },
-       { "striptags",                  template_L_striptags },
-       { "load_catalog",               template_L_load_catalog },
-       { "close_catalog",              template_L_close_catalog },
-       { "change_catalog",             template_L_change_catalog },
-       { "get_translations",           template_L_get_translations },
-       { "translate",                  template_L_translate },
-       { "hash",                               template_L_hash },
-       { NULL,                                 NULL }
-};
-
-LUALIB_API int luaopen_luci_template_parser(lua_State *L) {
-       luaL_register(L, TEMPLATE_LUALIB_META, R);
-       return 1;
-}
diff --git a/package/luci/modules/luci-base/src/template_lualib.h b/package/luci/modules/luci-base/src/template_lualib.h
deleted file mode 100644 (file)
index ff7746d..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * LuCI Template - Lua library header
- *
- *   Copyright (C) 2009 Jo-Philipp Wich <jow@openwrt.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#ifndef _TEMPLATE_LUALIB_H_
-#define _TEMPLATE_LUALIB_H_
-
-#include "template_parser.h"
-#include "template_utils.h"
-#include "template_lmo.h"
-
-#define TEMPLATE_LUALIB_META  "template.parser"
-
-LUALIB_API int luaopen_luci_template_parser(lua_State *L);
-
-#endif
diff --git a/package/luci/modules/luci-base/src/template_parser.c b/package/luci/modules/luci-base/src/template_parser.c
deleted file mode 100644 (file)
index 0ef08c6..0000000
+++ /dev/null
@@ -1,419 +0,0 @@
-/*
- * LuCI Template - Parser implementation
- *
- *   Copyright (C) 2009-2012 Jo-Philipp Wich <jow@openwrt.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "template_parser.h"
-#include "template_utils.h"
-#include "template_lmo.h"
-
-
-/* leading and trailing code for different types */
-const char *gen_code[9][2] = {
-       { NULL,                                 NULL                    },
-       { "write(\"",                   "\")"                   },
-       { NULL,                                 NULL                    },
-       { "write(tostring(",    " or \"\"))"    },
-       { "include(\"",                 "\")"                   },
-       { "write(\"",                   "\")"                   },
-       { "write(\"",                   "\")"                   },
-       { NULL,                                 " "                             },
-       { NULL,                                 NULL                    },
-};
-
-/* Simple strstr() like function that takes len arguments for both haystack and needle. */
-static char *strfind(char *haystack, int hslen, const char *needle, int ndlen)
-{
-       int match = 0;
-       int i, j;
-
-       for( i = 0; i < hslen; i++ )
-       {
-               if( haystack[i] == needle[0] )
-               {
-                       match = ((ndlen == 1) || ((i + ndlen) <= hslen));
-
-                       for( j = 1; (j < ndlen) && ((i + j) < hslen); j++ )
-                       {
-                               if( haystack[i+j] != needle[j] )
-                               {
-                                       match = 0;
-                                       break;
-                               }
-                       }
-
-                       if( match )
-                               return &haystack[i];
-               }
-       }
-
-       return NULL;
-}
-
-struct template_parser * template_open(const char *file)
-{
-       struct stat s;
-       struct template_parser *parser;
-
-       if (!(parser = malloc(sizeof(*parser))))
-               goto err;
-
-       memset(parser, 0, sizeof(*parser));
-       parser->fd = -1;
-       parser->file = file;
-
-       if (stat(file, &s))
-               goto err;
-
-       if ((parser->fd = open(file, O_RDONLY)) < 0)
-               goto err;
-
-       parser->size = s.st_size;
-       parser->data = mmap(NULL, parser->size, PROT_READ, MAP_PRIVATE,
-                                               parser->fd, 0);
-
-       if (parser->data != MAP_FAILED)
-       {
-               parser->off = parser->data;
-               parser->cur_chunk.type = T_TYPE_INIT;
-               parser->cur_chunk.s    = parser->data;
-               parser->cur_chunk.e    = parser->data;
-
-               return parser;
-       }
-
-err:
-       template_close(parser);
-       return NULL;
-}
-
-struct template_parser * template_string(const char *str, uint32_t len)
-{
-       struct template_parser *parser;
-
-       if (!str) {
-               errno = EINVAL;
-               goto err;
-       }
-
-       if (!(parser = malloc(sizeof(*parser))))
-               goto err;
-
-       memset(parser, 0, sizeof(*parser));
-       parser->fd = -1;
-
-       parser->size = len;
-       parser->data = (char*)str;
-
-       parser->off = parser->data;
-       parser->cur_chunk.type = T_TYPE_INIT;
-       parser->cur_chunk.s    = parser->data;
-       parser->cur_chunk.e    = parser->data;
-
-       return parser;
-
-err:
-       template_close(parser);
-       return NULL;
-}
-
-void template_close(struct template_parser *parser)
-{
-       if (!parser)
-               return;
-
-       if (parser->gc != NULL)
-               free(parser->gc);
-
-       /* if file is not set, we were parsing a string */
-       if (parser->file) {
-               if ((parser->data != NULL) && (parser->data != MAP_FAILED))
-                       munmap(parser->data, parser->size);
-
-               if (parser->fd >= 0)
-                       close(parser->fd);
-       }
-
-       free(parser);
-}
-
-void template_text(struct template_parser *parser, const char *e)
-{
-       const char *s = parser->off;
-
-       if (s < (parser->data + parser->size))
-       {
-               if (parser->strip_after)
-               {
-                       while ((s <= e) && isspace(*s))
-                               s++;
-               }
-
-               parser->cur_chunk.type = T_TYPE_TEXT;
-       }
-       else
-       {
-               parser->cur_chunk.type = T_TYPE_EOF;
-       }
-
-       parser->cur_chunk.line = parser->line;
-       parser->cur_chunk.s = s;
-       parser->cur_chunk.e = e;
-}
-
-void template_code(struct template_parser *parser, const char *e)
-{
-       const char *s = parser->off;
-
-       parser->strip_before = 0;
-       parser->strip_after = 0;
-
-       if (*s == '-')
-       {
-               parser->strip_before = 1;
-               for (s++; (s <= e) && (*s == ' ' || *s == '\t'); s++);
-       }
-
-       if (*(e-1) == '-')
-       {
-               parser->strip_after = 1;
-               for (e--; (e >= s) && (*e == ' ' || *e == '\t'); e--);
-       }
-
-       switch (*s)
-       {
-               /* comment */
-               case '#':
-                       s++;
-                       parser->cur_chunk.type = T_TYPE_COMMENT;
-                       break;
-
-               /* include */
-               case '+':
-                       s++;
-                       parser->cur_chunk.type = T_TYPE_INCLUDE;
-                       break;
-
-               /* translate */
-               case ':':
-                       s++;
-                       parser->cur_chunk.type = T_TYPE_I18N;
-                       break;
-
-               /* translate raw */
-               case '_':
-                       s++;
-                       parser->cur_chunk.type = T_TYPE_I18N_RAW;
-                       break;
-
-               /* expr */
-               case '=':
-                       s++;
-                       parser->cur_chunk.type = T_TYPE_EXPR;
-                       break;
-
-               /* code */
-               default:
-                       parser->cur_chunk.type = T_TYPE_CODE;
-                       break;
-       }
-
-       parser->cur_chunk.line = parser->line;
-       parser->cur_chunk.s = s;
-       parser->cur_chunk.e = e;
-}
-
-static const char *
-template_format_chunk(struct template_parser *parser, size_t *sz)
-{
-       const char *s, *p;
-       const char *head, *tail;
-       struct template_chunk *c = &parser->prv_chunk;
-       struct template_buffer *buf;
-
-       *sz = 0;
-       s = parser->gc = NULL;
-
-       if (parser->strip_before && c->type == T_TYPE_TEXT)
-       {
-               while ((c->e > c->s) && isspace(*(c->e - 1)))
-                       c->e--;
-       }
-
-       /* empty chunk */
-       if (c->s == c->e)
-       {
-               if (c->type == T_TYPE_EOF)
-               {
-                       *sz = 0;
-                       s = NULL;
-               }
-               else
-               {
-                       *sz = 1;
-                       s = " ";
-               }
-       }
-
-       /* format chunk */
-       else if ((buf = buf_init(c->e - c->s)) != NULL)
-       {
-               if ((head = gen_code[c->type][0]) != NULL)
-                       buf_append(buf, head, strlen(head));
-
-               switch (c->type)
-               {
-                       case T_TYPE_TEXT:
-                               luastr_escape(buf, c->s, c->e - c->s, 0);
-                               break;
-
-                       case T_TYPE_EXPR:
-                               buf_append(buf, c->s, c->e - c->s);
-                               for (p = c->s; p < c->e; p++)
-                                       parser->line += (*p == '\n');
-                               break;
-
-                       case T_TYPE_INCLUDE:
-                               luastr_escape(buf, c->s, c->e - c->s, 0);
-                               break;
-
-                       case T_TYPE_I18N:
-                               luastr_translate(buf, c->s, c->e - c->s, 1);
-                               break;
-
-                       case T_TYPE_I18N_RAW:
-                               luastr_translate(buf, c->s, c->e - c->s, 0);
-                               break;
-
-                       case T_TYPE_CODE:
-                               buf_append(buf, c->s, c->e - c->s);
-                               for (p = c->s; p < c->e; p++)
-                                       parser->line += (*p == '\n');
-                               break;
-               }
-
-               if ((tail = gen_code[c->type][1]) != NULL)
-                       buf_append(buf, tail, strlen(tail));
-
-               *sz = buf_length(buf);
-               s = parser->gc = buf_destroy(buf);
-
-               if (!*sz)
-               {
-                       *sz = 1;
-                       s = " ";
-               }
-       }
-
-       return s;
-}
-
-const char *template_reader(lua_State *L, void *ud, size_t *sz)
-{
-       struct template_parser *parser = ud;
-       int rem = parser->size - (parser->off - parser->data);
-       char *tag;
-
-       parser->prv_chunk = parser->cur_chunk;
-
-       /* free previous string */
-       if (parser->gc)
-       {
-               free(parser->gc);
-               parser->gc = NULL;
-       }
-
-       /* before tag */
-       if (!parser->in_expr)
-       {
-               if ((tag = strfind(parser->off, rem, "<%", 2)) != NULL)
-               {
-                       template_text(parser, tag);
-                       parser->off = tag + 2;
-                       parser->in_expr = 1;
-               }
-               else
-               {
-                       template_text(parser, parser->data + parser->size);
-                       parser->off = parser->data + parser->size;
-               }
-       }
-
-       /* inside tag */
-       else
-       {
-               if ((tag = strfind(parser->off, rem, "%>", 2)) != NULL)
-               {
-                       template_code(parser, tag);
-                       parser->off = tag + 2;
-                       parser->in_expr = 0;
-               }
-               else
-               {
-                       /* unexpected EOF */
-                       template_code(parser, parser->data + parser->size);
-
-                       *sz = 1;
-                       return "\033";
-               }
-       }
-
-       return template_format_chunk(parser, sz);
-}
-
-int template_error(lua_State *L, struct template_parser *parser)
-{
-       const char *err = luaL_checkstring(L, -1);
-       const char *off = parser->prv_chunk.s;
-       const char *ptr;
-       char msg[1024];
-       int line = 0;
-       int chunkline = 0;
-
-       if ((ptr = strfind((char *)err, strlen(err), "]:", 2)) != NULL)
-       {
-               chunkline = atoi(ptr + 2) - parser->prv_chunk.line;
-
-               while (*ptr)
-               {
-                       if (*ptr++ == ' ')
-                       {
-                               err = ptr;
-                               break;
-                       }
-               }
-       }
-
-       if (strfind((char *)err, strlen(err), "'char(27)'", 10) != NULL)
-       {
-               off = parser->data + parser->size;
-               err = "'%>' expected before end of file";
-               chunkline = 0;
-       }
-
-       for (ptr = parser->data; ptr < off; ptr++)
-               if (*ptr == '\n')
-                       line++;
-
-       snprintf(msg, sizeof(msg), "Syntax error in %s:%d: %s",
-                        parser->file ? parser->file : "[string]", line + chunkline, err ? err : "(unknown error)");
-
-       lua_pushnil(L);
-       lua_pushinteger(L, line + chunkline);
-       lua_pushstring(L, msg);
-
-       return 3;
-}
diff --git a/package/luci/modules/luci-base/src/template_parser.h b/package/luci/modules/luci-base/src/template_parser.h
deleted file mode 100644 (file)
index 2415e87..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * LuCI Template - Parser header
- *
- *   Copyright (C) 2009 Jo-Philipp Wich <jow@openwrt.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#ifndef _TEMPLATE_PARSER_H_
-#define _TEMPLATE_PARSER_H_
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/mman.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#include <lua.h>
-#include <lualib.h>
-#include <lauxlib.h>
-
-
-/* code types */
-#define T_TYPE_INIT                    0
-#define T_TYPE_TEXT                    1
-#define T_TYPE_COMMENT         2
-#define T_TYPE_EXPR                    3
-#define T_TYPE_INCLUDE                 4
-#define T_TYPE_I18N                    5
-#define T_TYPE_I18N_RAW                6
-#define T_TYPE_CODE                    7
-#define T_TYPE_EOF                     8
-
-
-struct template_chunk {
-       const char *s;
-       const char *e;
-       int type;
-       int line;
-};
-
-/* parser state */
-struct template_parser {
-       int fd;
-       uint32_t size;
-       char *data;
-       char *off;
-       char *gc;
-       int line;
-       int in_expr;
-       int strip_before;
-       int strip_after;
-       struct template_chunk prv_chunk;
-       struct template_chunk cur_chunk;
-       const char *file;
-};
-
-struct template_parser * template_open(const char *file);
-struct template_parser * template_string(const char *str, uint32_t len);
-void template_close(struct template_parser *parser);
-
-const char *template_reader(lua_State *L, void *ud, size_t *sz);
-int template_error(lua_State *L, struct template_parser *parser);
-
-#endif
diff --git a/package/luci/modules/luci-base/src/template_utils.c b/package/luci/modules/luci-base/src/template_utils.c
deleted file mode 100644 (file)
index 0411932..0000000
+++ /dev/null
@@ -1,484 +0,0 @@
-/*
- * LuCI Template - Utility functions
- *
- *   Copyright (C) 2010 Jo-Philipp Wich <jow@openwrt.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "template_utils.h"
-#include "template_lmo.h"
-
-/* initialize a buffer object */
-struct template_buffer * buf_init(int size)
-{
-       struct template_buffer *buf;
-
-       if (size <= 0)
-               size = 1024;
-
-       buf = (struct template_buffer *)malloc(sizeof(struct template_buffer));
-
-       if (buf != NULL)
-       {
-               buf->fill = 0;
-               buf->size = size;
-               buf->data = malloc(buf->size);
-
-               if (buf->data != NULL)
-               {
-                       buf->dptr = buf->data;
-                       buf->data[0] = 0;
-
-                       return buf;
-               }
-
-               free(buf);
-       }
-
-       return NULL;
-}
-
-/* grow buffer */
-int buf_grow(struct template_buffer *buf, int size)
-{
-       unsigned int off = (buf->dptr - buf->data);
-       char *data;
-
-       if (size <= 0)
-               size = 1024;
-
-       data = realloc(buf->data, buf->size + size);
-
-       if (data != NULL)
-       {
-               buf->data  = data;
-               buf->dptr  = data + off;
-               buf->size += size;
-
-               return buf->size;
-       }
-
-       return 0;
-}
-
-/* put one char into buffer object */
-int buf_putchar(struct template_buffer *buf, char c)
-{
-       if( ((buf->fill + 1) >= buf->size) && !buf_grow(buf, 0) )
-               return 0;
-
-       *(buf->dptr++) = c;
-       *(buf->dptr) = 0;
-
-       buf->fill++;
-       return 1;
-}
-
-/* append data to buffer */
-int buf_append(struct template_buffer *buf, const char *s, int len)
-{
-       if ((buf->fill + len + 1) >= buf->size)
-       {
-               if (!buf_grow(buf, len + 1))
-                       return 0;
-       }
-
-       memcpy(buf->dptr, s, len);
-       buf->fill += len;
-       buf->dptr += len;
-
-       *(buf->dptr) = 0;
-
-       return len;
-}
-
-/* read buffer length */
-int buf_length(struct template_buffer *buf)
-{
-       return buf->fill;
-}
-
-/* destroy buffer object and return pointer to data */
-char * buf_destroy(struct template_buffer *buf)
-{
-       char *data = buf->data;
-
-       free(buf);
-       return data;
-}
-
-
-/* calculate the number of expected continuation chars */
-static inline int mb_num_chars(unsigned char c)
-{
-       if ((c & 0xE0) == 0xC0)
-               return 2;
-       else if ((c & 0xF0) == 0xE0)
-               return 3;
-       else if ((c & 0xF8) == 0xF0)
-               return 4;
-       else if ((c & 0xFC) == 0xF8)
-               return 5;
-       else if ((c & 0xFE) == 0xFC)
-               return 6;
-
-       return 1;
-}
-
-/* test whether the given byte is a valid continuation char */
-static inline int mb_is_cont(unsigned char c)
-{
-       return ((c >= 0x80) && (c <= 0xBF));
-}
-
-/* test whether the byte sequence at the given pointer with the given
- * length is the shortest possible representation of the code point */
-static inline int mb_is_shortest(unsigned char *s, int n)
-{
-       switch (n)
-       {
-               case 2:
-                       /* 1100000x (10xxxxxx) */
-                       return !(((*s >> 1) == 0x60) &&
-                                        ((*(s+1) >> 6) == 0x02));
-
-               case 3:
-                       /* 11100000 100xxxxx (10xxxxxx) */
-                       return !((*s == 0xE0) &&
-                                        ((*(s+1) >> 5) == 0x04) &&
-                                        ((*(s+2) >> 6) == 0x02));
-
-               case 4:
-                       /* 11110000 1000xxxx (10xxxxxx 10xxxxxx) */
-                       return !((*s == 0xF0) &&
-                                        ((*(s+1) >> 4) == 0x08) &&
-                                        ((*(s+2) >> 6) == 0x02) &&
-                                        ((*(s+3) >> 6) == 0x02));
-
-               case 5:
-                       /* 11111000 10000xxx (10xxxxxx 10xxxxxx 10xxxxxx) */
-                       return !((*s == 0xF8) &&
-                                        ((*(s+1) >> 3) == 0x10) &&
-                                        ((*(s+2) >> 6) == 0x02) &&
-                                        ((*(s+3) >> 6) == 0x02) &&
-                                        ((*(s+4) >> 6) == 0x02));
-
-               case 6:
-                       /* 11111100 100000xx (10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx) */
-                       return !((*s == 0xF8) &&
-                                        ((*(s+1) >> 2) == 0x20) &&
-                                        ((*(s+2) >> 6) == 0x02) &&
-                                        ((*(s+3) >> 6) == 0x02) &&
-                                        ((*(s+4) >> 6) == 0x02) &&
-                                        ((*(s+5) >> 6) == 0x02));
-       }
-
-       return 1;
-}
-
-/* test whether the byte sequence at the given pointer with the given
- * length is an UTF-16 surrogate */
-static inline int mb_is_surrogate(unsigned char *s, int n)
-{
-       return ((n == 3) && (*s == 0xED) && (*(s+1) >= 0xA0) && (*(s+1) <= 0xBF));
-}
-
-/* test whether the byte sequence at the given pointer with the given
- * length is an illegal UTF-8 code point */
-static inline int mb_is_illegal(unsigned char *s, int n)
-{
-       return ((n == 3) && (*s == 0xEF) && (*(s+1) == 0xBF) &&
-                       (*(s+2) >= 0xBE) && (*(s+2) <= 0xBF));
-}
-
-
-/* scan given source string, validate UTF-8 sequence and store result
- * in given buffer object */
-static int _validate_utf8(unsigned char **s, int l, struct template_buffer *buf)
-{
-       unsigned char *ptr = *s;
-       unsigned int o = 0, v, n;
-
-       /* ascii byte without null */
-       if ((*(ptr+0) >= 0x01) && (*(ptr+0) <= 0x7F))
-       {
-               if (!buf_putchar(buf, *ptr++))
-                       return 0;
-
-               o = 1;
-       }
-
-       /* multi byte sequence */
-       else if ((n = mb_num_chars(*ptr)) > 1)
-       {
-               /* count valid chars */
-               for (v = 1; (v <= n) && ((o+v) < l) && mb_is_cont(*(ptr+v)); v++);
-
-               switch (n)
-               {
-                       case 6:
-                       case 5:
-                               /* five and six byte sequences are always invalid */
-                               if (!buf_putchar(buf, '?'))
-                                       return 0;
-
-                               break;
-
-                       default:
-                               /* if the number of valid continuation bytes matches the
-                                * expected number and if the sequence is legal, copy
-                                * the bytes to the destination buffer */
-                               if ((v == n) && mb_is_shortest(ptr, n) &&
-                                       !mb_is_surrogate(ptr, n) && !mb_is_illegal(ptr, n))
-                               {
-                                       /* copy sequence */
-                                       if (!buf_append(buf, (char *)ptr, n))
-                                               return 0;
-                               }
-
-                               /* the found sequence is illegal, skip it */
-                               else
-                               {
-                                       /* invalid sequence */
-                                       if (!buf_putchar(buf, '?'))
-                                               return 0;
-                               }
-
-                               break;
-               }
-
-               /* advance beyond the last found valid continuation char */
-               o = v;
-               ptr += v;
-       }
-
-       /* invalid byte (0x00) */
-       else
-       {
-               if (!buf_putchar(buf, '?')) /* or 0xEF, 0xBF, 0xBD */
-                       return 0;
-
-               o = 1;
-               ptr++;
-       }
-
-       *s = ptr;
-       return o;
-}
-
-/* sanitize given string and replace all invalid UTF-8 sequences with "?" */
-char * utf8(const char *s, unsigned int l)
-{
-       struct template_buffer *buf = buf_init(l);
-       unsigned char *ptr = (unsigned char *)s;
-       unsigned int v, o;
-
-       if (!buf)
-               return NULL;
-
-       for (o = 0; o < l; o++)
-       {
-               /* ascii char */
-               if ((*ptr >= 0x01) && (*ptr <= 0x7F))
-               {
-                       if (!buf_putchar(buf, (char)*ptr++))
-                               break;
-               }
-
-               /* invalid byte or multi byte sequence */
-               else
-               {
-                       if (!(v = _validate_utf8(&ptr, l - o, buf)))
-                               break;
-
-                       o += (v - 1);
-               }
-       }
-
-       return buf_destroy(buf);
-}
-
-/* Sanitize given string and strip all invalid XML bytes
- * Validate UTF-8 sequences
- * Escape XML control chars */
-char * pcdata(const char *s, unsigned int l)
-{
-       struct template_buffer *buf = buf_init(l);
-       unsigned char *ptr = (unsigned char *)s;
-       unsigned int o, v;
-       char esq[8];
-       int esl;
-
-       if (!buf)
-               return NULL;
-
-       for (o = 0; o < l; o++)
-       {
-               /* Invalid XML bytes */
-               if (((*ptr >= 0x00) && (*ptr <= 0x08)) ||
-                   ((*ptr >= 0x0B) && (*ptr <= 0x0C)) ||
-                   ((*ptr >= 0x0E) && (*ptr <= 0x1F)) ||
-                   (*ptr == 0x7F))
-               {
-                       ptr++;
-               }
-
-               /* Escapes */
-               else if ((*ptr == 0x26) ||
-                        (*ptr == 0x27) ||
-                        (*ptr == 0x22) ||
-                        (*ptr == 0x3C) ||
-                        (*ptr == 0x3E))
-               {
-                       esl = snprintf(esq, sizeof(esq), "&#%i;", *ptr);
-
-                       if (!buf_append(buf, esq, esl))
-                               break;
-
-                       ptr++;
-               }
-
-               /* ascii char */
-               else if (*ptr <= 0x7F)
-               {
-                       buf_putchar(buf, (char)*ptr++);
-               }
-
-               /* multi byte sequence */
-               else
-               {
-                       if (!(v = _validate_utf8(&ptr, l - o, buf)))
-                               break;
-
-                       o += (v - 1);
-               }
-       }
-
-       return buf_destroy(buf);
-}
-
-char * striptags(const char *s, unsigned int l)
-{
-       struct template_buffer *buf = buf_init(l);
-       unsigned char *ptr = (unsigned char *)s;
-       unsigned char *end = ptr + l;
-       unsigned char *tag;
-       unsigned char prev;
-       char esq[8];
-       int esl;
-
-       for (prev = ' '; ptr < end; ptr++)
-       {
-               if ((*ptr == '<') && ((ptr + 2) < end) &&
-                       ((*(ptr + 1) == '/') || isalpha(*(ptr + 1))))
-               {
-                       for (tag = ptr; tag < end; tag++)
-                       {
-                               if (*tag == '>')
-                               {
-                                       if (!isspace(prev))
-                                               buf_putchar(buf, ' ');
-
-                                       ptr = tag;
-                                       prev = ' ';
-                                       break;
-                               }
-                       }
-               }
-               else if (isspace(*ptr))
-               {
-                       if (!isspace(prev))
-                               buf_putchar(buf, *ptr);
-
-                       prev = *ptr;
-               }
-               else
-               {
-                       switch(*ptr)
-                       {
-                               case '"':
-                               case '\'':
-                               case '<':
-                               case '>':
-                               case '&':
-                                       esl = snprintf(esq, sizeof(esq), "&#%i;", *ptr);
-                                       buf_append(buf, esq, esl);
-                                       break;
-
-                               default:
-                                       buf_putchar(buf, *ptr);
-                                       break;
-                       }
-
-                       prev = *ptr;
-               }
-       }
-
-       return buf_destroy(buf);
-}
-
-void luastr_escape(struct template_buffer *out, const char *s, unsigned int l,
-                                  int escape_xml)
-{
-       int esl;
-       char esq[8];
-       char *ptr;
-
-       for (ptr = (char *)s; ptr < (s + l); ptr++)
-       {
-               switch (*ptr)
-               {
-               case '\\':
-                       buf_append(out, "\\\\", 2);
-                       break;
-
-               case '"':
-                       if (escape_xml)
-                               buf_append(out, "&#34;", 5);
-                       else
-                               buf_append(out, "\\\"", 2);
-                       break;
-
-               case '\n':
-                       buf_append(out, "\\n", 2);
-                       break;
-
-               case '\'':
-               case '&':
-               case '<':
-               case '>':
-                       if (escape_xml)
-                       {
-                               esl = snprintf(esq, sizeof(esq), "&#%i;", *ptr);
-                               buf_append(out, esq, esl);
-                               break;
-                       }
-
-               default:
-                       buf_putchar(out, *ptr);
-               }
-       }
-}
-
-void luastr_translate(struct template_buffer *out, const char *s, unsigned int l,
-                                         int escape_xml)
-{
-       char *tr;
-       int trlen;
-
-       if (!lmo_translate(s, l, &tr, &trlen))
-               luastr_escape(out, tr, trlen, escape_xml);
-       else
-               luastr_escape(out, s, l, escape_xml);
-}
diff --git a/package/luci/modules/luci-base/src/template_utils.h b/package/luci/modules/luci-base/src/template_utils.h
deleted file mode 100644 (file)
index 32a79f9..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * LuCI Template - Utility header
- *
- *   Copyright (C) 2010-2012 Jo-Philipp Wich <jow@openwrt.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#ifndef _TEMPLATE_UTILS_H_
-#define _TEMPLATE_UTILS_H_
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-
-/* buffer object */
-struct template_buffer {
-       char *data;
-       char *dptr;
-       unsigned int size;
-       unsigned int fill;
-};
-
-struct template_buffer * buf_init(int size);
-int buf_grow(struct template_buffer *buf, int size);
-int buf_putchar(struct template_buffer *buf, char c);
-int buf_append(struct template_buffer *buf, const char *s, int len);
-int buf_length(struct template_buffer *buf);
-char * buf_destroy(struct template_buffer *buf);
-
-char * utf8(const char *s, unsigned int l);
-char * pcdata(const char *s, unsigned int l);
-char * striptags(const char *s, unsigned int l);
-
-void luastr_escape(struct template_buffer *out, const char *s, unsigned int l, int escape_xml);
-void luastr_translate(struct template_buffer *out, const char *s, unsigned int l, int escape_xml);
-
-#endif
diff --git a/package/luci/modules/luci-mod-admin-full/Makefile b/package/luci/modules/luci-mod-admin-full/Makefile
deleted file mode 100644 (file)
index b376b35..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI Administration - full-featured for full control
-LUCI_DEPENDS:=+luci-base +luci-mod-status +luci-mod-system +luci-mod-network
-
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
-
diff --git a/package/luci/modules/luci-mod-admin-full/luasrc/controller/admin/filebrowser.lua b/package/luci/modules/luci-mod-admin-full/luasrc/controller/admin/filebrowser.lua
deleted file mode 100644 (file)
index 2572615..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.admin.filebrowser", package.seeall)
-
-function index()
-       entry( {"admin", "filebrowser"}, template("cbi/filebrowser") ).leaf = true
-end
diff --git a/package/luci/modules/luci-mod-admin-mini/Makefile b/package/luci/modules/luci-mod-admin-mini/Makefile
deleted file mode 100644 (file)
index 5da4caf..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI Essentials - stripped down and user-friendly
-LUCI_DEPENDS:=+luci-base @BROKEN
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
-
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/controller/mini/index.lua b/package/luci/modules/luci-mod-admin-mini/luasrc/controller/mini/index.lua
deleted file mode 100644 (file)
index dd25f2c..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.mini.index", package.seeall)
-
-function index()
-       local root = node()
-       if not root.lock then
-               root.target = alias("mini")
-               root.index = true
-       end
-       
-       entry({"about"}, template("about"))
-       
-       local page   = entry({"mini"}, alias("mini", "index"), _("Essentials"), 10)
-       page.sysauth = "root"
-       page.sysauth_authenticator = "htmlauth"
-       page.index = true
-       
-       entry({"mini", "index"}, alias("mini", "index", "index"), _("Overview"), 10).index = true
-       entry({"mini", "index", "index"}, form("mini/index"), _("General"), 1).ignoreindex = true
-       entry({"mini", "index", "luci"}, cbi("mini/luci", {autoapply=true}), _("Settings"), 10)
-       entry({"mini", "index", "logout"}, call("action_logout"), _("Logout"))
-end
-
-function action_logout()
-       local dsp = require "luci.dispatcher"
-       local utl = require "luci.util"
-       if dsp.context.authsession then
-               utl.ubus("session", "destroy", {
-                       ubus_rpc_session = dsp.context.authsession
-               })
-               dsp.context.urltoken.stok = nil
-       end
-
-       luci.http.header("Set-Cookie", "sysauth=; path=" .. dsp.build_url())
-       luci.http.redirect(luci.dispatcher.build_url())
-end
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/controller/mini/network.lua b/package/luci/modules/luci-mod-admin-mini/luasrc/controller/mini/network.lua
deleted file mode 100644 (file)
index 92506e5..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.mini.network", package.seeall)
-
-function index()
-       entry({"mini", "network"}, alias("mini", "network", "index"), _("Network"), 20).index = true
-       entry({"mini", "network", "index"}, cbi("mini/network", {autoapply=true}), _("General"), 1)
-       entry({"mini", "network", "wifi"}, cbi("mini/wifi", {autoapply=true}), _("Wireless"), 10)
-       entry({"mini", "network", "dhcp"}, cbi("mini/dhcp", {autoapply=true}), _("DHCP"), 20)
-end
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/controller/mini/system.lua b/package/luci/modules/luci-mod-admin-mini/luasrc/controller/mini/system.lua
deleted file mode 100644 (file)
index 74a5ae4..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.mini.system", package.seeall)
-
-function index()
-       entry({"mini", "system"}, alias("mini", "system", "index"), _("System"), 40).index = true
-       entry({"mini", "system", "index"}, cbi("mini/system", {autoapply=true}), _("General"), 1)
-       entry({"mini", "system", "passwd"}, form("mini/passwd"), _("Admin Password"), 10)
-       entry({"mini", "system", "backup"}, call("action_backup"), _("Backup / Restore"), 80)
-       entry({"mini", "system", "upgrade"}, call("action_upgrade"), _("Flash Firmware"), 90)
-       entry({"mini", "system", "reboot"}, call("action_reboot"), _("Reboot"), 100)
-end
-
-function action_backup()
-       local reset_avail = os.execute([[grep '"rootfs_data"' /proc/mtd >/dev/null 2>&1]]) == 0
-       local restore_cmd = "gunzip | tar -xC/ >/dev/null 2>&1"
-       local backup_cmd  = "tar -c %s | gzip 2>/dev/null"
-       
-       local restore_fpi 
-       luci.http.setfilehandler(
-               function(meta, chunk, eof)
-                       if not restore_fpi then
-                               restore_fpi = io.popen(restore_cmd, "w")
-                       end
-                       if chunk then
-                               restore_fpi:write(chunk)
-                       end
-                       if eof then
-                               restore_fpi:close()
-                       end
-               end
-       )
-                 
-       local upload = luci.http.formvalue("archive")
-       local backup = luci.http.formvalue("backup")
-       local reset  = reset_avail and luci.http.formvalue("reset")
-       
-       if upload and #upload > 0 then
-               luci.template.render("mini/applyreboot")
-               luci.sys.reboot()
-       elseif backup then
-               local reader = ltn12_popen(backup_cmd:format(_keep_pattern()))
-               luci.http.header('Content-Disposition', 'attachment; filename="backup-%s-%s.tar.gz"' % {
-                       luci.sys.hostname(), os.date("%Y-%m-%d")})
-               luci.http.prepare_content("application/x-targz")
-               luci.ltn12.pump.all(reader, luci.http.write)
-       elseif reset then
-               luci.template.render("mini/applyreboot")
-               luci.util.exec("mtd -r erase rootfs_data")
-       else
-               luci.template.render("mini/backup", {reset_avail = reset_avail})
-       end
-end
-
-function action_reboot()
-       local reboot = luci.http.formvalue("reboot")
-       luci.template.render("mini/reboot", {reboot=reboot})
-       if reboot then
-               luci.sys.reboot()
-       end
-end
-
-function action_upgrade()
-       require("luci.model.uci")
-
-       local tmpfile = "/tmp/firmware.img"
-       
-       local function image_supported()
-               -- XXX: yay...
-               return ( 0 == os.execute(
-                       ". /lib/functions.sh; " ..
-                       "include /lib/upgrade; " ..
-                       "platform_check_image %q >/dev/null"
-                               % tmpfile
-               ) )
-       end
-       
-       local function image_checksum()
-               return (luci.sys.exec("md5sum %q" % tmpfile):match("^([^%s]+)"))
-       end
-       
-       local function storage_size()
-               local size = 0
-               if nixio.fs.access("/proc/mtd") then
-                       for l in io.lines("/proc/mtd") do
-                               local d, s, e, n = l:match('^([^%s]+)%s+([^%s]+)%s+([^%s]+)%s+"([^%s]+)"')
-                               if n == "linux" then
-                                       size = tonumber(s, 16)
-                                       break
-                               end
-                       end
-               elseif nixio.fs.access("/proc/partitions") then
-                       for l in io.lines("/proc/partitions") do
-                               local x, y, b, n = l:match('^%s*(%d+)%s+(%d+)%s+([^%s]+)%s+([^%s]+)')
-                               if b and n and not n:match('[0-9]') then
-                                       size = tonumber(b) * 1024
-                                       break
-                               end
-                       end
-               end
-               return size
-       end
-
-
-       -- Install upload handler
-       local file
-       luci.http.setfilehandler(
-               function(meta, chunk, eof)
-                       if not nixio.fs.access(tmpfile) and not file and chunk and #chunk > 0 then
-                               file = io.open(tmpfile, "w")
-                       end
-                       if file and chunk then
-                               file:write(chunk)
-                       end
-                       if file and eof then
-                               file:close()
-                       end
-               end
-       )
-
-
-       -- Determine state
-       local keep_avail   = true
-       local step         = tonumber(luci.http.formvalue("step") or 1)
-       local has_image    = nixio.fs.access(tmpfile)
-       local has_support  = image_supported()
-       local has_platform = nixio.fs.access("/lib/upgrade/platform.sh")
-       local has_upload   = luci.http.formvalue("image")
-       
-       -- This does the actual flashing which is invoked inside an iframe
-       -- so don't produce meaningful errors here because the the 
-       -- previous pages should arrange the stuff as required.
-       if step == 4 then
-               if has_platform and has_image and has_support then
-                       -- Mimetype text/plain
-                       luci.http.prepare_content("text/plain")
-                       luci.http.write("Starting luci-flash...\n")
-
-                       -- Now invoke sysupgrade
-                       local keepcfg = keep_avail and luci.http.formvalue("keepcfg") == "1"
-                       local flash = ltn12_popen("/sbin/luci-flash %s %q" %{
-                               keepcfg and "-k %q" % _keep_pattern() or "", tmpfile
-                       })
-
-                       luci.ltn12.pump.all(flash, luci.http.write)
-
-                       -- Make sure the device is rebooted
-                       luci.sys.reboot()
-               end
-
-
-       --
-       -- This is step 1-3, which does the user interaction and
-       -- image upload.
-       --
-
-       -- Step 1: file upload, error on unsupported image format
-       elseif not has_image or not has_support or step == 1 then
-               -- If there is an image but user has requested step 1
-               -- or type is not supported, then remove it.
-               if has_image then
-                       nixio.fs.unlink(tmpfile)
-               end
-                       
-               luci.template.render("mini/upgrade", {
-                       step=1,
-                       bad_image=(has_image and not has_support or false),
-                       keepavail=keep_avail,
-                       supported=has_platform
-               } )
-
-       -- Step 2: present uploaded file, show checksum, confirmation
-       elseif step == 2 then
-               luci.template.render("mini/upgrade", {
-                       step=2,
-                       checksum=image_checksum(),
-                       filesize=nixio.fs.stat(tmpfile).size,
-                       flashsize=storage_size(),
-                       keepconfig=(keep_avail and luci.http.formvalue("keepcfg") == "1")
-               } )
-       
-       -- Step 3: load iframe which calls the actual flash procedure
-       elseif step == 3 then
-               luci.template.render("mini/upgrade", {
-                       step=3,
-                       keepconfig=(keep_avail and luci.http.formvalue("keepcfg") == "1")
-               } )
-       end     
-end
-
-function _keep_pattern()
-       local kpattern = ""
-       local files = luci.model.uci.cursor():get_all("luci", "flash_keep")
-       if files then
-               kpattern = ""
-               for k, v in pairs(files) do
-                       if k:sub(1,1) ~= "." and nixio.fs.glob(v)() then
-                               kpattern = kpattern .. " " ..  v
-                       end
-               end
-       end
-       return kpattern
-end
-
-function ltn12_popen(command)
-
-       local fdi, fdo = nixio.pipe()
-       local pid = nixio.fork()
-
-       if pid > 0 then
-               fdo:close()
-               local close
-               return function()
-                       local buffer = fdi:read(2048)
-                       local wpid, stat = nixio.waitpid(pid, "nohang")
-                       if not close and wpid and stat == "exited" then
-                               close = true
-                       end
-
-                       if buffer and #buffer > 0 then
-                               return buffer
-                       elseif close then
-                               fdi:close()
-                               return nil
-                       end
-               end
-       elseif pid == 0 then
-               nixio.dup(fdo, nixio.stdout)
-               fdi:close()
-               fdo:close()
-               nixio.exec("/bin/sh", "-c", command)
-       end
-end
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/dhcp.lua b/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/dhcp.lua
deleted file mode 100644 (file)
index bcc26cd..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local uci = require "luci.model.uci".cursor()
-local sys = require "luci.sys"
-local wa  = require "luci.tools.webadmin"
-local fs  = require "nixio.fs"
-
-m = Map("dhcp", "DHCP")
-
-s = m:section(TypedSection, "dhcp", "DHCP-Server")
-s.anonymous = true
-s.addremove = false
-s.dynamic = false
-
-s:depends("interface", "lan")
-
-enable = s:option(ListValue, "ignore", translate("enable"), "")
-enable:value(0, translate("enable"))
-enable:value(1, translate("disable"))
-
-start = s:option(Value, "start", translate("First leased address"))
-start.rmempty = true
-start:depends("ignore", "0")
-
-
-limit = s:option(Value, "limit", translate("Number of leased addresses"), "")
-limit:depends("ignore", "0")
-
-function limit.cfgvalue(self, section)
-       local value = Value.cfgvalue(self, section)
-       
-       if value then
-               return tonumber(value) + 1
-       end 
-end
-
-function limit.write(self, section, value)
-       value = tonumber(value) - 1
-       return Value.write(self, section, value) 
-end
-
-limit.rmempty = true
-
-time = s:option(Value, "leasetime")
-time:depends("ignore", "0")
-time.rmempty = true
-
-
-local leasefn, leasefp, leases
-uci:foreach("dhcp", "dnsmasq",
- function(section)
-       leasefn = section.leasefile
- end
-) 
-local leasefp = leasefn and fs.access(leasefn) and io.lines(leasefn)
-if leasefp then
-       leases = {}
-       for lease in leasefp do
-               table.insert(leases, luci.util.split(lease, " "))
-       end
-end
-
-if leases then
-       v = m:section(Table, leases, translate("Active Leases"))
-       name = v:option(DummyValue, 4, translate("Hostname"))
-       function name.cfgvalue(self, ...)
-               local value = DummyValue.cfgvalue(self, ...)
-               return (value == "*") and "?" or value
-       end
-       ip = v:option(DummyValue, 3, translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"))
-       mac  = v:option(DummyValue, 2, translate("<abbr title=\"Media Access Control\">MAC</abbr>-Address"))
-       ltime = v:option(DummyValue, 1, translate("Leasetime remaining"))
-       function ltime.cfgvalue(self, ...)
-               local value = DummyValue.cfgvalue(self, ...)
-               return wa.date_format(os.difftime(tonumber(value), os.time()))
-       end
-end
-
-s2 = m:section(TypedSection, "host", translate("Static Leases"))
-s2.addremove = true
-s2.anonymous = true
-s2.template = "cbi/tblsection"
-
-name = s2:option(Value, "name", translate("Hostname"))
-mac = s2:option(Value, "mac", translate("<abbr title=\"Media Access Control\">MAC</abbr>-Address"))
-ip = s2:option(Value, "ip", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"))
-
-sys.host_hints(function(m, v4, v6, name)
-       if m and v4 then
-               ip:value(v4)
-               mac:value(m, "%s (%s)" %{ m, name or v4 })
-       end
-end)
-
-return m
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/index.lua b/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/index.lua
deleted file mode 100644 (file)
index 9ecee1a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-return Template("mini/index")
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/luci.lua b/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/luci.lua
deleted file mode 100644 (file)
index a1ef0fe..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-require "luci.config"
-local fs = require "nixio.fs"
-
-m = Map("luci", translate("Web <abbr title=\"User Interface\">UI</abbr>"), translate("Here you can customize the settings and the functionality of <abbr title=\"Lua Configuration Interface\">LuCI</abbr>."))
-
--- force reload of global luci config namespace to reflect the changes
-function m.commit_handler(self)
-       package.loaded["luci.config"] = nil
-       require "luci.config"
-end
-
-
-c = m:section(NamedSection, "main", "core", translate("General"))
-
-l = c:option(ListValue, "lang", translate("Language"))
-l:value("auto")
-
-local i18ndir = luci.i18n.i18ndir .. "base."
-for k, v in luci.util.kspairs(luci.config.languages) do
-       local file = i18ndir .. k:gsub("_", "-")
-       if k:sub(1, 1) ~= "." and fs.access(file .. ".lmo") then
-               l:value(k, v)
-       end
-end
-
-t = c:option(ListValue, "mediaurlbase", translate("Design"))
-for k, v in pairs(luci.config.themes) do
-       if k:sub(1, 1) ~= "." then
-               t:value(v, k)
-       end
-end
-
-return m
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/network.lua b/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/network.lua
deleted file mode 100644 (file)
index 7bc4df8..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local wa  = require "luci.tools.webadmin"
-local sys = require "luci.sys"
-local fs  = require "nixio.fs"
-local nx  = require "nixio"
-
-local has_pptp  = fs.access("/usr/sbin/pptp")
-local has_pppoe = fs.glob("/usr/lib/pppd/*/rp-pppoe.so")()
-
-local network = luci.model.uci.cursor_state():get_all("network")
-
-local netstat = {}
-local ifaces = {}
-
-local k, v
-for k, v in ipairs(nx.getifaddrs()) do
-       if v.family == "packet" then
-               local d = v.data
-               d[1] = d.rx_bytes
-               d[2] = d.rx_packets
-               d[3] = d.rx_errors
-               d[4] = d.rx_dropped
-               d[5] = 0
-               d[6] = 0
-               d[7] = 0
-               d[8] = d.multicast
-               d[9] = d.tx_bytes
-               d[10] = d.tx_packets
-               d[11] = d.tx_errors
-               d[12] = d.tx_dropped
-               d[13] = 0
-               d[14] = d.collisions
-               d[15] = 0
-               d[16] = 0
-               netstat[v.name] = d
-       end
-end
-
-for k, v in pairs(network) do
-       if v[".type"] == "interface" and k ~= "loopback" then
-               table.insert(ifaces, v)
-       end
-end
-
-m = Map("network", translate("Network"))
-s = m:section(Table, ifaces, translate("Status"))
-s.parse = function() end
-
-s:option(DummyValue, ".name", translate("Network"))
-
-hwaddr = s:option(DummyValue, "_hwaddr",
- translate("<abbr title=\"Media Access Control\">MAC</abbr>-Address"), translate("Hardware Address"))
-function hwaddr.cfgvalue(self, section)
-       local ix = self.map:get(section, "ifname") or ""
-       local mac = fs.readfile("/sys/class/net/" .. ix .. "/address")
-
-       if not mac then
-               mac = luci.util.exec("ifconfig " .. ix)
-               mac = mac and mac:match(" ([A-F0-9:]+)%s*\n")
-       end
-
-       if mac and #mac > 0 then
-               return mac:upper()
-       end
-
-       return "?"
-end
-
-
-s:option(DummyValue, "ipaddr", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"))
-
-s:option(DummyValue, "netmask", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"))
-
-
-txrx = s:option(DummyValue, "_txrx",
- translate("Traffic"), translate("transmitted / received"))
-
-function txrx.cfgvalue(self, section)
-       local ix = self.map:get(section, "ifname")
-
-       local rx = netstat and netstat[ix] and netstat[ix][1]
-       rx = rx and wa.byte_format(tonumber(rx)) or "-"
-
-       local tx = netstat and netstat[ix] and netstat[ix][9]
-       tx = tx and wa.byte_format(tonumber(tx)) or "-"
-
-       return string.format("%s / %s", tx, rx)
-end
-
-errors = s:option(DummyValue, "_err",
- translate("Errors"), translate("TX / RX"))
-
-function errors.cfgvalue(self, section)
-       local ix = self.map:get(section, "ifname")
-
-       local rx = netstat and netstat[ix] and netstat[ix][3]
-       local tx = netstat and netstat[ix] and netstat[ix][11]
-
-       rx = rx and tostring(rx) or "-"
-       tx = tx and tostring(tx) or "-"
-
-       return string.format("%s / %s", tx, rx)
-end
-
-
-
-s = m:section(NamedSection, "lan", "interface", translate("Local Network"))
-s.addremove = false
-s:option(Value, "ipaddr", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"))
-
-nm = s:option(Value, "netmask", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"))
-nm:value("255.255.255.0")
-nm:value("255.255.0.0")
-nm:value("255.0.0.0")
-
-gw = s:option(Value, "gateway", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway") .. translate(" (optional)"))
-gw.rmempty = true
-dns = s:option(Value, "dns", translate("<abbr title=\"Domain Name System\">DNS</abbr>-Server") .. translate(" (optional)"))
-dns.rmempty = true
-
-
-s = m:section(NamedSection, "wan", "interface", translate("Internet Connection"))
-s.addremove = false
-p = s:option(ListValue, "proto", translate("Protocol"))
-p.override_values = true
-p:value("none", "disabled")
-p:value("static", translate("manual"))
-p:value("dhcp", translate("automatic"))
-if has_pppoe then p:value("pppoe", "PPPoE") end
-if has_pptp  then p:value("pptp",  "PPTP")  end
-
-function p.write(self, section, value)
-       -- Always set defaultroute to PPP and use remote dns
-       -- Overwrite a bad variable behaviour in OpenWrt
-       if value == "pptp" or value == "pppoe" then
-               self.map:set(section, "peerdns", "1")
-               self.map:set(section, "defaultroute", "1")
-       end
-       return ListValue.write(self, section, value)
-end
-
-if not ( has_pppoe and has_pptp ) then
-       p.description = translate("You need to install \"ppp-mod-pppoe\" for PPPoE or \"pptp\" for PPtP support")
-end
-
-
-ip = s:option(Value, "ipaddr", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"))
-ip:depends("proto", "static")
-
-nm = s:option(Value, "netmask", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"))
-nm:depends("proto", "static")
-
-gw = s:option(Value, "gateway", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"))
-gw:depends("proto", "static")
-gw.rmempty = true
-
-dns = s:option(Value, "dns", translate("<abbr title=\"Domain Name System\">DNS</abbr>-Server"))
-dns:depends("proto", "static")
-dns.rmempty = true
-
-usr = s:option(Value, "username", translate("Username"))
-usr:depends("proto", "pppoe")
-usr:depends("proto", "pptp")
-
-pwd = s:option(Value, "password", translate("Password"))
-pwd.password = true
-pwd:depends("proto", "pppoe")
-pwd:depends("proto", "pptp")
-
-
--- Allow user to set MSS correction here if the UCI firewall is installed
--- This cures some cancer for providers with pre-war routers
-if fs.access("/etc/config/firewall") then
-       mssfix = s:option(Flag, "_mssfix",
-               translate("Clamp Segment Size"), translate("Fixes problems with unreachable websites, submitting forms or other unexpected behaviour for some ISPs."))
-       mssfix.rmempty = false
-
-       function mssfix.cfgvalue(self)
-               local value
-               m.uci:foreach("firewall", "forwarding", function(s)
-                       if s.src == "lan" and s.dest == "wan" then
-                               value = s.mtu_fix
-                       end
-               end)
-               return value
-       end
-
-       function mssfix.write(self, section, value)
-               m.uci:foreach("firewall", "forwarding", function(s)
-                       if s.src == "lan" and s.dest == "wan" then
-                               m.uci:set("firewall", s[".name"], "mtu_fix", value)
-                               m:chain("firewall")
-                       end
-               end)
-       end
-end
-
-kea = s:option(Flag, "keepalive", translate("automatically reconnect"))
-kea:depends("proto", "pppoe")
-kea:depends("proto", "pptp")
-kea.rmempty = true
-kea.enabled = "10"
-
-
-cod = s:option(Value, "demand", translate("disconnect when idle for"), "s")
-cod:depends("proto", "pppoe")
-cod:depends("proto", "pptp")
-cod.rmempty = true
-
-srv = s:option(Value, "server", translate("<abbr title=\"Point-to-Point Tunneling Protocol\">PPTP</abbr>-Server"))
-srv:depends("proto", "pptp")
-srv.rmempty = true
-
-
-
-return m
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/passwd.lua b/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/passwd.lua
deleted file mode 100644 (file)
index 39123a7..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-f = SimpleForm("password", translate("Admin Password"), translate("Change the password of the system administrator (User <code>root</code>)"))
-
-pw1 = f:field(Value, "pw1", translate("Password"))
-pw1.password = true
-pw1.rmempty = false
-
-pw2 = f:field(Value, "pw2", translate("Confirmation"))
-pw2.password = true
-pw2.rmempty = false
-
-function pw2.validate(self, value, section)
-       return pw1:formvalue(section) == value and value
-end
-
-function f.handle(self, state, data)
-       if state == FORM_VALID then
-               local stat = luci.sys.user.setpasswd("root", data.pw1) == 0
-               
-               if stat then
-                       f.message = translate("Password successfully changed")
-               else
-                       f.errmessage = translate("Unknown Error")
-               end
-               
-               data.pw1 = nil
-               data.pw2 = nil
-       end
-       return true
-end
-
-return f
\ No newline at end of file
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/system.lua b/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/system.lua
deleted file mode 100644 (file)
index b621ad0..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-require("luci.sys")
-require("luci.sys.zoneinfo")
-require("luci.tools.webadmin")
-require("luci.util")
-
-
-m = Map("system", translate("System"), translate("Here you can configure the basic aspects of your device like its hostname or the timezone."))
-
-s = m:section(TypedSection, "system", "")
-s.anonymous = true
-s.addremove = false
-
-
-local sysinfo = luci.util.ubus("system", "info") or { }
-local boardinfo = luci.util.ubus("system", "board") or { }
-
-local uptime = sysinfo.uptime or 0
-local loads = sysinfo.load or { 0, 0, 0 }
-local memory = sysinfo.memory or {
-       total = 0,
-       free = 0,
-       buffered = 0,
-       shared = 0
-}
-
-s:option(DummyValue, "_system", translate("Model")).value = boardinfo.model or "?"
-s:option(DummyValue, "_cpu", translate("System")).value = boardinfo.system or "?"
-
-s:option(DummyValue, "_la", translate("Load")).value =
- string.format("%.2f, %.2f, %.2f", loads[1] / 65535.0, loads[2] / 65535.0, loads[3] / 65535.0)
-
-s:option(DummyValue, "_memtotal", translate("Memory")).value =
- string.format("%.2f MB (%.0f%% %s, %.0f%% %s)",
-  tonumber(memory.total) / 1024 / 1024,
-  100 * memory.buffered / memory.total,
-  tostring(translate("buffered")),
-  100 * memory.free / memory.total,
-  tostring(translate("free"))
-)
-
-s:option(DummyValue, "_systime", translate("Local Time")).value =
- os.date("%c")
-
-s:option(DummyValue, "_uptime", translate("Uptime")).value =
- luci.tools.webadmin.date_format(tonumber(uptime))
-
-hn = s:option(Value, "hostname", translate("Hostname"))
-
-function hn.write(self, section, value)
-       Value.write(self, section, value)
-       luci.sys.hostname(value)
-end
-
-
-tz = s:option(ListValue, "zonename", translate("Timezone"))
-tz:value("UTC")
-
-for i, zone in ipairs(luci.sys.zoneinfo.TZ) do
-        tz:value(zone[1])
-end
-
-function tz.write(self, section, value)
-        local function lookup_zone(title)
-                for _, zone in ipairs(luci.sys.zoneinfo.TZ) do
-                        if zone[1] == title then return zone[2] end
-                end
-        end
-
-        AbstractValue.write(self, section, value)
-        self.map.uci:set("system", section, "timezone", lookup_zone(value) or "GMT0")
-end
-
-return m
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/wifi.lua b/package/luci/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/wifi.lua
deleted file mode 100644 (file)
index ec929f1..0000000
+++ /dev/null
@@ -1,350 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
--- Data init --
-
-local fs  = require "nixio.fs"
-local sys = require "luci.sys"
-local uci = require "luci.model.uci".cursor()
-
-if not uci:get("network", "wan") then
-       uci:section("network", "interface", "wan", {proto="none", ifname=" "})
-       uci:save("network")
-       uci:commit("network")
-end
-
-local wlcursor = luci.model.uci.cursor_state()
-local wireless = wlcursor:get_all("wireless")
-local wifidevs = {}
-local ifaces = {}
-
-for k, v in pairs(wireless) do
-       if v[".type"] == "wifi-iface" then
-               table.insert(ifaces, v)
-       end
-end
-
-wlcursor:foreach("wireless", "wifi-device",
-       function(section)
-               table.insert(wifidevs, section[".name"])
-       end)
-
-
--- Main Map --
-
-m = Map("wireless", translate("Wireless"), translate("Here you can configure installed wifi devices."))
-m:chain("network")
-
-
--- Status Table --
-s = m:section(Table, ifaces, translate("Networks"))
-
-link = s:option(DummyValue, "_link", translate("Link"))
-function link.cfgvalue(self, section)
-       local ifname = self.map:get(section, "ifname")
-       local iwinfo = sys.wifi.getiwinfo(ifname)
-       return iwinfo and "%d/%d" %{ iwinfo.quality, iwinfo.quality_max } or "-"
-end
-
-essid = s:option(DummyValue, "ssid", "ESSID")
-
-bssid = s:option(DummyValue, "_bsiid", "BSSID")
-function bssid.cfgvalue(self, section)
-       local ifname = self.map:get(section, "ifname")
-       local iwinfo = sys.wifi.getiwinfo(ifname)
-       return iwinfo and iwinfo.bssid or "-"
-end
-
-channel = s:option(DummyValue, "channel", translate("Channel"))
-function channel.cfgvalue(self, section)
-       return wireless[self.map:get(section, "device")].channel
-end
-
-protocol = s:option(DummyValue, "_mode", translate("Protocol"))
-function protocol.cfgvalue(self, section)
-       local mode = wireless[self.map:get(section, "device")].mode
-       return mode and "802." .. mode
-end
-
-mode = s:option(DummyValue, "mode", translate("Mode"))
-encryption = s:option(DummyValue, "encryption", translate("<abbr title=\"Encrypted\">Encr.</abbr>"))
-
-power = s:option(DummyValue, "_power", translate("Power"))
-function power.cfgvalue(self, section)
-       local ifname = self.map:get(section, "ifname")
-       local iwinfo = sys.wifi.getiwinfo(ifname)
-       return iwinfo and "%d dBm" % iwinfo.txpower or "-"
-end
-
-scan = s:option(Button, "_scan", translate("Scan"))
-scan.inputstyle = "find"
-
-function scan.cfgvalue(self, section)
-       return self.map:get(section, "ifname") or false
-end
-
--- WLAN-Scan-Table --
-
-t2 = m:section(Table, {}, translate("<abbr title=\"Wireless Local Area Network\">WLAN</abbr>-Scan"), translate("Wifi networks in your local environment"))
-
-function scan.write(self, section)
-       m.autoapply = false
-       t2.render = t2._render
-       local ifname = self.map:get(section, "ifname")
-       local iwinfo = sys.wifi.getiwinfo(ifname)
-       if iwinfo then
-               local _, cell
-               for _, cell in ipairs(iwinfo.scanlist) do
-                       t2.data[#t2.data+1] = {
-                               Quality = "%d/%d" %{ cell.quality, cell.quality_max },
-                               ESSID   = cell.ssid,
-                               Address = cell.bssid,
-                               Mode    = cell.mode,
-                               ["Encryption key"] = cell.encryption.enabled and "On" or "Off",
-                               ["Signal level"]   = "%d dBm" % cell.signal,
-                               ["Noise level"]    = "%d dBm" % iwinfo.noise
-                       }
-               end
-       end
-end
-
-t2._render = t2.render
-t2.render = function() end
-
-t2:option(DummyValue, "Quality", translate("Link"))
-essid = t2:option(DummyValue, "ESSID", "ESSID")
-function essid.cfgvalue(self, section)
-       return self.map:get(section, "ESSID")
-end
-
-t2:option(DummyValue, "Address", "BSSID")
-t2:option(DummyValue, "Mode", translate("Mode"))
-chan = t2:option(DummyValue, "channel", translate("Channel"))
-function chan.cfgvalue(self, section)
-       return self.map:get(section, "Channel")
-           or self.map:get(section, "Frequency")
-           or "-"
-end
-
-t2:option(DummyValue, "Encryption key", translate("<abbr title=\"Encrypted\">Encr.</abbr>"))
-
-t2:option(DummyValue, "Signal level", translate("Signal"))
-
-t2:option(DummyValue, "Noise level", translate("Noise"))
-
-
-
-if #wifidevs < 1 then
-       return m
-end
-
--- Config Section --
-
-s = m:section(NamedSection, wifidevs[1], "wifi-device", translate("Devices"))
-s.addremove = false
-
-en = s:option(Flag, "disabled", translate("enable"))
-en.rmempty = false
-en.enabled = "0"
-en.disabled = "1"
-
-function en.cfgvalue(self, section)
-       return Flag.cfgvalue(self, section) or "0"
-end
-
-
-local hwtype = m:get(wifidevs[1], "type")
-
-ch = s:option(Value, "channel", translate("Channel"))
-for i=1, 14 do
-       ch:value(i, i .. " (2.4 GHz)")
-end
-
-
-s = m:section(TypedSection, "wifi-iface", translate("Local Network"))
-s.anonymous = true
-s.addremove = false
-
-s:option(Value, "ssid", translate("Network Name (<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>)"))
-
-bssid = s:option(Value, "bssid", translate("<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"))
-
-local devs = {}
-luci.model.uci.cursor():foreach("wireless", "wifi-device",
-       function (section)
-               table.insert(devs, section[".name"])
-       end)
-
-if #devs > 1 then
-       device = s:option(DummyValue, "device", translate("Device"))
-else
-       s.defaults.device = devs[1]
-end
-
-mode = s:option(ListValue, "mode", translate("Mode"))
-mode.override_values = true
-mode:value("ap", translate("Provide (Access Point)"))
-mode:value("adhoc", translate("Independent (Ad-Hoc)"))
-mode:value("sta", translate("Join (Client)"))
-
-function mode.write(self, section, value)
-       if value == "sta" then
-               local oldif = m.uci:get("network", "wan", "ifname")
-               if oldif and oldif ~= " " then
-                       m.uci:set("network", "wan", "_ifname", oldif)
-               end
-               m.uci:set("network", "wan", "ifname", " ")
-
-               self.map:set(section, "network", "wan")
-       else
-               if m.uci:get("network", "wan", "_ifname") then
-                       m.uci:set("network", "wan", "ifname", m.uci:get("network", "wan", "_ifname"))
-               end
-               self.map:set(section, "network", "lan")
-       end
-
-       return ListValue.write(self, section, value)
-end
-
-encr = s:option(ListValue, "encryption", translate("Encryption"))
-encr.override_values = true
-encr:value("none", "No Encryption")
-encr:value("wep", "WEP")
-
-if hwtype == "mac80211" then
-       local supplicant = fs.access("/usr/sbin/wpa_supplicant")
-       local hostapd    = fs.access("/usr/sbin/hostapd")
-
-       if hostapd and supplicant then
-               encr:value("psk", "WPA-PSK")
-               encr:value("psk2", "WPA2-PSK")
-               encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode")
-               encr:value("wpa", "WPA-Radius", {mode="ap"}, {mode="sta"})
-               encr:value("wpa2", "WPA2-Radius", {mode="ap"}, {mode="sta"})
-       elseif hostapd and not supplicant then
-               encr:value("psk", "WPA-PSK", {mode="ap"}, {mode="adhoc"})
-               encr:value("psk2", "WPA2-PSK", {mode="ap"}, {mode="adhoc"})
-               encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="ap"}, {mode="adhoc"})
-               encr:value("wpa", "WPA-Radius", {mode="ap"})
-               encr:value("wpa2", "WPA2-Radius", {mode="ap"})
-               encr.description = translate(
-                       "WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP " ..
-                       "and ad-hoc mode) to be installed."
-               )
-       elseif not hostapd and supplicant then
-               encr:value("psk", "WPA-PSK", {mode="sta"})
-               encr:value("psk2", "WPA2-PSK", {mode="sta"})
-               encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="sta"})
-               encr:value("wpa", "WPA-EAP", {mode="sta"})
-               encr:value("wpa2", "WPA2-EAP", {mode="sta"})
-               encr.description = translate(
-                       "WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP " ..
-                       "and ad-hoc mode) to be installed."
-               )               
-       else
-               encr.description = translate(
-                       "WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP " ..
-                       "and ad-hoc mode) to be installed."
-               )
-       end
-elseif hwtype == "broadcom" then
-       encr:value("psk", "WPA-PSK")
-       encr:value("psk2", "WPA2-PSK")
-       encr:value("psk+psk2", "WPA-PSK/WPA2-PSK Mixed Mode")
-end
-
-key = s:option(Value, "key", translate("Key"))
-key:depends("encryption", "wep")
-key:depends("encryption", "psk")
-key:depends("encryption", "psk2")
-key:depends("encryption", "psk+psk2")
-key:depends("encryption", "psk-mixed")
-key:depends({mode="ap", encryption="wpa"})
-key:depends({mode="ap", encryption="wpa2"})
-key.rmempty = true
-key.password = true
-
-server = s:option(Value, "server", translate("Radius-Server"))
-server:depends({mode="ap", encryption="wpa"})
-server:depends({mode="ap", encryption="wpa2"})
-server.rmempty = true
-
-port = s:option(Value, "port", translate("Radius-Port"))
-port:depends({mode="ap", encryption="wpa"})
-port:depends({mode="ap", encryption="wpa2"})
-port.rmempty = true
-
-
-if hwtype == "mac80211" then
-       nasid = s:option(Value, "nasid", translate("NAS ID"))
-       nasid:depends({mode="ap", encryption="wpa"})
-       nasid:depends({mode="ap", encryption="wpa2"})
-       nasid.rmempty = true
-
-       eaptype = s:option(ListValue, "eap_type", translate("EAP-Method"))
-       eaptype:value("TLS")
-       eaptype:value("TTLS")
-       eaptype:value("PEAP")
-       eaptype:depends({mode="sta", encryption="wpa"})
-       eaptype:depends({mode="sta", encryption="wpa2"})
-
-       cacert = s:option(FileUpload, "ca_cert", translate("Path to CA-Certificate"))
-       cacert:depends({mode="sta", encryption="wpa"})
-       cacert:depends({mode="sta", encryption="wpa2"})
-
-       privkey = s:option(FileUpload, "priv_key", translate("Path to Private Key"))
-       privkey:depends({mode="sta", eap_type="TLS", encryption="wpa2"})
-       privkey:depends({mode="sta", eap_type="TLS", encryption="wpa"})
-
-       privkeypwd = s:option(Value, "priv_key_pwd", translate("Password of Private Key"))
-       privkeypwd:depends({mode="sta", eap_type="TLS", encryption="wpa2"})
-       privkeypwd:depends({mode="sta", eap_type="TLS", encryption="wpa"})
-
-
-       auth = s:option(Value, "auth", translate("Authentication"))
-       auth:value("PAP")
-       auth:value("CHAP")
-       auth:value("MSCHAP")
-       auth:value("MSCHAPV2")
-       auth:depends({mode="sta", eap_type="PEAP", encryption="wpa2"})
-       auth:depends({mode="sta", eap_type="PEAP", encryption="wpa"})
-       auth:depends({mode="sta", eap_type="TTLS", encryption="wpa2"})
-       auth:depends({mode="sta", eap_type="TTLS", encryption="wpa"})
-
-
-       identity = s:option(Value, "identity", translate("Identity"))
-       identity:depends({mode="sta", eap_type="PEAP", encryption="wpa2"})
-       identity:depends({mode="sta", eap_type="PEAP", encryption="wpa"})
-       identity:depends({mode="sta", eap_type="TTLS", encryption="wpa2"})
-       identity:depends({mode="sta", eap_type="TTLS", encryption="wpa"})
-
-       password = s:option(Value, "password", translate("Password"))
-       password:depends({mode="sta", eap_type="PEAP", encryption="wpa2"})
-       password:depends({mode="sta", eap_type="PEAP", encryption="wpa"})
-       password:depends({mode="sta", eap_type="TTLS", encryption="wpa2"})
-       password:depends({mode="sta", eap_type="TTLS", encryption="wpa"})
-end
-
-
-if hwtype == "broadcom" then
-       iso = s:option(Flag, "isolate", translate("AP-Isolation"), translate("Prevents Client to Client communication"))
-       iso.rmempty = true
-       iso:depends("mode", "ap")
-
-       hide = s:option(Flag, "hidden", translate("Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"))
-       hide.rmempty = true
-       hide:depends("mode", "ap")
-end
-
-if hwtype == "mac80211" then
-       bssid:depends({mode="adhoc"})
-end
-
-if hwtype == "broadcom" then
-       bssid:depends({mode="wds"})
-       bssid:depends({mode="adhoc"})
-end
-
-
-return m
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/applyreboot.htm b/package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/applyreboot.htm
deleted file mode 100644 (file)
index d33a2ca..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-<h2 name="content"><%:System%></h2>
-<br />
-<p><% if msg then %><%=msg%><% else %><%:Changes applied.%><% end %></p>
-<p><%:Please wait: Device rebooting...%></p>
-<script type="text/javascript">setTimeout("location='<%=controller%>'", 60000)</script>
-<%+footer%>
\ No newline at end of file
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/backup.htm b/package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/backup.htm
deleted file mode 100644 (file)
index efc6aa7..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-<h2 name="content"><%:System%></h2>
-<h3><%:Backup / Restore%></h3>
-<p><%:Here you can backup and restore your configuration and - if possible - reset this device to the default settings.%></p>
-<br />
-<div>
-       <ul>
-       <li><a href="<%=REQUEST_URI%>?backup=kthxbye"><%:Create backup%></a></li>
-       <% if reset_avail then -%>
-       <li><a href="<%=REQUEST_URI%>?reset=yarly" onclick="return confirm('<%:Proceed reverting all settings and resetting to firmware defaults?%>')"><%:Reset this device to defaults%></a></li>
-       <% end -%>
-       </ul>
-</div>
-
-<br />
-
-<form method="post" action="<%=REQUEST_URI%>" enctype="multipart/form-data">
-       <div class="left"><%:Backup Archive%>:</div>
-       <div>
-               <input type="file" size="30" name="archive" />
-       </div>
-       <div>
-               <input type="submit" class="cbi-button cbi-input-apply" value="<%:Restore backup%>" />
-       </div>
-</form>
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/index.htm b/package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/index.htm
deleted file mode 100644 (file)
index 621e3cb..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<h2 name="content"><%:Hello!%></h2>
-<p><%_This is the administration area of <abbr title="Lua Configuration Interface">LuCI</abbr>.%></p>
-<p><%_<abbr title="Lua Configuration Interface">LuCI</abbr> is a free, flexible, and user friendly graphical interface for configuring OpenWrt.%><br />
-<%:On the following pages you can adjust all important settings of this device.%></p>
-<p><%:As we always want to improve this interface we are looking forward to your feedback and suggestions.%></p>
-<p><%:And now have fun with your device!%></p>
-<p><em><strong><a href="<%=controller%>/about"><%_The <abbr title="Lua Configuration Interface">LuCI</abbr> Team%></a></strong></em></p>
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/reboot.htm b/package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/reboot.htm
deleted file mode 100644 (file)
index f70e7c9..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-<h2 name="content"><%:System%></h2>
-<h3><%:Reboot%></h3>
-<p><%:Reboots the operating system of your device%></p>
-<%-
-local c = require("luci.model.uci").cursor():changes()
-if c and next(c) then
--%>
-       <p class="warning"><%:Warning: There are unsaved changes that will be lost while rebooting!%></p> 
-<%-
-end
-if not reboot then 
--%>
-<p><a href="<%=REQUEST_URI%>?reboot=1"><%:Perform reboot%></a></p>
-<%- else -%>
-<p><%:Please wait: Device rebooting...%></p>
-<script type="text/javascript">setTimeout("location='<%=controller%>'", 60000)</script>
-<%- end -%>
-<%+footer%>
\ No newline at end of file
diff --git a/package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/upgrade.htm b/package/luci/modules/luci-mod-admin-mini/luasrc/view/mini/upgrade.htm
deleted file mode 100644 (file)
index ef3e2e8..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2009 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<h2 name="content"><%:System%></h2>
-<h3><%:Flash Firmware%></h3>
-
-<% if step == 1 then %>
-       <% if supported then %>
-       <form method="post" action="<%=REQUEST_URI%>" enctype="multipart/form-data">
-       <p>
-               <%:Upload a sysupgrade-compatible image file to reflash the device.%>
-               <% if bad_image then %>
-                       <br /><br />
-                       <div class="error"><%:The uploaded image file does not
-                               contain a supported format. Make sure that you choose the generic
-                               image format for your platform. %></div>
-               <% end %>
-       </p>
-       <div>
-               <%:Firmware image%>:<br />
-               <input type="hidden" name="step" value="2" />
-               <input type="file" size="30" name="image" />
-               <br />
-               <br />
-               <% if keepavail then -%>
-               <input type="checkbox" name="keepcfg" value="1" checked="checked" />
-               <span class="bold"><%:Keep configuration files%></span>
-               <% end -%>
-
-               <br />
-               <input class="cbi-button cbi-button-apply" type="submit" value="<%:Upload image%>" />
-       </div>
-       </form>
-       <% else %>
-               <div class="error"><%_ Sorry.
-                       A system upgrade is not supported on this platform.<br />
-                       You need to manually flash your device. %></div>
-       <% end %>
-<% elseif step == 2 then %>
-       <p>
-               <%_ The flash image was uploaded.
-                       Below is the checksum and file size listed,
-                       compare them with the original file to ensure data integrity.<br />
-                       Click "Proceed" below to start the flash procedure. %>
-
-               <% if flashsize > 0 and filesize > flashsize then %>
-                       <br /><br />
-                       <div class="error"><%:It appears that you are trying to
-                               flash an image that does not fit into the flash memory, please verify
-                               the image file! %></div>
-               <% end %>
-
-               <br />
-               <ul>
-                       <li><%:Checksum%>: <code><%=checksum%></code></li>
-                       <li><%:Size%>: <%
-                               local w = require "luci.tools.webadmin"
-                               write(w.byte_format(filesize))
-       
-                               if flashsize > 0 then
-                                       write(luci.i18n.translatef(
-                                               " (%s available)",
-                                               w.byte_format(flashsize)
-                                       ))
-                               end
-                       %></li>
-               </ul>
-       </p>
-       <div class="cbi-page-actions right">
-               <form style="display:inline">
-                       <input type="hidden" name="step" value="3" />
-                       <input type="hidden" name="keepcfg" value="<%=keepconfig and "1" or "0"%>" />
-                       <input class="cbi-button cbi-button-apply" type="submit" value="<%:Proceed%>" />        
-               </form>
-               <form style="display:inline">
-                       <input type="hidden" name="step" value="1" />
-                       <input type="hidden" name="keepcfg" value="<%=keepconfig and "1" or "0"%>" />
-                       <input class="cbi-button cbi-button-reset" type="submit" value="<%:Cancel%>" />
-               </form>
-       </div>
-<% elseif step == 3 then %>
-       <p><%_ The system is flashing now.<br />
-               DO NOT POWER OFF THE DEVICE!<br />
-               Wait a few minutes before you try to reconnect.
-               It might be necessary to renew the address of your computer to reach the device
-               again, depending on your settings. %></p>
-               
-       <iframe src="<%=REQUEST_URI%>?step=4&#38;keepcfg=<%=keepconfig and "1" or "0"%>" style="border:1px solid black; width:100%; height:150px"></iframe>
-<% end %>
-<%+footer%>
-
diff --git a/package/luci/modules/luci-mod-failsafe/Makefile b/package/luci/modules/luci-mod-failsafe/Makefile
deleted file mode 100644 (file)
index 8afc614..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI Fail-Safe - Fail-Safe sysupgrade module
-LUCI_DEPENDS:=+luci-base
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
-
diff --git a/package/luci/modules/luci-mod-failsafe/luasrc/controller/failsafe/failsafe.lua b/package/luci/modules/luci-mod-failsafe/luasrc/controller/failsafe/failsafe.lua
deleted file mode 100644 (file)
index 60caadb..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008-2011 Jo-Philipp Wich <jow@openwrt.org>
--- Copyright 2012 Daniel Golle <dgolle@allnet.de>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.failsafe.failsafe", package.seeall)
-
-function index()
-       local root = node()
-       if not root.target then
-               root.target = alias("failsafe")
-               root.index = true
-       end
-
-       page          = node()
-       page.lock     = true
-       page.target   = alias("failsafe")
-       page.subindex = true
-       page.index    = false
-
-       page          = node("failsafe")
-       page.title    = _("Fail-safe")
-       page.target   = alias("failsafe", "flashops")
-       page.order    = 5
-       page.setuser  = "root"
-       page.setgroup = "root"
-       page.index    = true
-
-       entry({"failsafe", "flashops"}, call("action_flashops"), _("Flash Firmware"), 70).index = true
-       entry({"failsafe", "reboot"}, call("action_reboot"), _("Reboot"), 90)
-end
-
-function action_flashops()
-       local sys = require "luci.sys"
-       local fs  = require "nixio.fs"
-
-       local upgrade_avail = fs.access("/lib/upgrade/platform.sh")
-       local reset_avail   = os.execute([[grep '"rootfs_data"' /proc/mtd >/dev/null 2>&1]]) == 0
-
-       local image_tmp   = "/tmp/firmware.img"
-
-       local function image_supported()
-               -- XXX: yay...
-               return ( 0 == os.execute(
-                       ". /lib/functions.sh; " ..
-                       "include /lib/upgrade; " ..
-                       "platform_check_image %q >/dev/null"
-                               % image_tmp
-               ) )
-       end
-
-       local function image_checksum()
-               return (luci.sys.exec("md5sum %q" % image_tmp):match("^([^%s]+)"))
-       end
-
-       local function storage_size()
-               local size = 0
-               if fs.access("/proc/mtd") then
-                       for l in io.lines("/proc/mtd") do
-                               local d, s, e, n = l:match('^([^%s]+)%s+([^%s]+)%s+([^%s]+)%s+"([^%s]+)"')
-                               if n == "linux" or n == "firmware" then
-                                       size = tonumber(s, 16)
-                                       break
-                               end
-                       end
-               elseif fs.access("/proc/partitions") then
-                       for l in io.lines("/proc/partitions") do
-                               local x, y, b, n = l:match('^%s*(%d+)%s+(%d+)%s+([^%s]+)%s+([^%s]+)')
-                               if b and n and not n:match('[0-9]') then
-                                       size = tonumber(b) * 1024
-                                       break
-                               end
-                       end
-               end
-               return size
-       end
-
-
-       local fp
-       luci.http.setfilehandler(
-               function(meta, chunk, eof)
-                       if not fp then
-                               if meta and meta.name == "image" then
-                                       fp = io.open(image_tmp, "w")
-                               end
-                       end
-                       if fp then
-                               if chunk then
-                                       fp:write(chunk)
-                               end
-                               if eof then
-                                       fp:close()
-                               end
-                       end
-               end
-       )
-
-       if luci.http.formvalue("image") or luci.http.formvalue("step") then
-               --
-               -- Initiate firmware flash
-               --
-               local step = tonumber(luci.http.formvalue("step") or 1)
-               if step == 1 then
-                       if image_supported() then
-                               luci.template.render("failsafe/upgrade", {
-                                       checksum = image_checksum(),
-                                       storage  = storage_size(),
-                                       size     = (fs.stat(image_tmp, "size") or 0),
-                                       keep     = false
-                               })
-                       else
-                               fs.unlink(image_tmp)
-                               luci.template.render("failsafe/flashops", {
-                                       reset_avail   = reset_avail,
-                                       upgrade_avail = upgrade_avail,
-                                       image_invalid = true
-                               })
-                       end
-               --
-               -- Start sysupgrade flash
-               --
-               elseif step == 2 then
-                       local keep = (luci.http.formvalue("keep") == "1") and "" or "-n"
-                       luci.template.render("failsafe/applyreboot", {
-                               title = luci.i18n.translate("Flashing..."),
-                               msg   = luci.i18n.translate("The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."),
-                               addr  = (#keep > 0) and "192.168.1.1" or nil
-                       })
-                       fork_exec("killall dropbear uhttpd; sleep 1; /sbin/sysupgrade %s %q" %{ keep, image_tmp })
-               end
-       else
-               --
-               -- Overview
-               --
-               luci.template.render("failsafe/flashops", {
-                       reset_avail   = reset_avail,
-                       upgrade_avail = upgrade_avail
-               })
-       end
-end
-
-function action_reboot()
-       local reboot = luci.http.formvalue("reboot")
-       luci.template.render("failsafe/reboot", {reboot=reboot})
-       if reboot then
-               luci.sys.reboot()
-       end
-end
-
-function fork_exec(command)
-       local pid = nixio.fork()
-       if pid > 0 then
-               return
-       elseif pid == 0 then
-               -- change to root dir
-               nixio.chdir("/")
-
-               -- patch stdin, out, err to /dev/null
-               local null = nixio.open("/dev/null", "w+")
-               if null then
-                       nixio.dup(null, nixio.stderr)
-                       nixio.dup(null, nixio.stdout)
-                       nixio.dup(null, nixio.stdin)
-                       if null:fileno() > 2 then
-                               null:close()
-                       end
-               end
-
-               -- replace with target command
-               nixio.exec("/bin/sh", "-c", command)
-       end
-end
-
-function ltn12_popen(command)
-
-       local fdi, fdo = nixio.pipe()
-       local pid = nixio.fork()
-
-       if pid > 0 then
-               fdo:close()
-               local close
-               return function()
-                       local buffer = fdi:read(2048)
-                       local wpid, stat = nixio.waitpid(pid, "nohang")
-                       if not close and wpid and stat == "exited" then
-                               close = true
-                       end
-
-                       if buffer and #buffer > 0 then
-                               return buffer
-                       elseif close then
-                               fdi:close()
-                               return nil
-                       end
-               end
-       elseif pid == 0 then
-               nixio.dup(fdo, nixio.stdout)
-               fdi:close()
-               fdo:close()
-               nixio.exec("/bin/sh", "-c", command)
-       end
-end
diff --git a/package/luci/modules/luci-mod-failsafe/luasrc/view/failsafe/applyreboot.htm b/package/luci/modules/luci-mod-failsafe/luasrc/view/failsafe/applyreboot.htm
deleted file mode 100644 (file)
index 12c138c..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<html>
-       <head>
-               <title><%=luci.sys.hostname()%> - <% if title then %><%=title%><% else %><%:Rebooting...%><% end %></title>
-               <link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/cascade.css" />
-               <script type="text/javascript" src="<%=resource%>/xhr.js"></script>
-               <script type="text/javascript">//<![CDATA[
-                       var interval = window.setInterval(function() {
-                               var img = new Image();
-
-                               img.onload = function() {
-                                       window.clearInterval(interval);
-                                       location.href = 'http://<%=addr or luci.http.getenv("SERVER_NAME")%>/';
-                               };
-
-                               img.src = 'http://<%=addr or luci.http.getenv("SERVER_NAME")%><%=resource%>/icons/loading.gif?' + Math.random();
-                       }, 5000);
-               //]]></script>
-       </head>
-       <body>
-               <div id="maincontainer">
-                       <div id="maincontent">
-                               <h2 name="content"><%:System%> - <% if title then %><%=title%><% else %><%:Rebooting...%><% end %></h2>
-                               <fieldset class="cbi-section">
-                                       <p>
-                                               <% if msg then %><%=msg%><% else %><%:Changes applied.%><% end %>
-                                       </p>
-                                       <p>
-                                               <img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" />
-                                               <%:Waiting for changes to be applied...%>
-                                       </p>
-                               </fieldset>
-                       </div>
-               </div>
-       </body>
-</html>
diff --git a/package/luci/modules/luci-mod-failsafe/luasrc/view/failsafe/flashops.htm b/package/luci/modules/luci-mod-failsafe/luasrc/view/failsafe/flashops.htm
deleted file mode 100644 (file)
index d6e9ad7..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Copyright 2012 Daniel Golle <dgolle@allnet.de>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<h2 name="content"><%:Flash operations%></h2>
-<fieldset class="cbi-section">
-       <legend><%:Flash new firmware image%></legend>
-       <% if upgrade_avail then %>
-               <form method="post" action="<%=REQUEST_URI%>" enctype="multipart/form-data">
-                       <div class="cbi-section-descr"><%:Upload a sysupgrade-compatible image. %></div>
-                       <div class="cbi-section-node">
-                               <div class="cbi-value cbi-value-last<% if image_invalid then %> cbi-value-error<% end %>">
-                                       <label class="cbi-value-title" for="image"><%:Image%>:</label>
-                                       <div class="cbi-value-field">
-                                               <input type="file" name="image" id="image" />
-                                               <input type="submit" class="cbi-button cbi-input-apply" value="<%:Flash image...%>" />
-                                       </div>
-                               </div>
-                       </div>
-                       <% if image_invalid then %>
-                               <div class="cbi-section-error"><%:The uploaded image file does not contain a supported format. Make sure that you choose the generic image format for your platform. %></div>
-                       <% end %>
-               </form>
-       <% else %>
-               <div class="cbi-section-descr"><%:Sorry, there is no sysupgrade support present; a new firmware image must be flashed manually. Please refer to the wiki for device specific install instructions.%></div>
-       <% end %>
-</fieldset>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-failsafe/luasrc/view/failsafe/reboot.htm b/package/luci/modules/luci-mod-failsafe/luasrc/view/failsafe/reboot.htm
deleted file mode 100644 (file)
index cbbe13b..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Copyright 2012 Daniel Golle <dgolle@allnet.de>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-<h2 name="content"><%:System%></h2>
-<h3><%:Reboot%></h3>
-<p><%:Reboots the operating system of your device%></p>
-<%- if not reboot then -%>
-<p><a href="<%=controller%>/failsafe/reboot?reboot=1"><%:Perform reboot%></a></p>
-<%- else -%>
-<p><%:Please wait: Device rebooting...%></p>
-<script type="text/javascript">setTimeout("location='<%=controller%>'", 60000)</script>
-<%- end -%>
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-failsafe/luasrc/view/failsafe/upgrade.htm b/package/luci/modules/luci-mod-failsafe/luasrc/view/failsafe/upgrade.htm
deleted file mode 100644 (file)
index 3be9ae1..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2009 Jo-Philipp Wich <jow@openwrt.org>
- Copyright 2012 Daniel Golle <dgolle@allnet.de>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<h2 name="content"><%:Flash Firmware%> - <%:Verify%></h2>
-<p>
-       <%_ The flash image was uploaded.
-               Below is the checksum and file size listed,
-               compare them with the original file to ensure data integrity.<br />
-               Click "Proceed" below to start the flash procedure. %>
-
-       <% if storage > 0 and size > storage then %>
-               <br /><br />
-               <div class="error"><%:It appears that you are trying to
-                       flash an image that does not fit into the flash memory, please verify
-                       the image file! %></div>
-       <% end %>
-
-</p>
-
-<fieldset class="cbi-section">
-       <ul>
-               <li><%:Checksum%>: <code><%=checksum%></code></li>
-               <li><%:Size%>: <%
-                       local w = require "luci.tools.webadmin"
-                       write(w.byte_format(size))
-
-                       if storage > 0 then
-                               write(luci.i18n.translatef(
-                                       " (%s available)",
-                                       w.byte_format(storage)
-                               ))
-                       end
-               %></li>
-       </ul>
-</fieldset>
-
-<div class="cbi-page-actions right">
-       <form style="display:inline" action="<%=REQUEST_URI%>" method="post">
-               <input class="cbi-button cbi-button-reset" type="submit" value="<%:Cancel%>" />
-       </form>
-       <form style="display:inline" action="<%=REQUEST_URI%>" method="post">
-               <input type="hidden" name="step" value="2" />
-               <input class="cbi-button cbi-button-apply" type="submit" value="<%:Proceed%>" />
-       </form>
-</div>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-network/Makefile b/package/luci/modules/luci-mod-network/Makefile
deleted file mode 100644 (file)
index 5958765..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI Network Administration
-LUCI_DEPENDS:=+luci-base +libiwinfo-lua
-
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
-
diff --git a/package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js b/package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/iface_status.js
deleted file mode 100644 (file)
index 88f48d1..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-requestAnimationFrame(function() {
-       document.querySelectorAll('[data-iface-status]').forEach(function(container) {
-               var network = container.getAttribute('data-iface-status'),
-                   icon = container.querySelector('img'),
-                   info = container.querySelector('span');
-
-               L.poll(5, L.url('admin/network/iface_status', network), null, function(xhr, ifaces) {
-                       var ifc = Array.isArray(ifaces) ? ifaces[0] : null;
-                       if (!ifc)
-                               return;
-
-                       L.itemlist(info, [
-                               _('Device'),  ifc.ifname,
-                               _('Uptime'),  ifc.is_up ? '%t'.format(ifc.uptime) : null,
-                               _('MAC'),     ifc.ifname ? ifc.macaddr : null,
-                               _('RX'),      ifc.ifname ? '%.2mB (%d %s)'.format(ifc.rx_bytes, ifc.rx_packets, _('Pkts.')) : null,
-                               _('TX'),      ifc.ifname ? '%.2mB (%d %s)'.format(ifc.tx_bytes, ifc.tx_packets, _('Pkts.')) : null,
-                               _('IPv4'),    ifc.ipaddrs ? ifc.ipaddrs[0] : null,
-                               _('IPv4'),    ifc.ipaddrs ? ifc.ipaddrs[1] : null,
-                               _('IPv4'),    ifc.ipaddrs ? ifc.ipaddrs[2] : null,
-                               _('IPv4'),    ifc.ipaddrs ? ifc.ipaddrs[3] : null,
-                               _('IPv4'),    ifc.ipaddrs ? ifc.ipaddrs[4] : null,
-                               _('IPv6'),    ifc.ip6addrs ? ifc.ip6addrs[0] : null,
-                               _('IPv6'),    ifc.ip6addrs ? ifc.ip6addrs[1] : null,
-                               _('IPv6'),    ifc.ip6addrs ? ifc.ip6addrs[2] : null,
-                               _('IPv6'),    ifc.ip6addrs ? ifc.ip6addrs[3] : null,
-                               _('IPv6'),    ifc.ip6addrs ? ifc.ip6addrs[4] : null,
-                               _('IPv6'),    ifc.ip6addrs ? ifc.ip6addrs[5] : null,
-                               _('IPv6'),    ifc.ip6addrs ? ifc.ip6addrs[6] : null,
-                               _('IPv6'),    ifc.ip6addrs ? ifc.ip6addrs[7] : null,
-                               _('IPv6'),    ifc.ip6addrs ? ifc.ip6addrs[8] : null,
-                               _('IPv6'),    ifc.ip6addrs ? ifc.ip6addrs[9] : null,
-                               _('IPv6-PD'), ifc.ip6prefix,
-                               null,         ifc.ifname ? null : E('em', _('Interface not present or not connected yet.'))
-                       ]);
-
-                       icon.src = L.resource('icons/%s%s.png').format(ifc.type, ifc.is_up ? '' : '_disabled');
-               });
-
-               L.run();
-       });
-});
diff --git a/package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js b/package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js
deleted file mode 100644 (file)
index 145f580..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-function iface_reconnect(id) {
-       L.halt();
-       L.dom.content(document.getElementById(id + '-ifc-description'), E('em', _('Interface is reconnecting...')));
-       L.post(L.url('admin/network/iface_reconnect', id), L.run);
-}
-
-function iface_delete(ev) {
-       if (!confirm(_('Really delete this interface? The deletion cannot be undone! You might lose access to this device if you are connected via this interface'))) {
-               ev.preventDefault();
-               return false;
-       }
-
-       ev.target.previousElementSibling.value = '1';
-       return true;
-}
-
-var networks = [];
-
-document.querySelectorAll('[data-network]').forEach(function(n) {
-       networks.push(n.getAttribute('data-network'));
-});
-
-function render_iface(ifc) {
-       return E('span', { class: 'cbi-tooltip-container' }, [
-               E('img', { 'class' : 'middle', 'src': L.resource('icons/%s%s.png').format(
-                       ifc.is_alias ? 'alias' : ifc.type,
-                       ifc.is_up ? '' : '_disabled') }),
-               E('span', { 'class': 'cbi-tooltip ifacebadge large' }, [
-                       E('img', { 'src': L.resource('icons/%s%s.png').format(
-                               ifc.type, ifc.is_up ? '' : '_disabled') }),
-                       L.itemlist(E('span', { 'class': 'left' }), [
-                               _('Type'),      ifc.typename,
-                               _('Device'),    ifc.ifname,
-                               _('Connected'), ifc.is_up ? _('yes') : _('no'),
-                               _('MAC'),       ifc.macaddr,
-                               _('RX'),        '%.2mB (%d %s)'.format(ifc.rx_bytes, ifc.rx_packets, _('Pkts.')),
-                               _('TX'),        '%.2mB (%d %s)'.format(ifc.tx_bytes, ifc.tx_packets, _('Pkts.'))
-                       ])
-               ])
-       ]);
-}
-
-L.poll(5, L.url('admin/network/iface_status', networks.join(',')), null,
-       function(x, ifcs) {
-               if (ifcs) {
-                       for (var idx = 0; idx < ifcs.length; idx++) {
-                               var ifc = ifcs[idx];
-
-                               var s = document.getElementById(ifc.id + '-ifc-devices');
-                               if (s) {
-                                       var c = [ render_iface(ifc) ];
-
-                                       if (ifc.subdevices && ifc.subdevices.length)
-                                       {
-                                               var sifs = [ ' (' ];
-
-                                               for (var j = 0; j < ifc.subdevices.length; j++)
-                                                       sifs.push(render_iface(ifc.subdevices[j]));
-
-                                               sifs.push(')');
-
-                                               c.push(E('span', {}, sifs));
-                                       }
-
-                                       c.push(E('br'));
-                                       c.push(E('small', {}, ifc.is_alias ? _('Alias of "%s"').format(ifc.is_alias) : ifc.name));
-
-                                       L.dom.content(s, c);
-                               }
-
-                               var d = document.getElementById(ifc.id + '-ifc-description');
-                               if (d && ifc.proto && ifc.ifname) {
-                                       var desc = null, c = [];
-
-                                       if (ifc.is_dynamic)
-                                               desc = _('Virtual dynamic interface');
-                                       else if (ifc.is_alias)
-                                               desc = _('Alias Interface');
-
-                                       if (ifc.desc)
-                                               desc = desc ? '%s (%s)'.format(desc, ifc.desc) : ifc.desc;
-
-                                       L.itemlist(d, [
-                                               _('Protocol'), '%h'.format(desc || '?'),
-                                               _('Uptime'),   ifc.is_up ? '%t'.format(ifc.uptime) : null,
-                                               _('MAC'),      (!ifc.is_dynamic && !ifc.is_alias && ifc.macaddr) ? ifc.macaddr : null,
-                                               _('RX'),       (!ifc.is_dynamic && !ifc.is_alias) ? '%.2mB (%d %s)'.format(ifc.rx_bytes, ifc.rx_packets, _('Pkts.')) : null,
-                                               _('TX'),       (!ifc.is_dynamic && !ifc.is_alias) ? '%.2mB (%d %s)'.format(ifc.tx_bytes, ifc.tx_packets, _('Pkts.')) : null,
-                                               _('IPv4'),     ifc.ipaddrs ? ifc.ipaddrs[0] : null,
-                                               _('IPv4'),     ifc.ipaddrs ? ifc.ipaddrs[1] : null,
-                                               _('IPv4'),     ifc.ipaddrs ? ifc.ipaddrs[2] : null,
-                                               _('IPv4'),     ifc.ipaddrs ? ifc.ipaddrs[3] : null,
-                                               _('IPv4'),     ifc.ipaddrs ? ifc.ipaddrs[4] : null,
-                                               _('IPv6'),     ifc.ip6addrs ? ifc.ip6addrs[0] : null,
-                                               _('IPv6'),     ifc.ip6addrs ? ifc.ip6addrs[1] : null,
-                                               _('IPv6'),     ifc.ip6addrs ? ifc.ip6addrs[2] : null,
-                                               _('IPv6'),     ifc.ip6addrs ? ifc.ip6addrs[3] : null,
-                                               _('IPv6'),     ifc.ip6addrs ? ifc.ip6addrs[4] : null,
-                                               _('IPv6'),     ifc.ip6addrs ? ifc.ip6addrs[5] : null,
-                                               _('IPv6'),     ifc.ip6addrs ? ifc.ip6addrs[6] : null,
-                                               _('IPv6'),     ifc.ip6addrs ? ifc.ip6addrs[7] : null,
-                                               _('IPv6'),     ifc.ip6addrs ? ifc.ip6addrs[8] : null,
-                                               _('IPv6'),     ifc.ip6addrs ? ifc.ip6addrs[9] : null,
-                                               _('IPv6-PD'),  ifc.ip6prefix,
-                                               _('Error'),    ifc.errors ? ifc.errors[0] : null,
-                                               _('Error'),    ifc.errors ? ifc.errors[1] : null,
-                                               _('Error'),    ifc.errors ? ifc.errors[2] : null,
-                                               _('Error'),    ifc.errors ? ifc.errors[3] : null,
-                                               _('Error'),    ifc.errors ? ifc.errors[4] : null,
-                                       ]);
-                               }
-                               else if (d && !ifc.proto) {
-                                       var e = document.getElementById(ifc.id + '-ifc-edit');
-                                       if (e) e.disabled = true;
-
-                                       var link = L.url('admin/system/opkg') + '?query=luci-proto';
-                                       L.dom.content(d, [
-                                               E('em', _('Unsupported protocol type.')), E('br'),
-                                               E('a', { href: link }, _('Install protocol extensions...'))
-                                       ]);
-                               }
-                               else if (d && !ifc.ifname) {
-                                       var link = L.url('admin/network/network', ifc.name) + '?tab.network.%s=physical'.format(ifc.name);
-                                       L.dom.content(d, [
-                                               E('em', _('Network without interfaces.')), E('br'),
-                                               E('a', { href: link }, _('Assign interfaces...'))
-                                       ]);
-                               }
-                               else if (d) {
-                                       L.dom.content(d, E('em' ,_('Interface not present or not connected yet.')));
-                               }
-                       }
-               }
-       }
-);
diff --git a/package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js b/package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js
deleted file mode 100644 (file)
index d5bd7b0..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-var poll = null;
-
-function format_signal(bss) {
-       var qval = bss.quality || 0,
-           qmax = bss.quality_max || 100,
-           scale = 100 / qmax * qval,
-           range = 'none';
-
-       if (!bss.bssid || bss.bssid == '00:00:00:00:00:00')
-               range = 'none';
-       else if (scale < 15)
-               range = '0';
-       else if (scale < 35)
-               range = '0-25';
-       else if (scale < 55)
-               range = '25-50';
-       else if (scale < 75)
-               range = '50-75';
-       else
-               range = '75-100';
-
-       return E('span', {
-               class: 'ifacebadge',
-               title: '%s: %d%s / %s: %d/%d'.format(_('Signal'), bss.signal, _('dB'), _('Quality'), qval, qmax)
-       }, [
-               E('img', { src: L.resource('icons/signal-%s.png').format(range) }),
-               ' %d%%'.format(scale)
-       ]);
-}
-
-function format_encryption(bss) {
-       var enc = bss.encryption || { }
-
-       if (enc.wep === true)
-               return 'WEP';
-       else if (enc.wpa > 0)
-               return E('abbr', {
-                       title: 'Pairwise: %h / Group: %h'.format(
-                               enc.pair_ciphers.join(', '),
-                               enc.group_ciphers.join(', '))
-                       },
-                       '%h - %h'.format(
-                               (enc.wpa === 3) ? _('mixed WPA/WPA2') : (enc.wpa === 2 ? 'WPA2' : 'WPA'),
-                               enc.auth_suites.join(', ')));
-       else
-               return E('em', enc.enabled ? _('unknown') : _('open'));
-}
-
-function format_actions(dev, type, bss) {
-       var enc = bss.encryption || { },
-           input = [
-                       E('input', { type: 'submit', class: 'cbi-button cbi-button-action important', value: _('Join Network') }),
-                       E('input', { type: 'hidden', name: 'token',    value: L.env.token }),
-                       E('input', { type: 'hidden', name: 'device',   value: dev }),
-                       E('input', { type: 'hidden', name: 'join',     value: bss.ssid }),
-                       E('input', { type: 'hidden', name: 'mode',     value: bss.mode }),
-                       E('input', { type: 'hidden', name: 'bssid',    value: bss.bssid }),
-                       E('input', { type: 'hidden', name: 'channel',  value: bss.channel }),
-                       E('input', { type: 'hidden', name: 'clbridge', value: type === 'wl' ? 1 : 0 }),
-                       E('input', { type: 'hidden', name: 'wep',      value: enc.wep ? 1 : 0 })
-               ];
-
-       if (enc.wpa) {
-               input.push(E('input', { type: 'hidden', name: 'wpa_version', value: enc.wpa }));
-
-               enc.auth_suites.forEach(function(s) {
-                       input.push(E('input', { type: 'hidden', name: 'wpa_suites', value: s }));
-               });
-
-               enc.group_ciphers.forEach(function(s) {
-                       input.push(E('input', { type: 'hidden', name: 'wpa_group', value: s }));
-               });
-
-               enc.pair_ciphers.forEach(function(s) {
-                       input.push(E('input', { type: 'hidden', name: 'wpa_pairwise', value: s }));
-               });
-       }
-
-       return E('form', {
-               class: 'inline',
-               method: 'post',
-               action: L.url('admin/network/wireless_join')
-       }, input);
-}
-
-function fade(bss, content) {
-       if (bss.stale)
-               return E('span', { style: 'opacity:0.5' }, content);
-       else
-               return content;
-}
-
-function flush() {
-       L.stop(poll);
-       L.halt();
-
-       scan();
-}
-
-function scan() {
-       var tbl = document.querySelector('[data-wifi-scan]'),
-           dev = tbl.getAttribute('data-wifi-scan'),
-           type = tbl.getAttribute('data-wifi-type');
-
-       cbi_update_table(tbl, [], E('em', { class: 'spinning' }, _('Starting wireless scan...')));
-
-       L.post(L.url('admin/network/wireless_scan_trigger', dev), null, function(s) {
-               if (s.status !== 204) {
-                       cbi_update_table(tbl, [], E('em', _('Scan request failed')));
-                       return;
-               }
-
-               var count = 0;
-
-               poll = L.poll(3, L.url('admin/network/wireless_scan_results', dev), null, function(s, results) {
-                       if (Array.isArray(results)) {
-                               var bss = [];
-
-                               results.sort(function(a, b) {
-                                       var diff = (b.quality - a.quality) || (a.channel - b.channel);
-
-                                       if (diff)
-                                               return diff;
-
-                                       if (a.ssid < b.ssid)
-                                               return -1;
-                                       else if (a.ssid > b.ssid)
-                                               return 1;
-
-                                       if (a.bssid < b.bssid)
-                                               return -1;
-                                       else if (a.bssid > b.bssid)
-                                               return 1;
-                               }).forEach(function(res) {
-                                       bss.push([
-                                               fade(res, format_signal(res)),
-                                               fade(res, res.ssid ? '%h'.format(res.ssid) : E('em', {}, _('hidden'))),
-                                               fade(res, res.channel),
-                                               fade(res, res.mode),
-                                               fade(res, res.bssid),
-                                               fade(res, format_encryption(res)),
-                                               format_actions(dev, type, res)
-                                       ]);
-                               });
-
-                               cbi_update_table(tbl, bss, E('em', { class: 'spinning' }, _('No scan results available yet...')));
-                       }
-
-                       if (count++ >= 3) {
-                               count = 0;
-                               L.post(L.url('admin/network/wireless_scan_trigger', dev, 1), null, function() {});
-                       }
-               });
-
-               L.run();
-       });
-}
-
-document.addEventListener('DOMContentLoaded', scan);
diff --git a/package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js b/package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_status.js
deleted file mode 100644 (file)
index 7e14d99..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-requestAnimationFrame(function() {
-       document.querySelectorAll('[data-wifi-status]').forEach(function(container) {
-               var ifname = container.getAttribute('data-wifi-status'),
-                   small = container.querySelector('small'),
-                   info = container.querySelector('span');
-
-               L.poll(5, L.url('admin/network/wireless_status', ifname), null, function(xhr, iws) {
-                       var iw = Array.isArray(iws) ? iws[0] : null;
-                       if (!iw)
-                               return;
-
-                       var is_assoc = (iw.bssid && iw.bssid != '00:00:00:00:00:00' && iw.channel && !iw.disabled);
-                       var p = iw.quality;
-                       var q = iw.disabled ? -1 : p;
-
-                       var icon;
-                       if (q < 0)
-                               icon = L.resource('icons/signal-none.png');
-                       else if (q == 0)
-                               icon = L.resource('icons/signal-0.png');
-                       else if (q < 25)
-                               icon = L.resource('icons/signal-0-25.png');
-                       else if (q < 50)
-                               icon = L.resource('icons/signal-25-50.png');
-                       else if (q < 75)
-                               icon = L.resource('icons/signal-50-75.png');
-                       else
-                               icon = L.resource('icons/signal-75-100.png');
-
-                       L.dom.content(small, [
-                               E('img', {
-                                       src: icon,
-                                       title: '%s: %d %s / %s: %d %s'.format(
-                                               _('Signal'), iw.signal, _('dBm'),
-                                               _('Noise'), iw.noise, _('dBm'))
-                               }),
-                               '\u00a0', E('br'), '%d%%\u00a0'.format(p)
-                       ]);
-
-                       L.itemlist(info, [
-                               _('Mode'),       iw.mode,
-                               _('SSID'),       '%h'.format(iw.ssid || '?'),
-                               _('BSSID'),      is_assoc ? iw.bssid : null,
-                               _('Encryption'), is_assoc ? iw.encryption || _('None') : null,
-                               _('Channel'),    is_assoc ? '%d (%.3f %s)'.format(iw.channel, iw.frequency || 0, _('GHz')) : null,
-                               _('Tx-Power'),   is_assoc ? '%d %s'.format(iw.txpower, _('dBm')) : null,
-                               _('Signal'),     is_assoc ? '%d %s'.format(iw.signal, _('dBm')) : null,
-                               _('Noise'),      is_assoc ? '%d %s'.format(iw.noise, _('dBm')) : null,
-                               _('Bitrate'),    is_assoc ? '%.1f %s'.format(iw.bitrate || 0, _('Mbit/s')) : null,
-                               _('Country'),    is_assoc ? iw.country : null
-                       ], [ ' | ', E('br'), E('br'), E('br'), E('br'), E('br'), ' | ', E('br'), ' | ' ]);
-
-                       if (!is_assoc)
-                               L.dom.append(info, E('em', iw.disabled ? _('Wireless is disabled') : _('Wireless is not associated')));
-               });
-
-               L.run();
-       });
-});
diff --git a/package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js b/package/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js
deleted file mode 100644 (file)
index bdeb23d..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-function wifi_delete(ev) {
-       if (!confirm(_('Really delete this wireless network? The deletion cannot be undone! You might lose access to this device if you are connected via this network.'))) {
-               ev.preventDefault();
-               return false;
-       }
-
-       ev.target.previousElementSibling.value = '1';
-       return true;
-}
-
-function wifi_restart(ev) {
-       L.halt();
-
-       findParent(ev.target, '.table').querySelectorAll('[data-disabled="false"]').forEach(function(s) {
-               L.dom.content(s, E('em', _('Wireless is restarting...')));
-       });
-
-       L.post(L.url('admin/network/wireless_reconnect', ev.target.getAttribute('data-radio')), L.run);
-}
-
-var networks = [ ];
-
-document.querySelectorAll('[data-network]').forEach(function(n) {
-       networks.push(n.getAttribute('data-network'));
-});
-
-L.poll(5, L.url('admin/network/wireless_status', networks.join(',')), null,
-       function(x, st) {
-               if (st) {
-                       var rowstyle = 1;
-                       var radiostate = { };
-
-                       st.forEach(function(s) {
-                               var r = radiostate[s.device.device] || (radiostate[s.device.device] = {});
-
-                               s.is_assoc = (s.bssid && s.bssid != '00:00:00:00:00:00' && s.channel && s.mode != 'Unknown' && !s.disabled);
-
-                               r.up        = r.up        || s.is_assoc;
-                               r.channel   = r.channel   || s.channel;
-                               r.bitrate   = r.bitrate   || s.bitrate;
-                               r.frequency = r.frequency || s.frequency;
-                       });
-
-                       for (var i = 0; i < st.length; i++) {
-                               var iw = st[i],
-                                   sig = document.getElementById(iw.id + '-iw-signal'),
-                                   info = document.getElementById(iw.id + '-iw-status'),
-                                   disabled = (info && info.getAttribute('data-disabled') === 'true');
-
-                               var p = iw.quality;
-                               var q = disabled ? -1 : p;
-
-                               var icon;
-                               if (q < 0)
-                                       icon = L.resource('icons/signal-none.png');
-                               else if (q == 0)
-                                       icon = L.resource('icons/signal-0.png');
-                               else if (q < 25)
-                                       icon = L.resource('icons/signal-0-25.png');
-                               else if (q < 50)
-                                       icon = L.resource('icons/signal-25-50.png');
-                               else if (q < 75)
-                                       icon = L.resource('icons/signal-50-75.png');
-                               else
-                                       icon = L.resource('icons/signal-75-100.png');
-
-                               L.dom.content(sig, E('span', {
-                                       class: 'ifacebadge',
-                                       title: '%s %d %s / %s: %d %s'.format(_('Signal'), iw.signal, _('dBm'), _('Noise'), iw.noise, _('dBm'))
-                               }, [ E('img', { src: icon }), ' %d%%'.format(p) ]));
-
-                               L.itemlist(info, [
-                                       _('SSID'),       '%h'.format(iw.ssid || '?'),
-                                       _('Mode'),       iw.mode,
-                                       _('BSSID'),      iw.is_assoc ? iw.bssid : null,
-                                       _('Encryption'), iw.is_assoc ? iw.encryption || _('None') : null,
-                                       null,            iw.is_assoc ? null : E('em', disabled ? _('Wireless is disabled') : _('Wireless is not associated'))
-                               ], [ ' | ', E('br') ]);
-                       }
-
-                       for (var dev in radiostate) {
-                               var img = document.getElementById(dev + '-iw-upstate');
-                               if (img) img.src = L.resource('icons/wifi' + (radiostate[dev].up ? '' : '_disabled') + '.png');
-
-                               var stat = document.getElementById(dev + '-iw-devinfo');
-                               L.itemlist(stat, [
-                                       _('Channel'), '%s (%s %s)'.format(radiostate[dev].channel || '?', radiostate[dev].frequency || '?', _('GHz')),
-                                       _('Bitrate'), '%s %s'.format(radiostate[dev].bitrate || '?', _('Mbit/s'))
-                               ], ' | ');
-                       }
-               }
-       }
-);
diff --git a/package/luci/modules/luci-mod-network/luasrc/controller/admin/network.lua b/package/luci/modules/luci-mod-network/luasrc/controller/admin/network.lua
deleted file mode 100644 (file)
index 1da5eac..0000000
+++ /dev/null
@@ -1,418 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2011-2018 Jo-Philipp Wich <jo@mein.io>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.admin.network", package.seeall)
-
-function index()
-       local uci = require("luci.model.uci").cursor()
-       local page
-
---     if page.inreq then
-               local has_switch = false
-
-               uci:foreach("network", "switch",
-                       function(s)
-                               has_switch = true
-                               return false
-                       end)
-
-               if has_switch then
-                       page  = node("admin", "network", "vlan")
-                       page.target = cbi("admin_network/vlan")
-                       page.title  = _("Switch")
-                       page.order  = 20
-
-                       page = entry({"admin", "network", "switch_status"}, call("switch_status"), nil)
-                       page.leaf = true
-               end
-
-
-               local has_wifi = false
-
-               uci:foreach("wireless", "wifi-device",
-                       function(s)
-                               has_wifi = true
-                               return false
-                       end)
-
-               if has_wifi then
-                       page = entry({"admin", "network", "wireless_join"}, post("wifi_join"), nil)
-                       page.leaf = true
-
-                       page = entry({"admin", "network", "wireless_add"}, post("wifi_add"), nil)
-                       page.leaf = true
-
-                       page = entry({"admin", "network", "wireless_status"}, call("wifi_status"), nil)
-                       page.leaf = true
-
-                       page = entry({"admin", "network", "wireless_reconnect"}, post("wifi_reconnect"), nil)
-                       page.leaf = true
-
-                       page = entry({"admin", "network", "wireless_scan_trigger"}, post("wifi_scan_trigger"), nil)
-                       page.leaf = true
-
-                       page = entry({"admin", "network", "wireless_scan_results"}, call("wifi_scan_results"), nil)
-                       page.leaf = true
-
-                       page = entry({"admin", "network", "wireless"}, arcombine(cbi("admin_network/wifi_overview"), cbi("admin_network/wifi")), _("Wireless"), 15)
-                       page.leaf = true
-                       page.subindex = true
-
-                       if page.inreq then
-                               local wdev
-                               local net = require "luci.model.network".init(uci)
-                               for _, wdev in ipairs(net:get_wifidevs()) do
-                                       local wnet
-                                       for _, wnet in ipairs(wdev:get_wifinets()) do
-                                               entry(
-                                                       {"admin", "network", "wireless", wnet:id()},
-                                                       alias("admin", "network", "wireless"),
-                                                       wdev:name() .. ": " .. wnet:shortname()
-                                               )
-                                       end
-                               end
-                       end
-               end
-
-
-               page = entry({"admin", "network", "iface_add"}, form("admin_network/iface_add"), nil)
-               page.leaf = true
-
-               page = entry({"admin", "network", "iface_status"}, call("iface_status"), nil)
-               page.leaf = true
-
-               page = entry({"admin", "network", "iface_reconnect"}, post("iface_reconnect"), nil)
-               page.leaf = true
-
-               page = entry({"admin", "network", "network"}, arcombine(cbi("admin_network/network"), cbi("admin_network/ifaces")), _("Interfaces"), 10)
-               page.leaf   = true
-               page.subindex = true
-
-               if page.inreq then
-                       uci:foreach("network", "interface",
-                               function (section)
-                                       local ifc = section[".name"]
-                                       if ifc ~= "loopback" then
-                                               entry({"admin", "network", "network", ifc},
-                                               true, ifc:upper())
-                                       end
-                               end)
-               end
-
-
-               if nixio.fs.access("/etc/config/dhcp") then
-                       page = node("admin", "network", "dhcp")
-                       page.target = cbi("admin_network/dhcp")
-                       page.title  = _("DHCP and DNS")
-                       page.order  = 30
-
-                       page = node("admin", "network", "hosts")
-                       page.target = cbi("admin_network/hosts")
-                       page.title  = _("Hostnames")
-                       page.order  = 40
-               end
-
-               page  = node("admin", "network", "routes")
-               page.target = cbi("admin_network/routes")
-               page.title  = _("Static Routes")
-               page.order  = 50
-
-               page = node("admin", "network", "diagnostics")
-               page.target = template("admin_network/diagnostics")
-               page.title  = _("Diagnostics")
-               page.order  = 60
-
-               page = entry({"admin", "network", "diag_ping"}, post("diag_ping"), nil)
-               page.leaf = true
-
-               page = entry({"admin", "network", "diag_nslookup"}, post("diag_nslookup"), nil)
-               page.leaf = true
-
-               page = entry({"admin", "network", "diag_traceroute"}, post("diag_traceroute"), nil)
-               page.leaf = true
-
-               page = entry({"admin", "network", "diag_ping6"}, post("diag_ping6"), nil)
-               page.leaf = true
-
-               page = entry({"admin", "network", "diag_traceroute6"}, post("diag_traceroute6"), nil)
-               page.leaf = true
---     end
-end
-
-function wifi_join()
-       local tpl  = require "luci.template"
-       local http = require "luci.http"
-       local dev  = http.formvalue("device")
-       local ssid = http.formvalue("join")
-
-       if dev and ssid then
-               local cancel = (http.formvalue("cancel") or http.formvalue("cbi.cancel"))
-               if not cancel then
-                       local cbi = require "luci.cbi"
-                       local map = luci.cbi.load("admin_network/wifi_add")[1]
-
-                       if map:parse() ~= cbi.FORM_DONE then
-                               tpl.render("header")
-                               map:render()
-                               tpl.render("footer")
-                       end
-
-                       return
-               end
-       end
-
-       tpl.render("admin_network/wifi_join")
-end
-
-function wifi_add()
-       local dev = luci.http.formvalue("device")
-       local ntm = require "luci.model.network".init()
-
-       dev = dev and ntm:get_wifidev(dev)
-
-       if dev then
-               local net = dev:add_wifinet({
-                       mode       = "ap",
-                       ssid       = "OpenWrt",
-                       encryption = "none",
-                       disabled   = 1
-               })
-
-               ntm:save("wireless")
-               luci.http.redirect(net:adminlink())
-       end
-end
-
-function iface_status(ifaces)
-       local netm = require "luci.model.network".init()
-       local rv   = { }
-
-       local iface
-       for iface in ifaces:gmatch("[%w%.%-_]+") do
-               local net = netm:get_network(iface)
-               local device = net and net:get_interface()
-               if device then
-                       local data = {
-                               id         = iface,
-                               desc       = net:get_i18n(),
-                               proto      = net:proto(),
-                               uptime     = net:uptime(),
-                               gwaddr     = net:gwaddr(),
-                               ipaddrs    = net:ipaddrs(),
-                               ip6addrs   = net:ip6addrs(),
-                               dnsaddrs   = net:dnsaddrs(),
-                               ip6prefix  = net:ip6prefix(),
-                               errors     = net:errors(),
-                               name       = device:shortname(),
-                               type       = device:type(),
-                               typename   = device:get_type_i18n(),
-                               ifname     = device:name(),
-                               macaddr    = device:mac(),
-                               is_up      = net:is_up() and device:is_up(),
-                               is_alias   = net:is_alias(),
-                               is_dynamic = net:is_dynamic(),
-                               rx_bytes   = device:rx_bytes(),
-                               tx_bytes   = device:tx_bytes(),
-                               rx_packets = device:rx_packets(),
-                               tx_packets = device:tx_packets(),
-
-                               subdevices = { }
-                       }
-
-                       for _, device in ipairs(net:get_interfaces() or {}) do
-                               data.subdevices[#data.subdevices+1] = {
-                                       name       = device:shortname(),
-                                       type       = device:type(),
-                                       typename   = device:get_type_i18n(),
-                                       ifname     = device:name(),
-                                       macaddr    = device:mac(),
-                                       is_up      = device:is_up(),
-                                       rx_bytes   = device:rx_bytes(),
-                                       tx_bytes   = device:tx_bytes(),
-                                       rx_packets = device:rx_packets(),
-                                       tx_packets = device:tx_packets(),
-                               }
-                       end
-
-                       rv[#rv+1] = data
-               else
-                       rv[#rv+1] = {
-                               id   = iface,
-                               name = iface,
-                               type = "ethernet"
-                       }
-               end
-       end
-
-       if #rv > 0 then
-               luci.http.prepare_content("application/json")
-               luci.http.write_json(rv)
-               return
-       end
-
-       luci.http.status(404, "No such device")
-end
-
-function iface_reconnect(iface)
-       local netmd = require "luci.model.network".init()
-       local net = netmd:get_network(iface)
-       if net then
-               luci.sys.call("env -i /sbin/ifup %s >/dev/null 2>/dev/null"
-                       % luci.util.shellquote(iface))
-               luci.http.status(200, "Reconnected")
-               return
-       end
-
-       luci.http.status(404, "No such interface")
-end
-
-function wifi_status(devs)
-       local s    = require "luci.tools.status"
-       local rv   = { }
-
-       if type(devs) == "string" then
-               local dev
-               for dev in devs:gmatch("[%w%.%-]+") do
-                       rv[#rv+1] = s.wifi_network(dev)
-               end
-       end
-
-       if #rv > 0 then
-               luci.http.prepare_content("application/json")
-               luci.http.write_json(rv)
-               return
-       end
-
-       luci.http.status(404, "No such device")
-end
-
-function wifi_reconnect(radio)
-       local rc = luci.sys.call("env -i /sbin/wifi up %s" % luci.util.shellquote(radio))
-
-       if rc == 0 then
-               luci.http.status(200, "Reconnected")
-       else
-               luci.http.status(500, "Error")
-       end
-end
-
-local function _wifi_get_scan_results(cache_key)
-       local results = luci.util.ubus("session", "get", {
-               ubus_rpc_session = luci.model.uci:get_session_id(),
-               keys = { cache_key }
-       })
-
-       if type(results) == "table" and
-          type(results.values) == "table" and
-          type(results.values[cache_key]) == "table"
-       then
-               return results.values[cache_key]
-       end
-
-       return { }
-end
-
-function wifi_scan_trigger(radio, update)
-       local iw = radio and luci.sys.wifi.getiwinfo(radio)
-
-       if not iw then
-               luci.http.status(404, "No such radio device")
-               return
-       end
-
-       luci.http.status(204, "Scan scheduled")
-
-       if nixio.fork() == 0 then
-               io.stderr:close()
-               io.stdout:close()
-
-               local _, bss
-               local data, bssids = { }, { }
-               local cache_key = "scan_%s" % radio
-
-               luci.util.ubus("session", "set", {
-                       ubus_rpc_session = luci.model.uci:get_session_id(),
-                       values = { [cache_key] = nil }
-               })
-
-               for _, bss in ipairs(iw.scanlist or { }) do
-                       data[_] = bss
-                       bssids[bss.bssid] = bss
-               end
-
-               if update then
-                       for _, bss in ipairs(_wifi_get_scan_results(cache_key)) do
-                               if not bssids[bss.bssid] then
-                                       bss.stale = true
-                                       data[#data + 1] = bss
-                               end
-                       end
-               end
-
-               luci.util.ubus("session", "set", {
-                       ubus_rpc_session = luci.model.uci:get_session_id(),
-                       values = { [cache_key] = data }
-               })
-       end
-end
-
-function wifi_scan_results(radio)
-       local results = radio and _wifi_get_scan_results("scan_%s" % radio)
-
-       if results and #results > 0 then
-               luci.http.prepare_content("application/json")
-               luci.http.write_json(results)
-       else
-               luci.http.status(404, "No wireless scan results")
-       end
-end
-
-function switch_status(switches)
-       local s = require "luci.tools.status"
-
-       luci.http.prepare_content("application/json")
-       luci.http.write_json(s.switch_status(switches))
-end
-
-function diag_command(cmd, addr)
-       if addr and addr:match("^[a-zA-Z0-9%-%.:_]+$") then
-               luci.http.prepare_content("text/plain")
-
-               local util = io.popen(cmd % luci.util.shellquote(addr))
-               if util then
-                       while true do
-                               local ln = util:read("*l")
-                               if not ln then break end
-                               luci.http.write(ln)
-                               luci.http.write("\n")
-                       end
-
-                       util:close()
-               end
-
-               return
-       end
-
-       luci.http.status(500, "Bad address")
-end
-
-function diag_ping(addr)
-       diag_command("ping -c 5 -W 1 %s 2>&1", addr)
-end
-
-function diag_traceroute(addr)
-       diag_command("traceroute -q 1 -w 1 -n %s 2>&1", addr)
-end
-
-function diag_nslookup(addr)
-       diag_command("nslookup %s 2>&1", addr)
-end
-
-function diag_ping6(addr)
-       diag_command("ping6 -c 5 %s 2>&1", addr)
-end
-
-function diag_traceroute6(addr)
-       diag_command("traceroute6 -q 1 -w 2 -n %s 2>&1", addr)
-end
diff --git a/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua b/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua
deleted file mode 100644 (file)
index 0be1b3f..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local ipc = require "luci.ip"
-local sys = require "luci.sys"
-local o
-require "luci.util"
-
-m = Map("dhcp", translate("DHCP and DNS"),
-       translate("Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol" ..
-               "\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-" ..
-               "Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> " ..
-               "firewalls"))
-
-s = m:section(TypedSection, "dnsmasq", translate("Server Settings"))
-s.anonymous = true
-s.addremove = false
-
-s:tab("general", translate("General Settings"))
-s:tab("files", translate("Resolv and Hosts Files"))
-s:tab("tftp", translate("TFTP Settings"))
-s:tab("advanced", translate("Advanced Settings"))
-
-s:taboption("general", Flag, "domainneeded",
-       translate("Domain required"),
-       translate("Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without " ..
-               "<abbr title=\"Domain Name System\">DNS</abbr>-Name"))
-
-s:taboption("general", Flag, "authoritative",
-       translate("Authoritative"),
-       translate("This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</" ..
-               "abbr> in the local network"))
-
-
-s:taboption("files", Flag, "readethers",
-       translate("Use <code>/etc/ethers</code>"),
-       translate("Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host " ..
-               "Configuration Protocol\">DHCP</abbr>-Server"))
-
-s:taboption("files", Value, "leasefile",
-       translate("Leasefile"),
-       translate("file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</" ..
-               "abbr>-leases will be stored"))
-
-s:taboption("files", Flag, "noresolv",
-       translate("Ignore resolve file")).optional = true
-
-rf = s:taboption("files", Value, "resolvfile",
-       translate("Resolve file"),
-       translate("local <abbr title=\"Domain Name System\">DNS</abbr> file"))
-
-rf:depends("noresolv", "")
-rf.optional = true
-
-
-s:taboption("files", Flag, "nohosts",
-       translate("Ignore <code>/etc/hosts</code>")).optional = true
-
-s:taboption("files", DynamicList, "addnhosts",
-       translate("Additional Hosts files")).optional = true
-
-qu = s:taboption("advanced", Flag, "quietdhcp",
-       translate("Suppress logging"),
-       translate("Suppress logging of the routine operation of these protocols"))
-qu.optional = true
-
-se = s:taboption("advanced", Flag, "sequential_ip",
-       translate("Allocate IP sequentially"),
-       translate("Allocate IP addresses sequentially, starting from the lowest available address"))
-se.optional = true
-
-bp = s:taboption("advanced", Flag, "boguspriv",
-       translate("Filter private"),
-       translate("Do not forward reverse lookups for local networks"))
-bp.default = bp.enabled
-
-s:taboption("advanced", Flag, "filterwin2k",
-       translate("Filter useless"),
-       translate("Do not forward requests that cannot be answered by public name servers"))
-
-
-s:taboption("advanced", Flag, "localise_queries",
-       translate("Localise queries"),
-       translate("Localise hostname depending on the requesting subnet if multiple IPs are available"))
-
-local have_dnssec_support = luci.util.checklib("/usr/sbin/dnsmasq", "libhogweed.so")
-
-if have_dnssec_support then
-       o = s:taboption("advanced", Flag, "dnssec",
-               translate("DNSSEC"))
-       o.optional = true
-
-       o = s:taboption("advanced", Flag, "dnsseccheckunsigned",
-               translate("DNSSEC check unsigned"),
-               translate("Requires upstream supports DNSSEC; verify unsigned domain responses really come from unsigned domains"))
-       o.optional = true
-end
-
-s:taboption("general", Value, "local",
-       translate("Local server"),
-       translate("Local domain specification. Names matching this domain are never forwarded and are resolved from DHCP or hosts files only"))
-
-s:taboption("general", Value, "domain",
-       translate("Local domain"),
-       translate("Local domain suffix appended to DHCP names and hosts file entries"))
-
-s:taboption("advanced", Flag, "expandhosts",
-       translate("Expand hosts"),
-       translate("Add local domain suffix to names served from hosts files"))
-
-s:taboption("advanced", Flag, "nonegcache",
-       translate("No negative cache"),
-       translate("Do not cache negative replies, e.g. for not existing domains"))
-
-s:taboption("advanced", Value, "serversfile",
-       translate("Additional servers file"),
-       translate("This file may contain lines like 'server=/domain/1.2.3.4' or 'server=1.2.3.4' for"..
-               "domain-specific or full upstream <abbr title=\"Domain Name System\">DNS</abbr> servers."))
-
-s:taboption("advanced", Flag, "strictorder",
-       translate("Strict order"),
-       translate("<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the " ..
-               "order of the resolvfile")).optional = true
-
-s:taboption("advanced", Flag, "allservers",
-       translate("All Servers"),
-       translate("Query all available upstream <abbr title=\"Domain Name System\">DNS</abbr> servers")).optional = true
-
-bn = s:taboption("advanced", DynamicList, "bogusnxdomain", translate("Bogus NX Domain Override"),
-       translate("List of hosts that supply bogus NX domain results"))
-
-bn.optional = true
-bn.placeholder = "67.215.65.132"
-
-
-s:taboption("general", Flag, "logqueries",
-       translate("Log queries"),
-       translate("Write received DNS requests to syslog")).optional = true
-
-df = s:taboption("general", DynamicList, "server", translate("DNS forwardings"),
-       translate("List of <abbr title=\"Domain Name System\">DNS</abbr> " ..
-                       "servers to forward requests to"))
-
-df.optional = true
-df.placeholder = "/example.org/10.1.2.3"
-
-
-rp = s:taboption("general", Flag, "rebind_protection",
-       translate("Rebind protection"),
-       translate("Discard upstream RFC1918 responses"))
-
-rp.rmempty = false
-
-
-rl = s:taboption("general", Flag, "rebind_localhost",
-       translate("Allow localhost"),
-       translate("Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"))
-
-rl:depends("rebind_protection", "1")
-
-
-rd = s:taboption("general", DynamicList, "rebind_domain",
-       translate("Domain whitelist"),
-       translate("List of domains to allow RFC1918 responses for"))
-rd.optional = true
-
-rd:depends("rebind_protection", "1")
-rd.datatype = "host(1)"
-rd.placeholder = "ihost.netflix.com"
-
-
-pt = s:taboption("advanced", Value, "port",
-       translate("<abbr title=\"Domain Name System\">DNS</abbr> server port"),
-       translate("Listening port for inbound DNS queries"))
-
-pt.optional = true
-pt.datatype = "port"
-pt.placeholder = 53
-
-
-qp = s:taboption("advanced", Value, "queryport",
-       translate("<abbr title=\"Domain Name System\">DNS</abbr> query port"),
-       translate("Fixed source port for outbound DNS queries"))
-
-qp.optional = true
-qp.datatype = "port"
-qp.placeholder = translate("any")
-
-
-lm = s:taboption("advanced", Value, "dhcpleasemax",
-       translate("<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration " ..
-               "Protocol\">DHCP</abbr> leases"),
-       translate("Maximum allowed number of active DHCP leases"))
-
-lm.optional = true
-lm.datatype = "uinteger"
-lm.placeholder = translate("unlimited")
-
-
-em = s:taboption("advanced", Value, "ednspacket_max",
-       translate("<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for " ..
-               "Domain Name System\">EDNS0</abbr> packet size"),
-       translate("Maximum allowed size of EDNS.0 UDP packets"))
-
-em.optional = true
-em.datatype = "uinteger"
-em.placeholder = 1280
-
-
-cq = s:taboption("advanced", Value, "dnsforwardmax",
-       translate("<abbr title=\"maximal\">Max.</abbr> concurrent queries"),
-       translate("Maximum allowed number of concurrent DNS queries"))
-
-cq.optional = true
-cq.datatype = "uinteger"
-cq.placeholder = 150
-
-cs = s:taboption("advanced", Value, "cachesize",
-       translate("Size of DNS query cache"),
-       translate("Number of cached DNS entries (max is 10000, 0 is no caching)"))
-cs.optional = true
-cs.datatype = "range(0,10000)"
-cs.placeholder = 150
-
-s:taboption("tftp", Flag, "enable_tftp",
-       translate("Enable TFTP server")).optional = true
-
-tr = s:taboption("tftp", Value, "tftp_root",
-       translate("TFTP server root"),
-       translate("Root directory for files served via TFTP"))
-
-tr.optional = true
-tr:depends("enable_tftp", "1")
-tr.placeholder = "/"
-
-
-db = s:taboption("tftp", Value, "dhcp_boot",
-       translate("Network boot image"),
-       translate("Filename of the boot image advertised to clients"))
-
-db.optional = true
-db:depends("enable_tftp", "1")
-db.placeholder = "pxelinux.0"
-
-o = s:taboption("general", Flag, "localservice",
-       translate("Local Service Only"),
-       translate("Limit DNS service to subnets interfaces on which we are serving DNS."))
-o.optional = false
-o.rmempty = false
-
-o = s:taboption("general", Flag, "nonwildcard",
-       translate("Non-wildcard"),
-       translate("Bind dynamically to interfaces rather than wildcard address (recommended as linux default)"))
-o.optional = false
-o.rmempty = true
-
-o = s:taboption("general", DynamicList, "interface",
-       translate("Listen Interfaces"),
-       translate("Limit listening to these interfaces, and loopback."))
-o.optional = true
-
-o = s:taboption("general", DynamicList, "notinterface",
-       translate("Exclude interfaces"),
-       translate("Prevent listening on these interfaces."))
-o.optional = true
-
-m:section(SimpleSection).template = "lease_status"
-
-s = m:section(TypedSection, "host", translate("Static Leases"),
-       translate("Static leases are used to assign fixed IP addresses and symbolic hostnames to " ..
-               "DHCP clients. They are also required for non-dynamic interface configurations where " ..
-               "only hosts with a corresponding lease are served.") .. "<br />" ..
-       translate("Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</em> " ..
-               "identifies the host, the <em>IPv4-Address</em> specifies the fixed address to " ..
-               "use, and the <em>Hostname</em> is assigned as a symbolic name to the requesting host. " ..
-               "The optional <em>Lease time</em> can be used to set non-standard host-specific " ..
-               "lease time, e.g. 12h, 3d or infinite."))
-
-s.addremove = true
-s.anonymous = true
-s.template = "cbi/tblsection"
-
-name = s:option(Value, "name", translate("Hostname"))
-name.datatype = "hostname('strict')"
-name.rmempty  = true
-
-function name.write(self, section, value)
-       Value.write(self, section, value)
-       m:set(section, "dns", "1")
-end
-
-function name.remove(self, section)
-       Value.remove(self, section)
-       m:del(section, "dns")
-end
-
-mac = s:option(Value, "mac", translate("<abbr title=\"Media Access Control\">MAC</abbr>-Address"))
-mac.datatype = "list(unique(macaddr))"
-mac.rmempty  = true
-
-function mac.cfgvalue(self, section)
-       local val = Value.cfgvalue(self, section)
-       return ipc.checkmac(val) or val
-end
-
-ip = s:option(Value, "ip", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"))
-ip.datatype = "or(ip4addr,'ignore')"
-
-time = s:option(Value, "leasetime", translate("Lease time"))
-time.rmempty = true
-
-duid = s:option(Value, "duid", translate("<abbr title=\"The DHCP Unique Identifier\">DUID</abbr>"))
-duid.datatype = "and(rangelength(20,36),hexstring)"
-fp = io.open("/var/hosts/odhcpd")
-if fp then
-       for line in fp:lines() do
-               local net_val, duid_val = string.match(line, "# (%S+)%s+(%S+)")
-               if duid_val then
-                       duid:value(duid_val, duid_val)
-               end
-       end
-       fp:close()
-end
-
-hostid = s:option(Value, "hostid", translate("<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"))
-
-sys.net.host_hints(function(m, v4, v6, name)
-       if m and v4 then
-               ip:value(v4)
-               mac:value(m, "%s (%s)" %{ m, name or v4 })
-       end
-end)
-
-function ip.validate(self, value, section)
-       local m = mac:formvalue(section) or ""
-       local n = name:formvalue(section) or ""
-       if value and #n == 0 and #m == 0 then
-               return nil, translate("One of hostname or mac address must be specified!")
-       end
-       return Value.validate(self, value, section)
-end
-
-
-return m
diff --git a/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua b/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua
deleted file mode 100644 (file)
index 46945af..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2010-2015 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local ipc = require "luci.ip"
-local sys = require "luci.sys"
-
-m = Map("dhcp", translate("Hostnames"))
-
-s = m:section(TypedSection, "domain", translate("Host entries"))
-s.addremove = true
-s.anonymous = true
-s.template = "cbi/tblsection"
-
-hn = s:option(Value, "name", translate("Hostname"))
-hn.datatype = "hostname"
-hn.rmempty  = true
-
-ip = s:option(Value, "ip", translate("IP address"))
-ip.datatype = "ipaddr"
-ip.rmempty  = true
-
-sys.net.host_hints(function(mac, v4, v6, name)
-       v6 = v6 and ipc.IPv6(v6)
-
-       if v4 or (v6 and not v6:is6linklocal()) then
-               ip:value(tostring(v4 or v6), "%s (%s)" %{ tostring(v4 or v6), name or mac })
-       end
-end)
-
-return m
diff --git a/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua b/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua
deleted file mode 100644 (file)
index ca66e9f..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
--- Copyright 2009-2010 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local nw  = require "luci.model.network".init()
-local fw  = require "luci.model.firewall".init()
-local utl = require "luci.util"
-local uci = require "luci.model.uci".cursor()
-
-m = SimpleForm("network", translate("Create Interface"))
-m.redirect = luci.dispatcher.build_url("admin/network/network")
-m.reset = false
-
-function m.on_cancel()
-       luci.http.redirect(luci.dispatcher.build_url("admin/network/network"))
-end
-
-newnet = m:field(Value, "_netname", translate("Name of the new interface"),
-       translate("The allowed characters are: <code>A-Z</code>, <code>a-z</code>, " ..
-               "<code>0-9</code> and <code>_</code>"
-       ))
-
-newnet:depends("_attach", "")
-newnet.default = arg[1] and "net_" .. arg[1]:gsub("[^%w_]+", "_")
-newnet.datatype = "and(uciname,maxlength(15))"
-
-advice = m:field(DummyValue, "d1", translate("Note: interface name length"),
-        translate("Maximum length of the name is 15 characters including " ..
-               "the automatic protocol/bridge prefix (br-, 6in4-, pppoe- etc.)"
-       ))
-
-newproto = m:field(ListValue, "_netproto", translate("Protocol of the new interface"))
-
-netbridge = m:field(Flag, "_bridge", translate("Create a bridge over multiple interfaces"))
-
-
-sifname = m:field(Value, "_ifname", translate("Cover the following interface"))
-
-sifname.widget = "radio"
-sifname.template  = "cbi/network_ifacelist"
-sifname.nobridges = true
-
-
-mifname = m:field(Value, "_ifnames", translate("Cover the following interfaces"))
-
-mifname.widget = "checkbox"
-mifname.template  = "cbi/network_ifacelist"
-mifname.nobridges = true
-
-
-local _, p
-for _, p in ipairs(nw:get_protocols()) do
-       if p:is_installed() then
-               newproto:value(p:proto(), p:get_i18n())
-               if not p:is_virtual()  then netbridge:depends("_netproto", p:proto()) end
-               if not p:is_floating() then
-                       sifname:depends({ _bridge = "",  _netproto = p:proto()})
-                       mifname:depends({ _bridge = "1", _netproto = p:proto()})
-               end
-       end
-end
-
-function newproto.validate(self, value, section)
-       local name = newnet:formvalue(section)
-       if not name or #name == 0 then
-               newnet:add_error(section, translate("No network name specified"))
-       elseif m:get(name) then
-               newnet:add_error(section, translate("The given network name is not unique"))
-       end
-
-       local proto = nw:get_protocol(value)
-       if proto and not proto:is_floating() then
-               local br = (netbridge:formvalue(section) == "1")
-               local ifn = br and mifname:formvalue(section) or sifname:formvalue(section)
-               for ifn in utl.imatch(ifn) do
-                       return value
-               end
-               return nil, translate("The selected protocol needs a device assigned")
-       end
-       return value
-end
-
-function newproto.write(self, section, value)
-       local name = newnet:formvalue(section)
-       if name and #name > 0 then
-               local br = (netbridge:formvalue(section) == "1") and "bridge" or nil
-               local net = nw:add_network(name, { proto = value, type = br })
-               if net then
-                       local ifn
-                       for ifn in utl.imatch(
-                               br and mifname:formvalue(section) or sifname:formvalue(section)
-                       ) do
-                               net:add_interface(ifn)
-                       end
-                       nw:save("network")
-                       nw:save("wireless")
-               end
-               luci.http.redirect(luci.dispatcher.build_url("admin/network/network", name))
-       end
-end
-
-return m
diff --git a/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua b/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua
deleted file mode 100644 (file)
index 5b23079..0000000
+++ /dev/null
@@ -1,563 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008-2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local fs = require "nixio.fs"
-local ut = require "luci.util"
-local pt = require "luci.tools.proto"
-local nw = require "luci.model.network"
-local fw = require "luci.model.firewall"
-
-arg[1] = arg[1] or ""
-
-local has_dnsmasq  = fs.access("/etc/config/dhcp")
-local has_firewall = fs.access("/etc/config/firewall")
-
-m = Map("network", translate("Interfaces") .. " - " .. arg[1]:upper(), translate("On this page you can configure the network interfaces. You can bridge several interfaces by ticking the \"bridge interfaces\" field and enter the names of several network interfaces separated by spaces. You can also use <abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation <samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: <samp>eth0.1</samp>)."))
-m.redirect = luci.dispatcher.build_url("admin", "network", "network")
-m:chain("wireless")
-m:chain("luci")
-
-if has_firewall then
-       m:chain("firewall")
-end
-
-nw.init(m.uci)
-fw.init(m.uci)
-
-
-local net = nw:get_network(arg[1])
-
-local function set_ifstate(name, option, value)
-       local found = false
-
-       m.uci:foreach("luci", "ifstate", function (s)
-               if s.interface == name then
-                       m.uci:set("luci", s[".name"], option, value)
-                       found = true
-                       return false
-               end
-       end)
-
-       if not found then
-               local sid = m.uci:add("luci", "ifstate")
-               m.uci:set("luci", sid, "interface", name)
-               m.uci:set("luci", sid, option, value)
-       end
-
-       m.uci:save("luci")
-end
-
-local function get_ifstate(name, option)
-       local val
-
-       m.uci:foreach("luci", "ifstate", function (s)
-               if s.interface == name then
-                       val = s[option]
-                       return false
-               end
-       end)
-
-       return val
-end
-
-local function backup_ifnames(is_bridge)
-       if not net:is_floating() and not get_ifstate(net:name(), "ifname") then
-               local ifcs = net:get_interfaces() or { net:get_interface() }
-               if ifcs then
-                       local _, ifn
-                       local ifns = { }
-                       for _, ifn in ipairs(ifcs) do
-                               local wif = ifn:get_wifinet()
-                               ifns[#ifns+1] = wif and wif:id() or ifn:name()
-                       end
-                       if #ifns > 0 then
-                               set_ifstate(net:name(), "ifname", table.concat(ifns, " "))
-                               set_ifstate(net:name(), "bridge", tostring(net:is_bridge()))
-                       end
-               end
-       end
-end
-
-
--- redirect to overview page if network does not exist anymore (e.g. after a revert)
-if not net then
-       luci.http.redirect(luci.dispatcher.build_url("admin/network/network"))
-       return
-end
-
--- protocol switch was requested, rebuild interface config and reload page
-if m:formvalue("cbid.network.%s._switch" % net:name()) then
-       -- get new protocol
-       local ptype = m:formvalue("cbid.network.%s.proto" % net:name()) or "-"
-       local proto = nw:get_protocol(ptype, net:name())
-       if proto then
-               -- backup default
-               backup_ifnames()
-
-               -- if current proto is not floating and target proto is not floating,
-               -- then attempt to retain the ifnames
-               --error(net:proto() .. " > " .. proto:proto())
-               if not net:is_floating() and not proto:is_floating() then
-                       -- if old proto is a bridge and new proto not, then clip the
-                       -- interface list to the first ifname only
-                       if net:is_bridge() and proto:is_virtual() then
-                               local _, ifn
-                               local first = true
-                               for _, ifn in ipairs(net:get_interfaces() or { net:get_interface() }) do
-                                       if first then
-                                               first = false
-                                       else
-                                               net:del_interface(ifn)
-                                       end
-                               end
-                               m:del(net:name(), "type")
-                       end
-
-               -- if the current proto is floating, the target proto not floating,
-               -- then attempt to restore ifnames from backup
-               elseif net:is_floating() and not proto:is_floating() then
-                       -- if we have backup data, then re-add all orphaned interfaces
-                       -- from it and restore the bridge choice
-                       local br = (get_ifstate(net:name(), "bridge") == "true")
-                       local ifn
-                       local ifns = { }
-                       for ifn in ut.imatch(get_ifstate(net:name(), "ifname")) do
-                               ifn = nw:get_interface(ifn)
-                               if ifn and not ifn:get_network() then
-                                       proto:add_interface(ifn)
-                                       if not br then
-                                               break
-                                       end
-                               end
-                       end
-                       if br then
-                               m:set(net:name(), "type", "bridge")
-                       end
-
-               -- in all other cases clear the ifnames
-               else
-                       local _, ifc
-                       for _, ifc in ipairs(net:get_interfaces() or { net:get_interface() }) do
-                               net:del_interface(ifc)
-                       end
-                       m:del(net:name(), "type")
-               end
-
-               -- clear options
-               local k, v
-               for k, v in pairs(m:get(net:name())) do
-                       if k:sub(1,1) ~= "." and
-                          k ~= "type" and
-                          k ~= "ifname"
-                       then
-                               m:del(net:name(), k)
-                       end
-               end
-
-               -- set proto
-               m:set(net:name(), "proto", proto:proto())
-               m.uci:save("network")
-               m.uci:save("wireless")
-
-               -- reload page
-               luci.http.redirect(luci.dispatcher.build_url("admin/network/network", arg[1]))
-               return
-       end
-end
-
--- dhcp setup was requested, create section and reload page
-if m:formvalue("cbid.dhcp._enable._enable") then
-       m.uci:section("dhcp", "dhcp", arg[1], {
-               interface = arg[1],
-               start     = "100",
-               limit     = "150",
-               leasetime = "12h"
-       })
-
-       m.uci:save("dhcp")
-       luci.http.redirect(luci.dispatcher.build_url("admin/network/network", arg[1]))
-       return
-end
-
-local ifc = net:get_interface()
-
-s = m:section(NamedSection, arg[1], "interface", translate("Common Configuration"))
-s.addremove = false
-
-s:tab("general",  translate("General Setup"))
-s:tab("advanced", translate("Advanced Settings"))
-s:tab("physical", translate("Physical Settings"))
-
-if has_firewall then
-       s:tab("firewall", translate("Firewall Settings"))
-end
-
-
-st = s:taboption("general", DummyValue, "__status", translate("Status"))
-
-local function set_status()
-       -- if current network is empty, print a warning
-       if not net:is_floating() and net:is_empty() then
-               st.template = "cbi/dvalue"
-               st.network  = nil
-               st.value    = translate("There is no device assigned yet, please attach a network device in the \"Physical Settings\" tab")
-       else
-               st.template = "admin_network/iface_status"
-               st.network  = arg[1]
-               st.value    = nil
-       end
-end
-
-m.on_init = set_status
-m.on_after_save = set_status
-
-
-p = s:taboption("general", ListValue, "proto", translate("Protocol"))
-p.default = net:proto()
-
-
-if not net:is_installed() then
-       p_install = s:taboption("general", Button, "_install")
-       p_install.title      = translate("Protocol support is not installed")
-       p_install.inputtitle = translate("Install package %q" % net:opkg_package())
-       p_install.inputstyle = "apply"
-       p_install:depends("proto", net:proto())
-
-       function p_install.write()
-               return luci.http.redirect(
-                       luci.dispatcher.build_url("admin/system/opkg") ..
-                       "?query=%s" % net:opkg_package()
-               )
-       end
-end
-
-
-p_switch = s:taboption("general", Button, "_switch")
-p_switch.title      = translate("Really switch protocol?")
-p_switch.inputtitle = translate("Switch protocol")
-p_switch.inputstyle = "apply"
-
-local _, pr
-for _, pr in ipairs(nw:get_protocols()) do
-       p:value(pr:proto(), pr:get_i18n())
-       if pr:proto() ~= net:proto() then
-               p_switch:depends("proto", pr:proto())
-       end
-end
-
-
-auto = s:taboption("advanced", Flag, "auto", translate("Bring up on boot"))
-auto.default = (net:proto() == "none") and auto.disabled or auto.enabled
-
-delegate = s:taboption("advanced", Flag, "delegate", translate("Use builtin IPv6-management"))
-delegate.default = delegate.enabled
-
-force_link = s:taboption("advanced", Flag, "force_link",
-       translate("Force link"),
-       translate("Set interface properties regardless of the link carrier (If set, carrier sense events do not invoke hotplug handlers)."))
-
-force_link.default = (net:proto() == "static") and force_link.enabled or force_link.disabled
-
-
-if not net:is_virtual() then
-       br = s:taboption("physical", Flag, "type", translate("Bridge interfaces"), translate("creates a bridge over specified interface(s)"))
-       br.enabled = "bridge"
-       br.rmempty = true
-       br:depends("proto", "static")
-       br:depends("proto", "dhcp")
-       br:depends("proto", "none")
-
-       stp = s:taboption("physical", Flag, "stp", translate("Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"),
-               translate("Enables the Spanning Tree Protocol on this bridge"))
-       stp:depends("type", "bridge")
-       stp.rmempty = true
-
-       igmp = s:taboption("physical", Flag, "igmp_snooping", translate("Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> snooping"),
-               translate("Enables IGMP snooping on this bridge"))
-       igmp:depends("type", "bridge")
-       igmp.rmempty = true
-end
-
-
-if not net:is_floating() then
-       ifname_single = s:taboption("physical", Value, "ifname_single", translate("Interface"))
-       ifname_single.template = "cbi/network_ifacelist"
-       ifname_single.widget = "radio"
-       ifname_single.nobridges = net:is_bridge()
-       ifname_single.noaliases = false
-       ifname_single.rmempty = false
-       ifname_single.network = arg[1]
-       ifname_single:depends("type", "")
-
-       function ifname_single.cfgvalue(self, s)
-               -- let the template figure out the related ifaces through the network model
-               return nil
-       end
-
-       function ifname_single.write(self, s, val)
-               local _, i
-               local new_ifs = { }
-               local old_ifs = { }
-
-               local alias = net:is_alias()
-
-               if alias then
-                       old_ifs[1] = '@' .. alias
-               else
-                       for _, i in ipairs(net:get_interfaces() or { net:get_interface() }) do
-                               old_ifs[#old_ifs+1] = i:name()
-                       end
-               end
-
-               for i in ut.imatch(val) do
-                       new_ifs[#new_ifs+1] = i
-
-                       -- if this is not a bridge, only assign first interface
-                       if self.option == "ifname_single" then
-                               break
-                       end
-               end
-
-               table.sort(old_ifs)
-               table.sort(new_ifs)
-
-               for i = 1, math.max(#old_ifs, #new_ifs) do
-                       if old_ifs[i] ~= new_ifs[i] then
-                               backup_ifnames()
-                               for i = 1, #old_ifs do
-                                       net:del_interface(old_ifs[i])
-                               end
-                               for i = 1, #new_ifs do
-                                       net:add_interface(new_ifs[i])
-                               end
-                               break
-                       end
-               end
-       end
-end
-
-
-if not net:is_virtual() then
-       ifname_multi = s:taboption("physical", Value, "ifname_multi", translate("Interface"))
-       ifname_multi.template = "cbi/network_ifacelist"
-       ifname_multi.nobridges = net:is_bridge()
-       ifname_multi.noaliases = true
-       ifname_multi.rmempty = false
-       ifname_multi.network = arg[1]
-       ifname_multi.widget = "checkbox"
-       ifname_multi:depends("type", "bridge")
-       ifname_multi.cfgvalue = ifname_single.cfgvalue
-       ifname_multi.write = ifname_single.write
-end
-
-
-if has_firewall then
-       fwzone = s:taboption("firewall", Value, "_fwzone",
-               translate("Create / Assign firewall-zone"),
-               translate("Choose the firewall zone you want to assign to this interface. Select <em>unspecified</em> to remove the interface from the associated zone or fill out the <em>create</em> field to define a new zone and attach the interface to it."))
-
-       fwzone.template = "cbi/firewall_zonelist"
-       fwzone.network = arg[1]
-
-       function fwzone.cfgvalue(self, section)
-               self.iface = section
-               local z = fw:get_zone_by_network(section)
-               return z and z:name()
-       end
-
-       function fwzone.write(self, section, value)
-               local zone = fw:get_zone(value) or fw:add_zone(value)
-               if zone then
-                       fw:del_network(section)
-                       zone:add_network(section)
-               end
-       end
-
-       function fwzone.remove(self, section)
-               fw:del_network(section)
-       end
-end
-
-
-function p.write() end
-function p.remove() end
-function p.validate(self, value, section)
-       if value == net:proto() then
-               if not net:is_floating() and net:is_empty() then
-                       local ifn = ((br and (br:formvalue(section) == "bridge"))
-                               and ifname_multi:formvalue(section)
-                            or ifname_single:formvalue(section))
-
-                       for ifn in ut.imatch(ifn) do
-                               return value
-                       end
-                       return nil, translate("The selected protocol needs a device assigned")
-               end
-       end
-       return value
-end
-
-
-local form, ferr = loadfile(
-       ut.libpath() .. "/model/cbi/admin_network/proto_%s.lua" % net:proto()
-)
-
-if not form then
-       s:taboption("general", DummyValue, "_error",
-               translate("Missing protocol extension for proto %q" % net:proto())
-       ).value = ferr
-else
-       setfenv(form, getfenv(1))(m, s, net)
-end
-
-
-local _, field
-for _, field in ipairs(s.children) do
-       if field ~= st and field ~= p and field ~= p_install and field ~= p_switch then
-               if next(field.deps) then
-                       local _, dep
-                       for _, dep in ipairs(field.deps) do
-                               dep.proto = net:proto()
-                       end
-               else
-                       field:depends("proto", net:proto())
-               end
-       end
-end
-
-
---
--- Display DNS settings if dnsmasq is available
---
-
-if has_dnsmasq and net:proto() == "static" then
-       m2 = Map("dhcp", "", "")
-
-       local has_section = false
-
-       m2.uci:foreach("dhcp", "dhcp", function(s)
-               if s.interface == arg[1] then
-                       has_section = true
-                       return false
-               end
-       end)
-
-       if not has_section and has_dnsmasq then
-
-               s = m2:section(TypedSection, "dhcp", translate("DHCP Server"))
-               s.anonymous   = true
-               s.cfgsections = function() return { "_enable" } end
-
-               x = s:option(Button, "_enable")
-               x.title      = translate("No DHCP Server configured for this interface")
-               x.inputtitle = translate("Setup DHCP Server")
-               x.inputstyle = "apply"
-
-       elseif has_section then
-
-               s = m2:section(TypedSection, "dhcp", translate("DHCP Server"))
-               s.addremove = false
-               s.anonymous = true
-               s:tab("general",  translate("General Setup"))
-               s:tab("advanced", translate("Advanced Settings"))
-               s:tab("ipv6", translate("IPv6 Settings"))
-
-               function s.filter(self, section)
-                       return m2.uci:get("dhcp", section, "interface") == arg[1]
-               end
-
-               local ignore = s:taboption("general", Flag, "ignore",
-                       translate("Ignore interface"),
-                       translate("Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for " ..
-                               "this interface."))
-
-               local start = s:taboption("general", Value, "start", translate("Start"),
-                       translate("Lowest leased address as offset from the network address."))
-               start.optional = true
-               start.datatype = "or(uinteger,ip4addr)"
-               start.default = "100"
-
-               local limit = s:taboption("general", Value, "limit", translate("Limit"),
-                       translate("Maximum number of leased addresses."))
-               limit.optional = true
-               limit.datatype = "uinteger"
-               limit.default = "150"
-
-               local ltime = s:taboption("general", Value, "leasetime", translate("Lease time"),
-                       translate("Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."))
-               ltime.rmempty = true
-               ltime.default = "12h"
-
-               local dd = s:taboption("advanced", Flag, "dynamicdhcp",
-                       translate("Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"),
-                       translate("Dynamically allocate DHCP addresses for clients. If disabled, only " ..
-                               "clients having static leases will be served."))
-               dd.default = dd.enabled
-
-               s:taboption("advanced", Flag, "force", translate("Force"),
-                       translate("Force DHCP on this network even if another server is detected."))
-
-               -- XXX: is this actually useful?
-               --s:taboption("advanced", Value, "name", translate("Name"),
-               --      translate("Define a name for this network."))
-
-               mask = s:taboption("advanced", Value, "netmask",
-                       translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"),
-                       translate("Override the netmask sent to clients. Normally it is calculated " ..
-                               "from the subnet that is served."))
-
-               mask.optional = true
-               mask.datatype = "ip4addr"
-
-               s:taboption("advanced", DynamicList, "dhcp_option", translate("DHCP-Options"),
-                       translate("Define additional DHCP options, for example \"<code>6,192.168.2.1," ..
-                               "192.168.2.2</code>\" which advertises different DNS servers to clients."))
-
-               for i, n in ipairs(s.children) do
-                       if n ~= ignore then
-                               n:depends("ignore", "")
-                       end
-               end
-
-               o = s:taboption("ipv6", ListValue, "ra", translate("Router Advertisement-Service"))
-               o:value("", translate("disabled"))
-               o:value("server", translate("server mode"))
-               o:value("relay", translate("relay mode"))
-               o:value("hybrid", translate("hybrid mode"))
-
-               o = s:taboption("ipv6", ListValue, "dhcpv6", translate("DHCPv6-Service"))
-               o:value("", translate("disabled"))
-               o:value("server", translate("server mode"))
-               o:value("relay", translate("relay mode"))
-               o:value("hybrid", translate("hybrid mode"))
-
-               o = s:taboption("ipv6", ListValue, "ndp", translate("NDP-Proxy"))
-               o:value("", translate("disabled"))
-               o:value("relay", translate("relay mode"))
-               o:value("hybrid", translate("hybrid mode"))
-
-               o = s:taboption("ipv6", ListValue, "ra_management", translate("DHCPv6-Mode"),
-                       translate("Default is stateless + stateful"))
-               o:value("0", translate("stateless"))
-               o:value("1", translate("stateless + stateful"))
-               o:value("2", translate("stateful-only"))
-               o:depends("dhcpv6", "server")
-               o:depends("dhcpv6", "hybrid")
-               o.default = "1"
-
-               o = s:taboption("ipv6", Flag, "ra_default", translate("Always announce default router"),
-                       translate("Announce as default router even if no public prefix is available."))
-               o:depends("ra", "server")
-               o:depends("ra", "hybrid")
-
-               s:taboption("ipv6", DynamicList, "dns", translate("Announced DNS servers"))
-               s:taboption("ipv6", DynamicList, "domain", translate("Announced DNS domains"))
-
-       else
-               m2 = nil
-       end
-end
-
-
-return m, m2
diff --git a/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua b/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua
deleted file mode 100644 (file)
index b98086d..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local fs = require "nixio.fs"
-local tpl = require "luci.template"
-local ntm = require "luci.model.network".init()
-local fwm = require "luci.model.firewall".init()
-local json = require "luci.jsonc"
-
-m = Map("network", translate("Interfaces"))
-m:chain("wireless")
-m:chain("firewall")
-m:chain("dhcp")
-m.pageaction = false
-
-
-local _, net
-local ifaces, netlist = { }, { }
-
-for _, net in ipairs(ntm:get_networks()) do
-       if net:name() ~= "loopback" then
-               local zn = net:zonename()
-               local z = zn and fwm:get_zone(zn) or fwm:get_zone_by_network(net:name())
-
-               local w = 1
-               if net:is_alias() then
-                       w = 2
-               elseif net:is_dynamic() then
-                       w = 3
-               end
-
-               ifaces[#ifaces+1] = net:name()
-               netlist[#netlist+1] = {
-                       net:name(), z and z:name() or "-", z, net, w
-               }
-       end
-end
-
-table.sort(netlist,
-       function(a, b)
-               if a[2] ~= b[2] then
-                       return a[2] < b[2]
-               elseif a[5] ~= b[5] then
-                       return a[5] < b[5]
-               else
-                       return a[1] < b[1]
-               end
-       end)
-
-s = m:section(TypedSection, "interface", translate("Interface Overview"))
-s.template = "admin_network/iface_overview"
-s.netlist = netlist
-
-function s.cfgsections(self)
-       local _, net, sl = nil, nil, { }
-
-       for _, net in ipairs(netlist) do
-               sl[#sl+1] = net[1]
-       end
-
-       return sl
-end
-
-o = s:option(Value, "__disable__")
-
-function o.write(self, sid, value)
-       if value ~= "1" then
-               m:set(sid, "auto", "")
-       else
-               m:set(sid, "auto", "0")
-       end
-end
-
-o.remove = o.write
-
-o = s:option(Value, "__delete__")
-
-function o.write(self, sid, value)
-       ntm:del_network(sid)
-end
-
-
-if fs.access("/etc/init.d/dsl_control") then
-       local ok, boarddata = pcall(json.parse, fs.readfile("/etc/board.json"))
-       local modemtype = (ok == true)
-               and (type(boarddata) == "table")
-               and (type(boarddata.dsl) == "table")
-               and (type(boarddata.dsl.modem) == "table")
-               and boarddata.dsl.modem.type
-
-       dsl = m:section(TypedSection, "dsl", translate("DSL"))
-       dsl.anonymous = true
-
-       annex = dsl:option(ListValue, "annex", translate("Annex"))
-       annex:value("a", translate("Annex A + L + M (all)"))
-       annex:value("b", translate("Annex B (all)"))
-       annex:value("j", translate("Annex J (all)"))
-       annex:value("m", translate("Annex M (all)"))
-       annex:value("bdmt", translate("Annex B G.992.1"))
-       annex:value("b2", translate("Annex B G.992.3"))
-       annex:value("b2p", translate("Annex B G.992.5"))
-       annex:value("at1", translate("ANSI T1.413"))
-       annex:value("admt", translate("Annex A G.992.1"))
-       annex:value("alite", translate("Annex A G.992.2"))
-       annex:value("a2", translate("Annex A G.992.3"))
-       annex:value("a2p", translate("Annex A G.992.5"))
-       annex:value("l", translate("Annex L G.992.3 POTS 1"))
-       annex:value("m2", translate("Annex M G.992.3"))
-       annex:value("m2p", translate("Annex M G.992.5"))
-
-       tone = dsl:option(ListValue, "tone", translate("Tone"))
-       tone:value("", translate("auto"))
-       tone:value("a", translate("A43C + J43 + A43"))
-       tone:value("av", translate("A43C + J43 + A43 + V43"))
-       tone:value("b", translate("B43 + B43C"))
-       tone:value("bv", translate("B43 + B43C + V43"))
-
-       if modemtype == "vdsl" then
-               xfer_mode = dsl:option(ListValue, "xfer_mode", translate("Encapsulation mode"))
-               xfer_mode:value("", translate("auto"))
-               xfer_mode:value("atm", translate("ATM (Asynchronous Transfer Mode)"))
-               xfer_mode:value("ptm", translate("PTM/EFM (Packet Transfer Mode)"))
-
-               line_mode = dsl:option(ListValue, "line_mode", translate("DSL line mode"))
-               line_mode:value("", translate("auto"))
-               line_mode:value("adsl", translate("ADSL"))
-               line_mode:value("vdsl", translate("VDSL"))
-
-               ds_snr = dsl:option(ListValue, "ds_snr_offset", translate("Downstream SNR offset"))
-               ds_snr.default = "0"
-               for i = -100, 100, 5 do
-                       ds_snr:value(i, translatef("%.1f dB", i / 10))
-               end
-       end
-
-       firmware = dsl:option(Value, "firmware", translate("Firmware File"))
-
-       m.pageaction = true
-end
-
--- Show ATM bridge section if we have the capabilities
-if fs.access("/usr/sbin/br2684ctl") then
-       atm = m:section(TypedSection, "atm-bridge", translate("ATM Bridges"),
-               translate("ATM bridges expose encapsulated ethernet in AAL5 " ..
-                       "connections as virtual Linux network interfaces which can " ..
-                       "be used in conjunction with DHCP or PPP to dial into the " ..
-                       "provider network."))
-
-       atm.addremove = true
-       atm.anonymous = true
-
-       atm.create = function(self, section)
-               local sid = TypedSection.create(self, section)
-               local max_unit = -1
-
-               m.uci:foreach("network", "atm-bridge",
-                       function(s)
-                               local u = tonumber(s.unit)
-                               if u ~= nil and u > max_unit then
-                                       max_unit = u
-                               end
-                       end)
-
-               m.uci:set("network", sid, "unit", max_unit + 1)
-               m.uci:set("network", sid, "atmdev", 0)
-               m.uci:set("network", sid, "encaps", "llc")
-               m.uci:set("network", sid, "payload", "bridged")
-               m.uci:set("network", sid, "vci", 35)
-               m.uci:set("network", sid, "vpi", 8)
-
-               return sid
-       end
-
-       atm:tab("general", translate("General Setup"))
-       atm:tab("advanced", translate("Advanced Settings"))
-
-       vci    = atm:taboption("general", Value, "vci", translate("ATM Virtual Channel Identifier (VCI)"))
-       vpi    = atm:taboption("general", Value, "vpi", translate("ATM Virtual Path Identifier (VPI)"))
-       encaps = atm:taboption("general", ListValue, "encaps", translate("Encapsulation mode"))
-       encaps:value("llc", translate("LLC"))
-       encaps:value("vc", translate("VC-Mux"))
-
-       atmdev  = atm:taboption("advanced", Value, "atmdev", translate("ATM device number"))
-       unit    = atm:taboption("advanced", Value, "unit", translate("Bridge unit number"))
-       payload = atm:taboption("advanced", ListValue, "payload", translate("Forwarding mode"))
-       payload:value("bridged", translate("bridged"))
-       payload:value("routed", translate("routed"))
-       m.pageaction = true
-end
-
-local network = require "luci.model.network"
-if network:has_ipv6() then
-       local s = m:section(NamedSection, "globals", "globals", translate("Global network options"))
-       local o = s:option(Value, "ula_prefix", translate("IPv6 ULA-Prefix"))
-       o.datatype = "ip6addr"
-       o.rmempty = true
-       m.pageaction = true
-end
-
-
-return m
diff --git a/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua b/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/routes.lua
deleted file mode 100644 (file)
index 1970f36..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local wa = require "luci.tools.webadmin"
-local fs = require "nixio.fs"
-
-m = Map("network",
-       translate("Routes"),
-       translate("Routes specify over which interface and gateway a certain host or network " ..
-               "can be reached."))
-
-s = m:section(TypedSection, "route", translate("Static IPv4 Routes"))
-s.addremove = true
-s.anonymous = true
-
-s.template  = "cbi/tblsection"
-
-iface = s:option(ListValue, "interface", translate("Interface"))
-wa.cbi_add_networks(iface)
-
-t = s:option(Value, "target", translate("Target"), translate("Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"))
-t.datatype = "ip4addr"
-t.rmempty = false
-
-n = s:option(Value, "netmask", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"), translate("if target is a network"))
-n.placeholder = "255.255.255.255"
-n.datatype = "ip4addr"
-n.rmempty = true
-
-g = s:option(Value, "gateway", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"))
-g.datatype = "ip4addr"
-g.rmempty = true
-
-metric = s:option(Value, "metric", translate("Metric"))
-metric.placeholder = 0
-metric.datatype = "range(0,255)"
-metric.size = 5
-metric.rmempty = true
-
-mtu = s:option(Value, "mtu", translate("MTU"))
-mtu.placeholder = 1500
-mtu.datatype = "range(64,9000)"
-mtu.size = 5
-mtu.rmempty = true
-
-routetype = s:option(Value, "type", translate("Route type"))
-routetype:value("", "unicast")
-routetype:value("local", "local")
-routetype:value("broadcast", "broadcast")
-routetype:value("multicast", "multicast")
-routetype:value("unreachable", "unreachable")
-routetype:value("prohibit", "prohibit")
-routetype:value("blackhole", "blackhole")
-routetype:value("anycast", "anycast")
-routetype.default = ""
-routetype.rmempty = true
-
-if fs.access("/proc/net/ipv6_route") then
-       s = m:section(TypedSection, "route6", translate("Static IPv6 Routes"))
-       s.addremove = true
-       s.anonymous = true
-
-       s.template  = "cbi/tblsection"
-
-       iface = s:option(ListValue, "interface", translate("Interface"))
-       wa.cbi_add_networks(iface)
-
-       t = s:option(Value, "target", translate("Target"), translate("<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network (CIDR)"))
-       t.datatype = "ip6addr"
-       t.rmempty = false
-
-       g = s:option(Value, "gateway", translate("<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"))
-       g.datatype = "ip6addr"
-       g.rmempty = true
-
-       metric = s:option(Value, "metric", translate("Metric"))
-       metric.placeholder = 0
-       metric.datatype = "range(0,65535)" -- XXX: not sure
-       metric.size = 5
-       metric.rmempty = true
-
-       mtu = s:option(Value, "mtu", translate("MTU"))
-       mtu.placeholder = 1500
-       mtu.datatype = "range(64,9000)"
-       mtu.size = 5
-       mtu.rmempty = true
-
-       routetype = s:option(Value, "type", translate("Route type"))
-       routetype:value("", "unicast")
-       routetype:value("local", "local")
-       routetype:value("broadcast", "broadcast")
-       routetype:value("multicast", "multicast")
-       routetype:value("unreachable", "unreachable")
-       routetype:value("prohibit", "prohibit")
-       routetype:value("blackhole", "blackhole")
-       routetype:value("anycast", "anycast")
-       routetype.default = ""
-       routetype.rmempty = true
-end
-
-
-return m
diff --git a/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua b/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/vlan.lua
deleted file mode 100644 (file)
index d79b3c4..0000000
+++ /dev/null
@@ -1,364 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2010-2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-m = Map("network", translate("Switch"), translate("The network ports on this device can be combined to several <abbr title=\"Virtual Local Area Network\">VLAN</abbr>s in which computers can communicate directly with each other. <abbr title=\"Virtual Local Area Network\">VLAN</abbr>s are often used to separate different network segments. Often there is by default one Uplink port for a connection to the next greater network like the internet and other ports for a local network."))
-
-local fs = require "nixio.fs"
-local ut = require "luci.util"
-local nw = require "luci.model.network"
-local switches = { }
-
-nw.init(m.uci)
-
-local topologies = nw:get_switch_topologies() or {}
-
-local update_interfaces = function(old_ifname, new_ifname)
-       local info = { }
-
-       m.uci:foreach("network", "interface", function(section)
-               local old_ifnames = section.ifname
-               local new_ifnames = { }
-               local cur_ifname
-               local changed = false
-               for cur_ifname in luci.util.imatch(old_ifnames) do
-                       if cur_ifname == old_ifname then
-                               new_ifnames[#new_ifnames+1] = new_ifname
-                               changed = true
-                       else
-                               new_ifnames[#new_ifnames+1] = cur_ifname
-                       end
-               end
-               if changed then
-                       m.uci:set("network", section[".name"], "ifname", table.concat(new_ifnames, " "))
-
-                       info[#info+1] = translatef("Interface %q device auto-migrated from %q to %q.",
-                               section[".name"], old_ifname, new_ifname)
-               end
-       end)
-
-       if #info > 0 then
-               m.message = (m.message and m.message .. "\n" or "") .. table.concat(info, "\n")
-       end
-end
-
-m.uci:foreach("network", "switch",
-       function(x)
-               local sid         = x['.name']
-               local switch_name = x.name or sid
-               local has_vlan    = nil
-               local has_learn   = nil
-               local has_vlan4k  = nil
-               local has_jumbo3  = nil
-               local has_mirror  = nil
-               local min_vid     = 0
-               local max_vid     = 16
-               local num_vlans   = 16
-
-               local switch_title
-               local enable_vlan4k = false
-
-               local topo = topologies[switch_name]
-
-               if not topo then
-                       m.message = translatef("Switch %q has an unknown topology - the VLAN settings might not be accurate.", switch_name)
-                       topo = {
-                               ports = {
-                                       { num = 0, label = "Port 1" },
-                                       { num = 1, label = "Port 2" },
-                                       { num = 2, label = "Port 3" },
-                                       { num = 3, label = "Port 4" },
-                                       { num = 4, label = "Port 5" },
-                                       { num = 5, label = "CPU (eth0)", tagged = false }
-                               }
-                       }
-               end
-
-               -- Parse some common switch properties from swconfig help output.
-               local swc = io.popen("swconfig dev %s help 2>/dev/null" % ut.shellquote(switch_name))
-               if swc then
-
-                       local is_port_attr = false
-                       local is_vlan_attr = false
-
-                       while true do
-                               local line = swc:read("*l")
-                               if not line then break end
-
-                               if line:match("^%s+%-%-vlan") then
-                                       is_vlan_attr = true
-
-                               elseif line:match("^%s+%-%-port") then
-                                       is_vlan_attr = false
-                                       is_port_attr = true
-
-                               elseif line:match("cpu @") then
-                                       switch_title = line:match("^switch%d: %w+%((.-)%)")
-                                       num_vlans  = tonumber(line:match("vlans: (%d+)")) or 16
-                                       min_vid    = 1
-
-                               elseif line:match(": pvid") or line:match(": tag") or line:match(": vid") then
-                                       if is_vlan_attr then has_vlan4k = line:match(": (%w+)") end
-
-                               elseif line:match(": enable_vlan4k") then
-                                       enable_vlan4k = true
-
-                               elseif line:match(": enable_vlan") then
-                                       has_vlan = "enable_vlan"
-
-                               elseif line:match(": enable_learning") then
-                                       has_learn = "enable_learning"
-
-                               elseif line:match(": enable_mirror_rx") then
-                                       has_mirror = "enable_mirror_rx"
-
-                               elseif line:match(": max_length") then
-                                       has_jumbo3 = "max_length"
-                               end
-                       end
-
-                       swc:close()
-               end
-
-
-               -- Switch properties
-               s = m:section(NamedSection, x['.name'], "switch",
-                       switch_title and translatef("Switch %q (%s)", switch_name, switch_title)
-                                             or translatef("Switch %q", switch_name))
-
-               s.addremove = false
-
-               if has_vlan then
-                       s:option(Flag, has_vlan, translate("Enable VLAN functionality"))
-               end
-
-               if has_learn then
-                       x = s:option(Flag, has_learn, translate("Enable learning and aging"))
-                       x.default = x.enabled
-               end
-
-               if has_jumbo3 then
-                       x = s:option(Flag, has_jumbo3, translate("Enable Jumbo Frame passthrough"))
-                       x.enabled = "3"
-                       x.rmempty = true
-               end
-
-               -- Does this switch support port mirroring?
-               if has_mirror then
-                       s:option(Flag, "enable_mirror_rx", translate("Enable mirroring of incoming packets"))
-                       s:option(Flag, "enable_mirror_tx", translate("Enable mirroring of outgoing packets"))
-
-                       local sp = s:option(ListValue, "mirror_source_port", translate("Mirror source port"))
-                       local mp = s:option(ListValue, "mirror_monitor_port", translate("Mirror monitor port"))
-
-                       sp:depends("enable_mirror_tx", "1")
-                       sp:depends("enable_mirror_rx", "1")
-
-                       mp:depends("enable_mirror_tx", "1")
-                       mp:depends("enable_mirror_rx", "1")
-
-                       local _, pt
-                       for _, pt in ipairs(topo.ports) do
-                               sp:value(pt.num, pt.label)
-                               mp:value(pt.num, pt.label)
-                       end
-               end
-
-               -- VLAN table
-               s = m:section(TypedSection, "switch_vlan",
-                       switch_title and translatef("VLANs on %q (%s)", switch_name, switch_title)
-                                                 or translatef("VLANs on %q", switch_name))
-
-               s.template = "cbi/tblsection"
-               s.addremove = true
-               s.anonymous = true
-
-               -- Filter by switch
-               s.filter = function(self, section)
-                       local device = m:get(section, "device")
-                       return (device and device == switch_name)
-               end
-
-               -- Override cfgsections callback to enforce row ordering by vlan id.
-               s.cfgsections = function(self)
-                       local osections = TypedSection.cfgsections(self)
-                       local sections = { }
-                       local section
-
-                       for _, section in luci.util.spairs(
-                               osections,
-                               function(a, b)
-                                       return (tonumber(m:get(osections[a], has_vlan4k or "vlan")) or 9999)
-                                               <  (tonumber(m:get(osections[b], has_vlan4k or "vlan")) or 9999)
-                               end
-                       ) do
-                               sections[#sections+1] = section
-                       end
-
-                       return sections
-               end
-
-               -- When creating a new vlan, preset it with the highest found vid + 1.
-               s.create = function(self, section, origin)
-                       -- Filter by switch
-                       if m:get(origin, "device") ~= switch_name then
-                               return
-                       end
-
-                       local sid = TypedSection.create(self, section)
-
-                       local max_nr = 0
-                       local max_id = 0
-
-                       m.uci:foreach("network", "switch_vlan",
-                               function(s)
-                                       if s.device == switch_name then
-                                               local nr = tonumber(s.vlan)
-                                               local id = has_vlan4k and tonumber(s[has_vlan4k])
-                                               if nr ~= nil and nr > max_nr then max_nr = nr end
-                                               if id ~= nil and id > max_id then max_id = id end
-                                       end
-                               end)
-
-                       m:set(sid, "device", switch_name)
-                       m:set(sid, "vlan", max_nr + 1)
-
-                       if has_vlan4k then
-                               m:set(sid, has_vlan4k, max_id + 1)
-                       end
-
-                       return sid
-               end
-
-
-               local port_opts = { }
-               local untagged  = { }
-
-               -- Parse current tagging state from the "ports" option.
-               local portvalue = function(self, section)
-                       local pt
-                       for pt in (m:get(section, "ports") or ""):gmatch("%w+") do
-                               local pc, tu = pt:match("^(%d+)([tu]*)")
-                               if pc == self.option then return (#tu > 0) and tu or "u" end
-                       end
-                       return ""
-               end
-
-               -- Validate port tagging. Ensure that a port is only untagged once,
-               -- bail out if not.
-               local portvalidate = function(self, value, section)
-                       -- ensure that the ports appears untagged only once
-                       if value == "u" then
-                               if not untagged[self.option] then
-                                       untagged[self.option] = true
-                               else
-                                       return nil,
-                                               translatef("%s is untagged in multiple VLANs!", self.title)
-                               end
-                       end
-                       return value
-               end
-
-
-               local vid = s:option(Value, has_vlan4k or "vlan", "VLAN ID")
-               local mx_vid = has_vlan4k and 4094 or (num_vlans - 1)
-
-               vid.rmempty = false
-               vid.forcewrite = true
-               vid.vlan_used = { }
-               vid.datatype = "and(uinteger,range("..min_vid..","..mx_vid.."))"
-
-               -- Validate user provided VLAN ID, make sure its within the bounds
-               -- allowed by the switch.
-               vid.validate = function(self, value, section)
-                       local v = tonumber(value)
-                       local m = has_vlan4k and 4094 or (num_vlans - 1)
-                       if v ~= nil and v >= min_vid and v <= m then
-                               if not self.vlan_used[v] then
-                                       self.vlan_used[v] = true
-                                       return value
-                               else
-                                       return nil,
-                                               translatef("Invalid VLAN ID given! Only unique IDs are allowed")
-                               end
-                       else
-                               return nil,
-                                       translatef("Invalid VLAN ID given! Only IDs between %d and %d are allowed.", min_vid, m)
-                       end
-               end
-
-               -- When writing the "vid" or "vlan" option, serialize the port states
-               -- as well and write them as "ports" option to uci.
-               vid.write = function(self, section, new_vid)
-                       local o
-                       local p = { }
-                       for _, o in ipairs(port_opts) do
-                               local new_tag = o:formvalue(section)
-                               if new_tag == "t" then
-                                       p[#p+1] = o.option .. new_tag
-                               elseif new_tag == "u" then
-                                       p[#p+1] = o.option
-                               end
-
-                               if o.info and o.info.device then
-                                       local old_tag = o:cfgvalue(section)
-                                       local old_vid = self:cfgvalue(section)
-                                       if old_tag ~= new_tag or old_vid ~= new_vid then
-                                               local old_ifname = (old_tag == "u") and o.info.device
-                                                       or "%s.%s" %{ o.info.device, old_vid }
-
-                                               local new_ifname = (new_tag == "u") and o.info.device
-                                                       or "%s.%s" %{ o.info.device, new_vid }
-
-                                               if old_ifname ~= new_ifname then
-                                                       update_interfaces(old_ifname, new_ifname)
-                                               end
-                                       end
-                               end
-                       end
-
-                       if enable_vlan4k then
-                               m:set(sid, "enable_vlan4k", "1")
-                       end
-
-                       m:set(section, "ports", table.concat(p, " "))
-                       return Value.write(self, section, new_vid)
-               end
-
-               -- Fallback to "vlan" option if "vid" option is supported but unset.
-               vid.cfgvalue = function(self, section)
-                       return m:get(section, has_vlan4k or "vlan")
-                               or m:get(section, "vlan")
-               end
-
-               local _, pt
-               for _, pt in ipairs(topo.ports) do
-                       local po = s:option(ListValue, tostring(pt.num), pt.label)
-
-                       po:value("",  translate("off"))
-
-                       if not pt.tagged then
-                               po:value("u", translate("untagged"))
-                       end
-
-                       po:value("t", translate("tagged"))
-
-                       po.cfgvalue = portvalue
-                       po.validate = portvalidate
-                       po.write    = function() end
-                       po.info     = pt
-
-                       port_opts[#port_opts+1] = po
-               end
-
-               table.sort(port_opts, function(a, b) return a.option < b.option end)
-               switches[#switches+1] = switch_name
-       end
-)
-
--- Switch status template
-s = m:section(SimpleSection)
-s.template = "admin_network/switch_status"
-s.switches = switches
-
-return m
diff --git a/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua b/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua
deleted file mode 100644 (file)
index eed758c..0000000
+++ /dev/null
@@ -1,1149 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local wa = require "luci.tools.webadmin"
-local nw = require "luci.model.network"
-local ut = require "luci.util"
-local nt = require "luci.sys".net
-local fs = require "nixio.fs"
-
-local acct_port, acct_secret, acct_server, anonymous_identity, ant1, ant2,
-       auth, auth_port, auth_secret, auth_server, bssid, cacert, cacert2,
-       cc, ch, cipher, clientcert, clientcert2, ea, eaptype, en, encr,
-       ft_protocol, ft_psk_generate_local, hidden, htmode, identity,
-       ieee80211r, ieee80211w, ifname, isolate, key_retries,
-       legacyrates, max_timeout, meshfwd, meshid, ml, mobility_domain, mode,
-       mp, nasid, network, password, pmk_r1_push, privkey, privkey2, privkeypwd,
-       privkeypwd2, r0_key_lifetime, r0kh, r1_key_holder, r1kh,
-       reassociation_deadline, retry_timeout, ssid, st, tp, wepkey, wepslot,
-       wmm, wpakey, wps, disassoc_low_ack, short_preamble, beacon_int, dtim_period,
-       wparekey, inactivitypool, maxinactivity, listeninterval,
-       dae_client, dae_port, dae_port
-
-
-arg[1] = arg[1] or ""
-
-m = Map("wireless", "",
-       translate("The <em>Device Configuration</em> section covers physical settings of the radio " ..
-               "hardware such as channel, transmit power or antenna selection which are shared among all " ..
-               "defined wireless networks (if the radio hardware is multi-SSID capable). Per network settings " ..
-               "like encryption or operation mode are grouped in the <em>Interface Configuration</em>."))
-
-m:chain("network")
-m:chain("firewall")
-m.redirect = luci.dispatcher.build_url("admin/network/wireless")
-
-nw.init(m.uci)
-
-local wnet = nw:get_wifinet(arg[1])
-local wdev = wnet and wnet:get_device()
-
--- redirect to overview page if network does not exist anymore (e.g. after a revert)
-if not wnet or not wdev then
-       luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless"))
-       return
-end
-
-local function txpower_list(iw)
-       local list = iw.txpwrlist or { }
-       local off  = tonumber(iw.txpower_offset) or 0
-       local new  = { }
-       local prev = -1
-       local _, val
-       for _, val in ipairs(list) do
-               local dbm = val.dbm + off
-               local mw  = math.floor(10 ^ (dbm / 10))
-               if mw ~= prev then
-                       prev = mw
-                       new[#new+1] = {
-                               display_dbm = dbm,
-                               display_mw  = mw,
-                               driver_dbm  = val.dbm,
-                               driver_mw   = val.mw
-                       }
-               end
-       end
-       return new
-end
-
-local function txpower_current(pwr, list)
-       pwr = tonumber(pwr)
-       if pwr ~= nil then
-               local _, item
-               for _, item in ipairs(list) do
-                       if item.driver_dbm >= pwr then
-                               return item.driver_dbm
-                       end
-               end
-       end
-       return pwr or ""
-end
-
-local iw = luci.sys.wifi.getiwinfo(arg[1])
-local hw_modes      = iw.hwmodelist or { }
-local tx_power_list = txpower_list(iw)
-local tx_power_cur  = txpower_current(wdev:get("txpower"), tx_power_list)
-
--- wireless toggle was requested, commit and reload page
-function m.parse(map)
-       local new_cc = m:formvalue("cbid.wireless.%s.country" % wdev:name())
-       local old_cc = m:get(wdev:name(), "country")
-
-       if m:formvalue("cbid.wireless.%s.__toggle" % wdev:name()) then
-               if wdev:get("disabled") == "1" or wnet:get("disabled") == "1" then
-                       wnet:set("disabled", nil)
-               else
-                       wnet:set("disabled", "1")
-               end
-               wdev:set("disabled", nil)
-               m.apply_needed = true
-               m.redirect = nil
-       end
-
-       Map.parse(map)
-
-       if m:get(wdev:name(), "type") == "mac80211" and new_cc and new_cc ~= old_cc then
-               luci.sys.call("iw reg set %s" % ut.shellquote(new_cc))
-
-               local old_ch = tonumber(m:formvalue("cbid.wireless.%s._mode_freq.channel" % wdev:name()) or "")
-               if old_ch then
-                       local _, c, new_ch
-                       for _, c in ipairs(iw.freqlist) do
-                               if c.channel > old_ch or (old_ch <= 14 and c.channel > 14) then
-                                       break
-                               end
-                               new_ch = c.channel
-                       end
-                       if new_ch ~= old_ch then
-                               wdev:set("channel", new_ch)
-                               m.message = translatef("Channel %d is not available in the %s regulatory domain and has been auto-adjusted to %d.",
-                                       old_ch, new_cc, new_ch)
-                       end
-               end
-       end
-
-       if wdev:get("disabled") == "1" or wnet:get("disabled") == "1" then
-               en.title      = translate("Wireless network is disabled")
-               en.inputtitle = translate("Enable")
-               en.inputstyle = "apply"
-       else
-               en.title      = translate("Wireless network is enabled")
-               en.inputtitle = translate("Disable")
-               en.inputstyle = "reset"
-       end
-end
-
-m.title = luci.util.pcdata(wnet:get_i18n())
-
-s = m:section(NamedSection, wdev:name(), "wifi-device", translate("Device Configuration"))
-s.addremove = false
-
-s:tab("general", translate("General Setup"))
-s:tab("macfilter", translate("MAC-Filter"))
-s:tab("advanced", translate("Advanced Settings"))
-
-st = s:taboption("general", DummyValue, "__status", translate("Status"))
-st.template = "admin_network/wifi_status"
-st.ifname   = arg[1]
-
-en = s:taboption("general", Button, "__toggle")
-
-local hwtype = wdev:get("type")
-
--- NanoFoo
-local nsantenna = wdev:get("antenna")
-
--- Check whether there are client interfaces on the same radio,
--- if yes, lock the channel choice as these stations will dicatate the freq
-local found_sta = nil
-local _, net
-if wnet:mode() ~= "sta" then
-       for _, net in ipairs(wdev:get_wifinets()) do
-               if net:mode() == "sta" and net:get("disabled") ~= "1" then
-                       if not found_sta then
-                               found_sta = {}
-                               found_sta.channel = net:channel()
-                               found_sta.names = {}
-                       end
-                       found_sta.names[#found_sta.names+1] = net:shortname()
-               end
-       end
-end
-
-if found_sta then
-       ch = s:taboption("general", DummyValue, "choice", translate("Channel"))
-       ch.value = translatef("Locked to channel %s used by: %s",
-               found_sta.channel or "(auto)", table.concat(found_sta.names, ", "))
-else
-       ch = s:taboption("general", Value, "_mode_freq", '<br />'..translate("Operating frequency"))
-       ch.iwinfo = iw
-       ch.template = "cbi/wireless_modefreq"
-
-       function ch.cfgvalue(self, section)
-               return {
-                       m:get(section, "hwmode") or "",
-                       m:get(section, "channel") or "auto",
-                       m:get(section, "htmode") or ""
-               }
-       end
-
-       function ch.formvalue(self, section)
-               return {
-                       m:formvalue(self:cbid(section) .. ".band") or (hw_modes.g and "11g" or "11a"),
-                       m:formvalue(self:cbid(section) .. ".channel") or "auto",
-                       m:formvalue(self:cbid(section) .. ".htmode") or ""
-               }
-       end
-
-       function ch.write(self, section, value)
-               m:set(section, "hwmode", value[1])
-               m:set(section, "channel", value[2])
-               m:set(section, "htmode", value[3])
-       end
-end
-
-------------------- MAC80211 Device ------------------
-
-if hwtype == "mac80211" then
-       if #tx_power_list > 0 then
-               tp = s:taboption("general", ListValue,
-                       "txpower", translate("Transmit Power"), "dBm")
-               tp.rmempty = true
-               tp.default = tx_power_cur
-               function tp.cfgvalue(...)
-                       return txpower_current(Value.cfgvalue(...), tx_power_list)
-               end
-
-               tp:value("", translate("auto"))
-               for _, p in ipairs(tx_power_list) do
-                       tp:value(p.driver_dbm, "%i dBm (%i mW)"
-                               %{ p.display_dbm, p.display_mw })
-               end
-       end
-
-       local cl = iw and iw.countrylist
-       if cl and #cl > 0 then
-               cc = s:taboption("advanced", ListValue, "country", translate("Country Code"), translate("Use ISO/IEC 3166 alpha2 country codes."))
-               cc.default = tostring(iw and iw.country or "00")
-               for _, c in ipairs(cl) do
-                       cc:value(c.alpha2, "%s - %s" %{ c.alpha2, c.name })
-               end
-       else
-               s:taboption("advanced", Value, "country", translate("Country Code"), translate("Use ISO/IEC 3166 alpha2 country codes."))
-       end
-
-       legacyrates = s:taboption("advanced", Flag, "legacy_rates", translate("Allow legacy 802.11b rates"))
-       legacyrates.rmempty = false
-       legacyrates.default = "1"
-
-       s:taboption("advanced", Value, "distance", translate("Distance Optimization"),
-               translate("Distance to farthest network member in meters."))
-
-       -- external antenna profiles
-       local eal = iw and iw.extant
-       if eal and #eal > 0 then
-               ea = s:taboption("advanced", ListValue, "extant", translate("Antenna Configuration"))
-               for _, eap in ipairs(eal) do
-                       ea:value(eap.id, "%s (%s)" %{ eap.name, eap.description })
-                       if eap.selected then
-                               ea.default = eap.id
-                       end
-               end
-       end
-
-       s:taboption("advanced", Value, "frag", translate("Fragmentation Threshold"))
-       s:taboption("advanced", Value, "rts", translate("RTS/CTS Threshold"))
-       
-       s:taboption("advanced", Flag, "noscan", translate("Force 40MHz mode"),
-               translate("Always use 40MHz channels even if the secondary channel overlaps. Using this option does not comply with IEEE 802.11n-2009!")).optional = true
-
-       beacon_int = s:taboption("advanced", Value, "beacon_int", translate("Beacon Interval"))
-       beacon_int.optional = true
-       beacon_int.placeholder = 100
-       beacon_int.datatype = "range(15,65535)"
-end
-
-
-------------------- Broadcom Device ------------------
-
-if hwtype == "broadcom" then
-       tp = s:taboption("general",
-               (#tx_power_list > 0) and ListValue or Value,
-               "txpower", translate("Transmit Power"), "dBm")
-
-       tp.rmempty = true
-       tp.default = tx_power_cur
-
-       function tp.cfgvalue(...)
-               return txpower_current(Value.cfgvalue(...), tx_power_list)
-       end
-
-       tp:value("", translate("auto"))
-       for _, p in ipairs(tx_power_list) do
-               tp:value(p.driver_dbm, "%i dBm (%i mW)"
-                       %{ p.display_dbm, p.display_mw })
-       end
-
-       mode = s:taboption("advanced", ListValue, "hwmode", translate("Band"))
-       if hw_modes.b then
-               mode:value("11b", "2.4GHz (802.11b)")
-               if hw_modes.g then
-                       mode:value("11bg", "2.4GHz (802.11b+g)")
-               end
-       end
-       if hw_modes.g then
-               mode:value("11g", "2.4GHz (802.11g)")
-               mode:value("11gst", "2.4GHz (802.11g + Turbo)")
-               mode:value("11lrs", "2.4GHz (802.11g Limited Rate Support)")
-       end
-       if hw_modes.a then mode:value("11a", "5GHz (802.11a)") end
-       if hw_modes.n then
-               if hw_modes.g then
-                       mode:value("11ng", "2.4GHz (802.11g+n)")
-                       mode:value("11n", "2.4GHz (802.11n)")
-               end
-               if hw_modes.a then
-                       mode:value("11na", "5GHz (802.11a+n)")
-                       mode:value("11n", "5GHz (802.11n)")
-               end
-               htmode = s:taboption("advanced", ListValue, "htmode", translate("HT mode (802.11n)"))
-               htmode:depends("hwmode", "11ng")
-               htmode:depends("hwmode", "11na")
-               htmode:depends("hwmode", "11n")
-               htmode:value("HT20", "20MHz")
-               htmode:value("HT40", "40MHz")
-       end
-
-       ant1 = s:taboption("advanced", ListValue, "txantenna", translate("Transmitter Antenna"))
-       ant1.widget = "radio"
-       ant1:depends("diversity", "")
-       ant1:value("3", translate("auto"))
-       ant1:value("0", translate("Antenna 1"))
-       ant1:value("1", translate("Antenna 2"))
-
-       ant2 = s:taboption("advanced", ListValue, "rxantenna", translate("Receiver Antenna"))
-       ant2.widget = "radio"
-       ant2:depends("diversity", "")
-       ant2:value("3", translate("auto"))
-       ant2:value("0", translate("Antenna 1"))
-       ant2:value("1", translate("Antenna 2"))
-
-       s:taboption("advanced", Flag, "frameburst", translate("Frame Bursting"))
-
-       s:taboption("advanced", Value, "distance", translate("Distance Optimization"))
-       --s:option(Value, "slottime", translate("Slot time"))
-
-       s:taboption("advanced", Value, "country", translate("Country Code"))
-       s:taboption("advanced", Value, "maxassoc", translate("Connection Limit"))
-end
-
-
---------------------- HostAP Device ---------------------
-
-if hwtype == "prism2" then
-       s:taboption("advanced", Value, "txpower", translate("Transmit Power"), "att units").rmempty = true
-
-       s:taboption("advanced", Flag, "diversity", translate("Diversity")).rmempty = false
-
-       s:taboption("advanced", Value, "txantenna", translate("Transmitter Antenna"))
-       s:taboption("advanced", Value, "rxantenna", translate("Receiver Antenna"))
-end
-
-
------------------------ Interface -----------------------
-
-s = m:section(NamedSection, wnet.sid, "wifi-iface", translate("Interface Configuration"))
-s.addremove = false
-s.anonymous = true
-s.defaults.device = wdev:name()
-
-s:tab("general", translate("General Setup"))
-s:tab("encryption", translate("Wireless Security"))
-s:tab("macfilter", translate("MAC-Filter"))
-s:tab("advanced", translate("Advanced Settings"))
-
-mode = s:taboption("general", ListValue, "mode", translate("Mode"))
-mode.override_values = true
-mode:value("ap", translate("Access Point"))
-mode:value("sta", translate("Client"))
-mode:value("adhoc", translate("Ad-Hoc"))
-
-meshid = s:taboption("general", Value, "mesh_id", translate("Mesh Id"))
-meshid:depends({mode="mesh"})
-
-meshfwd = s:taboption("advanced", Flag, "mesh_fwding", translate("Forward mesh peer traffic"))
-meshfwd.rmempty = false
-meshfwd.default = "1"
-meshfwd:depends({mode="mesh"})
-
-ssid = s:taboption("general", Value, "ssid", translate("<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"))
-ssid.datatype = "maxlength(32)"
-ssid:depends({mode="ap"})
-ssid:depends({mode="sta"})
-ssid:depends({mode="adhoc"})
-ssid:depends({mode="ahdemo"})
-ssid:depends({mode="monitor"})
-ssid:depends({mode="ap-wds"})
-ssid:depends({mode="sta-wds"})
-ssid:depends({mode="wds"})
-
-bssid = s:taboption("general", Value, "bssid", translate("<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"))
-
-network = s:taboption("general", Value, "network", translate("Network"),
-       translate("Choose the network(s) you want to attach to this wireless interface or " ..
-               "fill out the <em>create</em> field to define a new network."))
-
-network.rmempty = true
-network.template = "cbi/network_netlist"
-network.widget = "checkbox"
-network.novirtual = true
-
-function network.write(self, section, value)
-       local i = nw:get_interface(section)
-       if i then
-               local _, net, old, new = nil, nil, {}, {}
-
-               for _, net in ipairs(i:get_networks()) do
-                       old[net:name()] = true
-               end
-
-               for net in ut.imatch(value) do
-                       new[net] = true
-                       if not old[net] then
-                               local n = nw:get_network(net) or nw:add_network(net, { proto = "none" })
-                               if n then
-                                       if not n:is_empty() then
-                                               n:set("type", "bridge")
-                                       end
-                                       n:add_interface(i)
-                               end
-                       end
-               end
-
-               for net, _ in pairs(old) do
-                       if not new[net] then
-                               local n = nw:get_network(net)
-                               if n then
-                                       n:del_interface(i)
-                               end
-                       end
-               end
-       end
-end
-
--------------------- MAC80211 Interface ----------------------
-
-if hwtype == "mac80211" then
-       if fs.access("/usr/sbin/iw") then
-               mode:value("mesh", "802.11s")
-       end
-
-       mode:value("ahdemo", translate("Pseudo Ad-Hoc (ahdemo)"))
-       mode:value("monitor", translate("Monitor"))
-       bssid:depends({mode="adhoc"})
-       bssid:depends({mode="sta"})
-       bssid:depends({mode="sta-wds"})
-
-       mp = s:taboption("macfilter", ListValue, "macfilter", translate("MAC-Address Filter"))
-       mp:depends({mode="ap"})
-       mp:depends({mode="ap-wds"})
-       mp:value("", translate("disable"))
-       mp:value("allow", translate("Allow listed only"))
-       mp:value("deny", translate("Allow all except listed"))
-
-       ml = s:taboption("macfilter", DynamicList, "maclist", translate("MAC-List"))
-       ml.datatype = "macaddr"
-       ml:depends({macfilter="allow"})
-       ml:depends({macfilter="deny"})
-       nt.mac_hints(function(mac, name) ml:value(mac, "%s (%s)" %{ mac, name }) end)
-
-       mode:value("ap-wds", "%s (%s)" % {translate("Access Point"), translate("WDS")})
-       mode:value("sta-wds", "%s (%s)" % {translate("Client"), translate("WDS")})
-
-       function mode.write(self, section, value)
-               if value == "ap-wds" then
-                       ListValue.write(self, section, "ap")
-                       m.uci:set("wireless", section, "wds", 1)
-               elseif value == "sta-wds" then
-                       ListValue.write(self, section, "sta")
-                       m.uci:set("wireless", section, "wds", 1)
-               else
-                       ListValue.write(self, section, value)
-                       m.uci:delete("wireless", section, "wds")
-               end
-       end
-
-       function mode.cfgvalue(self, section)
-               local mode = ListValue.cfgvalue(self, section)
-               local wds  = m.uci:get("wireless", section, "wds") == "1"
-
-               if mode == "ap" and wds then
-                       return "ap-wds"
-               elseif mode == "sta" and wds then
-                       return "sta-wds"
-               else
-                       return mode
-               end
-       end
-
-       hidden = s:taboption("general", Flag, "hidden", translate("Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"))
-       hidden:depends({mode="ap"})
-       hidden:depends({mode="ap-wds"})
-
-       wmm = s:taboption("general", Flag, "wmm", translate("WMM Mode"))
-       wmm:depends({mode="ap"})
-       wmm:depends({mode="ap-wds"})
-       wmm.default = wmm.enabled
-
-       isolate = s:taboption("advanced", Flag, "isolate", translate("Isolate Clients"),
-        translate("Prevents client-to-client communication"))
-       isolate:depends({mode="ap"})
-       isolate:depends({mode="ap-wds"})
-
-       ifname = s:taboption("advanced", Value, "ifname", translate("Interface name"), translate("Override default interface name"))
-       ifname.optional = true
-
-       short_preamble = s:taboption("advanced", Flag, "short_preamble", translate("Short Preamble"))
-       short_preamble.default = short_preamble.enabled
-
-       dtim_period = s:taboption("advanced", Value, "dtim_period", translate("DTIM Interval"), translate("Delivery Traffic Indication Message Interval"))
-       dtim_period.optional = true
-       dtim_period.placeholder = 2
-       dtim_period.datatype = "range(1,255)"
-       
-       
-       wparekey = s:taboption("advanced", Value, "wpa_group_rekey", translate("Time interval for rekeying GTK"), translate("sec"))
-       wparekey.optional    = true
-       wparekey.placeholder = 600
-       wparekey.datatype    = "uinteger"
-       
-       inactivitypool = s:taboption("advanced", Flag , "skip_inactivity_poll", translate("Disable Inactivity Polling"))
-       inactivitypool.optional    = true
-       inactivitypool.datatype    = "uinteger"
-       
-       maxinactivity = s:taboption("advanced", Value, "max_inactivity", translate("Station inactivity limit"), translate("sec"))
-       maxinactivity.optional    = true
-       maxinactivity.placeholder = 300
-       maxinactivity.datatype    = "uinteger"
-       
-       listeninterval = s:taboption("advanced", Value, "max_listen_interval", translate("Maximum allowed Listen Interval"))
-       listeninterval.optional    = true
-       listeninterval.placeholder = 65535
-       listeninterval.datatype    = "uinteger"
-
-       disassoc_low_ack = s:taboption("advanced", Flag, "disassoc_low_ack", translate("Disassociate On Low Acknowledgement"),
-               translate("Allow AP mode to disconnect STAs based on low ACK condition"))
-       disassoc_low_ack.default = disassoc_low_ack.enabled
-end
-
-
--------------------- Broadcom Interface ----------------------
-
-if hwtype == "broadcom" then
-       mode:value("wds", translate("WDS"))
-       mode:value("monitor", translate("Monitor"))
-
-       hidden = s:taboption("general", Flag, "hidden", translate("Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"))
-       hidden:depends({mode="ap"})
-       hidden:depends({mode="adhoc"})
-       hidden:depends({mode="wds"})
-
-       isolate = s:taboption("advanced", Flag, "isolate", translate("Separate Clients"),
-        translate("Prevents client-to-client communication"))
-       isolate:depends({mode="ap"})
-
-       s:taboption("advanced", Flag, "doth", "802.11h")
-       s:taboption("advanced", Flag, "wmm", translate("WMM Mode"))
-
-       bssid:depends({mode="wds"})
-       bssid:depends({mode="adhoc"})
-end
-
-
------------------------ HostAP Interface ---------------------
-
-if hwtype == "prism2" then
-       mode:value("wds", translate("WDS"))
-       mode:value("monitor", translate("Monitor"))
-
-       hidden = s:taboption("general", Flag, "hidden", translate("Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"))
-       hidden:depends({mode="ap"})
-       hidden:depends({mode="adhoc"})
-       hidden:depends({mode="wds"})
-
-       bssid:depends({mode="sta"})
-
-       mp = s:taboption("macfilter", ListValue, "macpolicy", translate("MAC-Address Filter"))
-       mp:value("", translate("disable"))
-       mp:value("allow", translate("Allow listed only"))
-       mp:value("deny", translate("Allow all except listed"))
-       ml = s:taboption("macfilter", DynamicList, "maclist", translate("MAC-List"))
-       ml:depends({macpolicy="allow"})
-       ml:depends({macpolicy="deny"})
-       nt.mac_hints(function(mac, name) ml:value(mac, "%s (%s)" %{ mac, name }) end)
-
-       s:taboption("advanced", Value, "rate", translate("Transmission Rate"))
-       s:taboption("advanced", Value, "frag", translate("Fragmentation Threshold"))
-       s:taboption("advanced", Value, "rts", translate("RTS/CTS Threshold"))
-end
-
-
-------------------- WiFI-Encryption -------------------
-
-encr = s:taboption("encryption", ListValue, "encryption", translate("Encryption"))
-encr.override_values = true
-encr.override_depends = true
-encr:depends({mode="ap"})
-encr:depends({mode="sta"})
-encr:depends({mode="adhoc"})
-encr:depends({mode="ahdemo"})
-encr:depends({mode="ap-wds"})
-encr:depends({mode="sta-wds"})
-encr:depends({mode="mesh"})
-
-cipher = s:taboption("encryption", ListValue, "cipher", translate("Cipher"))
-cipher:depends({encryption="wpa"})
-cipher:depends({encryption="wpa2"})
-cipher:depends({encryption="psk"})
-cipher:depends({encryption="psk2"})
-cipher:depends({encryption="wpa-mixed"})
-cipher:depends({encryption="psk-mixed"})
-cipher:value("auto", translate("auto"))
-cipher:value("ccmp", translate("Force CCMP (AES)"))
-cipher:value("tkip", translate("Force TKIP"))
-cipher:value("tkip+ccmp", translate("Force TKIP and CCMP (AES)"))
-
-function encr.cfgvalue(self, section)
-       local v = tostring(ListValue.cfgvalue(self, section))
-       if v == "wep" then
-               return "wep-open"
-       elseif v and v:match("%+") then
-               return (v:gsub("%+.+$", ""))
-       end
-       return v
-end
-
-function encr.write(self, section, value)
-       local e = tostring(encr:formvalue(section))
-       local c = tostring(cipher:formvalue(section))
-       if value == "wpa" or value == "wpa2"  then
-               self.map.uci:delete("wireless", section, "key")
-       end
-       if e and (c == "tkip" or c == "ccmp" or c == "tkip+ccmp") then
-               e = e .. "+" .. c
-       end
-       self.map:set(section, "encryption", e)
-end
-
-function cipher.cfgvalue(self, section)
-       local v = tostring(ListValue.cfgvalue(encr, section))
-       if v and v:match("%+") then
-               v = v:gsub("^[^%+]+%+", "")
-               if v == "aes" then v = "ccmp"
-               elseif v == "tkip+aes" then v = "tkip+ccmp"
-               elseif v == "aes+tkip" then v = "tkip+ccmp"
-               elseif v == "ccmp+tkip" then v = "tkip+ccmp"
-               end
-       end
-       return v
-end
-
-function cipher.write(self, section)
-       return encr:write(section)
-end
-
-
-encr:value("none", "No Encryption")
-encr:value("wep-open",   translate("WEP Open System"), {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"}, {mode="ahdemo"}, {mode="wds"})
-encr:value("wep-shared", translate("WEP Shared Key"),  {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"}, {mode="ahdemo"}, {mode="wds"})
-
-if hwtype == "mac80211" or hwtype == "prism2" then
-       local supplicant = fs.access("/usr/sbin/wpa_supplicant")
-       local hostapd = fs.access("/usr/sbin/hostapd")
-
-       -- Probe EAP support
-       local has_ap_eap  = (os.execute("hostapd -veap >/dev/null 2>/dev/null") == 0)
-       local has_sta_eap = (os.execute("wpa_supplicant -veap >/dev/null 2>/dev/null") == 0)
-
-       if hostapd and supplicant then
-               encr:value("psk", "WPA-PSK", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"})
-               encr:value("psk2", "WPA2-PSK", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"})
-               encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"})
-               if has_ap_eap and has_sta_eap then
-                       encr:value("wpa", "WPA-EAP", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"})
-                       encr:value("wpa2", "WPA2-EAP", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"})
-               end
-       elseif hostapd and not supplicant then
-               encr:value("psk", "WPA-PSK", {mode="ap"}, {mode="ap-wds"})
-               encr:value("psk2", "WPA2-PSK", {mode="ap"}, {mode="ap-wds"})
-               encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="ap"}, {mode="ap-wds"})
-               if has_ap_eap then
-                       encr:value("wpa", "WPA-EAP", {mode="ap"}, {mode="ap-wds"})
-                       encr:value("wpa2", "WPA2-EAP", {mode="ap"}, {mode="ap-wds"})
-               end
-               encr.description = translate(
-                       "WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP " ..
-                       "and ad-hoc mode) to be installed."
-               )
-       elseif not hostapd and supplicant then
-               encr:value("psk", "WPA-PSK", {mode="sta"}, {mode="sta-wds"}, {mode="adhoc"})
-               encr:value("psk2", "WPA2-PSK", {mode="sta"}, {mode="sta-wds"}, {mode="adhoc"})
-               encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="sta"}, {mode="sta-wds"}, {mode="adhoc"})
-               if has_sta_eap then
-                       encr:value("wpa", "WPA-EAP", {mode="sta"}, {mode="sta-wds"})
-                       encr:value("wpa2", "WPA2-EAP", {mode="sta"}, {mode="sta-wds"})
-               end
-               encr.description = translate(
-                       "WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP " ..
-                       "and ad-hoc mode) to be installed."
-               )
-       else
-               encr.description = translate(
-                       "WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP " ..
-                       "and ad-hoc mode) to be installed."
-               )
-       end
-elseif hwtype == "broadcom" then
-       encr:value("psk", "WPA-PSK")
-       encr:value("psk2", "WPA2-PSK")
-       encr:value("psk+psk2", "WPA-PSK/WPA2-PSK Mixed Mode")
-end
-
-auth_server = s:taboption("encryption", Value, "auth_server", translate("Radius-Authentication-Server"))
-auth_server:depends({mode="ap", encryption="wpa"})
-auth_server:depends({mode="ap", encryption="wpa2"})
-auth_server:depends({mode="ap-wds", encryption="wpa"})
-auth_server:depends({mode="ap-wds", encryption="wpa2"})
-auth_server.rmempty = true
-auth_server.datatype = "host(0)"
-
-auth_port = s:taboption("encryption", Value, "auth_port", translate("Radius-Authentication-Port"), translatef("Default %d", 1812))
-auth_port:depends({mode="ap", encryption="wpa"})
-auth_port:depends({mode="ap", encryption="wpa2"})
-auth_port:depends({mode="ap-wds", encryption="wpa"})
-auth_port:depends({mode="ap-wds", encryption="wpa2"})
-auth_port.rmempty = true
-auth_port.datatype = "port"
-
-auth_secret = s:taboption("encryption", Value, "auth_secret", translate("Radius-Authentication-Secret"))
-auth_secret:depends({mode="ap", encryption="wpa"})
-auth_secret:depends({mode="ap", encryption="wpa2"})
-auth_secret:depends({mode="ap-wds", encryption="wpa"})
-auth_secret:depends({mode="ap-wds", encryption="wpa2"})
-auth_secret.rmempty = true
-auth_secret.password = true
-
-acct_server = s:taboption("encryption", Value, "acct_server", translate("Radius-Accounting-Server"))
-acct_server:depends({mode="ap", encryption="wpa"})
-acct_server:depends({mode="ap", encryption="wpa2"})
-acct_server:depends({mode="ap-wds", encryption="wpa"})
-acct_server:depends({mode="ap-wds", encryption="wpa2"})
-acct_server.rmempty = true
-acct_server.datatype = "host(0)"
-
-acct_port = s:taboption("encryption", Value, "acct_port", translate("Radius-Accounting-Port"), translatef("Default %d", 1813))
-acct_port:depends({mode="ap", encryption="wpa"})
-acct_port:depends({mode="ap", encryption="wpa2"})
-acct_port:depends({mode="ap-wds", encryption="wpa"})
-acct_port:depends({mode="ap-wds", encryption="wpa2"})
-acct_port.rmempty = true
-acct_port.datatype = "port"
-
-acct_secret = s:taboption("encryption", Value, "acct_secret", translate("Radius-Accounting-Secret"))
-acct_secret:depends({mode="ap", encryption="wpa"})
-acct_secret:depends({mode="ap", encryption="wpa2"})
-acct_secret:depends({mode="ap-wds", encryption="wpa"})
-acct_secret:depends({mode="ap-wds", encryption="wpa2"})
-acct_secret.rmempty = true
-acct_secret.password = true
-
-dae_client = s:taboption("encryption", Value, "dae_client", translate("DAE-Client"))
-dae_client:depends({mode="ap", encryption="wpa"})
-dae_client:depends({mode="ap", encryption="wpa2"})
-dae_client:depends({mode="ap-wds", encryption="wpa"})
-dae_client:depends({mode="ap-wds", encryption="wpa2"})
-dae_client.rmempty = true
-dae_client.datatype = "host(0)"
-
-dae_port = s:taboption("encryption", Value, "dae_port", translate("DAE-Port"), translatef("Default %d", 3799))
-dae_port:depends({mode="ap", encryption="wpa"})
-dae_port:depends({mode="ap", encryption="wpa2"})
-dae_port:depends({mode="ap-wds", encryption="wpa"})
-dae_port:depends({mode="ap-wds", encryption="wpa2"})
-dae_port.rmempty = true
-dae_port.datatype = "port"
-
-dae_secret = s:taboption("encryption", Value, "dae_secret", translate("DAE-Secret"))
-dae_secret:depends({mode="ap", encryption="wpa"})
-dae_secret:depends({mode="ap", encryption="wpa2"})
-dae_secret:depends({mode="ap-wds", encryption="wpa"})
-dae_secret:depends({mode="ap-wds", encryption="wpa2"})
-dae_secret.rmempty = true
-dae_secret.password = true
-
-wpakey = s:taboption("encryption", Value, "_wpa_key", translate("Key"))
-wpakey:depends("encryption", "psk")
-wpakey:depends("encryption", "psk2")
-wpakey:depends("encryption", "psk+psk2")
-wpakey:depends("encryption", "psk-mixed")
-wpakey.datatype = "wpakey"
-wpakey.rmempty = true
-wpakey.password = true
-
-wpakey.cfgvalue = function(self, section, value)
-       local key = m.uci:get("wireless", section, "key")
-       if key == "1" or key == "2" or key == "3" or key == "4" then
-               return nil
-       end
-       return key
-end
-
-wpakey.write = function(self, section, value)
-       self.map.uci:set("wireless", section, "key", value)
-       self.map.uci:delete("wireless", section, "key1")
-end
-
-
-wepslot = s:taboption("encryption", ListValue, "_wep_key", translate("Used Key Slot"))
-wepslot:depends("encryption", "wep-open")
-wepslot:depends("encryption", "wep-shared")
-wepslot:value("1", translatef("Key #%d", 1))
-wepslot:value("2", translatef("Key #%d", 2))
-wepslot:value("3", translatef("Key #%d", 3))
-wepslot:value("4", translatef("Key #%d", 4))
-
-wepslot.cfgvalue = function(self, section)
-       local slot = tonumber(m.uci:get("wireless", section, "key"))
-       if not slot or slot < 1 or slot > 4 then
-               return 1
-       end
-       return slot
-end
-
-wepslot.write = function(self, section, value)
-       self.map.uci:set("wireless", section, "key", value)
-end
-
-local slot
-for slot=1,4 do
-       wepkey = s:taboption("encryption", Value, "key" .. slot, translatef("Key #%d", slot))
-       wepkey:depends("encryption", "wep-open")
-       wepkey:depends("encryption", "wep-shared")
-       wepkey.datatype = "wepkey"
-       wepkey.rmempty = true
-       wepkey.password = true
-
-       function wepkey.write(self, section, value)
-               if value and (#value == 5 or #value == 13) then
-                       value = "s:" .. value
-               end
-               return Value.write(self, section, value)
-       end
-end
-
-if hwtype == "mac80211" or hwtype == "prism2" then
-
-       -- Probe 802.11r support (and EAP support as a proxy for Openwrt)
-       local has_80211r = (os.execute("hostapd -v11r 2>/dev/null || hostapd -veap 2>/dev/null") == 0)
-
-       ieee80211r = s:taboption("encryption", Flag, "ieee80211r",
-               translate("802.11r Fast Transition"),
-               translate("Enables fast roaming among access points that belong " ..
-                       "to the same Mobility Domain"))
-       ieee80211r:depends({mode="ap", encryption="wpa"})
-       ieee80211r:depends({mode="ap", encryption="wpa2"})
-       ieee80211r:depends({mode="ap-wds", encryption="wpa"})
-       ieee80211r:depends({mode="ap-wds", encryption="wpa2"})
-       if has_80211r then
-               ieee80211r:depends({mode="ap", encryption="psk"})
-               ieee80211r:depends({mode="ap", encryption="psk2"})
-               ieee80211r:depends({mode="ap", encryption="psk-mixed"})
-               ieee80211r:depends({mode="ap-wds", encryption="psk"})
-               ieee80211r:depends({mode="ap-wds", encryption="psk2"})
-               ieee80211r:depends({mode="ap-wds", encryption="psk-mixed"})
-       end
-       ieee80211r.rmempty = true
-
-       nasid = s:taboption("encryption", Value, "nasid", translate("NAS ID"),
-               translate("Used for two different purposes: RADIUS NAS ID and " ..
-                       "802.11r R0KH-ID. Not needed with normal WPA(2)-PSK."))
-       nasid:depends({mode="ap", encryption="wpa"})
-       nasid:depends({mode="ap", encryption="wpa2"})
-       nasid:depends({mode="ap-wds", encryption="wpa"})
-       nasid:depends({mode="ap-wds", encryption="wpa2"})
-       nasid:depends({ieee80211r="1"})
-       nasid.rmempty = true
-
-       mobility_domain = s:taboption("encryption", Value, "mobility_domain",
-                       translate("Mobility Domain"),
-                       translate("4-character hexadecimal ID"))
-       mobility_domain:depends({ieee80211r="1"})
-       mobility_domain.placeholder = "4f57"
-       mobility_domain.datatype = "and(hexstring,rangelength(4,4))"
-       mobility_domain.rmempty = true
-
-       reassociation_deadline = s:taboption("encryption", Value, "reassociation_deadline",
-               translate("Reassociation Deadline"),
-               translate("time units (TUs / 1.024 ms) [1000-65535]"))
-       reassociation_deadline:depends({ieee80211r="1"})
-       reassociation_deadline.placeholder = "1000"
-       reassociation_deadline.datatype = "range(1000,65535)"
-       reassociation_deadline.rmempty = true
-
-       ft_protocol = s:taboption("encryption", ListValue, "ft_over_ds", translate("FT protocol"))
-       ft_protocol:depends({ieee80211r="1"})
-       ft_protocol:value("1", translatef("FT over DS"))
-       ft_protocol:value("0", translatef("FT over the Air"))
-       ft_protocol.rmempty = true
-
-       ft_psk_generate_local = s:taboption("encryption", Flag, "ft_psk_generate_local",
-               translate("Generate PMK locally"),
-               translate("When using a PSK, the PMK can be automatically generated. When enabled, the R0/R1 key options below are not applied. Disable this to use the R0 and R1 key options."))
-       ft_psk_generate_local:depends({ieee80211r="1"})
-       ft_psk_generate_local.default = ft_psk_generate_local.enabled
-       ft_psk_generate_local.rmempty = false
-
-       r0_key_lifetime = s:taboption("encryption", Value, "r0_key_lifetime",
-                       translate("R0 Key Lifetime"), translate("minutes"))
-       r0_key_lifetime:depends({ieee80211r="1"})
-       r0_key_lifetime.placeholder = "10000"
-       r0_key_lifetime.datatype = "uinteger"
-       r0_key_lifetime.rmempty = true
-
-       r1_key_holder = s:taboption("encryption", Value, "r1_key_holder",
-                       translate("R1 Key Holder"),
-                       translate("6-octet identifier as a hex string - no colons"))
-       r1_key_holder:depends({ieee80211r="1"})
-       r1_key_holder.placeholder = "00004f577274"
-       r1_key_holder.datatype = "and(hexstring,rangelength(12,12))"
-       r1_key_holder.rmempty = true
-
-       pmk_r1_push = s:taboption("encryption", Flag, "pmk_r1_push", translate("PMK R1 Push"))
-       pmk_r1_push:depends({ieee80211r="1"})
-       pmk_r1_push.placeholder = "0"
-       pmk_r1_push.rmempty = true
-
-       r0kh = s:taboption("encryption", DynamicList, "r0kh", translate("External R0 Key Holder List"),
-               translate("List of R0KHs in the same Mobility Domain. " ..
-                       "<br />Format: MAC-address,NAS-Identifier,128-bit key as hex string. " ..
-                       "<br />This list is used to map R0KH-ID (NAS Identifier) to a destination " ..
-                       "MAC address when requesting PMK-R1 key from the R0KH that the STA " ..
-                       "used during the Initial Mobility Domain Association."))
-       r0kh:depends({ieee80211r="1"})
-       r0kh.rmempty = true
-
-       r1kh = s:taboption("encryption", DynamicList, "r1kh", translate("External R1 Key Holder List"),
-               translate ("List of R1KHs in the same Mobility Domain. "..
-                       "<br />Format: MAC-address,R1KH-ID as 6 octets with colons,128-bit key as hex string. "..
-                       "<br />This list is used to map R1KH-ID to a destination MAC address " ..
-                       "when sending PMK-R1 key from the R0KH. This is also the " ..
-                       "list of authorized R1KHs in the MD that can request PMK-R1 keys."))
-       r1kh:depends({ieee80211r="1"})
-       r1kh.rmempty = true
-       -- End of 802.11r options
-
-       eaptype = s:taboption("encryption", ListValue, "eap_type", translate("EAP-Method"))
-       eaptype:value("tls",  "TLS")
-       eaptype:value("ttls", "TTLS")
-       eaptype:value("peap", "PEAP")
-       eaptype:value("fast", "FAST")
-       eaptype:depends({mode="sta", encryption="wpa"})
-       eaptype:depends({mode="sta", encryption="wpa2"})
-       eaptype:depends({mode="sta-wds", encryption="wpa"})
-       eaptype:depends({mode="sta-wds", encryption="wpa2"})
-
-       cacert = s:taboption("encryption", FileUpload, "ca_cert", translate("Path to CA-Certificate"))
-       cacert:depends({mode="sta", encryption="wpa"})
-       cacert:depends({mode="sta", encryption="wpa2"})
-       cacert:depends({mode="sta-wds", encryption="wpa"})
-       cacert:depends({mode="sta-wds", encryption="wpa2"})
-       cacert.rmempty = true
-
-       clientcert = s:taboption("encryption", FileUpload, "client_cert", translate("Path to Client-Certificate"))
-       clientcert:depends({mode="sta", eap_type="tls", encryption="wpa"})
-       clientcert:depends({mode="sta", eap_type="tls", encryption="wpa2"})
-       clientcert:depends({mode="sta-wds", eap_type="tls", encryption="wpa"})
-       clientcert:depends({mode="sta-wds", eap_type="tls", encryption="wpa2"})
-
-       privkey = s:taboption("encryption", FileUpload, "priv_key", translate("Path to Private Key"))
-       privkey:depends({mode="sta", eap_type="tls", encryption="wpa2"})
-       privkey:depends({mode="sta", eap_type="tls", encryption="wpa"})
-       privkey:depends({mode="sta-wds", eap_type="tls", encryption="wpa2"})
-       privkey:depends({mode="sta-wds", eap_type="tls", encryption="wpa"})
-
-       privkeypwd = s:taboption("encryption", Value, "priv_key_pwd", translate("Password of Private Key"))
-       privkeypwd:depends({mode="sta", eap_type="tls", encryption="wpa2"})
-       privkeypwd:depends({mode="sta", eap_type="tls", encryption="wpa"})
-       privkeypwd:depends({mode="sta-wds", eap_type="tls", encryption="wpa2"})
-       privkeypwd:depends({mode="sta-wds", eap_type="tls", encryption="wpa"})
-       privkeypwd.rmempty = true
-       privkeypwd.password = true
-
-       auth = s:taboption("encryption", ListValue, "auth", translate("Authentication"))
-       auth:value("PAP", "PAP", {eap_type="ttls"})
-       auth:value("CHAP", "CHAP", {eap_type="ttls"})
-       auth:value("MSCHAP", "MSCHAP", {eap_type="ttls"})
-       auth:value("MSCHAPV2", "MSCHAPv2", {eap_type="ttls"})
-       auth:value("EAP-GTC")
-       auth:value("EAP-MD5")
-       auth:value("EAP-MSCHAPV2")
-       auth:value("EAP-TLS")
-       auth:depends({mode="sta", eap_type="fast", encryption="wpa2"})
-       auth:depends({mode="sta", eap_type="fast", encryption="wpa"})
-       auth:depends({mode="sta", eap_type="peap", encryption="wpa2"})
-       auth:depends({mode="sta", eap_type="peap", encryption="wpa"})
-       auth:depends({mode="sta", eap_type="ttls", encryption="wpa2"})
-       auth:depends({mode="sta", eap_type="ttls", encryption="wpa"})
-       auth:depends({mode="sta-wds", eap_type="fast", encryption="wpa2"})
-       auth:depends({mode="sta-wds", eap_type="fast", encryption="wpa"})
-       auth:depends({mode="sta-wds", eap_type="peap", encryption="wpa2"})
-       auth:depends({mode="sta-wds", eap_type="peap", encryption="wpa"})
-       auth:depends({mode="sta-wds", eap_type="ttls", encryption="wpa2"})
-       auth:depends({mode="sta-wds", eap_type="ttls", encryption="wpa"})
-
-       cacert2 = s:taboption("encryption", FileUpload, "ca_cert2", translate("Path to inner CA-Certificate"))
-       cacert2:depends({mode="sta", auth="EAP-TLS", encryption="wpa"})
-       cacert2:depends({mode="sta", auth="EAP-TLS", encryption="wpa2"})
-       cacert2:depends({mode="sta-wds", auth="EAP-TLS", encryption="wpa"})
-       cacert2:depends({mode="sta-wds", auth="EAP-TLS", encryption="wpa2"})
-
-       clientcert2 = s:taboption("encryption", FileUpload, "client_cert2", translate("Path to inner Client-Certificate"))
-       clientcert2:depends({mode="sta", auth="EAP-TLS", encryption="wpa"})
-       clientcert2:depends({mode="sta", auth="EAP-TLS", encryption="wpa2"})
-       clientcert2:depends({mode="sta-wds", auth="EAP-TLS", encryption="wpa"})
-       clientcert2:depends({mode="sta-wds", auth="EAP-TLS", encryption="wpa2"})
-
-       privkey2 = s:taboption("encryption", FileUpload, "priv_key2", translate("Path to inner Private Key"))
-       privkey2:depends({mode="sta", auth="EAP-TLS", encryption="wpa"})
-       privkey2:depends({mode="sta", auth="EAP-TLS", encryption="wpa2"})
-       privkey2:depends({mode="sta-wds", auth="EAP-TLS", encryption="wpa"})
-       privkey2:depends({mode="sta-wds", auth="EAP-TLS", encryption="wpa2"})
-
-       privkeypwd2 = s:taboption("encryption", Value, "priv_key2_pwd", translate("Password of inner Private Key"))
-       privkeypwd2:depends({mode="sta", auth="EAP-TLS", encryption="wpa"})
-       privkeypwd2:depends({mode="sta", auth="EAP-TLS", encryption="wpa2"})
-       privkeypwd2:depends({mode="sta-wds", auth="EAP-TLS", encryption="wpa"})
-       privkeypwd2:depends({mode="sta-wds", auth="EAP-TLS", encryption="wpa2"})
-       privkeypwd2.rmempty = true
-       privkeypwd2.password = true
-
-       identity = s:taboption("encryption", Value, "identity", translate("Identity"))
-       identity:depends({mode="sta", eap_type="fast", encryption="wpa2"})
-       identity:depends({mode="sta", eap_type="fast", encryption="wpa"})
-       identity:depends({mode="sta", eap_type="peap", encryption="wpa2"})
-       identity:depends({mode="sta", eap_type="peap", encryption="wpa"})
-       identity:depends({mode="sta", eap_type="ttls", encryption="wpa2"})
-       identity:depends({mode="sta", eap_type="ttls", encryption="wpa"})
-       identity:depends({mode="sta-wds", eap_type="fast", encryption="wpa2"})
-       identity:depends({mode="sta-wds", eap_type="fast", encryption="wpa"})
-       identity:depends({mode="sta-wds", eap_type="peap", encryption="wpa2"})
-       identity:depends({mode="sta-wds", eap_type="peap", encryption="wpa"})
-       identity:depends({mode="sta-wds", eap_type="ttls", encryption="wpa2"})
-       identity:depends({mode="sta-wds", eap_type="ttls", encryption="wpa"})
-       identity:depends({mode="sta", eap_type="tls", encryption="wpa2"})
-       identity:depends({mode="sta", eap_type="tls", encryption="wpa"})
-       identity:depends({mode="sta-wds", eap_type="tls", encryption="wpa2"})
-       identity:depends({mode="sta-wds", eap_type="tls", encryption="wpa"})
-
-       anonymous_identity = s:taboption("encryption", Value, "anonymous_identity", translate("Anonymous Identity"))
-       anonymous_identity:depends({mode="sta", eap_type="fast", encryption="wpa2"})
-       anonymous_identity:depends({mode="sta", eap_type="fast", encryption="wpa"})
-       anonymous_identity:depends({mode="sta", eap_type="peap", encryption="wpa2"})
-       anonymous_identity:depends({mode="sta", eap_type="peap", encryption="wpa"})
-       anonymous_identity:depends({mode="sta", eap_type="ttls", encryption="wpa2"})
-       anonymous_identity:depends({mode="sta", eap_type="ttls", encryption="wpa"})
-       anonymous_identity:depends({mode="sta-wds", eap_type="fast", encryption="wpa2"})
-       anonymous_identity:depends({mode="sta-wds", eap_type="fast", encryption="wpa"})
-       anonymous_identity:depends({mode="sta-wds", eap_type="peap", encryption="wpa2"})
-       anonymous_identity:depends({mode="sta-wds", eap_type="peap", encryption="wpa"})
-       anonymous_identity:depends({mode="sta-wds", eap_type="ttls", encryption="wpa2"})
-       anonymous_identity:depends({mode="sta-wds", eap_type="ttls", encryption="wpa"})
-       anonymous_identity:depends({mode="sta", eap_type="tls", encryption="wpa2"})
-       anonymous_identity:depends({mode="sta", eap_type="tls", encryption="wpa"})
-       anonymous_identity:depends({mode="sta-wds", eap_type="tls", encryption="wpa2"})
-       anonymous_identity:depends({mode="sta-wds", eap_type="tls", encryption="wpa"})
-
-       password = s:taboption("encryption", Value, "password", translate("Password"))
-       password:depends({mode="sta", eap_type="fast", encryption="wpa2"})
-       password:depends({mode="sta", eap_type="fast", encryption="wpa"})
-       password:depends({mode="sta", eap_type="peap", encryption="wpa2"})
-       password:depends({mode="sta", eap_type="peap", encryption="wpa"})
-       password:depends({mode="sta", eap_type="ttls", encryption="wpa2"})
-       password:depends({mode="sta", eap_type="ttls", encryption="wpa"})
-       password:depends({mode="sta-wds", eap_type="fast", encryption="wpa2"})
-       password:depends({mode="sta-wds", eap_type="fast", encryption="wpa"})
-       password:depends({mode="sta-wds", eap_type="peap", encryption="wpa2"})
-       password:depends({mode="sta-wds", eap_type="peap", encryption="wpa"})
-       password:depends({mode="sta-wds", eap_type="ttls", encryption="wpa2"})
-       password:depends({mode="sta-wds", eap_type="ttls", encryption="wpa"})
-       password.rmempty = true
-       password.password = true
-end
-
--- ieee802.11w options
-if hwtype == "mac80211" then
-       local has_80211w = (os.execute("hostapd -v11w 2>/dev/null || hostapd -veap 2>/dev/null") == 0)
-       if has_80211w then
-               ieee80211w = s:taboption("encryption", ListValue, "ieee80211w",
-                       translate("802.11w Management Frame Protection"),
-                       translate("Requires the 'full' version of wpad/hostapd " ..
-                               "and support from the wifi driver <br />(as of Jan 2019: " ..
-                               "ath9k, ath10k, mwlwifi and mt76)"))
-               ieee80211w.default = ""
-               ieee80211w.rmempty = true
-               ieee80211w:value("", translate("Disabled (default)"))
-               ieee80211w:value("1", translate("Optional"))
-               ieee80211w:value("2", translate("Required"))
-               ieee80211w:depends({mode="ap", encryption="wpa2"})
-               ieee80211w:depends({mode="ap-wds", encryption="wpa2"})
-               ieee80211w:depends({mode="ap", encryption="psk2"})
-               ieee80211w:depends({mode="ap", encryption="psk-mixed"})
-               ieee80211w:depends({mode="ap-wds", encryption="psk2"})
-               ieee80211w:depends({mode="ap-wds", encryption="psk-mixed"})
-
-               max_timeout = s:taboption("encryption", Value, "ieee80211w_max_timeout",
-                               translate("802.11w maximum timeout"),
-                               translate("802.11w Association SA Query maximum timeout"))
-               max_timeout:depends({ieee80211w="1"})
-               max_timeout:depends({ieee80211w="2"})
-               max_timeout.datatype = "uinteger"
-               max_timeout.placeholder = "1000"
-               max_timeout.rmempty = true
-
-               retry_timeout = s:taboption("encryption", Value, "ieee80211w_retry_timeout",
-                               translate("802.11w retry timeout"),
-                               translate("802.11w Association SA Query retry timeout"))
-               retry_timeout:depends({ieee80211w="1"})
-               retry_timeout:depends({ieee80211w="2"})
-               retry_timeout.datatype = "uinteger"
-               retry_timeout.placeholder = "201"
-               retry_timeout.rmempty = true
-       end
-
-       key_retries = s:taboption("encryption", Flag, "wpa_disable_eapol_key_retries",
-               translate("Enable key reinstallation (KRACK) countermeasures"),
-               translate("Complicates key reinstallation attacks on the client side by disabling retransmission of EAPOL-Key frames that are used to install keys. This workaround might cause interoperability issues and reduced robustness of key negotiation especially in environments with heavy traffic load."))
-
-       key_retries:depends({mode="ap", encryption="wpa2"})
-       key_retries:depends({mode="ap", encryption="psk2"})
-       key_retries:depends({mode="ap", encryption="psk-mixed"})
-       key_retries:depends({mode="ap-wds", encryption="wpa2"})
-       key_retries:depends({mode="ap-wds", encryption="psk2"})
-       key_retries:depends({mode="ap-wds", encryption="psk-mixed"})
-end
-
-if hwtype == "mac80211" or hwtype == "prism2" then
-       local wpasupplicant = fs.access("/usr/sbin/wpa_supplicant")
-       local hostcli = fs.access("/usr/sbin/hostapd_cli")
-       if hostcli and wpasupplicant then
-               wps = s:taboption("encryption", Flag, "wps_pushbutton", translate("Enable WPS pushbutton, requires WPA(2)-PSK"))
-               wps.enabled = "1"
-               wps.disabled = "0"
-               wps.rmempty = false
-               wps:depends("encryption", "psk")
-               wps:depends("encryption", "psk2")
-               wps:depends("encryption", "psk-mixed")
-       end
-end
-
-return m
diff --git a/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua b/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua
deleted file mode 100644 (file)
index e8a3058..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
--- Copyright 2009 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local fs   = require "nixio.fs"
-local nw   = require "luci.model.network"
-local fw   = require "luci.model.firewall"
-local uci  = require "luci.model.uci".cursor()
-local http = require "luci.http"
-
-local iw = luci.sys.wifi.getiwinfo(http.formvalue("device"))
-
-local has_firewall = fs.access("/etc/config/firewall")
-
-if not iw then
-       luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless"))
-       return
-end
-
-m = SimpleForm("network", translatef("Joining Network: %q", http.formvalue("join")))
-m.cancel = translate("Back to scan results")
-m.reset = false
-
-function m.on_cancel()
-       local dev = http.formvalue("device")
-       http.redirect(luci.dispatcher.build_url(
-               dev and "admin/network/wireless_join?device=" .. dev
-                       or "admin/network/wireless"
-       ))
-end
-
-nw.init(uci)
-fw.init(uci)
-
-m.hidden = {
-       device      = http.formvalue("device"),
-       join        = http.formvalue("join"),
-       channel     = http.formvalue("channel"),
-       mode        = http.formvalue("mode"),
-       bssid       = http.formvalue("bssid"),
-       wep         = http.formvalue("wep"),
-       wpa_suites      = http.formvalue("wpa_suites"),
-       wpa_version = http.formvalue("wpa_version")
-}
-
-if iw and iw.mbssid_support then
-       replace = m:field(Flag, "replace", translate("Replace wireless configuration"),
-               translate("Check this option to delete the existing networks from this radio."))
-
-       function replace.cfgvalue() return "0" end
-else
-       replace = m:field(DummyValue, "replace", translate("Replace wireless configuration"))
-       replace.default = translate("The hardware is not multi-SSID capable and the existing " ..
-               "configuration will be replaced if you proceed.")
-
-       function replace.formvalue() return "1" end
-end
-
-if http.formvalue("wep") == "1" then
-       key = m:field(Value, "key", translate("WEP passphrase"),
-               translate("Specify the secret encryption key here."))
-
-       key.password = true
-       key.datatype = "wepkey"
-
-elseif (tonumber(m.hidden.wpa_version) or 0) > 0 and
-       (m.hidden.wpa_suites == "PSK" or m.hidden.wpa_suites == "PSK2")
-then
-       key = m:field(Value, "key", translate("WPA passphrase"),
-               translate("Specify the secret encryption key here."))
-
-       key.password = true
-       key.datatype = "wpakey"
-       --m.hidden.wpa_suite = (tonumber(http.formvalue("wpa_version")) or 0) >= 2 and "psk2" or "psk"
-end
-
-newnet = m:field(Value, "_netname_new", translate("Name of the new network"),
-       translate("The allowed characters are: <code>A-Z</code>, <code>a-z</code>, " ..
-               "<code>0-9</code> and <code>_</code>"
-       ))
-
-newnet.default = m.hidden.mode == "Ad-Hoc" and "mesh" or "wwan"
-newnet.datatype = "uciname"
-
-if has_firewall then
-       fwzone = m:field(Value, "_fwzone",
-               translate("Create / Assign firewall-zone"),
-               translate("Choose the firewall zone you want to assign to this interface. Select <em>unspecified</em> to remove the interface from the associated zone or fill out the <em>create</em> field to define a new zone and attach the interface to it."))
-
-       fwzone.template = "cbi/firewall_zonelist"
-       fwzone.default = m.hidden.mode == "Ad-Hoc" and "mesh" or "wan"
-end
-
-function newnet.parse(self, section)
-       local net, zone
-
-       if has_firewall then
-               local value = fwzone:formvalue(section)
-               if value and #value > 0 then
-                       zone = fw:get_zone(value) or fw:add_zone(value)
-               end
-       end
-
-       local wdev = nw:get_wifidev(m.hidden.device)
-
-       wdev:set("disabled", false)
-       wdev:set("channel", m.hidden.channel)
-
-       if replace:formvalue(section) then
-               local n
-               for _, n in ipairs(wdev:get_wifinets()) do
-                       wdev:del_wifinet(n)
-               end
-       end
-
-       local wconf = {
-               device  = m.hidden.device,
-               ssid    = m.hidden.join,
-               mode    = (m.hidden.mode == "Ad-Hoc" and "adhoc" or "sta")
-       }
-
-       if m.hidden.wep == "1" then
-               wconf.encryption = "wep-open"
-               wconf.key        = "1"
-               wconf.key1       = key and key:formvalue(section) or ""
-       elseif (tonumber(m.hidden.wpa_version) or 0) > 0 then
-               wconf.encryption = (tonumber(m.hidden.wpa_version) or 0) >= 2 and "psk2" or "psk"
-               wconf.key        = key and key:formvalue(section) or ""
-       else
-               wconf.encryption = "none"
-       end
-
-       if wconf.mode == "adhoc" or wconf.mode == "sta" then
-               wconf.bssid = m.hidden.bssid
-       end
-
-       local value = self:formvalue(section)
-       net = nw:add_network(value, { proto = "dhcp" })
-
-       if not net then
-               self.error = { [section] = "missing" }
-       else
-               wconf.network = net:name()
-
-               local wnet = wdev:add_wifinet(wconf)
-               if wnet then
-                       if zone then
-                               fw:del_network(net:name())
-                               zone:add_network(net:name())
-                       end
-
-                       uci:save("wireless")
-                       uci:save("network")
-                       uci:save("firewall")
-
-                       luci.http.redirect(wnet:adminlink())
-               end
-       end
-end
-
-if has_firewall then
-       function fwzone.cfgvalue(self, section)
-               self.iface = section
-               local z = fw:get_zone_by_network(section)
-               return z and z:name()
-       end
-end
-
-return m
diff --git a/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua b/package/luci/modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua
deleted file mode 100644 (file)
index 54720d6..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
--- Copyright 2018 Jo-Philipp Wich <jo@mein.io>
--- Licensed to the public under the Apache License 2.0.
-
-local fs = require "nixio.fs"
-local utl = require "luci.util"
-local tpl = require "luci.template"
-local ntm = require "luci.model.network"
-
-local has_iwinfo = pcall(require, "iwinfo")
-
-function guess_wifi_hw(dev)
-       local bands = ""
-       local ifname = dev:name()
-       local name, idx = ifname:match("^([a-z]+)(%d+)")
-       idx = tonumber(idx)
-
-       if has_iwinfo then
-               local bl = dev.iwinfo.hwmodelist
-               if bl and next(bl) then
-                       if bl.a then bands = bands .. "a" end
-                       if bl.b then bands = bands .. "b" end
-                       if bl.g then bands = bands .. "g" end
-                       if bl.n then bands = bands .. "n" end
-                       if bl.ac then bands = bands .. "ac" end
-               end
-
-               local hw = dev.iwinfo.hardware_name
-               if hw then
-                       return "%s 802.11%s" %{ hw, bands }
-               end
-       end
-
-       -- wl.o
-       if name == "wl" then
-               local name = translatef("Broadcom 802.11%s Wireless Controller", bands)
-               local nm   = 0
-
-               local fd = nixio.open("/proc/bus/pci/devices", "r")
-               if fd then
-                       local ln
-                       for ln in fd:linesource() do
-                               if ln:match("wl$") then
-                                       if nm == idx then
-                                               local version = ln:match("^%S+%s+%S%S%S%S([0-9a-f]+)")
-                                               name = translatef(
-                                                       "Broadcom BCM%04x 802.11 Wireless Controller",
-                                                       tonumber(version, 16)
-                                               )
-
-                                               break
-                                       else
-                                               nm = nm + 1
-                                       end
-                               end
-                       end
-                       fd:close()
-               end
-
-               return name
-
-       -- dunno yet
-       else
-               return translatef("Generic 802.11%s Wireless Controller", bands)
-       end
-end
-
-
-m = Map("wireless", translate("Wireless Overview"))
-m:chain("network")
-m.pageaction = false
-
-if not has_iwinfo then
-       s = m:section(NamedSection, "__warning__")
-
-       function s.render(self)
-               tpl.render_string([[
-                       <div class="alert-message warning">
-                               <h4><%:Package libiwinfo required!%></h4>
-                               <p><%_The <em>libiwinfo-lua</em> package is not installed. You must install this component for working wireless configuration!%></p>
-                       </div>
-               ]])
-       end
-end
-
-local _, dev, net
-for _, dev in ipairs(ntm:get_wifidevs()) do
-       s = m:section(TypedSection)
-       s.template = "admin_network/wifi_overview"
-       s.wnets = dev:get_wifinets()
-       s.dev = dev
-       s.hw = guess_wifi_hw(dev)
-
-       function s.cfgsections(self)
-               local _, net, sl = nil, nil, { }
-               for _, net in ipairs(self.wnets) do
-                       sl[#sl+1] = net:name()
-                       self.wnets[net:name()] = net
-               end
-               return sl
-       end
-
-       o = s:option(Value, "__disable__")
-
-       function o.cfgvalue(self, sid)
-               local wnet = self.section.wnets[sid]
-               local wdev = wnet:get_device()
-
-               return ((wnet and wnet:get("disabled") == "1") or
-                           (wdev and wdev:get("disabled") == "1")) and "1" or "0"
-       end
-
-       function o.write(self, sid, value)
-               local wnet = self.section.wnets[sid]
-               local wdev = wnet:get_device()
-
-               if value ~= "1" then
-                       wnet:set("disabled", nil)
-                       wdev:set("disabled", nil)
-               else
-                       wnet:set("disabled", "1")
-               end
-       end
-
-       o.remove = o.write
-
-
-       o = s:option(Value, "__delete__")
-
-       function o.write(self, sid, value)
-               local wnet = self.section.wnets[sid]
-               local nets = wnet:get_networks()
-
-               ntm:del_wifinet(wnet:id())
-
-               local _, net
-               for _, net in ipairs(nets) do
-                       if net:is_empty() then
-                               ntm:del_network(net:name())
-                       end
-               end
-       end
-end
-
-s = m:section(NamedSection, "__assoclist__")
-
-function s.render(self, sid)
-       tpl.render_string([[
-               <h2><%:Associated Stations%></h2>
-               <%+wifi_assoclist%>
-       ]])
-end
-
-return m
diff --git a/package/luci/modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm b/package/luci/modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm
deleted file mode 100644 (file)
index 03dd5aa..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-<%#
- Copyright 2010 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<%
-local fs   = require "nixio.fs"
-local has_ping6 = fs.access("/bin/ping6") or fs.access("/usr/bin/ping6")
-local has_traceroute6 = fs.access("/bin/traceroute6") or fs.access("/usr/bin/traceroute6")
-
-local dns_host = luci.config.diag and luci.config.diag.dns or "dev.openwrt.org"
-local ping_host = luci.config.diag and luci.config.diag.ping or "dev.openwrt.org"
-local route_host = luci.config.diag and luci.config.diag.route or "dev.openwrt.org"
-%>
-
-<script type="text/javascript">//<![CDATA[
-       var stxhr = new XHR();
-
-       function update_status(field, proto)
-       {
-               var tool = field.name;
-               var addr = field.value;
-               var protocol = proto ? "6" : "";
-
-               var legend = document.getElementById('diag-rc-legend');
-               var output = document.getElementById('diag-rc-output');
-
-               if (legend && output)
-               {
-                       output.innerHTML =
-                               '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> ' +
-                               '<%:Waiting for command to complete...%>'
-                       ;
-
-                       legend.parentNode.style.display = 'block';
-                       legend.style.display = 'inline';
-
-                       stxhr.post('<%=url('admin/network')%>/diag_' + tool + protocol + '/' + addr, { token: '<%=token%>' },
-                               function(x)
-                               {
-                                       if (x.responseText)
-                                       {
-                                               legend.style.display = 'none';
-                                               output.innerHTML = String.format('<pre>%h</pre>', x.responseText);
-                                       }
-                                       else
-                                       {
-                                               legend.style.display = 'none';
-                                               output.innerHTML = '<span class="error"><%:Bad address specified!%></span>';
-                                       }
-                               }
-                       );
-               }
-       }
-//]]></script>
-
-<form method="post" action="<%=url('admin/network/diagnostics')%>">
-       <div class="cbi-map">
-               <h2 name="content"><%:Diagnostics%></h2>
-
-               <div class="cbi-section">
-                       <legend><%:Network Utilities%></legend>
-
-                       <div class="table">
-                               <div class="tr">
-                                       <div class="td left">
-                                               <input style="margin: 5px 0" type="text" value="<%=ping_host%>" name="ping" /><br />
-                                               <% if has_ping6 then %>
-                                               <span>
-                                                       <select name="ping_proto" style="width:auto">
-                                                               <option value="" selected="selected"><%:IPv4%></option>
-                                                               <option value="6"><%:IPv6%></option>
-                                                       </select>
-                                               </span>
-                                               <input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping, this.form.ping_proto.selectedIndex)" />
-                                               <% else %>
-                                               <input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping)" />
-                                               <% end %>
-                                       </div>
-
-                                       <div class="td left">
-                                               <input style="margin: 5px 0" type="text" value="<%=route_host%>" name="traceroute" /><br />
-                                               <% if has_traceroute6 then %>
-                                               <span>
-                                                       <select name="traceroute_proto" style="width:auto">
-                                                               <option value="" selected="selected"><%:IPv4%></option>
-                                                               <option value="6"><%:IPv6%></option>
-                                                       </select>
-                                               </span>
-                                               <input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute, this.form.traceroute_proto.selectedIndex)" />
-                                               <% else %>
-                                               <input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute)" />
-                                               <% end %>
-                                               <% if not has_traceroute6 then %>
-                                                       <p>&#160;</p>
-                                                       <p><%:Install iputils-traceroute6 for IPv6 traceroute%></p>
-                                               <% end %>
-                                       </div>
-
-                                       <div class="td left">
-                                               <input style="margin: 5px 0" type="text" value="<%=dns_host%>" name="nslookup" /><br />
-                                               <input type="button" value="<%:Nslookup%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.nslookup)" />
-                                       </div>
-                               </div>
-                       </div>
-               </div>
-       </div>
-
-       <div class="cbi-section" style="display:none">
-               <strong id="diag-rc-legend"></strong>
-               <span id="diag-rc-output"></span>
-       </div>
-</form>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm b/package/luci/modules/luci-mod-network/luasrc/view/admin_network/iface_overview.htm
deleted file mode 100644 (file)
index 9d4afd2..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<div class="cbi-section-node">
-       <div class="table">
-               <%
-                       for i, net in ipairs(self.netlist) do
-                               local z = net[3]
-                               local c = z and z:get_color() or "#EEEEEE"
-                               local t = z and translate("Part of zone %q") % z:name() or translate("No zone assigned")
-                               local disabled = (net[4]:get("auto") == "0")
-                               local dynamic = net[4]:is_dynamic()
-               %>
-                       <div class="tr cbi-rowstyle-<%=i % 2 + 1%>">
-                               <div class="td col-3 center middle">
-                                       <div class="ifacebox">
-                                               <div class="ifacebox-head" style="background-color:<%=c%>" title="<%=pcdata(t)%>">
-                                                       <strong><%=net[1]:upper()%></strong>
-                                               </div>
-                                               <div class="ifacebox-body" id="<%=net[1]%>-ifc-devices" data-network="<%=net[1]%>">
-                                                       <img src="<%=resource%>/icons/ethernet_disabled.png" style="width:16px; height:16px" /><br />
-                                                       <small>?</small>
-                                               </div>
-                                       </div>
-                               </div>
-                               <div class="td col-5 left middle" id="<%=net[1]%>-ifc-description">
-                                       <em><%:Collecting data...%></em>
-                               </div>
-                               <div class="td cbi-section-actions">
-                                       <div>
-                                               <input type="button" class="cbi-button cbi-button-neutral" onclick="iface_reconnect('<%=net[1]%>')" title="<%:Reconnect this interface%>" value="<%:Restart%>"<%=ifattr(disabled or dynamic, "disabled", "disabled")%> />
-
-                                               <% if disabled then %>
-                                                       <input type="hidden" name="cbid.network.<%=net[1]%>.__disable__" value="1" />
-                                                       <input type="submit" name="cbi.apply" class="cbi-button cbi-button-neutral" onclick="this.previousElementSibling.value='0'" title="<%:Reconnect this interface%>" value="<%:Connect%>"<%=ifattr(dynamic, "disabled", "disabled")%> />
-                                               <% else %>
-                                                       <input type="hidden" name="cbid.network.<%=net[1]%>.__disable__" value="0" />
-                                                       <input type="submit" name="cbi.apply" class="cbi-button cbi-button-neutral" onclick="this.previousElementSibling.value='1'" title="<%:Shutdown this interface%>" value="<%:Stop%>"<%=ifattr(dynamic, "disabled", "disabled")%> />
-                                               <% end %>
-
-                                               <input type="button" class="cbi-button cbi-button-action important" onclick="location.href='<%=url("admin/network/network", net[1])%>'" title="<%:Edit this interface%>" value="<%:Edit%>" id="<%=net[1]%>-ifc-edit"<%=ifattr(dynamic, "disabled", "disabled")%> />
-
-                                               <input type="hidden" name="cbid.network.<%=net[1]%>.__delete__" value="" />
-                                               <input type="submit" name="cbi.apply" class="cbi-button cbi-button-negative" onclick="iface_delete(event)" value="<%:Delete%>"<%=ifattr(dynamic, "disabled", "disabled")%> />
-                                       </div>
-                               </div>
-                       </div>
-               <% end %>
-       </div>
-</div>
-
-<div class="cbi-section-create">
-       <input type="button" class="cbi-button cbi-button-add" value="<%:Add new interface...%>" onclick="location.href='<%=url("admin/network/iface_add")%>'" />
-</div>
-
-<script type="text/javascript" src="<%=resource%>/view/network/network.js"></script>
diff --git a/package/luci/modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm b/package/luci/modules/luci-mod-network/luasrc/view/admin_network/iface_status.htm
deleted file mode 100644 (file)
index a75b275..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<%+cbi/valueheader%>
-
-<span class="ifacebadge large"<%=attr("data-iface-status", self.network)%>>
-       <img src="<%=resource%>/icons/ethernet_disabled.png" />
-       <span>
-               <em class="spinning"><%:Collecting data...%></em>
-       </span>
-</span>
-
-<script type="text/javascript" src="<%=resource%>/view/network/iface_status.js"></script>
-
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm b/package/luci/modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm
deleted file mode 100644 (file)
index 6e741b4..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<script type="text/javascript">//<![CDATA[
-       var switches = [ '<%=table.concat(self.switches, "', '")%>' ],
-           tables = document.querySelectorAll('.cbi-section-table');
-
-       function add_status_row(table) {
-               var first_row = table.querySelector('.cbi-section-table-row');
-               if (first_row.classList.contains('port-status'))
-                       return first_row;
-
-               var status_row = first_row.parentNode.insertBefore(
-                       E('div', { 'class': first_row.className }), first_row);
-
-               first_row.querySelectorAll('.td').forEach(function(td) {
-                       status_row.appendChild(td.cloneNode(false));
-                       status_row.lastElementChild.removeAttribute('data-title');
-               });
-
-               status_row.firstElementChild.innerHTML = '<%:Port status:%>';
-               status_row.classList.add('port-status') ;
-
-               return status_row;
-       }
-
-       XHR.poll(-1, '<%=url('admin/network/switch_status')%>/' + switches.join(','), null,
-               function(x, st)
-               {
-                       for (var i = 0; i < switches.length; i++)
-                       {
-                               var ports = st[switches[i]];
-                               var tr = add_status_row(tables[i]);
-
-                               if (tr && ports && ports.length)
-                               {
-                                       for (var j = 0; j < ports.length; j++)
-                                       {
-                                               var th = tr.querySelector('[data-name="%d"]'.format(j));
-
-                                               if (!th)
-                                                       continue;
-
-                                               if (ports[j].link)
-                                               {
-                                                       th.innerHTML = String.format(
-                                                               '<small><img src="<%=resource%>/icons/port_up.png" />' +
-                                                               '<br />%d<%:baseT%><br />%s</small>',
-                                                               ports[j].speed, ports[j].duplex
-                                                                       ? '<%:full-duplex%>' : '<%:half-duplex%>'
-                                                       );
-                                               }
-                                               else
-                                               {
-                                                       th.innerHTML = String.format(
-                                                               '<small><img src="<%=resource%>/icons/port_down.png" />' +
-                                                               '<br /><%:no link%></small>'
-                                                       );
-                                               }
-                                       }
-                               }
-                       }
-               }
-       );
-//]]></script>
diff --git a/package/luci/modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm b/package/luci/modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm
deleted file mode 100644 (file)
index 5a61ba0..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<%#
- Copyright 2009-2015 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%-
-
-       local sys = require "luci.sys"
-       local utl = require "luci.util"
-
-       local dev = luci.http.formvalue("device")
-       local iw = luci.sys.wifi.getiwinfo(dev)
-
-       if not iw then
-               luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless"))
-               return
-       end
--%>
-
-<%+header%>
-
-<h2 name="content"><%:Join Network: Wireless Scan%></h2>
-
-<div class="cbi-map">
-       <div class="cbi-section">
-               <div class="table"<%=attr("data-wifi-scan", dev) .. attr("data-wifi-type", iw.type)%>>
-                       <div class="tr table-titles">
-                               <div class="th col-2 middle center"><%:Signal%></div>
-                               <div class="th col-4 middle left"><%:SSID%></div>
-                               <div class="th col-2 middle center hide-xs"><%:Channel%></div>
-                               <div class="th col-2 middle left hide-xs"><%:Mode%></div>
-                               <div class="th col-3 middle left hide-xs"><%:BSSID%></div>
-                               <div class="th col-3 middle left"><%:Encryption%></div>
-                               <div class="th cbi-section-actions">&#160;</div>
-                       </div>
-
-                       <div class="tr placeholder">
-                               <div class="td">
-                                       <img src="<%=resource%>/icons/loading.gif" class="middle" />
-                                       <em><%:Collecting data...%></em>
-                               </div>
-                       </div>
-               </div>
-       </div>
-</div>
-<div class="cbi-page-actions right">
-       <form class="inline" action="<%=url("admin/network/wireless")%>" method="get">
-               <input class="cbi-button cbi-button-neutral" type="submit" value="<%:Back to overview%>" />
-       </form>
-       <form class="inline" action="<%=url('admin/network/wireless_join')%>" method="post">
-               <input type="hidden" name="token" value="<%=token%>" />
-               <input type="hidden" name="device" value="<%=utl.pcdata(dev)%>" />
-               <input type="button" class="cbi-button cbi-button-action" value="<%:Repeat scan%>" onclick="flush()" />
-       </form>
-</div>
-
-<script type="text/javascript" src="<%=resource%>/view/network/wifi_join.js"></script>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm b/package/luci/modules/luci-mod-network/luasrc/view/admin_network/wifi_overview.htm
deleted file mode 100644 (file)
index 89bb404..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-<div class="cbi-section-node">
-       <div class="table">
-               <!-- physical device -->
-               <div class="tr cbi-rowstyle-2">
-                       <div class="td col-2 center middle">
-                               <span class="ifacebadge"><img src="<%=resource%>/icons/wifi_disabled.png" id="<%=self.dev:name()%>-iw-upstate" /> <%=self.dev:name()%></span>
-                       </div>
-                       <div class="td col-7 left middle">
-                               <big><strong><%=self.hw%></strong></big><br />
-                               <span id="<%=self.dev:name()%>-iw-devinfo"></span>
-                       </div>
-                       <div class="td middle cbi-section-actions">
-                               <div>
-                                       <input type="button" class="cbi-button cbi-button-neutral" title="<%:Restart radio interface%>" value="<%:Restart%>" data-radio="<%=self.dev:name()%>" onclick="wifi_restart(event)" />
-                                       <input type="button" class="cbi-button cbi-button-action important" title="<%:Find and join network%>" value="<%:Scan%>" onclick="cbi_submit(this, 'device', '<%=self.dev:name()%>', '<%=url('admin/network/wireless_join')%>')" />
-                                       <input type="button" class="cbi-button cbi-button-add" title="<%:Provide new network%>" value="<%:Add%>" onclick="cbi_submit(this, 'device', '<%=self.dev:name()%>', '<%=url('admin/network/wireless_add')%>')" />
-                               </div>
-                       </div>
-               </div>
-               <!-- /physical device -->
-
-               <!-- network list -->
-               <% if #self.wnets > 0 then %>
-                       <% for i, net in ipairs(self.wnets) do local disabled = (self.dev:get("disabled") == "1" or net:get("disabled") == "1") %>
-                       <div class="tr cbi-rowstyle-<%=1 + ((i-1) % 2)%>">
-                               <div class="td col-2 center middle" id="<%=net:id()%>-iw-signal">
-                                       <span class="ifacebadge" title="<%:Not associated%>"><img src="<%=resource%>/icons/signal-<%= disabled and "none" or "0" %>.png" /> 0%</span>
-                               </div>
-                               <div class="td col-7 left middle" id="<%=net:id()%>-iw-status" data-network="<%=net:id()%>" data-disabled="<%= disabled and "true" or "false" %>">
-                                       <em><%= disabled and translate("Wireless is disabled") or translate("Collecting data...") %></em>
-                               </div>
-                               <div class="td middle cbi-section-actions">
-                                       <div>
-                                               <% if disabled then %>
-                                                       <input name="cbid.wireless.<%=net:name()%>.__disable__" type="hidden" value="1" />
-                                                       <input name="cbi.apply" type="submit" class="cbi-button cbi-button-neutral" title="<%:Enable this network%>" value="<%:Enable%>" onclick="this.previousElementSibling.value='0'" />
-                                               <% else %>
-                                                       <input name="cbid.wireless.<%=net:name()%>.__disable__" type="hidden" value="0" />
-                                                       <input name="cbi.apply" type="submit" class="cbi-button cbi-button-neutral" title="<%:Disable this network%>" value="<%:Disable%>" onclick="this.previousElementSibling.value='1'" />
-                                               <% end %>
-
-                                               <input type="button" class="cbi-button cbi-button-action important" onclick="location.href='<%=net:adminlink()%>'" title="<%:Edit this network%>" value="<%:Edit%>" />
-
-                                               <input name="cbid.wireless.<%=net:name()%>.__delete__" type="hidden" value="" />
-                                               <input name="cbi.apply" type="submit" class="cbi-button cbi-button-negative" title="<%:Delete this network%>" value="<%:Remove%>" onclick="wifi_delete(event)" />
-                                       </div>
-                               </div>
-                       </div>
-                       <% end %>
-               <% else %>
-                       <div class="tr placeholder">
-                               <div class="td">
-                                       <em><%:No network configured on this device%></em>
-                               </div>
-                       </div>
-               <% end %>
-               <!-- /network list -->
-       </div>
-</div>
-
-<script type="text/javascript" src="<%=resource%>/view/network/wireless.js"></script>
diff --git a/package/luci/modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm b/package/luci/modules/luci-mod-network/luasrc/view/admin_network/wifi_status.htm
deleted file mode 100644 (file)
index 93ae2f5..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<%+cbi/valueheader%>
-
-<span class="ifacebadge large"<%=attr("data-wifi-status", self.ifname)%>>
-       <small>
-               <img src="<%=resource%>/icons/signal-none.png" title="<%:Not associated%>" />&#160;
-       </small>
-       <span>
-               <em class="spinning"><%:Collecting data...%></em>
-       </span>
-</span>
-
-<script type="text/javascript" src="<%=resource%>/view/network/wifi_status.js"></script>
-
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-mod-network/root/etc/uci-defaults/50_luci-mod-admin-full b/package/luci/modules/luci-mod-network/root/etc/uci-defaults/50_luci-mod-admin-full
deleted file mode 100755 (executable)
index 372eb15..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-if [ "$(uci -q get luci.diag)" != "internal" ]; then
-       host=""
-
-       if [ -s /etc/os-release ]; then
-               . /etc/os-release
-               host="${HOME_URL:-${BUG_URL:-$LEDE_DEVICE_MANUFACTURER_URL}}"
-               host="${host#*://}"
-               host="${host%%/*}"
-       fi
-
-       uci -q batch <<-EOF >/dev/null
-               set luci.diag=internal
-               set luci.diag.dns='${host:-openwrt.org}'
-               set luci.diag.ping='${host:-openwrt.org}'
-               set luci.diag.route='${host:-openwrt.org}'
-               commit luci
-       EOF
-fi
-
-exit 0
diff --git a/package/luci/modules/luci-mod-rpc/Makefile b/package/luci/modules/luci-mod-rpc/Makefile
deleted file mode 100644 (file)
index bc1f6d2..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI RPC - JSON-RPC API
-LUCI_DEPENDS:=+luci-lib-json
-
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
-
diff --git a/package/luci/modules/luci-mod-rpc/luasrc/controller/rpc.lua b/package/luci/modules/luci-mod-rpc/luasrc/controller/rpc.lua
deleted file mode 100644 (file)
index 1e8038b..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.rpc", package.seeall)
-
-
-function session_retrieve(sid, allowed_users)
-       local util = require "luci.util"
-       local sdat = util.ubus("session", "get", {
-               ubus_rpc_session = sid
-       })
-
-       if type(sdat) == "table" and
-          type(sdat.values) == "table" and
-          type(sdat.values.token) == "string" and
-          type(sdat.values.secret) == "string" and
-          type(sdat.values.username) == "string" and
-          util.contains(allowed_users, sdat.values.username)
-       then
-               return sid, sdat.values
-       end
-
-       return nil
-end
-
-function authenticator(validator, accs)
-       local http = require "luci.http"
-       local ctrl = require "luci.controller.rpc"
-       local auth = http.formvalue("auth", true) or http.getcookie("sysauth")
-
-       if auth then -- if authentication token was given
-               local sid, sdat = ctrl.session_retrieve(auth, accs)
-               if sdat then -- if given token is valid
-                       return sdat.username, sid
-               end
-               http.status(403, "Forbidden")
-       end
-end
-
-
-function index()
-       local ctrl = require "luci.controller.rpc"
-
-       local rpc = node("rpc")
-       rpc.sysauth = "root"
-       rpc.sysauth_authenticator = ctrl.authenticator
-       rpc.notemplate = true
-
-       entry({"rpc", "uci"}, call("rpc_uci"))
-       entry({"rpc", "fs"}, call("rpc_fs"))
-       entry({"rpc", "sys"}, call("rpc_sys"))
-       entry({"rpc", "ipkg"}, call("rpc_ipkg"))
-       entry({"rpc", "ip"}, call("rpc_ip"))
-       entry({"rpc", "auth"}, call("rpc_auth")).sysauth = false
-end
-
-function rpc_auth()
-       local ctrl    = require "luci.controller.rpc"
-       local jsonrpc = require "luci.jsonrpc"
-       local http    = require "luci.http"
-       local sys     = require "luci.sys"
-       local ltn12   = require "luci.ltn12"
-       local util    = require "luci.util"
-
-       local server = {}
-       server.challenge = function(user, pass)
-               local config = require "luci.config"
-               local login = util.ubus("session", "login", {
-                       username = user,
-                       password = pass,
-                       timeout  = tonumber(config.sauth.sessiontime)
-               })
-
-               if type(login) == "table" and
-                  type(login.ubus_rpc_session) == "string"
-               then
-                       util.ubus("session", "set", {
-                               ubus_rpc_session = login.ubus_rpc_session,
-                               values = {
-                                       token = sys.uniqueid(16),
-                                       secret = sys.uniqueid(16)
-                               }
-                       })
-
-                       local sid, sdat = ctrl.session_retrieve(login.ubus_rpc_session, { user })
-                       if sdat then
-                               return {
-                                       sid = sid,
-                                       token = sdat.token,
-                                       secret = sdat.secret
-                               }
-                       end
-               end
-
-               return nil
-       end
-
-       server.login = function(...)
-               local challenge = server.challenge(...)
-               if challenge then
-                       http.header("Set-Cookie", 'sysauth=%s; path=%s' %{
-                               challenge.sid,
-                               http.getenv("SCRIPT_NAME")
-                       })
-                       return challenge.sid
-               end
-       end
-
-       http.prepare_content("application/json")
-       ltn12.pump.all(jsonrpc.handle(server, http.source()), http.write)
-end
-
-function rpc_uci()
-       if not pcall(require, "luci.model.uci") then
-               luci.http.status(404, "Not Found")
-               return nil
-       end
-       local uci     = require "luci.jsonrpcbind.uci"
-       local jsonrpc = require "luci.jsonrpc"
-       local http    = require "luci.http"
-       local ltn12   = require "luci.ltn12"
-
-       http.prepare_content("application/json")
-       ltn12.pump.all(jsonrpc.handle(uci, http.source()), http.write)
-end
-
-function rpc_fs()
-       local util    = require "luci.util"
-       local io      = require "io"
-       local fs2     = util.clone(require "nixio.fs")
-       local jsonrpc = require "luci.jsonrpc"
-       local http    = require "luci.http"
-       local ltn12   = require "luci.ltn12"
-
-       function fs2.readfile(filename)
-               local stat, mime = pcall(require, "mime")
-               if not stat then
-                       error("Base64 support not available. Please install LuaSocket.")
-               end
-
-               local fp = io.open(filename)
-               if not fp then
-                       return nil
-               end
-
-               local output = {}
-               local sink = ltn12.sink.table(output)
-               local source = ltn12.source.chain(ltn12.source.file(fp), mime.encode("base64"))
-               return ltn12.pump.all(source, sink) and table.concat(output)
-       end
-
-       function fs2.writefile(filename, data)
-               local stat, mime = pcall(require, "mime")
-               if not stat then
-                       error("Base64 support not available. Please install LuaSocket.")
-               end
-
-               local  file = io.open(filename, "w")
-               local  sink = file and ltn12.sink.chain(mime.decode("base64"), ltn12.sink.file(file))
-               return sink and ltn12.pump.all(ltn12.source.string(data), sink) or false
-       end
-
-       http.prepare_content("application/json")
-       ltn12.pump.all(jsonrpc.handle(fs2, http.source()), http.write)
-end
-
-function rpc_sys()
-       local util    = require "luci.util"
-       local sys     = require "luci.sys"
-       local jsonrpc = require "luci.jsonrpc"
-       local http    = require "luci.http"
-       local ltn12   = require "luci.ltn12"
-
-       local sys2 = util.clone(sys)
-             sys2.net = util.clone(sys.net)
-             sys2.wifi = util.clone(sys.wifi)
-
-       function sys2.wifi.getiwinfo(ifname, operation)
-               local iw = sys.wifi.getiwinfo(ifname)
-               if iw then
-                       if operation then
-                               assert(type(iwinfo[iw.type][operation]) == "function")
-                               return iw[operation]
-                       end
-
-                       local n, f
-                       local rv = { ifname = ifname }
-                       for n, f in pairs(iwinfo[iw.type]) do
-                               if type(f) == "function" and
-                                  n ~= "scanlist" and n ~= "countrylist"
-                               then
-                                       rv[n] = iw[n]
-                               end
-                       end
-                       return rv
-               end
-               return nil
-       end
-
-       http.prepare_content("application/json")
-       ltn12.pump.all(jsonrpc.handle(sys2, http.source()), http.write)
-end
-
-function rpc_ipkg()
-       if not pcall(require, "luci.model.ipkg") then
-               luci.http.status(404, "Not Found")
-               return nil
-       end
-       local ipkg    = require "luci.model.ipkg"
-       local jsonrpc = require "luci.jsonrpc"
-       local http    = require "luci.http"
-       local ltn12   = require "luci.ltn12"
-
-       http.prepare_content("application/json")
-       ltn12.pump.all(jsonrpc.handle(ipkg, http.source()), http.write)
-end
-
-function rpc_ip()
-       if not pcall(require, "luci.ip") then
-               luci.http.status(404, "Not Found")
-               return nil
-       end
-
-       local util    = require "luci.util"
-       local ip      = require "luci.ip"
-       local jsonrpc = require "luci.jsonrpc"
-       local http    = require "luci.http"
-       local ltn12   = require "luci.ltn12"
-
-       local ip2 = util.clone(ip)
-
-       local _, n
-       for _, n in ipairs({ "new", "IPv4", "IPv6", "MAC" }) do
-               ip2[n] = function(address, netmask, operation, argument)
-                       local cidr = ip[n](address, netmask)
-                       if cidr and operation then
-                               assert(type(cidr[operation]) == "function")
-                               local cidr2 = cidr[operation](cidr, argument)
-                               return (type(cidr2) == "userdata") and cidr2:string() or cidr2
-                       end
-                       return (type(cidr) == "userdata") and cidr:string() or cidr
-               end
-       end
-
-       http.prepare_content("application/json")
-       ltn12.pump.all(jsonrpc.handle(ip2, http.source()), http.write)
-end
diff --git a/package/luci/modules/luci-mod-rpc/luasrc/jsonrpc.lua b/package/luci/modules/luci-mod-rpc/luasrc/jsonrpc.lua
deleted file mode 100644 (file)
index c7f0254..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.jsonrpc", package.seeall)
-require "luci.json"
-
-function resolve(mod, method)
-       local path = luci.util.split(method, ".")
-       
-       for j=1, #path-1 do
-               if not type(mod) == "table" then
-                       break
-               end
-               mod = rawget(mod, path[j])
-               if not mod then
-                       break
-               end
-       end
-       mod = type(mod) == "table" and rawget(mod, path[#path]) or nil
-       if type(mod) == "function" then
-               return mod
-       end
-end
-
-function handle(tbl, rawsource, ...)
-       local decoder = luci.json.Decoder()
-       local stat = luci.ltn12.pump.all(rawsource, decoder:sink())
-       local json = decoder:get()
-       local response
-       local success = false
-       
-       if stat then
-               if type(json.method) == "string"
-                and (not json.params or type(json.params) == "table") then
-                       local method = resolve(tbl, json.method)
-                       if method then
-                               response = reply(json.jsonrpc, json.id,
-                                proxy(method, unpack(json.params or {})))
-                       else
-                               response = reply(json.jsonrpc, json.id,
-                                nil, {code=-32601, message="Method not found."})
-                       end
-               else
-                       response = reply(json.jsonrpc, json.id,
-                        nil, {code=-32600, message="Invalid request."})
-               end
-       else
-               response = reply("2.0", nil,
-                nil, {code=-32700, message="Parse error."})
-       end
-
-       return luci.json.Encoder(response, ...):source()
-end
-
-function reply(jsonrpc, id, res, err)
-       require "luci.json"
-       id = id or luci.json.null
-       
-       -- 1.0 compatibility
-       if jsonrpc ~= "2.0" then
-               jsonrpc = nil
-               res = res or luci.json.null
-               err = err or luci.json.null
-       end
-       
-       return {id=id, result=res, error=err, jsonrpc=jsonrpc}
-end
-
-function proxy(method, ...)
-       local res = {luci.util.copcall(method, ...)}
-       local stat = table.remove(res, 1)
-       
-       if not stat then
-               return nil, {code=-32602, message="Invalid params.", data=table.remove(res, 1)} 
-       else
-               if #res <= 1 then
-                       return res[1] or luci.json.null
-               else
-                       return res
-               end
-       end
-end
diff --git a/package/luci/modules/luci-mod-rpc/luasrc/jsonrpcbind/uci.lua b/package/luci/modules/luci-mod-rpc/luasrc/jsonrpcbind/uci.lua
deleted file mode 100644 (file)
index 284801e..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local uci   = require "luci.model.uci".cursor()
-local ucis  = require "luci.model.uci".cursor_state()
-local table = require "table"
-
-
-module "luci.jsonrpcbind.uci"
-_M, _PACKAGE, _NAME = nil, nil, nil
-
-function add(config, ...)
-       uci:load(config)
-       local stat = uci:add(config, ...)
-       return uci:save(config) and stat
-end
-
-function apply(config)
-       return uci:apply(config)
-end
-
-function changes(...)
-       return uci:changes(...)
-end
-
-function commit(config)
-       return uci:load(config) and uci:commit(config)
-end
-
-function delete(config, ...)
-       uci:load(config) 
-       return uci:delete(config, ...) and uci:save(config) 
-end
-
-function delete_all(config, ...)
-       uci:load(config)
-       return uci:delete_all(config, ...) and uci:save(config) 
-end
-
-function foreach(config, stype)
-       uci:load(config)
-       local sections = {}
-       
-       return uci:foreach(config, stype, function(section)
-               table.insert(sections, section)
-       end) and sections
-end
-
-function get(config, ...)
-       uci:load(config)
-       return uci:get(config, ...)
-end
-
-function get_all(config, ...)
-       uci:load(config)
-       return uci:get_all(config, ...)
-end
-
-function get_state(config, ...)
-       ucis:load(config)
-       return ucis:get(config, ...)
-end
-
-function revert(config)
-       return uci:load(config) and uci:revert(config)
-end
-
-function section(config, ...)
-       uci:load(config)
-       return uci:section(config, ...) and uci:save(config)
-end
-
-function set(config, ...)
-       uci:load(config)
-       return uci:set(config, ...) and uci:save(config)
-end
-
-function tset(config, ...)
-       uci:load(config)
-       return uci:tset(config, ...) and uci:save(config)
-end
-
diff --git a/package/luci/modules/luci-mod-status/Makefile b/package/luci/modules/luci-mod-status/Makefile
deleted file mode 100644 (file)
index cf8c8dd..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI Status Pages
-LUCI_DEPENDS:=+luci-base +libiwinfo +libiwinfo-lua
-
-PKG_BUILD_DEPENDS:=iwinfo
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
-
diff --git a/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/bandwidth.svg b/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/bandwidth.svg
deleted file mode 100644 (file)
index 5a121b8..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-
-<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
-       <polyline id="rx" points="" style="fill:blue;fill-opacity:0.4;stroke:blue;stroke-width:1" />
-       <polyline id="tx" points="" style="fill:green;fill-opacity:0.4;stroke:green;stroke-width:1" />
-
-       <line x1="0" y1="25%" x2="100%" y2="25%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_75" x="20" y="24%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-
-       <line x1="0" y1="50%" x2="100%" y2="50%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_50" x="20" y="49%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-
-       <line x1="0" y1="75%" x2="100%" y2="75%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_25" x="20" y="74%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-</svg>
diff --git a/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/connections.svg b/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/connections.svg
deleted file mode 100644 (file)
index 5794e79..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-
-<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
-       <polyline id="tcp" points="" style="fill:green;fill-opacity:0.4;stroke:green;stroke-width:1" />
-       <polyline id="udp" points="" style="fill:blue;fill-opacity:0.4;stroke:blue;stroke-width:1" />
-       <polyline id="other" points="" style="fill:red;fill-opacity:0.4;stroke:red;stroke-width:1" />
-
-       <line x1="0" y1="25%" x2="100%" y2="25%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_75" x="20" y="24%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-
-       <line x1="0" y1="50%" x2="100%" y2="50%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_50" x="20" y="49%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-
-       <line x1="0" y1="75%" x2="100%" y2="75%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_25" x="20" y="74%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-</svg>
diff --git a/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/load.svg b/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/load.svg
deleted file mode 100644 (file)
index 716d376..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-
-<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
-       <polyline id="load01" points="" style="fill:#ff0000;fill-opacity:0.4;stroke:#ff0000;stroke-width:1" />
-       <polyline id="load05" points="" style="fill:#ff6600;fill-opacity:0.4;stroke:#ff6600;stroke-width:1" />
-       <polyline id="load15" points="" style="fill:#ffaa00;fill-opacity:0.4;stroke:#ffaa00;stroke-width:1" />
-
-       <line x1="0" y1="25%" x2="100%" y2="25%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_75" x="20" y="24%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-
-       <line x1="0" y1="50%" x2="100%" y2="50%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_50" x="20" y="49%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-
-       <line x1="0" y1="75%" x2="100%" y2="75%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_25" x="20" y="74%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-</svg>
diff --git a/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js b/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js
deleted file mode 100644 (file)
index c2aa3a9..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-function progressbar(q, v, m)
-{
-       var pg = document.querySelector(q),
-           vn = parseInt(v) || 0,
-           mn = parseInt(m) || 100,
-           pc = Math.floor((100 / mn) * vn);
-
-       if (pg) {
-               pg.firstElementChild.style.width = pc + '%';
-               pg.setAttribute('title', '%s / %s (%d%%)'.format(v, m, pc));
-       }
-}
-
-function renderBox(title, active, childs) {
-       childs = childs || [];
-       childs.unshift(L.itemlist(E('span'), [].slice.call(arguments, 3)));
-
-       return E('div', { class: 'ifacebox' }, [
-               E('div', { class: 'ifacebox-head center ' + (active ? 'active' : '') },
-                       E('strong', title)),
-               E('div', { class: 'ifacebox-body left' }, childs)
-       ]);
-}
-
-function renderBadge(icon, title) {
-       return E('span', { class: 'ifacebadge' }, [
-               E('img', { src: icon, title: title || '' }),
-               L.itemlist(E('span'), [].slice.call(arguments, 2))
-       ]);
-}
-
-L.poll(5, L.location(), { status: 1 },
-       function(x, info)
-       {
-               var us = document.getElementById('upstream_status_table');
-
-               while (us.lastElementChild)
-                       us.removeChild(us.lastElementChild);
-
-               var wan_list = info.wan || [];
-
-               for (var i = 0; i < wan_list.length; i++) {
-                       var ifc = wan_list[i];
-
-                       us.appendChild(renderBox(
-                               _('IPv4 Upstream'),
-                               (ifc.ifname && ifc.proto != 'none'),
-                               [ E('div', {}, renderBadge(
-                               L.resource('icons/%s.png').format((ifc && ifc.type) ? ifc.type : 'ethernet_disabled'), null,
-                               _('Device'), ifc ? (ifc.name || ifc.ifname || '-') : '-',
-                               _('MAC-Address'), (ifc && ifc.ether) ? ifc.mac : null)) ],
-                               _('Protocol'), ifc.i18n || E('em', _('Not connected')),
-                               _('Address'), (ifc.ipaddr) ? ifc.ipaddr : '0.0.0.0',
-                               _('Netmask'), (ifc.netmask && ifc.netmask != ifc.ipaddr) ? ifc.netmask : '255.255.255.255',
-                               _('Gateway'), (ifc.gwaddr) ? ifc.gwaddr : '0.0.0.0',
-                               _('DNS') + ' 1', (ifc.dns) ? ifc.dns[0] : null,
-                               _('DNS') + ' 2', (ifc.dns) ? ifc.dns[1] : null,
-                               _('DNS') + ' 3', (ifc.dns) ? ifc.dns[2] : null,
-                               _('DNS') + ' 4', (ifc.dns) ? ifc.dns[3] : null,
-                               _('DNS') + ' 5', (ifc.dns) ? ifc.dns[4] : null,
-                               _('Expires'), (ifc.expires > -1) ? '%t'.format(ifc.expires) : null,
-                               _('Connected'), (ifc.uptime > 0) ? '%t'.format(ifc.uptime) : null));
-               }
-
-               var wan6_list = info.wan6 || [];
-
-               for (var i = 0; i < wan6_list.length; i++) {
-                       var ifc6 = wan6_list[i];
-
-                       us.appendChild(renderBox(
-                               _('IPv6 Upstream'),
-                               (ifc6.ifname && ifc6.proto != 'none'),
-                               [ E('div', {}, renderBadge(
-                                       L.resource('icons/%s.png').format(ifc6.type || 'ethernet_disabled'), null,
-                                       _('Device'), ifc6 ? (ifc6.name || ifc6.ifname || '-') : '-',
-                                       _('MAC-Address'), (ifc6 && ifc6.ether) ? ifc6.mac : null)) ],
-                               _('Protocol'), ifc6.i18n ? (ifc6.i18n + (ifc6.proto === 'dhcp' && ifc6.ip6prefix ? '-PD' : '')) : E('em', _('Not connected')),
-                               _('Prefix Delegated'), ifc6.ip6prefix,
-                               _('Address'), (ifc6.ip6prefix) ? (ifc6.ip6addr || null) : (ifc6.ip6addr || '::'),
-                               _('Gateway'), (ifc6.gw6addr) ? ifc6.gw6addr : '::',
-                               _('DNS') + ' 1', (ifc6.dns) ? ifc6.dns[0] : null,
-                               _('DNS') + ' 2', (ifc6.dns) ? ifc6.dns[1] : null,
-                               _('DNS') + ' 3', (ifc6.dns) ? ifc6.dns[2] : null,
-                               _('DNS') + ' 4', (ifc6.dns) ? ifc6.dns[3] : null,
-                               _('DNS') + ' 5', (ifc6.dns) ? ifc6.dns[4] : null,
-                               _('Connected'), (ifc6.uptime > 0) ? '%t'.format(ifc6.uptime) : null));
-               }
-
-               var ds = document.getElementById('dsl_status_table');
-               if (ds) {
-                       while (ds.lastElementChild)
-                               ds.removeChild(ds.lastElementChild);
-
-                       ds.appendChild(renderBox(
-                               _('DSL Status'),
-                               (info.dsl.line_state === 'UP'), [ ],
-                               _('Line State'), '%s [0x%x]'.format(info.dsl.line_state, info.dsl.line_state_detail),
-                               _('Line Mode'), info.dsl.line_mode_s || '-',
-                               _('Line Uptime'), info.dsl.line_uptime_s || '-',
-                               _('Annex'), info.dsl.annex_s || '-',
-                               _('Profile'), info.dsl.profile_s || '-',
-                               _('Data Rate'), '%s/s / %s/s'.format(info.dsl.data_rate_down_s, info.dsl.data_rate_up_s),
-                               _('Max. Attainable Data Rate (ATTNDR)'), '%s/s / %s/s'.format(info.dsl.max_data_rate_down_s, info.dsl.max_data_rate_up_s),
-                               _('Latency'), '%s / %s'.format(info.dsl.latency_num_down, info.dsl.latency_num_up),
-                               _('Line Attenuation (LATN)'), '%.1f dB / %.1f dB'.format(info.dsl.line_attenuation_down, info.dsl.line_attenuation_up),
-                               _('Signal Attenuation (SATN)'), '%.1f dB / %.1f dB'.format(info.dsl.signal_attenuation_down, info.dsl.signal_attenuation_up),
-                               _('Noise Margin (SNR)'), '%.1f dB / %.1f dB'.format(info.dsl.noise_margin_down, info.dsl.noise_margin_up),
-                               _('Aggregate Transmit Power(ACTATP)'), '%.1f dB / %.1f dB'.format(info.dsl.actatp_down, info.dsl.actatp_up),
-                               _('Forward Error Correction Seconds (FECS)'), '%d / %d'.format(info.dsl.errors_fec_near, info.dsl.errors_fec_far),
-                               _('Errored seconds (ES)'), '%d / %d'.format(info.dsl.errors_es_near, info.dsl.errors_es_far),
-                               _('Severely Errored Seconds (SES)'), '%d / %d'.format(info.dsl.errors_ses_near, info.dsl.errors_ses_far),
-                               _('Loss of Signal Seconds (LOSS)'), '%d / %d'.format(info.dsl.errors_loss_near, info.dsl.errors_loss_far),
-                               _('Unavailable Seconds (UAS)'), '%d / %d'.format(info.dsl.errors_uas_near, info.dsl.errors_uas_far),
-                               _('Header Error Code Errors (HEC)'), '%d / %d'.format(info.dsl.errors_hec_near, info.dsl.errors_hec_far),
-                               _('Non Pre-emtive CRC errors (CRC_P)'), '%d / %d'.format(info.dsl.errors_crc_p_near, info.dsl.errors_crc_p_far),
-                               _('Pre-emtive CRC errors (CRCP_P)'), '%d / %d'.format(info.dsl.errors_crcp_p_near, info.dsl.errors_crcp_p_far),
-                               _('ATU-C System Vendor ID'), info.dsl.atuc_vendor_id,
-                               _('Power Management Mode'), info.dsl.power_mode_s));
-               }
-
-               var ws = document.getElementById('wifi_status_table');
-               if (ws)
-               {
-                       while (ws.lastElementChild)
-                               ws.removeChild(ws.lastElementChild);
-
-                       for (var didx = 0; didx < info.wifinets.length; didx++)
-                       {
-                               var dev = info.wifinets[didx];
-                               var net0 = (dev.networks && dev.networks[0]) ? dev.networks[0] : {};
-                               var vifs = [];
-
-                               for (var nidx = 0; nidx < dev.networks.length; nidx++)
-                               {
-                                       var net = dev.networks[nidx];
-                                       var is_assoc = (net.bssid != '00:00:00:00:00:00' && net.channel && !net.disabled);
-
-                                       var icon;
-                                       if (net.disabled)
-                                               icon = L.resource('icons/signal-none.png');
-                                       else if (net.quality <= 0)
-                                               icon = L.resource('icons/signal-0.png');
-                                       else if (net.quality < 25)
-                                               icon = L.resource('icons/signal-0-25.png');
-                                       else if (net.quality < 50)
-                                               icon = L.resource('icons/signal-25-50.png');
-                                       else if (net.quality < 75)
-                                               icon = L.resource('icons/signal-50-75.png');
-                                       else
-                                               icon = L.resource('icons/signal-75-100.png');
-
-                                       vifs.push(renderBadge(
-                                               icon,
-                                               '%s: %d dBm / %s: %d%%'.format(_('Signal'), net.signal, _('Quality'), net.quality),
-                                               _('SSID'), E('a', { href: net.link }, [ net.ssid || '?' ]),
-                                               _('Mode'), net.mode,
-                                               _('BSSID'), is_assoc ? (net.bssid || '-') : null,
-                                               _('Encryption'), is_assoc ? net.encryption : null,
-                                               _('Associations'), is_assoc ? (net.num_assoc || '-') : null,
-                                               null, is_assoc ? null : E('em', net.disabled ? _('Wireless is disabled') : _('Wireless is not associated'))));
-                               }
-
-                               ws.appendChild(renderBox(
-                                       dev.device, dev.up || net0.up,
-                                       [ E('div', vifs) ],
-                                       _('Type'), dev.name.replace(/^Generic | Wireless Controller .+$/g, ''),
-                                       _('Channel'), net0.channel ? '%d (%.3f %s)'.format(net0.channel, net0.frequency, _('GHz')) : '-',
-                                       _('Bitrate'), net0.bitrate ? '%d %s'.format(net0.bitrate, _('Mbit/s')) : '-'));
-                       }
-
-                       if (!ws.lastElementChild)
-                               ws.appendChild(E('em', _('No information available')));
-               }
-
-               var e;
-
-               if (e = document.getElementById('localtime'))
-                       e.innerHTML = info.localtime;
-
-               if (e = document.getElementById('uptime'))
-                       e.innerHTML = String.format('%t', info.uptime);
-
-               if (e = document.getElementById('loadavg'))
-                       e.innerHTML = String.format(
-                               '%.02f, %.02f, %.02f',
-                               info.loadavg[0] / 65535.0,
-                               info.loadavg[1] / 65535.0,
-                               info.loadavg[2] / 65535.0
-                       );
-
-               progressbar('#memtotal',
-                       ((info.memory.free + info.memory.buffered) / 1024) + ' ' + _('kB'),
-                       (info.memory.total / 1024) + ' ' + _('kB'));
-
-               progressbar('#memfree',
-                       (info.memory.free / 1024) + ' ' + _('kB'),
-                       (info.memory.total / 1024) + ' ' + _('kB'));
-
-               progressbar('#membuff',
-                       (info.memory.buffered / 1024) + ' ' + _('kB'),
-                       (info.memory.total / 1024) + ' ' + _('kB'));
-
-               progressbar('#swaptotal',
-                       (info.swap.free / 1024) + ' ' + _('kB'),
-                       (info.swap.total / 1024) + ' ' + _('kB'));
-
-               progressbar('#swapfree',
-                       (info.swap.free / 1024) + ' ' + _('kB'),
-                       (info.swap.total / 1024) + ' ' + _('kB'));
-
-               progressbar('#conns',
-                       info.conncount, info.connmax);
-
-       }
-);
diff --git a/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js b/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js
deleted file mode 100644 (file)
index 39ddab3..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-var table_names = [ 'Filter', 'NAT', 'Mangle', 'Raw' ],
-    current_mode = document.querySelector('.cbi-tab[data-mode="6"]') ? 6 : 4;
-
-function create_table_section(table)
-{
-       var idiv = document.getElementById('iptables'),
-           tdiv = idiv.querySelector('[data-table="%s"]'.format(table)),
-           title = '%s: %s'.format(_('Table'), table);
-
-       if (!tdiv) {
-               tdiv = E('div', { 'data-table': table }, [
-                       E('h3', {}, title),
-                       E('div')
-               ]);
-
-               if (idiv.firstElementChild.nodeName.toLowerCase() === 'p')
-                       idiv.removeChild(idiv.firstElementChild);
-
-               var added = false, thisIdx = table_names.indexOf(table);
-
-               idiv.querySelectorAll('[data-table]').forEach(function(child) {
-                       var childIdx = table_names.indexOf(child.getAttribute('data-table'));
-
-                       if (added === false && childIdx > thisIdx) {
-                               idiv.insertBefore(tdiv, child);
-                               added = true;
-                       }
-               });
-
-               if (added === false)
-                       idiv.appendChild(tdiv);
-       }
-
-       return tdiv.lastElementChild;
-}
-
-function create_chain_section(table, chain, policy, packets, bytes, references)
-{
-       var tdiv = create_table_section(table),
-           cdiv = tdiv.querySelector('[data-chain="%s"]'.format(chain)),
-           title;
-
-       if (policy)
-               title = '%s <em>%s</em> <span>(%s: <em>%s</em>, %d %s, %.2mB %s)</span>'
-                       .format(_('Chain'), chain, _('Policy'), policy, packets, _('Packets'), bytes, _('Traffic'));
-       else
-               title = '%s <em>%s</em> <span class="references">(%d %s)</span>'
-                       .format(_('Chain'), chain, references, _('References'));
-
-       if (!cdiv) {
-               cdiv = E('div', { 'data-chain': chain }, [
-                       E('h4', { 'id': 'rule_%s_%s'.format(table.toLowerCase(), chain) }, title),
-                       E('div', { 'class': 'table' }, [
-                               E('div', { 'class': 'tr table-titles' }, [
-                                       E('div', { 'class': 'th center' }, _('Pkts.')),
-                                       E('div', { 'class': 'th center' }, _('Traffic')),
-                                       E('div', { 'class': 'th' }, _('Target')),
-                                       E('div', { 'class': 'th' }, _('Prot.')),
-                                       E('div', { 'class': 'th' }, _('In')),
-                                       E('div', { 'class': 'th' }, _('Out')),
-                                       E('div', { 'class': 'th' }, _('Source')),
-                                       E('div', { 'class': 'th' }, _('Destination')),
-                                       E('div', { 'class': 'th' }, _('Options')),
-                                       E('div', { 'class': 'th' }, _('Comment'))
-                               ])
-                       ])
-               ]);
-
-               tdiv.appendChild(cdiv);
-       }
-       else {
-               cdiv.firstElementChild.innerHTML = title;
-       }
-
-       return cdiv.lastElementChild;
-}
-
-function update_chain_section(chaintable, rows)
-{
-       if (!chaintable)
-               return;
-
-       cbi_update_table(chaintable, rows, _('No rules in this chain.'));
-
-       if (rows.length === 0 &&
-           document.querySelector('form > [data-hide-empty="true"]'))
-               chaintable.parentNode.style.display = 'none';
-       else
-               chaintable.parentNode.style.display = '';
-
-       chaintable.parentNode.setAttribute('data-empty', rows.length === 0);
-}
-
-function hide_empty(btn)
-{
-       var hide = (btn.getAttribute('data-hide-empty') === 'false');
-
-       btn.setAttribute('data-hide-empty', hide);
-       btn.value = hide ? _('Show empty chains') : _('Hide empty chains');
-       btn.blur();
-
-       document.querySelectorAll('[data-chain][data-empty="true"]')
-               .forEach(function(chaintable) {
-                       chaintable.style.display = hide ? 'none' : '';
-               });
-}
-
-function jump_target(ev)
-{
-       var link = ev.target,
-           table = findParent(link, '[data-table]').getAttribute('data-table'),
-           chain = link.textContent,
-           num = +link.getAttribute('data-num'),
-           elem = document.getElementById('rule_%s_%s'.format(table.toLowerCase(), chain));
-
-       if (elem) {
-               (document.documentElement || document.body.parentNode || document.body).scrollTop = elem.offsetTop - 40;
-               elem.classList.remove('flash');
-               void elem.offsetWidth;
-               elem.classList.add('flash');
-
-               if (num) {
-                       var rule = elem.nextElementSibling.childNodes[num];
-                       if (rule) {
-                               rule.classList.remove('flash');
-                               void rule.offsetWidth;
-                               rule.classList.add('flash');
-                       }
-               }
-       }
-}
-
-function parse_output(table, s)
-{
-       var current_chain = null;
-       var current_rules = [];
-       var seen_chains = {};
-       var chain_refs = {};
-       var re = /([^\n]*)\n/g;
-       var m, m2;
-
-       while ((m = re.exec(s)) != null) {
-               if (m[1].match(/^Chain (.+) \(policy (\w+) (\d+) packets, (\d+) bytes\)$/)) {
-                       var chain = RegExp.$1,
-                           policy = RegExp.$2,
-                           packets = +RegExp.$3,
-                           bytes = +RegExp.$4;
-
-                       update_chain_section(current_chain, current_rules);
-
-                       seen_chains[chain] = true;
-                       current_chain = create_chain_section(table, chain, policy, packets, bytes);
-                       current_rules = [];
-               }
-               else if (m[1].match(/^Chain (.+) \((\d+) references\)$/)) {
-                       var chain = RegExp.$1,
-                           references = +RegExp.$2;
-
-                       update_chain_section(current_chain, current_rules);
-
-                       seen_chains[chain] = true;
-                       current_chain = create_chain_section(table, chain, null, null, null, references);
-                       current_rules = [];
-               }
-               else if (m[1].match(/^num /)) {
-                       continue;
-               }
-               else if ((m2 = m[1].match(/^(\d+) +(\d+) +(\d+) +(.*?) +(\S+) +(\S*) +(\S+) +(\S+) +([a-f0-9:.]+\/\d+) +([a-f0-9:.]+\/\d+) +(.+)$/)) !== null) {
-                       var num = +m2[1],
-                           pkts = +m2[2],
-                           bytes = +m2[3],
-                           target = m2[4],
-                           proto = m2[5],
-                           indev = m2[7],
-                           outdev = m2[8],
-                           srcnet = m2[9],
-                           dstnet = m2[10],
-                           options = m2[11] || '-',
-                           comment = '-';
-
-                       options = options.trim().replace(/(?:^| )\/\* (.+) \*\//,
-                               function(m1, m2) {
-                                       comment = m2.replace(/^!fw3(: |$)/, '').trim() || '-';
-                                       return '';
-                               }) || '-';
-
-                       current_rules.push([
-                               '%.2m'.format(pkts).nobr(),
-                               '%.2mB'.format(bytes).nobr(),
-                               target ? '<span class="target">%s</span>'.format(target) : '-',
-                               proto,
-                               (indev !== '*') ? '<span class="ifacebadge">%s</span>'.format(indev) : '*',
-                               (outdev !== '*') ? '<span class="ifacebadge">%s</span>'.format(outdev) : '*',
-                               srcnet,
-                               dstnet,
-                               options,
-                               comment
-                       ]);
-
-                       if (target) {
-                               chain_refs[target] = chain_refs[target] || [];
-                               chain_refs[target].push([ current_chain, num ]);
-                       }
-               }
-       }
-
-       update_chain_section(current_chain, current_rules);
-
-       document.querySelectorAll('[data-table="%s"] [data-chain]'.format(table))
-               .forEach(function(cdiv) {
-                       if (!seen_chains[cdiv.getAttribute('data-chain')]) {
-                               cdiv.parentNode.removeChild(cdiv);
-                               return;
-                       }
-
-                       cdiv.querySelectorAll('.target').forEach(function(tspan) {
-                               if (seen_chains[tspan.textContent]) {
-                                       tspan.classList.add('jump');
-                                       tspan.addEventListener('click', jump_target);
-                               }
-                       });
-
-                       cdiv.querySelectorAll('.references').forEach(function(rspan) {
-                               var refs = chain_refs[cdiv.getAttribute('data-chain')];
-                               if (refs && refs.length) {
-                                       rspan.classList.add('cbi-tooltip-container');
-                                       rspan.appendChild(E('small', { 'class': 'cbi-tooltip ifacebadge', 'style': 'top:1em; left:auto' }, [ E('ul') ]));
-
-                                       refs.forEach(function(ref) {
-                                               var chain = ref[0].parentNode.getAttribute('data-chain'),
-                                                   num = ref[1];
-
-                                               rspan.lastElementChild.lastElementChild.appendChild(E('li', {}, [
-                                                       _('Chain'), ' ',
-                                                       E('span', {
-                                                               'class': 'jump',
-                                                               'data-num': num,
-                                                               'onclick': 'jump_target(event)'
-                                                       }, chain),
-                                                       ', %s #%d'.format(_('Rule'), num)
-                                               ]));
-                                       });
-                               }
-                       });
-               });
-}
-
-table_names.forEach(function(table) {
-       L.poll(5, L.url('admin/status/iptables_dump', current_mode, table.toLowerCase()), null,
-               function (xhr) {
-                       parse_output(table, xhr.responseText);
-               });
-});
diff --git a/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/wifirate.svg b/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/wifirate.svg
deleted file mode 100644 (file)
index e75ea61..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-
-<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
-       <polyline id="rate" points="" style="fill:green;fill-opacity:0.4;stroke:green;stroke-width:1" />
-
-       <line x1="0" y1="25%" x2="100%" y2="25%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_75" x="20" y="24%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-
-       <line x1="0" y1="50%" x2="100%" y2="50%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_50" x="20" y="49%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-
-       <line x1="0" y1="75%" x2="100%" y2="75%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_25" x="20" y="74%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-</svg>
diff --git a/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/wireless.svg b/package/luci/modules/luci-mod-status/htdocs/luci-static/resources/wireless.svg
deleted file mode 100644 (file)
index 00cc2a1..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-
-<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
-       <polyline id="rssi" points="" style="fill:blue;fill-opacity:0.4;stroke:blue;stroke-width:1" />
-       <polyline id="noise" points="" style="fill:red;fill-opacity:0.4;stroke:red;stroke-width:1" />
-
-       <line x1="0" y1="25%" x2="100%" y2="25%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_75" x="20" y="24%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-
-       <line x1="0" y1="50%" x2="100%" y2="50%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_50" x="20" y="49%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-
-       <line x1="0" y1="75%" x2="100%" y2="75%" style="stroke:black;stroke-width:0.1" />
-       <text id="label_25" x="20" y="74%" style="fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000"> </text>
-</svg>
diff --git a/package/luci/modules/luci-mod-status/luasrc/controller/admin/status.lua b/package/luci/modules/luci-mod-status/luasrc/controller/admin/status.lua
deleted file mode 100644 (file)
index 0d955c9..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.admin.status", package.seeall)
-
-function index()
-       entry({"admin", "status", "overview"}, template("admin_status/index"), _("Overview"), 1)
-
-       entry({"admin", "status", "iptables"}, template("admin_status/iptables"), _("Firewall"), 2).leaf = true
-       entry({"admin", "status", "iptables_dump"}, call("dump_iptables")).leaf = true
-       entry({"admin", "status", "iptables_action"}, post("action_iptables")).leaf = true
-
-       entry({"admin", "status", "routes"}, template("admin_status/routes"), _("Routes"), 3)
-       entry({"admin", "status", "syslog"}, call("action_syslog"), _("System Log"), 4)
-       entry({"admin", "status", "dmesg"}, call("action_dmesg"), _("Kernel Log"), 5)
-       entry({"admin", "status", "processes"}, form("admin_status/processes"), _("Processes"), 6)
-
-       entry({"admin", "status", "realtime"}, alias("admin", "status", "realtime", "load"), _("Realtime Graphs"), 7)
-
-       entry({"admin", "status", "realtime", "load"}, template("admin_status/load"), _("Load"), 1).leaf = true
-       entry({"admin", "status", "realtime", "load_status"}, call("action_load")).leaf = true
-
-       entry({"admin", "status", "realtime", "bandwidth"}, template("admin_status/bandwidth"), _("Traffic"), 2).leaf = true
-       entry({"admin", "status", "realtime", "bandwidth_status"}, call("action_bandwidth")).leaf = true
-
-       if nixio.fs.access("/etc/config/wireless") then
-               entry({"admin", "status", "realtime", "wireless"}, template("admin_status/wireless"), _("Wireless"), 3).leaf = true
-               entry({"admin", "status", "realtime", "wireless_status"}, call("action_wireless")).leaf = true
-       end
-
-       entry({"admin", "status", "realtime", "connections"}, template("admin_status/connections"), _("Connections"), 4).leaf = true
-       entry({"admin", "status", "realtime", "connections_status"}, call("action_connections")).leaf = true
-
-       entry({"admin", "status", "nameinfo"}, call("action_nameinfo")).leaf = true
-end
-
-function action_syslog()
-       local syslog = luci.sys.syslog()
-       luci.template.render("admin_status/syslog", {syslog=syslog})
-end
-
-function action_dmesg()
-       local dmesg = luci.sys.dmesg()
-       luci.template.render("admin_status/dmesg", {dmesg=dmesg})
-end
-
-function dump_iptables(family, table)
-       local prefix = (family == "6") and "ip6" or "ip"
-       local ok, lines = pcall(io.lines, "/proc/net/%s_tables_names" % prefix)
-       if ok and lines then
-               local s
-               for s in lines do
-                       if s == table then
-                               luci.http.prepare_content("text/plain")
-                               luci.sys.process.exec({
-                                       "/usr/sbin/%stables" % prefix, "-w", "-t", table,
-                                       "--line-numbers", "-nxvL"
-                               }, luci.http.write)
-                               return
-                       end
-               end
-       end
-
-       luci.http.status(404, "No such table")
-       luci.http.prepare_content("text/plain")
-end
-
-function action_iptables()
-       if luci.http.formvalue("zero") then
-               if luci.http.formvalue("family") == "6" then
-                       luci.util.exec("/usr/sbin/ip6tables -Z")
-               else
-                       luci.util.exec("/usr/sbin/iptables -Z")
-               end
-       elseif luci.http.formvalue("restart") then
-               luci.util.exec("/etc/init.d/firewall restart")
-       end
-
-       luci.http.redirect(luci.dispatcher.build_url("admin/status/iptables"))
-end
-
-function action_bandwidth(iface)
-       luci.http.prepare_content("application/json")
-
-       local bwc = io.popen("luci-bwc -i %s 2>/dev/null"
-               % luci.util.shellquote(iface))
-
-       if bwc then
-               luci.http.write("[")
-
-               while true do
-                       local ln = bwc:read("*l")
-                       if not ln then break end
-                       luci.http.write(ln)
-               end
-
-               luci.http.write("]")
-               bwc:close()
-       end
-end
-
-function action_wireless(iface)
-       luci.http.prepare_content("application/json")
-
-       local bwc = io.popen("luci-bwc -r %s 2>/dev/null"
-               % luci.util.shellquote(iface))
-
-       if bwc then
-               luci.http.write("[")
-
-               while true do
-                       local ln = bwc:read("*l")
-                       if not ln then break end
-                       luci.http.write(ln)
-               end
-
-               luci.http.write("]")
-               bwc:close()
-       end
-end
-
-function action_load()
-       luci.http.prepare_content("application/json")
-
-       local bwc = io.popen("luci-bwc -l 2>/dev/null")
-       if bwc then
-               luci.http.write("[")
-
-               while true do
-                       local ln = bwc:read("*l")
-                       if not ln then break end
-                       luci.http.write(ln)
-               end
-
-               luci.http.write("]")
-               bwc:close()
-       end
-end
-
-function action_connections()
-       local sys = require "luci.sys"
-
-       luci.http.prepare_content("application/json")
-
-       luci.http.write('{ "connections": ')
-       luci.http.write_json(sys.net.conntrack())
-
-       local bwc = io.popen("luci-bwc -c 2>/dev/null")
-       if bwc then
-               luci.http.write(', "statistics": [')
-
-               while true do
-                       local ln = bwc:read("*l")
-                       if not ln then break end
-                       luci.http.write(ln)
-               end
-
-               luci.http.write("]")
-               bwc:close()
-       end
-
-       luci.http.write(" }")
-end
-
-function action_nameinfo(...)
-       local util = require "luci.util"
-
-       luci.http.prepare_content("application/json")
-       luci.http.write_json(util.ubus("network.rrdns", "lookup", {
-               addrs = { ... },
-               timeout = 5000,
-               limit = 1000
-       }) or { })
-end
diff --git a/package/luci/modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua b/package/luci/modules/luci-mod-status/luasrc/model/cbi/admin_status/processes.lua
deleted file mode 100644 (file)
index 0a6e48f..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-f = SimpleForm("processes", translate("Processes"), translate("This list gives an overview over currently running system processes and their status."))
-f.reset = false
-f.submit = false
-
-t = f:section(Table, luci.sys.process.list())
-t:option(DummyValue, "PID", translate("PID"))
-t:option(DummyValue, "USER", translate("Owner"))
-t:option(DummyValue, "COMMAND", translate("Command"))
-t:option(DummyValue, "%CPU", translate("CPU usage (%)"))
-t:option(DummyValue, "%MEM", translate("Memory usage (%)"))
-
-hup = t:option(Button, "_hup", translate("Hang Up"))
-hup.inputstyle = "reload"
-function hup.write(self, section)
-       null, self.tag_error[section] = luci.sys.process.signal(section, 1)
-end
-
-term = t:option(Button, "_term", translate("Terminate"))
-term.inputstyle = "remove"
-function term.write(self, section)
-       null, self.tag_error[section] = luci.sys.process.signal(section, 15)
-end
-
-kill = t:option(Button, "_kill", translate("Kill"))
-kill.inputstyle = "reset"
-function kill.write(self, section)
-       null, self.tag_error[section] = luci.sys.process.signal(section, 9)
-end
-
-return f
\ No newline at end of file
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/bandwidth.htm
deleted file mode 100644 (file)
index 5cc661a..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-<%#
- Copyright 2010-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%-
-       local ntm = require "luci.model.network".init()
-
-       local dev
-       local devices = { }
-       for _, dev in luci.util.vspairs(luci.sys.net.devices()) do
-               if dev ~= "lo" and not ntm:ignore_interface(dev) then
-                       devices[#devices+1] = dev
-               end
-       end
-
-       local curdev = luci.http.formvalue("dev") or devices[1]
--%>
-
-<%+header%>
-
-<script type="text/javascript">//<![CDATA[
-       var bwxhr = new XHR();
-
-       var G;
-       var TIME = 0;
-       var RXB  = 1;
-       var RXP  = 2;
-       var TXB  = 3;
-       var TXP  = 4;
-
-       var width  = 760;
-       var height = 300;
-       var step   = 5;
-
-       var data_wanted = Math.floor(width / step);
-       var data_fill   = 1;
-       var data_stamp  = 0;
-
-       var data_rx = [ ];
-       var data_tx = [ ];
-
-       var line_rx;
-       var line_tx;
-
-       var label_25;
-       var label_50;
-       var label_75;
-
-       var label_rx_cur;
-       var label_rx_avg;
-       var label_rx_peak;
-
-       var label_tx_cur;
-       var label_tx_avg;
-       var label_tx_peak;
-
-       var label_scale;
-
-
-       Math.log2 = Math.log2 || function(x) { return Math.log(x) * Math.LOG2E; };
-
-       function bandwidth_label(bytes, br)
-       {
-               var uby = '<%:kB/s%>';
-               var kby = (bytes / 1024);
-
-               if (kby >= 1024)
-               {
-                       uby = '<%:MB/s%>';
-                       kby = kby / 1024;
-               }
-
-               var ubi = '<%:kbit/s%>';
-               var kbi = (bytes * 8 / 1024);
-
-               if (kbi >= 1024)
-               {
-                       ubi = '<%:Mbit/s%>';
-                       kbi = kbi / 1024;
-               }
-
-               return String.format("%f %s%s(%f %s)",
-                       kbi.toFixed(2), ubi,
-                       br ? '<br />' : ' ',
-                       kby.toFixed(2), uby
-               );
-       }
-
-       /* wait for SVG */
-       window.setTimeout(
-               function() {
-                       var svg = document.getElementById('bwsvg');
-
-                       try {
-                               G = svg.getSVGDocument
-                                       ? svg.getSVGDocument() : svg.contentDocument;
-                       }
-                       catch(e) {
-                               G = document.embeds['bwsvg'].getSVGDocument();
-                       }
-
-                       if (!G)
-                       {
-                               window.setTimeout(arguments.callee, 1000);
-                       }
-                       else
-                       {
-                               /* find sizes */
-                               width       = svg.offsetWidth  - 2;
-                               height      = svg.offsetHeight - 2;
-                               data_wanted = Math.ceil(width / step);
-
-                               /* prefill datasets */
-                               for (var i = 0; i < data_wanted; i++)
-                               {
-                                       data_rx[i] = 0;
-                                       data_tx[i] = 0;
-                               }
-
-                               /* find svg elements */
-                               line_rx = G.getElementById('rx');
-                               line_tx = G.getElementById('tx');
-
-                               label_25 = G.getElementById('label_25');
-                               label_50 = G.getElementById('label_50');
-                               label_75 = G.getElementById('label_75');
-
-                               label_rx_cur  = document.getElementById('rx_bw_cur');
-                               label_rx_avg  = document.getElementById('rx_bw_avg');
-                               label_rx_peak = document.getElementById('rx_bw_peak');
-
-                               label_tx_cur  = document.getElementById('tx_bw_cur');
-                               label_tx_avg  = document.getElementById('tx_bw_avg');
-                               label_tx_peak = document.getElementById('tx_bw_peak');
-
-                               label_scale   = document.getElementById('scale');
-
-
-                               /* plot horizontal time interval lines */
-                               for (var i = width % (step * 60); i < width; i += step * 60)
-                               {
-                                       var line = G.createElementNS('http://www.w3.org/2000/svg', 'line');
-                                               line.setAttribute('x1', i);
-                                               line.setAttribute('y1', 0);
-                                               line.setAttribute('x2', i);
-                                               line.setAttribute('y2', '100%');
-                                               line.setAttribute('style', 'stroke:black;stroke-width:0.1');
-
-                                       var text = G.createElementNS('http://www.w3.org/2000/svg', 'text');
-                                               text.setAttribute('x', i + 5);
-                                               text.setAttribute('y', 15);
-                                               text.setAttribute('style', 'fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000');
-                                               text.appendChild(G.createTextNode(Math.round((width - i) / step / 60) + 'm'));
-
-                                       label_25.parentNode.appendChild(line);
-                                       label_25.parentNode.appendChild(text);
-                               }
-
-                               label_scale.innerHTML = String.format('<%:(%d minute window, %d second interval)%>', data_wanted / 60, 3);
-
-                               /* render datasets, start update interval */
-                               XHR.poll(3, '<%=build_url("admin/status/realtime/bandwidth_status", curdev)%>', null,
-                                       function(x, data)
-                                       {
-                                               var data_max   = 0;
-                                               var data_scale = 0;
-
-                                               var data_rx_avg = 0;
-                                               var data_tx_avg = 0;
-
-                                               var data_rx_peak = 0;
-                                               var data_tx_peak = 0;
-
-                                               for (var i = data_stamp ? 0 : 1; i < data.length; i++)
-                                               {
-                                                       /* skip overlapping entries */
-                                                       if (data[i][TIME] <= data_stamp)
-                                                               continue;
-
-                                                       data_fill++;
-
-                                                       /* normalize difference against time interval */
-                                                       if (i > 0)
-                                                       {
-                                                               var time_delta = data[i][TIME] - data[i-1][TIME];
-                                                               if (time_delta)
-                                                               {
-                                                                       data_rx.push((data[i][RXB] - data[i-1][RXB]) / time_delta);
-                                                                       data_tx.push((data[i][TXB] - data[i-1][TXB]) / time_delta);
-                                                               }
-                                                       }
-                                               }
-
-                                               /* cut off outdated entries */
-                                               data_rx = data_rx.slice(data_rx.length - data_wanted, data_rx.length);
-                                               data_tx = data_tx.slice(data_tx.length - data_wanted, data_tx.length);
-                                               data_fill = Math.min(data_fill, data_wanted);
-
-                                               /* find peak */
-                                               for (var i = 0; i < data_rx.length; i++)
-                                               {
-                                                       data_max = Math.max(data_max, data_rx[i]);
-                                                       data_max = Math.max(data_max, data_tx[i]);
-
-                                                       data_rx_peak = Math.max(data_rx_peak, data_rx[i]);
-                                                       data_tx_peak = Math.max(data_tx_peak, data_tx[i]);
-
-                                                       data_rx_avg += data_rx[i];
-                                                       data_tx_avg += data_tx[i];
-                                               }
-
-                                               data_rx_avg = (data_rx_avg / data_fill);
-                                               data_tx_avg = (data_tx_avg / data_fill);
-
-                                               var size = Math.floor(Math.log2(data_max)),
-                                                   div = Math.pow(2, size - (size % 10)),
-                                                   mult = data_max / div,
-                                                   mult = (mult < 5) ? 2 : ((mult < 50) ? 10 : ((mult < 500) ? 100 : 1000));
-
-                                               data_max = data_max + (mult * div) - (data_max % (mult * div));
-
-                                               /* remember current timestamp, calculate horizontal scale */
-                                               data_stamp = data[data.length-1][TIME];
-                                               data_scale = height / data_max;
-
-                                               /* plot data */
-                                               var pt_rx = '0,' + height;
-                                               var pt_tx = '0,' + height;
-
-                                               var y_rx = 0;
-                                               var y_tx = 0;
-
-                                               for (var i = 0; i < data_rx.length; i++)
-                                               {
-                                                       var x = i * step;
-
-                                                       y_rx = height - Math.floor(data_rx[i] * data_scale);
-                                                       y_tx = height - Math.floor(data_tx[i] * data_scale);
-
-                                                       pt_rx += ' ' + x + ',' + y_rx;
-                                                       pt_tx += ' ' + x + ',' + y_tx;
-                                               }
-
-                                               pt_rx += ' ' + width + ',' + y_rx + ' ' + width + ',' + height;
-                                               pt_tx += ' ' + width + ',' + y_tx + ' ' + width + ',' + height;
-
-
-                                               line_rx.setAttribute('points', pt_rx);
-                                               line_tx.setAttribute('points', pt_tx);
-
-                                               label_25.firstChild.data = bandwidth_label(0.25 * data_max);
-                                               label_50.firstChild.data = bandwidth_label(0.50 * data_max);
-                                               label_75.firstChild.data = bandwidth_label(0.75 * data_max);
-
-                                               label_rx_cur.innerHTML = bandwidth_label(data_rx[data_rx.length-1], true);
-                                               label_tx_cur.innerHTML = bandwidth_label(data_tx[data_tx.length-1], true);
-
-                                               label_rx_avg.innerHTML = bandwidth_label(data_rx_avg, true);
-                                               label_tx_avg.innerHTML = bandwidth_label(data_tx_avg, true);
-
-                                               label_rx_peak.innerHTML = bandwidth_label(data_rx_peak, true);
-                                               label_tx_peak.innerHTML = bandwidth_label(data_tx_peak, true);
-                                       }
-                               );
-
-                               XHR.run();
-                       }
-               }, 1000
-       );
-//]]></script>
-
-<h2 name="content"><%:Realtime Traffic%></h2>
-
-<ul class="cbi-tabmenu">
-       <% for _, dev in ipairs(devices) do %>
-               <li class="cbi-tab<%= dev == curdev and "" or "-disabled" %>"><a href="?dev=<%=pcdata(dev)%>"><%=pcdata(dev)%></a></li>
-       <% end %>
-</ul>
-
-<embed id="bwsvg" style="width:100%; height:300px; border:1px solid #000000; background-color:#FFFFFF" src="<%=resource%>/bandwidth.svg" />
-<div style="text-align:right"><small id="scale">-</small></div>
-<br />
-
-<div class="table" style="width:100%; table-layout:fixed" cellspacing="5">
-       <div class="tr">
-               <div class="td" style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid blue"><%:Inbound:%></strong></div>
-               <div class="td" id="rx_bw_cur">0 <%:kbit/s%><br />(0 <%:kB/s%>)</div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></div>
-               <div class="td" id="rx_bw_avg">0 <%:kbit/s%><br />(0 <%:kB/s%>)</div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Peak:%></strong></div>
-               <div class="td" id="rx_bw_peak">0 <%:kbit/s%><br />(0 <%:kB/s%>)</div>
-       </div>
-       <div class="tr">
-               <div class="td" style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid green"><%:Outbound:%></strong></div>
-               <div class="td" id="tx_bw_cur">0 <%:kbit/s%><br />(0 <%:kB/s%>)</div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></div>
-               <div class="td" id="tx_bw_avg">0 <%:kbit/s%><br />(0 <%:kB/s%>)</div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Peak:%></strong></div>
-               <div class="td" id="tx_bw_peak">0 <%:kbit/s%><br />(0 <%:kB/s%>)</div>
-       </div>
-</div>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/connections.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/connections.htm
deleted file mode 100644 (file)
index d9099aa..0000000
+++ /dev/null
@@ -1,374 +0,0 @@
-<%#
- Copyright 2010-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<script type="text/javascript">//<![CDATA[
-       var bwxhr = new XHR();
-
-       var G;
-       var TIME  = 0;
-       var UDP   = 1;
-       var TCP   = 2;
-       var OTHER = 3;
-
-       var width  = 760;
-       var height = 300;
-       var step   = 5;
-
-       var data_wanted = Math.floor(width / step);
-       var data_fill   = 1;
-       var data_stamp  = 0;
-
-       var data_udp = [ ];
-       var data_tcp = [ ];
-       var data_otr = [ ];
-
-       var line_udp;
-       var line_tcp;
-
-       var label_25;
-       var label_50;
-       var label_75;
-
-       var label_udp_cur;
-       var label_udp_avg;
-       var label_udp_peak;
-
-       var label_tcp_cur;
-       var label_tcp_avg;
-       var label_tcp_peak;
-
-       var label_otr_cur;
-       var label_otr_avg;
-       var label_otr_peak;
-
-       var label_scale;
-
-       var conn_table;
-
-       var dns_cache = { };
-
-
-       /* wait for SVG */
-       window.setTimeout(
-               function() {
-                       var svg = document.getElementById('bwsvg');
-
-                       try {
-                               G = svg.getSVGDocument
-                                       ? svg.getSVGDocument() : svg.contentDocument;
-                       }
-                       catch(e) {
-                               G = document.embeds['bwsvg'].getSVGDocument();
-                       }
-
-                       if (!G)
-                       {
-                               window.setTimeout(arguments.callee, 1000);
-                       }
-                       else
-                       {
-                               /* find sizes */
-                               width       = svg.offsetWidth  - 2;
-                               height      = svg.offsetHeight - 2;
-                               data_wanted = Math.ceil(width / step);
-
-                               /* prefill datasets */
-                               for (var i = 0; i < data_wanted; i++)
-                               {
-                                       data_udp[i] = 0;
-                                       data_tcp[i] = 0;
-                                       data_otr[i] = 0;
-                               }
-
-                               /* find svg elements */
-                               line_udp = G.getElementById('udp');
-                               line_tcp = G.getElementById('tcp');
-                               line_otr = G.getElementById('other');
-
-                               label_25 = G.getElementById('label_25');
-                               label_50 = G.getElementById('label_50');
-                               label_75 = G.getElementById('label_75');
-
-                               label_udp_cur  = document.getElementById('lb_udp_cur');
-                               label_udp_avg  = document.getElementById('lb_udp_avg');
-                               label_udp_peak = document.getElementById('lb_udp_peak');
-
-                               label_tcp_cur  = document.getElementById('lb_tcp_cur');
-                               label_tcp_avg  = document.getElementById('lb_tcp_avg');
-                               label_tcp_peak = document.getElementById('lb_tcp_peak');
-
-                               label_otr_cur  = document.getElementById('lb_otr_cur');
-                               label_otr_avg  = document.getElementById('lb_otr_avg');
-                               label_otr_peak = document.getElementById('lb_otr_peak');
-
-                               label_scale    = document.getElementById('scale');
-
-                               conn_table     = document.getElementById('connections');
-
-
-                               /* plot horizontal time interval lines */
-                               for (var i = width % (step * 60); i < width; i += step * 60)
-                               {
-                                       var line = G.createElementNS('http://www.w3.org/2000/svg', 'line');
-                                               line.setAttribute('x1', i);
-                                               line.setAttribute('y1', 0);
-                                               line.setAttribute('x2', i);
-                                               line.setAttribute('y2', '100%');
-                                               line.setAttribute('style', 'stroke:black;stroke-width:0.1');
-
-                                       var text = G.createElementNS('http://www.w3.org/2000/svg', 'text');
-                                               text.setAttribute('x', i + 5);
-                                               text.setAttribute('y', 15);
-                                               text.setAttribute('style', 'fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000');
-                                               text.appendChild(G.createTextNode(Math.round((width - i) / step / 60) + 'm'));
-
-                                       label_25.parentNode.appendChild(line);
-                                       label_25.parentNode.appendChild(text);
-                               }
-
-                               label_scale.innerHTML = String.format('<%:(%d minute window, %d second interval)%>', data_wanted / 60, 3);
-
-                               /* render datasets, start update interval */
-                               XHR.poll(3, '<%=build_url("admin/status/realtime/connections_status")%>', null,
-                                       function(x, json)
-                                       {
-                                               var rows = [];
-                                               var conn = json.connections;
-
-                                               var lookup_queue = [ ];
-
-                                               conn.sort(function(a, b) {
-                                                       return b.bytes - a.bytes;
-                                               });
-
-                                               for (var i = 0; i < conn.length; i++)
-                                               {
-                                                       var c  = conn[i];
-
-                                                       if ((c.src == '127.0.0.1' && c.dst == '127.0.0.1') ||
-                                                           (c.src == '::1'       && c.dst == '::1'))
-                                                               continue;
-
-                                                       if (!dns_cache[c.src])
-                                                               lookup_queue.push(c.src);
-
-                                                       if (!dns_cache[c.dst])
-                                                               lookup_queue.push(c.dst);
-
-                                                       var src = dns_cache[c.src] || (c.layer3 == 'ipv6' ? '[' + c.src + ']' : c.src);
-                                                       var dst = dns_cache[c.dst] || (c.layer3 == 'ipv6' ? '[' + c.dst + ']' : c.dst);
-
-                                                       rows.push([
-                                                               c.layer3.toUpperCase(),
-                                                               c.layer4.toUpperCase(),
-                                                               src + ':' + c.sport,
-                                                               dst + ':' + c.dport,
-                                                               '%1024.2mB (%d <%:Pkts.%>)'.format(c.bytes, c.packets)
-                                                       ]);
-                                               }
-
-                                               cbi_update_table(conn_table, rows, '<em><%:No information available%></em>');
-
-                                               if (lookup_queue.length > 0)
-                                                       XHR.get('<%=build_url("admin/status/nameinfo")%>/' + lookup_queue.slice(0, 100).join('/'), null,
-                                                               function(x, json)
-                                                               {
-                                                                       for (var addr in json)
-                                                                               dns_cache[addr] = json[addr];
-                                                               }
-                                                       );
-
-
-                                               var data = json.statistics;
-
-                                               var data_max   = 0;
-                                               var data_scale = 0;
-
-                                               var data_udp_avg = 0;
-                                               var data_tcp_avg = 0;
-                                               var data_otr_avg = 0;
-
-                                               var data_udp_peak = 0;
-                                               var data_tcp_peak = 0;
-                                               var data_otr_peak = 0;
-
-                                               for (var i = data_stamp ? 0 : 1; i < data.length; i++)
-                                               {
-                                                       /* skip overlapping entries */
-                                                       if (data[i][TIME] <= data_stamp)
-                                                               continue;
-
-                                                       data_fill++;
-
-                                                       data_udp.push(data[i][UDP]);
-                                                       data_tcp.push(data[i][TCP]);
-                                                       data_otr.push(data[i][OTHER]);
-                                               }
-
-                                               /* cut off outdated entries */
-                                               data_fill = Math.min(data_fill, data_wanted);
-                                               data_udp = data_udp.slice(data_udp.length - data_wanted, data_udp.length);
-                                               data_tcp = data_tcp.slice(data_tcp.length - data_wanted, data_tcp.length);
-                                               data_otr = data_otr.slice(data_otr.length - data_wanted, data_otr.length);
-
-                                               /* find peak */
-                                               for (var i = 0; i < data_udp.length; i++)
-                                               {
-                                                       data_max = Math.max(data_max, data_udp[i]);
-                                                       data_max = Math.max(data_max, data_tcp[i]);
-                                                       data_max = Math.max(data_max, data_otr[i]);
-
-                                                       data_udp_peak = Math.max(data_udp_peak, data_udp[i]);
-                                                       data_tcp_peak = Math.max(data_tcp_peak, data_tcp[i]);
-                                                       data_otr_peak = Math.max(data_otr_peak, data_otr[i]);
-
-                                                       data_udp_avg += data_udp[i];
-                                                       data_tcp_avg += data_tcp[i];
-                                                       data_otr_avg += data_otr[i];
-                                               }
-
-                                               data_udp_avg = data_udp_avg / data_fill;
-                                               data_tcp_avg = data_tcp_avg / data_fill;
-                                               data_otr_avg = data_otr_avg / data_fill;
-
-                                               /* remember current timestamp, calculate horizontal scale */
-                                               data_stamp = data[data.length-1][TIME];
-                                               data_scale = height / (data_max * 1.1);
-
-
-                                               /* plot data */
-                                               var pt_udp = '0,' + height;
-                                               var pt_tcp = '0,' + height;
-                                               var pt_otr = '0,' + height;
-
-                                               var y_udp = 0;
-                                               var y_tcp = 0;
-                                               var y_otr = 0;
-
-                                               for (var i = 0; i < data_udp.length; i++)
-                                               {
-                                                       var x = i * step;
-
-                                                       y_udp = height - Math.floor(data_udp[i] * data_scale);
-                                                       y_tcp = height - Math.floor(data_tcp[i] * data_scale);
-                                                       y_otr = height - Math.floor(data_otr[i] * data_scale);
-
-                                                       pt_udp += ' ' + x + ',' + y_udp;
-                                                       pt_tcp += ' ' + x + ',' + y_tcp;
-                                                       pt_otr += ' ' + x + ',' + y_otr;
-                                               }
-
-                                               pt_udp += ' ' + width + ',' + y_udp + ' ' + width + ',' + height;
-                                               pt_tcp += ' ' + width + ',' + y_tcp + ' ' + width + ',' + height;
-                                               pt_otr += ' ' + width + ',' + y_otr + ' ' + width + ',' + height;
-
-
-                                               var order = [
-                                                       [ line_udp, data_udp[data_udp.length-1] ],
-                                                       [ line_tcp, data_tcp[data_tcp.length-1] ],
-                                                       [ line_otr, data_otr[data_otr.length-1] ]
-                                               ];
-
-                                               order.sort(function(a, b) { return b[1] - a[1] });
-
-                                               for (var i = 0; i < order.length; i++)
-                                                       order[i][0].parentNode.appendChild(order[i][0]);
-
-
-                                               line_udp.setAttribute('points', pt_udp);
-                                               line_tcp.setAttribute('points', pt_tcp);
-                                               line_otr.setAttribute('points', pt_otr);
-
-                                               label_25.firstChild.data = Math.floor(1.1 * 0.25 * data_max);
-                                               label_50.firstChild.data = Math.floor(1.1 * 0.50 * data_max);
-                                               label_75.firstChild.data = Math.floor(1.1 * 0.75 * data_max);
-
-                                               label_udp_cur.innerHTML = Math.floor(data_udp[data_udp.length-1]);
-                                               label_tcp_cur.innerHTML = Math.floor(data_tcp[data_tcp.length-1]);
-                                               label_otr_cur.innerHTML = Math.floor(data_otr[data_otr.length-1]);
-
-                                               label_udp_avg.innerHTML = Math.floor(data_udp_avg);
-                                               label_tcp_avg.innerHTML = Math.floor(data_tcp_avg);
-                                               label_otr_avg.innerHTML = Math.floor(data_otr_avg);
-
-                                               label_udp_peak.innerHTML = Math.floor(data_udp_peak);
-                                               label_tcp_peak.innerHTML = Math.floor(data_tcp_peak);
-                                               label_otr_peak.innerHTML = Math.floor(data_otr_peak);
-                                       }
-                               );
-
-                               XHR.run();
-                       }
-               }, 1000
-       );
-//]]></script>
-
-<h2 name="content"><%:Realtime Connections%></h2>
-
-<div class="cbi-map-descr"><%:This page gives an overview over currently active network connections.%></div>
-
-<fieldset class="cbi-section" id="cbi-table-table">
-       <legend><%:Active Connections%></legend>
-
-       <embed id="bwsvg" style="width:100%; height:300px; border:1px solid #000000; background-color:#FFFFFF" src="<%=resource%>/connections.svg" />
-       <div style="text-align:right"><small id="scale">-</small></div>
-       <br />
-
-       <div class="table">
-               <div class="tr">
-                       <div class="td" style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid blue"><%:UDP:%></strong></div>
-                       <div class="td" id="lb_udp_cur">0</div>
-
-                       <div class="td" style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></div>
-                       <div class="td" id="lb_udp_avg">0</div>
-
-                       <div class="td" style="text-align:right; vertical-align:top"><strong><%:Peak:%></strong></div>
-                       <div class="td" id="lb_udp_peak">0</div>
-               </div>
-               <div class="tr">
-                       <div class="td" style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid green"><%:TCP:%></strong></div>
-                       <div class="td" id="lb_tcp_cur">0</div>
-
-                       <div class="td" style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></div>
-                       <div class="td" id="lb_tcp_avg">0</div>
-
-                       <div class="td" style="text-align:right; vertical-align:top"><strong><%:Peak:%></strong></div>
-                       <div class="td" id="lb_tcp_peak">0</div>
-               </div>
-               <div class="tr">
-                       <div class="td" style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid red"><%:Other:%></strong></div>
-                       <div class="td" id="lb_otr_cur">0</div>
-
-                       <div class="td" style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></div>
-                       <div class="td" id="lb_otr_avg">0</div>
-
-                       <div class="td" style="text-align:right; vertical-align:top"><strong><%:Peak:%></strong></div>
-                       <div class="td" id="lb_otr_peak">0</div>
-               </div>
-       </div>
-       <br />
-
-       <div class="cbi-section-node">
-               <div class="table" id="connections">
-                       <div class="tr table-titles">
-                               <div class="th col-2 hide-xs"><%:Network%></div>
-                               <div class="th col-2"><%:Protocol%></div>
-                               <div class="th col-7"><%:Source%></div>
-                               <div class="th col-7"><%:Destination%></div>
-                               <div class="th col-4"><%:Transfer%></div>
-                       </div>
-
-                       <div class="tr placeholder">
-                               <div class="td">
-                                       <em><%:Collecting data...%></em>
-                               </div>
-                       </div>
-               </div>
-       </div>
-</fieldset>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/dmesg.htm
deleted file mode 100644 (file)
index 1a8770e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-<h2 name="content"><%:Kernel Log%></h2>
-<div id="content_syslog">
-<textarea style="font-size: 12px;" readonly="readonly" wrap="off" rows="<%=dmesg:cmatch("\n")+2%>" id="syslog"><%=dmesg:pcdata()%></textarea>
-</div>
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index.htm
deleted file mode 100644 (file)
index 465226f..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%
-       local fs = require "nixio.fs"
-       local ipc = require "luci.ip"
-       local util = require "luci.util"
-       local stat = require "luci.tools.status"
-       local ver = require "luci.version"
-
-       if luci.http.formvalue("status") == "1" then
-
-               local sysinfo = luci.util.ubus("system", "info") or { }
-
-               local meminfo = sysinfo.memory or {
-                       total = 0,
-                       free = 0,
-                       buffered = 0,
-                       shared = 0
-               }
-
-               local swapinfo = sysinfo.swap or {
-                       total = 0,
-                       free = 0
-               }
-
-               local has_dsl = fs.access("/etc/init.d/dsl_control")
-
-               local ntm = require "luci.model.network".init()
-               local wan_nets = ntm:get_wan_networks()
-               local wan6_nets = ntm:get_wan6_networks()
-
-               local conn_count = tonumber(
-                       fs.readfile("/proc/sys/net/netfilter/nf_conntrack_count") or "") or 0
-
-               local conn_max = tonumber(luci.sys.exec(
-                       "sysctl -n -e net.nf_conntrack_max net.ipv4.netfilter.ip_conntrack_max"
-               ):match("%d+")) or 4096
-
-               local rv = {
-                       uptime     = sysinfo.uptime or 0,
-                       localtime  = os.date(),
-                       loadavg    = sysinfo.load or { 0, 0, 0 },
-                       memory     = meminfo,
-                       swap       = swapinfo,
-                       connmax    = conn_max,
-                       conncount  = conn_count,
-                       wifinets   = stat.wifi_networks()
-               }
-
-               if #wan_nets > 0 then
-                       local k, v
-
-                       rv.wan = { }
-
-                       for k, v in pairs(wan_nets) do
-                               local dev = v:get_interface()
-                               local link = dev and ipc.link(dev:name())
-
-                               local wan_info = {
-                                       ipaddr  = v:ipaddr(),
-                                       gwaddr  = v:gwaddr(),
-                                       netmask = v:netmask(),
-                                       dns     = v:dnsaddrs(),
-                                       expires = v:expires(),
-                                       uptime  = v:uptime(),
-                                       proto   = v:proto(),
-                                       i18n    = v:get_i18n(),
-                                       ifname  = v:ifname(),
-                                       link    = v:adminlink(),
-                                       mac     = dev and dev:mac(),
-                                       type    = dev and dev:type(),
-                                       name    = dev and dev:get_i18n(),
-                                       ether   = link and link.type == 1
-                               }
-
-                               rv.wan[#rv.wan+1] = wan_info
-                       end
-               end
-
-               if #wan6_nets > 0 then
-                       local k, v
-
-                       rv.wan6 = { }
-
-                       for k, v in pairs(wan6_nets) do
-                               local dev = v:get_interface()
-                               local link = dev and ipc.link(dev:name())
-                               local wan6_info = {
-                                       ip6addr   = v:ip6addr(),
-                                       gw6addr   = v:gw6addr(),
-                                       dns       = v:dns6addrs(),
-                                       ip6prefix = v:ip6prefix(),
-                                       uptime    = v:uptime(),
-                                       proto     = v:proto(),
-                                       i18n      = v:get_i18n(),
-                                       ifname    = v:ifname(),
-                                       link      = v:adminlink(),
-                                       mac       = dev and dev:mac(),
-                                       type      = dev and dev:type(),
-                                       name      = dev and dev:get_i18n(),
-                                       ether     = link and link.type == 1
-                               }
-
-                               rv.wan6[#rv.wan6+1] = wan6_info
-                       end
-               end
-
-               if has_dsl then
-                       local dsl_stat = luci.sys.exec("/etc/init.d/dsl_control lucistat")
-                       local dsl_func = loadstring(dsl_stat)
-                       if dsl_func then
-                               rv.dsl = dsl_func()
-                       end
-               end
-
-               luci.http.prepare_content("application/json")
-               luci.http.write_json(rv)
-
-               return
-       end
--%>
-
-<%+header%>
-
-<h2 name="content"><%:Status%></h2>
-
-<%-
-       local incdir = util.libpath() .. "/view/admin_status/index/"
-       if fs.access(incdir) then
-               local _, inc
-               local includes = {}
-               for inc in fs.dir(incdir) do
-                       if inc:match("%.htm$") then
-                               includes[#includes + 1] = inc:gsub("%.htm$", "")
-                       end
-               end
-               for _, inc in luci.util.vspairs(includes) do
-                       include("admin_status/index/" .. inc)
-               end
-       end
--%>
-
-<script type="text/javascript" src="<%=resource%>/view/status/index.js"></script>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm
deleted file mode 100644 (file)
index 994550e..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%
-       local boardinfo = luci.util.ubus("system", "board") or { }
-       local unameinfo = nixio.uname() or { }
-       local ver = require "luci.version"
-%>
-
-<div class="cbi-section">
-       <h3><%:System%></h3>
-
-       <div class="table" width="100%">
-               <div class="tr"><div class="td left" width="33%"><%:Hostname%></div><div class="td left"><%=luci.sys.hostname() or "?"%></div></div>
-               <div class="tr"><div class="td left" width="33%"><%:Model%></div><div class="td left"><%=pcdata(boardinfo.model or "?")%></div></div>
-               <div class="tr"><div class="td left" width="33%"><%:Architecture%></div><div class="td left"><%=pcdata(boardinfo.system or "?")%></div></div>
-               <div class="tr"><div class="td left" width="33%"><%:Firmware Version%></div><div class="td left">
-                       <%=pcdata(ver.distname)%> <%=pcdata(ver.distversion)%> /
-                       <%=pcdata(ver.luciname)%> (<%=pcdata(ver.luciversion)%>)
-               </div></div>
-               <div class="tr"><div class="td left" width="33%"><%:Kernel Version%></div><div class="td left"><%=unameinfo.release or "?"%></div></div>
-               <div class="tr"><div class="td left" width="33%"><%:Local Time%></div><div class="td left" id="localtime">-</div></div>
-               <div class="tr"><div class="td left" width="33%"><%:Uptime%></div><div class="td left" id="uptime">-</div></div>
-               <div class="tr"><div class="td left" width="33%"><%:Load Average%></div><div class="td left" id="loadavg">-</div></div>
-       </div>
-</div>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm
deleted file mode 100644 (file)
index 1377470..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%
-       local sysinfo = luci.util.ubus("system", "info") or { }
-       local has_swap = sysinfo.swap and sysinfo.swap.total > 0 or false
-%>
-
-<div class="cbi-section">
-       <h3><%:Memory%></h3>
-
-       <div class="table" width="100%">
-               <div class="tr"><div class="td left" width="33%"><%:Total Available%></div><div class="td left"><div id="memtotal" class="cbi-progressbar" title="-"><div></div></div></div></div>
-               <div class="tr"><div class="td left" width="33%"><%:Free%></div><div class="td left"><div id="memfree" class="cbi-progressbar" title="-"><div></div></div></div></div>
-               <div class="tr"><div class="td left" width="33%"><%:Buffered%></div><div class="td left"><div id="membuff" class="cbi-progressbar" title="-"><div></div></div></div></div>
-       </div>
-</div>
-
-<% if has_swap then %>
-<div class="cbi-section">
-       <h3><%:Swap%></h3>
-
-       <div class="table" width="100%">
-               <div class="tr"><div class="td left" width="33%"><%:Total Available%></div><div class="td left"><div id="swaptotal" class="cbi-progressbar" title="-"><div></div></div></div></div>
-               <div class="tr"><div class="td left" width="33%"><%:Free%></div><div class="td left"><div id="swapfree" class="cbi-progressbar" title="-"><div></div></div></div></div>
-       </div>
-</div>
-<% end %>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/30-network.htm
deleted file mode 100644 (file)
index 945a31b..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<div class="cbi-section">
-       <h3><%:Network%></h3>
-
-       <div id="upstream_status_table" class="network-status-table">
-               <p><em><%:Collecting data...%></em></p>
-       </div>
-
-       <div class="table" width="100%">
-               <div class="tr"><div class="td left" width="33%"><%:Active Connections%></div><div class="td left"><div id="conns" class="cbi-progressbar" title="-"><div></div></div></div></div>
-       </div>
-</div>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/40-dhcp-leases.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/40-dhcp-leases.htm
deleted file mode 100644 (file)
index aaf3661..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%
-       local fs = require "nixio.fs"
-       local has_dhcp = fs.access("/etc/config/dhcp")
-
-       if has_dhcp then
-               include("lease_status")
-       end
-%>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/50-dsl.htm
deleted file mode 100644 (file)
index f37bf14..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%
-       local fs = require "nixio.fs"
-       local has_dsl = fs.access("/etc/init.d/dsl_control")
-%>
-
-<% if has_dsl then %>
-<div class="cbi-section">
-       <h3><%:DSL%></h3>
-
-       <div id="dsl_status_table" class="network-status-table">
-               <p><em><%:Collecting data...%></em></p>
-       </div>
-</div>
-<% end %>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/index/60-wifi.htm
deleted file mode 100644 (file)
index 7338bc7..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%
-       local fs = require "nixio.fs"
-       local has_wifi = ((fs.stat("/etc/config/wireless", "size") or 0) > 0)
-%>
-
-<% if has_wifi then %>
-<div class="cbi-section">
-       <h3><%:Wireless%></h3>
-
-       <div id="wifi_status_table" class="network-status-table">
-               <p><em><%:Collecting data...%></em></p>
-       </div>
-</div>
-
-<div class="cbi-section">
-       <h3><%:Associated Stations%></h3>
-
-       <%+wifi_assoclist%>
-</div>
-<% end %>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/iptables.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/iptables.htm
deleted file mode 100644 (file)
index 89f229f..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<%#
- Copyright 2008-2009 Steven Barth <steven@midlink.org>
- Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%-
-       local fs = require "nixio.fs"
-       local has_ip6tables = fs.access("/usr/sbin/ip6tables")
-       local mode = 4
-
-       if has_ip6tables then
-               mode = luci.dispatcher.context.requestpath
-           mode = tonumber(mode[#mode] ~= "iptables" and mode[#mode]) or 4
-       end
--%>
-
-<%+header%>
-
-<style type="text/css">
-       span.jump, .cbi-tooltip-container {
-               border-bottom: 1px dotted blue;
-               cursor: pointer;
-       }
-
-       ul {
-               list-style: none;
-       }
-
-       .references {
-               position: relative;
-       }
-
-       .references .cbi-tooltip {
-               left: 0 !important;
-               top: 1.5em !important;
-       }
-
-       h4 > span {
-               font-size: 90%;
-       }
-</style>
-
-<h2 name="content"><%:Firewall Status%></h2>
-
-<% if has_ip6tables then %>
-<ul class="cbi-tabmenu">
-       <li data-mode="4" class="cbi-tab<%= mode ~= 4 and "-disabled" %>">
-               <a href="<%=url("admin/status/iptables/4")%>"><%:IPv4 Firewall%></a>
-       </li>
-       <li data-mode="6" class="cbi-tab<%= mode ~= 6 and "-disabled" %>">
-               <a href="<%=url("admin/status/iptables/6")%>"><%:IPv6 Firewall%></a>
-       </li>
-</ul>
-<% end %>
-
-<div style="position: relative">
-       <form method="post" action="<%=url("admin/status/iptables_action")%>" style="position: absolute; right: 0">
-               <input type="hidden" name="token" value="<%=token%>" />
-               <input type="hidden" name="family" value="<%=mode%>" />
-               <input type="button" class="cbi-button" data-hide-empty="false" value="<%:Hide empty chains%>" onclick="hide_empty(this)" />
-               <input type="submit" class="cbi-button" name="zero" value="<%:Reset Counters%>" />
-               <input type="submit" class="cbi-button" name="restart" value="<%:Restart Firewall%>" />
-       </form>
-</div>
-
-<div id="iptables">
-       <p><em class="spinning"><%:Collecting data...%></em></p>
-</div>
-
-<script type="text/javascript" src="<%=resource%>/view/status/iptables.js"></script>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/load.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/load.htm
deleted file mode 100644 (file)
index d31d340..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-<%#
- Copyright 2010-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<script type="text/javascript">//<![CDATA[
-       var bwxhr = new XHR();
-
-       var G;
-       var TIME = 0;
-       var L01   = 1;
-       var L05   = 2;
-       var L15  = 3;
-
-       var width  = 760;
-       var height = 300;
-       var step   = 5;
-
-       var data_wanted = Math.floor(width / step);
-       var data_fill   = 1;
-       var data_stamp  = 0;
-
-       var data_01  = [ ];
-       var data_05  = [ ];
-       var data_15 = [ ];
-
-       var line_01;
-       var line_05;
-       var line_15;
-
-       var label_25;
-       var label_050;
-       var label_75;
-
-       var label_01_cur;
-       var label_01_avg;
-       var label_01_peak;
-
-       var label_05_cur;
-       var label_05_avg;
-       var label_05_peak;
-
-       var label_15_cur;
-       var label_15_avg;
-       var label_15_peak;
-
-       var label_scale;
-
-
-       /* wait for SVG */
-       window.setTimeout(
-               function() {
-                       var svg = document.getElementById('bwsvg');
-
-                       try {
-                               G = svg.getSVGDocument
-                                       ? svg.getSVGDocument() : svg.contentDocument;
-                       }
-                       catch(e) {
-                               G = document.embeds['bwsvg'].getSVGDocument();
-                       }
-
-                       if (!G)
-                       {
-                               window.setTimeout(arguments.callee, 1000);
-                       }
-                       else
-                       {
-                               /* find sizes */
-                               width       = svg.offsetWidth  - 2;
-                               height      = svg.offsetHeight - 2;
-                               data_wanted = Math.ceil(width / step);
-
-                               /* prefill datasets */
-                               for (var i = 0; i < data_wanted; i++)
-                               {
-                                       data_01[i] = 0;
-                                       data_05[i] = 0;
-                                       data_15[i] = 0;
-                               }
-
-                               /* find svg elements */
-                               line_01 = G.getElementById('load01');
-                               line_05 = G.getElementById('load05');
-                               line_15 = G.getElementById('load15');
-
-                               label_25 = G.getElementById('label_25');
-                               label_50 = G.getElementById('label_50');
-                               label_75 = G.getElementById('label_75');
-
-                               label_01_cur  = document.getElementById('lb_load01_cur');
-                               label_01_avg  = document.getElementById('lb_load01_avg');
-                               label_01_peak = document.getElementById('lb_load01_peak');
-
-                               label_05_cur  = document.getElementById('lb_load05_cur');
-                               label_05_avg  = document.getElementById('lb_load05_avg');
-                               label_05_peak = document.getElementById('lb_load05_peak');
-
-                               label_15_cur  = document.getElementById('lb_load15_cur');
-                               label_15_avg  = document.getElementById('lb_load15_avg');
-                               label_15_peak = document.getElementById('lb_load15_peak');
-
-                               label_scale   = document.getElementById('scale');
-
-
-                               /* plot horizontal time interval lines */
-                               for (var i = width % (step * 60); i < width; i += step * 60)
-                               {
-                                       var line = G.createElementNS('http://www.w3.org/2000/svg', 'line');
-                                               line.setAttribute('x1', i);
-                                               line.setAttribute('y1', 0);
-                                               line.setAttribute('x2', i);
-                                               line.setAttribute('y2', '100%');
-                                               line.setAttribute('style', 'stroke:black;stroke-width:0.1');
-
-                                       var text = G.createElementNS('http://www.w3.org/2000/svg', 'text');
-                                               text.setAttribute('x', i + 5);
-                                               text.setAttribute('y', 15);
-                                               text.setAttribute('style', 'fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000');
-                                               text.appendChild(G.createTextNode(Math.round((width - i) / step / 60) + 'm'));
-
-                                       label_25.parentNode.appendChild(line);
-                                       label_25.parentNode.appendChild(text);
-                               }
-
-                               label_scale.innerHTML = String.format('<%:(%d minute window, %d second interval)%>', data_wanted / 60, 3);
-
-                               /* render datasets, start update interval */
-                               XHR.poll(3, '<%=build_url("admin/status/realtime/load_status")%>', null,
-                                       function(x, data)
-                                       {
-                                               var data_max   = 0;
-                                               var data_scale = 0;
-
-                                               var data_01_avg = 0;
-                                               var data_05_avg = 0;
-                                               var data_15_avg = 0;
-
-                                               var data_01_peak = 0;
-                                               var data_05_peak = 0;
-                                               var data_15_peak = 0;
-
-                                               for (var i = data_stamp ? 0 : 1; i < data.length; i++)
-                                               {
-                                                       /* skip overlapping entries */
-                                                       if (data[i][TIME] <= data_stamp)
-                                                               continue;
-
-                                                       data_fill++;
-
-                                                       data_01.push(data[i][L01]);
-                                                       data_05.push(data[i][L05]);
-                                                       data_15.push(data[i][L15]);
-                                               }
-
-                                               /* cut off outdated entries */
-                                               data_fill = Math.min(data_fill, data_wanted);
-                                               data_01 = data_01.slice(data_01.length - data_wanted, data_01.length);
-                                               data_05 = data_05.slice(data_05.length - data_wanted, data_05.length);
-                                               data_15 = data_15.slice(data_15.length - data_wanted, data_15.length);
-
-                                               /* find peak */
-                                               for (var i = 0; i < data_01.length; i++)
-                                               {
-                                                       data_max = Math.max(data_max, data_01[i]);
-                                                       data_max = Math.max(data_max, data_05[i]);
-                                                       data_max = Math.max(data_max, data_15[i]);
-
-                                                       data_01_peak = Math.max(data_01_peak, data_01[i]);
-                                                       data_05_peak = Math.max(data_05_peak, data_05[i]);
-                                                       data_15_peak = Math.max(data_15_peak, data_15[i]);
-
-                                                       data_01_avg += data_01[i];
-                                                       data_05_avg += data_05[i];
-                                                       data_15_avg += data_15[i];
-                                               }
-
-                                               data_01_avg = data_01_avg / data_fill;
-                                               data_05_avg = data_05_avg / data_fill;
-                                               data_15_avg = data_15_avg / data_fill;
-
-                                               /* remember current timestamp, calculate horizontal scale */
-                                               data_stamp = data[data.length-1][TIME];
-                                               data_scale = height / (data_max * 1.1);
-
-
-                                               /* plot data */
-                                               var pt_01 = '0,' + height;
-                                               var pt_05 = '0,' + height;
-                                               var pt_15 = '0,' + height;
-
-                                               var y_01 = 0;
-                                               var y_05 = 0;
-                                               var y_15 = 0;
-
-                                               for (var i = 0; i < data_01.length; i++)
-                                               {
-                                                       var x = i * step;
-
-                                                       y_01 = height - Math.floor(data_01[i] * data_scale);
-                                                       y_05 = height - Math.floor(data_05[i] * data_scale);
-                                                       y_15 = height - Math.floor(data_15[i] * data_scale);
-
-                                                       pt_01 += ' ' + x + ',' + y_01;
-                                                       pt_05 += ' ' + x + ',' + y_05;
-                                                       pt_15 += ' ' + x + ',' + y_15;
-                                               }
-
-                                               pt_01 += ' ' + width + ',' + y_01 + ' ' + width + ',' + height;
-                                               pt_05 += ' ' + width + ',' + y_05 + ' ' + width + ',' + height;
-                                               pt_15 += ' ' + width + ',' + y_15 + ' ' + width + ',' + height;
-
-
-                                               line_01.setAttribute('points', pt_01);
-                                               line_05.setAttribute('points', pt_05);
-                                               line_15.setAttribute('points', pt_15);
-
-                                               label_25.firstChild.data = (1.1 * 0.25 * data_max / 100).toFixed(2);
-                                               label_50.firstChild.data = (1.1 * 0.50 * data_max / 100).toFixed(2);
-                                               label_75.firstChild.data = (1.1 * 0.75 * data_max / 100).toFixed(2);
-
-                                               label_01_cur.innerHTML = (data_01[data_01.length-1] / 100).toFixed(2);
-                                               label_05_cur.innerHTML = (data_05[data_05.length-1] / 100).toFixed(2);
-                                               label_15_cur.innerHTML = (data_15[data_15.length-1] / 100).toFixed(2);
-
-                                               label_01_avg.innerHTML = (data_01_avg / 100).toFixed(2);
-                                               label_05_avg.innerHTML = (data_05_avg / 100).toFixed(2);
-                                               label_15_avg.innerHTML = (data_15_avg / 100).toFixed(2);
-
-                                               label_01_peak.innerHTML = (data_01_peak / 100).toFixed(2);
-                                               label_05_peak.innerHTML = (data_05_peak / 100).toFixed(2);
-                                               label_15_peak.innerHTML = (data_15_peak / 100).toFixed(2);
-                                       }
-                               );
-
-                               XHR.run();
-                       }
-               }, 1000
-       );
-//]]></script>
-
-<h2 name="content"><%:Realtime Load%></h2>
-
-<embed id="bwsvg" style="width:100%; height:300px; border:1px solid #000000; background-color:#FFFFFF" src="<%=resource%>/load.svg" />
-<div style="text-align:right"><small id="scale">-</small></div>
-<br />
-
-<div class="table" style="width:100%; table-layout:fixed" cellspacing="5">
-       <div class="tr">
-               <div class="td" style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid #ff0000; white-space:nowrap"><%:1 Minute Load:%></strong></div>
-               <div class="td" id="lb_load01_cur">0</div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></div>
-               <div class="td" id="lb_load01_avg">0</div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Peak:%></strong></div>
-               <div class="td" id="lb_load01_peak">0</div>
-       </div>
-       <div class="tr">
-               <div class="td" style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid #ff6600; white-space:nowrap"><%:5 Minute Load:%></strong></div>
-               <div class="td" id="lb_load05_cur">0</div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></div>
-               <div class="td" id="lb_load05_avg">0</div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Peak:%></strong></div>
-               <div class="td" id="lb_load05_peak">0</div>
-       </div>
-       <div class="tr">
-               <div class="td" style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid #ffaa00; white-space:nowrap"><%:15 Minute Load:%></strong></div>
-               <div class="td" id="lb_load15_cur">0</div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></div>
-               <div class="td" id="lb_load15_avg">0</div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Peak:%></strong></div>
-               <div class="td" id="lb_load15_peak">0</div>
-       </div>
-</div>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/routes.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/routes.htm
deleted file mode 100644 (file)
index 74779f6..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-<%#
- Copyright 2008-2009 Steven Barth <steven@midlink.org>
- Copyright 2008-2015 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%-
-       require "luci.tools.webadmin"
-       require "nixio.fs"
-
-       local ip = require "luci.ip"
-       local style = true
-       local _, v
-
-       local rtn = {
-               [255] = "local",
-               [254] = "main",
-               [253] = "default",
-               [0]   = "unspec"
-       }
-
-       if nixio.fs.access("/etc/iproute2/rt_tables") then
-               local ln
-               for ln in io.lines("/etc/iproute2/rt_tables") do
-                       local i, n = ln:match("^(%d+)%s+(%S+)")
-                       if i and n then
-                               rtn[tonumber(i)] = n
-                       end
-               end
-       end
--%>
-
-<%+header%>
-
-
-<div class="cbi-map" id="cbi-network">
-       <h2 name="content"><%:Routes%></h2>
-       <div class="cbi-map-descr"><%:The following rules are currently active on this system.%></div>
-
-       <div class="cbi-section">
-               <legend>ARP</legend>
-               <div class="cbi-section-node">
-                       <div class="table">
-                               <div class="tr table-titles">
-                                       <div class="th"><%_<abbr title="Internet Protocol Version 4">IPv4</abbr>-Address%></div>
-                                       <div class="th"><%_<abbr title="Media Access Control">MAC</abbr>-Address%></div>
-                                       <div class="th"><%:Interface%></div>
-                               </div>
-
-                               <%
-                                       for _, v in ipairs(ip.neighbors({ family = 4 })) do
-                                               if v.mac then
-                               %>
-                               <div class="tr cbi-rowstyle-<%=(style and 1 or 2)%>">
-                                       <div class="td"><%=v.dest%></div>
-                                       <div class="td"><%=v.mac%></div>
-                                       <div class="td"><%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%></div>
-                               </div>
-                               <%
-                                                       style = not style
-                                               end
-                                       end
-                               %>
-                       </div>
-               </div>
-       </div>
-
-       <div class="cbi-section">
-               <legend><%_Active <abbr title="Internet Protocol Version 4">IPv4</abbr>-Routes%></legend>
-               <div class="cbi-section-node">
-                       <div class="table">
-                               <div class="tr table-titles">
-                                       <div class="th"><%:Network%></div>
-                                       <div class="th"><%:Target%></div>
-                                       <div class="th"><%_<abbr title="Internet Protocol Version 4">IPv4</abbr>-Gateway%></div>
-                                       <div class="th"><%:Metric%></div>
-                                       <div class="th"><%:Table%></div>
-                               </div>
-                               <% for _, v in ipairs(ip.routes({ family = 4, type = 1 })) do %>
-                               <div class="tr cbi-rowstyle-<%=(style and 1 or 2)%>">
-                                       <div class="td"><%=luci.tools.webadmin.iface_get_network(v.dev) or v.dev%></div>
-                                       <div class="td"><%=v.dest%></div>
-                                       <div class="td"><%=v.gw or "-"%></div>
-                                       <div class="td"><%=v.metric or 0%></div>
-                                       <div class="td"><%=rtn[v.table] or v.table%></div>
-                               </div>
-                               <% style = not style end %>
-                       </div>
-               </div>
-       </div>
-
-       <%
-               if nixio.fs.access("/proc/net/ipv6_route") then
-                       style = true
-       %>
-       <div class="cbi-section">
-               <legend><%_Active <abbr title="Internet Protocol Version 6">IPv6</abbr>-Routes%></legend>
-               <div class="cbi-section-node">
-                       <div class="table">
-                               <div class="tr table-titles">
-                                       <div class="th"><%:Network%></div>
-                                       <div class="th"><%:Target%></div>
-                                       <div class="th"><%:Source%></div>
-                                       <div class="th"><%:Metric%></div>
-                                       <div class="th"><%:Table%></div>
-                               </div>
-                               <%
-                                       for _, v in ipairs(ip.routes({ family = 6, type = 1 })) do
-                                               if v.dest and not v.dest:is6linklocal() then
-                               %>
-                               <div class="tr cbi-rowstyle-<%=(style and 1 or 2)%>">
-                                       <div class="td"><%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%></div>
-                                       <div class="td"><%=v.dest%></div>
-                                       <div class="td"><%=v.from%></div>
-                                       <div class="td"><%=v.metric or 0%></div>
-                                       <div class="td"><%=rtn[v.table] or v.table%></div>
-                               </div>
-                               <%
-                                                       style = not style
-                                               end
-                                       end
-                               %>
-                       </div>
-               </div>
-       </div>
-
-       <div class="cbi-section">
-               <legend><%:IPv6 Neighbours%></legend>
-               <div class="cbi-section-node">
-                       <div class="table">
-                               <div class="tr table-titles">
-                                       <div class="th"><%:IPv6-Address%></div>
-                                       <div class="th"><%:MAC-Address%></div>
-                                       <div class="th"><%:Interface%></div>
-                               </div>
-                               <%
-                                       for _, v in ipairs(ip.neighbors({ family = 6 })) do
-                                               if v.dest and not v.dest:is6linklocal() and v.mac then
-                               %>
-                               <div class="tr cbi-rowstyle-<%=(style and 1 or 2)%>">
-                                       <div class="td"><%=v.dest%></div>
-                                       <div class="td"><%=v.mac%></div>
-                                       <div class="td"><%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%></div>
-                               </div>
-                               <%
-                                                       style = not style
-                                               end
-                                       end
-                               %>
-                       </div>
-               </div>
-       </div>
-       <% end %>
-</div>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/syslog.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/syslog.htm
deleted file mode 100644 (file)
index fb734a7..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-<h2 name="content"><%:System Log%></h2>
-<div id="content_syslog">
-<textarea style="font-size: 12px;" readonly="readonly" wrap="off" rows="<%=syslog:cmatch("\n")+2%>" id="syslog"><%=syslog:pcdata()%></textarea>
-</div>
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-status/luasrc/view/admin_status/wireless.htm b/package/luci/modules/luci-mod-status/luasrc/view/admin_status/wireless.htm
deleted file mode 100644 (file)
index 5ac2eb4..0000000
+++ /dev/null
@@ -1,370 +0,0 @@
-<%#
- Copyright 2011-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%-
-       local ntm = require "luci.model.network".init()
-
-       local dev
-       local devices = { }
-       for _, dev in luci.util.vspairs(luci.sys.net.devices()) do
-               if dev:match("^wlan%d") or dev:match("^ath%d") or dev:match("^wl%d") then
-                       devices[#devices+1] = dev
-               end
-       end
-
-       local curdev = luci.http.formvalue("dev") or devices[1]
--%>
-
-<%+header%>
-
-<script type="text/javascript">//<![CDATA[
-       var bwxhr = new XHR();
-
-       var G, G2;
-       var TIME  = 0;
-       var RATE  = 1;
-       var RSSI  = 2;
-       var NOISE = 3;
-
-       var width  = 760;
-       var height = 300;
-       var step   = 5;
-
-       var data_wanted = Math.floor(width / step);
-       var data_fill   = 1;
-       var data_stamp  = 0;
-
-       var data_rssi = [ ];
-       var data_noise = [ ];
-       var data_rate = [ ];
-
-       var line_rssi;
-       var line_noise;
-       var line_rate;
-
-       var label_25, label_25_2;
-       var label_50, label_50_2;
-       var label_75, label_75_2;
-
-       var label_rssi_cur;
-       var label_rssi_avg;
-       var label_rssi_peak;
-
-       var label_noise_cur;
-       var label_noise_avg;
-       var label_noise_peak;
-
-       var label_rate_cur;
-       var label_rate_avg;
-       var label_rate_peak;
-
-       var label_scale;
-       var label_scale_2;
-
-
-       /* wait for SVG */
-       window.setTimeout(
-               function() {
-                       var svg = document.getElementById('iwsvg');
-                       var svg2 = document.getElementById('iwsvg2');
-
-                       try {
-                               G = svg.getSVGDocument
-                                       ? svg.getSVGDocument() : svg.contentDocument;
-                               G2 = svg2.getSVGDocument
-                                       ? svg2.getSVGDocument() : svg2.contentDocument;
-                       }
-                       catch(e) {
-                               G = document.embeds['iwsvg'].getSVGDocument();
-                               G2 = document.embeds['iwsvg2'].getSVGDocument();
-                       }
-
-                       if (!G || !G2)
-                       {
-                               window.setTimeout(arguments.callee, 1000);
-                       }
-                       else
-                       {
-                               /* find sizes */
-                               width       = svg.offsetWidth  - 2;
-                               height      = svg.offsetHeight - 2;
-                               data_wanted = Math.ceil(width / step);
-
-                               /* prefill datasets */
-                               for (var i = 0; i < data_wanted; i++)
-                               {
-                                       data_rssi[i] = 0;
-                                       data_noise[i] = 0;
-                                       data_rate[i] = 0;
-                               }
-
-                               /* find svg elements */
-                               line_rssi = G.getElementById('rssi');
-                               line_noise = G.getElementById('noise');
-                               line_rate = G2.getElementById('rate');
-
-                               label_25 = G.getElementById('label_25');
-                               label_50 = G.getElementById('label_50');
-                               label_75 = G.getElementById('label_75');
-                               label_25_2 = G2.getElementById('label_25');
-                               label_50_2 = G2.getElementById('label_50');
-                               label_75_2 = G2.getElementById('label_75');
-
-                               label_rssi_cur  = document.getElementById('rssi_bw_cur');
-                               label_rssi_avg  = document.getElementById('rssi_bw_avg');
-                               label_rssi_peak = document.getElementById('rssi_bw_peak');
-
-                               label_noise_cur  = document.getElementById('noise_bw_cur');
-                               label_noise_avg  = document.getElementById('noise_bw_avg');
-                               label_noise_peak = document.getElementById('noise_bw_peak');
-
-                               label_rate_cur  = document.getElementById('rate_bw_cur');
-                               label_rate_avg  = document.getElementById('rate_bw_avg');
-                               label_rate_peak = document.getElementById('rate_bw_peak');
-
-                               label_scale   = document.getElementById('scale');
-                               label_scale_2 = document.getElementById('scale2');
-
-
-                               /* plot horizontal time interval lines */
-                               for (var i = width % (step * 60); i < width; i += step * 60)
-                               {
-                                       var line = G.createElementNS('http://www.w3.org/2000/svg', 'line');
-                                               line.setAttribute('x1', i);
-                                               line.setAttribute('y1', 0);
-                                               line.setAttribute('x2', i);
-                                               line.setAttribute('y2', '100%');
-                                               line.setAttribute('style', 'stroke:black;stroke-width:0.1');
-
-                                       var text = G.createElementNS('http://www.w3.org/2000/svg', 'text');
-                                               text.setAttribute('x', i + 5);
-                                               text.setAttribute('y', 15);
-                                               text.setAttribute('style', 'fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000');
-                                               text.appendChild(G.createTextNode(Math.round((width - i) / step / 60) + 'm'));
-
-                                       label_25.parentNode.appendChild(line);
-                                       label_25.parentNode.appendChild(text);
-
-
-                                       var line2 = G2.createElementNS('http://www.w3.org/2000/svg', 'line');
-                                               line2.setAttribute('x1', i);
-                                               line2.setAttribute('y1', 0);
-                                               line2.setAttribute('x2', i);
-                                               line2.setAttribute('y2', '100%');
-                                               line2.setAttribute('style', 'stroke:black;stroke-width:0.1');
-
-                                       var text2 = G2.createElementNS('http://www.w3.org/2000/svg', 'text');
-                                               text2.setAttribute('x', i + 5);
-                                               text2.setAttribute('y', 15);
-                                               text2.setAttribute('style', 'fill:#eee; font-size:9pt; font-family:sans-serif; text-shadow:1px 1px 1px #000');
-                                               text2.appendChild(G.createTextNode(Math.round((width - i) / step / 60) + 'm'));
-
-                                       label_25_2.parentNode.appendChild(line2);
-                                       label_25_2.parentNode.appendChild(text2);
-                               }
-
-                               label_scale.innerHTML = String.format('<%:(%d minute window, %d second interval)%>', data_wanted / 60, 3);
-                               label_scale_2.innerHTML = String.format('<%:(%d minute window, %d second interval)%>', data_wanted / 60, 3);
-
-                               /* render datasets, start update interval */
-                               XHR.poll(3, '<%=build_url("admin/status/realtime/wireless_status", curdev)%>', null,
-                                       function(x, data)
-                                       {
-                                               var noise_floor = 255;
-                                               var rate_floor = 60000;
-
-                                               for (var i = 0; i < data.length; i++) {
-                                                       noise_floor = Math.min(noise_floor, data[i][NOISE]);
-                                                       rate_floor = Math.min(rate_floor, data[i][RATE]);
-                                               }
-
-                                               noise_floor -= 5;
-
-                                               var data_max   = 0;
-                                               var data_scale = 0;
-                                               var data_max_2   = 0;
-                                               var data_scale_2 = 0;
-
-                                               var data_rssi_avg = 0;
-                                               var data_noise_avg = 0;
-                                               var data_rate_avg = 0;
-
-                                               var data_rssi_peak = 0;
-                                               var data_noise_peak = 0;
-                                               var data_rate_peak = 0;
-
-                                               for (var i = data_stamp ? 0 : 1; i < data.length; i++)
-                                               {
-                                                       /* skip overlapping entries */
-                                                       if (data[i][TIME] <= data_stamp)
-                                                               continue;
-
-                                                       data_fill++;
-
-                                                       data_rssi.push(data[i][RSSI] - noise_floor);
-                                                       data_noise.push(data[i][NOISE] - noise_floor);
-                                                       data_rate.push(Math.floor(data[i][RATE] / 1000));
-                                               }
-
-                                               /* cut off outdated entries */
-                                               data_fill = Math.min(data_fill, data_wanted);
-                                               data_rssi = data_rssi.slice(data_rssi.length - data_wanted, data_rssi.length);
-                                               data_noise = data_noise.slice(data_noise.length - data_wanted, data_noise.length);
-                                               data_rate = data_rate.slice(data_rate.length - data_wanted, data_rate.length);
-
-                                               /* find peak */
-                                               for (var i = 0; i < data_rssi.length; i++)
-                                               {
-                                                       data_max = Math.max(data_max, data_rssi[i]);
-                                                       data_max_2 = Math.max(data_max_2, data_rate[i]);
-
-                                                       data_rssi_peak = Math.max(data_rssi_peak, data_rssi[i]);
-                                                       data_noise_peak = Math.max(data_noise_peak, data_noise[i]);
-                                                       data_rate_peak = Math.max(data_rate_peak, data_rate[i]);
-
-                                                       data_rssi_avg += data_rssi[i];
-                                                       data_noise_avg += data_noise[i];
-                                                       data_rate_avg += data_rate[i];
-                                               }
-
-                                               data_rssi_avg = data_rssi_avg / data_fill;
-                                               data_noise_avg = data_noise_avg / data_fill;
-                                               data_rate_avg = data_rate_avg / data_fill;
-
-                                               /* remember current timestamp, calculate horizontal scale */
-                                               data_stamp = data[data.length-1][TIME];
-                                               data_scale = (height / (data_max * 1.1)).toFixed(1);
-                                               data_scale_2 = (height / (data_max_2 * 1.1)).toFixed(1);
-
-                                               /* plot data */
-                                               var pt_rssi = '0,' + height;
-                                               var pt_noise = '0,' + height;
-                                               var pt_rate = '0,' + height;
-
-                                               var y_rssi = 0;
-                                               var y_noise = 0;
-                                               var y_rate = 0;
-
-                                               for (var i = 0; i < data_rssi.length; i++)
-                                               {
-                                                       var x = i * step;
-
-                                                       y_rssi = height - Math.floor(data_rssi[i] * data_scale);
-                                                       y_noise = height - Math.floor(data_noise[i] * data_scale);
-                                                       y_rate = height - Math.floor(data_rate[i] * data_scale_2);
-
-                                                       y_rssi -= Math.floor(y_rssi % (1/data_scale));
-                                                       y_noise -= Math.floor(y_noise % (1/data_scale));
-
-                                                       pt_rssi += ' ' + x + ',' + y_rssi;
-                                                       pt_noise += ' ' + x + ',' + y_noise;
-                                                       pt_rate += ' ' + x + ',' + y_rate;
-                                               }
-
-                                               pt_rssi += ' ' + width + ',' + y_rssi + ' ' + width + ',' + height;
-                                               pt_noise += ' ' + width + ',' + y_noise + ' ' + width + ',' + height;
-                                               pt_rate += ' ' + width + ',' + y_rate + ' ' + width + ',' + height;
-
-                                               line_rssi.setAttribute('points', pt_rssi);
-                                               line_noise.setAttribute('points', pt_noise);
-                                               line_rate.setAttribute('points', pt_rate);
-
-                                               function wireless_label(dbm, noise)
-                                               {
-                                                       if (noise)
-                                                               return String.format("%d <%:dBm%> (SNR %d <%:dB%>)", noise_floor + dbm - 255, dbm - noise);
-                                                       else
-                                                               return String.format("%d <%:dBm%>", noise_floor + dbm - 255);
-                                               }
-
-                                               function rate_label(mbit)
-                                               {
-                                                       return String.format("%d <%:Mbit/s%>", mbit);
-                                               }
-
-                                               label_25.firstChild.data = wireless_label(1.1 * 0.25 * data_max);
-                                               label_50.firstChild.data = wireless_label(1.1 * 0.50 * data_max);
-                                               label_75.firstChild.data = wireless_label(1.1 * 0.75 * data_max);
-
-                                               label_25_2.firstChild.data = rate_label(1.1 * 0.25 * data_max_2);
-                                               label_50_2.firstChild.data = rate_label(1.1 * 0.50 * data_max_2);
-                                               label_75_2.firstChild.data = rate_label(1.1 * 0.75 * data_max_2);
-
-                                               label_rssi_cur.innerHTML = wireless_label(data_rssi[data_rssi.length-1], data_noise[data_noise.length-1]).nobr();
-                                               label_noise_cur.innerHTML = wireless_label(data_noise[data_noise.length-1]).nobr();
-
-                                               label_rssi_avg.innerHTML = wireless_label(data_rssi_avg, data_noise_avg).nobr();
-                                               label_noise_avg.innerHTML = wireless_label(data_noise_avg).nobr();
-
-                                               label_rssi_peak.innerHTML = wireless_label(data_rssi_peak, data_noise_peak).nobr();
-                                               label_noise_peak.innerHTML = wireless_label(data_noise_peak).nobr();
-
-                                               label_rate_cur.innerHTML = rate_label(data_rate[data_rate.length-1]);
-                                               label_rate_avg.innerHTML = rate_label(data_rate_avg);
-                                               label_rate_peak.innerHTML = rate_label(data_rate_peak);
-                                       }
-                               );
-
-                               XHR.run();
-                       }
-               }, 1000
-       );
-//]]></script>
-
-<h2 name="content"><%:Realtime Wireless%></h2>
-
-<ul class="cbi-tabmenu">
-       <% for _, dev in ipairs(devices) do %>
-               <li class="cbi-tab<%= dev == curdev and "" or "-disabled" %>"><a href="?dev=<%=pcdata(dev)%>"><%=pcdata(dev)%></a></li>
-       <% end %>
-</ul>
-
-<embed id="iwsvg" style="width:100%; height:300px; border:1px solid #000000; background-color:#FFFFFF" src="<%=resource%>/wireless.svg" />
-<div style="text-align:right"><small id="scale">-</small></div>
-<br />
-
-<div class="table" style="width:100%; table-layout:fixed" cellspacing="5">
-       <div class="tr">
-               <div class="td" style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid blue"><%:Signal:%></strong></div>
-               <div class="td" id="rssi_bw_cur">0 <%:dBm%></div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></div>
-               <div class="td" id="rssi_bw_avg">0 <%:dBm%></div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Peak:%></strong></div>
-               <div class="td" id="rssi_bw_peak">0 <%:dBm%></div>
-       </div>
-       <div class="tr">
-               <div class="td" style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid red"><%:Noise:%></strong></div>
-               <div class="td" id="noise_bw_cur">0 <%:dBm%></div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></div>
-               <div class="td" id="noise_bw_avg">0 <%:dBm%></div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Peak:%></strong></div>
-               <div class="td" id="noise_bw_peak">0 <%:dBm%></div>
-       </div>
-</div>
-
-<br />
-
-<embed id="iwsvg2" style="width:100%; height:300px; border:1px solid #000000; background-color:#FFFFFF" src="<%=resource%>/wifirate.svg" />
-<div style="text-align:right"><small id="scale2">-</small></div>
-<br />
-
-<div class="table" style="width:100%; table-layout:fixed" cellspacing="5">
-       <div class="tr">
-               <div class="td" style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid green"><%:Phy Rate:%></strong></div>
-               <div class="td" id="rate_bw_cur">0 MBit/s</div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></div>
-               <div class="td" id="rate_bw_avg">0 MBit/s</div>
-
-               <div class="td" style="text-align:right; vertical-align:top"><strong><%:Peak:%></strong></div>
-               <div class="td" id="rate_bw_peak">0 MBit/s</div>
-       </div>
-</div>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-status/src/Makefile b/package/luci/modules/luci-mod-status/src/Makefile
deleted file mode 100644 (file)
index d6ed8c6..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-%.o: %.c
-       $(CC) $(CPPFLAGS) $(CFLAGS) $(FPIC) -c -o $@ $<
-
-clean:
-       rm -f luci-bwc *.o
-
-luci-bwc: luci-bwc.o
-       $(CC) $(LDFLAGS) -o $@ $^ -ldl
-
-compile: luci-bwc
-
-install: compile
-       mkdir -p $(DESTDIR)/usr/bin
-       cp luci-bwc $(DESTDIR)/usr/bin/luci-bwc
diff --git a/package/luci/modules/luci-mod-status/src/luci-bwc.c b/package/luci/modules/luci-mod-status/src/luci-bwc.c
deleted file mode 100644 (file)
index 8ddd917..0000000
+++ /dev/null
@@ -1,778 +0,0 @@
-/*
- * luci-bwc - Very simple bandwidth collector cache for LuCI realtime graphs
- *
- *   Copyright (C) 2010 Jo-Philipp Wich <jow@openwrt.org>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdint.h>
-#include <inttypes.h>
-#include <fcntl.h>
-#include <time.h>
-#include <errno.h>
-#include <unistd.h>
-#include <signal.h>
-
-#include <sys/stat.h>
-#include <sys/mman.h>
-#include <arpa/inet.h>
-
-#include <dlfcn.h>
-#include <iwinfo.h>
-
-#define STEP_COUNT     60
-#define STEP_TIME      1
-#define TIMEOUT                10
-
-#define PID_PATH       "/var/run/luci-bwc.pid"
-
-#define DB_PATH                "/var/lib/luci-bwc"
-#define DB_IF_FILE     DB_PATH "/if/%s"
-#define DB_RD_FILE     DB_PATH "/radio/%s"
-#define DB_CN_FILE     DB_PATH "/connections"
-#define DB_LD_FILE     DB_PATH "/load"
-
-#define IF_SCAN_PATTERN \
-       " %[^ :]:%u %u" \
-       " %*d %*d %*d %*d %*d %*d" \
-       " %u %u"
-
-#define LD_SCAN_PATTERN \
-       "%f %f %f"
-
-
-struct file_map {
-       int fd;
-       int size;
-       char *mmap;
-};
-
-struct traffic_entry {
-       uint32_t time;
-       uint32_t rxb;
-       uint32_t rxp;
-       uint32_t txb;
-       uint32_t txp;
-};
-
-struct conn_entry {
-       uint32_t time;
-       uint32_t udp;
-       uint32_t tcp;
-       uint32_t other;
-};
-
-struct load_entry {
-       uint32_t time;
-       uint16_t load1;
-       uint16_t load5;
-       uint16_t load15;
-};
-
-struct radio_entry {
-       uint32_t time;
-       uint16_t rate;
-       uint8_t  rssi;
-       uint8_t  noise;
-};
-
-static int readpid(void)
-{
-       int fd;
-       int pid = -1;
-       char buf[9] = { 0 };
-
-       if ((fd = open(PID_PATH, O_RDONLY)) > -1)
-       {
-               if (read(fd, buf, sizeof(buf)))
-               {
-                       buf[8] = 0;
-                       pid = atoi(buf);
-               }
-
-               close(fd);
-       }
-
-       return pid;
-}
-
-static int writepid(void)
-{
-       int fd;
-       int wlen;
-       char buf[9] = { 0 };
-
-       if ((fd = open(PID_PATH, O_WRONLY | O_CREAT | O_TRUNC, 0600)) > -1)
-       {
-               wlen = snprintf(buf, sizeof(buf), "%i", getpid());
-               write(fd, buf, wlen);
-               close(fd);
-
-               return 0;
-       }
-
-       return -1;
-}
-
-static int timeout = TIMEOUT;
-static int countdown = -1;
-
-static void reset_countdown(int sig)
-{
-       countdown = timeout;
-
-}
-
-
-static char *progname;
-static int prognamelen;
-
-static struct iwinfo_ops *backend = NULL;
-
-
-static int init_directory(char *path)
-{
-       char *p = path;
-
-       for (p = &path[1]; *p; p++)
-       {
-               if (*p == '/')
-               {
-                       *p = 0;
-
-                       if (mkdir(path, 0700) && (errno != EEXIST))
-                               return -1;
-
-                       *p = '/';
-               }
-       }
-
-       return 0;
-}
-
-static int init_file(char *path, int esize)
-{
-       int i, file;
-       char buf[sizeof(struct traffic_entry)] = { 0 };
-
-       if (init_directory(path))
-               return -1;
-
-       if ((file = open(path, O_WRONLY | O_CREAT, 0600)) >= 0)
-       {
-               for (i = 0; i < STEP_COUNT; i++)
-               {
-                       if (write(file, buf, esize) < 0)
-                               break;
-               }
-
-               close(file);
-
-               return 0;
-       }
-
-       return -1;
-}
-
-static inline uint32_t timeof(void *entry)
-{
-       return ntohl(((struct traffic_entry *)entry)->time);
-}
-
-static int update_file(const char *path, void *entry, int esize)
-{
-       int rv = -1;
-       int file;
-       char *map;
-
-       if ((file = open(path, O_RDWR)) >= 0)
-       {
-               map = mmap(NULL, esize * STEP_COUNT, PROT_READ | PROT_WRITE,
-                                  MAP_SHARED | MAP_LOCKED, file, 0);
-
-               if ((map != NULL) && (map != MAP_FAILED))
-               {
-                       if (timeof(entry) > timeof(map + esize * (STEP_COUNT-1)))
-                       {
-                               memmove(map, map + esize, esize * (STEP_COUNT-1));
-                               memcpy(map + esize * (STEP_COUNT-1), entry, esize);
-                       }
-
-                       munmap(map, esize * STEP_COUNT);
-
-                       rv = 0;
-               }
-
-               close(file);
-       }
-
-       return rv;
-}
-
-static int mmap_file(const char *path, int esize, struct file_map *m)
-{
-       m->fd   = -1;
-       m->size = -1;
-       m->mmap = NULL;
-
-       if ((m->fd = open(path, O_RDONLY)) >= 0)
-       {
-               m->size = STEP_COUNT * esize;
-               m->mmap = mmap(NULL, m->size, PROT_READ,
-                                          MAP_SHARED | MAP_LOCKED, m->fd, 0);
-
-               if ((m->mmap != NULL) && (m->mmap != MAP_FAILED))
-                       return 0;
-       }
-
-       return -1;
-}
-
-static void umap_file(struct file_map *m)
-{
-       if ((m->mmap != NULL) && (m->mmap != MAP_FAILED))
-               munmap(m->mmap, m->size);
-
-       if (m->fd > -1)
-               close(m->fd);
-}
-
-static void * iw_open(void)
-{
-       return dlopen("/usr/lib/libiwinfo.so", RTLD_LAZY);
-}
-
-static int iw_update(
-       void *iw, const char *ifname, uint16_t *rate, uint8_t *rssi, uint8_t *noise
-) {
-       struct iwinfo_ops *(*probe)(const char *);
-       int val;
-
-       if (!backend)
-       {
-               probe = dlsym(iw, "iwinfo_backend");
-
-               if (!probe)
-                       return 0;
-
-               backend = probe(ifname);
-
-               if (!backend)
-                       return 0;
-       }
-
-       *rate = (backend->bitrate && !backend->bitrate(ifname, &val)) ? val : 0;
-       *rssi = (backend->signal && !backend->signal(ifname, &val)) ? val : 0;
-       *noise = (backend->noise && !backend->noise(ifname, &val)) ? val : 0;
-
-       return 1;
-}
-
-static void iw_close(void *iw)
-{
-       void (*finish)(void);
-
-       finish = dlsym(iw, "iwinfo_finish");
-
-       if (finish)
-               finish();
-
-       dlclose(iw);
-}
-
-
-static int update_ifstat(
-       const char *ifname, uint32_t rxb, uint32_t rxp, uint32_t txb, uint32_t txp
-) {
-       char path[1024];
-
-       struct stat s;
-       struct traffic_entry e;
-
-       snprintf(path, sizeof(path), DB_IF_FILE, ifname);
-
-       if (stat(path, &s))
-       {
-               if (init_file(path, sizeof(struct traffic_entry)))
-               {
-                       fprintf(stderr, "Failed to init %s: %s\n",
-                                       path, strerror(errno));
-
-                       return -1;
-               }
-       }
-
-       e.time = htonl(time(NULL));
-       e.rxb  = htonl(rxb);
-       e.rxp  = htonl(rxp);
-       e.txb  = htonl(txb);
-       e.txp  = htonl(txp);
-
-       return update_file(path, &e, sizeof(struct traffic_entry));
-}
-
-static int update_radiostat(
-       const char *ifname, uint16_t rate, uint8_t rssi, uint8_t noise
-) {
-       char path[1024];
-
-       struct stat s;
-       struct radio_entry e;
-
-       snprintf(path, sizeof(path), DB_RD_FILE, ifname);
-
-       if (stat(path, &s))
-       {
-               if (init_file(path, sizeof(struct radio_entry)))
-               {
-                       fprintf(stderr, "Failed to init %s: %s\n",
-                                       path, strerror(errno));
-
-                       return -1;
-               }
-       }
-
-       e.time  = htonl(time(NULL));
-       e.rate  = htons(rate);
-       e.rssi  = rssi;
-       e.noise = noise;
-
-       return update_file(path, &e, sizeof(struct radio_entry));
-}
-
-static int update_cnstat(uint32_t udp, uint32_t tcp, uint32_t other)
-{
-       char path[1024];
-
-       struct stat s;
-       struct conn_entry e;
-
-       snprintf(path, sizeof(path), DB_CN_FILE);
-
-       if (stat(path, &s))
-       {
-               if (init_file(path, sizeof(struct conn_entry)))
-               {
-                       fprintf(stderr, "Failed to init %s: %s\n",
-                                       path, strerror(errno));
-
-                       return -1;
-               }
-       }
-
-       e.time  = htonl(time(NULL));
-       e.udp   = htonl(udp);
-       e.tcp   = htonl(tcp);
-       e.other = htonl(other);
-
-       return update_file(path, &e, sizeof(struct conn_entry));
-}
-
-static int update_ldstat(uint16_t load1, uint16_t load5, uint16_t load15)
-{
-       char path[1024];
-
-       struct stat s;
-       struct load_entry e;
-
-       snprintf(path, sizeof(path), DB_LD_FILE);
-
-       if (stat(path, &s))
-       {
-               if (init_file(path, sizeof(struct load_entry)))
-               {
-                       fprintf(stderr, "Failed to init %s: %s\n",
-                                       path, strerror(errno));
-
-                       return -1;
-               }
-       }
-
-       e.time   = htonl(time(NULL));
-       e.load1  = htons(load1);
-       e.load5  = htons(load5);
-       e.load15 = htons(load15);
-
-       return update_file(path, &e, sizeof(struct load_entry));
-}
-
-static int run_daemon(void)
-{
-       FILE *info;
-       uint32_t rxb, txb, rxp, txp;
-       uint32_t udp, tcp, other;
-       uint16_t rate;
-       uint8_t rssi, noise;
-       float lf1, lf5, lf15;
-       char line[1024];
-       char ifname[16];
-       int i;
-       void *iw;
-       struct sigaction sa;
-
-       struct stat s;
-       const char *ipc = stat("/proc/net/nf_conntrack", &s)
-               ? "/proc/net/ip_conntrack" : "/proc/net/nf_conntrack";
-
-       switch (fork())
-       {
-               case -1:
-                       perror("fork()");
-                       return -1;
-
-               case 0:
-                       if (chdir("/") < 0)
-                       {
-                               perror("chdir()");
-                               exit(1);
-                       }
-
-                       close(0);
-                       close(1);
-                       close(2);
-                       break;
-
-               default:
-                       return 0;
-       }
-
-       /* setup USR1 signal handler to reset timer */
-       sa.sa_handler = reset_countdown;
-       sa.sa_flags   = SA_RESTART;
-       sigemptyset(&sa.sa_mask);
-       sigaction(SIGUSR1, &sa, NULL);
-
-       /* write pid */
-       if (writepid())
-       {
-               fprintf(stderr, "Failed to write pid file: %s\n", strerror(errno));
-               return 1;
-       }
-
-       /* initialize iwinfo */
-       iw = iw_open();
-
-       /* go */
-       for (reset_countdown(0); countdown >= 0; countdown--)
-       {
-               /* alter progname for ps, top */
-               memset(progname, 0, prognamelen);
-               snprintf(progname, prognamelen, "luci-bwc %d", countdown);
-
-               if ((info = fopen("/proc/net/dev", "r")) != NULL)
-               {
-                       while (fgets(line, sizeof(line), info))
-                       {
-                               if (strchr(line, '|'))
-                                       continue;
-
-                               if (sscanf(line, IF_SCAN_PATTERN, ifname, &rxb, &rxp, &txb, &txp))
-                               {
-                                       if (strncmp(ifname, "lo", sizeof(ifname)))
-                                               update_ifstat(ifname, rxb, rxp, txb, txp);
-                               }
-                       }
-
-                       fclose(info);
-               }
-
-               if (iw)
-               {
-                       for (i = 0; i < 5; i++)
-                       {
-#define iw_checkif(pattern) \
-                               do {                                                      \
-                                       snprintf(ifname, sizeof(ifname), pattern, i);         \
-                                       if (iw_update(iw, ifname, &rate, &rssi, &noise))  \
-                                       {                                                     \
-                                               update_radiostat(ifname, rate, rssi, noise);      \
-                                               continue;                                         \
-                                       }                                                     \
-                               } while(0)
-
-                               iw_checkif("wlan%d");
-                               iw_checkif("ath%d");
-                               iw_checkif("wl%d");
-                       }
-               }
-
-               if ((info = fopen(ipc, "r")) != NULL)
-               {
-                       udp   = 0;
-                       tcp   = 0;
-                       other = 0;
-
-                       while (fgets(line, sizeof(line), info))
-                       {
-                               if (strstr(line, "TIME_WAIT"))
-                                       continue;
-
-                               if ((strstr(line, "src=127.0.0.1 ") && strstr(line, "dst=127.0.0.1 ")) 
-                               || (strstr(line, "src=::1 ") && strstr(line, "dst=::1 ")))
-                                       continue;
-
-                               if (sscanf(line, "%*s %*d %s", ifname) || sscanf(line, "%s %*d", ifname))
-                               {
-                                       if (!strcmp(ifname, "tcp"))
-                                               tcp++;
-                                       else if (!strcmp(ifname, "udp"))
-                                               udp++;
-                                       else
-                                               other++;
-                               }
-                       }
-
-                       update_cnstat(udp, tcp, other);
-
-                       fclose(info);
-               }
-
-               if ((info = fopen("/proc/loadavg", "r")) != NULL)
-               {
-                       if (fscanf(info, LD_SCAN_PATTERN, &lf1, &lf5, &lf15))
-                       {
-                               update_ldstat((uint16_t)(lf1  * 100),
-                                                         (uint16_t)(lf5  * 100),
-                                                         (uint16_t)(lf15 * 100));
-                       }
-
-                       fclose(info);
-               }
-
-               sleep(STEP_TIME);
-       }
-
-       unlink(PID_PATH);
-
-       if (iw)
-               iw_close(iw);
-
-       return 0;
-}
-
-static void check_daemon(void)
-{
-       int pid;
-
-       if ((pid = readpid()) < 0 || kill(pid, 0) < 0)
-       {
-               /* daemon ping failed, try to start it up */
-               if (run_daemon())
-               {
-                       fprintf(stderr,
-                               "Failed to ping daemon and unable to start it up: %s\n",
-                               strerror(errno));
-
-                       exit(1);
-               }
-       }
-       else if (kill(pid, SIGUSR1))
-       {
-               fprintf(stderr, "Failed to send signal: %s\n", strerror(errno));
-               exit(2);
-       }
-}
-
-static int run_dump_ifname(const char *ifname)
-{
-       int i;
-       char path[1024];
-       struct file_map m;
-       struct traffic_entry *e;
-
-       check_daemon();
-       snprintf(path, sizeof(path), DB_IF_FILE, ifname);
-
-       if (mmap_file(path, sizeof(struct traffic_entry), &m))
-       {
-               fprintf(stderr, "Failed to open %s: %s\n", path, strerror(errno));
-               return 1;
-       }
-
-       for (i = 0; i < m.size; i += sizeof(struct traffic_entry))
-       {
-               e = (struct traffic_entry *) &m.mmap[i];
-
-               if (!e->time)
-                       continue;
-
-               printf("[ %u, %u, %" PRIu32
-                          ", %u, %u ]%s\n",
-                       ntohl(e->time),
-                       ntohl(e->rxb), ntohl(e->rxp),
-                       ntohl(e->txb), ntohl(e->txp),
-                       ((i + sizeof(struct traffic_entry)) < m.size) ? "," : "");
-       }
-
-       umap_file(&m);
-
-       return 0;
-}
-
-static int run_dump_radio(const char *ifname)
-{
-       int i;
-       char path[1024];
-       struct file_map m;
-       struct radio_entry *e;
-
-       check_daemon();
-       snprintf(path, sizeof(path), DB_RD_FILE, ifname);
-
-       if (mmap_file(path, sizeof(struct radio_entry), &m))
-       {
-               fprintf(stderr, "Failed to open %s: %s\n", path, strerror(errno));
-               return 1;
-       }
-
-       for (i = 0; i < m.size; i += sizeof(struct radio_entry))
-       {
-               e = (struct radio_entry *) &m.mmap[i];
-
-               if (!e->time)
-                       continue;
-
-               printf("[ %u, %d, %d, %d ]%s\n",
-                       ntohl(e->time),
-                       e->rate, e->rssi, e->noise,
-                       ((i + sizeof(struct radio_entry)) < m.size) ? "," : "");
-       }
-
-       umap_file(&m);
-
-       return 0;
-}
-
-static int run_dump_conns(void)
-{
-       int i;
-       char path[1024];
-       struct file_map m;
-       struct conn_entry *e;
-
-       check_daemon();
-       snprintf(path, sizeof(path), DB_CN_FILE);
-
-       if (mmap_file(path, sizeof(struct conn_entry), &m))
-       {
-               fprintf(stderr, "Failed to open %s: %s\n", path, strerror(errno));
-               return 1;
-       }
-
-       for (i = 0; i < m.size; i += sizeof(struct conn_entry))
-       {
-               e = (struct conn_entry *) &m.mmap[i];
-
-               if (!e->time)
-                       continue;
-
-               printf("[ %u, %u, %u, %u ]%s\n",
-                       ntohl(e->time), ntohl(e->udp),
-                       ntohl(e->tcp), ntohl(e->other),
-                       ((i + sizeof(struct conn_entry)) < m.size) ? "," : "");
-       }
-
-       umap_file(&m);
-
-       return 0;
-}
-
-static int run_dump_load(void)
-{
-       int i;
-       char path[1024];
-       struct file_map m;
-       struct load_entry *e;
-
-       check_daemon();
-       snprintf(path, sizeof(path), DB_LD_FILE);
-
-       if (mmap_file(path, sizeof(struct load_entry), &m))
-       {
-               fprintf(stderr, "Failed to open %s: %s\n", path, strerror(errno));
-               return 1;
-       }
-
-       for (i = 0; i < m.size; i += sizeof(struct load_entry))
-       {
-               e = (struct load_entry *) &m.mmap[i];
-
-               if (!e->time)
-                       continue;
-
-               printf("[ %u, %u, %u, %u ]%s\n",
-                       ntohl(e->time),
-                       ntohs(e->load1), ntohs(e->load5), ntohs(e->load15),
-                       ((i + sizeof(struct load_entry)) < m.size) ? "," : "");
-       }
-
-       umap_file(&m);
-
-       return 0;
-}
-
-
-int main(int argc, char *argv[])
-{
-       int opt;
-
-       progname = argv[0];
-       prognamelen = -1;
-
-       for (opt = 0; opt < argc; opt++)
-               prognamelen += 1 + strlen(argv[opt]);
-
-       while ((opt = getopt(argc, argv, "t:i:r:cl")) > -1)
-       {
-               switch (opt)
-               {
-                       case 't':
-                               timeout = atoi(optarg);
-                               break;
-
-                       case 'i':
-                               if (optarg)
-                                       return run_dump_ifname(optarg);
-                               break;
-
-                       case 'r':
-                               if (optarg)
-                                       return run_dump_radio(optarg);
-                               break;
-
-                       case 'c':
-                               return run_dump_conns();
-
-                       case 'l':
-                               return run_dump_load();
-
-                       default:
-                               break;
-               }
-       }
-
-       fprintf(stderr,
-               "Usage:\n"
-               "       %s [-t timeout] -i ifname\n"
-               "       %s [-t timeout] -r radiodev\n"
-               "       %s [-t timeout] -c\n"
-               "       %s [-t timeout] -l\n",
-                       argv[0], argv[0], argv[0], argv[0]
-       );
-
-       return 1;
-}
diff --git a/package/luci/modules/luci-mod-system/Makefile b/package/luci/modules/luci-mod-system/Makefile
deleted file mode 100644 (file)
index a6d5a7a..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI Administration - Global System Settings
-LUCI_DEPENDS:=+luci-base
-
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
-
diff --git a/package/luci/modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js b/package/luci/modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js
deleted file mode 100644 (file)
index 7a79d7e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-function submitPassword(ev) {
-       var pw1 = document.body.querySelector('[name="pw1"]'),
-           pw2 = document.body.querySelector('[name="pw2"]');
-
-       if (!pw1.value.length || !pw2.value.length)
-               return;
-
-       if (pw1.value === pw2.value) {
-               L.showModal(_('Change login password'),
-                       E('p', { class: 'spinning' }, _('Changing password…')));
-
-               L.post('admin/system/admin/password/json', { password: pw1.value },
-                       function() {
-                               showModal(_('Change login password'), [
-                                       E('div', _('The system password has been successfully changed.')),
-                                       E('div', { 'class': 'right' },
-                                               E('div', { class: 'btn', click: L.hideModal }, _('Dismiss')))
-                               ]);
-
-                               pw1.value = pw2.value = '';
-                       });
-       }
-       else {
-               L.showModal(_('Change login password'), [
-                       E('div', { class: 'alert-message warning' },
-                               _('Given password confirmation did not match, password not changed!')),
-                       E('div', { 'class': 'right' },
-                               E('div', { class: 'btn', click: L.hideModal }, _('Dismiss')))
-               ]);
-       }
-}
diff --git a/package/luci/modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js b/package/luci/modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js
deleted file mode 100644 (file)
index d298b3b..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-SSHPubkeyDecoder.prototype = {
-       lengthDecode: function(s, off)
-       {
-               var l = (s.charCodeAt(off++) << 24) |
-                               (s.charCodeAt(off++) << 16) |
-                               (s.charCodeAt(off++) <<  8) |
-                                s.charCodeAt(off++);
-
-               if (l < 0 || (off + l) > s.length)
-                       return -1;
-
-               return l;
-       },
-
-       decode: function(s)
-       {
-               var parts = s.split(/\s+/);
-               if (parts.length < 2)
-                       return null;
-
-               var key = null;
-               try { key = atob(parts[1]); } catch(e) {}
-               if (!key)
-                       return null;
-
-               var off, len;
-
-               off = 0;
-               len = this.lengthDecode(key, off);
-
-               if (len <= 0)
-                       return null;
-
-               var type = key.substr(off + 4, len);
-               if (type !== parts[0])
-                       return null;
-
-               off += 4 + len;
-
-               var len1 = off < key.length ? this.lengthDecode(key, off) : 0;
-               if (len1 <= 0)
-                       return null;
-
-               var curve = null;
-               if (type.indexOf('ecdsa-sha2-') === 0) {
-                       curve = key.substr(off + 4, len1);
-
-                       if (!len1 || type.substr(11) !== curve)
-                               return null;
-
-                       type = 'ecdsa-sha2';
-                       curve = curve.replace(/^nistp(\d+)$/, 'NIST P-$1');
-               }
-
-               off += 4 + len1;
-
-               var len2 = off < key.length ? this.lengthDecode(key, off) : 0;
-               if (len2 < 0)
-                       return null;
-
-               if (len1 & 1)
-                       len1--;
-
-               if (len2 & 1)
-                       len2--;
-
-               var comment = parts.slice(2).join(' '),
-                   fprint = parts[1].length > 68 ? parts[1].substr(0, 33) + '…' + parts[1].substr(-34) : parts[1];
-
-               switch (type)
-               {
-               case 'ssh-rsa':
-                       return { type: 'RSA', bits: len2 * 8, comment: comment, fprint: fprint };
-
-               case 'ssh-dss':
-                       return { type: 'DSA', bits: len1 * 8, comment: comment, fprint: fprint };
-
-               case 'ssh-ed25519':
-                       return { type: 'ECDH', curve: 'Curve25519', comment: comment, fprint: fprint };
-
-               case 'ecdsa-sha2':
-                       return { type: 'ECDSA', curve: curve, comment: comment, fprint: fprint };
-
-               default:
-                       return null;
-               }
-       }
-};
-
-function SSHPubkeyDecoder() {}
-
-function renderKeys(keys) {
-       var list = document.querySelector('.cbi-dynlist[name="sshkeys"]'),
-           decoder = new SSHPubkeyDecoder();
-
-       while (!matchesElem(list.firstElementChild, '.add-item'))
-               list.removeChild(list.firstElementChild);
-
-       keys.forEach(function(key) {
-               var pubkey = decoder.decode(key);
-               if (pubkey)
-                       list.insertBefore(E('div', {
-                               class: 'item',
-                               click: removeKey,
-                               'data-key': key
-                       }, [
-                               E('strong', pubkey.comment || _('Unnamed key')), E('br'),
-                               E('small', [
-                                       '%s, %s'.format(pubkey.type, pubkey.curve || _('%d Bit').format(pubkey.bits)),
-                                       E('br'), E('code', pubkey.fprint)
-                               ])
-                       ]), list.lastElementChild);
-       });
-
-       if (list.firstElementChild === list.lastElementChild)
-               list.insertBefore(E('p', _('No public keys present yet.')), list.lastElementChild);
-}
-
-function saveKeys(keys) {
-       L.showModal(_('Add key'), E('div', { class: 'spinning' }, _('Saving keys…')));
-       L.post('admin/system/admin/sshkeys/json', { keys: JSON.stringify(keys) }, function(xhr, keys) {
-               renderKeys(keys);
-               L.hideModal();
-       });
-}
-
-function addKey(ev) {
-       var decoder = new SSHPubkeyDecoder(),
-           list = findParent(ev.target, '.cbi-dynlist'),
-           input = list.querySelector('input[type="text"]'),
-           key = input.value.trim(),
-           pubkey = decoder.decode(key),
-           keys = [];
-
-       if (!key.length)
-               return;
-
-       list.querySelectorAll('.item').forEach(function(item) {
-               keys.push(item.getAttribute('data-key'));
-       });
-
-       if (keys.indexOf(key) !== -1) {
-               L.showModal(_('Add key'), [
-                       E('div', { class: 'alert-message warning' }, _('The given SSH public key has already been added.')),
-                       E('div', { class: 'right' }, E('div', { class: 'btn', click: L.hideModal }, _('Close')))
-               ]);
-       }
-       else if (!pubkey) {
-               L.showModal(_('Add key'), [
-                       E('div', { class: 'alert-message warning' }, _('The given SSH public key is invalid. Please supply proper public RSA or ECDSA keys.')),
-                       E('div', { class: 'right' }, E('div', { class: 'btn', click: L.hideModal }, _('Close')))
-               ]);
-       }
-       else {
-               keys.push(key);
-               saveKeys(keys);
-               input.value = '';
-       }
-}
-
-function removeKey(ev) {
-       var list = findParent(ev.target, '.cbi-dynlist'),
-           delkey = ev.target.getAttribute('data-key'),
-           keys = [];
-
-       list.querySelectorAll('.item').forEach(function(item) {
-               var key = item.getAttribute('data-key');
-               if (key !== delkey)
-                       keys.push(key);
-       });
-
-       L.showModal(_('Delete key'), [
-               E('div', _('Do you really want to delete the following SSH key?')),
-               E('pre', delkey),
-               E('div', { class: 'right' }, [
-                       E('div', { class: 'btn', click: L.hideModal }, _('Cancel')),
-                       ' ',
-                       E('div', { class: 'btn danger', click: function(ev) { saveKeys(keys) } }, _('Delete key')),
-               ])
-       ]);
-}
-
-function dragKey(ev) {
-       ev.stopPropagation();
-       ev.preventDefault();
-       ev.dataTransfer.dropEffect = 'copy';
-}
-
-function dropKey(ev) {
-       var file = ev.dataTransfer.files[0],
-           input = ev.currentTarget.querySelector('input[type="text"]'),
-           reader = new FileReader();
-
-       if (file) {
-               reader.onload = function(rev) {
-                       input.value = rev.target.result.trim();
-                       addKey(ev);
-                       input.value = '';
-               };
-
-               reader.readAsText(file);
-       }
-
-       ev.stopPropagation();
-       ev.preventDefault();
-}
-
-window.addEventListener('dragover', function(ev) { ev.preventDefault() });
-window.addEventListener('drop', function(ev) { ev.preventDefault() });
-
-requestAnimationFrame(function() {
-       L.get('admin/system/admin/sshkeys/json', null, function(xhr, keys) {
-               renderKeys(keys);
-       });
-});
diff --git a/package/luci/modules/luci-mod-system/luasrc/controller/admin/system.lua b/package/luci/modules/luci-mod-system/luasrc/controller/admin/system.lua
deleted file mode 100644 (file)
index 3e58896..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008-2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.admin.system", package.seeall)
-
-function index()
-       local fs = require "nixio.fs"
-
-       entry({"admin", "system", "system"}, cbi("admin_system/system"), _("System"), 1)
-       entry({"admin", "system", "clock_status"}, post_on({ set = true }, "action_clock_status"))
-
-       entry({"admin", "system", "admin"}, firstchild(), _("Administration"), 2)
-       entry({"admin", "system", "admin", "password"}, template("admin_system/password"), _("Router Password"), 1)
-       entry({"admin", "system", "admin", "password", "json"}, post("action_password"))
-
-       if fs.access("/etc/config/dropbear") then
-               entry({"admin", "system", "admin", "dropbear"}, cbi("admin_system/dropbear"), _("SSH Access"), 2)
-               entry({"admin", "system", "admin", "sshkeys"}, template("admin_system/sshkeys"), _("SSH-Keys"), 3)
-               entry({"admin", "system", "admin", "sshkeys", "json"}, post_on({ keys = true }, "action_sshkeys"))
-       end
-
-       entry({"admin", "system", "startup"}, form("admin_system/startup"), _("Startup"), 45)
-       entry({"admin", "system", "crontab"}, form("admin_system/crontab"), _("Scheduled Tasks"), 46)
-
-       if fs.access("/sbin/block") and fs.access("/etc/config/fstab") then
-               entry({"admin", "system", "fstab"}, cbi("admin_system/fstab"), _("Mount Points"), 50)
-               entry({"admin", "system", "fstab", "mount"}, cbi("admin_system/fstab/mount"), nil).leaf = true
-               entry({"admin", "system", "fstab", "swap"},  cbi("admin_system/fstab/swap"),  nil).leaf = true
-       end
-
-       local nodes, number = fs.glob("/sys/class/leds/*")
-       if number > 0 then
-               entry({"admin", "system", "leds"}, cbi("admin_system/leds"), _("<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"), 60)
-       end
-
-       entry({"admin", "system", "flashops"}, call("action_flashops"), _("Backup / Flash Firmware"), 70)
-       entry({"admin", "system", "flashops", "reset"}, post("action_reset"))
-       entry({"admin", "system", "flashops", "backup"}, post("action_backup"))
-       entry({"admin", "system", "flashops", "backupmtdblock"}, post("action_backupmtdblock"))
-       entry({"admin", "system", "flashops", "backupfiles"}, form("admin_system/backupfiles"))
-
-       -- call() instead of post() due to upload handling!
-       entry({"admin", "system", "flashops", "restore"}, call("action_restore"))
-       entry({"admin", "system", "flashops", "sysupgrade"}, call("action_sysupgrade"))
-
-       entry({"admin", "system", "reboot"}, template("admin_system/reboot"), _("Reboot"), 90)
-       entry({"admin", "system", "reboot", "call"}, post("action_reboot"))
-end
-
-function action_clock_status()
-       local set = tonumber(luci.http.formvalue("set"))
-       if set ~= nil and set > 0 then
-               local date = os.date("*t", set)
-               if date then
-                       luci.sys.call("date -s '%04d-%02d-%02d %02d:%02d:%02d'" %{
-                               date.year, date.month, date.day, date.hour, date.min, date.sec
-                       })
-                       luci.sys.call("/etc/init.d/sysfixtime restart")
-               end
-       end
-
-       luci.http.prepare_content("application/json")
-       luci.http.write_json({ timestring = os.date("%c") })
-end
-
-local function image_supported(image)
-       return (os.execute("sysupgrade -T %q >/dev/null" % image) == 0)
-end
-
-local function image_checksum(image)
-       return (luci.sys.exec("md5sum %q" % image):match("^([^%s]+)"))
-end
-
-local function image_sha256_checksum(image)
-       return (luci.sys.exec("sha256sum %q" % image):match("^([^%s]+)"))
-end
-
-local function supports_sysupgrade()
-       return nixio.fs.access("/lib/upgrade/platform.sh")
-end
-
-local function supports_reset()
-       return (os.execute([[grep -sq "^overlayfs:/overlay / overlay " /proc/mounts]]) == 0)
-end
-
-local function storage_size()
-       local size = 0
-       if nixio.fs.access("/proc/mtd") then
-               for l in io.lines("/proc/mtd") do
-                       local d, s, e, n = l:match('^([^%s]+)%s+([^%s]+)%s+([^%s]+)%s+"([^%s]+)"')
-                       if n == "linux" or n == "firmware" then
-                               size = tonumber(s, 16)
-                               break
-                       end
-               end
-       elseif nixio.fs.access("/proc/partitions") then
-               for l in io.lines("/proc/partitions") do
-                       local x, y, b, n = l:match('^%s*(%d+)%s+(%d+)%s+([^%s]+)%s+([^%s]+)')
-                       if b and n and not n:match('[0-9]') then
-                               size = tonumber(b) * 1024
-                               break
-                       end
-               end
-       end
-       return size
-end
-
-
-function action_flashops()
-       --
-       -- Overview
-       --
-       luci.template.render("admin_system/flashops", {
-               reset_avail   = supports_reset(),
-               upgrade_avail = supports_sysupgrade()
-       })
-end
-
-function action_sysupgrade()
-       local fs = require "nixio.fs"
-       local http = require "luci.http"
-       local image_tmp = "/tmp/firmware.img"
-
-       local fp
-       http.setfilehandler(
-               function(meta, chunk, eof)
-                       if not fp and meta and meta.name == "image" then
-                               fp = io.open(image_tmp, "w")
-                       end
-                       if fp and chunk then
-                               fp:write(chunk)
-                       end
-                       if fp and eof then
-                               fp:close()
-                       end
-               end
-       )
-
-       if not luci.dispatcher.test_post_security() then
-               fs.unlink(image_tmp)
-               return
-       end
-
-       --
-       -- Cancel firmware flash
-       --
-       if http.formvalue("cancel") then
-               fs.unlink(image_tmp)
-               http.redirect(luci.dispatcher.build_url('admin/system/flashops'))
-               return
-       end
-
-       --
-       -- Initiate firmware flash
-       --
-       local step = tonumber(http.formvalue("step")) or 1
-       if step == 1 then
-               local force = http.formvalue("force")
-               if image_supported(image_tmp) or force then
-                       luci.template.render("admin_system/upgrade", {
-                               checksum = image_checksum(image_tmp),
-                               sha256ch = image_sha256_checksum(image_tmp),
-                               storage  = storage_size(),
-                               size     = (fs.stat(image_tmp, "size") or 0),
-                               keep     = (not not http.formvalue("keep")),
-                               force    = (not not http.formvalue("force"))
-                       })
-               else
-                       fs.unlink(image_tmp)
-                       luci.template.render("admin_system/flashops", {
-                               reset_avail   = supports_reset(),
-                               upgrade_avail = supports_sysupgrade(),
-                               image_invalid = true
-                       })
-               end
-
-       --
-       -- Start sysupgrade flash
-       --
-       elseif step == 2 then
-               local keep = (http.formvalue("keep") == "1") and "" or "-n"
-               local force = (http.formvalue("force") == "1") and "-F" or ""
-               luci.template.render("admin_system/applyreboot", {
-                       title = luci.i18n.translate("Flashing..."),
-                       msg   = luci.i18n.translate("The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."),
-                       addr  = (#keep > 0) and (#force > 0) and "192.168.1.1" or nil
-               })
-               luci.sys.process.exec({ "/bin/sh", "-c","sleep 1; killall dropbear uhttpd; sleep 1; /sbin/sysupgrade %s %s %q" %{ keep, force, image_tmp } }, nil, nil, true)
-       end
-end
-
-function action_backup()
-       luci.http.header('Content-Disposition', 'attachment; filename="backup-%s-%s.tar.gz"'
-               %{ luci.sys.hostname(), os.date("%Y-%m-%d") })
-
-       luci.http.prepare_content("application/x-targz")
-       luci.sys.process.exec({ "/sbin/sysupgrade", "--create-backup", "-" }, luci.http.write)
-end
-
-function action_backupmtdblock()
-       local mv = luci.http.formvalue("mtdblockname") or ""
-       local m, n = mv:match('^([^%s%./"]+)/%d+/(%d+)$')
-
-       if not m and n then
-               luci.http.status(400, "Bad Request")
-               return
-       end
-
-       luci.http.header('Content-Disposition', 'attachment; filename="backup-%s-%s-%s.bin"'
-               %{ luci.sys.hostname(), m, os.date("%Y-%m-%d") })
-
-       luci.http.prepare_content("application/octet-stream")
-       luci.sys.process.exec({ "/bin/dd", "if=/dev/mtd%s" % n, "conv=fsync,notrunc" }, luci.http.write)
-end
-
-function action_restore()
-       local fs = require "nixio.fs"
-       local http = require "luci.http"
-       local archive_tmp = "/tmp/restore.tar.gz"
-
-       local fp
-       http.setfilehandler(
-               function(meta, chunk, eof)
-                       if not fp and meta and meta.name == "archive" then
-                               fp = io.open(archive_tmp, "w")
-                       end
-                       if fp and chunk then
-                               fp:write(chunk)
-                       end
-                       if fp and eof then
-                               fp:close()
-                       end
-               end
-       )
-
-       if not luci.dispatcher.test_post_security() then
-               fs.unlink(archive_tmp)
-               return
-       end
-
-       local upload = http.formvalue("archive")
-       if upload and #upload > 0 then
-               if os.execute("gunzip -t %q >/dev/null 2>&1" % archive_tmp) == 0 then
-                       luci.template.render("admin_system/applyreboot")
-                       os.execute("tar -C / -xzf %q >/dev/null 2>&1" % archive_tmp)
-                       luci.sys.reboot()
-               else
-                       luci.template.render("admin_system/flashops", {
-                               reset_avail   = supports_reset(),
-                               upgrade_avail = supports_sysupgrade(),
-                               backup_invalid = true
-                       })
-               end
-               return
-       end
-
-       http.redirect(luci.dispatcher.build_url('admin/system/flashops'))
-end
-
-function action_reset()
-       if supports_reset() then
-               luci.template.render("admin_system/applyreboot", {
-                       title = luci.i18n.translate("Erasing..."),
-                       msg   = luci.i18n.translate("The system is erasing the configuration partition now and will reboot itself when finished."),
-                       addr  = "192.168.1.1"
-               })
-
-               luci.sys.process.exec({ "/bin/sh", "-c", "sleep 1; killall dropbear uhttpd; sleep 1; jffs2reset -y && reboot" }, nil, nil, true)
-               return
-       end
-
-       http.redirect(luci.dispatcher.build_url('admin/system/flashops'))
-end
-
-function action_password()
-       local password = luci.http.formvalue("password")
-       if not password then
-               luci.http.status(400, "Bad Request")
-               return
-       end
-
-       luci.http.prepare_content("application/json")
-       luci.http.write_json({ code = luci.sys.user.setpasswd("root", password) })
-end
-
-function action_sshkeys()
-       local keys = luci.http.formvalue("keys")
-       if keys then
-               keys = luci.jsonc.parse(keys)
-               if not keys or type(keys) ~= "table" then
-                       luci.http.status(400, "Bad Request")
-                       return
-               end
-
-               local fd, err = io.open("/etc/dropbear/authorized_keys", "w")
-               if not fd then
-                       luci.http.status(503, err)
-                       return
-               end
-
-               local _, k
-               for _, k in ipairs(keys) do
-                       if type(k) == "string" and k:match("^%w+%-") then
-                               fd:write(k)
-                               fd:write("\n")
-                       end
-               end
-
-               fd:close()
-       end
-
-       local fd, err = io.open("/etc/dropbear/authorized_keys", "r")
-       if not fd then
-               luci.http.status(503, err)
-               return
-       end
-
-       local rv = {}
-       while true do
-               local ln = fd:read("*l")
-               if not ln then
-                       break
-               elseif ln:match("^[%w%-]+%s+[A-Za-z0-9+/=]+$") or
-                      ln:match("^[%w%-]+%s+[A-Za-z0-9+/=]+%s")
-               then
-                       rv[#rv+1] = ln
-               end
-       end
-
-       fd:close()
-
-       luci.http.prepare_content("application/json")
-       luci.http.write_json(rv)
-end
-
-function action_reboot()
-       luci.sys.reboot()
-end
diff --git a/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua b/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua
deleted file mode 100644 (file)
index ee2401e..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-if luci.http.formvalue("cbid.luci.1._list") then
-       luci.http.redirect(luci.dispatcher.build_url("admin/system/flashops/backupfiles") .. "?display=list")
-elseif luci.http.formvalue("cbid.luci.1._edit") then
-       luci.http.redirect(luci.dispatcher.build_url("admin/system/flashops/backupfiles") .. "?display=edit")
-       return
-end
-
-m = SimpleForm("luci", translate("Backup file list"))
-m:append(Template("admin_system/backupfiles"))
-
-if luci.http.formvalue("display") ~= "list" then
-       f = m:section(SimpleSection, nil, translate("This is a list of shell glob patterns for matching files and directories to include during sysupgrade. Modified files in /etc/config/ and certain other configurations are automatically preserved."))
-
-       l = f:option(Button, "_list", translate("Show current backup file list"))
-       l.inputtitle = translate("Open list...")
-       l.inputstyle = "apply"
-
-       c = f:option(TextValue, "_custom")
-       c.rmempty = false
-       c.cols = 70
-       c.rows = 30
-
-       c.cfgvalue = function(self, section)
-               return nixio.fs.readfile("/etc/sysupgrade.conf")
-       end
-
-       c.write = function(self, section, value)
-               value = value:gsub("\r\n?", "\n")
-               return nixio.fs.writefile("/etc/sysupgrade.conf", value)
-       end
-else
-       m.submit = false
-       m.reset  = false
-
-       f = m:section(SimpleSection, nil, translate("Below is the determined list of files to backup. It consists of changed configuration files marked by opkg, essential base files and the user defined backup patterns."))
-
-       l = f:option(Button, "_edit", translate("Back to configuration"))
-       l.inputtitle = translate("Close list...")
-       l.inputstyle = "link"
-
-
-       d = f:option(DummyValue, "_detected")
-       d.rawhtml = true
-       d.cfgvalue = function(s)
-               local list = io.popen(
-                       "( find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' /etc/sysupgrade.conf " ..
-                       "/lib/upgrade/keep.d/* 2>/dev/null) -type f 2>/dev/null; " ..
-                       "opkg list-changed-conffiles ) | sort -u"
-               )
-
-               if list then
-                       local files = { "<ul>" }
-
-                       while true do
-                               local ln = list:read("*l")
-                               if not ln then
-                                       break
-                               else
-                                       files[#files+1] = "<li>"
-                                       files[#files+1] = luci.util.pcdata(ln)
-                                       files[#files+1] = "</li>"
-                               end
-                       end
-
-                       list:close()
-                       files[#files+1] = "</ul>"
-
-                       return table.concat(files, "")
-               end
-
-               return "<em>" .. translate("No files found") .. "</em>"
-       end
-
-end
-
-return m
diff --git a/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua b/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/crontab.lua
deleted file mode 100644 (file)
index 016a619..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2008-2013 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local fs = require "nixio.fs"
-local cronfile = "/etc/crontabs/root" 
-
-f = SimpleForm("crontab", translate("Scheduled Tasks"),
-       translate("This is the system crontab in which scheduled tasks can be defined.") ..
-       translate("<br/>Note: you need to manually restart the cron service if the " ..
-               "crontab file was empty before editing."))
-
-t = f:field(TextValue, "crons")
-t.rmempty = true
-t.rows = 10
-function t.cfgvalue()
-       return fs.readfile(cronfile) or ""
-end
-
-function f.handle(self, state, data)
-       if state == FORM_VALID then
-               if data.crons then
-                       fs.writefile(cronfile, data.crons:gsub("\r\n", "\n"))
-                       luci.sys.call("/usr/bin/crontab %q" % cronfile)
-               else
-                       fs.writefile(cronfile, "")
-               end
-       end
-       return true
-end
-
-return f
diff --git a/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua b/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua
deleted file mode 100644 (file)
index 1a1695d..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2011-2018 Jo-Philipp Wich <jo@mein.io>
--- Licensed to the public under the Apache License 2.0.
-
-m = Map("dropbear", translate("SSH Access"),
-       translate("Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"))
-m.apply_on_parse = true
-
-s = m:section(TypedSection, "dropbear", translate("Dropbear Instance"))
-s.anonymous = true
-s.addremove = true
-
-
-ni = s:option(Value, "Interface", translate("Interface"),
-       translate("Listen only on the given interface or, if unspecified, on all"))
-
-ni.template    = "cbi/network_netlist"
-ni.nocreate    = true
-ni.unspecified = true
-
-
-pt = s:option(Value, "Port", translate("Port"),
-       translate("Specifies the listening port of this <em>Dropbear</em> instance"))
-
-pt.datatype = "port"
-pt.default  = 22
-
-
-pa = s:option(Flag, "PasswordAuth", translate("Password authentication"),
-       translate("Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"))
-
-pa.enabled  = "on"
-pa.disabled = "off"
-pa.default  = pa.enabled
-pa.rmempty  = false
-
-
-ra = s:option(Flag, "RootPasswordAuth", translate("Allow root logins with password"),
-       translate("Allow the <em>root</em> user to login with password"))
-
-ra.enabled  = "on"
-ra.disabled = "off"
-ra.default  = ra.enabled
-
-
-gp = s:option(Flag, "GatewayPorts", translate("Gateway ports"),
-       translate("Allow remote hosts to connect to local SSH forwarded ports"))
-
-gp.enabled  = "on"
-gp.disabled = "off"
-gp.default  = gp.disabled
-
-return m
diff --git a/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua b/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua
deleted file mode 100644 (file)
index 4a31146..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-require("luci.tools.webadmin")
-
-local fs   = require "nixio.fs"
-local util = require "nixio.util"
-local tp   = require "luci.template.parser"
-
-local block = io.popen("block info", "r")
-local ln, dev, devices = nil, nil, {}
-
-repeat
-       ln = block:read("*l")
-       dev = ln and ln:match("^/dev/(.-):")
-
-       if dev then
-               local e, s, key, val = { }
-
-               for key, val in ln:gmatch([[(%w+)="(.-)"]]) do
-                       e[key:lower()] = val
-                       devices[val] = e
-               end
-
-               s = tonumber((fs.readfile("/sys/class/block/%s/size" % dev)))
-
-               e.dev  = "/dev/%s" % dev
-               e.size = s and math.floor(s / 2048)
-
-               devices[e.dev] = e
-       end
-until not ln
-
-block:close()
-
-m = Map("fstab", translate("Mount Points"))
-s = m:section(TypedSection, "global", translate("Global Settings"))
-s.addremove = false
-s.anonymous = true
-
-detect = s:option(Button, "block_detect", translate("Generate Config"), translate("Find all currently attached filesystems and swap and replace configuration with defaults based on what was detected"))
-detect.inputstyle = "reload"
-
-detect.write = function(self, section)
-       luci.sys.call("block detect >/etc/config/fstab")
-       luci.http.redirect(luci.dispatcher.build_url("admin/system", "fstab"))
-end
-
-o = s:option(Flag, "anon_swap", translate("Anonymous Swap"), translate("Mount swap not specifically configured"))
-o.default = o.disabled
-o.rmempty = false
-
-o = s:option(Flag, "anon_mount", translate("Anonymous Mount"), translate("Mount filesystems not specifically configured"))
-o.default = o.disabled
-o.rmempty = false
-
-o = s:option(Flag, "auto_swap", translate("Automount Swap"), translate("Automatically mount swap on hotplug"))
-o.default = o.enabled
-o.rmempty = false
-
-o = s:option(Flag, "auto_mount", translate("Automount Filesystem"), translate("Automatically mount filesystems on hotplug"))
-o.default = o.enabled
-o.rmempty = false
-
-o = s:option(Flag, "check_fs", translate("Check filesystems before mount"), translate("Automatically check filesystem for errors before mounting"))
-o.default = o.disabled
-o.rmempty = false
-
-local mounts = luci.sys.mounts()
-local non_system_mounts = {}
-for rawmount, val in pairs(mounts) do
-    if (string.find(val.mountpoint, "/tmp/.jail") == nil) then
-      repeat 
-          val.umount = false
-          if (val.mountpoint == "/") then
-              break
-          elseif (val.mountpoint == "/overlay") then
-              break
-          elseif (val.mountpoint == "/rom") then
-              break
-          elseif (val.mountpoint == "/tmp") then
-              break
-          elseif (val.mountpoint == "/tmp/shm") then
-              break
-          elseif (val.mountpoint == "/tmp/upgrade") then
-              break
-          elseif (val.mountpoint == "/dev") then
-              break
-          end
-          val.umount = true
-      until true
-      non_system_mounts[rawmount] = val       
-   end   
-end
-
-v = m:section(Table, non_system_mounts, translate("Mounted file systems"))
-
-fs = v:option(DummyValue, "fs", translate("Filesystem"))
-
-mp = v:option(DummyValue, "mountpoint", translate("Mount Point"))
-
-avail = v:option(DummyValue, "avail", translate("Available"))
-function avail.cfgvalue(self, section)
-       return luci.tools.webadmin.byte_format(
-               ( tonumber(mounts[section].available) or 0 ) * 1024
-       ) .. " / " .. luci.tools.webadmin.byte_format(
-               ( tonumber(mounts[section].blocks) or 0 ) * 1024
-       )
-end
-
-used = v:option(DummyValue, "used", translate("Used"))
-function used.cfgvalue(self, section)
-       return ( mounts[section].percent or "0%" ) .. " (" ..
-       luci.tools.webadmin.byte_format(
-               ( tonumber(mounts[section].used) or 0 ) * 1024
-       ) .. ")"
-end
-
-unmount = v:option(Button, "unmount", translate("Unmount"))
-function unmount.cfgvalue(self, section)
-       return non_system_mounts[section].umount
-end
-
-unmount.render = function(self, section, scope)
-       self.title = translate("Unmount")
-       self.inputstyle = "remove"
-       Button.render(self, section, scope)
-end
-
-unmount.write = function(self, section)
-       if non_system_mounts[section].umount then
-               luci.sys.call("/bin/umount '%s'" % luci.util.shellstartsqescape(non_system_mounts[section].mountpoint))
-               return luci.http.redirect(luci.dispatcher.build_url("admin/system", "fstab"))
-        end
-end
-
-mount = m:section(TypedSection, "mount", translate("Mount Points"), translate("Mount Points define at which point a memory device will be attached to the filesystem"))
-mount.anonymous = true
-mount.addremove = true
-mount.template = "cbi/tblsection"
-mount.extedit  = luci.dispatcher.build_url("admin/system/fstab/mount/%s")
-
-mount.create = function(...)
-       local sid = TypedSection.create(...)
-       if sid then
-               luci.http.redirect(mount.extedit % sid)
-               return
-       end
-end
-
-
-mount:option(Flag, "enabled", translate("Enabled")).rmempty = false
-
-dev = mount:option(DummyValue, "device", translate("Device"))
-dev.rawhtml = true
-dev.cfgvalue = function(self, section)
-       local v, e
-
-       v = m.uci:get("fstab", section, "uuid")
-       e = v and devices[v:lower()]
-       if v and e and e.size then
-               return "UUID: %s (%s, %d MB)" %{ tp.pcdata(v), e.dev, e.size }
-       elseif v and e then
-               return "UUID: %s (%s)" %{ tp.pcdata(v), e.dev }
-       elseif v then
-               return "UUID: %s (<em>%s</em>)" %{ tp.pcdata(v), translate("not present") }
-       end
-
-       v = m.uci:get("fstab", section, "label")
-       e = v and devices[v]
-       if v and e and e.size then
-               return "Label: %s (%s, %d MB)" %{ tp.pcdata(v), e.dev, e.size }
-       elseif v and e then
-               return "Label: %s (%s)" %{ tp.pcdata(v), e.dev }
-       elseif v then
-               return "Label: %s (<em>%s</em>)" %{ tp.pcdata(v), translate("not present") }
-       end
-
-       v = Value.cfgvalue(self, section) or "?"
-       e = v and devices[v]
-       if v and e and e.size then
-               return "%s (%d MB)" %{ tp.pcdata(v), e.size }
-       elseif v and e then
-               return tp.pcdata(v)
-       elseif v then
-               return "%s (<em>%s</em>)" %{ tp.pcdata(v), translate("not present") }
-       end
-end
-
-mp = mount:option(DummyValue, "target", translate("Mount Point"))
-mp.cfgvalue = function(self, section)
-       if m.uci:get("fstab", section, "is_rootfs") == "1" then
-               return "/overlay"
-       else
-               return Value.cfgvalue(self, section) or "?"
-       end
-end
-
-fs = mount:option(DummyValue, "fstype", translate("Filesystem"))
-fs.cfgvalue = function(self, section)
-       local v, e
-
-       v = m.uci:get("fstab", section, "uuid")
-       v = v and v:lower() or m.uci:get("fstab", section, "label")
-       v = v or m.uci:get("fstab", section, "device")
-
-       e = v and devices[v]
-
-       return e and e.type or m.uci:get("fstab", section, "fstype") or "?"
-end
-
-op = mount:option(DummyValue, "options", translate("Options"))
-op.cfgvalue = function(self, section)
-       return Value.cfgvalue(self, section) or "defaults"
-end
-
-rf = mount:option(DummyValue, "is_rootfs", translate("Root"))
-rf.cfgvalue = function(self, section)
-       local target = m.uci:get("fstab", section, "target")
-       if target == "/" then
-               return translate("yes")
-       elseif target == "/overlay" then
-               return translate("overlay")
-       else
-               return translate("no")
-       end
-end
-
-ck = mount:option(DummyValue, "enabled_fsck", translate("Check"))
-ck.cfgvalue = function(self, section)
-       return Value.cfgvalue(self, section) == "1"
-               and translate("yes") or translate("no")
-end
-
-
-swap = m:section(TypedSection, "swap", translate("SWAP"), translate("If your physical memory is insufficient unused data can be temporarily swapped to a swap-device resulting in a higher amount of usable <abbr title=\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very slow process as the swap-device cannot be accessed with the high datarates of the <abbr title=\"Random Access Memory\">RAM</abbr>."))
-swap.anonymous = true
-swap.addremove = true
-swap.template = "cbi/tblsection"
-swap.extedit  = luci.dispatcher.build_url("admin/system/fstab/swap/%s")
-
-swap.create = function(...)
-       local sid = TypedSection.create(...)
-       if sid then
-               luci.http.redirect(swap.extedit % sid)
-               return
-       end
-end
-
-
-swap:option(Flag, "enabled", translate("Enabled")).rmempty = false
-
-dev = swap:option(DummyValue, "device", translate("Device"))
-dev.cfgvalue = function(self, section)
-       local v
-
-       v = m.uci:get("fstab", section, "uuid")
-       if v then return "UUID: %s" % v end
-
-       v = m.uci:get("fstab", section, "label")
-       if v then return "Label: %s" % v end
-
-       v = Value.cfgvalue(self, section) or "?"
-       e = v and devices[v]
-       if v and e and e.size then
-               return "%s (%s MB)" % {v, e.size}
-       else
-               return v
-       end
-end
-
-return m
diff --git a/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua b/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua
deleted file mode 100644 (file)
index f21a277..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
--- Copyright 2010 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local fs   = require "nixio.fs"
-local util = require "nixio.util"
-
-local has_fscheck = fs.access("/usr/sbin/e2fsck")
-
-local block = io.popen("block info", "r")
-local ln, dev, devices = nil, nil, {}
-
-repeat
-       ln = block:read("*l")
-       dev = ln and ln:match("^/dev/(.-):")
-
-       if dev then
-               local e, s, key, val = { }
-
-               for key, val in ln:gmatch([[(%w+)="(.-)"]]) do
-                       e[key:lower()] = val
-               end
-
-               s = tonumber((fs.readfile("/sys/class/block/%s/size" % dev)))
-
-               e.dev  = "/dev/%s" % dev
-               e.size = s and math.floor(s / 2048)
-
-               devices[#devices+1] = e
-       end
-until not ln
-
-block:close()
-
-
-m = Map("fstab", translate("Mount Points - Mount Entry"))
-m.redirect = luci.dispatcher.build_url("admin/system/fstab")
-
-if not arg[1] or m.uci:get("fstab", arg[1]) ~= "mount" then
-       luci.http.redirect(m.redirect)
-       return
-end
-
-
-
-mount = m:section(NamedSection, arg[1], "mount", translate("Mount Entry"))
-mount.anonymous = true
-mount.addremove = false
-
-mount:tab("general",  translate("General Settings"))
-mount:tab("advanced", translate("Advanced Settings"))
-
-
-mount:taboption("general", Flag, "enabled", translate("Enable this mount")).rmempty = false
-
-
-o = mount:taboption("general", Value, "uuid", translate("UUID"),
-       translate("If specified, mount the device by its UUID instead of a fixed device node"))
-
-o:value("", translate("-- match by uuid --"))
-
-for i, d in ipairs(devices) do
-       if d.uuid and d.size then
-               o:value(d.uuid, "%s (%s, %d MB)" %{ d.uuid, d.dev, d.size })
-       elseif d.uuid then
-               o:value(d.uuid, "%s (%s)" %{ d.uuid, d.dev })
-       end
-end
-
-
-o = mount:taboption("general", Value, "label", translate("Label"),
-       translate("If specified, mount the device by the partition label instead of a fixed device node"))
-
-o:value("", translate("-- match by label --"))
-
-o:depends("uuid", "")
-
-for i, d in ipairs(devices) do
-       if d.label and d.size then
-               o:value(d.label, "%s (%s, %d MB)" %{ d.label, d.dev, d.size })
-       elseif d.label then
-               o:value(d.label, "%s (%s)" %{ d.label, d.dev })
-       end
-end
-
-
-o = mount:taboption("general", Value, "device", translate("Device"),
-       translate("The device file of the memory or partition (<abbr title=\"for example\">e.g.</abbr> <code>/dev/sda1</code>)"))
-
-o:value("", translate("-- match by device --"))
-
-o:depends({ uuid = "", label = "" })
-
-for i, d in ipairs(devices) do
-       if d.size then
-               o:value(d.dev, "%s (%d MB)" %{ d.dev, d.size })
-       else
-               o:value(d.dev)
-       end
-end
-
-
-o = mount:taboption("general", Value, "target", translate("Mount point"),
-       translate("Specifies the directory the device is attached to"))
-
-o:value("/", translate("Use as root filesystem (/)"))
-o:value("/overlay", translate("Use as external overlay (/overlay)"))
-
-
-o = mount:taboption("general", DummyValue, "__notice", translate("Root preparation"))
-o:depends("target", "/")
-o.rawhtml = true
-o.default = [[
-<p>%s</p><pre>mkdir -p /tmp/introot
-mkdir -p /tmp/extroot
-mount --bind / /tmp/introot
-mount /dev/sda1 /tmp/extroot
-tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
-umount /tmp/introot
-umount /tmp/extroot</pre>
-]] %{
-       translate("Make sure to clone the root filesystem using something like the commands below:"),
-
-}
-
-
-o = mount:taboption("advanced", Value, "fstype", translate("Filesystem"),
-       translate("The filesystem that was used to format the memory (<abbr title=\"for example\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></samp>)"))
-
-o:value("", "auto")
-
-local fs
-for fs in io.lines("/proc/filesystems") do
-       fs = fs:match("%S+")
-       if fs ~= "nodev" then
-               o:value(fs)
-       end
-end
-
-local ok, lines = pcall(io.lines, "/etc/filesystem")
-if ok then
-       local fs
-       for fs in lines do
-               o:value(fs)
-       end
-end
-
-o = mount:taboption("advanced", Value, "options", translate("Mount options"),
-       translate("See \"mount\" manpage for details"))
-
-o.placeholder = "defaults"
-
-
-if has_fscheck then
-       o = mount:taboption("advanced", Flag, "enabled_fsck", translate("Run filesystem check"),
-               translate("Run a filesystem check before mounting the device"))
-end
-
-return m
diff --git a/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua b/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/swap.lua
deleted file mode 100644 (file)
index 82468d5..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
--- Copyright 2010 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local fs   = require "nixio.fs"
-local util = require "nixio.util"
-
-local devices = {}
-util.consume((fs.glob("/dev/sd*")), devices)
-util.consume((fs.glob("/dev/hd*")), devices)
-util.consume((fs.glob("/dev/scd*")), devices)
-util.consume((fs.glob("/dev/mmc*")), devices)
-
-local size = {}
-for i, dev in ipairs(devices) do
-       local s = tonumber((fs.readfile("/sys/class/block/%s/size" % dev:sub(6))))
-       size[dev] = s and math.floor(s / 2048)
-end
-
-
-m = Map("fstab", translate("Mount Points - Swap Entry"))
-m.redirect = luci.dispatcher.build_url("admin/system/fstab")
-
-if not arg[1] or m.uci:get("fstab", arg[1]) ~= "swap" then
-       luci.http.redirect(m.redirect)
-       return
-end
-
-
-mount = m:section(NamedSection, arg[1], "swap", translate("Swap Entry"))
-mount.anonymous = true
-mount.addremove = false
-
-mount:tab("general",  translate("General Settings"))
-mount:tab("advanced", translate("Advanced Settings"))
-
-
-mount:taboption("general", Flag, "enabled", translate("Enable this swap")).rmempty = false
-
-
-o = mount:taboption("general", Value, "device", translate("Device"),
-       translate("The device file of the memory or partition (<abbr title=\"for example\">e.g.</abbr> <code>/dev/sda1</code>)"))
-
-for i, d in ipairs(devices) do
-       o:value(d, size[d] and "%s (%s MB)" % {d, size[d]})
-end
-
-o = mount:taboption("advanced", Value, "uuid", translate("UUID"),
-       translate("If specified, mount the device by its UUID instead of a fixed device node"))
-
-o = mount:taboption("advanced", Value, "label", translate("Label"),
-       translate("If specified, mount the device by the partition label instead of a fixed device node"))
-
-
-return m
diff --git a/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua b/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/leds.lua
deleted file mode 100644 (file)
index 312e742..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-m = Map("system", translate("<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"), translate("Customizes the behaviour of the device <abbr title=\"Light Emitting Diode\">LED</abbr>s if possible."))
-
-local sysfs_path = "/sys/class/leds/"
-local leds = {}
-
-local fs   = require "nixio.fs"
-local nu   = require "nixio.util"
-local util = require "luci.util"
-
-if fs.access(sysfs_path) then
-       leds = nu.consume((fs.dir(sysfs_path)))
-end
-
-if #leds == 0 then
-       return m
-end
-
-
-s = m:section(TypedSection, "led", "")
-s.anonymous = true
-s.addremove = true
-
-function s.parse(self, ...)
-       TypedSection.parse(self, ...)
-       os.execute("/etc/init.d/led enable")
-end
-
-
-s:option(Value, "name", translate("Name"))
-
-
-sysfs = s:option(ListValue, "sysfs", translate("<abbr title=\"Light Emitting Diode\">LED</abbr> Name"))
-for k, v in ipairs(leds) do
-       sysfs:value(v)
-end
-
-s:option(Flag, "default", translate("Default state")).rmempty = false
-
-
-trigger = s:option(ListValue, "trigger", translate("Trigger"))
-
-local triggers = fs.readfile(sysfs_path .. leds[1] .. "/trigger")
-for t in triggers:gmatch("[%w-]+") do
-       if t == "default-on" then
-               trigger:value(t, translatef("Always on (%s)", t))
-       elseif t == "none" then
-               trigger:value(t, translatef("Always off (%s)", t))
-       elseif t == "timer" then
-               trigger:value(t, translatef("Custom flash intervall (%s)", t))
-       elseif t == "netdev" then
-               trigger:value(t, translatef("Network device activity (%s)", t))
-       elseif t == "heartbeat" then
-               trigger:value(t, translatef("Heartbeat intervall (%s)", t))
-       elseif t == "nand-disk" then
-               trigger:value(t, translatef("Flashmemory write access (%s)", t))
-       elseif t == "mtd" then
-               trigger:value(t, translatef("Flashmemory write access (%s)", t))
-       elseif t:match("mmc[0-9]") then
-               trigger:value(t, translatef("Flashmemory write access (%s)", t))
-       elseif t:match("switch[0-9]") then
-               trigger:value(t, translatef("Switchport activity (%s)", t))
-       elseif t:match("phy[0-9]rx") then
-               trigger:value(t, translatef("Wi-Fi data reception (%s)", t))
-       elseif t:match("phy[0-9]tx") then
-               trigger:value(t, translatef("Wi-Fi data transmission (%s)", t))
-       elseif t:match("phy[0-9]assoc") then
-               trigger:value(t, translatef("Wi-Fi client association (%s)", t))
-       elseif t:match("phy[0-9]radio") then
-               trigger:value(t, translatef("Wi-Fi on (%s)", t))
-       elseif t:match("phy[0-9]tpt") then
-               trigger:value(t, translatef("Wi-Fi activity (%s)", t))
-       else
-               trigger:value(t, translate(t:gsub("-", "")))
-       end
-end
-
-
-delayon = s:option(Value, "delayon", translate ("On-State Delay"))
-delayon:depends("trigger", "timer")
-
-delayoff = s:option(Value, "delayoff", translate ("Off-State Delay"))
-delayoff:depends("trigger", "timer")
-
-
-dev = s:option(Value, "_net_dev", translate("Device"))
-dev.rmempty = true
-dev:value("")
-dev:depends("trigger", "netdev")
-
-function dev.cfgvalue(self, section)
-       return m.uci:get("system", section, "dev")
-end
-
-function dev.write(self, section, value)
-       m.uci:set("system", section, "dev", value)
-end
-
-function dev.remove(self, section)
-       local t = trigger:formvalue(section)
-       if t ~= "netdev" and t ~= "usbdev" then
-               m.uci:delete("system", section, "dev")
-       end
-end
-
-for k, v in pairs(luci.sys.net.devices()) do
-       if v ~= "lo" then
-               dev:value(v)
-       end
-end
-
-
-mode = s:option(MultiValue, "mode", translate("Trigger Mode"))
-mode.rmempty = true
-mode:depends("trigger", "netdev")
-mode:value("link", translate("Link On"))
-mode:value("tx", translate("Transmit"))
-mode:value("rx", translate("Receive"))
-
-
-usbdev = s:option(ListValue, "_usb_dev", translate("USB Device"))
-usbdev:depends("trigger", "usbdev")
-usbdev.rmempty = true
-usbdev:value("")
-
-function usbdev.cfgvalue(self, section)
-       return m.uci:get("system", section, "dev")
-end
-
-function usbdev.write(self, section, value)
-       m.uci:set("system", section, "dev", value)
-end
-
-function usbdev.remove(self, section)
-       local t = trigger:formvalue(section)
-       if t ~= "netdev" and t ~= "usbdev" then
-               m.uci:delete("system", section, "dev")
-       end
-end
-
-
-usbport = s:option(MultiValue, "port", translate("USB Ports"))
-usbport:depends("trigger", "usbport")
-usbport.rmempty = true
-usbport.widget = "checkbox"
-usbport.cast = "table"
-usbport.size = 1
-
-function usbport.valuelist(self, section)
-       local port, ports = nil, {}
-       for port in util.imatch(m.uci:get("system", section, "port")) do
-               local b, n = port:match("^usb(%d+)-port(%d+)$")
-               if not (b and n) then
-                       b, n = port:match("^(%d+)-(%d+)$")
-               end
-               if b and n then
-                       ports[#ports+1] = "usb%u-port%u" %{ tonumber(b), tonumber(n) }
-               end
-       end
-       return ports
-end
-
-function usbport.validate(self, value)
-       return type(value) == "string" and { value } or value
-end
-
-
-for p in nixio.fs.glob("/sys/bus/usb/devices/[0-9]*/manufacturer") do
-       local id = p:match("%d+-%d+")
-       local mf = nixio.fs.readfile("/sys/bus/usb/devices/" .. id .. "/manufacturer") or "?"
-       local pr = nixio.fs.readfile("/sys/bus/usb/devices/" .. id .. "/product")      or "?"
-       usbdev:value(id, "%s (%s - %s)" %{ id, mf, pr })
-end
-
-for p in nixio.fs.glob("/sys/bus/usb/devices/*/usb[0-9]*-port[0-9]*") do
-       local bus, port = p:match("usb(%d+)-port(%d+)")
-       if bus and port then
-               usbport:value("usb%u-port%u" %{ tonumber(bus), tonumber(port) },
-                             "Hub %u, Port %u" %{ tonumber(bus), tonumber(port) })
-       end
-end
-
-port_mask = s:option(Value, "port_mask", translate ("Switch Port Mask"))
-port_mask:depends("trigger", "switch0")
-
-return m
diff --git a/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua b/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/startup.lua
deleted file mode 100644 (file)
index 9e19ac5..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2010-2012 Jo-Philipp Wich <jow@openwrt.org>
--- Copyright 2010 Manuel Munz <freifunk at somakoma dot de>
--- Licensed to the public under the Apache License 2.0.
-
-local fs  = require "nixio.fs"
-local sys = require "luci.sys"
-
-local inits = { }
-
-for _, name in ipairs(sys.init.names()) do
-       local index   = sys.init.index(name)
-       local enabled = sys.init.enabled(name)
-
-       if index < 255 then
-               inits["%02i.%s" % { index, name }] = {
-                       name    = name,
-                       index   = tostring(index),
-                       enabled = enabled
-               }
-       end
-end
-
-
-m = SimpleForm("initmgr", translate("Initscripts"), translate("You can enable or disable installed init scripts here. Changes will applied after a device reboot.<br /><strong>Warning: If you disable essential init scripts like \"network\", your device might become inaccessible!</strong>"))
-m.reset = false
-m.submit = false
-
-
-s = m:section(Table, inits)
-
-i = s:option(DummyValue, "index", translate("Start priority"))
-n = s:option(DummyValue, "name", translate("Initscript"))
-
-
-e = s:option(Button, "endisable", translate("Enable/Disable"))
-
-e.render = function(self, section, scope)
-       if inits[section].enabled then
-               self.title = translate("Enabled")
-               self.inputstyle = "save"
-       else
-               self.title = translate("Disabled")
-               self.inputstyle = "reset"
-       end
-
-       Button.render(self, section, scope)
-end
-
-e.write = function(self, section)
-       if inits[section].enabled then
-               inits[section].enabled = false
-               return sys.init.disable(inits[section].name)
-       else
-               inits[section].enabled = true
-               return sys.init.enable(inits[section].name)
-       end
-end
-
-
-start = s:option(Button, "start", translate("Start"))
-start.inputstyle = "apply"
-start.write = function(self, section)
-       sys.call("/etc/init.d/%s %s >/dev/null" %{ inits[section].name, self.option })
-end
-
-restart = s:option(Button, "restart", translate("Restart"))
-restart.inputstyle = "reload"
-restart.write = start.write
-
-stop = s:option(Button, "stop", translate("Stop"))
-stop.inputstyle = "remove"
-stop.write = start.write
-
-
-
-f = SimpleForm("rc", translate("Local Startup"),
-       translate("This is the content of /etc/rc.local. Insert your own commands here (in front of 'exit 0') to execute them at the end of the boot process."))
-
-t = f:field(TextValue, "rcs")
-t.rmempty = true
-t.rows = 20
-
-function t.cfgvalue()
-       return fs.readfile("/etc/rc.local") or ""
-end
-
-function f.handle(self, state, data)
-       if state == FORM_VALID then
-               if data.rcs then
-                       fs.writefile("/etc/rc.local", data.rcs:gsub("\r\n", "\n"))
-               end
-       end
-       return true
-end
-
-return m, f
diff --git a/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua b/package/luci/modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua
deleted file mode 100644 (file)
index b58bbd4..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
--- Copyright 2008 Steven Barth <steven@midlink.org>
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local sys   = require "luci.sys"
-local zones = require "luci.sys.zoneinfo"
-local fs    = require "nixio.fs"
-local conf  = require "luci.config"
-
-local m, s, o
-local has_ntpd = fs.access("/usr/sbin/ntpd")
-local has_zram = fs.access("/etc/init.d/zram")
-
-m = Map("system", translate("System"), translate("Here you can configure the basic aspects of your device like its hostname or the timezone."))
-m:chain("luci")
-
-
-s = m:section(TypedSection, "system", translate("System Properties"))
-s.anonymous = true
-s.addremove = false
-
-s:tab("general",  translate("General Settings"))
-s:tab("logging",  translate("Logging"))
-s:tab("language", translate("Language and Style"))
-s:tab("advanced", translate("Advanced"))
-if has_zram then s:tab("zram", translate("ZRam Settings")) end
-
---
--- System Properties
---
-
-o = s:taboption("general", DummyValue, "_systime", translate("Local Time"))
-o.template = "admin_system/clock_status"
-
-
-o = s:taboption("general", Value, "hostname", translate("Hostname"))
-o.datatype = "hostname"
-
-function o.write(self, section, value)
-       Value.write(self, section, value)
-       sys.hostname(value)
-end
-
-
-o = s:taboption("general", ListValue, "zonename", translate("Timezone"))
-o:value("UTC")
-
-for i, zone in ipairs(zones.TZ) do
-       o:value(zone[1])
-end
-
-function o.write(self, section, value)
-       local function lookup_zone(title)
-               for _, zone in ipairs(zones.TZ) do
-                       if zone[1] == title then return zone[2] end
-               end
-       end
-
-       AbstractValue.write(self, section, value)
-       local timezone = lookup_zone(value) or "GMT0"
-       self.map.uci:set("system", section, "timezone", timezone)
-       fs.writefile("/etc/TZ", timezone .. "\n")
-end
-
-
---
--- Logging
---
-
-o = s:taboption("logging", Value, "log_size", translate("System log buffer size"), "kiB")
-o.optional    = true
-o.placeholder = 16
-o.datatype    = "uinteger"
-
-o = s:taboption("logging", Value, "log_ip", translate("External system log server"))
-o.optional    = true
-o.placeholder = "0.0.0.0"
-o.datatype    = "ip4addr"
-
-o = s:taboption("logging", Value, "log_port", translate("External system log server port"))
-o.optional    = true
-o.placeholder = 514
-o.datatype    = "port"
-
-o = s:taboption("logging", ListValue, "log_proto", translate("External system log server protocol"))
-o:value("udp", "UDP")
-o:value("tcp", "TCP")
-
-o = s:taboption("logging", Value, "log_file", translate("Write system log to file"))
-o.optional    = true
-o.placeholder = "/tmp/system.log"
-
-o = s:taboption("logging", ListValue, "conloglevel", translate("Log output level"))
-o:value(8, translate("Debug"))
-o:value(7, translate("Info"))
-o:value(6, translate("Notice"))
-o:value(5, translate("Warning"))
-o:value(4, translate("Error"))
-o:value(3, translate("Critical"))
-o:value(2, translate("Alert"))
-o:value(1, translate("Emergency"))
-
-o = s:taboption("logging", ListValue, "cronloglevel", translate("Cron Log Level"))
-o.default = 8
-o:value(5, translate("Debug"))
-o:value(8, translate("Normal"))
-o:value(9, translate("Warning"))
-
-
---
--- Zram Properties
---
-if has_zram then
-       o = s:taboption("zram", Value, "zram_size_mb", translate("ZRam Size"), translate("Size of the ZRam device in megabytes"))
-       o.optional    = true
-       o.placeholder = 16
-       o.datatype    = "uinteger"
-       
-       o = s:taboption("zram", ListValue, "zram_comp_algo", translate("ZRam Compression Algorithm"))
-       o.optional    = true
-       o.placeholder = lzo
-       o:value("lzo", "lzo")
-       o:value("lz4", "lz4")
-       o:value("deflate", "deflate")
-       
-       o = s:taboption("zram", Value, "zram_comp_streams", translate("ZRam Compression Streams"), translate("Number of parallel threads used for compression"))
-       o.optional    = true
-       o.placeholder = 1
-       o.datatype    = "uinteger"
-end
-
-
---
--- Language & Style
---
-
-o = s:taboption("language", ListValue, "_lang", translate("Language"))
-o:value("auto")
-
-local i18ndir = luci.i18n.i18ndir .. "base."
-for k, v in luci.util.kspairs(conf.languages) do
-       local file = i18ndir .. k:gsub("_", "-")
-       if k:sub(1, 1) ~= "." and fs.access(file .. ".lmo") then
-               o:value(k, v)
-       end
-end
-
-function o.cfgvalue(...)
-       return m.uci:get("luci", "main", "lang")
-end
-
-function o.write(self, section, value)
-       m.uci:set("luci", "main", "lang", value)
-end
-
-
-o = s:taboption("language", ListValue, "_mediaurlbase", translate("Theme"))
-for k, v in pairs(conf.themes) do
-       if k:sub(1, 1) ~= "." then
-               o:value(v, k)
-       end
-end
-
-function o.cfgvalue(...)
-       return m.uci:get("luci", "main", "mediaurlbase")
-end
-
-function o.write(self, section, value)
-       m.uci:set("luci", "main", "mediaurlbase", value)
-end
-
-
---
--- Advanced
---
-
-o = s:taboption("advanced", Value, "_pollinterval",
-       translate("Polling interval"),
-       translate("Polling interval for status queries in seconds"))
-o.datatype = "range(3, 20)"
-o.default = 5
-o:value("3")
-o:value("5")
-o:value("10")
-
-function o.cfgvalue(...)
-       return m.uci:get("luci", "main", "pollinterval")
-end
-
-function o.write(self, section, value)
-       m.uci:set("luci", "main", "pollinterval", value)
-end
-
-
---
--- NTP
---
-
-if has_ntpd then
-
-       -- timeserver setup was requested, create section and reload page
-       if m:formvalue("cbid.system._timeserver._enable") then
-               m.uci:section("system", "timeserver", "ntp",
-                       {
-                       server = { "0.openwrt.pool.ntp.org", "1.openwrt.pool.ntp.org", "2.openwrt.pool.ntp.org", "3.openwrt.pool.ntp.org" }
-                       }
-               )
-
-               m.uci:save("system")
-               luci.http.redirect(luci.dispatcher.build_url("admin/system", arg[1]))
-               return
-       end
-
-       local has_section = false
-       m.uci:foreach("system", "timeserver", 
-               function(s) 
-                       has_section = true 
-                       return false
-       end)
-
-       if not has_section then
-
-               s = m:section(TypedSection, "timeserver", translate("Time Synchronization"))
-               s.anonymous   = true
-               s.cfgsections = function() return { "_timeserver" } end
-
-               x = s:option(Button, "_enable")
-               x.title      = translate("Time Synchronization is not configured yet.")
-               x.inputtitle = translate("Set up Time Synchronization")
-               x.inputstyle = "apply"
-
-       else
-               
-               s = m:section(TypedSection, "timeserver", translate("Time Synchronization"))
-               s.anonymous = true
-               s.addremove = false
-
-               o = s:option(Flag, "enable", translate("Enable NTP client"))
-               o.rmempty = false
-
-               function o.cfgvalue(self)
-                       return sys.init.enabled("sysntpd")
-                               and self.enabled or self.disabled
-               end
-
-               function o.write(self, section, value)
-                       if value == self.enabled then
-                               sys.init.enable("sysntpd")
-                               sys.call("env -i /etc/init.d/sysntpd start >/dev/null")
-                       else
-                               sys.call("env -i /etc/init.d/sysntpd stop >/dev/null")
-                               sys.init.disable("sysntpd")
-                       end
-               end
-
-
-               o = s:option(Flag, "enable_server", translate("Provide NTP server"))
-               o:depends("enable", "1")
-
-
-               o = s:option(DynamicList, "server", translate("NTP server candidates"))
-               o.datatype = "host(0)"
-               o:depends("enable", "1")
-
-               -- retain server list even if disabled
-               function o.remove() end
-
-       end
-end
-
-return m
diff --git a/package/luci/modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm b/package/luci/modules/luci-mod-system/luasrc/view/admin_system/applyreboot.htm
deleted file mode 100644 (file)
index e235bd4..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<html>
-       <head>
-               <title><%=luci.sys.hostname()%> - <%= title or translate("Rebooting...") %></title>
-               <link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/cascade.css" />
-               <script type="text/javascript" src="<%=resource%>/xhr.js"></script>
-               <script type="text/javascript">//<![CDATA[
-                       var interval = window.setInterval(function() {
-                               var img = new Image();
-                               var target = ('https:' == document.location.protocol ? 'https://' : 'http://') + <%=addr and "'%s'" % addr or "window.location.host"%>;
-               
-                               img.onload = function() {
-                                       window.clearInterval(interval);
-                                       window.location.replace(target);
-                               };
-                               
-                               img.src = target + '<%=resource%>/icons/loading.gif?' + Math.random();
-                               
-                       }, 5000);
-               //]]></script>
-       </head>
-       <body>
-               <header>
-                       <div class="fill">
-                               <div class="container">
-                                       <p class="brand"><%=luci.sys.hostname() or "?"%></p>
-                               </div>
-                       </div>
-               </header>
-               &#160;
-               <div class="main">
-                       <div id="maincontainer">
-                               <div id="maincontent" class="container">
-                                       <h2 name="content" id="applyreboot-container" ><%:System%> - <%= title or translate("Rebooting...") %></h2>
-                                       <div class="cbi-section" id="applyreboot-section">
-                                               <div>
-                                                       <%= msg or translate("Changes applied.") %>
-                                               </div>
-                                               <div>
-                                                       <img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" />
-                                                       <%:Waiting for changes to be applied...%>
-                                               </div>
-                                       </div>
-                               </div>
-                       </div>
-               </div>
-       </body>
-</html>
\ No newline at end of file
diff --git a/package/luci/modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm b/package/luci/modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm
deleted file mode 100644 (file)
index c1f3361..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<ul class="cbi-tabmenu">
-       <li class="cbi-tab-disabled"><a href="<%=url("admin/system/flashops")%>"><%:Actions%></a></li>
-       <li class="cbi-tab"><a href="#"><%:Configuration%></a></li>
-</ul>
diff --git a/package/luci/modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm b/package/luci/modules/luci-mod-system/luasrc/view/admin_system/clock_status.htm
deleted file mode 100644 (file)
index 2c96eb4..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<%+cbi/valueheader%>
-
-<script type="text/javascript">//<![CDATA[
-       XHR.poll(-1, '<%=url('admin/system/clock_status')%>', null,
-               function(x, rv)
-               {
-                       var s = document.getElementById('<%=self.option%>-clock-status');
-                       if (s)
-                       {
-                               s.innerHTML = rv.timestring || '?';
-                       }
-               }
-       );
-
-       function sync_clock(btn)
-       {
-               btn.disabled = true;
-               btn.value    = '<%:Synchronizing...%>';
-
-               (new XHR()).post('<%=url('admin/system/clock_status')%>',
-                       { token: '<%=token%>', set: Math.floor((new Date()).getTime() / 1000) },
-                       function()
-                       {
-                               btn.disabled = false;
-                               btn.value    = '<%:Sync with browser%>';
-                       }
-               );
-
-               return false;
-       }
-//]]></script>
-
-<span id="<%=self.option%>-clock-status"><em><%:Collecting data...%></em></span>
-<input type="button" class="cbi-button cbi-button-apply" value="<%:Sync with browser%>" onclick="return sync_clock(this)" />
-
-<%+cbi/valuefooter%>
diff --git a/package/luci/modules/luci-mod-system/luasrc/view/admin_system/flashops.htm b/package/luci/modules/luci-mod-system/luasrc/view/admin_system/flashops.htm
deleted file mode 100644 (file)
index 8204d38..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2015 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<h2 name="content"><%:Flash operations%></h2>
-
-<ul class="cbi-tabmenu">
-       <li class="cbi-tab"><a href="#"><%:Actions%></a></li>
-       <li class="cbi-tab-disabled"><a href="<%=url('admin/system/flashops/backupfiles')%>"><%:Configuration%></a></li>
-</ul>
-
-<div class="cbi-section">
-       <h3><%:Backup%></h3>
-       <div class="cbi-section-descr"><%:Click "Generate archive" to download a tar archive of the current configuration files.%></div>
-       <div class="cbi-section-node">
-               <form class="inline" method="post" action="<%=url('admin/system/flashops/backup')%>">
-                       <input type="hidden" name="token" value="<%=token%>" />
-                       <div class="cbi-value<% if not reset_avail then %> cbi-value-last<% end %>">
-                               <label class="cbi-value-title" for="image"><%:Download backup%></label>
-                               <div class="cbi-value-field">
-                                       <input class="cbi-button cbi-button-action important" type="submit" name="backup" value="<%:Generate archive%>" />
-                               </div>
-                       </div>
-               </form>
-       </div>
-
-       <h3><%:Restore%></h3>
-       <div class="cbi-section-descr"><%:To restore configuration files, you can upload a previously generated backup archive here. To reset the firmware to its initial state, click "Perform reset" (only possible with squashfs images).%></div>
-       <div class="cbi-section-node">
-               <% if reset_avail then %>
-               <form class="inline" method="post" action="<%=url('admin/system/flashops/reset')%>">
-                       <input type="hidden" name="token" value="<%=token%>" />
-                       <div class="cbi-value cbi-value-last">
-                               <label class="cbi-value-title"><%:Reset to defaults%></label>
-                               <div class="cbi-value-field">
-                                       <input onclick="return confirm('<%:Really reset all changes?%>')" class="cbi-button cbi-button-reset" type="submit" name="reset" value="<%:Perform reset%>" />
-                               </div>
-                       </div>
-               </form>
-               <% end %>
-               <form class="inline" method="post" action="<%=url('admin/system/flashops/restore')%>" enctype="multipart/form-data">
-                       <div class="cbi-value cbi-value-last">
-                               <label class="cbi-value-title" for="archive"><%:Restore backup%></label>
-                               <div class="cbi-value-field">
-                                       <input type="hidden" name="token" value="<%=token%>" />
-                                       <input type="file" name="archive" id="archive" />
-                                       <input type="submit" class="cbi-button cbi-button-action important" name="restore" value="<%:Upload archive...%>" />
-                                       <% if reset_avail then %>
-                                               <div class="cbi-value-description"><%:Custom files (certificates, scripts) may remain on the system. To prevent this, perform a factory-reset first.%></div>
-                                       <% end %>
-                               </div>
-                       </div>
-               </form>
-               <% if backup_invalid then %>
-                       <div class="cbi-section-error"><%:The backup archive does not appear to be a valid gzip file.%></div>
-               <% end %>
-       </div>
-
-       <% local mtds = require("luci.sys").mtds(); if #mtds > 0 then -%>
-       <h3><%:Save mtdblock contents%></h3>
-       <div class="cbi-section-descr"><%:Click "Save mtdblock" to download specified mtdblock file. (NOTE: THIS FEATURE IS FOR PROFESSIONALS! )%></div>
-       <div class="cbi-section-node">
-               <form class="inline" method="post" action="<%=url('admin/system/flashops/backupmtdblock')%>">
-                       <input type="hidden" name="token" value="<%=token%>" />
-                       <div class="cbi-value">
-                               <label class="cbi-value-title" for="mtdblockname"><%:Choose mtdblock%></label>
-                               <div class="cbi-value-field">
-                                       <select class="cbi-input-select" data-update="change" name="mtdblockname" id="mtdblockname">
-                                               <% for i, key in ipairs(mtds) do
-                                                       if key and key.name ~= "rootfs_data" then -%>
-                                                               <option<%=
-                                                                       attr("id", "mtdblockname-" .. key.name) ..
-                                                                       attr("value", key.name .. '/'.. key.size .. '/' .. i - 1) ..
-                                                                       attr("data-index", i) ..
-                                                                       ifattr(key.name == "linux" or key.name == "firmware", "selected", "selected")
-                                                               %>><%=pcdata(key.name)%></option>
-                                               <%      end
-                                                end -%>
-                                       </select>
-                               </div>
-                       </div>
-                       <div class="cbi-value cbi-value-last<% if reset_avail then %> cbi-value-error<% end %>">
-                               <label class="cbi-value-title" for="image"><%:Download mtdblock%></label>
-                               <div class="cbi-value-field">
-                                       <input type="submit" class="cbi-button cbi-button-action important" value="<%:Save mtdblock%>" />
-                               </div>
-                       </div>
-               </form>
-       </div>
-       <% end %>
-
-</div>
-
-<div class="cbi-section">
-       <h3><%:Flash new firmware image%></h3>
-       <% if upgrade_avail then %>
-               <form method="post" action="<%=url('admin/system/flashops/sysupgrade')%>" enctype="multipart/form-data">
-                       <input type="hidden" name="token" value="<%=token%>" />
-                       <div class="cbi-section-descr"><%:Upload a sysupgrade-compatible image here to replace the running firmware. Check "Keep settings" to retain the current configuration (requires a compatible firmware image).%></div>
-                       <div class="cbi-section-node">
-                               <div class="cbi-value">
-                                       <label class="cbi-value-title" for="keep"><%:Keep settings%></label>
-                                       <div class="cbi-value-field">
-                                               <input type="checkbox" name="keep" id="keep" checked="checked" />
-                                       </div>
-                               </div>
-                               <% if image_invalid then %>
-                               <div class="cbi-value">
-                                       <label class="cbi-value-title" for="force"><%:Force upgrade%></label>
-                                       <div class="cbi-value-field">
-                                               <input type="checkbox" name="force" id="force" />
-                                       </div>
-                                       <div class="cbi-section-error">
-                                               <%:The uploaded image file does not contain a supported format. Make sure that you choose the generic image format for your platform. %>
-                                               <%:Select 'Force upgrade' to flash the image even if the image format check fails. Use only if you are sure that the firmware is correct and meant for your device! %>
-                                       </div>
-                               </div>
-                               <% end %>
-                               <div class="cbi-value cbi-value-last<% if image_invalid then %> cbi-value-error<% end %>">
-                                       <label class="cbi-value-title" for="image"><%:Image%></label>
-                                       <div class="cbi-value-field">
-                                               <input type="file" name="image" id="image" />
-                                               <input type="submit" class="cbi-button cbi-button-action important" value="<%:Flash image...%>" />
-                                       </div>
-                               </div>
-                       </div>
-               </form>
-       <% else %>
-               <div class="cbi-section-descr"><%:Sorry, there is no sysupgrade support present; a new firmware image must be flashed manually. Please refer to the wiki for device specific install instructions.%></div>
-       <% end %>
-</div>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-system/luasrc/view/admin_system/password.htm b/package/luci/modules/luci-mod-system/luasrc/view/admin_system/password.htm
deleted file mode 100644 (file)
index 09cea4f..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<%+header%>
-
-<input type="password" aria-hidden="true" style="position:absolute; left:-10000px" />
-
-<div class="cbi-map">
-       <h2><%:Router Password%></h2>
-
-       <div class="cbi-section-descr">
-               <%:Changes the administrator password for accessing the device%>
-       </div>
-
-       <div class="cbi-section-node">
-               <div class="cbi-value">
-                       <label class="cbi-value-title" for="image"><%:Password%></label>
-                       <div class="cbi-value-field">
-                               <input type="password" name="pw1" /><!--
-                               --><button class="cbi-button cbi-button-neutral" title="<%:Reveal/hide password%>" aria-label="<%:Reveal/hide password%>" onclick="var e = this.previousElementSibling; e.type = (e.type === 'password') ? 'text' : 'password'">∗</button>
-                       </div>
-               </div>
-
-               <div class="cbi-value">
-                       <label class="cbi-value-title" for="image"><%:Confirmation%></label>
-                       <div class="cbi-value-field">
-                               <input type="password" name="pw2" onkeydown="if (event.keyCode === 13) submitPassword(event)" /><!--
-                               --><button class="cbi-button cbi-button-neutral" title="<%:Reveal/hide password%>" aria-label="<%:Reveal/hide password%>" onclick="var e = this.previousElementSibling; e.type = (e.type === 'password') ? 'text' : 'password'">∗</button>
-                       </div>
-               </div>
-       </div>
-</div>
-
-<div class="cbi-page-actions">
-       <button class="btn cbi-button-apply" onclick="submitPassword(event)"><%:Save%></button>
-</div>
-
-<script type="application/javascript" src="<%=resource%>/view/system/password.js"></script>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-system/luasrc/view/admin_system/reboot.htm b/package/luci/modules/luci-mod-system/luasrc/view/admin_system/reboot.htm
deleted file mode 100644 (file)
index d23664a..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2015 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<h2 name="content"><%:Reboot%></h2>
-
-<p><%:Reboots the operating system of your device%></p>
-
-<%- local c = require("luci.model.uci").cursor():changes(); if c and next(c) then -%>
-       <p class="alert-message warning"><%:Warning: There are unsaved changes that will get lost on reboot!%></p>
-<%- end -%>
-
-<hr />
-
-<input class="cbi-button cbi-button-action important" type="button" value="<%:Perform reboot%>" onclick="reboot(this)" />
-
-<p class="alert-message notice reboot-message" style="display:none">
-       <img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" />
-       <span><%:Device is rebooting...%></span>
-</p>
-
-<script type="text/javascript">//<![CDATA[
-       var tries = 0,
-           message = document.querySelector('p.reboot-message'),
-           label = message.querySelector('span');
-
-       function ok() {
-               window.location = '<%=url("admin")%>';
-       }
-
-       function check() {
-               window.setTimeout(ping, 5000);
-       }
-
-       function ping() {
-               var img = document.createElement('img');
-
-               img.onload = ok;
-               img.onerror = check;
-               img.src = '<%=resource%>/icons/loading.gif?' + Math.random();
-
-               if (tries++ >= 30) {
-                       message.classList.remove('notice');
-                       message.classList.add('warning');
-                       label.innerHTML = '<%:Device unreachable! Still waiting for device...%>';
-               }
-       }
-
-       function reboot(button) {
-               button.style.display = 'none';
-               message.style.display = '';
-               label.innerHTML = '<%:Waiting for device...%>';
-
-               (new XHR()).post('<%=url("admin/system/reboot/call")%>', { token: '<%=token%>' }, check);
-       }
-//]]></script>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm b/package/luci/modules/luci-mod-system/luasrc/view/admin_system/sshkeys.htm
deleted file mode 100644 (file)
index ac453f3..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<%+header%>
-
-<style type="text/css">
-       .cbi-dynlist {
-               max-width: 100%;
-       }
-
-       .cbi-dynlist .item > small {
-               display: block;
-               direction: rtl;
-               overflow: hidden;
-               text-align: left;
-       }
-
-       .cbi-dynlist .item > small > code {
-               direction: ltr;
-               white-space: nowrap;
-               unicode-bidi: bidi-override;
-       }
-
-       @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
-               .cbi-dynlist .item > small { direction: ltr }
-       }
-</style>
-
-<div class="cbi-map">
-       <h2><%:SSH-Keys%></h2>
-
-       <div class="cbi-section-descr">
-               <%_Public keys allow for the passwordless SSH logins with a higher security compared to the use of plain passwords. In order to upload a new key to the device, paste an OpenSSH compatible public key line or drag a <code>.pub</code> file into the input field.%>
-       </div>
-
-       <div class="cbi-section-node">
-               <div class="cbi-dynlist" name="sshkeys">
-                       <p class="spinning"><%:Loading SSH keys…%></p>
-                       <div class="add-item" ondragover="dragKey(event)" ondrop="dropKey(event)">
-                               <input class="cbi-input-text" type="text" placeholder="<%:Paste or drag SSH key file…%>" onkeydown="if (event.keyCode === 13) addKey(event)" />
-                               <button class="cbi-button" onclick="addKey(event)"><%:Add key%></button>
-                       </div>
-               </div>
-       </div>
-</div>
-
-<script type="application/javascript" src="<%=resource%>/view/system/sshkeys.js"></script>
-
-<%+footer%>
diff --git a/package/luci/modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm b/package/luci/modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm
deleted file mode 100644 (file)
index 597ddfd..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2009 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<h2 name="content"><%:Flash Firmware%> - <%:Verify%></h2>
-<p>
-       <%_ The flash image was uploaded.
-               Below is the checksum and file size listed,
-               compare them with the original file to ensure data integrity.<br />
-               Click "Proceed" below to start the flash procedure. %>
-
-       <% if storage > 0 and size > storage then %>
-               <br /><br />
-               <div class="error"><%:It appears that you are trying to
-                       flash an image that does not fit into the flash memory, please verify
-                       the image file! %></div>
-       <% end %>
-
-</p>
-
-<div class="cbi-section">
-       <ul>
-               <li><%:Checksum%><br />
-               <%:MD5%>: <code><%=checksum%></code><br />
-               <%:SHA256%>: <code><%=sha256ch%></code></li>
-               <li><%:Size%>: <%
-                       local w = require "luci.tools.webadmin"
-                       write(w.byte_format(size))
-
-                       if storage > 0 then
-                               write(luci.i18n.translatef(
-                                       " (%s available)",
-                                       w.byte_format(storage)
-                               ))
-                       end
-               %></li>
-               <li><% if keep then %>
-                       <%:Configuration files will be kept%>
-               <% else %>
-                       <%:Caution: Configuration files will be erased%>
-               <% end %></li>
-               <% if force then %>
-               <li>
-                       <%:Caution: System upgrade will be forced%>
-               </li>
-               <% end %>
-       </ul>
-</div>
-
-<div class="cbi-page-actions right">
-       <form class="inline" action="<%=REQUEST_URI%>" method="post">
-               <input type="hidden" name="token" value="<%=token%>" />
-               <input type="hidden" name="step" value="2" />
-               <input type="hidden" name="keep" value="<%=keep and "1" or ""%>" />
-               <input type="hidden" name="force" value="<%=force and "1" or ""%>" />
-               <input class="cbi-button cbi-button-reset" name="cancel" type="submit" value="<%:Cancel%>" />
-               <input class="cbi-button cbi-button-apply" type="submit" value="<%:Proceed%>" />
-       </form>
-</div>
-
-<%+footer%>
diff --git a/package/luci/protocols/luci-proto-3g/Makefile b/package/luci/protocols/luci-proto-3g/Makefile
deleted file mode 100644 (file)
index d1d5455..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Support for 3G
-LUCI_DEPENDS:=+comgt
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua b/package/luci/protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua
deleted file mode 100644 (file)
index e05e3a4..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local device, apn, service, pincode, username, password, dialnumber
-local ipv6, maxwait, defaultroute, metric, peerdns, dns,
-      keepalive_failure, keepalive_interval, demand
-
-
-device = section:taboption("general", Value, "device", translate("Modem device"))
-device.rmempty = false
-
-local device_suggestions = nixio.fs.glob("/dev/tty[A-Z]*")
-       or nixio.fs.glob("/dev/tts/*")
-
-if device_suggestions then
-       local node
-       for node in device_suggestions do
-               device:value(node)
-       end
-end
-
-
-service = section:taboption("general", Value, "service", translate("Service Type"))
-service:value("", translate("-- Please choose --"))
-service:value("umts", "UMTS/GPRS")
-service:value("umts_only", translate("UMTS only"))
-service:value("gprs_only", translate("GPRS only"))
-service:value("evdo", "CDMA/EV-DO")
-
-
-apn = section:taboption("general", Value, "apn", translate("APN"))
-
-
-pincode = section:taboption("general", Value, "pincode", translate("PIN"))
-
-
-username = section:taboption("general", Value, "username", translate("PAP/CHAP username"))
-
-
-password = section:taboption("general", Value, "password", translate("PAP/CHAP password"))
-password.password = true
-
-dialnumber = section:taboption("general", Value, "dialnumber", translate("Dial number"))
-dialnumber.placeholder = "*99***1#"
-
-if luci.model.network:has_ipv6() then
-
-       ipv6 = section:taboption("advanced", ListValue, "ipv6",
-               translate("Obtain IPv6-Address"))
-
-       ipv6:value("auto", translate("Automatic"))
-       ipv6:value("0", translate("Disabled"))
-       ipv6:value("1", translate("Manual"))
-       ipv6.default = "auto"
-
-end
-
-
-maxwait = section:taboption("advanced", Value, "maxwait",
-       translate("Modem init timeout"),
-       translate("Maximum amount of seconds to wait for the modem to become ready"))
-
-maxwait.placeholder = "20"
-maxwait.datatype    = "min(1)"
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Use default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-peerdns = section:taboption("advanced", Flag, "peerdns",
-       translate("Use DNS servers advertised by peer"),
-       translate("If unchecked, the advertised DNS server addresses are ignored"))
-
-peerdns.default = peerdns.enabled
-
-
-dns = section:taboption("advanced", DynamicList, "dns",
-       translate("Use custom DNS servers"))
-
-dns:depends("peerdns", "")
-dns.datatype = "ipaddr"
-dns.cast     = "string"
-
-
-keepalive_failure = section:taboption("advanced", Value, "_keepalive_failure",
-       translate("LCP echo failure threshold"),
-       translate("Presume peer to be dead after given amount of LCP echo failures, use 0 to ignore failures"))
-
-function keepalive_failure.cfgvalue(self, section)
-       local v = m:get(section, "keepalive")
-       if v and #v > 0 then
-               return tonumber(v:match("^(%d+)[ ,]+%d+") or v)
-       end
-end
-
-function keepalive_failure.write() end
-function keepalive_failure.remove() end
-
-keepalive_failure.placeholder = "0"
-keepalive_failure.datatype    = "uinteger"
-
-
-keepalive_interval = section:taboption("advanced", Value, "_keepalive_interval",
-       translate("LCP echo interval"),
-       translate("Send LCP echo requests at the given interval in seconds, only effective in conjunction with failure threshold"))
-
-function keepalive_interval.cfgvalue(self, section)
-       local v = m:get(section, "keepalive")
-       if v and #v > 0 then
-               return tonumber(v:match("^%d+[ ,]+(%d+)"))
-       end
-end
-
-function keepalive_interval.write(self, section, value)
-       local f = tonumber(keepalive_failure:formvalue(section)) or 0
-       local i = tonumber(value) or 5
-       if i < 1 then i = 1 end
-       if f > 0 then
-               m:set(section, "keepalive", "%d %d" %{ f, i })
-       else
-               m:del(section, "keepalive")
-       end
-end
-
-keepalive_interval.remove      = keepalive_interval.write
-keepalive_interval.placeholder = "5"
-keepalive_interval.datatype    = "min(1)"
-
-
-demand = section:taboption("advanced", Value, "demand",
-       translate("Inactivity timeout"),
-       translate("Close inactive connection after the given amount of seconds, use 0 to persist connection"))
-
-demand.placeholder = "0"
-demand.datatype    = "uinteger"
diff --git a/package/luci/protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua b/package/luci/protocols/luci-proto-3g/luasrc/model/network/proto_3g.lua
deleted file mode 100644 (file)
index b245483..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
--- Copyright 2018 Florian Eckert <fe@dev.tdt.de>
--- Licensed to the public under the Apache License 2.0.
-
-local netmod = luci.model.network
-local interface = luci.model.network.interface
-
-local proto = netmod:register_protocol("3g")
-
-function proto.get_i18n(self)
-       return luci.i18n.translate("UMTS/GPRS/EV-DO")
-end
-
-function proto.ifname(self)
-       return "3g-" .. self.sid
-end
-
-function proto.get_interface(self)
-       return interface(self:ifname(), self)
-end
-
-function proto.is_installed(self)
-       return nixio.fs.access("/lib/netifd/proto/3g.sh")
-end
-
-function proto.opkg_package(self)
-       return "comgt"
-end
-
-function proto.is_floating(self)
-       return true
-end
-
-function proto.is_virtual(self)
-       return true
-end
-
-function proto.get_interfaces(self)
-       return nil
-end
-
-function proto.contains_interface(self, ifname)
-       if self:is_floating() then
-               return (netmod:ifnameof(ifc) == self:ifname())
-       else
-               return netmod.protocol.contains_interface(self, ifc)
-       end
-end
-
-netmod:register_pattern_virtual("^3g%-%w")
diff --git a/package/luci/protocols/luci-proto-hnet/Makefile b/package/luci/protocols/luci-proto-hnet/Makefile
deleted file mode 100644 (file)
index 10beb03..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright (C) 2018 Florian Eckert <fe@dev.tdt.de>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Support for hnet
-LUCI_DEPENDS:=
-
-PKG_LICENSE:=Apache-2.0
-PKG_MAINTAINER:=Steven Barth <steven@midlink.org>
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua b/package/luci/protocols/luci-proto-hnet/luasrc/model/cbi/admin_network/proto_hnet.lua
deleted file mode 100644 (file)
index 2ed34fa..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
--- Copyright 2013 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local mode = section:taboption("general", ListValue, "mode", translate("Category"))
-mode:value("auto", translate("Automatic"))
-mode:value("external", translate("External"))
-mode:value("internal", translate("Internal"))
-mode:value("leaf", translate("Leaf"))
-mode:value("guest", translate("Guest"))
-mode:value("adhoc", translate("Ad-Hoc"))
-mode:value("hybrid", translate("Hybrid"))
-mode.default = "auto"
-
-
-
-local plen = section:taboption("advanced", Value, "ip6assign", translate("IPv6 assignment length"),
-       translate("Assign a part of given length of every public IPv6-prefix to this interface"))
-plen.datatype = "max(128)"
-plen.default = "64"
-
-section:taboption("advanced", Value, "link_id", translate("IPv6 assignment hint"),
-       translate("Assign prefix parts using this hexadecimal subprefix ID for this interface."))
-
-plen = section:taboption("advanced", Value, "ip4assign", translate("IPv4 assignment length"))
-plen.datatype = "max(32)"
-plen.default = "24"
-
-local o = section:taboption("advanced", Value, "dnsname", translate("DNS-Label / FQDN"))
-o.default = map.name
-
-luci.tools.proto.opt_macaddr(section, ifc, translate("Override MAC address"))
-
-o = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
-o.placeholder = "1500"
-o.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua b/package/luci/protocols/luci-proto-hnet/luasrc/model/network/proto_hnet.lua
deleted file mode 100644 (file)
index f525061..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
--- Copyright 2014 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local proto = luci.model.network:register_protocol("hnet")
-
-function proto.get_i18n(self)
-       return luci.i18n.translate("Automatic Homenet (HNCP)")
-end
-
-function proto.is_installed(self)
-       return nixio.fs.access("/lib/netifd/proto/hnet.sh")
-end
-
-function proto.opkg_package(self)
-       return "hnet-full"
-end
diff --git a/package/luci/protocols/luci-proto-ipip/Makefile b/package/luci/protocols/luci-proto-ipip/Makefile
deleted file mode 100644 (file)
index 6af8564..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Copyright 2016 Roger Pueyo Centelles <roger.pueyo@guifi.net>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Support for IPIP tunnels (IPv4-in-IPv4 RFC2003)
-LUCI_DEPENDS:=+ipip
-
-PKG_MAINTAINER:=Roger Pueyo Centelles <roger.pueyo@guifi.net>
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua b/package/luci/protocols/luci-proto-ipip/luasrc/model/cbi/admin_network/proto_ipip.lua
deleted file mode 100644 (file)
index 8817f18..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
--- Copyright 2016 Roger Pueyo Centelles <roger.pueyo@guifi.net>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local peeraddr, ipaddr, ttl, tos, df, mtu, tunlink
-
-peeraddr = section:taboption("general", Value, "peeraddr", translate("Remote IPv4 address or FQDN"), translate("The IPv4 address or the fully-qualified domain name of the remote tunnel end."))
-peeraddr.optional = false
-peeraddr.datatype = "or(hostname,ip4addr)"
-
-ipaddr = section:taboption("general", Value, "ipaddr", translate("Local IPv4 address"), translate("The local IPv4 address over which the tunnel is created (optional)."))
-ipaddr.optional = true
-ipaddr.datatype = "ip4addr"
-
-tunlink = section:taboption("general", Value, "tunlink", translate("Bind interface"), translate("Bind the tunnel to this interface (optional)."))
-ipaddr.optional = true
-
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"), translate("Specify an MTU (Maximum Transmission Unit) other than the default (1280 bytes)."))
-mtu.optional = true
-mtu.placeholder = 1280
-mtu.datatype = "range(68, 9200)"
-
-ttl = section:taboption("advanced", Value, "ttl", translate("Override TTL"), translate("Specify a TTL (Time to Live) for the encapsulating packet other than the default (64)."))
-ttl.optional = true
-ttl.placeholder = 64
-ttl.datatype = "min(1)"
-
-tos = section:taboption("advanced", Value, "tos", translate("Override TOS"), translate("Specify a TOS (Type of Service)."))
-tos.optional = true
-tos.datatype = "range(0, 255)"
-
-df = section:taboption("advanced", Flag, "df", translate("Don't Fragment"), translate("Enable the DF (Don't Fragment) flag of the encapsulating packets."))
diff --git a/package/luci/protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua b/package/luci/protocols/luci-proto-ipip/luasrc/model/network/proto_ipip.lua
deleted file mode 100644 (file)
index 04d2e78..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
--- Copyright 2016 Roger Pueyo Centelles <roger.pueyo@guifi.net>
--- Licensed to the public under the Apache License 2.0.
-
-local netmod = luci.model.network
-local interface = luci.model.network.interface
-local proto = netmod:register_protocol("ipip")
-
-function proto.get_i18n(self)
-       return luci.i18n.translate("IPv4-in-IPv4 (RFC2003)")
-end
-
-function proto.ifname(self)
-       return "ipip-" .. self.sid
-end
-
-function proto.opkg_package(self)
-       return "ipip"
-end
-
-function proto.is_installed(self)
-       return nixio.fs.access("/lib/netifd/proto/ipip.sh")
-end
-
-function proto.is_floating(self)
-       return true
-end
-
-function proto.is_virtual(self)
-       return true
-end
-
-function proto.get_interfaces(self)
-       return nil
-end
-
-function proto.contains_interface(self, ifc)
-        return (netmod:ifnameof(ifc) == self:ifname())
-end
-
-netmod:register_pattern_virtual("^ipip%-%w")
diff --git a/package/luci/protocols/luci-proto-ipv6/Makefile b/package/luci/protocols/luci-proto-ipv6/Makefile
deleted file mode 100644 (file)
index b0c8395..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Support for DHCPv6/6in4/6to4/6rd/DS-Lite
-LUCI_DEPENDS:=@IPV6
-
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua b/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua
deleted file mode 100644 (file)
index 5a37582..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Copyright 2013 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-local tunlink, defaultroute, metric, mtu
-
-section:taboption("general", Value, "ip6prefix",
-       translate("NAT64 Prefix"), translate("Leave empty to autodetect"))
-
-tunlink = section:taboption("advanced", DynamicList, "tunlink", translate("Tunnel Link"))
-tunlink.template = "cbi/network_netlist"
-tunlink.nocreate = true
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Use MTU on tunnel interface"))
-mtu.placeholder = "1280"
-mtu.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua b/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua
deleted file mode 100644 (file)
index 3c9f41f..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local ipaddr, peeraddr, ip6addr, tunnelid, username, password
-local defaultroute, metric, ttl, mtu
-
-
-ipaddr = s:taboption("general", Value, "ipaddr",
-       translate("Local IPv4 address"),
-       translate("Leave empty to use the current WAN address"))
-
-ipaddr.datatype = "ip4addr"
-
-
-peeraddr = s:taboption("general", Value, "peeraddr",
-       translate("Remote IPv4 address"),
-       translate("This is usually the address of the nearest PoP operated by the tunnel broker"))
-
-peeraddr.rmempty  = false
-peeraddr.datatype = "ip4addr"
-
-
-ip6addr = s:taboption("general", Value, "ip6addr",
-       translate("Local IPv6 address"),
-       translate("This is the local endpoint address assigned by the tunnel broker, it usually ends with <code>...:2/64</code>"))
-
-ip6addr.datatype = "ip6addr"
-
-
-local ip6prefix = s:taboption("general", Value, "ip6prefix",
-       translate("IPv6 routed prefix"),
-       translate("This is the prefix routed to you by the tunnel broker for use by clients"))
-
-ip6prefix.datatype = "list(ip6addr)"
-
-
-local update = section:taboption("general", Flag, "_update",
-       translate("Dynamic tunnel"),
-       translate("Enable HE.net dynamic endpoint update"))
-
-update.enabled  = "1"
-update.disabled = "0"
-
-function update.write() end
-function update.remove() end
-function update.cfgvalue(self, section)
-       return (tonumber(m:get(section, "tunnelid")) ~= nil)
-               and self.enabled or self.disabled
-end
-
-
-tunnelid = section:taboption("general", Value, "tunnelid", translate("Tunnel ID"))
-tunnelid.datatype = "uinteger"
-tunnelid:depends("_update", update.enabled)
-
-
-username = section:taboption("general", Value, "username",
-       translate("HE.net username"),
-       translate("This is the plain username for logging into the account"))
-
-username:depends("_update", update.enabled)
-username.validate = function(self, val, sid)
-       if type(val) == "string" and #val == 32 and val:match("^[a-fA-F0-9]+$") then
-               return nil, translate("The HE.net endpoint update configuration changed, you must now use the plain username instead of the user ID!")
-       end
-       return val
-end
-
-
-password = section:taboption("general", Value, "password",
-       translate("HE.net password"),
-       translate("This is either the \"Update Key\" configured for the tunnel or the account password if no update key has been configured"))
-
-password.password = true
-password:depends("_update", update.enabled)
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-ttl = section:taboption("advanced", Value, "ttl", translate("Use TTL on tunnel interface"))
-ttl.placeholder = "64"
-ttl.datatype    = "range(1,255)"
-
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Use MTU on tunnel interface"))
-mtu.placeholder = "1280"
-mtu.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua b/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua
deleted file mode 100644 (file)
index 708a9c5..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
--- Copyright 2011-2012 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local ipaddr, peeraddr, ip6addr, tunnelid, username, password
-local defaultroute, metric, ttl, mtu
-
-
-ipaddr = s:taboption("general", Value, "ipaddr",
-       translate("Local IPv4 address"),
-       translate("Leave empty to use the current WAN address"))
-
-ipaddr.datatype = "ip4addr"
-
-
-peeraddr = s:taboption("general", Value, "peeraddr",
-       translate("Remote IPv4 address"),
-       translate("This IPv4 address of the relay"))
-
-peeraddr.rmempty  = false
-peeraddr.datatype = "ip4addr"
-
-
-ip6addr = s:taboption("general", Value, "ip6prefix",
-       translate("IPv6 prefix"),
-       translate("The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"))
-
-ip6addr.rmempty  = false
-ip6addr.datatype = "ip6addr"
-
-
-ip6prefixlen = s:taboption("general", Value, "ip6prefixlen",
-       translate("IPv6 prefix length"),
-       translate("The length of the IPv6 prefix in bits"))
-
-ip6prefixlen.placeholder = "16"
-ip6prefixlen.datatype    = "range(0,128)"
-
-
-ip6prefixlen = s:taboption("general", Value, "ip4prefixlen",
-       translate("IPv4 prefix length"),
-       translate("The length of the IPv4 prefix in bits, the remainder is used in the IPv6 addresses."))
-
-ip6prefixlen.placeholder = "0"
-ip6prefixlen.datatype    = "range(0,32)"
-
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-ttl = section:taboption("advanced", Value, "ttl", translate("Use TTL on tunnel interface"))
-ttl.placeholder = "64"
-ttl.datatype    = "range(1,255)"
-
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Use MTU on tunnel interface"))
-mtu.placeholder = "1280"
-mtu.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua b/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua
deleted file mode 100644 (file)
index 50a7069..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local ipaddr, defaultroute, metric, ttl, mtu
-
-
-ipaddr = section:taboption("general", Value, "ipaddr",
-       translate("Local IPv4 address"),
-       translate("Leave empty to use the current WAN address"))
-
-ipaddr.datatype = "ip4addr"
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Use default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-ttl = section:taboption("advanced", Value, "ttl", translate("Use TTL on tunnel interface"))
-ttl.placeholder = "64"
-ttl.datatype    = "range(1,255)"
-
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Use MTU on tunnel interface"))
-mtu.placeholder = "1280"
-mtu.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua b/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua
deleted file mode 100644 (file)
index 49281ee..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
--- Copyright 2013 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-
-local o = section:taboption("general", ListValue, "reqaddress",
-       translate("Request IPv6-address"))
-o:value("try")
-o:value("force")
-o:value("none", "disabled")
-o.default = "try"
-
-
-o = section:taboption("general", Value, "reqprefix",
-       translate("Request IPv6-prefix of length"))
-o:value("auto", translate("Automatic"))
-o:value("no", translate("disabled"))
-o:value("48")
-o:value("52")
-o:value("56")
-o:value("60")
-o:value("64")
-o.default = "auto"
-
-
-o = section:taboption("advanced", Flag, "defaultroute",
-       translate("Use default gateway"),
-       translate("If unchecked, no default route is configured"))
-o.default = o.enabled
-
-
-o = section:taboption("advanced", Flag, "peerdns",
-       translate("Use DNS servers advertised by peer"),
-       translate("If unchecked, the advertised DNS server addresses are ignored"))
-o.default = o.enabled
-
-
-o = section:taboption("advanced", Value, "ip6prefix",
-       translate("Custom delegated IPv6-prefix"))
-o.dataype = "list(ip6addr)"
-
-
-o = section:taboption("advanced", DynamicList, "dns",
-       translate("Use custom DNS servers"))
-o:depends("peerdns", "")
-o.datatype = "list(ip6addr)"
-o.cast     = "string"
-
-
-o = section:taboption("advanced", Value, "clientid",
-       translate("Client ID to send when requesting DHCP"))
-
-luci.tools.proto.opt_macaddr(section, ifc, translate("Override MAC address"))
-
-o = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
-o.placeholder = "1500"
-o.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua b/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dslite.lua
deleted file mode 100644 (file)
index eca9750..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Copyright 2013 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local peeraddr, ip6addr
-local tunlink, defaultroute, metric, ttl, mtu
-
-
-
-
-peeraddr = section:taboption("general", Value, "peeraddr",
-       translate("DS-Lite AFTR address"))
-
-peeraddr.rmempty  = false
-peeraddr.datatype = "or(hostname,ip6addr)"
-
-ip6addr = section:taboption("general", Value, "ip6addr",
-       translate("Local IPv6 address"),
-       translate("Leave empty to use the current WAN address"))
-
-ip6addr.datatype = "ip6addr"
-
-
-tunlink = section:taboption("advanced", DynamicList, "tunlink", translate("Tunnel Link"))
-tunlink.template = "cbi/network_netlist"
-tunlink.nocreate = true
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-ttl = section:taboption("advanced", Value, "ttl", translate("Use TTL on tunnel interface"))
-ttl.placeholder = "64"
-ttl.datatype    = "range(1,255)"
-
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Use MTU on tunnel interface"))
-mtu.placeholder = "1280"
-mtu.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua b/package/luci/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua
deleted file mode 100644 (file)
index 37d4ec9..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Copyright 2013 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local peeraddr, ip6addr
-local tunlink, defaultroute, metric, ttl, mtu
-
-
-maptype = section:taboption("general", ListValue, "type", translate("Type"))
-maptype:value("map-e", "MAP-E")
-maptype:value("map-t", "MAP-T")
-maptype:value("lw4o6", "LW4over6")
-
-
-peeraddr = section:taboption("general", Value, "peeraddr",
-       translate("BR / DMR / AFTR"))
-
-peeraddr.rmempty  = false
-peeraddr.datatype = "ip6addr"
-
-
-ipaddr = section:taboption("general", Value, "ipaddr",
-       translate("IPv4 prefix"))
-ipaddr.datatype = "ip4addr"
-
-
-ip4prefixlen = s:taboption("general", Value, "ip4prefixlen",
-        translate("IPv4 prefix length"),
-        translate("The length of the IPv4 prefix in bits, the remainder is used in the IPv6 addresses."))
-
-ip4prefixlen.placeholder = "32"
-ip4prefixlen.datatype    = "range(0,32)"
-
-ip6addr = s:taboption("general", Value, "ip6prefix",
-        translate("IPv6 prefix"),
-        translate("The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"))
-
-ip6addr.rmempty  = false
-ip6addr.datatype = "ip6addr"
-
-
-ip6prefixlen = s:taboption("general", Value, "ip6prefixlen",
-        translate("IPv6 prefix length"),
-        translate("The length of the IPv6 prefix in bits"))
-
-ip6prefixlen.placeholder = "16"
-ip6prefixlen.datatype    = "range(0,64)"
-
-
-s:taboption("general", Value, "ealen",
-       translate("EA-bits length")).datatype = "range(0,48)"
-
-s:taboption("general", Value, "psidlen",
-       translate("PSID-bits length")).datatype = "range(0,16)"
-
-s:taboption("general", Value, "offset",
-       translate("PSID offset")).datatype = "range(0,16)"
-
-tunlink = section:taboption("advanced", DynamicList, "tunlink", translate("Tunnel Link"))
-tunlink.template = "cbi/network_netlist"
-tunlink.nocreate = true
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-ttl = section:taboption("advanced", Value, "ttl", translate("Use TTL on tunnel interface"))
-ttl.placeholder = "64"
-ttl.datatype    = "range(1,255)"
-
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Use MTU on tunnel interface"))
-mtu.placeholder = "1280"
-mtu.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua b/package/luci/protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua
deleted file mode 100644 (file)
index 7508e0d..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Copyright 2013 Steven Barth <steven@midlink.org>
--- Licensed to the public under the Apache License 2.0.
-
-local netmod = luci.model.network
-
-local _, p
-for _, p in ipairs({"dslite", "map", "464xlat"}) do
-
-       local proto = netmod:register_protocol(p)
-
-       function proto.get_i18n(self)
-               if p == "dslite" then
-                       return luci.i18n.translate("Dual-Stack Lite (RFC6333)")
-               elseif p == "map" then
-                       return luci.i18n.translate("MAP / LW4over6")
-               elseif p == "464xlat" then
-                       return luci.i18n.translate("464XLAT (CLAT)")
-               end
-       end
-
-       function proto.ifname(self)
-               return p .. "-" .. self.sid
-       end
-
-       function proto.opkg_package(self)
-               if p == "dslite" then
-                       return "ds-lite"
-               elseif p == "map" then
-                       return "map-t"
-               elseif p == "464xlat" then
-                       return "464xlat"
-               end
-       end
-
-       function proto.is_installed(self)
-               return nixio.fs.access("/lib/netifd/proto/" .. p .. ".sh")
-       end
-
-       function proto.is_floating(self)
-               return true
-       end
-
-       function proto.is_virtual(self)
-               return true
-       end
-
-       function proto.get_interfaces(self)
-               return nil
-       end
-
-       function proto.contains_interface(self, ifname)
-               return (netmod:ifnameof(ifc) == self:ifname())
-       end
-end
-
-netmod:register_pattern_virtual("^464%-%w")
-netmod:register_pattern_virtual("^ds%-%w")
-netmod:register_pattern_virtual("^map%-%w")
-
-netmod:register_error_code("AFTR_DNS_FAIL",            luci.i18n.translate("Unable to resolve AFTR host name"))
-netmod:register_error_code("INVALID_MAP_RULE", luci.i18n.translate("MAP rule is invalid"))
-netmod:register_error_code("NO_MATCHING_PD",   luci.i18n.translate("No matching prefix delegation"))
-netmod:register_error_code("UNSUPPORTED_TYPE", luci.i18n.translate("Unsupported MAP type"))
diff --git a/package/luci/protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua b/package/luci/protocols/luci-proto-ipv6/luasrc/model/network/proto_6x4.lua
deleted file mode 100644 (file)
index 9a4396c..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local netmod = luci.model.network
-
-local _, p
-for _, p in ipairs({"6in4", "6to4", "6rd"}) do
-
-       local proto = netmod:register_protocol(p)
-
-       function proto.get_i18n(self)
-               if p == "6in4" then
-                       return luci.i18n.translate("IPv6-in-IPv4 (RFC4213)")
-               elseif p == "6to4" then
-                       return luci.i18n.translate("IPv6-over-IPv4 (6to4)")
-               elseif p == "6rd" then
-                       return luci.i18n.translate("IPv6-over-IPv4 (6rd)")
-               end
-       end
-
-       function proto.ifname(self)
-               return p .. "-" .. self.sid
-       end
-
-       function proto.opkg_package(self)
-               return p
-       end
-
-       function proto.is_installed(self)
-               return nixio.fs.access("/lib/netifd/proto/" .. p .. ".sh")
-       end
-
-       function proto.is_floating(self)
-               return true
-       end
-
-       function proto.is_virtual(self)
-               return true
-       end
-
-       function proto.get_interfaces(self)
-               return nil
-       end
-
-       function proto.contains_interface(self, ifname)
-               return (netmod:ifnameof(ifc) == self:ifname())
-       end
-
-       netmod:register_pattern_virtual("^%s%%-%%w" % p)
-end
diff --git a/package/luci/protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua b/package/luci/protocols/luci-proto-ipv6/luasrc/model/network/proto_dhcpv6.lua
deleted file mode 100644 (file)
index 0b45dad..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
--- Copyright 2013 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local proto = luci.model.network:register_protocol("dhcpv6")
-
-function proto.get_i18n(self)
-       return luci.i18n.translate("DHCPv6 client")
-end
-
-function proto.is_installed(self)
-       return nixio.fs.access("/lib/netifd/proto/dhcpv6.sh")
-end
-
-function proto.opkg_package(self)
-       return "odhcp6c"
-end
diff --git a/package/luci/protocols/luci-proto-ncm/Makefile b/package/luci/protocols/luci-proto-ncm/Makefile
deleted file mode 100644 (file)
index 5fd9c9a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Support for NCM
-LUCI_DEPENDS:=+comgt-ncm
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua b/package/luci/protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua
deleted file mode 100644 (file)
index 318db7e..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
---[[
-LuCI - Lua Configuration Interface
-
-Copyright 2015 Cezary Jackiewicz <cezary.jackiewicz@gmail.com>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-]]--
-
-local map, section, net = ...
-
-local device, apn, service, pincode, username, password
-local ipv6, delay, defaultroute, metric, peerdns, dns
-
-
-device = section:taboption("general", Value, "device", translate("Modem device"))
-device.rmempty = false
-
-local dev
-for dev in nixio.fs.glob("/dev/ttyUSB*") do
-    device:value(dev)
-end
-for dev in nixio.fs.glob("/dev/cdc-wdm*") do
-    device:value(dev)
-end
-
-mode = section:taboption("general", Value, "mode", translate("Service Type"))
-mode:value("", translate("Modem default"))
-mode:value("preferlte", translate("Prefer LTE"))
-mode:value("preferumts", translate("Prefer UMTS"))
-mode:value("lte", "LTE")
-mode:value("umts", "UMTS/GPRS")
-mode:value("gsm", translate("GPRS only"))
-mode:value("auto", translate("auto"))
-
-
-mode = section:taboption("general", Value, "pdptype", translate("IP Protocol"))
-mode.default = "IP"
-mode:value("IP", translate("IPv4"))
-mode:value("IPV4V6", translate("IPv4+IPv6"))
-mode:value("IPV6", translate("IPv6"))
-
-
-apn = section:taboption("general", Value, "apn", translate("APN"))
-
-
-pincode = section:taboption("general", Value, "pincode", translate("PIN"))
-
-
-username = section:taboption("general", Value, "username", translate("PAP/CHAP username"))
-
-
-password = section:taboption("general", Value, "password", translate("PAP/CHAP password"))
-password.password = true
-
-
-if luci.model.network:has_ipv6() then
-
-       ipv6 = section:taboption("advanced", ListValue, "ipv6")
-       ipv6:value("auto", translate("Automatic"))
-       ipv6:value("0", translate("Disabled"))
-       ipv6:value("1", translate("Manual"))
-       ipv6.default = "auto"
-
-end
-
-
-delay = section:taboption("advanced", Value, "delay",
-       translate("Modem init timeout"),
-       translate("Maximum amount of seconds to wait for the modem to become ready"))
-
-delay.placeholder = "10"
-delay.datatype    = "min(1)"
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Use default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-peerdns = section:taboption("advanced", Flag, "peerdns",
-       translate("Use DNS servers advertised by peer"),
-       translate("If unchecked, the advertised DNS server addresses are ignored"))
-
-peerdns.default = peerdns.enabled
-
-
-dns = section:taboption("advanced", DynamicList, "dns",
-       translate("Use custom DNS servers"))
-
-dns:depends("peerdns", "")
-dns.datatype = "ipaddr"
-dns.cast     = "string"
-
diff --git a/package/luci/protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua b/package/luci/protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua
deleted file mode 100644 (file)
index 49abe23..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
---[[
-LuCI - Network model - NCM protocol extension
-
-Copyright 2015 Cezary Jackiewicz <cezary.jackiewicz@gmail.com>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-]]--
-
-local netmod = luci.model.network
-
-local proto = netmod:register_protocol("ncm")
-local interface = luci.model.network.interface
-
-function proto.get_i18n(self)
-       return luci.i18n.translate("NCM")
-end
-
-function proto.opkg_package(self)
-       return "comgt-ncm"
-end
-
-function proto.is_installed(self)
-       return nixio.fs.access("/lib/netifd/proto/ncm.sh")
-end
-
-function proto.is_floating(self)
-       return true
-end
-
-function proto.is_virtual(self)
-       return true
-end
-
-function proto.get_interface(self)
-       local _ifname=netmod.protocol.ifname(self)
-       if not _ifname then
-               _ifname = "wan"
-       end
-       return interface(_ifname, self)
-end
-
-function proto.get_interfaces(self)
-       return nil
-end
-
-function proto.contains_interface(self, ifc)
-       return (netmod:ifnameof(ifc) == self:ifname())
-end
-
-netmod:register_pattern_virtual("^ncm%-%w")
-
-netmod:register_error_code("CONFIGURE_FAILED", luci.i18n.translate("Configuration failed"))
-netmod:register_error_code("DISCONNECT_FAILED",        luci.i18n.translate("Disconnection attempt failed"))
-netmod:register_error_code("FINALIZE_FAILED",  luci.i18n.translate("Finalizing failed"))
-netmod:register_error_code("GETINFO_FAILED",   luci.i18n.translate("Modem information query failed"))
-netmod:register_error_code("INITIALIZE_FAILED",        luci.i18n.translate("Initialization failure"))
-netmod:register_error_code("SETMODE_FAILED",   luci.i18n.translate("Setting operation mode failed"))
-netmod:register_error_code("UNSUPPORTED_MODEM",        luci.i18n.translate("Unsupported modem"))
diff --git a/package/luci/protocols/luci-proto-openconnect/Makefile b/package/luci/protocols/luci-proto-openconnect/Makefile
deleted file mode 100644 (file)
index 31f5274..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Support for OpenConnect VPN
-LUCI_DEPENDS:=+openconnect
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua b/package/luci/protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua
deleted file mode 100644 (file)
index 5adfcca..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
--- Copyright 2014 Nikos Mavrogiannopoulos <nmav@gnutls.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local server, username, password, cert, ca
-local oc_cert_file, oc_key_file, oc_ca_file
-
-local ifc = net:get_interface():name()
-
-oc_cert_file = "/etc/openconnect/user-cert-" .. ifc .. ".pem"
-oc_key_file = "/etc/openconnect/user-key-" .. ifc .. ".pem"
-oc_ca_file = "/etc/openconnect/ca-" .. ifc .. ".pem"
-
-server = section:taboption("general", Value, "server", translate("VPN Server"))
-server.datatype = "host(0)"
-
-port = section:taboption("general", Value, "port", translate("VPN Server port"))
-port.placeholder = "443"
-port.datatype    = "port"
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Use default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-section:taboption("general", Value, "serverhash", translate("VPN Server's certificate SHA1 hash"))
-
-section:taboption("general", Value, "authgroup", translate("Auth Group"))
-
-username = section:taboption("general", Value, "username", translate("Username"))
-password = section:taboption("general", Value, "password", translate("Password"))
-password.password = true
-password2 = section:taboption("general", Value, "password2", translate("Password2"))
-password2.password = true
-
-
-cert = section:taboption("advanced", Value, "usercert", translate("User certificate (PEM encoded)"))
-cert.template = "cbi/tvalue"
-cert.rows = 10
-
-function cert.cfgvalue(self, section)
-       return nixio.fs.readfile(oc_cert_file)
-end
-
-function cert.write(self, section, value)
-       value = value:gsub("\r\n?", "\n")
-       nixio.fs.writefile(oc_cert_file, value)
-end
-
-cert = section:taboption("advanced", Value, "userkey", translate("User key (PEM encoded)"))
-cert.template = "cbi/tvalue"
-cert.rows = 10
-
-function cert.cfgvalue(self, section)
-       return nixio.fs.readfile(oc_key_file)
-end
-
-function cert.write(self, section, value)
-       value = value:gsub("\r\n?", "\n")
-       nixio.fs.writefile(oc_key_file, value)
-end
-
-
-ca = section:taboption("advanced", Value, "ca", translate("CA certificate; if empty it will be saved after the first connection."))
-ca.template = "cbi/tvalue"
-ca.rows = 10
-
-function ca.cfgvalue(self, section)
-       return nixio.fs.readfile(oc_ca_file)
-end
-
-function ca.write(self, section, value)
-       value = value:gsub("\r\n?", "\n")
-       nixio.fs.writefile(oc_ca_file, value)
-end
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
-mtu.placeholder = "1406"
-mtu.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua b/package/luci/protocols/luci-proto-openconnect/luasrc/model/network/proto_openconnect.lua
deleted file mode 100644 (file)
index 0944c7f..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
--- Copyright 2012 David Woodhouse
--- Licensed to the public under the Apache License 2.0.
-
-local netmod = luci.model.network
-local interface = luci.model.network.interface
-local proto = netmod:register_protocol("openconnect")
-
-function proto.get_i18n(self)
-       return luci.i18n.translate("OpenConnect (CISCO AnyConnect)")
-end
-
-function proto.ifname(self)
-       return "vpn-" .. self.sid
-end
-
-function proto.get_interface(self)
-       return interface(self:ifname(), self)
-end
-
-function proto.opkg_package(self)
-       return "openconnect"
-end
-
-function proto.is_installed(self)
-       return nixio.fs.access("/lib/netifd/proto/openconnect.sh")
-end
-
-function proto.is_floating(self)
-       return true
-end
-
-function proto.is_virtual(self)
-       return true
-end
-
-function proto.get_interfaces(self)
-       return nil
-end
-
-function proto.contains_interface(self, ifc)
-        return (netmod:ifnameof(ifc) == self:ifname())
-
-end
-
-netmod:register_pattern_virtual("^vpn%-%w")
diff --git a/package/luci/protocols/luci-proto-ppp/Makefile b/package/luci/protocols/luci-proto-ppp/Makefile
deleted file mode 100644 (file)
index dd1859e..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Support for PPP/PPPoE/PPPoA/PPtP
-LUCI_DEPENDS:=
-
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua b/package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua
deleted file mode 100644 (file)
index 604f019..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local server, username, password
-local ipv6, defaultroute, metric, peerdns, dns, mtu
-
-
-server = section:taboption("general", Value, "server", translate("L2TP Server"))
-server.datatype = "or(host(1), hostport(1))"
-
-
-username = section:taboption("general", Value, "username", translate("PAP/CHAP username"))
-
-
-password = section:taboption("general", Value, "password", translate("PAP/CHAP password"))
-password.password = true
-
-if luci.model.network:has_ipv6() then
-       ipv6 = section:taboption("advanced", ListValue, "ipv6",
-               translate("Obtain IPv6-Address"),
-               translate("Enable IPv6 negotiation on the PPP link"))
-       ipv6:value("auto", translate("Automatic"))
-       ipv6:value("0", translate("Disabled"))
-       ipv6:value("1", translate("Manual"))
-       ipv6.default = "auto"
-end
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Use default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-peerdns = section:taboption("advanced", Flag, "peerdns",
-       translate("Use DNS servers advertised by peer"),
-       translate("If unchecked, the advertised DNS server addresses are ignored"))
-
-peerdns.default = peerdns.enabled
-
-
-dns = section:taboption("advanced", DynamicList, "dns",
-       translate("Use custom DNS servers"))
-
-dns:depends("peerdns", "")
-dns.datatype = "ipaddr"
-dns.cast     = "string"
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
-mtu.placeholder = "1500"
-mtu.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua b/package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua
deleted file mode 100644 (file)
index 5f468bc..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local device, username, password
-local ipv6, defaultroute, metric, peerdns, dns,
-         keepalive_failure, keepalive_interval, demand, mtu
-
-
-device = section:taboption("general", Value, "device", translate("Modem device"))
-device.rmempty = false
-
-local device_suggestions = nixio.fs.glob("/dev/tty*S*")
-       or nixio.fs.glob("/dev/tts/*")
-
-if device_suggestions then
-       local node
-       for node in device_suggestions do
-               device:value(node)
-       end
-end
-
-
-username = section:taboption("general", Value, "username", translate("PAP/CHAP username"))
-
-
-password = section:taboption("general", Value, "password", translate("PAP/CHAP password"))
-password.password = true
-
-
-if luci.model.network:has_ipv6() then
-       ipv6 = section:taboption("advanced", ListValue, "ipv6",
-               translate("Obtain IPv6-Address"),
-               translate("Enable IPv6 negotiation on the PPP link"))
-       ipv6:value("auto", translate("Automatic"))
-       ipv6:value("0", translate("Disabled"))
-       ipv6:value("1", translate("Manual"))
-       ipv6.default = "auto"
-end
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Use default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-peerdns = section:taboption("advanced", Flag, "peerdns",
-       translate("Use DNS servers advertised by peer"),
-       translate("If unchecked, the advertised DNS server addresses are ignored"))
-
-peerdns.default = peerdns.enabled
-
-
-dns = section:taboption("advanced", DynamicList, "dns",
-       translate("Use custom DNS servers"))
-
-dns:depends("peerdns", "")
-dns.datatype = "ipaddr"
-dns.cast     = "string"
-
-
-keepalive_failure = section:taboption("advanced", Value, "_keepalive_failure",
-       translate("LCP echo failure threshold"),
-       translate("Presume peer to be dead after given amount of LCP echo failures, use 0 to ignore failures"))
-
-function keepalive_failure.cfgvalue(self, section)
-       local v = m:get(section, "keepalive")
-       if v and #v > 0 then
-               return tonumber(v:match("^(%d+)[ ,]+%d+") or v)
-       end
-end
-
-keepalive_failure.placeholder = "0"
-keepalive_failure.datatype    = "uinteger"
-
-
-keepalive_interval = section:taboption("advanced", Value, "_keepalive_interval",
-       translate("LCP echo interval"),
-       translate("Send LCP echo requests at the given interval in seconds, only effective in conjunction with failure threshold"))
-
-function keepalive_interval.cfgvalue(self, section)
-       local v = m:get(section, "keepalive")
-       if v and #v > 0 then
-               return tonumber(v:match("^%d+[ ,]+(%d+)"))
-       end
-end
-
-function keepalive_interval.write(self, section, value)
-       local f = tonumber(keepalive_failure:formvalue(section)) or 0
-       local i = tonumber(value) or 5
-       if i < 1 then i = 1 end
-       if f > 0 then
-               m:set(section, "keepalive", "%d %d" %{ f, i })
-       else
-               m:set(section, "keepalive", "0")
-       end
-end
-
-keepalive_interval.remove      = keepalive_interval.write
-keepalive_failure.write        = keepalive_interval.write
-keepalive_failure.remove       = keepalive_interval.write
-keepalive_interval.placeholder = "5"
-keepalive_interval.datatype    = "min(1)"
-
-
-demand = section:taboption("advanced", Value, "demand",
-       translate("Inactivity timeout"),
-       translate("Close inactive connection after the given amount of seconds, use 0 to persist connection"))
-
-demand.placeholder = "0"
-demand.datatype    = "uinteger"
-
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
-mtu.placeholder = "1500"
-mtu.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua b/package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua
deleted file mode 100644 (file)
index 004fd7e..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local encaps, atmdev, vci, vpi, username, password
-local ipv6, defaultroute, metric, peerdns, dns,
-      keepalive_failure, keepalive_interval, demand, mtu
-
-
-encaps = section:taboption("general", ListValue, "encaps", translate("PPPoA Encapsulation"))
-encaps:value("vc", "VC-Mux")
-encaps:value("llc", "LLC")
-
-
-atmdev = section:taboption("general", Value, "atmdev", translate("ATM device number"))
-atmdev.default  = "0"
-atmdev.datatype = "uinteger"
-
-
-vci = section:taboption("general", Value, "vci", translate("ATM Virtual Channel Identifier (VCI)"))
-vci.default  = "35"
-vci.datatype = "uinteger"
-
-
-vpi = section:taboption("general", Value, "vpi", translate("ATM Virtual Path Identifier (VPI)"))
-vpi.default  = "8"
-vpi.datatype = "uinteger"
-
-
-username = section:taboption("general", Value, "username", translate("PAP/CHAP username"))
-
-
-password = section:taboption("general", Value, "password", translate("PAP/CHAP password"))
-password.password = true
-
-
-if luci.model.network:has_ipv6() then
-       ipv6 = section:taboption("advanced", ListValue, "ipv6",
-               translate("Obtain IPv6-Address"),
-               translate("Enable IPv6 negotiation on the PPP link"))
-       ipv6:value("auto", translate("Automatic"))
-       ipv6:value("0", translate("Disabled"))
-       ipv6:value("1", translate("Manual"))
-       ipv6.default = "auto"
-end
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Use default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-peerdns = section:taboption("advanced", Flag, "peerdns",
-       translate("Use DNS servers advertised by peer"),
-       translate("If unchecked, the advertised DNS server addresses are ignored"))
-
-peerdns.default = peerdns.enabled
-
-
-dns = section:taboption("advanced", DynamicList, "dns",
-       translate("Use custom DNS servers"))
-
-dns:depends("peerdns", "")
-dns.datatype = "ipaddr"
-dns.cast     = "string"
-
-
-keepalive_failure = section:taboption("advanced", Value, "_keepalive_failure",
-       translate("LCP echo failure threshold"),
-       translate("Presume peer to be dead after given amount of LCP echo failures, use 0 to ignore failures"))
-
-function keepalive_failure.cfgvalue(self, section)
-       local v = m:get(section, "keepalive")
-       if v and #v > 0 then
-               return tonumber(v:match("^(%d+)[ ,]+%d+") or v)
-       end
-end
-
-keepalive_failure.placeholder = "0"
-keepalive_failure.datatype    = "uinteger"
-
-
-keepalive_interval = section:taboption("advanced", Value, "_keepalive_interval",
-       translate("LCP echo interval"),
-       translate("Send LCP echo requests at the given interval in seconds, only effective in conjunction with failure threshold"))
-
-function keepalive_interval.cfgvalue(self, section)
-       local v = m:get(section, "keepalive")
-       if v and #v > 0 then
-               return tonumber(v:match("^%d+[ ,]+(%d+)"))
-       end
-end
-
-function keepalive_interval.write(self, section, value)
-       local f = tonumber(keepalive_failure:formvalue(section)) or 0
-       local i = tonumber(value) or 5
-       if i < 1 then i = 1 end
-       if f > 0 then
-               m:set(section, "keepalive", "%d %d" %{ f, i })
-       else
-               m:set(section, "keepalive", "0")
-       end
-end
-
-keepalive_interval.remove      = keepalive_interval.write
-keepalive_failure.write        = keepalive_interval.write
-keepalive_failure.remove       = keepalive_interval.write
-keepalive_interval.placeholder = "5"
-keepalive_interval.datatype    = "min(1)"
-
-
-demand = section:taboption("advanced", Value, "demand",
-       translate("Inactivity timeout"),
-       translate("Close inactive connection after the given amount of seconds, use 0 to persist connection"))
-
-demand.placeholder = "0"
-demand.datatype    = "uinteger"
-
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
-mtu.placeholder = "1500"
-mtu.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua b/package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua
deleted file mode 100644 (file)
index 063d8c0..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local username, password, ac, service
-local ipv6, defaultroute, metric, peerdns, dns,
-      keepalive_failure, keepalive_interval, demand, mtu
-
-
-username = section:taboption("general", Value, "username", translate("PAP/CHAP username"))
-
-
-password = section:taboption("general", Value, "password", translate("PAP/CHAP password"))
-password.password = true
-
-
-ac = section:taboption("general", Value, "ac",
-       translate("Access Concentrator"),
-       translate("Leave empty to autodetect"))
-
-ac.placeholder = translate("auto")
-
-
-service = section:taboption("general", Value, "service",
-       translate("Service Name"),
-       translate("Leave empty to autodetect"))
-
-service.placeholder = translate("auto")
-
-
-if luci.model.network:has_ipv6() then
-       ipv6 = section:taboption("advanced", ListValue, "ipv6",
-               translate("Obtain IPv6-Address"),
-               translate("Enable IPv6 negotiation on the PPP link"))
-       ipv6:value("auto", translate("Automatic"))
-       ipv6:value("0", translate("Disabled"))
-       ipv6:value("1", translate("Manual"))
-       ipv6.default = "auto"
-end
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Use default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-peerdns = section:taboption("advanced", Flag, "peerdns",
-       translate("Use DNS servers advertised by peer"),
-       translate("If unchecked, the advertised DNS server addresses are ignored"))
-
-peerdns.default = peerdns.enabled
-
-
-dns = section:taboption("advanced", DynamicList, "dns",
-       translate("Use custom DNS servers"))
-
-dns:depends("peerdns", "")
-dns.datatype = "ipaddr"
-dns.cast     = "string"
-
-
-keepalive_failure = section:taboption("advanced", Value, "_keepalive_failure",
-       translate("LCP echo failure threshold"),
-       translate("Presume peer to be dead after given amount of LCP echo failures, use 0 to ignore failures"))
-
-function keepalive_failure.cfgvalue(self, section)
-       local v = m:get(section, "keepalive")
-       if v and #v > 0 then
-               return tonumber(v:match("^(%d+)[ ,]+%d+") or v)
-       end
-end
-
-keepalive_failure.placeholder = "0"
-keepalive_failure.datatype    = "uinteger"
-
-
-keepalive_interval = section:taboption("advanced", Value, "_keepalive_interval",
-       translate("LCP echo interval"),
-       translate("Send LCP echo requests at the given interval in seconds, only effective in conjunction with failure threshold"))
-
-function keepalive_interval.cfgvalue(self, section)
-       local v = m:get(section, "keepalive")
-       if v and #v > 0 then
-               return tonumber(v:match("^%d+[ ,]+(%d+)"))
-       end
-end
-
-function keepalive_interval.write(self, section, value)
-       local f = tonumber(keepalive_failure:formvalue(section)) or 0
-       local i = tonumber(value) or 5
-       if i < 1 then i = 1 end
-       if f > 0 then
-               m:set(section, "keepalive", "%d %d" %{ f, i })
-       else
-               m:set(section, "keepalive", "0")
-       end
-end
-
-keepalive_interval.remove      = keepalive_interval.write
-keepalive_failure.write        = keepalive_interval.write
-keepalive_failure.remove       = keepalive_interval.write
-keepalive_interval.placeholder = "5"
-keepalive_interval.datatype    = "min(1)"
-
-
-host_uniq = section:taboption("advanced", Value, "host_uniq",
-       translate("Host-Uniq tag content"),
-       translate("Raw hex-encoded bytes. Leave empty unless your ISP require this"))
-
-host_uniq.placeholder = translate("auto")
-host_uniq.datatype    = "hexstring"
-
-
-demand = section:taboption("advanced", Value, "demand",
-       translate("Inactivity timeout"),
-       translate("Close inactive connection after the given amount of seconds, use 0 to persist connection"))
-
-demand.placeholder = "0"
-demand.datatype    = "uinteger"
-
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
-mtu.placeholder = "1500"
-mtu.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua b/package/luci/protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pptp.lua
deleted file mode 100644 (file)
index 6a828ef..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
--- Copyright 2011-2012 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local server, username, password
-local defaultroute, metric, peerdns, dns,
-       keepalive_failure, keepalive_interval, demand, mtu
-
-
-server = section:taboption("general", Value, "server", translate("VPN Server"))
-server.datatype = "host(0)"
-
-
-username = section:taboption("general", Value, "username", translate("PAP/CHAP username"))
-
-
-password = section:taboption("general", Value, "password", translate("PAP/CHAP password"))
-password.password = true
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Use default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-peerdns = section:taboption("advanced", Flag, "peerdns",
-       translate("Use DNS servers advertised by peer"),
-       translate("If unchecked, the advertised DNS server addresses are ignored"))
-
-peerdns.default = peerdns.enabled
-
-
-dns = section:taboption("advanced", DynamicList, "dns",
-       translate("Use custom DNS servers"))
-
-dns:depends("peerdns", "")
-dns.datatype = "ipaddr"
-dns.cast     = "string"
-
-
-keepalive_failure = section:taboption("advanced", Value, "_keepalive_failure",
-       translate("LCP echo failure threshold"),
-       translate("Presume peer to be dead after given amount of LCP echo failures, use 0 to ignore failures"))
-
-function keepalive_failure.cfgvalue(self, section)
-       local v = m:get(section, "keepalive")
-       if v and #v > 0 then
-               return tonumber(v:match("^(%d+)[ ,]+%d+") or v)
-       end
-end
-
-keepalive_failure.placeholder = "0"
-keepalive_failure.datatype    = "uinteger"
-
-
-keepalive_interval = section:taboption("advanced", Value, "_keepalive_interval",
-       translate("LCP echo interval"),
-       translate("Send LCP echo requests at the given interval in seconds, only effective in conjunction with failure threshold"))
-
-function keepalive_interval.cfgvalue(self, section)
-       local v = m:get(section, "keepalive")
-       if v and #v > 0 then
-               return tonumber(v:match("^%d+[ ,]+(%d+)"))
-       end
-end
-
-function keepalive_interval.write(self, section, value)
-       local f = tonumber(keepalive_failure:formvalue(section)) or 0
-       local i = tonumber(value) or 5
-       if i < 1 then i = 1 end
-       if f > 0 then
-               m:set(section, "keepalive", "%d %d" %{ f, i })
-       else
-               m:set(section, "keepalive", "0")
-       end
-end
-
-keepalive_interval.remove      = keepalive_interval.write
-keepalive_failure.write        = keepalive_interval.write
-keepalive_failure.remove       = keepalive_interval.write
-keepalive_interval.placeholder = "5"
-keepalive_interval.datatype    = "min(1)"
-
-
-demand = section:taboption("advanced", Value, "demand",
-       translate("Inactivity timeout"),
-       translate("Close inactive connection after the given amount of seconds, use 0 to persist connection"))
-
-demand.placeholder = "0"
-demand.datatype    = "uinteger"
-
-
-mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
-mtu.placeholder = "1500"
-mtu.datatype    = "max(9200)"
diff --git a/package/luci/protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua b/package/luci/protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua
deleted file mode 100644 (file)
index f87b30f..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local netmod = luci.model.network
-
-local _, p
-for _, p in ipairs({"ppp", "pptp", "pppoe", "pppoa", "l2tp"}) do
-
-       local proto = netmod:register_protocol(p)
-
-       function proto.get_i18n(self)
-               if p == "ppp" then
-                       return luci.i18n.translate("PPP")
-               elseif p == "pptp" then
-                       return luci.i18n.translate("PPtP")
-               elseif p == "pppoe" then
-                       return luci.i18n.translate("PPPoE")
-               elseif p == "pppoa" then
-                       return luci.i18n.translate("PPPoATM")
-               elseif p == "l2tp" then
-                       return luci.i18n.translate("L2TP")
-               end
-       end
-
-       function proto.ifname(self)
-               return p .. "-" .. self.sid
-       end
-
-       function proto.opkg_package(self)
-               if p == "ppp" then
-                       return p
-               elseif p == "pptp" then
-                       return "ppp-mod-pptp"
-               elseif p == "pppoe" then
-                       return "ppp-mod-pppoe"
-               elseif p == "pppoa" then
-                       return "ppp-mod-pppoa"
-               elseif p == "l2tp" then
-                       return "xl2tpd"
-               end
-       end
-
-       function proto.is_installed(self)
-               if p == "pppoa" then
-                       return (nixio.fs.glob("/usr/lib/pppd/*/pppoatm.so")() ~= nil)
-               elseif p == "pppoe" then
-                       return (nixio.fs.glob("/usr/lib/pppd/*/rp-pppoe.so")() ~= nil)
-               elseif p == "pptp" then
-                       return (nixio.fs.glob("/usr/lib/pppd/*/pptp.so")() ~= nil)
-               elseif p == "l2tp" then
-                       return nixio.fs.access("/lib/netifd/proto/l2tp.sh")
-               else
-                       return nixio.fs.access("/lib/netifd/proto/ppp.sh")
-               end
-       end
-
-       function proto.is_floating(self)
-               return (p ~= "pppoe")
-       end
-
-       function proto.is_virtual(self)
-               return true
-       end
-
-       function proto.get_interfaces(self)
-               if self:is_floating() then
-                       return nil
-               else
-                       return netmod.protocol.get_interfaces(self)
-               end
-       end
-
-       function proto.contains_interface(self, ifc)
-               if self:is_floating() then
-                       return (netmod:ifnameof(ifc) == self:ifname())
-               else
-                       return netmod.protocol.contains_interface(self, ifc)
-               end
-       end
-
-       netmod:register_pattern_virtual("^%s%%-%%w" % p)
-end
diff --git a/package/luci/protocols/luci-proto-pppossh/Makefile b/package/luci/protocols/luci-proto-pppossh/Makefile
deleted file mode 100644 (file)
index 1c0a63b..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright (C) 2018 Florian Eckert <fe@dev.tdt.de>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Support for pppossh
-LUCI_DEPENDS:=+pppossh
-
-PKG_LICENSE:=Apache-2.0
-PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua b/package/luci/protocols/luci-proto-pppossh/luasrc/model/cbi/admin_network/proto_pppossh.lua
deleted file mode 100644 (file)
index e53262b..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
--- Copyright (C) 2015 Yousong Zhou <yszhou4tech@gmail.com>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local sshuser, server, port, ssh_options, identity, ipaddr, peeraddr
-
-sshuser = section:taboption("general", Value, "sshuser", translate("SSH username"))
-
-server = section:taboption("general", Value, "server", translate("SSH server address"))
-server.datatype = "host(0)"
-
-port = section:taboption("general", Value, "port", translate("SSH server port"))
-port.datatype = "port"
-port.optional = true
-port.default = 22
-
-ssh_options = section:taboption("general", Value, "ssh_options", translate("Extra SSH command options"))
-ssh_options.optional = true
-
-identity = section:taboption("general", DynamicList, "identity", translate("List of SSH key files for auth"))
-identity.optional = true
-identity.datatype = "file"
-
-ipaddr = section:taboption("general", Value, "ipaddr", translate("Local IP address to assign"))
-ipaddr.datatype = "ipaddr"
-
-peeraddr = section:taboption("general", Value, "peeraddr", translate("Peer IP address to assign"))
-peeraddr.datatype = "ipaddr"
-
-
-local ipv6, defaultroute, metric, peerdns, dns,
-      keepalive_failure, keepalive_interval, demand
-
-if luci.model.network:has_ipv6() then
-        ipv6 = section:taboption("advanced", Flag, "ipv6",
-                translate("Enable IPv6 negotiation on the PPP link"))
-        ipv6.default = ipv6.disabled
-end
-
-
-defaultroute = section:taboption("advanced", Flag, "defaultroute",
-       translate("Use default gateway"),
-       translate("If unchecked, no default route is configured"))
-
-defaultroute.default = defaultroute.enabled
-
-
-metric = section:taboption("advanced", Value, "metric",
-       translate("Use gateway metric"))
-
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
-metric:depends("defaultroute", defaultroute.enabled)
-
-
-peerdns = section:taboption("advanced", Flag, "peerdns",
-       translate("Use DNS servers advertised by peer"),
-       translate("If unchecked, the advertised DNS server addresses are ignored"))
-
-peerdns.default = peerdns.enabled
-
-
-dns = section:taboption("advanced", DynamicList, "dns",
-       translate("Use custom DNS servers"))
-
-dns:depends("peerdns", "")
-dns.datatype = "ipaddr"
-dns.cast     = "string"
-
-
-keepalive_failure = section:taboption("advanced", Value, "_keepalive_failure",
-       translate("LCP echo failure threshold"),
-       translate("Presume peer to be dead after given amount of LCP echo failures, use 0 to ignore failures"))
-
-function keepalive_failure.cfgvalue(self, section)
-       local v = m:get(section, "keepalive")
-       if v and #v > 0 then
-               return tonumber(v:match("^(%d+)[ ,]+%d+") or v)
-       end
-end
-
-function keepalive_failure.write() end
-function keepalive_failure.remove() end
-
-keepalive_failure.placeholder = "0"
-keepalive_failure.datatype    = "uinteger"
-
-
-keepalive_interval = section:taboption("advanced", Value, "_keepalive_interval",
-       translate("LCP echo interval"),
-       translate("Send LCP echo requests at the given interval in seconds, only effective in conjunction with failure threshold"))
-
-function keepalive_interval.cfgvalue(self, section)
-       local v = m:get(section, "keepalive")
-       if v and #v > 0 then
-               return tonumber(v:match("^%d+[ ,]+(%d+)"))
-       end
-end
-
-function keepalive_interval.write(self, section, value)
-       local f = tonumber(keepalive_failure:formvalue(section)) or 0
-       local i = tonumber(value) or 5
-       if i < 1 then i = 1 end
-       if f > 0 then
-               m:set(section, "keepalive", "%d %d" %{ f, i })
-       else
-               m:set(section, "keepalive", "0")
-       end
-end
-
-keepalive_interval.remove      = keepalive_interval.write
-keepalive_interval.placeholder = "5"
-keepalive_interval.datatype    = "min(1)"
-
-
-demand = section:taboption("advanced", Value, "demand",
-       translate("Inactivity timeout"),
-       translate("Close inactive connection after the given amount of seconds, use 0 to persist connection"))
-
-demand.placeholder = "0"
-demand.datatype    = "uinteger"
diff --git a/package/luci/protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua b/package/luci/protocols/luci-proto-pppossh/luasrc/model/network/proto_pppossh.lua
deleted file mode 100644 (file)
index a0e2a51..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
--- Copyright 2018 Florian Eckert <fe@dev.tdt.de>
--- Licensed to the public under the Apache License 2.0.
-
-local netmod = luci.model.network
-
-local proto = netmod:register_protocol("pppossh")
-
-function proto.get_i18n(self)
-       return luci.i18n.translate("PPPoSSH")
-end
-
-function proto.ifname(self)
-       return "pppossh-" .. self.sid
-end
-
-function proto.opkg_package(self)
-       return "pppossh"
-end
-
-function proto.is_installed(self)
-       return nixio.fs.access("/lib/netifd/proto/pppossh.sh")
-end
-
-function proto.is_floating(self)
-       return true
-end
-
-function proto.is_virtual(self)
-       return true
-end
-
-function proto.get_interfaces(self)
-       return nil
-end
-
-function proto.contains_interface(self, ifc)
-       return (netmod:ifnameof(ifc) == self:ifname())
-end
-
-netmod:register_pattern_virtual("^pppossh%-%w")
diff --git a/package/luci/protocols/luci-proto-qmi/Makefile b/package/luci/protocols/luci-proto-qmi/Makefile
deleted file mode 100644 (file)
index 8b2b5e3..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Support for QMI
-LUCI_DEPENDS:=+uqmi
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua b/package/luci/protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua
deleted file mode 100644 (file)
index e11201d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
--- Copyright 2016 David Thornley <david.thornley@touchstargroup.com>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local device, apn, pincode, username, password
-local auth, ipv6
-
-
-device = section:taboption("general", Value, "device", translate("Modem device"))
-device.rmempty = false
-
-local device_suggestions = nixio.fs.glob("/dev/cdc-wdm*")
-
-if device_suggestions then
-       local node
-       for node in device_suggestions do
-               device:value(node)
-       end
-end
-
-
-apn = section:taboption("general", Value, "apn", translate("APN"))
-
-
-pincode = section:taboption("general", Value, "pincode", translate("PIN"))
-
-
-username = section:taboption("general", Value, "username", translate("PAP/CHAP username"))
-
-
-password = section:taboption("general", Value, "password", translate("PAP/CHAP password"))
-password.password = true
-
-auth = section:taboption("general", Value, "auth", translate("Authentication Type"))
-auth:value("", translate("-- Please choose --"))
-auth:value("both", "PAP/CHAP (both)")
-auth:value("pap", "PAP")
-auth:value("chap", "CHAP")
-auth:value("none", "NONE")
-
-if luci.model.network:has_ipv6() then
-    ipv6 = section:taboption("advanced", Flag, "ipv6", translate("Enable IPv6 negotiation"))
-    ipv6.default = ipv6.disabled
-end
diff --git a/package/luci/protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua b/package/luci/protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua
deleted file mode 100644 (file)
index c414378..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
--- Copyright 2016 David Thornley <david.thornley@touchstargroup.com>
--- Licensed to the public under the Apache License 2.0.
-
-local netmod = luci.model.network
-local interface = luci.model.network.interface
-local proto = netmod:register_protocol("qmi")
-
-function proto.get_i18n(self)
-       return luci.i18n.translate("QMI Cellular")
-end
-
-function proto.ifname(self)
-       local base = netmod._M.protocol
-       local ifname = base.ifname(self) -- call base class "protocol.ifname(self)"
-
-               -- Note: ifname might be nil if the adapter could not be determined through ubus (default name to qmi-wan in this case)
-       if ifname == nil then
-               ifname = "qmi-" .. self.sid
-       end
-       return ifname
-end
-
-function proto.get_interface(self)
-       return interface(self:ifname(), self)
-end
-
-function proto.opkg_package(self)
-       return "uqmi"
-end
-
-function proto.is_installed(self)
-       return nixio.fs.access("/lib/netifd/proto/qmi.sh")
-end
-
-function proto.is_floating(self)
-       return true
-end
-
-function proto.is_virtual(self)
-       return true
-end
-
-function proto.get_interfaces(self)
-       return nil
-end
-
-function proto.contains_interface(self, ifc)
-        return (netmod:ifnameof(ifc) == self:ifname())
-end
-
-netmod:register_pattern_virtual("^qmi%-%w")
-
-netmod:register_error_code("CALL_FAILED",      luci.i18n.translate("Call failed"))
-netmod:register_error_code("NO_CID",           luci.i18n.translate("Unable to obtain client ID"))
-netmod:register_error_code("PLMN_FAILED",      luci.i18n.translate("Setting PLMN failed"))
diff --git a/package/luci/protocols/luci-proto-relay/Makefile b/package/luci/protocols/luci-proto-relay/Makefile
deleted file mode 100644 (file)
index d9c04f7..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Support for relayd pseudo bridges
-LUCI_DEPENDS:=+relayd
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua b/package/luci/protocols/luci-proto-relay/luasrc/model/cbi/admin_network/proto_relay.lua
deleted file mode 100644 (file)
index 3381d85..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local ipaddr, network
-local forward_bcast, forward_dhcp, gateway, expiry, retry, table
-
-
-ipaddr = section:taboption("general", Value, "ipaddr",
-       translate("Local IPv4 address"),
-       translate("Address to access local relay bridge"))
-
-ipaddr.datatype = "ip4addr"
-
-
-network = s:taboption("general", DynamicList, "network", translate("Relay between networks"))
-network.widget = "checkbox"
-network.exclude = arg[1]
-network.template = "cbi/network_netlist"
-network.nocreate = true
-network.nobridges = true
-network.novirtual = true
-network:depends("proto", "relay")
-
-
-forward_bcast = section:taboption("advanced", Flag, "forward_bcast",
-       translate("Forward broadcast traffic"))
-
-forward_bcast.default = forward_bcast.enabled
-
-
-forward_dhcp = section:taboption("advanced", Flag, "forward_dhcp",
-       translate("Forward DHCP traffic"))
-
-forward_dhcp.default = forward_dhcp.enabled
-
-
-gateway = section:taboption("advanced", Value, "gateway",
-       translate("Use DHCP gateway"),
-       translate("Override the gateway in DHCP responses"))
-
-gateway.datatype = "ip4addr"
-gateway:depends("forward_dhcp", forward_dhcp.enabled)
-
-
-expiry = section:taboption("advanced", Value, "expiry",
-       translate("Host expiry timeout"),
-       translate("Specifies the maximum amount of seconds after which hosts are presumed to be dead"))
-
-expiry.placeholder = "30"
-expiry.datatype    = "min(1)"
-
-
-retry = section:taboption("advanced", Value, "retry",
-       translate("ARP retry threshold"),
-       translate("Specifies the maximum amount of failed ARP requests until hosts are presumed to be dead"))
-
-retry.placeholder = "5"
-retry.datatype    = "min(1)"
-
-
-table = section:taboption("advanced", Value, "table",
-       translate("Use routing table"),
-       translate("Override the table used for internal routes"))
-
-table.placeholder = "16800"
-table.datatype    = "range(0,65535)"
diff --git a/package/luci/protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua b/package/luci/protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua
deleted file mode 100644 (file)
index 3b811d4..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
--- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local netmod = luci.model.network
-local device = luci.util.class(netmod.interface)
-
-netmod:register_pattern_virtual("^relay%-%w")
-
-local proto = netmod:register_protocol("relay")
-
-function proto.get_i18n(self)
-       return luci.i18n.translate("Relay bridge")
-end
-
-function proto.ifname(self)
-       return "relay-" .. self.sid
-end
-
-function proto.opkg_package(self)
-       return "relayd"
-end
-
-function proto.is_installed(self)
-       return nixio.fs.access("/etc/init.d/relayd")
-end
-
-function proto.is_floating(self)
-       return true
-end
-
-function proto.is_virtual(self)
-       return true
-end
-
-function proto.is_up(self)
-       local iface = self:get_interface()
-       return iface and iface:is_up() or false
-end
-
-function proto.get_interface(self)
-       return device(self.sid, self)
-end
-
-function proto.get_interfaces(self)
-       if not self.ifaces then
-               local ifs = { }
-               local _, net, dev
-
-               for net in luci.util.imatch(self:_get("network")) do
-                       net = netmod:get_network(net)
-                       if net then
-                               dev = net:get_interface()
-                               if dev then
-                                       ifs[dev:name()] = dev
-                               end
-                       end
-               end
-
-               for dev in luci.util.imatch(self:_get("ifname")) do
-                       dev = netmod:get_interface(dev)
-                       if dev then
-                               ifs[dev:name()] = dev
-                       end
-               end
-
-               self.ifaces = { }
-
-               for _, dev in luci.util.kspairs(ifs) do
-                       self.ifaces[#self.ifaces+1] = dev
-               end
-       end
-
-       return self.ifaces
-end
-
-function proto.uptime(self)
-       local net
-       local upt = 0
-       for net in luci.util.imatch(self:_get("network")) do
-               net = netmod:get_network(net)
-               if net then
-                       upt = math.max(upt, net:uptime())
-               end
-       end
-       return upt
-end
-
-function proto.errors(self)
-       return nil
-end
-
-
-function device.__init__(self, ifname, network)
-       self.ifname  = ifname
-       self.network = network
-end
-
-function device.type(self)
-       return "tunnel"
-end
-
-function device.is_up(self)
-       if self.network then
-               local _, dev
-               for _, dev in ipairs(self.network:get_interfaces()) do
-                       if not dev:is_up() then
-                               return false
-                       end
-               end
-               return true
-       end
-       return false
-end
-
-function device._stat(self, what)
-       local v = 0
-       if self.network then
-               local _, dev
-               for _, dev in ipairs(self.network:get_interfaces()) do
-                       v = v + dev[what](dev)
-               end
-       end
-       return v
-end
-
-function device.rx_bytes(self) return self:_stat("rx_bytes") end
-function device.tx_bytes(self) return self:_stat("tx_bytes") end
-function device.rx_packets(self) return self:_stat("rx_packets") end
-function device.tx_packets(self) return self:_stat("tx_packets") end
-
-function device.mac(self)
-       if self.network then
-               local _, dev
-               for _, dev in ipairs(self.network:get_interfaces()) do
-                       return dev:mac()
-               end
-       end
-end
-
-function device.ipaddrs(self)
-       local addrs = { }
-       if self.network then
-               addrs[1] = luci.ip.IPv4(self.network:_get("ipaddr"))
-       end
-       return addrs
-end
-
-function device.ip6addrs(self)
-       return { }
-end
-
-function device.shortname(self)
-       return "%s %q" % { luci.i18n.translate("Relay"), self.ifname }
-end
-
-function device.get_type_i18n(self)
-       return luci.i18n.translate("Relay Bridge")
-end
diff --git a/package/luci/protocols/luci-proto-vpnc/Makefile b/package/luci/protocols/luci-proto-vpnc/Makefile
deleted file mode 100644 (file)
index 0800e27..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Support for VPNC VPN
-LUCI_DEPENDS:=+vpnc
-LUCI_PKGARCH:=all
-
-PKG_MAINTAINER:=Daniel Dickinson <openwrt@daniel.thecshore.com>
-PKG_LICENSE:=Apache-2.0
-
-LUA_TARGET:=source
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua b/package/luci/protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua
deleted file mode 100644 (file)
index 3d85d02..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
--- Copyright 2015 Daniel Dickinson <openwrt@daniel.thecshore.com>
--- Licensed to the public under the Apache License 2.0.
-
-local map, section, net = ...
-
-local server, username, password, hexpassword
-local authgroup, interface, passgroup, hexpassgroup
-local domain, vendor, natt_mode, dh_group
-local pfs, enable_single_des, enable_no_enc
-local mtu, local_addr, local_port, dpd_idle
-local auth_mode, target_network, defaultroute
-
-local ifc = net:get_interface():name()
-
-server = section:taboption("general", Value, "server", translate("VPN Server"))
-server.datatype = "host(0)"
-
-port = section:taboption("general", Value, "local_addr", translate("VPN Local address"))
-port.placeholder = "0.0.0.0"
-port.datatype    = "ipaddr"
-
-port = section:taboption("general", Value, "local_port", translate("VPN Local port"))
-port.placeholder = "500"
-port.datatype    = "port"
-
-ifname = section:taboption("general", Value, "interface", translate("Output Interface"))
-ifname.template = "cbi/network_netlist"
-
-mtu = section:taboption("general", Value, "mtu", translate("MTU"))
-mtu.datatype = "uinteger"
-
-username = section:taboption("general", Value, "username", translate("Username"))
-password = section:taboption("general", Value, "password", translate("Password"))
-password.password = true
-hexpassword = section:taboption("general", Value, "hexpassword", translate("Obfuscated Password"))
-hexpassword.password = true
-authroup = section:taboption("general", Value, "authgroup", translate("Auth Group"))
-passgroup = section:taboption("general", Value, "passgroup", translate("Group Password"))
-passgroup.password = true
-hexpassgroup = section:taboption("general", Value, "hexpassgroup", translate("Obfuscated Group Password"))
-hexpassword.password= true
-
-domain = section:taboption("general", Value, "domain", translate("NT Domain"))
-vendor = section:taboption("general", Value, "vendor", translate("Vendor"))
-dh_group = section:taboption("general", ListValue, "dh_group", translate("IKE DH Group"))
-dh_group:value("dh2")
-dh_group:value("dh1")
-dh_group:value("dh5")
-
-pfs = section:taboption("general", ListValue, "pfs", translate("Perfect Forward Secrecy"))
-pfs:value("server")
-pfs:value("nopfs")
-pfs:value("dh1")
-pfs:value("dh2")
-pfs:value("dh5")
-
-natt_mode = section:taboption("general", ListValue, "natt_mode", translate("NAT-T Mode"))
-natt_mode:value("natt", translate("RFC3947 NAT-T mode"))
-natt_mode:value("none", translate("No NAT-T"))
-natt_mode:value("force-natt", translate("Force use of NAT-T"))
-natt_mode:value("cisco-udp", translate("Cisco UDP encapsulation"))
-
-enable_no_enc = section:taboption("general", Flag, "enable_no_enc",
-       translate("Disable Encryption"),
-       translate("If checked, encryption is disabled"))
-enable_no_enc.default = enable_no_enc.disabled
-
-enable_single_des = section:taboption("general", Flag, "enable_single_des",
-       translate("Enable Single DES"),
-       translate("If checked, 1DES is enabled"))
-enable_no_enc.default = enable_single_des.disabled
-
-dpd_idle = section:taboption("general", Value, "dpd_idle", translate("DPD Idle Timeout"))
-dpd_idle.datatype = "uinteger"
-dpd_idle.placeholder = "600"
-
-ifname = section:taboption("general", Value, "target_network", translate("Target network"))
-port.placeholder = "0.0.0.0/0"
-port.datatype    = "network"
-
-defaultroute = section:taboption("general", ListValue, "defaultroute",
-       translate("Default Route"),
-       translate("Set VPN as Default Route"))
-defaultroute:value("0", translate("No"))
-defaultroute:value("1", translate("Yes"))
diff --git a/package/luci/protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua b/package/luci/protocols/luci-proto-vpnc/luasrc/model/network/proto_vpnc.lua
deleted file mode 100644 (file)
index 6c3136e..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
--- Copyright 2015 Daniel Dickinson <openwrt@daniel.thecshore.com>
--- Licensed to the public under the Apache License 2.0.
-
-local netmod = luci.model.network
-local interface = luci.model.network.interface
-local proto = netmod:register_protocol("vpnc")
-
-function proto.get_i18n(self)
-       return luci.i18n.translate("VPNC (CISCO 3000 (and others) VPN)")
-end
-
-function proto.ifname(self)
-       return "vpn-" .. self.sid
-end
-
-function proto.get_interface(self)
-       return interface(self:ifname(), self)
-end
-
-function proto.opkg_package(self)
-       return "vpnc"
-end
-
-function proto.is_installed(self)
-       return nixio.fs.access("/lib/netifd/proto/vpnc.sh")
-end
-
-function proto.is_floating(self)
-       return true
-end
-
-function proto.is_virtual(self)
-       return true
-end
-
-function proto.get_interfaces(self)
-       return nil
-end
-
-function proto.contains_interface(self, ifc)
-        return (netmod:ifnameof(ifc) == self:ifname())
-
-end
-
-netmod:register_pattern_virtual("^vpn%-%w")
-
diff --git a/package/luci/protocols/luci-proto-wireguard/Makefile b/package/luci/protocols/luci-proto-wireguard/Makefile
deleted file mode 100644 (file)
index 3540a74..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Copyright (C) 2016 Dan Luedtke <mail@danrl.com>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Support for WireGuard VPN
-LUCI_DEPENDS:=+kmod-wireguard +wireguard-tools
-LUCI_PKGARCH:=all
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua b/package/luci/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua
deleted file mode 100644 (file)
index 64e256a..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
--- Copyright 2016-2017 Dan Luedtke <mail@danrl.com>
--- Licensed to the public under the Apache License 2.0.
-
-
-local map, section, net = ...
-local ifname = net:get_interface():name()
-local private_key, listen_port
-local metric, mtu, preshared_key, description
-local peers, public_key, allowed_ips, endpoint, persistent_keepalive
-
-
--- general ---------------------------------------------------------------------
-
-private_key = section:taboption(
-  "general",
-  Value,
-  "private_key",
-  translate("Private Key"),
-  translate("Required. Base64-encoded private key for this interface.")
-)
-private_key.password = true
-private_key.datatype = "and(base64,rangelength(44,44))"
-private_key.optional = false
-
-
-listen_port = section:taboption(
-  "general",
-  Value,
-  "listen_port",
-  translate("Listen Port"),
-  translate("Optional. UDP port used for outgoing and incoming packets.")
-)
-listen_port.datatype = "port"
-listen_port.placeholder = translate("random")
-listen_port.optional = true
-
-addresses = section:taboption(
-  "general",
-  DynamicList,
-  "addresses",
-  translate("IP Addresses"),
-  translate("Recommended. IP addresses of the WireGuard interface.")
-)
-addresses.datatype = "ipaddr"
-addresses.optional = true
-
-
--- advanced --------------------------------------------------------------------
-
-metric = section:taboption(
-  "advanced",
-  Value,
-  "metric",
-  translate("Metric"),
-  translate("Optional")
-)
-metric.datatype = "uinteger"
-metric.placeholder = "0"
-metric.optional = true
-
-
-mtu = section:taboption(
-  "advanced",
-  Value,
-  "mtu",
-  translate("MTU"),
-  translate("Optional. Maximum Transmission Unit of tunnel interface.")
-)
-mtu.datatype = "range(1280,1420)"
-mtu.placeholder = "1420"
-mtu.optional = true
-
-fwmark = section:taboption(
-  "advanced",
-  Value,
-  "fwmark",
-  translate("Firewall Mark"),
-  translate("Optional. 32-bit mark for outgoing encrypted packets. " ..
-            "Enter value in hex, starting with <code>0x</code>.")
-)
-fwmark.datatype = "hex(4)"
-fwmark.optional = true
-
-
--- peers -----------------------------------------------------------------------
-
-peers = map:section(
-  TypedSection,
-  "wireguard_" .. ifname,
-  translate("Peers"),
-  translate("Further information about WireGuard interfaces and peers " ..
-            "at <a href=\"http://wireguard.com\">wireguard.com</a>.")
-)
-peers.template = "cbi/tsection"
-peers.anonymous = true
-peers.addremove = true
-
-
-description = peers:option(
-  Value,
-  "description",
-  translate("Description"),
-  translate("Optional. Description of peer."))
-description.placeholder = "My Peer"
-description.datatype = "string"
-description.optional = true
-
-
-public_key = peers:option(
-  Value,
-  "public_key",
-  translate("Public Key"),
-  translate("Required. Base64-encoded public key of peer.")
-)
-public_key.datatype = "and(base64,rangelength(44,44))"
-public_key.optional = false
-
-
-preshared_key = peers:option(
-  Value,
-  "preshared_key",
-  translate("Preshared Key"),
-  translate("Optional. Base64-encoded preshared key. " ..
-            "Adds in an additional layer of symmetric-key " ..
-            "cryptography for post-quantum resistance.")
-)
-preshared_key.password = true
-preshared_key.datatype = "and(base64,rangelength(44,44))"
-preshared_key.optional = true
-
-
-allowed_ips = peers:option(
-  DynamicList,
-  "allowed_ips",
-  translate("Allowed IPs"),
-  translate("Required. IP addresses and prefixes that this peer is allowed " ..
-            "to use inside the tunnel. Usually the peer's tunnel IP " ..
-            "addresses and the networks the peer routes through the tunnel.")
-)
-allowed_ips.datatype = "ipaddr"
-allowed_ips.optional = false
-
-
-route_allowed_ips = peers:option(
-  Flag,
-  "route_allowed_ips",
-  translate("Route Allowed IPs"),
-  translate("Optional. Create routes for Allowed IPs for this peer.")
-)
-
-
-endpoint_host = peers:option(
-  Value,
-  "endpoint_host",
-  translate("Endpoint Host"),
-  translate("Optional. Host of peer. Names are resolved " ..
-            "prior to bringing up the interface."))
-endpoint_host.placeholder = "vpn.example.com"
-endpoint_host.datatype = "host"
-
-
-endpoint_port = peers:option(
-  Value,
-  "endpoint_port",
-  translate("Endpoint Port"),
-  translate("Optional. Port of peer."))
-endpoint_port.placeholder = "51820"
-endpoint_port.datatype = "port"
-
-
-persistent_keepalive = peers:option(
-  Value,
-  "persistent_keepalive",
-  translate("Persistent Keep Alive"),
-  translate("Optional. Seconds between keep alive messages. " ..
-            "Default is 0 (disabled). Recommended value if " ..
-            "this device is behind a NAT is 25."))
-persistent_keepalive.datatype = "range(0,65535)"
-persistent_keepalive.placeholder = "0"
diff --git a/package/luci/protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua b/package/luci/protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua
deleted file mode 100644 (file)
index d693761..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
--- Copyright 2016 Dan Luedtke <mail@danrl.com>
--- Licensed to the public under the Apache License 2.0.
-
-local netmod = luci.model.network
-local interface = luci.model.network.interface
-local proto = netmod:register_protocol("wireguard")
-
-function proto.get_i18n(self)
-  return luci.i18n.translate("WireGuard VPN")
-end
-
-function proto.ifname(self)
-  return self.sid
-end
-
-function proto.get_interface(self)
-  return interface(self:ifname(), self)
-end
-
-function proto.opkg_package(self)
-  return "wireguard-tools"
-end
-
-function proto.is_installed(self)
-  return nixio.fs.access("/lib/netifd/proto/wireguard.sh")
-end
-
-function proto.is_floating(self)
-  return true
-end
-
-function proto.is_virtual(self)
-  return true
-end
-
-function proto.get_interfaces(self)
-  return nil
-end
-
-function proto.contains_interface(self, ifc)
-   return (netmod:ifnameof(ifc) == self:ifname())
-end
diff --git a/package/luci/themes/luci-theme-bootstrap/Makefile b/package/luci/themes/luci-theme-bootstrap/Makefile
deleted file mode 100644 (file)
index 1bb205e..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Bootstrap Theme (default)
-LUCI_DEPENDS:=
-
-PKG_LICENSE:=Apache-2.0
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/cascade.css b/package/luci/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/cascade.css
deleted file mode 100644 (file)
index ab4e08a..0000000
+++ /dev/null
@@ -1,2228 +0,0 @@
-/*!
- * LuCI Bootstrap Theme
- * Copyright 2012 Nut & Bolt
- * By David Menting <david@nut-bolt.nl>
- * Based on Bootstrap v1.4.0
- *
- * Copyright 2011 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */
-/* Reset.less
- * Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here      that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc).
- * ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
-
-* {
-       margin: 0;
-       padding: 0;
-       border: 0;
-       box-sizing: border-box;
-}
-
-abbr[title], acronym[title] {
-       border-bottom: 1px dotted;
-       font-weight: inherit;
-       cursor: help;
-}
-
-table {
-       border-collapse: collapse;
-       border-spacing: 0;
-}
-
-ol, ul {
-       list-style: none;
-}
-
-html {
-       font-size: 100%;
-       -webkit-text-size-adjust: 100%;
-       -ms-text-size-adjust: 100%;
-}
-
-a:focus {
-       outline: thin dotted;
-}
-
-a:hover, a:active {
-       outline: 0;
-}
-
-footer,
-header,
-nav,
-section {
-       display: block;
-}
-
-sub, sup {
-       font-size: 75%;
-       line-height: 0;
-       position: relative;
-       vertical-align: baseline;
-}
-
-sup {
-       top: -0.5em;
-}
-
-sub {
-       bottom: -0.25em;
-}
-
-img {
-       -ms-interpolation-mode: bicubic;
-}
-
-button,
-input,
-select,
-option,
-textarea {
-       font-size: 100%;
-       margin: 0;
-       box-sizing: border-box;
-       vertical-align: baseline;
-       line-height: normal;
-}
-
-button::-moz-focus-inner, input::-moz-focus-inner {
-       border: 0;
-       padding: 0;
-}
-
-button,
-input[type="button"],
-input[type="reset"],
-input[type="submit"] {
-       cursor: pointer;
-       -webkit-appearance: button;
-}
-
-button[disabled],
-input[type="button"][disabled],
-input[type="reset"][disabled],
-input[type="submit"][disabled] {
-       opacity: 0.7;
-}
-
-input[type="search"] {
-       -webkit-appearance: textfield;
-       box-sizing: content-box;
-}
-
-input[type="search"]::-webkit-search-decoration {
-       -webkit-appearance: none;
-}
-
-textarea {
-       overflow: auto;
-       vertical-align: top;
-}
-
-/*
- * Scaffolding
- * Basic and global styles for generating a grid system, structural layout, and page templates
- * ------------------------------------------------------------------------------------------- */
-body {
-       background-color: #fff;
-       font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-       font-size: 13px;
-       font-weight: normal;
-       line-height: 18px;
-       color: #404040;
-       padding: 58px 5px 5px 5px;
-}
-
-.container {
-       width: 100%;
-       max-width: 940px;
-       margin-left: auto;
-       margin-right: auto;
-       zoom: 1;
-}
-
-.container:before, .container:after {
-       display: table;
-       content: "";
-       zoom: 1;
-}
-
-.container:after {
-       clear: both;
-}
-
-a {
-       color: #0069d6;
-       text-decoration: none;
-       line-height: inherit;
-       font-weight: inherit;
-}
-
-a:hover {
-       color: #00438a;
-       text-decoration: underline;
-}
-
-.pull-right {
-       float: right;
-}
-
-.pull-left {
-       float: left;
-}
-
-.nowrap {
-       white-space: nowrap;
-}
-
-/* Typography.less
- * Headings, body text, lists, code, and more for a versatile and durable typography system
- * ---------------------------------------------------------------------------------------- */
-p,
-.cbi-map-descr,
-.cbi-section-descr,
-.table .tr.cbi-section-table-descr .th {
-       font-size: 13px;
-       font-weight: normal;
-       line-height: 18px;
-       margin-bottom: 9px;
-}
-
-p small {
-       font-size: 11px;
-       color: #bfbfbf;
-}
-
-h1,
-h2,
-h3, legend,
-h4,
-h5,
-h6 {
-       font-weight: bold;
-       color: #404040;
-}
-
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small {
-       color: #bfbfbf;
-}
-
-h1 {
-       margin-bottom: 18px;
-       font-size: 30px;
-       line-height: 36px;
-}
-
-h1 small {
-       font-size: 18px;
-}
-
-h2 {
-       font-size: 24px;
-       line-height: 36px;
-}
-
-h2 small {
-       font-size: 14px;
-}
-
-h3, legend,
-h4,
-h5,
-h6 {
-       line-height: 36px;
-}
-
-h3, legend {
-       font-size: 18px;
-}
-
-h3 small {
-       font-size: 14px;
-}
-
-h4 {
-       font-size: 16px;
-}
-
-h4 small {
-       font-size: 12px;
-}
-
-h5 {
-       font-size: 14px;
-}
-
-h6 {
-       font-size: 13px;
-       color: #bfbfbf;
-       text-transform: uppercase;
-}
-
-ul, ol {
-       margin: 0 0 18px 25px;
-}
-
-ul ul,
-ul ol,
-ol ol,
-ol ul {
-       margin-bottom: 0;
-}
-
-ul {
-       list-style: disc;
-}
-
-ol {
-       list-style: decimal;
-}
-
-li {
-       line-height: 18px;
-       color: #808080;
-}
-
-ul.unstyled {
-       list-style: none;
-       margin-left: 0;
-}
-
-dl {
-       margin-bottom: 18px;
-}
-
-dl dt, dl dd {
-       line-height: 18px;
-}
-
-dl dt {
-       font-weight: bold;
-}
-
-dl dd {
-       margin-left: 9px;
-}
-
-hr {
-       margin: 20px 0 19px;
-       border: 0;
-       border-bottom: 1px solid #eee;
-}
-
-strong {
-       font-style: inherit;
-       font-weight: bold;
-}
-
-em {
-       font-style: italic;
-       font-weight: inherit;
-       line-height: inherit;
-}
-
-small { font-size: 0.9em }
-
-address {
-       display: block;
-       line-height: 18px;
-       margin-bottom: 18px;
-}
-
-code, pre {
-       padding: 0 3px 2px;
-       font-family: Monaco, Andale Mono, Courier New, monospace;
-       font-size: 12px;
-       border-radius: 3px;
-}
-
-code {
-       background-color: #fee9cc;
-       color: rgba(0, 0, 0, 0.75);
-       padding: 1px 3px;
-}
-
-pre {
-       background-color: #f5f5f5;
-       display: block;
-       padding: 8.5px;
-       margin: 0 0 18px;
-       line-height: 18px;
-       font-size: 12px;
-       border: 1px solid #ccc;
-       border: 1px solid rgba(0, 0, 0, 0.15);
-       border-radius: 3px;
-       white-space: pre;
-       white-space: pre-wrap;
-       word-wrap: break-word;
-}
-
-/* Forms.less
- * Base styles for various input types, form layouts, and states
- * ------------------------------------------------------------- */
-form {
-       margin-bottom: 18px;
-}
-
-fieldset {
-       margin-bottom: 9px;
-       padding-top: 9px;
-}
-
-fieldset legend {
-       display: block;
-       font-size: 19.5px;
-       line-height: 1;
-       color: #404040;
-       padding-top: 20px;
-
-}
-form .cbi-tab-descr {
-       line-height: 18px;
-       margin-bottom: 18px;
-}
-
-form .clearfix,
-.cbi-value {
-       margin-bottom: 18px;
-       zoom: 1;
-}
-
-form .clearfix:before, form .clearfix:after,
-.cbi-value:before, .cbi-value:after  {
-       display: table;
-       content: "";
-       zoom: 1;
-}
-
-form .clearfix:after,
-.cbi-value:after {
-       clear: both;
-}
-
-label,
-input,
-select,
-textarea {
-       font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-       font-size: 13px;
-       font-weight: normal;
-       line-height: normal;
-}
-
-form .input,
-.cbi-value-field {
-       margin-left: 200px;
-}
-
-.cbi-value label.cbi-value-title {
-       padding-top: 6px;
-       font-size: 13px;
-       line-height: 18px;
-       float: left;
-       width: 180px;
-       text-align: right;
-       color: #404040;
-}
-
-input[type=checkbox], input[type=radio] {
-       cursor: pointer;
-}
-
-label > input[type="checkbox"],
-label > input[type="radio"] {
-       vertical-align: bottom;
-       margin: 0;
-}
-
-input,
-textarea,
-select,
-.cbi-dropdown,
-.uneditable-input {
-       display: inline-block;
-       width: 210px;
-       height: 30px;
-       padding: 4px;
-       font-size: 13px;
-       line-height: 18px;
-       color: #808080;
-       border: 1px solid #ccc;
-       border-radius: 3px;
-}
-
-.cbi-dropdown,
-.cbi-dynlist {
-       min-width: 210px;
-       max-width: 400px;
-       width: auto;
-}
-
-.cbi-dynlist {
-       height: auto;
-       min-height: 30px;
-       display: inline-flex;
-       flex-direction: column;
-}
-
-.cbi-dynlist > .item {
-       margin-bottom: 4px;
-       box-shadow: 0 0 2px #ccc;
-       background: #fff;
-       padding: 2px 2em 2px 4px;
-       border: 1px solid #ccc;
-       border-radius: 3px;
-       position: relative;
-       pointer-events: none;
-}
-
-.cbi-dynlist > .item::after {
-       content: "×";
-       position: absolute;
-       display: inline-flex;
-       align-items: center;
-       top: -1px;
-       right: -1px;
-       bottom: -1px;
-       padding: 0 6px;
-       border: 1px solid #ccc;
-       border-radius: 0 3px 3px 0;
-       font-weight: bold;
-       color: #c44;
-       pointer-events: auto;
-}
-
-.cbi-dynlist > .add-item {
-       display: flex;
-}
-
-.cbi-dynlist > .add-item > input,
-.cbi-dynlist > .add-item > button {
-       flex: 1 1 auto;
-       overflow: hidden;
-       text-overflow: ellipsis;
-       white-space: nowrap;
-}
-
-select {
-       padding: initial;
-       background: #fff;
-       box-shadow: inset 0 -1px 3px rgba(0, 0, 0, 0.1);
-}
-
-input[type=checkbox], input[type=radio] {
-       width: auto;
-       height: auto;
-       padding: 0;
-       margin: 3px 0;
-       *margin-top: 0;
-       /* IE6-7 */
-
-       line-height: normal;
-       border: none;
-}
-
-input[type=file] {
-       background-color: #fff;
-       padding: initial;
-       border: initial;
-       line-height: initial;
-       box-shadow: none;
-       width: auto !important;
-}
-
-input[type=button], input[type=reset], input[type=submit] {
-       width: auto;
-       height: auto;
-}
-
-select[multiple] {
-       height: inherit;
-       background-color: #fff;
-}
-
-textarea {
-       height: auto !important;
-}
-
-.td > input[type=text],
-.td > input[type=password],
-.td > select,
-.td > .cbi-dropdown,
-.cbi-dynlist > .add-item > .cbi-dropdown {
-       width: 100%;
-}
-
-.uneditable-input {
-       background-color: #fff;
-       display: block;
-       border-color: #eee;
-       box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-       cursor: not-allowed;
-}
-
-::-moz-placeholder {
-       color: #bfbfbf;
-}
-
-::-webkit-input-placeholder {
-       color: #bfbfbf;
-}
-
-.item::after, .btn, .cbi-button, input, textarea {
-       transition: border linear 0.2s, box-shadow linear 0.2s;
-       box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
-}
-
-.item:hover::after,
-.btn:hover, .cbi-button:hover,
-input:focus, textarea:focus {
-       outline: 0;
-       border-color: rgba(82, 168, 236, 0.8) !important;
-       box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
-       text-decoration: none;
-}
-
-input[type=file]:focus, input[type=checkbox]:focus, select:focus {
-       box-shadow: none;
-       outline: 1px dotted #666;
-}
-
-input[disabled],
-select[disabled],
-textarea[disabled],
-input[readonly],
-select[readonly],
-textarea[readonly] {
-       background-color: #f5f5f5;
-       border-color: #ddd;
-       pointer-events: none;
-       cursor: default;
-}
-
-select[readonly],
-textarea[readonly] {
-       pointer-events: auto;
-       cursor: auto;
-}
-
-.cbi-optionals,
-.cbi-section-create {
-       padding: 0 0 10px 10px;
-}
-
-.cbi-section-create {
-       margin: -3px;
-       display: inline-flex;
-       align-items: center;
-}
-
-.cbi-section-create > * {
-       margin: 3px;
-       flex: 1 1 auto;
-}
-
-.cbi-section-create > * > input {
-       width: 100%;
-}
-
-.actions,
-.cbi-page-actions {
-       background: #f5f5f5;
-       margin-bottom: 18px;
-       padding: 17px 20px 18px 17px;
-       border-top: 1px solid #ddd;
-       border-radius: 0 0 3px 3px;
-       text-align: right;
-}
-
-.actions .secondary-action,
-.cbi-page-actions .secondary-action{
-       float: right;
-}
-
-.actions .secondary-action a,
-.cbi-page-actions .secondary-action a {
-       line-height: 30px;
-}
-
-.actions .secondary-action a:hover,
-.cbi-page-actions .secondary-action a:hover {
-       text-decoration: underline;
-}
-
-.cbi-page-actions > form {
-       display: inline;
-       margin: 0;
-}
-
-.help-inline, .help-block {
-       font-size: 13px;
-       line-height: 18px;
-       color: #bfbfbf;
-}
-
-.help-inline {
-       padding-left: 5px;
-       *position: relative;
-       /* IE6-7 */
-
-       *top: -5px;
-       /* IE6-7 */
-
-}
-
-.help-block {
-       display: block;
-       max-width: 600px;
-}
-
-/*
- * Tables.less
- * Tables for, you guessed it, tabular data
- * ---------------------------------------- */
-.tr { display: table-row; }
-.table[width="33%"], .th[width="33%"], .td[width="33%"] { width: 33%; }
-.table[width="100%"], .th[width="100%"], .td[width="100%"] { width: 100%; }
-
-.table {
-       display: table;
-       width: 100%;
-       margin-bottom: 18px;
-       padding: 0;
-       font-size: 13px;
-       border-collapse: collapse;
-       position: relative;
-}
-
-.table .th, .table .td {
-       display: table-cell;
-       vertical-align: middle; /* Fixme */
-       padding: 10px 10px 9px;
-       line-height: 18px;
-       text-align: left;
-}
-
-.table .tr:first-child .th {
-       padding-top: 9px;
-       font-weight: bold;
-       vertical-align: top;
-}
-
-.table .td, .table .th {
-       border-top: 1px solid #ddd;
-}
-
-.tr.placeholder {
-       height: calc(3em + 20px);
-}
-
-.tr.placeholder > .td {
-       position: absolute;
-       left: 0;
-       right: 0;
-       bottom: 0;
-       text-align: center;
-       line-height: 3em;
-}
-
-/* Patterns.less
- * Repeatable UI elements outside the base styles provided from the scaffolding
- * ---------------------------------------------------------------------------- */
-header {
-       height: 40px;
-       position: fixed;
-       top: 0;
-       left: 0;
-       right: 0;
-       z-index: 800;
-       overflow: visible;
-       color: #BFBFBF;
-}
-
-header a {
-       color: #bfbfbf;
-       text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-
-header h3 a:hover, header .brand:hover, header ul .active > a {
-       background-color: #333;
-       background-color: rgba(255, 255, 255, 0.05);
-       color: #fff;
-       text-decoration: none;
-}
-
-header h3 {
-       position: relative;
-}
-
-header h3 a, header .brand {
-       float: left;
-       display: block;
-       padding: 8px 20px 12px;
-       margin-left: -20px;
-       color: #fff;
-       font-size: 20px;
-       font-weight: 200;
-       line-height: 1;
-}
-
-header p {
-       margin: 0;
-       line-height: 40px;
-}
-
-header .fill {
-       background-color: #222;
-       background-repeat: repeat-x;
-       background-image: linear-gradient(to bottom, #333333, #222222);
-       box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
-       padding: 0 5px;
-}
-
-header div > ul, .nav {
-       display: block;
-       float: left;
-       margin: 0 10px 0 0;
-       position: relative;
-       left: 0;
-}
-
-header div > ul > li, .nav > li {
-       display: block;
-       float: left;
-}
-
-header div > ul a, .nav a {
-       display: block;
-       float: none;
-       padding: 10px 10px 11px;
-       line-height: 19px;
-       text-decoration: none;
-}
-
-header div > ul a:hover, .nav a:hover {
-       color: #fff;
-       text-decoration: none;
-}
-
-header div > ul .active > a, .nav .active > a {
-       background-color: #222;
-       background-color: rgba(0, 0, 0, 0.5);
-}
-
-header div > ul.secondary-nav, .nav.secondary-nav {
-       float: right;
-       margin-left: 10px;
-       margin-right: 0;
-}
-
-header div > ul.secondary-nav .menu-dropdown,
-.nav.secondary-nav .menu-dropdown,
-header div > ul.secondary-nav .dropdown-menu,
-.nav.secondary-nav .dropdown-menu {
-       right: 0;
-       border: 0;
-}
-
-header div > ul a.menu:hover,
-.nav a.menu:hover,
-header div > ul li.open .menu,
-.nav li.open .menu,
-header div > ul .dropdown-toggle:hover,
-.nav .dropdown-toggle:hover,
-header div > ul .dropdown.open .dropdown-toggle,
-.nav .dropdown.open .dropdown-toggle {
-       background: #444;
-       background: rgba(255, 255, 255, 0.05);
-}
-
-header div > ul .menu-dropdown,
-.nav .menu-dropdown,
-header div > ul .dropdown-menu,
-.nav .dropdown-menu {
-       background-color: #333;
-}
-
-header div > ul .menu-dropdown a.menu,
-.nav .menu-dropdown a.menu,
-header div > ul .dropdown-menu a.menu,
-.nav .dropdown-menu a.menu,
-header div > ul .menu-dropdown .dropdown-toggle,
-.nav .menu-dropdown .dropdown-toggle,
-header div > ul .dropdown-menu .dropdown-toggle,
-.nav .dropdown-menu .dropdown-toggle {
-       color: #fff;
-}
-
-header div > ul .menu-dropdown a.menu.open,
-.nav .menu-dropdown a.menu.open,
-header div > ul .dropdown-menu a.menu.open,
-.nav .dropdown-menu a.menu.open,
-header div > ul .menu-dropdown .dropdown-toggle.open,
-.nav .menu-dropdown .dropdown-toggle.open,
-header div > ul .dropdown-menu .dropdown-toggle.open,
-.nav .dropdown-menu .dropdown-toggle.open {
-       background: #444;
-       background: rgba(255, 255, 255, 0.05);
-}
-
-header div > ul .menu-dropdown li a,
-.nav .menu-dropdown li a,
-header div > ul .dropdown-menu li a,
-.nav .dropdown-menu li a {
-       color: #999;
-       text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
-}
-
-header div > ul .menu-dropdown li a:hover,
-.nav .menu-dropdown li a:hover,
-header div > ul .dropdown-menu li a:hover,
-.nav .dropdown-menu li a:hover {
-       background-color: #191919;
-       background-repeat: repeat-x;
-       background-image: linear-gradient(to bottom, #292929, #191919);
-       color: #fff;
-}
-
-header div > ul .menu-dropdown .active a,
-.nav .menu-dropdown .active a,
-header div > ul .dropdown-menu .active a,
-.nav .dropdown-menu .active a {
-       color: #fff;
-}
-
-header div > ul .menu-dropdown .divider,
-.nav .menu-dropdown .divider,
-header div > ul .dropdown-menu .divider,
-.nav .dropdown-menu .divider {
-       background-color: #222;
-       border-color: #444;
-}
-
-header ul .menu-dropdown li a, header ul .dropdown-menu li a {
-       padding: 4px 15px;
-}
-
-li.menu, .dropdown {
-       position: relative;
-}
-
-a.menu:after, .dropdown-toggle:after {
-       width: 0;
-       height: 0;
-       display: inline-block;
-       content: "&darr;";
-       text-indent: -99999px;
-       vertical-align: top;
-       margin-top: 8px;
-       margin-left: 4px;
-       border-left: 4px solid transparent;
-       border-right: 4px solid transparent;
-       border-top: 4px solid #fff;
-       opacity: 0.5;
-}
-
-.menu-dropdown, .dropdown-menu {
-       background-color: #fff;
-       float: left;
-       position: absolute;
-       top: 40px;
-       left: -9999px;
-       z-index: 900;
-       min-width: 160px;
-       max-width: 220px;
-       _width: 160px;
-       margin-left: 0;
-       margin-right: 0;
-       padding: 6px 0;
-       zoom: 1;
-       border-color: #999;
-       border-color: rgba(0, 0, 0, 0.2);
-       border-style: solid;
-       border-width: 0 1px 1px;
-       border-radius: 0 0 6px 6px;
-       box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
-       background-clip: padding-box;
-}
-
-.menu-dropdown li, .dropdown-menu li {
-       float: none;
-       display: block;
-       background-color: transparent;
-}
-
-.menu-dropdown .divider, .dropdown-menu .divider {
-       height: 1px;
-       margin: 5px 0;
-       overflow: hidden;
-       background-color: #eee;
-       border-bottom: 1px solid #fff;
-}
-
-header .dropdown-menu a, .dropdown-menu a {
-       display: block;
-       padding: 4px 15px;
-       clear: both;
-       font-weight: normal;
-       line-height: 18px;
-       color: #808080;
-       text-shadow: 0 1px 0 #fff;
-}
-
-header .dropdown-menu a:hover,
-.dropdown-menu a:hover,
-header .dropdown-menu a.hover,
-.dropdown-menu a.hover {
-       background-color: #ddd;
-       background-repeat: repeat-x;
-       background-image: linear-gradient(to bottom, #eee, #ddd);
-       color: #404040;
-       text-decoration: none;
-       box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025);
-}
-
-.open .menu,
-.dropdown.open .menu,
-.open .dropdown-toggle,
-.dropdown.open .dropdown-toggle {
-       color: #fff;
-       background: #ccc;
-       background: rgba(0, 0, 0, 0.3);
-}
-
-.open .menu-dropdown,
-.dropdown.open .menu-dropdown,
-.open .dropdown-menu,
-.dropdown.open .dropdown-menu {
-       left: 0;
-}
-
-.dropdown:hover ul.dropdown-menu {
-       left: 0;
-}
-
-.dropdown-menu .dropdown-menu {
-         position: absolute;
-         left: 159px;
-}
-
-.dropdown-menu li {
-         position: relative;
-}
-
-.tabs, .cbi-tabmenu {
-       margin: 0 -5px 18px;
-       padding: 0 2px;
-       list-style: none;
-       display: flex;
-       flex-wrap: wrap;
-       background: linear-gradient(#fff 28px, #ddd 28px);
-       background-size: 1px 29px;
-       background-position: left bottom;
-}
-
-.tabs > li, .cbi-tabmenu > li {
-       flex: 0 1 auto;
-       display: flex;
-       align-items: center;
-       height: 25px;
-       max-width: 48%;
-       margin: 4px 2px 0 2px;
-       background: #fff;
-       border: 1px solid #ddd;
-       border-bottom: none;
-       border-radius: 4px 4px 0 0;
-       color: #0069d6;
-}
-
-.tabs > li > a, .cbi-tabmenu > li > a {
-       padding: 4px 6px;
-       white-space: nowrap;
-       overflow: hidden;
-       text-overflow: ellipsis;
-       color: inherit;
-       text-decoration: none;
-       border-radius: 4px 4px 0 0;
-       line-height: 25px;
-       outline: none;
-}
-
-.tabs > li:not(.active):hover, .cbi-tabmenu > .cbi-tab-disabled:hover {
-       background: linear-gradient(#fff 90%, #ddd 100%);
-}
-
-.tabs > li:not(.active), .cbi-tabmenu > .cbi-tab-disabled {
-       color: #999;
-       background: linear-gradient(#eee 90%, #ddd 100%);
-}
-
-.cbi-tab-disabled[data-errors]::after {
-       content: attr(data-errors);
-       background: #c43c35;
-       color: #fff;
-       min-width: 12px;
-       line-height: 14px;
-       border-radius: 7px;
-       text-align: center;
-       margin: 0 5px 0 0;
-       padding: 1px 2px;
-}
-
-.cbi-tabmenu.map {
-       margin: 0;
-}
-
-.cbi-tabmenu.map > li {
-       font-size: 16.5px;
-       font-weight: bold;
-}
-
-.cbi-tabcontainer > fieldset.cbi-section[id] > legend {
-       display: none;
-}
-
-.tabs .menu-dropdown, .tabs .dropdown-menu {
-       top: 35px;
-       border-width: 1px;
-       border-radius: 0 6px 6px 6px;
-}
-
-.tabs a.menu:after, .tabs .dropdown-toggle:after {
-       border-top-color: #999;
-       margin-top: 15px;
-       margin-left: 5px;
-}
-
-.tabs li.open.menu .menu, .tabs .open.dropdown .dropdown-toggle {
-       border-color: #999;
-}
-
-.tabs li.open a.menu:after, .tabs .dropdown.open .dropdown-toggle:after {
-       border-top-color: #555;
-}
-
-.tab-content > .tab-pane,
-.tab-content > div {
-       display: none;
-}
-
-.tab-content > .active {
-       display: block;
-}
-
-.breadcrumb {
-       padding: 7px 14px;
-       margin: 0 0 18px;
-       background-color: #f5f5f5;
-       background-repeat: repeat-x;
-       background-image: linear-gradient(to bottom, #fff, #f5f5f5);
-       border: 1px solid #ddd;
-       border-radius: 3px;
-       box-shadow: inset 0 1px 0 #fff;
-}
-
-.breadcrumb li {
-       display: inline;
-       text-shadow: 0 1px 0 #fff;
-}
-
-.breadcrumb .divider {
-       padding: 0 5px;
-       color: #bfbfbf;
-}
-
-.breadcrumb .active a {
-       color: #404040;
-}
-
-footer {
-       margin-top: 17px;
-       padding-top: 17px;
-       border-top: 1px solid #eee;
-}
-
-#modal_overlay {
-       position: fixed;
-       top: 0;
-       bottom: 0;
-       left: -10000px;
-       right: 10000px;
-       background: rgba(0, 0, 0, 0.7);
-       z-index: 900;
-       overflow-y: scroll;
-       -webkit-overflow-scrolling: touch;
-       transition: opacity .125s ease-in;
-       opacity: 0;
-       visibility: hidden;
-}
-
-.modal {
-       width: 90%;
-       margin: 5em auto;
-       display: flex;
-       flex-wrap: wrap;
-       min-height: 32px;
-       max-width: 600px;
-       align-items: center;
-       border-radius: 3px;
-       background: #fff;
-       box-shadow: 0 0 3px #444;
-       padding: 1em 1em .5em 1em;
-       max-height: 2400px;
-       min-width: 270px;
-}
-
-.modal > * {
-       flex-basis: 100%;
-       line-height: normal;
-       margin-bottom: .5em;
-}
-
-.modal > pre,
-.modal > textarea {
-       white-space: pre-wrap;
-       overflow: auto;
-}
-
-body.modal-overlay-active {
-       overflow: hidden;
-       height: 100vh;
-}
-
-body.modal-overlay-active #modal_overlay {
-       left: 0;
-       right: 0;
-       opacity: 1;
-       visibility: visible;
-}
-
-.btn.danger,
-.alert-message.danger,
-.btn.danger:hover,
-.alert-message.danger:hover,
-.btn.error,
-.alert-message.error,
-.btn.error:hover,
-.alert-message.error:hover,
-.btn.success,
-.alert-message.success,
-.btn.success:hover,
-.alert-message.success:hover,
-.btn.info,
-.alert-message.info,
-.btn.info:hover,
-.alert-message.info:hover,
-.cbi-tooltip.error, .cbi-tooltip.success, .cbi-tooltip.info {
-       color: #fff;
-}
-
-.btn .close, .alert-message .close {
-       font-family: Arial, sans-serif;
-       line-height: 18px;
-}
-
-.btn.danger,
-.alert-message.danger,
-.btn.error,
-.alert-message.error,
-.cbi-tooltip.error {
-       background: linear-gradient(to bottom, #ee5f5b, #c43c35) repeat-x;
-       text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-       border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-
-.btn.success, .alert-message.success, .cbi-tooltip.success {
-       background: linear-gradient(to bottom, #62c462, #57a957) repeat-x;
-       text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-       border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-
-.btn.info, .alert-message.info, .cbi-tooltip.info {
-       background: linear-gradient(to bottom, #5bc0de, #339bb9) repeat-x;
-       text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-       border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-
-.alert-message.notice, .cbi-tooltip.notice {
-       background: linear-gradient(to bottom, #efefef, #fefefe) repeat-x;
-       text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25);
-       border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-
-.item::after,
-.btn,
-.cbi-button {
-       cursor: pointer;
-       display: inline-block;
-       background: linear-gradient(#fff, #fff 25%, #e6e6e6) no-repeat;
-       padding: 5px 14px 6px;
-       text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
-       color: #333;
-       font-size: 13px;
-       line-height: normal;
-       border: 1px solid #ccc;
-       border-bottom-color: #bbb;
-       border-radius: 4px;
-       box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.btn:focus,
-.cbi-button:focus {
-       outline: 1px dotted #666;
-}
-
-.cbi-input-invalid,
-.cbi-input-invalid.cbi-dropdown,
-.cbi-input-invalid.cbi-dropdown:not([open]) > ul > li,
-.cbi-value-error input {
-       color: #f00;
-       border-color: #f00;
-}
-
-.cbi-button-positive,
-.cbi-button-fieldadd,
-.cbi-button-add,
-.cbi-button-save {
-       border-color: #4a4;
-       color: #4a4;
-}
-
-.cbi-button-neutral,
-.cbi-button-download,
-.cbi-button-find,
-.cbi-button-link,
-.cbi-button-up,
-.cbi-button-down {
-       color: #444;
-}
-
-.btn.primary,
-.cbi-button-action,
-.cbi-button-apply,
-.cbi-button-reload,
-.cbi-button-edit {
-       border-color: #0069d6;
-       color: #0069d6;
-}
-
-.cbi-button-negative,
-.cbi-section-remove .cbi-button,
-.cbi-button-reset,
-.cbi-button-remove {
-       border-color: #c44;
-       color: #c44;
-}
-
-.cbi-page-actions::after {
-       display: table;
-       content: "";
-       clear: both;
-}
-
-.cbi-page-actions > :not([method="post"]):not(.cbi-button-apply):not(.cbi-button-save):not(.cbi-button-reset) {
-       float: left;
-       margin-right: .4em;
-}
-
-.btn.primary,
-.cbi-button-action.important,
-.cbi-page-actions .cbi-button-apply,
-.cbi-section-actions .cbi-button-edit {
-       color: #fff;
-       background: linear-gradient(to bottom, #0069d6, #0049d6) no-repeat;
-       text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-
-.cbi-button-positive.important,
-.cbi-page-actions .cbi-button-save {
-       color: #fff;
-       background: linear-gradient(to bottom, #4a4, #484) no-repeat;
-       text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-
-.cbi-button-negative.important {
-       color: #fff;
-       background: linear-gradient(to bottom, #c44, #c00) no-repeat;
-       text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-
-.cbi-page-actions .cbi-button-apply + .cbi-button-save {
-       background: linear-gradient(#fff, #fff 25%, #e6e6e6);
-       text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.75);
-       color: #4a4;
-}
-
-.cbi-dropdown {
-       border: 1px solid #ccc;
-       border-radius: 3px;
-       display: inline-flex;
-       padding: 0;
-       cursor: pointer;
-       height: auto;
-       background: linear-gradient(#fff 0%, #e9e8e6 100%);
-       position: relative;
-       color: #404040;
-}
-
-.cbi-dynlist > .item:focus,
-.cbi-dropdown:focus {
-       outline: 2px solid #4b6e9b;
-}
-
-.cbi-dropdown > ul {
-       margin: 0 !important;
-       padding: 0;
-       list-style: none;
-       overflow-x: hidden;
-       overflow-y: auto;
-       display: flex;
-       width: 100%;
-}
-
-.cbi-dropdown > ul.preview {
-       display: none;
-}
-
-.cbi-dropdown > .open,
-.cbi-dropdown > .more {
-       flex-grow: 0;
-       flex-shrink: 0;
-       display: flex;
-       flex-direction: column;
-       justify-content: center;
-       text-align: center;
-       line-height: 2em;
-       padding: 0 .25em;
-}
-
-.cbi-dropdown > .more,
-.cbi-dropdown > ul > li[placeholder] {
-       color: #777;
-       font-weight: bold;
-       text-shadow: 1px 1px 0px #fff;
-       display: none;
-       justify-content: center;
-}
-
-.cbi-dropdown > ul > li {
-       display: none;
-       padding: .25em;
-       white-space: nowrap;
-       overflow: hidden;
-       text-overflow: ellipsis;
-       flex-shrink: 1;
-       flex-grow: 1;
-       align-items: center;
-       align-self: center;
-       color: #404040;
-       min-height: 20px;
-}
-
-.cbi-dropdown > ul > li .hide-open { display: block; display: initial; }
-.cbi-dropdown > ul > li .hide-close { display: none; }
-
-.cbi-dropdown > ul > li[display]:not([display="0"]) {
-       border-left: 1px solid #ccc;
-}
-
-.cbi-dropdown[empty] > ul {
-       max-width: 1px;
-}
-
-.cbi-dropdown > ul > li > form {
-       display: none;
-       margin: 0;
-       padding: 0;
-       pointer-events: none;
-}
-
-.cbi-dropdown > ul > li img {
-       vertical-align: middle;
-       margin-right: .25em;
-}
-
-.cbi-dropdown > ul > li > form > input[type="checkbox"] {
-       margin: 0;
-}
-
-.cbi-dropdown > ul > li input[type="text"] {
-       height: 20px;
-}
-
-.cbi-dropdown[open] {
-       position: relative;
-}
-
-.cbi-dropdown[open] > ul.dropdown {
-       display: block;
-       background: #f6f6f5;
-       border: 1px solid #918e8c;
-       box-shadow: 0 0 4px #918e8c;
-       position: absolute;
-       z-index: 1100;
-       max-width: none;
-       min-width: 100%;
-       width: auto;
-       transition: max-height .125s ease-in;
-}
-
-.cbi-dropdown > ul > li[display],
-.cbi-dropdown[open] > ul.preview,
-.cbi-dropdown[open] > ul.dropdown > li,
-.cbi-dropdown[multiple] > ul > li > label,
-.cbi-dropdown[multiple][open] > ul.dropdown > li,
-.cbi-dropdown[multiple][more] > .more,
-.cbi-dropdown[multiple][empty] > .more {
-       flex-grow: 1;
-       display: flex;
-}
-
-.cbi-dropdown[empty] > ul > li,
-.cbi-dropdown[optional][open] > ul.dropdown > li[placeholder],
-.cbi-dropdown[multiple][open] > ul.dropdown > li > form {
-       display: block;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li .hide-open { display: none; }
-.cbi-dropdown[open] > ul.dropdown > li .hide-close { display: block; display: initial; }
-
-.cbi-dropdown[open] > ul.dropdown > li {
-       border-bottom: 1px solid #ccc;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li[selected] {
-       background: #b0d0f0;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li.focus {
-       background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
-}
-
-.cbi-dropdown[open] > ul.dropdown > li:last-child {
-       margin-bottom: 0;
-       border-bottom: none;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li[unselectable] {
-       opacity: 0.7;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li > input.create-item-input:first-child:last-child {
-       width: 100%;
-}
-
-.cbi-dropdown[disabled] {
-       pointer-events: none;
-       opacity: .6;
-}
-
-input[type="text"] + .cbi-button,
-input[type="password"] + .cbi-button,
-select + .cbi-button {
-       border-radius: 0 3px 3px 0;
-       border-color: #ccc;
-       margin-left: -2px;
-       padding: 0 6px;
-       vertical-align: top;
-       height: 30px;
-       font-size: 14px;
-       line-height: 28px;
-}
-
-select + .cbi-button {
-       border-left-color: transparent;
-}
-
-.cbi-title-ref {
-       color: #37c;
-}
-
-.cbi-title-ref::after {
-       content: "➙";
-}
-
-.cbi-tooltip-container {
-       cursor: help;
-}
-
-.cbi-tooltip {
-       position: absolute;
-       z-index: 1000;
-       left: -1000px;
-       box-shadow: 0 0 2px #ccc;
-       border-radius: 3px;
-       background: #fff;
-       white-space: pre;
-       padding: 2px 5px;
-       opacity: 0;
-       transition: opacity .25s ease-in;
-}
-
-.cbi-tooltip-container:hover .cbi-tooltip:not(:empty) {
-       left: auto;
-       opacity: 1;
-       transition: opacity .25s ease-in;
-}
-
-.cbi-progressbar {
-       border: 1px solid #ccc;
-       border-radius: 3px;
-       position: relative;
-       min-width: 170px;
-       height: 20px;
-       margin: 4px 0;
-       background: #f9f9f9;
-}
-
-.cbi-progressbar > div {
-       background: #90c0e0;
-       height: 100%;
-       transition: width .25s ease-in;
-       width: 0%;
-}
-
-.cbi-progressbar::after {
-       position: absolute;
-       bottom: 0;
-       top: 0;
-       right: 0;
-       left: 0;
-       text-align: center;
-       text-shadow: 0 0 2px #fff;
-       content: attr(title);
-       white-space: pre;
-       overflow: hidden;
-       text-overflow: ellipsis;
-}
-
-.zonebadge .cbi-tooltip {
-       padding: 1px;
-       background: inherit;
-       margin: -1.6em 0 0 -5px;
-       border-radius: 3px;
-       pointer-events: none;
-       box-shadow: 0 0 3px #444;
-}
-
-.zonebadge .cbi-tooltip > * {
-       margin: 1px;
-}
-
-.zone-forwards {
-       display: flex;
-       flex-wrap: wrap;
-}
-
-.zone-forwards > * {
-       flex: 1 1 40%;
-       padding: 1px;
-}
-
-.zone-forwards > span {
-       flex-basis: 10%;
-       text-align: center;
-}
-
-.zone-forwards .zone-src,
-.zone-forwards .zone-dest {
-       display: flex;
-       flex-direction: column;
-}
-
-.btn.active, .btn:active {
-       box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.btn.disabled {
-       cursor: default;
-       background-image: none;
-       opacity: 0.65;
-       box-shadow: none;
-}
-
-.btn[disabled] {
-       cursor: default;
-       background-image: none;
-       opacity: 0.65;
-       box-shadow: none;
-}
-
-.btn.large {
-       font-size: 15px;
-       line-height: normal;
-       padding: 9px 14px 9px;
-       border-radius: 6px;
-}
-
-.btn.small {
-       padding: 7px 9px 7px;
-       font-size: 11px;
-}
-
-button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner {
-       padding: 0;
-       border: 0;
-}
-
-.close {
-       float: right;
-       color: #000;
-       font-size: 20px;
-       font-weight: bold;
-       line-height: 13.5px;
-       text-shadow: 0 1px 0 #fff;
-       opacity: 0.25;
-}
-
-.close:hover {
-       color: #000;
-       text-decoration: none;
-       opacity: 0.4;
-}
-
-.alert-message {
-       position: relative;
-       padding: 7px 15px;
-       margin-bottom: 18px;
-       color: #404040;
-       background: linear-gradient(to bottom, #fceec1, #eedc94) repeat-x;
-       text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-       border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-       text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-       border-width: 1px;
-       border-style: solid;
-       border-radius: 4px;
-       box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
-}
-
-.alert-message .close {
-       margin-top: 1px;
-       *margin-top: 0;
-}
-
-.alert-message a {
-       font-weight: bold;
-       color: #404040;
-}
-
-.alert-message.danger p a,
-.alert-message.error p a,
-.alert-message.success p a,
-.alert-message.info p a {
-       color: #fff;
-}
-
-.alert-message h5 {
-       line-height: 18px;
-}
-
-.alert-message p {
-       margin-bottom: 0;
-}
-
-.alert-message div {
-       margin-top: 5px;
-       margin-bottom: 2px;
-       line-height: 28px;
-}
-
-.label {
-       padding: 1px 3px 2px;
-       font-size: 9.75px;
-       font-weight: bold;
-       color: #fff !important;
-       text-transform: uppercase;
-       white-space: nowrap;
-       background-color: #bfbfbf;
-       border-radius: 3px;
-       text-shadow: none;
-}
-
-a.label:link,
-a.label:visited {
-       color: #fff;
-}
-
-a.label:hover {
-       text-decoration: none;
-}
-
-.label.important {
-       background-color: #c43c35;
-}
-
-.label.warning {
-       background-color: #f89406;
-}
-
-.label.success {
-       background-color: #46a546;
-}
-
-.label.notice {
-       background-color: #62cffc;
-}
-
-/* LuCI specific items */
-.hidden { display: none }
-
-#xhr_poll_status {
-         cursor: pointer;
-}
-
-form.inline { display: inline; margin-bottom: 0; }
-
-header .pull-right { padding-top: 8px; }
-
-#modemenu li:last-child span.divider { display: none }
-
-#syslog {  width: 100%; }
-
-.cbi-section-table .tr:hover .td,
-.cbi-section-table .tr:hover .th,
-.cbi-section-table .tr:hover::before {
-       background-color: #f5f5f5;
-}
-
-.cbi-section-table .tr.cbi-section-table-descr .th {
-       font-weight: normal;
-}
-
-.cbi-section-table-titles.named::before,
-.cbi-section-table-descr.named::before,
-.cbi-section-table-row[data-title]::before {
-       content: attr(data-title) " ";
-       display: table-cell;
-       padding: 10px 10px 9px;
-       line-height: 18px;
-       font-weight: bold;
-       vertical-align: middle;
-}
-
-.cbi-section-table-titles.named::before,
-.cbi-section-table-descr.named::before,
-.cbi-section-table-row[data-title]::before {
-       border-top: 1px solid #ddd;
-}
-
-.left { text-align: left !important; }
-.right { text-align: right !important; }
-.center { text-align: center !important; }
-.top { vertical-align: top !important; }
-.middle { vertical-align: middle !important; }
-.bottom { vertical-align: bottom !important; }
-
-.cbi-value-field { line-height: 1.5em; }
-
-.cbi-value-field input[type=checkbox],
-.cbi-value-field input[type=radio] {
-       margin-top: 8px;
-       margin-right: 6px;
-}
-
-table table td,
-.cbi-value-field table td {
-       border: none;
-}
-
-.table.cbi-section-table input[type="password"],
-.table.cbi-section-table input[type="text"],
-.table.cbi-section-table textarea,
-.table.cbi-section-table select {
-       width: 100%;
-}
-
-.table.cbi-section-table .td.cbi-section-table-cell {
-       white-space: nowrap;
-       text-align: right;
-}
-
-.table.cbi-section-table .td.cbi-section-table-cell select {
-       width: inherit;
-}
-
-.td.cbi-section-actions {
-       text-align: right;
-       vertical-align: middle;
-}
-
-.td.cbi-section-actions > * {
-       display: flex;
-}
-
-.td.cbi-section-actions > * > *,
-.td.cbi-section-actions > * > form > * {
-       flex: 1 1 4em;
-       margin: 0 1px;
-}
-
-.td.cbi-section-actions > * > form {
-       display: inline-flex;
-       margin: 0;
-}
-
-.table.valign-middle .td {
-       vertical-align: middle;
-}
-
-.cbi-rowstyle-2,
-.tr.table-titles,
-.tr.cbi-section-table-titles {
-       background: #f9f9f9;
-}
-
-.cbi-value-description {
-       background-image: url(/luci-static/resources/cbi/help.gif);
-       background-position: .25em .2em;
-       background-repeat: no-repeat;
-       margin: .25em 0 0 0;
-       padding: 0 0 0 1.7em;
-}
-
-.cbi-section-error {
-       border: 1px solid #f00;
-       border-radius: 3px;
-       background-color: #fce6e6;
-       padding: 5px;
-       margin-bottom: 18px;
-}
-
-.cbi-section-error ul { margin: 0 0 0 20px; }
-
-.cbi-section-error ul li {
-       color: #f00;
-       font-weight: bold;
-}
-
-.ifacebox {
-       background-color: #fff;
-       border: 1px solid #ccc;
-       margin: 0 10px;
-       text-align: center;
-       white-space: nowrap;
-       background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
-       text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
-       border-radius: 4px;
-       box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-       display: inline-flex;
-       flex-direction: column;
-       line-height: 1.2em;
-       min-width: 100px;
-}
-
-.ifacebox .ifacebox-head {
-       border-bottom: 1px solid #ccc;
-       padding: 2px;
-       background: #eee;
-}
-
-.ifacebox .ifacebox-head.active {
-       background: #90c0e0;
-}
-
-.ifacebox .ifacebox-body {
-       padding: .25em;
-}
-
-.ifacebadge {
-       display: inline-block;
-       flex-direction: row;
-       white-space: nowrap;
-       background-color: #fff;
-       border: 1px solid #ccc;
-       padding: 2px;
-       background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
-       text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
-       border-radius: 4px;
-       box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-       cursor: default;
-       line-height: 1.2em;
-}
-
-.ifacebadge img {
-       width: 16px;
-       height: 16px;
-       vertical-align: middle;
-}
-
-.ifacebadge-active {
-       border-color: #000;
-       font-weight: bold;
-}
-
-.network-status-table {
-       display: flex;
-       flex-wrap: wrap;
-}
-
-.network-status-table .ifacebox {
-       margin: .5em;
-       flex-grow: 1;
-}
-
-.network-status-table .ifacebox-body {
-       display: flex;
-       flex-direction: column;
-       height: 100%;
-       text-align: left;
-}
-
-.network-status-table .ifacebox-body > * {
-       margin: .25em;
-}
-
-.network-status-table .ifacebox-body > span {
-       flex: 10 10 auto;
-}
-
-.network-status-table .ifacebox-body > div {
-       display: flex;
-       flex-wrap: wrap;
-       margin: -.125em;
-}
-
-#dsl_status_table .ifacebox-body span > strong {
-       display: inline-block;
-       min-width: 35%;
-}
-
-.ifacebadge.large,
-.network-status-table .ifacebox-body .ifacebadge {
-       display: inline-flex;
-       flex: 1;
-       padding: .25em;
-       min-width: 220px;
-       margin: .125em;
-}
-
-.ifacebadge > *,
-.ifacebadge.large > * {
-       margin: 0 .125em;
-}
-
-.zonebadge {
-       padding: 2px;
-       border-radius: 4px;
-       display: inline-block;
-       white-space: nowrap;
-       color: #666;
-       text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
-}
-
-.zonebadge > em,
-.zonebadge > strong {
-       margin: 0 2px;
-       display: inline-block;
-}
-
-.zonebadge input {
-       width: 6em;
-}
-
-.zonebadge > .ifacebadge {
-       margin-left: 2px;
-}
-
-.zonebadge-empty {
-       border: 1px dashed #aaa;
-       color: #aaa;
-       font-style: italic;
-       font-size: smaller;
-}
-
-div.cbi-value var,
-.td.cbi-value-field var {
-       font-style: italic;
-       color: #0069d6;
-}
-
-.uci-change-list {
-       line-height: 170%;
-       white-space: pre;
-}
-
-.uci-change-list del,
-.uci-change-list ins,
-.uci-change-list var,
-.uci-change-legend-label del,
-.uci-change-legend-label ins,
-.uci-change-legend-label var {
-       text-decoration: none;
-       font-family: monospace;
-       font-style: normal;
-       border: 1px solid #ccc;
-       background: #eee;
-       padding: 2px;
-       display: block;
-       line-height: 15px;
-       margin-bottom: 1px;
-}
-
-.uci-change-list ins,
-.uci-change-legend-label ins {
-       border-color: #0f0;
-       background: #cfc;
-}
-
-.uci-change-list del,
-.uci-change-legend-label del {
-       border-color: #f00;
-       background: #fcc;
-}
-
-.uci-change-list var,
-.uci-change-legend-label var {
-       border-color: #ccc;
-       background: #eee;
-}
-
-.uci-change-list var ins,
-.uci-change-list var del {
-       display: inline-block;
-       border: none;
-       width: 100%;
-       padding: 0;
-}
-
-.uci-change-legend {
-       padding: 5px;
-}
-
-.uci-change-legend-label {
-       width: 150px;
-       float: left;
-}
-
-.uci-change-legend-label > ins,
-.uci-change-legend-label > del,
-.uci-change-legend-label > var {
-       float: left;
-       margin-right: 4px;
-       width: 10px;
-       height: 10px;
-       display: block;
-       position: relative;
-}
-
-.uci-change-legend-label var ins,
-.uci-change-legend-label var del {
-       border: none;
-       position: absolute;
-       top: 2px;
-       left: 2px;
-       right: 2px;
-       bottom: 2px;
-}
-
-#modal_overlay {
-       position: fixed;
-       top: 0;
-       bottom: 0;
-       left: -10000px;
-       right: 10000px;
-       background: rgba(0, 0, 0, 0.7);
-       z-index: 900;
-       overflow-y: scroll;
-       -webkit-overflow-scrolling: touch;
-       transition: opacity .125s ease-in;
-       opacity: 0;
-}
-
-#modal_overlay > .modal {
-       width: 90%;
-       margin: 5em auto;
-       display: flex;
-       flex-wrap: wrap;
-       min-height: 32px;
-       max-width: 600px;
-       align-items: center;
-       border-radius: 3px;
-       background: #fff;
-       box-shadow: 0 0 3px #444;
-       padding: 1em 1em .5em 1em;
-       max-height: 2400px;
-       min-width: 270px;
-}
-
-#modal_overlay .modal > * {
-       flex-basis: 100%;
-       line-height: normal;
-       margin-bottom: .5em;
-}
-
-#modal_overlay .modal > pre,
-#modal_overlay .modal > textarea {
-       white-space: pre-wrap;
-       overflow: auto;
-}
-
-body.modal-overlay-active {
-       overflow: hidden;
-       height: 100vh;
-}
-
-body.modal-overlay-active #modal_overlay {
-       left: 0;
-       right: 0;
-       opacity: 1;
-}
-
-html body.apply-overlay-active {
-       height: calc(100vh - 63px);
-}
-
-#applyreboot-section {
-       line-height: 300%;
-}
-
-[data-page="admin-network-dhcp"] [data-name="ip"] {
-       width: 15%;
-}
-
-@keyframes flash {
-       0% { opacity: 1; }
-       50% { opacity: .5; }
-       100% { opacity: 1; }
-}
-
-.flash {
-       animation: flash .35s;
-}
-
-.spinning {
-       position: relative;
-       padding-left: 32px !important;
-}
-
-.spinning::before {
-       position: absolute;
-       top: 0;
-       left: 0;
-       bottom: 0;
-       width: 32px;
-       content: " ";
-       background: url(../resources/icons/loading.gif) no-repeat center;
-       background-size: 16px;
-}
-
-[data-tab-title] {
-       height: 0;
-       opacity: 0;
-       overflow: hidden;
-}
-
-[data-tab-active="true"] {
-       opacity: 1;
-       height: auto;
-       overflow: visible;
-       transition: opacity .25s ease-in;
-}
diff --git a/package/luci/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/favicon.ico b/package/luci/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/favicon.ico
deleted file mode 100644 (file)
index 77a138b..0000000
Binary files a/package/luci/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/favicon.ico and /dev/null differ
diff --git a/package/luci/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/mobile.css b/package/luci/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/mobile.css
deleted file mode 100644 (file)
index 062d274..0000000
+++ /dev/null
@@ -1,402 +0,0 @@
-header h3 a, header .brand {
-       display:none !important;
-}
-
-@media screen and (max-device-width: 600px) {
-       #maincontent.container {
-               margin-top: 30px;
-       }
-
-       .tabs, .cbi-tabmenu {
-               background: linear-gradient(#fff 20%, #ddd 100%);
-               background-size: 1px 34px;
-               margin-bottom: 10px;
-       }
-
-       .tabs > li, .cbi-tabmenu > li {
-               height: 30px;
-       }
-
-       .tabs > li > a, .cbi-tabmenu > li > a {
-               padding: 0 8px;
-               line-height: 30px;
-       }
-
-       .table {
-               display: flex;
-               flex-direction: column;
-               width: 100%;
-       }
-
-       .tr {
-               display: flex;
-               flex-direction: row;
-               flex-wrap: wrap;
-               align-items: flex-end;
-               border-top: 1px solid #ddd;
-               padding: 5px 0;
-               margin: 0 -3px;
-       }
-
-       .table .th,
-       .table .td,
-       .table .tr::before {
-               flex: 2 2 33%;
-               align-self: flex-start;
-               overflow: hidden;
-               text-overflow: ellipsis;
-               word-wrap: break-word;
-               display: inline-block;
-               border-top: none;
-               padding: 3px;
-               box-sizing: border-box;
-       }
-
-       .table .td.cbi-dropdown-open {
-               overflow: visible;
-       }
-
-       .col-1 { flex: 1 1 30px !important; -webkit-flex: 1 1 30px !important; }
-       .col-2 { flex: 2 2 60px !important; -webkit-flex: 2 2 60px !important; }
-       .col-3 { flex: 3 3 90px !important; -webkit-flex: 3 3 90px !important; }
-       .col-4 { flex: 4 4 120px !important; -webkit-flex: 4 4 120px !important; }
-       .col-5 { flex: 5 5 150px !important; -webkit-flex: 5 5 150px !important; }
-       .col-6 { flex: 6 6 180px !important; -webkit-flex: 6 6 180px !important; }
-       .col-7 { flex: 7 7 210px !important; -webkit-flex: 7 7 210px !important; }
-       .col-8 { flex: 8 8 240px !important; -webkit-flex: 8 8 240px !important; }
-       .col-9 { flex: 9 9 270px !important; -webkit-flex: 9 9 270px !important; }
-       .col-10 { flex: 10 10 300px !important; -webkit-flex: 10 10 300px !important; }
-
-       .td select {
-               word-wrap: normal;
-       }
-
-       .td[data-type="button"],
-       .td[data-type="fvalue"] {
-               flex: 1 1 17%;
-               text-align: left;
-       }
-
-       .td.cbi-value-field {
-               align-self: flex-start;
-       }
-
-       .td.cbi-value-field .cbi-button {
-               width: 100%;
-       }
-
-       .table.cbi-section-table {
-               border: none;
-               background: none;
-               margin: 0;
-       }
-
-       .tr.table-titles,
-       .cbi-section-table-titles,
-       .cbi-section-table-descr {
-               display: none;
-       }
-
-       .cbi-section-table-row {
-               display: flex;
-               flex-direction: row;
-               flex-wrap: wrap;
-               margin: 0 0 .5em 0;
-       }
-
-       .cbi-section-table + .cbi-section-create {
-               padding-top: 0;
-       }
-
-       .tr[data-title]::before {
-               display: block;
-               flex: 1 1 100%;
-               background: #f5f5f5 !important;
-               font-size: 16px;
-               border-bottom: 1px solid #ddd;
-       }
-
-       .td[data-title]::before,
-       .td[data-description]::after {
-               display: block;
-       }
-
-       .td[data-title] ~ .td.cbi-section-actions {
-               align-self: flex-start;
-       }
-
-       .td[data-title] ~ .td.cbi-section-actions::before {
-               display: block;
-               content: "\a0";
-       }
-
-       .td.cbi-section-actions {
-               overflow: initial;
-               max-width: 100%;
-               padding: 3px 2px;
-       }
-
-       .hide-sm,
-       .hide-xs {
-               display: none !important;
-       }
-
-       .td.cbi-value-field {
-               flex-basis: 100%;
-       }
-
-       .td.cbi-value-field[data-type="dvalue"] {
-               flex-basis: 50%;
-       }
-
-       .td.cbi-value-field[data-type="button"],
-       .td.cbi-value-field[data-type="fvalue"] {
-               flex-basis: 25%;
-               text-align: left;
-       }
-
-       .cbi-section-table .tr:hover .td,
-       .cbi-section-table .tr:hover .th,
-       .cbi-section-table .tr:hover::before {
-               background-color: transparent;
-       }
-
-       .cbi-value {
-               padding-bottom: .5em;
-               border-bottom: 1px solid #ddd;
-               margin-bottom: .5em;
-       }
-
-       .cbi-value label.cbi-value-title {
-               float: none;
-               font-weight: bold;
-       }
-
-       .cbi-value-field, .cbi-dropdown {
-               width: 100%;
-               margin: 0;
-       }
-
-       input, textarea, select {
-               font-size: 16px !important;
-               line-height: 28px;
-       }
-
-       select, input[type="text"], input[type="password"] {
-               width: 100%;
-               height: 30px;
-       }
-
-       input.cbi-input-password {
-               width: calc(100% - 25px);
-       }
-
-       [data-dynlist] {
-               display: block;
-       }
-
-       [data-dynlist] > .add-item > input {
-               width: calc(100% - 21px);
-       }
-
-       [data-dynlist] > .add-item > .cbi-button {
-               margin-right: -1px;
-       }
-
-       input[type="text"] + .cbi-button,
-       input[type="password"] + .cbi-button,
-       select + .cbi-button {
-               font-size: 14px !important;
-               line-height:  28px;
-               height: 30px;
-               box-sizing: border-box;
-               overflow: hidden;
-               text-overflow: ellipsis;
-       }
-
-       .cbi-value-field input[type="checkbox"],
-       .cbi-value-field input[type="radio"] {
-               margin: 0;
-       }
-
-       .btn, .cbi-button {
-               font-size: 14px !important;
-               padding: 4px 8px;
-       }
-
-       .actions,
-       .cbi-page-actions {
-               border-top: none;
-               margin-top: -.5em;
-               padding: 8px;
-       }
-
-       [data-page="admin-status-overview"] .cbi-section:nth-of-type(1) .td:first-child,
-       [data-page="admin-status-overview"] .cbi-section:nth-of-type(2) .td:first-child {
-               flex-grow: 1;
-       }
-
-       header .pull-right .label {
-               white-space: normal;
-               display: inline-block;
-               text-align: center;
-               line-height: 12px;
-               margin: 1px 0;
-       }
-
-       header > .fill {
-               padding: 1px;
-       }
-
-       header > .fill > .container {
-               display: flex;
-               flex-direction: row;
-       }
-
-       header .nav {
-               flex: 3 3 80%;
-               margin: 2px 5px 2px 0;
-               display: flex;
-               flex-wrap: wrap;
-               justify-content: flex-start;
-       }
-
-       header .nav a {
-               padding: 2px 6px;
-       }
-
-       header .pull-right {
-               flex: 1 1 20%;
-               display: flex;
-               flex-direction: column;
-               padding: 0;
-               justify-content: space-around;
-       }
-
-       .menu-dropdown, .dropdown-menu {
-               top: 23px;
-       }
-
-       body {
-               padding-top: 30px;
-       }
-
-       .cbi-optionals,
-       .cbi-section-create {
-               padding: 0 0 14px 0;
-       }
-
-       #cbi-network-switch_vlan .th,
-       #cbi-network-switch_vlan .td {
-               flex-basis: 12%;
-       }
-
-       #cbi-network-switch_vlan .td.cbi-section-actions {
-               flex-basis: 100%;
-       }
-
-       #cbi-network-switch_vlan .td.cbi-section-actions::before {
-               display: none;
-       }
-
-       #cbi-network-switch_vlan .td.cbi-section-actions > * {
-               width: auto;
-               display: block;
-       }
-
-       #wifi_assoclist_table .td,
-       [data-page="admin-status-processes"] .td {
-               flex-basis: 50% !important;
-       }
-
-       [data-page="admin-status-processes"] .td[data-type="button"] {
-               flex-basis: 33% !important;
-       }
-
-       [data-page="admin-status-processes"] .td[data-name="PID"],
-       [data-page="admin-status-processes"] .td[data-name="USER"] {
-               flex-basis: 25% !important;
-       }
-
-       [data-page="admin-system-fstab"] .td[data-type="button"]::before,
-       [data-page="admin-system-startup"] .td[data-type="button"]::before,
-       [data-page="admin-status-processes"] .td[data-type="button"]::before {
-               display: none;
-       }
-}
-
-@media screen and (max-device-width: 375px) {
-       #maincontent.container {
-               margin-top: 55px;
-       }
-
-       .cbi-page-actions {
-               display: flex;
-               flex-wrap: wrap;
-               justify-content: space-between;
-               margin: 0 -1px;
-               padding: 0;
-       }
-
-       .cbi-page-actions .cbi-button {
-               flex: 1 1 calc(50% - 2px);
-               margin: 1px !important;
-               overflow: hidden;
-               text-overflow: ellipsis;
-       }
-
-       .cbi-page-actions .cbi-button-primary,
-       .cbi-page-actions .cbi-button-apply {
-               flex-basis: calc(100% - -2px);
-       }
-
-       .cbi-section-actions .cbi-button {
-               overflow: hidden;
-               text-overflow: ellipsis;
-       }
-
-       body[data-page="admin-network-wireless"] .td.col-2 {
-               max-width: 50px;
-       }
-
-       body[data-page="admin-network-wireless"] .td.col-2 > .ifacebadge {
-               display: flex;
-               align-items: center;
-               flex-direction: column;
-       }
-
-       body[data-page="admin-network-network"] .td.col-3 {
-               min-width: 250px;
-       }
-}
-
-@media screen and (max-device-width: 200px) {
-       #maincontent.container {
-               margin-top: 230px;
-       }
-}
-
-@media screen and (max-width: 375px) {
-       .td .ifacebox {
-               width: 100%;
-               margin: 0 !important;
-               flex-direction: row;
-       }
-
-       .td .ifacebox .ifacebox-head {
-               min-width: 25%;
-               justify-content: space-around;
-       }
-
-       .td .ifacebox .ifacebox-head,
-       .td .ifacebox .ifacebox-body {
-               display: flex;
-               border-bottom: none;
-               align-items: center;
-       }
-
-       .td .ifacebox .ifacebox-head > *,
-       .ifacebox .ifacebox-body > * {
-               margin: .125em;
-       }
-}
diff --git a/package/luci/themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/footer.htm b/package/luci/themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/footer.htm
deleted file mode 100644 (file)
index e0a41e1..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Copyright 2012 David Menting <david@nut-bolt.nl>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%
-       local ver = require "luci.version"
-       local disp = require "luci.dispatcher"
-       local request  = disp.context.path
-       local category = request[1]
-       local tree = disp.node()
-       local categories = disp.node_childs(tree)
-%>
-   <footer>
-    <a href="https://github.com/openwrt/luci">Powered by <%= ver.luciname %> (<%= ver.luciversion %>)</a> / <%= ver.distversion %>
-    <% if #categories > 1 then %>
-     <ul class="breadcrumb pull-right" id="modemenu">
-           <% for i, r in ipairs(categories) do %>
-                   <li<% if request[1] == r then %> class="active"<%end%>><a href="<%=controller%>/<%=r%>/"><%=striptags(translate(tree.nodes[r].title))%></a> <span class="divider">|</span></li>
-           <% end %>
-     </ul>
-    <% end %>
-   </footer>
-   </div>
-  </div>
- </body>
-</html>
-
diff --git a/package/luci/themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm b/package/luci/themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm
deleted file mode 100644 (file)
index d784e4f..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2016 Jo-Philipp Wich <jow@openwrt.org>
- Copyright 2012 David Menting <david@nut-bolt.nl>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%
-       local sys  = require "luci.sys"
-       local util = require "luci.util"
-       local http = require "luci.http"
-       local disp = require "luci.dispatcher"
-
-       local boardinfo = util.ubus("system", "board")
-
-       local request  = disp.context.path
-       local request2 = disp.context.request
-
-       local category = request[1]
-       local cattree  = category and disp.node(category)
-
-       local leaf = request2[#request2]
-
-       local tree = disp.node()
-       local node = disp.context.dispatched
-
-       local categories = disp.node_childs(tree)
-
-       local c = tree
-       local i, r
-
-       -- tag all nodes leading to this page
-       for i, r in ipairs(request) do
-               if c.nodes and c.nodes[r] then
-                       c = c.nodes[r]
-                       c._menu_selected = true
-               end
-       end
-
-       -- send as HTML5
-       http.prepare_content("text/html")
-
-       local function nodeurl(prefix, name, query)
-               local u = url(prefix, name)
-               if query then
-                       u = u .. http.build_querystring(query)
-               end
-               return pcdata(u)
-       end
-
-       local function render_tabmenu(prefix, node, level)
-               if not level then
-                       level = 1
-               end
-
-               local childs = disp.node_childs(node)
-               if #childs > 0 then
-                       if level > 2 then
-                               write('<ul class="tabs">')
-                       end
-
-                       local selected_node
-                       local selected_name
-                       local i, v
-
-                       for i, v in ipairs(childs) do
-                               local nnode = node.nodes[v]
-                               if nnode._menu_selected then
-                                       selected_node = nnode
-                                       selected_name = v
-                               end
-
-                               if level > 2 then
-                                       write('<li class="tabmenu-item-%s %s"><a href="%s">%s</a></li>' %{
-                                               v, (nnode._menu_selected or (node.leaf and v == leaf)) and 'active' or '',
-                                               nodeurl(prefix, v, nnode.query),
-                                               striptags(translate(nnode.title))
-                                       })
-                               end
-                       end
-
-                       if level > 2 then
-                               write('</ul>')
-                       end
-
-                       if selected_node then
-                               render_tabmenu(prefix .. "/" .. selected_name, selected_node, level + 1)
-                       end
-               end
-       end
-
-       local function render_submenu(prefix, node)
-               local childs = disp.node_childs(node)
-               if #childs > 0 then
-                       write('<ul class="dropdown-menu">')
-
-                       for i, r in ipairs(childs) do
-                               local nnode = node.nodes[r]
-                               write('<li><a href="%s">%s</a></li>' %{
-                                       nodeurl(prefix, r, nnode.query),
-                                       striptags(translate(nnode.title))
-                               })
-                       end
-
-                       write('</ul>')
-               end
-       end
-
-       local function render_topmenu()
-               local childs = disp.node_childs(cattree)
-               if #childs > 0 then
-                       write('<ul class="nav">')
-
-                       for i, r in ipairs(childs) do
-                               local nnode = cattree.nodes[r]
-                               local grandchildren = disp.node_childs(nnode)
-
-                               if #grandchildren > 0 then
-                                       write('<li class="dropdown"><a class="menu" href="#">%s</a>' % striptags(translate(nnode.title)))
-                                       render_submenu(category .. "/" .. r, nnode)
-                                       write('</li>')
-                               else
-                                       write('<li><a href="%s">%s</a></li>' %{
-                                               nodeurl(category, r, nnode.query),
-                                               striptags(translate(nnode.title))
-                                       })
-                               end
-                       end
-
-                       write('</ul>')
-               end
-       end
-
-       local function render_changes()
-               -- calculate the number of unsaved changes
-               if tree.nodes[category] and tree.nodes[category].ucidata then
-                       local ucichanges = 0
-
-                       local i, j
-                       for i, j in pairs(require("luci.model.uci").cursor():changes()) do
-                               ucichanges = ucichanges + #j
-                       end
-
-                       if ucichanges > 0 then
-                               write('<a class="uci_change_indicator label notice" href="%s?redir=%s">%s: %d</a>' %{
-                                       url(category, 'uci/changes'),
-                                       http.urlencode(http.formvalue('redir') or table.concat(disp.context.request, "/")),
-                                       translate('Unsaved Changes'),
-                                       ucichanges
-                               })
-                       end
-               end
-       end
--%>
-<!DOCTYPE html>
-<html lang="<%=luci.i18n.context.lang%>">
-       <head>
-               <meta charset="utf-8">
-               <title><%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI</title>
-               <meta name="viewport" content="initial-scale=1.0">
-               <link rel="stylesheet" href="<%=media%>/cascade.css">
-               <link rel="stylesheet" media="only screen and (max-device-width: 854px)" href="<%=media%>/mobile.css" type="text/css" />
-               <link rel="shortcut icon" href="<%=media%>/favicon.ico">
-               <% if node and node.css then %>
-                       <link rel="stylesheet" href="<%=resource%>/<%=node.css%>">
-               <% end -%>
-               <% if css then %>
-                       <style title="text/css"><%= css %></style>
-               <% end -%>
-               <script src="<%=url('admin/translations', luci.i18n.context.lang)%><%# ?v=PKG_VERSION %>"></script>
-               <script src="<%=resource%>/cbi.js"></script>
-               <script src="<%=resource%>/xhr.js"></script>
-       </head>
-
-       <body class="lang_<%=luci.i18n.context.lang%> <% if node then %><%= striptags( node.title ) %><%- end %>" data-page="<%= table.concat(disp.context.requestpath, "-") %>">
-               <header>
-                       <div class="fill">
-                               <div class="container">
-                                       <a class="brand" href="#"><%=boardinfo.hostname or "?"%></a>
-                                       <% render_topmenu() %>
-                                       <div class="pull-right">
-                                               <% render_changes() %>
-                                               <span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()">
-                                                       <span class="label success" id="xhr_poll_status_on"><%:Auto Refresh%> <%:on%></span>
-                                                       <span class="label" id="xhr_poll_status_off" style="display:none"><%:Auto Refresh%> <%:off%></span>
-                                               </span>
-                                       </div>
-                               </div>
-                       </div>
-               </header>
-
-               <div id="maincontent" class="container">
-                       <%- if luci.sys.process.info("uid") == 0 and luci.sys.user.getuser("root") and not luci.sys.user.getpasswd("root") then -%>
-                               <div class="alert-message warning">
-                                       <h4><%:No password set!%></h4>
-                                       <p><%:There is no password set on this router. Please configure a root password to protect the web interface and enable SSH.%></p>
-                                       <% if disp.lookup("admin/system/admin") then %>
-                                         <div class="right"><a class="btn" href="<%=url("admin/system/admin")%>"><%:Go to password configuration...%></a></div>
-                                       <% end %>
-                               </div>
-                       <%- end -%>
-
-                       <noscript>
-                               <div class="alert-message warning">
-                                       <h4><%:JavaScript required!%></h4>
-                                       <p><%:You must enable JavaScript in your browser or LuCI will not work properly.%></p>
-                               </div>
-                       </noscript>
-
-                       <% if category then render_tabmenu(category, cattree) end %>
diff --git a/package/luci/themes/luci-theme-bootstrap/root/etc/uci-defaults/30_luci-theme-bootstrap b/package/luci/themes/luci-theme-bootstrap/root/etc/uci-defaults/30_luci-theme-bootstrap
deleted file mode 100755 (executable)
index 09299e0..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-uci batch <<-EOF
-       set luci.themes.Bootstrap=/luci-static/bootstrap
-       set luci.main.mediaurlbase=/luci-static/bootstrap
-       commit luci
-EOF
-exit 0
diff --git a/package/luci/themes/luci-theme-freifunk-generic/Makefile b/package/luci/themes/luci-theme-freifunk-generic/Makefile
deleted file mode 100644 (file)
index 2fc62fd..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Freifunk Generic Theme
-LUCI_DEPENDS:=
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/cascade.css b/package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/cascade.css
deleted file mode 100644 (file)
index 590eb3d..0000000
+++ /dev/null
@@ -1,1792 +0,0 @@
-@charset "utf-8";
-
-@media all {
-
-html {
-       min-height: 100%;
-       height: auto;
-}
-
-body {
-       color: #ccc;
-       background: #e5eef5 linear-gradient(#fff 0%, #e5eef5 100%) no-repeat;
-       font-family: Verdana, Arial, sans-serif;
-       font-size: 100%;
-       line-height: 100%;
-       padding-bottom: 1.5em;
-}
-
-html, body {
-       height: 99%;
-}
-
-* {
-       margin: 0;
-       padding: 0;
-       box-sizing: border-box;
-}
-
-.table { display: table; width: 100%; position: relative; }
-.tr { display: table-row; }
-.thead { display: table-header-group; }
-.tbody { display: table-row-group; }
-.tfoot { display: table-footer-group; }
-.td, .th { display: table-cell; }
-.th { font-weight: bold; }
-
-.table[width="33%"], .th[width="33%"], .td[width="33%"] { width: 33%; }
-.table[width="100%"], .th[width="100%"], .td[width="100%"] { width: 100%; }
-
-.col-1 { flex: 1 1 30px !important; -webkit-flex: 1 1 30px !important; }
-.col-2 { flex: 2 2 60px !important; -webkit-flex: 2 2 60px !important; }
-.col-3 { flex: 3 3 90px !important; -webkit-flex: 3 3 90px !important; }
-.col-4 { flex: 4 4 120px !important; -webkit-flex: 4 4 120px !important; }
-.col-5 { flex: 5 5 150px !important; -webkit-flex: 5 5 150px !important; }
-.col-6 { flex: 6 6 180px !important; -webkit-flex: 6 6 180px !important; }
-.col-7 { flex: 7 7 210px !important; -webkit-flex: 7 7 210px !important; }
-.col-8 { flex: 8 8 240px !important; -webkit-flex: 8 8 240px !important; }
-.col-9 { flex: 9 9 270px !important; -webkit-flex: 9 9 270px !important; }
-.col-10 { flex: 10 10 300px !important; -webkit-flex: 10 10 300px !important; }
-
-.tr.placeholder {
-       height: 3.5em;
-}
-
-.tr.placeholder > .td {
-       position: absolute;
-       left: 1px;
-       right: 1px;
-       bottom: 1px;
-       text-align: center;
-       line-height: 3em;
-}
-
-abbr,
-acronym {
-       font-style: normal;
-       font-variant: normal;
-}
-
-abbr[title],
-acronym[title] {
-       border-bottom: 1px dotted;
-       cursor: help;
-}
-
-a:link abbr[title],
-a:visited abbr[title],
-a:link acronym[title],
-a:visited acronym[title] {
-       cursor: pointer;
-}
-
-code {
-       font-family: monospace;
-       white-space: pre;
-}
-
-h2, h3, h4, legend {
-       font-size: 150%;
-       font-family: Trebuchet MS, Verdana, sans-serif;
-       font-weight: bold;
-       margin: .25em 0 .5em 0;
-       border-bottom: 1px solid;
-       padding-bottom: 4px;
-       display: block;
-       width: 100%;
-}
-
-h3, legend {
-       font-size: 125%;
-}
-
-h4 {
-       font-size: 112%;
-}
-
-.cbi-section-node + h4 {
-       margin-top: 1em;
-}
-
-fieldset { border: none; }
-
-fieldset > legend { float: left; }
-fieldset > legend + * { clear: both; }
-
-#maincontent ul {
-       margin-left: 2em;
-}
-
-.warning {
-       color: red;
-       background-color: white;
-       font-weight: bold;
-       text-decoration: blink;
-}
-
-.clear {
-       clear: both;
-}
-
-a img {
-       border: 0;
-}
-
-.skiplink,
-.navigation,
-.hidden {
-       position: absolute;
-       left: -1000px;
-       top: -1000px;
-       width: 0px;
-       height: 0px;
-       overflow: hidden;
-       display: inline;
-}
-
-.error {
-       color: #f00;
-       background-color: white;
-}
-
-.alert-message {
-       font-weight: normal;
-       padding: .5em;
-       border-radius: 3px;
-       color: #000;
-}
-
-.alert-message, .cbi-tooltip.error {
-       background: #fee;
-       color: #a22;
-}
-
-.alert-message.notice, .cbi-tooltip.notice {
-       background: linear-gradient(#ccc 0%, #eee 100%);
-       color: #4a6b7c;
-}
-
-.alert-message.warning, .cbi-tooltip.warning {
-       background: linear-gradient(#dda 0%, #dd8 100%);
-       color: #c00;
-}
-
-.alert-message > * {
-       margin: .5em;
-}
-
-.alert-message > h4 {
-       font-weight: bold;
-}
-
-
-.ifacebadge, .ifacebox {
-       display: inline-flex;
-       align-content: center;
-       border: 1px solid #ccc;
-       border-radius: 3px;
-       padding: 2px;
-       background: #fff;
-       margin: .25em .5em;
-}
-
-.ifacebox-head {
-       background: #eee;
-}
-
-.ifacebox-head.active {
-       background: #90c0e0;
-}
-
-.ifacebadge, .zonebadge {
-       align-items: center;
-}
-
-.ifacebadge > * {
-       align-self: flex-start;
-}
-
-.ifacebadge > img,
-.ifacebadge > em {
-       margin-right: 5px;
-       display: inline-block;
-       height: 16px;
-}
-
-.ifacebadge-active {
-       border-color: #000000;
-       font-weight: bold;
-}
-
-.ifacebox {
-       flex-direction: column;
-       margin: 0;
-       padding: 0;
-       min-width: 100px;
-       text-align: center;
-}
-
-.ifacebox > * {
-       padding: 2px;
-}
-
-.td > .ifacebadge,
-.td > .zonebadge {
-       margin: 0;
-       vertical-align: top;
-}
-
-.network-status-table {
-       display: flex;
-       flex-wrap: wrap;
-}
-
-.network-status-table .ifacebox {
-       margin: .5em;
-       font-size: 90%;
-       flex-grow: 1;
-}
-
-.network-status-table .ifacebox-body {
-       display: flex;
-       flex-direction: column;
-       flex: 1 0;
-}
-
-.network-status-table .ifacebox-body > span {
-       flex: 10;
-}
-
-.network-status-table .ifacebox-body > div {
-       display: flex;
-       flex-wrap: wrap;
-}
-
-.ifacebadge.large,
-.network-status-table .ifacebox-body .ifacebadge {
-       flex: 1;
-       margin: .5em .25em .25em .25em;
-       padding: .5em;
-       min-width: 220px;
-       white-space: nowrap;
-}
-
-
-.zonebadge {
-       padding: 2px;
-       display: inline-block;
-       white-space: nowrap;
-       border-radius: 3px;
-}
-
-.zonebadge > em,
-.zonebadge > strong {
-       margin: 3px;
-}
-
-.zonebadge input {
-       width: 6em;
-       height: 1.5em;
-}
-
-.zonebadge .ifacebadge,
-.cbi-dropdown .ifacebadge {
-       margin: 1px;
-}
-
-.zonebadge .ifacebadge img,
-.zonebadge .ifacebadge em,
-.cbi-dropdown .ifacebadge img,
-.cbi-dropdown .ifacebadge em {
-       margin: 0 1px;
-}
-
-.zonebadge-empty {
-       border: 1px dashed #AAAAAA;
-       color: #AAAAAA;
-       font-style: italic;
-       font-size: smaller;
-}
-
-
-
-#header {
-       height: auto;
-       background: #FFF url(header.jpg) repeat-x left bottom;
-       color: #ccc;
-       font-weight: bold;
-       text-align:right;
-}
-
-.header_left {
-       padding-bottom: 10px;
-}
-
-.header_left img {
-       padding: 10px 10px 0px 10px;
-}
-
-.header_banner {
-       overflow:hidden;
-       padding-bottom: 6px;
-       text-align:left;
-}
-
-.header_banner img{
-       padding: 0px;
-}
-
-.header_left {
-       text-align:left;
-       max-width: 50%;
-       float:left;
-}
-
-.header_left a {
-       color: #dc0067;
-       font: bold 36px Helvetica, Verdana, Arial, sans-serif;
-       text-decoration: none;
-}
-
-#header h1,
-.header_right {
-       max-width: 45%;
-       text-align: right;
-       font-size: 70%;
-       font-weight: normal;
-       line-height: 160%;
-       float:right;
-       padding: 10px 10px 0 0;
-}
-
-ul.dropdowns {
-       float: left;
-       margin: 0;
-       padding: 0;
-       width: auto;
-       list-style: none;
-}
-
-html>body ul.dropdowns {
-       position: relative;
-}
-
-ul.dropdowns li,
-ul.dropdowns ul {
-       margin: 0;
-       padding: 0;
-       list-style: none;
-}
-
-ul.dropdowns li {
-       float: left;
-       position: relative;
-       white-space: nowrap;
-}
-
-ul.dropdowns li ul {
-       position: absolute;
-       z-index: 1100;
-       top: auto;
-       min-width: 10em;
-}
-
-ul.dropdowns li li {
-       float: none;
-       position: relative;
-}
-
-ul.dropdowns li a {
-       display: block;
-}
-
-ul.dropdowns ul li ul {
-       top: 0;
-}
-
-ul.dropdowns li ul,
-ul.dropdowns li.over ul ul,
-ul.dropdowns li.focus ul ul,
-ul.dropdowns li:hover ul ul,
-ul.dropdowns li.over ul ul ul,
-ul.dropdowns li.focus ul ul ul,
-ul.dropdowns li:hover ul ul ul,
-ul.dropdowns li.over ul ul ul ul,
-ul.dropdowns li.focus ul ul ul ul,
-ul.dropdowns li:hover ul ul ul ul {
-       left: -3000px;
-}
-
-ul.dropdowns li.over ul,
-ul.dropdowns li.focus ul,
-ul.dropdowns li:hover ul {
-       left: 0;
-}
-
-ul.dropdowns ul li.over ul,
-ul.dropdowns ul li.focus ul,
-ul.dropdowns ul li:hover ul,
-ul.dropdowns ul ul li.over ul,
-ul.dropdowns ul ul li.focus ul,
-ul.dropdowns ul ul li:hover ul,
-ul.dropdowns ul ul ul li.over ul,
-ul.dropdowns ul ul ul li.focus ul,
-ul.dropdowns ul ul ul li:hover ul {
-       left: 100%;
-}
-
-#xhr_poll_status {
-       cursor: pointer;
-}
-
-#xhr_poll_status #xhr_poll_status_off {
-       font-weight: bold;
-       color: #FF0000;
-}
-
-#xhr_poll_status #xhr_poll_status_on {
-       font-weight: bold;
-       color: #00FF00;
-}
-
-#menubar {
-       position: relative;
-       width: 100%;
-       background: #FFF;
-       color: #004a9c;
-       border-bottom: 1px dotted #5A5A5A;
-}
-#menubar .warning {
-       color: red;
-       background-color: #FFF;
-}
-
-#menubar ul.dropdowns {
-       min-height: 1.8em;
-       background: #FFF;
-       color: #004a9c;
-}
-
-#menubar ul.dropdowns li ul {
-       background: #FFF;
-       color: #004a9c;
-       border-width: 0 1px 1px 1px;
-       border-style: dotted;
-       border-color: #5a5a5a;
-}
-
-#menubar ul.dropdowns ul li ul {
-       border-width: 1px;
-}
-
-html #menubar a:link,
-html #menubar a:visited {
-       position: relative;
-       display: block;
-       padding: 0.5em;
-       background: #FFF;
-       color: #004a9c;
-       text-decoration: none;
-       font-size: 80%;
-       font-weight: normal;
-}
-
-html #menubar a:link:hover,
-html #menubar a:visited:hover,
-html #menubar a:link:active,
-html #menubar a:visited:active,
-#menubar a:link:focus,
-#menubar a:visited:focus {
-       background: #F2F2F2;
-       color: #e60076;
-}
-
-html #menubar a:link.active,
-html #menubar a:visited.active,
-html #menubar a:link.preactive,
-html #menubar a:visited.preactive {
-       background: #FFF;
-       color: #e60076;
-}
-
-html #menubar a:link.warning,
-html #menubar a:visited.warning {
-       background: #FFF;
-       color: red;
-       font-weight: bold;
-       text-decoration: blink;
-}
-
-#menubar ul.dropdowns li.over>a,
-#menubar ul.dropdowns li.focus>a,
-#menubar ul.dropdowns li:hover>a {
-}
-
-.lang_de #submenu_mini_system { min-width: 13.3em; }
-* html .lang_de #submenu_mini_system { width: 13.3em; }
-
-.lang_pt-br #submenu_mini_network { min-width: 14em; }
-* html .lang_pt-br #submenu_mini_network { width: 14em; }
-
-.lang_pt-br #submenu_mini_system { min-width: 11.5em; }
-* html .lang_pt-br #submenu_mini_system { width: 11.5em; }
-
-.lang_ru #submenu_mini_system { min-width: 18em; }
-* html .lang_ru #submenu_mini_system { width: 18em; }
-
-.lang_pt-br #submenu_admin_index { min-width: 11em; }
-* html .lang_pt-br #submenu_admin_index { width: 11em; }
-
-.lang_ru #submenu_admin_index { min-width: 15.5em; }
-* html .lang_ru #submenu_admin_index { width: 15.5em; }
-
-.lang_ru #submenu_admin_status { min-width: 10.5em; }
-* html .lang_ru #submenu_admin_status { width: 10.5em; }
-
-.lang_de #submenu_admin_system { min-width: 13.3em; }
-* html .lang_de #submenu_admin_system { width: 13.3em; }
-
-.lang_fr #submenu_admin_system { min-width: 14.5em; }
-* html .lang_fr #submenu_admin_system { width: 14.5em; }
-
-.lang_pt-br #submenu_admin_system { min-width: 11.5em; }
-* html .lang_pt-br #submenu_admin_system { width: 11.5em; }
-
-.lang_ru #submenu_admin_system { min-width: 18em; }
-* html .lang_ru #submenu_admin_system { width: 18em; }
-
-#submenu_admin_services_chillispot { min-width: 15.5em; }
-* html #submenu_admin_services_chillispot { width: 15.5em; }
-
-#submenu_admin_services_coovachilli { min-width: 15em; }
-* html #submenu_admin_services_coovachilli { width: 15em; }
-
-.lang_ru #submenu_admin_network_routes { min-width: 15.3em; }
-* html .lang_ru #submenu_admin_network_routes { width: 15.3em; }
-
-#submenu_admin_network_firewall { min-width: 14em; }
-* html #submenu_admin_network_firewall { width: 14em; }
-
-.lang_de #submenu_admin_network_firewall { min-width: 16.5em; }
-* html .lang_de #submenu_admin_network_firewall { width: 16.5em; }
-
-.lang_pt-br #submenu_admin_network_firewall { min-width: 15em; }
-* html .lang_pt-br #submenu_admin_network_firewall { width: 15em; }
-
-#modemenu {
-/*     width: auto;*/
-       background: #000;
-       color: #fff;
-       list-style: none;
-       margin-right: 1px;
-}
-
-#modemenu li {
-       float: right;
-       list-style: none;
-}
-
-#savemenu {
-       float: right;
-       margin-right: 2em;
-}
-
-#applyreboot-section {
-       line-height: 300%;
-}
-
-.lang_de #submenu_admin_uci {
-       width: 12em;
-}
-
-.lang_ru #submenu_admin_uci {
-       width: 11.5em;
-}
-
-textarea#syslog {
-       width: 98%;
-       min-height: 500px;
-       border: 3px solid #ccc;
-       padding: 5px;
-       font-family: monospace;
-}
-
-
-#maincontent {
-       clear: both;
-       width: 90%;
-       margin: 0 auto;
-       padding: 0.5em;
-       color: #000;
-       font-size: 80%;
-}
-
-#maincontent p {
-       margin-bottom: 1em;
-}
-
-.cbi-section {
-       margin-bottom: 1.5em;
-       color: #000;
-}
-
-.cbi-section-descr {
-       margin-bottom: 0.5em;
-       font-size: 95%;
-}
-
-.cbi-title-ref {
-       color: inherit;
-       text-decoration: none;
-       padding-right: 18px;
-       background: url('../resources/cbi/link.gif') no-repeat scroll right center;
-       background-color: inherit;
-}
-
-ul.cbi-apply {
-       font-size: 90%;
-}
-
-ul.cbi-tabmenu {
-       list-style-type: none;
-       display: flex;
-       margin: 0 0 .5em 0 !important;
-       padding: 0 0 0 5px;
-       border-bottom: 1px solid #bbb;
-}
-
-ul.cbi-tabmenu li {
-       display: inline-flex;
-       margin: 0 5px -1px 0;
-       flex: 0 1 auto;
-       border: 1px solid #bbb;
-       border-bottom: none;
-       border-radius: 3px 3px 0 0;
-       background: linear-gradient(#ddd 90%, #aaa 100%);
-       color: #888;
-       overflow: hidden;
-       text-overflow: ellipsis;
-       word-wrap: break-word;
-}
-
-ul.cbi-tabmenu li a,
-ul.cbi-tabmenu li a:hover {
-       text-decoration: none;
-       color: inherit;
-       padding: 5px;
-       flex: 1;
-       width: 100%;
-       height: 100%;
-}
-
-ul.cbi-tabmenu li.cbi-tab-highlighted {
-       color: #000;
-       background: #fea;
-}
-
-ul.cbi-tabmenu li.cbi-tab {
-       color: #000;
-       background: #fff;
-}
-
-ul.cbi-tabmenu + .cbi-section-node {
-       margin-top: -.5em;
-}
-
-[data-tab-title] {
-       height: 0;
-       opacity: 0;
-       overflow: hidden;
-}
-
-[data-tab-active="true"] {
-       opacity: 1;
-       height: auto;
-       overflow: visible;
-       transition: opacity .25s ease-in;
-}
-
-div.cbi-tab-descr {
-       background-image: url(/luci-static/resources/cbi/help.gif);
-       background-position: 0.25em 50%;
-       background-repeat: no-repeat;
-       border-bottom: 1px solid #ccc;
-       margin: 0.25em 0.25em 2em;
-       padding: 0.5em 0.5em 0.5em 2em;
-}
-
-input[type=submit],
-input[type=reset],
-input[type=image],
-input[type=button] {
-       cursor: pointer;
-}
-
-select,
-input,
-textarea {
-       background: #fff;
-       color: #000;
-       border: 1px solid #cccccc;
-}
-
-input[type=image] {
-       border: none;
-}
-
-input:focus,
-input:hover,
-select:focus,
-select:hover,
-textarea:focus,
-textarea:hover {
-       background-color: #fff;
-       color: #000;
-}
-
-select,
-input[type=text],
-input[type=password] {
-       width: 20em;
-       font-size: inherit;
-       line-height: 13pt;
-       height: 14pt;
-}
-
-select[multiple] {
-       height: auto;
-}
-
-input[type=radio],
-input[type=checkbox],
-[data-dynlist] > input + img,
-input.cbi-input-password + img {
-       vertical-align: middle;
-}
-
-.td select,
-.td .cbi-dropdown,
-.td input[type=text] {
-       width: 100%;
-}
-
-.td [data-dynlist] > input,
-.td input.cbi-input-password {
-       width: calc(100% - 20px);
-}
-
-img.cbi-image-button {
-       cursor: pointer;
-       margin: 0 2px;
-       vertical-align: middle;
-}
-
-.btn, .cbi-button {
-       padding: 0 .5em;
-       border-radius: 3px;
-       border: 1px solid #aaa;
-       text-decoration: none;
-       color: #000;
-       display: inline-block;
-       font-size: inherit;
-       -webkit-appearance: none;
-       background: #fff;
-       text-align: center;
-       font-weight: bold;
-       line-height: 13pt;
-       height: 14pt;
-}
-
-.btn:hover, .cbi-button:hover {
-       box-shadow: 0 0 3px #59d;
-}
-
-.btn[disabled],
-.btn[disabled]:hover,
-.cbi-button[disabled],
-.cbi-button[disabled]:hover {
-       opacity: .6;
-       cursor: default;
-       pointer-events: none;
-}
-
-.cbi-button-positive,
-.cbi-button-fieldadd,
-.cbi-button-add,
-.cbi-button-save {
-       border-color: #7b7;
-       color: #7b7;
-}
-
-.cbi-button-neutral,
-.cbi-button-reset,
-.cbi-button-download,
-.cbi-button-find,
-.cbi-button-link,
-.cbi-button-up,
-.cbi-button-down {
-       border-color: #444;
-       color: #444;
-}
-
-.cbi-button-action,
-.cbi-button-apply,
-.cbi-button-reload,
-.cbi-button-edit {
-       border-color: #59d;
-       color: #59d;
-}
-
-.cbi-button-negative,
-.cbi-section-remove .cbi-button,
-.cbi-button-remove {
-       border-color: #b77;
-       color: #b77;
-}
-
-.cbi-button-action.important,
-.cbi-page-actions .cbi-button-apply,
-.cbi-section-actions .cbi-button-edit {
-       color: #fff;
-       background: #59d;
-}
-
-.cbi-button-positive.important,
-.cbi-page-actions .cbi-button-save {
-       color: #fff;
-       background: #7b7;
-}
-
-.cbi-page-actions .cbi-button-apply + .cbi-button-save {
-       background: #fff;
-       color: #7b7;
-}
-
-.cbi-input-invalid {
-       background-image: url('../resources/cbi/reset.gif');
-       background-repeat: no-repeat;
-       background-position: right;
-       color: #FF0000 !important;
-       border-color: #FF0000;
-}
-
-.cbi-input-invalid {
-       background-image: url('../resources/cbi/reset.gif');
-       background-repeat: no-repeat;
-       background-position: right;
-       color: #FF0000 !important;
-       border-color: #FF0000;
-}
-
-div.cbi-section-remove input {
-       border-bottom: none;
-}
-
-textarea {
-       margin-left: -1px;
-       margin-bottom: 0.5em;
-}
-
-.table .td, .table .th {
-       color: #000000;
-       padding: .25em;
-}
-
-.table.smalltext {
-       background: #f5f5f5;
-       color: #000;
-       border: 1px solid #666;
-       font-size: 90%;
-       width: 80%;
-       margin-left: auto;
-       margin-right: auto;
-       border-collapse: collapse;
-}
-
-.table.smalltext .tr:hover .td {
-       background-color: #bbddee;
-       color: #000;
-}
-
-.table.smalltext .tr .th {
-       padding: 0 0.25em;
-       border-left: 1px dotted #666;
-       text-align: left;
-}
-
-.table.smalltext .tr .td {
-       padding: 0.2em;
-       border-top: 1px dotted #666;
-       border-left: 1px dotted #666;
-}
-
-.cbi-section-node .tr:not(.placeholder):nth-child(even) {
-       background: #e5eef5;
-}
-
-.table.cbi-section-table .cbi-section-table-cell {
-       padding: 3px;
-       white-space: nowrap;
-}
-
-.table .tr > .th:empty {
-       display: none;
-}
-
-.table.cbi-section-table .tr > *,
-.table.cbi-section-table .tr[data-title]::before {
-       border-top: 1px dotted #bbb;
-       display: table-cell;
-}
-
-.table.cbi-section-table .tr.table-titles > *,
-.table.cbi-section-table .tr.cbi-section-table-titles > *,
-.table.cbi-section-table .tr.cbi-section-table-desc > *,
-.table.cbi-section-table .tr.table-titles::before,
-.table.cbi-section-table .tr.cbi-section-table-titles::before,
-.table.cbi-section-table .tr.cbi-section-table-desc::before {
-       border-top: none;
-}
-
-.table.cbi-section-table .tr:hover::before,
-.table.cbi-section-table .tr:hover > * {
-       background: #eee;
-}
-
-.table.cbi-section-table .tr:nth-child(even):hover::before,
-.table.cbi-section-table .tr:nth-child(even):hover > * {
-       background: #bde;
-}
-
-
-div.cbi-value {
-       clear: left;
-       vertical-align: middle;
-       padding-left: 0.25em;
-       border-bottom: 1px dotted #bbb;
-}
-
-div.cbi-value:hover {
-       background: #f8f8f8;
-       color: #000;
-}
-
-.cbi-value-title {
-       float: left;
-       width: 40%;
-       line-height: 1.8em;
-}
-
-.cbi-value-field {
-       width: 58%;
-       margin-left: 40%;
-       padding: 0.25em 0;
-}
-
-.td.cbi-value-field {
-       width: auto;
-       margin-left: 0;
-       align-self: center;
-}
-
-.cbi-value-description {
-       background-image: url(/luci-static/resources/cbi/help.gif);
-       background-position: .25em .25em;
-       background-repeat: no-repeat;
-       margin: .25em 0 0 0;
-       padding: .25em .25em .25em 1.75em;
-}
-
-.cbi-section-create {
-       padding: 0 0 .25em 0;
-       margin: -3px;
-       display: inline-flex;
-       align-items: center;
-}
-
-.cbi-section-create > * {
-       margin: 3px;
-       flex: 1 1 auto;
-}
-
-.cbi-section-create > * > input {
-       width: 100%;
-}
-
-.cbi-section-remove > .cbi-button {
-       margin-bottom: -1px;
-       border-radius: 3px 3px 0 0;
-}
-
-.cbi-section-node + .cbi-section-create {
-       padding-top: 0;
-}
-
-div.cbi-map-descr {
-       margin-bottom: 1em;
-}
-
-div.cbi-optionals {
-       padding: 0.25em;
-       border-bottom: 1px dotted #bbb;
-}
-
-
-
-.cbi-section-node {
-       clear: both;
-       padding-bottom: 0;
-       position: relative;
-       border: 1px dotted #555;
-       background: #fff;
-       margin-bottom: 5px;
-}
-
-.cbi-section-node-tabbed {
-       border-top: none;
-}
-
-.cbi-section-node .cbi-optionals:last-child,
-.cbi-section-node .cbi-value:last-child {
-       border-bottom: none;
-}
-
-.table.cbi-section-table {
-       width: 100%;
-       font-size: 95%;
-       border: 1px dotted #444;
-       background: #fff;
-       margin: 0 0 .5em 0;
-}
-
-.cbi-section-node > .table.cbi-section-table {
-       border: none;
-       margin: 0;
-}
-
-@keyframes flash {
-       0% { opacity: 1; }
-       50% { opacity: .5; }
-       100% { opacity: 1; }
-}
-
-.tr.cbi-section-table-row.flash {
-       animation: flash .35s;
-}
-
-.tr.cbi-section-table-descr .th {
-       font-weight: normal;
-       font-size: 90%;
-       vertical-align: top;
-}
-
-.td.cbi-section-table-optionals {
-       text-align: left !important;
-       padding-top: 1em;
-}
-
-.th.cbi-section-actions,
-.td.cbi-section-actions {
-       display: flex;
-       justify-content: flex-end;
-       flex-direction: row;
-       flex: 1 1 150px;
-       margin: auto 0 auto auto;
-}
-
-.td.cbi-section-actions > form {
-       display: flex;
-}
-
-.td.cbi-section-actions > *,
-.td.cbi-section-actions > form > * {
-       flex: 1 1 4em;
-       margin: 1px;
-}
-
-.cbi-page-actions {
-       display: flex;
-       justify-content: flex-end;
-       margin: -3px;
-       padding: 0 .25em .25em .25em;
-}
-
-.cbi-page-actions > form {
-       display: flex;
-}
-
-.cbi-page-actions > * {
-       flex: 0 1 auto;
-       margin: 3px;
-}
-
-.cbi-page-actions > form > * {
-       flex: 1;
-       margin: 0 3px 0 0;
-}
-
-.cbi-page-actions > .cbi-button-link,
-.cbi-page-actions > form[method="get"]:first-child {
-       margin-right: auto;
-}
-
-
-.th[data-type="button"], .td[data-type="button"],
-.th[data-type="fvalue"], .td[data-type="fvalue"] {
-       flex: 1 1 2em;
-       text-align: center;
-}
-
-#cbi-network-switch_vlan .th,
-#cbi-network-switch_vlan .td {
-       flex-basis: 12%;
-}
-
-#cbi-wireless-overview .td:first-child {
-       align-self: center;
-}
-
-.td[data-title]::before {
-       content: attr(data-title) ":\20";
-       font-weight: bold;
-       text-align: left;
-       display: none;
-       padding: 1px;
-       white-space: nowrap;
-}
-
-.tr.placeholder .td[data-title]::before {
-       display: none;
-}
-
-.tr[data-title]::before,
-.tr.cbi-section-table-titles.named::before {
-       content: attr(data-title) "\20";
-       font-weight: bold;
-       text-align: left;
-       display: inline-block;
-       align-self: center;
-       flex: 1 1 5%;
-       padding: .25em;
-       white-space: normal;
-       word-wrap: break-word;
-}
-
-.cbi-value-helpicon img {
-       vertical-align: bottom;
-}
-
-div.cbi-error {
-       font-size: 95%;
-       font-weight: bold;
-       color: #f00;
-       background-color: #fff;
-}
-
-td.cbi-value-error {
-       border-color: red;
-}
-
-.cbi-value-error input,
-.cbi-value-error select {
-       color: red;
-       background-color: #fcc;
-}
-
-.cbi-section-error {
-       color: red;
-       background-color: white;
-       font-size: 95%;
-       border: 1px dotted red;
-       margin: 3px;
-       padding: 3px;
-}
-
-
-.cbi-dropdown {
-       border: 1px solid #ccc;
-       display: inline-flex;
-       cursor: pointer;
-       background: #fff;
-       position: relative;
-       padding: 0;
-       color: #000;
-       min-width: 20em;
-       max-width: 100%;
-}
-
-.cbi-dropdown:focus {
-       outline: 2px solid #4b6e9b;
-}
-
-.cbi-dropdown > ul {
-       margin: 0 !important;
-       padding: 0;
-       list-style: none;
-       overflow-x: hidden;
-       overflow-y: auto;
-       display: flex;
-       width: 100%;
-}
-
-.cbi-dropdown > ul.preview {
-       display: none;
-}
-
-.cbi-dropdown > .open {
-       background: #eee;
-       border: 2px outset #eee;
-       flex-basis: 15px;
-}
-
-.cbi-dropdown > .open,
-.cbi-dropdown > .more {
-       flex-grow: 0;
-       flex-shrink: 0;
-       display: flex;
-       flex-direction: column;
-       justify-content: center;
-       text-align: center;
-       line-height: 2em;
-       padding: 0 .25em;
-}
-
-.cbi-dropdown > .more,
-.cbi-dropdown > ul > li[placeholder] {
-       color: #777;
-       font-weight: bold;
-       text-shadow: 1px 1px 0px #fff;
-       display: none;
-}
-
-.cbi-dropdown > ul > li {
-       display: none;
-       padding: .25em;
-       white-space: nowrap;
-       overflow: hidden;
-       text-overflow: ellipsis;
-       flex-shrink: 1;
-       flex-grow: 1;
-       align-items: center;
-       align-self: center;
-       min-height: 20px;
-}
-
-.cbi-dropdown > ul > li .hide-open { display: initial; }
-.cbi-dropdown > ul > li .hide-close { display: none; }
-
-.cbi-dropdown > ul > li[display]:not([display="0"]) {
-       border-left: 1px solid #ccc;
-}
-
-.cbi-dropdown[empty] > ul {
-       max-width: 1px;
-}
-
-.cbi-dropdown > ul > li > form {
-       display: none;
-       margin: 0;
-       padding: 0;
-       pointer-events: none;
-}
-
-.cbi-dropdown > ul > li img {
-       vertical-align: middle;
-       margin-right: .25em;
-}
-
-.cbi-dropdown > ul > li > form > input[type="checkbox"] {
-       margin: 0;
-}
-
-.cbi-dropdown > ul > li input[type="text"] {
-       height: 20px;
-}
-
-.cbi-dropdown[open] {
-       position: relative;
-}
-
-.cbi-dropdown[open] > ul.dropdown {
-       display: block;
-       background: #f6f6f5;
-       border: 1px solid #918e8c;
-       box-shadow: 0 0 4px #918e8c;
-       position: absolute;
-       z-index: 1000;
-       max-width: none;
-       min-width: 100%;
-       width: auto;
-}
-
-.cbi-dropdown > ul > li[display],
-.cbi-dropdown[open] > ul.preview,
-.cbi-dropdown[open] > ul.dropdown > li,
-.cbi-dropdown[multiple] > ul > li > label,
-.cbi-dropdown[multiple][open] > ul.dropdown > li,
-.cbi-dropdown[multiple][more] > .more,
-.cbi-dropdown[multiple][empty] > .more {
-       flex-grow: 1;
-       display: flex;
-       align-items: center;
-}
-
-.cbi-dropdown[empty] > ul > li,
-.cbi-dropdown[optional][open] > ul.dropdown > li[placeholder],
-.cbi-dropdown[multiple][open] > ul.dropdown > li > form {
-       display: block;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li .hide-open { display: none; }
-.cbi-dropdown[open] > ul.dropdown > li .hide-close { display: initial; }
-
-.cbi-dropdown[open] > ul.dropdown > li {
-       border-bottom: 1px solid #ccc;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li[selected] {
-       background: #b0d0f0;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li.focus {
-       background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
-}
-
-.cbi-dropdown[open] > ul.dropdown > li:last-child {
-       margin-bottom: 0;
-       border-bottom: none;
-}
-
-.cbi-dropdown[disabled] {
-       pointer-events: none;
-       opacity: .6;
-}
-
-
-.cbi-tooltip-container {
-       cursor: help;
-}
-
-.cbi-tooltip {
-       position: absolute;
-       z-index: 1000;
-       left: -1000px;
-       border-radius: 3px;
-       background: #fff;
-       padding: 2px 5px;
-       white-space: pre;
-       opacity: 0;
-       transition: opacity .25s ease-out;
-       pointer-events: none;
-       box-shadow: 0 0 2px #444;
-}
-
-.cbi-tooltip-container:hover .cbi-tooltip {
-       left: auto;
-       opacity: 1;
-       transition: opacity .25s ease-in;
-}
-
-.zonebadge .cbi-tooltip {
-       padding: 1px;
-       background: inherit;
-       margin: -1.6em 0 0 -5px;
-}
-
-
-.zone-forwards {
-       display: flex;
-       flex-wrap: wrap;
-}
-
-.zone-forwards > * {
-       flex: 1 1 45%;
-       padding: 1px;
-}
-
-.zone-forwards > span {
-       flex-basis: 10%;
-       text-align: center;
-}
-
-.zone-forwards .zone-src,
-.zone-forwards .zone-dest {
-       display: flex;
-       flex-direction: column;
-}
-
-
-.left, .left::before {
-       text-align: left !important;
-}
-
-.right, .right::before {
-       text-align: right !important;
-}
-
-.center, .center::before {
-       text-align: center !important;
-}
-
-.td.bottom {
-       align-self: flex-end;
-}
-
-.td.top {
-       align-self: flex-start;
-}
-
-.td.middle {
-       align-self: center;
-}
-
-
-.footer, .push {
-       height: 2em;
-}
-
-.footer {
-       width: 99%;
-       padding: 0.3em;
-}
-
-
-.wrapper {
-       min-height: 100%;
-       height: auto !important;
-       height: 100%;
-       margin: 0 auto -2em;
-}
-
-.luci a:link,
-.luci a:visited,
-.exectime {
-       color: #666;
-       text-decoration: none;
-       font-size: 70%;
-}
-
-.inline {
-       display: inline;
-}
-
-.error500 {
-       white-space: normal;
-       border: 1px dotted #f00;
-       background-color: #fff;
-       color: #000;
-       padding: 0.5em;
-}
-
-.uci-change-list {
-        font-family: monospace;
-}
-
-.uci-change-list ins,
-.uci-change-legend-label ins {
-        text-decoration: none;
-        border: 1px solid #00FF00;
-        background-color: #CCFFCC;
-        display: block;
-        padding: 2px;
-}
-
-.uci-change-list del,
-.uci-change-legend-label del {
-        text-decoration: none;
-        border: 1px solid #FF0000;
-        background-color: #FFCCCC;
-        display: block;
-        font-style: normal;
-        padding: 2px;
-}
-
-.uci-change-list var,
-.uci-change-legend-label var {
-        text-decoration: none;
-        border: 1px solid #CCCCCC;
-        background-color: #EEEEEE;
-        display: block;
-        font-style: normal;
-        padding: 2px;
-}
-
-.uci-change-list var ins,
-.uci-change-list var del {
-        /*display: inline;*/
-        border: none;
-        white-space: pre;
-        font-style: normal;
-        padding: 0px;
-}
-
-.uci-change-legend {
-        padding: 5px;
-}
-
-.uci-change-legend-label {
-        width: 150px;
-        float: left;
-        font-size: 80%;
-}
-
-.uci-change-legend-label>ins,
-.uci-change-legend-label>del,
-.uci-change-legend-label>var {
-        float: left;
-        margin-right: 4px;
-        width: 10px;
-        height: 10px;
-        display: block;
-}
-
-.uci-change-legend-label var ins,
-.uci-change-legend-label var del {
-        line-height: 6px;
-        border: none;
-}
-
-}
-
-@media screen and (max-width: 992px) {
-       body {
-               -webkit-text-size-adjust: 100%;
-       }
-
-       #maincontent {
-               width: 100%;
-       }
-
-       .table {
-               display: flex;
-               flex-direction: column;
-               width: 100%;
-       }
-
-       .tr {
-               display: flex;
-               flex-direction: row;
-               flex-wrap: wrap;
-               align-items: flex-end;
-       }
-
-       .th, .td {
-               flex: 2 2 25%;
-               align-self: flex-start;
-               overflow: hidden;
-               text-overflow: ellipsis;
-               word-wrap: break-word;
-               display: inline-block;
-       }
-
-       .td select {
-               word-wrap: normal;
-       }
-
-       .td[data-type="button"],
-       .td[data-type="fvalue"] {
-               flex: 1 1 12.5%;
-               text-align: left;
-       }
-
-       .td.cbi-value-field {
-               align-self: flex-start;
-       }
-
-       .td.cbi-value-field .cbi-button {
-               width: 100%;
-       }
-
-       .table.cbi-section-table {
-               border: none;
-               background: none;
-               margin: 0;
-       }
-
-       .tr.table-titles,
-       .cbi-section-table-titles,
-       .cbi-section-table-descr {
-               display: none;
-       }
-
-       .table.cbi-section-table .tr > *,
-       .table.cbi-section-table .tr[data-title]::before {
-               border-top: none;
-       }
-
-       .cbi-section-table-row {
-               display: flex;
-               flex-direction: row;
-               flex-wrap: wrap;
-               border: 1px dotted #444;
-               margin: 0 0 .5em 0;
-               background: #fff;
-       }
-
-       .cbi-section-table-row:hover {
-               border: 1px solid #4a6b7c;
-       }
-
-       .table.cbi-section-table .tr:hover > *,
-       .table.cbi-section-table .tr:nth-child(2n):hover > * {
-               background: none;
-       }
-
-       .cbi-section-table + .cbi-section-create {
-               padding-top: 0;
-       }
-
-       .tr[data-title]::before {
-               display: block;
-               flex: 1 1 100%;
-               background: #eef;
-       }
-
-       .td[data-title]::before {
-               display: block;
-       }
-
-       .td.cbi-section-actions {
-               flex-basis: 100%;
-               margin: auto 0 0 auto;
-       }
-
-       .td.cbi-section-actions > *,
-       .td.cbi-section-actions > form > * {
-               flex: 0 1 100%;
-               max-width: 150px;
-       }
-
-       .hide-sm,
-       .hide-xs {
-               display: none;
-       }
-}
-
-@media screen and (max-width: 480px) {
-       body {
-               font-size: 12pt;
-       }
-
-       input, textarea, select {
-               font-size: 12pt !important;
-               line-height: 1.4em;
-       }
-
-       select, input[type="text"], input[type="password"] {
-               width: 100%;
-               height: 1.4em;
-       }
-
-       [data-dynlist] > input,
-       input.cbi-input-password {
-               width: calc(100% - 20px);
-       }
-
-       .cbi-dropdown {
-               min-width: 100%;
-       }
-
-       .btn, .cbi-button {
-               font-size: 9pt !important;
-               line-height: 11pt;
-       }
-
-       #maincontent {
-               padding: .25em;
-       }
-
-       #tabmenu {
-               margin: -.25em -.25em 1em -.25em;
-       }
-
-       .th, .td {
-               flex: 2 2 50%;
-       }
-
-       .td.cbi-value-field {
-               flex-basis: 100%;
-       }
-
-       .td.cbi-value-field[data-type="dvalue"] {
-               flex-basis: 50%;
-       }
-
-       .td.cbi-value-field[data-type="button"],
-       .td.cbi-value-field[data-type="fvalue"] {
-               flex-basis: 25%;
-               text-align: left;
-       }
-
-       .cbi-section {
-               padding: .25em;
-       }
-
-       .cbi-value {
-               padding: 0 .25em;
-       }
-
-       .cbi-value-title {
-               float: none;
-               font-weight: bold;
-       }
-
-       .cbi-value-field {
-               width: 100%;
-               margin: 0;
-       }
-
-       .cbi-value-description {
-               margin-top: 5px;
-               display: block;
-       }
-
-       .cbi-section-create {
-               margin-bottom: 1em;
-       }
-
-       .cbi-optionals {
-               display: flex;
-       }
-
-       .cbi-page-actions {
-               flex-wrap: wrap;
-       }
-
-       .cbi-page-actions > .cbi-button-link {
-               flex-basis: 100%;
-               margin-right: 2px;
-       }
-
-       .cbi-optionals > *,
-       .cbi-page-actions > * {
-               flex: 1 1 auto;
-               margin: 2px;
-               height: auto;
-       }
-
-       ul.cbi-tabmenu {
-               padding: 0 3px;
-       }
-
-       ul.cbi-tabmenu li {
-               font-size: 90%;
-               margin: 0 1px -1px 0;
-       }
-
-       .hide-xs {
-               display: none;
-       }
-
-       #cbi-network .td[id] > strong {
-               display: block;
-       }
-
-       #cbi-network-switch_vlan .td.cbi-section-actions {
-               flex-basis: 100%;
-       }
-
-       .network-status-table .ifacebox {
-               margin: 0 0 .5em 0;
-       }
-}
diff --git a/package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/header.jpg b/package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/header.jpg
deleted file mode 100644 (file)
index 2fde5a2..0000000
Binary files a/package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/header.jpg and /dev/null differ
diff --git a/package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/logo.jpg b/package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/logo.jpg
deleted file mode 100644 (file)
index ea06ce7..0000000
Binary files a/package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/logo.jpg and /dev/null differ
diff --git a/package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/mobile.css b/package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/mobile.css
deleted file mode 100644 (file)
index 37d77b4..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#header{
-       padding-left:0px !important;
-       padding-bottom:24px;
-}
-
-.header_left{
-       max-width: 100%;
-}
-
-#mainlogo {
-       max-width: 90%;
-}
-
-#content {
-       margin-left:0px !important; 
-}
-
-#maincontent{
-       font-size:1.2em;
-       line-height:1.5em;
-}
-
-input[type=submit],
-.cbi-button,
-.cbi-button-reset,
-.cbi-button-save{
-       display:inline !important;
-       float:none !important;
-       padding:10px 30px !important;
-       margin: 10px 10px 10px 0 !important;
-}
-
-.cbi-input-text,
-.cbi-input-select,
-.cbi-input-user,
-.cbi-input-password{
-       display:block !important;
-       margin: 0 !important;
-       padding:0 !important;
-}
-
-.cbi-value-field{
-       margin:0 !important;
-       margin-bottom: 1em !important;
-       width:100%  !important; 
-}
-
-.cbi-section legend{
-       white-space:normal !important;
-}
-
-.cbi-value-title{
-       font-weight:bold;
-       float:none !important;
-}
-
-img {
-       max-width:100%;
-}
diff --git a/package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/smallscreen.css b/package/luci/themes/luci-theme-freifunk-generic/htdocs/luci-static/freifunk-generic/smallscreen.css
deleted file mode 100644 (file)
index 660cd8d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-.header_right {
-       display:none;
-}
diff --git a/package/luci/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/footer.htm b/package/luci/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/footer.htm
deleted file mode 100644 (file)
index 4c38821..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%
-       local ver = require "luci.version"
-
-       local xtime
-       if exectime then
-               xtime = (string.format("%.2fs", os.clock() - exectime))
-       end
-%>
-
-</div>
-<div class="clear"></div>
-<div class="push"></div>
-</div>
-
-<div class="footer">
-<p class="luci"><a href="https://github.com/openwrt/luci">Powered by <%= ver.luciname %> (<%= ver.luciversion %>)</a></p>
-<% if xtime then %>
-<p class="exectime">Script execution time: <%=xtime%></p>
-<% end %>
-</div>
-
-</body>
-</html>
-
diff --git a/package/luci/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm b/package/luci/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm
deleted file mode 100644 (file)
index fa74932..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2011 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%
-       local fs   = require "nixio.fs"
-       local sys  = require "luci.sys"
-       local util = require "luci.util"
-       local http = require "luci.http"
-       local disp = require "luci.dispatcher"
-       local version = require "luci.version"
-
-       local sysinfo = util.ubus("system", "info") or { }
-       local loadinfo = sysinfo.load or { 0, 0, 0 }
-       local boardinfo = util.ubus("system", "board") or { }
-
-       local request  = disp.context.path
-       local category = request[1]
-       local cattree  = category and disp.node(category)
-
-       local tree = disp.node()
-       local node = disp.context.dispatched
-
-       local categories = disp.node_childs(tree)
-
-       local c = tree
-       local i, r
-
-       -- tag all nodes leading to this page
-       for i, r in ipairs(request) do
-               if c.nodes and c.nodes[r] then
-                       c = c.nodes[r]
-                       c._menu_selected = true
-               end
-       end
-
-       local uci  = require "luci.model.uci".cursor()
-       local ff = uci:get("freifunk", "community", "name") or ""
-       local co = "profile_" .. ff
-       local community = uci:get_first(co, "community", "name") or "Freifunk"
-       local hp = uci:get_first(co, "community", "homepage") or "http://www.freifunk.net"
-       local logo = "/luci-static/freifunk-generic/logo.jpg"
-       local banner = false
-       local show_comm = true
-
-       local file
-       for file in fs.glob("/www/luci-static/resources/custom_logo.*") do
-               logo = string.gsub(file, "/www", "")
-               break
-       end
-
-       for file in fs.glob("/www/luci-static/resources/custom_logo_only.*") do
-               logo = string.gsub(file, "/www", "")
-               show_comm = false
-               break
-       end
-
-       for file in fs.glob("/www/luci-static/resources/custom_header.*") do
-               logo = string.gsub(file, "/www", "")
-               show_comm = false
-               banner = true
-       end
--%>
-
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<%=luci.i18n.context.lang%>" lang="<%=luci.i18n.context.lang%>">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/cascade.css" />
-<link rel="stylesheet" media="only screen and (max-device-width: 854px)" href="<%=media%>/mobile.css" type="text/css" />
-<link rel="stylesheet" media="only screen and (max-width: 854px)" href="<%=media%>/smallscreen.css" type="text/css" />
-<link rel="stylesheet" media="handheld" href="<%=media%>/mobile.css" type="text/css" />
-<% if node and node.css then %><link rel="stylesheet" type="text/css" media="screen" href="<%=resource%>/<%=node.css%>" />
-<% end -%>
-<% if css then %><style title="text/css">
-<%= css %>
-</style>
-<% end -%>
-<meta name="viewport" content="initial-scale=1.0" />
-<script type="text/javascript" src="<%=url('admin/translations', luci.i18n.context.lang)%><%# ?v=PKG_VERSION %>"></script>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
-<script type="text/javascript" src="<%=resource%>/xhr.js"></script>
-
-<title><%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(tostring(node.title)) or '')) %> - LuCI</title>
-</head>
-
-<body class="lang_<%=luci.i18n.context.lang%>" data-page="<%= table.concat(disp.context.requestpath, "-") %>">
-
-<div class="wrapper">
-
-<!--[if lt IE 7]>
-<div class="warning"><div style="background-color: #cccccc;padding: 2px 10px 2px 10px">
-<%: Your Internet Explorer is too old to display this page correctly. Please upgrade it to at least version 7 or use another browser like Firefox, Opera or Safari.%>
-</div></div>
-<![endif]-->
-
-<%- if luci.sys.process.info("uid") == 0 and luci.sys.user.getuser("root") and not luci.sys.user.getpasswd("root") then -%>
-       <div class="warning">
-               <strong><%:No password set!%></strong><br />
-               <%:There is no password set on this router. Please configure a root password to protect the web interface and enable SSH.%>
-       </div>
-<%- end -%>
-
-<p class="skiplink">
-<span id="skiplink1"><a href="#navigation"><%:Skip to navigation%></a></span>
-<span id="skiplink2"><a href="#content"><%:Skip to content%></a></span>
-</p>
-
-<div id="header">
-       <%if banner then%>
-               <div class="header_banner">
-                       <a href="<%=hp%>"><img src="<%=logo%>" alt="Header" /></a>
-               </div>
-       <%else%>
-               <div class="header_left">
-                       <a href="<%=hp%>"><img src="<%=logo%>" id="mainlogo" alt="Logo" /></a>
-                       <%if show_comm then%>
-                               <a href="<%=hp%>"><%=community%></a>
-                               <br/>
-                       <%end%>
-               </div>
-               <div class="header_right">
-                       <%=version.distversion%><br />
-                       <%:Load%>: <%="%.2f" % (loadinfo[1] / 65535.0)%> <%="%.2f" % (loadinfo[2] / 65535.0)%> <%="%.2f" % (loadinfo[3] / 65535.0)%><br />
-                       <%:Hostname%>: <%=boardinfo.hostname or "?"%><br />
-                       <span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()">
-                               <%:Auto Refresh%>:
-                               <span id="xhr_poll_status_on"><%:on%></span>
-                               <span id="xhr_poll_status_off" style="display:none"><%:off%></span>
-                       </span>
-               </div>
-               <div class="clear"></div>
-
-       <%end%>
-</div>
-
-<%-
-       local function submenu(prefix, node)
-               local childs = disp.node_childs(node)
-               if #childs > 0 then
-%>
-       <ul id="submenu_<%=string.gsub(string.gsub(prefix, "/", "_"), "^_(.-)_$", "%1")%>">
-               <%-
-                       for i, r in ipairs(childs) do
-                               local nnode = node.nodes[r]
-                               local href  = controller .. prefix .. r .. "/" ..
-                                       (nnode.query and http.build_querystring(nnode.query) or "")
-               %>
-                       <li>
-                               <a<%=ifattr(nnode._menu_selected, "class", "active")%> href="<%=luci.util.pcdata(href)%>"><%=translate(nnode.title)%></a>
-                               <%- submenu(prefix .. r .. "/", nnode) %>
-                       </li>
-               <%-
-                       end
-               %>
-       </ul>
-<%
-               end
-       end
-%>
-
-<div id="menubar">
-<h2 class="navigation"><a id="navigation" name="navigation"><%:Navigation%></a></h2>
-<ul id="mainmenu" class="dropdowns">
-       <%
-               local childs = disp.node_childs(cattree)
-               if #childs > 0 then
-                       for i, r in ipairs(childs) do
-                               local nnode = cattree.nodes[r]
-                               local href  = controller .. "/" .. category .. "/" .. r ..
-                                       (nnode.query and http.build_querystring(k.query) or "")
-       %>
-               <li>
-                       <a<%=ifattr(nnode._menu_selected, "class", "preactive")%> href="<%=href%>"><%=translate(nnode.title)%></a>
-                       <%- submenu("/" .. category .. "/" .. r .. "/", nnode) %>
-               </li>
-       <%
-                       end
-               end
-       %>
-       <li></li>
-</ul>
-
-<% if #categories > 1 then %>
-       <ul id="modemenu">
-       <% for i, r in ipairs(categories) do %>
-               <li><a<%=ifattr(request[1] == r, "class", "active")%> href="<%=controller%>/<%=r%>/"><%=striptags(translate(tree.nodes[r].title))%></a></li>
-       <% end %>
-       </ul>
-<% end %>
-
-<%
-if tree.nodes[category] and tree.nodes[category].ucidata then
-       local ucic = 0
-       for i, j in pairs(require("luci.model.uci").cursor():changes()) do
-               for k, l in pairs(j) do
-                       for m, n in pairs(l) do
-                               ucic = ucic + 1;
-                       end
-               end
-       end
--%>
-       <div id="savemenu">
-               <% if ucic > 0 then %>
-                       <a class="uci_change_indicator warning" href="<%=controller%>/<%=category%>/uci/changes/?redir=<%=http.urlencode(http.formvalue('redir') or table.concat(disp.context.request, "/"))%>"><%:Unsaved Changes%>: <%=ucic%></a>
-               <% end -%>
-       </div>
-<% end %>
-
-<div class="clear"></div>
-</div>
-<div id="maincontent">
-<% if category ~= "freifunk" and category ~= "splash" then %>
-<noscript>
-       <div class="errorbox">
-               <strong><%:JavaScript required!%></strong><br />
-               <%:You must enable JavaScript in your browser or LuCI will not work properly.%>
-       </div>
-</noscript>
-<% end %>
diff --git a/package/luci/themes/luci-theme-freifunk-generic/root/etc/uci-defaults/30_luci-theme-freifunk-generic b/package/luci/themes/luci-theme-freifunk-generic/root/etc/uci-defaults/30_luci-theme-freifunk-generic
deleted file mode 100644 (file)
index 017e7f7..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-uci batch <<-EOF
-       set luci.themes.Freifunk_Generic=/luci-static/freifunk-generic
-       set luci.main.mediaurlbase=/luci-static/freifunk-generic
-        commit luci
-EOF
diff --git a/package/luci/themes/luci-theme-material/Makefile b/package/luci/themes/luci-theme-material/Makefile
deleted file mode 100755 (executable)
index 5bc16eb..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Material Theme
-LUCI_DEPENDS:=
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/brand.png b/package/luci/themes/luci-theme-material/htdocs/luci-static/material/brand.png
deleted file mode 100644 (file)
index 1e903c5..0000000
Binary files a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/brand.png and /dev/null differ
diff --git a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/cascade.css b/package/luci/themes/luci-theme-material/htdocs/luci-static/material/cascade.css
deleted file mode 100644 (file)
index 8c6f681..0000000
+++ /dev/null
@@ -1,2973 +0,0 @@
-/**
- *     Material is a clean HTML5 theme for LuCI. It is based on luci-theme-bootstrap and MUI
- *
- *     luci-theme-material
- *             Copyright 2015 Lutty Yang <lutty@wcan.in>
- *
- *     Have a bug? Please create an issue here on GitHub!
- *             https://github.com/LuttyYang/luci-theme-material/issues
- *
- *     luci-theme-bootstrap:
- *             Copyright 2008 Steven Barth <steven@midlink.org>
- *             Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- *             Copyright 2012 David Menting <david@nut-bolt.nl>
- *
- *     MUI:
- *             https://github.com/muicss/mui
- *
- *     Pure CSS ripple effect:
- *             https://github.com/mladenplavsic/css-ripple-effect
- *
- *     Licensed to the public under the Apache License 2.0
- */
-
-/*
- *     Include custom css
- */
-@import url("custom.css");
-
-/*
- *     Font generate by Icomoon<icomoon.io>
- */
-@font-face {
-       font-family: "icomoon";
-       font-weight: normal;
-       font-style: normal;
-       src: url("fonts/font.eot");
-       src: url("fonts/font.eot") format("embedded-opentype"),
-       url("fonts/font.ttf") format("truetype"),
-       url("fonts/font.woff") format("woff"),
-       url("fonts/font.svg") format("svg");
-}
-
-::-webkit-scrollbar {
-       width: 10px;
-       height: 10px;
-       background: transparent;
-}
-
-::-webkit-scrollbar-thumb {
-       background: #9e9e9e;
-}
-
-::-webkit-scrollbar-thumb:hover {
-       background: #757575;
-}
-
-::-webkit-scrollbar-thumb:active {
-       background: #424242;
-}
-
-.table {
-       position: relative;
-       display: table;
-}
-
-.tr {
-       display: table-row;
-}
-.thead {
-       display: table-header-group;
-}
-
-.tbody {
-       display: table-row-group;
-}
-
-.tfoot {
-       display: table-footer-group;
-}
-
-.td,
-.th {
-       line-height: normal;
-       display: table-cell;
-       padding: .5em;
-       text-align: center;
-       vertical-align: middle;
-}
-
-.th {
-       font-weight: bold;
-}
-
-.tr.placeholder {
-       height: 4em;
-}
-
-.tr.placeholder > .td {
-       line-height: 3;
-       position: absolute;
-       right: 0;
-       bottom: 0;
-       left: 0;
-       text-align: center !important;
-       background: inherit;
-}
-
-.td[width="33%"] {
-       padding: 1.1em;
-}
-
-.table[width="33%"],
-.th[width="33%"],
-.td[width="33%"] {
-       width: 33%;
-}
-
-.table[width="100%"],
-.th[width="100%"],
-.td[width="100%"] {
-       width: 100%;
-}
-
-.col-1 {
-       flex: 1 1 30px !important;
-}
-
-.col-2 {
-       flex: 2 2 60px !important;
-}
-
-.col-3 {
-       flex: 3 3 90px !important;
-}
-
-.col-4 {
-       flex: 4 4 120px !important;
-}
-
-.col-5 {
-       flex: 5 5 150px !important;
-}
-
-.col-6 {
-       flex: 6 6 180px !important;
-}
-
-.col-7 {
-       flex: 7 7 210px !important;
-}
-
-.col-8 {
-       flex: 8 8 240px !important;
-}
-
-.col-9 {
-       flex: 9 9 270px !important;
-}
-
-.col-10 {
-       flex: 10 10 300px !important;
-}
-
-.cbi-button-up,
-.cbi-button-down,
-.cbi-value-helpicon,
-.showSide {
-       font-family: "icomoon" !important;
-       font-weight: normal;
-       font-style: normal;
-       font-variant: normal;
-       line-height: 1;
-       text-transform: none;
-       -webkit-font-smoothing: antialiased;
-       speak: none;
-}
-
-* {
-       box-sizing: border-box;
-       margin: 0;
-       padding: 0;
-}
-
-.h1,
-.h2,
-.h3,
-.h4,
-.h5,
-.h6,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-       font-family: inherit;
-       font-weight: normal;
-       line-height: 1.1 !important;
-       color: inherit;
-}
-
-html {
-       overflow-y: hidden;
-       -webkit-text-size-adjust: 100%;
-       -ms-text-size-adjust: 100%;
-}
-
-body {
-       font-size: .8rem;
-       background-color: #eee;
-}
-
-html,
-body {
-       font-family: "Microsoft Yahei", "WenQuanYi Micro Hei", "sans-serif", "Helvetica Neue", "Helvetica", "Hiragino Sans GB";
-       font-family: var(--font-body);
-       height: 100%;
-       margin: 0;
-       padding: 0;
-}
-
-select {
-       padding: .36rem .8rem;
-       color: #555;
-       border: thin solid #ccc;
-       background-color: #fff;
-       background-image: none;
-}
-
-.btn,
-button,
-select,
-input,
-.cbi-dropdown {
-       height: 1.8rem;
-       padding: 0;
-       color: rgba(0, 0, 0, .87);
-       border: 0;
-       border-bottom: 2px solid rgba(0, 0, 0, .26);
-       border-radius: 0;
-       outline: 0;
-       background-color: transparent;
-       background-image: none;
-       box-shadow: none;
-}
-
-select,
-.cbi-dropdown {
-       width: inherit;
-}
-
-select:not([multiple="multiple"]):focus,
-input:not(.cbi-button):focus,
-.cbi-dropdown:focus,
-.cbi-dynlist > .item:focus {
-       border-color: #09c;
-       border-color: var(--main-color);
-}
-
-select[multiple="multiple"] {
-       height: auto;
-}
-
-pre {
-       overflow: auto;
-}
-
-code {
-       font-size: 1rem;
-       font-size-adjust: .35;
-       padding: 1px 3px;
-       color: #101010;
-       border: thin solid #999;
-       border-radius: 2px;
-       background: #ddd;
-}
-
-abbr {
-       cursor: help;
-       text-decoration: underline;
-       color: #005470;
-}
-
-hr {
-       margin: 1rem 0;
-       opacity: .1;
-       border-color: #eee;
-}
-
-header,
-.main {
-       position: absolute;
-       width: 100%;
-}
-
-header {
-       position: fixed;
-       z-index: 2000;
-       float: left;
-       height: 4rem;
-       transition: box-shadow .2s;
-       box-shadow: 0 2px 5px rgba(0, 0, 0, .26);
-}
-
-footer {
-       font-size: .8rem;
-       overflow: hidden;
-       padding: 1rem;
-       text-align: right;
-       white-space: nowrap;
-       color: #aaa;
-       text-shadow: 0 0 2px #bbb;
-}
-
-footer > a {
-       text-decoration: none;
-       color: #aaa;
-}
-
-.main {
-       position: relative;
-       top: 4rem;
-       bottom: 0;
-       overflow-y: auto;
-       height: 100%;
-       height: calc(100% - 4rem);
-}
-
-.main > .loading {
-       position: fixed;
-       z-index: 1000;
-       top: 0;
-       display: block;
-       width: 100%;
-       height: 100%;
-       pointer-events: none;
-       background-color: rgb(240, 240, 240);
-}
-
-.main > .loading > span {
-       font-family: monospace;
-       font-size: 2.0rem;
-       font-size-adjust: .35;
-       position: relative;
-       top: 12.5%;
-       display: block;
-       text-align: center;
-       color: #888;
-}
-
-.main > .loading > span > .loading-img:before {
-       content: "\e603";
-}
-
-.main > .loading > span > .loading-img {
-       font-family: "icomoon" !important;
-       font-size: 1.0rem;
-       font-size-adjust: .6;
-       display: inline-block;
-       margin-right: 1rem;
-       animation: anim-rotate 2s infinite linear;
-}
-
-@keyframes anim-rotate {
-       0% {
-               -webkit-transform: rotate(0);
-               -ms-transform: rotate(0);
-               transform: rotate(0);
-       }
-       100% {
-               -webkit-transform: rotate(360deg);
-               -ms-transform: rotate(360deg);
-               transform: rotate(360deg);
-       }
-}
-
-.main-left {
-       position: fixed;
-       top: 4rem;
-       float: left;
-       overflow-x: auto;
-       width: 15%;
-       width: calc(0% + 15rem);
-       height: 100%;
-       height: calc(100% - 4rem);
-       background-color: #fff;
-       background-color: var(--menu-bg-color);
-}
-
-.main-right {
-       float: right;
-       width: 85%;
-       width: calc(100% - 15rem);
-       height: 100%;
-       background-color: #eee;
-}
-
-.main-right > #maincontent {
-       background-color: #eee;
-}
-
-.pull-right {
-       float: right;
-}
-
-.pull-left {
-       float: left;
-}
-
-.nowrap:not(.td) {
-       white-space: nowrap;
-}
-
-[disabled="disabled"] {
-       pointer-events: none;
-}
-
-header {
-       color: #fff;
-       color: var(--header-color);
-       background: #09c;
-       background: var(--header-bg);
-}
-
-header > .fill > .container {
-       margin-top: .5rem;
-       padding: .5rem 1rem 0 1rem;
-       user-select: none;
-}
-
-header > .fill > .container > #logo {
-       margin: 0 3.5rem 0 1.5rem;
-}
-
-header > .fill > .container > #logo > img {
-       width: calc(0% + 10rem);
-       margin-top: -.1rem;
-}
-
-body:not(.logged-in) > header > .fill > .container > #logo {
-       display: none;
-}
-
-header > .fill > .container > .brand {
-       font-size: 1.4rem;
-       position: absolute;
-       cursor: default;
-       vertical-align: text-bottom;
-       text-decoration: none;
-       color: #fff;
-       color: var(--header-color);
-}
-
-header > .fill > .container > .status {
-       position: absolute;
-       top: 25%;
-       right: 1em;
-       float: right;
-}
-
-header > .fill > .container > .status > * {
-       position: relative;
-       top: .2rem;
-       float: left;
-       margin-left: .3rem;
-       cursor: pointer;
-}
-
-#xhr_poll_status {
-       display: flex;
-}
-
-.danger {
-       background-color: #ff7d60 !important;
-}
-
-.warning {
-       background-color: #f0e68c !important;
-}
-
-.success {
-       background-color: #5cb85c !important;
-}
-
-.notice {
-       background-color: #5bc0de !important;
-}
-
-.error {
-       color: #f00;
-}
-
-.alert,
-.alert-message {
-       font-weight: bold;
-       margin-bottom: 1em;
-       padding: 1rem;
-       border: 0;
-       border-radius: 0 !important;
-       background-color: #fff;
-       box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
-       text-shadow: 1px 1px rgba(0, 0, 0, .1);
-}
-
-.alert-message > h4 {
-       font-size: 110%;
-       font-weight: bold;
-}
-
-.alert-message > * {
-       margin: .5rem 0;
-}
-
-.alert-message .btn {
-       padding: .3rem .6rem;
-}
-
-.container .alert,
-.container .alert-message {
-       margin-top: 1rem;
-}
-
-.main > .main-left > .nav {
-       margin-top: .5rem;
-}
-
-.main > .main-left > .nav > li {
-       padding: .5rem 1rem;
-       cursor: pointer;
-}
-
-.main > .main-left > .nav > li:nth-last-child(1) {
-       font-size: 1.2rem;
-       margin-top: 1rem;
-       margin-bottom: 1rem;
-}
-
-.main > .main-left > .nav > li a {
-       display: block;
-       color: #5f6368;
-       color: var(--menu-color);
-}
-
-.main > .main-left > .nav > .slide {
-       padding: 0;
-}
-
-.main > .main-left > .nav > .slide > ul {
-       display: none;
-}
-
-.main > .main-left > .nav > .slide > .menu::before {
-       font-weight: 900;
-       position: absolute;
-       right: 17px;
-       content: "\2228";
-       transform: scale(1.3, .75);
-}
-
-.main > .main-left > .nav > .slide > .menu.active::before {
-       content: "\2227";
-}
-
-.main > .main-left[style$="overflow: hidden;"] > .nav > .slide > .menu::before {
-       display: none;
-}
-
-.main > .main-left > .nav > .slide > .menu {
-       font-size: 1.15rem;
-       font-weight: 500;
-       display: block;
-       padding: .5rem 1rem;
-       text-decoration: none;
-       color: var(--menu-color);
-}
-
-.main > .main-left > .nav > li:hover,
-.main > .main-left > .nav > .slide > .menu:hover {
-       background: #d4d4d4;
-       background: var(--submenu-bg-hover);
-}
-
-.main > .main-left > .nav > .slide:hover {
-       background: none;
-}
-
-.main > .main-left > .nav > .slide > .slide-menu > li {
-       padding: .4rem 2rem;
-}
-
-.main > .main-left > .nav > .slide > .slide-menu > .active {
-       background-color: #09c;
-       background-color: var(--submenu-bg-hover-active);
-}
-
-.main > .main-left > .nav > .slide > .slide-menu > li > a {
-       white-space: nowrap;
-       text-decoration: none;
-}
-
-.main > .main-left > .nav > .slide > .slide-menu > .active > a {
-       color: #fff;
-}
-
-.main > .main-left > .nav > .slide > .slide-menu > li:hover {
-       background: #d4d4d4;
-       background: var(--submenu-bg-hover);
-}
-
-.main > .main-left > .nav > .slide > .slide-menu > li:not(.active):hover > a {
-       color: #202124;
-       color: var(--menu-color-hover);
-}
-
-.main > .main-left > .nav > .slide > .slide-menu > .active:hover {
-       cursor: hand;
-       background-color: #09c;
-       background-color: var(--main-color);
-}
-
-/* ripple effect */
-.main > .main-left > .nav > .slide > .menu,
-.main > .main-left > .nav > .slide > .slide-menu > li {
-       position: relative;
-       overflow: hidden;
-       transform: translate3d(0, 0, 0);
-}
-
-.main > .main-left > .nav > .slide > .menu:after,
-.main > .main-left > .nav > .slide > .slide-menu > li:after {
-       position: absolute;
-       top: 0;
-       left: 0;
-       display: block;
-       width: 100%;
-       height: 100%;
-       content: "";
-       transition: transform .5s, opacity 1s;
-       transform: scale(10, 10);
-       pointer-events: none;
-       opacity: 0;
-       background-image: radial-gradient(circle, #000 10%, transparent 10.01%);
-       background-repeat: no-repeat;
-       background-position: 50%;
-}
-
-.main > .main-left > .nav > .slide > .menu:active:after,
-.main > .main-left > .nav > .slide > .slide-menu > li:active:after {
-       transition: 0s;
-       transform: scale(0, 0);
-       opacity: .2;
-}
-
-#maincontent > .container {
-       margin: 0 2rem 1rem 2rem;
-}
-
-.Processes #maincontent > .container {
-       margin-right: 0;
-}
-
-ul {
-       line-height: normal;
-}
-
-li {
-       list-style-type: none;
-}
-
-h1 {
-       font-size: 2rem;
-       padding-bottom: 10px;
-       border-bottom: thin solid #eee;
-}
-
-h2 {
-       font-size: 1.8rem;
-       margin: 2rem 0 0 0;
-       padding-bottom: 10px;
-       border-bottom: thin solid #eee;
-}
-
-h3 {
-       font-size: 1.4rem;
-       margin: 2rem 0 0 0;
-       padding-bottom: 10px;
-}
-
-h4 {
-       font-size: 1.2rem;
-       margin: 2rem 0 0 0;
-       padding-bottom: 10px;
-}
-
-h5 {
-       font-size: 1rem;
-       margin: 2rem 0 0 0;
-       padding-bottom: 10px;
-}
-
-.cbi-section,
-.cbi-section-error,
-#cbi-network > .cbi-section-node,
-#cbi-wireless > .cbi-section-node,
-#cbi-wireless > #wifi_assoclist_table,
-[data-page^="admin-system-admin"]:not(.node-main-login) .cbi-map:not(#cbi-dropbear),
-[data-page="admin-system-opkg"] #maincontent > .container {
-       font-family: inherit;
-       font-weight: normal;
-       font-style: normal;
-       line-height: normal;
-       min-width: inherit;
-       margin: 1rem 0 0 0;
-       padding: 2rem;
-       border: 0;
-       border-radius: 0;
-       background-color: #fff;
-       box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
-}
-
-.cbi-map-descr + fieldset {
-       margin-top: 1rem;
-}
-
-.cbi-section > legend {
-       display: none !important;
-}
-
-fieldset > fieldset,
-.cbi-section > .cbi-section {
-       margin: 0;
-       padding: 0;
-       border: 0;
-       box-shadow: none;
-}
-
-.cbi-section > h3:first-child,
-.panel-title {
-       font-size: 1.4rem;
-       line-height: 1;
-       display: block;
-       width: 100%;
-       margin: 0;
-       margin-bottom: .5rem;
-       padding-bottom: 1rem;
-       color: #404040;
-       border-bottom: thin solid #eee;
-}
-
-table {
-       border-spacing: 0;
-       border-collapse: collapse;
-}
-
-table,
-.table {
-       overflow-y: hidden;
-       width: 100%;
-       box-shadow: 0 0 0 1px #ddd;
-}
-
-table > tbody > tr > td,
-table > tbody > tr > th,
-table > tfoot > tr > td,
-table > tfoot > tr > th,
-table > thead > tr > td,
-table > thead > tr > th,
-.table > .tbody > .tr > .td,
-.table > .tbody > .tr > .th,
-.table > .tfoot > .tr > .td,
-.table > .tfoot > .tr > .th,
-.table > .thead > .tr > .td,
-.table > .thead > .tr > .th,
-.table > .tr > .td.cbi-value-field,
-.table > .tr > .th.cbi-section-table-cell {
-       padding: .5rem;
-}
-
-.container > .cbi-section:first-of-type > .table[width="100%"] > .tr > .td {
-       padding: .6rem;
-}
-
-.cbi-section-table-cell {
-       line-height: 1.1;
-       align-self: flex-end;
-       flex: 1 1 auto;
-}
-
-tr > td,
-tr > th,
-.tr > .td,
-.tr > .th,
-.cbi-section-table-row::before,
-#cbi-wireless > #wifi_assoclist_table > .tr:nth-child(2) {
-       border-top: thin solid #ddd;
-}
-
-tr:first-child > td
-.tr:first-child > .td,
-#cbi-wireless .td,
-#cbi-network .tr:first-child > .td,
-.table[width="100%"] > .tr:first-child > .td,
-[data-page="admin-network-diagnostics"] .tr > .td,
-.tr.table-titles > .th,
-.tr.cbi-section-table-titles > .th {
-       border-top: 0 !important;
-}
-
-.cbi-section-table-row {
-       margin-bottom: 1rem;
-       text-align: center !important;
-       background: #f4f4f4;
-}
-
-.cbi-section-table-row:last-child {
-       margin-bottom: 0;
-}
-
-.cbi-section-table-row > .cbi-value-field .cbi-input-select,
-.cbi-section-table-row > .cbi-value-field .cbi-input-text,
-.cbi-section-table-row > .cbi-value-field .cbi-input-password,
-.cbi-section-table-row > .cbi-value-field .cbi-dropdown {
-       width: 100%;
-}
-
-.cbi-section-table-row > .cbi-value-field [data-dynlist] > input,
-.cbi-section-table-row > .cbi-value-field input.cbi-input-password {
-       width: calc(100% - 1.5rem);
-}
-
-.cbi-section-table-row .td {
-       text-align: center !important;
-}
-
-div > table > tbody > tr:nth-of-type(2n),
-div > .table > .tr:nth-of-type(2n) {
-       background-color: #f9f9f9;
-}
-
-/* fix multiple table */
-table table,
-.table .table {
-       border: 0;
-}
-
-.cbi-value-field table,
-.cbi-value-field .table {
-       border: 0;
-}
-
-td > table > tbody > tr > td,
-.td > .table > .tbody > .tr > .td {
-       border: 0;
-}
-
-.cbi-value-field > table > tbody > tr > td,
-.cbi-value-field > .table > .tbody > .tr > .td {
-       border: 0;
-}
-
-/* button style */
-.btn,
-.cbi-button,
-.item::after {
-       font-size: .8rem;
-       display: inline-block;
-       width: auto !important;
-       padding: 0 .8rem;
-       cursor: pointer;
-       -webkit-user-select: none;
-       -moz-user-select: none;
-       -ms-user-select: none;
-       user-select: none;
-       transition: all .2s ease-in-out;
-       text-align: center;
-       vertical-align: middle;
-       white-space: nowrap;
-       text-decoration: none;
-       text-transform: uppercase;
-       color: rgba(0, 0, 0, .87);
-       border: 0;
-       border-radius: .2rem;
-       background-color: #f0f0f0;
-       background-image: none;
-       -webkit-appearance: none;
-       -ms-touch-action: manipulation;
-       touch-action: manipulation;
-}
-
-.cbi-button:not(select) {
-       -webkit-appearance: none !important;
-}
-
-form[method="post"] + form[method="post"],
-.cbi-button + .cbi-button {
-       margin-left: .6rem;
-}
-
-.btn:hover,
-.btn:focus,
-.btn:active,
-.cbi-button:hover,
-.cbi-button:focus,
-.cbi-button:active,
-.item:hover::after,
-.item:focus::after,
-.item:active::after,
-.cbi-page-actions .cbi-button-apply + .cbi-button-save:hover,
-.cbi-page-actions .cbi-button-apply + .cbi-button-save:focus,
-.cbi-page-actions .cbi-button-apply + .cbi-button-save:active {
-       text-decoration: none;
-       outline: 0;
-}
-
-.btn:hover,
-.btn:focus,
-.cbi-button:hover,
-.cbi-button:focus {
-       box-shadow: 0 0 2px rgba(0, 0, 0, .12), 0 2px 2px rgba(0, 0, 0, .2);
-}
-
-.btn:active,
-.cbi-button:active {
-       box-shadow: 0 10px 20px rgba(0, 0, 0, .19), 0 6px 6px rgba(0, 0, 0, .23);
-}
-
-.btn:disabled,
-.cbi-button:disabled {
-       cursor: not-allowed;
-       pointer-events: none;
-       opacity: .5;
-       box-shadow: none;
-}
-
-/* gray */
-.alert-message [class="btn"],
-.modal div[class="btn"],
-.cbi-button-find,
-.cbi-button-link,
-.cbi-button-up,
-.cbi-button-down,
-.cbi-button-neutral,
-.cbi-button[name="zero"],
-.cbi-button[name="restart"],
-.cbi-button[onclick="hide_empty(this)"] {
-       font-weight: bold;
-       border: thin solid #bfbfbf;
-       background-color: #d4d4d4;
-}
-
-/* dark blue */
-.btn.primary,
-.cbi-page-actions .cbi-button-save,
-.cbi-page-actions .cbi-button-apply + .cbi-button-save,
-.cbi-button-add,
-.cbi-button-save,
-.cbi-button-positive,
-.cbi-button-link,
-.cbi-button[value="Enable"],
-.cbi-button[value="Scan"],
-.cbi-button[value^="Back"],
-.cbi-button-neutral[onclick="handleConfig(event)"] {
-       font-weight: normal;
-       color: #fff;
-       border: thin solid #2e6da4;
-       background-color: #337ab7;
-}
-
-/* light blue */
-.cbi-page-actions .cbi-button-apply,
-.cbi-section-actions .cbi-button-edit,
-.cbi-button-edit,
-.cbi-button-apply,
-.cbi-button-reload,
-.cbi-button-action,
-.cbi-button[value="Submit"],
-.cbi-button[value$="Apply"],
-.cbi-button[onclick="addKey(event)"] {
-       font-weight: normal;
-       color: #fff;
-       border: thin solid #46b8da;
-       background-color: #5bc0de;
-}
-
-/* red */
-.btn.danger,
-.cbi-section-remove > .cbi-button,
-.cbi-button-remove,
-.cbi-button-reset,
-.cbi-button-negative,
-.cbi-button[value="Stop"],
-.cbi-button[value="Kill"],
-.cbi-button[onclick="reboot(this)"],
-.cbi-button-neutral[value="Restart"] {
-       font-weight: normal;
-       color: #fff;
-       border: thin solid #d43f3a;
-       background-color: #d9534f;
-}
-
-/* yellow */
-.btn[value="Dismiss"],
-.cbi-button[value="Terminate"],
-.cbi-button[value="Reset"],
-.cbi-button[value="Disabled"],
-.cbi-button[onclick^="iface_reconnect"],
-.cbi-button[onclick="handleReset(event)"],
-.cbi-button-neutral[value="Disable"] {
-       font-weight: normal;
-       color: #fff;
-       border: thin solid #eea236;
-       background-color: #f0ad4e;
-}
-
-/* green */
-.cbi-button-success,
-.cbi-button-download,
-.cbi-button[name="backup"],
-.cbi-button[value="Upload"],
-.cbi-button[value="Save mtdblock"] {
-       font-weight: normal;
-       color: #fff;
-       border: thin solid #4cae4c;
-       background-color: #5cb85c;
-}
-
-.cbi-page-actions .cbi-button-link:first-child {
-       float: left;
-}
-
-.a-to-btn {
-       text-decoration: none;
-}
-
-.cbi-value-field .cbi-button-add {
-       font-weight: bold;
-       padding: 1px 6px;
-}
-
-.cbi-value-field .cbi-button-neutral {
-       padding: 1px 8px;
-}
-
-/* table */
-.tabs {
-       margin: 0 -2rem;
-       padding-left: .5rem;
-       background-color: #fff;
-}
-
-.cbi-tabmenu > li,
-.tabs > li {
-       display: inline-block;
-       padding: .6rem 0;
-}
-
-.cbi-tabmenu > li > a,
-.tabs > li > a {
-       padding: .5rem .8rem;
-       text-decoration: none;
-       color: #404040;
-}
-
-.tabs > li[class~="active"],
-.tabs > li:hover {
-       margin-bottom: -.18751rem;
-       cursor: pointer;
-       color: #09c;
-       color: var(--main-color);
-       border-bottom: #09c;
-       border-bottom: .2rem solid var(--main-color);
-}
-
-.tabs > li[class~="active"] > a {
-       color: #09c;
-       color: var(--main-color);
-}
-
-.tabs > li:hover {
-       border-bottom: .18751rem solid #c9c9c9;
-}
-
-.cbi-tabmenu {
-       border: thin solid #d4d4d4;
-       border-bottom: 0;
-}
-
-.cbi-tabmenu > li:hover {
-       background-color: #f1f1f1;
-}
-
-.cbi-tabmenu > li[class~="cbi-tab"] {
-       background-color: #fff;
-}
-
-.cbi-tabmenu {
-       background-color: #d4d4d4;
-}
-
-.cbi-section .cbi-section-remove:nth-of-type(2n),
-.container > .cbi-section .cbi-section-node:nth-of-type(2n) {
-       background-color: #f9f9f9;
-}
-
-[data-tab-title] {
-       height: 0;
-       opacity: 0;
-       overflow: hidden;
-}
-
-[data-tab-active="true"] {
-       opacity: 1;
-       height: auto;
-       overflow: visible;
-       transition: opacity .25s ease-in;
-}
-
-.cbi-section[id] .cbi-section-remove:nth-of-type(4n+3),
-.cbi-section[id] .cbi-section-node:nth-of-type(4n+4) {
-       background-color: #f9f9f9;
-}
-
-.cbi-section-node-tabbed {
-       margin-top: 0;
-       padding: 0;
-       border: thin solid #d4d4d4;
-       border-top: 0;
-}
-
-.cbi-tabcontainer > .cbi-value:nth-of-type(2n) {
-       background-color: #f9f9f9;
-}
-
-.cbi-value-field,
-.cbi-value-description {
-       line-height: 1.25;
-       display: table-cell;
-}
-
-.cbi-input-invalid {
-       color: #f00;
-       border-color: #f00;
-}
-
-.cbi-section-error {
-       font-weight: bold;
-       line-height: 1.42857143;
-       margin: 18px;
-       padding: 6px;
-       border: thin solid #f00;
-       border-radius: 3px;
-       background-color: #fce6e6;
-}
-
-.cbi-section-error ul {
-       margin: 0 0 0 20px;
-}
-
-.cbi-section-error ul li {
-       font-weight: bold;
-       color: #f00;
-}
-
-.cbi-value-helpicon > img {
-       display: none;
-}
-
-.cbi-value-helpicon:before {
-       content: "\f059";
-}
-
-.cbi-value-description {
-       font-size: small;
-       padding: .5rem 0 0 0;
-       opacity: .5;
-}
-
-.cbi-value-title {
-       display: table-cell;
-       float: left;
-       width: 23rem;
-       padding-top: .4rem;
-       padding-right: 2rem;
-       text-align: right;
-       word-wrap: break-word;
-}
-
-.cbi-value {
-       display: inline-block;
-       width: 100%;
-       padding: .3rem 1rem;
-}
-
-.cbi-value ul {
-       line-height: 1.25;
-}
-
-.td[data-title]::before {
-       font-weight: bold;
-       display: none;
-       padding: .25rem 0;
-       content: attr(data-title) ":\20";
-       text-align: left;
-       white-space: nowrap;
-}
-
-.tr.placeholder .td[data-title]::before {
-       display: none;
-}
-
-.tr[data-title]::before,
-.tr.cbi-section-table-titles.named::before {
-       font-weight: bold;
-       display: table-cell;
-       align-self: center;
-       flex: 1 1 5%;
-       padding: .25rem;
-       content: attr(data-title) "\20";
-       text-align: center;
-       vertical-align: middle;
-       white-space: normal;
-       word-wrap: break-word;
-}
-
-.cbi-rowstyle-1 {
-       background-color: #f9f9f9;
-}
-
-.cbi-rowstyle-2 {
-       background-color: #eee;
-}
-
-.cbi-rowstyle-2 .cbi-button-up,
-.cbi-rowstyle-2 .cbi-button-down,
-.cbi-rowstyle-2:first-child {
-       background-color: #fff !important;
-}
-
-.cbi-section-table .cbi-section-table-titles .cbi-section-table-cell {
-       width: auto !important;
-}
-
-.td.cbi-section-actions {
-       text-align: right !important;
-       vertical-align: middle;
-}
-
-.td.cbi-section-actions > * {
-       display: inline-flex;
-}
-
-.td.cbi-section-actions > * > *,
-.td.cbi-section-actions > * > form > * {
-       margin: 0 5px;
-}
-
-.td.cbi-section-actions > * > form {
-       display: inline-flex;
-       margin: 0;
-}
-
-/* desc */
-.cbi-section-descr,
-.cbi-map-descr {
-       font-size: small;
-       line-height: 1.42857143;
-       padding: .5rem;
-       color: #999;
-}
-
-.cbi-dynlist {
-       line-height: 1.3;
-       flex-direction: column;
-       min-height: 30px;
-}
-
-.cbi-dynlist > .item {
-       position: relative;
-       max-width: 24.9rem;
-       margin: 0 2em 4px 0;
-       padding: 2px 4px;
-       cursor: default;
-       pointer-events: none;
-       color: #666;
-       border-bottom: 2px solid rgba(0, 0, 0, .26);
-}
-
-.cbi-dynlist[name="sshkeys"] > .item {
-       max-width: none;
-}
-
-.cbi-dynlist > .item::after {
-       font-weight: bold;
-       position: absolute;
-       right: -2em;
-       bottom: 0;
-       display: inline-flex;
-       min-height: 17px;
-       padding: 0 6px;
-       content: "\00D7";
-       pointer-events: auto;
-       color: #fff;
-       border: thin solid #d43f3a;
-       background-color: #d9534f;
-}
-
-.cbi-dynlist > .item > span {
-       white-space: normal;
-       word-break: break-word;
-}
-
-.cbi-dynlist,
-.cbi-dropdown {
-       position: relative;
-       display: inline-flex;
-       height: auto;
-       padding: 0;
-       cursor: default;
-}
-
-.cbi-dropdown > ul {
-       display: flex;
-       overflow-x: hidden;
-       overflow-y: auto;
-       width: 100%;
-       margin: 0 !important;
-       padding: 0;
-       list-style: none;
-}
-
-.cbi-dropdown > ul.preview {
-       display: none;
-}
-
-.cbi-dropdown > .open {
-       flex-basis: 15px;
-}
-
-.cbi-dropdown > .open,
-.cbi-dropdown > .more {
-       font-size: 1rem;
-       font-weight: 900;
-       line-height: 2;
-       display: flex;
-       flex-direction: column;
-       flex-grow: 0;
-       flex-shrink: 0;
-       justify-content: center;
-       padding: 0 .25em;
-       text-align: center;
-}
-
-.cbi-dropdown > .more,
-.cbi-dropdown > ul > li[placeholder] {
-       font-weight: bold;
-       display: none;
-       color: #777;
-       text-shadow: 1px 1px 0 #fff;
-}
-
-.cbi-dropdown > ul > li {
-       display: none;
-       overflow: hidden;
-       align-items: center;
-       align-self: center;
-       flex-grow: 1;
-       flex-shrink: 1;
-       min-height: 20px;
-       padding: .25em;
-       white-space: nowrap;
-       text-overflow: ellipsis;
-}
-
-.cbi-dropdown > ul > li .hide-open {
-       display: initial;
-}
-
-.cbi-dropdown > ul > li .hide-close {
-       display: none;
-}
-
-.cbi-dropdown > ul > li[display]:not([display="0"]) {
-       border-left: thin solid #ccc;
-}
-
-.cbi-dropdown[empty] > ul {
-       max-width: 1px;
-}
-
-.cbi-dropdown > ul > li > form {
-       display: none;
-       margin: 0;
-       padding: 0;
-       pointer-events: none;
-}
-
-.cbi-dropdown > ul > li img {
-       margin-right: .25em;
-       vertical-align: middle;
-}
-
-.cbi-dropdown > ul > li > form > input[type="checkbox"] {
-       height: auto;
-       margin: 0;
-}
-
-.cbi-dropdown > ul > li input[type="text"] {
-       height: 20px;
-}
-
-.cbi-dropdown[open] {
-       position: relative;
-}
-
-.cbi-dropdown[open] > ul.dropdown {
-       position: absolute;
-       z-index: 1100;
-       display: block;
-       width: auto;
-       min-width: 100%;
-       max-width: none;
-       max-height: 200px !important;
-       border: thin solid #918e8c;
-       background: #f6f6f6;
-       box-shadow: 0 0 4px #918e8c;
-}
-
-.cbi-dropdown > ul > li[display],
-.cbi-dropdown[open] > ul.preview,
-.cbi-dropdown[open] > ul.dropdown > li,
-.cbi-dropdown[multiple] > ul > li > label,
-.cbi-dropdown[multiple][open] > ul.dropdown > li,
-.cbi-dropdown[multiple][more] > .more,
-.cbi-dropdown[multiple][empty] > .more {
-       display: flex;
-       align-items: center;
-       flex-grow: 1;
-}
-
-.cbi-dropdown[empty] > ul > li,
-.cbi-dropdown[optional][open] > ul.dropdown > li[placeholder],
-.cbi-dropdown[multiple][open] > ul.dropdown > li > form {
-       display: block;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li .hide-open {
-       display: none;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li .hide-close {
-       display: initial;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li {
-       border-bottom: thin solid #ccc;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li[selected] {
-       background: #b0d0f0;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li.focus {
-       background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
-}
-
-.cbi-dropdown[open] > ul.dropdown > li:last-child {
-       margin-bottom: 0;
-       border-bottom: 0;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li[unselectable] {
-       opacity: .7;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li > input.create-item-input:first-child:last-child {
-       width: 100%;
-}
-
-.cbi-dropdown[disabled] {
-       pointer-events: none;
-       opacity: .6;
-}
-
-.cbi-dropdown .zonebadge {
-       width: 100%;
-}
-
-.cbi-dropdown[open] .zonebadge {
-       width: auto;
-}
-
-#modal_overlay {
-       position: fixed;
-       z-index: 900;
-       top: 4rem;
-       right: 10000px;
-       bottom: 0;
-       left: -10000px;
-       overflow-y: scroll;
-       transition: opacity .125s ease-in;
-       opacity: 0;
-       background: rgba(0, 0, 0, .7);
-       -webkit-overflow-scrolling: touch;
-}
-
-.modal {
-       display: flex;
-       align-items: center;
-       flex-wrap: wrap;
-       width: 90%;
-       min-width: 270px;
-       max-width: 600px;
-       min-height: 32px;
-       max-height: 2400px;
-       margin: 5em auto;
-       padding: 1em;
-       border-radius: 3px !important;
-       background: #fff;
-       box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
-}
-
-.modal > * {
-       line-height: normal;
-       flex-basis: 100%;
-}
-
-.modal > pre,
-.modal > textarea {
-       font-size: 1rem;
-       font-size-adjust: .35;
-       overflow: auto;
-       margin-bottom: .5em;
-       padding: 8.5px;
-       white-space: pre-wrap;
-       color: #eee;
-       outline: 0;
-       background-color: #101010;
-       box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
-}
-
-.modal > h4 {
-       margin: .5em 0;
-}
-
-.modal ul {
-       margin-left: 2.2em;
-}
-
-.modal li {
-       list-style-type: square;
-       color: #808080;
-}
-
-.modal p {
-       padding-left: .25rem;
-       word-break: break-word;
-}
-
-.modal .label {
-       font-size: .6rem;
-       font-weight: normal;
-       padding: .1rem .3rem;
-       padding-bottom: 0;
-       cursor: default;
-       border-radius: 0;
-}
-
-.modal .label.warning {
-       background-color: #f0ad4e !important;
-}
-
-.modal .btn {
-       padding: .3rem .6rem;
-}
-
-.modal .spinning {
-       margin-bottom: 2em;
-}
-
-body.modal-overlay-active {
-       overflow: hidden;
-       height: 100vh;
-}
-
-body.modal-overlay-active #modal_overlay {
-       right: 0;
-       left: 0;
-       opacity: 1;
-}
-
-.spinning {
-       position: relative;
-       padding-left: 32px !important;
-}
-
-.spinning::before {
-       position: absolute;
-       top: 0;
-       bottom: 0;
-       left: .2em;
-       width: 32px;
-       content: " ";
-       background: url(../resources/icons/loading.gif) no-repeat center;
-       background-size: 16px;
-}
-
-/* luci */
-.hidden {
-       display: none;
-}
-
-.left,
-.left::before {
-       text-align: left !important;
-}
-
-.right,
-.right::before {
-       text-align: right !important;
-}
-
-.center,
-.center::before {
-       text-align: center !important;
-}
-
-.top {
-       align-self: flex-start !important;
-       vertical-align: top !important;
-}
-
-.bottom {
-       align-self: flex-end !important;
-       vertical-align: bottom !important;
-}
-
-.inline {
-       display: inline;
-}
-
-.cbi-page-actions {
-       padding-top: 1rem;
-       text-align: right;
-}
-
-.cbi-page-actions > form[method="post"] {
-       display: inline-block;
-}
-
-/* input */
-.cbi-value input[type="password"],
-.cbi-value input[type="text"] {
-       min-width: 15rem;
-}
-
-/* select */
-.cbi-value-field .cbi-dropdown,
-.cbi-value-field .cbi-input-select {
-       min-width: 15rem;
-}
-
-.cbi-value-field .cbi-input-invalid {
-       color: #f00;
-       border-bottom-color: #f00;
-}
-
-/* progressbar */
-.cbi-progressbar {
-       position: relative;
-       min-width: 170px;
-       height: 20px;
-       margin: 4px 0;
-       border: thin solid #999;
-       background: #eee;
-}
-
-.cbi-progressbar > div {
-       width: 0;
-       height: 100%;
-       transition: width .25s ease-in;
-       background: #5bc0de;
-       background: var(--bar-bg);
-}
-
-.cbi-progressbar::after {
-       font-family: monospace;
-       font-size: 1.3em;
-       font-weight: bold;
-       font-size-adjust: .38;
-       line-height: normal;
-       position: absolute;
-       top: 2px;
-       right: 0;
-       bottom: 2px;
-       left: 0;
-       overflow: hidden;
-       content: attr(title);
-       text-align: center;
-       white-space: pre;
-       text-overflow: ellipsis;
-       text-shadow: 0 0 2px #eee;
-}
-
-.th[data-type="button"],
-.td[data-type="button"],
-.th[data-type="fvalue"],
-.td[data-type="fvalue"] {
-       flex: 1 1 2em;
-       text-align: center;
-}
-
-.ifacebadge {
-       display: inline-flex;
-       padding: .5rem .8rem;
-       border-bottom: thin solid #ccc;
-       background: #eee;
-       box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(0, 0, 0, .05);
-}
-
-td > .ifacebadge,
-.td > .ifacebadge {
-       font-size: .8rem;
-       background-color: #f0f0f0;
-}
-
-.ifacebadge > em,
-.ifacebadge > img {
-       display: inline-block;
-       align-self: flex-start;
-       margin: 0 .2rem;
-}
-
-.ifacebadge > img + img {
-       margin: 0 .2rem 0 0;
-}
-
-.network-status-table {
-       display: flex;
-       flex-wrap: wrap;
-}
-
-.network-status-table .ifacebox {
-       flex-grow: 1;
-       margin: .5em;
-}
-
-.network-status-table .ifacebox-body {
-       display: flex;
-       flex-direction: column;
-       height: 100%;
-}
-
-.network-status-table .ifacebox-body > span {
-       flex: 10 10 auto;
-}
-
-.network-status-table .ifacebox-body > div {
-       display: flex;
-       flex-wrap: wrap;
-}
-
-.network-status-table .ifacebox-body .ifacebadge {
-       align-items: center;
-       flex: 1 1 auto;
-       min-width: 220px;
-       margin: .5em .25em 0 .25em;
-       padding: .5em;
-       background-color: #fff;
-}
-
-/* textarea */
-.cbi-input-textarea {
-       font-family: monospace;
-       width: 100%;
-       min-height: 14rem;
-       padding: .8rem;
-       color: #000;
-}
-
-#syslog {
-       font-size: small;
-       width: 100%;
-       min-height: 15rem;
-       margin-bottom: 20px;
-       padding: 1rem;
-       resize: none;
-       color: #eee;
-       border: 0;
-       border-radius: 0;
-       background-color: #101010;
-       box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
-}
-
-#syslog:focus {
-       outline: 0;
-}
-
-/* config changes */
-.uci-change-list {
-       font-family: monospace;
-}
-
-.uci-change-list ins,
-.uci-change-legend-label ins {
-       display: block;
-       padding: 2px;
-       text-decoration: none;
-       border: thin solid #0f0;
-       background-color: #cfc;
-}
-
-.uci-change-list del,
-.uci-change-legend-label del {
-       font-style: normal;
-       display: block;
-       padding: 2px;
-       text-decoration: none;
-       border: thin solid #f00;
-       background-color: #fcc;
-}
-
-.uci-change-list var,
-.uci-change-legend-label var {
-       font-style: normal;
-       display: block;
-       padding: 2px;
-       text-decoration: none;
-       border: thin solid #ccc;
-       background-color: #eee;
-}
-
-.uci-change-list var ins,
-.uci-change-list var del {
-       font-style: normal;
-       padding: 0;
-       white-space: pre;
-       border: 0;
-}
-
-.uci-change-legend {
-       padding: 5px;
-}
-
-.uci-change-legend-label {
-       float: left;
-       width: 150px;
-}
-
-.uci-change-legend-label > ins,
-.uci-change-legend-label > del,
-.uci-change-legend-label > var {
-       display: block;
-       float: left;
-       width: 10px;
-       height: 10px;
-       margin-right: 4px;
-}
-
-.uci-change-legend-label var ins,
-.uci-change-legend-label var del {
-       line-height: .4;
-       border: 0;
-}
-
-.uci-change-list var,
-.uci-change-list del,
-.uci-change-list ins {
-       padding: .5rem;
-}
-
-/* other fix */
-#iwsvg,
-#iwsvg2,
-#bwsvg {
-       border: thin solid #d4d4d4 !important;
-}
-
-#iwsvg,
-[data-page="admin-status-realtime-bandwidth"] #bwsvg {
-       border-top: 0 !important;
-}
-
-.ifacebox {
-       line-height: 1.25;
-       display: inline-flex;
-       flex-direction: column;
-       min-width: 100px;
-       border-bottom: thin solid #ccc;
-       background-color: #f9f9f9;
-       box-shadow: inset 0 1px 0 rgba(255, 255, 255, .4), 0 1px 2px rgba(0, 0, 0, .2);
-}
-
-.ifacebox-head {
-       padding: .25em;
-       background: #eee;
-}
-
-.ifacebox-head.active {
-       background: #5bc0de;
-       background: var(--bar-bg);
-}
-
-.ifacebox-body {
-       padding: .25em;
-}
-
-.cbi-image-button {
-       margin-left: .5rem;
-}
-
-.zonebadge {
-       display: inline-block;
-       padding: .2rem .5rem;
-}
-
-.zonebadge .ifacebadge {
-       margin: .1rem .2rem;
-       padding: .2rem .3rem;
-       border: thin solid #6c6c6c;
-}
-
-.zonebadge > input[type="text"] {
-       min-width: 10rem;
-       margin-top: .3rem;
-       padding: .16rem 1rem;
-}
-
-.zonebadge > em,
-.zonebadge > strong {
-       display: inline-block;
-       margin: 0 .2rem;
-}
-
-.cbi-value-field .cbi-input-checkbox,
-.cbi-value-field .cbi-input-radio {
-       margin-top: .15rem;
-}
-
-.cbi-value-field > ul > li {
-       display: flex;
-}
-
-.cbi-value-field > ul > li > label {
-       margin-top: .5rem;
-}
-
-.cbi-value-field > ul > li .ifacebadge {
-       margin-top: -.5rem;
-       margin-left: .4rem;
-       background-color: #eee;
-}
-
-.cbi-section-table-row > .cbi-value-field .cbi-dropdown {
-       min-width: 7rem;
-}
-
-.cbi-section-create {
-       display: inline-flex;
-       align-items: center;
-       margin: .5rem -3px;
-}
-
-.cbi-section-create > * {
-       margin: .5rem;
-}
-
-.cbi-section-remove {
-       padding: .5rem;
-}
-
-div.cbi-value var,
-td.cbi-value-field var,
-.td.cbi-value-field var {
-       font-style: italic;
-       color: #0069d6;
-}
-
-small {
-       font-size: 90%;
-       line-height: 1.42857143;
-       white-space: normal;
-}
-
-.cbi-button-up,
-.cbi-button-down {
-       font-size: 1.2rem;
-       display: inline-block;
-       min-width: 0;
-       padding: .2rem .3rem;
-}
-
-.cbi-optionals {
-       padding: 1rem 1rem 0 1rem;
-       border-top: thin solid #ccc;
-}
-
-.cbi-dropdown-container {
-       position: relative;
-}
-
-.cbi-tooltip-container,
-span[data-tooltip],
-span[data-tooltip] .label {
-       cursor: help !important;
-}
-
-.cbi-tooltip {
-       position: absolute;
-       z-index: 1000;
-       left: -1000px;
-       padding: 2px 5px;
-       transition: opacity .25s ease-out;
-       white-space: pre;
-       pointer-events: none;
-       opacity: 0;
-       border-radius: 3px;
-       background: #fff;
-       box-shadow: 0 0 2px #444;
-}
-
-.cbi-tooltip-container:hover .cbi-tooltip {
-       left: auto;
-       transition: opacity .25s ease-in;
-       opacity: 1;
-}
-
-.zonebadge .cbi-tooltip {
-       margin: -1.5rem 0 0 -.5rem;
-       padding: .25rem;
-       background: inherit;
-}
-
-.zonebadge-empty {
-       color: #404040;
-       background: repeating-linear-gradient(45deg, rgba(204, 204, 204, .5), rgba(204, 204, 204, .5) 5px, rgba(255, 255, 255, .5) 5px, rgba(255, 255, 255, .5) 10px);
-}
-
-.zone-forwards {
-       display: flex;
-       min-width: 10rem;
-}
-
-.zone-forwards > * {
-       flex: 1 1 45%;
-}
-
-.zone-forwards > span {
-       flex-basis: 10%;
-       padding: 0 .25rem;
-       text-align: center;
-}
-
-.zone-forwards .zone-src,
-.zone-forwards .zone-dest {
-       display: flex;
-       flex-direction: column;
-}
-
-.label {
-       font-size: .8rem;
-       font-weight: bold;
-       padding: .3rem .8rem;
-       white-space: nowrap;
-       text-decoration: none;
-       text-transform: uppercase;
-       color: #fff !important;
-       -webkit-border-radius: 3px;
-       -moz-border-radius: 3px;
-       border-radius: 3px;
-       background-color: #bfbfbf;
-       text-shadow: none;
-}
-
-label > input[type="checkbox"],
-label > input[type="radio"] {
-       position: relative;
-       top: .4rem;
-       right: .2rem;
-       margin: 0;
-       vertical-align: bottom;
-}
-
-.showSide {
-       display: none;
-}
-
-.darkMask {
-       position: fixed;
-       z-index: 99;
-       display: none;
-       width: 100%;
-       height: 100%;
-       content: "";
-       background-color: rgba(0, 0, 0, .56);
-}
-
-/* diagnostics */
-#diag-rc-output > pre,
-#command-rc-output > pre {
-       font-size: 1.2rem;
-       font-size-adjust: .35;
-       line-height: normal;
-       display: block;
-       width: 100%;
-       padding: 8.5px;
-       white-space: pre;
-       color: #eee;
-       background-color: #101010;
-       box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
-}
-
-[data-page="admin-network-diagnostics"] .table {
-       box-shadow: none;
-}
-
-input[name="ping"],
-input[name="traceroute"],
-input[name="nslookup"] {
-       width: 80%;
-}
-
-/* fix Main Login */
-.node-main-login > .main > .main-left {
-       display: none;
-}
-
-.node-main-login > .main > .main-right {
-       width: 100%;
-}
-
-.node-main-login > .main fieldset {
-       display: inline;
-       overflow: hidden;
-       margin-bottom: 1rem;
-       padding: .5rem;
-       border: 0;
-       background: none;
-       box-shadow: none;
-}
-
-.node-main-login > .main .cbi-value-title {
-       width: 9.5rem;
-}
-
-.node-main-login > .main #maincontent {
-       text-align: center;
-}
-
-.node-main-login > .main .container {
-       display: inline-block;
-       margin-top: 2rem !important;
-       padding: 1rem 3.5rem 2rem;
-       text-align: left;
-       background-color: #fff;
-       box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
-}
-
-.node-main-login > .main form > div:nth-last-child(1) {
-       float: right;
-}
-
-.node-main-login > .main .cbi-value {
-       display: block;
-}
-
-.node-main-login > .main .cbi-value > * {
-       display: inline-block !important;
-}
-
-.node-main-login > .main .cbi-input-text {
-       min-width: 15rem;
-}
-
-.node-main-login .cbi-section {
-       box-shadow: none;
-}
-
-@media screen and (min-height: 585px) {
-       .node-main-login footer {
-               position: absolute;
-               bottom: 0;
-               width: 100%;
-       }
-}
-
-/* fix status overview */
-.node-status-overview > .main fieldset:nth-child(4) .td:nth-child(2) {
-       white-space: normal;
-}
-
-/* fix status processes */
-.node-status-processes > .main .table .tr .td:nth-child(3) {
-       white-space: normal;
-}
-
-.node-admin-status form {
-       margin: 2rem 2rem 0 0;
-}
-
-/* fix system reboot */
-[data-page="admin-system-reboot"] p {
-       padding-left: 2rem;
-}
-
-[data-page="admin-system-reboot"] p > span {
-       position: relative;
-       top: .1rem;
-       left: 1rem;
-}
-
-/* samba */
-#cbi-samba .cbi-value-last .cbi-value-field {
-       display: block;
-}
-
-#cbi-samba .cbi-value-last .cbi-value-title {
-       width: auto;
-       padding-bottom: .6rem;
-}
-
-/* software */
-.controls > * > .btn:not([aria-label$="page"]) {
-       flex-grow: initial !important;
-       margin-top: .1rem;
-}
-
-.controls > #pager > .btn[aria-label$="page"] {
-       font-size: 1.4rem;
-       font-weight: bold;
-}
-
-.controls > * > label {
-       margin-bottom: .2rem;
-}
-
-[data-page="admin-system-opkg"] div.btn {
-       line-height: 3;
-       display: inline;
-       padding: .3rem .6rem;
-}
-
-[data-page^="admin-system-admin"]:not(.node-main-login) .cbi-map:not(#cbi-dropbear),
-[data-page="admin-system-opkg"] #maincontent > .container {
-       margin-top: 2rem;
-       padding-top: .1rem;
-}
-
-[data-page="admin-system-opkg"] #maincontent > .container {
-       margin: 2rem;
-       margin-bottom: 1rem;
-}
-
-.td.version,
-.td.size {
-       white-space: normal !important;
-       word-break: break-word;
-}
-
-.cbi-tabmenu + .cbi-section {
-       margin-top: 0;
-}
-
-/* wireless overview */
-#cbi-wireless > #wifi_assoclist_table > .tr {
-       box-shadow: inset 1px -1px 0 #ddd, inset -1px -1px 0 #ddd;
-}
-
-#cbi-wireless > #wifi_assoclist_table > .tr.placeholder > .td {
-       right: 33px;
-       bottom: 33px;
-       left: 33px;
-       border-top: thin solid #ddd !important;
-}
-
-#cbi-wireless > #wifi_assoclist_table > .tr.table-titles {
-       box-shadow: inset 1px 0 0 #ddd, inset -1px 0 0 #ddd;
-}
-
-#cbi-wireless > #wifi_assoclist_table > .tr.table-titles > .th {
-       border-bottom: thin solid #ddd;
-       box-shadow: 0 -1px 0 0 #ddd;
-}
-
-#wifi_assoclist_table > .tr > .td[data-title="RX Rate / TX Rate"] {
-       width: 23rem;
-}
-
-/* firewall */
-#iptables {
-       font-family: inherit;
-       font-weight: normal;
-       font-style: normal;
-       line-height: 1;
-       min-width: inherit;
-       margin: 0 0 2rem 0;
-       padding: 2rem;
-       border: 0;
-       border-radius: 0;
-       background-color: #fff;
-}
-
-#cbi-firewall-redirect table *,
-#cbi-network-switch_vlan table *,
-#cbi-firewall-zone table * {
-       font-size: small;
-}
-
-#cbi-firewall-redirect table input[type="text"],
-#cbi-network-switch_vlan table input[type="text"],
-#cbi-firewall-zone table input[type="text"] {
-       width: 5rem;
-}
-
-#cbi-firewall-redirect table select,
-#cbi-network-switch_vlan table select,
-#cbi-firewall-zone table select {
-       min-width: 3.5rem;
-}
-
-#cbi-network-switch_vlan .th,
-#cbi-network-switch_vlan .td {
-       flex-basis: 12%;
-}
-
-#cbi-firewall-zone .table,
-#cbi-network-switch_vlan .table {
-       display: block;
-}
-
-#cbi-firewall-zone .td.cbi-section-actions {
-       width: 100%;
-}
-
-/* applyreboot fix */
-#applyreboot-container {
-       margin: 2rem;
-}
-
-#applyreboot-section {
-       line-height: 300%;
-       margin: 2rem;
-}
-
-/* openvpn bug fix */
-.OpenVPN a {
-       line-height: initial !important;
-}
-
-/* custom commands */
-.commandbox {
-       width: 24% !important;
-       padding: .5rem 1rem;
-       border-bottom: thin solid #ccc;
-       background: #eee;
-       box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(0, 0, 0, .05);
-}
-
-.commandbox h3 {
-       line-height: normal !important;
-       overflow: hidden;
-       margin: 6px 0 !important;
-       white-space: nowrap;
-       text-overflow: ellipsis;
-}
-
-.commandbox div {
-       left: auto !important;
-}
-
-.commandbox code {
-       position: absolute;
-       overflow-x: hidden;
-       overflow-y: auto;
-       max-width: 60%;
-       max-height: 55px;
-       margin-top: -3px;
-       margin-left: 4px;
-       padding: 2px 3px;
-       text-overflow: ellipsis;
-}
-
-.commandbox p:first-of-type {
-       margin-top: -6px;
-}
-
-.commandbox p:nth-of-type(2) {
-       margin-top: 2px;
-}
-
-[data-page^="admin-system-commands"] .panel-title,
-[data-page^="command-cfg"] .mobile-hide,
-[data-page^="command-cfg"] header > .fill > .container > #logo {
-       display: none;
-}
-
-#command-rc-output .alert-message {
-       line-height: 1.42857143;
-       position: absolute;
-       top: 40px;
-       right: 32px;
-       max-width: 40%;
-       margin: 0;
-       animation: anim-fade-in 1.5s forwards;
-       opacity: 0;
-}
-
-@keyframes anim-fade-in {
-       100% {
-               opacity: 1;
-       }
-}
-
-@media screen and (max-width: 1600px) {
-       header > .fill > .container > #logo {
-               margin: 0 2.5rem 0 .5rem;
-       }
-
-       .main-left {
-               width: calc(0% + 13rem);
-       }
-
-       .main-right {
-               width: calc(100% - 13rem);
-       }
-
-       .cbi-dynlist > .item {
-               max-width: 21.9rem;
-       }
-
-       .btn:not(button),
-       .cbi-button {
-               font-size: .8rem;
-               padding: .3rem .6rem;
-       }
-
-       .label {
-               padding: .2rem .6rem;
-       }
-
-       .cbi-value-title {
-               width: 15rem;
-               padding-right: .6rem;
-       }
-
-       fieldset,
-       .cbi-section {
-               padding: 1rem;
-       }
-
-       .cbi-input-textarea {
-               font-size: small;
-       }
-
-       .node-admin-status > .main fieldset li > a {
-               padding: .3rem .6rem;
-       }
-
-       #cbi-firewall-zone > .table {
-               display: block;
-       }
-}
-
-@media screen and (max-width: 1366px) {
-       header {
-               height: 3.5rem;
-       }
-
-       header > .fill > .container {
-               margin-top: .25rem;
-               cursor: default;
-       }
-
-       .main {
-               top: 3.5rem;
-               height: calc(100% - 3.5rem);
-       }
-
-       .main-left {
-               top: 3.5rem;
-               width: calc(0% + 13rem);
-               height: calc(100% - 3.5rem);
-       }
-
-       .main-right {
-               width: calc(100% - 13rem);
-       }
-
-       .cbi-dynlist > .item {
-               max-width: 19.9rem;
-       }
-
-       .cbi-tabmenu > li > a,
-       .tabs > li > a {
-               padding: .2rem .5rem;
-       }
-
-       .panel-title {
-               font-size: 1.1rem;
-               padding-bottom: 1rem;
-       }
-
-       table {
-               font-size: .7rem !important;
-               width: 100% !important;
-       }
-
-       .table .cbi-input-text {
-               width: 100%;
-       }
-
-       .main > .main-left > .nav > li,
-       .main > .main-left > .nav > li a,
-       .main > .main-left > .nav > .slide > .menu {
-               font-size: .9rem;
-       }
-
-       .main > .main-left > .nav > .slide > .slide-menu > li > a {
-               font-size: .7rem;
-       }
-
-       #modal_overlay {
-               top: 3.5rem;
-       }
-
-       [data-page="admin-network-firewall-forwards"] .table:not(.cbi-section-table) {
-               display: block;
-       }
-
-       [data-page="admin-network-firewall-forwards"] .table:not(.cbi-section-table),
-       [data-page="admin-network-firewall-rules"] .table:not(.cbi-section-table),
-       [data-page="admin-network-hosts"] .table {
-               overflow-y: visible;
-       }
-
-       .commandbox {
-               width: 32% !important;
-       }
-}
-
-@media screen and (max-width: 1152px) {
-       header > .fill > .container > #logo {
-               display: none;
-       }
-
-       header > .fill > .container > .brand {
-               position: relative;
-       }
-
-       [data-page^="command-cfg"] header > .fill > .container > .brand {
-               display: block;
-               margin-top: -1.75rem;
-       }
-
-       html,
-       .main {
-               overflow-y: visible;
-       }
-
-       .main-left {
-               position: fixed;
-               z-index: 100;
-               width: 0;
-       }
-
-       .main-right {
-               width: 100%;
-       }
-
-       .cbi-dynlist > .item {
-               max-width: 14.9rem;
-       }
-
-       .showSide {
-               display: inline-block;
-               overflow: visible;
-               margin-right: .5rem;
-               padding: .1rem;
-               cursor: pointer;
-               border-radius: 50%;
-       }
-
-       .showSide:before {
-               font-size: 1.7rem;
-               content: "\e20e";
-       }
-
-       body:not(.logged-in) .showSide {
-               visibility: hidden;
-               width: 0;
-               margin: 0;
-               padding: 0;
-       }
-
-       .node-main-login > .main .cbi-value-title {
-               text-align: left;
-       }
-
-       .cbi-value-title {
-               width: 9rem;
-               padding-right: 1rem;
-       }
-
-       #diag-rc-output > pre,
-       #command-rc-output > pre {
-               font-size: 1rem;
-       }
-
-       .table {
-               display: block;
-       }
-
-       #packages.table {
-               display: grid;
-       }
-
-       .tr {
-               display: flex;
-               flex-direction: row;
-               flex-wrap: wrap;
-       }
-
-       .Overview .table[width="100%"] > .tr {
-               flex-wrap: nowrap;
-       }
-
-       .tr.placeholder {
-               border-bottom: thin solid #ddd;
-       }
-
-       .tr.placeholder > .td,
-       #cbi-firewall .tr > .td,
-       #iptables .tr:nth-child(2) > .td,
-       #cbi-network .tr:nth-child(2) > .td,
-       .cbi-section #wifi_assoclist_table .tr > .td {
-               border-top: 0;
-       }
-
-       .th,
-       .td {
-               display: inline-block;
-               align-self: flex-start;
-               flex: 2 2 25%;
-               text-overflow: ellipsis;
-               word-wrap: break-word;
-       }
-
-       .td select,
-       .td input[type="text"] {
-               width: 100%;
-               word-wrap: normal;
-       }
-
-       .td [data-dynlist] > input,
-       .td input.cbi-input-password {
-               width: calc(100% - 1.5rem);
-       }
-
-       .td[data-type="button"],
-       .td[data-type="fvalue"] {
-               flex: 1 1 12.5%;
-               text-align: left;
-       }
-
-       .th.cbi-value-field,
-       .td.cbi-value-field,
-       .th.cbi-section-table-cell,
-       .td.cbi-section-table-cell {
-               flex-basis: auto;
-               padding-top: 1rem;
-       }
-
-       .cbi-section-table-row {
-               display: flex;
-               flex-direction: row;
-               flex-wrap: wrap;
-               justify-content: space-between;
-               box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
-       }
-
-       .td.cbi-value-field,
-       .cbi-section-table-cell {
-               display: inline-block;
-               flex: 10 10 auto;
-               flex-basis: 50%;
-               text-align: center;
-       }
-
-       .td.cbi-section-actions {
-               vertical-align: bottom;
-       }
-
-       .tr.table-titles,
-       .tr.cbi-section-table-titles,
-       .tr.cbi-section-table-descr {
-               display: none;
-       }
-
-       .tr[data-title]::before,
-       .tr.cbi-section-table-titles.named::before {
-               font-size: .9rem;
-               display: block;
-               flex: 1 1 100%;
-               border-bottom: thin solid rgba(0, 0, 0, .26);
-               background: #90c0e0;
-       }
-
-       .td[data-title],
-       [data-page^="admin-status-realtime"] .td[id] {
-               text-align: left;
-       }
-
-       .td[data-title]::before {
-               display: block;
-       }
-
-       .cbi-button + .cbi-button {
-               margin-left: 0;
-       }
-
-       .td.cbi-section-actions > * > *,
-       .td.cbi-section-actions > * > form > * {
-               margin: 2.1px 3px;
-       }
-
-       .Firewall form {
-               font-family: inherit;
-               font-weight: normal;
-               font-style: normal;
-               line-height: normal;
-               position: static !important;
-               min-width: inherit;
-               margin: 0 0 2rem 0;
-               padding: 2rem;
-               border: 0;
-               border-radius: 0;
-               background-color: #fff;
-               box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
-       }
-
-       .Firewall form input {
-               width: 100% !important;
-               margin: 0;
-               margin-top: 1rem;
-       }
-
-       .Firewall .center,
-       .Firewall .center::before {
-               text-align: left !important;
-       }
-
-       .commandbox {
-               width: 100% !important;
-       }
-}
-
-@media screen and (max-width: 600px) {
-       body {
-               font-size: .8rem;
-       }
-
-       .cbi-progressbar::after {
-               font-size: .95em;
-               line-height: 1.5;
-       }
-
-       fieldset,
-       .cbi-section {
-               margin: 1rem 0 0 0;
-               padding: 1rem;
-       }
-
-       .tabs {
-               margin: 0 -1rem;
-       }
-
-       #maincontent > .container {
-               margin: 0 1rem 1.5rem 1rem;
-       }
-
-       .main > .main-left > .nav > .slide > .menu {
-               font-size: 1.2rem;
-       }
-
-       .main > .main-left > .nav > .slide > .slide-menu > li > a {
-               font-size: 1rem;
-       }
-
-       .cbi-value-title {
-               display: block;
-               width: 100%;
-               min-width: 0 !important;
-               margin-top: 1rem;
-               margin-bottom: .5rem;
-               text-align: left;
-       }
-
-       .cbi-value-field,
-       .cbi-value-description {
-               width: 100%;
-       }
-
-       .cbi-value > .cbi-value-field {
-               display: inline-block;
-       }
-
-       .cbi-tabmenu > li,
-       .tabs > li {
-               padding: .6rem 0;
-       }
-
-       .cbi-tabmenu > li > a,
-       .tabs > li > a {
-               font-size: .9rem;
-               padding: .2rem .3rem;
-       }
-
-       .cbi-page-actions > div > input {
-               display: none;
-       }
-
-       .cbi-page-actions > .cbi-button {
-               margin-top: .2rem;
-       }
-
-       .node-main-login > .main .container {
-               margin: 2rem 1.2rem 1.5rem 1.2rem !important;
-               padding: .3rem 1.7rem 2rem 1.6rem;
-       }
-
-       .node-main-login > .main .cbi-value {
-               padding: 0;
-       }
-
-       .node-main-login > .main form > div:nth-last-child(1) {
-               margin-top: 2rem;
-       }
-
-       .node-main-login > .main .cbi-value-title {
-               font-size: 1.2rem;
-               width: 100% !important;
-       }
-
-       .node-main-login > .main fieldset {
-               margin: 0;
-               padding: .5rem;
-       }
-
-       .commandbox p:first-of-type {
-               margin-top: -8px;
-       }
-
-       #diag-rc-output > pre,
-       #command-rc-output > pre {
-               font-size: .8rem;
-       }
-
-       h2 {
-               font-size: 2rem;
-       }
-
-       .tabs > li > a {
-               font-size: .9rem;
-       }
-
-       select,
-       input {
-               font-size: .9rem;
-       }
-
-       code {
-               font-size: .8rem;
-       }
-
-       .mobile-hide {
-               display: none;
-       }
-
-       .panel-title {
-               font-size: 1.4rem;
-               padding-bottom: 1rem;
-       }
-
-       .node-system-packages > .main .cbi-value.cbi-value-last > div {
-               width: 100% !important;
-       }
-
-       .node-system-packages > .main .cbi-value .cbi-value-field input {
-               width: 100%;
-       }
-
-       .th,
-       .td {
-               flex-basis: 50%;
-       }
-
-       .td.cbi-value-field {
-               flex-basis: 100%;
-       }
-
-       .td.cbi-value-field[data-type="button"],
-       .td.cbi-value-field[data-type="fvalue"] {
-               flex-basis: 25%;
-               text-align: left;
-       }
-
-       .tr[data-title]::before,
-       .tr.cbi-section-table-titles.named::before {
-               font-size: 1rem;
-       }
-
-       td > .ifacebadge,
-       .td > .ifacebadge {
-               font-size: .62rem;
-       }
-
-       #cbi-wireless .td {
-               overflow: hidden;
-       }
-
-       .hide-sm,
-       .hide-xs:not([data-title="MAC-Address"]) {
-               display: none;
-       }
-}
-
-@media screen and (min-width: 1152px) {
-       .cbi-value input[type="password"],
-       .cbi-value input[type="text"] {
-               min-width: 20rem;
-       }
-
-       .cbi-value-field .cbi-input-select {
-               width: 20rem;
-       }
-
-       .cbi-value-field .cbi-dropdown {
-               min-width: 20rem;
-       }
-
-       .cbi-section-node .tr {
-               overflow: hidden;
-       }
-}
-
-@media screen and (min-width: 1366px) {
-       .cbi-value input[type="password"],
-       .cbi-value input[type="text"] {
-               min-width: 22rem;
-       }
-
-       .cbi-value-field .cbi-input-select {
-               width: 22rem;
-       }
-
-       .cbi-value-field .cbi-dropdown {
-               min-width: 22rem;
-       }
-}
-
-@media screen and (min-width: 1600px) {
-       .cbi-value input[type="password"],
-       .cbi-value input[type="text"] {
-               min-width: 25rem;
-       }
-
-       .cbi-value-field .cbi-input-select {
-               width: 25rem;
-       }
-
-       .cbi-value-field .cbi-dropdown {
-               min-width: 25rem;
-       }
-}
diff --git a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/custom.css b/package/luci/themes/luci-theme-material/htdocs/luci-static/material/custom.css
deleted file mode 100644 (file)
index 6acd5aa..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-:root {
-       --main-color: #09c;
-       --header-bg: #09c;
-       --header-color: #fff;
-       --bar-bg: #5bc0de;
-       --menu-bg-color: #fff;
-       --menu-color: #5f6368;
-       --menu-color-hover: #202124;
-       --submenu-bg-hover: #d4d4d4;
-       --submenu-bg-hover-active: #09c;
-       --font-body: "Microsoft Yahei", "WenQuanYi Micro Hei", "sans-serif", "Helvetica Neue", "Helvetica", "Hiragino Sans GB";
-}
diff --git a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/favicon.ico b/package/luci/themes/luci-theme-material/htdocs/luci-static/material/favicon.ico
deleted file mode 100644 (file)
index 72c3115..0000000
Binary files a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/favicon.ico and /dev/null differ
diff --git a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.eot b/package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.eot
deleted file mode 100644 (file)
index 9e6ffc9..0000000
Binary files a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.eot and /dev/null differ
diff --git a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.svg b/package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.svg
deleted file mode 100644 (file)
index d38d057..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>Generated by IcoMoon</metadata>
-<defs>
-<font id="icomoon" horiz-adv-x="1024">
-<font-face units-per-em="1024" ascent="960" descent="-64" />
-<missing-glyph horiz-adv-x="1024" />
-<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
-<glyph unicode="&#xe20a;" glyph-name="expand_less" d="M512 596.667l256-256-60-60-196 196-196-196-60 60z" />
-<glyph unicode="&#xe20b;" glyph-name="expand_more" d="M708 572.667l60-60-256-256-256 256 60 60 196-196z" />
-<glyph unicode="&#xe20e;" glyph-name="menu" d="M128 682.667h768v-86h-768v86zM128 384.667v84h768v-84h-768zM128 170.667v86h768v-86h-768z" />
-<glyph unicode="&#xe291;" glyph-name="favorite" d="M512 28.667l-62 56q-106 96-154 142t-107 114-81 123-22 113q0 98 67 166t167 68q116 0 192-90 76 90 192 90 100 0 167-68t67-166q0-78-52-162t-113-146-199-186z" />
-<glyph unicode="&#xe603;" glyph-name="spinner9" d="M512 960c-278.748 0-505.458-222.762-511.848-499.974 5.92 241.864 189.832 435.974 415.848 435.974 229.75 0 416-200.576 416-448 0-53.020 42.98-96 96-96s96 42.98 96 96c0 282.77-229.23 512-512 512zM512-64c278.748 0 505.458 222.762 511.848 499.974-5.92-241.864-189.832-435.974-415.848-435.974-229.75 0-416 200.576-416 448 0 53.020-42.98 96-96 96s-96-42.98-96-96c0-282.77 229.23-512 512-512z" />
-<glyph unicode="&#xf059;" glyph-name="question-circle" horiz-adv-x="878" d="M512 164.571v109.714q0 8-5.143 13.143t-13.143 5.143h-109.714q-8 0-13.143-5.143t-5.143-13.143v-109.714q0-8 5.143-13.143t13.143-5.143h109.714q8 0 13.143 5.143t5.143 13.143zM658.286 548.571q0 50.286-31.714 93.143t-79.143 66.286-97.143 23.429q-138.857 0-212-121.714-8.571-13.714 4.571-24l75.429-57.143q4-3.429 10.857-3.429 9.143 0 14.286 6.857 30.286 38.857 49.143 52.571 19.429 13.714 49.143 13.714 27.429 0 48.857-14.857t21.429-33.714q0-21.714-11.429-34.857t-38.857-25.714q-36-16-66-49.429t-30-71.714v-20.571q0-8 5.143-13.143t13.143-5.143h109.714q8 0 13.143 5.143t5.143 13.143q0 10.857 12.286 28.286t31.143 28.286q18.286 10.286 28 16.286t26.286 20 25.429 27.429 16 34.571 7.143 46.286zM877.714 438.857q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" />
-</font></defs></svg>
\ No newline at end of file
diff --git a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.ttf b/package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.ttf
deleted file mode 100644 (file)
index 8466932..0000000
Binary files a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.ttf and /dev/null differ
diff --git a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.woff b/package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.woff
deleted file mode 100644 (file)
index 00cf84e..0000000
Binary files a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/fonts/font.woff and /dev/null differ
diff --git a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/js/jquery.min.js b/package/luci/themes/luci-theme-material/htdocs/luci-static/material/js/jquery.min.js
deleted file mode 100755 (executable)
index 4d9b3a2..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});
diff --git a/package/luci/themes/luci-theme-material/htdocs/luci-static/material/js/script.js b/package/luci/themes/luci-theme-material/htdocs/luci-static/material/js/script.js
deleted file mode 100755 (executable)
index 3c25ed7..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-/**
- *  Material is a clean HTML5 theme for LuCI. It is based on luci-theme-bootstrap and MUI
- *
- *  luci-theme-material
- *      Copyright 2015 Lutty Yang <lutty@wcan.in>
- *
- *  Have a bug? Please create an issue here on GitHub!
- *      https://github.com/LuttyYang/luci-theme-material/issues
- *
- *  luci-theme-bootstrap:
- *      Copyright 2008 Steven Barth <steven@midlink.org>
- *      Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- *      Copyright 2012 David Menting <david@nut-bolt.nl>
- *
- *  MUI:
- *      https://github.com/muicss/mui
- *
- *  Licensed to the public under the Apache License 2.0
- */
-(function ($) {
-    $(".main > .loading").fadeOut();
-
-    /**
-     * trim text, Remove spaces, wrap
-     * @param text
-     * @returns {string}
-     */
-    function trimText(text) {
-        return text.replace(/[ \t\n\r]+/g, " ");
-    }
-
-
-    var lastNode = undefined;
-    var mainNodeName = undefined;
-
-    var nodeUrl = "";
-    (function(node){
-        var luciLocation;
-        if (node[0] == "admin"){
-            luciLocation = [node[1], node[2]];
-        }else{
-            luciLocation = node;
-        }
-
-        for(var i in luciLocation){
-            nodeUrl += luciLocation[i];
-            if (i != luciLocation.length - 1){
-                nodeUrl += "/";
-            }
-        }
-    })(luciLocation);
-
-    /**
-     * get the current node by Burl (primary)
-     * @returns {boolean} success?
-     */
-    function getCurrentNodeByUrl() {
-        var ret = false;
-        if (!$('body').hasClass('logged-in')) {
-            luciLocation = ["Main", "Login"];
-            return true;
-        }
-
-        $(".main > .main-left > .nav > .slide > .menu").each(function () {
-            var ulNode = $(this);
-            ulNode.next().find("a").each(function () {
-                var that = $(this);
-                var href = that.attr("href");
-
-                if (href.indexOf(nodeUrl) != -1) {
-                    ulNode.click();
-                    ulNode.next(".slide-menu").stop(true, true);
-                    lastNode = that.parent();
-                    lastNode.addClass("active");
-                    ret = true;
-                    return true;
-                }
-            });
-        });
-        return ret;
-    }
-
-    /**
-     * menu click
-     */
-    $(".main > .main-left > .nav > .slide > .menu").click(function () {
-        var ul = $(this).next(".slide-menu");
-        var menu = $(this);
-        if (!ul.is(":visible")) {
-            menu.addClass("active");
-            ul.addClass("active");
-            ul.stop(true).slideDown("fast");
-        } else {
-            ul.stop(true).slideUp("fast", function () {
-                menu.removeClass("active");
-                ul.removeClass("active");
-            });
-        }
-        return false;
-    });
-
-    /**
-     * hook menu click and add the hash
-     */
-    $(".main > .main-left > .nav > .slide > .slide-menu > li > a").click(function () {
-        if (lastNode != undefined) lastNode.removeClass("active");
-        $(this).parent().addClass("active");
-        $(".main > .loading").fadeIn("fast");
-        return true;
-    });
-
-    /**
-     * fix menu click
-     */
-    $(".main > .main-left > .nav > .slide > .slide-menu > li").click(function () {
-        if (lastNode != undefined) lastNode.removeClass("active");
-        $(this).addClass("active");
-        $(".main > .loading").fadeIn("fast");
-        window.location = $($(this).find("a")[0]).attr("href");
-        return false;
-    });
-
-    /**
-     * get current node and open it
-     */
-    if (getCurrentNodeByUrl()) {
-        mainNodeName = "node-" + luciLocation[0] + "-" + luciLocation[1];
-        mainNodeName = mainNodeName.replace(/[ \t\n\r\/]+/g, "_").toLowerCase();
-        $("body").addClass(mainNodeName);
-    }
-    $(".cbi-button-up").val("");
-    $(".cbi-button-down").val("");
-
-
-    /**
-     * hook other "A Label" and add hash to it.
-     */
-    $("#maincontent > .container").find("a").each(function () {
-        var that = $(this);
-        var onclick = that.attr("onclick");
-        if (onclick == undefined || onclick == "") {
-            that.click(function () {
-                var href = that.attr("href");
-                if (href.indexOf("#") == -1) {
-                    $(".main > .loading").fadeIn("fast");
-                    return true;
-                }
-            });
-        }
-    });
-
-    /**
-     * Sidebar expand
-     */
-    var showSide = false;
-    $(".showSide").click(function () {
-        if (showSide) {
-            $(".darkMask").stop(true).fadeOut("fast");
-            $(".main-left").stop(true).animate({
-                width: "0"
-            }, "fast");
-            $(".main-right").css("overflow-y", "visible");
-            showSide = false;
-        } else {
-            $(".darkMask").stop(true).fadeIn("fast");
-            $(".main-left").stop(true).animate({
-                width: "15rem"
-            }, "fast");
-            $(".main-right").css("overflow-y", "hidden");
-            showSide = true;
-        }
-    });
-
-
-    $(".darkMask").click(function () {
-        if (showSide) {
-            showSide = false;
-            $(".darkMask").stop(true).fadeOut("fast");
-            $(".main-left").stop(true).animate({
-                width: "0"
-            }, "fast");
-            $(".main-right").css("overflow-y", "visible");
-        }
-    });
-
-    $(window).resize(function () {
-        if ($(window).width() > 921) {
-            $(".main-left").css("width", "");
-            $(".darkMask").stop(true);
-            $(".darkMask").css("display", "none");
-            showSide = false;
-        }
-    });
-
-    /**
-     * fix legend position
-     */
-    $("legend").each(function () {
-        var that = $(this);
-        that.after("<span class='panel-title'>" + that.text() + "</span>");
-    });
-
-    $(".cbi-section-table-titles, .cbi-section-table-descr, .cbi-section-descr").each(function () {
-        var that = $(this);
-        if (that.text().trim() == ""){
-            that.css("display", "none");
-        }
-    });
-
-
-    $(".main-right").focus();
-    $(".main-right").blur();
-    $("input").attr("size", "0");
-
-    if (mainNodeName != undefined) {
-        console.log(mainNodeName);
-        switch (mainNodeName) {
-            case "node-status-system_log":
-            case "node-status-kernel_log":
-                $("#syslog").focus(function () {
-                    $("#syslog").blur();
-                    $(".main-right").focus();
-                    $(".main-right").blur();
-                });
-                break;
-            case "node-status-firewall":
-                var button = $(".node-status-firewall > .main fieldset li > a");
-                button.addClass("cbi-button cbi-button-reset a-to-btn");
-                break;
-            case "node-system-reboot":
-                var button = $(".node-system-reboot > .main > .main-right p > a");
-                button.addClass("cbi-button cbi-input-reset a-to-btn");
-                break;
-        }
-    }
-
-})(jQuery);
diff --git a/package/luci/themes/luci-theme-material/luasrc/view/themes/material/footer.htm b/package/luci/themes/luci-theme-material/luasrc/view/themes/material/footer.htm
deleted file mode 100644 (file)
index 544866d..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<%#
-       Material is a clean HTML5 theme for LuCI. It is based on luci-theme-bootstrap and MUI
-
-       luci-theme-material
-       Copyright 2015 Lutty Yang <lutty@wcan.in>
-
-       Have a bug? Please create an issue here on GitHub!
-       https://github.com/LuttyYang/luci-theme-material/issues
-
-       luci-theme-bootstrap:
-       Copyright 2008 Steven Barth <steven@midlink.org>
-       Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
-       Copyright 2012 David Menting <david@nut-bolt.nl>
-
-       MUI:
-       https://github.com/muicss/mui
-
-       Licensed to the public under the Apache License 2.0
--%>
-
-<%
-       local ver = require "luci.version"
-       local disp = require "luci.dispatcher"
-       local request  = disp.context.path
-       local category = request[1]
-       local tree = disp.node()
-       local categories = disp.node_childs(tree)
-%>
-       </div>
-       <footer class="mobile-hide">
-       <a href="https://github.com/openwrt/luci">Powered by <%= ver.luciname %> (<%= ver.luciversion %>)</a> / <%= ver.distversion %>
-       <% if #categories > 1 then %>
-               <ul class="breadcrumb pull-right" id="modemenu">
-               <% for i, r in ipairs(categories) do %>
-               <li<% if request[1] == r then %> class="active"<%end%>>
-                       <a href="<%=controller%>/<%=r%>/"><%=striptags(translate(tree.nodes[r].title))%></a>
-                       <span class="divider">|</span>
-               </li>
-               <% end %>
-               </ul>
-       <% end %>
-       </footer>
-       </div>
-</div>
-<script>
-       // thanks for Jo-Philipp Wich <jow@openwrt.org>
-       var luciLocation = <%= luci.http.write_json(luci.dispatcher.context.path) %>;
-</script>
-<script src="<%=media%>/js/jquery.min.js"></script>
-<script src="<%=media%>/js/script.js"></script>
-</body>
-</html>
diff --git a/package/luci/themes/luci-theme-material/luasrc/view/themes/material/header.htm b/package/luci/themes/luci-theme-material/luasrc/view/themes/material/header.htm
deleted file mode 100644 (file)
index f463ef5..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-<%#
-       Material is a clean HTML5 theme for LuCI. It is based on luci-theme-bootstrap and MUI
-
-       luci-theme-material
-       Copyright 2015-2017 Lutty Yang <lutty@wcan.in>
-
-       Have a bug? Please create an issue here on GitHub!
-       https://github.com/LuttyYang/luci-theme-material/issues
-
-       luci-theme-bootstrap:
-       Copyright 2008 Steven Barth <steven@midlink.org>
-       Copyright 2008-2016 Jo-Philipp Wich <jow@openwrt.org>
-       Copyright 2012 David Menting <david@nut-bolt.nl>
-
-       MUI:
-       https://github.com/muicss/mui
-
-       Licensed to the public under the Apache License 2.0
--%>
-
-<%
-       local sys  = require "luci.sys"
-       local util = require "luci.util"
-       local http = require "luci.http"
-       local disp = require "luci.dispatcher"
-
-       local boardinfo = util.ubus("system", "board")
-
-       local request  = disp.context.path
-       local request2 = disp.context.request
-
-       local category = request[1]
-       local cattree  = category and disp.node(category)
-
-       local leaf = request2[#request2]
-
-       local tree = disp.node()
-       local node = disp.context.dispatched
-
-       local categories = disp.node_childs(tree)
-
-       local c = tree
-       local i, r
-
-       -- tag all nodes leading to this page
-       for i, r in ipairs(request) do
-               if c.nodes and c.nodes[r] then
-                       c = c.nodes[r]
-                       c._menu_selected = true
-               end
-       end
-
-       -- send as HTML5
-       http.prepare_content("text/html")
-
-       local function nodeurl(prefix, name, query)
-               local u = url(prefix, name)
-               if query then
-                       u = u .. http.build_querystring(query)
-               end
-               return pcdata(u)
-       end
-
-       local function render_tabmenu(prefix, node, level)
-               if not level then
-                       level = 1
-               end
-
-               local childs = disp.node_childs(node)
-               if #childs > 0 then
-                       if level > 2 then
-                               write('<ul class="tabs">')
-                       end
-
-                       local selected_node
-                       local selected_name
-                       local i, v
-
-                       for i, v in ipairs(childs) do
-                               local nnode = node.nodes[v]
-                               if nnode._menu_selected then
-                                       selected_node = nnode
-                                       selected_name = v
-                               end
-
-                               if level > 2 then
-                                       write('<li class="tabmenu-item-%s %s"><a href="%s">%s</a></li>' %{
-                                               v, (nnode._menu_selected or (node.leaf and v == leaf)) and 'active' or '',
-                                               nodeurl(prefix, v, nnode.query),
-                                               striptags(translate(nnode.title))
-                                       })
-                               end
-                       end
-
-                       if level > 2 then
-                               write('</ul>')
-                       end
-
-                       if selected_node then
-                               render_tabmenu(prefix .. "/" .. selected_name, selected_node, level + 1)
-                       end
-               end
-       end
-
-       local function render_submenu(prefix, node)
-               local childs = disp.node_childs(node)
-               if #childs > 0 then
-                       write('<ul class="slide-menu">')
-
-                       for i, r in ipairs(childs) do
-                               local nnode = node.nodes[r]
-                               local title = striptags(translate(nnode.title))
-
-                               write('<li><a data-title="%s" href="%s">%s</a></li>' %{
-                                       title,
-                                       nodeurl(prefix, r, nnode.query),
-                                       title
-                               })
-                       end
-
-                       write('</ul>')
-               end
-       end
-
-       local function render_topmenu()
-               local childs = disp.node_childs(cattree)
-               if #childs > 0 then
-                       write('<ul class="nav">')
-
-                       for i, r in ipairs(childs) do
-                               local nnode = cattree.nodes[r]
-                               local grandchildren = disp.node_childs(nnode)
-
-                               if #grandchildren > 0 then
-                                       local title = striptags(translate(nnode.title))
-
-                                       write('<li class="slide"><a class="menu" data-title="%s" href="#">%s</a>' %{
-                                               title,
-                                               title
-                                       })
-
-                                       render_submenu(category .. "/" .. r, nnode)
-                                       write('</li>')
-                               else
-                                       local title = striptags(translate(nnode.title))
-
-                                       write('<li><a data-title="%s" href="%s">%s</a></li>' %{
-                                               title,
-                                               nodeurl(category, r, nnode.query),
-                                               title
-                                       })
-                               end
-                       end
-
-                       write('</ul>')
-               end
-       end
-
-       local function render_changes()
-               -- calculate the number of unsaved changes
-               if tree.nodes[category] and tree.nodes[category].ucidata then
-                       local ucichanges = 0
-                       local i, j
-                       for i, j in pairs(require("luci.model.uci").cursor():changes()) do
-                               ucichanges = ucichanges + #j
-                       end
-
-                       if ucichanges > 0 then
-                               write('<a class="uci_change_indicator label notice" href="%s?redir=%s">%s: %d</a>' %{
-                                       url(category, 'uci/changes'),
-                                       http.urlencode(http.formvalue('redir') or table.concat(disp.context.request, "/")),
-                                       translate('Unsaved Changes'),
-                                       ucichanges
-                               })
-                       end
-               end
-       end
--%>
-<!DOCTYPE html>
-<html lang="<%=luci.i18n.context.lang%>">
-<head>
-       <meta charset="utf-8">
-       <title><%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI</title>
-       <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"/>
-       <meta name="apple-mobile-web-app-capable" content="yes">
-       <meta name="mobile-web-app-capable" content="yes">
-       <meta name="theme-color" content="#09c">
-       <meta name="msapplication-tap-highlight" content="no">
-       <meta name="msapplication-TileColor" content="#09c">
-       <meta name="application-name" content="<%=striptags( (boardinfo.hostname or "?") ) %> - LuCI">
-       <meta name="apple-mobile-web-app-title" content="<%=striptags( (boardinfo.hostname or "?") ) %> - LuCI">
-       <link rel="stylesheet" href="<%=media%>/cascade.css">
-       <link rel="shortcut icon" href="<%=media%>/favicon.ico">
-       <% if node and node.css then %>
-               <link rel="stylesheet" href="<%=resource%>/<%=node.css%>">
-       <% end -%>
-       <% if css then %>
-               <style title="text/css"><%= css %></style>
-       <% end -%>
-       <script src="<%=url('admin/translations', luci.i18n.context.lang)%><%# ?v=PKG_VERSION %>"></script>
-       <script src="<%=resource%>/cbi.js"></script>
-       <script src="<%=resource%>/xhr.js"></script>
-</head>
-<body class="lang_<%=luci.i18n.context.lang%> <% if node then %><%= striptags( node.title ) %><% end %> <% if luci.dispatcher.context.authsession then %>logged-in<% end %>" data-page="<%= table.concat(disp.context.requestpath, "-") %>">
-<header>
-       <div class="fill">
-               <div class="container">
-                       <span class="showSide"></span>
-                       <a id="logo" href="<%=url("admin/status/overview")%>"><img src="<%=media%>/brand.png" alt="OpenWrt"></a>
-                       <a class="brand" href="#"><%=boardinfo.hostname or "?"%></a>
-                       <div class="status">
-                               <% render_changes() %>
-                               <span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()">
-                                       <span class="label success" id="xhr_poll_status_on"><span class="mobile-hide"><%:Auto Refresh%></span> <%:on%></span>
-                                       <span class="label" id="xhr_poll_status_off" style="display:none"><span class="mobile-hide"><%:Auto Refresh%></span> <%:off%></span>
-                               </span>
-                       </div>
-               </div>
-       </div>
-</header>
-<div class="main">
-       <div style="" class="loading"><span><div class="loading-img"></div>Loading...</span></div>
-       <div class="main-left">
-               <% render_topmenu() %>
-       </div>
-       <div class="main-right">
-               <div class="darkMask"></div>
-               <div id="maincontent">
-                       <div class="container">
-                               <%- if luci.sys.process.info("uid") == 0 and luci.sys.user.getuser("root") and not luci.sys.user.getpasswd("root") then -%>
-                                       <div class="alert-message warning">
-                                               <h4><%:No password set!%></h4>
-                                               <p><%:There is no password set on this router. Please configure a root password to protect the web interface and enable SSH.%></p>
-                                               <% if disp.lookup("admin/system/admin") then %>
-                                                       <div class="right"><a class="btn" href="<%=url("admin/system/admin")%>"><%:Go to password configuration...%></a></div>
-                                               <% end %>
-                                       </div>
-                               <%- end -%>
-
-                               <noscript>
-                                       <div class="alert-message warning">
-                                               <h4><%:JavaScript required!%></h4>
-                                               <p><%:You must enable JavaScript in your browser or LuCI will not work properly.%></p>
-                                       </div>
-                               </noscript>
-
-                               <% if category then render_tabmenu(category, cattree) end %>
diff --git a/package/luci/themes/luci-theme-material/root/etc/uci-defaults/30_luci-theme-material b/package/luci/themes/luci-theme-material/root/etc/uci-defaults/30_luci-theme-material
deleted file mode 100755 (executable)
index b013378..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-uci batch <<-EOF
-       set luci.themes.Material=/luci-static/material
-       set luci.main.mediaurlbase=/luci-static/material
-       commit luci
-EOF
-exit 0
diff --git a/package/luci/themes/luci-theme-openwrt/Makefile b/package/luci/themes/luci-theme-openwrt/Makefile
deleted file mode 100644 (file)
index b873d80..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI OpenWrt.org theme
-LUCI_DEPENDS:=
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/cascade.css b/package/luci/themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/cascade.css
deleted file mode 100644 (file)
index cbe0e11..0000000
+++ /dev/null
@@ -1,2035 +0,0 @@
-@charset "utf-8";
-
-.lang_he {
-       direction: RTL;
-       unicode-bidi: embed;
-}
-
-@media all {
-
-html {
-       min-height: 100%;
-       height: auto;
-       position:relative;
-}
-
-body {
-       color: #ffffff;
-       background-color: #4a6b7c;
-       background-position: bottom center;
-       background-repeat: repeat-x;
-       font-family: Arial, Verdana, sans-serif;
-       font-size: 13px;
-       padding-bottom: 1.5em;
-}
-
-* {
-       margin: 0;
-       padding: 0;
-       box-sizing: border-box;
-}
-
-.table { display: table; width: 100%; position: relative; border-collapse: collapse; }
-.tr { display: table-row; }
-.thead { display: table-header-group; }
-.tbody { display: table-row-group; }
-.tfoot { display: table-footer-group; }
-.td, .th { display: table-cell; vertical-align: middle; }
-.th { font-weight: bold; }
-
-.table[width="33%"], .th[width="33%"], .td[width="33%"] { width: 33%; }
-.table[width="100%"], .th[width="100%"], .td[width="100%"] { width: 100%; }
-
-.col-1 { flex: 1 1 30px !important; -webkit-flex: 1 1 30px !important; }
-.col-2 { flex: 2 2 60px !important; -webkit-flex: 2 2 60px !important; }
-.col-3 { flex: 3 3 90px !important; -webkit-flex: 3 3 90px !important; }
-.col-4 { flex: 4 4 120px !important; -webkit-flex: 4 4 120px !important; }
-.col-5 { flex: 5 5 150px !important; -webkit-flex: 5 5 150px !important; }
-.col-6 { flex: 6 6 180px !important; -webkit-flex: 6 6 180px !important; }
-.col-7 { flex: 7 7 210px !important; -webkit-flex: 7 7 210px !important; }
-.col-8 { flex: 8 8 240px !important; -webkit-flex: 8 8 240px !important; }
-.col-9 { flex: 9 9 270px !important; -webkit-flex: 9 9 270px !important; }
-.col-10 { flex: 10 10 300px !important; -webkit-flex: 10 10 300px !important; }
-
-.tr.placeholder {
-       height: 3.5em;
-}
-
-.tr.placeholder > .td {
-       position: absolute;
-       left: 0;
-       right: 0;
-       bottom: 0;
-       text-align: center;
-       line-height: 3em;
-}
-
-.nowrap {
-       white-space: nowrap;
-}
-
-a img {
-       border: none;
-       text-decoration: none;
-}
-
-#maincontainer {
-       display: flex;
-}
-
-#maincontent {
-       flex-basis: 100%;
-}
-
-#mainmenu {
-       max-width: 200px;
-       background: #f5f5f5;
-       border: 1px solid #444;
-       border-width: 0 0 1px 1px;
-       font-size: 15px;
-       padding-bottom: 1em;
-}
-
-#mainmenu ul {
-       display: block;
-       margin: 0;
-       padding: 0;
-}
-
-#mainmenu ul li {
-       display: block;
-       white-space: nowrap;
-}
-
-#mainmenu ul li > a {
-       display: block;
-       color: #444;
-       padding: .4em .5em;
-       text-decoration: none;
-}
-
-#mainmenu ul li.selected > a {
-       background: #fff;
-       color: #37c;
-       border: 1px dotted #444;
-       border-width: 1px 0;
-}
-
-#mainmenu ul li.selected:first-child > a {
-       border-top: none;
-}
-
-#mainmenu ul li li > a {
-       font-size: 85%;
-       padding-left: 1.5em;
-}
-
-#mainmenu ul li > ul {
-       flex-basis: 100%;
-       max-height: 0;
-       visibility: hidden;
-       transition: max-height .15s;
-}
-
-#mainmenu ul:not(.active) li.selected > ul,
-#mainmenu ul li.active > ul {
-       max-height: 1000px;
-       visibility: visible;
-       transition: max-height .25s;
-}
-
-#mainmenu ul li.mainmenu-item-logout {
-       margin-top: 15%;
-}
-
-#tabmenu {
-       padding: 0;
-       margin: -.5em -.5em .5em -.5em;
-       background: #bbb;
-}
-
-#tabmenu ul {
-       border-color: #444;
-       padding-top: .5em;
-       flex-wrap: wrap;
-       background: repeating-linear-gradient(#f5f5f5, #bbb 2.4em, #f5f5f5 2.4em, #bbb);
-       line-height: 1em;
-}
-
-#tabmenu ul li {
-       border-color: #444;
-}
-
-#tabmenu ul li.cbi-tab {
-       background: #f5f5f5;
-}
-
-abbr,
-acronym {
-       font-style: normal;
-       font-variant: normal;
-}
-
-abbr[title],
-acronym[title] {
-       border-bottom: 1px dotted;
-       cursor: help;
-}
-
-a:link abbr[title],
-a:visited abbr[title],
-a:link acronym[title],
-a:visited acronym[title] {
-       cursor: pointer;
-}
-
-code {
-       font-family: monospace;
-       white-space: pre;
-}
-
-hr {
-       margin: .5em 0;
-       padding: 0;
-       border: 1px solid #444;
-       border-width: 0 0 1px 0;
-}
-
-#maincontent ul {
-       margin-left: 2em;
-}
-
-#modal_overlay {
-       position: fixed;
-       top: 0;
-       bottom: 0;
-       left: -10000px;
-       right: 10000px;
-       background: rgba(0, 0, 0, 0.7);
-       z-index: 900;
-       overflow-y: scroll;
-       -webkit-overflow-scrolling: touch;
-       transition: opacity .125s ease-in;
-       opacity: 0;
-       visibility: hidden;
-}
-
-.modal {
-       width: 90%;
-       margin: 5em auto !important;
-       display: flex;
-       flex-wrap: wrap;
-       min-height: 32px;
-       max-width: 600px;
-       align-items: center;
-       border-radius: 3px;
-       background: #f5f5f5;
-       border: 1px solid #000;
-       padding: .5em .5em .25em .5em !important;
-       max-height: 2400px;
-       min-width: 270px;
-       color: #444;
-}
-
-.modal > * {
-       flex-basis: 100%;
-       line-height: normal;
-       margin-bottom: .5em;
-}
-
-.modal > pre,
-.modal > textarea {
-       white-space: pre-wrap;
-       overflow: auto;
-}
-
-body.modal-overlay-active {
-       overflow: hidden;
-}
-
-body.modal-overlay-active #modal_overlay {
-       left: 0;
-       right: 0;
-       opacity: 1;
-       visibility: visible;
-}
-
-.warning {
-       color: red;
-       background-color: white;
-       font-weight: bold;
-}
-
-.clear {
-       clear: both;
-}
-
-.skiplink,
-.navigation,
-.hidden {
-       position: absolute;
-       left: -1000px;
-       top: -1000px;
-       width: 0px;
-       height: 0px;
-       overflow: hidden;
-       display: inline;
-}
-
-.error {
-       color: #ff0000;
-       background-color: white;
-}
-
-.alert-message {
-       font-weight: normal;
-       padding: .5em;
-       border-radius: 3px;
-       border: 1px solid #a22;
-       margin: 0 0 .5em 0;
-}
-
-.label {
-       padding: 1px 2px;
-       font-size: 10px;
-       color: #fff;
-       text-transform: uppercase;
-       white-space: nowrap;
-       background-color: #aaa;
-       border-radius: 3px;
-}
-
-.alert-message, .cbi-tooltip.error, .label.error {
-       border-color: #a22;
-       background: #fee;
-       color: #a22;
-}
-
-.alert-message.notice, .cbi-tooltip.notice, .label.notice {
-       border-color: #15a;
-       background: #e6f6ff;
-       color: #15a;
-}
-
-.alert-message.warning, .cbi-tooltip.warning, .label.warning {
-       border-color: #ed5;
-       background: #fe9;
-       color: #650;
-}
-
-div.hostinfo {
-       float: left;
-       margin: 0;
-       padding: 0;
-       width: auto;
-       padding: 0.5em;
-}
-
-.lang_he div.hostinfo {
-       float: right;
-}
-
-#xhr_poll_status {
-       cursor: pointer;
-}
-
-#xhr_poll_status #xhr_poll_status_off {
-       font-weight: bold;
-       color: #FF0000;
-}
-
-#xhr_poll_status #xhr_poll_status_on {
-       font-weight: bold;
-       color: #00FF00;
-}
-
-#menubar {
-       position: relative;
-       width: 100%;
-       background: #000000;
-       color: #ffffff;
-}
-
-#menubar .warning {
-       color: red;
-       background-color: #557788;
-}
-
-html #menubar a:link,
-html #menubar a:visited {
-       position: relative;
-       display: block;
-       padding: 0.5em;
-       background: #000000;
-       color: #ffffff;
-       text-decoration: none;
-}
-
-
-html #menubar a:link:hover,
-html #menubar a:visited:hover,
-html #menubar a:link:active,
-html #menubar a:visited:active,
-#menubar a:link:focus,
-#menubar a:visited:focus {
-       background: #000000;
-       color: #ffff00;
-       font-weight: bold;
-}
-
-html #menubar a:link.active,
-html #menubar a:visited.active,
-html #menubar a:link.preactive,
-html #menubar a:visited.preactive {
-       background: #000000;
-       color: #ffff00;
-       font-weight: bold;
-}
-
-html #menubar a:link.warning,
-html #menubar a:visited.warning {
-       background: #000000;
-       color: red;
-       font-weight: bold;
-}
-
-#modemenu {
-       width: auto;
-       background: #000000;
-       color: #ffffff;
-       list-style: none;
-       margin-right: 1px;
-       margin-left: 2em;
-       float: right;
-}
-
-#modemenu li {
-       float: right;
-       list-style: none;
-}
-
-#savemenu {
-       float: right;
-}
-
-.lang_he #savemenu {
-       float: left;
-}
-
-.lang_de #submenu_admin_uci {
-       width: 12em;
-}
-
-.lang_ru #submenu_admin_uci {
-       width: 11.5em;
-}
-
-textarea#syslog {
-       width: 98%;
-       min-height: 500px;
-       border: 3px solid #cccccc;
-       padding: 5px;
-       font-family: monospace;
-}
-
-#maincontainer {
-       clear: both;
-       width: 96%;
-       margin: 0 auto;
-       height:100%;
-}
-
-#maincontent {
-       padding: 0.5em;
-       background: #f5f5f5;
-       color: #000000;
-       border-width: 0 1px 1px 1px;
-       border-style: solid;
-       border-color: #444444;
-}
-
-#applyreboot-section {
-       margin: 2rem;
-       line-height: 300%;
-}
-
-.lang_he #maincontent {
-       direction: rtl;
-}
-
-h2, h3, h4, h5, legend {
-       font-size: 150%;
-       font-family: Trebuchet MS, Verdana, sans-serif;
-       font-weight: bold;
-       margin: .25em 0 .5em 0;
-       border-bottom: 1px solid;
-       padding-bottom: 4px;
-       display: block;
-       width: 100%;
-}
-
-h3, legend {
-       font-size: 125%;
-}
-
-h4 {
-       font-size: 112%;
-}
-
-h5 {
-       font-size: 105%;
-}
-
-fieldset { border: none; }
-fieldset > legend { float: left; }
-fieldset > legend + * { clear: both; }
-
-p {
-       margin-bottom: .5em;
-}
-
-.cbi-section {
-       margin: 0 0 .5em 0;
-}
-
-.cbi-section > h3,
-.cbi-section > legend {
-       margin-top: .5em;
-}
-
-.cbi-section-descr {
-       margin-bottom: 0.5em;
-       font-size: 95%;
-}
-
-.cbi-section-descr:empty {
-       display: none;
-}
-
-.cbi-title-ref {
-       color: #37c;
-}
-
-.cbi-title-ref::after {
-       content: "➙";
-}
-
-ul.cbi-apply {
-       font-size: 90%;
-}
-
-input:-webkit-input-placeholder {
-       color: #AAAAAA;
-}
-
-input:-moz-placeholder {
-       color: #AAAAAA;
-}
-
-input:-ms-input-placeholder {
-       color: #AAAAAA;
-}
-
-input[type=submit],
-input[type=reset],
-input[type=image],
-input[type=button] {
-       cursor: pointer;
-}
-
-select,
-input,
-textarea {
-       background: #eeeeee;
-       color: #000000;
-       border-width: 1px;
-       border-color: #000000;
-}
-
-input[type=image] {
-       border: none;
-}
-
-input:focus,
-input:not(.btn):not(.cbi-button):hover,
-select:focus,
-select:hover {
-       background-color: #ffffff;
-       color: #000000;
-}
-
-input[type=text],
-input[type=password] {
-       padding: .25em;
-}
-
-select,
-input[type=text],
-input[type=password],
-.cbi-dropdown {
-       width: 20em;
-       height: 22px;
-       font-family: inherit;
-       font-size: inherit;
-}
-
-select[multiple] {
-       height: auto;
-}
-
-input[type=radio],
-input[type=checkbox],
-[data-dynlist] > input + img,
-input.cbi-input-password + img {
-       vertical-align: middle;
-}
-
-label > input[type="checkbox"],
-label > input[type="radio"] {
-       vertical-align: bottom;
-       margin: 0;
-}
-
-.td select,
-.td .cbi-dropdown,
-.td input[type=text],
-.cbi-dynlist > .add-item > .cbi-dropdown {
-       width: 100%;
-}
-
-.td input.cbi-input-password {
-       width: calc(100% - 20px);
-}
-
-img.cbi-image-button {
-       cursor: pointer;
-       margin: 0 2px;
-       vertical-align: middle;
-}
-
-.btn, .cbi-button, .item::after {
-       padding: 0 .5em;
-       border-radius: 3px;
-       border: 1px solid #aaa;
-       text-decoration: none;
-       color: #000;
-       display: inline-block;
-       font-size: inherit;
-       -webkit-appearance: none;
-       background: #fff;
-       text-align: center;
-       font-weight: bold;
-       line-height: 12px;
-       height: 22px;
-       line-height: 20px;
-       box-sizing: border-box;
-       cursor: pointer;
-}
-
-.btn:hover, .cbi-button:hover, .item:hover::after {
-       box-shadow: 0 0 3px #37c;
-}
-
-.btn[disabled],
-.btn[disabled]:hover,
-.cbi-button[disabled],
-.cbi-button[disabled]:hover {
-       opacity: .6;
-       cursor: default;
-       pointer-events: none;
-}
-
-.cbi-button-positive,
-.cbi-button-fieldadd,
-.cbi-button-add,
-.cbi-button-save {
-       border-color: #595;
-       color: #595;
-}
-
-.cbi-button-neutral,
-.cbi-button-reset,
-.cbi-button-download,
-.cbi-button-find,
-.cbi-button-link,
-.cbi-button-up,
-.cbi-button-down {
-       border-color: #444;
-       color: #444;
-}
-
-.cbi-button-action,
-.cbi-button-apply,
-.cbi-button-reload,
-.cbi-button-edit {
-       border-color: #37c;
-       color: #37c;
-}
-
-.cbi-button-negative,
-.cbi-section-remove .cbi-button,
-.cbi-button-remove {
-       border-color: #a22;
-       color: #a22;
-}
-
-.cbi-button-action.important,
-.cbi-page-actions .cbi-button-apply,
-.cbi-section-actions .cbi-button-edit {
-       color: #fff;
-       background: #37c;
-}
-
-.cbi-button-positive.important,
-.cbi-page-actions .cbi-button-save {
-       color: #fff;
-       background: #595;
-}
-
-.cbi-button-negative.important {
-       color: #fff;
-       background: #a22;
-}
-
-.cbi-page-actions .cbi-button-apply + .cbi-button-save {
-       background: #fff;
-       color: #595;
-}
-
-.cbi-input-invalid:not([open]) {
-       color: #FF0000 !important;
-       border-color: #FF0000;
-}
-
-table td, table th {
-       color: #000000;
-}
-
-.table .td, .table .th {
-       color: #000000;
-       padding: .25em;
-}
-
-.table.smalltext {
-       background: #f5f5f5;
-       color: #000000;
-       border-top: 1px solid #666666;
-       border-right: 1px solid #666666;
-       border-bottom: 1px solid #666666;
-       font-size: 90%;
-       width: 80%;
-       margin-left: auto;
-       margin-right: auto;
-       border-collapse: collapse;
-}
-
-.table.smalltext .tr:hover .td {
-       background-color: #bbddee;
-       color: #000000;
-}
-
-.table.smalltext .tr .th {
-       padding: 0 0.25em;
-       border-left: 1px solid #666666;
-       text-align: left;
-}
-
-.table.smalltext .tr .td {
-       padding: 0 0.25em;
-       border-top: 1px solid #666666;
-       border-left: 1px solid #666666;
-}
-
-.cbi-rowstyle-1 {
-       background-color: #eeeeff;
-       color: #000000;
-}
-
-.cbi-rowstyle-2 {
-       color: #000000;
-}
-
-.cbi-value {
-       clear: left;
-       vertical-align: middle;
-       padding: 0.25em 0.6em;
-       border-bottom: 1px dotted #bbbbbb;
-}
-
-.cbi-value:hover {
-       background: #f8f8f8;
-       color: #000000;
-}
-
-.cbi-value-title {
-       float: left;
-       width: 40%;
-       line-height: 1.8em;
-}
-
-.cbi-value-field {
-       width: 58%;
-       margin-left: 40%;
-       padding: 0.25em 0;
-}
-
-.td.cbi-value-field {
-       width: auto;
-       margin-left: 0;
-       align-self: center;
-       vertical-align: middle;
-}
-
-.cbi-value-description {
-       background-image: url(/luci-static/resources/cbi/help.gif);
-       background-position: .25em .25em;
-       background-repeat: no-repeat;
-       margin: .25em 0 0 0;
-       padding: .25em .25em .25em 1.75em;
-}
-
-.cbi-section-create {
-       padding: 0 0 .25em 0;
-       margin: -3px;
-       display: inline-flex;
-       align-items: center;
-}
-
-.cbi-section-create > * {
-       margin: 3px;
-       flex: 1 1 auto;
-}
-
-.cbi-section-create > * > input {
-       width: 100%;
-}
-
-.cbi-section-remove > .cbi-button {
-       margin-bottom: -1px;
-       border-radius: 3px 3px 0 0;
-}
-
-.cbi-section-node + .cbi-section-create {
-       padding-top: 0;
-}
-
-div.cbi-map-descr {
-       margin-bottom: 1em;
-}
-
-div.cbi-optionals {
-       padding: 0.25em;
-       border-bottom: 1px dotted #bbbbbb;
-}
-
-.cbi-section-node {
-       clear: both;
-       padding-bottom: 0;
-       position: relative;
-       border: 1px dotted #555;
-       background: #fff;
-       margin-bottom: .5em;
-}
-
-.cbi-section-node-tabbed {
-       border-top: none;
-       margin-top: -.5em;
-}
-
-.cbi-section-node .cbi-value:last-child,
-.cbi-section-node .cbi-optionals:last-child {
-       border-bottom: none;
-}
-
-.table.cbi-section-table {
-       width: 100%;
-       font-size: 95%;
-       border: 1px dotted #444;
-       background: #fff;
-       margin: 0 0 .5em 0;
-}
-
-.cbi-section-node > .table.cbi-section-table {
-       border: none;
-       margin: 0;
-}
-
-.tr.cbi-section-table-descr .th {
-       font-weight: normal;
-       font-size: 90%;
-       vertical-align: top;
-}
-
-.td.cbi-section-table-optionals {
-       text-align: left !important;
-       padding-top: 1em;
-}
-
-.th.cbi-section-actions,
-.td.cbi-section-actions {
-       align-self: center;
-       vertical-align: middle;
-}
-
-.th.cbi-section-actions > *,
-.td.cbi-section-actions > * {
-       display: flex;
-       justify-content: flex-end;
-       flex-direction: row;
-       flex: 1 1 150px;
-       margin: auto -1px auto auto;
-}
-
-.td.cbi-section-actions > * > *,
-.td.cbi-section-actions > * > form > * {
-       flex: 1 1 4em;
-       margin: 0 1px;
-}
-
-.td.cbi-section-actions > * > form {
-       display: flex;
-       margin: 0;
-}
-
-.cbi-page-actions {
-       display: flex;
-       justify-content: flex-end;
-       margin: -3px;
-}
-
-.cbi-page-actions > form {
-       display: flex;
-}
-
-.cbi-page-actions > * {
-       flex: 0 1 auto;
-       margin: 3px;
-}
-
-.cbi-page-actions > form > * {
-       flex: 1;
-       margin: 0 3px 0 0;
-}
-
-.cbi-page-actions > .cbi-button-save,
-.cbi-page-actions > .cbi-button-apply,
-.cbi-page-actions > form[method="post"] {
-       margin-left: auto;
-}
-
-*::-ms-backdrop,
-.cbi-page-actions > .cbi-button-save,
-.cbi-page-actions > .cbi-button-apply,
-.cbi-page-actions > form[method="post"] {
-       margin-left: 50%;
-}
-
-.cbi-page-actions > .cbi-button-apply + .cbi-button-save,
-.cbi-page-actions > .cbi-button-save + form[method="post"],
-.cbi-page-actions > form[method="post"] + form[method="post"] {
-       margin-left: 3px;
-}
-
-.th[data-type="button"], .td[data-type="button"],
-.th[data-type="fvalue"], .td[data-type="fvalue"] {
-       flex: 1 1 2em;
-       text-align: center;
-}
-
-#cbi-network-switch_vlan .th,
-#cbi-network-switch_vlan .td {
-       flex-basis: 12%;
-}
-
-.td[data-title]::before {
-       content: attr(data-title) ":\20";
-       font-weight: bold;
-       text-align: left;
-       display: none;
-       padding: 1px 0;
-       white-space: nowrap;
-}
-
-.td[data-description]::after {
-       content: attr(data-description);
-       font-size: 90%;
-       text-align: left;
-       display: none;
-       background: url(/luci-static/resources/cbi/help.gif) left top no-repeat;
-       padding: .125em 0 .125em 18px;
-       margin: .125em 0;
-}
-
-.tr.placeholder .td[data-title]::before,
-.tr.placeholder .td[data-description]::after {
-       display: none;
-}
-
-.tr[data-title]::before,
-.tr.cbi-section-table-titles.named::before {
-       content: attr(data-title) "\20";
-       font-weight: bold;
-       text-align: left;
-       display: table-cell;
-       align-self: center;
-       flex: 1 1 5%;
-       padding: .25em;
-       white-space: normal;
-       word-wrap: break-word;
-       vertical-align: middle;
-}
-
-.cbi-value-helpicon img {
-       vertical-align: bottom;
-}
-
-.td.cbi-value-error {
-       border-color: red;
-}
-
-.cbi-value-error input,
-.cbi-value-error select {
-       color: red;
-       background-color: #ffcccc;
-}
-
-.cbi-section-error {
-       color: red;
-       background-color: white;
-       font-size: 95%;
-       border: 1px dotted red;
-       margin: 3px;
-       padding: 3px;
-}
-
-.cbi-value-field var {
-       color: #2222FF;
-}
-
-ul.cbi-tabmenu {
-       list-style-type: none;
-       display: flex;
-       margin: 0 0 .5em 0 !important;
-       padding: 0 0 0 5px;
-       border-bottom: 1px solid #bbb;
-}
-
-ul.cbi-tabmenu li {
-       display: inline-flex;
-       margin: 0 5px -1px 0;
-       flex: 0 1 auto;
-       border: 1px solid #bbb;
-       border-bottom: none;
-       border-radius: 3px 3px 0 0;
-       background: linear-gradient(#ddd 90%, #aaa 100%);
-       color: #888;
-       overflow: hidden;
-       text-overflow: ellipsis;
-       word-wrap: break-word;
-}
-
-ul.cbi-tabmenu li a,
-ul.cbi-tabmenu li a:hover {
-       text-decoration: none;
-       color: inherit;
-       padding: 5px;
-       flex: 1 1 auto;
-       width: 100%;
-       height: 100%;
-       outline: none;
-}
-
-ul.cbi-tabmenu li.cbi-tab {
-       color: #000;
-       background: #f5f5f5;
-}
-
-ul.cbi-tabmenu li.cbi-tab-disabled[data-errors]::after {
-       content: attr(data-errors);
-       background: #c43c35;
-       color: #fff;
-       min-width: 12px;
-       line-height: 14px;
-       border-radius: 8px;
-       text-align: center;
-       margin: 4px 5px 4px 0;
-       padding: 1px 2px;
-       word-wrap: normal;
-       flex: 1 0 auto;
-}
-
-.cbi-section ul.cbi-tabmenu li.cbi-tab {
-       background: #fff;
-}
-
-.cbi-tab-descr {
-       background-image: url(/luci-static/resources/cbi/help.gif);
-       background-position: .25em 50%;
-       background-repeat: no-repeat;
-       border-bottom: 1px solid #ccc;
-       margin: 0 .25em .25em .25em;
-       padding: .5em .5em .5em 2em;
-}
-
-[data-tab-title] {
-       height: 0;
-       opacity: 0;
-       overflow: hidden;
-}
-
-[data-tab-active="true"] {
-       opacity: 1;
-       height: auto;
-       overflow: visible;
-       transition: opacity .25s ease-in;
-}
-
-
-.cbi-dropdown {
-       border: 1px inset #000;
-       display: inline-flex;
-       cursor: pointer;
-       background: #eee;
-       position: relative;
-       padding: 0;
-       color: #000;
-       min-width: 20em;
-       max-width: 100%;
-}
-
-.cbi-dropdown:hover {
-       background: #fff;
-}
-
-.cbi-dropdown:focus,
-.cbi-dynlist > .item:focus {
-       outline: 2px solid #4b6e9b;
-}
-
-.cbi-dropdown > ul {
-       margin: 0 !important;
-       padding: 0;
-       list-style: none;
-       overflow-x: hidden;
-       overflow-y: auto;
-       display: flex;
-       width: 100%;
-}
-
-.cbi-dropdown > ul.preview {
-       display: none;
-}
-
-.cbi-dropdown > .open {
-       border: 2px outset #eee;
-       flex-basis: 15px;
-}
-
-.cbi-dropdown > .open,
-.cbi-dropdown > .more {
-       flex-grow: 0;
-       flex-shrink: 0;
-       display: flex;
-       flex-direction: column;
-       justify-content: center;
-       text-align: center;
-       padding: 0 .25em;
-}
-
-.cbi-dropdown > .more,
-.cbi-dropdown > ul > li[placeholder] {
-       color: #777;
-       font-weight: bold;
-       text-shadow: 1px 1px 0px #fff;
-       display: none;
-       min-height: 22px;
-}
-
-.cbi-dropdown > ul > li {
-       display: none;
-       padding: .25em;
-       white-space: nowrap;
-       overflow: hidden;
-       text-overflow: ellipsis;
-       flex-shrink: 1;
-       flex-grow: 1;
-       align-items: center;
-       align-self: center;
-       min-height: 22px;
-}
-
-.cbi-dropdown > ul > li .hide-open { display: initial; }
-.cbi-dropdown > ul > li .hide-close { display: none; }
-
-.cbi-dropdown > ul > li[display]:not([display="0"]) {
-       border-left: 1px solid #ccc;
-}
-
-.cbi-dropdown[empty] > ul {
-       max-width: 1px;
-}
-
-.cbi-dropdown > ul > li > form {
-       display: none;
-       margin: 0;
-       padding: 0;
-       pointer-events: none;
-}
-
-.cbi-dropdown > ul > li img {
-       vertical-align: middle;
-       margin-right: .25em;
-}
-
-.cbi-dropdown > ul > li > form > input[type="checkbox"] {
-       margin: 0;
-}
-
-.cbi-dropdown[open] {
-       position: relative;
-}
-
-.cbi-dropdown[open] > ul.dropdown {
-       display: block;
-       background: #f6f6f5;
-       border: 1px solid #918e8c;
-       box-shadow: 0 0 4px #918e8c;
-       position: absolute;
-       z-index: 1100;
-       max-width: none;
-       min-width: 100%;
-       width: auto;
-       transition: max-height .125s ease-in;
-}
-
-.cbi-dropdown > ul > li[display],
-.cbi-dropdown[open] > ul.preview,
-.cbi-dropdown[open] > ul.dropdown > li,
-.cbi-dropdown[multiple] > ul > li > label,
-.cbi-dropdown[multiple][open] > ul.dropdown > li,
-.cbi-dropdown[multiple][more] > .more,
-.cbi-dropdown[multiple][empty] > .more {
-       flex-grow: 1;
-       display: flex;
-       align-items: center;
-}
-
-.cbi-dropdown[empty] > ul > li,
-.cbi-dropdown[multiple][open] > ul.dropdown > li > form {
-       display: block;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li .hide-open { display: none; }
-.cbi-dropdown[open] > ul.dropdown > li .hide-close { display: initial; }
-
-.cbi-dropdown[open] > ul.dropdown > li {
-       border-bottom: 1px solid #ccc;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li[selected] {
-       background: #b0d0f0;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li.focus {
-       background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
-}
-
-.cbi-dropdown[open] > ul.dropdown > li:last-child {
-       margin-bottom: 0;
-       border-bottom: none;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li[unselectable] {
-       opacity: 0.7;
-}
-
-.cbi-dropdown[open] > ul.dropdown > li > input.create-item-input:first-child:last-child {
-       width: 100%;
-}
-
-.cbi-dropdown[disabled] {
-       pointer-events: none;
-       opacity: .6;
-}
-
-.cbi-dynlist {
-       height: auto;
-       min-height: 30px;
-       min-width: 210px;
-       max-width: 100%;
-       width: auto;
-       display: inline-flex;
-       flex-direction: column;
-}
-
-.cbi-dynlist > .item {
-       margin-bottom: 4px;
-       background: #eee;
-       padding: 2px 2em 2px 4px;
-       border: 1px outset #000;
-       border-radius: 3px;
-       position: relative;
-       pointer-events: none;
-       overflow: hidden;
-       text-overflow: ellipsis;
-       white-space: nowrap;
-}
-
-.cbi-dynlist > .item::after {
-       content: "×";
-       position: absolute;
-       display: inline-flex;
-       align-items: center;
-       top: -1px;
-       right: -1px;
-       bottom: -1px;
-       padding: 0 6px;
-       border: 1px outset #000;
-       background: #fff;
-       border-radius: 0 3px 3px 0;
-       font-weight: bold;
-       color: #c44;
-       pointer-events: auto;
-       height: auto;
-}
-
-.cbi-dynlist > .add-item {
-       display: flex;
-}
-
-.cbi-dynlist > .add-item > input {
-       flex: 1 1 auto;
-}
-
-input[type="text"] + .cbi-button,
-input[type="password"] + .cbi-button,
-select + .cbi-button {
-       border-radius: 0 3px 3px 0;
-       border: 1px outset #000;
-       margin: 0 0 0 -2px;
-       padding: 0 6px;
-       vertical-align: top;
-       display: inline-block;
-       height: 22px;
-       font-size: 12px;
-       line-height: 20px;
-}
-
-.cbi-tooltip-container {
-       cursor: help;
-}
-
-.cbi-tooltip {
-       position: absolute;
-       z-index: 1000;
-       left: -1000px;
-       border-radius: 3px;
-       background: #fff;
-       padding: 2px 5px;
-       white-space: pre;
-       opacity: 0;
-       transition: opacity .25s ease-out;
-       pointer-events: none;
-       box-shadow: 0 0 2px #444;
-       color: #444;
-}
-
-.cbi-tooltip-container:hover .cbi-tooltip {
-       left: auto;
-       opacity: 1;
-       transition: opacity .25s ease-in;
-       white-space: normal;
-}
-
-.cbi-progressbar {
-       background: #ddd;
-       border: 1px solid #bbb;
-       border-radius: 3px;
-       position: relative;
-       min-width: 170px;
-       height: 20px;
-       margin: 4px 0;
-       line-height: 20px;
-}
-
-.cbi-progressbar > div {
-       background: #90c0e0;
-       height: 100%;
-       transition: width .25s ease-in;
-       width: 0%;
-}
-
-.cbi-progressbar::after {
-       position: absolute;
-       bottom: 0;
-       top: 0;
-       right: 0;
-       left: 0;
-       text-align: center;
-       text-shadow: 0 0 2px #fff;
-       content: attr(title);
-       white-space: pre;
-       overflow: hidden;
-       text-overflow: ellipsis;
-}
-
-
-.zonebadge .cbi-tooltip {
-       padding: 1px;
-       background: inherit;
-       margin: -1.6em 0 0 -5px;
-}
-
-
-.zone-forwards {
-       display: flex;
-       flex-wrap: wrap;
-}
-
-.zone-forwards > * {
-       flex: 1 1 45%;
-       padding: 1px;
-}
-
-.zone-forwards > span {
-       flex-basis: 10%;
-       text-align: center;
-}
-
-.zone-forwards .zone-src,
-.zone-forwards .zone-dest {
-       display: flex;
-       flex-direction: column;
-}
-
-
-.left, .left::before, .left::after { text-align: left !important; }
-.right, .right::before, .right::after { text-align: right !important; }
-.center, .center::before, .center::after { text-align: center !important; }
-
-.top, .top::before, .top::after { vertical-align: top !important; }
-.middle, .middle::before, .middle::after { vertical-align: middle !important; }
-.bottom, .bottom::before, .bottom::after { vertical-align: bottom !important; }
-
-.td.top { align-self: flex-start; vertical-align: top; }
-.td.middle { align-self: center; vertical-align: middle; }
-.td.bottom { align-self: flex-end; vertical-align: bottom; }
-
-.luci {
-       position: absolute;
-       bottom: 0;
-       left: 1em;
-       height: 1.5em;
-       font-size: 80%;
-       margin-bottom: 0;
-}
-
-.luci a:link,
-.luci a:visited {
-       background-color: transparent;
-       color: #666666;
-       text-decoration: none;
-       font-size: 70%;
-}
-
-.inline {
-       display: inline;
-}
-
-.error500 {
-       white-space: normal;
-       border: 1px dotted #ff0000;
-       background-color: #ffffff;
-       color: #000000;
-       padding: 0.5em;
-}
-
-
-.ifacebadge, .ifacebox {
-       display: inline-flex;
-       align-content: center;
-       border: 1px solid #ccc;
-       border-radius: 3px;
-       padding: 2px;
-       background: #fff;
-}
-
-.ifacebox-head {
-       background: #eee;
-}
-
-.ifacebox-head.active {
-       background: #90c0e0;
-}
-
-.ifacebadge, .zonebadge {
-       align-items: center;
-}
-
-.ifacebadge > * {
-       align-self: center;
-}
-
-.ifacebadge > img,
-.ifacebadge > em {
-       margin-right: 5px;
-       display: inline-block;
-       height: 16px;
-}
-
-.ifacebadge-active {
-       border-color: #000000;
-       font-weight: bold;
-}
-
-.ifacebox {
-       flex-direction: column;
-       margin: 0;
-       padding: 0;
-       min-width: 100px;
-       text-align: center;
-}
-
-.ifacebox > * {
-       padding: 2px;
-}
-
-.td > .ifacebadge,
-.td > .zonebadge {
-       margin: 0;
-       vertical-align: top;
-}
-
-.network-status-table {
-       display: flex;
-       flex-wrap: wrap;
-       margin: -.25em -.25em .25em -.25em;
-}
-
-.network-status-table .ifacebox {
-       margin: .25em;
-       font-size: 90%;
-       flex-grow: 1;
-}
-
-.network-status-table .ifacebox-body {
-       display: flex;
-       flex-direction: column;
-       flex: 1 0 auto;
-       padding: .5em;
-}
-
-.network-status-table .ifacebox-body > span {
-       flex: 10 10 auto;
-}
-
-.network-status-table .ifacebox-body > div {
-       display: flex;
-       flex-wrap: wrap;
-}
-
-.ifacebadge.large,
-.network-status-table .ifacebox-body .ifacebadge {
-       flex: 1;
-       -webkit-flex: 1 1 auto;
-       padding: .5em;
-       min-width: 220px;
-       white-space: nowrap;
-}
-
-.network-status-table .ifacebox-body .ifacebadge {
-       margin: .5em 0 0 0;
-}
-
-#dsl_status_table .ifacebox-body span > strong {
-       display: inline-block;
-       min-width: 35%;
-}
-
-
-.zonebadge {
-       padding: 2px;
-       display: inline-block;
-       white-space: nowrap;
-       border-radius: 3px;
-}
-
-.zonebadge > em,
-.zonebadge > strong {
-       margin: 3px;
-}
-
-.zonebadge input {
-       width: 6em;
-       height: 1.5em;
-}
-
-.zonebadge .ifacebadge,
-.cbi-dropdown .ifacebadge {
-       margin: 1px;
-}
-
-.zonebadge .ifacebadge img,
-.zonebadge .ifacebadge em,
-.cbi-dropdown .ifacebadge img,
-.cbi-dropdown .ifacebadge em {
-       margin: 0 1px;
-}
-
-.zonebadge-empty {
-       border: 1px dashed #AAAAAA;
-       color: #AAAAAA;
-       font-style: italic;
-       font-size: smaller;
-}
-
-
-.uci-change-list {
-       font-family: monospace;
-       white-space: pre;
-}
-
-.uci-change-list del,
-.uci-change-list ins,
-.uci-change-list var,
-.uci-change-legend-label del,
-.uci-change-legend-label ins,
-.uci-change-legend-label var {
-       text-decoration: none;
-       font-style: normal;
-       border: 1px solid #ccc;
-       background: #eee;
-       padding: 2px;
-       display: block;
-       line-height: 15px;
-       margin-bottom: 1px;
-}
-
-.uci-change-list ins,
-.uci-change-legend-label ins {
-       border-color: #0f0;
-       background: #cfc;
-}
-
-.uci-change-list del,
-.uci-change-legend-label del {
-       border-color: #f00;
-       background: #fcc;
-}
-
-.uci-change-list var,
-.uci-change-legend-label var {
-       border-color: #ccc;
-       background: #eee;
-}
-
-.uci-change-list var ins,
-.uci-change-list var del {
-       display: inline-block;
-       border: none;
-       width: 100%;
-       padding: 0;
-}
-
-.uci-change-legend {
-       padding: 5px;
-}
-
-.uci-change-legend-label {
-       width: 150px;
-       float: left;
-       font-size: 80%;
-}
-
-.uci-change-legend-label>ins,
-.uci-change-legend-label>del,
-.uci-change-legend-label>var {
-       float: left;
-       margin-right: 4px;
-       width: 12px;
-       height: 12px;
-       display: block;
-       position: relative;
-}
-
-.uci-change-legend-label var ins,
-.uci-change-legend-label var del {
-       border: none;
-       position: absolute;
-       top: 1px;
-       left: 1px;
-       right: 1px;
-       bottom: 1px;
-}
-
-
-@keyframes flash {
-       0% { opacity: 1; }
-       50% { opacity: .5; }
-       100% { opacity: 1; }
-}
-
-.flash {
-       animation: flash .35s;
-}
-
-.spinning {
-       position: relative;
-       padding-left: 32px !important;
-}
-
-.spinning::before {
-       position: absolute;
-       top: 0;
-       left: 0;
-       bottom: 0;
-       width: 32px;
-       content: " ";
-       background: url(../resources/icons/loading.gif) no-repeat center;
-       background-size: 16px;
-}
-
-}
-
-@media screen and (max-width: 992px) {
-       body {
-               -webkit-text-size-adjust: 100%;
-       }
-
-       #maincontainer {
-               flex-direction: column;
-               width: 100%;
-       }
-
-       #maincontent {
-               width: 96%;
-               margin: auto;
-               flex-basis: auto;
-       }
-
-       #mainmenu {
-               border: none;
-               border-radius: 0;
-               max-width: none;
-               background: #000;
-               box-shadow: 0 0 2px #444;
-               padding: 0;
-               border-top: 1px solid #444;
-               position: relative;
-       }
-
-       #mainmenu ul > li.selected > a {
-               background: #444;
-               color: #fff;
-               border-top: none;
-       }
-
-       #mainmenu ul > li.selected:not(.active) > ul {
-               max-height: 0;
-               visibility: hidden;
-       }
-
-       #mainmenu ul > li > a {
-               flex: 1 1 auto;
-               color: #fff;
-               border: 1px solid #444;
-               border-width: 0 0 1px 1px;
-       }
-
-       #mainmenu ul.l1 {
-               display: flex;
-               flex-direction: row;
-               flex-wrap: wrap;
-               position: relative;
-               margin-left: -1px;
-               width: 100%;
-       }
-
-       #mainmenu ul.l1 > li {
-               display: inline-flex;
-               flex: 1 1 auto;
-               position: relative;
-               height: 2em;
-       }
-
-       #mainmenu ul.l1 ul.l2 {
-               position: absolute;
-               top: 2em;
-               right: 0;
-               z-index: 1000;
-               background: #000;
-               box-shadow: 0 0 2px #444;
-               min-width: 120px;
-               display: block;
-       }
-
-       #mainmenu ul.l1 ul.l2.align-left {
-               right: auto;
-               left: 0;
-       }
-
-       #mainmenu ul.l2 > li {
-               display: block;
-       }
-
-       #mainmenu ul.l2 > li > a {
-               padding: .5em;
-       }
-
-       #mainmenu ul li.mainmenu-item-logout {
-               margin-top: 0;
-               margin-left: auto;
-       }
-
-       #mainmenu ul li.mainmenu-item-logout::before {
-               content: "\0a";
-               flex: 10;
-               border: 1px solid #444;
-               border-width: 0 0 1px 1px;
-       }
-
-       .table {
-               display: flex;
-               flex-direction: column;
-               width: 100%;
-       }
-
-       .tr {
-               display: flex;
-               flex-direction: row;
-               flex-wrap: wrap;
-               align-items: flex-end;
-       }
-
-       .th, .td {
-               flex: 2 2 25%;
-               align-self: flex-start;
-               overflow: hidden;
-               text-overflow: ellipsis;
-               word-wrap: break-word;
-               display: inline-block;
-       }
-
-       .td.cbi-dropdown-open {
-               overflow: visible;
-       }
-
-       .td select {
-               word-wrap: normal;
-       }
-
-       .td[data-type="button"],
-       .td[data-type="fvalue"] {
-               flex: 1 1 12.5%;
-               text-align: left;
-       }
-
-       .td.cbi-value-field {
-               align-self: flex-start;
-       }
-
-       .td.cbi-value-field .cbi-button {
-               width: 100%;
-       }
-
-       .table.cbi-section-table {
-               border: none;
-               background: none;
-               margin: 0;
-       }
-
-       .tr.table-titles,
-       .cbi-section-table-titles,
-       .cbi-section-table-descr {
-               display: none;
-       }
-
-       .cbi-section-table-row {
-               display: flex;
-               flex-direction: row;
-               flex-wrap: wrap;
-               border: 1px dotted #444;
-               margin: 0 0 .5em 0;
-               background: #fff;
-       }
-
-       .cbi-section-table-row:hover {
-               border: 1px solid #4a6b7c;
-       }
-
-       .cbi-section-table + .cbi-section-create {
-               padding-top: 0;
-       }
-
-       .tr[data-title]::before {
-               display: block;
-               flex: 1 1 100%;
-               background: #eef;
-       }
-
-       .td[data-title]::before,
-       .td[data-description]::after {
-               display: block;
-       }
-
-       .td[data-title] ~ .td.cbi-section-actions {
-               align-self: flex-start;
-       }
-
-       .td[data-title] ~ .td.cbi-section-actions::before {
-               display: block;
-               content: "\a0";
-       }
-
-       .hide-sm,
-       .hide-xs {
-               display: none;
-       }
-
-       #dsl_status_table .ifacebox-body > span > strong {
-               min-width: 50%;
-       }
-}
-
-@media screen and (max-width: 480px) {
-       body {
-               font-size: 16px;
-       }
-
-       input, textarea, select, .cbi-button, .cbi-dropdown {
-               font-size: 16px !important;
-               line-height: 30px;
-       }
-
-       select, input[type="text"], input[type="password"] {
-               width: 100%;
-               height: 30px;
-               border-radius: 3px;
-       }
-
-       input[type="text"] + .cbi-button,
-       input[type="password"] + .cbi-button,
-       select + .cbi-button {
-               height: 30px;
-               line-height: 30px;
-               margin-left: -5px;
-               min-width: 30px;
-       }
-
-       input.cbi-input-password,
-       [data-dynlist] > .add-item > input {
-               width: calc(100% - 25px);
-       }
-
-       .label {
-               font-size: 14px;
-       }
-
-       .cbi-dynlist,
-       .cbi-dropdown {
-               min-width: 100%;
-               height: auto;
-               display: flex;
-       }
-
-       .cbi-dropdown > .more,
-       .cbi-dropdown > ul > li,
-       .cbi-dropdown > ul > li[placeholder] {
-               min-height: 30px;
-       }
-
-       .btn, .cbi-button {
-               font-size: 16px !important;
-               line-height: 30px;
-               height: 30px;
-               overflow: hidden;
-               text-overflow: ellipsis;
-       }
-
-       #maincontent {
-               padding: .25em;
-       }
-
-       #tabmenu {
-               margin: -.25em -.25em 1em -.25em;
-       }
-
-       .th, .td {
-               flex: 2 2 50%;
-       }
-
-       .td.cbi-value-field {
-               flex-basis: 100%;
-       }
-
-       .td.cbi-value-field[data-type="dvalue"] {
-               flex-basis: 50%;
-       }
-
-       .td.cbi-value-field[data-type="button"],
-       .td.cbi-value-field[data-type="fvalue"] {
-               flex-basis: 25%;
-               text-align: left;
-       }
-
-       .cbi-value-title {
-               float: none;
-               font-weight: bold;
-       }
-
-       .cbi-value-field {
-               width: 100%;
-               margin: 0;
-       }
-
-       .cbi-value-description {
-               margin-top: 5px;
-               display: block;
-       }
-
-       .cbi-section-create {
-               margin-bottom: 1em;
-       }
-
-       .cbi-page-actions {
-               flex-wrap: wrap;
-               margin: -2px;
-       }
-
-       .cbi-page-actions > .cbi-button-link {
-               flex-basis: 100%;
-               margin-right: 2px;
-       }
-
-       .cbi-page-actions > * {
-               flex: 1 1 auto;
-               margin: 2px;
-       }
-
-       ul.cbi-tabmenu {
-               padding: 0 3px;
-       }
-
-       .hide-xs {
-               display: none;
-       }
-
-       #cbi-network .td[id] > strong {
-               display: block;
-       }
-
-       #cbi-network-switch_vlan .td.cbi-section-actions {
-               flex-basis: 100%;
-       }
-
-       #dsl_status_table .ifacebox-body > span > strong {
-               display: block;
-               width: 100%;
-               margin-top: .5em;
-       }
-
-       #cbi-firewall-rule .td[data-type="fvalue"],
-       #cbi-firewall-redirect .td[data-type="fvalue"] {
-               display: none;
-       }
-}
diff --git a/package/luci/themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/tabbg.png b/package/luci/themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/tabbg.png
deleted file mode 100644 (file)
index c84c437..0000000
Binary files a/package/luci/themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/tabbg.png and /dev/null differ
diff --git a/package/luci/themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/footer.htm b/package/luci/themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/footer.htm
deleted file mode 100644 (file)
index a056dd8..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<div class="clear"></div>
-</div>
-</div>
-
-<p class="luci">
-       <% local ver = require "luci.version" -%>
-       Powered by <%= ver.luciname %> (<%= ver.luciversion %>)
-</p>
-</body>
-</html>
diff --git a/package/luci/themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm b/package/luci/themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm
deleted file mode 100644 (file)
index c5186c4..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008-2010 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%
-       local sys  = require "luci.sys"
-       local util = require "luci.util"
-       local http = require "luci.http"
-       local disp = require "luci.dispatcher"
-       local ver  = require "luci.version"
-
-       local sysinfo = util.ubus("system", "info") or { }
-       local loadinfo = sysinfo.load or { 0, 0, 0 }
-       local boardinfo = util.ubus("system", "board") or { }
-
-       local request  = disp.context.path
-       local request2 = disp.context.request
-
-       local category = request[1]
-       local cattree  = category and disp.node(category)
-
-       local leaf = request2[#request2]
-
-       local tree = disp.node()
-       local node = disp.context.dispatched
-
-       local categories = disp.node_childs(tree)
-
-       local c = tree
-       local i, r
-
-       -- tag all nodes leading to this page
-       for i, r in ipairs(request) do
-               if c.nodes and c.nodes[r] then
-                       c = c.nodes[r]
-                       c._menu_selected = true
-               end
-       end
-
-       http.prepare_content("application/xhtml+xml")
-
-       local function nodeurl(prefix, name, query)
-               local u = url(prefix, name)
-               if query then
-                       u = u .. http.build_querystring(query)
-               end
-               return pcdata(u)
-       end
-
-       local function render_menu(prefix, node, level)
-               if not level then
-                       level = 1
-               end
-
-               local childs = disp.node_childs(node)
-               if #childs > 0 then
-                       write('<ul class="mainmenu l%d">' % level)
-
-                       local i, v
-                       for i, v in ipairs(childs) do
-                               local nnode = node.nodes[v]
-
-                               write('<li class="mainmenu-item-%s %s"><a href="%s">%s</a>' %{
-                                       v, (nnode._menu_selected or (node.leaf and v == leaf)) and 'selected' or '',
-                                       nodeurl(prefix, v, nnode.query),
-                                       striptags(translate(nnode.title))
-                               })
-
-                               if level < 2 then
-                                       render_menu(prefix .. "/" .. v, nnode, level + 1)
-                               end
-
-                               write('</li>')
-                       end
-
-                       write('</ul>')
-               end
-       end
-
-       local function render_tabmenu(prefix, node, level)
-               if not level then
-                       level = 1
-               end
-
-               local childs = disp.node_childs(node)
-               if #childs > 0 then
-                       if level > 2 then
-                               if level == 3 then
-                                       write('<div id="tabmenu">')
-                               end
-                               write('<ul class="cbi-tabmenu">')
-                       end
-
-                       local selected_node
-                       local selected_name
-                       local i, v
-
-                       for i, v in ipairs(childs) do
-                               local nnode = node.nodes[v]
-                               if nnode._menu_selected then
-                                       selected_node = nnode
-                                       selected_name = v
-                               end
-
-                               if level > 2 then
-                                       write('<li class="tabmenu-item-%s %s"><a href="%s">%s</a></li>' %{
-                                               v, (nnode._menu_selected or (node.leaf and v == leaf)) and 'cbi-tab' or '',
-                                               nodeurl(prefix, v, nnode.query),
-                                               striptags(translate(nnode.title))
-                                       })
-                               end
-                       end
-
-                       if level > 2 then
-                               write('</ul>')
-                               if level == 3 then
-                                       write('</div>')
-                               end
-                       end
-
-                       if selected_node then
-                               render_tabmenu(prefix .. "/" .. selected_name, selected_node, level + 1)
-                       end
-               end
-       end
-
-       local function render_changes()
-               if tree.nodes[category] and tree.nodes[category].ucidata then
-                       local ucic = 0
-                       local i, j
-                       for i, j in pairs(require("luci.model.uci").cursor():changes()) do
-                               ucic = ucic + #j
-                       end
-
-                       if ucic > 0 then
-                               write('<div id="savemenu" class="uci_change_indicator"><a class="warning" href="%s?redir=%s">%s: %d</a></div>' %{
-                                       url(category, 'uci/changes'),
-                                       http.urlencode(http.formvalue('redir') or table.concat(disp.context.request, "/")),
-                                       translate('Unsaved Changes'),
-                                       ucic
-                               })
-                       end
-               end
-       end
--%>
-
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<%=luci.i18n.context.lang%>" lang="<%=luci.i18n.context.lang%>">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=device-width, initial-scale=1" />
-<meta http-equiv="Content-Script-Type" content="text/javascript" />
-<link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/cascade.css" />
-<% if node and node.css then %><link rel="stylesheet" type="text/css" media="screen" href="<%=resource%>/<%=node.css%>" />
-<% end -%>
-<% if css then %><style title="text/css">
-<%= css %>
-</style>
-<% end -%>
-<script type="text/javascript" src="<%=url('admin/translations', luci.i18n.context.lang)%><%# ?v=PKG_VERSION %>"></script>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
-<script type="text/javascript" src="<%=resource%>/xhr.js"></script>
-<script type="text/javascript">//<![CDATA[
-       document.addEventListener('DOMContentLoaded', function() {
-               var event = ('ontouchstart' in window) ? 'touchstart' : 'click';
-
-               document.querySelectorAll('ul.mainmenu.l1 > li > a').forEach(function(a) {
-                       a.addEventListener(event, function(ev) {
-                               var a = ev.target, ul1 = a.parentNode.parentNode, ul2 = a.nextElementSibling;
-
-                               document.querySelectorAll('ul.mainmenu.l1 > li.active').forEach(function(li) {
-                                       if (li !== a.parentNode)
-                                               li.classList.remove('active');
-                               });
-
-                               if (!ul2)
-                                       return;
-
-                               if (ul2.parentNode.offsetLeft + ul2.offsetWidth <= ul1.offsetLeft + ul1.offsetWidth)
-                                       ul2.classList.add('align-left');
-
-                               ul1.classList.add('active');
-                               a.parentNode.classList.add('active');
-                               a.blur();
-
-                               ev.preventDefault();
-                               ev.stopPropagation();
-                       });
-               });
-
-               document.addEventListener(event, function(ev) {
-                       var t = ev.target;
-
-                       while (t && t.id != 'mainmenu')
-                               t = t.parentNode;
-
-                       if (!t)
-                               document.querySelectorAll('ul.mainmenu > li.active').forEach(function(li) {
-                                       li.classList.remove('active');
-                               });
-               });
-       });
-//]]></script>
-<title><%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI</title>
-</head>
-<body class="lang_<%=luci.i18n.context.lang%>" data-page="<%= table.concat(disp.context.requestpath, "-") %>">
-
-<p class="skiplink">
-<span id="skiplink1"><a href="#navigation"><%:Skip to navigation%></a></span>
-<span id="skiplink2"><a href="#content"><%:Skip to content%></a></span>
-</p>
-
-<div id="menubar">
-<h2 class="navigation"><a id="navigation" name="navigation"><%:Navigation%></a></h2>
-
-<div class="hostinfo">
-       <%=(boardinfo.hostname or "?")%> | <%=ver.distversion%> |
-       <%:Load%>: <%="%.2f" % (loadinfo[1] / 65535.0)%> <%="%.2f" % (loadinfo[2] / 65535.0)%> <%="%.2f" % (loadinfo[3] / 65535.0)%>
-       <span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()">
-               | <%:Auto Refresh%>:
-               <span id="xhr_poll_status_on"><%:on%></span>
-               <span id="xhr_poll_status_off" style="display:none"><%:off%></span>
-       </span>
-</div>
-
-<% if #categories > 1 then %>
-       <ul id="modemenu">
-               <% for i, r in ipairs(categories) do %>
-                       <li><a<% if request[1] == r then %> class="active"<%end%> href="<%=controller%>/<%=r%>/"><%=striptags(translate(tree.nodes[r].title))%></a></li>
-               <% end %>
-       </ul>
-<% end %>
-
-<% render_changes() %>
-
-<div class="clear"></div>
-</div>
-
-<div id="maincontainer">
-       <div id="mainmenu">
-               <% if category then render_menu(category, cattree) end %>
-       </div>
-
-       <div id="maincontent">
-               <% if category then render_tabmenu(category, cattree) end %>
-
-               <noscript>
-                       <div class="alert-message warning">
-                               <h4><%:JavaScript required!%></h4>
-                               <p><%:You must enable JavaScript in your browser or LuCI will not work properly.%></p>
-                       </div>
-               </noscript>
-
-               <%- if luci.sys.process.info("uid") == 0 and luci.sys.user.getuser("root") and not luci.sys.user.getpasswd("root") and category ~= "failsafe" then -%>
-               <div class="alert-message warning">
-                       <h4><%:No password set!%></h4>
-                       <p><%:There is no password set on this router. Please configure a root password to protect the web interface and enable SSH.%></p>
-                       <% if disp.lookup("admin/system/admin") then %>
-                               <div class="right"><a class="btn" href="<%=url("admin/system/admin")%>"><%:Go to password configuration...%></a></div>
-                       <% end %>
-               </div>
-               <%- end -%>
diff --git a/package/luci/themes/luci-theme-openwrt/root/etc/uci-defaults/30_luci-theme-openwrt b/package/luci/themes/luci-theme-openwrt/root/etc/uci-defaults/30_luci-theme-openwrt
deleted file mode 100755 (executable)
index aa0ba0c..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-uci batch <<-EOF
-       set luci.themes.OpenWrt=/luci-static/openwrt.org
-       set luci.main.mediaurlbase=/luci-static/openwrt.org
-        commit luci
-EOF
diff --git a/package/luci/themes/luci-theme-rosy/Makefile b/package/luci/themes/luci-theme-rosy/Makefile
deleted file mode 100755 (executable)
index def973d..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=Rosy Theme
-LUCI_DEPENDS:=
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/cascade.css b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/cascade.css
deleted file mode 100644 (file)
index ab7cac6..0000000
+++ /dev/null
@@ -1,2753 +0,0 @@
-/**
- *  Rosy is a theme for LuCI. It is based on luci-theme-bootstrap
- *
- *  luci-theme-rosy
- *     Copyright 2018 Rosy Song <rosysong@rosinson.com>
- *     Copyright 2018 Yan Lan Shen <yanlan.shen@rosinson.com>
- *
- *   Have a bug? Please create an issue here on GitHub!
- *       https://github.com/rosywrt/luci-theme-rosy/issues
- *
- *  luci-theme-bootstrap:
- *      Copyright 2008 Steven Barth <steven@midlink.org>
- *      Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- *      Copyright 2012 David Menting <david@nut-bolt.nl>
- *
- *  Licensed to the public under the Apache License 2.0
- */
-
-@font-face {
-    font-family: 'icomoon';
-    src: url('fonts/font.eot');
-    src: url('fonts/font.eot') format('embedded-opentype'), url('fonts/font.ttf') format('truetype'), url('fonts/font.woff') format('woff'), url('fonts/font.svg') format('svg');
-    font-weight: normal;
-    font-style: normal;
-}
-
-strong {
-    font-weight: normal;
-}
-
-.table {
-    display: table;
-    position: relative;
-}
-
-.tr {
-    display: table-row;
-}
-
-.thead {
-    display: table-header-group;
-}
-
-.tbody {
-    display: table-row-group;
-}
-
-.tfoot {
-    display: table-footer-group;
-}
-
-.td,
-.th {
-    vertical-align: middle;
-    text-align: center;
-    display: table-cell;
-    padding: .8em;
-}
-
-.th {
-    font-weight: normal;
-}
-
-.tr.placeholder {
-    height: 4em;
-    background-color: #f9f9f9;
-}
-
-.tr.placeholder>.td {
-    position: absolute;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    text-align: center;
-    line-height: 3em;
-    background: #f9f9f9;
-}
-
-.table[width="33%"],
-.th[width="33%"],
-.td[width="33%"] {
-    width: 33%;
-}
-
-.table[width="100%"],
-.th[width="100%"],
-.td[width="100%"] {
-    width: 100%;
-}
-
-.col-1 {
-    flex: 1 1 30px !important;
-    -webkit-flex: 1 1 30px !important;
-}
-
-.col-2 {
-    flex: 2 2 60px !important;
-    -webkit-flex: 2 2 60px !important;
-}
-
-.col-3 {
-    flex: 3 3 90px !important;
-    -webkit-flex: 3 3 90px !important;
-}
-
-.col-4 {
-    flex: 4 4 120px !important;
-    -webkit-flex: 4 4 120px !important;
-}
-
-.col-5 {
-    flex: 5 5 150px !important;
-    -webkit-flex: 5 5 150px !important;
-}
-
-.col-6 {
-    flex: 6 6 180px !important;
-    -webkit-flex: 6 6 180px !important;
-}
-
-.col-7 {
-    flex: 7 7 210px !important;
-    -webkit-flex: 7 7 210px !important;
-}
-
-.col-8 {
-    flex: 8 8 240px !important;
-    -webkit-flex: 8 8 240px !important;
-}
-
-.col-9 {
-    flex: 9 9 270px !important;
-    -webkit-flex: 9 9 270px !important;
-}
-
-.col-10 {
-    flex: 10 10 300px !important;
-    -webkit-flex: 10 10 300px !important;
-}
-
-.cbi-button-up,
-.cbi-button-down,
-.cbi-value-helpicon,
-.main>.loading>span {
-    font-family: 'icomoon' !important;
-    speak: none;
-    font-style: normal !important;
-    font-weight: normal !important;
-    font-variant: normal !important;
-    text-transform: none !important;
-    line-height: 1;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-}
-
-* {
-    margin: 0;
-    padding: 0;
-    box-sizing: border-box;
-}
-
-.h1,
-.h2,
-.h3,
-.h4,
-.h5,
-.h6,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-    font-family: inherit;
-    font-weight: normal;
-    line-height: 1.1;
-    color: inherit;
-}
-
-html {
-    -webkit-text-size-adjust: 100%;
-    -ms-text-size-adjust: 100%;
-    position: relative;
-}
-
-body {
-    font-size: 0.8rem;
-    background-color: #EEE;
-}
-
-html,
-body {
-    margin: 0px;
-    padding: 0px;
-    height: auto;
-    min-height: 100%;
-    font-family: Microsoft Yahei, WenQuanYi Micro Hei, sans-serif, "Helvetica Neue", Helvetica, Hiragino Sans GB;
-}
-
-select {
-    padding: 0.36rem 0.8rem;
-    color: #555;
-    background-color: #fff;
-    background-image: none;
-    border: 1px solid #ccc;
-}
-
-select,
-input,
-.cbi-dropdown {
-    background-color: transparent;
-    color: rgba(0, 0, 0, .87);
-    border: none;
-    border-bottom: 2px solid rgba(0, 0, 0, .26);
-    outline: 0;
-    padding: 0;
-    box-shadow: none;
-    border-radius: 0;
-    background-image: none;
-    height: auto;
-    font-size: 0.8rem;
-}
-
-select:not([multiple="multiple"]):focus,
-input:focus {
-    border-color: #0099CC;
-}
-
-select[multiple="multiple"] {
-    height: auto;
-}
-
-code {
-    color: #0099CC;
-}
-
-abbr {
-    color: #005470;
-    text-decoration: underline;
-    cursor: help;
-}
-
-hr {
-    margin: 1rem 0;
-    border-color: #EEE;
-    opacity: 0.1;
-}
-
-footer>a {
-    color: #aaa;
-    text-decoration: none;
-}
-
-.main>.loading {
-    position: fixed;
-    width: 100%;
-    height: 100%;
-    z-index: 2000;
-    display: block;
-    background-color: #354057;
-    top: 0;
-}
-
-.main>.loading>span {
-    display: block;
-    text-align: center;
-    margin-top: 2rem;
-    color: #888;
-    font-size: 1.2rem;
-    line-height: 45px;
-}
-
-.main>.loading>span>.loading-img {
-    margin-right: 0.2rem;
-    display: inline-block;
-}
-
-.main>.loading>span>.loading-img img {
-    vertical-align: middle;
-}
-
-.pull-right {
-    float: right;
-}
-
-.pull-left {
-    float: left;
-}
-
-li {
-    list-style-type: none;
-}
-
-h1 {
-    font-size: 2rem;
-    padding-bottom: 10px;
-    border-bottom: 1px solid #eee;
-}
-
-h2 {
-    margin: 2rem 0 0 0;
-    color: #354057;
-    font-size: 1.8rem;
-    padding-bottom: 10px;
-    border-bottom: 1px solid #eee;
-}
-
-h3 {
-    margin: 2rem 0 0 0;
-    font-size: 1.4rem;
-    padding-bottom: 10px;
-}
-
-h4 {
-    margin: 2rem 0 0 0;
-    font-size: 1.2rem;
-    padding-bottom: 10px;
-}
-
-.mobile-hide {
-    display: inline-block;
-}
-
-.PC-hide {
-    width: 100%;
-    display: none;
-}
-
-.cbi-section {
-    margin: 1rem 0 0 0;
-    padding: 2rem;
-    border: 0;
-    font-weight: normal;
-    font-style: normal;
-    line-height: 1;
-    font-family: inherit;
-    min-width: inherit;
-    border-radius: 20px;
-    background-color: #FFF;
-    -webkit-overflow-scrolling: touch;
-}
-
-.cbi-section>legend {
-    display: none !important;
-}
-
-.cbi-section>h3:first-child,
-.panel-title {
-    width: 100%;
-    display: block;
-    line-height: 1;
-    color: #354057;
-    font-size: 1.4rem;
-    padding-bottom: 1rem;
-    margin: 0;
-}
-
-.table {
-    width: 100%;
-    border-radius: 20px;
-}
-
-.table>.tbody>.tr>.td,
-.table>.tbody>.tr>.th,
-.table>.tfoot>.tr>.td,
-.table>.tfoot>.tr>.th,
-.table>.thead>.tr>.td,
-.table>.thead>.tr>.th {
-    padding: .5rem;
-    border-top: 1px solid #ddd;
-    white-space: nowrap;
-}
-
-.cbi-section-table-cell {
-    white-space: nowrap;
-    align-self: flex-end;
-    flex: 1 1 auto;
-}
-
-.cbi-section-table {
-    border: none;
-}
-
-.cbi-section-table-row {
-    text-align: center;
-    margin-bottom: 1rem;
-    background: #f4f4f4;
-}
-
-.cbi-section-table-row:last-child {
-    margin-bottom: 0;
-}
-
-.cbi-section-table-row>.cbi-value-field .cbi-input-select,
-.cbi-section-table-row>.cbi-value-field .cbi-input-text,
-.cbi-section-table-row>.cbi-value-field .cbi-input-password,
-.cbi-section-table-row>.cbi-value-field .cbi-dropdown {
-    width: 100%;
-}
-
-.cbi-section-table-row>.cbi-value-field [data-dynlist]>input,
-.cbi-section-table-row>.cbi-value-field input.cbi-input-password {
-    width: calc(100% - 1.5rem);
-}
-
-.table .tr:first-child .td:first-child,
-.table .tr:first-child::before,
-.table .tr:first-child .th:first-child {
-    border-top-left-radius: 10px;
-}
-
-.table .tr:first-child .td:last-child,
-.table .tr:first-child .th:last-child {
-    border-top-right-radius: 10px;
-}
-
-.table .tr:last-child .td:first-child,
-.table .tr:last-child::before {
-    border-bottom-left-radius: 10px;
-}
-
-.table .tr:last-child .td:last-child {
-    border-bottom-right-radius: 10px;
-}
-
-.table .tr.placeholder:last-child {
-    background-color: transparent;
-}
-
-/* fix progress bar */
-.cbi-progressbar {
-    background-color: #9bc1cc;
-    border-radius: 20px;
-    overflow: hidden;
-    position: relative;
-}
-
-.cbi-progressbar div {
-    background-color: #468ea4;
-    height: 20px;
-    border-radius: 20px;
-}
-
-.cbi-progressbar::after {
-    content: attr(title);
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    text-align: center;
-    line-height: 1.2rem;
-    color: #fff;
-}
-
-/* fix multiple table */
-table table,
-.table .table {
-    border: none;
-}
-
-.cbi-value-field table,
-.cbi-value-field .table {
-    border: none;
-}
-
-td>table>tbody>tr>td,
-.td>.table>.tbody>.tr>.td {
-    border: none;
-}
-
-.cbi-value-field>table>tbody>tr>td,
-.cbi-value-field>.table>.tbody>.tr>.td {
-    border: none;
-}
-
-/* button style */
-.btn,
-.cbi-button {
-    margin: 0 .8rem .5rem 0;
-    -webkit-appearance: none;
-    color: rgba(0, 0, 0, 0.87);
-    background-color: #F0F0F0;
-    transition: all 0.2s ease-in-out;
-    display: inline-block;
-    padding: .5rem .8rem;
-    border: none;
-    border-radius: 25px;
-    cursor: pointer;
-    -ms-touch-action: manipulation;
-    touch-action: manipulation;
-    background-image: none;
-    text-align: center;
-    vertical-align: middle;
-    white-space: nowrap;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-    font-size: 0.8rem;
-    width: auto;
-    display: inline-block;
-    text-decoration: none;
-}
-
-.btn:disabled,
-.cbi-button:disabled {
-    cursor: not-allowed;
-    pointer-events: none;
-    opacity: 0.60;
-    box-shadow: none;
-}
-
-.cbi-page-actions .cbi-button-apply,
-.cbi-section-actions .cbi-button-edit,
-.cbi-button-edit.important,
-.cbi-button-apply.important,
-.cbi-button-reload.important,
-.cbi-button-apply,
-.cbi-page-actions .cbi-button-save {
-    color: #fff;
-    background-color: #337ab7;
-    border: none;
-}
-
-.cbi-button-add.important,
-.cbi-button-save.important,
-.cbi-button-positive.important,
-.cbi-button-action.important,
-.cbi-section-actions .cbi-button-edit {
-    color: #337ab7;
-    background-color: transparent;
-    border: 1px solid #337ab7;
-}
-
-.cbi-button-remove.important,
-.cbi-button-reset.important,
-.cbi-button-negative.important {
-    color: #fff;
-    background-color: #d9534f;
-    border: none;
-}
-
-.cbi-button-find,
-.cbi-button-link,
-.cbi-button-up,
-.cbi-button-down,
-.cbi-button-neutral {
-    color: #468ea4;
-    background-color: transparent;
-    border: 1px solid #468ea4;
-}
-
-.cbi-button-edit,
-.cbi-button-reload,
-.cbi-button-action {
-    color: #468ea4;
-    background-color: transparent;
-    border: 1px solid #468ea4;
-}
-
-.cbi-page-actions .cbi-button-apply+.cbi-button-save,
-.cbi-button-add,
-.cbi-button-save,
-.cbi-button-positive {
-    color: #354057;
-    background-color: transparent;
-    border: 1px solid #354057;
-}
-
-.cbi-section-remove>.cbi-button,
-.cbi-button-remove,
-.cbi-button-reset,
-.cbi-button-negative {
-    color: #F24C7C;
-    background-color: transparent;
-    border: 1px solid #F24C7C;
-}
-
-.cbi-page-actions .cbi-button-link:first-child {
-    float: left;
-}
-
-.a-to-btn {
-    text-decoration: none;
-}
-
-/* table */
-.container>.tabs,
-.container>.tabs>li[class~="active"],
-.container>.tabs>li:hover,
-.container>.cbi-tabmenu,
-.container>.cbi-tabmenu>li[class~="cbi-tab"],
-.container>.cbi-tabmenu>li:hover {
-    border-radius: 20px;
-}
-
-.container .cbi-map .cbi-tabmenu,
-.container .cbi-map .cbi-tabmenu>li[class~="cbi-tab"],
-.container .cbi-map .cbi-tabmenu>li:hover {
-    border-top-left-radius: 10px;
-    border-top-right-radius: 10px;
-}
-
-.container .cbi-map .cbi-tabmenu,
-.container>.tabs,
-.container>.cbi-tabmenu {
-    overflow: hidden;
-}
-
-.container .cbi-map .cbi-tabmenu+div {
-    border-radius: 0;
-    border-bottom-left-radius: 10px;
-    border-bottom-right-radius: 10px;
-}
-
-.tabs {
-    background-color: #FFFFFF;
-    margin-top: 1rem;
-}
-
-.cbi-tabmenu>li,
-.tabs>li {
-    margin-right: .4rem;
-    display: inline-block;
-    padding: 0.6rem 0rem;
-}
-
-.cbi-tabmenu>li>a,
-.tabs>li>a {
-    text-decoration: none;
-    color: #404040;
-    padding: 0.5rem 0.8rem;
-}
-
-.tabs>li[class~="active"],
-.tabs>li:hover {
-    cursor: pointer;
-    background-color: #337ab7;
-}
-
-.tabs>li[class~="active"]>a,
-.tabs>li:hover>a {
-    color: #fff;
-}
-
-.cbi-tabmenu {
-    border-top: 1px solid #D4D4D4;
-    border-left: 1px solid #D4D4D4;
-    border-right: 1px solid #D4D4D4;
-}
-
-.cbi-tabmenu>li:hover {
-    background-color: #F1F1F1;
-}
-
-.cbi-tabmenu>li[class~="cbi-tab"] {
-    background-color: #fff;
-}
-
-.cbi-tabmenu {
-    background-color: #D4D4D4;
-}
-
-[data-tab-title] {
-    height: 0;
-    opacity: 0;
-    overflow: hidden;
-}
-
-[data-tab-active="true"] {
-    opacity: 1;
-    height: auto;
-    overflow: visible;
-    transition: opacity .25s ease-in;
-}
-
-.cbi-section-remove:nth-of-type(2n) {
-    background-color: #f9f9f9;
-}
-
-.cbi-section-node-tabbed {
-    padding: 0;
-    margin-top: 0;
-    border-bottom: 1px solid #D4D4D4;
-    border-left: 1px solid #D4D4D4;
-    border-right: 1px solid #D4D4D4;
-}
-
-.cbi-tabcontainer>.cbi-value:nth-of-type(2n) {
-    background-color: #f9f9f9;
-}
-
-.cbi-value-field,
-.cbi-value-description {
-    display: table-cell;
-    line-height: 1.25;
-}
-
-.cbi-value-helpicon>img {
-    display: none;
-}
-
-.cbi-value-helpicon:before {
-    content: "\f059";
-}
-
-.cbi-value-description {
-    font-size: small;
-    opacity: 0.5;
-    padding: 0.5rem 0 0 0;
-}
-
-.cbi-value-title {
-    word-wrap: break-word;
-    padding: 0.6rem 2rem .6rem 0;
-    width: 23rem;
-    float: left;
-    text-align: right;
-    display: table-cell;
-}
-
-.cbi-value {
-    padding: 6px 0;
-    display: inline-block;
-    width: 100%;
-}
-
-.cbi-section-table-descr>.cbi-section-table-cell,
-.cbi-section-table-titles>.cbi-section-table-cell {
-    border: none;
-}
-
-.td[data-title]::before {
-    content: attr(data-title) ":\20";
-    font-weight: bold;
-    text-align: left;
-    display: none;
-    padding: .25rem 0;
-    white-space: nowrap;
-}
-
-.tr.placeholder .td[data-title]::before {
-    display: none;
-}
-
-.tr[data-title]::before,
-.tr.cbi-section-table-titles.named::before {
-    content: attr(data-title) "\20";
-    font-weight: bold;
-    text-align: center;
-    display: table-cell;
-    align-self: center;
-    flex: 1 1 5%;
-    padding: .25rem;
-    white-space: normal;
-    word-wrap: break-word;
-    vertical-align: middle;
-}
-
-.table .tr.cbi-rowstyle-2,
-.table .tr:nth-child(n) {
-    background-color: #eee;
-}
-
-.table .tr.cbi-rowstyle-1,
-.table .tr:nth-child(2n) {
-    background-color: #f9f9f9;
-}
-
-.table .tr.table-titles,
-.table .tr.cbi-section-table-titles {
-    background-color: #ddd;
-}
-
-.cbi-section-table .cbi-section-table-titles .cbi-section-table-cell {
-    width: auto !important;
-}
-
-.td.cbi-section-actions {
-    text-align: right;
-    vertical-align: middle;
-}
-
-.td.cbi-section-actions>* {
-    display: flex;
-}
-
-.td.cbi-section-actions>*>*,
-.td.cbi-section-actions>*>form>* {
-    flex: 1 1 4em;
-    margin: 0 1px;
-}
-
-.td.cbi-section-actions>*>form {
-    display: inline-flex;
-    margin: 0;
-}
-
-/* desc */
-
-.cbi-section-descr,
-.cbi-map-descr {
-    padding: 0.5rem;
-    color: #999;
-    font-size: small;
-}
-
-.cbi-dropdown {
-    display: inline-flex;
-    cursor: pointer;
-    position: relative;
-    padding: 0;
-    height: auto;
-}
-
-.cbi-dropdown:focus {
-    outline: 2px solid #4b6e9b;
-}
-
-.cbi-dropdown>ul {
-    margin: 0 !important;
-    padding: 0;
-    list-style: none;
-    overflow-x: hidden;
-    overflow-y: auto;
-    display: flex;
-    width: 100%;
-}
-
-.cbi-dropdown>ul.preview {
-    display: none;
-}
-
-.cbi-dropdown>.open {
-    border: 2px outset #eee;
-    flex-basis: 15px;
-    background: #eee;
-}
-
-.cbi-dropdown>.open,
-.cbi-dropdown>.more {
-    flex-grow: 0;
-    flex-shrink: 0;
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    text-align: center;
-    line-height: 2em;
-    padding: 0 .25em;
-}
-
-.cbi-dropdown>.more,
-.cbi-dropdown>ul>li[placeholder] {
-    color: #777;
-    font-weight: bold;
-    text-shadow: 1px 1px 0px #fff;
-    display: none;
-}
-
-.cbi-dropdown>ul>li {
-    display: none;
-    padding: .25em;
-    white-space: nowrap;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    flex-shrink: 1;
-    flex-grow: 1;
-    align-items: center;
-    align-self: center;
-    min-height: 20px;
-}
-
-.cbi-dropdown>ul>li .hide-open {
-    display: initial;
-}
-
-.cbi-dropdown>ul>li .hide-close {
-    display: none;
-}
-
-.cbi-dropdown>ul>li[display]:not([display="0"]) {
-    border-left: 1px solid #ccc;
-}
-
-.cbi-dropdown[empty]>ul {
-    max-width: 1px;
-}
-
-.cbi-dropdown>ul>li>form {
-    display: none;
-    margin: 0;
-    padding: 0;
-    pointer-events: none;
-}
-
-.cbi-dropdown>ul>li img {
-    vertical-align: middle;
-    margin-right: .25em;
-}
-
-.cbi-dropdown>ul>li>form>input[type="checkbox"] {
-    margin: 0;
-    height: auto;
-}
-
-.cbi-dropdown>ul>li input[type="text"] {
-    height: 20px;
-}
-
-.cbi-dropdown[open] {
-    position: relative;
-}
-
-.cbi-dropdown[open]>ul.dropdown {
-    display: block;
-    background: #f6f6f5;
-    border: 1px solid #918e8c;
-    position: absolute;
-    z-index: 1000;
-    max-width: none;
-    min-width: 100%;
-    width: auto;
-}
-
-.cbi-dropdown>ul>li[display],
-.cbi-dropdown[open]>ul.preview,
-.cbi-dropdown[open]>ul.dropdown>li,
-.cbi-dropdown[multiple]>ul>li>label,
-.cbi-dropdown[multiple][open]>ul.dropdown>li,
-.cbi-dropdown[multiple][more]>.more,
-.cbi-dropdown[multiple][empty]>.more {
-    flex-grow: 1;
-    display: flex;
-    align-items: center;
-}
-
-.cbi-dropdown[empty]>ul>li,
-.cbi-dropdown[optional][open]>ul.dropdown>li[placeholder],
-.cbi-dropdown[multiple][open]>ul.dropdown>li>form {
-    display: block;
-}
-
-.cbi-dropdown[open]>ul.dropdown>li .hide-open {
-    display: none;
-}
-
-.cbi-dropdown[open]>ul.dropdown>li .hide-close {
-    display: initial;
-}
-
-.cbi-dropdown[open]>ul.dropdown>li {
-    border-bottom: 1px solid #ccc;
-}
-
-.cbi-dropdown[open]>ul.dropdown>li[selected] {
-    background: #b0d0f0;
-}
-
-.cbi-dropdown[open]>ul.dropdown>li.focus {
-    background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
-}
-
-.cbi-dropdown[open]>ul.dropdown>li:last-child {
-    margin-bottom: 0;
-    border-bottom: none;
-}
-
-.cbi-dropdown[disabled] {
-    pointer-events: none;
-    opacity: .6;
-}
-
-.cbi-dropdown .zonebadge {
-    width: 100%;
-    border-radius: 20px;
-    background-color: #468ea4 !important;
-}
-
-.cbi-dropdown[open] .zonebadge {
-    width: auto;
-}
-
-/* luci */
-
-.hidden {
-    display: none
-}
-
-.left,
-.left::before {
-    text-align: left !important;
-}
-
-.right,
-.right::before {
-    text-align: right !important;
-}
-
-.center,
-.center::before {
-    text-align: center !important;
-}
-
-.top {
-    align-self: flex-start !important;
-    vertical-align: top !important;
-}
-
-.bottom {
-    align-self: flex-end !important;
-    vertical-align: bottom !important;
-}
-
-.inline {
-    display: inline;
-}
-
-.cbi-page-actions {
-    border-top: 1px solid #eee;
-    padding-top: 1rem;
-    text-align: right;
-}
-
-/* select */
-
-.cbi-value-field .cbi-dropdown {
-    min-width: 15rem;
-}
-
-.cbi-value-field .cbi-input-select {
-    width: 15rem;
-}
-
-.th[data-type="button"],
-.td[data-type="button"],
-.th[data-type="fvalue"],
-.td[data-type="fvalue"] {
-    flex: 1 1 2em;
-    text-align: center;
-}
-
-.ifacebadge {
-    display: inline-flex;
-    border: 1px solid #CCCCCC;
-    padding: 0.5rem 1rem;
-    background: #fff;
-    border-radius: 20px;
-}
-
-td>.ifacebadge,
-.td>.ifacebadge {
-    background-color: #F0F0F0;
-    font-size: 0.9rem;
-}
-
-.ifacebadge>em,
-.ifacebadge>img {
-    display: inline-block;
-    margin: 0 .2rem;
-    align-self: flex-start;
-}
-
-.ifacebadge>img+img {
-    margin: 0 .2rem 0 0;
-}
-
-.network-status-table {
-    display: flex;
-    flex-wrap: wrap;
-}
-
-.network-status-table .ifacebox {
-    margin: .5em .8rem;
-    flex-grow: 1;
-}
-
-.network-status-table .ifacebox-body {
-    display: flex;
-    flex-direction: column;
-    height: 100%;
-}
-
-.network-status-table .ifacebox-body>span {
-    flex: 10 10 auto;
-}
-
-.network-status-table .ifacebox-body>div {
-    display: flex;
-    flex-wrap: wrap;
-}
-
-.network-status-table .ifacebox-body .ifacebadge {
-    flex: 1 1 auto;
-    margin: .5em .25em 0 .25em;
-    padding: .5em;
-    min-width: 220px;
-    background-color: #fff;
-    align-items: center;
-}
-
-/*textarea*/
-
-.cbi-input-textarea {
-    width: 100%;
-    min-height: 14rem;
-    padding: 0.8rem;
-    font-size: 0.8rem;
-    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-    color: black;
-    resize: unset;
-    border-radius: 20px;
-}
-
-#syslog {
-    width: 100%;
-    min-height: 15rem;
-    padding: 1rem;
-    font-size: small;
-    color: #5F5F5F;
-    margin-bottom: 20px;
-    border-radius: 20px;
-    background-color: #FFF;
-    border: none;
-    resize: unset;
-}
-
-/* change */
-
-.uci-change-list {
-    font-family: monospace;
-}
-
-.uci-change-list ins,
-.uci-change-legend-label ins {
-    text-decoration: none;
-    border: 1px solid #00FF00;
-    background-color: #CCFFCC;
-    display: block;
-    padding: 2px;
-}
-
-.uci-change-list del,
-.uci-change-legend-label del {
-    text-decoration: none;
-    border: 1px solid #FF0000;
-    background-color: #FFCCCC;
-    display: block;
-    font-style: normal;
-    padding: 2px;
-}
-
-.uci-change-list var,
-.uci-change-legend-label var {
-    text-decoration: none;
-    border: 1px solid #CCCCCC;
-    background-color: #EEEEEE;
-    display: block;
-    font-style: normal;
-    padding: 2px;
-}
-
-.uci-change-list var ins,
-.uci-change-list var del {
-    border: none;
-    white-space: pre;
-    font-style: normal;
-    padding: 0px;
-}
-
-.uci-change-legend {
-    padding: 5px;
-}
-
-.uci-change-legend-label {
-    width: 150px;
-    float: left;
-}
-
-.uci-change-legend-label>ins,
-.uci-change-legend-label>del,
-.uci-change-legend-label>var {
-    float: left;
-    margin-right: 4px;
-    width: 10px;
-    height: 10px;
-    display: block;
-}
-
-.uci-change-legend-label var ins,
-.uci-change-legend-label var del {
-    line-height: 6px;
-    border: none;
-}
-
-.uci-change-list var,
-.uci-change-list del,
-.uci-change-list ins {
-    padding: 0.5rem;
-}
-
-/* other fix */
-
-#iwsvg,
-#iwsvg2,
-#bwsvg {
-    border: 1px solid #D4D4D4 !important;
-    overflow: hidden;
-    border-radius: 20px;
-}
-
-#iwsvg,
-#bwsvg {
-    margin-top: 1rem;
-}
-
-.ifacebox {
-    background-color: #f9f9f9;
-    display: inline-flex;
-    flex-direction: column;
-    line-height: 1.2em;
-    min-width: 100px;
-    border-radius: 20px;
-    overflow: hidden;
-}
-
-.ifacebox-head {
-    padding: .5em .8em;
-    background: #eee;
-}
-
-.ifacebox-head.active {
-    background: #eee;
-}
-
-.ifacebox-body {
-    padding: .5em .8em;
-}
-
-.cbi-image-button {
-    margin-left: 0.5rem;
-}
-
-.zonebadge {
-    padding: 0.2rem 0.5rem;
-    display: inline-block;
-    border-radius: 20px;
-}
-
-.zonebadge .ifacebadge {
-    padding: .2rem .3rem;
-    margin: 0.1rem 0.2rem;
-    border: none;
-}
-
-.zonebadge>input[type="text"] {
-    padding: 0.16rem 1rem;
-    min-width: 10rem;
-    margin-top: 0.3rem;
-}
-
-.zonebadge>em,
-.zonebadge>strong {
-    margin: 0 0.2rem;
-    display: inline-block;
-}
-
-.cbi-value-field .cbi-input-checkbox,
-.cbi-value-field .cbi-input-radio {
-    margin-top: 0.5rem;
-    height: 1rem;
-}
-
-.td .cbi-input-checkbox,
-.td .cbi-input-radio {
-    margin-top: 0;
-}
-
-.cbi-value-field>input+.cbi-value-description {
-    padding: 0;
-}
-
-.cbi-value-field>ul>li {
-    display: flex;
-}
-
-.cbi-value-field>ul>li>label {
-    margin-top: 0.5rem;
-}
-
-.cbi-value-field>ul>li .ifacebadge {
-    background-color: #eee;
-    margin-left: 0.4rem;
-    margin-top: -0.5rem;
-}
-
-.cbi-section-table-row>.cbi-value-field .cbi-dropdown {
-    min-width: 7rem;
-}
-
-.cbi-section-create {
-    margin: .5rem -3px;
-    display: inline-flex;
-    align-items: center;
-}
-
-.cbi-section-create>* {
-    margin: 0.5rem;
-}
-
-.cbi-section-remove {
-    padding: 0.5rem;
-}
-
-div.cbi-value var,
-td.cbi-value-field var,
-.td.cbi-value-field var {
-    font-style: italic;
-    color: #0069D6;
-}
-
-small {
-    font-size: 90%;
-    white-space: normal;
-    line-height: 1.42857143;
-}
-
-.cbi-button-up,
-.cbi-button-down {
-    display: inline-block;
-    min-width: 0;
-    padding: 0.2rem 0.3rem;
-    font-size: 1.2rem;
-}
-
-.cbi-optionals {
-    padding: 1rem 1rem 0 1rem;
-    border-top: 1px solid #CCC;
-}
-
-.cbi-dropdown-container {
-    position: relative;
-}
-
-.cbi-tooltip-container {
-    cursor: help;
-}
-
-.cbi-tooltip {
-    position: absolute;
-    z-index: 1000;
-    left: -1000px;
-    opacity: 0;
-    transition: opacity .25s ease-out;
-    pointer-events: none;
-}
-
-.cbi-tooltip-container:hover .cbi-tooltip {
-    left: auto;
-    opacity: 1;
-    transition: opacity .25s ease-in;
-    border-radius: 20px;
-}
-
-.zonebadge .cbi-tooltip {
-    padding: .25rem;
-    background: inherit;
-    margin: -1.5rem 0 0 -.5rem;
-}
-
-.zonebadge-empty {
-    background: repeating-linear-gradient(45deg, rgba(204, 204, 204, 0.5), rgba(204, 204, 204, 0.5) 5px, rgba(255, 255, 255, 0.5) 5px, rgba(255, 255, 255, 0.5) 10px);
-    color: #404040;
-}
-
-.zone-forwards {
-    display: flex;
-    min-width: 10rem;
-}
-
-.zone-forwards>* {
-    flex: 1 1 45%;
-}
-
-.zone-forwards>span {
-    flex-basis: 10%;
-    text-align: center;
-    padding: 0 .25rem;
-}
-
-.zone-forwards .zone-src,
-.zone-forwards .zone-dest {
-    display: flex;
-    flex-direction: column;
-}
-
-#diag-rc-output>pre {
-    background-color: #f5f5f5;
-    display: block;
-    padding: 8.5px;
-    margin: 0 0 18px;
-    line-height: 1.5rem;
-    -moz-border-radius: 3px;
-    white-space: pre-wrap;
-    word-wrap: break-word;
-    font-size: 1.4rem;
-    color: #404040;
-}
-
-input[name="ping"],
-input[name="traceroute"],
-input[name="nslookup"] {
-    width: 80%;
-}
-
-header>.container>.pull-right>* {
-    position: relative;
-    top: 0.45rem;
-    cursor: pointer;
-}
-
-#xhr_poll_status>.label.success {
-    background-color: #F24C7C;
-}
-
-.label {
-    padding: 0.3rem 0.8rem;
-    font-size: 0.8rem;
-    font-weight: bold;
-    color: #ffffff !important;
-    white-space: nowrap;
-    background-color: #bfbfbf;
-    -webkit-border-radius: 3px;
-    -moz-border-radius: 3px;
-    border-radius: 50px;
-    text-shadow: none;
-    text-decoration: none;
-}
-
-.notice {
-    background-color: #468EA4;
-}
-
-.showSide {
-    background: url(./menu-logo.png) no-repeat center center / 100%;
-    display: none;
-    height: 26px;
-    width: 26px;
-}
-
-.darkMask {
-    width: 100%;
-    height: 100%;
-    position: fixed;
-    background-color: rgba(0, 0, 0, 0.56);
-    content: "";
-    z-index: 99;
-    display: none;
-}
-
-/* fix status processes */
-
-.node-status-processes>.main .table .tr .td:nth-child(3) {
-    white-space: normal;
-}
-
-.node-status-iptables>.main div>.cbi-map>form {
-    margin: 2rem 2rem 0 0;
-}
-
-.node-status-iptables>.main div>.cbi-map>form input {
-    padding: .8em;
-    border-radius: 20px;
-}
-
-.node-status-processes .cbi-section {
-    overflow-x: scroll;
-}
-
-/* fix status realtime traffic and wireless */
-
-.node-status-realtime.lang_enTraffic .cbi-tabmenu,
-.node-status-realtime.lang_enWireless .cbi-tabmenu {
-    background-color: #d4d4d4;
-}
-
-.node-status-realtime.lang_enTraffic .cbi-tabmenu>li[class~="cbi-tab"],
-.node-status-realtime.lang_enTraffic .cbi-tabmenu>li:hover,
-.node-status-realtime.lang_enWireless .cbi-tabmenu>li[class~="cbi-tab"],
-.node-status-realtime.lang_enWireless .cbi-tabmenu>li:hover {
-    background-color: #F1F1F1;
-}
-
-.node-status-realtime.lang_enTraffic #bwsvg,
-.node-status-realtime.lang_enWireless #iwsvg,
-.node-system-packages .cbi-map>.cbi-section,
-.node-system-packages form .cbi-section {
-    border-top-right-radius: 0;
-    border-top-left-radius: 0;
-}
-
-/* fix system system */
-
-.node-system-system .cbi-tabmenu {
-    background-color: #d4d4d4;
-}
-
-.node-system-system .cbi-tabmenu>li[class~="cbi-tab"] {
-    background-color: #fff;
-}
-
-/* fix system reboot */
-
-.node-system-reboot>.main>.main-right p,
-.node-system-reboot>.main>.main-right h3 {
-    padding-left: 2rem;
-}
-
-/* fix Services  Network Shares*/
-.node-services-samba.lang_enNetwork #cbi-samba-sambashare .table-container {
-    overflow-x: scroll;
-}
-
-.node-services-samba>.main .cbi-tabcontainer:nth-child(3) .cbi-value-title {
-    margin-bottom: 1rem;
-    width: auto;
-}
-
-.node-services-samba>.main .cbi-tabcontainer:nth-child(3) .cbi-value-field {
-    display: list-item;
-}
-
-.node-services-samba>.main .cbi-tabcontainer:nth-child(3) .cbi-value-description {
-    padding-top: 1rem;
-}
-
-/* fix System Software*/
-
-.node-system-packages #swfreespace {
-    background-color: #468ea4 !important;
-    border: none !important;
-    border-radius: 20px
-}
-
-.node-system-packages #swfreespace>div {
-    background-color: #f24c7c !important;
-    border: none !important;
-    border-radius: 20px
-}
-
-.node-system-packages>.main table tr td:nth-child(1) {
-    width: auto !important;
-}
-
-.node-system-packages>.main table tr td:nth-last-child(1) {
-    white-space: normal;
-    font-size: small;
-    color: #404040;
-}
-
-.node-system-packages>.main .cbi-tabmenu>li>a,
-.tabs>li>a {
-    padding: 0.5rem 0.8rem;
-}
-
-.node-system-packages>.main .cbi-value>pre {
-    background-color: #eee;
-    padding: 0.5rem;
-    overflow: auto;
-}
-
-.node-system-packages .cbi-section .cbi-section-node-tabbed {
-    border: none;
-}
-
-.node-system-packages form .cbi-section {
-    margin: 0;
-}
-
-.cbi-tabmenu+.cbi-section {
-    margin-top: 0;
-}
-
-.node-status-iptables .cbi-tabmenu,
-.node-system-flashops .cbi-tabmenu {
-    border: none;
-}
-
-.node-system-flashops form.inline+form.inline {
-    margin-left: 0;
-}
-
-.lang_zh-cnBackup .cbi-tabmenu {
-    margin-bottom: 1rem;
-}
-
-#cbi-firewall-redirect table *,
-#cbi-network-switch_vlan table *,
-#cbi-firewall-zone table * {
-    font-size: small;
-}
-
-#cbi-firewall-redirect table input[type="text"],
-#cbi-network-switch_vlan table input[type="text"],
-#cbi-firewall-zone table input[type="text"] {
-    width: 5rem;
-}
-
-#cbi-firewall-redirect table select,
-#cbi-network-switch_vlan table select,
-#cbi-firewall-zone table select {
-    min-width: 3.5rem;
-}
-
-#cbi-network-switch_vlan .th,
-#cbi-network-switch_vlan .td {
-    flex-basis: 12%;
-}
-
-/* fix Network Network*/
-
-.node-network-network .cbi-rowstyle-2 .ifacebox-body {
-    background-color: #fff;
-}
-
-.lang_zh-cnInterfaces .container .cbi-map .cbi-tabmenu+div {
-    overflow: inherit;
-}
-
-/* fix Network Wireless*/
-
-.node-network-wireless .cbi-section-node {
-    margin-bottom: 1rem;
-}
-
-/* applyreboot fix */
-
-#maincontainer {
-    text-align: center;
-}
-
-#maincontainer>#maincontent {
-    padding: 1rem;
-    margin: 0 auto;
-    border-radius: 10px;
-    display: inline-block;
-    max-width: 800px;
-    width: 40%;
-}
-
-#applyreboot-container {
-    margin-bottom: 1rem;
-}
-
-#applyreboot-section {
-    text-align: left;
-    background: #fff;
-    padding: 1rem;
-    border-radius: 10px;
-}
-
-#applyreboot-section>div {
-    margin: 1rem 0;
-    line-height: 1.5rem;
-}
-
-#applyreboot-container {
-    margin: 90px 2rem 2rem 2rem;
-}
-
-#applyreboot-section {
-    margin: 2rem;
-    line-height: 300%;
-}
-
-/* Shared style */
-
-header {
-    height: 0;
-    position: fixed;
-    top: 0;
-    left: 0;
-    right: 0;
-    z-index: 100;
-    overflow: hidden;
-}
-
-header {
-    padding-right: 1rem;
-    background: #fff;
-    color: white;
-    border-bottom: 1px solid #dadada;
-}
-
-header .fill,
-header .container {
-    height: 100%;
-}
-
-header .brand {
-    padding-left: .8rem;
-    color: #354057;
-    font-size: 24px;
-    text-decoration: none;
-    display: inline-block;
-    height: 100%;
-    line-height: 70px;
-    width: 10%;
-    text-align: center;
-}
-
-header .btn-con {
-    line-height: 70px;
-}
-
-header .logout {
-    background-color: #354057;
-}
-
-header .logout a {
-    text-decoration: none;
-    color: #fff;
-}
-
-.main {
-    height: auto;
-    min-height: 100%;
-}
-
-.main-right {
-    height: auto;
-}
-
-.main-left {
-    top: 10px;
-    bottom: 10px;
-    left: 10px;
-    width: 15%;
-    background-color: #636569;
-    position: fixed;
-    z-index: 1000;
-    border-radius: 20px;
-    min-width: 170px;
-}
-
-.main>.main-left .navbar-container {
-    margin-top: 0.5rem;
-    float: right;
-    width: calc(100% + 10px);
-    height: calc(100% - 110px);
-    overflow: hidden;
-}
-
-.main>.main-left .nav {
-    height: auto;
-}
-
-.main>.main-left .nav>li a {
-    color: #fff;
-    display: block;
-}
-
-.main>.main-left .nav>li {
-    padding: 0.5rem 1.7rem;
-    cursor: pointer;
-}
-
-.main>.main-left .nav>.slide {
-    padding: 0 15px 0 0;
-    margin-bottom: 8px;
-    overflow: hidden;
-}
-
-.main>.main-left .nav>.slide>ul {
-    display: none;
-    float: right;
-    width: calc(100% - 10px);
-}
-
-.main>.main-left .nav>.slide>.menu {
-    display: block;
-    padding: 0.5rem 1.7rem;
-    text-decoration: none;
-    cursor: default;
-    font-size: 1.15rem;
-    width: 100%;
-    float: right;
-}
-
-.main>.main-left .nav>li>a.active,
-.main>.main-left .nav>.slide>.menu:hover,
-.main>.main-left .nav>.slide>.menu.active {
-    background: #485267;
-    float: right;
-    border-top-right-radius: 50px;
-    border-bottom-right-radius: 50px;
-}
-
-.main>.main-left .nav>.slide:hover {
-    background: none;
-}
-
-.main>.main-left .nav>.slide>.slide-menu>li {
-    padding: 0.6rem 2rem;
-    margin: 8px 0;
-}
-
-.main>.main-left .nav>.slide>.slide-menu>.active {
-    background-color: #F24C7C;
-    border-top-right-radius: 50px;
-    border-bottom-right-radius: 50px;
-}
-
-.main>.main-left .nav>.slide>.slide-menu>li>a {
-    text-decoration: none;
-    white-space: nowrap;
-}
-
-.main>.main-left .nav>.slide>.slide-menu>.active>a {
-    color: white;
-}
-
-.main>.main-left .nav>.slide>.slide-menu>li:hover {
-    background: #F24C7C;
-    border-top-right-radius: 50px;
-    border-bottom-right-radius: 50px;
-}
-
-.main>.main-left .nav>.slide>.slide-menu>.active:hover {
-    background-color: #F24C7C;
-    cursor: hand;
-}
-
-/* The scroll bar of the navigation bar is compatible with each browser. */
-
-/* Google */
-
-.main>.main-left .navbar-container::-webkit-scrollbar {
-    width: 6px;
-    background: transparent;
-}
-
-.main>.main-left .navbar-container::-webkit-scrollbar-button {
-    display: none;
-}
-
-.main>.main-left .navbar-container::-webkit-scrollbar-thumb {
-    background-color: #ffffff61;
-    border-radius: 10px;
-}
-
-.main>.main-left .navbar-container::-webkit-scrollbar-thumb {
-    background-color: #839dd67a;
-    border-radius: 10px;
-}
-
-.main>.main-left .navbar-container:hover::-webkit-scrollbar-thumb {
-    background-color: #839dd67a;
-}
-
-/* IE */
-
-.main>.main-left .navbar-container {
-    scrollbar-track-color: transparent;
-    scrollbar-face-color: #839dd67a;
-    scrollbar-arrow-color: transparent;
-    scrollbar-3dlight-color: transparent;
-    scrollbar-highlight-color: transparent;
-    scrollbar-shadow-color: transparent;
-    scrollbar-darkshadow-color: transparent;
-    scrollbar-base-color: transparent;
-}
-
-.main>.main-left .navbar-container:hover {
-    scrollbar-face-color: #839dd67a;
-}
-
-footer {
-    text-align: right;
-    padding-right: 1rem;
-    color: #aaa;
-    font-size: 0.8rem;
-    text-shadow: 0px 0px 2px #BBB;
-    position: absolute;
-    bottom: 0;
-    right: 0;
-}
-
-.modal-overlay-active #modal_overlay {
-    position: fixed;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    width: 100%;
-    background-color: #000000b8;
-    z-index: 2000;
-}
-
-.modal-overlay-active #modal_overlay .modal {
-    width: 50%;
-    background-color: #fff;
-    margin: 150px auto;
-    border-radius: 20px;
-    color: #333;
-}
-
-/* The style of the prompt message */
-
-.alert-message {
-    padding: 13px 11%;
-    border-radius: 10px;
-    background-color: #FFF;
-}
-
-.danger {
-    background-color: #FA8072;
-    color: black;
-}
-
-.success {
-    background-color: #90EE90;
-    color: black;
-}
-
-.error {
-    color: red;
-}
-
-.alert-message>h4 {
-    padding: 7px 0 7px 36px;
-    margin: 0;
-    font-weight: normal;
-    font-size: 18px;
-    background: url(./no-pwd.png) no-repeat left 43%/ 28px;
-    display: inline-block;
-}
-
-.alert-message>p {
-    font-size: 14px;
-    line-height: 1.5rem;
-}
-
-.alert-message a {
-    padding: 4px 0;
-    margin-top: 12px;
-    width: 100%;
-    background-color: transparent;
-    color: #fff;
-    font-size: 16px;
-    border: 1px solid #fff;
-    border-radius: 50px;
-}
-
-/* All styles of the login interface */
-.node-main-login {
-    height: auto;
-    min-height: 100%;
-    background: #fff url(./loginBG.png) no-repeat center center / cover;
-}
-
-.node-main-login header {
-    display: none;
-}
-
-.node-main-login .main {
-    height: auto;
-}
-
-.node-main-login>.main>.main-left {
-    display: none;
-}
-
-.node-main-login>.main>.main-right {
-    width: 100%;
-    height: auto;
-    min-height: 100%;
-}
-
-.node-main-login>.main #maincontent {
-    position: absolute;
-    min-width: 492px;
-    width: 100%;
-    top: 47%;
-    left: 50%;
-    transform: translateX(-50%) translateY(-50%);
-    height: auto;
-    text-align: center;
-}
-
-.node-main-login>.main .container {
-    padding: 0;
-    width: 30%;
-    max-width: 492px;
-    display: inline-block;
-}
-
-.node-main-login>.main .logoImg a {
-    margin: 0 0 18px 0;
-    display: block;
-    font-size: 30px;
-    color: #fff;
-    text-decoration: none;
-}
-
-.node-main-login>.main .logoImg img:first-child {
-    width: 72px;
-}
-
-.node-main-login .warning {
-    background-color: #3E4A62;
-    color: #fff;
-}
-
-.node-main-login>.main form h2 {
-    margin: 17px 0;
-    padding: 0;
-    font-size: 24px;
-    color: #fff;
-    font-weight: normal;
-    border: 0;
-}
-
-.node-main-login>.main form .cbi-map-descr {
-    margin: 0 0 12px;
-    padding: 0;
-    font-size: 12px;
-    color: #B1B6BB;
-}
-
-.node-main-login>.main form .cbi-section {
-    margin: 0;
-    padding: 0;
-    background-color: transparent;
-    box-shadow: none;
-}
-
-.node-main-login>.main form .cbi-value {
-    display: block;
-}
-
-.node-main-login>.main form .cbi-value-title {
-    margin: 0;
-    padding: 0;
-    display: none;
-}
-
-.node-main-login>.main form .cbi-value .cbi-value-field {
-    margin-bottom: 16px;
-    display: block;
-    width: 100%;
-    position: relative;
-}
-
-.node-main-login>.main form .cbi-value-field input {
-    padding-left: 48px;
-    width: 100%;
-    border: 1px solid #556270;
-    height: 42px;
-    border-radius: 50px;
-    font-size: 20px;
-    color: #9c9fa1;
-}
-
-.node-main-login form .cbi-value-field .iconpwd,
-.node-main-login form .cbi-value-field .iconuser,
-.node-main-login form .cbi-value-field .iconeye {
-    height: 24px;
-    width: 20px;
-    position: absolute;
-    top: 50%;
-    left: 16px;
-    transform: translateY(-50%);
-}
-
-.node-main-login form .cbi-value-field .iconpwd {
-    background: transparent url(./pwd.png) no-repeat center center / 100%;
-}
-
-.node-main-login form .cbi-value-field .iconuser {
-    background: transparent url(./user.png) no-repeat center center / 100%;
-}
-
-.node-main-login form .cbi-value-field .iconeye {
-    left: auto;
-    right: 16px;
-    background: transparent url(./op-eye.png) no-repeat center center / 100%;
-}
-
-.node-main-login form .cbi-value-field .cleye {
-    background-image: url(./cl-eye.png);
-}
-
-.node-main-login form .cbi-value-field .opeye {
-    background-image: url(./op-eye.png);
-}
-
-.node-main-login form .cbi-page-actions {
-    padding: 0;
-    border: 0;
-    text-align: center;
-}
-
-.node-main-login form .cbi-page-actions input {
-    margin: 0 0 0 -4px;
-    padding: 9px 0;
-    border: 0;
-    display: inline-block;
-    border-radius: 0;
-    width: 50%;
-    font-size: 18px;
-}
-
-.node-main-login form .cbi-page-actions .cbi-button-apply {
-    background-color: #F24C7C;
-    border-top-left-radius: 50px;
-    border-bottom-left-radius: 50px;
-}
-
-.node-main-login form .cbi-page-actions .cbi-button-reset {
-    background-color: #8a4568;
-    color: #fff;
-    border-top-right-radius: 50px;
-    border-bottom-right-radius: 50px;
-}
-
-.node-main-login input.cbi-input-text {
-    box-shadow: 0 0 0 1000px white inset;
-}
-
-/* Interface after login */
-.logged-in {
-    background-color: #EBF1F6;
-}
-
-.logged-in header {
-    height: 70px;
-}
-
-.logged-in .main {
-    overflow: hidden;
-}
-
-.logged-in .main-right {
-    padding: 0 1rem 3rem 0;
-    margin-top: 90px;
-    float: right;
-}
-
-.logged-in .main .logoImg {
-    display: none;
-}
-
-.logged-in .main .main-left .nav-container {
-    background-color: #354057;
-    border-radius: 20px;
-    position: absolute;
-    top: 10px;
-    left: 10px;
-    right: -10px;
-    bottom: 10px;
-}
-
-.logged-in .main .main-left .brand {
-    margin: 0 auto;
-    padding: 44px 0 23px;
-    width: 85%;
-    color: #fff;
-    display: block;
-    font-size: 18px;
-    text-align: center;
-    text-decoration: none;
-    border-bottom: 2px solid #ffffff42;
-    /* Single line text omitted */
-    white-space: nowrap;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    -webkit-text-overflow: ellipsis;
-    -o-text-overflow: ellipsis;
-}
-
-.logged-in .alert-message {
-    padding: 20px 2rem;
-    border: none;
-    background-color: #fff;
-}
-
-.logged-in .alert-message a {
-    padding: 8px 2rem;
-    width: auto;
-    border: none;
-    background-color: #468EA4;
-    color: #fff;
-}
-
-@media screen and (max-width: 1600px) {
-    .main-left {
-        width: calc(0% + 13rem);
-    }
-
-    .btn,
-    .cbi-button {
-        padding: 0.3rem 0.6rem;
-        font-size: 0.8rem;
-    }
-
-    header>.container>.pull-right>* {
-        top: 0.35rem;
-    }
-
-    .label {
-        padding: 0.2rem 0.6rem;
-    }
-
-    .cbi-value-title {
-        width: 15rem;
-        padding-right: 0.6rem;
-    }
-
-    .cbi-input-textarea {
-        font-size: small;
-    }
-}
-
-@media screen and (max-width: 1280px) {
-    .node-main-login>.main .container {
-        width: 50%;
-    }
-
-    .cbi-tabmenu>li>a,
-    .tabs>li>a {
-        padding: 0.2rem 0.5rem;
-    }
-
-    .panel-title {
-        font-size: 1.1rem;
-        padding-bottom: 1rem;
-    }
-
-    table {
-        font-size: 0.7rem !important;
-        width: 100% !important;
-    }
-
-    .main>.main-left .nav>li,
-    .main>.main-left .nav>li a,
-    .main>.main-left .nav>.slide>.menu {
-        font-size: 0.9rem;
-    }
-
-    .main>.main-left .nav>.slide>.slide-menu>li>a {
-        font-size: 0.7rem;
-    }
-}
-
-@media screen and (max-width: 992px) {
-    .logged-in header {
-        padding: 0 .8rem;
-        height: 45px;
-    }
-
-    header .brand {
-        display: none;
-    }
-
-    header .btn-con {
-        line-height: 45px;
-    }
-
-    .main-left {
-        width: auto;
-        height: auto;
-        position: fixed;
-        z-index: 100;
-        right: 100%;
-        left: 0;
-        top: 0;
-        bottom: 0;
-        background: #0000007d;
-        border-radius: 0;
-        min-width: 0;
-        overflow: hidden;
-    }
-
-    .main>.main-left .navbar-container {
-       overflow-y: scroll;
-       overflow-x: hidden;
-    }
-
-    .main>.main-left .nav>.slide>.slide-menu>li {
-        width: 90%;
-    }
-
-    header .container {
-        line-height: 43px;
-    }
-
-    .main-right {
-        width: 100%;
-    }
-
-    .node-main-login>.main .container {
-        width: 60%;
-    }
-
-    .showSide {
-        padding: 0.1rem;
-        display: inline-block;
-        vertical-align: middle;
-    }
-
-    .cbi-value-title {
-        width: 9rem;
-        padding-right: 1rem;
-    }
-
-    #diag-rc-output>pre {
-        font-size: 1rem;
-    }
-
-    .tr {
-        display: flex;
-        flex-direction: row;
-        flex-wrap: wrap;
-    }
-
-    .th,
-    .td {
-        flex: 2 2 25%;
-        align-self: flex-start;
-        text-overflow: ellipsis;
-        word-wrap: break-word;
-        display: inline-block;
-    }
-
-    .td select,
-    .td input[type="text"] {
-        word-wrap: normal;
-        width: 100%;
-    }
-
-    .td [data-dynlist]>input,
-    .td input.cbi-input-password {
-        width: calc(100% - 1.5rem);
-    }
-
-    .td[data-type="button"],
-    .td[data-type="fvalue"] {
-        flex: 1 1 12.5%;
-        text-align: left;
-    }
-
-    .th.cbi-value-field,
-    .td.cbi-value-field,
-    .th.cbi-section-table-cell,
-    .td.cbi-section-table-cell {
-        flex-basis: auto;
-    }
-
-    .cbi-section-table-row {
-        display: flex;
-        flex-wrap: wrap;
-        flex-direction: row;
-        justify-content: space-between;
-    }
-
-    .td.cbi-value-field,
-    .cbi-section-table-cell {
-        text-align: center;
-        display: inline-block;
-        flex: 10 10 auto;
-    }
-
-    .td.cbi-section-actions {
-        text-align: right;
-        align-self: flex-end;
-        vertical-align: bottom;
-    }
-
-    .tr.table-titles,
-    .tr.cbi-section-table-titles,
-    .tr.cbi-section-table-descr {
-        display: none;
-    }
-
-    .tr[data-title]::before,
-    .tr.cbi-section-table-titles.named::before {
-        display: block;
-        flex: 1 1 100%;
-        background: #eef;
-        font-size: .9rem;
-        border-bottom: 1px solid rgba(0, 0, 0, .26);
-    }
-
-    .td[data-title] {
-        text-align: left;
-        font-size: 12px;
-    }
-
-    .td[data-title]::before {
-        display: block;
-    }
-
-    .hide-sm,
-    .hide-xs {
-        display: none;
-    }
-
-    /* All styles of the login interface */
-    .node-main-login .showSide {
-        display: none !important;
-    }
-
-    .logged-in .main {
-        padding-bottom: .8rem;
-    }
-
-    .logged-in .main .main-left .nav-container {
-        background-color: #354057;
-        border-radius: 0;
-        position: absolute;
-        top: 0;
-        left: 0;
-        right: 20%;
-        bottom: 0;
-    }
-
-    .logged-in .main-right {
-        padding: 0 .8rem;
-        margin-top: calc(45px + .8rem);
-        width: 100%;
-        max-width: unset;
-        float: unset;
-    }
-
-    .logged-in .alert-message {
-        padding: 8px .8rem;
-    }
-
-    .cbi-section {
-        margin: .8rem 0 0 0;
-        padding: .8rem;
-    }
-
-    small {
-        font-size: 10px;
-        line-height: 0;
-    }
-
-    .cbi-section>h3:first-child,
-    .panel-title {
-        font-size: 1rem;
-    }
-
-    .network-status-table .ifacebox-body>span {
-        font-size: 12px;
-    }
-
-    .cbi-section .ifacebox-body .ifacebadge>span {
-        font-size: 12px;
-    }
-
-    .table .tr.cbi-rowstyle-1:nth-child(n),
-    .table .tr:nth-child(n) {
-        font-size: 12px;
-    }
-
-    .node-network-firewall .table .tr.cbi-rowstyle-1:nth-child(n),
-    .node-network-firewall .table .tr:nth-child(n) {
-        border-radius: 20px;
-        overflow: hidden;
-    }
-
-    h2 {
-        margin: 1rem 0 0 0;
-        font-size: 1.4rem;
-        padding-bottom: 0;
-        border-bottom: none;
-    }
-
-    h4 {
-        font-size: 1rem;
-    }
-
-    .cbi-section-node-tabbed {
-        padding: 0 .5rem;
-    }
-
-    .cbi-button,
-    .cbi-button-action.important {
-        margin-right: .3rem;
-    }
-
-    select {
-        border-bottom: 1px solid rgba(0, 0, 0, .26);
-    }
-
-    .node-status-processes .table .tr.cbi-rowstyle-1:nth-child(n),
-    .node-status-processes .table .tr:nth-child(n) {
-        border-radius: 20px;
-    }
-}
-
-@media screen and (max-width: 768px) {
-    .node-main-login {
-        background: none;
-    }
-
-    .node-main-login>.main .logoImg a {
-        font-size: 30px;
-        margin: 12px 0 22px 0;
-        color: #354057;
-    }
-
-    .node-main-login>.main #maincontent {
-        padding-top: 0;
-        padding-bottom: 1rem;
-        min-width: 100%;
-        top: 0;
-        transform: translateY(0) translateX(-50%);
-    }
-
-    .alert-message {
-        padding: 8px 15%;
-    }
-
-    .alert-message>h4 {
-        font-size: 14px;
-    }
-
-    .alert-message>p,
-    .alert-message a {
-        font-size: 12px;
-    }
-
-    .a lert-message>h4 {
-        padding: 8px 0 8px 36px;
-    }
-
-    .alert-message a {
-        padding: 8px 0;
-        margin-top: 8px;
-    }
-
-    .node-main-login .warning {
-        background-color: #F5F5F6;
-        color: #354057;
-    }
-
-    .alert-message a {
-        color: #f24c7c;
-        background: #fff;
-    }
-
-    .node-main-login>.main form h2 {
-        font-size: 16px;
-        margin: 20px 0 16px;
-        color: #354057;
-    }
-
-    .node-main-login>.main form .cbi-value-field input {
-        padding-left: 34px;
-        height: 36px;
-        background-size: 16px;
-        font-size: 16px;
-    }
-
-    .node-main-login>.main form .cbi-value-field {
-        margin-bottom: 20px;
-    }
-
-    .node-main-login form .cbi-page-actions input {
-        padding: 6px 0;
-        font-size: 16px;
-    }
-
-    .node-main-login form .cbi-value-field .iconpwd,
-    .node-main-login form .cbi-value-field .iconuser,
-    .node-main-login form .cbi-value-field .iconeye {
-        height: 20px;
-        width: 16px;
-        left: 12px;
-    }
-
-    .node-main-login form .cbi-value-field .iconeye {
-        left: auto;
-        right: 12px;
-    }
-
-    .mobile-hide {
-        display: none;
-    }
-
-    .PC-hide {
-        display: inline-block;
-    }
-}
-
-@media screen and (max-width: 480px) {
-    body {
-        font-size: 1rem;
-    }
-
-    .cbi-value-title {
-        width: 100%;
-        min-width: 0rem !important;
-        display: block;
-        margin-top: 1rem;
-        margin-bottom: 0.5rem;
-        text-align: left;
-    }
-
-    .cbi-value-field,
-    .cbi-value-description {
-        width: 100%;
-    }
-
-    .cbi-value>.cbi-value-field {
-        display: inline-block;
-    }
-
-    .cbi-tabmenu>li,
-    .tabs>li {
-        padding: 0.6rem 0rem;
-    }
-
-    .cbi-tabmenu>li>a,
-    .tabs>li>a {
-        padding: 0.2rem 0.3rem;
-        font-size: 0.9rem;
-    }
-
-    .cbi-page-actions>div>input {
-        display: none;
-    }
-
-    .tabs>li>a {
-        font-size: 0.9rem;
-    }
-
-    select,
-    input {
-        font-size: 10px;
-    }
-
-    .panel-title {
-        font-size: 1.4rem;
-        padding-bottom: 1rem;
-    }
-
-    .node-system-packages>.main .cbi-value.cbi-value-last>div {
-        width: 100% !important;
-    }
-
-    .node-system-packages>.main .cbi-value .cbi-value-field input {
-        width: 100%;
-    }
-
-    .node-status-iptables>.main div>.cbi-map>form {
-        position: static !important;
-        margin: 0 0 2rem 0;
-        padding: 2rem;
-        border: 0;
-        font-weight: normal;
-        font-style: normal;
-        line-height: 1;
-        font-family: inherit;
-        min-width: inherit;
-        background-color: #FFF;
-        border-radius: 20px;
-        -webkit-overflow-scrolling: touch;
-    }
-
-    .node-status-iptables>.main div>.cbi-map>form input[type="submit"] {
-        width: 100% !important;
-        margin: 0;
-    }
-
-    .node-status-iptables>.main div>.cbi-map>form input[type="submit"]+input[type="submit"] {
-        margin-top: 1rem;
-    }
-
-    .node-main-login>.main .container {
-        min-width: 90%;
-    }
-
-    .th,
-    .td {
-        flex-basis: 50%;
-    }
-
-    .td.cbi-value-field {
-        flex-basis: 100%;
-    }
-
-    .td.cbi-value-field[data-type="dvalue"] {
-        flex-basis: 50%;
-    }
-
-    .td.cbi-value-field[data-type="button"],
-    .td.cbi-value-field[data-type="fvalue"] {
-        flex-basis: 25%;
-        text-align: left;
-    }
-
-    .tr[data-title]::before,
-    .tr.cbi-section-table-titles.named::before {
-        font-size: 1rem;
-    }
-
-    .hide-xs {
-        display: none;
-    }
-
-    /* All styles of the login interface */
-    .node-main-login>.main .cbi-value {
-        padding: 0;
-    }
-
-    .alert-message {
-        padding: 8px 10%;
-    }
-}
-
-@media screen and (min-width: 992px) {
-    .cbi-value-field .cbi-input-select {
-        width: 20rem;
-    }
-
-    .cbi-value-field .cbi-dropdown {
-        min-width: 20rem;
-    }
-}
-
-@media screen and (min-width: 1280px) {
-    .cbi-value-field .cbi-input-select {
-        width: 22rem;
-    }
-
-    .cbi-value-field .cbi-dropdown {
-        min-width: 22rem;
-    }
-}
-
-@media screen and (min-width: 1600px) {
-    .cbi-value-field .cbi-input-select {
-        width: 25rem;
-    }
-
-    .cbi-value-field .cbi-dropdown {
-        min-width: 25rem;
-    }
-}
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/cl-eye.png b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/cl-eye.png
deleted file mode 100644 (file)
index d218348..0000000
Binary files a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/cl-eye.png and /dev/null differ
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/favicon.ico b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/favicon.ico
deleted file mode 100644 (file)
index 3d7de7b..0000000
Binary files a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/favicon.ico and /dev/null differ
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.eot b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.eot
deleted file mode 100644 (file)
index 9e6ffc9..0000000
Binary files a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.eot and /dev/null differ
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.svg b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.svg
deleted file mode 100644 (file)
index d38d057..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>Generated by IcoMoon</metadata>
-<defs>
-<font id="icomoon" horiz-adv-x="1024">
-<font-face units-per-em="1024" ascent="960" descent="-64" />
-<missing-glyph horiz-adv-x="1024" />
-<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
-<glyph unicode="&#xe20a;" glyph-name="expand_less" d="M512 596.667l256-256-60-60-196 196-196-196-60 60z" />
-<glyph unicode="&#xe20b;" glyph-name="expand_more" d="M708 572.667l60-60-256-256-256 256 60 60 196-196z" />
-<glyph unicode="&#xe20e;" glyph-name="menu" d="M128 682.667h768v-86h-768v86zM128 384.667v84h768v-84h-768zM128 170.667v86h768v-86h-768z" />
-<glyph unicode="&#xe291;" glyph-name="favorite" d="M512 28.667l-62 56q-106 96-154 142t-107 114-81 123-22 113q0 98 67 166t167 68q116 0 192-90 76 90 192 90 100 0 167-68t67-166q0-78-52-162t-113-146-199-186z" />
-<glyph unicode="&#xe603;" glyph-name="spinner9" d="M512 960c-278.748 0-505.458-222.762-511.848-499.974 5.92 241.864 189.832 435.974 415.848 435.974 229.75 0 416-200.576 416-448 0-53.020 42.98-96 96-96s96 42.98 96 96c0 282.77-229.23 512-512 512zM512-64c278.748 0 505.458 222.762 511.848 499.974-5.92-241.864-189.832-435.974-415.848-435.974-229.75 0-416 200.576-416 448 0 53.020-42.98 96-96 96s-96-42.98-96-96c0-282.77 229.23-512 512-512z" />
-<glyph unicode="&#xf059;" glyph-name="question-circle" horiz-adv-x="878" d="M512 164.571v109.714q0 8-5.143 13.143t-13.143 5.143h-109.714q-8 0-13.143-5.143t-5.143-13.143v-109.714q0-8 5.143-13.143t13.143-5.143h109.714q8 0 13.143 5.143t5.143 13.143zM658.286 548.571q0 50.286-31.714 93.143t-79.143 66.286-97.143 23.429q-138.857 0-212-121.714-8.571-13.714 4.571-24l75.429-57.143q4-3.429 10.857-3.429 9.143 0 14.286 6.857 30.286 38.857 49.143 52.571 19.429 13.714 49.143 13.714 27.429 0 48.857-14.857t21.429-33.714q0-21.714-11.429-34.857t-38.857-25.714q-36-16-66-49.429t-30-71.714v-20.571q0-8 5.143-13.143t13.143-5.143h109.714q8 0 13.143 5.143t5.143 13.143q0 10.857 12.286 28.286t31.143 28.286q18.286 10.286 28 16.286t26.286 20 25.429 27.429 16 34.571 7.143 46.286zM877.714 438.857q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" />
-</font></defs></svg>
\ No newline at end of file
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.ttf b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.ttf
deleted file mode 100644 (file)
index 8466932..0000000
Binary files a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.ttf and /dev/null differ
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.woff b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.woff
deleted file mode 100644 (file)
index 00cf84e..0000000
Binary files a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/fonts/font.woff and /dev/null differ
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/js/ScrollY.js b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/js/ScrollY.js
deleted file mode 100644 (file)
index 38d82d1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-!function(win,dom){function MyScrollBar(o){this.init(o)}function getStyle(obj,name){return win.getComputedStyle?getComputedStyle(obj,null)[name]:obj.currentStyle[name]}function setStyle(obj,oStyle){for(var i in oStyle)obj.style[i]=oStyle[i]}function getOffsetSize(obj){var sDisplay=getStyle(obj,"display"),res={};if("none"!=sDisplay)res.width=obj.offsetWidth,res.height=obj.offsetHeight;else{var oldStyle={position:getStyle(obj,"position"),visibility:getStyle(obj,"visibility"),display:sDisplay},newStyle;setStyle(obj,{position:"absolute",visibility:"hidden",display:"inline-block"}),res.width=obj.offsetWidth,res.height=obj.offsetHeight,setStyle(obj,oldStyle)}return res}function getClientSize(obj){var iTopW=parseInt(getStyle(obj,"borderTopWidth")),iRightW=parseInt(getStyle(obj,"borderRightWidth")),iBottomW=parseInt(getStyle(obj,"borderBottomWidth")),iLeftW=parseInt(getStyle(obj,"borderLeftWidth")),oOffset=getOffsetSize(obj);return{width:oOffset.width<=0?oOffset.width:oOffset.width-iLeftW-iRightW,height:oOffset.height<=0?oOffset.height:oOffset.height-iTopW-iBottomW}}function canSelectText(bCan){bCan?(dom.body.style.mozUserSelect="text",dom.body.style.webkitUserSelect="text",dom.body.style.msUserSelect="text",dom.body.style.khtmlUserSelect="text",dom.body.style.userSelect="text"):(dom.body.style.mozUserSelect="none",dom.body.style.webkitUserSelect="none",dom.body.style.msUserSelect="none",dom.body.style.khtmlUserSelect="none",dom.body.style.userSelect="none")}function getPosition(obj,goal){var oPos={top:obj.offsetTop,left:obj.offsetLeft};if(obj.parentNode==goal)return oPos;var obj=getPosition(obj.parentNode,goal);oPos.top+=obj.top,oPos.left+=obj.left}MyScrollBar.prototype.init=function(o){this.bYBar=!1,this.iScrollTop=0,this.iScrollLeft=0,this.bYShow=!1,this.oWrapper=dom.getElementById(o.selId),this.oScroll=this.oWrapper.firstElementChild,this.setParam(o),this.addScrollBar(),this.initState(),this.initEvent()},MyScrollBar.prototype.initState=function(){var sWPosition;"static"==getStyle(this.oWrapper,"position")&&setStyle(this.oWrapper,{position:"relative"}),setStyle(this.oScroll,{position:"relative"}),this.bYBar&&(setStyle(this.oYBox,{display:this.enterShow?"none":"block",position:"absolute",top:0,right:0,zIndex:10,width:this.width+"px",height:"100%",backgroundColor:this.bgColor}),setStyle(this.oYBar,{position:"absolute",top:0,left:0,width:"100%",backgroundColor:this.barColor,borderRadius:this.borderRadius+"px",transition:"all "+this.time+"ms"})),this.setSize()},MyScrollBar.prototype.initEvent=function(){var _this=this,sUserAgent;-1!=win.navigator.userAgent.toLowerCase().indexOf("firefox")?this.oWrapper.addEventListener("DOMMouseScroll",function(e){_this.bYBar&&_this.bYShow&&(e.preventDefault(),_this.iScrollTop+=e.detail>0?60:-60,_this.iScrollTop=_this.iScrollTop<=0?0:_this.iScrollTop>=_this.iScrollH-_this.iWrapperH?_this.iScrollH-_this.iWrapperH:_this.iScrollTop,_this.setTransLate(),_this.setYTop(_this.iScrollTop/_this.iScrollH*_this.iYBoxH))}):this.oWrapper.onmousewheel=function(evt){if(_this.bYBar&&_this.bYShow){var e=evt||win.event;evt?e.preventDefault():e.returnValue=!1,_this.iScrollTop+=e.wheelDelta<0?60:-60,_this.iScrollTop=_this.iScrollTop<=0?0:_this.iScrollTop>=_this.iScrollH-_this.iWrapperH?_this.iScrollH-_this.iWrapperH:_this.iScrollTop,_this.setTransLate(),_this.setYTop(_this.iScrollTop/_this.iScrollH*_this.iYBoxH)}};var isInWrapper=!1;this.oWrapper.onmouseenter=function(){isInWrapper=!0,_this.enterShow&&_this.bYBar&&_this.bYShow&&setStyle(_this.oYBox,{display:"block"})},this.oWrapper.onmouseleave=function(){isInWrapper=!1,_this.enterShow&&_this.bYBar&&!bYDown&&_this.bYShow&&setStyle(_this.oYBox,{display:"none"})};var bYDown=!1,bYLeave=!0,iDownPageY=0,iYBarTop=0;this.bYBar&&(this.enterColor&&(this.oYBar.onmouseenter=function(){bYLeave=!1,setStyle(this,{backgroundColor:_this.enterColor})},this.oYBar.onmouseleave=function(){bYLeave=!0,bYDown||setStyle(this,{backgroundColor:_this.barColor})}),this.oYBar.onmousedown=function(e){_this.bYShow&&(bYDown=!0,iDownPageY=e.clientY+dom.documentElement.scrollTop||dom.body.scrollTop,iYBarTop=parseInt(getStyle(this,"top")),_this.setYTime(0),canSelectText(!1))},dom.addEventListener("mouseup",function(){bYDown&&_this.bYShow&&(bYDown=!1,_this.setYTime(_this.time),canSelectText(!0),!isInWrapper&&_this.enterShow&&setStyle(_this.oYBox,{display:"none"})),!bYDown&&bYLeave&&setStyle(_this.oYBar,{backgroundColor:_this.barColor})}),dom.addEventListener("mousemove",function(e){if(bYDown&&_this.bYShow){var iNowPageY=e.clientY+dom.documentElement.scrollTop||dom.body.scrollTop,iNowTop=iYBarTop+iNowPageY-iDownPageY;iNowTop=iNowTop<=0?0:iNowTop>=_this.iYBoxH-_this.iYBarH?_this.iYBoxH-_this.iYBarH:iNowTop,_this.iScrollTop=iNowTop/_this.iYBoxH*_this.iScrollH,_this.setTransLate(),_this.setYTop(iNowTop)}}),this.oYBar.ondrag=function(e){var e=evt||win.event;evt?e.preventDefault():e.returnValue=!1})},MyScrollBar.prototype.setParam=function(o){this.width=o.width?o.width:10,this.bgColor=o.bgColor?o.bgColor:"#eaeaea",this.barColor=o.barColor?o.barColor:"#ccc",this.enterColor=o.enterColor||!1,this.enterShow=!1!==o.enterShow,this.hasY=!1!==o.hasY,this.borderRadius=o.borderRadius>=0?o.borderRadius:this.width/2,this.time=o.time||0},MyScrollBar.prototype.addScrollBar=function(){this.getSize(),this.hasY&&(this.bYBar=!0,this.oYBox=dom.createElement("div"),this.oYBar=dom.createElement("div"),this.oYBox.appendChild(this.oYBar),this.oWrapper.insertBefore(this.oYBox,this.oScroll))},MyScrollBar.prototype.getSize=function(){var oWrapperSize=getClientSize(this.oWrapper),oScrollSize=getClientSize(this.oScroll);this.iWrapperClientH=oWrapperSize.height,this.iPaddingT=parseInt(getStyle(this.oWrapper,"paddingTop")),this.iPaddingR=parseInt(getStyle(this.oWrapper,"paddingRight")),this.iPaddingB=parseInt(getStyle(this.oWrapper,"paddingBottom")),this.iPaddingL=parseInt(getStyle(this.oWrapper,"paddingLeft")),this.iWrapperH=oWrapperSize.height-this.iPaddingT-this.iPaddingB,this.iScrollH=oScrollSize.height,this.bYBar&&(this.iYBoxH=oWrapperSize.height,this.iYBarH=this.iWrapperH/this.iScrollH*this.iYBoxH)},MyScrollBar.prototype.setSize=function(time){var _this=this;time=time||100,setTimeout(function(){_this.getSize(),_this.iScrollTop>=_this.iScrollH-_this.iWrapperH&&(_this.iScrollTop=_this.iScrollH-_this.iWrapperH),_this.bYBar&&(_this.iWrapperH>=_this.iScrollH?(setStyle(_this.oYBox,{display:"none"}),_this.bYShow=!1):(_this.enterShow||setStyle(_this.oYBox,{display:"block"}),setStyle(_this.oYBar,{height:_this.iYBarH+"px",top:_this.iScrollTop/_this.iScrollH*_this.iYBoxH+"px"},0),_this.bYShow=!0))},time)},MyScrollBar.prototype.setTransLate=function(iTime){var sTranslate="translate(-"+this.iScrollLeft+"px, -"+this.iScrollTop+"px)";setStyle(this.oScroll,{transition:"all "+(iTime>=0?iTime:this.time)+"ms",transform:sTranslate,msTransform:sTranslate,mozTransform:sTranslate,webkitTransform:sTranslate,oTransform:sTranslate})},MyScrollBar.prototype.setYTime=function(iTime){setStyle(this.oYBar,{transition:"all "+(iTime>=0?iTime:this.time)+"ms"})},MyScrollBar.prototype.setYTop=function(iTop){setStyle(this.oYBar,{top:iTop+"px"})},MyScrollBar.prototype.jump=function(o){o=o||{};var oPos={top:0,left:0},iTop=0,iBottome=this.iScrollH-this.iWrapperClientH+this.iPaddingT+this.iPaddingB>0?this.iScrollH-this.iWrapperClientH+this.iPaddingT+this.iPaddingB:0,iLeft=0,iRight=this.iScrollW-this.iWrapperClientW+this.iPaddingL+this.iPaddingR>0?this.iScrollW-this.iWrapperClientW+this.iPaddingL+this.iPaddingR:0,obj;if(o.id)oPos=getPosition(document.getElementById(o.id),this.oScroll),this.bYBar&&(oPos.top+=this.iPaddingT);else if(o.pos)if("string"==typeof o.pos)switch(o.pos){case"top":oPos.top=0;break;case"bottom":oPos.top=iBottome;break;case"left":oPos.left=0;break;case"right":oPos.left=iRight}else"object"==typeof o.pos&&(oPos=o.pos);oPos.top=oPos.top>iBottome?iBottome:oPos.top>=0?oPos.top:0,this.iScrollTop=oPos.top,this.setTransLate(o.time),this.bYBar&&(this.setYTime(o.time),this.setYTop(this.iScrollTop/this.iScrollH*this.iYBoxH))},"function"==typeof define&&define.amd&&define([],function(){return MyScrollBar}),win.MyScrollBar=MyScrollBar}(window,document);
\ No newline at end of file
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/js/jquery.min.js b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/js/jquery.min.js
deleted file mode 100755 (executable)
index 4d9b3a2..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/js/script.js b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/js/script.js
deleted file mode 100755 (executable)
index c1a3dcd..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-/**
- *  Rosy is a theme for LuCI. It is based on luci-theme-bootstrap
- *
- *  luci-theme-rosy
- *     Copyright 2018 Rosy Song <rosysong@rosinson.com>
- *     Copyright 2018 Yan Lan Shen <yanlan.shen@rosinson.com>
- *
- *   Have a bug? Please create an issue here on GitHub!
- *       https://github.com/rosywrt/luci-theme-rosy/issues
- *
- *  luci-theme-bootstrap:
- *      Copyright 2008 Steven Barth <steven@midlink.org>
- *      Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- *      Copyright 2012 David Menting <david@nut-bolt.nl>
- *
- *  Licensed to the public under the Apache License 2.0
- */
-
-(function ($) {
-    $(".main > .loading").fadeOut();
-
-    /**
-     * trim text, Remove spaces, wrap
-     * @param text
-     * @returns {string}
-     */
-    function trimText(text) {
-        return text.replace(/[ \t\n\r]+/g, " ");
-    }
-
-
-    var lastNode = undefined;
-    var mainNodeName = undefined;
-
-    var nodeUrl = "";
-    (function(node){
-        if (node[0] == "admin"){
-            luciLocation = [node[1], node[2]];
-        }else{
-            luciLocation = node;
-        }
-
-        for(var i in luciLocation){
-            nodeUrl += luciLocation[i];
-            if (i != luciLocation.length - 1){
-                nodeUrl += "/";
-            }
-        }
-    })(luciLocation);
-
-    /**
-     * get the current node by Burl (primary)
-     * @returns {boolean} success?
-     */
-    function getCurrentNodeByUrl() {
-        var ret = false;
-        if (!$('body').hasClass('logged-in')) {
-            luciLocation = ["Main", "Login"];
-            return true;
-        }
-
-        $(".main > .main-left .nav > .slide > .menu").each(function () {
-            var ulNode = $(this);
-            ulNode.next().find("a").each(function () {
-                var that = $(this);
-                var href = that.attr("href");
-
-                if (href.indexOf(nodeUrl) != -1) {
-                    ulNode.click();
-                    ulNode.next(".slide-menu").stop(true, true);
-                    lastNode = that.parent();
-                    lastNode.addClass("active");
-                    ret = true;
-                    return true;
-                }
-            });
-        });
-        return ret;
-    }
-
-    /**
-     * menu click
-     */
-    if ($('.nav').length > 0 && $(window).width() > 992) {
-        var oScroll = new MyScrollBar({
-            selId: 'navBox',
-            time: 100,
-            bgColor: 'transprent',
-            barColor: '#839dd67a',
-            enterColor: '#839dd6cc',
-            enterShow: false
-        });
-    }
-
-    $(".main > .main-left .nav > .slide > .menu").click(function () {
-        var ul = $(this).next(".slide-menu");
-        var menu = $(this);
-        if (!ul.is(":visible")) {
-            menu.addClass("active");
-            ul.addClass("active");
-            ul.stop(true).slideDown("fast");
-        } else {
-            ul.stop(true).slideUp("fast", function () {
-                menu.removeClass("active");
-                ul.removeClass("active");
-            });
-        }
-        if ($('.nav').length > 0 && $(window).width() > 992) {
-            oScroll.setSize(200);
-        }
-        setInterval(function(){
-            if($('.nav').height() < $('.navbar-container').height()){
-                    $('.nav').css('transform', 'translate(0px, 0px)');
-            }
-        }, 300);
-        return false;
-    });
-
-
-    /**
-     * hook menu click and add the hash
-     */
-    $(".main > .main-left .nav > .slide > .slide-menu > li > a").click(function () {
-        if (lastNode != undefined) lastNode.removeClass("active");
-        $(this).parent().addClass("active");
-        $(".main > .loading").fadeIn("fast");
-        return true;
-    });
-
-    /**
-     * fix menu click
-     */
-    $(".main > .main-left .nav > .slide > .slide-menu > li").click(function () {
-        if (lastNode != undefined) lastNode.removeClass("active");
-        $(this).addClass("active");
-        $(".main > .loading").fadeIn("fast");
-        window.location = $($(this).find("a")[0]).attr("href");
-        return false;
-    });
-
-    /**
-     * get current node and open it
-     */
-    if (getCurrentNodeByUrl()) {
-        mainNodeName = "node-" + luciLocation[0] + "-" + luciLocation[1];
-        mainNodeName = mainNodeName.replace(/[ \t\n\r\/]+/g, "_").toLowerCase();
-        $("body").addClass(mainNodeName);
-    }
-    $(".cbi-button-up").val("");
-    $(".cbi-button-down").val("");
-
-
-    /**
-     * hook other "A Label" and add hash to it.
-     */
-    $("#maincontent > .container").find("a").each(function () {
-        var that = $(this);
-        var onclick = that.attr("onclick");
-        if (onclick == undefined || onclick == "") {
-            that.click(function () {
-                var href = that.attr("href");
-                if (href.indexOf("#") == -1) {
-                    $(".main > .loading").fadeIn("fast");
-                    return true;
-                }
-            });
-        }
-    });
-
-    /**
-     * Sidebar expand
-     */
-    var showSide = false;
-    $(".showSide").click(function () {
-        if (showSide) {
-            $(".main-left").stop(true).animate({
-                right: '100%'
-            }, "fast");
-            $(".main-right").css("overflow-y", "auto");
-            showSide = false;
-        } else {
-            $(".main-left").stop(true).animate({
-                right: '0'
-            }, "fast");
-            $(".main-right").css("overflow-y", "hidden");
-            showSide = true;
-        }
-    });
-
-
-    $(".logged-in .main-left").click(function () {
-        if (showSide) {
-            showSide = false;
-            
-            $(this).stop(true).fadeOut("fast");
-            $(".main-left").stop(true).animate({
-                right: '100%'
-            }, "fast");
-            $(".main-right").css("overflow-y", "auto");
-        }
-    });
-
-    $(".logged-in .main-left > *").click(function () {
-        event.stopPropagation();
-        if ((navigator.userAgent.indexOf('MSIE') >= 0)&& (navigator.userAgent.indexOf('Opera') < 0)){ 
-            event.cancelBubble = true;
-        }else{
-            event.stopPropagation();
-        }
-    });
-
-    $(window).resize(function () {
-        if ($(window).width() > 921) {
-            $(".main-left").css("width", "");
-            $(".darkMask").stop(true);
-            $(".darkMask").css("display", "none");
-            showSide = false;
-        }
-        if(  $(window).width() > 992 ){
-            $('.logged-in .main-right').width( $(window).width() - $('.logged-in .main-left').width() - 50 );
-        }
-    });
-
-    /**
-     * fix legend position
-     */
-    $("legend").each(function () {
-        var that = $(this);
-        that.after("<span class='panel-title'>" + that.text() + "</span>");
-    });
-
-    $(".cbi-section-table-titles, .cbi-section-table-descr, .cbi-section-descr").each(function () {
-        var that = $(this);
-        if (that.text().trim() == ""){
-            that.css("display", "none");
-        }
-    });
-
-
-    $(".main-right").focus();
-    $(".main-right").blur();
-    $("input").attr("size", "0");
-
-    if (mainNodeName != undefined) {
-        console.log(mainNodeName);
-        switch (mainNodeName) {
-            case "node-status-system_log":
-            case "node-status-kernel_log":
-                $("#syslog").focus(function () {
-                    $("#syslog").blur();
-                    $(".main-right").focus();
-                    $(".main-right").blur();
-                });
-                break;
-            case "node-status-firewall":
-                var button = $(".node-status-firewall > .main fieldset li > a");
-                button.addClass("cbi-button cbi-button-reset a-to-btn");
-                break;
-            case "node-system-reboot":
-                var button = $(".node-system-reboot > .main > .main-right p > a");
-                button.addClass("cbi-button cbi-input-reset a-to-btn");
-                break;
-        }
-    }
-
-    $('<div class="iconpwd"></div>').appendTo($('.node-main-login form .cbi-value input[type="password"]').parent()[0]);
-
-    $('<div class="iconuser"></div>').appendTo($('.node-main-login form .cbi-value input[type="text"]').parent()[0]);
-
-    $('<div class="iconeye"></div>').appendTo($('.node-main-login form .cbi-value input[type="password"]').parent()[0]);
-
-    var num = true;
-    $('.cbi-value-field .iconeye').click(function(){
-        if(num){
-            $('.node-main-login form .cbi-value-last input[type="password"]').prop('type', 'text');
-            $('.node-main-login form .cbi-value-field .iconeye').removeClass('opeye').addClass('cleye');
-            num = false;
-        }else {
-            $('.node-main-login form .cbi-value-last input[type="text"]').prop('type', 'password');
-            $('.node-main-login form .cbi-value-field .iconeye').removeClass('cleye').addClass('opeye');
-            num = true;
-        }
-        
-    });
-
-    $('body.logged-in').css('min-height', $(window).height());
-    
-    $(function(){
-        if(  $(window).width() > 992 ){
-            $('.logged-in .main-right').outerWidth( $(window).width() - $('.logged-in .main-left').width() - 50 );
-        }
-
-        $('.cbi-section .table').each(function () {
-            var firTr = $(this).children('.tr').get(0);
-            var firTd = $(firTr).children('.td').get(0);
-            var th = $(firTr).children('.th').get(0);
-
-            var laTr = $(this).children('.tr').get($(this).children('.tr').length - 1);
-            var laTd = $(laTr).children('.td').get(0);
-            var a = window.getComputedStyle(firTr, ':before').getPropertyValue('content');
-
-            if (th && a != 'none') {
-                $(th).css('border-top-left-radius', '0');
-            } else if (firTd && a != 'none') {
-                $(firTd).css('border-top-left-radius', '0');
-            }
-            if (laTd && a != 'none') {
-                $(laTd).css('border-bottom-left-radius', '0');
-            }
-        });
-    });
-
-    $('#iptables').prev().css('margin-top', '10px');
-
-})(jQuery);
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/loading.svg b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/loading.svg
deleted file mode 100644 (file)
index 288de9e..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->
-<svg width="44" height="44" viewBox="0 0 44 44" xmlns="http://www.w3.org/2000/svg" stroke="#fff">
-    <g fill="none" fill-rule="evenodd" stroke-width="2">
-        <circle cx="22" cy="22" r="1">
-            <animate attributeName="r"
-                begin="0s" dur="1.8s"
-                values="1; 20"
-                calcMode="spline"
-                keyTimes="0; 1"
-                keySplines="0.165, 0.84, 0.44, 1"
-                repeatCount="indefinite" />
-            <animate attributeName="stroke-opacity"
-                begin="0s" dur="1.8s"
-                values="1; 0"
-                calcMode="spline"
-                keyTimes="0; 1"
-                keySplines="0.3, 0.61, 0.355, 1"
-                repeatCount="indefinite" />
-        </circle>
-        <circle cx="22" cy="22" r="1">
-            <animate attributeName="r"
-                begin="-0.9s" dur="1.8s"
-                values="1; 20"
-                calcMode="spline"
-                keyTimes="0; 1"
-                keySplines="0.165, 0.84, 0.44, 1"
-                repeatCount="indefinite" />
-            <animate attributeName="stroke-opacity"
-                begin="-0.9s" dur="1.8s"
-                values="1; 0"
-                calcMode="spline"
-                keyTimes="0; 1"
-                keySplines="0.3, 0.61, 0.355, 1"
-                repeatCount="indefinite" />
-        </circle>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/loginBG.png b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/loginBG.png
deleted file mode 100644 (file)
index 1694f9f..0000000
Binary files a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/loginBG.png and /dev/null differ
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/logo.png b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/logo.png
deleted file mode 100644 (file)
index 8205313..0000000
Binary files a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/logo.png and /dev/null differ
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/menu-logo.png b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/menu-logo.png
deleted file mode 100644 (file)
index 77aa2c9..0000000
Binary files a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/menu-logo.png and /dev/null differ
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/mobile-loginBG.png b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/mobile-loginBG.png
deleted file mode 100644 (file)
index 68d765e..0000000
Binary files a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/mobile-loginBG.png and /dev/null differ
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/no-pwd.png b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/no-pwd.png
deleted file mode 100644 (file)
index dca1c59..0000000
Binary files a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/no-pwd.png and /dev/null differ
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/op-eye.png b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/op-eye.png
deleted file mode 100644 (file)
index 88df81f..0000000
Binary files a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/op-eye.png and /dev/null differ
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/pwd.png b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/pwd.png
deleted file mode 100644 (file)
index 6392c07..0000000
Binary files a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/pwd.png and /dev/null differ
diff --git a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/user.png b/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/user.png
deleted file mode 100644 (file)
index 7488872..0000000
Binary files a/package/luci/themes/luci-theme-rosy/htdocs/luci-static/rosy/user.png and /dev/null differ
diff --git a/package/luci/themes/luci-theme-rosy/luasrc/view/themes/rosy/footer.htm b/package/luci/themes/luci-theme-rosy/luasrc/view/themes/rosy/footer.htm
deleted file mode 100755 (executable)
index 4377e1c..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<%#                                   
-    Rosy is a theme for LuCI. It is based on luci-theme-bootstrap
-    luci-theme-rosy
-        Copyright 2018 Rosy Song <rosysong@rosinson.com>
-        Copyright 2018 Yan Lan Shen <yanlan.shen@rosinson.com>
-    
-    Have a bug? Please create an issue here on GitHub!
-        https://github.com/rosywrt/luci-theme-rosy/issues
-
-    luci-theme-bootstrap:
-        Copyright 2008 Steven Barth <steven@midlink.org>
-        Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
-        Copyright 2012 David Menting <david@nut-bolt.nl>
-
-    Licensed to the public under the Apache License 2.0
-
--%>
-
-<%
-    local ver = require "luci.version"
-    local disp = require "luci.dispatcher"
-    local request  = disp.context.path
-    local category = request[1]
-    local tree = disp.node()
-    local categories = disp.node_childs(tree)
-%>
-
-</div>
-</div>
-</div>
-<footer class="mobile-hide">
-    <a href="https://github.com/openwrt/luci">Powered by<%= ver.luciname %> (<%= ver.luciversion %>)</a> /
-    <%= ver.distversion %>
-    <% if #categories > 1 then %>
-    <ul class="breadcrumb pull-right" id="modemenu">
-        <% for i, r in ipairs(categories) do %>
-            <li<% if request[1]==r then %> class="active"<%end%>><a href="<%=controller%>/<%=r%>/"><%=striptags(translate(tree.nodes[r].title))%></a> <span class="divider">|</span></li>
-        <% end %>
-    </ul>
-    <% end %>
-</footer>
-
-<script>                                         
-    var luciLocation = <%= luci.http.write_json(luci.dispatcher.context.path) %>;
-</script>
-<script src="<%=media%>/js/jquery.min.js"></script>
-<script src="<%=media%>/js/script.js"></script>
-</body>
-
-</html>
diff --git a/package/luci/themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm b/package/luci/themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm
deleted file mode 100644 (file)
index a6aafbe..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-<%#                                   
-    Rosy is a theme for LuCI. It is based on luci-theme-bootstrap
-    luci-theme-rosy
-        Copyright 2018 Rosy Song <rosysong@rosinson.com>
-        Copyright 2018 Yan Lan Shen <yanlan.shen@rosinson.com>
-    
-    Have a bug? Please create an issue here on GitHub!
-        https://github.com/rosywrt/luci-theme-rosy/issues
-
-    luci-theme-bootstrap:
-        Copyright 2008 Steven Barth <steven@midlink.org>
-        Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
-        Copyright 2012 David Menting <david@nut-bolt.nl>
-
-    Licensed to the public under the Apache License 2.0
-
--%>
-
-<%
-       local sys  = require "luci.sys"
-       local util = require "luci.util"
-       local http = require "luci.http"
-       local disp = require "luci.dispatcher"
-
-       local boardinfo = util.ubus("system", "board")
-
-       local request  = disp.context.path
-       local request2 = disp.context.request
-
-       local category = request[1]
-       local cattree  = category and disp.node(category)
-
-       local leaf = request2[#request2]
-
-       local tree = disp.node()
-       local node = disp.context.dispatched
-
-       local categories = disp.node_childs(tree)
-
-       local c = tree
-       local i, r
-
-       -- tag all nodes leading to this page
-       for i, r in ipairs(request) do
-               if c.nodes and c.nodes[r] then
-                       c = c.nodes[r]
-                       c._menu_selected = true
-               end
-       end
-
-       -- send as HTML5
-       http.prepare_content("text/html")
-
-       local function nodeurl(prefix, name, query)
-               local u = url(prefix, name)
-               if query then
-                       u = u .. http.build_querystring(query)
-               end
-               return pcdata(u)
-       end
-
-       local function render_tabmenu(prefix, node, level)
-               if not level then
-                       level = 1
-               end
-
-               local childs = disp.node_childs(node)
-               if #childs > 0 then
-                       if level > 2 then
-                               write('<ul class="tabs">')
-                       end
-
-                       local selected_node
-                       local selected_name
-                       local i, v
-
-                       for i, v in ipairs(childs) do
-                               local nnode = node.nodes[v]
-                               if nnode._menu_selected then
-                                       selected_node = nnode
-                                       selected_name = v
-                               end
-
-                               if level > 2 then
-                                       write('<li class="tabmenu-item-%s %s"><a href="%s">%s</a></li>' %{
-                                               v, (nnode._menu_selected or (node.leaf and v == leaf)) and 'active' or '',
-                                               nodeurl(prefix, v, nnode.query),
-                                               striptags(translate(nnode.title))
-                                       })
-                               end
-                       end
-
-                       if level > 2 then
-                               write('</ul>')
-                       end
-
-                       if selected_node then
-                               render_tabmenu(prefix .. "/" .. selected_name, selected_node, level + 1)
-                       end
-               end
-       end
-
-       local function render_submenu(prefix, node)
-               local childs = disp.node_childs(node)
-               if #childs > 0 then
-                       write('<ul class="slide-menu">')
-
-                       for i, r in ipairs(childs) do
-                               local nnode = node.nodes[r]
-                               local title = pcdata(striptags(translate(nnode.title)))
-
-                               write('<li><a data-title="%s" href="%s">%s</a></li>' %{
-                                       title,
-                                       nodeurl(prefix, r, nnode.query),
-                                       title
-                               })
-                       end
-
-                       write('</ul>')
-               end
-       end
-
-       local function render_topmenu()
-               local childs = disp.node_childs(cattree)
-               if #childs > 0 then
-                       write('<ul class="nav scroll">')
-
-                       for i, r in ipairs(childs) do
-                               local nnode = cattree.nodes[r]
-                               local grandchildren = disp.node_childs(nnode)
-
-                               if #grandchildren > 0 then
-                                       local title = pcdata(striptags(translate(nnode.title)))
-
-                                       write('<li class="slide"><a class="menu" data-title="%s" href="#">%s</a>' %{
-                                               title,
-                                               title
-                                       })
-
-                                       render_submenu(category .. "/" .. r, nnode)
-                                       write('</li>')
-                               end
-                       end
-
-                       write('</ul>')
-               end
-       end
-
-        local function render_logout()                                                                             
-                local childs = disp.node_childs(cattree)                               
-                if #childs > 0 then                                                                                 
-                                                                                               
-                        for i, r in ipairs(childs) do                                     
-                                local nnode = cattree.nodes[r]                                                      
-                                local grandchildren = disp.node_childs(nnode)          
-                                                                                                                    
-                                if #grandchildren <= 0 then
-                                        local title = pcdata(striptags(translate(nnode.title)))                      
-                                                                                          
-                                        write('<span class="label logout"><a data-title="%s" href="%s">%s</a></span>' %{                      
-                                                title,                                    
-                                                nodeurl(category, r, nnode.query),                                   
-                                                title                              
-                                        })                                                                           
-                                end                                                       
-                        end                                                                                          
-                                                                                          
-                end                                                      
-        end                                                                                                          
-
-
-       local function render_changes()
-               -- calculate the number of unsaved changes
-               if tree.nodes[category] and tree.nodes[category].ucidata then
-                       local ucichanges = 0
-
-                       for i, j in pairs(require("luci.model.uci").cursor():changes()) do
-                               for k, l in pairs(j) do
-                                       for m, n in pairs(l) do
-                                               ucichanges = ucichanges + 1;
-                                       end
-                               end
-                       end
-
-                       if ucichanges > 0 then
-                               write('<a class="uci_change_indicator label notice" href="%s?redir=%s"><span class="mobile-hide">%s:</span> %d</a>' %{
-                                       url(category, 'uci/changes'),
-                                       http.urlencode(http.formvalue('redir') or table.concat(disp.context.request, "/")),
-                                       translate('Unsaved Changes'),
-                                       ucichanges
-                               })
-                       end
-               end
-       end
--%>
-<!DOCTYPE html>
-<html lang="<%=luci.i18n.context.lang%>">
-
-<head>
-       <meta charset="utf-8">
-       <title>
-               <%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> -
-               LuCI</title>
-       <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
-       <meta name="format-detection" content="telephone=no, email=no" />
-       <meta name="apple-mobile-web-app-capable" content="yes">
-       <meta name="mobile-web-app-capable" content="yes">
-       <meta name="x5-fullscreen" content="true">
-       <meta name="full-screen" content="yes">
-       <meta name="x5-page-mode" content="app">
-       <meta name="browsermode" content="application">
-       <meta name="theme-color" content="#0099CC">
-       <meta name="msapplication-tap-highlight" content="no">
-       <meta name="msapplication-TileColor" content="#0099CC">
-
-       <meta name="application-name" content="<%=striptags( (boardinfo.hostname or " ?") ) %> - LuCI">
-       <meta name="apple-mobile-web-app-title" content="<%=striptags( (boardinfo.hostname or " ?") ) %> - LuCI">
-       <meta name="msapplication-TileImage" content="<%=media%>/logo.png" />
-       <link rel="icon" href="<%=media%>/logo.png" sizes="144x144">
-       <link rel="apple-touch-icon-precomposed" href="<%=media%>/logo.png" sizes="144x144">
-
-       <link rel="stylesheet" href="<%=media%>/cascade.css">
-       <link rel="shortcut icon" href="<%=media%>/favicon.ico">
-       <% if node and node.css then %>
-       <link rel="stylesheet" href="<%=resource%>/<%=node.css%>">
-       <% end -%>
-       <% if css then %>
-       <style title="text/css">
-               <%=css %>
-       </style>
-       <% end -%>
-       <script src="<%=resource%>/cbi.js"></script>
-       <script src="<%=resource%>/xhr.js"></script>
-       <script src="<%=media%>/js/ScrollY.js"></script>
-</head>
-
-<body class="lang_<%=luci.i18n.context.lang%> <%- if node then %><%= striptags( node.title ) %><%- end %> <% if luci.dispatcher.context.authsession then %>logged-in<% end %>">
-       <header>
-               <div class="fill">
-                       <div class="container">
-                               <span class="showSide"></span>
-                               <a class="brand" href="#"><%=boardinfo.hostname or "?"%></a>
-                               <div class="btn-con pull-right">
-                                       <% render_changes() %>
-                                       <span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()">
-                                               <span class="label success" id="xhr_poll_status_on"><span class="mobile-hide">
-                                                               <%:Auto Refresh%></span>
-                                                       <%:on%></span>
-                                               <span class="label" id="xhr_poll_status_off" style="display:none"><span class="mobile-hide">
-                                                               <%:Auto Refresh%></span>
-                                                       <%:off%></span>
-                                       </span>
-                                       <% render_logout() %>
-                               </div>
-                       </div>
-               </div>
-       </header>
-       <div class="main">
-               <div style="" class="loading"><span>
-                               <div class="loading-img">
-                                       <img src="<%=media%>/loading.svg">
-                               </div>Loading...
-                       </span></div>
-               <div class="main-left">
-                       <div class="nav-container">
-                               <a class="brand" href="#">
-                                       <%=boardinfo.hostname or "?"%></a>
-                               <div class="navbar-container" id="navBox">
-                                       <% render_topmenu() %>
-                               </div>
-                       </div>
-               </div>
-               <div class="main-right">
-                       <div id="maincontent">
-                               <div class="logoImg">                                                       
-                                        <img class="mobile-hide" src="<%=media%>/logo.png" alt="Rosy">                                                                 
-                                        <img src="<%=media%>/mobile-loginBG.png" class="PC-hide">
-                                       <a class="brand" href="#"><%=boardinfo.hostname or "?"%></a>                             
-                                </div>
-                               <div class="container">
-                                       <%- if luci.sys.process.info("uid") == 0 and luci.sys.user.getuser("root") and not luci.sys.user.getpasswd("root") then -%>
-                                       <div class="alert-message warning">
-                                               <h4>
-                                                       <%:No password set!%>
-                                               </h4>
-                                               <p>
-                                                       <%:There is no password set on this router. Please configure a root password to protect the web interface and enable SSH.%>
-                                               </p>
-                                               <div><a class="btn" href="<%=url("admin/system/admin")%>"> <%:Go to password configuration...%></a></div>
-                                       </div>
-                                       <%- end -%>
-
-                                       <noscript>
-                                               <div class="alert-message warning">
-                                                       <h4>
-                                                               <%:JavaScript required!%>
-                                                       </h4>
-                                                       <p>
-                                                               <%:You must enable JavaScript in your browser or LuCI will not work properly.%>
-                                                       </p>
-                                               </div>
-                                       </noscript>
-
-                                       <% if category then render_tabmenu(category, cattree) end %>
diff --git a/package/luci/themes/luci-theme-rosy/root/etc/uci-defaults/30_luci-theme-rosy b/package/luci/themes/luci-theme-rosy/root/etc/uci-defaults/30_luci-theme-rosy
deleted file mode 100755 (executable)
index 2657a29..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-uci batch <<-EOF
-       set luci.themes.Rosy=/luci-static/rosy
-       set luci.main.mediaurlbase=/luci-static/rosy
-       commit luci
-EOF
-exit 0
index 22e3eb13558181418859f35c9d0cdc11e92a2960..fc87f6f97d16aa616950a87cbb7217f9077bcfd7 100644 (file)
@@ -12,7 +12,7 @@ PKG_NAME:=firewall
 PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/firewall3.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/firewall3.git
 PKG_SOURCE_DATE:=2019-01-02
 PKG_SOURCE_VERSION:=70f8785b9ee364828e9a0f38275283024df621c2
 PKG_MIRROR_HASH:=0b1a7c88b3c3474127b5e5e61d5bf58345d02862d98c56e049face2ddd81bc88
index a7e8612c6ca8c53ee7e79fd5b13609b231959cb5..6fe6d567b91cd9c9d4c8799d04e1fa6c6a178216 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gre
 PKG_VERSION:=1
-PKG_RELEASE:=9
+PKG_RELEASE:=10
 PKG_LICENSE:=GPL-2.0
 
 include $(INCLUDE_DIR)/package.mk
index ca11e87cfd4502e547d1c255ec25223325d43a40..2bb1010b76aa30ecd07082e81c756089eb1273a3 100755 (executable)
@@ -16,7 +16,6 @@ gre_generic_setup() {
        local mtu ttl tos zone ikey okey icsum ocsum iseqno oseqno multicast
        json_get_vars mtu ttl tos zone ikey okey icsum ocsum iseqno oseqno multicast
 
-       [ -z "$zone" ] && zone="wan"
        [ -z "$multicast" ] && multicast=1
 
        proto_init_update "$link" 1
index 9bdb13c6bc7e5f6809a96274916c94715ab045e1..252534f198ed2c66dfcfc88db7812ac851ed75f3 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ipip
 PKG_VERSION:=1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_LICENSE:=GPL-2.0
 
 include $(INCLUDE_DIR)/package.mk
index f1c94d6eeddbeb47c566764998f4ce6504742b0d..15b1c978e31b1809021ce15aef4aa656b23886b7 100755 (executable)
@@ -47,8 +47,6 @@ proto_ipip_setup() {
                fi
        }
 
-       [ -z "$zone" ] && zone="wan"
-
        proto_init_update "ipip-$cfg" 1
 
        proto_add_tunnel
index 7dad44bdea474f825d87c59aa1ef0f1d31127b9f..a2c3f7e83bcf153961b350281e968c397e8df918 100644 (file)
@@ -4,10 +4,10 @@ PKG_NAME:=netifd
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
-PKG_SOURCE_DATE:=2018-12-16
-PKG_SOURCE_VERSION:=2750ce2e0a9177e024823332853c76dbd0937c98
-PKG_MIRROR_HASH:=08b278e3ebc13703a508a892625bdc77d377563752cd9dcfa2f3f30f7f737775
+PKG_SOURCE_URL=$(PROJECT_GIT)/netifd.git
+PKG_SOURCE_DATE:=2019-01-31
+PKG_SOURCE_VERSION:=5cd7215a09ad440f0d1b1d05df8deb403f945898
+PKG_MIRROR_HASH:=d5d048c76eb6e2aa607f8c4ef0139bbd6d13f263a624334007dccfeb6bc33eec
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 
 PKG_LICENSE:=GPL-2.0
diff --git a/package/network/config/soloscli/Makefile b/package/network/config/soloscli/Makefile
new file mode 100644 (file)
index 0000000..877a0f2
--- /dev/null
@@ -0,0 +1,45 @@
+#
+# Copyright (C) 2006-2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=soloscli
+PKG_VERSION:=1.04
+PKG_RELEASE:=2
+
+PKG_SOURCE:=solos-pci-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/openadsl
+PKG_HASH:=6379e6970a5c97fd5a223d024138ebb71b15d70e2ad1fe9da09edc5b2d760e1d
+PKG_LICENSE:=GPL-2.0
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/solos-pci-$(PKG_VERSION)
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/soloscli
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=Configuration utility for Solos ADSL2+ modems
+  DEPENDS:=+kmod-solos-pci
+  URL:=http://sourceforge.net/projects/openadsl
+endef
+
+define Package/soloscli/description
+  This package contains the soloscli utility
+  for interrogating Traverse Technologies' Solos ADSL2+ modems.
+endef
+
+define Package/soloscli/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/soloscli/soloscli $(1)/usr/bin/
+       $(INSTALL_BIN) ./files/solos-log-stats $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/etc/hotplug.d/atm
+       $(INSTALL_CONF) ./files/etc/hotplug.d/atm/15-solos-init $(1)/etc/hotplug.d/atm/
+endef
+
+$(eval $(call BuildPackage,soloscli))
diff --git a/package/network/config/soloscli/files/etc/hotplug.d/atm/15-solos-init b/package/network/config/soloscli/files/etc/hotplug.d/atm/15-solos-init
new file mode 100644 (file)
index 0000000..36d13ea
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+dialog() {
+       local tag="$(echo "$1" | cut -d= -f1)"
+       local value="$(echo "$1" | cut -d= -f2-)"
+       local response
+       
+       response="$(soloscli -s "$port" "$tag" "$value")"
+       [ $? -ne 0 ] && {
+               logger "soloscli($port): $tag '$value' returns $response"
+       }
+}
+
+if [ "$ACTION" = "add" ]; then
+       include /lib/network
+       scan_interfaces
+
+       case $DEVICENAME in
+       solos-pci[0-3])
+               port="${DEVICENAME#solos-pci}"
+               device="solos${port}"
+
+               config_list_foreach wan "$device" dialog
+               ;;
+       esac
+fi
diff --git a/package/network/config/soloscli/files/etc/uci-default/solos b/package/network/config/soloscli/files/etc/uci-default/solos
new file mode 100644 (file)
index 0000000..7f69da6
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+uci batch <<__EOF__
+
+delete network.wan.solos0
+
+add_list network.wan.solos0="ActivateLine=Abort"
+add_list network.wan.solos0="Retrain=EnableAll"
+add_list network.wan.solos0="DetectNoise=Enable"
+add_list network.wan.solos0="BisMCapability=Disable"
+add_list network.wan.solos0="BisACapability=Disable"
+add_list network.wan.solos0="ActivateLine=Start"
+
+commit network
+__EOF__
diff --git a/package/network/config/soloscli/files/solos-log-stats b/package/network/config/soloscli/files/solos-log-stats
new file mode 100644 (file)
index 0000000..2b75ee3
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+cd /sys/class/atm/ || exit 1
+
+for PORT in solos-pci* ; do
+
+    RXRATE=`cat $PORT/parameters/RxBitRate`
+    TXRATE=`cat $PORT/parameters/TxBitRate`
+    RXSNR=`cat $PORT/parameters/LocalSNRMargin | sed "s/ dB//"`
+    TXSNR=`cat $PORT/parameters/RemoteSNRMargin | sed "s/ dB//"`
+    RXERR=`cat $PORT/parameters/RSUnCorrectedErrorsDn`
+    TXERR=`cat $PORT/parameters/RSUnCorrectedErrorsUp`
+    RXFEC=`cat $PORT/parameters/RSCorrectedErrorsDn`
+    TXFEC=`cat $PORT/parameters/RSCorrectedErrorsUp`
+
+    echo "$RXRATE $RXSNR $RXERR $RXFEC / $TXRATE $TXSNR $TXERR $TXFEC" |
+       logger -t $PORT
+done
+
diff --git a/package/network/config/soloscli/patches/001-no-driver.patch b/package/network/config/soloscli/patches/001-no-driver.patch
new file mode 100644 (file)
index 0000000..95588aa
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -11,7 +11,7 @@ else
+ KDIR  ?= /lib/modules/$(shell uname -r)/build
+ PWD   := $(shell pwd)
+-all: soloscli driver
++all: soloscli
+ soloscli: soloscli/soloscli
diff --git a/package/network/config/soloscli/patches/002-cflags.patch b/package/network/config/soloscli/patches/002-cflags.patch
new file mode 100644 (file)
index 0000000..a7d6a86
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/soloscli/Makefile
++++ b/soloscli/Makefile
+@@ -4,9 +4,6 @@
+ # Last Mod: 2009-06-16
+ #
+-CC=gcc
+-CFLAGS=-Wall
+-
+ soloscli: soloscli.c soloscli.h
+ clean:
index 0a4657c94ee6adc340a23c26b792ad6fff1aa816..29b83ce234d8a098444ed74135926f458507ea0f 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=vti
 PKG_VERSION:=1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_LICENSE:=GPL-2.0
 
 include $(INCLUDE_DIR)/package.mk
index 0443800a0c8f06ee11a44bc719931f2295ccbf47..ebfd9d41e1466542a079f4c4d7adf26f3395e636 100755 (executable)
@@ -16,8 +16,6 @@ vti_generic_setup() {
        local mtu zone ikey
        json_get_vars mtu zone ikey okey
 
-       [ -z "$zone" ] && zone="wan"
-
        proto_init_update "$link" 1
 
        proto_add_tunnel
diff --git a/package/network/ipv6/464xlat/Makefile b/package/network/ipv6/464xlat/Makefile
new file mode 100644 (file)
index 0000000..9be09fa
--- /dev/null
@@ -0,0 +1,43 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=464xlat
+PKG_VERSION:=11
+
+PKG_SOURCE_DATE:=2018-01-16
+PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
+PKG_LICENSE:=GPL-2.0
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/464xlat
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=@IPV6 +kmod-nat46 +ip
+  TITLE:=464xlat CLAT support
+endef
+
+define Build/Prepare
+       $(call Build/Prepare/Default)
+       $(CP) ./src/* $(PKG_BUILD_DIR)/
+endef
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               CC="$(TARGET_CC)" \
+               CFLAGS="$(TARGET_CFLAGS) -Wall" \
+               LDFLAGS="$(TARGET_LDFLAGS)"
+endef
+
+define Package/464xlat/description
+  464xlat provides support to deploy limited IPv4 access services to mobile
+  and wireline IPv6-only edge networks without encapsulation (RFC6877)
+endef
+
+define Package/464xlat/install
+       $(INSTALL_DIR) $(1)/lib/netifd/proto
+       $(INSTALL_BIN) ./files/464xlat.sh $(1)/lib/netifd/proto/464xlat.sh
+       $(INSTALL_DIR) $(1)/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/464xlatcfg $(1)/sbin
+endef
+
+$(eval $(call BuildPackage,464xlat))
diff --git a/package/network/ipv6/464xlat/files/464xlat.sh b/package/network/ipv6/464xlat/files/464xlat.sh
new file mode 100755 (executable)
index 0000000..e5fcf7d
--- /dev/null
@@ -0,0 +1,111 @@
+#!/bin/sh
+# 464xlat.sh - 464xlat CLAT
+#
+# Copyright (c) 2015 Steven Barth <cyrus@openwrt.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2
+# as published by the Free Software Foundation
+#
+# This program 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 General Public License for more details.
+
+[ -n "$INCLUDE_ONLY" ] || {
+       . /lib/functions.sh
+       . /lib/functions/network.sh
+       . ../netifd-proto.sh
+       init_proto "$@"
+}
+
+proto_464xlat_setup() {
+       local cfg="$1"
+       local iface="$2"
+       local link="464-$cfg"
+
+       local ip6addr ip6prefix tunlink zone
+       json_get_vars ip6addr ip6prefix tunlink zone
+
+       [ -z "$zone" ] && zone="wan"
+
+       ( proto_add_host_dependency "$cfg" "::" "$tunlink" )
+
+       if [ -z "$tunlink" ] && ! network_find_wan6 tunlink; then
+               proto_notify_error "$cfg" "NO_WAN_LINK"
+               return
+       fi
+       network_get_device tundev "$tunlink"
+
+       ip6addr=$(464xlatcfg "$link" "$tundev" "$ip6prefix" 192.0.0.1 $ip6addr)
+       if [ -z "$ip6addr" ]; then
+               proto_notify_error "$cfg" "CLAT_CONFIG_FAILED"
+               return
+       fi
+
+       ip -6 rule del from all lookup local
+       ip -6 rule add from all lookup local pref 1
+       ip -6 rule add to $ip6addr lookup prelocal pref 0
+       echo "$ip6addr" > /tmp/464-$cfg-anycast
+
+       proto_init_update "$link" 1
+       proto_add_ipv4_route "0.0.0.0" 0 "" "" 2048
+       proto_add_ipv6_route $ip6addr 128 "" "" "" "" 128
+
+       proto_add_data
+       [ "$zone" != "-" ] && json_add_string zone "$zone"
+
+       json_add_array firewall
+               json_add_object ""
+                       json_add_string type nat
+                       json_add_string target SNAT
+                       json_add_string family inet
+                       json_add_string snat_ip 192.0.0.1
+               json_close_object
+               json_add_object ""
+                       json_add_string type rule
+                       json_add_string family inet6
+                       json_add_string proto all
+                       json_add_string direction in
+                       json_add_string dest "$zone"
+                       json_add_string src "$zone"
+                       json_add_string src_ip $ip6addr
+                       json_add_string target ACCEPT
+               json_close_object
+       json_close_array
+       proto_close_data
+
+       proto_send_update "$cfg"
+}
+
+proto_464xlat_teardown() {
+       local cfg="$1"
+       local link="464-$cfg"
+
+       [ -f /tmp/464-$cfg-anycast ] || return
+       local ip6addr=$(cat /tmp/464-$cfg-anycast)
+
+       464xlatcfg "$link"
+
+       rm -rf /tmp/464-$cfg-anycast
+       [ -n "$ip6addr" ] && ip -6 rule del to $ip6addr lookup prelocal
+
+       if [ -z "$(ls /tmp/464-*-anycast 2>&-)" ]; then
+               ip -6 rule del from all lookup local
+               ip -6 rule add from all lookup local pref 0
+       fi
+}
+
+proto_464xlat_init_config() {
+       no_device=1
+       available=1
+
+       proto_config_add_string "ip6prefix"
+       proto_config_add_string "ip6addr"
+       proto_config_add_string "tunlink"
+       proto_config_add_string "zone"
+}
+
+[ -n "$INCLUDE_ONLY" ] || {
+        add_protocol 464xlat
+}
diff --git a/package/network/ipv6/464xlat/src/464xlatcfg.c b/package/network/ipv6/464xlat/src/464xlatcfg.c
new file mode 100644 (file)
index 0000000..288733e
--- /dev/null
@@ -0,0 +1,154 @@
+/* 464xlatcfg.c
+ *
+ * Copyright (c) 2015 Steven Barth <cyrus@openwrt.org>
+ * Copyright (c) 2017 Hans Dedecker <dedeckeh@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation
+ *
+ * This program 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 General Public License for more details.
+ */
+
+#include <netinet/icmp6.h>
+#include <netinet/in.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <net/if.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <signal.h>
+#include <stdio.h>
+#include <netdb.h>
+
+static void sighandler(__attribute__((unused)) int signal)
+{
+}
+
+int main(int argc, const char *argv[])
+{
+       char buf[INET6_ADDRSTRLEN], prefix[INET6_ADDRSTRLEN + 4];
+       int pid;
+
+       if (argc <= 1) {
+               fprintf(stderr, "Usage: %s <name> [ifname] [ipv6prefix] [ipv4addr] [ipv6addr]\n", argv[0]);
+               return 1;
+       }
+
+       snprintf(buf, sizeof(buf), "/var/run/%s.pid", argv[1]);
+       FILE *fp = fopen(buf, "r");
+       if (fp) {
+               if (fscanf(fp, "%d", &pid) == 1)
+                       kill(pid, SIGTERM);
+
+               unlink(buf);
+               fclose(fp);
+       }
+
+       if (!argv[2])
+               return 0;
+
+       if (!argv[3] || !argv[4] || !(fp = fopen(buf, "wx")))
+               return 1;
+
+       signal(SIGTERM, SIG_DFL);
+       setvbuf(fp, NULL, _IOLBF, 0);
+       fprintf(fp, "%d\n", getpid());
+
+       prefix[sizeof(prefix) - 1] = 0;
+       strncpy(prefix, argv[3], sizeof(prefix) - 1);
+
+       if (!prefix[0]) {
+               struct addrinfo hints = { .ai_family = AF_INET6 }, *res;
+               if (getaddrinfo("ipv4only.arpa", NULL, &hints, &res) || !res) {
+                       sleep(3);
+                       if (getaddrinfo("ipv4only.arpa", NULL, &hints, &res) || !res)
+                               return 2;
+               }
+
+               struct sockaddr_in6 *sin6 = (struct sockaddr_in6*)res->ai_addr;
+               inet_ntop(AF_INET6, &sin6->sin6_addr, prefix, sizeof(prefix) - 4);
+               strcat(prefix, "/96");
+               freeaddrinfo(res);
+       }
+
+       int i = 0;
+       int sock;
+       struct sockaddr_in6 saddr;
+
+       do {
+               socklen_t saddrlen = sizeof(saddr);
+               struct icmp6_filter filt;
+
+               sock = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
+               ICMP6_FILTER_SETBLOCKALL(&filt);
+               setsockopt(sock, IPPROTO_ICMPV6, ICMP6_FILTER, &filt, sizeof(filt));
+               setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, argv[2], strlen(argv[2]));
+               memset(&saddr, 0, sizeof(saddr));
+               saddr.sin6_family = AF_INET6;
+               saddr.sin6_addr.s6_addr32[0] = htonl(0x2001);
+               saddr.sin6_addr.s6_addr32[1] = htonl(0xdb8);
+               if (connect(sock, (struct sockaddr*)&saddr, sizeof(saddr)) ||
+                               getsockname(sock, (struct sockaddr*)&saddr, &saddrlen))
+                       return 3;
+
+               if (!IN6_IS_ADDR_LINKLOCAL(&saddr.sin6_addr) || argv[5])
+                       break;
+
+               close(sock);
+               sleep(3);
+               i++;
+       } while (i < 3);
+
+       struct ipv6_mreq mreq = {saddr.sin6_addr, if_nametoindex(argv[2])};
+       if (!argv[5]) {
+               if (IN6_IS_ADDR_LINKLOCAL(&mreq.ipv6mr_multiaddr))
+                       return 5;
+
+               srandom(mreq.ipv6mr_multiaddr.s6_addr32[0] ^ mreq.ipv6mr_multiaddr.s6_addr32[1] ^
+                               mreq.ipv6mr_multiaddr.s6_addr32[2] ^ mreq.ipv6mr_multiaddr.s6_addr32[3]);
+               mreq.ipv6mr_multiaddr.s6_addr32[2] = random();
+               mreq.ipv6mr_multiaddr.s6_addr32[3] = random();
+       } else if (inet_pton(AF_INET6, argv[5], &mreq.ipv6mr_multiaddr) != 1) {
+               return 1;
+       }
+
+       if (setsockopt(sock, SOL_IPV6, IPV6_JOIN_ANYCAST, &mreq, sizeof(mreq)))
+               return 3;
+
+       inet_ntop(AF_INET6, &mreq.ipv6mr_multiaddr, buf, sizeof(buf));
+       fputs(buf, stdout);
+       fputc('\n', stdout);
+       fflush(stdout);
+
+       FILE *nat46 = fopen("/proc/net/nat46/control", "w");
+       if (!nat46 || fprintf(nat46, "add %s\nconfig %s local.style NONE local.v4 %s/32 local.v6 %s/128 "
+                       "remote.style RFC6052 remote.v6 %s\n", argv[1], argv[1], argv[4], buf, prefix) < 0 ||
+                       fclose(nat46))
+               return 4;
+
+       if (!(pid = fork())) {
+               fclose(fp);
+               fclose(stdin);
+               fclose(stdout);
+               fclose(stderr);
+               chdir("/");
+               setsid();
+               signal(SIGTERM, sighandler);
+               pause();
+
+               nat46 = fopen("/proc/net/nat46/control", "w");
+               if (nat46) {
+                       fprintf(nat46, "del %s\n", argv[1]);
+                       fclose(nat46);
+               }
+       } else {
+               rewind(fp);
+               fprintf(fp, "%d\n", pid);
+       }
+
+       return 0;
+}
diff --git a/package/network/ipv6/464xlat/src/Makefile b/package/network/ipv6/464xlat/src/Makefile
new file mode 100644 (file)
index 0000000..3950a6b
--- /dev/null
@@ -0,0 +1,8 @@
+all: 464xlatcfg
+
+464xlatcfg: 464xlatcfg.c
+       $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
+
+clean:
+       rm -f 464xlatcfg
+
index 10dbe97b4889d16615328d7a1a75f44604e592ec..5a18c7b01f05ebb5aa859313e429edfa8d41ea95 100644 (file)
@@ -18,16 +18,17 @@ include $(INCLUDE_DIR)/cmake.mk
 define Package/map
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=@IPV6 +kmod-ip6-tunnel +libubox +libubus +iptables-mod-conntrack-extra
-  TITLE:=MAP-E and Lightweight 4over6 configuration support
+  DEPENDS:=@IPV6 +kmod-ip6-tunnel +libubox +libubus +iptables-mod-conntrack-extra +kmod-nat46
+  TITLE:=MAP-E/MAP-T and Lightweight 4over6 configuration support
   MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
+  PROVIDES:=map-t
 endef
 
 define Package/map/description
- Provides support for MAP-E (draft-ietf-softwire-map) and
- Lightweight 4over6 (draft-ietf-softwire-lw4over6) in /etc/config/network.
- Refer to http://wiki.openwrt.org/doc/uci/network for
- configuration details.
+ Provides support for MAP-E (RFC7597), MAP-T (RFC7599) and
+ Lightweight 4over6 (RFC7596) in /etc/config/network.
+ MAP combines address and port translation with the tunneling
+ of IPv4 packets over an IPv6 network
 endef
 
 define Package/map/install
index e17646668af5791d0184e1fcbe5340a5558e5100..9d961c6e81ec3a15a0357e868d8e732c8d4265dd 100644 (file)
@@ -11,7 +11,7 @@ PKG_NAME:=odhcp6c
 PKG_RELEASE:=16
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcp6c.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/odhcp6c.git
 PKG_SOURCE_DATE:=2019-01-11
 PKG_SOURCE_VERSION:=d2e247d8d87ecf8c60fcf0acdad05667bd379521
 PKG_MIRROR_HASH:=514e9536b47d1cd34659ed88bd48751ec8219194f7f4f3fa23636ae7fb13c2f8
diff --git a/package/network/ipv6/thc-ipv6/Makefile b/package/network/ipv6/thc-ipv6/Makefile
deleted file mode 100644 (file)
index 91bacf6..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#
-# Copyright (C) 2009-2015 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=thc-ipv6
-PKG_VERSION:=2.7
-PKG_RELEASE:=1
-PKG_LICENSE:=GPL-3.0
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@GITHUB/vanhauser-thc/THC-Archive/master/Tools
-PKG_HASH:=440a3ae98b57100c397ec4f8634468dbbb0c3b48788c6b74af2a597a90544a96
-
-PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
-
-include $(INCLUDE_DIR)/package.mk
-
-THC_APPLETS := \
-       address6 alive6 covert_send6 covert_send6d denial6 detect-new-ip6     \
-       detect_sniffer6 dnsdict6 dnsrevenum6 dos-new-ip6                      \
-       dump_router6 exploit6 fake_advertise6 fake_dhcps6 fake_dns6d          \
-       fake_dnsupdate6 fake_mipv6 fake_mld26 fake_mld6 fake_mldrouter6       \
-       fake_router26 fake_router6 fake_solicitate6 flood_advertise6          \
-       flood_dhcpc6 flood_mld26 flood_mld6 flood_mldrouter6 flood_router26   \
-       flood_router6 flood_solicitate6 fragmentation6 fuzz_ip6 fuzz_dhcpc6   \
-       fuzz_dhcps6 implementation6 implementation6d inverse_lookup6          \
-       kill_router6 ndpexhaust6 node_query6 parasite6 passive_discovery6     \
-       randicmp6 redir6 rsmurf6 sendpees6 sendpeesmp6 smurf6 thcping6        \
-       toobig6 trace6
-
-THC_DEPENDS_dnsdict6 := +libpthread
-THC_DEPENDS_thcping6 := +librt
-
-define BuildTool
-  define Package/thc-ipv6-$(subst _,-,$(1))
-    TITLE:=THC-IPv6 $(1) utility
-    SECTION:=net
-    CATEGORY:=Network
-    DEPENDS:=+libpcap $(THC_DEPENDS_$(1))
-    URL:=https://github.com/vanhauser-thc/thc-ipv6
-    SUBMENU:=THC-IPv6 attack and analyzing toolkit
-  endef
-
-  define Package/thc-ipv6-$(subst _,-,$(1))/description
-    This package contains the $(1) utility of the THC-IPv6 toolkit.
-  endef
-
-  define Package/thc-ipv6-$(subst _,-,$(1))/install
-       $(INSTALL_DIR) $$(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(1) $$(1)/usr/sbin/$(1)
-  endef
-
-  $$(eval $$(call BuildPackage,thc-ipv6-$(subst _,-,$(1))))
-endef
-
-$(foreach a,$(THC_APPLETS),$(eval $(call BuildTool,$(a))))
diff --git a/package/network/ipv6/thc-ipv6/patches/000-cflags_override.patch b/package/network/ipv6/thc-ipv6/patches/000-cflags_override.patch
deleted file mode 100644 (file)
index e1c36b6..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -urN thc-ipv6-2.7/Makefile thc-ipv6-2.7.new/Makefile
---- thc-ipv6-2.7/Makefile      2014-12-27 05:05:30.000000000 -0800
-+++ thc-ipv6-2.7.new/Makefile  2017-02-04 20:55:51.679898101 -0800
-@@ -3,7 +3,7 @@
- CC=gcc
- #CFLAGS=-g
--CFLAGS=-O2
-+CFLAGS?=-O2
- CFLAGS+=$(if $(HAVE_SSL),-D_HAVE_SSL,)
- LDFLAGS+=-lpcap $(if $(HAVE_SSL),-lssl -lcrypto,)
- PROGRAMS=parasite6 dos-new-ip6 detect-new-ip6 fake_router6 fake_advertise6 fake_solicitate6 fake_mld6 fake_mld26 fake_mldrouter6 flood_mldrouter6 fake_mipv6 redir6 smurf6 alive6 toobig6 rsmurf6 implementation6 implementation6d sendpees6 sendpeesmp6 randicmp6 fuzz_ip6 flood_mld6 flood_mld26 flood_router6 flood_advertise6 flood_solicitate6 trace6 exploit6 denial6 fake_dhcps6 flood_dhcpc6 fake_dns6d fragmentation6 kill_router6 fake_dnsupdate6 ndpexhaust6 detect_sniffer6 dump_router6 fake_router26 flood_router26 passive_discovery6 dnsrevenum6 inverse_lookup6 node_query6 address6 covert_send6 covert_send6d inject_alive6 firewall6 ndpexhaust26 fake_pim6 thcsyn6 redirsniff6 flood_redir6 four2six dump_dhcp6 fuzz_dhcps6 flood_rs6 fuzz_dhcpc6
diff --git a/package/network/ipv6/thc-ipv6/patches/100-no-ssl.patch b/package/network/ipv6/thc-ipv6/patches/100-no-ssl.patch
deleted file mode 100644 (file)
index 1ef1f66..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -1,5 +1,5 @@
- # Comment out if openssl-dev is not present
--HAVE_SSL=yes
-+#HAVE_SSL=yes
- CC=gcc
- #CFLAGS=-g
diff --git a/package/network/services/aria2/Config.in b/package/network/services/aria2/Config.in
deleted file mode 100644 (file)
index c5b0ac8..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-menu "Aria2 Configuration"
-       depends on PACKAGE_aria2
-
-choice
-       prompt "SSL Library"
-       default ARIA2_OPENSSL
-
-config ARIA2_OPENSSL
-       bool "OpenSSL"
-
-config ARIA2_GNUTLS
-       bool "GnuTLS"
-
-config ARIA2_NOSSL
-       bool "No SSL Support"
-
-endchoice
-
-choice
-       prompt "Crypto Library"
-       depends on !ARIA2_OPENSSL
-       default ARIA2_NOCRYPTO
-
-config ARIA2_NETTLE
-       bool "Nettle"
-
-config ARIA2_LIBGCRYPT
-       bool "Libgcrypt"
-
-config ARIA2_NOCRYPTO
-       bool "No Crypto Library"
-
-endchoice
-
-choice
-       prompt "XML Library"
-       default ARIA2_NOXML
-
-config ARIA2_LIBXML2
-       bool "Libxml2"
-
-config ARIA2_EXPAT
-       bool "Expat"
-
-config ARIA2_NOXML
-       bool "No XML Library"
-
-endchoice
-
-config ARIA2_GMP
-       bool "GNU Multiple Precision Arithmetic Library"
-       depends on ARIA2_NETTLE
-       default n
-
-config ARIA2_BITTORRENT
-       bool "Enable Bittorrent Support"
-       depends on ARIA2_OPENSSL || ARIA2_LIBGCRYPT || \
-               (ARIA2_NETTLE && ARIA2_GMP)
-       default y
-
-config ARIA2_METALINK
-       bool "Enable Metalink Support"
-       depends on !ARIA2_NOXML
-       default n
-
-config ARIA2_SFTP
-       bool "Enable SFTP Support"
-       default n
-
-config ARIA2_ASYNC_DNS
-       bool "Enable Async DNS Support"
-       default n
-
-config ARIA2_COOKIE
-       bool "Enable Firefox3/Chromium Cookie Support"
-       default n
-
-config ARIA2_WEBSOCKET
-       bool "Enable JSON-RPC over WebSocket Support"
-       depends on ARIA2_OPENSSL || ARIA2_LIBGCRYPT || ARIA2_NETTLE
-       default y
-
-endmenu
diff --git a/package/network/services/aria2/Makefile b/package/network/services/aria2/Makefile
deleted file mode 100644 (file)
index 765123f..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-#
-# Copyright (C) 2012-2018 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=aria2
-PKG_VERSION:=1.34.0
-PKG_RELEASE:=5
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=https://github.com/aria2/aria2/releases/download/release-$(PKG_VERSION)/
-PKG_HASH:=3a44a802631606e138a9e172a3e9f5bcbaac43ce2895c1d8e2b46f30487e77a3
-PKG_INSTALL:=1
-PKG_BUILD_PARALLEL:=1
-PKG_USE_MIPS16:=0
-
-PKG_MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>, \
-       Hsing-Wang Liao <kuoruan@gmail.com>
-PKG_LICENSE:=GPLv2
-PKG_LICENSE_FILES:=COPYING
-
-PKG_CONFIG_DEPENDS := \
-       CONFIG_ARIA2_NOSSL \
-       CONFIG_ARIA2_OPENSSL \
-       CONFIG_ARIA2_GNUTLS \
-       CONFIG_ARIA2_NOCRYPTO \
-       CONFIG_ARIA2_NETTLE \
-       CONFIG_ARIA2_LIBGCRYPT \
-       CONFIG_ARIA2_LIBXML2 \
-       CONFIG_ARIA2_EXPAT \
-       CONFIG_ARIA2_GMP \
-       CONFIG_ARIA2_BITTORRENT \
-       CONFIG_ARIA2_METALINK \
-       CONFIG_ARIA2_SFTP \
-       CONFIG_ARIA2_ASYNC_DNS \
-       CONFIG_ARIA2_COOKIE \
-       CONFIG_ARIA2_WEBSOCKET
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/aria2/config
-  source "$(SOURCE)/Config.in"
-endef
-
-define Package/aria2
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=File Transfer
-  TITLE:=lightweight download utility
-  URL:=https://aria2.github.io/
-  DEPENDS:=+zlib +libstdcpp +ARIA2_OPENSSL:libopenssl +ARIA2_GNUTLS:libgnutls \
-       +ARIA2_NETTLE:libnettle +ARIA2_LIBGCRYPT:libgcrypt +ARIA2_GMP:libgmp \
-       +ARIA2_LIBXML2:libxml2 +ARIA2_EXPAT:libexpat +ARIA2_SFTP:libssh2 \
-       +ARIA2_ASYNC_DNS:libcares +ARIA2_COOKIE:libsqlite3
-  USERID:=aria2=6800:aria2=6800
-endef
-
-define Package/aria2/description
-  aria2 is a lightweight multi-protocol & multi-source command-line download
-  utility
-endef
-
-CONFIGURE_ARGS += \
-       --disable-nls \
-       $(if $(CONFIG_ARIA2_NOSSL),--disable,--enable)-ssl \
-       $(if $(CONFIG_ARIA2_BITTORRENT),--enable,--disable)-bittorrent \
-       $(if $(CONFIG_ARIA2_METALINK),--enable,--disable)-metalink \
-       $(if $(CONFIG_ARIA2_WEBSOCKET),--enable,--disable)-websocket \
-       $(if $(CONFIG_ARIA2_OPENSSL),--with,--without)-openssl \
-       $(if $(CONFIG_ARIA2_GNUTLS),--with,--without)-gnutls \
-       $(if $(CONFIG_ARIA2_NETTLE),--with,--without)-libnettle \
-       $(if $(CONFIG_ARIA2_LIBGCRYPT),--with,--without)-libgcrypt \
-       $(if $(CONFIG_ARIA2_GMP),--with,--without)-libgmp \
-       $(if $(CONFIG_ARIA2_LIBXML2),--with,--without)-libxml2 \
-       $(if $(CONFIG_ARIA2_EXPAT),--with,--without)-libexpat \
-       $(if $(CONFIG_ARIA2_SFTP),--with,--without)-libssh2 \
-       $(if $(CONFIG_ARIA2_ASYNC_DNS),--with,--without)-libcares \
-       $(if $(CONFIG_ARIA2_COOKIE),--with,--without)-sqlite3 \
-       --without-libuv \
-       --with-libz
-
-TARGET_CXXFLAGS += -ffunction-sections -fdata-sections -flto
-TARGET_LDFLAGS += -Wl,--gc-sections -flto
-
-define Package/aria2/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aria2c $(1)/usr/bin
-
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/aria2.init $(1)/etc/init.d/aria2
-
-       $(INSTALL_DIR) $(1)/etc/config
-       $(INSTALL_CONF) ./files/aria2.conf $(1)/etc/config/aria2
-endef
-
-$(eval $(call BuildPackage,aria2))
diff --git a/package/network/services/aria2/files/aria2.conf b/package/network/services/aria2/files/aria2.conf
deleted file mode 100644 (file)
index 108a30e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-
-# You can use most aria2 command-line options, replace '-' with '_'.
-# eg. 'rpc-secret' ==> 'rpc_secret'
-#
-# We do not support all options at this time. But you can add any option
-# with 'list extra_settings'.
-#
-# You can also add new config sections to define multi instance.
-#
-config aria2 'main'
-       option enabled '0'
-       option user 'aria2'
-       option dir '/mnt/sda1/aria2'
-       option config_dir '/var/etc/aria2'
-       option bt_enable_lpd 'true'
-       option enable_dht 'true'
-       option follow_torrent 'true'
-       option file_allocation 'none'
-       option save_session_interval '30'
-
-       # Add addition Headers here.
-       # eg. list header 'Content-Encoding: gzip'
-       list header ''
-
-       # Add BT trackers here.
-       # eg. list bt_tracker 'http://tracker.example.com/announce'
-       list bt_tracker ''
-
-       # Add extra settings here.
-       # eg. list extra_settings 'option=value'
-       list extra_settings ''
diff --git a/package/network/services/aria2/files/aria2.init b/package/network/services/aria2/files/aria2.init
deleted file mode 100755 (executable)
index 99e2476..0000000
+++ /dev/null
@@ -1,350 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2016-2017 Hsing-wang Liao <kuoruan@gmail.com>
-# Licensed to the public under the Apache License 2.0.
-
-START=99
-USE_PROCD=1
-
-NAME=aria2
-PROG=/usr/bin/aria2c
-
-_info() {
-       logger -p daemon.info -t "$NAME" "$*"
-}
-
-_err() {
-       logger -p daemon.err -t "$NAME" "$*"
-}
-
-_make_dir() {
-       local d
-       for d in "$@"; do
-               if [ ! -d "$d" ]; then
-                       mkdir -p "$d" 2>/dev/null || return 1
-               fi
-       done
-
-       return 0
-}
-
-_create_file() {
-       touch "$@" 2>/dev/null
-}
-
-_change_owner() {
-       local u="$1"; shift
-
-       local d
-       for d in "$@"; do
-               if [ -f "$d" ]; then
-                       chown "$u" "$d" 2>/dev/null || return 1
-               elif [ -d "$d" ]; then
-                       chown -R "$u" "$d" 2>/dev/null || return 1
-               fi
-       done
-
-       return 0
-}
-
-_change_file_mode() {
-       local mod="$1"; shift
-       chmod "$mod" "$@" 2>/dev/null
-}
-
-_reset_dir_mode() {
-       local d
-       for d in "$@"; do
-               if [ -d "$d" ]; then
-                       find "$d" -type d -exec chmod 755 {} \; 2>/dev/null
-                       find "$d" -type f -exec chmod 644 {} \; 2>/dev/null
-               fi
-       done
-}
-
-append_options() {
-       local o; local v
-       for o in "$@"; do
-               v="$(eval echo "\$$o")"
-               [ -n "$v" ] && \
-                       echo "${o//_/-}=$v" >>"$config_file_tmp"
-       done
-}
-
-append_setting() {
-       local s="$1"
-       [ -n "$s" ] && \
-               echo "$s" >>"$config_file_tmp"
-}
-
-append_header() {
-       local h="$1"
-       [ -n "$h" ] && \
-               echo "header=\"${h}\"" >>"$config_file_tmp"
-}
-
-aria2_validate() {
-       uci_validate_section "$NAME" aria2 "$1" \
-               'enabled:bool:0' \
-               'enable_logging:bool' \
-               'enable_proxy:bool' \
-               'config_dir:string:/var/etc/aria2' \
-               'user:string' \
-               'all_proxy:string' \
-               'all_proxy_passwd:string' \
-               'all_proxy_user:string' \
-               'auto_save_interval:range(0,600)' \
-               'bt_enable_lpd:or("true","false")' \
-               'bt_max_open_files:uinteger' \
-               'bt_max_peers:uinteger' \
-               'bt_remove_unselected_file:or("true","false")' \
-               'bt_request_peer_speed_limit:string' \
-               'bt_save_metadata:or("true","false")' \
-               'bt_seed_unverified:or("true","false")' \
-               'bt_stop_timeout:uinteger' \
-               'bt_tracker:list(string)' \
-               'ca_certificate:file' \
-               'certificate:file' \
-               'check_certificate:or("true","false"):true' \
-               'connect_timeout:uinteger' \
-               'dht_listen_port:string' \
-               'dir:string' \
-               'disable_ipv6:or("true","false")' \
-               'disk_cache:string' \
-               'enable_dht:or("true","false"):true' \
-               'enable_dht6:or("true","false")' \
-               'enable_peer_exchange:or("true","false")' \
-               'event_poll:or("epoll","kqueue","port","poll","select")' \
-               'file_allocation:or("none","prealloc","trunc","falloc")' \
-               'follow_torrent:or("true","false","mem")' \
-               'force_save:or("true","false")' \
-               'http_accept_gzip:or("true","false")' \
-               'http_no_cache:or("true","false")' \
-               'listen_port:string' \
-               'log:string' \
-               'log_level:or("debug","info","notice","warn","error")' \
-               'lowest_speed_limit:string' \
-               'max_concurrent_downloads:uinteger' \
-               'max_connection_per_server:uinteger' \
-               'max_download_limit:string' \
-               'max_overall_download_limit:string' \
-               'max_overall_upload_limit:string' \
-               'max_tries:uinteger' \
-               'max_upload_limit:string' \
-               'min_split_size:string' \
-               'pause:or("true","false")' \
-               'pause_metadata:or("true","false")' \
-               'peer_id_prefix:string' \
-               'private_key:file' \
-               'retry_wait:uinteger' \
-               'rpc_auth_method:or("none","user_pass","token")' \
-               'rpc_certificate:file' \
-               'rpc_listen_port:range(1024,65535)' \
-               'rpc_passwd:string' \
-               'rpc_private_key:file' \
-               'rpc_secret:string' \
-               'rpc_secure:or("true","false")' \
-               'rpc_user:string' \
-               'save_session_interval:uinteger' \
-               'seed_ratio:ufloat' \
-               'seed_time:ufloat' \
-               'split:uinteger' \
-               'timeout:uinteger' \
-               'user_agent:string'
-}
-
-aria2_start() {
-       local section="$1"
-       aria2_validate "$section" || { _err "Validation failed."; return 1; }
-
-       [ "$enabled" = "1" ] || { _info "Instance \"${section}\" disabled."; return 1; }
-       [ -n "$dir" ] || { _err "Please set downlod dir."; return 1; }
-       [ -d "$dir" ] || { _err "Please create downlod dir first."; return 1; }
-
-       config_file="${config_dir}/${NAME}.conf.${section}"
-       config_file_tmp="${config_dir}/${NAME}.conf.tmp"
-       session_file="${config_dir}/${NAME}.session.${section}"
-
-       _make_dir "$config_dir" || {
-               _err "Can't create config dir: ${config_dir}"
-               return 1
-       }
-
-       _create_file "$session_file" "$config_file" "$config_file_tmp" || {
-               _err "Can't create files: ${session_file}, ${config_file}, ${config_file_tmp}"
-               return 1
-       }
-
-       # create tmp file
-       cat >"$config_file_tmp" <<-EOF
-               # Auto generated file, changes to this file will lost.
-       EOF
-
-       append_setting "dir=${dir}"
-       append_setting "enable-rpc=true"
-       append_setting "rpc-allow-origin-all=true"
-       append_setting "rpc-listen-all=true"
-       append_setting "quiet=true"
-       append_setting "continue=true"
-       append_setting "input-file=${session_file}"
-       append_setting "save-session=${session_file}"
-
-       if [ -z "$enable_logging" ]; then
-               append_options "log" "log_level"
-       elif [ "$enable_logging" = "1" ]; then
-               log=${log:-"/var/log/aria2.log"}
-
-               local log_dir
-               log_dir="$(dirname "$log")"
-
-               _make_dir "$log_dir" || {
-                       _err "Can't create log dir: ${log_dir}"
-                       return 1
-               }
-
-               # create or clear log file
-               echo >"$log"
-
-               append_setting "log=${log}"
-               append_options "log_level"
-       fi
-
-       if [ -z "$enable_proxy" ] || [ "$enable_proxy" = "1" ]; then
-               append_options "all_proxy" "all_proxy_user" "all_proxy_passwd"
-       fi
-
-       unset_auth_method() {
-               uci -q batch <<-EOF
-                       set ${NAME}.${section}.rpc_auth_method=""
-                       commit $NAME
-               EOF
-       }
-
-       if [ -z "$rpc_auth_method" ]; then
-               if [ -n "$rpc_secret" ]; then
-                       append_setting "rpc-secret=${rpc_secret}"
-               elif [ -n "$rpc_user" ]; then
-                       append_setting "rpc-user=${rpc_user}"
-                       append_setting "rpc-passwd=${rpc_passwd}"
-               else
-                       _info "It is recommand to set RPC secret."
-               fi
-       elif [ "$rpc_auth_method" = "token" ]; then
-               if [ -n "$rpc_secret" ]; then
-                       append_setting "rpc-secret=${rpc_secret}"
-               else
-                       unset_auth_method
-               fi
-       elif [ "$rpc_auth_method" = "user_pass" ]; then
-               if [ -n "$rpc_user" ]; then
-                       append_setting "rpc-user=${rpc_user}"
-                       append_setting "rpc-passwd=${rpc_passwd}"
-               else
-                       _info "Please set RPC user."
-                       unset_auth_method
-               fi
-       fi
-
-       if [ ."$rpc_secure" = ."true" ] && [ -n "$rpc_certificate" ]; then
-               append_setting "rpc-secure=true"
-               append_options "rpc_certificate" "rpc_private_key"
-       fi
-
-       if [ ."$check_certificate" = ."true" ]; then
-               append_setting "check-certificate=true"
-               append_options "ca_certificate"
-       elif [ ."$check_certificate" = ."false" ]; then
-               append_setting "check-certificate=false"
-       fi
-
-       if [ ."$enable_dht" = ."true" ]; then
-               dht_file="${config_dir}/dht.dat.${section}"
-               _create_file "$dht_file" || {
-                       _err "Can't create DHT file: ${dht_file}"
-                       return 1
-               }
-
-               append_setting "enable-dht=true"
-               append_setting "dht-file-path=${dht_file}"
-       fi
-
-       if [ ."$enable_dht6" = ."true" ] && [ ."$disable_ipv6" != ."true" ]; then
-               dht6_file="${config_dir}/dht6.dat.${section}"
-               _create_file "$dht6_file" || {
-                       _err "Can't create DHT6 file: ${dht6_file}"
-                       return 1
-               }
-
-               append_setting "enable-dht6=true"
-               append_setting "dht-file-path6=${dht6_file}"
-       fi
-
-       if [ -n "$bt_tracker" ]; then
-               local bt_tracker_list; local t
-               for t in $bt_tracker; do
-                       if [ -z "$bt_tracker_list" ]; then
-                               bt_tracker_list="$t"
-                       else
-                               bt_tracker_list="${bt_tracker_list},${t}"
-                       fi
-               done
-
-               append_setting "bt-tracker=${bt_tracker_list}"
-       fi
-
-       append_options "auto_save_interval" "bt_enable_lpd" "bt_max_open_files" "bt_max_peers" \
-               "bt_remove_unselected_file" "bt_request_peer_speed_limit" "bt_save_metadata" "bt_seed_unverified" \
-               "bt_stop_timeout" "certificate" "connect_timeout" "dht_listen_port" "disable_ipv6" "disk_cache" \
-               "enable_peer_exchange" "event_poll" "file_allocation" "follow_torrent" "force_save" "http_accept_gzip" \
-               "http_no_cache" "listen_port" "lowest_speed_limit" "max_concurrent_downloads" "max_connection_per_server" \
-               "max_download_limit" "max_overall_download_limit" "max_overall_upload_limit" "max_tries" \
-               "max_upload_limit" "min_split_size" "pause" "pause_metadata" "peer_id_prefix" "private_key" \
-               "retry_wait" "rpc_listen_port" "save_session_interval" "seed_ratio" "seed_time" "split" "timeout" \
-               "user_agent"
-
-       config_list_foreach "$section" "header" append_header
-       config_list_foreach "$section" "extra_settings" append_setting
-
-       sed '/^$/d' "$config_file_tmp" >"$config_file"
-       rm -f "$config_file_tmp"
-
-       _reset_dir_mode "$config_dir"
-       _change_file_mode 600 "$config_file"
-
-       if [ -n "$user" ]; then
-               if ( user_exists "$user" && _change_owner "$user" "$config_dir" "$log" ); then
-                               _info "Aria2 will run with user '${user}'."
-                               if [ "$user" != "root" ]; then
-                                       _info "Please make sure user '${user}' has write access to download dir: ${dir}"
-                               fi
-               else
-                       _info "Set run user to '${user}' failed, default user will be used."
-                       user=
-               fi
-       fi
-
-       procd_open_instance "${NAME}.${section}"
-       procd_set_param command "$PROG"
-       procd_append_param command --conf-path="${config_file}"
-
-       procd_set_param respawn
-       procd_set_param stdout 1
-       procd_set_param stderr 1
-
-       procd_set_param file "$config_file"
-       [ -n "$user" ] && \
-               procd_set_param user "$user"
-
-       procd_add_jail "${NAME}.${section}" log
-       procd_add_jail_mount "$config_file"
-       procd_add_jail_mount_rw "$dir" "$config_dir" "$log"
-       procd_close_instance
-}
-
-service_triggers() {
-       procd_add_reload_trigger "$NAME"
-}
-
-start_service() {
-       config_load "$NAME"
-       config_foreach aria2_start "aria2"
-}
diff --git a/package/network/services/aria2/patches/010-Platform-Fix-compilation-without-deprecated-OpenSSL-.patch b/package/network/services/aria2/patches/010-Platform-Fix-compilation-without-deprecated-OpenSSL-.patch
deleted file mode 100644 (file)
index 1458d07..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From 0e31e37c0f6ad0b3f393f024d1f6d8ce448e4746 Mon Sep 17 00:00:00 2001
-From: Rosen Penev <rosenp@gmail.com>
-Date: Sat, 8 Dec 2018 18:39:50 -0800
-Subject: [PATCH] Platform: Fix compilation without deprecated OpenSSL APIs
-
----
- src/Platform.cc | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/Platform.cc b/src/Platform.cc
-index ea73b6c6..d7882a97 100644
---- a/src/Platform.cc
-+++ b/src/Platform.cc
-@@ -44,6 +44,7 @@
- #ifdef HAVE_OPENSSL
- #include <openssl/err.h>
- #include <openssl/ssl.h>
-+#include "libssl_compat.h"
- #endif // HAVE_OPENSSL
- #ifdef HAVE_LIBGCRYPT
- #include <gcrypt.h>
-@@ -111,11 +112,13 @@ bool Platform::setUp()
- #endif // ENABLE_NLS
- #ifdef HAVE_OPENSSL
-+#if !OPENSSL_101_API
-   // for SSL initialization
-   SSL_load_error_strings();
-   SSL_library_init();
-   // Need this to "decrypt" p12 files.
-   OpenSSL_add_all_algorithms();
-+#endif // !OPENSSL_101_API
- #endif // HAVE_OPENSSL
- #ifdef HAVE_LIBGCRYPT
-   if (!gcry_check_version("1.2.4")) {
--- 
-2.17.1
-
index daa01042e95ae6ed23f12824af1d3ad2e7aab828..1710ded5f88ed1e0b46a8ae2d37f553a91d4bf23 100644 (file)
@@ -8,10 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dnsmasq
-PKG_VERSION:=2.80
-PKG_RELEASE:=6
+PKG_UPSTREAM_VERSION:=2.80
+PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION)))
+PKG_RELEASE:=11
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz
 PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
 PKG_HASH:=cdaba2785e92665cf090646cba6f94812760b9d7d8c8d0cfb07ac819377a63bb
 
@@ -19,7 +20,7 @@ PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:thekelleys:dnsmasq
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_UPSTREAM_VERSION)
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
@@ -30,7 +31,8 @@ PKG_CONFIG_DEPENDS:= CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dhcp \
        CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_ipset \
        CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_conntrack \
        CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_noid \
-       CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_broken_rtc
+       CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_broken_rtc \
+       CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_tftp
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -115,6 +117,9 @@ define Package/dnsmasq-full/config
        config PACKAGE_dnsmasq_full_broken_rtc
                bool "Build with HAVE_BROKEN_RTC."
                default n
+       config PACKAGE_dnsmasq_full_tftp
+               bool "Build with TFTP server support."
+               default y
        endif
 endef
 
@@ -139,7 +144,8 @@ ifeq ($(BUILD_VARIANT),full)
                $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_ipset),,-DNO_IPSET) \
                $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_conntrack),-DHAVE_CONNTRACK,) \
                $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_noid),-DNO_ID,) \
-               $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_broken_rtc),-DHAVE_BROKEN_RTC)
+               $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_broken_rtc),-DHAVE_BROKEN_RTC) \
+               $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_tftp),,-DNO_TFTP)
        COPTS += $(if $(CONFIG_LIBNETTLE_MINI),-DNO_GMP,)
 else
        COPTS += -DNO_AUTH -DNO_IPSET -DNO_ID
index 9c922eec6cf9f76c22d91d00d68671903f4edd5b..93a8f9a108092bba17fbbae90c9dfaf02478fcc1 100644 (file)
@@ -731,7 +731,9 @@ dhcp_relay_add() {
 
 dnsmasq_start()
 {
-       local cfg="$1" disabled resolvfile user_dhcpscript
+       local cfg="$1"
+       local disabled user_dhcpscript
+       local resolvfile localuse=0
 
        config_get_bool disabled "$cfg" disabled 0
        [ "$disabled" -gt 0 ] && return 0
@@ -828,6 +830,7 @@ dnsmasq_start()
        append_bool "$cfg" sequential_ip "--dhcp-sequential-ip"
        append_bool "$cfg" allservers "--all-servers"
        append_bool "$cfg" noping "--no-ping"
+       append_bool "$cfg" rapidcommit "--dhcp-rapid-commit"
 
        append_parm "$cfg" logfacility "--log-facility"
 
@@ -857,6 +860,9 @@ dnsmasq_start()
        append_parm "$cfg" "tftp_root" "--tftp-root"
        append_parm "$cfg" "dhcp_boot" "--dhcp-boot"
        append_parm "$cfg" "local_ttl" "--local-ttl"
+       append_parm "$cfg" "max_ttl" "--max-ttl"
+       append_parm "$cfg" "min_cache_ttl" "--min-cache-ttl"
+       append_parm "$cfg" "max_cache_ttl" "--max-cache-ttl"
        append_parm "$cfg" "pxe_prompt" "--pxe-prompt"
        config_list_foreach "$cfg" "pxe_service" append_pxe_service
        config_get DOMAIN "$cfg" domain
@@ -882,12 +888,12 @@ dnsmasq_start()
 
        config_get_bool noresolv "$cfg" noresolv 0
        if [ "$noresolv" != "1" ]; then
-               config_get resolvfile "$cfg" resolvfile "/tmp/resolv.conf.auto"
-               # So jail doesn't complain if file missing
-               [ -n "$resolvfile" -a \! -e "$resolvfile" ] && touch "$resolvfile"
+               config_get resolvfile "$cfg" resolvfile /tmp/resolv.conf.auto
+               [ -n "$resolvfile" -a ! -e "$resolvfile" ] && touch "$resolvfile"
+               xappend "--resolv-file=$resolvfile"
+               [ "$resolvfile" = "/tmp/resolv.conf.auto" ] && localuse=1
        fi
-
-       [ -n "$resolvfile" ] && xappend "--resolv-file=$resolvfile"
+       config_get_bool localuse "$cfg" localuse "$localuse"
 
        config_get hostsfile "$cfg" dhcphostsfile
        [ -e "$hostsfile" ] && xappend "--dhcp-hostsfile=$hostsfile"
@@ -1010,7 +1016,7 @@ dnsmasq_start()
        mv -f $CONFIGFILE_TMP $CONFIGFILE
        mv -f $HOSTFILE_TMP $HOSTFILE
 
-       [ "$resolvfile" = "/tmp/resolv.conf.auto" ] && {
+       [ "$localuse" -gt 0 ] && {
                rm -f /tmp/resolv.conf
                [ $ADD_LOCAL_DOMAIN -eq 1 ] && [ -n "$DOMAIN" ] && {
                        echo "search $DOMAIN" >> /tmp/resolv.conf
@@ -1036,17 +1042,15 @@ dnsmasq_start()
 
 dnsmasq_stop()
 {
-       local cfg="$1" resolvfile
+       local cfg="$1"
+       local noresolv resolvfile localuse=0
 
+       config_get_bool noresolv "$cfg" noresolv 0
        config_get resolvfile "$cfg" "resolvfile"
 
-       #relink /tmp/resolve.conf only for main instance
-       [ "$resolvfile" = "/tmp/resolv.conf.auto" ] && {
-               [ -f /tmp/resolv.conf ] && {
-                       rm -f /tmp/resolv.conf
-                       ln -s "$resolvfile" /tmp/resolv.conf
-               }
-       }
+       [ "$noresolv" = 0 -a "$resolvfile" = "/tmp/resolv.conf.auto" ] && localuse=1
+       config_get_bool localuse "$cfg" localuse "$localuse"
+       [ "$localuse" -gt 0 ] && ln -sf "/tmp/resolv.conf.auto" /tmp/resolv.conf
 
        rm -f ${BASEDHCPSTAMPFILE}.${cfg}.*.dhcp
 }
index 5c13bf937b058e44ba1575d6da274ac68627055f..c801f258b38a73c5457711521325a98959b1c838 100644 (file)
@@ -1,7 +1,7 @@
 From a799ca0c6314ad73a97bc6c89382d2712a9c0b0e Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 18 Oct 2018 19:35:29 +0100
-Subject: [PATCH 01/30] Impove cache behaviour for TCP connections.
+Subject: [PATCH 01/32] Impove cache behaviour for TCP connections.
 
 For ease of implementaion, dnsmasq has always forked a new process to
 handle each incoming TCP connection. A side-effect of this is that any
index b23766d7155d5c022a1dda46045a8b0d5398de26..0a115fe0bebc07be48796a2369b452492a9782f2 100644 (file)
@@ -1,7 +1,7 @@
 From a220545c4277cba534be5ef4638b5076fc7d2cf4 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 22 Oct 2018 18:21:48 +0100
-Subject: [PATCH 02/30] Ensure that AD bit is reset on answers from
+Subject: [PATCH 02/32] Ensure that AD bit is reset on answers from
  --address=/<domain>/<address>.
 
 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
index 352d071882dd9f9f23228be66d7df00f5f1c9ab8..527a38d249d16593036455f420c10fa2eccdcb63 100644 (file)
@@ -1,7 +1,7 @@
 From ee8750451b49d27b180517a4e35b636be0fae575 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 23 Oct 2018 22:10:17 +0100
-Subject: [PATCH 03/30] Remove ability to compile without IPv6 support.
+Subject: [PATCH 03/32] Remove ability to compile without IPv6 support.
 
 This was the source of a large number of #ifdefs, originally
 included for use with old embedded libc versions. I'm
index cf59309298bf12c6b5f064a11ef1dfbc0090a838..cbf211a64471c60981772c6162b5f3e7f14e58f0 100644 (file)
@@ -1,7 +1,7 @@
 From cf5984367bc6a949e3803a576512c5a7bc48ebab Mon Sep 17 00:00:00 2001
 From: Vladislav Grishenko <themiron@mail.ru>
 Date: Thu, 18 Oct 2018 04:55:21 +0500
-Subject: [PATCH 04/30] Don't forward *.bind/*.server queries upstream
+Subject: [PATCH 04/32] Don't forward *.bind/*.server queries upstream
 
 Chaos .bind and .server (RFC4892) zones are local, therefore
 don't forward queries upstream to avoid mixing with supported
index 0281a2c98c4774b2c99d8f2544ecfba8e69fac84..473297bcdc5c09d91331700e8545aeabdd95ff4c 100644 (file)
@@ -1,7 +1,7 @@
 From cbb5b17ad8e03e08ade62376a4f6a2066e55960d Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 23 Oct 2018 23:45:57 +0100
-Subject: [PATCH 05/30] Fix logging in cf5984367bc6a949e3803a576512c5a7bc48ebab
+Subject: [PATCH 05/32] Fix logging in cf5984367bc6a949e3803a576512c5a7bc48ebab
 
 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
 ---
index 0433cca18ecdeec906700ca3d6f38e4c8e6e7cad..bebc7ba4534f4871fc5d3f24c04e36bd3149ae0b 100644 (file)
@@ -1,7 +1,7 @@
 From 6f7812d97bc8f87004c0a5069c6c94c64af78106 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 23 Oct 2018 23:54:44 +0100
-Subject: [PATCH 06/30] Fix spurious AD flags in some DNS replies from local
+Subject: [PATCH 06/32] Fix spurious AD flags in some DNS replies from local
  config.
 
 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
index c1c674fbfb00b87735cca465cb02be1b30d4a7ec..79347920dcdaf53808ad797c831c361c61bf0145 100644 (file)
@@ -1,7 +1,7 @@
 From 24b87607c1353e94689e8a2190571ab3f3b36f31 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
 Date: Wed, 24 Oct 2018 22:30:18 +0100
-Subject: [PATCH 07/30] Do not rely on dead code elimination, use array
+Subject: [PATCH 07/32] Do not rely on dead code elimination, use array
  instead. Make options bits derived from size and count. Use size of option
  bits and last supported bit in computation. No new change would be required
  when new options are added. Just change OPT_LAST constant.
index 9c00291d869189a33ce93b1c2330eede745cc23f..766aad2637de5ef202a98b9fb6ebea4c1c7bba15 100644 (file)
@@ -1,7 +1,7 @@
 From 3a5a84cdd1488bad118eeac72d09a60299bca744 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 31 Oct 2018 21:30:13 +0000
-Subject: [PATCH 08/30] Fix Makefile lines generating UBUS linker config.
+Subject: [PATCH 08/32] Fix Makefile lines generating UBUS linker config.
 
 If arg2 of pkg-wrapper is "--copy", then arg1 is NOT the name of
 the package manager (--copy doesn't invoke it) it's a secondary
index dcbfc3d9fa45939de426ed9b8b915a88f9c4b741..32468ae5a78cfae524d742956d664b3112b579a4 100644 (file)
@@ -1,7 +1,7 @@
 From 122392e0b352507cabb9e982208d35d2e56902e0 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 31 Oct 2018 22:24:02 +0000
-Subject: [PATCH 09/30] Revert 68f6312d4bae30b78daafcd6f51dc441b8685b1e
+Subject: [PATCH 09/32] Revert 68f6312d4bae30b78daafcd6f51dc441b8685b1e
 
 The above is intended to increase robustness, but actually does the
 opposite. The problem is that by ignoring SERVFAIL messages and hoping
index 2aa4ae7ded507bc46aaeaf18148d0d2fcb4d84e9..78f31d0c2d38f7de5c08e01d4c5359d3c6fbdd74 100644 (file)
@@ -1,7 +1,7 @@
 From 48d12f14c9c0fc8cf943b52774c3892517dd72d4 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 2 Nov 2018 21:55:04 +0000
-Subject: [PATCH 10/30] Remove the NO_FORK compile-time option, and support for
+Subject: [PATCH 10/32] Remove the NO_FORK compile-time option, and support for
  uclinux.
 
 In an era where everything has an MMU, this looks like
index 9609376ba3fd87ef518f6476c02b6e5e5a8e6389..0b53b30057f19d4cecb9ced79d4eeccfc83a2e94 100644 (file)
@@ -1,7 +1,7 @@
 From 59e470381f84f2fdf0640c7bc67827f3f0c64784 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
 Date: Fri, 2 Nov 2018 22:39:39 +0000
-Subject: [PATCH 11/30] Free config file values on parsing errors.
+Subject: [PATCH 11/32] Free config file values on parsing errors.
 
 This time I have a little bit more controversal patches. But I think
 still useful. They fixes memory leaks that might occur in some cases.
index d0f59de1ed10b8ac27798b9e5489b89ceacaf67a..7053d032b8372e9775c880b2e915f01f1fb98dd7 100644 (file)
@@ -1,7 +1,7 @@
 From 07e25da5bf26d46aad4f1d2eb19b260789182004 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 16 Dec 2018 18:21:58 +0000
-Subject: [PATCH 13/30] Treat DS and DNSKEY queries being forwarded the same as
+Subject: [PATCH 13/32] Treat DS and DNSKEY queries being forwarded the same as
  those locally originated.
 
 The queries will not be forwarded to a server for a domain, unless
index a38ca334cb5db86c01dba4775c75c1fc07f758df..2aaf382bad7ef3313fcd9f1d9994fbcfc76cedb8 100644 (file)
@@ -1,7 +1,7 @@
 From 137e9f878fafb38369eab7d9dfe84e4228ff5f89 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
 Date: Sun, 16 Dec 2018 21:25:29 +0000
-Subject: [PATCH 14/30] Fix option parsing errors introduced in
+Subject: [PATCH 14/32] Fix option parsing errors introduced in
  59e470381f84f2fdf0640c7bc67827f3f0c64784
 
 Thanks to Kevin Darbyshire-Bryant for spotting this.
index 259a26d1763e8e9c200a2fc1821471f8d4fbd739..0ac19f6a94f7f53a758d23038c680fb06cf39d2d 100644 (file)
@@ -1,7 +1,7 @@
 From 3becf468bad699bfdcb2d18d553bc72d4c79e23c Mon Sep 17 00:00:00 2001
 From: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
 Date: Wed, 12 Dec 2018 12:00:19 +0000
-Subject: [PATCH 15/30] fix ipv6 ipset bug in master
+Subject: [PATCH 15/32] fix ipv6 ipset bug in master
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index ac13de4a99282de1020258c4a2a191e82be8fe83..e4e363ba475a593ffd663dcfaee731deebc50931 100644 (file)
@@ -1,7 +1,7 @@
 From b683cf37f9f3dd3dc5d95d621ee75850d559b2e4 Mon Sep 17 00:00:00 2001
 From: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
 Date: Mon, 10 Dec 2018 10:34:35 +0000
-Subject: [PATCH 16/30] build failure on master with NO_DHCPv6 and fix....
+Subject: [PATCH 16/32] build failure on master with NO_DHCPv6 and fix....
 
 Hi Simon,
 
index ef8b78a9202e36a337441dafc5abe2256cfa008b..1a3b341b9faee4117078a39b515277df1c00b41a 100644 (file)
@@ -1,7 +1,7 @@
 From e7bfd556c079c8b5e7425aed44abc35925b24043 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 31 Dec 2018 20:51:15 +0000
-Subject: [PATCH 17/30] Alter DHCP address selection after DECLINE in
+Subject: [PATCH 17/32] Alter DHCP address selection after DECLINE in
  consec-addr mode. Avoid offering the same address after a recieving a DECLINE
  message to stop an infinite protocol loop. This has long been done in default
  address allocation mode: this adds similar behaviour when allocaing addresses
index cd9d02237f88295f18c0f20c32ea3dac90299369..e6b456f974e180e8d4d8c6ad3e9149d0fe4a7044 100644 (file)
@@ -1,7 +1,7 @@
 From bde46476ee06c96e821653dfdb8fa11fe7326998 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 31 Dec 2018 23:28:24 +0000
-Subject: [PATCH 18/30] Tidy all_addr union, merge log and rcode fields.
+Subject: [PATCH 18/32] Tidy all_addr union, merge log and rcode fields.
 
 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
 ---
index 883202da85436dce52c9259e4feb616b7a3d0b7e..4854617a0fa99d95e5b418dbe981ef9ddafbb6f6 100644 (file)
@@ -1,7 +1,7 @@
 From 65a01b71bb433c9466e4c78a73a8d8ed218ed4e8 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 31 Dec 2018 23:56:33 +0000
-Subject: [PATCH 19/30] Tidy address-union handling: move class into explicit
+Subject: [PATCH 19/32] Tidy address-union handling: move class into explicit
  argument.
 
 This moves the class argument to cache-insert into an argument,
index a5f17ec859aef154be849a21b6887dfefbc4801e..deda82fee0a515cb840a06231a881b3092e907a1 100644 (file)
@@ -1,7 +1,7 @@
 From ab194ed7ca433e4e2e8b2ec338bfa4e6aa886a4b Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 1 Jan 2019 01:35:30 +0000
-Subject: [PATCH 20/30] Futher address union tidying.
+Subject: [PATCH 20/32] Futher address union tidying.
 
 Pass DNSKEY and DS data into cache_insert via the address argument,
 now these data types are included in struct all_addr.
index 4377cc156230b94c9fb40bd71be3d866690dbbdb..360e8a4c04c644416252561eaa452128b2850945 100644 (file)
@@ -1,7 +1,7 @@
 From cc921df9ceac79acf9f1c477d015a3d88275422d Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 2 Jan 2019 22:48:59 +0000
-Subject: [PATCH 21/30] Remove nested struct/union in cache records and
+Subject: [PATCH 21/32] Remove nested struct/union in cache records and
  all_addr.
 
 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
index 92944fabe6c4c0854ff5f0a2a6732816bd95662e..32a02cd56ac80bec415b70cdb95ac36a4b3da765 100644 (file)
@@ -1,7 +1,7 @@
 From 2c594732eb7391e7cfa817598e33e61cab71131f Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 3 Jan 2019 13:42:03 +0000
-Subject: [PATCH 22/30] File logic bug in cache-marshalling code. Introduced a
+Subject: [PATCH 22/32] File logic bug in cache-marshalling code. Introduced a
  couple of commits back.
 
 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
index ecc060e1a99369ace22b06adb259475e0fabb193..48343afeaf0bd127834d66d49a628949a54a15b2 100644 (file)
@@ -1,7 +1,7 @@
 From 2daca52b80afdc92e7c976629a2bf8182335a626 Mon Sep 17 00:00:00 2001
 From: Christian Weiske <cweiske@cweiske.de>
 Date: Thu, 3 Jan 2019 20:10:14 +0000
-Subject: [PATCH 23/30] Fix typo in ra-param man page section.
+Subject: [PATCH 23/32] Fix typo in ra-param man page section.
 
 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
 ---
index dec3b82050237c6f175b01c6d99ef8e246262295..d38d30e9d565a0d11256f71baf5ff658dba86c70 100644 (file)
@@ -1,7 +1,7 @@
 From 5b99eae59d59a8e34a7e512059b98bbd803312f2 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 6 Jan 2019 23:09:50 +0000
-Subject: [PATCH 24/30] Cache SRV records.
+Subject: [PATCH 24/32] Cache SRV records.
 
 Inpsired by a patch from Jeremy Allison, but completely re-rolled
 by srk. All bugs are mine.
index ec4d52d7fd51463a99f05c1c0fd67e79185e324d..424574bbf6a121662b60e7ed87163b2c1fb9aee7 100644 (file)
@@ -1,7 +1,7 @@
 From a90f09db4cc635941a32b973b57e58c662569625 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 9 Jan 2019 15:08:16 +0000
-Subject: [PATCH 25/30] Fix crash freeing negative SRV cache entries.
+Subject: [PATCH 25/32] Fix crash freeing negative SRV cache entries.
 
 Thanks to Daniel for finding this one.
 
index b84a9281f8b83ecd55d8cf9c3470ce98bd37d7ea..4ca0be455fc4cff1df39786817f127865b87fabc 100644 (file)
@@ -1,7 +1,7 @@
 From 2896e2485e44c04e73a0b7c9f7cbc9c8515d0800 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 9 Jan 2019 15:12:34 +0000
-Subject: [PATCH 26/30] Check for not(DS or DNSKEY) in
+Subject: [PATCH 26/32] Check for not(DS or DNSKEY) in
  is_outdated_cname_pointer()
 
 Previous check was _for_ IPV4, IPv6 CNAME, and I missed adding SRV.
index 180a030020937e48e8a6f97b5fb4f3f45743cf59..63d5baa4cd7c2059f0a3f3a2be4e39d29588f81a 100644 (file)
@@ -1,7 +1,7 @@
 From 9c0d445ef4abffa2b9342ad65e85ef425c1f83bb Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 9 Jan 2019 17:57:56 +0000
-Subject: [PATCH 27/30] Fix e7bfd556c079c8b5e7425aed44abc35925b24043 to
+Subject: [PATCH 27/32] Fix e7bfd556c079c8b5e7425aed44abc35925b24043 to
  actually work.
 
 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
index ed8170c59b7aa0af9e15f96a8cc2c5262a9a655f..8aa69a743b82cd902a5c851caa15f3ed57a187bf 100644 (file)
@@ -1,7 +1,7 @@
 From 4bf62f616b82fad7a7f91195b0204dd64d79a35c Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 10 Jan 2019 21:54:22 +0000
-Subject: [PATCH 28/30] Tidy cache_blockdata_free()
+Subject: [PATCH 28/32] Tidy cache_blockdata_free()
 
 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
 ---
index d8ae0e7910de6c8cad8b2383afd2049f2bbfa09f..e02bd11d2302dc73569858abfcc64bd0b95cb99c 100644 (file)
@@ -1,7 +1,7 @@
 From f8c77edbdffb8ada7753ea9fa104f0f6da70cfe3 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 10 Jan 2019 21:58:18 +0000
-Subject: [PATCH 29/30] Fix removal of DHCP_CLIENT_MAC options from DHCPv6
+Subject: [PATCH 29/32] Fix removal of DHCP_CLIENT_MAC options from DHCPv6
  relay replies.
 
 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
index ca74c209ccb4c5aa5acec134e6129fd6c95657e4..89325f78da81411eb468f50f5ce88bd44eee60a9 100644 (file)
@@ -1,7 +1,7 @@
 From 18eac67c0a15b673c8d27002c248651b308093e4 Mon Sep 17 00:00:00 2001
 From: Steven Siloti <ssiloti@gmail.com>
 Date: Sun, 13 Jan 2019 22:56:36 +0000
-Subject: [PATCH 30/30] Fix entries in /etc/hosts disabling static leases.
+Subject: [PATCH 30/32] Fix entries in /etc/hosts disabling static leases.
 
 It is possible for a config entry to have one address family specified by a
 dhcp-host directive and the other added from /etc/hosts. This is especially
diff --git a/package/network/services/dnsmasq/patches/0031-Fix-missing-braces-in-8eac67c0a15b673c8d27002c248651.patch b/package/network/services/dnsmasq/patches/0031-Fix-missing-braces-in-8eac67c0a15b673c8d27002c248651.patch
new file mode 100644 (file)
index 0000000..928c6ee
--- /dev/null
@@ -0,0 +1,28 @@
+From d2d49907435433001ab00698a3e9ca2a7b5b3236 Mon Sep 17 00:00:00 2001
+From: Steven Siloti <ssiloti@gmail.com>
+Date: Thu, 17 Jan 2019 22:52:13 +0000
+Subject: [PATCH 31/32] Fix missing braces in
+ 8eac67c0a15b673c8d27002c248651b308093e4
+
+Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
+---
+ src/dhcp-common.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/src/dhcp-common.c
++++ b/src/dhcp-common.c
+@@ -371,12 +371,14 @@ void dhcp_update_configs(struct dhcp_con
+   int prot = AF_INET;
+   for (config = configs; config; config = config->next)
++  {
+     if (config->flags & CONFIG_ADDR_HOSTS)
+       config->flags &= ~(CONFIG_ADDR | CONFIG_ADDR_HOSTS);
+ #ifdef HAVE_DHCP6
+     if (config->flags & CONFIG_ADDR6_HOSTS)
+       config->flags &= ~(CONFIG_ADDR6 | CONFIG_ADDR6_HOSTS);
+ #endif
++  }
+ #ifdef HAVE_DHCP6 
+  again:  
diff --git a/package/network/services/dnsmasq/patches/0031-fix-previous-commit.patch b/package/network/services/dnsmasq/patches/0031-fix-previous-commit.patch
deleted file mode 100644 (file)
index d985c4a..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-From f52bb5be437ab33d7cd10f0ff1cdf0bb86857cf7 Mon Sep 17 00:00:00 2001
-From: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
-Date: Wed, 16 Jan 2019 09:48:07 +0000
-Subject: [PATCH 31/31] fix previous commit
-
-Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
----
- src/dhcp-common.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/src/dhcp-common.c
-+++ b/src/dhcp-common.c
-@@ -371,12 +371,14 @@ void dhcp_update_configs(struct dhcp_con
-   int prot = AF_INET;
-   for (config = configs; config; config = config->next)
-+  {
-     if (config->flags & CONFIG_ADDR_HOSTS)
-       config->flags &= ~(CONFIG_ADDR | CONFIG_ADDR_HOSTS);
- #ifdef HAVE_DHCP6
-     if (config->flags & CONFIG_ADDR6_HOSTS)
-       config->flags &= ~(CONFIG_ADDR6 | CONFIG_ADDR6_HOSTS);
- #endif
-+  }
- #ifdef HAVE_DHCP6 
-  again:  
diff --git a/package/network/services/dnsmasq/patches/0032-Change-read_leases-to-skip-invalid-entries.patch b/package/network/services/dnsmasq/patches/0032-Change-read_leases-to-skip-invalid-entries.patch
new file mode 100644 (file)
index 0000000..bbaed87
--- /dev/null
@@ -0,0 +1,61 @@
+From 28cfe36e1eee9d2c234e0256ad459956b415a3bb Mon Sep 17 00:00:00 2001
+From: Brian Haley <haleyb.dev@gmail.com>
+Date: Thu, 17 Jan 2019 23:21:23 +0000
+Subject: [PATCH 32/32] Change read_leases() to skip invalid entries.
+
+There's no reason to stop reading the existing lease file
+when dnsmasq is started and an invalid entry is found, it
+can just be ignored.  This was fallout from an Openstack
+bug where the file was being written incorrectly with []
+around IPv6 addresses.
+
+Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
+---
+ src/lease.c | 22 +++++++++++++++-------
+ 1 file changed, 15 insertions(+), 7 deletions(-)
+
+--- a/src/lease.c
++++ b/src/lease.c
+@@ -60,8 +60,13 @@ static int read_leases(time_t now, FILE
+       
+       if (fscanf(leasestream, " %64s %255s %764s",
+                  daemon->namebuff, daemon->dhcp_buff, daemon->packet) != 3)
+-        return 0;
+-      
++        {
++          my_syslog(MS_DHCP | LOG_WARNING, _("ignoring invalid line in lease database: %s %s %s %s ..."),
++                    daemon->dhcp_buff3, daemon->dhcp_buff2,
++                    daemon->namebuff, daemon->dhcp_buff);
++          continue;
++        }
++              
+       if (inet_pton(AF_INET, daemon->namebuff, &addr.addr4))
+         {
+           if ((lease = lease4_allocate(addr.addr4)))
+@@ -92,7 +97,12 @@ static int read_leases(time_t now, FILE
+         }
+ #endif
+       else
+-        return 0;
++        {
++          my_syslog(MS_DHCP | LOG_WARNING, _("ignoring invalid line in lease database, bad address: %s"),
++                    daemon->namebuff);
++          continue;
++        }
++      
+       if (!lease)
+         die (_("too many stored leases"), NULL, EC_MISC);
+@@ -172,10 +182,8 @@ void lease_init(time_t now)
+   if (leasestream)
+     {
+       if (!read_leases(now, leasestream))
+-      my_syslog(MS_DHCP | LOG_ERR, _("failed to parse lease database, invalid line: %s %s %s %s ..."),
+-                daemon->dhcp_buff3, daemon->dhcp_buff2,
+-                daemon->namebuff, daemon->dhcp_buff);
+-
++      my_syslog(MS_DHCP | LOG_ERR, _("failed to parse lease database cleanly"));
++      
+       if (ferror(leasestream))
+       die(_("failed to read lease file %s: %s"), daemon->lease_file, EC_FILE);
+     }
index eef2643c14ac6b916bebb49e835186502afecce1..2ea637ee1a7cc3f5c32092865d6d0a29f45d6cc0 100755 (executable)
@@ -29,7 +29,7 @@ append_ports()
 
 validate_section_dropbear()
 {
-       uci_validate_section dropbear dropbear "${1}" \
+       uci_load_validate dropbear dropbear "$1" "$2" \
                'PasswordAuth:bool:1' \
                'enable:bool:1' \
                'Interface:string' \
@@ -48,12 +48,9 @@ validate_section_dropbear()
 
 dropbear_instance()
 {
-       local PasswordAuth enable Interface GatewayPorts \
-               RootPasswordAuth RootLogin rsakeyfile \
-               BannerFile Port SSHKeepAlive IdleTimeout \
-               MaxAuthTries RecvWindowSize mdns ipaddrs
+       local ipaddrs
 
-       validate_section_dropbear "${1}" || {
+       [ "$2" = 0 ] || {
                echo "validation failed"
                return 1
        }
@@ -135,7 +132,7 @@ start_service()
        . /lib/functions/network.sh
 
        config_load "${NAME}"
-       config_foreach dropbear_instance dropbear
+       config_foreach validate_section_dropbear dropbear dropbear_instance
 }
 
 service_triggers()
diff --git a/package/network/services/ead/Makefile b/package/network/services/ead/Makefile
deleted file mode 100644 (file)
index 9a34561..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# Copyright (C) 2006-2008 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=ead
-PKG_RELEASE:=1
-
-PKG_BUILD_DEPENDS:=libpcap
-PKG_BUILD_DIR:=$(BUILD_DIR)/ead
-
-PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
-PKG_LICENSE:=GPL-2.0
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/kernel.mk
-
-define Package/ead
-  SECTION:=net
-  CATEGORY:=Base system
-  TITLE:=Emergency Access Daemon
-  URL:=http://bridge.sourceforge.net/
-endef
-
-define Package/ead/description
-  Provides remote access to your device even if IP and firewall
-  configuration settings are defunct
-endef
-
-CONFIGURE_PATH = tinysrp
-
-TARGET_CFLAGS += \
-       -I$(PKG_BUILD_DIR) \
-       -I$(PKG_BUILD_DIR)/tinysrp \
-       $(TARGET_CPPFLAGS)
-
-MAKE_FLAGS += \
-       CONFIGURE_ARGS="$(CONFIGURE_ARGS)" \
-       LIBS_EADCLIENT="$(PKG_BUILD_DIR)/tinysrp/libtinysrp.a" \
-       LIBS_EAD="$(PKG_BUILD_DIR)/tinysrp/libtinysrp.a $(STAGING_DIR)/usr/lib/libpcap.a" \
-       CFLAGS="$(TARGET_CFLAGS)"
-
-define Package/ead/install
-       $(INSTALL_DIR) $(1)/sbin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/ead $(1)/sbin/
-endef
-
-$(eval $(call BuildPackage,ead))
diff --git a/package/network/services/ead/src/Makefile b/package/network/services/ead/src/Makefile
deleted file mode 100644 (file)
index eb75516..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-CC       = gcc
-CPPFLAGS = -I. -Itinysrp
-CFLAGS   = -Os -Wall
-LDFLAGS         =
-LIBS_EADCLIENT = tinysrp/libtinysrp.a
-LIBS_EAD = tinysrp/libtinysrp.a -lpcap
-CONFIGURE_ARGS =
-
-all: ead ead-client
-
-obj = ead-crypt.o libbridge_init.o
-
-tinysrp/Makefile:
-       cd tinysrp; ./configure $(CONFIGURE_ARGS)
-
-tinysrp/libtinysrp.a: tinysrp/Makefile
-       -$(MAKE) -C tinysrp CFLAGS="$(CFLAGS)"
-
-%.o: %.c $(wildcard *.h) tinysrp/libtinysrp.a
-       $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
-
-ead.o: filter.c
-ead-crypt.o: aes.c sha1.c
-
-ead: ead.o $(obj) tinysrp/libtinysrp.a
-       $(CC) -o $@ $< $(obj) $(LDFLAGS) $(LIBS_EAD)
-
-ead-client: ead-client.o $(obj)
-       $(CC) -o $@ $< $(obj) $(LDFLAGS) $(LIBS_EADCLIENT)
-
-clean:
-       rm -f *.o ead ead-client
-       if [ -f tinysrp/Makefile ]; then $(MAKE) -C tinysrp distclean; fi
diff --git a/package/network/services/ead/src/aes.c b/package/network/services/ead/src/aes.c
deleted file mode 100644 (file)
index 6f9db34..0000000
+++ /dev/null
@@ -1,1061 +0,0 @@
-/*
- * AES (Rijndael) cipher
- *
- * Modifications to public domain implementation:
- * - support only 128-bit keys
- * - cleanup
- * - use C pre-processor to make it easier to change S table access
- * - added option (AES_SMALL_TABLES) for reducing code size by about 8 kB at
- *   cost of reduced throughput (quite small difference on Pentium 4,
- *   10-25% when using -O1 or -O2 optimization)
- *
- * Copyright (c) 2003-2005, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-/*
- * rijndael-alg-fst.c
- *
- * @version 3.0 (December 2000)
- *
- * Optimised ANSI C code for the Rijndael cipher (now AES)
- *
- * @author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be>
- * @author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be>
- * @author Paulo Barreto <paulo.barreto@terra.com.br>
- *
- * This code is hereby placed in the public domain.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* #define FULL_UNROLL */
-#define AES_SMALL_TABLES
-
-typedef uint8_t u8;
-typedef uint16_t u16;
-typedef uint32_t u32;
-
-/*
-Te0[x] = S [x].[02, 01, 01, 03];
-Te1[x] = S [x].[03, 02, 01, 01];
-Te2[x] = S [x].[01, 03, 02, 01];
-Te3[x] = S [x].[01, 01, 03, 02];
-Te4[x] = S [x].[01, 01, 01, 01];
-
-Td0[x] = Si[x].[0e, 09, 0d, 0b];
-Td1[x] = Si[x].[0b, 0e, 09, 0d];
-Td2[x] = Si[x].[0d, 0b, 0e, 09];
-Td3[x] = Si[x].[09, 0d, 0b, 0e];
-Td4[x] = Si[x].[01, 01, 01, 01];
-*/
-
-static const u32 Te0[256] = {
-    0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU,
-    0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U,
-    0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU,
-    0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU,
-    0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U,
-    0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU,
-    0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU,
-    0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU,
-    0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU,
-    0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU,
-    0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U,
-    0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU,
-    0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU,
-    0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U,
-    0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU,
-    0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU,
-    0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU,
-    0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU,
-    0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU,
-    0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U,
-    0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU,
-    0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU,
-    0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU,
-    0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU,
-    0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U,
-    0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U,
-    0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U,
-    0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U,
-    0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU,
-    0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U,
-    0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U,
-    0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU,
-    0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU,
-    0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U,
-    0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U,
-    0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U,
-    0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU,
-    0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U,
-    0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU,
-    0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U,
-    0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU,
-    0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U,
-    0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U,
-    0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU,
-    0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U,
-    0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U,
-    0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U,
-    0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U,
-    0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U,
-    0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U,
-    0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U,
-    0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U,
-    0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU,
-    0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U,
-    0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U,
-    0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U,
-    0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U,
-    0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U,
-    0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U,
-    0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU,
-    0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U,
-    0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U,
-    0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U,
-    0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU,
-};
-#ifndef AES_SMALL_TABLES
-static const u32 Te1[256] = {
-    0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU,
-    0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U,
-    0x50603030U, 0x03020101U, 0xa9ce6767U, 0x7d562b2bU,
-    0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U,
-    0x458fcacaU, 0x9d1f8282U, 0x4089c9c9U, 0x87fa7d7dU,
-    0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U,
-    0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, 0xea45afafU,
-    0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U,
-    0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U,
-    0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU,
-    0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U,
-    0x93e27171U, 0x73abd8d8U, 0x53623131U, 0x3f2a1515U,
-    0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U,
-    0x28301818U, 0xa1379696U, 0x0f0a0505U, 0xb52f9a9aU,
-    0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U,
-    0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, 0x9fea7575U,
-    0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU,
-    0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U,
-    0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U,
-    0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U,
-    0xf5a65353U, 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU,
-    0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU,
-    0xbed46a6aU, 0x468dcbcbU, 0xd967bebeU, 0x4b723939U,
-    0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU,
-    0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, 0x16edfbfbU,
-    0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U,
-    0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU,
-    0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U,
-    0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU,
-    0xad3f9292U, 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U,
-    0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U,
-    0x30201010U, 0x1ae5ffffU, 0x0efdf3f3U, 0x6dbfd2d2U,
-    0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU,
-    0xe1be5f5fU, 0xa2359797U, 0xcc884444U, 0x392e1717U,
-    0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU,
-    0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U,
-    0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU,
-    0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U,
-    0xca8c4646U, 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U,
-    0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU,
-    0x3bdbe0e0U, 0x56643232U, 0x4e743a3aU, 0x1e140a0aU,
-    0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU,
-    0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, 0xa6c46262U,
-    0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U,
-    0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU,
-    0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U,
-    0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU,
-    0xafca6565U, 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U,
-    0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU,
-    0x24381c1cU, 0xf157a6a6U, 0xc773b4b4U, 0x5197c6c6U,
-    0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU,
-    0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, 0x850f8a8aU,
-    0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U,
-    0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU,
-    0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U,
-    0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU,
-    0x38d9e1e1U, 0x13ebf8f8U, 0xb32b9898U, 0x33221111U,
-    0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U,
-    0xb62d9b9bU, 0x223c1e1eU, 0x92158787U, 0x20c9e9e9U,
-    0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU,
-    0x8f038c8cU, 0xf859a1a1U, 0x80098989U, 0x171a0d0dU,
-    0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U,
-    0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU,
-    0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U,
-};
-static const u32 Te2[256] = {
-    0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU,
-    0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U,
-    0x30506030U, 0x01030201U, 0x67a9ce67U, 0x2b7d562bU,
-    0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U,
-    0xca458fcaU, 0x829d1f82U, 0xc94089c9U, 0x7d87fa7dU,
-    0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U,
-    0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, 0xafea45afU,
-    0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U,
-    0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U,
-    0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU,
-    0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U,
-    0x7193e271U, 0xd873abd8U, 0x31536231U, 0x153f2a15U,
-    0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U,
-    0x18283018U, 0x96a13796U, 0x050f0a05U, 0x9ab52f9aU,
-    0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U,
-    0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, 0x759fea75U,
-    0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU,
-    0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U,
-    0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U,
-    0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U,
-    0x53f5a653U, 0xd168b9d1U, 0x00000000U, 0xed2cc1edU,
-    0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU,
-    0x6abed46aU, 0xcb468dcbU, 0xbed967beU, 0x394b7239U,
-    0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU,
-    0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, 0xfb16edfbU,
-    0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U,
-    0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU,
-    0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U,
-    0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU,
-    0x92ad3f92U, 0x9dbc219dU, 0x38487038U, 0xf504f1f5U,
-    0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U,
-    0x10302010U, 0xff1ae5ffU, 0xf30efdf3U, 0xd26dbfd2U,
-    0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU,
-    0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, 0x17392e17U,
-    0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU,
-    0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U,
-    0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU,
-    0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U,
-    0x46ca8c46U, 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U,
-    0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU,
-    0xe03bdbe0U, 0x32566432U, 0x3a4e743aU, 0x0a1e140aU,
-    0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU,
-    0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, 0x62a6c462U,
-    0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U,
-    0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU,
-    0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U,
-    0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU,
-    0x65afca65U, 0x7a8ef47aU, 0xaee947aeU, 0x08181008U,
-    0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU,
-    0x1c24381cU, 0xa6f157a6U, 0xb4c773b4U, 0xc65197c6U,
-    0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU,
-    0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, 0x8a850f8aU,
-    0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U,
-    0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU,
-    0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U,
-    0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU,
-    0xe138d9e1U, 0xf813ebf8U, 0x98b32b98U, 0x11332211U,
-    0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U,
-    0x9bb62d9bU, 0x1e223c1eU, 0x87921587U, 0xe920c9e9U,
-    0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU,
-    0x8c8f038cU, 0xa1f859a1U, 0x89800989U, 0x0d171a0dU,
-    0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U,
-    0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU,
-    0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U,
-};
-static const u32 Te3[256] = {
-
-    0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U,
-    0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U,
-    0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U,
-    0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU,
-    0xcaca458fU, 0x82829d1fU, 0xc9c94089U, 0x7d7d87faU,
-    0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU,
-    0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, 0xafafea45U,
-    0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU,
-    0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU,
-    0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U,
-    0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U,
-    0x717193e2U, 0xd8d873abU, 0x31315362U, 0x15153f2aU,
-    0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU,
-    0x18182830U, 0x9696a137U, 0x05050f0aU, 0x9a9ab52fU,
-    0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU,
-    0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, 0x75759feaU,
-    0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U,
-    0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU,
-    0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU,
-    0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U,
-    0x5353f5a6U, 0xd1d168b9U, 0x00000000U, 0xeded2cc1U,
-    0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U,
-    0x6a6abed4U, 0xcbcb468dU, 0xbebed967U, 0x39394b72U,
-    0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U,
-    0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, 0xfbfb16edU,
-    0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U,
-    0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU,
-    0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU,
-    0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U,
-    0x9292ad3fU, 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U,
-    0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U,
-    0x10103020U, 0xffff1ae5U, 0xf3f30efdU, 0xd2d26dbfU,
-    0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U,
-    0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, 0x1717392eU,
-    0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU,
-    0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U,
-    0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U,
-    0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU,
-    0x4646ca8cU, 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U,
-    0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU,
-    0xe0e03bdbU, 0x32325664U, 0x3a3a4e74U, 0x0a0a1e14U,
-    0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U,
-    0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, 0x6262a6c4U,
-    0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U,
-    0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU,
-    0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U,
-    0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU,
-    0x6565afcaU, 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U,
-    0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU,
-    0x1c1c2438U, 0xa6a6f157U, 0xb4b4c773U, 0xc6c65197U,
-    0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU,
-    0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, 0x8a8a850fU,
-    0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU,
-    0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU,
-    0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U,
-    0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U,
-    0xe1e138d9U, 0xf8f813ebU, 0x9898b32bU, 0x11113322U,
-    0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U,
-    0x9b9bb62dU, 0x1e1e223cU, 0x87879215U, 0xe9e920c9U,
-    0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U,
-    0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, 0x0d0d171aU,
-    0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U,
-    0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU,
-    0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
-};
-static const u32 Te4[256] = {
-    0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU,
-    0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U,
-    0x30303030U, 0x01010101U, 0x67676767U, 0x2b2b2b2bU,
-    0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U,
-    0xcacacacaU, 0x82828282U, 0xc9c9c9c9U, 0x7d7d7d7dU,
-    0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U,
-    0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, 0xafafafafU,
-    0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U,
-    0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U,
-    0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU,
-    0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U,
-    0x71717171U, 0xd8d8d8d8U, 0x31313131U, 0x15151515U,
-    0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U,
-    0x18181818U, 0x96969696U, 0x05050505U, 0x9a9a9a9aU,
-    0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U,
-    0xebebebebU, 0x27272727U, 0xb2b2b2b2U, 0x75757575U,
-    0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU,
-    0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U,
-    0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U,
-    0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U,
-    0x53535353U, 0xd1d1d1d1U, 0x00000000U, 0xededededU,
-    0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU,
-    0x6a6a6a6aU, 0xcbcbcbcbU, 0xbebebebeU, 0x39393939U,
-    0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU,
-    0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, 0xfbfbfbfbU,
-    0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U,
-    0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU,
-    0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U,
-    0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU,
-    0x92929292U, 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U,
-    0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U,
-    0x10101010U, 0xffffffffU, 0xf3f3f3f3U, 0xd2d2d2d2U,
-    0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU,
-    0x5f5f5f5fU, 0x97979797U, 0x44444444U, 0x17171717U,
-    0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU,
-    0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U,
-    0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU,
-    0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U,
-    0x46464646U, 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U,
-    0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU,
-    0xe0e0e0e0U, 0x32323232U, 0x3a3a3a3aU, 0x0a0a0a0aU,
-    0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU,
-    0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, 0x62626262U,
-    0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U,
-    0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU,
-    0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U,
-    0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU,
-    0x65656565U, 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U,
-    0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU,
-    0x1c1c1c1cU, 0xa6a6a6a6U, 0xb4b4b4b4U, 0xc6c6c6c6U,
-    0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU,
-    0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, 0x8a8a8a8aU,
-    0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U,
-    0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU,
-    0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U,
-    0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU,
-    0xe1e1e1e1U, 0xf8f8f8f8U, 0x98989898U, 0x11111111U,
-    0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U,
-    0x9b9b9b9bU, 0x1e1e1e1eU, 0x87878787U, 0xe9e9e9e9U,
-    0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU,
-    0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, 0x0d0d0d0dU,
-    0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U,
-    0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU,
-    0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U,
-};
-#endif /* AES_SMALL_TABLES */
-static const u32 Td0[256] = {
-    0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U,
-    0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U,
-    0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U,
-    0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU,
-    0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U,
-    0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U,
-    0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU,
-    0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U,
-    0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU,
-    0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U,
-    0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U,
-    0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U,
-    0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U,
-    0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU,
-    0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U,
-    0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU,
-    0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U,
-    0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU,
-    0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U,
-    0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U,
-    0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U,
-    0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU,
-    0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U,
-    0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU,
-    0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U,
-    0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU,
-    0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U,
-    0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU,
-    0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU,
-    0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U,
-    0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU,
-    0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U,
-    0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU,
-    0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U,
-    0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U,
-    0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U,
-    0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU,
-    0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U,
-    0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U,
-    0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU,
-    0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U,
-    0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U,
-    0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U,
-    0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U,
-    0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U,
-    0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU,
-    0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U,
-    0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U,
-    0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U,
-    0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U,
-    0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U,
-    0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU,
-    0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU,
-    0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU,
-    0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU,
-    0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U,
-    0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U,
-    0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU,
-    0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU,
-    0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U,
-    0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU,
-    0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U,
-    0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U,
-    0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U,
-};
-#ifndef AES_SMALL_TABLES
-static const u32 Td1[256] = {
-    0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU,
-    0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U,
-    0x552030faU, 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU,
-    0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U,
-    0x49deb15aU, 0x6725ba1bU, 0x9845ea0eU, 0xe15dfec0U,
-    0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U,
-    0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, 0xda955259U,
-    0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U,
-    0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U,
-    0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU,
-    0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU,
-    0xe0b16477U, 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU,
-    0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U,
-    0x23ab73d3U, 0xe2724b02U, 0x57e31f8fU, 0x2a6655abU,
-    0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U,
-    0xf2302887U, 0xb223bfa5U, 0xba02036aU, 0x5ced1682U,
-    0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U,
-    0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU,
-    0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU,
-    0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U,
-    0xf93e218aU, 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU,
-    0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U,
-    0x241998fbU, 0x97d6bde9U, 0xcc894043U, 0x7767d99eU,
-    0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU,
-    0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, 0x00000000U,
-    0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U,
-    0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U,
-    0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU,
-    0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U,
-    0x4f80c0c5U, 0xa261dc20U, 0x695a774bU, 0x161c121aU,
-    0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U,
-    0x0b0e090dU, 0xadf28bc7U, 0xb92db6a8U, 0xc8141ea9U,
-    0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U,
-    0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, 0x345bfb7eU,
-    0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U,
-    0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U,
-    0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U,
-    0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U,
-    0x6c2bb316U, 0x99a970b9U, 0xfa119448U, 0x2247e964U,
-    0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U,
-    0xc787494eU, 0xc1d938d1U, 0xfe8ccaa2U, 0x3698d40bU,
-    0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU,
-    0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, 0x62547e46U,
-    0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU,
-    0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U,
-    0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU,
-    0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU,
-    0x65e6956eU, 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U,
-    0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU,
-    0xaf31a4b2U, 0x312a3f23U, 0x30c6a594U, 0xc035a266U,
-    0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U,
-    0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, 0x2f1791f6U,
-    0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U,
-    0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U,
-    0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U,
-    0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U,
-    0x8c9ad761U, 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU,
-    0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U,
-    0x599cd2dfU, 0x3f55f273U, 0x791814ceU, 0xbf73c737U,
-    0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU,
-    0x81caaff3U, 0x3eb968c4U, 0x2c382434U, 0x5fc2a340U,
-    0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U,
-    0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U,
-    0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U,
-};
-static const u32 Td2[256] = {
-    0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U,
-    0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U,
-    0xfa552030U, 0x6df6ad76U, 0x769188ccU, 0x4c25f502U,
-    0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U,
-    0x5a49deb1U, 0x1b6725baU, 0x0e9845eaU, 0xc0e15dfeU,
-    0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U,
-    0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, 0x59da9552U,
-    0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U,
-    0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U,
-    0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU,
-    0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U,
-    0x77e0b164U, 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U,
-    0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU,
-    0xd323ab73U, 0x02e2724bU, 0x8f57e31fU, 0xab2a6655U,
-    0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U,
-    0x87f23028U, 0xa5b223bfU, 0x6aba0203U, 0x825ced16U,
-    0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U,
-    0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U,
-    0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U,
-    0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU,
-
-    0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U,
-    0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U,
-    0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U,
-    0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U,
-    0x0a47a17cU, 0x0fe97c42U, 0x1ec9f884U, 0x00000000U,
-    0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU,
-    0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, 0x3927362dU,
-    0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U,
-    0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU,
-    0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U,
-    0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU,
-    0x0d0b0e09U, 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU,
-    0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU,
-    0x269ff701U, 0xf5bc5c72U, 0x3bc54466U, 0x7e345bfbU,
-    0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U,
-    0xdccad731U, 0x85104263U, 0x22401397U, 0x112084c6U,
-    0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U,
-    0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U,
-    0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U,
-    0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U,
-    0x4ec78749U, 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U,
-    0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU,
-    0x9de42c3aU, 0x920d5078U, 0xcc9b6a5fU, 0x4662547eU,
-    0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U,
-    0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, 0x12b3cf25U,
-    0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU,
-    0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU,
-    0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U,
-    0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U,
-    0xb2af31a4U, 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U,
-    0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U,
-    0x984af104U, 0xdaf741ecU, 0x500e7fcdU, 0xf62f1791U,
-    0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U,
-    0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, 0x517f4665U,
-    0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU,
-    0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U,
-    0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U,
-    0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U,
-    0xdf599cd2U, 0x733f55f2U, 0xce791814U, 0x37bf73c7U,
-    0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U,
-    0xf381caafU, 0xc43eb968U, 0x342c3824U, 0x405fc2a3U,
-    0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU,
-    0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U,
-    0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U,
-};
-static const u32 Td3[256] = {
-    0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU,
-    0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU,
-    0x30fa5520U, 0x766df6adU, 0xcc769188U, 0x024c25f5U,
-    0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U,
-    0xb15a49deU, 0xba1b6725U, 0xea0e9845U, 0xfec0e15dU,
-    0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU,
-    0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, 0x5259da95U,
-    0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU,
-    0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U,
-    0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU,
-    0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U,
-    0x6477e0b1U, 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U,
-    0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U,
-    0x73d323abU, 0x4b02e272U, 0x1f8f57e3U, 0x55ab2a66U,
-    0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U,
-    0x2887f230U, 0xbfa5b223U, 0x036aba02U, 0x16825cedU,
-    0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU,
-    0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U,
-    0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U,
-    0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU,
-    0x218af93eU, 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU,
-    0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U,
-    0x98fb2419U, 0xbde997d6U, 0x4043cc89U, 0xd99e7767U,
-    0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U,
-    0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, 0x00000000U,
-    0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU,
-    0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U,
-    0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U,
-    0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU,
-    0xc0c54f80U, 0xdc20a261U, 0x774b695aU, 0x121a161cU,
-    0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U,
-    0x090d0b0eU, 0x8bc7adf2U, 0xb6a8b92dU, 0x1ea9c814U,
-    0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U,
-    0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, 0xfb7e345bU,
-    0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U,
-    0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U,
-    0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U,
-    0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U,
-    0xb3166c2bU, 0x70b999a9U, 0x9448fa11U, 0xe9642247U,
-    0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U,
-    0x494ec787U, 0x38d1c1d9U, 0xcaa2fe8cU, 0xd40b3698U,
-    0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU,
-    0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, 0x7e466254U,
-    0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U,
-    0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU,
-    0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU,
-    0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U,
-    0x956e65e6U, 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU,
-    0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U,
-    0xa4b2af31U, 0x3f23312aU, 0xa59430c6U, 0xa266c035U,
-    0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U,
-    0x04984af1U, 0xecdaf741U, 0xcd500e7fU, 0x91f62f17U,
-    0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U,
-    0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U,
-    0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU,
-    0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU,
-    0xd7618c9aU, 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU,
-    0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU,
-    0xd2df599cU, 0xf2733f55U, 0x14ce7918U, 0xc737bf73U,
-    0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U,
-    0xaff381caU, 0x68c43eb9U, 0x24342c38U, 0xa3405fc2U,
-    0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU,
-    0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
-    0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
-};
-static const u32 Td4[256] = {
-    0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U,
-    0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U,
-    0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU,
-    0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU,
-    0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U,
-    0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U,
-    0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U,
-    0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU,
-    0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U,
-    0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU,
-    0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU,
-    0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU,
-    0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U,
-    0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U,
-    0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U,
-    0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U,
-    0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U,
-    0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U,
-    0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU,
-    0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U,
-    0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U,
-    0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU,
-    0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U,
-    0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U,
-    0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U,
-    0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU,
-    0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U,
-    0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U,
-    0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU,
-    0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U,
-    0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U,
-    0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU,
-    0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U,
-    0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU,
-    0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU,
-    0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U,
-    0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U,
-    0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U,
-    0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U,
-    0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU,
-    0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U,
-    0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U,
-    0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU,
-    0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU,
-    0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU,
-    0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U,
-    0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU,
-    0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U,
-    0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U,
-    0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U,
-    0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U,
-    0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU,
-    0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U,
-    0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU,
-    0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU,
-    0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU,
-    0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU,
-    0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U,
-    0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU,
-    0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U,
-    0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU,
-    0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U,
-    0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U,
-    0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU,
-};
-static const u32 rcon[] = {
-       0x01000000, 0x02000000, 0x04000000, 0x08000000,
-       0x10000000, 0x20000000, 0x40000000, 0x80000000,
-       0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
-};
-#else /* AES_SMALL_TABLES */
-static const u8 Td4s[256] = {
-    0x52U, 0x09U, 0x6aU, 0xd5U, 0x30U, 0x36U, 0xa5U, 0x38U,
-    0xbfU, 0x40U, 0xa3U, 0x9eU, 0x81U, 0xf3U, 0xd7U, 0xfbU,
-    0x7cU, 0xe3U, 0x39U, 0x82U, 0x9bU, 0x2fU, 0xffU, 0x87U,
-    0x34U, 0x8eU, 0x43U, 0x44U, 0xc4U, 0xdeU, 0xe9U, 0xcbU,
-    0x54U, 0x7bU, 0x94U, 0x32U, 0xa6U, 0xc2U, 0x23U, 0x3dU,
-    0xeeU, 0x4cU, 0x95U, 0x0bU, 0x42U, 0xfaU, 0xc3U, 0x4eU,
-    0x08U, 0x2eU, 0xa1U, 0x66U, 0x28U, 0xd9U, 0x24U, 0xb2U,
-    0x76U, 0x5bU, 0xa2U, 0x49U, 0x6dU, 0x8bU, 0xd1U, 0x25U,
-    0x72U, 0xf8U, 0xf6U, 0x64U, 0x86U, 0x68U, 0x98U, 0x16U,
-    0xd4U, 0xa4U, 0x5cU, 0xccU, 0x5dU, 0x65U, 0xb6U, 0x92U,
-    0x6cU, 0x70U, 0x48U, 0x50U, 0xfdU, 0xedU, 0xb9U, 0xdaU,
-    0x5eU, 0x15U, 0x46U, 0x57U, 0xa7U, 0x8dU, 0x9dU, 0x84U,
-    0x90U, 0xd8U, 0xabU, 0x00U, 0x8cU, 0xbcU, 0xd3U, 0x0aU,
-    0xf7U, 0xe4U, 0x58U, 0x05U, 0xb8U, 0xb3U, 0x45U, 0x06U,
-    0xd0U, 0x2cU, 0x1eU, 0x8fU, 0xcaU, 0x3fU, 0x0fU, 0x02U,
-    0xc1U, 0xafU, 0xbdU, 0x03U, 0x01U, 0x13U, 0x8aU, 0x6bU,
-    0x3aU, 0x91U, 0x11U, 0x41U, 0x4fU, 0x67U, 0xdcU, 0xeaU,
-    0x97U, 0xf2U, 0xcfU, 0xceU, 0xf0U, 0xb4U, 0xe6U, 0x73U,
-    0x96U, 0xacU, 0x74U, 0x22U, 0xe7U, 0xadU, 0x35U, 0x85U,
-    0xe2U, 0xf9U, 0x37U, 0xe8U, 0x1cU, 0x75U, 0xdfU, 0x6eU,
-    0x47U, 0xf1U, 0x1aU, 0x71U, 0x1dU, 0x29U, 0xc5U, 0x89U,
-    0x6fU, 0xb7U, 0x62U, 0x0eU, 0xaaU, 0x18U, 0xbeU, 0x1bU,
-    0xfcU, 0x56U, 0x3eU, 0x4bU, 0xc6U, 0xd2U, 0x79U, 0x20U,
-    0x9aU, 0xdbU, 0xc0U, 0xfeU, 0x78U, 0xcdU, 0x5aU, 0xf4U,
-    0x1fU, 0xddU, 0xa8U, 0x33U, 0x88U, 0x07U, 0xc7U, 0x31U,
-    0xb1U, 0x12U, 0x10U, 0x59U, 0x27U, 0x80U, 0xecU, 0x5fU,
-    0x60U, 0x51U, 0x7fU, 0xa9U, 0x19U, 0xb5U, 0x4aU, 0x0dU,
-    0x2dU, 0xe5U, 0x7aU, 0x9fU, 0x93U, 0xc9U, 0x9cU, 0xefU,
-    0xa0U, 0xe0U, 0x3bU, 0x4dU, 0xaeU, 0x2aU, 0xf5U, 0xb0U,
-    0xc8U, 0xebU, 0xbbU, 0x3cU, 0x83U, 0x53U, 0x99U, 0x61U,
-    0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U,
-    0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU,
-};
-static const u8 rcons[] = {
-       0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1B, 0x36
-       /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
-};
-#endif /* AES_SMALL_TABLES */
-
-
-#ifndef AES_SMALL_TABLES
-
-#define RCON(i) rcon[(i)]
-
-#define TE0(i) Te0[((i) >> 24) & 0xff]
-#define TE1(i) Te1[((i) >> 16) & 0xff]
-#define TE2(i) Te2[((i) >> 8) & 0xff]
-#define TE3(i) Te3[(i) & 0xff]
-#define TE41(i) (Te4[((i) >> 24) & 0xff] & 0xff000000)
-#define TE42(i) (Te4[((i) >> 16) & 0xff] & 0x00ff0000)
-#define TE43(i) (Te4[((i) >> 8) & 0xff] & 0x0000ff00)
-#define TE44(i) (Te4[(i) & 0xff] & 0x000000ff)
-#define TE421(i) (Te4[((i) >> 16) & 0xff] & 0xff000000)
-#define TE432(i) (Te4[((i) >> 8) & 0xff] & 0x00ff0000)
-#define TE443(i) (Te4[(i) & 0xff] & 0x0000ff00)
-#define TE414(i) (Te4[((i) >> 24) & 0xff] & 0x000000ff)
-#define TE4(i) (Te4[(i)] & 0x000000ff)
-
-#define TD0(i) Td0[((i) >> 24) & 0xff]
-#define TD1(i) Td1[((i) >> 16) & 0xff]
-#define TD2(i) Td2[((i) >> 8) & 0xff]
-#define TD3(i) Td3[(i) & 0xff]
-#define TD41(i) (Td4[((i) >> 24) & 0xff] & 0xff000000)
-#define TD42(i) (Td4[((i) >> 16) & 0xff] & 0x00ff0000)
-#define TD43(i) (Td4[((i) >> 8) & 0xff] & 0x0000ff00)
-#define TD44(i) (Td4[(i) & 0xff] & 0x000000ff)
-#define TD0_(i) Td0[(i) & 0xff]
-#define TD1_(i) Td1[(i) & 0xff]
-#define TD2_(i) Td2[(i) & 0xff]
-#define TD3_(i) Td3[(i) & 0xff]
-
-#else /* AES_SMALL_TABLES */
-
-#define RCON(i) (rcons[(i)] << 24)
-
-static inline u32 rotr(u32 val, int bits)
-{
-       return (val >> bits) | (val << (32 - bits));
-}
-
-#define TE0(i) Te0[((i) >> 24) & 0xff]
-#define TE1(i) rotr(Te0[((i) >> 16) & 0xff], 8)
-#define TE2(i) rotr(Te0[((i) >> 8) & 0xff], 16)
-#define TE3(i) rotr(Te0[(i) & 0xff], 24)
-#define TE41(i) ((Te0[((i) >> 24) & 0xff] << 8) & 0xff000000)
-#define TE42(i) (Te0[((i) >> 16) & 0xff] & 0x00ff0000)
-#define TE43(i) (Te0[((i) >> 8) & 0xff] & 0x0000ff00)
-#define TE44(i) ((Te0[(i) & 0xff] >> 8) & 0x000000ff)
-#define TE421(i) ((Te0[((i) >> 16) & 0xff] << 8) & 0xff000000)
-#define TE432(i) (Te0[((i) >> 8) & 0xff] & 0x00ff0000)
-#define TE443(i) (Te0[(i) & 0xff] & 0x0000ff00)
-#define TE414(i) ((Te0[((i) >> 24) & 0xff] >> 8) & 0x000000ff)
-#define TE4(i) ((Te0[(i)] >> 8) & 0x000000ff)
-
-#define TD0(i) Td0[((i) >> 24) & 0xff]
-#define TD1(i) rotr(Td0[((i) >> 16) & 0xff], 8)
-#define TD2(i) rotr(Td0[((i) >> 8) & 0xff], 16)
-#define TD3(i) rotr(Td0[(i) & 0xff], 24)
-#define TD41(i) (Td4s[((i) >> 24) & 0xff] << 24)
-#define TD42(i) (Td4s[((i) >> 16) & 0xff] << 16)
-#define TD43(i) (Td4s[((i) >> 8) & 0xff] << 8)
-#define TD44(i) (Td4s[(i) & 0xff])
-#define TD0_(i) Td0[(i) & 0xff]
-#define TD1_(i) rotr(Td0[(i) & 0xff], 8)
-#define TD2_(i) rotr(Td0[(i) & 0xff], 16)
-#define TD3_(i) rotr(Td0[(i) & 0xff], 24)
-
-#endif /* AES_SMALL_TABLES */
-
-#define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)
-
-#ifdef _MSC_VER
-#define GETU32(p) SWAP(*((u32 *)(p)))
-#define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); }
-#else
-#define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ \
-((u32)(pt)[2] <<  8) ^ ((u32)(pt)[3]))
-#define PUTU32(ct, st) { \
-(ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); \
-(ct)[2] = (u8)((st) >>  8); (ct)[3] = (u8)(st); }
-#endif
-
-/**
- * Expand the cipher key into the encryption key schedule.
- *
- * @return     the number of rounds for the given cipher key size.
- */
-static void rijndaelKeySetupEnc(u32 rk[/*44*/], const u8 cipherKey[])
-{
-       int i;
-       u32 temp;
-
-       rk[0] = GETU32(cipherKey     );
-       rk[1] = GETU32(cipherKey +  4);
-       rk[2] = GETU32(cipherKey +  8);
-       rk[3] = GETU32(cipherKey + 12);
-       for (i = 0; i < 10; i++) {
-               temp  = rk[3];
-               rk[4] = rk[0] ^
-                       TE421(temp) ^ TE432(temp) ^ TE443(temp) ^ TE414(temp) ^
-                       RCON(i);
-               rk[5] = rk[1] ^ rk[4];
-               rk[6] = rk[2] ^ rk[5];
-               rk[7] = rk[3] ^ rk[6];
-               rk += 4;
-       }
-}
-
-#ifndef CONFIG_NO_AES_DECRYPT
-/**
- * Expand the cipher key into the decryption key schedule.
- *
- * @return     the number of rounds for the given cipher key size.
- */
-static void rijndaelKeySetupDec(u32 rk[/*44*/], const u8 cipherKey[])
-{
-       int Nr = 10, i, j;
-       u32 temp;
-
-       /* expand the cipher key: */
-       rijndaelKeySetupEnc(rk, cipherKey);
-       /* invert the order of the round keys: */
-       for (i = 0, j = 4*Nr; i < j; i += 4, j -= 4) {
-               temp = rk[i    ]; rk[i    ] = rk[j    ]; rk[j    ] = temp;
-               temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;
-               temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;
-               temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;
-       }
-       /* apply the inverse MixColumn transform to all round keys but the
-        * first and the last: */
-       for (i = 1; i < Nr; i++) {
-               rk += 4;
-               for (j = 0; j < 4; j++) {
-                       rk[j] = TD0_(TE4((rk[j] >> 24)       )) ^
-                               TD1_(TE4((rk[j] >> 16) & 0xff)) ^
-                               TD2_(TE4((rk[j] >>  8) & 0xff)) ^
-                               TD3_(TE4((rk[j]      ) & 0xff));
-               }
-       }
-}
-#endif /* CONFIG_NO_AES_DECRYPT */
-
-#ifndef CONFIG_NO_AES_ENCRYPT
-static void rijndaelEncrypt(const u32 rk[/*44*/], const u8 pt[16], u8 ct[16])
-{
-       u32 s0, s1, s2, s3, t0, t1, t2, t3;
-       const int Nr = 10;
-#ifndef FULL_UNROLL
-       int r;
-#endif /* ?FULL_UNROLL */
-
-       /*
-        * map byte array block to cipher state
-        * and add initial round key:
-        */
-       s0 = GETU32(pt     ) ^ rk[0];
-       s1 = GETU32(pt +  4) ^ rk[1];
-       s2 = GETU32(pt +  8) ^ rk[2];
-       s3 = GETU32(pt + 12) ^ rk[3];
-
-#define ROUND(i,d,s) \
-d##0 = TE0(s##0) ^ TE1(s##1) ^ TE2(s##2) ^ TE3(s##3) ^ rk[4 * i]; \
-d##1 = TE0(s##1) ^ TE1(s##2) ^ TE2(s##3) ^ TE3(s##0) ^ rk[4 * i + 1]; \
-d##2 = TE0(s##2) ^ TE1(s##3) ^ TE2(s##0) ^ TE3(s##1) ^ rk[4 * i + 2]; \
-d##3 = TE0(s##3) ^ TE1(s##0) ^ TE2(s##1) ^ TE3(s##2) ^ rk[4 * i + 3]
-
-#ifdef FULL_UNROLL
-
-       ROUND(1,t,s);
-       ROUND(2,s,t);
-       ROUND(3,t,s);
-       ROUND(4,s,t);
-       ROUND(5,t,s);
-       ROUND(6,s,t);
-       ROUND(7,t,s);
-       ROUND(8,s,t);
-       ROUND(9,t,s);
-
-       rk += Nr << 2;
-
-#else  /* !FULL_UNROLL */
-
-       /* Nr - 1 full rounds: */
-       r = Nr >> 1;
-       for (;;) {
-               ROUND(1,t,s);
-               rk += 8;
-               if (--r == 0)
-                       break;
-               ROUND(0,s,t);
-       }
-
-#endif /* ?FULL_UNROLL */
-
-#undef ROUND
-
-       /*
-        * apply last round and
-        * map cipher state to byte array block:
-        */
-       s0 = TE41(t0) ^ TE42(t1) ^ TE43(t2) ^ TE44(t3) ^ rk[0];
-       PUTU32(ct     , s0);
-       s1 = TE41(t1) ^ TE42(t2) ^ TE43(t3) ^ TE44(t0) ^ rk[1];
-       PUTU32(ct +  4, s1);
-       s2 = TE41(t2) ^ TE42(t3) ^ TE43(t0) ^ TE44(t1) ^ rk[2];
-       PUTU32(ct +  8, s2);
-       s3 = TE41(t3) ^ TE42(t0) ^ TE43(t1) ^ TE44(t2) ^ rk[3];
-       PUTU32(ct + 12, s3);
-}
-#endif /* CONFIG_NO_AES_ENCRYPT */
-
-static void rijndaelDecrypt(const u32 rk[/*44*/], const u8 ct[16], u8 pt[16])
-{
-       u32 s0, s1, s2, s3, t0, t1, t2, t3;
-       const int Nr = 10;
-#ifndef FULL_UNROLL
-       int r;
-#endif /* ?FULL_UNROLL */
-
-       /*
-        * map byte array block to cipher state
-        * and add initial round key:
-        */
-       s0 = GETU32(ct     ) ^ rk[0];
-       s1 = GETU32(ct +  4) ^ rk[1];
-       s2 = GETU32(ct +  8) ^ rk[2];
-       s3 = GETU32(ct + 12) ^ rk[3];
-
-#define ROUND(i,d,s) \
-d##0 = TD0(s##0) ^ TD1(s##3) ^ TD2(s##2) ^ TD3(s##1) ^ rk[4 * i]; \
-d##1 = TD0(s##1) ^ TD1(s##0) ^ TD2(s##3) ^ TD3(s##2) ^ rk[4 * i + 1]; \
-d##2 = TD0(s##2) ^ TD1(s##1) ^ TD2(s##0) ^ TD3(s##3) ^ rk[4 * i + 2]; \
-d##3 = TD0(s##3) ^ TD1(s##2) ^ TD2(s##1) ^ TD3(s##0) ^ rk[4 * i + 3]
-
-#ifdef FULL_UNROLL
-
-       ROUND(1,t,s);
-       ROUND(2,s,t);
-       ROUND(3,t,s);
-       ROUND(4,s,t);
-       ROUND(5,t,s);
-       ROUND(6,s,t);
-       ROUND(7,t,s);
-       ROUND(8,s,t);
-       ROUND(9,t,s);
-
-       rk += Nr << 2;
-
-#else  /* !FULL_UNROLL */
-
-       /* Nr - 1 full rounds: */
-       r = Nr >> 1;
-       for (;;) {
-               ROUND(1,t,s);
-               rk += 8;
-               if (--r == 0)
-                       break;
-               ROUND(0,s,t);
-       }
-
-#endif /* ?FULL_UNROLL */
-
-#undef ROUND
-
-       /*
-        * apply last round and
-        * map cipher state to byte array block:
-        */
-       s0 = TD41(t0) ^ TD42(t3) ^ TD43(t2) ^ TD44(t1) ^ rk[0];
-       PUTU32(pt     , s0);
-       s1 = TD41(t1) ^ TD42(t0) ^ TD43(t3) ^ TD44(t2) ^ rk[1];
-       PUTU32(pt +  4, s1);
-       s2 = TD41(t2) ^ TD42(t1) ^ TD43(t0) ^ TD44(t3) ^ rk[2];
-       PUTU32(pt +  8, s2);
-       s3 = TD41(t3) ^ TD42(t2) ^ TD43(t1) ^ TD44(t0) ^ rk[3];
-       PUTU32(pt + 12, s3);
-}
-
-#define AES_PRIV_SIZE 44
diff --git a/package/network/services/ead/src/ead-client.c b/package/network/services/ead/src/ead-client.c
deleted file mode 100644 (file)
index 35b67e3..0000000
+++ /dev/null
@@ -1,433 +0,0 @@
-/*
- * Client for the Emergency Access Daemon
- * Copyright (C) 2008 Felix Fietkau <nbd@nbd.name>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2
- * as published by the Free Software Foundation
- *
- * This program 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 General Public License for more details.
- */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <stdio.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#include <string.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <t_pwd.h>
-#include <t_read.h>
-#include <t_sha.h>
-#include <t_defines.h>
-#include <t_client.h>
-#include "ead.h"
-#include "ead-crypt.h"
-
-#include "pw_encrypt_md5.c"
-
-#define EAD_TIMEOUT    400
-#define EAD_TIMEOUT_LONG 2000
-
-static char msgbuf[1500];
-static struct ead_msg *msg = (struct ead_msg *) msgbuf;
-static uint16_t nid = 0xffff;
-struct sockaddr_in local, remote;
-static int s = 0;
-static int sockflags;
-static struct in_addr serverip = {
-       .s_addr = 0x01010101 /* dummy */
-};
-
-static unsigned char *skey = NULL;
-static unsigned char bbuf[MAXPARAMLEN];
-static unsigned char saltbuf[MAXSALTLEN];
-static char *username = NULL;
-static char password[MAXPARAMLEN] = "";
-static char pw_md5[MD5_OUT_BUFSIZE];
-static char pw_salt[MAXSALTLEN];
-
-static struct t_client *tc = NULL;
-static struct t_num salt = { .data = saltbuf };
-static struct t_num *A, B;
-static struct t_preconf *tcp;
-static int auth_type = EAD_AUTH_DEFAULT;
-static int timeout = EAD_TIMEOUT;
-static uint16_t sid = 0;
-
-static void
-set_nonblock(int enable)
-{
-       if (enable == !!(sockflags & O_NONBLOCK))
-               return;
-
-       sockflags ^= O_NONBLOCK;
-       fcntl(s, F_SETFL, sockflags);
-}
-
-static int
-send_packet(int type, bool (*handler)(void), unsigned int max)
-{
-       struct timeval tv;
-       fd_set fds;
-       int nfds;
-       int len;
-       int res = 0;
-
-       type = htonl(type);
-       memcpy(&msg->ip, &serverip.s_addr, sizeof(msg->ip));
-       set_nonblock(0);
-       sendto(s, msgbuf, sizeof(struct ead_msg) + ntohl(msg->len), 0, (struct sockaddr *) &remote, sizeof(remote));
-       set_nonblock(1);
-
-       tv.tv_sec = timeout / 1000;
-       tv.tv_usec = (timeout % 1000) * 1000;
-
-       FD_ZERO(&fds);
-       do {
-               FD_SET(s, &fds);
-               nfds = select(s + 1, &fds, NULL, NULL, &tv);
-
-               if (nfds <= 0)
-                       break;
-
-               if (!FD_ISSET(s, &fds))
-                       break;
-
-               len = read(s, msgbuf, sizeof(msgbuf));
-               if (len < 0)
-                       break;
-
-               if (len < sizeof(struct ead_msg))
-                       continue;
-
-               if (len < sizeof(struct ead_msg) + ntohl(msg->len))
-                       continue;
-
-               if (msg->magic != htonl(EAD_MAGIC))
-                       continue;
-
-               if ((nid != 0xffff) && (ntohs(msg->nid) != nid))
-                       continue;
-
-               if (msg->type != type)
-                       continue;
-
-               if (handler())
-                       res++;
-
-               if ((max > 0) && (res >= max))
-                       break;
-       } while (1);
-
-       return res;
-}
-
-static void
-prepare_password(void)
-{
-       switch(auth_type) {
-       case EAD_AUTH_DEFAULT:
-               break;
-       case EAD_AUTH_MD5:
-               md5_crypt(pw_md5, (unsigned char *) password, (unsigned char *) pw_salt);
-               strncpy(password, pw_md5, sizeof(password));
-               break;
-       }
-}
-
-static bool
-handle_pong(void)
-{
-       struct ead_msg_pong *pong = EAD_DATA(msg, pong);
-       int len = ntohl(msg->len) - sizeof(struct ead_msg_pong);
-
-       if (len <= 0)
-               return false;
-
-       pong->name[len] = 0;
-       auth_type = ntohs(pong->auth_type);
-       if (nid == 0xffff)
-               printf("%04x: %s\n", ntohs(msg->nid), pong->name);
-       sid = msg->sid;
-       return true;
-}
-
-static bool
-handle_prime(void)
-{
-       struct ead_msg_salt *sb = EAD_DATA(msg, salt);
-
-       salt.len = sb->len;
-       memcpy(salt.data, sb->salt, salt.len);
-
-       if (auth_type == EAD_AUTH_MD5) {
-               memcpy(pw_salt, sb->ext_salt, MAXSALTLEN);
-               pw_salt[MAXSALTLEN - 1] = 0;
-       }
-
-       tcp = t_getpreparam(sb->prime);
-       tc = t_clientopen(username, &tcp->modulus, &tcp->generator, &salt);
-       if (!tc) {
-               fprintf(stderr, "Client open failed\n");
-               return false;
-       }
-
-       return true;
-}
-
-static bool
-handle_b(void)
-{
-       struct ead_msg_number *num = EAD_DATA(msg, number);
-       int len = ntohl(msg->len) - sizeof(struct ead_msg_number);
-
-       B.data = bbuf;
-       B.len = len;
-       memcpy(bbuf, num->data, len);
-       return true;
-}
-
-static bool
-handle_none(void)
-{
-       return true;
-}
-
-static bool
-handle_done_auth(void)
-{
-       struct ead_msg_auth *auth = EAD_DATA(msg, auth);
-       if (t_clientverify(tc, auth->data) != 0) {
-               fprintf(stderr, "Client auth verify failed\n");
-               return false;
-       }
-       return true;
-}
-
-static bool
-handle_cmd_data(void)
-{
-       struct ead_msg_cmd_data *cmd = EAD_ENC_DATA(msg, cmd_data);
-       int datalen = ead_decrypt_message(msg) - sizeof(struct ead_msg_cmd_data);
-
-       if (datalen < 0)
-               return false;
-
-       if (datalen > 0) {
-               write(1, cmd->data, datalen);
-       }
-
-       return !!cmd->done;
-}
-static int
-send_ping(void)
-{
-       msg->type = htonl(EAD_TYPE_PING);
-       msg->len = 0;
-       return send_packet(EAD_TYPE_PONG, handle_pong, (nid == 0xffff ? 0 : 1));
-}
-
-static int
-send_username(void)
-{
-       msg->type = htonl(EAD_TYPE_SET_USERNAME);
-       msg->len = htonl(sizeof(struct ead_msg_user));
-       strcpy(EAD_DATA(msg, user)->username, username);
-       return send_packet(EAD_TYPE_ACK_USERNAME, handle_none, 1);
-}
-
-static int
-get_prime(void)
-{
-       msg->type = htonl(EAD_TYPE_GET_PRIME);
-       msg->len = 0;
-       return send_packet(EAD_TYPE_PRIME, handle_prime, 1);
-}
-
-static int
-send_a(void)
-{
-       struct ead_msg_number *num = EAD_DATA(msg, number);
-       A = t_clientgenexp(tc);
-       msg->type = htonl(EAD_TYPE_SEND_A);
-       msg->len = htonl(sizeof(struct ead_msg_number) + A->len);
-       memcpy(num->data, A->data, A->len);
-       return send_packet(EAD_TYPE_SEND_B, handle_b, 1);
-}
-
-static int
-send_auth(void)
-{
-       struct ead_msg_auth *auth = EAD_DATA(msg, auth);
-
-       prepare_password();
-       t_clientpasswd(tc, password);
-       skey = t_clientgetkey(tc, &B);
-       if (!skey)
-               return 0;
-
-       ead_set_key(skey);
-       msg->type = htonl(EAD_TYPE_SEND_AUTH);
-       msg->len = htonl(sizeof(struct ead_msg_auth));
-       memcpy(auth->data, t_clientresponse(tc), sizeof(auth->data));
-       return send_packet(EAD_TYPE_DONE_AUTH, handle_done_auth, 1);
-}
-
-static int
-send_command(const char *command)
-{
-       struct ead_msg_cmd *cmd = EAD_ENC_DATA(msg, cmd);
-
-       msg->type = htonl(EAD_TYPE_SEND_CMD);
-       cmd->type = htons(EAD_CMD_NORMAL);
-       cmd->timeout = htons(10);
-       strncpy((char *)cmd->data, command, 1024);
-       ead_encrypt_message(msg, sizeof(struct ead_msg_cmd) + strlen(command) + 1);
-       return send_packet(EAD_TYPE_RESULT_CMD, handle_cmd_data, 1);
-}
-
-
-static int
-usage(const char *prog)
-{
-       fprintf(stderr, "Usage: %s [-s <addr>] [-b <addr>] <node> <username>[:<password>] <command>\n"
-               "\n"
-               "\t-s <addr>:  Set the server's source address to <addr>\n"
-               "\t-b <addr>:  Set the broadcast address to <addr>\n"
-               "\t<node>:     Node ID (4 digits hex)\n"
-               "\t<username>: Username to authenticate with\n"
-               "\n"
-               "\tPassing no arguments shows a list of active nodes on the network\n"
-               "\n", prog);
-       return -1;
-}
-
-
-int main(int argc, char **argv)
-{
-       int val = 1;
-       char *st = NULL;
-       const char *command = NULL;
-       const char *prog = argv[0];
-       int ch;
-
-       msg->magic = htonl(EAD_MAGIC);
-       msg->sid = 0;
-
-       memset(&local, 0, sizeof(local));
-       memset(&remote, 0, sizeof(remote));
-
-       remote.sin_family = AF_INET;
-       remote.sin_addr.s_addr = 0xffffffff;
-       remote.sin_port = htons(EAD_PORT);
-
-       local.sin_family = AF_INET;
-       local.sin_addr.s_addr = INADDR_ANY;
-       local.sin_port = 0;
-
-       while ((ch = getopt(argc, argv, "b:s:h")) != -1) {
-               switch(ch) {
-               case 's':
-                       inet_aton(optarg, &serverip);
-                       break;
-               case 'b':
-                       inet_aton(optarg, &remote.sin_addr);
-                       break;
-               case 'h':
-                       return usage(prog);
-               }
-       }
-       argv += optind;
-       argc -= optind;
-
-       switch(argc) {
-       case 3:
-               command = argv[2];
-               /* fall through */
-       case 2:
-               username = argv[1];
-               st = strchr(username, ':');
-               if (st) {
-                       *st = 0;
-                       st++;
-                       strncpy(password, st, sizeof(password));
-                       password[sizeof(password) - 1] = 0;
-                       /* hide command line password */
-                       memset(st, 0, strlen(st));
-               }
-               /* fall through */
-       case 1:
-               nid = strtoul(argv[0], &st, 16);
-               if (st && st[0] != 0)
-                       return usage(prog);
-               /* fall through */
-       case 0:
-               break;
-       default:
-               return usage(prog);
-       }
-
-       msg->nid = htons(nid);
-       s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
-       if (s < 0) {
-               perror("socket");
-               return -1;
-       }
-
-       setsockopt(s, SOL_SOCKET, SO_BROADCAST, &val, sizeof(val));
-
-       if (bind(s, (struct sockaddr *)&local, sizeof(local)) < 0) {
-               perror("bind");
-               return -1;
-       }
-       sockflags = fcntl(s, F_GETFL);
-
-       if (!send_ping()) {
-               fprintf(stderr, "No devices found\n");
-               return 1;
-       }
-
-       if (nid == 0xffff)
-               return 0;
-
-       if (!username || !password[0])
-               return 0;
-
-       if (!send_username()) {
-               fprintf(stderr, "Device did not accept user name\n");
-               return 1;
-       }
-       timeout = EAD_TIMEOUT_LONG;
-       if (!get_prime()) {
-               fprintf(stderr, "Failed to get user password info\n");
-               return 1;
-       }
-       if (!send_a()) {
-               fprintf(stderr, "Failed to send local authentication data\n");
-               return 1;
-       }
-       if (!send_auth()) {
-               fprintf(stderr, "Authentication failed\n");
-               return 1;
-       }
-       if (!command) {
-               fprintf(stderr, "Authentication succesful\n");
-               return 0;
-       }
-       if (!send_command(command)) {
-               fprintf(stderr, "Command failed\n");
-               return 1;
-       }
-
-       return 0;
-}
diff --git a/package/network/services/ead/src/ead-crypt.c b/package/network/services/ead/src/ead-crypt.c
deleted file mode 100644 (file)
index 70d2b83..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (C) 2008 Felix Fietkau <nbd@nbd.name>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2
- * as published by the Free Software Foundation
- *
- * This program 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 General Public License for more details.
- */
-
-#include <stddef.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdio.h>
-#include "ead.h"
-
-#include "sha1.c"
-#include "aes.c"
-
-#if EAD_DEBUGLEVEL >= 1
-#define DEBUG(n, format, ...) do { \
-       if (EAD_DEBUGLEVEL >= n) \
-               fprintf(stderr, format, ##__VA_ARGS__); \
-} while (0);
-
-#else
-#define DEBUG(n, format, ...) do {} while(0)
-#endif
-
-
-static uint32_t aes_enc_ctx[AES_PRIV_SIZE];
-static uint32_t aes_dec_ctx[AES_PRIV_SIZE];
-static uint32_t ead_rx_iv;
-static uint32_t ead_tx_iv;
-static uint32_t ivofs_vec;
-static unsigned int ivofs_idx = 0;
-static uint32_t W[80]; /* work space for sha1 */
-
-#define EAD_ENC_PAD    64
-
-void
-ead_set_key(unsigned char *skey)
-{
-       uint32_t *ivp = (uint32_t *)skey;
-
-       memset(aes_enc_ctx, 0, sizeof(aes_enc_ctx));
-       memset(aes_dec_ctx, 0, sizeof(aes_dec_ctx));
-
-       /* first 32 bytes of skey are used as aes key for
-        * encryption and decryption */
-       rijndaelKeySetupEnc(aes_enc_ctx, skey);
-       rijndaelKeySetupDec(aes_dec_ctx, skey);
-
-       /* the following bytes are used as initialization vector for messages
-        * (highest byte cleared to avoid overflow) */
-       ivp += 8;
-       ead_rx_iv = ntohl(*ivp) & 0x00ffffff;
-       ead_tx_iv = ead_rx_iv;
-
-       /* the last bytes are used to feed the random iv increment */
-       ivp++;
-       ivofs_vec = *ivp;
-}
-
-
-static bool
-ead_check_rx_iv(uint32_t iv)
-{
-       if (iv <= ead_rx_iv)
-               return false;
-
-       if (iv > ead_rx_iv + EAD_MAX_IV_INCR)
-               return false;
-
-       ead_rx_iv = iv;
-       return true;
-}
-
-
-static uint32_t
-ead_get_tx_iv(void)
-{
-       unsigned int ofs;
-
-       ofs = 1 + ((ivofs_vec >> 2 * ivofs_idx) & 0x3);
-       ivofs_idx = (ivofs_idx + 1) % 16;
-       ead_tx_iv += ofs;
-
-       return ead_tx_iv;
-}
-
-static void
-ead_hash_message(struct ead_msg_encrypted *enc, uint32_t *hash, int len)
-{
-       unsigned char *data = (unsigned char *) enc;
-
-       /* hash the packet with the stored hash part initialized to zero */
-       sha_init(hash);
-       memset(enc->hash, 0, sizeof(enc->hash));
-       while (len > 0) {
-               sha_transform(hash, data, W);
-               len -= 64;
-               data += 64;
-       }
-}
-
-void
-ead_encrypt_message(struct ead_msg *msg, unsigned int len)
-{
-       struct ead_msg_encrypted *enc = EAD_DATA(msg, enc);
-       unsigned char *data = (unsigned char *) enc;
-       uint32_t hash[5];
-       int enclen, i;
-
-       len += sizeof(struct ead_msg_encrypted);
-       enc->pad = (EAD_ENC_PAD - (len % EAD_ENC_PAD)) % EAD_ENC_PAD;
-       enclen = len + enc->pad;
-       msg->len = htonl(enclen);
-       enc->iv = htonl(ead_get_tx_iv());
-
-       ead_hash_message(enc, hash, enclen);
-       for (i = 0; i < 5; i++)
-               enc->hash[i] = htonl(hash[i]);
-       DEBUG(2, "SHA1 generate (0x%08x), len=%d\n", enc->hash[0], enclen);
-
-       while (enclen > 0) {
-               rijndaelEncrypt(aes_enc_ctx, data, data);
-               data += 16;
-               enclen -= 16;
-       }
-}
-
-int
-ead_decrypt_message(struct ead_msg *msg)
-{
-       struct ead_msg_encrypted *enc = EAD_DATA(msg, enc);
-       unsigned char *data = (unsigned char *) enc;
-       uint32_t hash_old[5], hash_new[5];
-       int len = ntohl(msg->len);
-       int i, enclen = len;
-
-       if (!len || (len % EAD_ENC_PAD > 0))
-               return 0;
-
-       while (len > 0) {
-               rijndaelDecrypt(aes_dec_ctx, data, data);
-               data += 16;
-               len -= 16;
-       }
-
-       data = (unsigned char *) enc;
-
-       if (enc->pad >= EAD_ENC_PAD) {
-               DEBUG(2, "Invalid padding length\n");
-               return 0;
-       }
-
-       if (!ead_check_rx_iv(ntohl(enc->iv))) {
-               DEBUG(2, "RX IV mismatch (0x%08x <> 0x%08x)\n", ead_rx_iv, ntohl(enc->iv));
-               return 0;
-       }
-
-       for (i = 0; i < 5; i++)
-               hash_old[i] = ntohl(enc->hash[i]);
-       ead_hash_message(enc, hash_new, enclen);
-       if (memcmp(hash_old, hash_new, sizeof(hash_old)) != 0) {
-               DEBUG(2, "SHA1 mismatch (0x%08x != 0x%08x), len=%d\n", hash_old[0], hash_new[0], enclen);
-               return 0;
-       }
-
-       enclen -= enc->pad + sizeof(struct ead_msg_encrypted);
-       return enclen;
-}
diff --git a/package/network/services/ead/src/ead-crypt.h b/package/network/services/ead/src/ead-crypt.h
deleted file mode 100644 (file)
index 2627d14..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (C) 2008 Felix Fietkau <nbd@nbd.name>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2
- * as published by the Free Software Foundation
- *
- * This program 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 General Public License for more details.
- */
-
-#ifndef __EAD_CRYPT_H
-#define __EAD_CRYPT_H
-
-extern void ead_set_key(unsigned char *skey);
-extern void ead_encrypt_message(struct ead_msg *msg, unsigned int len);
-extern int ead_decrypt_message(struct ead_msg *msg);
-
-#endif
diff --git a/package/network/services/ead/src/ead-pcap.h b/package/network/services/ead/src/ead-pcap.h
deleted file mode 100644 (file)
index 0652ab4..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2001-2003, Adam Dunkels.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote
- *    products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This file was part of the uIP TCP/IP stack.
- *
- */
-#ifndef __EAD_PCAP_H
-#define __EAD_PCAP_H
-
-#include <net/ethernet.h>
-#include <stdint.h>
-#include "ead.h"
-
-typedef uint8_t u8_t;
-typedef uint16_t u16_t;
-
-/* The UDP and IP headers. */
-struct ead_packet {
-  struct ether_header eh;
-  /* IP header. */
-  u8_t vhl,
-    tos,
-    len[2],
-    ipid[2],
-    ipoffset[2],
-    ttl,
-    proto;
-  u16_t ipchksum;
-  u16_t srcipaddr[2],
-    destipaddr[2];
-
-  /* UDP header. */
-  u16_t srcport,
-    destport;
-  u16_t udplen;
-  u16_t udpchksum;
-
-  struct ead_msg msg;
-} __attribute__((packed));
-
-#define UIP_PROTO_UDP  17
-#define UIP_IPH_LEN    20    /* Size of IP header */
-#define UIP_UDPH_LEN   8    /* Size of UDP header */
-#define UIP_IPUDPH_LEN (UIP_UDPH_LEN + UIP_IPH_LEN)
-
-#endif
diff --git a/package/network/services/ead/src/ead.c b/package/network/services/ead/src/ead.c
deleted file mode 100644 (file)
index ad97c54..0000000
+++ /dev/null
@@ -1,974 +0,0 @@
-/*
- * Emergency Access Daemon
- * Copyright (C) 2008 Felix Fietkau <nbd@nbd.name>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2
- * as published by the Free Software Foundation
- *
- * This program 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 General Public License for more details.
- */
-
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/select.h>
-#include <stdio.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdbool.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <pcap.h>
-#include <pcap-bpf.h>
-#include <t_pwd.h>
-#include <t_read.h>
-#include <t_sha.h>
-#include <t_defines.h>
-#include <t_server.h>
-#include <net/if.h>
-
-#include "list.h"
-#include "ead.h"
-#include "ead-pcap.h"
-#include "ead-crypt.h"
-#include "libbridge.h"
-
-#include "filter.c"
-
-#ifdef linux
-#include <linux/if_packet.h>
-#endif
-
-#define PASSWD_FILE    "/etc/passwd"
-
-#ifndef DEFAULT_IFNAME
-#define DEFAULT_IFNAME "eth0"
-#endif
-
-#ifndef DEFAULT_DEVNAME
-#define DEFAULT_DEVNAME "Unknown"
-#endif
-
-#define PCAP_MRU               1600
-#define PCAP_TIMEOUT   200
-
-#if EAD_DEBUGLEVEL >= 1
-#define DEBUG(n, format, ...) do { \
-       if (EAD_DEBUGLEVEL >= n) \
-               fprintf(stderr, format, ##__VA_ARGS__); \
-} while (0);
-
-#else
-#define DEBUG(n, format, ...) do {} while(0)
-#endif
-
-struct ead_instance {
-       struct list_head list;
-       char ifname[16];
-       int pid;
-       char id;
-       char bridge[16];
-       bool br_check;
-};
-
-static char ethmac[6] = "\x00\x13\x37\x00\x00\x00"; /* last 3 bytes will be randomized */
-static pcap_t *pcap_fp = NULL;
-static pcap_t *pcap_fp_rx = NULL;
-static char pktbuf_b[PCAP_MRU];
-static struct ead_packet *pktbuf = (struct ead_packet *)pktbuf_b;
-static u16_t nid = 0xffff; /* node id */
-static char username[32] = "";
-static int state = EAD_TYPE_SET_USERNAME;
-static const char *passwd_file = PASSWD_FILE;
-static const char password[MAXPARAMLEN];
-static bool child_pending = false;
-
-static unsigned char abuf[MAXPARAMLEN + 1];
-static unsigned char pwbuf[MAXPARAMLEN];
-static unsigned char saltbuf[MAXSALTLEN];
-static unsigned char pw_saltbuf[MAXSALTLEN];
-static struct list_head instances;
-static const char *dev_name = DEFAULT_DEVNAME;
-static bool nonfork = false;
-static struct ead_instance *instance = NULL;
-
-static struct t_pwent tpe = {
-       .name = username,
-       .index = 1,
-       .password.data = pwbuf,
-       .password.len = 0,
-       .salt.data = saltbuf,
-       .salt.len = 0,
-};
-struct t_confent *tce = NULL;
-static struct t_server *ts = NULL;
-static struct t_num A, *B = NULL;
-unsigned char *skey;
-
-static void
-set_recv_type(pcap_t *p, bool rx)
-{
-#ifdef PACKET_RECV_TYPE
-       struct sockaddr_ll sll;
-       struct ifreq ifr;
-       int mask;
-       int fd;
-
-       fd = pcap_get_selectable_fd(p);
-       if (fd < 0)
-               return;
-
-       if (rx)
-               mask = 1 << PACKET_BROADCAST;
-       else
-               mask = 0;
-
-       setsockopt(fd, SOL_PACKET, PACKET_RECV_TYPE, &mask, sizeof(mask));
-#endif
-}
-
-
-static pcap_t *
-ead_open_pcap(const char *ifname, char *errbuf, bool rx)
-{
-       pcap_t *p;
-
-       p = pcap_create(ifname, errbuf);
-       if (p == NULL)
-               goto out;
-
-       pcap_set_snaplen(p, PCAP_MRU);
-       pcap_set_promisc(p, rx);
-       pcap_set_timeout(p, PCAP_TIMEOUT);
-       pcap_set_protocol_linux(p, (rx ? htons(ETH_P_IP) : 0));
-       pcap_set_buffer_size(p, (rx ? 10 : 1) * PCAP_MRU);
-       pcap_activate(p);
-       set_recv_type(p, rx);
-out:
-       return p;
-}
-
-static void
-get_random_bytes(void *ptr, int len)
-{
-       int fd;
-
-       fd = open("/dev/urandom", O_RDONLY);
-       if (fd < 0) {
-               perror("open");
-               exit(1);
-       }
-       read(fd, ptr, len);
-       close(fd);
-}
-
-static bool
-prepare_password(void)
-{
-       static char lbuf[1024];
-       unsigned char dig[SHA_DIGESTSIZE];
-       BigInteger x, v, n, g;
-       SHA1_CTX ctxt;
-       int ulen = strlen(username);
-       FILE *f;
-
-       lbuf[sizeof(lbuf) - 1] = 0;
-
-       f = fopen(passwd_file, "r");
-       if (!f)
-               return false;
-
-       while (fgets(lbuf, sizeof(lbuf) - 1, f) != NULL) {
-               char *str, *s2;
-
-               if (strncmp(lbuf, username, ulen) != 0)
-                       continue;
-
-               if (lbuf[ulen] != ':')
-                       continue;
-
-               str = &lbuf[ulen + 1];
-
-               if (strncmp(str, "$1$", 3) != 0)
-                       continue;
-
-               s2 = strchr(str + 3, '$');
-               if (!s2)
-                       continue;
-
-               if (s2 - str >= MAXSALTLEN)
-                       continue;
-
-               strncpy((char *) pw_saltbuf, str, s2 - str);
-               pw_saltbuf[s2 - str] = 0;
-
-               s2 = strchr(s2, ':');
-               if (!s2)
-                       continue;
-
-               *s2 = 0;
-               if (s2 - str >= MAXPARAMLEN)
-                       continue;
-
-               strncpy((char *)password, str, MAXPARAMLEN);
-               fclose(f);
-               goto hash_password;
-       }
-
-       /* not found */
-       fclose(f);
-       return false;
-
-hash_password:
-       tce = gettcid(tpe.index);
-       do {
-               t_random(tpe.password.data, SALTLEN);
-       } while (memcmp(saltbuf, (char *)dig, sizeof(saltbuf)) == 0);
-       if (saltbuf[0] == 0)
-               saltbuf[0] = 0xff;
-
-       n = BigIntegerFromBytes(tce->modulus.data, tce->modulus.len);
-       g = BigIntegerFromBytes(tce->generator.data, tce->generator.len);
-       v = BigIntegerFromInt(0);
-
-       SHA1Init(&ctxt);
-       SHA1Update(&ctxt, (unsigned char *) username, strlen(username));
-       SHA1Update(&ctxt, (unsigned char *) ":", 1);
-       SHA1Update(&ctxt, (unsigned char *) password, strlen(password));
-       SHA1Final(dig, &ctxt);
-
-       SHA1Init(&ctxt);
-       SHA1Update(&ctxt, saltbuf, tpe.salt.len);
-       SHA1Update(&ctxt, dig, sizeof(dig));
-       SHA1Final(dig, &ctxt);
-
-       /* x = H(s, H(u, ':', p)) */
-       x = BigIntegerFromBytes(dig, sizeof(dig));
-
-       BigIntegerModExp(v, g, x, n);
-       tpe.password.len = BigIntegerToBytes(v, (unsigned char *)pwbuf);
-
-       BigIntegerFree(v);
-       BigIntegerFree(x);
-       BigIntegerFree(g);
-       BigIntegerFree(n);
-       return true;
-}
-
-static u16_t
-chksum(u16_t sum, const u8_t *data, u16_t len)
-{
-       u16_t t;
-       const u8_t *dataptr;
-       const u8_t *last_byte;
-
-       dataptr = data;
-       last_byte = data + len - 1;
-
-       while(dataptr < last_byte) {    /* At least two more bytes */
-               t = (dataptr[0] << 8) + dataptr[1];
-               sum += t;
-               if(sum < t) {
-                       sum++;          /* carry */
-               }
-               dataptr += 2;
-       }
-
-       if(dataptr == last_byte) {
-               t = (dataptr[0] << 8) + 0;
-               sum += t;
-               if(sum < t) {
-                       sum++;          /* carry */
-               }
-       }
-
-       /* Return sum in host byte order. */
-       return sum;
-}
-
-static void
-ead_send_packet_clone(struct ead_packet *pkt)
-{
-       u16_t len, sum;
-
-       memcpy(pktbuf, pkt, offsetof(struct ead_packet, msg));
-       memcpy(pktbuf->eh.ether_shost, ethmac, 6);
-       memcpy(pktbuf->eh.ether_dhost, pkt->eh.ether_shost, 6);
-
-       /* ip header */
-       len = sizeof(struct ead_packet) - sizeof(struct ether_header) + ntohl(pktbuf->msg.len);
-       pktbuf->len[0] = len >> 8;
-       pktbuf->len[1] = len & 0xff;
-       memcpy(pktbuf->srcipaddr, &pkt->msg.ip, 4);
-       memcpy(pktbuf->destipaddr, pkt->srcipaddr, 4);
-
-       /* ip checksum */
-       pktbuf->ipchksum = 0;
-       sum = chksum(0, (void *) &pktbuf->vhl, UIP_IPH_LEN);
-       if (sum == 0)
-               sum = 0xffff;
-       pktbuf->ipchksum = htons(~sum);
-
-       /* udp header */
-       pktbuf->srcport = pkt->destport;
-       pktbuf->destport = pkt->srcport;
-
-       /* udp checksum */
-       len -= UIP_IPH_LEN;
-       pktbuf->udplen = htons(len);
-       pktbuf->udpchksum = 0;
-       sum = len + UIP_PROTO_UDP;
-       sum = chksum(sum, (void *) &pktbuf->srcipaddr[0], 8); /* src, dest ip */
-       sum = chksum(sum, (void *) &pktbuf->srcport, len);
-       if (sum == 0)
-               sum = 0xffff;
-       pktbuf->udpchksum = htons(~sum);
-       pcap_sendpacket(pcap_fp, (void *) pktbuf, sizeof(struct ead_packet) + ntohl(pktbuf->msg.len));
-}
-
-static void
-set_state(int nstate)
-{
-       if (state == nstate)
-               return;
-
-       if (nstate < state) {
-               if ((nstate < EAD_TYPE_GET_PRIME) &&
-                       (state >= EAD_TYPE_GET_PRIME)) {
-                       t_serverclose(ts);
-                       ts = NULL;
-               }
-               goto done;
-       }
-
-       switch(state) {
-       case EAD_TYPE_SET_USERNAME:
-               if (!prepare_password())
-                       goto error;
-               ts = t_serveropenraw(&tpe, tce);
-               if (!ts)
-                       goto error;
-               break;
-       case EAD_TYPE_GET_PRIME:
-               B = t_servergenexp(ts);
-               break;
-       case EAD_TYPE_SEND_A:
-               skey = t_servergetkey(ts, &A);
-               if (!skey)
-                       goto error;
-
-               ead_set_key(skey);
-               break;
-       }
-done:
-       state = nstate;
-error:
-       return;
-}
-
-static bool
-handle_ping(struct ead_packet *pkt, int len, int *nstate)
-{
-       struct ead_msg *msg = &pktbuf->msg;
-       struct ead_msg_pong *pong = EAD_DATA(msg, pong);
-       int slen;
-
-       slen = strlen(dev_name);
-       if (slen > 1024)
-               slen = 1024;
-
-       msg->len = htonl(sizeof(struct ead_msg_pong) + slen);
-       strncpy(pong->name, dev_name, slen);
-       pong->name[slen] = 0;
-       pong->auth_type = htons(EAD_AUTH_MD5);
-
-       return true;
-}
-
-static bool
-handle_set_username(struct ead_packet *pkt, int len, int *nstate)
-{
-       struct ead_msg *msg = &pkt->msg;
-       struct ead_msg_user *user = EAD_DATA(msg, user);
-
-       set_state(EAD_TYPE_SET_USERNAME); /* clear old state */
-       strncpy(username, user->username, sizeof(username));
-       username[sizeof(username) - 1] = 0;
-
-       msg = &pktbuf->msg;
-       msg->len = 0;
-
-       *nstate = EAD_TYPE_GET_PRIME;
-       return true;
-}
-
-static bool
-handle_get_prime(struct ead_packet *pkt, int len, int *nstate)
-{
-       struct ead_msg *msg = &pktbuf->msg;
-       struct ead_msg_salt *salt = EAD_DATA(msg, salt);
-
-       msg->len = htonl(sizeof(struct ead_msg_salt));
-       salt->prime = tce->index - 1;
-       salt->len = ts->s.len;
-       memcpy(salt->salt, ts->s.data, ts->s.len);
-       memcpy(salt->ext_salt, pw_saltbuf, MAXSALTLEN);
-
-       *nstate = EAD_TYPE_SEND_A;
-       return true;
-}
-
-static bool
-handle_send_a(struct ead_packet *pkt, int len, int *nstate)
-{
-       struct ead_msg *msg = &pkt->msg;
-       struct ead_msg_number *number = EAD_DATA(msg, number);
-       len = ntohl(msg->len) - sizeof(struct ead_msg_number);
-
-       if (len > MAXPARAMLEN + 1)
-               return false;
-
-       A.len = len;
-       A.data = abuf;
-       memcpy(A.data, number->data, len);
-
-       msg = &pktbuf->msg;
-       number = EAD_DATA(msg, number);
-       msg->len = htonl(sizeof(struct ead_msg_number) + B->len);
-       memcpy(number->data, B->data, B->len);
-
-       *nstate = EAD_TYPE_SEND_AUTH;
-       return true;
-}
-
-static bool
-handle_send_auth(struct ead_packet *pkt, int len, int *nstate)
-{
-       struct ead_msg *msg = &pkt->msg;
-       struct ead_msg_auth *auth = EAD_DATA(msg, auth);
-
-       if (t_serververify(ts, auth->data) != 0) {
-               DEBUG(2, "Client authentication failed\n");
-               *nstate = EAD_TYPE_SET_USERNAME;
-               return false;
-       }
-
-       msg = &pktbuf->msg;
-       auth = EAD_DATA(msg, auth);
-       msg->len = htonl(sizeof(struct ead_msg_auth));
-
-       DEBUG(2, "Client authentication successful\n");
-       memcpy(auth->data, t_serverresponse(ts), sizeof(auth->data));
-
-       *nstate = EAD_TYPE_SEND_CMD;
-       return true;
-}
-
-static bool
-handle_send_cmd(struct ead_packet *pkt, int len, int *nstate)
-{
-       struct ead_msg *msg = &pkt->msg;
-       struct ead_msg_cmd *cmd = EAD_ENC_DATA(msg, cmd);
-       struct ead_msg_cmd_data *cmddata;
-       struct timeval tv, to, tn;
-       int pfd[2], fd;
-       fd_set fds;
-       pid_t pid;
-       bool stream = false;
-       int timeout;
-       int type;
-       int datalen;
-
-       datalen = ead_decrypt_message(msg) - sizeof(struct ead_msg_cmd);
-       if (datalen <= 0)
-               return false;
-
-       type = ntohs(cmd->type);
-       timeout = ntohs(cmd->timeout);
-
-       FD_ZERO(&fds);
-       cmd->data[datalen] = 0;
-       switch(type) {
-       case EAD_CMD_NORMAL:
-               if (pipe(pfd) < 0)
-                       return false;
-
-               fcntl(pfd[0], F_SETFL, O_NONBLOCK | fcntl(pfd[0], F_GETFL));
-               child_pending = true;
-               pid = fork();
-               if (pid == 0) {
-                       close(pfd[0]);
-                       fd = open("/dev/null", O_RDWR);
-                       if (fd > 0) {
-                               dup2(fd, 0);
-                               dup2(pfd[1], 1);
-                               dup2(pfd[1], 2);
-                       }
-                       system((char *)cmd->data);
-                       exit(0);
-               } else if (pid > 0) {
-                       close(pfd[1]);
-                       if (!timeout)
-                               timeout = EAD_CMD_TIMEOUT;
-
-                       stream = true;
-                       break;
-               }
-               return false;
-       case EAD_CMD_BACKGROUND:
-               pid = fork();
-               if (pid == 0) {
-                       /* close stdin, stdout, stderr, replace with fd to /dev/null */
-                       fd = open("/dev/null", O_RDWR);
-                       if (fd > 0) {
-                               dup2(fd, 0);
-                               dup2(fd, 1);
-                               dup2(fd, 2);
-                       }
-                       system((char *)cmd->data);
-                       exit(0);
-               } else if (pid > 0) {
-                       break;
-               }
-               return false;
-       default:
-               return false;
-       }
-
-       msg = &pktbuf->msg;
-       cmddata = EAD_ENC_DATA(msg, cmd_data);
-
-       if (stream) {
-               int nfds, bytes;
-
-               /* send keepalive packets every 200 ms so that the client doesn't timeout */
-               gettimeofday(&to, NULL);
-               memcpy(&tn, &to, sizeof(tn));
-               tv.tv_usec = PCAP_TIMEOUT * 1000;
-               tv.tv_sec = 0;
-               do {
-                       cmddata->done = 0;
-                       FD_SET(pfd[0], &fds);
-                       nfds = select(pfd[0] + 1, &fds, NULL, NULL, &tv);
-                       bytes = 0;
-                       if (nfds > 0) {
-                               bytes = read(pfd[0], cmddata->data, 1024);
-                               if (bytes < 0)
-                                       bytes = 0;
-                       }
-                       if (!bytes && !child_pending)
-                               break;
-                       DEBUG(3, "Sending %d bytes of console data, type=%d, timeout=%d\n", bytes, ntohl(msg->type), timeout);
-                       ead_encrypt_message(msg, sizeof(struct ead_msg_cmd_data) + bytes);
-                       ead_send_packet_clone(pkt);
-                       gettimeofday(&tn, NULL);
-               } while (tn.tv_sec < to.tv_sec + timeout);
-               if (child_pending) {
-                       kill(pid, SIGKILL);
-                       return false;
-               }
-       }
-       cmddata->done = 1;
-       ead_encrypt_message(msg, sizeof(struct ead_msg_cmd_data));
-
-       return true;
-}
-
-
-
-static void
-parse_message(struct ead_packet *pkt, int len)
-{
-       bool (*handler)(struct ead_packet *pkt, int len, int *nstate);
-       int min_len = sizeof(struct ead_packet);
-       int nstate = state;
-       int type = ntohl(pkt->msg.type);
-
-       if ((type >= EAD_TYPE_GET_PRIME) &&
-               (state != type))
-               return;
-
-       if ((type != EAD_TYPE_PING) &&
-               ((ntohs(pkt->msg.sid) & EAD_INSTANCE_MASK) >>
-                EAD_INSTANCE_SHIFT) != instance->id)
-               return;
-
-       switch(type) {
-       case EAD_TYPE_PING:
-               handler = handle_ping;
-               break;
-       case EAD_TYPE_SET_USERNAME:
-               handler = handle_set_username;
-               min_len += sizeof(struct ead_msg_user);
-               break;
-       case EAD_TYPE_GET_PRIME:
-               handler = handle_get_prime;
-               break;
-       case EAD_TYPE_SEND_A:
-               handler = handle_send_a;
-               min_len += sizeof(struct ead_msg_number);
-               break;
-       case EAD_TYPE_SEND_AUTH:
-               handler = handle_send_auth;
-               min_len += sizeof(struct ead_msg_auth);
-               break;
-       case EAD_TYPE_SEND_CMD:
-               handler = handle_send_cmd;
-               min_len += sizeof(struct ead_msg_cmd) + sizeof(struct ead_msg_encrypted);
-               break;
-       default:
-               return;
-       }
-
-       if (len < min_len) {
-               DEBUG(2, "discarding packet: message too small\n");
-               return;
-       }
-
-       pktbuf->msg.magic = htonl(EAD_MAGIC);
-       pktbuf->msg.type = htonl(type + 1);
-       pktbuf->msg.nid = htons(nid);
-       pktbuf->msg.sid = pkt->msg.sid;
-       pktbuf->msg.len = 0;
-
-       if (handler(pkt, len, &nstate)) {
-               DEBUG(2, "sending response to packet type %d: %d\n", type + 1, ntohl(pktbuf->msg.len));
-               /* format response packet */
-               ead_send_packet_clone(pkt);
-       }
-       set_state(nstate);
-}
-
-static void
-handle_packet(u_char *user, const struct pcap_pkthdr *h, const u_char *bytes)
-{
-       struct ead_packet *pkt = (struct ead_packet *) bytes;
-
-       if (h->len < sizeof(struct ead_packet))
-               return;
-
-       if (pkt->eh.ether_type != htons(ETHERTYPE_IP))
-               return;
-
-       if (memcmp(pkt->eh.ether_dhost, "\xff\xff\xff\xff\xff\xff", 6) != 0)
-               return;
-
-       if (pkt->proto != UIP_PROTO_UDP)
-               return;
-
-       if (pkt->destport != htons(EAD_PORT))
-               return;
-
-       if (pkt->msg.magic != htonl(EAD_MAGIC))
-               return;
-
-       if (h->len < sizeof(struct ead_packet) + ntohl(pkt->msg.len))
-               return;
-
-       if ((pkt->msg.nid != 0xffff) &&
-               (pkt->msg.nid != htons(nid)))
-               return;
-
-       parse_message(pkt, h->len);
-}
-
-static void
-ead_pcap_reopen(bool first)
-{
-       static char errbuf[PCAP_ERRBUF_SIZE] = "";
-
-       if (pcap_fp_rx && (pcap_fp_rx != pcap_fp))
-               pcap_close(pcap_fp_rx);
-
-       if (pcap_fp)
-               pcap_close(pcap_fp);
-
-       pcap_fp_rx = NULL;
-       do {
-               if (instance->bridge[0]) {
-                       pcap_fp_rx = ead_open_pcap(instance->bridge, errbuf, 1);
-                       pcap_fp = ead_open_pcap(instance->ifname, errbuf, 0);
-               } else {
-                       pcap_fp = ead_open_pcap(instance->ifname, errbuf, 1);
-               }
-
-               if (!pcap_fp_rx)
-                       pcap_fp_rx = pcap_fp;
-               if (first && !pcap_fp) {
-                       DEBUG(1, "WARNING: unable to open interface '%s'\n", instance->ifname);
-                       first = false;
-               }
-               if (!pcap_fp)
-                       sleep(1);
-       } while (!pcap_fp);
-       pcap_setfilter(pcap_fp_rx, &pktfilter);
-}
-
-
-static void
-ead_pktloop(void)
-{
-       while (1) {
-               if (pcap_dispatch(pcap_fp_rx, 1, handle_packet, NULL) < 0) {
-                       ead_pcap_reopen(false);
-                       continue;
-               }
-       }
-}
-
-
-static int
-usage(const char *prog)
-{
-       fprintf(stderr, "Usage: %s [<options>]\n"
-               "Options:\n"
-               "\t-B             Run in background mode\n"
-               "\t-d <device>    Set the device to listen on\n"
-               "\t-D <name>      Set the name of the device visible to clients\n"
-               "\t-p <file>      Set the password file for authenticating\n"
-               "\t-P <file>      Write a pidfile\n"
-               "\n", prog);
-       return -1;
-}
-
-static void
-server_handle_sigchld(int sig)
-{
-       struct ead_instance *in;
-       struct list_head *p;
-       int pid = 0;
-       wait(&pid);
-
-       list_for_each(p, &instances) {
-               in = list_entry(p, struct ead_instance, list);
-               if (pid != in->pid)
-                       continue;
-
-               in->pid = 0;
-               break;
-       }
-}
-
-static void
-instance_handle_sigchld(int sig)
-{
-       int pid = 0;
-       wait(&pid);
-       child_pending = false;
-}
-
-static void
-start_server(struct ead_instance *i)
-{
-       if (!nonfork) {
-               i->pid = fork();
-               if (i->pid != 0) {
-                       if (i->pid < 0)
-                               i->pid = 0;
-                       return;
-               }
-       }
-
-       instance = i;
-       signal(SIGCHLD, instance_handle_sigchld);
-       ead_pcap_reopen(true);
-       ead_pktloop();
-       pcap_close(pcap_fp);
-       if (pcap_fp_rx != pcap_fp)
-               pcap_close(pcap_fp_rx);
-
-       exit(0);
-}
-
-
-static void
-start_servers(bool restart)
-{
-       struct ead_instance *in;
-       struct list_head *p;
-
-       list_for_each(p, &instances) {
-               in = list_entry(p, struct ead_instance, list);
-               if (in->pid > 0)
-                       continue;
-
-               sleep(1);
-               start_server(in);
-       }
-}
-
-static void
-stop_server(struct ead_instance *in, bool do_free)
-{
-       if (in->pid > 0)
-               kill(in->pid, SIGKILL);
-       in->pid = 0;
-       if (do_free) {
-               list_del(&in->list);
-               free(in);
-       }
-}
-
-static void
-server_handle_sigint(int sig)
-{
-       struct ead_instance *in;
-       struct list_head *p, *tmp;
-
-       list_for_each_safe(p, tmp, &instances) {
-               in = list_entry(p, struct ead_instance, list);
-               stop_server(in, true);
-       }
-       exit(1);
-}
-
-static int
-check_bridge_port(const char *br, const char *port, void *arg)
-{
-       struct ead_instance *in;
-       struct list_head *p;
-
-       list_for_each(p, &instances) {
-               in = list_entry(p, struct ead_instance, list);
-
-               if (strcmp(in->ifname, port) != 0)
-                       continue;
-
-               in->br_check = true;
-               if (strcmp(in->bridge, br) == 0)
-                       break;
-
-               strncpy(in->bridge, br, sizeof(in->bridge));
-               DEBUG(2, "assigning port %s to bridge %s\n", in->ifname, in->bridge);
-               stop_server(in, false);
-       }
-       return 0;
-}
-
-static int
-check_bridge(const char *name, void *arg)
-{
-       br_foreach_port(name, check_bridge_port, arg);
-       return 0;
-}
-
-static void
-check_all_interfaces(void)
-{
-       struct ead_instance *in;
-       struct list_head *p;
-
-       br_foreach_bridge(check_bridge, NULL);
-
-       /* look for interfaces that are no longer part of a bridge */
-       list_for_each(p, &instances) {
-               in = list_entry(p, struct ead_instance, list);
-
-               if (in->br_check) {
-                       in->br_check = false;
-               } else if (in->bridge[0]) {
-                       DEBUG(2, "removing port %s from bridge %s\n", in->ifname, in->bridge);
-                       in->bridge[0] = 0;
-                       stop_server(in, false);
-               }
-       }
-}
-
-
-int main(int argc, char **argv)
-{
-       struct ead_instance *in;
-       struct timeval tv;
-       const char *pidfile = NULL;
-       bool background = false;
-       int n_iface = 0;
-       int fd, ch;
-
-       if (argc == 1)
-               return usage(argv[0]);
-
-       INIT_LIST_HEAD(&instances);
-       while ((ch = getopt(argc, argv, "Bd:D:fhp:P:")) != -1) {
-               switch(ch) {
-               case 'B':
-                       background = true;
-                       break;
-               case 'f':
-                       nonfork = true;
-                       break;
-               case 'h':
-                       return usage(argv[0]);
-               case 'd':
-                       in = malloc(sizeof(struct ead_instance));
-                       memset(in, 0, sizeof(struct ead_instance));
-                       INIT_LIST_HEAD(&in->list);
-                       strncpy(in->ifname, optarg, sizeof(in->ifname) - 1);
-                       list_add(&in->list, &instances);
-                       in->id = n_iface++;
-                       break;
-               case 'D':
-                       dev_name = optarg;
-                       break;
-               case 'p':
-                       passwd_file = optarg;
-                       break;
-               case 'P':
-                       pidfile = optarg;
-                       break;
-               }
-       }
-       signal(SIGCHLD, server_handle_sigchld);
-       signal(SIGINT, server_handle_sigint);
-       signal(SIGTERM, server_handle_sigint);
-       signal(SIGKILL, server_handle_sigint);
-
-       if (!n_iface) {
-               fprintf(stderr, "Error: ead needs at least one interface\n");
-               return -1;
-       }
-
-       if (background) {
-               if (fork() > 0)
-                       exit(0);
-
-               fd = open("/dev/null", O_RDWR);
-               dup2(fd, 0);
-               dup2(fd, 1);
-               dup2(fd, 2);
-       }
-
-       if (pidfile) {
-               char pid[8];
-               int len;
-
-               unlink(pidfile);
-               fd = open(pidfile, O_CREAT|O_WRONLY|O_EXCL, 0644);
-               if (fd > 0) {
-                       len = sprintf(pid, "%d\n", getpid());
-                       write(fd, pid, len);
-                       close(fd);
-               }
-       }
-
-       /* randomize the mac address */
-       get_random_bytes(ethmac + 3, 3);
-       nid = *(((u16_t *) ethmac) + 2);
-
-       start_servers(false);
-       br_init();
-       tv.tv_sec = 1;
-       tv.tv_usec = 0;
-       while (1) {
-               check_all_interfaces();
-               start_servers(true);
-               sleep(1);
-       }
-       br_shutdown();
-
-       return 0;
-}
diff --git a/package/network/services/ead/src/ead.h b/package/network/services/ead/src/ead.h
deleted file mode 100644 (file)
index 515ac21..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (C) 2008 Felix Fietkau <nbd@nbd.name>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2
- * as published by the Free Software Foundation
- *
- * This program 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 General Public License for more details.
- */
-
-#ifndef __EAD_H
-#define __EAD_H
-
-#define EAD_DEBUGLEVEL 1
-
-#include <stdint.h>
-#include <stddef.h>
-
-#ifndef MAXSALTLEN
-#define MAXSALTLEN 32
-#endif
-
-#define EAD_PORT       56026UL
-#define EAD_MAGIC      3671771902UL
-#define EAD_CMD_TIMEOUT        10
-
-#define EAD_MAX_IV_INCR        128
-
-/* request/response types */
-/* response id == request id + 1 */
-enum ead_type {
-       EAD_TYPE_PING,
-       EAD_TYPE_PONG,
-
-       EAD_TYPE_SET_USERNAME,
-       EAD_TYPE_ACK_USERNAME,
-
-       EAD_TYPE_GET_PRIME,
-       EAD_TYPE_PRIME,
-
-       EAD_TYPE_SEND_A,
-       EAD_TYPE_SEND_B,
-
-       EAD_TYPE_SEND_AUTH,
-       EAD_TYPE_DONE_AUTH,
-
-       EAD_TYPE_SEND_CMD,
-       EAD_TYPE_RESULT_CMD,
-
-       EAD_TYPE_LAST
-};
-
-enum ead_auth_type {
-       EAD_AUTH_DEFAULT,
-       EAD_AUTH_MD5
-};
-
-enum ead_cmd_type {
-       EAD_CMD_NORMAL,
-       EAD_CMD_BACKGROUND,
-       EAD_CMD_LAST
-};
-
-struct ead_msg_pong {
-       uint16_t auth_type;
-       char name[];
-} __attribute__((packed));
-
-struct ead_msg_number {
-       uint8_t id;
-       unsigned char data[];
-} __attribute__((packed));
-
-struct ead_msg_salt {
-       uint8_t prime;
-       uint8_t len;
-       unsigned char salt[MAXSALTLEN];
-       unsigned char ext_salt[MAXSALTLEN];
-} __attribute__((packed));
-
-struct ead_msg_user {
-       char username[32];
-} __attribute__((packed));
-
-struct ead_msg_auth {
-       unsigned char data[20];
-} __attribute__((packed));
-
-struct ead_msg_cmd {
-       uint8_t type;
-       uint16_t timeout;
-       unsigned char data[];
-} __attribute__((packed));
-
-struct ead_msg_cmd_data {
-       uint8_t done;
-       unsigned char data[];
-} __attribute__((packed));
-
-struct ead_msg_encrypted {
-       uint32_t hash[5];
-       uint32_t iv;
-       uint8_t pad;
-       union {
-               struct ead_msg_cmd cmd;
-               struct ead_msg_cmd_data cmd_data;
-       } data[];
-} __attribute__((packed));
-
-
-#define EAD_DATA(_msg, _type) (&((_msg)->data[0]._type))
-#define EAD_ENC_DATA(_msg, _type) (&((_msg)->data[0].enc.data[0]._type))
-
-/* for ead_msg::sid */
-#define EAD_INSTANCE_MASK      0xf000
-#define EAD_INSTANCE_SHIFT     12
-
-struct ead_msg {
-       uint32_t magic;
-       uint32_t len;
-       uint32_t type;
-       uint16_t nid; /* node id */
-       uint16_t sid; /* session id */
-       uint32_t ip; /* source ip for responses from the server */
-       union {
-               struct ead_msg_pong pong;
-               struct ead_msg_user user;
-               struct ead_msg_number number;
-               struct ead_msg_auth auth;
-               struct ead_msg_salt salt;
-               struct ead_msg_encrypted enc;
-       } data[];
-} __attribute__((packed));
-
-
-#endif
diff --git a/package/network/services/ead/src/filter.c b/package/network/services/ead/src/filter.c
deleted file mode 100644 (file)
index 0759dc3..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/* precompiled expression: udp and dst port 56026 */
-
-static struct bpf_insn pktfilter_insns[] = {
-       { .code = 0x0028, .jt = 0x00, .jf = 0x00, .k = 0x0000000c },
-       { .code = 0x0015, .jt = 0x00, .jf = 0x04, .k = 0x000086dd },
-       { .code = 0x0030, .jt = 0x00, .jf = 0x00, .k = 0x00000014 },
-       { .code = 0x0015, .jt = 0x00, .jf = 0x0b, .k = 0x00000011 },
-       { .code = 0x0028, .jt = 0x00, .jf = 0x00, .k = 0x00000038 },
-       { .code = 0x0015, .jt = 0x08, .jf = 0x09, .k = 0x0000dada },
-       { .code = 0x0015, .jt = 0x00, .jf = 0x08, .k = 0x00000800 },
-       { .code = 0x0030, .jt = 0x00, .jf = 0x00, .k = 0x00000017 },
-       { .code = 0x0015, .jt = 0x00, .jf = 0x06, .k = 0x00000011 },
-       { .code = 0x0028, .jt = 0x00, .jf = 0x00, .k = 0x00000014 },
-       { .code = 0x0045, .jt = 0x04, .jf = 0x00, .k = 0x00001fff },
-       { .code = 0x00b1, .jt = 0x00, .jf = 0x00, .k = 0x0000000e },
-       { .code = 0x0048, .jt = 0x00, .jf = 0x00, .k = 0x00000010 },
-       { .code = 0x0015, .jt = 0x00, .jf = 0x01, .k = 0x0000dada },
-       { .code = 0x0006, .jt = 0x00, .jf = 0x00, .k = 0x000005dc },
-       { .code = 0x0006, .jt = 0x00, .jf = 0x00, .k = 0x00000000 },
-};
-
-static struct bpf_program pktfilter = {
-       .bf_len = 16,
-       .bf_insns = pktfilter_insns,
-};
diff --git a/package/network/services/ead/src/libbridge.h b/package/network/services/ead/src/libbridge.h
deleted file mode 100644 (file)
index d7bbdc4..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2000 Lennert Buytenhek
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program 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
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _LIBBRIDGE_H
-#define _LIBBRIDGE_H
-
-#ifdef linux
-
-int br_init(void);
-void br_shutdown(void);
-
-int br_foreach_port(const char *brname,
-                   int (*iterator)(const char *br, const char *port, void *arg),
-                   void *arg);
-
-int br_foreach_bridge(int (*iterator)(const char *, void *), void *arg);
-
-#else
-
-static inline int br_init(void)
-{
-       return 0;
-}
-
-static inline void br_shutdown(void)
-{
-}
-
-static inline int
-br_foreach_port(const char *brname,
-                   int (*iterator)(const char *br, const char *port, void *arg),
-                   void *arg)
-{
-       return 0;
-}
-
-static inline int
-br_foreach_bridge(int (*iterator)(const char *, void *), void *arg)
-{
-       return 0;
-}
-
-#endif
-
-#endif
diff --git a/package/network/services/ead/src/libbridge_init.c b/package/network/services/ead/src/libbridge_init.c
deleted file mode 100644 (file)
index 687ef62..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2000 Lennert Buytenhek
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program 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
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifdef linux
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-#include <dirent.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-#include <linux/if.h>
-#include <linux/in6.h>
-#include <linux/if_bridge.h>
-
-#include "libbridge.h"
-#include "libbridge_private.h"
-
-static int br_socket_fd = -1;
-
-int br_init(void)
-{
-       if ((br_socket_fd = socket(AF_LOCAL, SOCK_STREAM, 0)) < 0)
-               return errno;
-       return 0;
-}
-
-void br_shutdown(void)
-{
-       close(br_socket_fd);
-       br_socket_fd = -1;
-}
-
-/* If /sys/class/net/XXX/bridge exists then it must be a bridge */
-static int isbridge(const struct dirent *entry)
-{
-       char path[SYSFS_PATH_MAX];
-       struct stat st;
-
-       snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/bridge", entry->d_name);
-       return stat(path, &st) == 0 && S_ISDIR(st.st_mode);
-}
-
-/*
- * New interface uses sysfs to find bridges
- */
-static int new_foreach_bridge(int (*iterator)(const char *name, void *),
-                             void *arg)
-{
-       struct dirent **namelist;
-       int i, count = 0;
-
-       count = scandir(SYSFS_CLASS_NET, &namelist, isbridge, alphasort);
-       if (count < 0)
-               return -1;
-
-       for (i = 0; i < count; i++) {
-               if (iterator(namelist[i]->d_name, arg))
-                       break;
-       }
-
-       for (i = 0; i < count; i++)
-               free(namelist[i]);
-       free(namelist);
-
-       return count;
-}
-
-/*
- * Go over all bridges and call iterator function.
- * if iterator returns non-zero then stop.
- */
-int br_foreach_bridge(int (*iterator)(const char *, void *), void *arg)
-{
-       return new_foreach_bridge(iterator, arg);
-}
-
-/*
- * Iterate over all ports in bridge (using sysfs).
- */
-int br_foreach_port(const char *brname,
-                   int (*iterator)(const char *br, const char *port, void *arg),
-                   void *arg)
-{
-       int i, count;
-       struct dirent **namelist;
-       char path[SYSFS_PATH_MAX];
-
-       snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/brif", brname);
-       count = scandir(path, &namelist, 0, alphasort);
-
-       for (i = 0; i < count; i++) {
-               if (namelist[i]->d_name[0] == '.'
-                   && (namelist[i]->d_name[1] == '\0'
-                       || (namelist[i]->d_name[1] == '.'
-                           && namelist[i]->d_name[2] == '\0')))
-                       continue;
-
-               if (iterator(brname, namelist[i]->d_name, arg))
-                       break;
-       }
-       for (i = 0; i < count; i++)
-               free(namelist[i]);
-       free(namelist);
-
-       return count;
-}
-
-#endif
diff --git a/package/network/services/ead/src/libbridge_private.h b/package/network/services/ead/src/libbridge_private.h
deleted file mode 100644 (file)
index 38fd60e..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2000 Lennert Buytenhek
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program 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
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _LIBBRIDGE_PRIVATE_H
-#define _LIBBRIDGE_PRIVATE_H
-
-#include <linux/sockios.h>
-#include <sys/time.h>
-#include <sys/ioctl.h>
-#include <linux/if_bridge.h>
-
-#define MAX_BRIDGES    1024
-#define MAX_PORTS      1024
-
-#define SYSFS_CLASS_NET "/sys/class/net/"
-#define SYSFS_PATH_MAX 256
-
-#define dprintf(fmt,arg...)
-
-#endif
diff --git a/package/network/services/ead/src/list.h b/package/network/services/ead/src/list.h
deleted file mode 100644 (file)
index ac429c8..0000000
+++ /dev/null
@@ -1,602 +0,0 @@
-/* GPL v2, adapted from the Linux kernel */
-#ifndef _LINUX_LIST_H
-#define _LINUX_LIST_H
-
-#include <stddef.h>
-/**
- * container_of - cast a member of a structure out to the containing structure
- * @ptr:       the pointer to the member.
- * @type:      the type of the container struct this is embedded in.
- * @member:    the name of the member within the struct.
- *
- */
-#ifndef container_of
-#define container_of(ptr, type, member) (                      \
-       (type *)( (char *)ptr - offsetof(type,member) ))
-#endif
-
-
-/*
- * Simple doubly linked list implementation.
- *
- * Some of the internal functions ("__xxx") are useful when
- * manipulating whole lists rather than single entries, as
- * sometimes we already know the next/prev entries and we can
- * generate better code by using them directly rather than
- * using the generic single-entry routines.
- */
-
-struct list_head {
-       struct list_head *next, *prev;
-};
-
-#define LIST_HEAD_INIT(name) { &(name), &(name) }
-
-#define LIST_HEAD(name) \
-       struct list_head name = LIST_HEAD_INIT(name)
-
-static inline void INIT_LIST_HEAD(struct list_head *list)
-{
-       list->next = list;
-       list->prev = list;
-}
-
-/*
- * Insert a new entry between two known consecutive entries.
- *
- * This is only for internal list manipulation where we know
- * the prev/next entries already!
- */
-static inline void __list_add(struct list_head *new,
-                             struct list_head *prev,
-                             struct list_head *next)
-{
-       next->prev = new;
-       new->next = next;
-       new->prev = prev;
-       prev->next = new;
-}
-
-/**
- * list_add - add a new entry
- * @new: new entry to be added
- * @head: list head to add it after
- *
- * Insert a new entry after the specified head.
- * This is good for implementing stacks.
- */
-static inline void list_add(struct list_head *new, struct list_head *head)
-{
-       __list_add(new, head, head->next);
-}
-
-
-/**
- * list_add_tail - add a new entry
- * @new: new entry to be added
- * @head: list head to add it before
- *
- * Insert a new entry before the specified head.
- * This is useful for implementing queues.
- */
-static inline void list_add_tail(struct list_head *new, struct list_head *head)
-{
-       __list_add(new, head->prev, head);
-}
-
-
-/*
- * Delete a list entry by making the prev/next entries
- * point to each other.
- *
- * This is only for internal list manipulation where we know
- * the prev/next entries already!
- */
-static inline void __list_del(struct list_head * prev, struct list_head * next)
-{
-       next->prev = prev;
-       prev->next = next;
-}
-
-/**
- * list_del - deletes entry from list.
- * @entry: the element to delete from the list.
- * Note: list_empty() on entry does not return true after this, the entry is
- * in an undefined state.
- */
-static inline void list_del(struct list_head *entry)
-{
-       __list_del(entry->prev, entry->next);
-       entry->next = NULL;
-       entry->prev = NULL;
-}
-
-/**
- * list_replace - replace old entry by new one
- * @old : the element to be replaced
- * @new : the new element to insert
- *
- * If @old was empty, it will be overwritten.
- */
-static inline void list_replace(struct list_head *old,
-                               struct list_head *new)
-{
-       new->next = old->next;
-       new->next->prev = new;
-       new->prev = old->prev;
-       new->prev->next = new;
-}
-
-static inline void list_replace_init(struct list_head *old,
-                                       struct list_head *new)
-{
-       list_replace(old, new);
-       INIT_LIST_HEAD(old);
-}
-
-/**
- * list_del_init - deletes entry from list and reinitialize it.
- * @entry: the element to delete from the list.
- */
-static inline void list_del_init(struct list_head *entry)
-{
-       __list_del(entry->prev, entry->next);
-       INIT_LIST_HEAD(entry);
-}
-
-/**
- * list_move - delete from one list and add as another's head
- * @list: the entry to move
- * @head: the head that will precede our entry
- */
-static inline void list_move(struct list_head *list, struct list_head *head)
-{
-       __list_del(list->prev, list->next);
-       list_add(list, head);
-}
-
-/**
- * list_move_tail - delete from one list and add as another's tail
- * @list: the entry to move
- * @head: the head that will follow our entry
- */
-static inline void list_move_tail(struct list_head *list,
-                                 struct list_head *head)
-{
-       __list_del(list->prev, list->next);
-       list_add_tail(list, head);
-}
-
-/**
- * list_is_last - tests whether @list is the last entry in list @head
- * @list: the entry to test
- * @head: the head of the list
- */
-static inline int list_is_last(const struct list_head *list,
-                               const struct list_head *head)
-{
-       return list->next == head;
-}
-
-/**
- * list_empty - tests whether a list is empty
- * @head: the list to test.
- */
-static inline int list_empty(const struct list_head *head)
-{
-       return head->next == head;
-}
-
-/**
- * list_empty_careful - tests whether a list is empty and not being modified
- * @head: the list to test
- *
- * Description:
- * tests whether a list is empty _and_ checks that no other CPU might be
- * in the process of modifying either member (next or prev)
- *
- * NOTE: using list_empty_careful() without synchronization
- * can only be safe if the only activity that can happen
- * to the list entry is list_del_init(). Eg. it cannot be used
- * if another CPU could re-list_add() it.
- */
-static inline int list_empty_careful(const struct list_head *head)
-{
-       struct list_head *next = head->next;
-       return (next == head) && (next == head->prev);
-}
-
-static inline void __list_splice(struct list_head *list,
-                                struct list_head *head)
-{
-       struct list_head *first = list->next;
-       struct list_head *last = list->prev;
-       struct list_head *at = head->next;
-
-       first->prev = head;
-       head->next = first;
-
-       last->next = at;
-       at->prev = last;
-}
-
-/**
- * list_splice - join two lists
- * @list: the new list to add.
- * @head: the place to add it in the first list.
- */
-static inline void list_splice(struct list_head *list, struct list_head *head)
-{
-       if (!list_empty(list))
-               __list_splice(list, head);
-}
-
-/**
- * list_splice_init - join two lists and reinitialise the emptied list.
- * @list: the new list to add.
- * @head: the place to add it in the first list.
- *
- * The list at @list is reinitialised
- */
-static inline void list_splice_init(struct list_head *list,
-                                   struct list_head *head)
-{
-       if (!list_empty(list)) {
-               __list_splice(list, head);
-               INIT_LIST_HEAD(list);
-       }
-}
-
-/**
- * list_entry - get the struct for this entry
- * @ptr:       the &struct list_head pointer.
- * @type:      the type of the struct this is embedded in.
- * @member:    the name of the list_struct within the struct.
- */
-#define list_entry(ptr, type, member) \
-       container_of(ptr, type, member)
-
-/**
- * list_first_entry - get the first element from a list
- * @ptr:       the list head to take the element from.
- * @type:      the type of the struct this is embedded in.
- * @member:    the name of the list_struct within the struct.
- *
- * Note, that list is expected to be not empty.
- */
-#define list_first_entry(ptr, type, member) \
-       list_entry((ptr)->next, type, member)
-
-/**
- * list_for_each       -       iterate over a list
- * @pos:       the &struct list_head to use as a loop cursor.
- * @head:      the head for your list.
- */
-#define list_for_each(pos, head) \
-       for (pos = (head)->next; pos != (head); \
-               pos = pos->next)
-
-/**
- * __list_for_each     -       iterate over a list
- * @pos:       the &struct list_head to use as a loop cursor.
- * @head:      the head for your list.
- *
- * This variant differs from list_for_each() in that it's the
- * simplest possible list iteration code, no prefetching is done.
- * Use this for code that knows the list to be very short (empty
- * or 1 entry) most of the time.
- */
-#define __list_for_each(pos, head) \
-       for (pos = (head)->next; pos != (head); pos = pos->next)
-
-/**
- * list_for_each_prev  -       iterate over a list backwards
- * @pos:       the &struct list_head to use as a loop cursor.
- * @head:      the head for your list.
- */
-#define list_for_each_prev(pos, head) \
-       for (pos = (head)->prev; pos != (head); \
-               pos = pos->prev)
-
-/**
- * list_for_each_safe - iterate over a list safe against removal of list entry
- * @pos:       the &struct list_head to use as a loop cursor.
- * @n:         another &struct list_head to use as temporary storage
- * @head:      the head for your list.
- */
-#define list_for_each_safe(pos, n, head) \
-       for (pos = (head)->next, n = pos->next; pos != (head); \
-               pos = n, n = pos->next)
-
-/**
- * list_for_each_prev_safe - iterate over a list backwards safe against removal of list entry
- * @pos:       the &struct list_head to use as a loop cursor.
- * @n:         another &struct list_head to use as temporary storage
- * @head:      the head for your list.
- */
-#define list_for_each_prev_safe(pos, n, head) \
-       for (pos = (head)->prev, n = pos->prev; \
-            pos != (head); \
-            pos = n, n = pos->prev)
-
-/**
- * list_for_each_entry -       iterate over list of given type
- * @pos:       the type * to use as a loop cursor.
- * @head:      the head for your list.
- * @member:    the name of the list_struct within the struct.
- */
-#define list_for_each_entry(pos, head, member)                         \
-       for (pos = list_entry((head)->next, typeof(*pos), member);      \
-            &pos->member != (head);    \
-            pos = list_entry(pos->member.next, typeof(*pos), member))
-
-/**
- * list_for_each_entry_reverse - iterate backwards over list of given type.
- * @pos:       the type * to use as a loop cursor.
- * @head:      the head for your list.
- * @member:    the name of the list_struct within the struct.
- */
-#define list_for_each_entry_reverse(pos, head, member)                 \
-       for (pos = list_entry((head)->prev, typeof(*pos), member);      \
-            &pos->member != (head);    \
-            pos = list_entry(pos->member.prev, typeof(*pos), member))
-
-/**
- * list_prepare_entry - prepare a pos entry for use in list_for_each_entry_continue()
- * @pos:       the type * to use as a start point
- * @head:      the head of the list
- * @member:    the name of the list_struct within the struct.
- *
- * Prepares a pos entry for use as a start point in list_for_each_entry_continue().
- */
-#define list_prepare_entry(pos, head, member) \
-       ((pos) ? : list_entry(head, typeof(*pos), member))
-
-/**
- * list_for_each_entry_continue - continue iteration over list of given type
- * @pos:       the type * to use as a loop cursor.
- * @head:      the head for your list.
- * @member:    the name of the list_struct within the struct.
- *
- * Continue to iterate over list of given type, continuing after
- * the current position.
- */
-#define list_for_each_entry_continue(pos, head, member)                \
-       for (pos = list_entry(pos->member.next, typeof(*pos), member);  \
-            &pos->member != (head);    \
-            pos = list_entry(pos->member.next, typeof(*pos), member))
-
-/**
- * list_for_each_entry_continue_reverse - iterate backwards from the given point
- * @pos:       the type * to use as a loop cursor.
- * @head:      the head for your list.
- * @member:    the name of the list_struct within the struct.
- *
- * Start to iterate over list of given type backwards, continuing after
- * the current position.
- */
-#define list_for_each_entry_continue_reverse(pos, head, member)                \
-       for (pos = list_entry(pos->member.prev, typeof(*pos), member);  \
-            &pos->member != (head);    \
-            pos = list_entry(pos->member.prev, typeof(*pos), member))
-
-/**
- * list_for_each_entry_from - iterate over list of given type from the current point
- * @pos:       the type * to use as a loop cursor.
- * @head:      the head for your list.
- * @member:    the name of the list_struct within the struct.
- *
- * Iterate over list of given type, continuing from current position.
- */
-#define list_for_each_entry_from(pos, head, member)                    \
-       for (; &pos->member != (head);  \
-            pos = list_entry(pos->member.next, typeof(*pos), member))
-
-/**
- * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry
- * @pos:       the type * to use as a loop cursor.
- * @n:         another type * to use as temporary storage
- * @head:      the head for your list.
- * @member:    the name of the list_struct within the struct.
- */
-#define list_for_each_entry_safe(pos, n, head, member)                 \
-       for (pos = list_entry((head)->next, typeof(*pos), member),      \
-               n = list_entry(pos->member.next, typeof(*pos), member); \
-            &pos->member != (head);                                    \
-            pos = n, n = list_entry(n->member.next, typeof(*n), member))
-
-/**
- * list_for_each_entry_safe_continue
- * @pos:       the type * to use as a loop cursor.
- * @n:         another type * to use as temporary storage
- * @head:      the head for your list.
- * @member:    the name of the list_struct within the struct.
- *
- * Iterate over list of given type, continuing after current point,
- * safe against removal of list entry.
- */
-#define list_for_each_entry_safe_continue(pos, n, head, member)                \
-       for (pos = list_entry(pos->member.next, typeof(*pos), member),          \
-               n = list_entry(pos->member.next, typeof(*pos), member);         \
-            &pos->member != (head);                                            \
-            pos = n, n = list_entry(n->member.next, typeof(*n), member))
-
-/**
- * list_for_each_entry_safe_from
- * @pos:       the type * to use as a loop cursor.
- * @n:         another type * to use as temporary storage
- * @head:      the head for your list.
- * @member:    the name of the list_struct within the struct.
- *
- * Iterate over list of given type from current point, safe against
- * removal of list entry.
- */
-#define list_for_each_entry_safe_from(pos, n, head, member)                    \
-       for (n = list_entry(pos->member.next, typeof(*pos), member);            \
-            &pos->member != (head);                                            \
-            pos = n, n = list_entry(n->member.next, typeof(*n), member))
-
-/**
- * list_for_each_entry_safe_reverse
- * @pos:       the type * to use as a loop cursor.
- * @n:         another type * to use as temporary storage
- * @head:      the head for your list.
- * @member:    the name of the list_struct within the struct.
- *
- * Iterate backwards over list of given type, safe against removal
- * of list entry.
- */
-#define list_for_each_entry_safe_reverse(pos, n, head, member)         \
-       for (pos = list_entry((head)->prev, typeof(*pos), member),      \
-               n = list_entry(pos->member.prev, typeof(*pos), member); \
-            &pos->member != (head);                                    \
-            pos = n, n = list_entry(n->member.prev, typeof(*n), member))
-
-/*
- * Double linked lists with a single pointer list head.
- * Mostly useful for hash tables where the two pointer list head is
- * too wasteful.
- * You lose the ability to access the tail in O(1).
- */
-
-struct hlist_head {
-       struct hlist_node *first;
-};
-
-struct hlist_node {
-       struct hlist_node *next, **pprev;
-};
-
-#define HLIST_HEAD_INIT { .first = NULL }
-#define HLIST_HEAD(name) struct hlist_head name = {  .first = NULL }
-#define INIT_HLIST_HEAD(ptr) ((ptr)->first = NULL)
-static inline void INIT_HLIST_NODE(struct hlist_node *h)
-{
-       h->next = NULL;
-       h->pprev = NULL;
-}
-
-static inline int hlist_unhashed(const struct hlist_node *h)
-{
-       return !h->pprev;
-}
-
-static inline int hlist_empty(const struct hlist_head *h)
-{
-       return !h->first;
-}
-
-static inline void __hlist_del(struct hlist_node *n)
-{
-       struct hlist_node *next = n->next;
-       struct hlist_node **pprev = n->pprev;
-       *pprev = next;
-       if (next)
-               next->pprev = pprev;
-}
-
-static inline void hlist_del(struct hlist_node *n)
-{
-       __hlist_del(n);
-       n->next = NULL;
-       n->pprev = NULL;
-}
-
-static inline void hlist_del_init(struct hlist_node *n)
-{
-       if (!hlist_unhashed(n)) {
-               __hlist_del(n);
-               INIT_HLIST_NODE(n);
-       }
-}
-
-
-static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h)
-{
-       struct hlist_node *first = h->first;
-       n->next = first;
-       if (first)
-               first->pprev = &n->next;
-       h->first = n;
-       n->pprev = &h->first;
-}
-
-
-/* next must be != NULL */
-static inline void hlist_add_before(struct hlist_node *n,
-                                       struct hlist_node *next)
-{
-       n->pprev = next->pprev;
-       n->next = next;
-       next->pprev = &n->next;
-       *(n->pprev) = n;
-}
-
-static inline void hlist_add_after(struct hlist_node *n,
-                                       struct hlist_node *next)
-{
-       next->next = n->next;
-       n->next = next;
-       next->pprev = &n->next;
-
-       if(next->next)
-               next->next->pprev  = &next->next;
-}
-
-#define hlist_entry(ptr, type, member) container_of(ptr,type,member)
-
-#define hlist_for_each(pos, head) \
-       for (pos = (head)->first; pos; pos = pos->next)
-
-#define hlist_for_each_safe(pos, n, head) \
-       for (pos = (head)->first; pos; pos = n)
-
-/**
- * hlist_for_each_entry        - iterate over list of given type
- * @tpos:      the type * to use as a loop cursor.
- * @pos:       the &struct hlist_node to use as a loop cursor.
- * @head:      the head for your list.
- * @member:    the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry(tpos, pos, head, member)                   \
-       for (pos = (head)->first; pos &&                                 \
-               ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
-            pos = pos->next)
-
-/**
- * hlist_for_each_entry_continue - iterate over a hlist continuing after current point
- * @tpos:      the type * to use as a loop cursor.
- * @pos:       the &struct hlist_node to use as a loop cursor.
- * @member:    the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry_continue(tpos, pos, member)               \
-       for (pos = (pos)->next; pos &&                                  \
-            ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;});   \
-            pos = pos->next)
-
-/**
- * hlist_for_each_entry_from - iterate over a hlist continuing from current point
- * @tpos:      the type * to use as a loop cursor.
- * @pos:       the &struct hlist_node to use as a loop cursor.
- * @member:    the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry_from(tpos, pos, member)                    \
-       for (; pos &&                    \
-               ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
-            pos = pos->next)
-
-/**
- * hlist_for_each_entry_safe - iterate over list of given type safe against removal of list entry
- * @tpos:      the type * to use as a loop cursor.
- * @pos:       the &struct hlist_node to use as a loop cursor.
- * @n:         another &struct hlist_node to use as temporary storage
- * @head:      the head for your list.
- * @member:    the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry_safe(tpos, pos, n, head, member)           \
-       for (pos = (head)->first;                                        \
-            pos && ({ n = pos->next; 1; }) &&                           \
-               ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
-            pos = n)
-
-#endif
diff --git a/package/network/services/ead/src/passwd b/package/network/services/ead/src/passwd
deleted file mode 100644 (file)
index eee7a89..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-root:$1$MCGAgYw.$Ip1GcyeUliId3wzVcKR/e/:0:0:root:/root:/bin/ash
-nobody:*:65534:65534:nobody:/var:/bin/false
-daemon:*:65534:65534:daemon:/var:/bin/false
diff --git a/package/network/services/ead/src/pfc.c b/package/network/services/ead/src/pfc.c
deleted file mode 100644 (file)
index e53cbd1..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Small pcap precompiler
- * Copyright (C) 2008 Felix Fietkau <nbd@nbd.name>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2
- * as published by the Free Software Foundation
- *
- * This program 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 General Public License for more details.
- */
-
-#include <sys/types.h>
-#include <sys/time.h>
-#include <string.h>
-#include <stdlib.h>
-#include <pcap.h>
-
-int main (int argc, char ** argv)
-{
-       struct bpf_program filter;
-       pcap_t *pc;
-       int i;
-
-       if (argc != 2)
-       {
-               printf ("Usage: %s <expression>\n", argv[0]);
-               return 1;
-       }
-
-       pc = pcap_open_dead(DLT_EN10MB, 1500);
-       if (pcap_compile(pc, &filter, argv[1], 1, 0) != 0) {
-               printf("error in active-filter expression: %s\n", pcap_geterr(pc));
-               return 1;
-       }
-
-       printf("/* precompiled expression: %s */\n\n"
-               "static struct bpf_insn pktfilter_insns[] = {\n",
-               argv[1]);
-
-       for (i = 0; i < filter.bf_len; i++) {
-               struct bpf_insn *in = &filter.bf_insns[i];
-               printf("\t{ .code = 0x%04x, .jt = 0x%02x, .jf = 0x%02x, .k = 0x%08x },\n", in->code, in->jt, in->jf, in->k);
-       }
-       printf("};\n\n"
-               "static struct bpf_program pktfilter = {\n"
-               "\t.bf_len = %d,\n"
-               "\t.bf_insns = pktfilter_insns,\n"
-               "};\n", filter.bf_len);
-       return 0;
-
-}
diff --git a/package/network/services/ead/src/pw_encrypt_md5.c b/package/network/services/ead/src/pw_encrypt_md5.c
deleted file mode 100644 (file)
index bc9f249..0000000
+++ /dev/null
@@ -1,646 +0,0 @@
-/*
- * MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm
- *
- * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
- * rights reserved.
- *
- * License to copy and use this software is granted provided that it
- * is identified as the "RSA Data Security, Inc. MD5 Message-Digest
- * Algorithm" in all material mentioning or referencing this software
- * or this function.
- *
- * License is also granted to make and use derivative works provided
- * that such works are identified as "derived from the RSA Data
- * Security, Inc. MD5 Message-Digest Algorithm" in all material
- * mentioning or referencing the derived work.
- *
- * RSA Data Security, Inc. makes no representations concerning either
- * the merchantability of this software or the suitability of this
- * software for any particular purpose. It is provided "as is"
- * without express or implied warranty of any kind.
- *
- * These notices must be retained in any copies of any part of this
- * documentation and/or software.
- *
- * $FreeBSD: src/lib/libmd/md5c.c,v 1.9.2.1 1999/08/29 14:57:12 peter Exp $
- *
- * This code is the same as the code published by RSA Inc.  It has been
- * edited for clarity and style only.
- *
- * ----------------------------------------------------------------------------
- * The md5_crypt() function was taken from freeBSD's libcrypt and contains
- * this license:
- *    "THE BEER-WARE LICENSE" (Revision 42):
- *     <phk@login.dknet.dk> wrote this file.  As long as you retain this notice you
- *     can do whatever you want with this stuff. If we meet some day, and you think
- *     this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
- *
- * $FreeBSD: src/lib/libcrypt/crypt.c,v 1.7.2.1 1999/08/29 14:56:33 peter Exp $
- *
- * ----------------------------------------------------------------------------
- * On April 19th, 2001 md5_crypt() was modified to make it reentrant
- * by Erik Andersen <andersen@uclibc.org>
- *
- *
- * June 28, 2001             Manuel Novoa III
- *
- * "Un-inlined" code using loops and static const tables in order to
- * reduce generated code size (on i386 from approx 4k to approx 2.5k).
- *
- * June 29, 2001             Manuel Novoa III
- *
- * Completely removed static PADDING array.
- *
- * Reintroduced the loop unrolling in MD5_Transform and added the
- * MD5_SIZE_OVER_SPEED option for configurability.  Define below as:
- *       0    fully unrolled loops
- *       1    partially unrolled (4 ops per loop)
- *       2    no unrolling -- introduces the need to swap 4 variables (slow)
- *       3    no unrolling and all 4 loops merged into one with switch
- *               in each loop (glacial)
- * On i386, sizes are roughly (-Os -fno-builtin):
- *     0: 3k     1: 2.5k     2: 2.2k     3: 2k
- *
- *
- * Since SuSv3 does not require crypt_r, modified again August 7, 2002
- * by Erik Andersen to remove reentrance stuff...
- */
-
-static const uint8_t ascii64[] = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-
-/*
- * Valid values are  1 (fastest/largest) to 3 (smallest/slowest).
- */
-#define MD5_SIZE_OVER_SPEED 3
-
-/**********************************************************************/
-
-/* MD5 context. */
-struct MD5Context {
-       uint32_t state[4];      /* state (ABCD) */
-       uint32_t count[2];      /* number of bits, modulo 2^64 (lsb first) */
-       unsigned char buffer[64];       /* input buffer */
-};
-
-static void __md5_Init(struct MD5Context *);
-static void __md5_Update(struct MD5Context *, const unsigned char *, unsigned int);
-static void __md5_Pad(struct MD5Context *);
-static void __md5_Final(unsigned char [16], struct MD5Context *);
-static void __md5_Transform(uint32_t [4], const unsigned char [64]);
-
-
-#define MD5_MAGIC_STR "$1$"
-#define MD5_MAGIC_LEN (sizeof(MD5_MAGIC_STR) - 1)
-static const unsigned char __md5__magic[] = MD5_MAGIC_STR;
-
-
-#ifdef i386
-#define __md5_Encode memcpy
-#define __md5_Decode memcpy
-#else /* i386 */
-
-/*
- * __md5_Encodes input (uint32_t) into output (unsigned char). Assumes len is
- * a multiple of 4.
- */
-static void
-__md5_Encode(unsigned char *output, uint32_t *input, unsigned int len)
-{
-       unsigned int i, j;
-
-       for (i = 0, j = 0; j < len; i++, j += 4) {
-               output[j] = input[i];
-               output[j+1] = (input[i] >> 8);
-               output[j+2] = (input[i] >> 16);
-               output[j+3] = (input[i] >> 24);
-       }
-}
-
-/*
- * __md5_Decodes input (unsigned char) into output (uint32_t). Assumes len is
- * a multiple of 4.
- */
-static void
-__md5_Decode(uint32_t *output, const unsigned char *input, unsigned int len)
-{
-       unsigned int i, j;
-
-       for (i = 0, j = 0; j < len; i++, j += 4)
-               output[i] = ((uint32_t)input[j]) | (((uint32_t)input[j+1]) << 8) |
-                   (((uint32_t)input[j+2]) << 16) | (((uint32_t)input[j+3]) << 24);
-}
-#endif /* i386 */
-
-/* F, G, H and I are basic MD5 functions. */
-#define F(x, y, z) (((x) & (y)) | (~(x) & (z)))
-#define G(x, y, z) (((x) & (z)) | ((y) & ~(z)))
-#define H(x, y, z) ((x) ^ (y) ^ (z))
-#define I(x, y, z) ((y) ^ ((x) | ~(z)))
-
-/* ROTATE_LEFT rotates x left n bits. */
-#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
-
-/*
- * FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
- * Rotation is separate from addition to prevent recomputation.
- */
-#define FF(a, b, c, d, x, s, ac) { \
-       (a) += F ((b), (c), (d)) + (x) + (uint32_t)(ac); \
-       (a) = ROTATE_LEFT((a), (s)); \
-       (a) += (b); \
-       }
-#define GG(a, b, c, d, x, s, ac) { \
-       (a) += G ((b), (c), (d)) + (x) + (uint32_t)(ac); \
-       (a) = ROTATE_LEFT((a), (s)); \
-       (a) += (b); \
-       }
-#define HH(a, b, c, d, x, s, ac) { \
-       (a) += H ((b), (c), (d)) + (x) + (uint32_t)(ac); \
-       (a) = ROTATE_LEFT((a), (s)); \
-       (a) += (b); \
-       }
-#define II(a, b, c, d, x, s, ac) { \
-       (a) += I ((b), (c), (d)) + (x) + (uint32_t)(ac); \
-       (a) = ROTATE_LEFT((a), (s)); \
-       (a) += (b); \
-       }
-
-/* MD5 initialization. Begins an MD5 operation, writing a new context. */
-static void __md5_Init(struct MD5Context *context)
-{
-       context->count[0] = context->count[1] = 0;
-
-       /* Load magic initialization constants.  */
-       context->state[0] = 0x67452301;
-       context->state[1] = 0xefcdab89;
-       context->state[2] = 0x98badcfe;
-       context->state[3] = 0x10325476;
-}
-
-/*
- * MD5 block update operation. Continues an MD5 message-digest
- * operation, processing another message block, and updating the
- * context.
- */
-static void __md5_Update(struct MD5Context *context, const unsigned char *input, unsigned int inputLen)
-{
-       unsigned int i, idx, partLen;
-
-       /* Compute number of bytes mod 64 */
-       idx = (context->count[0] >> 3) & 0x3F;
-
-       /* Update number of bits */
-       context->count[0] += (inputLen << 3);
-       if (context->count[0] < (inputLen << 3))
-               context->count[1]++;
-       context->count[1] += (inputLen >> 29);
-
-       partLen = 64 - idx;
-
-       /* Transform as many times as possible. */
-       if (inputLen >= partLen) {
-               memcpy(&context->buffer[idx], input, partLen);
-               __md5_Transform(context->state, context->buffer);
-
-               for (i = partLen; i + 63 < inputLen; i += 64)
-                       __md5_Transform(context->state, &input[i]);
-
-               idx = 0;
-       } else
-               i = 0;
-
-       /* Buffer remaining input */
-       memcpy(&context->buffer[idx], &input[i], inputLen - i);
-}
-
-/*
- * MD5 padding. Adds padding followed by original length.
- */
-static void __md5_Pad(struct MD5Context *context)
-{
-       unsigned char bits[8];
-       unsigned int idx, padLen;
-       unsigned char PADDING[64];
-
-       memset(PADDING, 0, sizeof(PADDING));
-       PADDING[0] = 0x80;
-
-       /* Save number of bits */
-       __md5_Encode(bits, context->count, 8);
-
-       /* Pad out to 56 mod 64. */
-       idx = (context->count[0] >> 3) & 0x3f;
-       padLen = (idx < 56) ? (56 - idx) : (120 - idx);
-       __md5_Update(context, PADDING, padLen);
-
-       /* Append length (before padding) */
-       __md5_Update(context, bits, 8);
-}
-
-/*
- * MD5 finalization. Ends an MD5 message-digest operation, writing the
- * the message digest and zeroizing the context.
- */
-static void __md5_Final(unsigned char digest[16], struct MD5Context *context)
-{
-       /* Do padding. */
-       __md5_Pad(context);
-
-       /* Store state in digest */
-       __md5_Encode(digest, context->state, 16);
-
-       /* Zeroize sensitive information. */
-       memset(context, 0, sizeof(*context));
-}
-
-/* MD5 basic transformation. Transforms state based on block. */
-static void __md5_Transform(uint32_t state[4], const unsigned char block[64])
-{
-       uint32_t a, b, c, d, x[16];
-#if MD5_SIZE_OVER_SPEED > 1
-       uint32_t temp;
-       const unsigned char *ps;
-
-       static const unsigned char S[] = {
-               7, 12, 17, 22,
-               5, 9, 14, 20,
-               4, 11, 16, 23,
-               6, 10, 15, 21
-       };
-#endif /* MD5_SIZE_OVER_SPEED > 1 */
-
-#if MD5_SIZE_OVER_SPEED > 0
-       const uint32_t *pc;
-       const unsigned char *pp;
-       int i;
-
-       static const uint32_t C[] = {
-                                                               /* round 1 */
-               0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee,
-               0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501,
-               0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be,
-               0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821,
-                                                               /* round 2 */
-               0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa,
-               0xd62f105d, 0x2441453,  0xd8a1e681, 0xe7d3fbc8,
-               0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed,
-               0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a,
-                                                               /* round 3 */
-               0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c,
-               0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70,
-               0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x4881d05,
-               0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665,
-                                                               /* round 4 */
-               0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039,
-               0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1,
-               0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1,
-               0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391
-       };
-
-       static const unsigned char P[] = {
-               0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, /* 1 */
-               1, 6, 11, 0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12, /* 2 */
-               5, 8, 11, 14, 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, 2, /* 3 */
-               0, 7, 14, 5, 12, 3, 10, 1, 8, 15, 6, 13, 4, 11, 2, 9  /* 4 */
-       };
-
-#endif /* MD5_SIZE_OVER_SPEED > 0 */
-
-       __md5_Decode(x, block, 64);
-
-       a = state[0]; b = state[1]; c = state[2]; d = state[3];
-
-#if MD5_SIZE_OVER_SPEED > 2
-       pc = C; pp = P; ps = S - 4;
-
-       for (i = 0; i < 64; i++) {
-               if ((i & 0x0f) == 0) ps += 4;
-               temp = a;
-               switch (i>>4) {
-                       case 0:
-                               temp += F(b, c, d);
-                               break;
-                       case 1:
-                               temp += G(b, c, d);
-                               break;
-                       case 2:
-                               temp += H(b, c, d);
-                               break;
-                       case 3:
-                               temp += I(b, c, d);
-                               break;
-               }
-               temp += x[*pp++] + *pc++;
-               temp = ROTATE_LEFT(temp, ps[i & 3]);
-               temp += b;
-               a = d; d = c; c = b; b = temp;
-       }
-#elif MD5_SIZE_OVER_SPEED > 1
-       pc = C; pp = P; ps = S;
-
-       /* Round 1 */
-       for (i = 0; i < 16; i++) {
-               FF(a, b, c, d, x[*pp], ps[i & 0x3], *pc); pp++; pc++;
-               temp = d; d = c; c = b; b = a; a = temp;
-       }
-
-       /* Round 2 */
-       ps += 4;
-       for (; i < 32; i++) {
-               GG(a, b, c, d, x[*pp], ps[i & 0x3], *pc); pp++; pc++;
-               temp = d; d = c; c = b; b = a; a = temp;
-       }
-       /* Round 3 */
-       ps += 4;
-       for (; i < 48; i++) {
-               HH(a, b, c, d, x[*pp], ps[i & 0x3], *pc); pp++; pc++;
-               temp = d; d = c; c = b; b = a; a = temp;
-       }
-
-       /* Round 4 */
-       ps += 4;
-       for (; i < 64; i++) {
-               II(a, b, c, d, x[*pp], ps[i & 0x3], *pc); pp++; pc++;
-               temp = d; d = c; c = b; b = a; a = temp;
-       }
-#elif MD5_SIZE_OVER_SPEED > 0
-       pc = C; pp = P;
-
-       /* Round 1 */
-       for (i = 0; i < 4; i++) {
-               FF(a, b, c, d, x[*pp],  7, *pc); pp++; pc++;
-               FF(d, a, b, c, x[*pp], 12, *pc); pp++; pc++;
-               FF(c, d, a, b, x[*pp], 17, *pc); pp++; pc++;
-               FF(b, c, d, a, x[*pp], 22, *pc); pp++; pc++;
-       }
-
-       /* Round 2 */
-       for (i = 0; i < 4; i++) {
-               GG(a, b, c, d, x[*pp],  5, *pc); pp++; pc++;
-               GG(d, a, b, c, x[*pp],  9, *pc); pp++; pc++;
-               GG(c, d, a, b, x[*pp], 14, *pc); pp++; pc++;
-               GG(b, c, d, a, x[*pp], 20, *pc); pp++; pc++;
-       }
-       /* Round 3 */
-       for (i = 0; i < 4; i++) {
-               HH(a, b, c, d, x[*pp],  4, *pc); pp++; pc++;
-               HH(d, a, b, c, x[*pp], 11, *pc); pp++; pc++;
-               HH(c, d, a, b, x[*pp], 16, *pc); pp++; pc++;
-               HH(b, c, d, a, x[*pp], 23, *pc); pp++; pc++;
-       }
-
-       /* Round 4 */
-       for (i = 0; i < 4; i++) {
-               II(a, b, c, d, x[*pp],  6, *pc); pp++; pc++;
-               II(d, a, b, c, x[*pp], 10, *pc); pp++; pc++;
-               II(c, d, a, b, x[*pp], 15, *pc); pp++; pc++;
-               II(b, c, d, a, x[*pp], 21, *pc); pp++; pc++;
-       }
-#else
-       /* Round 1 */
-#define S11 7
-#define S12 12
-#define S13 17
-#define S14 22
-       FF(a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
-       FF(d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
-       FF(c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
-       FF(b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
-       FF(a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
-       FF(d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
-       FF(c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
-       FF(b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
-       FF(a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
-       FF(d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
-       FF(c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
-       FF(b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
-       FF(a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
-       FF(d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
-       FF(c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
-       FF(b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
-
-       /* Round 2 */
-#define S21 5
-#define S22 9
-#define S23 14
-#define S24 20
-       GG(a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
-       GG(d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
-       GG(c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
-       GG(b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
-       GG(a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
-       GG(d, a, b, c, x[10], S22,  0x2441453); /* 22 */
-       GG(c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
-       GG(b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
-       GG(a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
-       GG(d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
-       GG(c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
-       GG(b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
-       GG(a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
-       GG(d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
-       GG(c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
-       GG(b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
-
-       /* Round 3 */
-#define S31 4
-#define S32 11
-#define S33 16
-#define S34 23
-       HH(a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
-       HH(d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
-       HH(c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
-       HH(b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
-       HH(a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
-       HH(d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
-       HH(c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
-       HH(b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
-       HH(a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
-       HH(d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
-       HH(c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
-       HH(b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */
-       HH(a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
-       HH(d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
-       HH(c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
-       HH(b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
-
-       /* Round 4 */
-#define S41 6
-#define S42 10
-#define S43 15
-#define S44 21
-       II(a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
-       II(d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
-       II(c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
-       II(b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
-       II(a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
-       II(d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
-       II(c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
-       II(b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
-       II(a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
-       II(d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
-       II(c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
-       II(b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
-       II(a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
-       II(d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
-       II(c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
-       II(b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
-#endif
-
-       state[0] += a;
-       state[1] += b;
-       state[2] += c;
-       state[3] += d;
-
-       /* Zeroize sensitive information. */
-       memset(x, 0, sizeof(x));
-}
-
-
-static char*
-__md5_to64(char *s, unsigned v, int n)
-{
-       while (--n >= 0) {
-               *s++ = ascii64[v & 0x3f];
-               v >>= 6;
-       }
-       return s;
-}
-
-/*
- * UNIX password
- *
- * Use MD5 for what it is best at...
- */
-#define MD5_OUT_BUFSIZE 36
-static char *
-md5_crypt(char passwd[MD5_OUT_BUFSIZE], const unsigned char *pw, const unsigned char *salt)
-{
-       const unsigned char *sp, *ep;
-       char *p;
-       unsigned char final[17];        /* final[16] exists only to aid in looping */
-       int sl, pl, i, pw_len;
-       struct MD5Context ctx, ctx1;
-
-       /* Refine the Salt first */
-       sp = salt;
-
-       sp += MD5_MAGIC_LEN;
-
-       /* It stops at the first '$', max 8 chars */
-       for (ep = sp; *ep && *ep != '$' && ep < (sp+8); ep++)
-               continue;
-
-       /* get the length of the true salt */
-       sl = ep - sp;
-
-       __md5_Init(&ctx);
-
-       /* The password first, since that is what is most unknown */
-       pw_len = strlen((char*)pw);
-       __md5_Update(&ctx, pw, pw_len);
-
-       /* Then our magic string */
-       __md5_Update(&ctx, __md5__magic, MD5_MAGIC_LEN);
-
-       /* Then the raw salt */
-       __md5_Update(&ctx, sp, sl);
-
-       /* Then just as many characters of the MD5(pw, salt, pw) */
-       __md5_Init(&ctx1);
-       __md5_Update(&ctx1, pw, pw_len);
-       __md5_Update(&ctx1, sp, sl);
-       __md5_Update(&ctx1, pw, pw_len);
-       __md5_Final(final, &ctx1);
-       for (pl = pw_len; pl > 0; pl -= 16)
-               __md5_Update(&ctx, final, pl > 16 ? 16 : pl);
-
-       /* Don't leave anything around in vm they could use. */
-//TODO: the above comment seems to be wrong. final is used later.
-       memset(final, 0, sizeof(final));
-
-       /* Then something really weird... */
-       for (i = pw_len; i; i >>= 1) {
-               __md5_Update(&ctx, ((i & 1) ? final : (const unsigned char *) pw), 1);
-       }
-
-       /* Now make the output string */
-       passwd[0] = '$';
-       passwd[1] = '1';
-       passwd[2] = '$';
-       strncpy(passwd + 3, (char*)sp, sl);
-       passwd[sl + 3] = '$';
-
-       __md5_Final(final, &ctx);
-
-       /*
-        * and now, just to make sure things don't run too fast
-        * On a 60 Mhz Pentium this takes 34 msec, so you would
-        * need 30 seconds to build a 1000 entry dictionary...
-        */
-       for (i = 0; i < 1000; i++) {
-               __md5_Init(&ctx1);
-               if (i & 1)
-                       __md5_Update(&ctx1, pw, pw_len);
-               else
-                       __md5_Update(&ctx1, final, 16);
-
-               if (i % 3)
-                       __md5_Update(&ctx1, sp, sl);
-
-               if (i % 7)
-                       __md5_Update(&ctx1, pw, pw_len);
-
-               if (i & 1)
-                       __md5_Update(&ctx1, final, 16);
-               else
-                       __md5_Update(&ctx1, pw, pw_len);
-               __md5_Final(final, &ctx1);
-       }
-
-       p = passwd + sl + 4; /* 12 bytes max (sl is up to 8 bytes) */
-
-       /* Add 5*4+2 = 22 bytes of hash, + NUL byte. */
-       final[16] = final[5];
-       for (i = 0; i < 5; i++) {
-               unsigned l = (final[i] << 16) | (final[i+6] << 8) | final[i+12];
-               p = __md5_to64(p, l, 4);
-       }
-       p = __md5_to64(p, final[11], 2);
-       *p = '\0';
-
-       /* Don't leave anything around in vm they could use. */
-       memset(final, 0, sizeof(final));
-
-       return passwd;
-}
-
-#undef MD5_SIZE_OVER_SPEED
-#undef MD5_MAGIC_STR
-#undef MD5_MAGIC_LEN
-#undef __md5_Encode
-#undef __md5_Decode
-#undef F
-#undef G
-#undef H
-#undef I
-#undef ROTATE_LEFT
-#undef FF
-#undef GG
-#undef HH
-#undef II
-#undef S11
-#undef S12
-#undef S13
-#undef S14
-#undef S21
-#undef S22
-#undef S23
-#undef S24
-#undef S31
-#undef S32
-#undef S33
-#undef S34
-#undef S41
-#undef S42
-#undef S43
-#undef S44
diff --git a/package/network/services/ead/src/sha1.c b/package/network/services/ead/src/sha1.c
deleted file mode 100644 (file)
index 3683a7d..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * SHA transform algorithm, originally taken from code written by
- * Peter Gutmann, and placed in the public domain.
- */
-
-static  uint32_t
-rol32(uint32_t word, int shift)
-{
-       return (word << shift) | (word >> (32 - shift));
-}
-
-/* The SHA f()-functions.  */
-
-#define f1(x,y,z)   (z ^ (x & (y ^ z)))                /* x ? y : z */
-#define f2(x,y,z)   (x ^ y ^ z)                        /* XOR */
-#define f3(x,y,z)   ((x & y) + (z & (x ^ y)))  /* majority */
-
-/* The SHA Mysterious Constants */
-
-#define K1  0x5A827999L                        /* Rounds  0-19: sqrt(2) * 2^30 */
-#define K2  0x6ED9EBA1L                        /* Rounds 20-39: sqrt(3) * 2^30 */
-#define K3  0x8F1BBCDCL                        /* Rounds 40-59: sqrt(5) * 2^30 */
-#define K4  0xCA62C1D6L                        /* Rounds 60-79: sqrt(10) * 2^30 */
-
-/**
- * sha_transform - single block SHA1 transform
- *
- * @digest: 160 bit digest to update
- * @data:   512 bits of data to hash
- * @W:      80 words of workspace (see note)
- *
- * This function generates a SHA1 digest for a single 512-bit block.
- * Be warned, it does not handle padding and message digest, do not
- * confuse it with the full FIPS 180-1 digest algorithm for variable
- * length messages.
- *
- * Note: If the hash is security sensitive, the caller should be sure
- * to clear the workspace. This is left to the caller to avoid
- * unnecessary clears between chained hashing operations.
- */
-static void sha_transform(uint32_t *digest, const unsigned char *in, uint32_t *W)
-{
-       uint32_t a, b, c, d, e, t, i;
-
-       for (i = 0; i < 16; i++) {
-               int ofs = 4 * i;
-
-               /* word load/store may be unaligned here, so use bytes instead */
-               W[i] =
-                       (in[ofs+0] << 24) |
-                       (in[ofs+1] << 16) |
-                       (in[ofs+2] << 8) |
-                        in[ofs+3];
-       }
-
-       for (i = 0; i < 64; i++)
-               W[i+16] = rol32(W[i+13] ^ W[i+8] ^ W[i+2] ^ W[i], 1);
-
-       a = digest[0];
-       b = digest[1];
-       c = digest[2];
-       d = digest[3];
-       e = digest[4];
-
-       for (i = 0; i < 20; i++) {
-               t = f1(b, c, d) + K1 + rol32(a, 5) + e + W[i];
-               e = d; d = c; c = rol32(b, 30); b = a; a = t;
-       }
-
-       for (; i < 40; i ++) {
-               t = f2(b, c, d) + K2 + rol32(a, 5) + e + W[i];
-               e = d; d = c; c = rol32(b, 30); b = a; a = t;
-       }
-
-       for (; i < 60; i ++) {
-               t = f3(b, c, d) + K3 + rol32(a, 5) + e + W[i];
-               e = d; d = c; c = rol32(b, 30); b = a; a = t;
-       }
-
-       for (; i < 80; i ++) {
-               t = f2(b, c, d) + K4 + rol32(a, 5) + e + W[i];
-               e = d; d = c; c = rol32(b, 30); b = a; a = t;
-       }
-
-       digest[0] += a;
-       digest[1] += b;
-       digest[2] += c;
-       digest[3] += d;
-       digest[4] += e;
-}
-
-/**
- * sha_init - initialize the vectors for a SHA1 digest
- * @buf: vector to initialize
- */
-static void sha_init(uint32_t *buf)
-{
-       buf[0] = 0x67452301;
-       buf[1] = 0xefcdab89;
-       buf[2] = 0x98badcfe;
-       buf[3] = 0x10325476;
-       buf[4] = 0xc3d2e1f0;
-}
-
diff --git a/package/network/services/ead/src/tinysrp/Makefile.am b/package/network/services/ead/src/tinysrp/Makefile.am
deleted file mode 100644 (file)
index a8f899f..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-AUTOMAKE_OPTIONS = foreign no-dependencies
-
-noinst_HEADERS = t_client.h t_pwd.h t_server.h t_sha.h \
-  bn.h bn_lcl.h bn_prime.h t_defines.h t_read.h
-
-include_HEADERS = tinysrp.h
-
-lib_LIBRARIES = libtinysrp.a
-
-CFLAGS = -O2 @signed@
-
-libtinysrp_a_SOURCES = \
-  tinysrp.c t_client.c t_getconf.c t_conv.c t_getpass.c t_sha.c t_math.c \
-  t_misc.c t_pw.c t_read.c t_server.c t_truerand.c \
-  bn_add.c bn_ctx.c bn_div.c bn_exp.c bn_mul.c bn_word.c bn_asm.c bn_lib.c \
-  bn_shift.c bn_sqr.c
-
-noinst_PROGRAMS = srvtest clitest
-srvtest_SOURCES = srvtest.c
-clitest_SOURCES = clitest.c
-
-bin_PROGRAMS = tconf tphrase
-tconf_SOURCES = tconf.c t_conf.c
-tphrase_SOURCES = tphrase.c
-
-LDADD = libtinysrp.a
-
-EXTRA_DIST = tpasswd Notes
diff --git a/package/network/services/ead/src/tinysrp/Makefile.in b/package/network/services/ead/src/tinysrp/Makefile.in
deleted file mode 100644 (file)
index 4701cd5..0000000
+++ /dev/null
@@ -1,477 +0,0 @@
-# Makefile.in generated automatically by automake 1.4a from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_FLAG =
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-CC = @CC@
-LN_S = @LN_S@
-MAKEINFO = @MAKEINFO@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-VERSION = @VERSION@
-signed = @signed@
-
-AUTOMAKE_OPTIONS = foreign no-dependencies
-
-noinst_HEADERS = t_client.h t_pwd.h t_server.h t_sha.h   bn.h bn_lcl.h bn_prime.h t_defines.h t_read.h
-
-
-include_HEADERS = tinysrp.h
-
-lib_LIBRARIES = libtinysrp.a
-
-CFLAGS = -O2 @signed@
-
-libtinysrp_a_SOURCES =    tinysrp.c t_client.c t_getconf.c t_conv.c t_getpass.c t_sha.c t_math.c   t_misc.c t_pw.c t_read.c t_server.c t_truerand.c   bn_add.c bn_ctx.c bn_div.c bn_exp.c bn_mul.c bn_word.c bn_asm.c bn_lib.c   bn_shift.c bn_sqr.c
-
-
-noinst_PROGRAMS = srvtest clitest
-srvtest_SOURCES = srvtest.c
-clitest_SOURCES = clitest.c
-
-bin_PROGRAMS = tconf tphrase
-tconf_SOURCES = tconf.c t_conf.c
-tphrase_SOURCES = tphrase.c
-
-LDADD = libtinysrp.a
-
-EXTRA_DIST = tpasswd Notes
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = 
-LIBRARIES =  $(lib_LIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I.
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-libtinysrp_a_LIBADD = 
-libtinysrp_a_OBJECTS =  tinysrp.o t_client.o t_getconf.o t_conv.o \
-t_getpass.o t_sha.o t_math.o t_misc.o t_pw.o t_read.o t_server.o \
-t_truerand.o bn_add.o bn_ctx.o bn_div.o bn_exp.o bn_mul.o bn_word.o \
-bn_asm.o bn_lib.o bn_shift.o bn_sqr.o
-AR = ar
-PROGRAMS =  $(bin_PROGRAMS) $(noinst_PROGRAMS)
-
-tconf_OBJECTS =  tconf.o t_conf.o
-tconf_LDADD = $(LDADD)
-tconf_DEPENDENCIES =  libtinysrp.a
-tconf_LDFLAGS = 
-tphrase_OBJECTS =  tphrase.o
-tphrase_LDADD = $(LDADD)
-tphrase_DEPENDENCIES =  libtinysrp.a
-tphrase_LDFLAGS = 
-srvtest_OBJECTS =  srvtest.o
-srvtest_LDADD = $(LDADD)
-srvtest_DEPENDENCIES =  libtinysrp.a
-srvtest_LDFLAGS = 
-clitest_OBJECTS =  clitest.o
-clitest_LDADD = $(LDADD)
-clitest_DEPENDENCIES =  libtinysrp.a
-clitest_LDFLAGS = 
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-HEADERS =  $(include_HEADERS) $(noinst_HEADERS)
-
-DIST_COMMON =  ./stamp-h.in Makefile.am Makefile.in acconfig.h \
-acinclude.m4 aclocal.m4 config.h.in configure configure.in install-sh \
-missing mkinstalldirs
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-SOURCES = $(libtinysrp_a_SOURCES) $(tconf_SOURCES) $(tphrase_SOURCES) $(srvtest_SOURCES) $(clitest_SOURCES)
-OBJECTS = $(libtinysrp_a_OBJECTS) $(tconf_OBJECTS) $(tphrase_OBJECTS) $(srvtest_OBJECTS) $(clitest_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .o .s
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
-       cd $(top_builddir) \
-         && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-$(ACLOCAL_M4):  configure.in  acinclude.m4
-       cd $(srcdir) && $(ACLOCAL)
-
-$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
-       cd $(srcdir) && $(AUTOCONF)
-
-config.h: stamp-h
-       @if test ! -f $@; then \
-               rm -f stamp-h; \
-               $(MAKE) stamp-h; \
-       else :; fi
-stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
-       cd $(top_builddir) \
-         && CONFIG_FILES= CONFIG_HEADERS=config.h \
-            $(SHELL) ./config.status
-       @echo timestamp > stamp-h 2> /dev/null
-$(srcdir)/config.h.in: $(srcdir)/stamp-h.in
-       @if test ! -f $@; then \
-               rm -f $(srcdir)/stamp-h.in; \
-               $(MAKE) $(srcdir)/stamp-h.in; \
-       else :; fi
-$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
-       cd $(top_srcdir) && $(AUTOHEADER)
-       @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
-
-mostlyclean-hdr:
-
-clean-hdr:
-
-distclean-hdr:
-       -rm -f config.h
-
-maintainer-clean-hdr:
-
-mostlyclean-libLIBRARIES:
-
-clean-libLIBRARIES:
-       -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
-
-distclean-libLIBRARIES:
-
-maintainer-clean-libLIBRARIES:
-
-install-libLIBRARIES: $(lib_LIBRARIES)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(libdir)
-       @list='$(lib_LIBRARIES)'; for p in $$list; do \
-         if test -f $$p; then \
-           echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \
-           $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \
-         else :; fi; \
-       done
-       @$(POST_INSTALL)
-       @list='$(lib_LIBRARIES)'; for p in $$list; do \
-         if test -f $$p; then \
-           echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
-           $(RANLIB) $(DESTDIR)$(libdir)/$$p; \
-         else :; fi; \
-       done
-
-uninstall-libLIBRARIES:
-       @$(NORMAL_UNINSTALL)
-       list='$(lib_LIBRARIES)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(libdir)/$$p; \
-       done
-
-.c.o:
-       $(COMPILE) -c $<
-
-.s.o:
-       $(COMPILE) -c $<
-
-.S.o:
-       $(COMPILE) -c $<
-
-mostlyclean-compile:
-       -rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
-       -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-libtinysrp.a: $(libtinysrp_a_OBJECTS) $(libtinysrp_a_DEPENDENCIES)
-       -rm -f libtinysrp.a
-       $(AR) cru libtinysrp.a $(libtinysrp_a_OBJECTS) $(libtinysrp_a_LIBADD)
-       $(RANLIB) libtinysrp.a
-
-mostlyclean-binPROGRAMS:
-
-clean-binPROGRAMS:
-       -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-distclean-binPROGRAMS:
-
-maintainer-clean-binPROGRAMS:
-
-install-binPROGRAMS: $(bin_PROGRAMS)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(bindir)
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         if test -f $$p; then \
-           echo "  $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-            $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
-         else :; fi; \
-       done
-
-uninstall-binPROGRAMS:
-       @$(NORMAL_UNINSTALL)
-       list='$(bin_PROGRAMS)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
-       done
-
-mostlyclean-noinstPROGRAMS:
-
-clean-noinstPROGRAMS:
-       -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-
-distclean-noinstPROGRAMS:
-
-maintainer-clean-noinstPROGRAMS:
-
-tconf: $(tconf_OBJECTS) $(tconf_DEPENDENCIES)
-       @rm -f tconf
-       $(LINK) $(tconf_LDFLAGS) $(tconf_OBJECTS) $(tconf_LDADD) $(LIBS)
-
-tphrase: $(tphrase_OBJECTS) $(tphrase_DEPENDENCIES)
-       @rm -f tphrase
-       $(LINK) $(tphrase_LDFLAGS) $(tphrase_OBJECTS) $(tphrase_LDADD) $(LIBS)
-
-srvtest: $(srvtest_OBJECTS) $(srvtest_DEPENDENCIES)
-       @rm -f srvtest
-       $(LINK) $(srvtest_LDFLAGS) $(srvtest_OBJECTS) $(srvtest_LDADD) $(LIBS)
-
-clitest: $(clitest_OBJECTS) $(clitest_DEPENDENCIES)
-       @rm -f clitest
-       $(LINK) $(clitest_LDFLAGS) $(clitest_OBJECTS) $(clitest_LDADD) $(LIBS)
-
-install-includeHEADERS: $(include_HEADERS)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(includedir)
-       @list='$(include_HEADERS)'; for p in $$list; do \
-         if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
-         echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
-         $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
-       done
-
-uninstall-includeHEADERS:
-       @$(NORMAL_UNINSTALL)
-       list='$(include_HEADERS)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(includedir)/$$p; \
-       done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
-       list='$(SOURCES) $(HEADERS)'; \
-       unique=`for i in $$list; do echo $$i; done | \
-         awk '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       here=`pwd` && cd $(srcdir) \
-         && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS:  $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
-       tags=; \
-       here=`pwd`; \
-       list='$(SOURCES) $(HEADERS)'; \
-       unique=`for i in $$list; do echo $$i; done | \
-         awk '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
-         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
-       -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-
-# This target untars the dist file and tries a VPATH configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-       -rm -rf $(distdir)
-       GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
-       mkdir $(distdir)/=build
-       mkdir $(distdir)/=inst
-       dc_install_base=`cd $(distdir)/=inst && pwd`; \
-       cd $(distdir)/=build \
-         && ../configure --srcdir=.. --prefix=$$dc_install_base \
-         && $(MAKE) $(AM_MAKEFLAGS) \
-         && $(MAKE) $(AM_MAKEFLAGS) dvi \
-         && $(MAKE) $(AM_MAKEFLAGS) check \
-         && $(MAKE) $(AM_MAKEFLAGS) install \
-         && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-         && $(MAKE) $(AM_MAKEFLAGS) dist
-       -rm -rf $(distdir)
-       @banner="$(distdir).tar.gz is ready for distribution"; \
-       dashes=`echo "$$banner" | sed s/./=/g`; \
-       echo "$$dashes"; \
-       echo "$$banner"; \
-       echo "$$dashes"
-dist: distdir
-       -chmod -R a+r $(distdir)
-       GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-       -rm -rf $(distdir)
-dist-all: distdir
-       -chmod -R a+r $(distdir)
-       GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-       -rm -rf $(distdir)
-distdir: $(DISTFILES)
-       -rm -rf $(distdir)
-       mkdir $(distdir)
-       -chmod 777 $(distdir)
-       @for file in $(DISTFILES); do \
-         d=$(srcdir); \
-         if test -d $$d/$$file; then \
-           cp -pr $$d/$$file $(distdir)/$$file; \
-         else \
-           test -f $(distdir)/$$file \
-           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-           || cp -p $$d/$$file $(distdir)/$$file || :; \
-         fi; \
-       done
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-all-recursive-am: config.h
-       $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-install-exec-am: install-libLIBRARIES install-binPROGRAMS
-install-exec: install-exec-am
-
-install-data-am: install-includeHEADERS
-install-data: install-data-am
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-libLIBRARIES uninstall-binPROGRAMS \
-               uninstall-includeHEADERS
-uninstall: uninstall-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS) config.h
-all-redirect: all-am
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
-installdirs:
-       $(mkinstalldirs)  $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) \
-               $(DESTDIR)$(includedir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-       -rm -f Makefile $(CONFIG_CLEAN_FILES)
-       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-hdr mostlyclean-libLIBRARIES \
-               mostlyclean-compile mostlyclean-binPROGRAMS \
-               mostlyclean-noinstPROGRAMS mostlyclean-tags \
-               mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-hdr clean-libLIBRARIES clean-compile clean-binPROGRAMS \
-               clean-noinstPROGRAMS clean-tags clean-generic \
-               mostlyclean-am
-
-clean: clean-am
-
-distclean-am:  distclean-hdr distclean-libLIBRARIES distclean-compile \
-               distclean-binPROGRAMS distclean-noinstPROGRAMS \
-               distclean-tags distclean-generic clean-am
-
-distclean: distclean-am
-       -rm -f config.status
-
-maintainer-clean-am:  maintainer-clean-hdr maintainer-clean-libLIBRARIES \
-               maintainer-clean-compile maintainer-clean-binPROGRAMS \
-               maintainer-clean-noinstPROGRAMS maintainer-clean-tags \
-               maintainer-clean-generic distclean-am
-       @echo "This command is intended for maintainers to use;"
-       @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-       -rm -f config.status
-
-.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
-mostlyclean-libLIBRARIES distclean-libLIBRARIES clean-libLIBRARIES \
-maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \
-install-libLIBRARIES mostlyclean-compile distclean-compile \
-clean-compile maintainer-clean-compile mostlyclean-binPROGRAMS \
-distclean-binPROGRAMS clean-binPROGRAMS maintainer-clean-binPROGRAMS \
-uninstall-binPROGRAMS install-binPROGRAMS mostlyclean-noinstPROGRAMS \
-distclean-noinstPROGRAMS clean-noinstPROGRAMS \
-maintainer-clean-noinstPROGRAMS uninstall-includeHEADERS \
-install-includeHEADERS tags mostlyclean-tags distclean-tags clean-tags \
-maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
-installcheck-am installcheck all-recursive-am install-exec-am \
-install-exec install-data-am install-data install-am install \
-uninstall-am uninstall all-redirect all-am all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/package/network/services/ead/src/tinysrp/Notes b/package/network/services/ead/src/tinysrp/Notes
deleted file mode 100644 (file)
index a8620aa..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-t_* stuff is from the srp 1.7.1 dist
-bn_* stuff is from openssl 0.9.6
-
-(The 7 in libtinysrp's version number reflects the srp version.)
-
-Licensing and copyright for srp and openssl are as indicated in the relevant
-source files.  Everything else here is GPL, including the tinysrp protocol.
-
-Changelog since initial release:
-
-0.7.4   more robust terminal modes in t_getpass
-       a potential buffer overflow in tinysrp
-0.7.5   uninitialized pointer bug in tconf
-
-Changes from the base srp and openssl distributions:
-
-I've removed everything that's not needed for client/server operations, and
-all the bn_* stuff that's only used for prime generation has been moved to
-t_conf.c, which isn't part of the library anymore.  Also, all the routines
-used for passphrase file maintenance have been moved to tphrase.c.
-
-The library has been optimized (a bit) for space instead of speed.  Since
-authentication is usually only done once, this isn't a big problem.  Modern
-CPUs are plenty fast for this task, and even 100 MHz CPUs are fine.  If you
-really need the speed, get the regular distributions.
-
-Note that if the server sends the client a prime that the client doesn't
-know about, the client MUST test for primality.  Since this is pretty
-expensive, and takes 30 seconds on a 100 MHz machine, and uses lots of code,
-I've removed that ability from the client.  So only KNOWN primes can be
-used.  You can still generate new ones with tconf, but you have to install
-them in the table of known primes (pre_params) in t_getconf.c that's common
-to the client and server, and recompile.  The configuration file is gone.
-
-The default prime (the last entry in the table) is 1024 bits; there are
-others with more bits but they will be correspondingly slower.
-
-The default tpasswd file (which is an ascii file that may be editted with a
-regular text editor) contains two users: moo (passphrase "glub glub") and
-"new user" (passphrase "this is a test").  Passphrases may be added or
-changed with tphrase; you can also change the user's prime.  To delete a
-user, edit the tpasswd file and remove that line.  The tpasswd file's
-default name is DEFAULT_PASSWD in t_pwd.h.  Note that you can't change a
-user's username by editting the file: the username is encoded in the
-verifier.  If you change a username you must set a new passphrase with
-tphrase.
-
-Here is an example session, using the supplied srvtest and clitest.  First,
-start both programs in different windows, and enter the user names.  Normally,
-the client would send the username to the server.  Server lines are marked
-with S>, client lines with C>.
-
-S> % srvtest
-S> Enter username: moo
-S> index (to client): 5
-S> salt (to client): 19AI0Hc9jEkdFc
-
-C> % clitest
-C> Enter username: moo
-C> Enter index (from server): 5
-C> Enter salt (from server): 19AI0Hc9jEkdFc
-
-The server reports the index and salt values used for that user.  They
-are sent over the network to the client.  (Simulate this by cutting and
-pasting from one window to the other.)
-
-C> A (to server): 5wCDXRxLIv/zLazYfKupV/OY3BlhTZuJ71wVgI0HcL1kSJEpkMuWF.xEz/BV2wlJl7vk5Eoz9KMS1ccnaatsVP5D6CBm7UA.yVB59EQFN0dNBirvX29NAFdtdMsMppo5tHRy987XjJWrWSLpeibq6emr.gP8nYyX75GQqSiMY1j
-C> Enter password:
-
-S> Enter A (from client): 5wCDXRxLIv/zLazYfKupV/OY3BlhTZuJ71wVgI0HcL1kSJEpkMuWF.xEz/BV2wlJl7vk5Eoz9KMS1ccnaatsVP5D6CBm7UA.yVB59EQFN0dNBirvX29NAFdtdMsMppo5tHRy987XjJWrWSLpeibq6emr.gP8nYyX75GQqSiMY1j
-
-Now the client calculates A and sends it to the server, and while the
-server is munching on that, the client gets the password from the user.
-
-S> B (to client): 9dcCpulxQAbaDXI0NHWY6B.QH6B9fsoXs/x/5SCNBNJm/6H6bYfbVrwNmdquhLZjYMvpcgGc2mBYqL77RNfw1kVQo17//GfsByECBIjRnrAn02ffX9Y/llJcfscAQiii0hyZhJf9PT5wE7pC7WUjIgSqckIZ0JLNDbSr7fJcrgw
-S> Session key: ebbcf3a45c968defdcfff6e144ad8d4f5412167c9716e79cbf7cacfe18257947ad46fa5d6418a1fd
-
-The server now calculates B and sends it to the client.  The session key
-is not sent -- it is a shared secret that can be used for encryption.
-
-C> Enter B (from server): 9dcCpulxQAbaDXI0NHWY6B.QH6B9fsoXs/x/5SCNBNJm/6H6bYfbVrwNmdquhLZjYMvpcgGc2mBYqL77RNfw1kVQo17//GfsByECBIjRnrAn02ffX9Y/llJcfscAQiii0hyZhJf9PT5wE7pC7WUjIgSqckIZ0JLNDbSr7fJcrgw
-C> Session key: ebbcf3a45c968defdcfff6e144ad8d4f5412167c9716e79cbf7cacfe18257947ad46fa5d6418a1fd
-C> Response (to server): b9ea99094a176c4be28eb469982066cc7146d180
-
-The client uses the B value to calculate its own copy of the shared secret
-session key, and sends a response to the server proving that it does know
-the correct key.
-
-S> Enter response (from client): b9ea99094a176c4be28eb469982066cc7146d180
-S> Authentication successful.
-S> Response (to client): cd46c839ccad2d0c76f3ca1905ae8ceda8d1c1dc
-
-The server authenticates the client.  (You're in!)
-
-C> Enter server response: cd46c839ccad2d0c76f3ca1905ae8ceda8d1c1dc
-C> Server authentication successful.
-
-The client authenticates the server (prevents server spoofing in the case
-where the session key isn't used to encrypt the channel -- a spoofed server
-might just respond with random values and _pretend_ to authenticate the
-client; but the spoofed server won't know the session key and this check
-catches that).
-
-Final note:
-
-Remember that many breaches of security involve buggy software, such as
-servers susceptible to buffer overflow exploits that totally bypass any
-passphrase, secure or not.  If an attacker roots your client, or the server,
-no form of authentication will work.  Consider MAC-based schemes if this
-worries you.
diff --git a/package/network/services/ead/src/tinysrp/acconfig.h b/package/network/services/ead/src/tinysrp/acconfig.h
deleted file mode 100644 (file)
index b74aed0..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#undef SHA1HANDSOFF
-
-#undef POSIX_TERMIOS
-
-#undef POSIX_SIGTYPE
-
-#undef VERSION
-
-#undef volatile
diff --git a/package/network/services/ead/src/tinysrp/acinclude.m4 b/package/network/services/ead/src/tinysrp/acinclude.m4
deleted file mode 100644 (file)
index e0d0d04..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-dnl
-dnl check for signal type
-dnl
-dnl AC_RETSIGTYPE isn't quite right, but almost.
-dnl
-define(TYPE_SIGNAL,[
-AC_MSG_CHECKING([POSIX signal handlers])
-AC_CACHE_VAL(cv_has_posix_signals,
-[AC_TRY_COMPILE(
-[#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-extern void (*signal ()) ();], [],
-cv_has_posix_signals=yes, cv_has_posix_signals=no)])
-AC_MSG_RESULT($cv_has_posix_signals)
-if test $cv_has_posix_signals = yes; then
-   AC_DEFINE(RETSIGTYPE, void, [Return type is void])
-   AC_DEFINE(POSIX_SIGTYPE, [], [Have POSIX signals])
-else
-  if test $ac_cv_type_signal = void; then
-     AC_DEFINE(RETSIGTYPE, void, [Return type is void])
-  else
-     AC_DEFINE(RETSIGTYPE, int, [Return type is int])
-  fi
-fi])dnl
diff --git a/package/network/services/ead/src/tinysrp/aclocal.m4 b/package/network/services/ead/src/tinysrp/aclocal.m4
deleted file mode 100644 (file)
index 703fce4..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4a
-
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
-
-dnl
-dnl check for signal type
-dnl
-dnl AC_RETSIGTYPE isn't quite right, but almost.
-dnl
-define(TYPE_SIGNAL,[
-AC_MSG_CHECKING([POSIX signal handlers])
-AC_CACHE_VAL(cv_has_posix_signals,
-[AC_TRY_COMPILE(
-[#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-extern void (*signal ()) ();], [],
-cv_has_posix_signals=yes, cv_has_posix_signals=no)])
-AC_MSG_RESULT($cv_has_posix_signals)
-if test $cv_has_posix_signals = yes; then
-   AC_DEFINE(RETSIGTYPE, void, [Return type is void])
-   AC_DEFINE(POSIX_SIGTYPE, [], [Have POSIX signals])
-else
-  if test $ac_cv_type_signal = void; then
-     AC_DEFINE(RETSIGTYPE, void, [Return type is void])
-  else
-     AC_DEFINE(RETSIGTYPE, int, [Return type is int])
-  fi
-fi])dnl
-
-# Like AC_CONFIG_HEADER, but automatically create stamp file.
-
-AC_DEFUN(AM_CONFIG_HEADER,
-[AC_PREREQ([2.12])
-AC_CONFIG_HEADER([$1])
-dnl When config.status generates a header, we must update the stamp-h file.
-dnl This file resides in the same directory as the config header
-dnl that is generated.  We must strip everything past the first ":",
-dnl and everything past the last "/".
-AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
-ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
-<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
-<<am_indx=1
-for am_file in <<$1>>; do
-  case " <<$>>CONFIG_HEADERS " in
-  *" <<$>>am_file "*<<)>>
-    echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
-    ;;
-  esac
-  am_indx=`expr "<<$>>am_indx" + 1`
-done<<>>dnl>>)
-changequote([,]))])
-
-# Do all the work for Automake.  This macro actually does too much --
-# some checks are only needed if your package does certain things.
-# But this isn't really a big deal.
-
-# serial 1
-
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-dnl We require 2.13 because we rely on SHELL being computed by configure.
-AC_PREREQ([2.13])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-AC_DEFUN(AM_SANITY_CHECK,
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-   if test "[$]*" = "X"; then
-      # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
-   fi
-   if test "[$]*" != "X $srcdir/configure conftestfile" \
-      && test "[$]*" != "X conftestfile $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
-   test "[$]2" = conftestfile
-   )
-then
-   # Ok.
-   :
-else
-   AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-rm -f conftest*
-AC_MSG_RESULT(yes)])
-
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
-   $1=$2
-   AC_MSG_RESULT(found)
-else
-   $1="$3/missing $2"
-   AC_MSG_RESULT(missing)
-fi
-AC_SUBST($1)])
-
diff --git a/package/network/services/ead/src/tinysrp/bn.h b/package/network/services/ead/src/tinysrp/bn.h
deleted file mode 100644 (file)
index 0144dd9..0000000
+++ /dev/null
@@ -1,471 +0,0 @@
-/* crypto/bn/bn.h */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#ifndef HEADER_BN_H
-#define HEADER_BN_H
-
-#include <stdio.h> /* FILE */
-#include "config.h"
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-#ifdef VMS
-#undef BN_LLONG /* experimental, so far... */
-#endif
-
-#undef BN_MUL_COMBA
-#undef BN_SQR_COMBA
-#undef BN_RECURSION
-#undef RECP_MUL_MOD
-#undef MONT_MUL_MOD
-
-#if defined(SIZEOF_LONG_LONG) && SIZEOF_LONG_LONG == 8
-# if SIZEOF_LONG == 4
-#  define THIRTY_TWO_BIT
-# else
-#  define SIXTY_FOUR_BIT_LONG
-# endif
-#else
-# if SIZEOF_LONG == 4
-#  define THIRTY_TWO_BIT
-# endif
-#endif
-
-#undef BN_LLONG
-
-/* assuming long is 64bit - this is the DEC Alpha
- * unsigned long long is only 64 bits :-(, don't define
- * BN_LLONG for the DEC Alpha */
-#ifdef SIXTY_FOUR_BIT_LONG
-#define BN_ULLONG       unsigned long long
-#define BN_ULONG        unsigned long
-#define BN_LONG         long
-#define BN_BITS         128
-#define BN_BYTES        8
-#define BN_BITS2        64
-#define BN_BITS4        32
-#define BN_MASK         (0xffffffffffffffffffffffffffffffffLL)
-#define BN_MASK2        (0xffffffffffffffffL)
-#define BN_MASK2l       (0xffffffffL)
-#define BN_MASK2h       (0xffffffff00000000L)
-#define BN_MASK2h1      (0xffffffff80000000L)
-#define BN_TBIT         (0x8000000000000000L)
-#define BN_DEC_CONV     (10000000000000000000UL)
-#define BN_DEC_FMT1     "%lu"
-#define BN_DEC_FMT2     "%019lu"
-#define BN_DEC_NUM      19
-#endif
-
-/* This is where the long long data type is 64 bits, but long is 32.
- * For machines where there are 64bit registers, this is the mode to use.
- * IRIX, on R4000 and above should use this mode, along with the relevant
- * assembler code :-).  Do NOT define BN_LLONG.
- */
-#ifdef SIXTY_FOUR_BIT
-#undef BN_LLONG
-#undef BN_ULLONG
-#define BN_ULONG        unsigned long long
-#define BN_LONG         long long
-#define BN_BITS         128
-#define BN_BYTES        8
-#define BN_BITS2        64
-#define BN_BITS4        32
-#define BN_MASK2        (0xffffffffffffffffLL)
-#define BN_MASK2l       (0xffffffffL)
-#define BN_MASK2h       (0xffffffff00000000LL)
-#define BN_MASK2h1      (0xffffffff80000000LL)
-#define BN_TBIT         (0x8000000000000000LL)
-#define BN_DEC_CONV     (10000000000000000000LL)
-#define BN_DEC_FMT1     "%llu"
-#define BN_DEC_FMT2     "%019llu"
-#define BN_DEC_NUM      19
-#endif
-
-#ifdef THIRTY_TWO_BIT
-#if defined(WIN32) && !defined(__GNUC__)
-#define BN_ULLONG       unsigned _int64
-#else
-#define BN_ULLONG       unsigned long long
-#endif
-#define BN_ULONG        unsigned long
-#define BN_LONG         long
-#define BN_BITS         64
-#define BN_BYTES        4
-#define BN_BITS2        32
-#define BN_BITS4        16
-#ifdef WIN32
-/* VC++ doesn't like the LL suffix */
-#define BN_MASK         (0xffffffffffffffffL)
-#else
-#define BN_MASK         (0xffffffffffffffffLL)
-#endif
-#define BN_MASK2        (0xffffffffL)
-#define BN_MASK2l       (0xffff)
-#define BN_MASK2h1      (0xffff8000L)
-#define BN_MASK2h       (0xffff0000L)
-#define BN_TBIT         (0x80000000L)
-#define BN_DEC_CONV     (1000000000L)
-#define BN_DEC_FMT1     "%lu"
-#define BN_DEC_FMT2     "%09lu"
-#define BN_DEC_NUM      9
-#endif
-
-#ifdef SIXTEEN_BIT
-#ifndef BN_DIV2W
-#define BN_DIV2W
-#endif
-#define BN_ULLONG       unsigned long
-#define BN_ULONG        unsigned short
-#define BN_LONG         short
-#define BN_BITS         32
-#define BN_BYTES        2
-#define BN_BITS2        16
-#define BN_BITS4        8
-#define BN_MASK         (0xffffffff)
-#define BN_MASK2        (0xffff)
-#define BN_MASK2l       (0xff)
-#define BN_MASK2h1      (0xff80)
-#define BN_MASK2h       (0xff00)
-#define BN_TBIT         (0x8000)
-#define BN_DEC_CONV     (100000)
-#define BN_DEC_FMT1     "%u"
-#define BN_DEC_FMT2     "%05u"
-#define BN_DEC_NUM      5
-#endif
-
-#ifdef EIGHT_BIT
-#ifndef BN_DIV2W
-#define BN_DIV2W
-#endif
-#define BN_ULLONG       unsigned short
-#define BN_ULONG        unsigned char
-#define BN_LONG         char
-#define BN_BITS         16
-#define BN_BYTES        1
-#define BN_BITS2        8
-#define BN_BITS4        4
-#define BN_MASK         (0xffff)
-#define BN_MASK2        (0xff)
-#define BN_MASK2l       (0xf)
-#define BN_MASK2h1      (0xf8)
-#define BN_MASK2h       (0xf0)
-#define BN_TBIT         (0x80)
-#define BN_DEC_CONV     (100)
-#define BN_DEC_FMT1     "%u"
-#define BN_DEC_FMT2     "%02u"
-#define BN_DEC_NUM      2
-#endif
-
-#define BN_DEFAULT_BITS 1280
-
-#ifdef BIGNUM
-#undef BIGNUM
-#endif
-
-#define BN_FLG_MALLOCED         0x01
-#define BN_FLG_STATIC_DATA      0x02
-#define BN_FLG_FREE             0x8000  /* used for debuging */
-#define BN_set_flags(b,n)       ((b)->flags|=(n))
-#define BN_get_flags(b,n)       ((b)->flags&(n))
-
-typedef struct bignum_st
-       {
-       BN_ULONG *d;    /* Pointer to an array of 'BN_BITS2' bit chunks. */
-       int top;        /* Index of last used d +1. */
-       /* The next are internal book keeping for bn_expand. */
-       int dmax;       /* Size of the d array. */
-       int neg;        /* one if the number is negative */
-       int flags;
-       } BIGNUM;
-
-/* Used for temp variables */
-#define BN_CTX_NUM      12
-#define BN_CTX_NUM_POS  12
-typedef struct bignum_ctx
-       {
-       int tos;
-       BIGNUM bn[BN_CTX_NUM];
-       int flags;
-       int depth;
-       int pos[BN_CTX_NUM_POS];
-       int too_many;
-       } BN_CTX;
-
-/* Used for montgomery multiplication */
-typedef struct bn_mont_ctx_st
-       {
-       int ri;        /* number of bits in R */
-       BIGNUM RR;     /* used to convert to montgomery form */
-       BIGNUM N;      /* The modulus */
-       BIGNUM Ni;     /* R*(1/R mod N) - N*Ni = 1
-                       * (Ni is only stored for bignum algorithm) */
-       BN_ULONG n0;   /* least significant word of Ni */
-       int flags;
-       } BN_MONT_CTX;
-
-/* Used for reciprocal division/mod functions
- * It cannot be shared between threads
- */
-typedef struct bn_recp_ctx_st
-       {
-       BIGNUM N;       /* the divisor */
-       BIGNUM Nr;      /* the reciprocal */
-       int num_bits;
-       int shift;
-       int flags;
-       } BN_RECP_CTX;
-
-#define BN_to_montgomery(r,a,mont,ctx)  BN_mod_mul_montgomery(\
-       r,a,&((mont)->RR),(mont),ctx)
-
-#define BN_prime_checks 0 /* default: select number of iterations
-                            based on the size of the number */
-
-/* number of Miller-Rabin iterations for an error rate  of less than 2^-80
- * for random 'b'-bit input, b >= 100 (taken from table 4.4 in the Handbook
- * of Applied Cryptography [Menezes, van Oorschot, Vanstone; CRC Press 1996];
- * original paper: Damgaard, Landrock, Pomerance: Average case error estimates
- * for the strong probable prime test. -- Math. Comp. 61 (1993) 177-194) */
-#define BN_prime_checks_for_size(b) ((b) >= 1300 ?  2 : \
-                               (b) >=  850 ?  3 : \
-                               (b) >=  650 ?  4 : \
-                               (b) >=  550 ?  5 : \
-                               (b) >=  450 ?  6 : \
-                               (b) >=  400 ?  7 : \
-                               (b) >=  350 ?  8 : \
-                               (b) >=  300 ?  9 : \
-                               (b) >=  250 ? 12 : \
-                               (b) >=  200 ? 15 : \
-                               (b) >=  150 ? 18 : \
-                               /* b >= 100 */ 27)
-
-#define BN_num_bytes(a) ((BN_num_bits(a)+7)/8)
-#define BN_is_word(a,w) (((a)->top == 1) && ((a)->d[0] == (BN_ULONG)(w)))
-#define BN_is_zero(a)   (((a)->top == 0) || BN_is_word(a,0))
-#define BN_is_one(a)    (BN_is_word((a),1))
-#define BN_is_odd(a)    (((a)->top > 0) && ((a)->d[0] & 1))
-#define BN_one(a)       (BN_set_word((a),1))
-#define BN_zero(a)      (BN_set_word((a),0))
-
-BIGNUM *BN_value_one(void);
-char *  BN_options(void);
-BN_CTX *BN_CTX_new(void);
-void    BN_CTX_init(BN_CTX *c);
-void    BN_CTX_free(BN_CTX *c);
-void    BN_CTX_start(BN_CTX *ctx);
-BIGNUM *BN_CTX_get(BN_CTX *ctx);
-void    BN_CTX_end(BN_CTX *ctx);
-int     BN_rand(BIGNUM *rnd, int bits, int top,int bottom);
-int     BN_pseudo_rand(BIGNUM *rnd, int bits, int top,int bottom);
-int     BN_num_bits(const BIGNUM *a);
-int     BN_num_bits_word(BN_ULONG);
-BIGNUM *BN_new(void);
-void    BN_init(BIGNUM *);
-void    BN_clear_free(BIGNUM *a);
-BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b);
-BIGNUM *BN_bin2bn(const unsigned char *s,int len,BIGNUM *ret);
-int     BN_bn2bin(const BIGNUM *a, unsigned char *to);
-int     BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);
-int     BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);
-int     BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);
-int     BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);
-int     BN_mod(BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx);
-int     BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d,
-              BN_CTX *ctx);
-int     BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx);
-int     BN_sqr(BIGNUM *r, BIGNUM *a,BN_CTX *ctx);
-BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w);
-BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w);
-int     BN_mul_word(BIGNUM *a, BN_ULONG w);
-int     BN_add_word(BIGNUM *a, BN_ULONG w);
-int     BN_sub_word(BIGNUM *a, BN_ULONG w);
-int     BN_set_word(BIGNUM *a, BN_ULONG w);
-BN_ULONG BN_get_word(BIGNUM *a);
-int     BN_cmp(const BIGNUM *a, const BIGNUM *b);
-void    BN_free(BIGNUM *a);
-int     BN_is_bit_set(const BIGNUM *a, int n);
-int     BN_lshift(BIGNUM *r, const BIGNUM *a, int n);
-int     BN_lshift1(BIGNUM *r, BIGNUM *a);
-int     BN_exp(BIGNUM *r, BIGNUM *a, BIGNUM *p,BN_CTX *ctx);
-int     BN_mod_exp(BIGNUM *r, BIGNUM *a, const BIGNUM *p,
-                  const BIGNUM *m,BN_CTX *ctx);
-int     BN_mod_exp_mont(BIGNUM *r, BIGNUM *a, const BIGNUM *p,
-                       const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx);
-int     BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p,
-                       const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx);
-int     BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
-       const BIGNUM *m,BN_CTX *ctx);
-int     BN_mask_bits(BIGNUM *a,int n);
-int     BN_mod_mul(BIGNUM *ret, BIGNUM *a, BIGNUM *b, const BIGNUM *m, BN_CTX *ctx);
-int     BN_reciprocal(BIGNUM *r, BIGNUM *m, int len, BN_CTX *ctx);
-int     BN_rshift(BIGNUM *r, BIGNUM *a, int n);
-int     BN_rshift1(BIGNUM *r, BIGNUM *a);
-void    BN_clear(BIGNUM *a);
-BIGNUM *BN_dup(const BIGNUM *a);
-int     BN_ucmp(const BIGNUM *a, const BIGNUM *b);
-int     BN_set_bit(BIGNUM *a, int n);
-int     BN_clear_bit(BIGNUM *a, int n);
-int     BN_gcd(BIGNUM *r,BIGNUM *in_a,BIGNUM *in_b,BN_CTX *ctx);
-BIGNUM *BN_mod_inverse(BIGNUM *ret,BIGNUM *a, const BIGNUM *n,BN_CTX *ctx);
-BIGNUM *BN_generate_prime(BIGNUM *ret,int bits,int safe,BIGNUM *add,
-               BIGNUM *rem,void (*callback)(int,int,void *),void *cb_arg);
-int     BN_is_prime(const BIGNUM *p,int nchecks,
-               void (*callback)(int,int,void *),
-               BN_CTX *ctx,void *cb_arg);
-int     BN_is_prime_fasttest(const BIGNUM *p,int nchecks,
-               void (*callback)(int,int,void *),BN_CTX *ctx,void *cb_arg,
-               int do_trial_division);
-
-BN_MONT_CTX *BN_MONT_CTX_new(void );
-void BN_MONT_CTX_init(BN_MONT_CTX *ctx);
-int BN_mod_mul_montgomery(BIGNUM *r,BIGNUM *a,BIGNUM *b,BN_MONT_CTX *mont,
-                         BN_CTX *ctx);
-int BN_from_montgomery(BIGNUM *r,BIGNUM *a,BN_MONT_CTX *mont,BN_CTX *ctx);
-void BN_MONT_CTX_free(BN_MONT_CTX *mont);
-int BN_MONT_CTX_set(BN_MONT_CTX *mont,const BIGNUM *modulus,BN_CTX *ctx);
-BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to,BN_MONT_CTX *from);
-
-void BN_set_params(int mul,int high,int low,int mont);
-int BN_get_params(int which); /* 0, mul, 1 high, 2 low, 3 mont */
-
-void    BN_RECP_CTX_init(BN_RECP_CTX *recp);
-BN_RECP_CTX *BN_RECP_CTX_new(void);
-void    BN_RECP_CTX_free(BN_RECP_CTX *recp);
-int     BN_RECP_CTX_set(BN_RECP_CTX *recp,const BIGNUM *rdiv,BN_CTX *ctx);
-int     BN_mod_mul_reciprocal(BIGNUM *r, BIGNUM *x, BIGNUM *y,
-               BN_RECP_CTX *recp,BN_CTX *ctx);
-int     BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
-                       const BIGNUM *m, BN_CTX *ctx);
-int     BN_div_recp(BIGNUM *dv, BIGNUM *rem, BIGNUM *m,
-               BN_RECP_CTX *recp, BN_CTX *ctx);
-
-/* library internal functions */
-
-#define bn_expand(a,bits) ((((((bits+BN_BITS2-1))/BN_BITS2)) <= (a)->dmax)?\
-       (a):bn_expand2((a),(bits)/BN_BITS2+1))
-#define bn_wexpand(a,words) (((words) <= (a)->dmax)?(a):bn_expand2((a),(words)))
-BIGNUM *bn_expand2(BIGNUM *a, int words);
-
-#define bn_fix_top(a) \
-       { \
-       BN_ULONG *ftl; \
-       if ((a)->top > 0) \
-               { \
-               for (ftl= &((a)->d[(a)->top-1]); (a)->top > 0; (a)->top--) \
-               if (*(ftl--)) break; \
-               } \
-       }
-
-BN_ULONG bn_mul_add_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w);
-BN_ULONG bn_mul_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w);
-void     bn_sqr_words(BN_ULONG *rp, BN_ULONG *ap, int num);
-BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d);
-BN_ULONG bn_add_words(BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp,int num);
-BN_ULONG bn_sub_words(BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp,int num);
-
-#ifdef BN_DEBUG
-  void bn_dump1(FILE *o, const char *a, BN_ULONG *b,int n);
-# define bn_print(a) {fprintf(stderr, #a "="); BN_print_fp(stderr,a); \
-   fprintf(stderr,"\n");}
-# define bn_dump(a,n) bn_dump1(stderr,#a,a,n);
-#else
-# define bn_print(a)
-# define bn_dump(a,b)
-#endif
-
-/* BEGIN ERROR CODES */
-/* The following lines are auto generated by the script mkerr.pl. Any changes
- * made after this point may be overwritten when the script is next run.
- */
-
-/* Error codes for the BN functions. */
-
-/* Function codes. */
-#define BN_F_BN_CTX_GET                                  116
-#define BN_F_BN_CTX_NEW                                  106
-#define BN_F_BN_DIV                                      107
-#define BN_F_BN_EXPAND2                                  108
-#define BN_F_BN_MOD_EXP2_MONT                            118
-#define BN_F_BN_MOD_EXP_MONT                             109
-#define BN_F_BN_MOD_EXP_MONT_WORD                        117
-#define BN_F_BN_MOD_INVERSE                              110
-#define BN_F_BN_MOD_MUL_RECIPROCAL                       111
-#define BN_F_BN_MPI2BN                                   112
-#define BN_F_BN_NEW                                      113
-#define BN_F_BN_RAND                                     114
-#define BN_F_BN_USUB                                     115
-
-/* Reason codes. */
-#define BN_R_ARG2_LT_ARG3                                100
-#define BN_R_BAD_RECIPROCAL                              101
-#define BN_R_CALLED_WITH_EVEN_MODULUS                    102
-#define BN_R_DIV_BY_ZERO                                 103
-#define BN_R_ENCODING_ERROR                              104
-#define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA                105
-#define BN_R_INVALID_LENGTH                              106
-#define BN_R_NOT_INITIALIZED                             107
-#define BN_R_NO_INVERSE                                  108
-#define BN_R_TOO_MANY_TEMPORARY_VARIABLES                109
-
-#ifdef  __cplusplus
-}
-#endif
-#endif
-
diff --git a/package/network/services/ead/src/tinysrp/bn_add.c b/package/network/services/ead/src/tinysrp/bn_add.c
deleted file mode 100644 (file)
index aae4f2b..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-/* crypto/bn/bn_add.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include <stdio.h>
-#include "bn_lcl.h"
-
-/* r can == a or b */
-int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
-       {
-       const BIGNUM *tmp;
-
-       bn_check_top(a);
-       bn_check_top(b);
-
-       /*  a +  b      a+b
-        *  a + -b      a-b
-        * -a +  b      b-a
-        * -a + -b      -(a+b)
-        */
-       if (a->neg ^ b->neg)
-               {
-               /* only one is negative */
-               if (a->neg)
-                       { tmp=a; a=b; b=tmp; }
-
-               /* we are now a - b */
-
-               if (BN_ucmp(a,b) < 0)
-                       {
-                       if (!BN_usub(r,b,a)) return(0);
-                       r->neg=1;
-                       }
-               else
-                       {
-                       if (!BN_usub(r,a,b)) return(0);
-                       r->neg=0;
-                       }
-               return(1);
-               }
-
-       if (a->neg) /* both are neg */
-               r->neg=1;
-       else
-               r->neg=0;
-
-       if (!BN_uadd(r,a,b)) return(0);
-       return(1);
-       }
-
-/* unsigned add of b to a, r must be large enough */
-int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
-       {
-       register int i;
-       int max,min;
-       BN_ULONG *ap,*bp,*rp,carry,t1;
-       const BIGNUM *tmp;
-
-       bn_check_top(a);
-       bn_check_top(b);
-
-       if (a->top < b->top)
-               { tmp=a; a=b; b=tmp; }
-       max=a->top;
-       min=b->top;
-
-       if (bn_wexpand(r,max+1) == NULL)
-               return(0);
-
-       r->top=max;
-
-
-       ap=a->d;
-       bp=b->d;
-       rp=r->d;
-       carry=0;
-
-       carry=bn_add_words(rp,ap,bp,min);
-       rp+=min;
-       ap+=min;
-       bp+=min;
-       i=min;
-
-       if (carry)
-               {
-               while (i < max)
-                       {
-                       i++;
-                       t1= *(ap++);
-                       if ((*(rp++)=(t1+1)&BN_MASK2) >= t1)
-                               {
-                               carry=0;
-                               break;
-                               }
-                       }
-               if ((i >= max) && carry)
-                       {
-                       *(rp++)=1;
-                       r->top++;
-                       }
-               }
-       if (rp != ap)
-               {
-               for (; i<max; i++)
-                       *(rp++)= *(ap++);
-               }
-       /* memcpy(rp,ap,sizeof(*ap)*(max-i));*/
-       return(1);
-       }
-
-/* unsigned subtraction of b from a, a must be larger than b. */
-int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
-       {
-       int max,min;
-       register BN_ULONG t1,t2,*ap,*bp,*rp;
-       int i,carry;
-#if defined(IRIX_CC_BUG) && !defined(LINT)
-       int dummy;
-#endif
-
-       bn_check_top(a);
-       bn_check_top(b);
-
-       if (a->top < b->top) /* hmm... should not be happening */
-               {
-               return(0);
-               }
-
-       max=a->top;
-       min=b->top;
-       if (bn_wexpand(r,max) == NULL) return(0);
-
-       ap=a->d;
-       bp=b->d;
-       rp=r->d;
-
-#if 1
-       carry=0;
-       for (i=0; i<min; i++)
-               {
-               t1= *(ap++);
-               t2= *(bp++);
-               if (carry)
-                       {
-                       carry=(t1 <= t2);
-                       t1=(t1-t2-1)&BN_MASK2;
-                       }
-               else
-                       {
-                       carry=(t1 < t2);
-                       t1=(t1-t2)&BN_MASK2;
-                       }
-#if defined(IRIX_CC_BUG) && !defined(LINT)
-               dummy=t1;
-#endif
-               *(rp++)=t1&BN_MASK2;
-               }
-#else
-       carry=bn_sub_words(rp,ap,bp,min);
-       ap+=min;
-       bp+=min;
-       rp+=min;
-       i=min;
-#endif
-       if (carry) /* subtracted */
-               {
-               while (i < max)
-                       {
-                       i++;
-                       t1= *(ap++);
-                       t2=(t1-1)&BN_MASK2;
-                       *(rp++)=t2;
-                       if (t1 > t2) break;
-                       }
-               }
-#if 0
-       memcpy(rp,ap,sizeof(*rp)*(max-i));
-#else
-       if (rp != ap)
-               {
-               for (;;)
-                       {
-                       if (i++ >= max) break;
-                       rp[0]=ap[0];
-                       if (i++ >= max) break;
-                       rp[1]=ap[1];
-                       if (i++ >= max) break;
-                       rp[2]=ap[2];
-                       if (i++ >= max) break;
-                       rp[3]=ap[3];
-                       rp+=4;
-                       ap+=4;
-                       }
-               }
-#endif
-
-       r->top=max;
-       bn_fix_top(r);
-       return(1);
-       }
-
-int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
-       {
-       int max;
-       int add=0,neg=0;
-       const BIGNUM *tmp;
-
-       bn_check_top(a);
-       bn_check_top(b);
-
-       /*  a -  b      a-b
-        *  a - -b      a+b
-        * -a -  b      -(a+b)
-        * -a - -b      b-a
-        */
-       if (a->neg)
-               {
-               if (b->neg)
-                       { tmp=a; a=b; b=tmp; }
-               else
-                       { add=1; neg=1; }
-               }
-       else
-               {
-               if (b->neg) { add=1; neg=0; }
-               }
-
-       if (add)
-               {
-               if (!BN_uadd(r,a,b)) return(0);
-               r->neg=neg;
-               return(1);
-               }
-
-       /* We are actually doing a - b :-) */
-
-       max=(a->top > b->top)?a->top:b->top;
-       if (bn_wexpand(r,max) == NULL) return(0);
-       if (BN_ucmp(a,b) < 0)
-               {
-               if (!BN_usub(r,b,a)) return(0);
-               r->neg=1;
-               }
-       else
-               {
-               if (!BN_usub(r,a,b)) return(0);
-               r->neg=0;
-               }
-       return(1);
-       }
-
diff --git a/package/network/services/ead/src/tinysrp/bn_asm.c b/package/network/services/ead/src/tinysrp/bn_asm.c
deleted file mode 100644 (file)
index b24c9af..0000000
+++ /dev/null
@@ -1,382 +0,0 @@
-/* crypto/bn/bn_asm.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#ifndef BN_DEBUG
-# undef NDEBUG /* avoid conflicting definitions */
-# define NDEBUG
-#endif
-
-#include <stdio.h>
-#include <assert.h>
-#include "bn_lcl.h"
-
-#if defined(BN_LLONG) || defined(BN_UMULT_HIGH)
-
-BN_ULONG bn_mul_add_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w)
-       {
-       BN_ULONG c1=0;
-
-       assert(num >= 0);
-       if (num <= 0) return(c1);
-
-       while (num&~3)
-               {
-               mul_add(rp[0],ap[0],w,c1);
-               mul_add(rp[1],ap[1],w,c1);
-               mul_add(rp[2],ap[2],w,c1);
-               mul_add(rp[3],ap[3],w,c1);
-               ap+=4; rp+=4; num-=4;
-               }
-       if (num)
-               {
-               mul_add(rp[0],ap[0],w,c1); if (--num==0) return c1;
-               mul_add(rp[1],ap[1],w,c1); if (--num==0) return c1;
-               mul_add(rp[2],ap[2],w,c1); return c1;
-               }
-
-       return(c1);
-       }
-
-BN_ULONG bn_mul_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w)
-       {
-       BN_ULONG c1=0;
-
-       assert(num >= 0);
-       if (num <= 0) return(c1);
-
-       while (num&~3)
-               {
-               mul(rp[0],ap[0],w,c1);
-               mul(rp[1],ap[1],w,c1);
-               mul(rp[2],ap[2],w,c1);
-               mul(rp[3],ap[3],w,c1);
-               ap+=4; rp+=4; num-=4;
-               }
-       if (num)
-               {
-               mul(rp[0],ap[0],w,c1); if (--num == 0) return c1;
-               mul(rp[1],ap[1],w,c1); if (--num == 0) return c1;
-               mul(rp[2],ap[2],w,c1);
-               }
-       return(c1);
-       }
-
-void bn_sqr_words(BN_ULONG *r, BN_ULONG *a, int n)
-       {
-       assert(n >= 0);
-       if (n <= 0) return;
-       while (n&~3)
-               {
-               sqr(r[0],r[1],a[0]);
-               sqr(r[2],r[3],a[1]);
-               sqr(r[4],r[5],a[2]);
-               sqr(r[6],r[7],a[3]);
-               a+=4; r+=8; n-=4;
-               }
-       if (n)
-               {
-               sqr(r[0],r[1],a[0]); if (--n == 0) return;
-               sqr(r[2],r[3],a[1]); if (--n == 0) return;
-               sqr(r[4],r[5],a[2]);
-               }
-       }
-
-#else /* !(defined(BN_LLONG) || defined(BN_UMULT_HIGH)) */
-
-BN_ULONG bn_mul_add_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w)
-       {
-       BN_ULONG c=0;
-       BN_ULONG bl,bh;
-
-       assert(num >= 0);
-       if (num <= 0) return((BN_ULONG)0);
-
-       bl=LBITS(w);
-       bh=HBITS(w);
-
-       for (;;)
-               {
-               mul_add(rp[0],ap[0],bl,bh,c);
-               if (--num == 0) break;
-               mul_add(rp[1],ap[1],bl,bh,c);
-               if (--num == 0) break;
-               mul_add(rp[2],ap[2],bl,bh,c);
-               if (--num == 0) break;
-               mul_add(rp[3],ap[3],bl,bh,c);
-               if (--num == 0) break;
-               ap+=4;
-               rp+=4;
-               }
-       return(c);
-       }
-
-BN_ULONG bn_mul_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w)
-       {
-       BN_ULONG carry=0;
-       BN_ULONG bl,bh;
-
-       assert(num >= 0);
-       if (num <= 0) return((BN_ULONG)0);
-
-       bl=LBITS(w);
-       bh=HBITS(w);
-
-       for (;;)
-               {
-               mul(rp[0],ap[0],bl,bh,carry);
-               if (--num == 0) break;
-               mul(rp[1],ap[1],bl,bh,carry);
-               if (--num == 0) break;
-               mul(rp[2],ap[2],bl,bh,carry);
-               if (--num == 0) break;
-               mul(rp[3],ap[3],bl,bh,carry);
-               if (--num == 0) break;
-               ap+=4;
-               rp+=4;
-               }
-       return(carry);
-       }
-
-void bn_sqr_words(BN_ULONG *r, BN_ULONG *a, int n)
-       {
-       assert(n >= 0);
-       if (n <= 0) return;
-       for (;;)
-               {
-               sqr64(r[0],r[1],a[0]);
-               if (--n == 0) break;
-
-               sqr64(r[2],r[3],a[1]);
-               if (--n == 0) break;
-
-               sqr64(r[4],r[5],a[2]);
-               if (--n == 0) break;
-
-               sqr64(r[6],r[7],a[3]);
-               if (--n == 0) break;
-
-               a+=4;
-               r+=8;
-               }
-       }
-
-#endif /* !(defined(BN_LLONG) || defined(BN_UMULT_HIGH)) */
-
-#if defined(BN_LLONG) && defined(BN_DIV2W)
-
-BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
-       {
-       return((BN_ULONG)(((((BN_ULLONG)h)<<BN_BITS2)|l)/(BN_ULLONG)d));
-       }
-
-#else
-
-/* Divide h,l by d and return the result. */
-/* I need to test this some more :-( */
-BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
-       {
-       BN_ULONG dh,dl,q,ret=0,th,tl,t;
-       int i,count=2;
-
-       if (d == 0) return(BN_MASK2);
-
-       i=BN_num_bits_word(d);
-       assert((i == BN_BITS2) || (h > (BN_ULONG)1<<i));
-
-       i=BN_BITS2-i;
-       if (h >= d) h-=d;
-
-       if (i)
-               {
-               d<<=i;
-               h=(h<<i)|(l>>(BN_BITS2-i));
-               l<<=i;
-               }
-       dh=(d&BN_MASK2h)>>BN_BITS4;
-       dl=(d&BN_MASK2l);
-       for (;;)
-               {
-               if ((h>>BN_BITS4) == dh)
-                       q=BN_MASK2l;
-               else
-                       q=h/dh;
-
-               th=q*dh;
-               tl=dl*q;
-               for (;;)
-                       {
-                       t=h-th;
-                       if ((t&BN_MASK2h) ||
-                               ((tl) <= (
-                                       (t<<BN_BITS4)|
-                                       ((l&BN_MASK2h)>>BN_BITS4))))
-                               break;
-                       q--;
-                       th-=dh;
-                       tl-=dl;
-                       }
-               t=(tl>>BN_BITS4);
-               tl=(tl<<BN_BITS4)&BN_MASK2h;
-               th+=t;
-
-               if (l < tl) th++;
-               l-=tl;
-               if (h < th)
-                       {
-                       h+=d;
-                       q--;
-                       }
-               h-=th;
-
-               if (--count == 0) break;
-
-               ret=q<<BN_BITS4;
-               h=((h<<BN_BITS4)|(l>>BN_BITS4))&BN_MASK2;
-               l=(l&BN_MASK2l)<<BN_BITS4;
-               }
-       ret|=q;
-       return(ret);
-       }
-#endif /* !defined(BN_LLONG) && defined(BN_DIV2W) */
-
-#ifdef BN_LLONG
-BN_ULONG bn_add_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
-       {
-       BN_ULLONG ll=0;
-
-       assert(n >= 0);
-       if (n <= 0) return((BN_ULONG)0);
-
-       for (;;)
-               {
-               ll+=(BN_ULLONG)a[0]+b[0];
-               r[0]=(BN_ULONG)ll&BN_MASK2;
-               ll>>=BN_BITS2;
-               if (--n <= 0) break;
-
-               ll+=(BN_ULLONG)a[1]+b[1];
-               r[1]=(BN_ULONG)ll&BN_MASK2;
-               ll>>=BN_BITS2;
-               if (--n <= 0) break;
-
-               ll+=(BN_ULLONG)a[2]+b[2];
-               r[2]=(BN_ULONG)ll&BN_MASK2;
-               ll>>=BN_BITS2;
-               if (--n <= 0) break;
-
-               ll+=(BN_ULLONG)a[3]+b[3];
-               r[3]=(BN_ULONG)ll&BN_MASK2;
-               ll>>=BN_BITS2;
-               if (--n <= 0) break;
-
-               a+=4;
-               b+=4;
-               r+=4;
-               }
-       return((BN_ULONG)ll);
-       }
-#else /* !BN_LLONG */
-BN_ULONG bn_add_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
-       {
-       BN_ULONG c,l,t;
-
-       assert(n >= 0);
-       if (n <= 0) return((BN_ULONG)0);
-
-       c=0;
-       for (;;)
-               {
-               t=a[0];
-               t=(t+c)&BN_MASK2;
-               c=(t < c);
-               l=(t+b[0])&BN_MASK2;
-               c+=(l < t);
-               r[0]=l;
-               if (--n <= 0) break;
-
-               t=a[1];
-               t=(t+c)&BN_MASK2;
-               c=(t < c);
-               l=(t+b[1])&BN_MASK2;
-               c+=(l < t);
-               r[1]=l;
-               if (--n <= 0) break;
-
-               t=a[2];
-               t=(t+c)&BN_MASK2;
-               c=(t < c);
-               l=(t+b[2])&BN_MASK2;
-               c+=(l < t);
-               r[2]=l;
-               if (--n <= 0) break;
-
-               t=a[3];
-               t=(t+c)&BN_MASK2;
-               c=(t < c);
-               l=(t+b[3])&BN_MASK2;
-               c+=(l < t);
-               r[3]=l;
-               if (--n <= 0) break;
-
-               a+=4;
-               b+=4;
-               r+=4;
-               }
-       return((BN_ULONG)c);
-       }
-#endif /* !BN_LLONG */
diff --git a/package/network/services/ead/src/tinysrp/bn_ctx.c b/package/network/services/ead/src/tinysrp/bn_ctx.c
deleted file mode 100644 (file)
index 20a6605..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/* crypto/bn/bn_ctx.c */
-/* Written by Ulf Moeller for the OpenSSL project. */
-/* ====================================================================
- * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- *    software must display the following acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- *    endorse or promote products derived from this software without
- *    prior written permission. For written permission, please contact
- *    openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- *    nor may "OpenSSL" appear in their names without prior written
- *    permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- *    acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
-#ifndef BN_CTX_DEBUG
-# undef NDEBUG /* avoid conflicting definitions */
-# define NDEBUG
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <bn.h>
-
-
-BN_CTX *BN_CTX_new(void)
-       {
-       BN_CTX *ret;
-
-       ret=(BN_CTX *)malloc(sizeof(BN_CTX));
-       if (ret == NULL)
-               {
-               return(NULL);
-               }
-
-       BN_CTX_init(ret);
-       ret->flags=BN_FLG_MALLOCED;
-       return(ret);
-       }
-
-void BN_CTX_init(BN_CTX *ctx)
-       {
-       int i;
-       ctx->tos = 0;
-       ctx->flags = 0;
-       ctx->depth = 0;
-       ctx->too_many = 0;
-       for (i = 0; i < BN_CTX_NUM; i++)
-               BN_init(&(ctx->bn[i]));
-       }
-
-void BN_CTX_free(BN_CTX *ctx)
-       {
-       int i;
-
-       if (ctx == NULL) return;
-       assert(ctx->depth == 0);
-
-       for (i=0; i < BN_CTX_NUM; i++)
-               BN_clear_free(&(ctx->bn[i]));
-       if (ctx->flags & BN_FLG_MALLOCED)
-               free(ctx);
-       }
-
-void BN_CTX_start(BN_CTX *ctx)
-       {
-       if (ctx->depth < BN_CTX_NUM_POS)
-               ctx->pos[ctx->depth] = ctx->tos;
-       ctx->depth++;
-       }
-
-BIGNUM *BN_CTX_get(BN_CTX *ctx)
-       {
-       if (ctx->depth > BN_CTX_NUM_POS || ctx->tos >= BN_CTX_NUM)
-               {
-               if (!ctx->too_many)
-                       {
-                       /* disable error code until BN_CTX_end is called: */
-                       ctx->too_many = 1;
-                       }
-               return NULL;
-               }
-       return (&(ctx->bn[ctx->tos++]));
-       }
-
-void BN_CTX_end(BN_CTX *ctx)
-       {
-       if (ctx == NULL) return;
-       assert(ctx->depth > 0);
-       if (ctx->depth == 0)
-               /* should never happen, but we can tolerate it if not in
-                * debug mode (could be a 'goto err' in the calling function
-                * before BN_CTX_start was reached) */
-               BN_CTX_start(ctx);
-
-       ctx->too_many = 0;
-       ctx->depth--;
-       if (ctx->depth < BN_CTX_NUM_POS)
-               ctx->tos = ctx->pos[ctx->depth];
-       }
diff --git a/package/network/services/ead/src/tinysrp/bn_div.c b/package/network/services/ead/src/tinysrp/bn_div.c
deleted file mode 100644 (file)
index fd21913..0000000
+++ /dev/null
@@ -1,378 +0,0 @@
-/* crypto/bn/bn_div.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include <stdio.h>
-#include "bn_lcl.h"
-
-#define NO_ASM
-
-/* The old slow way */
-#if 0
-int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d,
-          BN_CTX *ctx)
-       {
-       int i,nm,nd;
-       int ret = 0;
-       BIGNUM *D;
-
-       bn_check_top(m);
-       bn_check_top(d);
-       if (BN_is_zero(d))
-               {
-               return(0);
-               }
-
-       if (BN_ucmp(m,d) < 0)
-               {
-               if (rem != NULL)
-                       { if (BN_copy(rem,m) == NULL) return(0); }
-               if (dv != NULL) BN_zero(dv);
-               return(1);
-               }
-
-       BN_CTX_start(ctx);
-       D = BN_CTX_get(ctx);
-       if (dv == NULL) dv = BN_CTX_get(ctx);
-       if (rem == NULL) rem = BN_CTX_get(ctx);
-       if (D == NULL || dv == NULL || rem == NULL)
-               goto end;
-
-       nd=BN_num_bits(d);
-       nm=BN_num_bits(m);
-       if (BN_copy(D,d) == NULL) goto end;
-       if (BN_copy(rem,m) == NULL) goto end;
-
-       /* The next 2 are needed so we can do a dv->d[0]|=1 later
-        * since BN_lshift1 will only work once there is a value :-) */
-       BN_zero(dv);
-       bn_wexpand(dv,1);
-       dv->top=1;
-
-       if (!BN_lshift(D,D,nm-nd)) goto end;
-       for (i=nm-nd; i>=0; i--)
-               {
-               if (!BN_lshift1(dv,dv)) goto end;
-               if (BN_ucmp(rem,D) >= 0)
-                       {
-                       dv->d[0]|=1;
-                       if (!BN_usub(rem,rem,D)) goto end;
-                       }
-/* CAN IMPROVE (and have now :=) */
-               if (!BN_rshift1(D,D)) goto end;
-               }
-       rem->neg=BN_is_zero(rem)?0:m->neg;
-       dv->neg=m->neg^d->neg;
-       ret = 1;
- end:
-       BN_CTX_end(ctx);
-       return(ret);
-       }
-
-#else
-
-#if !defined(NO_ASM) && !defined(NO_INLINE_ASM) && !defined(PEDANTIC) && !defined(BN_DIV3W)
-# if defined(__GNUC__) && __GNUC__>=2
-#  if defined(__i386)
-   /*
-    * There were two reasons for implementing this template:
-    * - GNU C generates a call to a function (__udivdi3 to be exact)
-    *   in reply to ((((BN_ULLONG)n0)<<BN_BITS2)|n1)/d0 (I fail to
-    *   understand why...);
-    * - divl doesn't only calculate quotient, but also leaves
-    *   remainder in %edx which we can definitely use here:-)
-    *
-    *                                   <appro@fy.chalmers.se>
-    */
-#  define bn_div_words(n0,n1,d0)                \
-       ({  asm volatile (                      \
-               "divl   %4"                     \
-               : "=a"(q), "=d"(rem)            \
-               : "a"(n1), "d"(n0), "g"(d0)     \
-               : "cc");                        \
-           q;                                  \
-       })
-#  define REMAINDER_IS_ALREADY_CALCULATED
-#  endif /* __<cpu> */
-# endif /* __GNUC__ */
-#endif /* NO_ASM */
-
-int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
-          BN_CTX *ctx)
-       {
-       int norm_shift,i,j,loop;
-       BIGNUM *tmp,wnum,*snum,*sdiv,*res;
-       BN_ULONG *resp,*wnump;
-       BN_ULONG d0,d1;
-       int num_n,div_n;
-
-       bn_check_top(num);
-       bn_check_top(divisor);
-
-       if (BN_is_zero(divisor))
-               {
-               return(0);
-               }
-
-       if (BN_ucmp(num,divisor) < 0)
-               {
-               if (rm != NULL)
-                       { if (BN_copy(rm,num) == NULL) return(0); }
-               if (dv != NULL) BN_zero(dv);
-               return(1);
-               }
-
-       BN_CTX_start(ctx);
-       tmp=BN_CTX_get(ctx);
-       tmp->neg=0;
-       snum=BN_CTX_get(ctx);
-       sdiv=BN_CTX_get(ctx);
-       if (dv == NULL)
-               res=BN_CTX_get(ctx);
-       else    res=dv;
-       if (res == NULL) goto err;
-
-       /* First we normalise the numbers */
-       norm_shift=BN_BITS2-((BN_num_bits(divisor))%BN_BITS2);
-       BN_lshift(sdiv,divisor,norm_shift);
-       sdiv->neg=0;
-       norm_shift+=BN_BITS2;
-       BN_lshift(snum,num,norm_shift);
-       snum->neg=0;
-       div_n=sdiv->top;
-       num_n=snum->top;
-       loop=num_n-div_n;
-
-       /* Lets setup a 'window' into snum
-        * This is the part that corresponds to the current
-        * 'area' being divided */
-       BN_init(&wnum);
-       wnum.d=  &(snum->d[loop]);
-       wnum.top= div_n;
-       wnum.dmax= snum->dmax+1; /* a bit of a lie */
-
-       /* Get the top 2 words of sdiv */
-       /* i=sdiv->top; */
-       d0=sdiv->d[div_n-1];
-       d1=(div_n == 1)?0:sdiv->d[div_n-2];
-
-       /* pointer to the 'top' of snum */
-       wnump= &(snum->d[num_n-1]);
-
-       /* Setup to 'res' */
-       res->neg= (num->neg^divisor->neg);
-       if (!bn_wexpand(res,(loop+1))) goto err;
-       res->top=loop;
-       resp= &(res->d[loop-1]);
-
-       /* space for temp */
-       if (!bn_wexpand(tmp,(div_n+1))) goto err;
-
-       if (BN_ucmp(&wnum,sdiv) >= 0)
-               {
-               if (!BN_usub(&wnum,&wnum,sdiv)) goto err;
-               *resp=1;
-               res->d[res->top-1]=1;
-               }
-       else
-               res->top--;
-       resp--;
-
-       for (i=0; i<loop-1; i++)
-               {
-               BN_ULONG q,l0;
-#ifdef BN_DIV3W
-               q=bn_div_3_words(wnump,d1,d0);
-#else
-               BN_ULONG n0,n1,rem=0;
-
-               n0=wnump[0];
-               n1=wnump[-1];
-               if (n0 == d0)
-                       q=BN_MASK2;
-               else                    /* n0 < d0 */
-                       {
-#ifdef BN_LLONG
-                       BN_ULLONG t2;
-
-#if defined(BN_LLONG) && defined(BN_DIV2W) && !defined(bn_div_words)
-                       q=(BN_ULONG)(((((BN_ULLONG)n0)<<BN_BITS2)|n1)/d0);
-#else
-                       q=bn_div_words(n0,n1,d0);
-#endif
-
-#ifndef REMAINDER_IS_ALREADY_CALCULATED
-                       /*
-                        * rem doesn't have to be BN_ULLONG. The least we
-                        * know it's less that d0, isn't it?
-                        */
-                       rem=(n1-q*d0)&BN_MASK2;
-#endif
-                       t2=(BN_ULLONG)d1*q;
-
-                       for (;;)
-                               {
-                               if (t2 <= ((((BN_ULLONG)rem)<<BN_BITS2)|wnump[-2]))
-                                       break;
-                               q--;
-                               rem += d0;
-                               if (rem < d0) break; /* don't let rem overflow */
-                               t2 -= d1;
-                               }
-#else /* !BN_LLONG */
-                       BN_ULONG t2l,t2h,ql,qh;
-
-                       q=bn_div_words(n0,n1,d0);
-#ifndef REMAINDER_IS_ALREADY_CALCULATED
-                       rem=(n1-q*d0)&BN_MASK2;
-#endif
-
-#ifdef BN_UMULT_HIGH
-                       t2l = d1 * q;
-                       t2h = BN_UMULT_HIGH(d1,q);
-#else
-                       t2l=LBITS(d1); t2h=HBITS(d1);
-                       ql =LBITS(q);  qh =HBITS(q);
-                       mul64(t2l,t2h,ql,qh); /* t2=(BN_ULLONG)d1*q; */
-#endif
-
-                       for (;;)
-                               {
-                               if ((t2h < rem) ||
-                                       ((t2h == rem) && (t2l <= wnump[-2])))
-                                       break;
-                               q--;
-                               rem += d0;
-                               if (rem < d0) break; /* don't let rem overflow */
-                               if (t2l < d1) t2h--; t2l -= d1;
-                               }
-#endif /* !BN_LLONG */
-                       }
-#endif /* !BN_DIV3W */
-
-               l0=bn_mul_words(tmp->d,sdiv->d,div_n,q);
-               wnum.d--; wnum.top++;
-               tmp->d[div_n]=l0;
-               for (j=div_n+1; j>0; j--)
-                       if (tmp->d[j-1]) break;
-               tmp->top=j;
-
-               j=wnum.top;
-               BN_sub(&wnum,&wnum,tmp);
-
-               snum->top=snum->top+wnum.top-j;
-
-               if (wnum.neg)
-                       {
-                       q--;
-                       j=wnum.top;
-                       BN_add(&wnum,&wnum,sdiv);
-                       snum->top+=wnum.top-j;
-                       }
-               *(resp--)=q;
-               wnump--;
-               }
-       if (rm != NULL)
-               {
-               BN_rshift(rm,snum,norm_shift);
-               rm->neg=num->neg;
-               }
-       BN_CTX_end(ctx);
-       return(1);
-err:
-       BN_CTX_end(ctx);
-       return(0);
-       }
-
-#endif
-
-/* rem != m */
-int BN_mod(BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx)
-       {
-#if 0 /* The old slow way */
-       int i,nm,nd;
-       BIGNUM *dv;
-
-       if (BN_ucmp(m,d) < 0)
-               return((BN_copy(rem,m) == NULL)?0:1);
-
-       BN_CTX_start(ctx);
-       dv=BN_CTX_get(ctx);
-
-       if (!BN_copy(rem,m)) goto err;
-
-       nm=BN_num_bits(rem);
-       nd=BN_num_bits(d);
-       if (!BN_lshift(dv,d,nm-nd)) goto err;
-       for (i=nm-nd; i>=0; i--)
-               {
-               if (BN_cmp(rem,dv) >= 0)
-                       {
-                       if (!BN_sub(rem,rem,dv)) goto err;
-                       }
-               if (!BN_rshift1(dv,dv)) goto err;
-               }
-       BN_CTX_end(ctx);
-       return(1);
- err:
-       BN_CTX_end(ctx);
-       return(0);
-#else
-       return(BN_div(NULL,rem,m,d,ctx));
-#endif
-       }
-
diff --git a/package/network/services/ead/src/tinysrp/bn_exp.c b/package/network/services/ead/src/tinysrp/bn_exp.c
deleted file mode 100644 (file)
index 09afb79..0000000
+++ /dev/null
@@ -1,395 +0,0 @@
-/* crypto/bn/bn_exp.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-/* ====================================================================
- * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- *    software must display the following acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- *    endorse or promote products derived from this software without
- *    prior written permission. For written permission, please contact
- *    openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- *    nor may "OpenSSL" appear in their names without prior written
- *    permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- *    acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
-
-#include <stdio.h>
-#include "bn_lcl.h"
-
-#define TABLE_SIZE      32
-
-/* slow but works */
-int BN_mod_mul(BIGNUM *ret, BIGNUM *a, BIGNUM *b, const BIGNUM *m, BN_CTX *ctx)
-       {
-       BIGNUM *t;
-       int r=0;
-
-       bn_check_top(a);
-       bn_check_top(b);
-       bn_check_top(m);
-
-       BN_CTX_start(ctx);
-       if ((t = BN_CTX_get(ctx)) == NULL) goto err;
-       if (a == b)
-               { if (!BN_sqr(t,a,ctx)) goto err; }
-       else
-               { if (!BN_mul(t,a,b,ctx)) goto err; }
-       if (!BN_mod(ret,t,m,ctx)) goto err;
-       r=1;
-err:
-       BN_CTX_end(ctx);
-       return(r);
-       }
-
-int BN_mod_exp(BIGNUM *r, BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
-              BN_CTX *ctx)
-       {
-       int ret;
-
-       bn_check_top(a);
-       bn_check_top(p);
-       bn_check_top(m);
-
-#ifdef MONT_MUL_MOD
-       /* I have finally been able to take out this pre-condition of
-        * the top bit being set.  It was caused by an error in BN_div
-        * with negatives.  There was also another problem when for a^b%m
-        * a >= m.  eay 07-May-97 */
-/*      if ((m->d[m->top-1]&BN_TBIT) && BN_is_odd(m)) */
-
-       if (BN_is_odd(m))
-               {
-               if (a->top == 1)
-                       {
-                       BN_ULONG A = a->d[0];
-                       ret=BN_mod_exp_mont_word(r,A,p,m,ctx,NULL);
-                       }
-               else
-                       ret=BN_mod_exp_mont(r,a,p,m,ctx,NULL);
-               }
-       else
-#endif
-#ifdef RECP_MUL_MOD
-               { ret=BN_mod_exp_recp(r,a,p,m,ctx); }
-#else
-               { ret=BN_mod_exp_simple(r,a,p,m,ctx); }
-#endif
-
-       return(ret);
-       }
-
-
-#ifdef RECP_MUL_MOD
-int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
-                   const BIGNUM *m, BN_CTX *ctx)
-       {
-       int i,j,bits,ret=0,wstart,wend,window,wvalue;
-       int start=1,ts=0;
-       BIGNUM *aa;
-       BIGNUM val[TABLE_SIZE];
-       BN_RECP_CTX recp;
-
-       bits=BN_num_bits(p);
-
-       if (bits == 0)
-               {
-               BN_one(r);
-               return(1);
-               }
-
-       BN_CTX_start(ctx);
-       if ((aa = BN_CTX_get(ctx)) == NULL) goto err;
-
-       BN_RECP_CTX_init(&recp);
-       if (BN_RECP_CTX_set(&recp,m,ctx) <= 0) goto err;
-
-       BN_init(&(val[0]));
-       ts=1;
-
-       if (!BN_mod(&(val[0]),a,m,ctx)) goto err;               /* 1 */
-
-       window = BN_window_bits_for_exponent_size(bits);
-       if (window > 1)
-               {
-               if (!BN_mod_mul_reciprocal(aa,&(val[0]),&(val[0]),&recp,ctx))
-                       goto err;                               /* 2 */
-               j=1<<(window-1);
-               for (i=1; i<j; i++)
-                       {
-                       BN_init(&val[i]);
-                       if (!BN_mod_mul_reciprocal(&(val[i]),&(val[i-1]),aa,&recp,ctx))
-                               goto err;
-                       }
-               ts=i;
-               }
-
-       start=1;        /* This is used to avoid multiplication etc
-                        * when there is only the value '1' in the
-                        * buffer. */
-       wvalue=0;       /* The 'value' of the window */
-       wstart=bits-1;  /* The top bit of the window */
-       wend=0;         /* The bottom bit of the window */
-
-       if (!BN_one(r)) goto err;
-
-       for (;;)
-               {
-               if (BN_is_bit_set(p,wstart) == 0)
-                       {
-                       if (!start)
-                               if (!BN_mod_mul_reciprocal(r,r,r,&recp,ctx))
-                               goto err;
-                       if (wstart == 0) break;
-                       wstart--;
-                       continue;
-                       }
-               /* We now have wstart on a 'set' bit, we now need to work out
-                * how bit a window to do.  To do this we need to scan
-                * forward until the last set bit before the end of the
-                * window */
-               j=wstart;
-               wvalue=1;
-               wend=0;
-               for (i=1; i<window; i++)
-                       {
-                       if (wstart-i < 0) break;
-                       if (BN_is_bit_set(p,wstart-i))
-                               {
-                               wvalue<<=(i-wend);
-                               wvalue|=1;
-                               wend=i;
-                               }
-                       }
-
-               /* wend is the size of the current window */
-               j=wend+1;
-               /* add the 'bytes above' */
-               if (!start)
-                       for (i=0; i<j; i++)
-                               {
-                               if (!BN_mod_mul_reciprocal(r,r,r,&recp,ctx))
-                                       goto err;
-                               }
-
-               /* wvalue will be an odd number < 2^window */
-               if (!BN_mod_mul_reciprocal(r,r,&(val[wvalue>>1]),&recp,ctx))
-                       goto err;
-
-               /* move the 'window' down further */
-               wstart-=wend+1;
-               wvalue=0;
-               start=0;
-               if (wstart < 0) break;
-               }
-       ret=1;
-err:
-       BN_CTX_end(ctx);
-       for (i=0; i<ts; i++)
-               BN_clear_free(&(val[i]));
-       BN_RECP_CTX_free(&recp);
-       return(ret);
-       }
-#else
-
-/* The old fallback, simple version :-) */
-int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
-            const BIGNUM *m, BN_CTX *ctx)
-       {
-       int i,j,bits,ret=0,wstart,wend,window,wvalue,ts=0;
-       int start=1;
-       BIGNUM *d;
-       BIGNUM val[TABLE_SIZE];
-
-       bits=BN_num_bits(p);
-
-       if (bits == 0)
-               {
-               BN_one(r);
-               return(1);
-               }
-
-       BN_CTX_start(ctx);
-       if ((d = BN_CTX_get(ctx)) == NULL) goto err;
-
-       BN_init(&(val[0]));
-       ts=1;
-       if (!BN_mod(&(val[0]),a,m,ctx)) goto err;               /* 1 */
-
-       window = BN_window_bits_for_exponent_size(bits);
-       if (window > 1)
-               {
-               if (!BN_mod_mul(d,&(val[0]),&(val[0]),m,ctx))
-                       goto err;                               /* 2 */
-               j=1<<(window-1);
-               for (i=1; i<j; i++)
-                       {
-                       BN_init(&(val[i]));
-                       if (!BN_mod_mul(&(val[i]),&(val[i-1]),d,m,ctx))
-                               goto err;
-                       }
-               ts=i;
-               }
-
-       start=1;        /* This is used to avoid multiplication etc
-                        * when there is only the value '1' in the
-                        * buffer. */
-       wvalue=0;       /* The 'value' of the window */
-       wstart=bits-1;  /* The top bit of the window */
-       wend=0;         /* The bottom bit of the window */
-
-       if (!BN_one(r)) goto err;
-
-       for (;;)
-               {
-               if (BN_is_bit_set(p,wstart) == 0)
-                       {
-                       if (!start)
-                               if (!BN_mod_mul(r,r,r,m,ctx))
-                               goto err;
-                       if (wstart == 0) break;
-                       wstart--;
-                       continue;
-                       }
-               /* We now have wstart on a 'set' bit, we now need to work out
-                * how bit a window to do.  To do this we need to scan
-                * forward until the last set bit before the end of the
-                * window */
-               j=wstart;
-               wvalue=1;
-               wend=0;
-               for (i=1; i<window; i++)
-                       {
-                       if (wstart-i < 0) break;
-                       if (BN_is_bit_set(p,wstart-i))
-                               {
-                               wvalue<<=(i-wend);
-                               wvalue|=1;
-                               wend=i;
-                               }
-                       }
-
-               /* wend is the size of the current window */
-               j=wend+1;
-               /* add the 'bytes above' */
-               if (!start)
-                       for (i=0; i<j; i++)
-                               {
-                               if (!BN_mod_mul(r,r,r,m,ctx))
-                                       goto err;
-                               }
-
-               /* wvalue will be an odd number < 2^window */
-               if (!BN_mod_mul(r,r,&(val[wvalue>>1]),m,ctx))
-                       goto err;
-
-               /* move the 'window' down further */
-               wstart-=wend+1;
-               wvalue=0;
-               start=0;
-               if (wstart < 0) break;
-               }
-       ret=1;
-err:
-       BN_CTX_end(ctx);
-       for (i=0; i<ts; i++)
-               BN_clear_free(&(val[i]));
-       return(ret);
-       }
-#endif
diff --git a/package/network/services/ead/src/tinysrp/bn_lcl.h b/package/network/services/ead/src/tinysrp/bn_lcl.h
deleted file mode 100644 (file)
index 129ad65..0000000
+++ /dev/null
@@ -1,419 +0,0 @@
-/* crypto/bn/bn_lcl.h */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-/* ====================================================================
- * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- *    software must display the following acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- *    endorse or promote products derived from this software without
- *    prior written permission. For written permission, please contact
- *    openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- *    nor may "OpenSSL" appear in their names without prior written
- *    permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- *    acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
-#ifndef HEADER_BN_LCL_H
-#define HEADER_BN_LCL_H
-
-#include <bn.h>
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-
-/*
- * BN_window_bits_for_exponent_size -- macro for sliding window mod_exp functions
- *
- *
- * For window size 'w' (w >= 2) and a random 'b' bits exponent,
- * the number of multiplications is a constant plus on average
- *
- *    2^(w-1) + (b-w)/(w+1);
- *
- * here  2^(w-1)  is for precomputing the table (we actually need
- * entries only for windows that have the lowest bit set), and
- * (b-w)/(w+1)  is an approximation for the expected number of
- * w-bit windows, not counting the first one.
- *
- * Thus we should use
- *
- *    w >= 6  if        b > 671
- *     w = 5  if  671 > b > 239
- *     w = 4  if  239 > b >  79
- *     w = 3  if   79 > b >  23
- *    w <= 2  if   23 > b
- *
- * (with draws in between).  Very small exponents are often selected
- * with low Hamming weight, so we use  w = 1  for b <= 23.
- */
-#if 1
-#define BN_window_bits_for_exponent_size(b) \
-               ((b) > 671 ? 6 : \
-                (b) > 239 ? 5 : \
-                (b) >  79 ? 4 : \
-                (b) >  23 ? 3 : 1)
-#else
-/* Old SSLeay/OpenSSL table.
- * Maximum window size was 5, so this table differs for b==1024;
- * but it coincides for other interesting values (b==160, b==512).
- */
-#define BN_window_bits_for_exponent_size(b) \
-               ((b) > 255 ? 5 : \
-                (b) > 127 ? 4 : \
-                (b) >  17 ? 3 : 1)
-#endif
-
-
-
-/* Pentium pro 16,16,16,32,64 */
-/* Alpha       16,16,16,16.64 */
-#define BN_MULL_SIZE_NORMAL                     (16) /* 32 */
-#define BN_MUL_RECURSIVE_SIZE_NORMAL            (16) /* 32 less than */
-#define BN_SQR_RECURSIVE_SIZE_NORMAL            (16) /* 32 */
-#define BN_MUL_LOW_RECURSIVE_SIZE_NORMAL        (32) /* 32 */
-#define BN_MONT_CTX_SET_SIZE_WORD               (64) /* 32 */
-
-#if !defined(NO_ASM) && !defined(NO_INLINE_ASM) && !defined(PEDANTIC)
-/*
- * BN_UMULT_HIGH section.
- *
- * No, I'm not trying to overwhelm you when stating that the
- * product of N-bit numbers is 2*N bits wide:-) No, I don't expect
- * you to be impressed when I say that if the compiler doesn't
- * support 2*N integer type, then you have to replace every N*N
- * multiplication with 4 (N/2)*(N/2) accompanied by some shifts
- * and additions which unavoidably results in severe performance
- * penalties. Of course provided that the hardware is capable of
- * producing 2*N result... That's when you normally start
- * considering assembler implementation. However! It should be
- * pointed out that some CPUs (most notably Alpha, PowerPC and
- * upcoming IA-64 family:-) provide *separate* instruction
- * calculating the upper half of the product placing the result
- * into a general purpose register. Now *if* the compiler supports
- * inline assembler, then it's not impossible to implement the
- * "bignum" routines (and have the compiler optimize 'em)
- * exhibiting "native" performance in C. That's what BN_UMULT_HIGH
- * macro is about:-)
- *
- *                                      <appro@fy.chalmers.se>
- */
-# if defined(__alpha) && (defined(SIXTY_FOUR_BIT_LONG) || defined(SIXTY_FOUR_BIT))
-#  if defined(__DECC)
-#   include <c_asm.h>
-#   define BN_UMULT_HIGH(a,b)   (BN_ULONG)asm("umulh %a0,%a1,%v0",(a),(b))
-#  elif defined(__GNUC__)
-#   define BN_UMULT_HIGH(a,b)   ({      \
-       register BN_ULONG ret;          \
-       asm ("umulh     %1,%2,%0"       \
-            : "=r"(ret)                \
-            : "r"(a), "r"(b));         \
-       ret;                    })
-#  endif        /* compiler */
-# elif defined(_ARCH_PPC) && defined(__64BIT__) && defined(SIXTY_FOUR_BIT_LONG)
-#  if defined(__GNUC__)
-#   define BN_UMULT_HIGH(a,b)   ({      \
-       register BN_ULONG ret;          \
-       asm ("mulhdu    %0,%1,%2"       \
-            : "=r"(ret)                \
-            : "r"(a), "r"(b));         \
-       ret;                    })
-#  endif        /* compiler */
-# endif         /* cpu */
-#endif          /* NO_ASM */
-
-/*************************************************************
- * Using the long long type
- */
-#define Lw(t)    (((BN_ULONG)(t))&BN_MASK2)
-#define Hw(t)    (((BN_ULONG)((t)>>BN_BITS2))&BN_MASK2)
-
-/* This is used for internal error checking and is not normally used */
-#ifdef BN_DEBUG
-# include <assert.h>
-# define bn_check_top(a) assert ((a)->top >= 0 && (a)->top <= (a)->dmax);
-#else
-# define bn_check_top(a)
-#endif
-
-/* This macro is to add extra stuff for development checking */
-#ifdef BN_DEBUG
-#define bn_set_max(r) ((r)->max=(r)->top,BN_set_flags((r),BN_FLG_STATIC_DATA))
-#else
-#define bn_set_max(r)
-#endif
-
-/* These macros are used to 'take' a section of a bignum for read only use */
-#define bn_set_low(r,a,n) \
-       { \
-       (r)->top=((a)->top > (n))?(n):(a)->top; \
-       (r)->d=(a)->d; \
-       (r)->neg=(a)->neg; \
-       (r)->flags|=BN_FLG_STATIC_DATA; \
-       bn_set_max(r); \
-       }
-
-#define bn_set_high(r,a,n) \
-       { \
-       if ((a)->top > (n)) \
-               { \
-               (r)->top=(a)->top-n; \
-               (r)->d= &((a)->d[n]); \
-               } \
-       else \
-               (r)->top=0; \
-       (r)->neg=(a)->neg; \
-       (r)->flags|=BN_FLG_STATIC_DATA; \
-       bn_set_max(r); \
-       }
-
-#ifdef BN_LLONG
-#define mul_add(r,a,w,c) { \
-       BN_ULLONG t; \
-       t=(BN_ULLONG)w * (a) + (r) + (c); \
-       (r)= Lw(t); \
-       (c)= Hw(t); \
-       }
-
-#define mul(r,a,w,c) { \
-       BN_ULLONG t; \
-       t=(BN_ULLONG)w * (a) + (c); \
-       (r)= Lw(t); \
-       (c)= Hw(t); \
-       }
-
-#define sqr(r0,r1,a) { \
-       BN_ULLONG t; \
-       t=(BN_ULLONG)(a)*(a); \
-       (r0)=Lw(t); \
-       (r1)=Hw(t); \
-       }
-
-#elif defined(BN_UMULT_HIGH)
-#define mul_add(r,a,w,c) {              \
-       BN_ULONG high,low,ret,tmp=(a);  \
-       ret =  (r);                     \
-       high=  BN_UMULT_HIGH(w,tmp);    \
-       ret += (c);                     \
-       low =  (w) * tmp;               \
-       (c) =  (ret<(c))?1:0;           \
-       (c) += high;                    \
-       ret += low;                     \
-       (c) += (ret<low)?1:0;           \
-       (r) =  ret;                     \
-       }
-
-#define mul(r,a,w,c)    {               \
-       BN_ULONG high,low,ret,ta=(a);   \
-       low =  (w) * ta;                \
-       high=  BN_UMULT_HIGH(w,ta);     \
-       ret =  low + (c);               \
-       (c) =  high;                    \
-       (c) += (ret<low)?1:0;           \
-       (r) =  ret;                     \
-       }
-
-#define sqr(r0,r1,a)    {               \
-       BN_ULONG tmp=(a);               \
-       (r0) = tmp * tmp;               \
-       (r1) = BN_UMULT_HIGH(tmp,tmp);  \
-       }
-
-#else
-/*************************************************************
- * No long long type
- */
-
-#define LBITS(a)        ((a)&BN_MASK2l)
-#define HBITS(a)        (((a)>>BN_BITS4)&BN_MASK2l)
-#define L2HBITS(a)      ((BN_ULONG)((a)&BN_MASK2l)<<BN_BITS4)
-
-#define LLBITS(a)       ((a)&BN_MASKl)
-#define LHBITS(a)       (((a)>>BN_BITS2)&BN_MASKl)
-#define LL2HBITS(a)     ((BN_ULLONG)((a)&BN_MASKl)<<BN_BITS2)
-
-#define mul64(l,h,bl,bh) \
-       { \
-       BN_ULONG m,m1,lt,ht; \
- \
-       lt=l; \
-       ht=h; \
-       m =(bh)*(lt); \
-       lt=(bl)*(lt); \
-       m1=(bl)*(ht); \
-       ht =(bh)*(ht); \
-       m=(m+m1)&BN_MASK2; if (m < m1) ht+=L2HBITS(1L); \
-       ht+=HBITS(m); \
-       m1=L2HBITS(m); \
-       lt=(lt+m1)&BN_MASK2; if (lt < m1) ht++; \
-       (l)=lt; \
-       (h)=ht; \
-       }
-
-#define sqr64(lo,ho,in) \
-       { \
-       BN_ULONG l,h,m; \
- \
-       h=(in); \
-       l=LBITS(h); \
-       h=HBITS(h); \
-       m =(l)*(h); \
-       l*=l; \
-       h*=h; \
-       h+=(m&BN_MASK2h1)>>(BN_BITS4-1); \
-       m =(m&BN_MASK2l)<<(BN_BITS4+1); \
-       l=(l+m)&BN_MASK2; if (l < m) h++; \
-       (lo)=l; \
-       (ho)=h; \
-       }
-
-#define mul_add(r,a,bl,bh,c) { \
-       BN_ULONG l,h; \
- \
-       h= (a); \
-       l=LBITS(h); \
-       h=HBITS(h); \
-       mul64(l,h,(bl),(bh)); \
- \
-       /* non-multiply part */ \
-       l=(l+(c))&BN_MASK2; if (l < (c)) h++; \
-       (c)=(r); \
-       l=(l+(c))&BN_MASK2; if (l < (c)) h++; \
-       (c)=h&BN_MASK2; \
-       (r)=l; \
-       }
-
-#define mul(r,a,bl,bh,c) { \
-       BN_ULONG l,h; \
- \
-       h= (a); \
-       l=LBITS(h); \
-       h=HBITS(h); \
-       mul64(l,h,(bl),(bh)); \
- \
-       /* non-multiply part */ \
-       l+=(c); if ((l&BN_MASK2) < (c)) h++; \
-       (c)=h&BN_MASK2; \
-       (r)=l&BN_MASK2; \
-       }
-#endif /* !BN_LLONG */
-
-void bn_mul_normal(BN_ULONG *r,BN_ULONG *a,int na,BN_ULONG *b,int nb);
-void bn_mul_comba8(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b);
-void bn_mul_comba4(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b);
-void bn_sqr_normal(BN_ULONG *r, BN_ULONG *a, int n, BN_ULONG *tmp);
-void bn_sqr_comba8(BN_ULONG *r,BN_ULONG *a);
-void bn_sqr_comba4(BN_ULONG *r,BN_ULONG *a);
-int bn_cmp_words(BN_ULONG *a,BN_ULONG *b,int n);
-void bn_mul_recursive(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b,int n2,BN_ULONG *t);
-void bn_mul_part_recursive(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b,
-       int tn, int n,BN_ULONG *t);
-void bn_sqr_recursive(BN_ULONG *r,BN_ULONG *a, int n2, BN_ULONG *t);
-void bn_mul_low_normal(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b, int n);
-void bn_mul_low_recursive(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b,int n2,
-       BN_ULONG *t);
-void bn_mul_high(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b,BN_ULONG *l,int n2,
-       BN_ULONG *t);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif
diff --git a/package/network/services/ead/src/tinysrp/bn_lib.c b/package/network/services/ead/src/tinysrp/bn_lib.c
deleted file mode 100644 (file)
index cfa0d75..0000000
+++ /dev/null
@@ -1,576 +0,0 @@
-/* crypto/bn/bn_lib.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#ifndef BN_DEBUG
-# undef NDEBUG /* avoid conflicting definitions */
-# define NDEBUG
-#endif
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "bn_lcl.h"
-
-const char *BN_version="Big Number";
-
-/* For a 32 bit machine
- * 2 -   4 ==  128
- * 3 -   8 ==  256
- * 4 -  16 ==  512
- * 5 -  32 == 1024
- * 6 -  64 == 2048
- * 7 - 128 == 4096
- * 8 - 256 == 8192
- */
-static int bn_limit_bits=0;
-static int bn_limit_num=8;        /* (1<<bn_limit_bits) */
-static int bn_limit_bits_low=0;
-static int bn_limit_num_low=8;    /* (1<<bn_limit_bits_low) */
-static int bn_limit_bits_high=0;
-static int bn_limit_num_high=8;   /* (1<<bn_limit_bits_high) */
-static int bn_limit_bits_mont=0;
-static int bn_limit_num_mont=8;   /* (1<<bn_limit_bits_mont) */
-
-int BN_num_bits_word(BN_ULONG l)
-       {
-       static const char bits[256]={
-               0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,
-               5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-               6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-               6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-               7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
-               7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
-               7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
-               7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
-               8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
-               8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
-               8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
-               8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
-               8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
-               8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
-               8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
-               8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
-               };
-
-#if defined(SIXTY_FOUR_BIT_LONG)
-       if (l & 0xffffffff00000000L)
-               {
-               if (l & 0xffff000000000000L)
-                       {
-                       if (l & 0xff00000000000000L)
-                               {
-                               return(bits[(int)(l>>56)]+56);
-                               }
-                       else    return(bits[(int)(l>>48)]+48);
-                       }
-               else
-                       {
-                       if (l & 0x0000ff0000000000L)
-                               {
-                               return(bits[(int)(l>>40)]+40);
-                               }
-                       else    return(bits[(int)(l>>32)]+32);
-                       }
-               }
-       else
-#else
-#ifdef SIXTY_FOUR_BIT
-       if (l & 0xffffffff00000000LL)
-               {
-               if (l & 0xffff000000000000LL)
-                       {
-                       if (l & 0xff00000000000000LL)
-                               {
-                               return(bits[(int)(l>>56)]+56);
-                               }
-                       else    return(bits[(int)(l>>48)]+48);
-                       }
-               else
-                       {
-                       if (l & 0x0000ff0000000000LL)
-                               {
-                               return(bits[(int)(l>>40)]+40);
-                               }
-                       else    return(bits[(int)(l>>32)]+32);
-                       }
-               }
-       else
-#endif
-#endif
-               {
-#if defined(THIRTY_TWO_BIT) || defined(SIXTY_FOUR_BIT) || defined(SIXTY_FOUR_BIT_LONG)
-               if (l & 0xffff0000L)
-                       {
-                       if (l & 0xff000000L)
-                               return(bits[(int)(l>>24L)]+24);
-                       else    return(bits[(int)(l>>16L)]+16);
-                       }
-               else
-#endif
-                       {
-#if defined(SIXTEEN_BIT) || defined(THIRTY_TWO_BIT) || defined(SIXTY_FOUR_BIT) || defined(SIXTY_FOUR_BIT_LONG)
-                       if (l & 0xff00L)
-                               return(bits[(int)(l>>8)]+8);
-                       else
-#endif
-                               return(bits[(int)(l   )]  );
-                       }
-               }
-       }
-
-int BN_num_bits(const BIGNUM *a)
-       {
-       BN_ULONG l;
-       int i;
-
-       bn_check_top(a);
-
-       if (a->top == 0) return(0);
-       l=a->d[a->top-1];
-       assert(l != 0);
-       i=(a->top-1)*BN_BITS2;
-       return(i+BN_num_bits_word(l));
-       }
-
-void BN_clear_free(BIGNUM *a)
-       {
-       int i;
-
-       if (a == NULL) return;
-       if (a->d != NULL)
-               {
-               memset(a->d,0,a->dmax*sizeof(a->d[0]));
-               if (!(BN_get_flags(a,BN_FLG_STATIC_DATA)))
-                       free(a->d);
-               }
-       i=BN_get_flags(a,BN_FLG_MALLOCED);
-       memset(a,0,sizeof(BIGNUM));
-       if (i)
-               free(a);
-       }
-
-void BN_free(BIGNUM *a)
-       {
-       if (a == NULL) return;
-       if ((a->d != NULL) && !(BN_get_flags(a,BN_FLG_STATIC_DATA)))
-               free(a->d);
-       a->flags|=BN_FLG_FREE; /* REMOVE? */
-       if (a->flags & BN_FLG_MALLOCED)
-               free(a);
-       }
-
-void BN_init(BIGNUM *a)
-       {
-       memset(a,0,sizeof(BIGNUM));
-       }
-
-BIGNUM *BN_new(void)
-       {
-       BIGNUM *ret;
-
-       if ((ret=(BIGNUM *)malloc(sizeof(BIGNUM))) == NULL)
-               {
-               return(NULL);
-               }
-       ret->flags=BN_FLG_MALLOCED;
-       ret->top=0;
-       ret->neg=0;
-       ret->dmax=0;
-       ret->d=NULL;
-       return(ret);
-       }
-
-/* This is an internal function that should not be used in applications.
- * It ensures that 'b' has enough room for a 'words' word number number.
- * It is mostly used by the various BIGNUM routines. If there is an error,
- * NULL is returned. If not, 'b' is returned. */
-
-BIGNUM *bn_expand2(BIGNUM *b, int words)
-       {
-       BN_ULONG *A,*a;
-       const BN_ULONG *B;
-       int i;
-
-       bn_check_top(b);
-
-       if (words > b->dmax)
-               {
-               bn_check_top(b);
-               if (BN_get_flags(b,BN_FLG_STATIC_DATA))
-                       {
-                       return(NULL);
-                       }
-               a=A=(BN_ULONG *)malloc(sizeof(BN_ULONG)*(words+1));
-               if (A == NULL)
-                       {
-                       return(NULL);
-                       }
-#if 1
-               B=b->d;
-               /* Check if the previous number needs to be copied */
-               if (B != NULL)
-                       {
-#if 0
-                       /* This lot is an unrolled loop to copy b->top
-                        * BN_ULONGs from B to A
-                        */
-/*
- * I have nothing against unrolling but it's usually done for
- * several reasons, namely:
- * - minimize percentage of decision making code, i.e. branches;
- * - avoid cache trashing;
- * - make it possible to schedule loads earlier;
- * Now let's examine the code below. The cornerstone of C is
- * "programmer is always right" and that's what we love it for:-)
- * For this very reason C compilers have to be paranoid when it
- * comes to data aliasing and assume the worst. Yeah, but what
- * does it mean in real life? This means that loop body below will
- * be compiled to sequence of loads immediately followed by stores
- * as compiler assumes the worst, something in A==B+1 style. As a
- * result CPU pipeline is going to starve for incoming data. Secondly
- * if A and B happen to share same cache line such code is going to
- * cause severe cache trashing. Both factors have severe impact on
- * performance of modern CPUs and this is the reason why this
- * particular piece of code is #ifdefed away and replaced by more
- * "friendly" version found in #else section below. This comment
- * also applies to BN_copy function.
- *
- *                                      <appro@fy.chalmers.se>
- */
-                       for (i=b->top&(~7); i>0; i-=8)
-                               {
-                               A[0]=B[0]; A[1]=B[1]; A[2]=B[2]; A[3]=B[3];
-                               A[4]=B[4]; A[5]=B[5]; A[6]=B[6]; A[7]=B[7];
-                               A+=8;
-                               B+=8;
-                               }
-                       switch (b->top&7)
-                               {
-                       case 7:
-                               A[6]=B[6];
-                       case 6:
-                               A[5]=B[5];
-                       case 5:
-                               A[4]=B[4];
-                       case 4:
-                               A[3]=B[3];
-                       case 3:
-                               A[2]=B[2];
-                       case 2:
-                               A[1]=B[1];
-                       case 1:
-                               A[0]=B[0];
-                       case 0:
-                               /* I need the 'case 0' entry for utrix cc.
-                                * If the optimizer is turned on, it does the
-                                * switch table by doing
-                                * a=top&7
-                                * a--;
-                                * goto jump_table[a];
-                                * If top is 0, this makes us jump to 0xffffffc
-                                * which is rather bad :-(.
-                                * eric 23-Apr-1998
-                                */
-                               ;
-                               }
-#else
-                       for (i=b->top>>2; i>0; i--,A+=4,B+=4)
-                               {
-                               /*
-                                * The fact that the loop is unrolled
-                                * 4-wise is a tribute to Intel. It's
-                                * the one that doesn't have enough
-                                * registers to accomodate more data.
-                                * I'd unroll it 8-wise otherwise:-)
-                                *
-                                *              <appro@fy.chalmers.se>
-                                */
-                               BN_ULONG a0,a1,a2,a3;
-                               a0=B[0]; a1=B[1]; a2=B[2]; a3=B[3];
-                               A[0]=a0; A[1]=a1; A[2]=a2; A[3]=a3;
-                               }
-                       switch (b->top&3)
-                               {
-                               case 3: A[2]=B[2];
-                               case 2: A[1]=B[1];
-                               case 1: A[0]=B[0];
-                               case 0: ; /* ultrix cc workaround, see above */
-                               }
-#endif
-                       free(b->d);
-                       }
-
-               b->d=a;
-               b->dmax=words;
-
-               /* Now need to zero any data between b->top and b->max */
-
-               A= &(b->d[b->top]);
-               for (i=(b->dmax - b->top)>>3; i>0; i--,A+=8)
-                       {
-                       A[0]=0; A[1]=0; A[2]=0; A[3]=0;
-                       A[4]=0; A[5]=0; A[6]=0; A[7]=0;
-                       }
-               for (i=(b->dmax - b->top)&7; i>0; i--,A++)
-                       A[0]=0;
-#else
-                       memset(A,0,sizeof(BN_ULONG)*(words+1));
-                       memcpy(A,b->d,sizeof(b->d[0])*b->top);
-                       b->d=a;
-                       b->max=words;
-#endif
-
-/*              memset(&(p[b->max]),0,((words+1)-b->max)*sizeof(BN_ULONG)); */
-/*      { int i; for (i=b->max; i<words+1; i++) p[i]=i;} */
-
-               }
-       return(b);
-       }
-
-BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
-       {
-       int i;
-       BN_ULONG *A;
-       const BN_ULONG *B;
-
-       bn_check_top(b);
-
-       if (a == b) return(a);
-       if (bn_wexpand(a,b->top) == NULL) return(NULL);
-
-#if 1
-       A=a->d;
-       B=b->d;
-       for (i=b->top>>2; i>0; i--,A+=4,B+=4)
-               {
-               BN_ULONG a0,a1,a2,a3;
-               a0=B[0]; a1=B[1]; a2=B[2]; a3=B[3];
-               A[0]=a0; A[1]=a1; A[2]=a2; A[3]=a3;
-               }
-       switch (b->top&3)
-               {
-               case 3: A[2]=B[2];
-               case 2: A[1]=B[1];
-               case 1: A[0]=B[0];
-               case 0: ; /* ultrix cc workaround, see comments in bn_expand2 */
-               }
-#else
-       memcpy(a->d,b->d,sizeof(b->d[0])*b->top);
-#endif
-
-/*      memset(&(a->d[b->top]),0,sizeof(a->d[0])*(a->max-b->top));*/
-       a->top=b->top;
-       if ((a->top == 0) && (a->d != NULL))
-               a->d[0]=0;
-       a->neg=b->neg;
-       return(a);
-       }
-
-int BN_set_word(BIGNUM *a, BN_ULONG w)
-       {
-       int i,n;
-       if (bn_expand(a,sizeof(BN_ULONG)*8) == NULL) return(0);
-
-       n=sizeof(BN_ULONG)/BN_BYTES;
-       a->neg=0;
-       a->top=0;
-       a->d[0]=(BN_ULONG)w&BN_MASK2;
-       if (a->d[0] != 0) a->top=1;
-       for (i=1; i<n; i++)
-               {
-               /* the following is done instead of
-                * w>>=BN_BITS2 so compilers don't complain
-                * on builds where sizeof(long) == BN_TYPES */
-#ifndef SIXTY_FOUR_BIT /* the data item > unsigned long */
-               w>>=BN_BITS4;
-               w>>=BN_BITS4;
-#else
-               w=0;
-#endif
-               a->d[i]=(BN_ULONG)w&BN_MASK2;
-               if (a->d[i] != 0) a->top=i+1;
-               }
-       return(1);
-       }
-
-/* ignore negative */
-BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret)
-       {
-       unsigned int i,m;
-       unsigned int n;
-       BN_ULONG l;
-
-       if (ret == NULL) ret=BN_new();
-       if (ret == NULL) return(NULL);
-       l=0;
-       n=len;
-       if (n == 0)
-               {
-               ret->top=0;
-               return(ret);
-               }
-       if (bn_expand(ret,(int)(n+2)*8) == NULL)
-               return(NULL);
-       i=((n-1)/BN_BYTES)+1;
-       m=((n-1)%(BN_BYTES));
-       ret->top=i;
-       while (n-- > 0)
-               {
-               l=(l<<8L)| *(s++);
-               if (m-- == 0)
-                       {
-                       ret->d[--i]=l;
-                       l=0;
-                       m=BN_BYTES-1;
-                       }
-               }
-       /* need to call this due to clear byte at top if avoiding
-        * having the top bit set (-ve number) */
-       bn_fix_top(ret);
-       return(ret);
-       }
-
-/* ignore negative */
-int BN_bn2bin(const BIGNUM *a, unsigned char *to)
-       {
-       int n,i;
-       BN_ULONG l;
-
-       n=i=BN_num_bytes(a);
-       while (i-- > 0)
-               {
-               l=a->d[i/BN_BYTES];
-               *(to++)=(unsigned char)(l>>(8*(i%BN_BYTES)))&0xff;
-               }
-       return(n);
-       }
-
-int BN_ucmp(const BIGNUM *a, const BIGNUM *b)
-       {
-       int i;
-       BN_ULONG t1,t2,*ap,*bp;
-
-       bn_check_top(a);
-       bn_check_top(b);
-
-       i=a->top-b->top;
-       if (i != 0) return(i);
-       ap=a->d;
-       bp=b->d;
-       for (i=a->top-1; i>=0; i--)
-               {
-               t1= ap[i];
-               t2= bp[i];
-               if (t1 != t2)
-                       return(t1 > t2?1:-1);
-               }
-       return(0);
-       }
-
-int BN_cmp(const BIGNUM *a, const BIGNUM *b)
-       {
-       int i;
-       int gt,lt;
-       BN_ULONG t1,t2;
-
-       if ((a == NULL) || (b == NULL))
-               {
-               if (a != NULL)
-                       return(-1);
-               else if (b != NULL)
-                       return(1);
-               else
-                       return(0);
-               }
-
-       bn_check_top(a);
-       bn_check_top(b);
-
-       if (a->neg != b->neg)
-               {
-               if (a->neg)
-                       return(-1);
-               else    return(1);
-               }
-       if (a->neg == 0)
-               { gt=1; lt= -1; }
-       else    { gt= -1; lt=1; }
-
-       if (a->top > b->top) return(gt);
-       if (a->top < b->top) return(lt);
-       for (i=a->top-1; i>=0; i--)
-               {
-               t1=a->d[i];
-               t2=b->d[i];
-               if (t1 > t2) return(gt);
-               if (t1 < t2) return(lt);
-               }
-       return(0);
-       }
-
-int BN_is_bit_set(const BIGNUM *a, int n)
-       {
-       int i,j;
-
-       if (n < 0) return(0);
-       i=n/BN_BITS2;
-       j=n%BN_BITS2;
-       if (a->top <= i) return(0);
-       return((a->d[i]&(((BN_ULONG)1)<<j))?1:0);
-       }
diff --git a/package/network/services/ead/src/tinysrp/bn_mul.c b/package/network/services/ead/src/tinysrp/bn_mul.c
deleted file mode 100644 (file)
index 92330e5..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-/* crypto/bn/bn_mul.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "bn_lcl.h"
-
-int BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx)
-       {
-       int top,al,bl;
-       BIGNUM *rr;
-       int ret = 0;
-#if defined(BN_MUL_COMBA) || defined(BN_RECURSION)
-       int i;
-#endif
-
-#ifdef BN_COUNT
-       printf("BN_mul %d * %d\n",a->top,b->top);
-#endif
-
-       bn_check_top(a);
-       bn_check_top(b);
-       bn_check_top(r);
-
-       al=a->top;
-       bl=b->top;
-
-       if ((al == 0) || (bl == 0))
-               {
-               BN_zero(r);
-               return(1);
-               }
-       top=al+bl;
-
-       BN_CTX_start(ctx);
-       if ((r == a) || (r == b))
-               {
-               if ((rr = BN_CTX_get(ctx)) == NULL) goto err;
-               }
-       else
-               rr = r;
-       rr->neg=a->neg^b->neg;
-
-#if defined(BN_MUL_COMBA) || defined(BN_RECURSION)
-       i = al-bl;
-#endif
-#ifdef BN_MUL_COMBA
-       if (i == 0)
-               {
-# if 0
-               if (al == 4)
-                       {
-                       if (bn_wexpand(rr,8) == NULL) goto err;
-                       rr->top=8;
-                       bn_mul_comba4(rr->d,a->d,b->d);
-                       goto end;
-                       }
-# endif
-               if (al == 8)
-                       {
-                       if (bn_wexpand(rr,16) == NULL) goto err;
-                       rr->top=16;
-                       bn_mul_comba8(rr->d,a->d,b->d);
-                       goto end;
-                       }
-               }
-#endif /* BN_MUL_COMBA */
-       if (bn_wexpand(rr,top) == NULL) goto err;
-       rr->top=top;
-       bn_mul_normal(rr->d,a->d,al,b->d,bl);
-
-#if defined(BN_MUL_COMBA) || defined(BN_RECURSION)
-end:
-#endif
-       bn_fix_top(rr);
-       if (r != rr) BN_copy(r,rr);
-       ret=1;
-err:
-       BN_CTX_end(ctx);
-       return(ret);
-       }
-
-void bn_mul_normal(BN_ULONG *r, BN_ULONG *a, int na, BN_ULONG *b, int nb)
-       {
-       BN_ULONG *rr;
-
-#ifdef BN_COUNT
-       printf(" bn_mul_normal %d * %d\n",na,nb);
-#endif
-
-       if (na < nb)
-               {
-               int itmp;
-               BN_ULONG *ltmp;
-
-               itmp=na; na=nb; nb=itmp;
-               ltmp=a;   a=b;   b=ltmp;
-
-               }
-       rr= &(r[na]);
-       rr[0]=bn_mul_words(r,a,na,b[0]);
-
-       for (;;)
-               {
-               if (--nb <= 0) return;
-               rr[1]=bn_mul_add_words(&(r[1]),a,na,b[1]);
-               if (--nb <= 0) return;
-               rr[2]=bn_mul_add_words(&(r[2]),a,na,b[2]);
-               if (--nb <= 0) return;
-               rr[3]=bn_mul_add_words(&(r[3]),a,na,b[3]);
-               if (--nb <= 0) return;
-               rr[4]=bn_mul_add_words(&(r[4]),a,na,b[4]);
-               rr+=4;
-               r+=4;
-               b+=4;
-               }
-       }
diff --git a/package/network/services/ead/src/tinysrp/bn_prime.h b/package/network/services/ead/src/tinysrp/bn_prime.h
deleted file mode 100644 (file)
index b7cf9a9..0000000
+++ /dev/null
@@ -1,325 +0,0 @@
-/* Auto generated by bn_prime.pl */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- * 
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * 
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#ifndef EIGHT_BIT
-#define NUMPRIMES 2048
-#else
-#define NUMPRIMES 54
-#endif
-static const unsigned int primes[NUMPRIMES]=
-       {
-          2,   3,   5,   7,  11,  13,  17,  19,
-         23,  29,  31,  37,  41,  43,  47,  53,
-         59,  61,  67,  71,  73,  79,  83,  89,
-         97, 101, 103, 107, 109, 113, 127, 131,
-        137, 139, 149, 151, 157, 163, 167, 173,
-        179, 181, 191, 193, 197, 199, 211, 223,
-        227, 229, 233, 239, 241, 251,
-#ifndef EIGHT_BIT
-        257, 263,
-        269, 271, 277, 281, 283, 293, 307, 311,
-        313, 317, 331, 337, 347, 349, 353, 359,
-        367, 373, 379, 383, 389, 397, 401, 409,
-        419, 421, 431, 433, 439, 443, 449, 457,
-        461, 463, 467, 479, 487, 491, 499, 503,
-        509, 521, 523, 541, 547, 557, 563, 569,
-        571, 577, 587, 593, 599, 601, 607, 613,
-        617, 619, 631, 641, 643, 647, 653, 659,
-        661, 673, 677, 683, 691, 701, 709, 719,
-        727, 733, 739, 743, 751, 757, 761, 769,
-        773, 787, 797, 809, 811, 821, 823, 827,
-        829, 839, 853, 857, 859, 863, 877, 881,
-        883, 887, 907, 911, 919, 929, 937, 941,
-        947, 953, 967, 971, 977, 983, 991, 997,
-       1009,1013,1019,1021,1031,1033,1039,1049,
-       1051,1061,1063,1069,1087,1091,1093,1097,
-       1103,1109,1117,1123,1129,1151,1153,1163,
-       1171,1181,1187,1193,1201,1213,1217,1223,
-       1229,1231,1237,1249,1259,1277,1279,1283,
-       1289,1291,1297,1301,1303,1307,1319,1321,
-       1327,1361,1367,1373,1381,1399,1409,1423,
-       1427,1429,1433,1439,1447,1451,1453,1459,
-       1471,1481,1483,1487,1489,1493,1499,1511,
-       1523,1531,1543,1549,1553,1559,1567,1571,
-       1579,1583,1597,1601,1607,1609,1613,1619,
-       1621,1627,1637,1657,1663,1667,1669,1693,
-       1697,1699,1709,1721,1723,1733,1741,1747,
-       1753,1759,1777,1783,1787,1789,1801,1811,
-       1823,1831,1847,1861,1867,1871,1873,1877,
-       1879,1889,1901,1907,1913,1931,1933,1949,
-       1951,1973,1979,1987,1993,1997,1999,2003,
-       2011,2017,2027,2029,2039,2053,2063,2069,
-       2081,2083,2087,2089,2099,2111,2113,2129,
-       2131,2137,2141,2143,2153,2161,2179,2203,
-       2207,2213,2221,2237,2239,2243,2251,2267,
-       2269,2273,2281,2287,2293,2297,2309,2311,
-       2333,2339,2341,2347,2351,2357,2371,2377,
-       2381,2383,2389,2393,2399,2411,2417,2423,
-       2437,2441,2447,2459,2467,2473,2477,2503,
-       2521,2531,2539,2543,2549,2551,2557,2579,
-       2591,2593,2609,2617,2621,2633,2647,2657,
-       2659,2663,2671,2677,2683,2687,2689,2693,
-       2699,2707,2711,2713,2719,2729,2731,2741,
-       2749,2753,2767,2777,2789,2791,2797,2801,
-       2803,2819,2833,2837,2843,2851,2857,2861,
-       2879,2887,2897,2903,2909,2917,2927,2939,
-       2953,2957,2963,2969,2971,2999,3001,3011,
-       3019,3023,3037,3041,3049,3061,3067,3079,
-       3083,3089,3109,3119,3121,3137,3163,3167,
-       3169,3181,3187,3191,3203,3209,3217,3221,
-       3229,3251,3253,3257,3259,3271,3299,3301,
-       3307,3313,3319,3323,3329,3331,3343,3347,
-       3359,3361,3371,3373,3389,3391,3407,3413,
-       3433,3449,3457,3461,3463,3467,3469,3491,
-       3499,3511,3517,3527,3529,3533,3539,3541,
-       3547,3557,3559,3571,3581,3583,3593,3607,
-       3613,3617,3623,3631,3637,3643,3659,3671,
-       3673,3677,3691,3697,3701,3709,3719,3727,
-       3733,3739,3761,3767,3769,3779,3793,3797,
-       3803,3821,3823,3833,3847,3851,3853,3863,
-       3877,3881,3889,3907,3911,3917,3919,3923,
-       3929,3931,3943,3947,3967,3989,4001,4003,
-       4007,4013,4019,4021,4027,4049,4051,4057,
-       4073,4079,4091,4093,4099,4111,4127,4129,
-       4133,4139,4153,4157,4159,4177,4201,4211,
-       4217,4219,4229,4231,4241,4243,4253,4259,
-       4261,4271,4273,4283,4289,4297,4327,4337,
-       4339,4349,4357,4363,4373,4391,4397,4409,
-       4421,4423,4441,4447,4451,4457,4463,4481,
-       4483,4493,4507,4513,4517,4519,4523,4547,
-       4549,4561,4567,4583,4591,4597,4603,4621,
-       4637,4639,4643,4649,4651,4657,4663,4673,
-       4679,4691,4703,4721,4723,4729,4733,4751,
-       4759,4783,4787,4789,4793,4799,4801,4813,
-       4817,4831,4861,4871,4877,4889,4903,4909,
-       4919,4931,4933,4937,4943,4951,4957,4967,
-       4969,4973,4987,4993,4999,5003,5009,5011,
-       5021,5023,5039,5051,5059,5077,5081,5087,
-       5099,5101,5107,5113,5119,5147,5153,5167,
-       5171,5179,5189,5197,5209,5227,5231,5233,
-       5237,5261,5273,5279,5281,5297,5303,5309,
-       5323,5333,5347,5351,5381,5387,5393,5399,
-       5407,5413,5417,5419,5431,5437,5441,5443,
-       5449,5471,5477,5479,5483,5501,5503,5507,
-       5519,5521,5527,5531,5557,5563,5569,5573,
-       5581,5591,5623,5639,5641,5647,5651,5653,
-       5657,5659,5669,5683,5689,5693,5701,5711,
-       5717,5737,5741,5743,5749,5779,5783,5791,
-       5801,5807,5813,5821,5827,5839,5843,5849,
-       5851,5857,5861,5867,5869,5879,5881,5897,
-       5903,5923,5927,5939,5953,5981,5987,6007,
-       6011,6029,6037,6043,6047,6053,6067,6073,
-       6079,6089,6091,6101,6113,6121,6131,6133,
-       6143,6151,6163,6173,6197,6199,6203,6211,
-       6217,6221,6229,6247,6257,6263,6269,6271,
-       6277,6287,6299,6301,6311,6317,6323,6329,
-       6337,6343,6353,6359,6361,6367,6373,6379,
-       6389,6397,6421,6427,6449,6451,6469,6473,
-       6481,6491,6521,6529,6547,6551,6553,6563,
-       6569,6571,6577,6581,6599,6607,6619,6637,
-       6653,6659,6661,6673,6679,6689,6691,6701,
-       6703,6709,6719,6733,6737,6761,6763,6779,
-       6781,6791,6793,6803,6823,6827,6829,6833,
-       6841,6857,6863,6869,6871,6883,6899,6907,
-       6911,6917,6947,6949,6959,6961,6967,6971,
-       6977,6983,6991,6997,7001,7013,7019,7027,
-       7039,7043,7057,7069,7079,7103,7109,7121,
-       7127,7129,7151,7159,7177,7187,7193,7207,
-       7211,7213,7219,7229,7237,7243,7247,7253,
-       7283,7297,7307,7309,7321,7331,7333,7349,
-       7351,7369,7393,7411,7417,7433,7451,7457,
-       7459,7477,7481,7487,7489,7499,7507,7517,
-       7523,7529,7537,7541,7547,7549,7559,7561,
-       7573,7577,7583,7589,7591,7603,7607,7621,
-       7639,7643,7649,7669,7673,7681,7687,7691,
-       7699,7703,7717,7723,7727,7741,7753,7757,
-       7759,7789,7793,7817,7823,7829,7841,7853,
-       7867,7873,7877,7879,7883,7901,7907,7919,
-       7927,7933,7937,7949,7951,7963,7993,8009,
-       8011,8017,8039,8053,8059,8069,8081,8087,
-       8089,8093,8101,8111,8117,8123,8147,8161,
-       8167,8171,8179,8191,8209,8219,8221,8231,
-       8233,8237,8243,8263,8269,8273,8287,8291,
-       8293,8297,8311,8317,8329,8353,8363,8369,
-       8377,8387,8389,8419,8423,8429,8431,8443,
-       8447,8461,8467,8501,8513,8521,8527,8537,
-       8539,8543,8563,8573,8581,8597,8599,8609,
-       8623,8627,8629,8641,8647,8663,8669,8677,
-       8681,8689,8693,8699,8707,8713,8719,8731,
-       8737,8741,8747,8753,8761,8779,8783,8803,
-       8807,8819,8821,8831,8837,8839,8849,8861,
-       8863,8867,8887,8893,8923,8929,8933,8941,
-       8951,8963,8969,8971,8999,9001,9007,9011,
-       9013,9029,9041,9043,9049,9059,9067,9091,
-       9103,9109,9127,9133,9137,9151,9157,9161,
-       9173,9181,9187,9199,9203,9209,9221,9227,
-       9239,9241,9257,9277,9281,9283,9293,9311,
-       9319,9323,9337,9341,9343,9349,9371,9377,
-       9391,9397,9403,9413,9419,9421,9431,9433,
-       9437,9439,9461,9463,9467,9473,9479,9491,
-       9497,9511,9521,9533,9539,9547,9551,9587,
-       9601,9613,9619,9623,9629,9631,9643,9649,
-       9661,9677,9679,9689,9697,9719,9721,9733,
-       9739,9743,9749,9767,9769,9781,9787,9791,
-       9803,9811,9817,9829,9833,9839,9851,9857,
-       9859,9871,9883,9887,9901,9907,9923,9929,
-       9931,9941,9949,9967,9973,10007,10009,10037,
-       10039,10061,10067,10069,10079,10091,10093,10099,
-       10103,10111,10133,10139,10141,10151,10159,10163,
-       10169,10177,10181,10193,10211,10223,10243,10247,
-       10253,10259,10267,10271,10273,10289,10301,10303,
-       10313,10321,10331,10333,10337,10343,10357,10369,
-       10391,10399,10427,10429,10433,10453,10457,10459,
-       10463,10477,10487,10499,10501,10513,10529,10531,
-       10559,10567,10589,10597,10601,10607,10613,10627,
-       10631,10639,10651,10657,10663,10667,10687,10691,
-       10709,10711,10723,10729,10733,10739,10753,10771,
-       10781,10789,10799,10831,10837,10847,10853,10859,
-       10861,10867,10883,10889,10891,10903,10909,10937,
-       10939,10949,10957,10973,10979,10987,10993,11003,
-       11027,11047,11057,11059,11069,11071,11083,11087,
-       11093,11113,11117,11119,11131,11149,11159,11161,
-       11171,11173,11177,11197,11213,11239,11243,11251,
-       11257,11261,11273,11279,11287,11299,11311,11317,
-       11321,11329,11351,11353,11369,11383,11393,11399,
-       11411,11423,11437,11443,11447,11467,11471,11483,
-       11489,11491,11497,11503,11519,11527,11549,11551,
-       11579,11587,11593,11597,11617,11621,11633,11657,
-       11677,11681,11689,11699,11701,11717,11719,11731,
-       11743,11777,11779,11783,11789,11801,11807,11813,
-       11821,11827,11831,11833,11839,11863,11867,11887,
-       11897,11903,11909,11923,11927,11933,11939,11941,
-       11953,11959,11969,11971,11981,11987,12007,12011,
-       12037,12041,12043,12049,12071,12073,12097,12101,
-       12107,12109,12113,12119,12143,12149,12157,12161,
-       12163,12197,12203,12211,12227,12239,12241,12251,
-       12253,12263,12269,12277,12281,12289,12301,12323,
-       12329,12343,12347,12373,12377,12379,12391,12401,
-       12409,12413,12421,12433,12437,12451,12457,12473,
-       12479,12487,12491,12497,12503,12511,12517,12527,
-       12539,12541,12547,12553,12569,12577,12583,12589,
-       12601,12611,12613,12619,12637,12641,12647,12653,
-       12659,12671,12689,12697,12703,12713,12721,12739,
-       12743,12757,12763,12781,12791,12799,12809,12821,
-       12823,12829,12841,12853,12889,12893,12899,12907,
-       12911,12917,12919,12923,12941,12953,12959,12967,
-       12973,12979,12983,13001,13003,13007,13009,13033,
-       13037,13043,13049,13063,13093,13099,13103,13109,
-       13121,13127,13147,13151,13159,13163,13171,13177,
-       13183,13187,13217,13219,13229,13241,13249,13259,
-       13267,13291,13297,13309,13313,13327,13331,13337,
-       13339,13367,13381,13397,13399,13411,13417,13421,
-       13441,13451,13457,13463,13469,13477,13487,13499,
-       13513,13523,13537,13553,13567,13577,13591,13597,
-       13613,13619,13627,13633,13649,13669,13679,13681,
-       13687,13691,13693,13697,13709,13711,13721,13723,
-       13729,13751,13757,13759,13763,13781,13789,13799,
-       13807,13829,13831,13841,13859,13873,13877,13879,
-       13883,13901,13903,13907,13913,13921,13931,13933,
-       13963,13967,13997,13999,14009,14011,14029,14033,
-       14051,14057,14071,14081,14083,14087,14107,14143,
-       14149,14153,14159,14173,14177,14197,14207,14221,
-       14243,14249,14251,14281,14293,14303,14321,14323,
-       14327,14341,14347,14369,14387,14389,14401,14407,
-       14411,14419,14423,14431,14437,14447,14449,14461,
-       14479,14489,14503,14519,14533,14537,14543,14549,
-       14551,14557,14561,14563,14591,14593,14621,14627,
-       14629,14633,14639,14653,14657,14669,14683,14699,
-       14713,14717,14723,14731,14737,14741,14747,14753,
-       14759,14767,14771,14779,14783,14797,14813,14821,
-       14827,14831,14843,14851,14867,14869,14879,14887,
-       14891,14897,14923,14929,14939,14947,14951,14957,
-       14969,14983,15013,15017,15031,15053,15061,15073,
-       15077,15083,15091,15101,15107,15121,15131,15137,
-       15139,15149,15161,15173,15187,15193,15199,15217,
-       15227,15233,15241,15259,15263,15269,15271,15277,
-       15287,15289,15299,15307,15313,15319,15329,15331,
-       15349,15359,15361,15373,15377,15383,15391,15401,
-       15413,15427,15439,15443,15451,15461,15467,15473,
-       15493,15497,15511,15527,15541,15551,15559,15569,
-       15581,15583,15601,15607,15619,15629,15641,15643,
-       15647,15649,15661,15667,15671,15679,15683,15727,
-       15731,15733,15737,15739,15749,15761,15767,15773,
-       15787,15791,15797,15803,15809,15817,15823,15859,
-       15877,15881,15887,15889,15901,15907,15913,15919,
-       15923,15937,15959,15971,15973,15991,16001,16007,
-       16033,16057,16061,16063,16067,16069,16073,16087,
-       16091,16097,16103,16111,16127,16139,16141,16183,
-       16187,16189,16193,16217,16223,16229,16231,16249,
-       16253,16267,16273,16301,16319,16333,16339,16349,
-       16361,16363,16369,16381,16411,16417,16421,16427,
-       16433,16447,16451,16453,16477,16481,16487,16493,
-       16519,16529,16547,16553,16561,16567,16573,16603,
-       16607,16619,16631,16633,16649,16651,16657,16661,
-       16673,16691,16693,16699,16703,16729,16741,16747,
-       16759,16763,16787,16811,16823,16829,16831,16843,
-       16871,16879,16883,16889,16901,16903,16921,16927,
-       16931,16937,16943,16963,16979,16981,16987,16993,
-       17011,17021,17027,17029,17033,17041,17047,17053,
-       17077,17093,17099,17107,17117,17123,17137,17159,
-       17167,17183,17189,17191,17203,17207,17209,17231,
-       17239,17257,17291,17293,17299,17317,17321,17327,
-       17333,17341,17351,17359,17377,17383,17387,17389,
-       17393,17401,17417,17419,17431,17443,17449,17467,
-       17471,17477,17483,17489,17491,17497,17509,17519,
-       17539,17551,17569,17573,17579,17581,17597,17599,
-       17609,17623,17627,17657,17659,17669,17681,17683,
-       17707,17713,17729,17737,17747,17749,17761,17783,
-       17789,17791,17807,17827,17837,17839,17851,17863,
-#endif
-       };
diff --git a/package/network/services/ead/src/tinysrp/bn_shift.c b/package/network/services/ead/src/tinysrp/bn_shift.c
deleted file mode 100644 (file)
index f403720..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/* crypto/bn/bn_shift.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "bn_lcl.h"
-
-int BN_lshift(BIGNUM *r, const BIGNUM *a, int n)
-       {
-       int i,nw,lb,rb;
-       BN_ULONG *t,*f;
-       BN_ULONG l;
-
-       r->neg=a->neg;
-       if (bn_wexpand(r,a->top+(n/BN_BITS2)+1) == NULL) return(0);
-       nw=n/BN_BITS2;
-       lb=n%BN_BITS2;
-       rb=BN_BITS2-lb;
-       f=a->d;
-       t=r->d;
-       t[a->top+nw]=0;
-       if (lb == 0)
-               for (i=a->top-1; i>=0; i--)
-                       t[nw+i]=f[i];
-       else
-               for (i=a->top-1; i>=0; i--)
-                       {
-                       l=f[i];
-                       t[nw+i+1]|=(l>>rb)&BN_MASK2;
-                       t[nw+i]=(l<<lb)&BN_MASK2;
-                       }
-       memset(t,0,nw*sizeof(t[0]));
-/*      for (i=0; i<nw; i++)
-               t[i]=0;*/
-       r->top=a->top+nw+1;
-       bn_fix_top(r);
-       return(1);
-       }
-
-int BN_rshift(BIGNUM *r, BIGNUM *a, int n)
-       {
-       int i,j,nw,lb,rb;
-       BN_ULONG *t,*f;
-       BN_ULONG l,tmp;
-
-       nw=n/BN_BITS2;
-       rb=n%BN_BITS2;
-       lb=BN_BITS2-rb;
-       if (nw > a->top || a->top == 0)
-               {
-               BN_zero(r);
-               return(1);
-               }
-       if (r != a)
-               {
-               r->neg=a->neg;
-               if (bn_wexpand(r,a->top-nw+1) == NULL) return(0);
-               }
-
-       f= &(a->d[nw]);
-       t=r->d;
-       j=a->top-nw;
-       r->top=j;
-
-       if (rb == 0)
-               {
-               for (i=j+1; i > 0; i--)
-                       *(t++)= *(f++);
-               }
-       else
-               {
-               l= *(f++);
-               for (i=1; i<j; i++)
-                       {
-                       tmp =(l>>rb)&BN_MASK2;
-                       l= *(f++);
-                       *(t++) =(tmp|(l<<lb))&BN_MASK2;
-                       }
-               *(t++) =(l>>rb)&BN_MASK2;
-               }
-       *t=0;
-       bn_fix_top(r);
-       return(1);
-       }
diff --git a/package/network/services/ead/src/tinysrp/bn_sqr.c b/package/network/services/ead/src/tinysrp/bn_sqr.c
deleted file mode 100644 (file)
index 2d3db70..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/* crypto/bn/bn_sqr.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "bn_lcl.h"
-
-/* r must not be a */
-/* I've just gone over this and it is now %20 faster on x86 - eay - 27 Jun 96 */
-int BN_sqr(BIGNUM *r, BIGNUM *a, BN_CTX *ctx)
-       {
-       int max,al;
-       int ret = 0;
-       BIGNUM *tmp,*rr;
-
-#ifdef BN_COUNT
-printf("BN_sqr %d * %d\n",a->top,a->top);
-#endif
-       bn_check_top(a);
-
-       al=a->top;
-       if (al <= 0)
-               {
-               r->top=0;
-               return(1);
-               }
-
-       BN_CTX_start(ctx);
-       rr=(a != r) ? r : BN_CTX_get(ctx);
-       tmp=BN_CTX_get(ctx);
-       if (tmp == NULL) goto err;
-
-       max=(al+al);
-       if (bn_wexpand(rr,max+1) == NULL) goto err;
-
-       r->neg=0;
-       if (al == 4)
-               {
-#ifndef BN_SQR_COMBA
-               BN_ULONG t[8];
-               bn_sqr_normal(rr->d,a->d,4,t);
-#else
-               bn_sqr_comba4(rr->d,a->d);
-#endif
-               }
-       else if (al == 8)
-               {
-#ifndef BN_SQR_COMBA
-               BN_ULONG t[16];
-               bn_sqr_normal(rr->d,a->d,8,t);
-#else
-               bn_sqr_comba8(rr->d,a->d);
-#endif
-               }
-       else
-               {
-               if (bn_wexpand(tmp,max) == NULL) goto err;
-               bn_sqr_normal(rr->d,a->d,al,tmp->d);
-               }
-
-       rr->top=max;
-       if ((max > 0) && (rr->d[max-1] == 0)) rr->top--;
-       if (rr != r) BN_copy(r,rr);
-       ret = 1;
- err:
-       BN_CTX_end(ctx);
-       return(ret);
-       }
-
-/* tmp must have 2*n words */
-void bn_sqr_normal(BN_ULONG *r, BN_ULONG *a, int n, BN_ULONG *tmp)
-       {
-       int i,j,max;
-       BN_ULONG *ap,*rp;
-
-       max=n*2;
-       ap=a;
-       rp=r;
-       rp[0]=rp[max-1]=0;
-       rp++;
-       j=n;
-
-       if (--j > 0)
-               {
-               ap++;
-               rp[j]=bn_mul_words(rp,ap,j,ap[-1]);
-               rp+=2;
-               }
-
-       for (i=n-2; i>0; i--)
-               {
-               j--;
-               ap++;
-               rp[j]=bn_mul_add_words(rp,ap,j,ap[-1]);
-               rp+=2;
-               }
-
-       bn_add_words(r,r,r,max);
-
-       /* There will not be a carry */
-
-       bn_sqr_words(tmp,a,n);
-
-       bn_add_words(r,r,tmp,max);
-       }
diff --git a/package/network/services/ead/src/tinysrp/bn_word.c b/package/network/services/ead/src/tinysrp/bn_word.c
deleted file mode 100644 (file)
index 7820e08..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/* crypto/bn/bn_word.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include <stdio.h>
-#include "bn_lcl.h"
-
-int BN_add_word(BIGNUM *a, BN_ULONG w)
-       {
-       BN_ULONG l;
-       int i;
-
-       if (a->neg)
-               {
-               a->neg=0;
-               i=BN_sub_word(a,w);
-               if (!BN_is_zero(a))
-                       a->neg=!(a->neg);
-               return(i);
-               }
-       w&=BN_MASK2;
-       if (bn_wexpand(a,a->top+1) == NULL) return(0);
-       i=0;
-       for (;;)
-               {
-               l=(a->d[i]+(BN_ULONG)w)&BN_MASK2;
-               a->d[i]=l;
-               if (w > l)
-                       w=1;
-               else
-                       break;
-               i++;
-               }
-       if (i >= a->top)
-               a->top++;
-       return(1);
-       }
-
-int BN_sub_word(BIGNUM *a, BN_ULONG w)
-       {
-       int i;
-
-       if (BN_is_zero(a) || a->neg)
-               {
-               a->neg=0;
-               i=BN_add_word(a,w);
-               a->neg=1;
-               return(i);
-               }
-
-       w&=BN_MASK2;
-       if ((a->top == 1) && (a->d[0] < w))
-               {
-               a->d[0]=w-a->d[0];
-               a->neg=1;
-               return(1);
-               }
-       i=0;
-       for (;;)
-               {
-               if (a->d[i] >= w)
-                       {
-                       a->d[i]-=w;
-                       break;
-                       }
-               else
-                       {
-                       a->d[i]=(a->d[i]-w)&BN_MASK2;
-                       i++;
-                       w=1;
-                       }
-               }
-       if ((a->d[i] == 0) && (i == (a->top-1)))
-               a->top--;
-       return(1);
-       }
diff --git a/package/network/services/ead/src/tinysrp/clitest.c b/package/network/services/ead/src/tinysrp/clitest.c
deleted file mode 100644 (file)
index 338f41f..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#include <stdio.h>
-#include "t_defines.h"
-#include "t_pwd.h"
-#include "t_client.h"
-
-int
-main()
-{
-  int index;
-  struct t_client * tc;
-  struct t_preconf *tcp;
-  struct t_num s;
-  struct t_num B;
-  char username[MAXUSERLEN];
-  char hexbuf[MAXHEXPARAMLEN];
-  char buf1[MAXPARAMLEN], buf2[MAXPARAMLEN], buf3[MAXSALTLEN];
-  unsigned char cbuf[20];
-  struct t_num * A;
-  unsigned char * skey;
-  char pass[128];
-
-  printf("Enter username: ");
-  fgets(username, sizeof(username), stdin);
-  username[strlen(username) - 1] = '\0';
-  printf("Enter index (from server): ");
-  fgets(hexbuf, sizeof(hexbuf), stdin);
-  index = atoi(hexbuf);
-  tcp = t_getpreparam(index - 1);
-  printf("Enter salt (from server): ");
-  fgets(hexbuf, sizeof(hexbuf), stdin);
-  s.data = buf3;
-  s.len = t_fromb64(s.data, hexbuf);
-
-  tc = t_clientopen(username, &tcp->modulus, &tcp->generator, &s);
-  if (tc == 0) {
-    printf("invalid n, g\n");
-    exit(1);
-  }
-
-  A = t_clientgenexp(tc);
-  printf("A (to server): %s\n", t_tob64(hexbuf, A->data, A->len));
-
-  t_getpass(pass, 128, "Enter password:");
-  t_clientpasswd(tc, pass);
-
-  printf("Enter B (from server): ");
-  fgets(hexbuf, sizeof(hexbuf), stdin);
-  B.data = buf1;
-  B.len = t_fromb64(B.data, hexbuf);
-
-  skey = t_clientgetkey(tc, &B);
-  printf("Session key: %s\n", t_tohex(hexbuf, skey, 40));
-  printf("Response (to server): %s\n",
-    t_tohex(hexbuf, t_clientresponse(tc), RESPONSE_LEN));
-
-  printf("Enter server response: ");
-  fgets(hexbuf, sizeof(hexbuf), stdin);
-  hexbuf[strlen(hexbuf) - 1] = '\0';
-  t_fromhex(cbuf, hexbuf);
-
-  if (t_clientverify(tc, cbuf) == 0)
-    printf("Server authentication successful.\n");
-  else
-    printf("Server authentication failed.\n");
-
-  t_clientclose(tc);
-
-  return 0;
-}
diff --git a/package/network/services/ead/src/tinysrp/config.h.in b/package/network/services/ead/src/tinysrp/config.h.in
deleted file mode 100644 (file)
index a4b50c7..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/* config.h.in.  Generated automatically from configure.in by autoheader.  */
-
-/* Define if type char is unsigned and you are not using gcc.  */
-#ifndef __CHAR_UNSIGNED__
-#undef __CHAR_UNSIGNED__
-#endif
-
-/* Define to empty if the keyword does not work.  */
-#undef const
-
-/* Define as __inline if that's what the C compiler calls it.  */
-#undef inline
-
-/* Define as the return type of signal handlers (int or void).  */
-#undef RETSIGTYPE
-
-/* Define if you have the ANSI C header files.  */
-#undef STDC_HEADERS
-
-/* Define if you can safely include both <sys/time.h> and <time.h>.  */
-#undef TIME_WITH_SYS_TIME
-
-/* Define if your processor stores words with the most significant
-   byte first (like Motorola and SPARC, unlike Intel and VAX).  */
-#undef WORDS_BIGENDIAN
-
-#undef SHA1HANDSOFF
-
-#undef POSIX_TERMIOS
-
-#undef POSIX_SIGTYPE
-
-#undef volatile
-
-/* The number of bytes in a int.  */
-#undef SIZEOF_INT
-
-/* The number of bytes in a long.  */
-#undef SIZEOF_LONG
-
-/* The number of bytes in a long long.  */
-#undef SIZEOF_LONG_LONG
-
-/* The number of bytes in a short.  */
-#undef SIZEOF_SHORT
-
-/* Define if you have the memcpy function.  */
-#undef HAVE_MEMCPY
-
-/* Define if you have the sigaction function.  */
-#undef HAVE_SIGACTION
-
-/* Define if you have the strchr function.  */
-#undef HAVE_STRCHR
-
-/* Define if you have the <sgtty.h> header file.  */
-#undef HAVE_SGTTY_H
-
-/* Define if you have the <sys/ioctl.h> header file.  */
-#undef HAVE_SYS_IOCTL_H
-
-/* Define if you have the <sys/time.h> header file.  */
-#undef HAVE_SYS_TIME_H
-
-/* Define if you have the <termio.h> header file.  */
-#undef HAVE_TERMIO_H
-
-/* Define if you have the <termios.h> header file.  */
-#undef HAVE_TERMIOS_H
-
-/* Define if you have the <unistd.h> header file.  */
-#undef HAVE_UNISTD_H
-
-/* Name of package */
-#undef PACKAGE
-
-/* Version number of package */
-#undef VERSION
-
diff --git a/package/network/services/ead/src/tinysrp/configure b/package/network/services/ead/src/tinysrp/configure
deleted file mode 100755 (executable)
index 6ee76bf..0000000
+++ /dev/null
@@ -1,2421 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13 
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-ac_prev=
-for ac_option
-do
-
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval "$ac_prev=\$ac_option"
-    ac_prev=
-    continue
-  fi
-
-  case "$ac_option" in
-  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) ac_optarg= ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case "$ac_option" in
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir="$ac_optarg" ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build="$ac_optarg" ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file="$ac_optarg" ;;
-
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir="$ac_optarg" ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
-    # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-    fi
-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-    eval "enable_${ac_feature}=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
-    # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-    fi
-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-    case "$ac_option" in
-      *=*) ;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_${ac_feature}='$ac_optarg'" ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix="$ac_optarg" ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he)
-    # Omit some internal or obsolete options to make the list less imposing.
-    # This message is too long to be a string in the A/UX 3.1 sh.
-    cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
-  --cache-file=FILE       cache test results in FILE
-  --help                  print this message
-  --no-create             do not create output files
-  --quiet, --silent       do not print \`checking...' messages
-  --version               print the version of autoconf that created configure
-Directory and file names:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [same as prefix]
-  --bindir=DIR            user executables in DIR [EPREFIX/bin]
-  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
-  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
-  --datadir=DIR           read-only architecture-independent data in DIR
-                          [PREFIX/share]
-  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
-                          [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
-  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
-  --includedir=DIR        C header files in DIR [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
-  --infodir=DIR           info documentation in DIR [PREFIX/info]
-  --mandir=DIR            man documentation in DIR [PREFIX/man]
-  --srcdir=DIR            find the sources in DIR [configure dir or ..]
-  --program-prefix=PREFIX prepend PREFIX to installed program names
-  --program-suffix=SUFFIX append SUFFIX to installed program names
-  --program-transform-name=PROGRAM
-                          run sed PROGRAM on installed program names
-EOF
-    cat << EOF
-Host type:
-  --build=BUILD           configure for building on BUILD [BUILD=HOST]
-  --host=HOST             configure for HOST [guessed]
-  --target=TARGET         configure for TARGET [TARGET=HOST]
-Features and packages:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --x-includes=DIR        X include files are in DIR
-  --x-libraries=DIR       X library files are in DIR
-EOF
-    if test -n "$ac_help"; then
-      echo "--enable and --with options recognized:$ac_help"
-    fi
-    exit 0 ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host="$ac_optarg" ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir="$ac_optarg" ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir="$ac_optarg" ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir="$ac_optarg" ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir="$ac_optarg" ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir="$ac_optarg" ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir="$ac_optarg" ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir="$ac_optarg" ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix="$ac_optarg" ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix="$ac_optarg" ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix="$ac_optarg" ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name="$ac_optarg" ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir="$ac_optarg" ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir="$ac_optarg" ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site="$ac_optarg" ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir="$ac_optarg" ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir="$ac_optarg" ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target="$ac_optarg" ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.13"
-    exit 0 ;;
-
-  -with-* | --with-*)
-    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
-    # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-    fi
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case "$ac_option" in
-      *=*) ;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_${ac_package}='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
-    # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-    fi
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    eval "with_${ac_package}=no" ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes="$ac_optarg" ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries="$ac_optarg" ;;
-
-  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
-    ;;
-
-  *)
-    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
-      echo "configure: warning: $ac_option: invalid host type" 1>&2
-    fi
-    if test "x$nonopt" != xNONE; then
-      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
-    fi
-    nonopt="$ac_option"
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
-  exec 6>/dev/null
-else
-  exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
-  case "$ac_arg" in
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c) ;;
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
-  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
-  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
-  esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set.  These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=t_pwd.h
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then its parent.
-  ac_prog=$0
-  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
-  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
-  srcdir=$ac_confdir
-  if test ! -r $srcdir/$ac_unique_file; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
-  else
-    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
-  fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
-fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    echo "loading site script $ac_site_file"
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  echo "loading cache $cache_file"
-  . $cache_file
-else
-  echo "creating cache $cache_file"
-  > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-ac_exeext=
-ac_objext=o
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
-  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
-  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
-    ac_n= ac_c='
-' ac_t='       '
-  else
-    ac_n=-n ac_c= ac_t=
-  fi
-else
-  ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-  if test -f $ac_dir/install-sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f $ac_dir/install.sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:559: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-    IFS="${IFS=        }"; ac_save_IFS="$IFS"; IFS=":"
-  for ac_dir in $PATH; do
-    # Account for people who put trailing slashes in PATH elements.
-    case "$ac_dir/" in
-    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
-    *)
-      # OSF1 and SCO ODT 3.0 have their own names for install.
-      # Don't use installbsd from OSF since it installs stuff as root
-      # by default.
-      for ac_prog in ginstall scoinst install; do
-        if test -f $ac_dir/$ac_prog; then
-         if test $ac_prog = install &&
-            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
-           # AIX install.  It has an incompatible calling convention.
-           :
-         else
-           ac_cv_path_install="$ac_dir/$ac_prog -c"
-           break 2
-         fi
-       fi
-      done
-      ;;
-    esac
-  done
-  IFS="$ac_save_IFS"
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL="$ac_cv_path_install"
-  else
-    # As a last resort, use the slow shell script.  We don't cache a
-    # path for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the path is relative.
-    INSTALL="$ac_install_sh"
-  fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:612: checking whether build environment is sane" >&5
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
-   fi
-   if test "$*" != "X $srcdir/configure conftestfile" \
-      && test "$*" != "X conftestfile $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      { echo "configure: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" 1>&2; exit 1; }
-   fi
-
-   test "$2" = conftestfile
-   )
-then
-   # Ok.
-   :
-else
-   { echo "configure: error: newly created file is older than distributed files!
-Check your system clock" 1>&2; exit 1; }
-fi
-rm -f conftest*
-echo "$ac_t""yes" 1>&6
-if test "$program_transform_name" = s,x,x,; then
-  program_transform_name=
-else
-  # Double any \ or $.  echo might interpret backslashes.
-  cat <<\EOF_SED > conftestsed
-s,\\,\\\\,g; s,\$,$$,g
-EOF_SED
-  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
-  rm -f conftestsed
-fi
-test "$program_prefix" != NONE &&
-  program_transform_name="s,^,${program_prefix},; $program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
-  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:669: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftestmake <<\EOF
-all:
-       @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
-  eval ac_cv_prog_make_${ac_make}_set=yes
-else
-  eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  SET_MAKE=
-else
-  echo "$ac_t""no" 1>&6
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-
-
-PACKAGE=libtinysrp
-
-VERSION=0.7.5
-
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
-fi
-cat >> confdefs.h <<EOF
-#define PACKAGE "$PACKAGE"
-EOF
-
-cat >> confdefs.h <<EOF
-#define VERSION "$VERSION"
-EOF
-
-
-
-missing_dir=`cd $ac_aux_dir && pwd`
-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:716: checking for working aclocal" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
-   ACLOCAL=aclocal
-   echo "$ac_t""found" 1>&6
-else
-   ACLOCAL="$missing_dir/missing aclocal"
-   echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:729: checking for working autoconf" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (autoconf --version) < /dev/null > /dev/null 2>&1; then
-   AUTOCONF=autoconf
-   echo "$ac_t""found" 1>&6
-else
-   AUTOCONF="$missing_dir/missing autoconf"
-   echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:742: checking for working automake" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (automake --version) < /dev/null > /dev/null 2>&1; then
-   AUTOMAKE=automake
-   echo "$ac_t""found" 1>&6
-else
-   AUTOMAKE="$missing_dir/missing automake"
-   echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:755: checking for working autoheader" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (autoheader --version) < /dev/null > /dev/null 2>&1; then
-   AUTOHEADER=autoheader
-   echo "$ac_t""found" 1>&6
-else
-   AUTOHEADER="$missing_dir/missing autoheader"
-   echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:768: checking for working makeinfo" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
-   MAKEINFO=makeinfo
-   echo "$ac_t""found" 1>&6
-else
-   MAKEINFO="$missing_dir/missing makeinfo"
-   echo "$ac_t""missing" 1>&6
-fi
-
-
-
-test "$CFLAGS" = "" && CFLAGS="-O2"
-
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:788: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CC="gcc"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:818: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_prog_rejected=no
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
-        ac_prog_rejected=yes
-       continue
-      fi
-      ac_cv_prog_CC="cc"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# -gt 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    set dummy "$ac_dir/$ac_word" "$@"
-    shift
-    ac_cv_prog_CC="$@"
-  fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-  if test -z "$CC"; then
-    case "`uname -s`" in
-    *win32* | *WIN32*)
-      # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:869: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CC="cl"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
- ;;
-    esac
-  fi
-  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:901: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-cat > conftest.$ac_ext << EOF
-
-#line 912 "configure"
-#include "confdefs.h"
-
-main(){return(0);}
-EOF
-if { (eval echo configure:917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  ac_cv_prog_cc_works=yes
-  # If we can't run a trivial program, we are probably using a cross compiler.
-  if (./conftest; exit) 2>/dev/null; then
-    ac_cv_prog_cc_cross=no
-  else
-    ac_cv_prog_cc_cross=yes
-  fi
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  ac_cv_prog_cc_works=no
-fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
-  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:943: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:948: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.c <<EOF
-#ifdef __GNUC__
-  yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:957: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
-  ac_cv_prog_gcc=yes
-else
-  ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:976: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
-  ac_cv_prog_cc_g=yes
-else
-  ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1019: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-    IFS="${IFS=        }"; ac_save_IFS="$IFS"; IFS=":"
-  for ac_dir in $PATH; do
-    # Account for people who put trailing slashes in PATH elements.
-    case "$ac_dir/" in
-    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
-    *)
-      # OSF1 and SCO ODT 3.0 have their own names for install.
-      # Don't use installbsd from OSF since it installs stuff as root
-      # by default.
-      for ac_prog in ginstall scoinst install; do
-        if test -f $ac_dir/$ac_prog; then
-         if test $ac_prog = install &&
-            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
-           # AIX install.  It has an incompatible calling convention.
-           :
-         else
-           ac_cv_path_install="$ac_dir/$ac_prog -c"
-           break 2
-         fi
-       fi
-      done
-      ;;
-    esac
-  done
-  IFS="$ac_save_IFS"
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL="$ac_cv_path_install"
-  else
-    # As a last resort, use the slow shell script.  We don't cache a
-    # path for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the path is relative.
-    INSTALL="$ac_install_sh"
-  fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1072: checking whether ln -s works" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  rm -f conftestdata
-if ln -s X conftestdata 2>/dev/null
-then
-  rm -f conftestdata
-  ac_cv_prog_LN_S="ln -s"
-else
-  ac_cv_prog_LN_S=ln
-fi
-fi
-LN_S="$ac_cv_prog_LN_S"
-if test "$ac_cv_prog_LN_S" = "ln -s"; then
-  echo "$ac_t""yes" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-# Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1095: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_RANLIB="ranlib"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
-  echo "$ac_t""$RANLIB" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-if test "$program_transform_name" = s,x,x,; then
-  program_transform_name=
-else
-  # Double any \ or $.  echo might interpret backslashes.
-  cat <<\EOF_SED > conftestsed
-s,\\,\\\\,g; s,\$,$$,g
-EOF_SED
-  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
-  rm -f conftestsed
-fi
-test "$program_prefix" != NONE &&
-  program_transform_name="s,^,${program_prefix},; $program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
-  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-
-
-
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1144: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-    # This must be in double quotes, not single quotes, because CPP may get
-  # substituted into the Makefile and "${CC-cc}" will confuse make.
-  CPP="${CC-cc} -E"
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp.
-  cat > conftest.$ac_ext <<EOF
-#line 1159 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1165: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  :
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -E -traditional-cpp"
-  cat > conftest.$ac_ext <<EOF
-#line 1176 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1182: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  :
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -nologo -E"
-  cat > conftest.$ac_ext <<EOF
-#line 1193 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1199: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  :
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-  ac_cv_prog_CPP="$CPP"
-fi
-  CPP="$ac_cv_prog_CPP"
-else
-  ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1224: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1229 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1237: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  ac_cv_header_stdc=yes
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1254 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "memchr" >/dev/null 2>&1; then
-  :
-else
-  rm -rf conftest*
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1272 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "free" >/dev/null 2>&1; then
-  :
-else
-  rm -rf conftest*
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
-  :
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1293 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
-
-EOF
-if { (eval echo configure:1304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  :
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
-  cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-for ac_hdr in sgtty.h sys/ioctl.h sys/time.h termio.h termios.h unistd.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1331: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1336 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1341: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-
-
-echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1370: checking for working const" >&5
-if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1375 "configure"
-#include "confdefs.h"
-
-int main() {
-
-/* Ultrix mips cc rejects this.  */
-typedef int charset[2]; const charset x;
-/* SunOS 4.1.1 cc rejects this.  */
-char const *const *ccp;
-char **p;
-/* NEC SVR4.0.2 mips cc rejects this.  */
-struct point {int x, y;};
-static struct point const zero = {0,0};
-/* AIX XL C 1.02.0.0 rejects this.
-   It does not let you subtract one const X* pointer from another in an arm
-   of an if-expression whose if-part is not a constant expression */
-const char *g = "string";
-ccp = &g + (g ? g-g : 0);
-/* HPUX 7.0 cc rejects these. */
-++ccp;
-p = (char**) ccp;
-ccp = (char const *const *) p;
-{ /* SCO 3.2v4 cc rejects this.  */
-  char *t;
-  char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-  *t++ = 0;
-}
-{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-  int x[] = {25, 17};
-  const int *foo = &x[0];
-  ++foo;
-}
-{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-  typedef const int *iptr;
-  iptr p = 0;
-  ++p;
-}
-{ /* AIX XL C 1.02.0.0 rejects this saying
-     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-  struct s { int j; const int *ap[3]; };
-  struct s *b; b->j = 5;
-}
-{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-  const int foo = 10;
-}
-
-; return 0; }
-EOF
-if { (eval echo configure:1424: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_c_const=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_c_const=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_c_const" 1>&6
-if test $ac_cv_c_const = no; then
-  cat >> confdefs.h <<\EOF
-#define const 
-EOF
-
-fi
-
-echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:1445: checking for inline" >&5
-if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
-  cat > conftest.$ac_ext <<EOF
-#line 1452 "configure"
-#include "confdefs.h"
-
-int main() {
-} $ac_kw foo() {
-; return 0; }
-EOF
-if { (eval echo configure:1459: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_c_inline=$ac_kw; break
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-done
-
-fi
-
-echo "$ac_t""$ac_cv_c_inline" 1>&6
-case "$ac_cv_c_inline" in
-  inline | yes) ;;
-  no) cat >> confdefs.h <<\EOF
-#define inline 
-EOF
- ;;
-  *)  cat >> confdefs.h <<EOF
-#define inline $ac_cv_c_inline
-EOF
- ;;
-esac
-
-echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:1485: checking whether time.h and sys/time.h may both be included" >&5
-if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1490 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-int main() {
-struct tm *tp;
-; return 0; }
-EOF
-if { (eval echo configure:1499: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_header_time=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_header_time=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_time" 1>&6
-if test $ac_cv_header_time = yes; then
-  cat >> confdefs.h <<\EOF
-#define TIME_WITH_SYS_TIME 1
-EOF
-
-fi
-
-echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:1520: checking whether byte ordering is bigendian" >&5
-if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_cv_c_bigendian=unknown
-# See if sys/param.h defines the BYTE_ORDER macro.
-cat > conftest.$ac_ext <<EOF
-#line 1527 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/param.h>
-int main() {
-
-#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
- bogus endian macros
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:1538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-cat > conftest.$ac_ext <<EOF
-#line 1542 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/param.h>
-int main() {
-
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:1553: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_c_bigendian=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_c_bigendian=no
-fi
-rm -f conftest*
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-if test $ac_cv_c_bigendian = unknown; then
-if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1573 "configure"
-#include "confdefs.h"
-main () {
-  /* Are we little or big endian?  From Harbison&Steele.  */
-  union
-  {
-    long l;
-    char c[sizeof (long)];
-  } u;
-  u.l = 1;
-  exit (u.c[sizeof (long) - 1] == 1);
-}
-EOF
-if { (eval echo configure:1586: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_c_bigendian=no
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_c_bigendian=yes
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_c_bigendian" 1>&6
-if test $ac_cv_c_bigendian = yes; then
-  cat >> confdefs.h <<\EOF
-#define WORDS_BIGENDIAN 1
-EOF
-
-fi
-
-echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:1610: checking size of short" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1618 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  fprintf(f, "%d\n", sizeof(short));
-  exit(0);
-}
-EOF
-if { (eval echo configure:1629: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_sizeof_short=`cat conftestval`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_sizeof_short=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_short" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_SHORT $ac_cv_sizeof_short
-EOF
-
-
-echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:1649: checking size of int" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1657 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  fprintf(f, "%d\n", sizeof(int));
-  exit(0);
-}
-EOF
-if { (eval echo configure:1668: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_sizeof_int=`cat conftestval`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_sizeof_int=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_int" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_INT $ac_cv_sizeof_int
-EOF
-
-
-echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:1688: checking size of long" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1696 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  fprintf(f, "%d\n", sizeof(long));
-  exit(0);
-}
-EOF
-if { (eval echo configure:1707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_sizeof_long=`cat conftestval`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_sizeof_long=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_long" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_LONG $ac_cv_sizeof_long
-EOF
-
-
-echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:1727: checking size of long long" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1735 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
-  FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
-  fprintf(f, "%d\n", sizeof(long long));
-  exit(0);
-}
-EOF
-if { (eval echo configure:1746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_sizeof_long_long=`cat conftestval`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_sizeof_long_long=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_long_long" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
-EOF
-
-
-cat > conftest.$ac_ext <<EOF
-#line 1766 "configure"
-#include "confdefs.h"
-
-int main() {
-volatile int i;
-; return 0; }
-EOF
-if { (eval echo configure:1773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  :
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cat >> confdefs.h <<\EOF
-#define volatile 
-EOF
-
-fi
-rm -f conftest*
-echo $ac_n "checking whether char is unsigned""... $ac_c" 1>&6
-echo "configure:1786: checking whether char is unsigned" >&5
-if eval "test \"`echo '$''{'ac_cv_c_char_unsigned'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$GCC" = yes; then
-  # GCC predefines this symbol on systems where it applies.
-cat > conftest.$ac_ext <<EOF
-#line 1793 "configure"
-#include "confdefs.h"
-#ifdef __CHAR_UNSIGNED__
-  yes
-#endif
-
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "yes" >/dev/null 2>&1; then
-  rm -rf conftest*
-  ac_cv_c_char_unsigned=yes
-else
-  rm -rf conftest*
-  ac_cv_c_char_unsigned=no
-fi
-rm -f conftest*
-
-else
-if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1815 "configure"
-#include "confdefs.h"
-/* volatile prevents gcc2 from optimizing the test away on sparcs.  */
-#if !defined(__STDC__) || __STDC__ != 1
-#define volatile
-#endif
-main() {
-  volatile char c = 255; exit(c < 0);
-}
-EOF
-if { (eval echo configure:1825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  ac_cv_c_char_unsigned=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_c_char_unsigned=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_c_char_unsigned" 1>&6
-if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
-  cat >> confdefs.h <<\EOF
-#define __CHAR_UNSIGNED__ 1
-EOF
-
-fi
-
-
-if test "$ac_cv_c_char_unsigned" = "yes"; then
-  signed=-signed
-fi
-
-
-for ac_func in sigaction strchr memcpy
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1857: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1862 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:1885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-
-echo $ac_n "checking POSIX signal handlers""... $ac_c" 1>&6
-echo "configure:1911: checking POSIX signal handlers" >&5
-if eval "test \"`echo '$''{'ac_cv_has_posix_signals'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1916 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-extern void (*signal ()) ();
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:1928: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_has_posix_signals=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_has_posix_signals=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_has_posix_signals" 1>&6
-if test $ac_cv_has_posix_signals = yes; then
-   cat >> confdefs.h <<\EOF
-#define RETSIGTYPE void
-EOF
- cat >> confdefs.h <<\EOF
-#define POSIX_SIGTYPE 1
-EOF
-
-else
-  if test $ac_cv_type_signal = void; then
-     cat >> confdefs.h <<\EOF
-#define RETSIGTYPE void
-EOF
-
-  else
-     cat >> confdefs.h <<\EOF
-#define RETSIGTYPE int
-EOF
-
-  fi
-fi
-ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for termios.h""... $ac_c" 1>&6
-echo "configure:1964: checking for termios.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1969 "configure"
-#include "confdefs.h"
-#include <termios.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1974: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  echo $ac_n "checking for cfsetispeed""... $ac_c" 1>&6
-echo "configure:1991: checking for cfsetispeed" >&5
-if eval "test \"`echo '$''{'ac_cv_func_cfsetispeed'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1996 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char cfsetispeed(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char cfsetispeed();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_cfsetispeed) || defined (__stub___cfsetispeed)
-choke me
-#else
-cfsetispeed();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:2019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_cfsetispeed=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_cfsetispeed=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'cfsetispeed`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
-#define POSIX_TERMIOS 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-
-
-
-cat >> confdefs.h <<\EOF
-#define SHA1HANDSOFF 1
-EOF
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs.  It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already.  You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
-  case `(ac_space=' '; set | grep ac_space) 2>&1` in
-  *ac_space=\ *)
-    # `set' does not quote correctly, so add quotes (double-quote substitution
-    # turns \\\\ into \\, and sed turns \\ into \).
-    sed -n \
-      -e "s/'/'\\\\''/g" \
-      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
-    ;;
-  *)
-    # `set' quotes correctly as required by POSIX, so do not add quotes.
-    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
-    ;;
-  esac >> confcache
-if cmp -s $cache_file confcache; then
-  :
-else
-  if test -w $cache_file; then
-    echo "updating cache $cache_file"
-    cat confcache > $cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[        ]*VPATH[        ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
-  case "\$ac_option" in
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
-    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.13"
-    exit 0 ;;
-  -help | --help | --hel | --he | --h)
-    echo "\$ac_cs_usage"; exit 0 ;;
-  *) echo "\$ac_cs_usage"; exit 1 ;;
-  esac
-done
-
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
-
-trap 'rm -fr `echo "Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@PACKAGE@%$PACKAGE%g
-s%@VERSION@%$VERSION%g
-s%@ACLOCAL@%$ACLOCAL%g
-s%@AUTOCONF@%$AUTOCONF%g
-s%@AUTOMAKE@%$AUTOMAKE%g
-s%@AUTOHEADER@%$AUTOHEADER%g
-s%@MAKEINFO@%$MAKEINFO%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@CC@%$CC%g
-s%@LN_S@%$LN_S%g
-s%@RANLIB@%$RANLIB%g
-s%@CPP@%$CPP%g
-s%@signed@%$signed%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
-  if test $ac_beg -gt 1; then
-    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
-  else
-    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
-  fi
-  if test ! -s conftest.s$ac_file; then
-    ac_more_lines=false
-    rm -f conftest.s$ac_file
-  else
-    if test -z "$ac_sed_cmds"; then
-      ac_sed_cmds="sed -f conftest.s$ac_file"
-    else
-      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
-    fi
-    ac_file=`expr $ac_file + 1`
-    ac_beg=$ac_end
-    ac_end=`expr $ac_end + $ac_max_sed_cmds`
-  fi
-done
-if test -z "$ac_sed_cmds"; then
-  ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case "$ac_file" in
-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-  *) ac_file_in="${ac_file}.in" ;;
-  esac
-
-  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
-  # Remove last slash and all that follows it.  Not all systems have dirname.
-  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
-  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-    # The file is in a subdirectory.
-    test ! -d "$ac_dir" && mkdir "$ac_dir"
-    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
-    # A "../" for each directory in $ac_dir_suffix.
-    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
-  else
-    ac_dir_suffix= ac_dots=
-  fi
-
-  case "$ac_given_srcdir" in
-  .)  srcdir=.
-      if test -z "$ac_dots"; then top_srcdir=.
-      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
-  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
-  *) # Relative path.
-    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
-    top_srcdir="$ac_dots$ac_given_srcdir" ;;
-  esac
-
-  case "$ac_given_INSTALL" in
-  [/$]*) INSTALL="$ac_given_INSTALL" ;;
-  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
-  esac
-
-  echo creating "$ac_file"
-  rm -f "$ac_file"
-  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
-  case "$ac_file" in
-  *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
-  *) ac_comsub= ;;
-  esac
-
-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-  sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([  ]*\)#\([        ]*define[       ][      ]*\)'
-ac_dB='\([     ][      ]*\)[^  ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
-ac_uB='\([     ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
-  CONFIG_HEADERS="config.h"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case "$ac_file" in
-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-  *) ac_file_in="${ac_file}.in" ;;
-  esac
-
-  echo creating $ac_file
-
-  rm -f conftest.frag conftest.in conftest.out
-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-  cat $ac_file_inputs > conftest.in
-
-EOF
-
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h.  And first:
-# Protect against being on the right side of a sed subst in config.status.
-# Protect against being in an unquoted here document in config.status.
-rm -f conftest.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
-
-# This sed command replaces #undef with comments.  This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >> conftest.vals <<\EOF
-s%^[   ]*#[    ]*undef[        ][      ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-
-rm -f conftest.tail
-while :
-do
-  ac_lines=`grep -c . conftest.vals`
-  # grep -c gives empty output for an empty file on some AIX systems.
-  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
-  # Write a limited-size here document to conftest.frag.
-  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
-  echo 'CEOF
-  sed -f conftest.frag conftest.in > conftest.out
-  rm -f conftest.in
-  mv conftest.out conftest.in
-' >> $CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
-  rm -f conftest.vals
-  mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-cat >> $CONFIG_STATUS <<\EOF
-  rm -f conftest.frag conftest.h
-  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
-  cat conftest.in >> conftest.h
-  rm -f conftest.in
-  if cmp -s $ac_file conftest.h 2>/dev/null; then
-    echo "$ac_file is unchanged"
-    rm -f conftest.h
-  else
-    # Remove last slash and all that follows it.  Not all systems have dirname.
-      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
-      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-      # The file is in a subdirectory.
-      test ! -d "$ac_dir" && mkdir "$ac_dir"
-    fi
-    rm -f $ac_file
-    mv conftest.h $ac_file
-  fi
-fi; done
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
diff --git a/package/network/services/ead/src/tinysrp/configure.in b/package/network/services/ead/src/tinysrp/configure.in
deleted file mode 100644 (file)
index 627d15a..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-
-AC_INIT(t_pwd.h)
-AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(libtinysrp, 0.7.5)
-
-test "$CFLAGS" = "" && CFLAGS="-O2"
-
-dnl Checks for programs.
-
-AC_PROG_CC
-AC_PROG_INSTALL
-AC_PROG_LN_S
-AC_PROG_RANLIB
-AC_ARG_PROGRAM
-
-dnl Checks for header files.
-
-AC_HEADER_STDC
-AC_CHECK_HEADERS(sgtty.h sys/ioctl.h sys/time.h termio.h termios.h unistd.h)
-
-dnl Checks for typedefs, structures, and compiler characteristics.
-
-AC_C_CONST
-AC_C_INLINE
-AC_HEADER_TIME
-AC_C_BIGENDIAN
-AC_CHECK_SIZEOF(short)
-AC_CHECK_SIZEOF(int)
-AC_CHECK_SIZEOF(long)
-AC_CHECK_SIZEOF(long long)
-AC_TRY_COMPILE(, [volatile int i;], , AC_DEFINE(volatile, ))
-AC_C_CHAR_UNSIGNED
-
-AC_SUBST(signed)dnl
-if test "$ac_cv_c_char_unsigned" = "yes"; then
-  signed=-signed
-fi
-
-dnl Checks for library functions.
-
-AC_CHECK_FUNCS(sigaction strchr memcpy)
-TYPE_SIGNAL
-AC_HEADER_CHECK(termios.h,AC_FUNC_CHECK(cfsetispeed,AC_DEFINE(POSIX_TERMIOS)))
-
-dnl User options
-
-dnl Some defines for now.
-
-AC_DEFINE(SHA1HANDSOFF)
-
-AC_OUTPUT(Makefile)
diff --git a/package/network/services/ead/src/tinysrp/install-sh b/package/network/services/ead/src/tinysrp/install-sh
deleted file mode 100755 (executable)
index e843669..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission.  M.I.T. makes no representations about the
-# suitability of this software for any purpose.  It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
-    case $1 in
-       -c) instcmd="$cpprog"
-           shift
-           continue;;
-
-       -d) dir_arg=true
-           shift
-           continue;;
-
-       -m) chmodcmd="$chmodprog $2"
-           shift
-           shift
-           continue;;
-
-       -o) chowncmd="$chownprog $2"
-           shift
-           shift
-           continue;;
-
-       -g) chgrpcmd="$chgrpprog $2"
-           shift
-           shift
-           continue;;
-
-       -s) stripcmd="$stripprog"
-           shift
-           continue;;
-
-       -t=*) transformarg=`echo $1 | sed 's/-t=//'`
-           shift
-           continue;;
-
-       -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-           shift
-           continue;;
-
-       *)  if [ x"$src" = x ]
-           then
-               src=$1
-           else
-               # this colon is to work around a 386BSD /bin/sh bug
-               :
-               dst=$1
-           fi
-           shift
-           continue;;
-    esac
-done
-
-if [ x"$src" = x ]
-then
-       echo "install:  no input file specified"
-       exit 1
-else
-       true
-fi
-
-if [ x"$dir_arg" != x ]; then
-       dst=$src
-       src=""
-       
-       if [ -d $dst ]; then
-               instcmd=:
-       else
-               instcmd=mkdir
-       fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
-# if $src (and thus $dsttmp) contains '*'.
-
-       if [ -f $src -o -d $src ]
-       then
-               true
-       else
-               echo "install:  $src does not exist"
-               exit 1
-       fi
-       
-       if [ x"$dst" = x ]
-       then
-               echo "install:  no destination specified"
-               exit 1
-       else
-               true
-       fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-       if [ -d $dst ]
-       then
-               dst="$dst"/`basename $src`
-       else
-               true
-       fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-#  this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='   
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
-       pathcomp="${pathcomp}${1}"
-       shift
-
-       if [ ! -d "${pathcomp}" ] ;
-        then
-               $mkdirprog "${pathcomp}"
-       else
-               true
-       fi
-
-       pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
-       $doit $instcmd $dst &&
-
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
-       if [ x"$transformarg" = x ] 
-       then
-               dstfile=`basename $dst`
-       else
-               dstfile=`basename $dst $transformbasename | 
-                       sed $transformarg`$transformbasename
-       fi
-
-# don't allow the sed command to completely eliminate the filename
-
-       if [ x"$dstfile" = x ] 
-       then
-               dstfile=`basename $dst`
-       else
-               true
-       fi
-
-# Make a temp file name in the proper directory.
-
-       dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
-       $doit $instcmd $src $dsttmp &&
-
-       trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing.  If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
-       $doit $rmcmd -f $dstdir/$dstfile &&
-       $doit $mvcmd $dsttmp $dstdir/$dstfile 
-
-fi &&
-
-
-exit 0
diff --git a/package/network/services/ead/src/tinysrp/missing b/package/network/services/ead/src/tinysrp/missing
deleted file mode 100755 (executable)
index a6abd06..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
-# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program 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 General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-if test $# -eq 0; then
-  echo 1>&2 "Try \`$0 --help' for more information"
-  exit 1
-fi
-
-case "$1" in
-
-  -h|--h|--he|--hel|--help)
-    echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
-
-Options:
-  -h, --help      display this help and exit
-  -v, --version   output version information and exit
-
-Supported PROGRAM values:
-  aclocal      touch file \`aclocal.m4'
-  autoconf     touch file \`configure'
-  autoheader   touch file \`config.h.in'
-  automake     touch all \`Makefile.in' files
-  bison        touch file \`y.tab.c'
-  makeinfo     touch the output file
-  yacc         touch file \`y.tab.c'"
-    ;;
-
-  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
-    echo "missing - GNU libit 0.0"
-    ;;
-
-  -*)
-    echo 1>&2 "$0: Unknown \`$1' option"
-    echo 1>&2 "Try \`$0 --help' for more information"
-    exit 1
-    ;;
-
-  aclocal)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`acinclude.m4' or \`configure.in'.  You might want
-         to install the \`Automake' and \`Perl' packages.  Grab them from
-         any GNU archive site."
-    touch aclocal.m4
-    ;;
-
-  autoconf)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`configure.in'.  You might want to install the
-         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
-         archive site."
-    touch configure
-    ;;
-
-  autoheader)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`acconfig.h' or \`configure.in'.  You might want
-         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
-         from any GNU archive site."
-    touch config.h.in
-    ;;
-
-  automake)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
-         You might want to install the \`Automake' and \`Perl' packages.
-         Grab them from any GNU archive site."
-    find . -type f -name Makefile.am -print \
-      | sed 's/^\(.*\).am$/touch \1.in/' \
-      | sh
-    ;;
-
-  bison|yacc)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified a \`.y' file.  You may need the \`Bison' package
-         in order for those modifications to take effect.  You can get
-         \`Bison' from any GNU archive site."
-    touch y.tab.c
-    ;;
-
-  makeinfo)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified a \`.texi' or \`.texinfo' file, or any other file
-         indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy \`make' (AIX,
-         DU, IRIX).  You might want to install the \`Texinfo' package or
-         the \`GNU make' package.  Grab either from any GNU archive site."
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
-    if test -z "$file"; then
-      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
-    fi
-    touch $file
-    ;;
-
-  *)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
-         system.  You might have modified some files without having the
-         proper tools for further handling them.  Check the \`README' file,
-         it often tells you about the needed prerequirements for installing
-         this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing \`$1' program."
-    exit 1
-    ;;
-esac
-
-exit 0
diff --git a/package/network/services/ead/src/tinysrp/mkinstalldirs b/package/network/services/ead/src/tinysrp/mkinstalldirs
deleted file mode 100755 (executable)
index 3bc1836..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-
-errstatus=0
-
-for file
-do
-   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-   shift
-
-   pathcomp=
-   for d
-   do
-     pathcomp="$pathcomp$d"
-     case "$pathcomp" in
-       -* ) pathcomp=./$pathcomp ;;
-     esac
-
-     if test ! -d "$pathcomp"; then
-        echo "mkdir $pathcomp" 1>&2
-
-        mkdir "$pathcomp" || lasterr=$?
-
-        if test ! -d "$pathcomp"; then
-         errstatus=$lasterr
-        fi
-     fi
-
-     pathcomp="$pathcomp/"
-   done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff --git a/package/network/services/ead/src/tinysrp/srvtest.c b/package/network/services/ead/src/tinysrp/srvtest.c
deleted file mode 100644 (file)
index e09d501..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#include <stdio.h>
-#include "t_defines.h"
-#include "t_pwd.h"
-#include "t_server.h"
-
-int
-main(argc, argv)
-     int argc;
-     char * argv[];
-{
-  struct t_server * ts;
-  struct t_pw * tpw;
-  struct t_conf * tcnf;
-  struct t_num * B;
-  char username[MAXUSERLEN];
-  char hexbuf[MAXHEXPARAMLEN];
-  char buf[MAXPARAMLEN];
-  struct t_num A;
-  unsigned char * skey;
-  unsigned char cbuf[20];
-  FILE * fp;
-  FILE * fp2;
-  char confname[256];
-
-  printf("Enter username: ");
-  fgets(username, sizeof(username), stdin);
-  username[strlen(username) - 1] = '\0';
-  ts = t_serveropen(username);
-
-  if(ts == NULL) {
-    fprintf(stderr, "User %s not found\n", username);
-    exit(1);
-  }
-
-#if 0
-  printf("n: %s\n", t_tob64(hexbuf, ts->n.data, ts->n.len));
-  printf("g: %s\n", t_tob64(hexbuf, ts->g.data, ts->g.len));
-#endif
-  printf("index (to client): %d\n", ts->index);
-  printf("salt (to client): %s\n", t_tob64(hexbuf, ts->s.data, ts->s.len));
-
-  B = t_servergenexp(ts);
-  printf("Enter A (from client): ");
-  fgets(hexbuf, sizeof(hexbuf), stdin);
-  A.data = buf;
-  A.len = t_fromb64(A.data, hexbuf);
-
-  printf("B (to client): %s\n", t_tob64(hexbuf, B->data, B->len));
-
-  skey = t_servergetkey(ts, &A);
-  printf("Session key: %s\n", t_tohex(hexbuf, skey, 40));
-
-  /* printf("[Expected response: %s]\n", t_tohex(hexbuf, cbuf, 16)); */
-
-  printf("Enter response (from client): ");
-  fgets(hexbuf, sizeof(hexbuf), stdin);
-  hexbuf[strlen(hexbuf) - 1] = '\0';
-  t_fromhex(cbuf, hexbuf);
-
-  if(t_serververify(ts, cbuf) == 0) {
-    printf("Authentication successful.\n");
-    printf("Response (to client): %s\n",
-      t_tohex(hexbuf, t_serverresponse(ts), RESPONSE_LEN));
-  } else
-    printf("Authentication failed.\n");
-
-  t_serverclose(ts);
-
-  return 0;
-}
diff --git a/package/network/services/ead/src/tinysrp/stamp-h.in b/package/network/services/ead/src/tinysrp/stamp-h.in
deleted file mode 100644 (file)
index 9788f70..0000000
+++ /dev/null
@@ -1 +0,0 @@
-timestamp
diff --git a/package/network/services/ead/src/tinysrp/t_client.c b/package/network/services/ead/src/tinysrp/t_client.c
deleted file mode 100644 (file)
index 692215a..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#include <stdio.h>
-#include "t_defines.h"
-#include "t_pwd.h"
-#include "t_client.h"
-#include "t_sha.h"
-
-_TYPE( struct t_client * )
-t_clientopen(u, n, g, s)
-     const char * u;
-     struct t_num * n;
-     struct t_num * g;
-     struct t_num * s;
-{
-  struct t_client * tc;
-  unsigned char buf1[SHA_DIGESTSIZE], buf2[SHA_DIGESTSIZE];
-  SHA1_CTX ctxt;
-  int i, validated;
-  struct t_preconf * tpc;
-
-  validated = 0;
-  if(n->len < MIN_MOD_BYTES)
-    return 0;
-  for(i = 0; i < t_getprecount(); ++i) {
-    tpc = t_getpreparam(i);
-    if(tpc->modulus.len == n->len && tpc->generator.len == g->len &&
-       memcmp(tpc->modulus.data, n->data, n->len) == 0 &&
-       memcmp(tpc->generator.data, g->data, g->len) == 0) {
-      validated = 1;    /* Match found, done */
-      break;
-    }
-  }
-
-  if(validated == 0)
-    return 0;
-
-  if((tc = malloc(sizeof(struct t_client))) == 0)
-    return 0;
-
-  strncpy(tc->username, u, MAXUSERLEN);
-
-  SHA1Init(&tc->hash);
-
-  tc->n.len = n->len;
-  tc->n.data = tc->nbuf;
-  memcpy(tc->n.data, n->data, tc->n.len);
-
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, tc->n.data, tc->n.len);
-  SHA1Final(buf1, &ctxt);
-
-  tc->g.len = g->len;
-  tc->g.data = tc->gbuf;
-  memcpy(tc->g.data, g->data, tc->g.len);
-
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, tc->g.data, tc->g.len);
-  SHA1Final(buf2, &ctxt);
-
-  for(i = 0; i < sizeof(buf1); ++i)
-    buf1[i] ^= buf2[i];
-
-  SHA1Update(&tc->hash, buf1, sizeof(buf1));
-
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, tc->username, strlen(tc->username));
-  SHA1Final(buf1, &ctxt);
-
-  SHA1Update(&tc->hash, buf1, sizeof(buf1));
-
-  tc->s.len = s->len;
-  tc->s.data = tc->sbuf;
-  memcpy(tc->s.data, s->data, tc->s.len);
-
-  SHA1Update(&tc->hash, tc->s.data, tc->s.len);
-
-  tc->a.data = tc->abuf;
-  tc->A.data = tc->Abuf;
-  tc->p.data = tc->pbuf;
-  tc->v.data = tc->vbuf;
-
-  SHA1Init(&tc->ckhash);
-
-  return tc;
-}
-
-_TYPE( struct t_num * )
-t_clientgenexp(tc)
-     struct t_client * tc;
-{
-  BigInteger a, A, n, g;
-
-  if(tc->n.len < ALEN)
-    tc->a.len = tc->n.len;
-  else
-    tc->a.len = ALEN;
-
-  t_random(tc->a.data, tc->a.len);
-  a = BigIntegerFromBytes(tc->a.data, tc->a.len);
-  n = BigIntegerFromBytes(tc->n.data, tc->n.len);
-  g = BigIntegerFromBytes(tc->g.data, tc->g.len);
-  A = BigIntegerFromInt(0);
-  BigIntegerModExp(A, g, a, n);
-  tc->A.len = BigIntegerToBytes(A, tc->A.data);
-
-  BigIntegerFree(A);
-  BigIntegerFree(a);
-  BigIntegerFree(g);
-  BigIntegerFree(n);
-
-  SHA1Update(&tc->hash, tc->A.data, tc->A.len);
-  SHA1Update(&tc->ckhash, tc->A.data, tc->A.len);
-
-  return &tc->A;
-}
-
-_TYPE( void )
-t_clientpasswd(tc, password)
-     struct t_client * tc;
-     char * password;
-{
-  BigInteger n, g, p, v;
-  SHA1_CTX ctxt;
-  unsigned char dig[SHA_DIGESTSIZE];
-
-  n = BigIntegerFromBytes(tc->n.data, tc->n.len);
-  g = BigIntegerFromBytes(tc->g.data, tc->g.len);
-
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, tc->username, strlen(tc->username));
-  SHA1Update(&ctxt, ":", 1);
-  SHA1Update(&ctxt, password, strlen(password));
-  SHA1Final(dig, &ctxt);
-
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, tc->s.data, tc->s.len);
-  SHA1Update(&ctxt, dig, sizeof(dig));
-  SHA1Final(dig, &ctxt);
-
-  p = BigIntegerFromBytes(dig, sizeof(dig));
-
-  v = BigIntegerFromInt(0);
-  BigIntegerModExp(v, g, p, n);
-
-  tc->p.len = BigIntegerToBytes(p, tc->p.data);
-  BigIntegerFree(p);
-
-  tc->v.len = BigIntegerToBytes(v, tc->v.data);
-  BigIntegerFree(v);
-}
-
-_TYPE( unsigned char * )
-t_clientgetkey(tc, serverval)
-     struct t_client * tc;
-     struct t_num * serverval;
-{
-  BigInteger n, B, v, p, a, sum, S;
-  unsigned char sbuf[MAXPARAMLEN];
-  unsigned char dig[SHA_DIGESTSIZE];
-  unsigned slen;
-  unsigned int u;
-  SHA1_CTX ctxt;
-
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, serverval->data, serverval->len);
-  SHA1Final(dig, &ctxt);
-  u = (dig[0] << 24) | (dig[1] << 16) | (dig[2] << 8) | dig[3];
-  if(u == 0)
-    return NULL;
-
-  SHA1Update(&tc->hash, serverval->data, serverval->len);
-
-  B = BigIntegerFromBytes(serverval->data, serverval->len);
-  n = BigIntegerFromBytes(tc->n.data, tc->n.len);
-
-  if(BigIntegerCmp(B, n) >= 0 || BigIntegerCmpInt(B, 0) == 0) {
-    BigIntegerFree(B);
-    BigIntegerFree(n);
-    return NULL;
-  }
-  v = BigIntegerFromBytes(tc->v.data, tc->v.len);
-  if(BigIntegerCmp(B, v) < 0)
-    BigIntegerAdd(B, B, n);
-  BigIntegerSub(B, B, v);
-  BigIntegerFree(v);
-
-  a = BigIntegerFromBytes(tc->a.data, tc->a.len);
-  p = BigIntegerFromBytes(tc->p.data, tc->p.len);
-
-  sum = BigIntegerFromInt(0);
-  BigIntegerMulInt(sum, p, u);
-  BigIntegerAdd(sum, sum, a);
-
-  BigIntegerFree(p);
-  BigIntegerFree(a);
-
-  S = BigIntegerFromInt(0);
-  BigIntegerModExp(S, B, sum, n);
-  slen = BigIntegerToBytes(S, sbuf);
-
-  BigIntegerFree(S);
-  BigIntegerFree(sum);
-  BigIntegerFree(B);
-  BigIntegerFree(n);
-
-  t_sessionkey(tc->session_key, sbuf, slen);
-  memset(sbuf, 0, slen);
-
-  SHA1Update(&tc->hash, tc->session_key, sizeof(tc->session_key));
-
-  SHA1Final(tc->session_response, &tc->hash);
-  SHA1Update(&tc->ckhash, tc->session_response, sizeof(tc->session_response));
-  SHA1Update(&tc->ckhash, tc->session_key, sizeof(tc->session_key));
-
-  return tc->session_key;
-}
-
-_TYPE( int )
-t_clientverify(tc, resp)
-    struct t_client * tc;
-    unsigned char * resp;
-{
-  unsigned char expected[SHA_DIGESTSIZE];
-
-  SHA1Final(expected, &tc->ckhash);
-  return memcmp(expected, resp, sizeof(expected));
-}
-
-_TYPE( unsigned char * )
-t_clientresponse(tc)
-    struct t_client * tc;
-{
-  return tc->session_response;
-}
-
-_TYPE( void )
-t_clientclose(tc)
-     struct t_client * tc;
-{
-  memset(tc->abuf, 0, sizeof(tc->abuf));
-  memset(tc->pbuf, 0, sizeof(tc->pbuf));
-  memset(tc->vbuf, 0, sizeof(tc->vbuf));
-  memset(tc->session_key, 0, sizeof(tc->session_key));
-  free(tc);
-}
diff --git a/package/network/services/ead/src/tinysrp/t_client.h b/package/network/services/ead/src/tinysrp/t_client.h
deleted file mode 100644 (file)
index 42922af..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#ifndef T_CLIENT_H
-#define T_CLIENT_H
-
-#include "t_sha.h"
-
-#if     !defined(P)
-#ifdef  __STDC__
-#define P(x)    x
-#else
-#define P(x)    ()
-#endif
-#endif
-
-/*      For building dynamic link libraries under windows, windows NT
- *      using MSVC1.5 or MSVC2.0
- */
-
-#ifndef _DLLDECL
-#define _DLLDECL
-
-#ifdef MSVC15   /* MSVC1.5 support for 16 bit apps */
-#define _MSVC15EXPORT _export
-#define _MSVC20EXPORT
-#define _DLLAPI _export _pascal
-#define _TYPE(a) a _MSVC15EXPORT
-#define DLLEXPORT 1
-
-#elif MSVC20
-#define _MSVC15EXPORT
-#define _MSVC20EXPORT _declspec(dllexport)
-#define _DLLAPI
-#define _TYPE(a) _MSVC20EXPORT a
-#define DLLEXPORT 1
-
-#else                   /* Default, non-dll.  Use this for Unix or DOS */
-#define _MSVC15DEXPORT
-#define _MSVC20EXPORT
-#define _DLLAPI
-#define _TYPE(a) a
-#endif
-#endif
-
-#define ALEN 32
-#define MIN_MOD_BYTES 64        /* 512 bits */
-
-struct t_client {
-  struct t_num n;
-  struct t_num g;
-  struct t_num s;
-
-  struct t_num a;
-  struct t_num A;
-
-  struct t_num p;
-  struct t_num v;
-
-  SHA1_CTX hash, ckhash;
-
-  char username[MAXUSERLEN];
-  unsigned char session_key[SESSION_KEY_LEN];
-  unsigned char session_response[RESPONSE_LEN];
-
-  unsigned char nbuf[MAXPARAMLEN], gbuf[MAXPARAMLEN], sbuf[MAXSALTLEN];
-  unsigned char pbuf[MAXPARAMLEN], vbuf[MAXPARAMLEN];
-  unsigned char abuf[ALEN], Abuf[MAXPARAMLEN];
-};
-
-/*
- * SRP client-side negotiation
- *
- * This code negotiates the client side of an SRP exchange.
- * "t_clientopen" accepts a username, and N, g, and s parameters,
- *   which are usually sent by the server in the first round.
- *   The client should then call...
- * "t_clientgenexp" will generate a random 256-bit exponent and
- *   raise g to that power, returning the result.  This result
- *   should be sent to the server as w(p).
- * "t_clientpasswd" accepts the user's password, which should be
- *   entered locally and updates the client's state.
- * "t_clientgetkey" accepts the exponential y(p), which should
- *   be sent by the server in the next round and computes the
- *   256-bit session key.  This data should be saved before the
- *   session is closed.
- * "t_clientresponse" computes the session key proof as SHA(y(p), K).
- * "t_clientclose" closes the session and frees its memory.
- *
- * Note that authentication is not performed per se; it is up
- * to either/both sides of the protocol to now verify securely
- * that their session keys agree in order to establish authenticity.
- * One possible way is through "oracle hashing"; one side sends
- * r, the other replies with H(r,K), where H() is a hash function.
- *
- * t_clientresponse and t_clientverify now implement a version of
- * the session-key verification described above.
- */
-_TYPE( struct t_client * )
-  t_clientopen P((const char *, struct t_num *, struct t_num *,
-                 struct t_num *));
-_TYPE( struct t_num * ) t_clientgenexp P((struct t_client *));
-_TYPE( void ) t_clientpasswd P((struct t_client *, char *));
-_TYPE( unsigned char * )
-  t_clientgetkey P((struct t_client *, struct t_num *));
-_TYPE( int ) t_clientverify P((struct t_client *, unsigned char *));
-_TYPE( unsigned char * ) t_clientresponse P((struct t_client *));
-_TYPE( void ) t_clientclose P((struct t_client *));
-
-#endif
diff --git a/package/network/services/ead/src/tinysrp/t_conf.c b/package/network/services/ead/src/tinysrp/t_conf.c
deleted file mode 100644 (file)
index fbe6f41..0000000
+++ /dev/null
@@ -1,1080 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#include <stdio.h>
-
-#include "t_defines.h"
-#include "t_pwd.h"
-#include "t_read.h"
-#include "bn.h"
-#include "bn_lcl.h"
-#include "bn_prime.h"
-
-#define TABLE_SIZE      32
-
-static int witness(BIGNUM *w, const BIGNUM *a, const BIGNUM *a1,
-       const BIGNUM *a1_odd, int k, BN_CTX *ctx, BN_MONT_CTX *mont);
-
-/*
- * This is the safe prime generation logic.
- * To generate a safe prime p (where p = 2q+1 and q is prime), we start
- * with a random odd q that is one bit shorter than the desired length
- * of p.  We use a simple 30-element sieve to filter the values of q
- * and consider only those that are 11, 23, or 29 (mod 30).  (If q were
- * anything else, either q or p would be divisible by 2, 3, or 5).
- * For the values of q that are left, we apply the following tests in
- * this order:
- *
- *   trial divide q
- *   let p = 2q + 1
- *   trial divide p
- *   apply Fermat test to q (2^q == 2 (mod q))
- *   apply Fermat test to p (2^p == 2 (mod p))
- *   apply real probablistic primality test to q
- *   apply real probablistic primality test to p
- *
- * A number that passes all these tests is considered a safe prime for
- * our purposes.  The tests are ordered this way for efficiency; the
- * slower tests are run rarely if ever at all.
- */
-
-static int
-trialdiv(x)
-     const BigInteger x;
-{
-  static int primes[] = {               /* All odd primes < 256 */
-      3,   5,   7,  11,  13,  17,  19,  23,  29,
-     31,  37,  41,  43,  47,  53,  59,  61,  67,
-     71,  73,  79,  83,  89,  97, 101, 103,
-    107, 109, 113, 127, 131, 137, 139, 149, 151,
-    157, 163, 167, 173, 179, 181, 191, 193, 197,
-    199, 211, 223, 227, 229, 233, 239, 241, 251
-  };
-  static int nprimes = sizeof(primes) / sizeof(int);
-  int i;
-
-  for(i = 0; i < nprimes; ++i) {
-    if(BigIntegerModInt(x, primes[i]) == 0)
-      return primes[i];
-  }
-  return 1;
-}
-
-/* x + sieve30[x%30] == 11, 23, or 29 (mod 30) */
-
-static int sieve30[] =
-{  11, 10,  9,  8,  7,  6,  5,  4,  3,  2,
-    1, 12, 11, 10,  9,  8,  7,  6,  5,  4,
-    3,  2,  1,  6,  5,  4,  3,  2,  1, 12
-};
-
-/* Find a Sophie-Germain prime between "lo" and "hi".  NOTE: this is not
-   a "safe prime", but the smaller prime.  Take 2q+1 to get the safe prime. */
-
-static void
-sophie_germain(q, lo, hi)
-     BigInteger q;              /* assumed initialized */
-     const BigInteger lo;
-     const BigInteger hi;
-{
-  BigInteger m, p, r;
-  char parambuf[MAXPARAMLEN];
-  int foundprime = 0;
-  int i, mod30;
-
-  m = BigIntegerFromInt(0);
-  BigIntegerSub(m, hi, lo);
-  i = (BigIntegerBitLen(m) + 7) / 8;
-  t_random(parambuf, i);
-  r = BigIntegerFromBytes(parambuf, i);
-  BigIntegerMod(r, r, m);
-
-  BigIntegerAdd(q, r, lo);
-  if(BigIntegerModInt(q, 2) == 0)
-    BigIntegerAddInt(q, q, 1);          /* make q odd */
-
-  mod30 = BigIntegerModInt(q, 30);      /* mod30 = q % 30 */
-
-  BigIntegerFree(m);
-  m = BigIntegerFromInt(2);                     /* m = 2 */
-  p = BigIntegerFromInt(0);
-
-  while(BigIntegerCmp(q, hi) < 0) {
-    if(trialdiv(q) < 2) {
-      BigIntegerMulInt(p, q, 2);                        /* p = 2 * q */
-      BigIntegerAddInt(p, p, 1);                /* p += 1 */
-      if(trialdiv(p) < 2) {
-       BigIntegerModExp(r, m, q, q);           /* r = 2^q % q */
-       if(BigIntegerCmpInt(r, 2) == 0) {       /* if(r == 2) */
-         BigIntegerModExp(r, m, p, p);         /* r = 2^p % p */
-         if(BigIntegerCmpInt(r, 2) == 0) {     /* if(r == 2) */
-           if(BigIntegerCheckPrime(q) && BigIntegerCheckPrime(p)) {
-             ++foundprime;
-             break;
-           }
-         }
-       }
-      }
-    }
-
-    i = sieve30[mod30];
-    BigIntegerAddInt(q, q, i);          /* q += i */
-    mod30 = (mod30 + i) % 30;
-  }
-
-  /* should wrap around on failure */
-  if(!foundprime) {
-    fprintf(stderr, "Prime generation failed!\n");
-    exit(1);
-  }
-
-  BigIntegerFree(r);
-  BigIntegerFree(m);
-  BigIntegerFree(p);
-}
-
-_TYPE( struct t_confent * )
-t_makeconfent(tc, nsize)
-     struct t_conf * tc;
-     int nsize;
-{
-  BigInteger n, g, q, t, u;
-
-  t = BigIntegerFromInt(0);
-  u = BigIntegerFromInt(1);             /* u = 1 */
-  BigIntegerLShift(t, u, nsize - 2);    /* t = 2^(nsize-2) */
-  BigIntegerMulInt(u, t, 2);            /* u = 2^(nsize-1) */
-
-  q = BigIntegerFromInt(0);
-  sophie_germain(q, t, u);
-
-  n = BigIntegerFromInt(0);
-  BigIntegerMulInt(n, q, 2);
-  BigIntegerAddInt(n, n, 1);
-
-  /* Look for a generator mod n */
-  g = BigIntegerFromInt(2);
-  while(1) {
-    BigIntegerModExp(t, g, q, n);               /* t = g^q % n */
-    if(BigIntegerCmpInt(t, 1) == 0)             /* if(t == 1) */
-      BigIntegerAddInt(g, g, 1);                /* ++g */
-    else
-      break;
-  }
-  BigIntegerFree(t);
-  BigIntegerFree(u);
-  BigIntegerFree(q);
-
-  tc->tcbuf.modulus.data = tc->modbuf;
-  tc->tcbuf.modulus.len = BigIntegerToBytes(n, tc->tcbuf.modulus.data);
-  BigIntegerFree(n);
-
-  tc->tcbuf.generator.data = tc->genbuf;
-  tc->tcbuf.generator.len = BigIntegerToBytes(g, tc->tcbuf.generator.data);
-  BigIntegerFree(g);
-
-  tc->tcbuf.index = 1;
-  return &tc->tcbuf;
-}
-
-_TYPE( struct t_confent * )
-t_makeconfent_c(tc, nsize)
-     struct t_conf * tc;
-     int nsize;
-{
-  BigInteger g, n, p, q, j, k, t, u;
-  int psize, qsize;
-
-  psize = nsize / 2;
-  qsize = nsize - psize;
-
-  t = BigIntegerFromInt(1);             /* t = 1 */
-  u = BigIntegerFromInt(0);
-  BigIntegerLShift(u, t, psize - 3);    /* u = t*2^(psize-3) = 2^(psize-3) */
-  BigIntegerMulInt(t, u, 3);                    /* t = 3*u = 1.5*2^(psize-2) */
-  BigIntegerAdd(u, u, t);                       /* u += t [u = 2^(psize-1)] */
-  j = BigIntegerFromInt(0);
-  sophie_germain(j, t, u);
-
-  k = BigIntegerFromInt(0);
-  if(qsize != psize) {
-    BigIntegerFree(t);
-    t = BigIntegerFromInt(1);           /* t = 1 */
-    BigIntegerLShift(u, t, qsize - 3);  /* u = t*2^(qsize-3) = 2^(qsize-3) */
-    BigIntegerMulInt(t, u, 3);          /* t = 3*u = 1.5*2^(qsize-2) */
-    BigIntegerAdd(u, u, t);             /* u += t [u = 2^(qsize-1)] */
-  }
-  sophie_germain(k, t, u);
-
-  p = BigIntegerFromInt(0);
-  BigIntegerMulInt(p, j, 2);            /* p = 2 * j */
-  BigIntegerAddInt(p, p, 1);            /* p += 1 */
-
-  q = BigIntegerFromInt(0);
-  BigIntegerMulInt(q, k, 2);            /* q = 2 * k */
-  BigIntegerAddInt(q, q, 1);            /* q += 1 */
-
-  n = BigIntegerFromInt(0);
-  BigIntegerMul(n, p, q);               /* n = p * q */
-  BigIntegerMul(u, j, k);               /* u = j * k */
-
-  BigIntegerFree(p);
-  BigIntegerFree(q);
-  BigIntegerFree(j);
-  BigIntegerFree(k);
-
-  g = BigIntegerFromInt(2);             /* g = 2 */
-
-  /* Look for a generator mod n */
-  while(1) {
-    BigIntegerModExp(t, g, u, n);       /* t = g^u % n */
-    if(BigIntegerCmpInt(t, 1) == 0)
-      BigIntegerAddInt(g, g, 1);        /* ++g */
-    else
-      break;
-  }
-
-  BigIntegerFree(u);
-  BigIntegerFree(t);
-
-  tc->tcbuf.modulus.data = tc->modbuf;
-  tc->tcbuf.modulus.len = BigIntegerToBytes(n, tc->tcbuf.modulus.data);
-  BigIntegerFree(n);
-
-  tc->tcbuf.generator.data = tc->genbuf;
-  tc->tcbuf.generator.len = BigIntegerToBytes(g, tc->tcbuf.generator.data);
-  BigIntegerFree(g);
-
-  tc->tcbuf.index = 1;
-  return &tc->tcbuf;
-}
-
-_TYPE( struct t_confent * )
-t_newconfent(tc)
-    struct t_conf * tc;
-{
-  tc->tcbuf.index = 0;
-  tc->tcbuf.modulus.data = tc->modbuf;
-  tc->tcbuf.modulus.len = 0;
-  tc->tcbuf.generator.data = tc->genbuf;
-  tc->tcbuf.generator.len = 0;
-  return &tc->tcbuf;
-}
-
-_TYPE( void )
-t_putconfent(ent, fp)
-     const struct t_confent * ent;
-     FILE * fp;
-{
-  char strbuf[MAXB64PARAMLEN];
-
-  fprintf(fp, "%d:%s:", ent->index,
-         t_tob64(strbuf, ent->modulus.data, ent->modulus.len));
-  fprintf(fp, "%s\n",
-         t_tob64(strbuf, ent->generator.data, ent->generator.len));
-}
-
-int
-BigIntegerBitLen(b)
-     BigInteger b;
-{
-  return BN_num_bits(b);
-}
-
-int
-BigIntegerCheckPrime(n)
-     BigInteger n;
-{
-  BN_CTX * ctx = BN_CTX_new();
-  int rv = BN_is_prime(n, 25, NULL, ctx, NULL);
-  BN_CTX_free(ctx);
-  return rv;
-}
-
-unsigned int
-BigIntegerModInt(d, m)
-     BigInteger d;
-     unsigned int m;
-{
-  return BN_mod_word(d, m);
-}
-
-void
-BigIntegerMod(result, d, m)
-     BigInteger result, d, m;
-{
-  BN_CTX * ctx = BN_CTX_new();
-  BN_mod(result, d, m, ctx);
-  BN_CTX_free(ctx);
-}
-
-void
-BigIntegerMul(result, m1, m2)
-     BigInteger result, m1, m2;
-{
-  BN_CTX * ctx = BN_CTX_new();
-  BN_mul(result, m1, m2, ctx);
-  BN_CTX_free(ctx);
-}
-
-void
-BigIntegerLShift(result, x, bits)
-     BigInteger result, x;
-     unsigned int bits;
-{
-  BN_lshift(result, x, bits);
-}
-
-int BN_is_prime(const BIGNUM *a, int checks, void (*callback)(int,int,void *),
-       BN_CTX *ctx_passed, void *cb_arg)
-       {
-       return BN_is_prime_fasttest(a, checks, callback, ctx_passed, cb_arg, 0);
-       }
-
-int BN_is_prime_fasttest(const BIGNUM *a, int checks,
-               void (*callback)(int,int,void *),
-               BN_CTX *ctx_passed, void *cb_arg,
-               int do_trial_division)
-       {
-       int i, j, ret = -1;
-       int k;
-       BN_CTX *ctx = NULL;
-       BIGNUM *A1, *A1_odd, *check; /* taken from ctx */
-       BN_MONT_CTX *mont = NULL;
-       const BIGNUM *A = NULL;
-
-       if (checks == BN_prime_checks)
-               checks = BN_prime_checks_for_size(BN_num_bits(a));
-
-       /* first look for small factors */
-       if (!BN_is_odd(a))
-               return(0);
-       if (do_trial_division)
-               {
-               for (i = 1; i < NUMPRIMES; i++)
-                       if (BN_mod_word(a, primes[i]) == 0)
-                               return 0;
-               if (callback != NULL) callback(1, -1, cb_arg);
-               }
-
-       if (ctx_passed != NULL)
-               ctx = ctx_passed;
-       else
-               if ((ctx=BN_CTX_new()) == NULL)
-                       goto err;
-       BN_CTX_start(ctx);
-
-       /* A := abs(a) */
-       if (a->neg)
-               {
-               BIGNUM *t;
-               if ((t = BN_CTX_get(ctx)) == NULL) goto err;
-               BN_copy(t, a);
-               t->neg = 0;
-               A = t;
-               }
-       else
-               A = a;
-       A1 = BN_CTX_get(ctx);
-       A1_odd = BN_CTX_get(ctx);
-       check = BN_CTX_get(ctx);
-       if (check == NULL) goto err;
-
-       /* compute A1 := A - 1 */
-       if (!BN_copy(A1, A))
-               goto err;
-       if (!BN_sub_word(A1, 1))
-               goto err;
-       if (BN_is_zero(A1))
-               {
-               ret = 0;
-               goto err;
-               }
-
-       /* write  A1  as  A1_odd * 2^k */
-       k = 1;
-       while (!BN_is_bit_set(A1, k))
-               k++;
-       if (!BN_rshift(A1_odd, A1, k))
-               goto err;
-
-       /* Montgomery setup for computations mod A */
-       mont = BN_MONT_CTX_new();
-       if (mont == NULL)
-               goto err;
-       if (!BN_MONT_CTX_set(mont, A, ctx))
-               goto err;
-
-       for (i = 0; i < checks; i++)
-               {
-               if (!BN_pseudo_rand(check, BN_num_bits(A1), 0, 0))
-                       goto err;
-               if (BN_cmp(check, A1) >= 0)
-                       if (!BN_sub(check, check, A1))
-                               goto err;
-               if (!BN_add_word(check, 1))
-                       goto err;
-               /* now 1 <= check < A */
-
-               j = witness(check, A, A1, A1_odd, k, ctx, mont);
-               if (j == -1) goto err;
-               if (j)
-                       {
-                       ret=0;
-                       goto err;
-                       }
-               if (callback != NULL) callback(1,i,cb_arg);
-               }
-       ret=1;
-err:
-       if (ctx != NULL)
-               {
-               BN_CTX_end(ctx);
-               if (ctx_passed == NULL)
-                       BN_CTX_free(ctx);
-               }
-       if (mont != NULL)
-               BN_MONT_CTX_free(mont);
-
-       return(ret);
-       }
-
-static int witness(BIGNUM *w, const BIGNUM *a, const BIGNUM *a1,
-       const BIGNUM *a1_odd, int k, BN_CTX *ctx, BN_MONT_CTX *mont)
-       {
-       if (!BN_mod_exp_mont(w, w, a1_odd, a, ctx, mont)) /* w := w^a1_odd mod a */
-               return -1;
-       if (BN_is_one(w))
-               return 0; /* probably prime */
-       if (BN_cmp(w, a1) == 0)
-               return 0; /* w == -1 (mod a),  'a' is probably prime */
-       while (--k)
-               {
-               if (!BN_mod_mul(w, w, w, a, ctx)) /* w := w^2 mod a */
-                       return -1;
-               if (BN_is_one(w))
-                       return 1; /* 'a' is composite, otherwise a previous 'w' would
-                                  * have been == -1 (mod 'a') */
-               if (BN_cmp(w, a1) == 0)
-                       return 0; /* w == -1 (mod a), 'a' is probably prime */
-               }
-       /* If we get here, 'w' is the (a-1)/2-th power of the original 'w',
-        * and it is neither -1 nor +1 -- so 'a' cannot be prime */
-       return 1;
-       }
-
-int BN_mod_exp_mont(BIGNUM *rr, BIGNUM *a, const BIGNUM *p,
-                   const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)
-       {
-       int i,j,bits,ret=0,wstart,wend,window,wvalue;
-       int start=1,ts=0;
-       BIGNUM *d,*r;
-       BIGNUM *aa;
-       BIGNUM val[TABLE_SIZE];
-       BN_MONT_CTX *mont=NULL;
-
-       bn_check_top(a);
-       bn_check_top(p);
-       bn_check_top(m);
-
-       if (!(m->d[0] & 1))
-               {
-               return(0);
-               }
-       bits=BN_num_bits(p);
-       if (bits == 0)
-               {
-               BN_one(rr);
-               return(1);
-               }
-       BN_CTX_start(ctx);
-       d = BN_CTX_get(ctx);
-       r = BN_CTX_get(ctx);
-       if (d == NULL || r == NULL) goto err;
-
-       /* If this is not done, things will break in the montgomery
-        * part */
-
-       if (in_mont != NULL)
-               mont=in_mont;
-       else
-               {
-               if ((mont=BN_MONT_CTX_new()) == NULL) goto err;
-               if (!BN_MONT_CTX_set(mont,m,ctx)) goto err;
-               }
-
-       BN_init(&val[0]);
-       ts=1;
-       if (BN_ucmp(a,m) >= 0)
-               {
-               if (!BN_mod(&(val[0]),a,m,ctx))
-                       goto err;
-               aa= &(val[0]);
-               }
-       else
-               aa=a;
-       if (!BN_to_montgomery(&(val[0]),aa,mont,ctx)) goto err; /* 1 */
-
-       window = BN_window_bits_for_exponent_size(bits);
-       if (window > 1)
-               {
-               if (!BN_mod_mul_montgomery(d,&(val[0]),&(val[0]),mont,ctx)) goto err; /* 2 */
-               j=1<<(window-1);
-               for (i=1; i<j; i++)
-                       {
-                       BN_init(&(val[i]));
-                       if (!BN_mod_mul_montgomery(&(val[i]),&(val[i-1]),d,mont,ctx))
-                               goto err;
-                       }
-               ts=i;
-               }
-
-       start=1;        /* This is used to avoid multiplication etc
-                        * when there is only the value '1' in the
-                        * buffer. */
-       wvalue=0;       /* The 'value' of the window */
-       wstart=bits-1;  /* The top bit of the window */
-       wend=0;         /* The bottom bit of the window */
-
-       if (!BN_to_montgomery(r,BN_value_one(),mont,ctx)) goto err;
-       for (;;)
-               {
-               if (BN_is_bit_set(p,wstart) == 0)
-                       {
-                       if (!start)
-                               {
-                               if (!BN_mod_mul_montgomery(r,r,r,mont,ctx))
-                               goto err;
-                               }
-                       if (wstart == 0) break;
-                       wstart--;
-                       continue;
-                       }
-               /* We now have wstart on a 'set' bit, we now need to work out
-                * how bit a window to do.  To do this we need to scan
-                * forward until the last set bit before the end of the
-                * window */
-               j=wstart;
-               wvalue=1;
-               wend=0;
-               for (i=1; i<window; i++)
-                       {
-                       if (wstart-i < 0) break;
-                       if (BN_is_bit_set(p,wstart-i))
-                               {
-                               wvalue<<=(i-wend);
-                               wvalue|=1;
-                               wend=i;
-                               }
-                       }
-
-               /* wend is the size of the current window */
-               j=wend+1;
-               /* add the 'bytes above' */
-               if (!start)
-                       for (i=0; i<j; i++)
-                               {
-                               if (!BN_mod_mul_montgomery(r,r,r,mont,ctx))
-                                       goto err;
-                               }
-
-               /* wvalue will be an odd number < 2^window */
-               if (!BN_mod_mul_montgomery(r,r,&(val[wvalue>>1]),mont,ctx))
-                       goto err;
-
-               /* move the 'window' down further */
-               wstart-=wend+1;
-               wvalue=0;
-               start=0;
-               if (wstart < 0) break;
-               }
-       if (!BN_from_montgomery(rr,r,mont,ctx)) goto err;
-       ret=1;
-err:
-       if ((in_mont == NULL) && (mont != NULL)) BN_MONT_CTX_free(mont);
-       BN_CTX_end(ctx);
-       for (i=0; i<ts; i++)
-               BN_clear_free(&(val[i]));
-       return(ret);
-       }
-
-BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w)
-       {
-#ifndef BN_LLONG
-       BN_ULONG ret=0;
-#else
-       BN_ULLONG ret=0;
-#endif
-       int i;
-
-       w&=BN_MASK2;
-       for (i=a->top-1; i>=0; i--)
-               {
-#ifndef BN_LLONG
-               ret=((ret<<BN_BITS4)|((a->d[i]>>BN_BITS4)&BN_MASK2l))%w;
-               ret=((ret<<BN_BITS4)|(a->d[i]&BN_MASK2l))%w;
-#else
-               ret=(BN_ULLONG)(((ret<<(BN_ULLONG)BN_BITS2)|a->d[i])%
-                       (BN_ULLONG)w);
-#endif
-               }
-       return((BN_ULONG)ret);
-       }
-
-static int bnrand(int pseudorand, BIGNUM *rnd, int bits, int top, int bottom)
-       {
-       unsigned char *buf=NULL;
-       int ret=0,bit,bytes,mask;
-
-       if (bits == 0)
-               {
-               BN_zero(rnd);
-               return 1;
-               }
-
-       bytes=(bits+7)/8;
-       bit=(bits-1)%8;
-       mask=0xff<<bit;
-
-       buf=(unsigned char *)malloc(bytes);
-       if (buf == NULL)
-               {
-               goto err;
-               }
-
-       /* make a random number and set the top and bottom bits */
-       /* this ignores the pseudorand flag */
-
-       t_random(buf, bytes);
-
-       if (top)
-               {
-               if (bit == 0)
-                       {
-                       buf[0]=1;
-                       buf[1]|=0x80;
-                       }
-               else
-                       {
-                       buf[0]|=(3<<(bit-1));
-                       buf[0]&= ~(mask<<1);
-                       }
-               }
-       else
-               {
-               buf[0]|=(1<<bit);
-               buf[0]&= ~(mask<<1);
-               }
-       if (bottom) /* set bottom bits to whatever odd is */
-               buf[bytes-1]|=1;
-       if (!BN_bin2bn(buf,bytes,rnd)) goto err;
-       ret=1;
-err:
-       if (buf != NULL)
-               {
-               memset(buf,0,bytes);
-               free(buf);
-               }
-       return(ret);
-       }
-
-/* BN_pseudo_rand is the same as BN_rand, now. */
-
-int     BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom)
-       {
-       return bnrand(1, rnd, bits, top, bottom);
-       }
-
-#define MONT_WORD /* use the faster word-based algorithm */
-
-int BN_mod_mul_montgomery(BIGNUM *r, BIGNUM *a, BIGNUM *b,
-                         BN_MONT_CTX *mont, BN_CTX *ctx)
-       {
-       BIGNUM *tmp,*tmp2;
-       int ret=0;
-
-       BN_CTX_start(ctx);
-       tmp = BN_CTX_get(ctx);
-       tmp2 = BN_CTX_get(ctx);
-       if (tmp == NULL || tmp2 == NULL) goto err;
-
-       bn_check_top(tmp);
-       bn_check_top(tmp2);
-
-       if (a == b)
-               {
-               if (!BN_sqr(tmp,a,ctx)) goto err;
-               }
-       else
-               {
-               if (!BN_mul(tmp,a,b,ctx)) goto err;
-               }
-       /* reduce from aRR to aR */
-       if (!BN_from_montgomery(r,tmp,mont,ctx)) goto err;
-       ret=1;
-err:
-       BN_CTX_end(ctx);
-       return(ret);
-       }
-
-int BN_from_montgomery(BIGNUM *ret, BIGNUM *a, BN_MONT_CTX *mont,
-            BN_CTX *ctx)
-       {
-       int retn=0;
-
-#ifdef MONT_WORD
-       BIGNUM *n,*r;
-       BN_ULONG *ap,*np,*rp,n0,v,*nrp;
-       int al,nl,max,i,x,ri;
-
-       BN_CTX_start(ctx);
-       if ((r = BN_CTX_get(ctx)) == NULL) goto err;
-
-       if (!BN_copy(r,a)) goto err;
-       n= &(mont->N);
-
-       ap=a->d;
-       /* mont->ri is the size of mont->N in bits (rounded up
-          to the word size) */
-       al=ri=mont->ri/BN_BITS2;
-
-       nl=n->top;
-       if ((al == 0) || (nl == 0)) { r->top=0; return(1); }
-
-       max=(nl+al+1); /* allow for overflow (no?) XXX */
-       if (bn_wexpand(r,max) == NULL) goto err;
-       if (bn_wexpand(ret,max) == NULL) goto err;
-
-       r->neg=a->neg^n->neg;
-       np=n->d;
-       rp=r->d;
-       nrp= &(r->d[nl]);
-
-       /* clear the top words of T */
-#if 1
-       for (i=r->top; i<max; i++) /* memset? XXX */
-               r->d[i]=0;
-#else
-       memset(&(r->d[r->top]),0,(max-r->top)*sizeof(BN_ULONG));
-#endif
-
-       r->top=max;
-       n0=mont->n0;
-
-#ifdef BN_COUNT
-       printf("word BN_from_montgomery %d * %d\n",nl,nl);
-#endif
-       for (i=0; i<nl; i++)
-               {
-#ifdef __TANDEM
-               {
-                  long long t1;
-                  long long t2;
-                  long long t3;
-                  t1 = rp[0] * (n0 & 0177777);
-                  t2 = 037777600000l;
-                  t2 = n0 & t2;
-                  t3 = rp[0] & 0177777;
-                  t2 = (t3 * t2) & BN_MASK2;
-                  t1 = t1 + t2;
-                  v=bn_mul_add_words(rp,np,nl,(BN_ULONG) t1);
-               }
-#else
-               v=bn_mul_add_words(rp,np,nl,(rp[0]*n0)&BN_MASK2);
-#endif
-               nrp++;
-               rp++;
-               if (((nrp[-1]+=v)&BN_MASK2) >= v)
-                       continue;
-               else
-                       {
-                       if (((++nrp[0])&BN_MASK2) != 0) continue;
-                       if (((++nrp[1])&BN_MASK2) != 0) continue;
-                       for (x=2; (((++nrp[x])&BN_MASK2) == 0); x++) ;
-                       }
-               }
-       bn_fix_top(r);
-
-       /* mont->ri will be a multiple of the word size */
-#if 0
-       BN_rshift(ret,r,mont->ri);
-#else
-       ret->neg = r->neg;
-       x=ri;
-       rp=ret->d;
-       ap= &(r->d[x]);
-       if (r->top < x)
-               al=0;
-       else
-               al=r->top-x;
-       ret->top=al;
-       al-=4;
-       for (i=0; i<al; i+=4)
-               {
-               BN_ULONG t1,t2,t3,t4;
-
-               t1=ap[i+0];
-               t2=ap[i+1];
-               t3=ap[i+2];
-               t4=ap[i+3];
-               rp[i+0]=t1;
-               rp[i+1]=t2;
-               rp[i+2]=t3;
-               rp[i+3]=t4;
-               }
-       al+=4;
-       for (; i<al; i++)
-               rp[i]=ap[i];
-#endif
-#else /* !MONT_WORD */
-       BIGNUM *t1,*t2;
-
-       BN_CTX_start(ctx);
-       t1 = BN_CTX_get(ctx);
-       t2 = BN_CTX_get(ctx);
-       if (t1 == NULL || t2 == NULL) goto err;
-
-       if (!BN_copy(t1,a)) goto err;
-       BN_mask_bits(t1,mont->ri);
-
-       if (!BN_mul(t2,t1,&mont->Ni,ctx)) goto err;
-       BN_mask_bits(t2,mont->ri);
-
-       if (!BN_mul(t1,t2,&mont->N,ctx)) goto err;
-       if (!BN_add(t2,a,t1)) goto err;
-       BN_rshift(ret,t2,mont->ri);
-#endif /* MONT_WORD */
-
-       if (BN_ucmp(ret, &(mont->N)) >= 0)
-               {
-               BN_usub(ret,ret,&(mont->N));
-               }
-       retn=1;
- err:
-       BN_CTX_end(ctx);
-       return(retn);
-       }
-
-void BN_MONT_CTX_init(BN_MONT_CTX *ctx)
-       {
-       ctx->ri=0;
-       BN_init(&(ctx->RR));
-       BN_init(&(ctx->N));
-       BN_init(&(ctx->Ni));
-       ctx->flags=0;
-       }
-
-BN_MONT_CTX *BN_MONT_CTX_new(void)
-       {
-       BN_MONT_CTX *ret;
-
-       if ((ret=(BN_MONT_CTX *)malloc(sizeof(BN_MONT_CTX))) == NULL)
-               return(NULL);
-
-       BN_MONT_CTX_init(ret);
-       ret->flags=BN_FLG_MALLOCED;
-       return(ret);
-       }
-
-void BN_MONT_CTX_free(BN_MONT_CTX *mont)
-       {
-       if(mont == NULL)
-           return;
-
-       BN_free(&(mont->RR));
-       BN_free(&(mont->N));
-       BN_free(&(mont->Ni));
-       if (mont->flags & BN_FLG_MALLOCED)
-               free(mont);
-       }
-
-int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx)
-       {
-       BIGNUM Ri,*R;
-
-       BN_init(&Ri);
-       R= &(mont->RR);                                 /* grab RR as a temp */
-       BN_copy(&(mont->N),mod);                        /* Set N */
-
-#ifdef MONT_WORD
-               {
-               BIGNUM tmod;
-               BN_ULONG buf[2];
-
-               mont->ri=(BN_num_bits(mod)+(BN_BITS2-1))/BN_BITS2*BN_BITS2;
-               BN_zero(R);
-               BN_set_bit(R,BN_BITS2);                 /* R */
-
-               buf[0]=mod->d[0]; /* tmod = N mod word size */
-               buf[1]=0;
-               tmod.d=buf;
-               tmod.top=1;
-               tmod.dmax=2;
-               tmod.neg=mod->neg;
-                                                       /* Ri = R^-1 mod N*/
-               if ((BN_mod_inverse(&Ri,R,&tmod,ctx)) == NULL)
-                       goto err;
-               BN_lshift(&Ri,&Ri,BN_BITS2);            /* R*Ri */
-               if (!BN_is_zero(&Ri))
-                       BN_sub_word(&Ri,1);
-               else /* if N mod word size == 1 */
-                       BN_set_word(&Ri,BN_MASK2);  /* Ri-- (mod word size) */
-               BN_div(&Ri,NULL,&Ri,&tmod,ctx); /* Ni = (R*Ri-1)/N,
-                                                * keep only least significant word: */
-               mont->n0=Ri.d[0];
-               BN_free(&Ri);
-               }
-#else /* !MONT_WORD */
-               { /* bignum version */
-               mont->ri=BN_num_bits(mod);
-               BN_zero(R);
-               BN_set_bit(R,mont->ri);                 /* R = 2^ri */
-                                                       /* Ri = R^-1 mod N*/
-               if ((BN_mod_inverse(&Ri,R,mod,ctx)) == NULL)
-                       goto err;
-               BN_lshift(&Ri,&Ri,mont->ri);            /* R*Ri */
-               BN_sub_word(&Ri,1);
-                                                       /* Ni = (R*Ri-1) / N */
-               BN_div(&(mont->Ni),NULL,&Ri,mod,ctx);
-               BN_free(&Ri);
-               }
-#endif
-
-       /* setup RR for conversions */
-       BN_zero(&(mont->RR));
-       BN_set_bit(&(mont->RR),mont->ri*2);
-       BN_mod(&(mont->RR),&(mont->RR),&(mont->N),ctx);
-
-       return(1);
-err:
-       return(0);
-       }
-
-BIGNUM *BN_value_one(void)
-       {
-       static BN_ULONG data_one=1L;
-       static BIGNUM const_one={&data_one,1,1,0};
-
-       return(&const_one);
-       }
-
-/* solves ax == 1 (mod n) */
-BIGNUM *BN_mod_inverse(BIGNUM *in, BIGNUM *a, const BIGNUM *n, BN_CTX *ctx)
-       {
-       BIGNUM *A,*B,*X,*Y,*M,*D,*R=NULL;
-       BIGNUM *T,*ret=NULL;
-       int sign;
-
-       bn_check_top(a);
-       bn_check_top(n);
-
-       BN_CTX_start(ctx);
-       A = BN_CTX_get(ctx);
-       B = BN_CTX_get(ctx);
-       X = BN_CTX_get(ctx);
-       D = BN_CTX_get(ctx);
-       M = BN_CTX_get(ctx);
-       Y = BN_CTX_get(ctx);
-       if (Y == NULL) goto err;
-
-       if (in == NULL)
-               R=BN_new();
-       else
-               R=in;
-       if (R == NULL) goto err;
-
-       BN_zero(X);
-       BN_one(Y);
-       if (BN_copy(A,a) == NULL) goto err;
-       if (BN_copy(B,n) == NULL) goto err;
-       sign=1;
-
-       while (!BN_is_zero(B))
-               {
-               if (!BN_div(D,M,A,B,ctx)) goto err;
-               T=A;
-               A=B;
-               B=M;
-               /* T has a struct, M does not */
-
-               if (!BN_mul(T,D,X,ctx)) goto err;
-               if (!BN_add(T,T,Y)) goto err;
-               M=Y;
-               Y=X;
-               X=T;
-               sign= -sign;
-               }
-       if (sign < 0)
-               {
-               if (!BN_sub(Y,n,Y)) goto err;
-               }
-
-       if (BN_is_one(A))
-               { if (!BN_mod(R,Y,n,ctx)) goto err; }
-       else
-               {
-               goto err;
-               }
-       ret=R;
-err:
-       if ((ret == NULL) && (in == NULL)) BN_free(R);
-       BN_CTX_end(ctx);
-       return(ret);
-       }
-
-int BN_set_bit(BIGNUM *a, int n)
-       {
-       int i,j,k;
-
-       i=n/BN_BITS2;
-       j=n%BN_BITS2;
-       if (a->top <= i)
-               {
-               if (bn_wexpand(a,i+1) == NULL) return(0);
-               for(k=a->top; k<i+1; k++)
-                       a->d[k]=0;
-               a->top=i+1;
-               }
-
-       a->d[i]|=(((BN_ULONG)1)<<j);
-       return(1);
-       }
-
diff --git a/package/network/services/ead/src/tinysrp/t_conv.c b/package/network/services/ead/src/tinysrp/t_conv.c
deleted file mode 100644 (file)
index 3be6d85..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND, 
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-/*#define _POSIX_SOURCE*/
-#include <stdio.h>
-#include "t_defines.h"
-
-static int
-hexDigitToInt(c)
-     char c;
-{
-  if(c >= '0' && c <= '9')
-    return c - '0';
-  else if(c >= 'a' && c <= 'f')
-    return c - 'a' + 10;
-  else if(c >= 'A' && c <= 'F')
-    return c - 'A' + 10;
-  else
-    return 0;
-}
-
-/*
- * Convert a hex string to a string of bytes; return size of dst
- */
-_TYPE( int )
-t_fromhex(dst, src)
-     register char *dst, *src;
-{
-  register char *chp = dst;
-  register unsigned size = strlen(src);
-
-  /* FIXME: handle whitespace and non-hex digits by setting size and src
-     appropriately. */
-
-  if(size % 2 == 1) {
-    *chp++ = hexDigitToInt(*src++);
-    --size;
-  }
-  while(size > 0) {
-    *chp++ = (hexDigitToInt(*src) << 4) | hexDigitToInt(*(src + 1));
-    src += 2;
-    size -= 2;
-  }
-  return chp - dst;
-}
-
-/*
- * Convert a string of bytes to their hex representation
- */
-_TYPE( char * )
-t_tohex(dst, src, size)
-     register char *dst, *src;
-     register unsigned size;
-{
-   int notleading = 0;
-
-   register char *chp = dst;
-   if (size != 0) do {
-      if(notleading || *src != '\0') {
-       notleading = 1;
-       sprintf(chp, "%.2x", * (unsigned char *) src);
-       chp += 2;
-      }
-      ++src;
-   } while (--size != 0);
-   return dst;
-}
-
-static char b64table[] =
-  "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz./";
-
-/*
- * Convert a base64 string into raw byte array representation.
- */
-_TYPE( int )
-t_fromb64(dst, src)
-     register char *dst, *src;
-{
-  unsigned char *a;
-  char *loc;
-  int i, j;
-  unsigned int size;
-
-  while(*src && (*src == ' ' || *src == '\t' || *src == '\n'))
-      ++src;
-  size = strlen(src);
-
-  a = malloc((size + 1) * sizeof(unsigned char));
-  if(a == (unsigned char *) 0)
-    return -1;
-
-  i = 0;
-  while(i < size) {
-    loc = strchr(b64table, src[i]);
-    if(loc == (char *) 0)
-      break;
-    else
-      a[i] = loc - b64table;
-    ++i;
-  }
-  size = i;
-
-  i = size - 1;
-  j = size;
-  while(1) {
-    a[j] = a[i];
-    if(--i < 0)
-      break;
-    a[j] |= (a[i] & 3) << 6;
-    --j;
-    a[j] = (unsigned char) ((a[i] & 0x3c) >> 2);
-    if(--i < 0)
-      break;
-    a[j] |= (a[i] & 0xf) << 4;
-    --j;
-    a[j] = (unsigned char) ((a[i] & 0x30) >> 4);
-    if(--i < 0)
-      break;
-    a[j] |= (a[i] << 2);
-
-    a[--j] = 0;
-    if(--i < 0)
-      break;
-  }
-
-  while(j <= size && a[j] == 0)
-    ++j;
-
-  memcpy(dst, a + j, size - j + 1);
-  free(a);
-  return size - j + 1;
-}
-
-/*
- * Convert a raw byte string into a null-terminated base64 ASCII string.
- */
-_TYPE( char * )
-t_tob64(dst, src, size)
-     register char *dst, *src;
-     register unsigned size;
-{
-  int c, pos = size % 3;
-  unsigned char b0 = 0, b1 = 0, b2 = 0, notleading = 0;
-  char *olddst = dst;
-
-  switch(pos) {
-  case 1:
-    b2 = src[0];
-    break;
-  case 2:
-    b1 = src[0];
-    b2 = src[1];
-    break;
-  }
-
-  while(1) {
-    c = (b0 & 0xfc) >> 2;
-    if(notleading || c != 0) {
-      *dst++ = b64table[c];
-      notleading = 1;
-    }
-    c = ((b0 & 3) << 4) | ((b1 & 0xf0) >> 4);
-    if(notleading || c != 0) {
-      *dst++ = b64table[c];
-      notleading = 1;
-    }
-    c = ((b1 & 0xf) << 2) | ((b2 & 0xc0) >> 6);
-    if(notleading || c != 0) {
-      *dst++ = b64table[c];
-      notleading = 1;
-    }
-    c = b2 & 0x3f;
-    if(notleading || c != 0) {
-      *dst++ = b64table[c];
-      notleading = 1;
-    }
-    if(pos >= size)
-      break;
-    else {
-      b0 = src[pos++];
-      b1 = src[pos++];
-      b2 = src[pos++];
-    }
-  }
-
-  *dst++ = '\0';
-  return olddst;
-}
diff --git a/package/network/services/ead/src/tinysrp/t_defines.h b/package/network/services/ead/src/tinysrp/t_defines.h
deleted file mode 100644 (file)
index 4128093..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#ifndef T_DEFINES_H
-#define T_DEFINES_H
-
-#ifndef P
-#if defined(__STDC__) || defined(__cplusplus)
-#define P(x) x
-#else
-#define P(x) ()
-#endif
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#ifndef _DLLDECL
-#define _DLLDECL
-
-#ifdef MSVC15   /* MSVC1.5 support for 16 bit apps */
-#define _MSVC15EXPORT _export
-#define _MSVC20EXPORT
-#define _DLLAPI _export _pascal
-#define _TYPE(a) a _MSVC15EXPORT
-#define DLLEXPORT 1
-
-#elif MSVC20
-#define _MSVC15EXPORT
-#define _MSVC20EXPORT _declspec(dllexport)
-#define _DLLAPI
-#define _TYPE(a) _MSVC20EXPORT a
-#define DLLEXPORT 1
-
-#else                   /* Default, non-dll.  Use this for Unix or DOS */
-#define _MSVC15DEXPORT
-#define _MSVC20EXPORT
-#define _DLLAPI
-#define _TYPE(a) a
-#endif
-#endif
-
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <string.h>
-#else /* not STDC_HEADERS */
-#ifndef HAVE_STRCHR
-#define strchr index
-#define strrchr rindex
-#endif
-char *strchr(), *strrchr(), *strtok();
-#ifndef HAVE_MEMCPY
-#define memcpy(d, s, n) bcopy((s), (d), (n))
-#endif
-#endif /* not STDC_HEADERS */
-
-#include <sys/types.h>
-
-#if TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#else  /* not TIME_WITH_SYS_TIME */
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#endif /* not TIME_WITH_SYS_TIME */
-
-#if HAVE_TERMIOS_H
-#include <termios.h>
-#define STTY(fd, termio) tcsetattr(fd, TCSANOW, termio)
-#define GTTY(fd, termio) tcgetattr(fd, termio)
-#define TERMIO struct termios
-#define USE_TERMIOS
-#elif HAVE_TERMIO_H
-#include <sys/ioctl.h>
-#include <termio.h>
-#define STTY(fd, termio) ioctl(fd, TCSETA, termio)
-#define GTTY(fd, termio) ioctl(fd, TCGETA, termio)
-#define TEMRIO struct termio
-#define USE_TERMIO
-#elif HAVE_SGTTY_H
-#include <sgtty.h>
-#define STTY(fd, termio) stty(fd, termio)
-#define GTTY(fd, termio) gtty(fd, termio)
-#define TERMIO struct sgttyb
-#define USE_SGTTY
-#endif
-
-#ifdef USE_FTIME
-#include <sys/timeb.h>
-#endif
-
-#ifndef MATH_PRIV
-typedef void * BigInteger;
-#endif
-
-_TYPE( BigInteger ) BigIntegerFromInt P((unsigned int number));
-_TYPE( BigInteger ) BigIntegerFromBytes P((unsigned char * bytes, int length));
-_TYPE( int ) BigIntegerToBytes P((BigInteger src, unsigned char * dest));
-_TYPE( int ) BigIntegerBitLen P((BigInteger b));
-_TYPE( int ) BigIntegerCmp P((BigInteger c1, BigInteger c2));
-_TYPE( int ) BigIntegerCmpInt P((BigInteger c1, unsigned int c2));
-_TYPE( void ) BigIntegerLShift P((BigInteger result, BigInteger x,
-                               unsigned int bits));
-_TYPE( void ) BigIntegerAdd P((BigInteger result, BigInteger a1, BigInteger a2));
-_TYPE( void ) BigIntegerAddInt P((BigInteger result,
-                               BigInteger a1, unsigned int a2));
-_TYPE( void ) BigIntegerSub P((BigInteger result, BigInteger s1, BigInteger s2));
-_TYPE( void ) BigIntegerSubInt P((BigInteger result,
-                               BigInteger s1, unsigned int s2));
-/* For BigIntegerMul{,Int}: result != m1, m2 */
-_TYPE( void ) BigIntegerMul P((BigInteger result, BigInteger m1, BigInteger m2));
-_TYPE( void ) BigIntegerMulInt P((BigInteger result,
-                               BigInteger m1, unsigned int m2));
-_TYPE( void ) BigIntegerDivInt P((BigInteger result,
-                               BigInteger d, unsigned int m));
-_TYPE( void ) BigIntegerMod P((BigInteger result, BigInteger d, BigInteger m));
-_TYPE( unsigned int ) BigIntegerModInt P((BigInteger d, unsigned int m));
-_TYPE( void ) BigIntegerModMul P((BigInteger result,
-                               BigInteger m1, BigInteger m2, BigInteger m));
-_TYPE( void ) BigIntegerModExp P((BigInteger result, BigInteger base,
-                               BigInteger expt, BigInteger modulus));
-_TYPE( void ) BigIntegerModExpInt P((BigInteger result, BigInteger base,
-                                  unsigned int expt, BigInteger modulus));
-_TYPE( int ) BigIntegerCheckPrime P((BigInteger n));
-_TYPE( void ) BigIntegerFree P((BigInteger b));
-
-#endif
diff --git a/package/network/services/ead/src/tinysrp/t_getconf.c b/package/network/services/ead/src/tinysrp/t_getconf.c
deleted file mode 100644 (file)
index db6de61..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#include <stdio.h>
-
-#include "t_defines.h"
-#include "t_pwd.h"
-#include "t_read.h"
-
-/* Master builtin parameter storage object.  The default that tphrase
-uses is the last one. */
-
-static struct pre_struct {
-  struct t_preconf preconf;
-  int state;    /* 0 == uninitialized/first time */
-  unsigned char modbuf[MAXPARAMLEN];
-  unsigned char genbuf[MAXPARAMLEN];
-} pre_params[] = {
-  { { "2iQzj1CagQc/5ctbuJYLWlhtAsPHc7xWVyCPAKFRLWKADpASkqe9djWPFWTNTdeJtL8nAhImCn3Sr/IAdQ1FrGw0WvQUstPx3FO9KNcXOwisOQ1VlL.gheAHYfbYyBaxXL.NcJx9TUwgWDT0hRzFzqSrdGGTN3FgSTA1v4QnHtEygNj3eZ.u0MThqWUaDiP87nqha7XnT66bkTCkQ8.7T8L4KZjIImrNrUftedTTBi.WCi.zlrBxDuOM0da0JbUkQlXqvp0yvJAPpC11nxmmZOAbQOywZGmu9nhZNuwTlxjfIro0FOdthaDTuZRL9VL7MRPUDo/DQEyW.d4H.UIlzp",
-      "2",
-      NULL }, 0 },
-  { { "dUyyhxav9tgnyIg65wHxkzkb7VIPh4o0lkwfOKiPp4rVJrzLRYVBtb76gKlaO7ef5LYGEw3G.4E0jbMxcYBetDy2YdpiP/3GWJInoBbvYHIRO9uBuxgsFKTKWu7RnR7yTau/IrFTdQ4LY/q.AvoCzMxV0PKvD9Odso/LFIItn8PbTov3VMn/ZEH2SqhtpBUkWtmcIkEflhX/YY/fkBKfBbe27/zUaKUUZEUYZ2H2nlCL60.JIPeZJSzsu/xHDVcx",
-      "2",
-      NULL }, 0 },
-  { { "3NUKQ2Re4P5BEK0TLg2dX3gETNNNECPoe92h4OVMaDn3Xo/0QdjgG/EvM.hiVV1BdIGklSI14HA38Mpe5k04juR5/EXMU0r1WtsLhNXwKBlf2zEfoOh0zVmDvqInpU695f29Iy7sNW3U5RIogcs740oUp2Kdv5wuITwnIx84cnO.e467/IV1lPnvMCr0pd1dgS0a.RV5eBJr03Q65Xy61R",
-      "2",
-      NULL }, 0 },
-  { { "F//////////oG/QeY5emZJ4ncABWDmSqIa2JWYAPynq0Wk.fZiJco9HIWXvZZG4tU.L6RFDEaCRC2iARV9V53TFuJLjRL72HUI5jNPYNdx6z4n2wQOtxMiB/rosz0QtxUuuQ/jQYP.bhfya4NnB7.P9A6PHxEPJWV//////////",
-      "5",
-      "oakley prime 2" }, 0 },
-  { { "Ewl2hcjiutMd3Fu2lgFnUXWSc67TVyy2vwYCKoS9MLsrdJVT9RgWTCuEqWJrfB6uE3LsE9GkOlaZabS7M29sj5TnzUqOLJMjiwEzArfiLr9WbMRANlF68N5AVLcPWvNx6Zjl3m5Scp0BzJBz9TkgfhzKJZ.WtP3Mv/67I/0wmRZ",
-      "2",
-      NULL }, 0 },
-};
-
-_TYPE( int )
-t_getprecount()
-{
-  return (sizeof(pre_params) / sizeof(struct pre_struct));
-}
-
-static struct t_confent sysconf;
-
-/* id is index origin 1 */
-
-_TYPE( struct t_confent * )
-gettcid
-(id)
-     int id;
-{
-       struct t_preconf *tcp;
-
-       if (id <= 0 || id > t_getprecount()) {
-               return NULL;
-       }
-       tcp = t_getpreparam(id - 1);
-       sysconf.index = id;
-       sysconf.modulus = tcp->modulus;
-       sysconf.generator = tcp->generator;
-
-       return &sysconf;
-}
-
-_TYPE( struct t_preconf * )
-t_getpreparam(idx)
-     int idx;
-{
-  if(pre_params[idx].state == 0) {
-    /* Wire up storage */
-    pre_params[idx].preconf.modulus.data = pre_params[idx].modbuf;
-    pre_params[idx].preconf.generator.data = pre_params[idx].genbuf;
-
-    /* Convert from b64 to t_num */
-    pre_params[idx].preconf.modulus.len = t_fromb64(pre_params[idx].preconf.modulus.data, pre_params[idx].preconf.mod_b64);
-    pre_params[idx].preconf.generator.len = t_fromb64(pre_params[idx].preconf.generator.data, pre_params[idx].preconf.gen_b64);
-
-    pre_params[idx].state = 1;
-  }
-  return &(pre_params[idx].preconf);
-}
diff --git a/package/network/services/ead/src/tinysrp/t_getpass.c b/package/network/services/ead/src/tinysrp/t_getpass.c
deleted file mode 100644 (file)
index 6ae7fca..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright 1990 - 1995, Julianne Frances Haugh
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Julianne F. Haugh nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "t_defines.h"
-#ifdef _WIN32
-#include <windows.h>
-#include <io.h>
-#endif /* _WIN32 */
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#include <signal.h>
-#include <stdio.h>
-
-static  int     sig_caught;
-#ifdef HAVE_SIGACTION
-static  struct  sigaction sigact;
-#endif
-
-/*ARGSUSED*/
-static RETSIGTYPE
-sig_catch (sig)
-int     sig;
-{
-       sig_caught = 1;
-}
-
-_TYPE( int )
-t_getpass (buf, maxlen, prompt)
-       char *buf;
-       unsigned maxlen;
-       const char *prompt;
-{
-       char    *cp;
-#ifdef _WIN32
-    HANDLE handle = (HANDLE) _get_osfhandle(_fileno(stdin));
-    DWORD  mode;
-
-    GetConsoleMode( handle, &mode );
-    SetConsoleMode( handle, mode & ~ENABLE_ECHO_INPUT );
-
-    if(fputs(prompt, stdout) == EOF ||
-       fgets(buf, maxlen, stdin) == NULL) {
-       SetConsoleMode(handle,mode);
-       return -1;
-    }
-    cp = buf + strlen(buf) - 1;
-    if ( *cp == 0x0a )
-       *cp = '\0';
-    printf("\n");
-    SetConsoleMode(handle,mode);
-#else
-       FILE    *fp;
-       int     tty_opened = 0;
-
-#ifdef HAVE_SIGACTION
-       struct  sigaction old_sigact;
-#else
-       RETSIGTYPE      (*old_signal)();
-#endif
-       TERMIO  new_modes;
-       TERMIO  old_modes;
-
-       /*
-        * set a flag so the SIGINT signal can be re-sent if it
-        * is caught
-        */
-
-       sig_caught = 0;
-
-       /*
-        * if /dev/tty can't be opened, getpass() needs to read
-        * from stdin instead.
-        */
-
-       if ((fp = fopen ("/dev/tty", "r")) == 0) {
-               fp = stdin;
-               setbuf (fp, (char *) 0);
-       } else {
-               tty_opened = 1;
-       }
-
-       /*
-        * the current tty modes must be saved so they can be
-        * restored later on.  echo will be turned off, except
-        * for the newline character (BSD has to punt on this)
-        */
-
-       if (GTTY (fileno (fp), &new_modes))
-               return -1;
-
-       old_modes = new_modes;
-
-#ifdef HAVE_SIGACTION
-       sigact.sa_handler = sig_catch;
-       (void) sigaction (SIGINT, &sigact, &old_sigact);
-#else
-       old_signal = signal (SIGINT, sig_catch);
-#endif
-
-#ifdef USE_SGTTY
-       new_modes.sg_flags &= ~ECHO;
-#else
-       new_modes.c_iflag &= ~IGNCR;
-       new_modes.c_iflag |= ICRNL;
-       new_modes.c_oflag |= OPOST|ONLCR;
-       new_modes.c_lflag &= ~(ECHO|ECHOE|ECHOK);
-       new_modes.c_lflag |= ICANON|ECHONL;
-#endif
-
-       if (STTY (fileno (fp), &new_modes))
-               goto out;
-
-       /*
-        * the prompt is output, and the response read without
-        * echoing.  the trailing newline must be removed.  if
-        * the fgets() returns an error, a NULL pointer is
-        * returned.
-        */
-
-       if (fputs (prompt, stdout) == EOF)
-               goto out;
-
-       (void) fflush (stdout);
-
-       if (fgets (buf, maxlen, fp) == buf) {
-               if ((cp = strchr (buf, '\n')))
-                       *cp = '\0';
-               else
-                       buf[maxlen - 1] = '\0';
-
-#ifdef USE_SGTTY
-               putc ('\n', stdout);
-#endif
-       }
-       else buf[0] = '\0';
-out:
-       /*
-        * the old SIGINT handler is restored after the tty
-        * modes.  then /dev/tty is closed if it was opened in
-        * the beginning.  finally, if a signal was caught it
-        * is sent to this process for normal processing.
-        */
-
-       if (STTY (fileno (fp), &old_modes))
-       { memset (buf, 0, maxlen); return -1; }
-
-#ifdef HAVE_SIGACTION
-       (void) sigaction (SIGINT, &old_sigact, NULL);
-#else
-       (void) signal (SIGINT, old_signal);
-#endif
-
-       if (tty_opened)
-               (void) fclose (fp);
-
-       if (sig_caught) {
-               kill (getpid (), SIGINT);
-               memset (buf, 0, maxlen);
-               return -1;
-       }
-#endif
-
-       return 0;
-}
diff --git a/package/network/services/ead/src/tinysrp/t_math.c b/package/network/services/ead/src/tinysrp/t_math.c
deleted file mode 100644 (file)
index 20161a0..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#include <stdio.h>
-#include <sys/types.h>
-
-#include "config.h"
-
-#include "bn.h"
-typedef BIGNUM * BigInteger;
-#define MATH_PRIV
-
-#include "t_defines.h"
-#include "t_pwd.h"
-
-/* Math library interface stubs */
-
-BigInteger
-BigIntegerFromInt(n)
-     unsigned int n;
-{
-  BIGNUM * a = BN_new();
-  BN_set_word(a, n);
-  return a;
-}
-
-BigInteger
-BigIntegerFromBytes(bytes, length)
-     unsigned char * bytes;
-     int length;
-{
-  BIGNUM * a = BN_new();
-  BN_bin2bn(bytes, length, a);
-  return a;
-}
-
-int
-BigIntegerToBytes(src, dest)
-     BigInteger src;
-     unsigned char * dest;
-{
-  return BN_bn2bin(src, dest);
-}
-
-int
-BigIntegerCmp(c1, c2)
-     BigInteger c1, c2;
-{
-  return BN_cmp(c1, c2);
-}
-
-int
-BigIntegerCmpInt(c1, c2)
-     BigInteger c1;
-     unsigned int c2;
-{
-  BIGNUM * a = BN_new();
-  int rv;
-  BN_set_word(a, c2);
-  rv = BN_cmp(c1, a);
-  BN_free(a);
-  return rv;
-}
-
-void
-BigIntegerAdd(result, a1, a2)
-     BigInteger result, a1, a2;
-{
-  BN_add(result, a1, a2);
-}
-
-void
-BigIntegerAddInt(result, a1, a2)
-     BigInteger result, a1;
-     unsigned int a2;
-{
-  BIGNUM * a = BN_new();
-  BN_set_word(a, a2);
-  BN_add(result, a1, a);
-  BN_free(a);
-}
-
-void
-BigIntegerSub(result, s1, s2)
-     BigInteger result, s1, s2;
-{
-  BN_sub(result, s1, s2);
-}
-
-void
-BigIntegerMulInt(result, m1, m2)
-     BigInteger result, m1;
-     unsigned int m2;
-{
-  BN_CTX * ctx = BN_CTX_new();
-  BIGNUM * m = BN_new();
-  BN_set_word(m, m2);
-  BN_mul(result, m1, m, ctx);
-  BN_CTX_free(ctx);
-}
-
-void
-BigIntegerModMul(r, m1, m2, modulus)
-     BigInteger r, m1, m2, modulus;
-{
-  BN_CTX * ctx = BN_CTX_new();
-  BN_mod_mul(r, m1, m2, modulus, ctx);
-  BN_CTX_free(ctx);
-}
-
-void
-BigIntegerModExp(r, b, e, m)
-     BigInteger r, b, e, m;
-{
-  BN_CTX * ctx = BN_CTX_new();
-  BN_mod_exp(r, b, e, m, ctx);
-  BN_CTX_free(ctx);
-}
-
-void
-BigIntegerModExpInt(r, b, e, m)
-     BigInteger r, b;
-     unsigned int e;
-     BigInteger m;
-{
-  BN_CTX * ctx = BN_CTX_new();
-  BIGNUM * p = BN_new();
-  BN_set_word(p, e);
-  BN_mod_exp(r, b, p, m, ctx);
-  BN_free(p);
-  BN_CTX_free(ctx);
-}
-
-void
-BigIntegerFree(b)
-     BigInteger b;
-{
-  BN_free(b);
-}
diff --git a/package/network/services/ead/src/tinysrp/t_misc.c b/package/network/services/ead/src/tinysrp/t_misc.c
deleted file mode 100644 (file)
index a23986f..0000000
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#include "t_defines.h"
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#include "t_sha.h"
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-static unsigned char randpool[SHA_DIGESTSIZE], randout[SHA_DIGESTSIZE];
-static unsigned long randcnt = 0;
-static unsigned int outpos = 0;
-SHA1_CTX randctxt;
-
-/*
- * t_envhash - Generate a 160-bit SHA hash of the environment
- *
- * This routine performs an SHA hash of all the "name=value" pairs
- * in the environment concatenated together and dumps them in the
- * output.  While it is true that anyone on the system can see
- * your environment, someone not on the system will have a very
- * difficult time guessing it, especially since some systems play
- * tricks with variable ordering and sometimes define quirky
- * environment variables like $WINDOWID or $_.
- */
-extern char ** environ;
-
-static void
-t_envhash(out)
-     unsigned char * out;
-{
-  char ** ptr;
-  char ebuf[256];
-  SHA1_CTX ctxt;
-
-  SHA1Init(&ctxt);
-  for(ptr = environ; *ptr; ++ptr) {
-    strncpy(ebuf, *ptr, 255);
-    ebuf[255] = '\0';
-    SHA1Update(&ctxt, ebuf, strlen(ebuf));
-  }
-  SHA1Final(out, &ctxt);
-}
-
-/*
- * t_fshash - Generate a 160-bit SHA hash from the file system
- *
- * This routine climbs up the directory tree from the current
- * directory, running stat() on each directory until it hits the
- * root directory.  This information is sensitive to the last
- * access/modification times of all the directories above you,
- * so someone who lists one of those directories injects some
- * entropy into the system.  Obviously, this hash is very sensitive
- * to your current directory when the program is run.
- *
- * For good measure, it also performs an fstat on the standard input,
- * usually your tty, throws that into the buffer, creates a file in
- * /tmp (the inode is unpredictable on a busy system), and runs stat()
- * on that before deleting it.
- *
- * The entire buffer is run once through SHA to obtain the final result.
- */
-static void
-t_fshash(out)
-     unsigned char * out;
-{
-  char dotpath[128];
-  struct stat st;
-  SHA1_CTX ctxt;
-  int i, pinode;
-  dev_t pdev;
-
-  SHA1Init(&ctxt);
-  if(stat(".", &st) >= 0) {
-    SHA1Update(&ctxt, (unsigned char *) &st, sizeof(st));
-    pinode = st.st_ino;
-    pdev = st.st_dev;
-    strcpy(dotpath, "..");
-    for(i = 0; i < 40; ++i) {
-      if(stat(dotpath, &st) < 0)
-       break;
-      if(st.st_ino == pinode && st.st_dev == pdev)
-       break;
-      SHA1Update(&ctxt, (unsigned char *) &st, sizeof(st));
-      pinode = st.st_ino;
-      pdev = st.st_dev;
-      strcat(dotpath, "/..");
-    }
-  }
-
-  if(fstat(0, &st) >= 0)
-    SHA1Update(&ctxt, (unsigned char *) &st, sizeof(st));
-
-  sprintf(dotpath, "/tmp/rnd.%d", getpid());
-  if(creat(dotpath, 0600) >= 0 && stat(dotpath, &st) >= 0)
-    SHA1Update(&ctxt, (unsigned char *) &st, sizeof(st));
-  unlink(dotpath);
-
-  SHA1Final(out, &ctxt);
-}
-
-/*
- * Generate a high-entropy seed for the strong random number generator.
- * This uses a wide variety of quickly gathered and somewhat unpredictable
- * system information.  The 'preseed' structure is assembled from:
- *
- *   The system time in seconds
- *   The system time in microseconds
- *   The current process ID
- *   The parent process ID
- *   A hash of the user's environment
- *   A hash gathered from the file system
- *   Input from a random device, if available
- *   Timings of system interrupts
- *
- * The entire structure (60 bytes on most systems) is fed to SHA to produce
- * a 160-bit seed for the strong random number generator.  It is believed
- * that in the worst case (on a quiet system with no random device versus
- * an attacker who has access to the system already), the seed contains at
- * least about 80 bits of entropy.  Versus an attacker who does not have
- * access to the system, the entropy should be slightly over 128 bits.
- */
-static char initialized = 0;
-
-static struct {
-  unsigned int trand1;
-  time_t sec;
-  time_t usec;
-  short pid;
-  short ppid;
-  unsigned char envh[SHA_DIGESTSIZE];
-  unsigned char fsh[SHA_DIGESTSIZE];
-  unsigned char devrand[20];
-  unsigned int trand2;
-} preseed;
-
-unsigned long raw_truerand();
-
-void
-t_initrand()
-{
-  SHA1_CTX ctxt;
-#ifdef USE_FTIME
-  struct timeb t;
-#else
-  struct timeval t;
-#endif
-  int i, r=0;
-
-  if(initialized)
-    return;
-
-  initialized = 1;
-
-  i = open("/dev/urandom", O_RDONLY);
-  if(i > 0) {
-    r += read(i, preseed.devrand, sizeof(preseed.devrand));
-    close(i);
-  }
-
-  /* Resort to truerand only if desperate for some Real entropy */
-  if(r == 0)
-    preseed.trand1 = raw_truerand();
-
-#ifdef USE_FTIME
-  ftime(&t);
-#else
-  gettimeofday(&t, NULL);
-#endif
-
-#ifdef USE_FTIME
-  preseed.sec = t.time;
-  preseed.usec = t.millitm;
-#else
-  preseed.sec = t.tv_sec;
-  preseed.usec = t.tv_usec;
-#endif
-  preseed.pid = getpid();
-  preseed.ppid = getppid();
-  t_envhash(preseed.envh);
-  t_fshash(preseed.fsh);
-
-  if(r == 0)
-    preseed.trand2 = raw_truerand();
-
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, (unsigned char *) &preseed, sizeof(preseed));
-  SHA1Final(randpool, &ctxt);
-  outpos = 0;
-  memset((unsigned char *) &preseed, 0, sizeof(preseed));
-  memset((unsigned char *) &ctxt, 0, sizeof(ctxt));
-}
-
-#define NUM_RANDOMS 12
-
-/*
- * The strong random number generator.  This uses a 160-bit seed
- * and uses SHA-1 in a feedback configuration to generate successive
- * outputs.  If S[0] is set to the initial seed, then:
- *
- *         S[i+1] = SHA-1(i || S[i])
- *         A[i] = SHA-1(S[i])
- *
- * where the A[i] are the output blocks starting with i=0.
- * Each cycle generates 20 bytes of new output.
- */
-_TYPE( void )
-t_random(data, size)
-     unsigned char * data;
-     unsigned size;
-{
-  if(!initialized)
-    t_initrand();
-
-  if(size <= 0)         /* t_random(NULL, 0) forces seed initialization */
-    return;
-
-  while(size > outpos) {
-    if(outpos > 0) {
-      memcpy(data, randout + (sizeof(randout) - outpos), outpos);
-      data += outpos;
-      size -= outpos;
-    }
-
-    /* Recycle */
-    SHA1Init(&randctxt);
-    SHA1Update(&randctxt, randpool, sizeof(randpool));
-    SHA1Final(randout, &randctxt);
-    SHA1Init(&randctxt);
-    SHA1Update(&randctxt, (unsigned char *) &randcnt, sizeof(randcnt));
-    SHA1Update(&randctxt, randpool, sizeof(randpool));
-    SHA1Final(randpool, &randctxt);
-    ++randcnt;
-    outpos = sizeof(randout);
-  }
-
-  if(size > 0) {
-    memcpy(data, randout + (sizeof(randout) - outpos), size);
-    outpos -= size;
-  }
-}
-
-/*
- * The interleaved session-key hash.  This separates the even and the odd
- * bytes of the input (ignoring the first byte if the input length is odd),
- * hashes them separately, and re-interleaves the two outputs to form a
- * single 320-bit value.
- */
-_TYPE( unsigned char * )
-t_sessionkey(key, sk, sklen)
-     unsigned char * key;
-     unsigned char * sk;
-     unsigned sklen;
-{
-  unsigned i, klen;
-  unsigned char * hbuf;
-  unsigned char hout[SHA_DIGESTSIZE];
-  SHA1_CTX ctxt;
-
-  while(sklen > 0 && *sk == 0) {        /* Skip leading 0's */
-    --sklen;
-    ++sk;
-  }
-
-  klen = sklen / 2;
-  if((hbuf = malloc(klen * sizeof(char))) == 0)
-    return 0;
-
-  for(i = 0; i < klen; ++i)
-    hbuf[i] = sk[sklen - 2 * i - 1];
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, hbuf, klen);
-  SHA1Final(hout, &ctxt);
-  for(i = 0; i < sizeof(hout); ++i)
-    key[2 * i] = hout[i];
-
-  for(i = 0; i < klen; ++i)
-    hbuf[i] = sk[sklen - 2 * i - 2];
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, hbuf, klen);
-  SHA1Final(hout, &ctxt);
-  for(i = 0; i < sizeof(hout); ++i)
-    key[2 * i + 1] = hout[i];
-
-  memset(hout, 0, sizeof(hout));
-  memset(hbuf, 0, klen);
-  free(hbuf);
-  return key;
-}
diff --git a/package/network/services/ead/src/tinysrp/t_pw.c b/package/network/services/ead/src/tinysrp/t_pw.c
deleted file mode 100644 (file)
index 18e929b..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright (c) 1997-2000  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#include "t_defines.h"
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef USE_HOMEDIR
-#include <pwd.h>
-#endif
-#ifdef WIN32
-#include <io.h>
-#endif
-
-#include "t_pwd.h"
-#include "t_read.h"
-#include "t_sha.h"
-#include "t_server.h"
-
-static struct t_pw * syspw = NULL;
-static struct t_passwd tpass;
-
-_TYPE( struct t_server * )
-t_serveropen(username)
-     const char * username;
-{
-  struct t_passwd * p;
-  p = gettpnam(username);
-  if(p == NULL) {
-    return NULL;
-  } else {
-    return t_serveropenraw(&p->tp, &p->tc);
-  }
-}
-
-
-/* t_openpw(NULL) is deprecated - use settpent()/gettpnam() instead */
-
-_TYPE( struct t_pw * )
-t_openpw(fp)
-     FILE * fp;
-{
-  struct t_pw * tpw;
-  char close_flag = 0;
-
-  if(fp == NULL) { /* Deprecated */
-    if((fp = fopen(DEFAULT_PASSWD, "r")) == NULL)
-      return NULL;
-    close_flag = 1;
-  }
-  else
-    close_flag = 0;
-
-  if((tpw = malloc(sizeof(struct t_pw))) == NULL)
-    return NULL;
-  tpw->instream = fp;
-  tpw->close_on_exit = close_flag;
-  tpw->state = FILE_ONLY;
-
-  return tpw;
-}
-
-_TYPE( struct t_pw * )
-t_openpwbyname(pwname)
-     const char * pwname;
-{
-  FILE * fp;
-  struct t_pw * t;
-
-  if(pwname == NULL)            /* Deprecated */
-    return t_openpw(NULL);
-
-  if((fp = fopen(pwname, "r")) == NULL)
-    return NULL;
-
-  t = t_openpw(fp);
-  t->close_on_exit = 1;
-  return t;
-}
-
-_TYPE( void )
-t_closepw(tpw)
-     struct t_pw * tpw;
-{
-  if(tpw->close_on_exit)
-    fclose(tpw->instream);
-  free(tpw);
-}
-
-_TYPE( void )
-t_rewindpw(tpw)
-     struct t_pw * tpw;
-{
-#ifdef ENABLE_YP
-  if(tpw->state == IN_NIS)
-    tpw->state = FILE_NIS;
-#endif
-  rewind(tpw->instream);
-}
-
-#ifdef ENABLE_YP
-static void
-savepwent(tpw, pwent)
-     struct t_pw * tpw;
-     struct t_pwent *pwent;
-{
-  tpw->pebuf.name = tpw->userbuf;
-  tpw->pebuf.password.data = tpw->pwbuf;
-  tpw->pebuf.salt.data = tpw->saltbuf;
-  strcpy(tpw->pebuf.name, pwent->name);
-  tpw->pebuf.password.len = pwent->password.len;
-  memcpy(tpw->pebuf.password.data, pwent->password.data, pwent->password.len);
-  tpw->pebuf.salt.len = pwent->salt.len;
-  memcpy(tpw->pebuf.salt.data, pwent->salt.data, pwent->salt.len);
-  tpw->pebuf.index = pwent->index;
-}
-#endif /* ENABLE_YP */
-
-_TYPE( struct t_pwent * )
-t_getpwbyname(tpw, user)
-     struct t_pw * tpw;
-     const char * user;
-{
-  char indexbuf[16];
-  char passbuf[MAXB64PARAMLEN];
-  char saltstr[MAXB64SALTLEN];
-  char username[MAXUSERLEN];
-#ifdef ENABLE_YP
-  struct t_passwd * nisent;
-#endif
-
-  t_rewindpw(tpw);
-
-  while(t_nextfield(tpw->instream, username, MAXUSERLEN) > 0) {
-#ifdef ENABLE_YP
-    if(tpw->state == FILE_NIS && *username == '+') {
-      if(strlen(username) == 1 || strcmp(user, username+1) == 0) {
-       nisent = _yp_gettpnam(user);    /* Entry is +username or + */
-       if(nisent != NULL) {
-         savepwent(tpw, &nisent->tp);
-         return &tpw->pebuf;
-       }
-      }
-    }
-#endif
-    if(strcmp(user, username) == 0)
-      if(t_nextfield(tpw->instream, passbuf, MAXB64PARAMLEN) > 0 &&
-        (tpw->pebuf.password.len = t_fromb64(tpw->pwbuf, passbuf)) > 0 &&
-        t_nextfield(tpw->instream, saltstr, MAXB64SALTLEN) > 0 &&
-        (tpw->pebuf.salt.len = t_fromb64(tpw->saltbuf, saltstr)) > 0 &&
-        t_nextfield(tpw->instream, indexbuf, 16) > 0 &&
-        (tpw->pebuf.index = atoi(indexbuf)) > 0) {
-       strcpy(tpw->userbuf, username);
-       tpw->pebuf.name = tpw->userbuf;
-       tpw->pebuf.password.data = tpw->pwbuf;
-       tpw->pebuf.salt.data = tpw->saltbuf;
-       t_nextline(tpw->instream);
-       return &tpw->pebuf;
-      }
-    if(t_nextline(tpw->instream) < 0)
-      return NULL;
-  }
-  return NULL;
-}
-
-/* System password file accessors */
-
-static int
-pwinit()
-{
-  if(syspw == NULL) {
-    if((syspw = t_openpwbyname(DEFAULT_PASSWD)) == NULL)
-      return -1;
-    syspw->state = FILE_NIS;
-  }
-  return 0;
-}
-
-static void
-pwsetup(out, tpwd, tcnf)
-     struct t_passwd * out;
-     struct t_pwent * tpwd;
-     struct t_confent * tcnf;
-{
-  out->tp.name = tpwd->name;
-  out->tp.password.len = tpwd->password.len;
-  out->tp.password.data = tpwd->password.data;
-  out->tp.salt.len = tpwd->salt.len;
-  out->tp.salt.data = tpwd->salt.data;
-  out->tp.index = tpwd->index;
-
-  out->tc.index = tcnf->index;
-  out->tc.modulus.len = tcnf->modulus.len;
-  out->tc.modulus.data = tcnf->modulus.data;
-  out->tc.generator.len = tcnf->generator.len;
-  out->tc.generator.data = tcnf->generator.data;
-}
-
-_TYPE( struct t_passwd * )
-gettpnam
-(user)
-     const char * user;
-{
-  struct t_pwent * tpptr;
-  struct t_confent * tcptr;
-
-  if(pwinit() < 0)
-    return NULL;
-  tpptr = t_getpwbyname(syspw, user);
-  if(tpptr == NULL)
-    return NULL;
-  tcptr =
-    gettcid
-    (tpptr->index);
-  if(tcptr == NULL)
-    return NULL;
-  pwsetup(&tpass, tpptr, tcptr);
-  return &tpass;
-}
diff --git a/package/network/services/ead/src/tinysrp/t_pwd.h b/package/network/services/ead/src/tinysrp/t_pwd.h
deleted file mode 100644 (file)
index 73697be..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#ifndef T_PWD_H
-#define T_PWD_H
-
-#ifndef P
-#if defined (__STDC__) || defined (__cplusplus)
-#define P(x) x
-#else
-#define P(x) ()
-#endif
-#endif
-
-/*      For building dynamic link libraries under windows, windows NT
- *      using MSVC1.5 or MSVC2.0
- */
-
-#ifndef _DLLDECL
-#define _DLLDECL
-
-#ifdef MSVC15   /* MSVC1.5 support for 16 bit apps */
-#define _MSVC15EXPORT _export
-#define _MSVC20EXPORT
-#define _DLLAPI _export _pascal
-#define _TYPE(a) a _MSVC15EXPORT
-#define DLLEXPORT 1
-
-#elif MSVC20
-#define _MSVC15EXPORT
-#define _MSVC20EXPORT _declspec(dllexport)
-#define _DLLAPI
-#define _TYPE(a) _MSVC20EXPORT a
-#define DLLEXPORT 1
-
-#else                   /* Default, non-dll.  Use this for Unix or DOS */
-#define _MSVC15DEXPORT
-#define _MSVC20EXPORT
-#define _DLLAPI
-#define _TYPE(a) a
-#endif
-#endif
-
-#define MAXPARAMBITS    2048
-#define MAXPARAMLEN     ((MAXPARAMBITS + 7) / 8)
-#define MAXB64PARAMLEN  ((MAXPARAMBITS + 5) / 6 + 1)
-#define MAXHEXPARAMLEN  ((MAXPARAMBITS + 3) / 4 + 1)
-#define MAXOCTPARAMLEN  ((MAXPARAMBITS + 2) / 3 + 1)
-
-#define MAXUSERLEN      32
-#define MAXSALTLEN      32
-#define MAXB64SALTLEN   44      /* 256 bits in b64 + null */
-#define SALTLEN         10      /* Normally 80 bits */
-
-#define RESPONSE_LEN    20      /* 160-bit proof hashes */
-#define SESSION_KEY_LEN (2 * RESPONSE_LEN)      /* 320-bit session key */
-
-#define DEFAULT_PASSWD  "tpasswd"
-
-struct t_num {  /* Standard byte-oriented integer representation */
-  int len;
-  unsigned char * data;
-};
-
-struct t_preconf {      /* Structure returned by t_getpreparam() */
-  char * mod_b64;
-  char * gen_b64;
-  char * comment;
-
-  struct t_num modulus;
-  struct t_num generator;
-};
-
-/*
- * The built-in (known good) parameters access routines
- *
- * "t_getprecount" returns the number of precompiled parameter sets.
- * "t_getpreparam" returns the indicated parameter set.
- * Memory is statically allocated - callers need not perform any memory mgmt.
- */
-_TYPE( int ) t_getprecount();
-_TYPE( struct t_preconf * ) t_getpreparam P((int));
-
-struct t_confent {      /* One configuration file entry (index, N, g) */
-  int index;
-  struct t_num modulus;
-  struct t_num generator;
-};
-
-struct t_conf {         /* An open configuration file */
-  FILE * instream;
-  char close_on_exit;
-  unsigned char modbuf[MAXPARAMLEN];
-  unsigned char genbuf[MAXPARAMLEN];
-  struct t_confent tcbuf;
-};
-
-/*
- * The configuration file routines are designed along the lines of the
- * "getpw" functions in the standard C library.
- *
- * "t_openconf" accepts a stdio stream and interprets it as a config file.
- * "t_openconfbyname" accepts a filename and does the same thing.
- * "t_closeconf" closes the config file.
- * "t_getconfent" fetches the next sequential configuration entry.
- * "t_getconfbyindex" fetches the configuration entry whose index
- *   matches the one supplied, or NULL if one can't be found.
- * "t_getconflast" fetches the last configuration entry in the file.
- * "t_makeconfent" generates a set of configuration entry parameters
- *   randomly.
- * "t_newconfent" returns an empty configuration entry.
- * "t_cmpconfent" compares two configuration entries a la strcmp.
- * "t_checkconfent" verifies that a set of configuration parameters
- *   are suitable.  N must be prime and should be a safe prime.
- * "t_putconfent" writes a configuration entry to a stream.
- */
-_TYPE( struct t_conf * ) t_openconf P((FILE *));
-_TYPE( struct t_conf * ) t_openconfbyname P((const char *));
-_TYPE( void ) t_closeconf P((struct t_conf *));
-_TYPE( void ) t_rewindconf P((struct t_conf *));
-_TYPE( struct t_confent * ) t_getconfent P((struct t_conf *));
-_TYPE( struct t_confent * ) t_getconfbyindex P((struct t_conf *, int));
-_TYPE( struct t_confent * ) t_getconflast P((struct t_conf *));
-_TYPE( struct t_confent * ) t_makeconfent P((struct t_conf *, int));
-_TYPE( struct t_confent * ) t_makeconfent_c P((struct t_conf *, int));
-_TYPE( struct t_confent * ) t_newconfent P((struct t_conf *));
-_TYPE( int ) t_cmpconfent P((const struct t_confent *, const struct t_confent *));
-_TYPE( int ) t_checkconfent P((const struct t_confent *));
-_TYPE( void ) t_putconfent P((const struct t_confent *, FILE *));
-
-/* libc-style system conf file access */
-_TYPE( struct t_confent *) gettcent();
-_TYPE( struct t_confent *) gettcid P((int));
-_TYPE( void ) settcent();
-_TYPE( void ) endtcent();
-
-#ifdef ENABLE_NSW
-extern struct t_confent * _gettcent();
-extern struct t_confent * _gettcid P((int));
-extern void _settcent();
-extern void _endtcent();
-#endif
-
-/* A hack to support '+'-style entries in the passwd file */
-
-typedef enum fstate {
-  FILE_ONLY,    /* Ordinary file, don't consult NIS ever */
-  FILE_NIS,     /* Currently accessing file, use NIS if encountered */
-  IN_NIS,       /* Currently in a '+' entry; use NIS for getXXent */
-} FILE_STATE;
-
-struct t_pwent {        /* A single password file entry */
-  char * name;
-  struct t_num password;
-  struct t_num salt;
-  int index;
-};
-
-struct t_pw {           /* An open password file */
-  FILE * instream;
-  char close_on_exit;
-  FILE_STATE state;
-  char userbuf[MAXUSERLEN];
-  unsigned char pwbuf[MAXPARAMLEN];
-  unsigned char saltbuf[SALTLEN];
-  struct t_pwent pebuf;
-};
-
-/*
- * The password manipulation routines are patterned after the getpw*
- * standard C library function calls.
- *
- * "t_openpw" reads a stream as if it were a password file.
- * "t_openpwbyname" opens the named file as a password file.
- * "t_closepw" closes an open password file.
- * "t_rewindpw" starts the internal file pointer from the beginning
- *   of the password file.
- * "t_getpwent" retrieves the next sequential password entry.
- * "t_getpwbyname" looks up the password entry corresponding to the
- *   specified user.
- * "t_makepwent" constructs a password entry from a username, password,
- *   numeric salt, and configuration entry.
- * "t_putpwent" writes a password entry to a stream.
- */
-_TYPE( struct t_pw * ) t_openpw P((FILE *));
-_TYPE( struct t_pw * ) t_openpwbyname P((const char *));
-_TYPE( void ) t_closepw P((struct t_pw *));
-_TYPE( void ) t_rewindpw P((struct t_pw *));
-_TYPE( struct t_pwent * ) t_getpwent P((struct t_pw *));
-_TYPE( struct t_pwent * ) t_getpwbyname P((struct t_pw *, const char *));
-_TYPE( struct t_pwent * ) t_makepwent P((struct t_pw *, const char *,
-                                        const char *, const struct t_num *,
-                                        const struct t_confent *));
-_TYPE( void ) t_putpwent P((const struct t_pwent *, FILE *));
-
-struct t_passwd {
-  struct t_pwent tp;
-  struct t_confent tc;
-};
-
-/* libc-style system password file access */
-_TYPE( struct t_passwd * ) gettpent();
-_TYPE( struct t_passwd * ) gettpnam P((const char *));
-_TYPE( void ) settpent();
-_TYPE( void ) endtpent();
-
-#ifdef ENABLE_NSW
-extern struct t_passwd * _gettpent();
-extern struct t_passwd * _gettpnam P((const char *));
-extern void _settpent();
-extern void _endtpent();
-#endif
-
-/*
- * Utility functions
- *
- * "t_verifypw" accepts a username and password, and checks against the
- *   system password file to see if the password for that user is correct.
- *   Returns > 0 if it is correct, 0 if not, and -1 if some error occurred
- *   (i.e. the user doesn't exist on the system).  This is intended ONLY
- *   for local authentication; for remote authentication, look at the
- *   t_client and t_server source.  (That's the whole point of SRP!)
- * "t_changepw" modifies the specified file, substituting the given password
- *   entry for the one already in the file.  If no matching entry is found,
- *   the new entry is simply appended to the file.
- * "t_deletepw" removes the specified user from the specified file.
- */
-_TYPE( int ) t_verifypw P((const char *, const char *));
-_TYPE( int ) t_changepw P((const char *, const struct t_pwent *));
-_TYPE( int ) t_deletepw P((const char *, const char *));
-
-/* Conversion utilities */
-
-/*
- * All these calls accept output as the first parameter.  In the case of
- * t_tohex and t_tob64, the last argument is the length of the byte-string
- * input.
- */
-_TYPE( char * t_tohex ) P((char *, char *, unsigned));
-_TYPE( int ) t_fromhex P((char *, char *));
-_TYPE( char * ) t_tob64 P((char *, char *, unsigned));
-_TYPE( int ) t_fromb64 P((char *, char *));
-
-/* Miscellaneous utilities */
-
-/*
- * "t_random" is a cryptographic random number generator, which is seeded
- *   from various high-entropy sources and uses a one-way hash function
- *   in a feedback configuration.
- * "t_sessionkey" is the interleaved hash used to generate session keys
- *   from a large integer.
- * "t_getpass" reads a password from the terminal without echoing.
- */
-_TYPE( void ) t_random P((unsigned char *, unsigned));
-_TYPE( void ) t_stronginitrand();
-_TYPE( unsigned char * )
-  t_sessionkey P((unsigned char *, unsigned char *, unsigned));
-_TYPE( int ) t_getpass P((char *, unsigned, const char *));
-
-/*
- * Return value of t_checkprime:
- *   < 0 : not prime
- *   = 0 : prime, but not safe
- *   > 0 : safe
- */
-#define NUM_NOTPRIME    -1
-#define NUM_NOTSAFE     0
-#define NUM_SAFE        1
-
-_TYPE( int ) t_checkprime P((const struct t_num *));
-
-#endif
diff --git a/package/network/services/ead/src/tinysrp/t_read.c b/package/network/services/ead/src/tinysrp/t_read.c
deleted file mode 100644 (file)
index 087b7d5..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND, 
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#include <stdio.h>
-#include "config.h"
-
-#define FSEPARATOR     ':'
-
-int
-t_nextfield(fp, s, max)
-FILE * fp;
-char * s;
-unsigned max;
-{
-  int c, count = 0;
-
-  while((c = getc(fp)) != EOF) {
-    if(c == '\n') {
-      ungetc(c, fp);
-      break;
-    }
-    else if(c == FSEPARATOR)
-      break;
-    if(count < max - 1) {
-      *s++ = c;
-      ++count;
-    }
-  }
-  *s++ = '\0';
-  return count;
-}
-
-int
-t_nextline(fp)
-FILE * fp;
-{
-  int c;
-
-  while((c = getc(fp)) != '\n')
-    if(c == EOF)
-      return -1;
-  return 0;
-}
diff --git a/package/network/services/ead/src/tinysrp/t_read.h b/package/network/services/ead/src/tinysrp/t_read.h
deleted file mode 100644 (file)
index e621f79..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND, 
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#ifndef _T_READ_H_
-#define _T_READ_H_
-
-#if     !defined(P)
-#ifdef  __STDC__
-#define P(x)    x
-#else
-#define P(x)    ()
-#endif
-#endif
-
-extern int t_nextfield P((FILE *, char *, unsigned));
-extern int t_nextline P((FILE *));
-#endif
diff --git a/package/network/services/ead/src/tinysrp/t_server.c b/package/network/services/ead/src/tinysrp/t_server.c
deleted file mode 100644 (file)
index 6ab501b..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#include <stdio.h>
-#include "t_defines.h"
-#include "t_pwd.h"
-#include "t_server.h"
-
-_TYPE( struct t_server * )
-t_serveropenraw(ent, tce)
-     struct t_pwent * ent;
-     struct t_confent * tce;
-{
-  struct t_server * ts;
-  unsigned char buf1[SHA_DIGESTSIZE], buf2[SHA_DIGESTSIZE];
-  SHA1_CTX ctxt;
-  int i;
-
-  if((ts = malloc(sizeof(struct t_server))) == 0)
-    return 0;
-
-  SHA1Init(&ts->ckhash);
-
-  ts->index = ent->index;
-  ts->n.len = tce->modulus.len;
-  ts->n.data = ts->nbuf;
-  memcpy(ts->n.data, tce->modulus.data, ts->n.len);
-
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, ts->n.data, ts->n.len);
-  SHA1Final(buf1, &ctxt);
-
-  ts->g.len = tce->generator.len;
-  ts->g.data = ts->gbuf;
-  memcpy(ts->g.data, tce->generator.data, ts->g.len);
-
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, ts->g.data, ts->g.len);
-  SHA1Final(buf2, &ctxt);
-
-  for(i = 0; i < sizeof(buf1); ++i)
-    buf1[i] ^= buf2[i];
-
-  SHA1Update(&ts->ckhash, buf1, sizeof(buf1));
-
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, ent->name, strlen(ent->name));
-  SHA1Final(buf1, &ctxt);
-
-  SHA1Update(&ts->ckhash, buf1, sizeof(buf1));
-
-  ts->v.len = ent->password.len;
-  ts->v.data = ts->vbuf;
-  memcpy(ts->v.data, ent->password.data, ts->v.len);
-
-  ts->s.len = ent->salt.len;
-  ts->s.data = ts->saltbuf;
-  memcpy(ts->s.data, ent->salt.data, ts->s.len);
-
-  SHA1Update(&ts->ckhash, ts->s.data, ts->s.len);
-
-  ts->b.data = ts->bbuf;
-  ts->B.data = ts->Bbuf;
-
-  SHA1Init(&ts->hash);
-  SHA1Init(&ts->oldhash);
-  SHA1Init(&ts->oldckhash);
-
-  return ts;
-}
-
-_TYPE( struct t_num * )
-t_servergenexp(ts)
-     struct t_server * ts;
-{
-  BigInteger b, B, v, n, g;
-
-  if(ts->n.len < BLEN)
-    ts->b.len = ts->n.len;
-  else
-    ts->b.len = BLEN;
-
-  t_random(ts->b.data, ts->b.len);
-  b = BigIntegerFromBytes(ts->b.data, ts->b.len);
-  n = BigIntegerFromBytes(ts->n.data, ts->n.len);
-  g = BigIntegerFromBytes(ts->g.data, ts->g.len);
-  B = BigIntegerFromInt(0);
-  BigIntegerModExp(B, g, b, n);
-
-  v = BigIntegerFromBytes(ts->v.data, ts->v.len);
-  BigIntegerAdd(B, B, v);
-  if(BigIntegerCmp(B, n) > 0)
-    BigIntegerSub(B, B, n);
-
-  ts->B.len = BigIntegerToBytes(B, ts->B.data);
-
-  BigIntegerFree(v);
-  BigIntegerFree(B);
-  BigIntegerFree(b);
-  BigIntegerFree(g);
-  BigIntegerFree(n);
-
-  SHA1Update(&ts->oldckhash, ts->B.data, ts->B.len);
-
-  return &ts->B;
-}
-
-_TYPE( unsigned char * )
-t_servergetkey(ts, clientval)
-     struct t_server * ts;
-     struct t_num * clientval;
-{
-  BigInteger n, v, A, b, prod, res, S;
-  SHA1_CTX ctxt;
-  unsigned char sbuf[MAXPARAMLEN];
-  unsigned char dig[SHA_DIGESTSIZE];
-  unsigned slen;
-  unsigned int u;
-
-  SHA1Update(&ts->ckhash, clientval->data, clientval->len);
-  SHA1Update(&ts->ckhash, ts->B.data, ts->B.len);
-
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, ts->B.data, ts->B.len);
-  SHA1Final(dig, &ctxt);
-  u = (dig[0] << 24) | (dig[1] << 16) | (dig[2] << 8) | dig[3];
-
-  SHA1Update(&ts->oldhash, clientval->data, clientval->len);
-  SHA1Update(&ts->hash, clientval->data, clientval->len);
-
-  n = BigIntegerFromBytes(ts->n.data, ts->n.len);
-  b = BigIntegerFromBytes(ts->b.data, ts->b.len);
-  v = BigIntegerFromBytes(ts->v.data, ts->v.len);
-  A = BigIntegerFromBytes(clientval->data, clientval->len);
-
-  prod = BigIntegerFromInt(0);
-  BigIntegerModExpInt(prod, v, u, n);
-  res = BigIntegerFromInt(0);
-  BigIntegerModMul(res, prod, A, n);
-
-  BigIntegerFree(A);
-  BigIntegerFree(v);
-  BigIntegerFree(prod);
-
-  if(BigIntegerCmpInt(res, 1) <= 0) {   /* Check for Av^u == 1 (mod n) */
-    BigIntegerFree(res);
-    BigIntegerFree(b);
-    BigIntegerFree(n);
-    return NULL;
-  }
-
-  S = BigIntegerFromInt(0);
-
-  BigIntegerAddInt(S, res, 1);
-  if(BigIntegerCmp(S, n) == 0) {        /* Check for Av^u == -1 (mod n) */
-    BigIntegerFree(res);
-    BigIntegerFree(b);
-    BigIntegerFree(n);
-    BigIntegerFree(S);
-    return NULL;
-  }
-
-  BigIntegerModExp(S, res, b, n);
-  slen = BigIntegerToBytes(S, sbuf);
-
-  BigIntegerFree(S);
-  BigIntegerFree(res);
-  BigIntegerFree(b);
-  BigIntegerFree(n);
-
-  t_sessionkey(ts->session_key, sbuf, slen);
-  memset(sbuf, 0, slen);
-
-  SHA1Update(&ts->oldhash, ts->session_key, sizeof(ts->session_key));
-  SHA1Update(&ts->oldckhash, ts->session_key, sizeof(ts->session_key));
-  SHA1Update(&ts->ckhash, ts->session_key, sizeof(ts->session_key));
-
-  return ts->session_key;
-}
-
-_TYPE( int )
-t_serververify(ts, resp)
-    struct t_server * ts;
-    unsigned char * resp;
-{
-  unsigned char expected[SHA_DIGESTSIZE];
-  int i;
-
-  SHA1Final(expected, &ts->oldckhash);
-  i = memcmp(expected, resp, sizeof(expected));
-  if(i == 0) {
-    SHA1Final(ts->session_response, &ts->oldhash);
-    return 0;
-  }
-  SHA1Final(expected, &ts->ckhash);
-  i = memcmp(expected, resp, sizeof(expected));
-  if(i == 0) {
-    SHA1Update(&ts->hash, expected, sizeof(expected));
-    SHA1Update(&ts->hash, ts->session_key, sizeof(ts->session_key));
-    SHA1Final(ts->session_response, &ts->hash);
-  }
-  return i;
-}
-
-_TYPE( unsigned char * )
-t_serverresponse(ts)
-    struct t_server * ts;
-{
-  return ts->session_response;
-}
-
-_TYPE( void )
-t_serverclose(ts)
-     struct t_server * ts;
-{
-  memset(ts->bbuf, 0, sizeof(ts->bbuf));
-  memset(ts->vbuf, 0, sizeof(ts->vbuf));
-  memset(ts->saltbuf, 0, sizeof(ts->saltbuf));
-  memset(ts->session_key, 0, sizeof(ts->session_key));
-  free(ts);
-}
diff --git a/package/network/services/ead/src/tinysrp/t_server.h b/package/network/services/ead/src/tinysrp/t_server.h
deleted file mode 100644 (file)
index 20970ff..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 1997-1999  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#ifndef T_SERVER_H
-#define T_SERVER_H
-
-#include "t_sha.h"
-
-#if     !defined(P)
-#ifdef  __STDC__
-#define P(x)    x
-#else
-#define P(x)    ()
-#endif
-#endif
-
-#ifndef _DLLDECL
-#define _DLLDECL
-
-#ifdef MSVC15   /* MSVC1.5 support for 16 bit apps */
-#define _MSVC15EXPORT _export
-#define _MSVC20EXPORT
-#define _DLLAPI _export _pascal
-#define _TYPE(a) a _MSVC15EXPORT
-#define DLLEXPORT 1
-
-#elif MSVC20
-#define _MSVC15EXPORT
-#define _MSVC20EXPORT _declspec(dllexport)
-#define _DLLAPI
-#define _TYPE(a) _MSVC20EXPORT a
-#define DLLEXPORT 1
-
-#else                   /* Default, non-dll.  Use this for Unix or DOS */
-#define _MSVC15DEXPORT
-#define _MSVC20EXPORT
-#define _DLLAPI
-#define _TYPE(a) a
-#endif
-#endif
-
-#define BLEN 32
-
-struct t_server {
-  int index;
-  struct t_num n;
-  struct t_num g;
-  struct t_num v;
-  struct t_num s;
-
-  struct t_num b;
-  struct t_num B;
-
-  SHA1_CTX oldhash, hash, oldckhash, ckhash;
-
-  unsigned char session_key[SESSION_KEY_LEN];
-  unsigned char session_response[RESPONSE_LEN];
-
-  unsigned char nbuf[MAXPARAMLEN], gbuf[MAXPARAMLEN], vbuf[MAXPARAMLEN];
-  unsigned char saltbuf[MAXSALTLEN], bbuf[BLEN], Bbuf[MAXPARAMLEN];
-};
-
-/*
- * SRP server-side negotiation
- *
- * This code negotiates the server side of an SRP exchange.
- * "t_serveropen" accepts a username (sent by the client), a pointer
- *   to an open password file, and a pointer to an open configuration
- *   file.  The server should then call...
- * "t_servergenexp" will generate a random 256-bit exponent and
- *   raise g (from the configuration file) to that power, returning
- *   the result.  This result should be sent to the client as y(p).
- * "t_servergetkey" accepts the exponential w(p), which should be
- *   sent by the client, and computes the 256-bit session key.
- *   This data should be saved before the session is closed.
- * "t_serverresponse" computes the session key proof as SHA(w(p), K).
- * "t_serverclose" closes the session and frees its memory.
- *
- * Note that authentication is not performed per se; it is up
- * to either/both sides of the protocol to now verify securely
- * that their session keys agree in order to establish authenticity.
- * One possible way is through "oracle hashing"; one side sends
- * r, the other replies with H(r,K), where H() is a hash function.
- *
- * t_serverresponse and t_serververify now implement a version of
- * the session-key verification described above.
- */
-_TYPE( struct t_server * )
-  t_serveropen P((const char *));
-_TYPE( struct t_server * )
-  t_serveropenfromfiles P((const char *, struct t_pw *, struct t_conf *));
-_TYPE( struct t_server * )
-  t_serveropenraw P((struct t_pwent *, struct t_confent *));
-_TYPE( struct t_num * ) t_servergenexp P((struct t_server *));
-_TYPE( unsigned char * ) t_servergetkey P((struct t_server *, struct t_num *));
-_TYPE( int ) t_serververify P((struct t_server *, unsigned char *));
-_TYPE( unsigned char * ) t_serverresponse P((struct t_server *));
-_TYPE( void ) t_serverclose P((struct t_server *));
-
-#endif
diff --git a/package/network/services/ead/src/tinysrp/t_sha.c b/package/network/services/ead/src/tinysrp/t_sha.c
deleted file mode 100644 (file)
index cc41d64..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-#include "t_defines.h"
-#include "t_sha.h"
-
-/*
-SHA-1 in C
-By Steve Reid <steve@edmweb.com>
-100% Public Domain
-
-Test Vectors (from FIPS PUB 180-1)
-"abc"
-  A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D
-"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
-  84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1
-A million repetitions of "a"
-  34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
-*/
-
-/* #define WORDS_BIGENDIAN * This should be #define'd if true. */
-/* #define SHA1HANDSOFF * Copies data before messing with it. */
-
-#include <stdio.h>
-#include <string.h>
-
-static void SHA1Transform(uint32 state[5], const unsigned char buffer[64]);
-
-#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
-
-/* blk0() and blk() perform the initial expand. */
-/* I got the idea of expanding during the round function from SSLeay */
-#ifndef WORDS_BIGENDIAN
-#define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \
-    |(rol(block->l[i],8)&0x00FF00FF))
-#else
-#define blk0(i) block->l[i]
-#endif
-#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \
-    ^block->l[(i+2)&15]^block->l[i&15],1))
-
-/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */
-#define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30);
-#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30);
-#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30);
-#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30);
-#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30);
-
-/* Hash a single 512-bit block. This is the core of the algorithm. */
-
-static void SHA1Transform(uint32 state[5], const unsigned char buffer[64])
-{
-uint32 a, b, c, d, e;
-typedef union {
-    unsigned char c[64];
-    uint32 l[16];
-} CHAR64LONG16;
-CHAR64LONG16* block;
-#ifdef SHA1HANDSOFF
-static unsigned char workspace[64];
-    block = (CHAR64LONG16*)workspace;
-    memcpy(block, buffer, 64);
-#else
-    block = (CHAR64LONG16*)buffer;
-#endif
-    /* Copy context->state[] to working vars */
-    a = state[0];
-    b = state[1];
-    c = state[2];
-    d = state[3];
-    e = state[4];
-    /* 4 rounds of 20 operations each. Loop unrolled. */
-    R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3);
-    R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7);
-    R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11);
-    R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15);
-    R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19);
-    R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23);
-    R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27);
-    R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31);
-    R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35);
-    R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39);
-    R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43);
-    R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47);
-    R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51);
-    R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55);
-    R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59);
-    R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63);
-    R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67);
-    R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71);
-    R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75);
-    R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79);
-    /* Add the working vars back into context.state[] */
-    state[0] += a;
-    state[1] += b;
-    state[2] += c;
-    state[3] += d;
-    state[4] += e;
-    /* Wipe variables */
-    a = b = c = d = e = 0;
-}
-
-
-/* SHA1Init - Initialize new context */
-
-void SHA1Init(SHA1_CTX* context)
-{
-    /* SHA1 initialization constants */
-    context->state[0] = 0x67452301;
-    context->state[1] = 0xEFCDAB89;
-    context->state[2] = 0x98BADCFE;
-    context->state[3] = 0x10325476;
-    context->state[4] = 0xC3D2E1F0;
-    context->count[0] = context->count[1] = 0;
-}
-
-
-/* Run your data through this. */
-
-void SHA1Update(SHA1_CTX* context, const unsigned char* data, unsigned int len)
-{
-unsigned int i, j;
-
-    j = (context->count[0] >> 3) & 63;
-    if ((context->count[0] += len << 3) < (len << 3)) context->count[1]++;
-    context->count[1] += (len >> 29);
-    if ((j + len) > 63) {
-       memcpy(&context->buffer[j], data, (i = 64-j));
-       SHA1Transform(context->state, context->buffer);
-       for ( ; i + 63 < len; i += 64) {
-           SHA1Transform(context->state, &data[i]);
-       }
-       j = 0;
-    }
-    else i = 0;
-    memcpy(&context->buffer[j], &data[i], len - i);
-}
-
-
-/* Add padding and return the message digest. */
-
-void SHA1Final(unsigned char digest[20], SHA1_CTX* context)
-{
-uint32 i, j;
-unsigned char finalcount[8];
-
-    for (i = 0; i < 8; i++) {
-       finalcount[i] = (unsigned char)((context->count[(i >= 4 ? 0 : 1)]
-        >> ((3-(i & 3)) * 8) ) & 255);  /* Endian independent */
-    }
-    SHA1Update(context, (unsigned char *)"\200", 1);
-    while ((context->count[0] & 504) != 448) {
-       SHA1Update(context, (unsigned char *)"\0", 1);
-    }
-    SHA1Update(context, finalcount, 8);  /* Should cause a SHA1Transform() */
-    for (i = 0; i < 20; i++) {
-       digest[i] = (unsigned char)
-        ((context->state[i>>2] >> ((3-(i & 3)) * 8) ) & 255);
-    }
-    /* Wipe variables */
-    i = j = 0;
-    memset(context->buffer, 0, 64);
-    memset(context->state, 0, 20);
-    memset(context->count, 0, 8);
-    memset(&finalcount, 0, 8);
-#ifdef SHA1HANDSOFF  /* make SHA1Transform overwrite its own static vars */
-    SHA1Transform(context->state, context->buffer);
-#endif
-}
diff --git a/package/network/services/ead/src/tinysrp/t_sha.h b/package/network/services/ead/src/tinysrp/t_sha.h
deleted file mode 100644 (file)
index d10115e..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef T_SHA_H
-#define T_SHA_H
-
-#if     !defined(P)
-#ifdef  __STDC__
-#define P(x)    x
-#else
-#define P(x)    ()
-#endif
-#endif
-
-#define SHA_DIGESTSIZE 20
-
-typedef unsigned int uint32;
-
-typedef struct {
-    uint32 state[5];
-    uint32 count[2];
-    unsigned char buffer[64];
-} SHA1_CTX;
-
-void SHA1Init P((SHA1_CTX* context));
-void SHA1Update P((SHA1_CTX* context, const unsigned char* data, unsigned int len));
-void SHA1Final P((unsigned char digest[20], SHA1_CTX* context));
-
-#endif /* T_SHA_H */
diff --git a/package/network/services/ead/src/tinysrp/t_truerand.c b/package/network/services/ead/src/tinysrp/t_truerand.c
deleted file mode 100644 (file)
index fa0d6ce..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- *      Physically random numbers (very nearly uniform)
- *      D. P. Mitchell
- *      Modified by Matt Blaze 7/95
- */
-/*
- * The authors of this software are Don Mitchell and Matt Blaze.
- *              Copyright (c) 1995 by AT&T.
- * Permission to use, copy, and modify this software without fee
- * is hereby granted, provided that this entire notice is included in
- * all copies of any software which is or includes a copy or
- * modification of this software and in all copies of the supporting
- * documentation for such software.
- *
- * This software may be subject to United States export controls.
- *
- * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTY.  IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY
- * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
- * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
- */
-
-/*
- * WARNING: depending on the particular platform, raw_truerand()
- * output may be biased or correlated.  In general, you can expect
- * about 16 bits of "pseudo-entropy" out of each 32 bit word returned
- * by truerand(), but it may not be uniformly diffused.  You should
- * raw_therefore run the output through some post-whitening function
- * (like MD5 or DES or whatever) before using it to generate key
- * material.  (RSAREF's random package does this for you when you feed
- * raw_truerand() bits to the seed input function.)
- *
- * The application interface, for 8, 16, and 32 bit properly "whitened"
- * random numbers, can be found in trand8(), trand16(), and trand32().
- * Use those instead of calling raw_truerand() directly.
- *
- * The basic idea here is that between clock "skew" and various
- * hard-to-predict OS event arrivals, counting a tight loop will yield
- * a little (maybe a third of a bit or so) of "good" randomness per
- * interval clock tick.  This seems to work well even on unloaded
- * machines.  If there is a human operator at the machine, you should
- * augment truerand with other measure, like keyboard event timing.
- * On server machines (e.g., when you need to generate a
- * Diffie-Hellman secret) truerand alone may be good enough.
- *
- * Test these assumptions on your own platform before fielding a
- * system based on this software or these techniques.
- *
- * This software seems to work well (at 10 or so bits per
- * raw_truerand() call) on a Sun Sparc-20 under SunOS 4.1.3 and on a
- * P100 under BSDI 2.0.  You're on your own elsewhere.
- *
- */
-
-#include "t_defines.h"
-
-#include <signal.h>
-#include <setjmp.h>
-#include <sys/time.h>
-#include <math.h>
-#include <stdio.h>
-
-#ifdef OLD_TRUERAND
-static jmp_buf env;
-#endif
-static unsigned volatile count
-#ifndef OLD_TRUERAND
-  , done = 0
-#endif
-;
-
-static unsigned ocount;
-static unsigned buffer;
-
-static void
-tick()
-{
-       struct itimerval it, oit;
-
-       it.it_interval.tv_sec = 0;
-       it.it_interval.tv_usec = 0;
-       it.it_value.tv_sec = 0;
-       it.it_value.tv_usec = 16665;
-       if (setitimer(ITIMER_REAL, &it, &oit) < 0)
-               perror("tick");
-}
-
-static void
-interrupt()
-{
-       if (count) {
-#ifdef OLD_TRUERAND
-               longjmp(env, 1);
-#else
-               ++done;
-               return;
-#endif
-       }
-
-       (void) signal(SIGALRM, interrupt);
-       tick();
-}
-
-static unsigned long
-roulette()
-{
-#ifdef OLD_TRUERAND
-       if (setjmp(env)) {
-               count ^= (count>>3) ^ (count>>6) ^ ocount;
-               count &= 0x7;
-               ocount=count;
-               buffer = (buffer<<3) ^ count;
-               return buffer;
-       }
-#else
-       done = 0;
-#endif
-       (void) signal(SIGALRM, interrupt);
-       count = 0;
-       tick();
-#ifdef OLD_TRUERAND
-       for (;;)
-#else
-       while(done == 0)
-#endif
-               count++;        /* about 1 MHz on VAX 11/780 */
-#ifndef OLD_TRUERAND
-       count ^= (count>>3) ^ (count>>6) ^ ocount;
-       count &= 0x7;
-       ocount=count;
-       buffer = (buffer<<3) ^ count;
-       return buffer;
-#endif
-}
-
-unsigned long
-raw_truerand()
-{
-       count=0;
-       (void) roulette();
-       (void) roulette();
-       (void) roulette();
-       (void) roulette();
-       (void) roulette();
-       (void) roulette();
-       (void) roulette();
-       (void) roulette();
-       (void) roulette();
-       (void) roulette();
-       return roulette();
-}
diff --git a/package/network/services/ead/src/tinysrp/tconf.c b/package/network/services/ead/src/tinysrp/tconf.c
deleted file mode 100644 (file)
index ad77f4c..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 1997-2000  The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- *    must display the following acknowlegment:
- *    "This product uses the 'Secure Remote Password' cryptographic
- *     authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- *    itself must also display the following acknowledgment:
- *    "This product includes software developed by Tom Wu and Eugene
- *     Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- *    of this copyright notice and list of conditions.
- */
-
-#include <unistd.h>     /* close getlogin */
-#include <stdlib.h>     /* atexit exit */
-#include <stdio.h>
-#include <string.h>
-
-#include "t_pwd.h"
-
-#define MIN_BASIS_BITS 512
-#define BASIS_BITS 2048
-
-extern int  optind;
-extern char *optarg;
-
-extern int errno;
-
-char *progName;
-
-int  debug   = 0;
-int  verbose = 0;
-int  composite = 0;
-
-int main(argc, argv)
-     int argc;
-     char *argv[];
-{
-  char *chp;
-  char *configFile = NULL;
-  char cbuf[256];
-  char b64buf[MAXB64PARAMLEN];
-  int c, ch, i, lastidx, keylen, yesno, fsize, status, nparams;
-  FILE *efp;
-
-  struct t_preconf * tpc;
-  struct t_conf tcs;
-  struct t_conf * tc = &tcs;
-  struct t_confent * tcent;
-
-  progName = *argv;
-  if ((chp = strrchr(progName, '/')) != (char *) 0) progName = chp + 1;
-
-  while ((ch = getopt(argc, argv, "dv2c:")) != EOF)
-    switch(ch) {
-    case 'c':
-      configFile = optarg;
-      break;
-    case 'v':
-      verbose++;
-      break;
-    case 'd':
-      debug++;
-      break;
-    case '2':
-      composite++;
-      break;
-    default:
-      fprintf(stderr, "usage: %s [-dv2] [-c configfile]\n", progName);
-      exit(1);
-    }
-
-  argc -= optind;
-  argv += optind;
-
-  lastidx = 0;
-  keylen = 0;
-
-  tcent = t_newconfent(tc);
-
-  printf("\nThis program will generate a set of parameters for the EPS\n");
-  printf("password file.  The size of these parameters, measured in bits,\n");
-  printf("determines the level of security offered by SRP, and is related\n");
-  printf("to the security of similarly-sized RSA or Diffie-Hellman keys.\n");
-  printf("Choosing a predefined field is generally preferable to generating\n");
-  printf("a new field because clients can avoid costly parameter verification.\n");
-  printf("Either way, the values generated by this program are public and\n");
-  printf("can even shared between systems.\n");
-
-  printf("\nEnter the new field size, in bits.  Suggested sizes:\n\n");
-  printf(" 512 (fast, minimally secure)\n");
-  printf(" 768 (moderate security)\n");
-  printf("1024 (most popular default)\n");
-  printf("1536 (additional security, possibly slow)\n");
-  printf("2048 (maximum supported security level)\n");
-  printf("\nField size (%d to %d): ", MIN_BASIS_BITS, BASIS_BITS);
-
-  fgets(cbuf, sizeof(cbuf), stdin);
-  fsize = atoi(cbuf);
-  if(fsize < MIN_BASIS_BITS || fsize > BASIS_BITS) {
-    fprintf(stderr, "%s: field size must be between %d and %d\n",
-           progName, MIN_BASIS_BITS, BASIS_BITS);
-    exit(1);
-  }
-
-  if(fsize <= keylen)
-    fprintf(stderr, "Warning: new field size is not larger than old field size\n");
-
-  printf("\nInitializing random number generator...");
-  fflush(stdout);
-  t_initrand();
-
-  if(composite)
-    printf("done.\n\nGenerating a %d-bit composite with safe prime factors.  This may take a while.\n", fsize);
-  else
-    printf("done.\n\nGenerating a %d-bit safe prime.  This may take a while.\n", fsize);
-
-  while((tcent = (composite ? t_makeconfent_c(tc, fsize) :
-                             t_makeconfent(tc, fsize))) == NULL)
-    printf("Parameter generation failed, retrying...\n");
-  tcent->index = lastidx + 1;
-
-  printf("\nParameters successfully generated.\n");
-  printf("N = [%s]\n", t_tob64(b64buf,
-                              tcent->modulus.data, tcent->modulus.len));
-  printf("g = [%s]\n", t_tob64(b64buf,
-                              tcent->generator.data, tcent->generator.len));
-  printf("\nYou must update the pre_params array in t_getconf.c\n");
-}
diff --git a/package/network/services/ead/src/tinysrp/tinysrp.c b/package/network/services/ead/src/tinysrp/tinysrp.c
deleted file mode 100644 (file)
index fc01055..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-/* This bit implements a simple API for using the SRP library over sockets. */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include "t_defines.h"
-#include "t_pwd.h"
-#include "t_server.h"
-#include "t_client.h"
-#include "tinysrp.h"
-
-#ifndef MSG_WAITALL
-#ifdef linux
-#define MSG_WAITALL 0x100       /* somehow not defined on my box */
-#endif
-#endif
-
-/* This is called by the client with a connected socket, username, and
-passphrase.  pass can be NULL in which case the user is queried. */
-
-int tsrp_client_authenticate(int s, char *user, char *pass, TSRP_SESSION *tsrp)
-{
-       int i, index;
-       unsigned char username[MAXUSERLEN + 1], sbuf[MAXSALTLEN];
-       unsigned char msgbuf[MAXPARAMLEN + 1], bbuf[MAXPARAMLEN];
-       unsigned char passbuf[128], *skey;
-       struct t_client *tc;
-       struct t_preconf *tcp;          /* @@@ should go away */
-       struct t_num salt, *A, B;
-
-       /* Send the username. */
-
-       i = strlen(user);
-       if (i > MAXUSERLEN) {
-               i = MAXUSERLEN;
-       }
-       msgbuf[0] = i;
-       memcpy(msgbuf + 1, user, i);
-       if (send(s, msgbuf, i + 1, 0) < 0) {
-               return 0;
-       }
-       memcpy(username, user, i);
-       username[i] = '\0';
-
-       /* Get the prime index and salt. */
-
-       i = recv(s, msgbuf, 2, MSG_WAITALL);
-       if (i <= 0) {
-               return 0;
-       }
-       index = msgbuf[0];
-       if (index <= 0 || index > t_getprecount()) {
-               return 0;
-       }
-       tcp = t_getpreparam(index - 1);
-       salt.len = msgbuf[1];
-       if (salt.len > MAXSALTLEN) {
-               return 0;
-       }
-       salt.data = sbuf;
-       i = recv(s, sbuf, salt.len, MSG_WAITALL);
-       if (i <= 0) {
-               return 0;
-       }
-
-       /* @@@ t_clientopen() needs a variant that takes the index */
-
-       tc = t_clientopen(username, &tcp->modulus, &tcp->generator, &salt);
-       if (tc == NULL) {
-               return 0;
-       }
-
-       /* Calculate A and send it to the server. */
-
-       A = t_clientgenexp(tc);
-       msgbuf[0] = A->len - 1;         /* len is max 256 */
-       memcpy(msgbuf + 1, A->data, A->len);
-       if (send(s, msgbuf, A->len + 1, 0) < 0) {
-               return 0;
-       }
-
-       /* Ask the user for the passphrase. */
-
-       if (pass == NULL) {
-               t_getpass(passbuf, sizeof(passbuf), "Enter password:");
-               pass = passbuf;
-       }
-       t_clientpasswd(tc, pass);
-
-       /* Get B from the server. */
-
-       i = recv(s, msgbuf, 1, 0);
-       if (i <= 0) {
-               return 0;
-       }
-       B.len = msgbuf[0] + 1;
-       B.data = bbuf;
-       i = recv(s, bbuf, B.len, MSG_WAITALL);
-       if (i <= 0) {
-               return 0;
-       }
-
-       /* Compute the session key. */
-
-       skey = t_clientgetkey(tc, &B);
-       if (skey == NULL) {
-               return 0;
-       }
-
-       /* Send the response. */
-
-       if (send(s, t_clientresponse(tc), RESPONSE_LEN, 0) < 0) {
-               return 0;
-       }
-
-       /* Get the server's response. */
-
-       i = recv(s, msgbuf, RESPONSE_LEN, MSG_WAITALL);
-       if (i <= 0) {
-               return 0;
-       }
-       if (t_clientverify(tc, msgbuf) != 0) {
-               return 0;
-       }
-
-       /* All done.  Now copy the key and clean up. */
-
-       if (tsrp) {
-               memcpy(tsrp->username, username, strlen(username) + 1);
-               memcpy(tsrp->key, skey, SESSION_KEY_LEN);
-       }
-       t_clientclose(tc);
-
-       return 1;
-}
-
-/* This is called by the server with a connected socket. */
-
-int tsrp_server_authenticate(int s, TSRP_SESSION *tsrp)
-{
-       int i, j;
-       unsigned char username[MAXUSERLEN], *skey;
-       unsigned char msgbuf[MAXPARAMLEN + 1], abuf[MAXPARAMLEN];
-       struct t_server *ts;
-       struct t_num A, *B;
-
-       /* Get the username. */
-
-       i = recv(s, msgbuf, 1, 0);
-       if (i <= 0) {
-               return 0;
-       }
-       j = msgbuf[0];
-       i = recv(s, username, j, MSG_WAITALL);
-       if (i <= 0) {
-               return 0;
-       }
-       username[j] = '\0';
-
-       ts = t_serveropen(username);
-       if (ts == NULL) {
-               return 0;
-       }
-
-       /* Send the prime index and the salt. */
-
-       msgbuf[0] = ts->index;                  /* max 256 primes... */
-       i = ts->s.len;
-       msgbuf[1] = i;
-       memcpy(msgbuf + 2, ts->s.data, i);
-       if (send(s, msgbuf, i + 2, 0) < 0) {
-               return 0;
-       }
-
-       /* Calculate B while we're waiting. */
-
-       B = t_servergenexp(ts);
-
-       /* Get A from the client. */
-
-       i = recv(s, msgbuf, 1, 0);
-       if (i <= 0) {
-               return 0;
-       }
-       A.len = msgbuf[0] + 1;
-       A.data = abuf;
-       i = recv(s, abuf, A.len, MSG_WAITALL);
-       if (i <= 0) {
-               return 0;
-       }
-
-       /* Now send B. */
-
-       msgbuf[0] = B->len - 1;
-       memcpy(msgbuf + 1, B->data, B->len);
-       if (send(s, msgbuf, B->len + 1, 0) < 0) {
-               return 0;
-       }
-
-       /* Calculate the session key while we're waiting. */
-
-       skey = t_servergetkey(ts, &A);
-       if (skey == NULL) {
-               return 0;
-       }
-
-       /* Get the response from the client. */
-
-       i = recv(s, msgbuf, RESPONSE_LEN, MSG_WAITALL);
-       if (i <= 0) {
-               return 0;
-       }
-       if (t_serververify(ts, msgbuf) != 0) {
-               return 0;
-       }
-
-       /* Client authenticated.  Now authenticate ourselves to the client. */
-
-       if (send(s, t_serverresponse(ts), RESPONSE_LEN, 0) < 0) {
-               return 0;
-       }
-
-       /* Copy the key and clean up. */
-
-       if (tsrp) {
-               memcpy(tsrp->username, username, strlen(username) + 1);
-               memcpy(tsrp->key, skey, SESSION_KEY_LEN);
-       }
-       t_serverclose(ts);
-
-       return 1;
-}
diff --git a/package/network/services/ead/src/tinysrp/tinysrp.h b/package/network/services/ead/src/tinysrp/tinysrp.h
deleted file mode 100644 (file)
index 4420a19..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Simple API for the tinysrp library. */
-
-#ifndef T_PWD_H
-#define MAXUSERLEN      32
-#define SESSION_KEY_LEN 40      /* 320-bit session key */
-#endif
-
-typedef struct {
-       char username[MAXUSERLEN + 1];
-       unsigned char key[SESSION_KEY_LEN];
-} TSRP_SESSION;
-
-/* These functions are passed a connected socket, and return true for a
-successful authentication.  If tsrp is not NULL, the username and key
-fields are filled in. */
-
-extern int tsrp_server_authenticate(int s, TSRP_SESSION *tsrp);
-extern int tsrp_client_authenticate(int s, char *user, char *pass, TSRP_SESSION *tsrp);
diff --git a/package/network/services/ead/src/tinysrp/tpasswd b/package/network/services/ead/src/tinysrp/tpasswd
deleted file mode 100644 (file)
index 2ac7e2a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-moo:A9lHvOGAMJvw1m3vcDsQRUFovh6/QUmLDKqwhv.drKQzbE9nS7HrOZLUPx2MmS6ewwybN8RHqpWqnUJRCMFT14FMbYXR7kYNUUQNx43A7F.xrVOU7tlFq5NjoK9sfFtp6PMdbIOP5wzWmipiNFlCOu4sjlSZb.o7C1chLzTKU.0:19AI0Hc9jEkdFc:5
-new user:1FsanML2fbTOEsa072bLjyRD1LEqoRD2GwElfN0VmHeR.FAg5A.2.G5bTjIHmMmHL60kgoAHJZhRrgopalYmujlyAuQoKiHJb98SHm1oJaQ9nl/DrZCvfyw5LpVMqg.CupdiWz6OtmOz8fwC96ItExFnNDt6SmsVDIOn4HqXG6C0lLaqEvcqlN3gFDlJXyP2yldM.LJ1TkHTHmA3DjRkmWEUL3mWEgzkEHyPcRB3Jd5ncDT7jaNbJTTLRoOtgRsaqE7OXuPADoK8MGBcUquYBRrGwyU4Y/wW4gLc3QmV793zxkk.P3.dxkLSjro/Kk94D7kC6fx3K9tadLJyzd94rr:3v/KRlxT0.oYF1:1
diff --git a/package/network/services/ead/src/tinysrp/tphrase.c b/package/network/services/ead/src/tinysrp/tphrase.c
deleted file mode 100644 (file)
index 0ab1e08..0000000
+++ /dev/null
@@ -1,354 +0,0 @@
-/* Add passphrases to the tpasswd file.  Use the last entry in the config
-file by default or a particular one specified by index. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include "config.h"
-#include "t_pwd.h"
-#include "t_read.h"
-#include "t_sha.h"
-#include "t_defines.h"
-
-char *Progname;
-char Usage[] = "usage: %s [-n configindex] [-p passfile] user\n";
-#define USAGE() fprintf(stderr, Usage, Progname)
-
-void doit(char *);
-
-int Configindex = -1;
-char *Passfile = DEFAULT_PASSWD;
-
-int main(int argc, char **argv)
-{
-       int c;
-
-       Progname = *argv;
-
-       /* Parse option arguments. */
-
-       while ((c = getopt(argc, argv, "n:p:")) != EOF) {
-               switch (c) {
-
-               case 'n':
-                       Configindex = atoi(optarg);
-                       break;
-
-               case 'p':
-                       Passfile = optarg;
-                       break;
-
-               default:
-                       USAGE();
-                       exit(1);
-               }
-       }
-       argc -= optind;
-       argv += optind;
-
-       if (argc != 1) {
-               USAGE();
-               exit(1);
-       }
-       doit(argv[0]);
-
-       return 0;
-}
-
-void doit(char *name)
-{
-       char passphrase[128], passphrase1[128];
-       FILE *f;
-       struct t_confent *tcent;
-       struct t_pw eps_passwd;
-
-       /* Get the config entry. */
-
-       if (Configindex <= 0) {
-               Configindex = t_getprecount();
-       }
-       tcent = gettcid(Configindex);
-       if (tcent == NULL) {
-               fprintf(stderr, "Invalid configuration file entry.\n");
-               exit(1);
-       }
-
-       /* Ask for the passphrase twice. */
-
-       printf("Setting passphrase for %s\n", name);
-
-       if (t_getpass(passphrase, sizeof(passphrase), "Enter passphrase: ") < 0) {
-               exit(1);
-       }
-       if (t_getpass(passphrase1, sizeof(passphrase1), "Verify: ") < 0) {
-               exit(1);
-       }
-       if (strcmp(passphrase, passphrase1) != 0) {
-               fprintf(stderr, "mismatch\n");
-               exit(1);
-       }
-
-       /* Create the passphrase verifier. */
-
-       t_makepwent(&eps_passwd, name, passphrase, NULL, tcent);
-
-       /* Don't need these anymore. */
-
-       memset(passphrase, 0, sizeof(passphrase));
-       memset(passphrase1, 0, sizeof(passphrase1));
-
-       /* See if the passphrase file is there; create it if not. */
-
-       if ((f = fopen(Passfile, "r+")) == NULL) {
-               creat(Passfile, 0400);
-       } else {
-               fclose(f);
-       }
-
-       /* Change the passphrase. */
-
-       if (t_changepw(Passfile, &eps_passwd.pebuf) < 0) {
-               fprintf(stderr, "Error changing passphrase\n");
-               exit(1);
-       }
-}
-
-/* TODO: Implement a more general method to handle delete/change */
-
-_TYPE( int )
-t_changepw(pwname, diff)
-     const char * pwname;
-     const struct t_pwent * diff;
-{
-  char * bakfile;
-  char * bakfile2;
-  struct stat st;
-  FILE * passfp;
-  FILE * bakfp;
-
-  if(pwname == NULL)
-    pwname = DEFAULT_PASSWD;
-
-  if((passfp = fopen(pwname, "rb")) == NULL || fstat(fileno(passfp), &st) < 0)
-    return -1;
-
-  if((bakfile = malloc(strlen(pwname) + 5)) == NULL) {
-    fclose(passfp);
-    return -1;
-  }
-  else if((bakfile2 = malloc(strlen(pwname) + 5)) == NULL) {
-    fclose(passfp);
-    free(bakfile);
-    return -1;
-  }
-
-  sprintf(bakfile, "%s.bak", pwname);
-  sprintf(bakfile2, "%s.sav", pwname);
-
-  if((bakfp = fopen(bakfile2, "wb")) == NULL &&
-     (unlink(bakfile2) < 0 || (bakfp = fopen(bakfile2, "wb")) == NULL)) {
-    fclose(passfp);
-    free(bakfile);
-    free(bakfile2);
-    return -1;
-  }
-
-#ifdef NO_FCHMOD
-  chmod(bakfile2, st.st_mode & 0777);
-#else
-  fchmod(fileno(bakfp), st.st_mode & 0777);
-#endif
-
-  t_pwcopy(bakfp, passfp, diff);
-
-  fclose(bakfp);
-  fclose(passfp);
-
-#ifdef USE_RENAME
-  unlink(bakfile);
-  if(rename(pwname, bakfile) < 0) {
-    free(bakfile);
-    free(bakfile2);
-    return -1;
-  }
-  if(rename(bakfile2, pwname) < 0) {
-    free(bakfile);
-    free(bakfile2);
-    return -1;
-  }
-#else
-  unlink(bakfile);
-  link(pwname, bakfile);
-  unlink(pwname);
-  link(bakfile2, pwname);
-  unlink(bakfile2);
-#endif
-  free(bakfile);
-  free(bakfile2);
-
-  return 0;
-}
-
-_TYPE( struct t_pwent * )
-t_makepwent(tpw, user, pass, salt, confent)
-     struct t_pw * tpw;
-     const char * user;
-     const char * pass;
-     const struct t_num * salt;
-     const struct t_confent * confent;
-{
-  BigInteger x, v, n, g;
-  unsigned char dig[SHA_DIGESTSIZE];
-  SHA1_CTX ctxt;
-
-  tpw->pebuf.name = tpw->userbuf;
-  tpw->pebuf.password.data = tpw->pwbuf;
-  tpw->pebuf.salt.data = tpw->saltbuf;
-
-  strncpy(tpw->pebuf.name, user, MAXUSERLEN);
-  tpw->pebuf.index = confent->index;
-
-  if(salt) {
-    tpw->pebuf.salt.len = salt->len;
-    memcpy(tpw->pebuf.salt.data, salt->data, salt->len);
-  }
-  else {
-    memset(dig, 0, SALTLEN);            /* salt is 80 bits */
-    tpw->pebuf.salt.len = SALTLEN;
-    do {
-      t_random(tpw->pebuf.salt.data, SALTLEN);
-    } while(memcmp(tpw->pebuf.salt.data, dig, SALTLEN) == 0);
-    if(tpw->pebuf.salt.data[0] == 0)
-      tpw->pebuf.salt.data[0] = 0xff;
-  }
-
-  n = BigIntegerFromBytes(confent->modulus.data, confent->modulus.len);
-  g = BigIntegerFromBytes(confent->generator.data, confent->generator.len);
-  v = BigIntegerFromInt(0);
-
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, user, strlen(user));
-  SHA1Update(&ctxt, ":", 1);
-  SHA1Update(&ctxt, pass, strlen(pass));
-  SHA1Final(dig, &ctxt);
-
-  SHA1Init(&ctxt);
-  SHA1Update(&ctxt, tpw->pebuf.salt.data, tpw->pebuf.salt.len);
-  SHA1Update(&ctxt, dig, sizeof(dig));
-  SHA1Final(dig, &ctxt);
-
-  /* x = H(s, H(u, ':', p)) */
-  x = BigIntegerFromBytes(dig, sizeof(dig));
-
-  BigIntegerModExp(v, g, x, n);
-  tpw->pebuf.password.len = BigIntegerToBytes(v, tpw->pebuf.password.data);
-
-  BigIntegerFree(v);
-  BigIntegerFree(x);
-  BigIntegerFree(g);
-  BigIntegerFree(n);
-
-  return &tpw->pebuf;
-}
-
-int
-t_pwcopy(pwdest, pwsrc, diff)
-     FILE * pwdest;
-     FILE * pwsrc;
-     struct t_pwent * diff;
-{
-  struct t_pw * src;
-  struct t_pwent * ent;
-
-  if((src = t_openpw(pwsrc)) == NULL)
-    return -1;
-
-  while((ent = t_getpwent(src)) != NULL)
-    if(diff && strcmp(diff->name, ent->name) == 0) {
-      t_putpwent(diff, pwdest);
-      diff = NULL;
-    }
-    else
-      t_putpwent(ent, pwdest);
-
-  if(diff)
-    t_putpwent(diff, pwdest);
-
-  return 0;
-}
-
-_TYPE( struct t_pwent * )
-t_getpwent(tpw)
-     struct t_pw * tpw;
-{
-  char indexbuf[16];
-  char passbuf[MAXB64PARAMLEN];
-  char saltstr[MAXB64SALTLEN];
-
-#ifdef ENABLE_YP
-  struct t_passwd * nisent;
-  /* FIXME: should tell caller to get conf entry from NIS also */
-
-  if(tpw->state == IN_NIS) {
-    nisent = _yp_gettpent();
-    if(nisent != NULL) {
-      savepwent(tpw, &nisent->tp);
-      return &tpw->pebuf;
-    }
-    tpw->state = FILE_NIS;
-  }
-#endif
-
-  while(1) {
-    if(t_nextfield(tpw->instream, tpw->userbuf, MAXUSERLEN) > 0) {
-#ifdef ENABLE_YP
-      if(tpw->state == FILE_NIS && *tpw->userbuf == '+') {
-       t_nextline(tpw->instream);
-       if(strlen(tpw->userbuf) > 1) {  /* +name:... */
-         nisent = _yp_gettpnam(tpw->userbuf + 1);
-         if(nisent != NULL) {
-           savepwent(tpw, nisent);
-           return &tpw->pebuf;
-         }
-       }
-       else {  /* +:... */
-         tpw->state = IN_NIS;
-         _yp_settpent();
-         return t_getpwent(tpw);
-       }
-      }
-#endif
-      if(t_nextfield(tpw->instream, passbuf, MAXB64PARAMLEN) > 0 &&
-        (tpw->pebuf.password.len = t_fromb64(tpw->pwbuf, passbuf)) > 0 &&
-        t_nextfield(tpw->instream, saltstr, MAXB64SALTLEN) > 0 &&
-        (tpw->pebuf.salt.len = t_fromb64(tpw->saltbuf, saltstr)) > 0 &&
-        t_nextfield(tpw->instream, indexbuf, 16) > 0 &&
-        (tpw->pebuf.index = atoi(indexbuf)) > 0) {
-       tpw->pebuf.name = tpw->userbuf;
-       tpw->pebuf.password.data = tpw->pwbuf;
-       tpw->pebuf.salt.data = tpw->saltbuf;
-       t_nextline(tpw->instream);
-       return &tpw->pebuf;
-      }
-    }
-    if(t_nextline(tpw->instream) < 0)
-      return NULL;
-  }
-}
-
-_TYPE( void )
-t_putpwent(ent, fp)
-     const struct t_pwent * ent;
-     FILE * fp;
-{
-  char strbuf[MAXB64PARAMLEN];
-  char saltbuf[MAXB64SALTLEN];
-
-  fprintf(fp, "%s:%s:%s:%d\n", ent->name,
-         t_tob64(strbuf, ent->password.data, ent->password.len),
-         t_tob64(saltbuf, ent->salt.data, ent->salt.len), ent->index);
-}
-
index 8c4c438bed8180daf78b0e36215e5ac82b0024ca..f531e660ff48753d7f2cd1a603cf053768c4b44b 100644 (file)
@@ -7,7 +7,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=hostapd
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_URL:=http://w1.fi/hostap.git
 PKG_SOURCE_PROTO:=git
index 726a546141d9bfcbc94ddc9ccc27f08c58cac285..3ddb511b895d062542a6c4e8849ac1a711260544 100644 (file)
@@ -212,9 +212,12 @@ hostapd_common_add_bss_config() {
 
        config_add_string wpa_psk_file
 
+       config_add_int multi_ap
+
        config_add_boolean wps_pushbutton wps_label ext_registrar wps_pbc_in_m1
        config_add_int wps_ap_setup_locked wps_independent
        config_add_string wps_device_type wps_device_name wps_manufacturer wps_pin
+       config_add_string multi_ap_backhaul_ssid multi_ap_backhaul_key
 
        config_add_boolean ieee80211v wnm_sleep_mode bss_transition
        config_add_int time_advertisement
@@ -261,7 +264,8 @@ hostapd_set_bss_options() {
                macfilter ssid utf8_ssid wmm uapsd hidden short_preamble rsn_preauth \
                iapp_interface eapol_version dynamic_vlan ieee80211w nasid \
                acct_server acct_secret acct_port acct_interval \
-               bss_load_update_period chan_util_avg_period sae_require_mfp
+               bss_load_update_period chan_util_avg_period sae_require_mfp \
+               multi_ap multi_ap_backhaul_ssid multi_ap_backhaul_key
 
        set_default isolate 0
        set_default maxassoc 0
@@ -278,7 +282,8 @@ hostapd_set_bss_options() {
        set_default bss_load_update_period 60
        set_default chan_util_avg_period 600
        set_default utf8_ssid 1
-       
+       set_default multi_ap 0
+
        append bss_conf "ctrl_interface=/var/run/hostapd"
        if [ "$isolate" -gt 0 ]; then
                append bss_conf "ap_isolate=$isolate" "$N"
@@ -298,6 +303,7 @@ hostapd_set_bss_options() {
        append bss_conf "ignore_broadcast_ssid=$hidden" "$N"
        append bss_conf "uapsd_advertisement_enabled=$uapsd" "$N"
        append bss_conf "utf8_ssid=$utf8_ssid" "$N"
+       append bss_conf "multi_ap=$multi_ap" "$N"
 
        [ "$tdls_prohibit" -gt 0 ] && append bss_conf "tdls_prohibit=$tdls_prohibit" "$N"
 
@@ -420,6 +426,9 @@ hostapd_set_bss_options() {
        [ "$wps_pushbutton" -gt 0 ] && append config_methods push_button
        [ "$wps_label" -gt 0 ] && append config_methods label
 
+       # WPS not possible on Multi-AP backhaul-only SSID
+       [ "$multi_ap" = 1 ] && wps_possible=
+
        [ -n "$wps_possible" -a -n "$config_methods" ] && {
                set_default ext_registrar 0
                set_default wps_device_type "6-0050F204-1"
@@ -442,6 +451,19 @@ hostapd_set_bss_options() {
                append bss_conf "wps_independent=$wps_independent" "$N"
                [ -n "$wps_ap_setup_locked" ] && append bss_conf "ap_setup_locked=$wps_ap_setup_locked" "$N"
                [ "$wps_pbc_in_m1" -gt 0 ] && append bss_conf "pbc_in_m1=$wps_pbc_in_m1" "$N"
+               [ "$multi_ap" -gt 0 ] && [ -n "$multi_ap_backhaul_ssid" ] && {
+                       append bss_conf "multi_ap_backhaul_ssid=\"$multi_ap_backhaul_ssid\"" "$N"
+                       if [ -z "$multi_ap_backhaul_key" ]; then
+                               :
+                       elif [ ${#multi_ap_backhaul_key} -lt 8 ]; then
+                               wireless_setup_vif_failed INVALID_WPA_PSK
+                               return 1
+                       elif [ ${#multi_ap_backhaul_key} -eq 64 ]; then
+                               append bss_conf "multi_ap_backhaul_wpa_psk=$multi_ap_backhaul_key" "$N"
+                       else
+                               append bss_conf "multi_ap_backhaul_wpa_passphrase=$multi_ap_backhaul_key" "$N"
+                       fi
+               }
        }
 
        append bss_conf "ssid=$ssid" "$N"
@@ -640,7 +662,7 @@ wpa_supplicant_prepare_interface() {
 
        _wpa_supplicant_common "$1"
 
-       json_get_vars mode wds
+       json_get_vars mode wds multi_ap
 
        [ -n "$network_bridge" ] && {
                fail=
@@ -649,7 +671,7 @@ wpa_supplicant_prepare_interface() {
                                fail=1
                        ;;
                        sta)
-                               [ "$wds" = 1 ] || fail=1
+                               [ "$wds" = 1 -o "$multi_ap" = 1 ] || fail=1
                        ;;
                esac
 
@@ -675,6 +697,12 @@ wpa_supplicant_prepare_interface() {
                country_str="country=$country"
        }
 
+       multiap_flag_file="${_config}.is_multiap"
+       if [ "$multi_ap" = "1" ]; then
+               touch "$multiap_flag_file"
+       else
+               [ -e "$multiap_flag_file" ] && rm "$multiap_flag_file"
+       fi
        wpa_supplicant_teardown_interface "$ifname"
        cat > "$_config" <<EOF
 $ap_scan
@@ -716,9 +744,11 @@ wpa_supplicant_add_network() {
        json_get_vars \
                ssid bssid key \
                basic_rate mcast_rate \
-               ieee80211w ieee80211r
+               ieee80211w ieee80211r \
+               multi_ap
 
        set_default ieee80211r 0
+       set_default multi_ap 0
 
        local key_mgmt='NONE'
        local enc_str=
@@ -752,6 +782,8 @@ wpa_supplicant_add_network() {
 
        [ "$_w_mode" = "adhoc" -o "$_w_mode" = "mesh" ] && append network_data "$_w_modestr" "$N$T"
 
+       [ "$multi_ap" = 1 -a "$_w_mode" = "sta" ] && append network_data "multi_ap_backhaul_sta=1" "$N$T"
+
        case "$auth_type" in
                none) ;;
                owe)
@@ -892,7 +924,7 @@ wpa_supplicant_run() {
 
        _wpa_supplicant_common "$ifname"
 
-       /usr/sbin/wpa_supplicant -B \
+       /usr/sbin/wpa_supplicant -B -s \
                ${network_bridge:+-b $network_bridge} \
                -P "/var/run/wpa_supplicant-${ifname}.pid" \
                -D ${_w_driver:-wext} \
index 01ef7b6e3f196a95f8ef7b365974889f3a41b327..bd02562b74154c27776d65f5cbb16942f3f3e599 100644 (file)
@@ -386,9 +386,9 @@ CONFIG_IEEE80211R=y
 #CONFIG_DEBUG_FILE=y
 
 # Send debug messages to syslog instead of stdout
-#CONFIG_DEBUG_SYSLOG=y
+CONFIG_DEBUG_SYSLOG=y
 # Set syslog facility for debug messages
-#CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
+CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
 
 # Add support for sending all debug messages (regardless of debug verbosity)
 # to the Linux kernel tracing facility. This helps debug the entire stack by
index 0ec846943f067b7ee137194f354799986f803377..5f6e82f7b6d5e8f157bf51e34f7849d74c4ec7d9 100644 (file)
@@ -388,9 +388,9 @@ CONFIG_IEEE80211R=y
 #CONFIG_DEBUG_FILE=y
 
 # Send debug messages to syslog instead of stdout
-#CONFIG_DEBUG_SYSLOG=y
+CONFIG_DEBUG_SYSLOG=y
 # Set syslog facility for debug messages
-#CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
+CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
 
 # Add support for sending all debug messages (regardless of debug verbosity)
 # to the Linux kernel tracing facility. This helps debug the entire stack by
index 2adb94802c8dd8db08b716024496fa82d18dd039..5e6f154105ffeb8739fb771a7fa8360c1a4c1fe0 100644 (file)
@@ -388,9 +388,9 @@ CONFIG_TLS=internal
 #CONFIG_DEBUG_FILE=y
 
 # Send debug messages to syslog instead of stdout
-#CONFIG_DEBUG_SYSLOG=y
+CONFIG_DEBUG_SYSLOG=y
 # Set syslog facility for debug messages
-#CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
+CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
 
 # Add support for sending all debug messages (regardless of debug verbosity)
 # to the Linux kernel tracing facility. This helps debug the entire stack by
index 435f45a9441fe9e30256e07f446e564f9544de15..bbbb8e6e30b8b730f42d37dd6b64a57481d2db39 100644 (file)
@@ -388,9 +388,9 @@ CONFIG_INTERNAL_LIBTOMMATH_FAST=y
 #CONFIG_DEBUG_FILE=y
 
 # Send debug messages to syslog instead of stdout
-#CONFIG_DEBUG_SYSLOG=y
+CONFIG_DEBUG_SYSLOG=y
 # Set syslog facility for debug messages
-#CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
+CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
 
 # Add support for sending all debug messages (regardless of debug verbosity)
 # to the Linux kernel tracing facility. This helps debug the entire stack by
index ddfd021195a929f4783d8bf8532ccdb02310ae4c..d00939d769b9d424a89fd8744826035188d3de45 100644 (file)
@@ -48,7 +48,13 @@ if [ "$ACTION" = "pressed" -a "$BUTTON" = "wps" ]; then
        wps_done=0
        ubusobjs="$( ubus -S list wpa_supplicant.* )"
        for ubusobj in $ubusobjs; do
-               ubus -S call $ubusobj wps_start && wps_done=1
+               ifname="$(echo $ubusobj | cut -d'.' -f2 )"
+               multi_ap=""
+               if [ -e "/var/run/wpa_supplicant-${ifname}.conf.is_multiap" ]; then
+                       ubus -S call $ubusobj wps_start '{ "multi_ap": true }' && wps_done=1
+               else
+                       ubus -S call $ubusobj wps_start && wps_done=1
+               fi
        done
        [ $wps_done = 0 ] || wps_catch_credentials &
 fi
diff --git a/package/network/services/hostapd/patches/051-wpa_supplicant-fix-race-condition-in-mesh-mpm-new-pe.patch b/package/network/services/hostapd/patches/051-wpa_supplicant-fix-race-condition-in-mesh-mpm-new-pe.patch
new file mode 100644 (file)
index 0000000..26842c9
--- /dev/null
@@ -0,0 +1,34 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Tue, 12 Feb 2019 14:22:43 +0100
+Subject: [PATCH v2] wpa_supplicant: fix race condition in mesh mpm new peer
+ handling
+
+When wpa_supplicant receives another new peer event before the first one
+has been processed, it tries to add a station to the driver a second time
+(which fails) and then tears down the station entry until another event
+comes in.
+Fix this by only adding a station to the driver if it didn't exist already.
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/wpa_supplicant/mesh_mpm.c
++++ b/wpa_supplicant/mesh_mpm.c
+@@ -663,11 +663,12 @@ static struct sta_info * mesh_mpm_add_pe
+       }
+       sta = ap_get_sta(data, addr);
+-      if (!sta) {
+-              sta = ap_sta_add(data, addr);
+-              if (!sta)
+-                      return NULL;
+-      }
++      if (sta)
++              return NULL;
++
++      sta = ap_sta_add(data, addr);
++      if (!sta)
++              return NULL;
+       /* Set WMM by default since Mesh STAs are QoS STAs */
+       sta->flags |= WLAN_STA_WMM;
diff --git a/package/network/services/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch b/package/network/services/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch
new file mode 100644 (file)
index 0000000..b9a0b23
--- /dev/null
@@ -0,0 +1,39 @@
+--- a/wpa_supplicant/ap.c
++++ b/wpa_supplicant/ap.c
+@@ -1363,15 +1363,35 @@ int ap_switch_channel(struct wpa_supplic
+ #ifdef CONFIG_CTRL_IFACE
++
++static int __ap_ctrl_iface_chanswitch(struct hostapd_iface *iface,
++                                    struct csa_settings *settings)
++{
++#ifdef NEED_AP_MLME
++      if (!iface || !iface->bss[0])
++              return 0;
++
++      return hostapd_switch_channel(iface->bss[0], settings);
++#else
++      return -1;
++#endif
++}
++
++
+ int ap_ctrl_iface_chanswitch(struct wpa_supplicant *wpa_s, const char *pos)
+ {
+       struct csa_settings settings;
+       int ret = hostapd_parse_csa_settings(pos, &settings);
++      if (!(wpa_s->ap_iface && wpa_s->ap_iface->bss[0]) &&
++          !(wpa_s->ifmsh && wpa_s->ifmsh->bss[0]))
++              return -1;
++
++      ret = __ap_ctrl_iface_chanswitch(wpa_s->ap_iface, &settings);
+       if (ret)
+               return ret;
+-      return ap_switch_channel(wpa_s, &settings);
++      return __ap_ctrl_iface_chanswitch(wpa_s->ifmsh, &settings);
+ }
+ #endif /* CONFIG_CTRL_IFACE */
index ecb9460e95965880f1a0ab5ab5c5345954c9ebd0..d93984a1727adfb38615098ec30f818d30f943cf 100644 (file)
        char *confname;
        char *confanother;
  
+--- a/hostapd/ctrl_iface.c
++++ b/hostapd/ctrl_iface.c
+@@ -2328,6 +2328,11 @@ static int hostapd_ctrl_iface_chan_switc
+       if (ret)
+               return ret;
++      if (os_strstr(pos, " auto-ht")) {
++              settings.freq_params.ht_enabled = iface->conf->ieee80211n;
++              settings.freq_params.vht_enabled = iface->conf->ieee80211ac;
++      }
++
+       for (i = 0; i < iface->num_bss; i++) {
+               /* Save CHAN_SWITCH VHT config */
+--- a/src/ap/beacon.c
++++ b/src/ap/beacon.c
+@@ -1381,11 +1381,6 @@ int ieee802_11_set_beacon(struct hostapd
+       struct wpabuf *beacon, *proberesp, *assocresp;
+       int res, ret = -1;
+-      if (hapd->csa_in_progress) {
+-              wpa_printf(MSG_ERROR, "Cannot set beacons during CSA period");
+-              return -1;
+-      }
+-
+       hapd->beacon_set_done = 1;
+       if (ieee802_11_build_ap_params(hapd, &params) < 0)
+--- a/src/drivers/driver.h
++++ b/src/drivers/driver.h
+@@ -4469,6 +4469,13 @@ enum wpa_event_type {
+       EVENT_CH_SWITCH,
+       /**
++       * EVENT_CH_SWITCH - AP or GO will switch channels soon
++       *
++       * Described in wpa_event_data.ch_switch
++       * */
++      EVENT_CH_SWITCH_STARTED,
++
++      /**
+        * EVENT_WNM - Request WNM operation
+        *
+        * This event can be used to request a WNM operation to be performed.
+@@ -5306,6 +5313,7 @@ union wpa_event_data {
+       /**
+        * struct ch_switch
++       * @count: countdown until channel switch
+        * @freq: Frequency of new channel in MHz
+        * @ht_enabled: Whether this is an HT channel
+        * @ch_offset: Secondary channel offset
+@@ -5314,6 +5322,7 @@ union wpa_event_data {
+        * @cf2: Center frequency 2
+        */
+       struct ch_switch {
++              int count;
+               int freq;
+               int ht_enabled;
+               int ch_offset;
+--- a/src/drivers/driver_nl80211_event.c
++++ b/src/drivers/driver_nl80211_event.c
+@@ -526,7 +526,8 @@ static int calculate_chan_offset(int wid
+ static void mlme_event_ch_switch(struct wpa_driver_nl80211_data *drv,
+                                struct nlattr *ifindex, struct nlattr *freq,
+                                struct nlattr *type, struct nlattr *bw,
+-                               struct nlattr *cf1, struct nlattr *cf2)
++                               struct nlattr *cf1, struct nlattr *cf2,
++                               struct nlattr *count)
+ {
+       struct i802_bss *bss;
+       union wpa_event_data data;
+@@ -584,11 +585,15 @@ static void mlme_event_ch_switch(struct
+               data.ch_switch.cf1 = nla_get_u32(cf1);
+       if (cf2)
+               data.ch_switch.cf2 = nla_get_u32(cf2);
++      if (count)
++              data.ch_switch.count = nla_get_u32(count);
+       bss->freq = data.ch_switch.freq;
+       drv->assoc_freq = data.ch_switch.freq;
+-      wpa_supplicant_event(bss->ctx, EVENT_CH_SWITCH, &data);
++      wpa_supplicant_event(bss->ctx,
++                           count ? EVENT_CH_SWITCH_STARTED : EVENT_CH_SWITCH,
++                           &data);
+ }
+@@ -2446,6 +2451,7 @@ static void do_process_drv_event(struct
+                                  tb[NL80211_ATTR_PMK],
+                                  tb[NL80211_ATTR_PMKID]);
+               break;
++      case NL80211_CMD_CH_SWITCH_STARTED_NOTIFY:
+       case NL80211_CMD_CH_SWITCH_NOTIFY:
+               mlme_event_ch_switch(drv,
+                                    tb[NL80211_ATTR_IFINDEX],
+@@ -2453,7 +2459,8 @@ static void do_process_drv_event(struct
+                                    tb[NL80211_ATTR_WIPHY_CHANNEL_TYPE],
+                                    tb[NL80211_ATTR_CHANNEL_WIDTH],
+                                    tb[NL80211_ATTR_CENTER_FREQ1],
+-                                   tb[NL80211_ATTR_CENTER_FREQ2]);
++                                   tb[NL80211_ATTR_CENTER_FREQ2],
++                                   tb[NL80211_ATTR_CH_SWITCH_COUNT]);
+               break;
+       case NL80211_CMD_DISCONNECT:
+               mlme_event_disconnect(drv, tb[NL80211_ATTR_REASON_CODE],
+--- a/wpa_supplicant/events.c
++++ b/wpa_supplicant/events.c
+@@ -4026,6 +4026,60 @@ static void wpas_event_assoc_reject(stru
+ }
++static void
++supplicant_ch_switch_started(struct wpa_supplicant *wpa_s,
++                          union wpa_event_data *data)
++{
++      char buf[256];
++      size_t len = sizeof(buf);
++      char *cmd = NULL;
++      int width = 20;
++      int ret;
++
++      if (!wpa_s->hostapd)
++              return;
++
++      wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_CHANNEL_SWITCH
++              "count=%d freq=%d ht_enabled=%d ch_offset=%d ch_width=%s cf1=%d cf2=%d",
++              data->ch_switch.count,
++              data->ch_switch.freq,
++              data->ch_switch.ht_enabled,
++              data->ch_switch.ch_offset,
++              channel_width_to_string(data->ch_switch.ch_width),
++              data->ch_switch.cf1,
++              data->ch_switch.cf2);
++
++      switch (data->ch_switch.ch_width) {
++      case CHAN_WIDTH_20_NOHT:
++      case CHAN_WIDTH_20:
++              width = 20;
++              break;
++      case CHAN_WIDTH_40:
++              width = 40;
++              break;
++      case CHAN_WIDTH_80:
++              width = 80;
++              break;
++      case CHAN_WIDTH_160:
++      case CHAN_WIDTH_80P80:
++              width = 160;
++              break;
++      }
++
++      asprintf(&cmd, "CHAN_SWITCH %d %d sec_channel_offset=%d center_freq1=%d center_freq2=%d, bandwidth=%d auto-ht\n",
++              data->ch_switch.count - 1,
++              data->ch_switch.freq,
++              data->ch_switch.ch_offset,
++              data->ch_switch.cf1,
++              data->ch_switch.cf2,
++              width);
++      ret = wpa_ctrl_request(wpa_s->hostapd, cmd, os_strlen(cmd), buf, &len, NULL);
++      free(cmd);
++
++      if (ret < 0)
++              wpa_printf(MSG_ERROR, "\nFailed to reload hostapd AP interfaces\n");
++}
++
+ void supplicant_event(void *ctx, enum wpa_event_type event,
+                     union wpa_event_data *data)
+ {
+@@ -4309,6 +4363,10 @@ void supplicant_event(void *ctx, enum wp
+                                      data->rx_from_unknown.wds);
+               break;
+ #endif /* CONFIG_AP */
++      case EVENT_CH_SWITCH_STARTED:
++              supplicant_ch_switch_started(wpa_s, data);
++              break;
++
+       case EVENT_CH_SWITCH:
+               if (!data || !wpa_s->current_ssid)
+                       break;
index e978fbc6893738fb92c58f853e552531b462f55b..2fe03340a8e8cfb143d0272330e1c511d8fb1a4f 100644 (file)
@@ -12,7 +12,7 @@
  else
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -2907,6 +2907,7 @@ static int hostapd_ctrl_iface_receive_pr
+@@ -2912,6 +2912,7 @@ static int hostapd_ctrl_iface_receive_pr
                                                      reply_size);
        } else if (os_strcmp(buf, "STATUS-DRIVER") == 0) {
                reply_len = hostapd_drv_status(hapd, reply, reply_size);
@@ -20,7 +20,7 @@
        } else if (os_strcmp(buf, "MIB") == 0) {
                reply_len = ieee802_11_get_mib(hapd, reply, reply_size);
                if (reply_len >= 0) {
-@@ -2948,6 +2949,7 @@ static int hostapd_ctrl_iface_receive_pr
+@@ -2953,6 +2954,7 @@ static int hostapd_ctrl_iface_receive_pr
        } else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) {
                reply_len = hostapd_ctrl_iface_sta_next(hapd, buf + 9, reply,
                                                        reply_size);
diff --git a/package/network/services/hostapd/patches/550-hostapd-Add-Multi-AP-protocol-support.patch b/package/network/services/hostapd/patches/550-hostapd-Add-Multi-AP-protocol-support.patch
new file mode 100644 (file)
index 0000000..812f794
--- /dev/null
@@ -0,0 +1,306 @@
+From 9c06f0f6aed26c1628acaa74df0232dd7b345e9a Mon Sep 17 00:00:00 2001
+From: Venkateswara Naralasetty <vnaralas@codeaurora.org>
+Date: Wed, 5 Dec 2018 11:23:51 +0100
+Subject: [PATCH] hostapd: Add Multi-AP protocol support
+
+The purpose of Multi-AP specification is to enable inter-operability
+across Wi-Fi access points (APs) from different vendors.
+
+This patch introduces one new configuration parameter 'multi_ap' to
+enable Multi-AP functionality and to configure the BSS as a backhaul
+and/or fronthaul BSS.
+
+Advertise vendor specific Multi-AP capabilities in (Re)Association
+Response frame, if Multi-AP functionality is enabled through the
+configuration parameter.
+
+A backhaul AP must support receiving both 3addr and 4addr frames from a
+backhaul STA, so create a VLAN for it just like is done for WDS, i.e.,
+by calling hostapd_set_wds_sta(). Since Multi-AP requires WPA2 (never
+WEP), we can safely call hostapd_set_wds_encryption() as well and we can
+reuse the entire WDS condition.
+
+To parse the Multi-AP Extension subelement, we use get_ie(): even though
+that function is meant for parsing IEs, it works for subelements.
+
+Signed-off-by: Venkateswara Naralasetty <vnaralas@codeaurora.org>
+Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+ hostapd/config_file.c          | 10 +++++
+ hostapd/hostapd.conf           |  7 ++++
+ src/ap/ap_config.h             |  4 ++
+ src/ap/ieee802_11.c            | 77 +++++++++++++++++++++++++++++++++-
+ src/ap/sta_info.c              |  2 +-
+ src/ap/sta_info.h              |  1 +
+ src/common/ieee802_11_common.c | 24 +++++++++++
+ src/common/ieee802_11_common.h |  4 ++
+ src/common/ieee802_11_defs.h   |  7 ++++
+ 9 files changed, 134 insertions(+), 2 deletions(-)
+
+--- a/hostapd/config_file.c
++++ b/hostapd/config_file.c
+@@ -4115,6 +4115,16 @@ static int hostapd_config_fill(struct ho
+       } else if (os_strcmp(buf, "coloc_intf_reporting") == 0) {
+               bss->coloc_intf_reporting = atoi(pos);
+ #endif /* CONFIG_OWE */
++      } else if (os_strcmp(buf, "multi_ap") == 0) {
++              int val = atoi(pos);
++
++              if (val < 0 || val > 3) {
++                      wpa_printf(MSG_ERROR, "Line %d: Invalid multi_ap '%s'",
++                                 line, buf);
++                      return -1;
++              }
++
++              bss->multi_ap = val;
+       } else {
+               wpa_printf(MSG_ERROR,
+                          "Line %d: unknown configuration item '%s'",
+--- a/hostapd/hostapd.conf
++++ b/hostapd/hostapd.conf
+@@ -438,6 +438,13 @@ wmm_ac_vo_txop_limit=47
+ wmm_ac_vo_acm=0
+ # Note: for IEEE 802.11b mode: cWmin=3 cWmax=4 burst=102
++# Enable Multi-AP functionality
++# 0 = disabled (default)
++# 1 = AP support backhaul BSS
++# 2 = AP support fronthaul BSS
++# 3 = AP supports both backhaul BSS and fronthaul BSS
++#multi_ap=0
++
+ # Static WEP key configuration
+ #
+ # The key number to use when transmitting.
+--- a/src/ap/ap_config.h
++++ b/src/ap/ap_config.h
+@@ -688,6 +688,10 @@ struct hostapd_bss_config {
+ #endif /* CONFIG_OWE */
+       int coloc_intf_reporting;
++
++#define BACKHAUL_BSS 1
++#define FRONTHAUL_BSS 2
++      int multi_ap; /* bitmap of BACKHAUL_BSS, FRONTHAUL_BSS */
+ };
+ /**
+--- a/src/ap/ieee802_11.c
++++ b/src/ap/ieee802_11.c
+@@ -62,6 +62,22 @@ prepare_auth_resp_fils(struct hostapd_da
+                      int *is_pub);
+ #endif /* CONFIG_FILS */
++
++u8 * hostapd_eid_multi_ap(struct hostapd_data *hapd, u8 *eid)
++{
++      u8 multi_ap_val = 0;
++
++      if (!hapd->conf->multi_ap)
++              return eid;
++      if (hapd->conf->multi_ap & BACKHAUL_BSS)
++              multi_ap_val |= MULTI_AP_BACKHAUL_BSS;
++      if (hapd->conf->multi_ap & FRONTHAUL_BSS)
++              multi_ap_val |= MULTI_AP_FRONTHAUL_BSS;
++
++      return eid + add_multi_ap_ie(eid, 9, multi_ap_val);
++}
++
++
+ u8 * hostapd_eid_supp_rates(struct hostapd_data *hapd, u8 *eid)
+ {
+       u8 *pos = eid;
+@@ -2210,6 +2226,57 @@ static u16 check_wmm(struct hostapd_data
+       return WLAN_STATUS_SUCCESS;
+ }
++static u16 check_multi_ap(struct hostapd_data *hapd, struct sta_info *sta,
++                        const u8 *multi_ap_ie, size_t multi_ap_len)
++{
++      u8 multi_ap_value = 0;
++
++      sta->flags &= ~WLAN_STA_MULTI_AP;
++
++      if (!hapd->conf->multi_ap)
++              return WLAN_STATUS_SUCCESS;
++
++      if (multi_ap_ie) {
++              const u8 *multi_ap_subelem;
++
++              multi_ap_subelem = get_ie(multi_ap_ie + 4,
++                                        multi_ap_len - 4,
++                                        MULTI_AP_SUB_ELEM_TYPE);
++              if (multi_ap_subelem && multi_ap_subelem[1] == 1) {
++                      multi_ap_value = multi_ap_subelem[2];
++              } else {
++                      hostapd_logger(hapd, sta->addr,
++                                     HOSTAPD_MODULE_IEEE80211,
++                                     HOSTAPD_LEVEL_INFO,
++                                     "Multi-AP IE has missing or invalid Multi-AP subelement");
++                      return WLAN_STATUS_INVALID_IE;
++              }
++      }
++
++      if (multi_ap_value == MULTI_AP_BACKHAUL_STA)
++              sta->flags |= WLAN_STA_MULTI_AP;
++
++      if ((hapd->conf->multi_ap & BACKHAUL_BSS) &&
++          multi_ap_value == MULTI_AP_BACKHAUL_STA)
++              return WLAN_STATUS_SUCCESS;
++
++      if (hapd->conf->multi_ap & FRONTHAUL_BSS) {
++              if (multi_ap_value == MULTI_AP_BACKHAUL_STA) {
++                      hostapd_logger(hapd, sta->addr,
++                                     HOSTAPD_MODULE_IEEE80211,
++                                     HOSTAPD_LEVEL_INFO,
++                                     "Backhaul STA tries to associate with fronthaul-only BSS");
++                      return WLAN_STATUS_ASSOC_DENIED_UNSPEC;
++              }
++              return WLAN_STATUS_SUCCESS;
++      }
++
++      hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
++                     HOSTAPD_LEVEL_INFO,
++                     "Non-Multi-AP STA tries to associate with backhaul-only BSS");
++      return WLAN_STATUS_ASSOC_DENIED_UNSPEC;
++}
++
+ static u16 copy_supp_rates(struct hostapd_data *hapd, struct sta_info *sta,
+                          struct ieee802_11_elems *elems)
+@@ -2466,6 +2533,11 @@ static u16 check_assoc_ies(struct hostap
+       resp = copy_supp_rates(hapd, sta, &elems);
+       if (resp != WLAN_STATUS_SUCCESS)
+               return resp;
++
++      resp = check_multi_ap(hapd, sta, elems.multi_ap, elems.multi_ap_len);
++      if (resp != WLAN_STATUS_SUCCESS)
++              return resp;
++
+ #ifdef CONFIG_IEEE80211N
+       resp = copy_sta_ht_capab(hapd, sta, elems.ht_capabilities);
+       if (resp != WLAN_STATUS_SUCCESS)
+@@ -2996,6 +3068,9 @@ static u16 send_assoc_resp(struct hostap
+       }
+ #endif /* CONFIG_WPS */
++      if (sta && (sta->flags & WLAN_STA_MULTI_AP))
++              p = hostapd_eid_multi_ap(hapd, p);
++
+ #ifdef CONFIG_P2P
+       if (sta && sta->p2p_ie && hapd->p2p_group) {
+               struct wpabuf *p2p_resp_ie;
+@@ -4236,7 +4311,7 @@ static void handle_assoc_cb(struct hosta
+               sta->flags |= WLAN_STA_WDS;
+       }
+-      if (sta->flags & WLAN_STA_WDS) {
++      if (sta->flags & (WLAN_STA_WDS | WLAN_STA_MULTI_AP)) {
+               int ret;
+               char ifname_wds[IFNAMSIZ + 1];
+--- a/src/ap/sta_info.c
++++ b/src/ap/sta_info.c
+@@ -166,7 +166,7 @@ void ap_free_sta(struct hostapd_data *ha
+       /* just in case */
+       ap_sta_set_authorized(hapd, sta, 0);
+-      if (sta->flags & WLAN_STA_WDS)
++      if (sta->flags & (WLAN_STA_WDS | WLAN_STA_MULTI_AP))
+               hostapd_set_wds_sta(hapd, NULL, sta->addr, sta->aid, 0);
+       if (sta->ipaddr)
+--- a/src/ap/sta_info.h
++++ b/src/ap/sta_info.h
+@@ -36,6 +36,7 @@
+ #define WLAN_STA_VHT_OPMODE_ENABLED BIT(20)
+ #define WLAN_STA_VENDOR_VHT BIT(21)
+ #define WLAN_STA_PENDING_FILS_ERP BIT(22)
++#define WLAN_STA_MULTI_AP BIT(23)
+ #define WLAN_STA_PENDING_DISASSOC_CB BIT(29)
+ #define WLAN_STA_PENDING_DEAUTH_CB BIT(30)
+ #define WLAN_STA_NONERP BIT(31)
+--- a/src/common/ieee802_11_common.c
++++ b/src/common/ieee802_11_common.c
+@@ -126,6 +126,10 @@ static int ieee802_11_parse_vendor_speci
+                       elems->roaming_cons_sel = pos;
+                       elems->roaming_cons_sel_len = elen;
+                       break;
++              case MULTI_AP_OUI_TYPE:
++                      elems->multi_ap = pos;
++                      elems->multi_ap_len = elen;
++                      break;
+               default:
+                       wpa_printf(MSG_MSGDUMP, "Unknown WFA "
+                                  "information element ignored "
+@@ -1519,6 +1523,26 @@ size_t mbo_add_ie(u8 *buf, size_t len, c
+ }
++size_t add_multi_ap_ie(u8 *buf, size_t len, u8 value)
++{
++      u8 *pos = buf;
++
++      if (len < 9)
++              return 0;
++
++      *pos++ = WLAN_EID_VENDOR_SPECIFIC;
++      *pos++ = 7; /* len */
++      WPA_PUT_BE24(pos, OUI_WFA);
++      pos += 3;
++      *pos++ = MULTI_AP_OUI_TYPE;
++      *pos++ = MULTI_AP_SUB_ELEM_TYPE;
++      *pos++ = 1; /* len */
++      *pos++ = value;
++
++      return pos - buf;
++}
++
++
+ static const struct country_op_class us_op_class[] = {
+       { 1, 115 },
+       { 2, 118 },
+--- a/src/common/ieee802_11_common.h
++++ b/src/common/ieee802_11_common.h
+@@ -84,6 +84,7 @@ struct ieee802_11_elems {
+       const u8 *power_capab;
+       const u8 *roaming_cons_sel;
+       const u8 *password_id;
++      const u8 *multi_ap;
+       u8 ssid_len;
+       u8 supp_rates_len;
+@@ -130,6 +131,7 @@ struct ieee802_11_elems {
+       u8 power_capab_len;
+       u8 roaming_cons_sel_len;
+       u8 password_id_len;
++      u8 multi_ap_len;
+       struct mb_ies_info mb_ies;
+ };
+@@ -189,6 +191,8 @@ const u8 * get_ie_ext(const u8 *ies, siz
+ size_t mbo_add_ie(u8 *buf, size_t len, const u8 *attr, size_t attr_len);
++size_t add_multi_ap_ie(u8 *buf, size_t len, u8 value);
++
+ struct country_op_class {
+       u8 country_op_class;
+       u8 global_op_class;
+--- a/src/common/ieee802_11_defs.h
++++ b/src/common/ieee802_11_defs.h
+@@ -1210,6 +1210,13 @@ struct ieee80211_ampe_ie {
+ #define MBO_OUI_TYPE 22
+ #define OWE_IE_VENDOR_TYPE 0x506f9a1c
+ #define OWE_OUI_TYPE 28
++#define MULTI_AP_OUI_TYPE 0x1B
++
++#define MULTI_AP_SUB_ELEM_TYPE 0x06
++#define MULTI_AP_TEAR_DOWN BIT(4)
++#define MULTI_AP_FRONTHAUL_BSS BIT(5)
++#define MULTI_AP_BACKHAUL_BSS BIT(6)
++#define MULTI_AP_BACKHAUL_STA BIT(7)
+ #define WMM_OUI_TYPE 2
+ #define WMM_OUI_SUBTYPE_INFORMATION_ELEMENT 0
diff --git a/package/network/services/hostapd/patches/551-wpa_supplicant-Add-Multi-AP-protocol-support-to-supp.patch b/package/network/services/hostapd/patches/551-wpa_supplicant-Add-Multi-AP-protocol-support-to-supp.patch
new file mode 100644 (file)
index 0000000..5fc41c2
--- /dev/null
@@ -0,0 +1,311 @@
+From 5abc7823bd01f69b8afbe1fd19f65fff86137c44 Mon Sep 17 00:00:00 2001
+From: Venkateswara Naralasetty <vnaralas@codeaurora.org>
+Date: Wed, 5 Dec 2018 11:23:53 +0100
+Subject: [PATCH] wpa_supplicant: Add Multi-AP backhaul STA support
+
+Advertise vendor specific Multi-AP IE in (Re)Association Request frames
+and process Multi-AP IE from (Re)Association Response frames if the user
+enables Multi-AP fuctionality. If the (Re)Association Response frame
+does not contain the Multi-AP IE, disassociate.
+
+This adds a new configuration parameter 'multi_ap_backhaul_sta' to
+enable/disable Multi-AP functionality.
+
+Enable 4-address mode after association (if the Association Response
+frame contains the Multi-AP IE). Also enable the bridge in that case.
+This is necessary because wpa_supplicant only enables the bridge in
+wpa_drv_if_add(), which only gets called when an interface is added
+through the control interface, not when it is configured from the
+command line.
+
+Signed-off-by: Venkateswara Naralasetty <vnaralas@codeaurora.org>
+Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+ src/drivers/driver.h               |  9 ++++++
+ src/drivers/driver_nl80211.c       | 44 ++++++++++++++++++++++++++
+ wpa_supplicant/config.c            |  1 +
+ wpa_supplicant/config_ssid.h       |  7 +++++
+ wpa_supplicant/driver_i.h          |  8 +++++
+ wpa_supplicant/events.c            | 50 ++++++++++++++++++++++++++++++
+ wpa_supplicant/sme.c               | 16 ++++++++++
+ wpa_supplicant/wpa_supplicant.c    | 18 +++++++++++
+ wpa_supplicant/wpa_supplicant.conf |  7 +++++
+ wpa_supplicant/wpa_supplicant_i.h  |  1 +
+ 10 files changed, 161 insertions(+)
+
+--- a/src/drivers/driver.h
++++ b/src/drivers/driver.h
+@@ -4100,6 +4100,15 @@ struct wpa_driver_ops {
+        */
+       int (*send_external_auth_status)(void *priv,
+                                        struct external_auth *params);
++
++      /**
++       * set_4addr_mode - Set 4-address mode
++       * @priv: Private driver interface data
++       * @bridge_ifname: Bridge interface name
++       * @val: 0 - disable 4addr mode, 1 - enable 4addr mode
++       * Returns: 0 on success, < 0 on failure
++       */
++      int (*set_4addr_mode)(void *priv, const char *bridge_ifname, int val);
+ };
+ /**
+--- a/src/drivers/driver_nl80211.c
++++ b/src/drivers/driver_nl80211.c
+@@ -10728,6 +10728,49 @@ fail:
+ }
++static int nl80211_set_4addr_mode(void *priv, const char *bridge_ifname,
++                                int val)
++{
++      struct i802_bss *bss = priv;
++      struct wpa_driver_nl80211_data *drv = bss->drv;
++      struct nl_msg *msg;
++      int ret = -ENOBUFS;
++
++      wpa_printf(MSG_DEBUG, "nl80211: %s 4addr mode (bridge_ifname: %s)",
++                 val ? "Enable" : "Disable", bridge_ifname);
++
++      msg = nl80211_cmd_msg(drv->first_bss, 0, NL80211_CMD_SET_INTERFACE);
++      if (!msg || nla_put_u8(msg, NL80211_ATTR_4ADDR, val))
++              goto fail;
++
++      if (bridge_ifname[0] && bss->added_if_into_bridge && !val) {
++              if (linux_br_del_if(drv->global->ioctl_sock,
++                                  bridge_ifname, bss->ifname)) {
++                      wpa_printf(MSG_ERROR,
++                                 "nl80211: Failed to remove interface %s from bridge %s",
++                                 bss->ifname, bridge_ifname);
++                      return -1;
++              }
++              bss->added_if_into_bridge = 0;
++      }
++
++      ret = send_and_recv_msgs(drv, msg, NULL, NULL);
++      msg = NULL;
++      if (!ret) {
++              if (bridge_ifname[0] && val &&
++                  i802_check_bridge(drv, bss, bridge_ifname, bss->ifname) < 0)
++                      return -1;
++              return 0;
++      }
++
++fail:
++      nlmsg_free(msg);
++      wpa_printf(MSG_ERROR, "nl80211: Failed to enable/disable 4addr");
++
++      return ret;
++}
++
++
+ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
+       .name = "nl80211",
+       .desc = "Linux nl80211/cfg80211",
+@@ -10856,4 +10899,5 @@ const struct wpa_driver_ops wpa_driver_n
+       .get_ext_capab = nl80211_get_ext_capab,
+       .update_connect_params = nl80211_update_connection_params,
+       .send_external_auth_status = nl80211_send_external_auth_status,
++      .set_4addr_mode = nl80211_set_4addr_mode,
+ };
+--- a/wpa_supplicant/config.c
++++ b/wpa_supplicant/config.c
+@@ -2416,6 +2416,7 @@ static const struct parse_data ssid_fiel
+ #endif /* CONFIG_DPP */
+       { INT_RANGE(owe_group, 0, 65535) },
+       { INT_RANGE(owe_only, 0, 1) },
++      { INT_RANGE(multi_ap_backhaul_sta, 0, 1) },
+ };
+ #undef OFFSET
+--- a/wpa_supplicant/config_ssid.h
++++ b/wpa_supplicant/config_ssid.h
+@@ -950,6 +950,13 @@ struct wpa_ssid {
+        * the selection attempts for OWE BSS exceed the configured threshold.
+        */
+       int owe_transition_bss_select_count;
++
++      /**
++       * multi_ap_backhaul_sta - Multi-AP backhaul STA
++       * 0 = normal (non-Multi-AP) station
++       * 1 = Multi-AP backhaul station
++       */
++      int multi_ap_backhaul_sta;
+ };
+ #endif /* CONFIG_SSID_H */
+--- a/wpa_supplicant/driver_i.h
++++ b/wpa_supplicant/driver_i.h
+@@ -1046,4 +1046,12 @@ wpa_drv_send_external_auth_status(struct
+                                                       params);
+ }
++static inline int wpa_drv_set_4addr_mode(struct wpa_supplicant *wpa_s, int val)
++{
++      if (!wpa_s->driver->set_4addr_mode)
++              return -1;
++      return wpa_s->driver->set_4addr_mode(wpa_s->drv_priv,
++                                           wpa_s->bridge_ifname, val);
++}
++
+ #endif /* DRIVER_I_H */
+--- a/wpa_supplicant/events.c
++++ b/wpa_supplicant/events.c
+@@ -324,6 +324,9 @@ void wpa_supplicant_mark_disassoc(struct
+       os_memset(wpa_s->last_tk, 0, sizeof(wpa_s->last_tk));
+ #endif /* CONFIG_TESTING_OPTIONS */
+       wpa_s->ieee80211ac = 0;
++
++      if (wpa_s->enabled_4addr_mode && wpa_drv_set_4addr_mode(wpa_s, 0) == 0)
++              wpa_s->enabled_4addr_mode = 0;
+ }
+@@ -2267,6 +2270,50 @@ static void interworking_process_assoc_r
+ #endif /* CONFIG_INTERWORKING */
++static void multi_ap_process_assoc_resp(struct wpa_supplicant *wpa_s,
++                                      const u8 *ies, size_t ies_len)
++{
++      struct ieee802_11_elems elems;
++      const u8 *map_sub_elem, *pos;
++      size_t len;
++
++      if (!wpa_s->current_ssid ||
++          !wpa_s->current_ssid->multi_ap_backhaul_sta ||
++          !ies ||
++          ieee802_11_parse_elems(ies, ies_len, &elems, 1) == ParseFailed)
++              return;
++
++      if (!elems.multi_ap || elems.multi_ap_len < 7) {
++              wpa_printf(MSG_INFO, "AP doesn't support Multi-AP protocol");
++              goto fail;
++      }
++
++      pos = elems.multi_ap + 4;
++      len = elems.multi_ap_len - 4;
++
++      map_sub_elem = get_ie(pos, len, MULTI_AP_SUB_ELEM_TYPE);
++      if (!map_sub_elem || map_sub_elem[1] < 1) {
++              wpa_printf(MSG_INFO, "invalid Multi-AP sub elem type");
++              goto fail;
++      }
++
++      if (!(map_sub_elem[2] & MULTI_AP_BACKHAUL_BSS)) {
++              wpa_printf(MSG_INFO, "AP doesn't support backhaul BSS");
++              goto fail;
++      }
++
++      if (wpa_drv_set_4addr_mode(wpa_s, 1) < 0) {
++              wpa_printf(MSG_ERROR, "Failed to set 4addr mode");
++              goto fail;
++      }
++      wpa_s->enabled_4addr_mode = 1;
++      return;
++
++fail:
++      wpa_supplicant_deauthenticate(wpa_s, WLAN_REASON_DEAUTH_LEAVING);
++}
++
++
+ #ifdef CONFIG_FST
+ static int wpas_fst_update_mbie(struct wpa_supplicant *wpa_s,
+                               const u8 *ie, size_t ie_len)
+@@ -2343,6 +2390,9 @@ static int wpa_supplicant_event_associnf
+                   get_ie(data->assoc_info.resp_ies,
+                          data->assoc_info.resp_ies_len, WLAN_EID_VHT_CAP))
+                       wpa_s->ieee80211ac = 1;
++
++              multi_ap_process_assoc_resp(wpa_s, data->assoc_info.resp_ies,
++                                          data->assoc_info.resp_ies_len);
+       }
+       if (data->assoc_info.beacon_ies)
+               wpa_hexdump(MSG_DEBUG, "beacon_ies",
+--- a/wpa_supplicant/sme.c
++++ b/wpa_supplicant/sme.c
+@@ -1552,6 +1552,22 @@ void sme_associate(struct wpa_supplicant
+       }
+ #endif /* CONFIG_OWE */
++      if (wpa_s->current_ssid && wpa_s->current_ssid->multi_ap_backhaul_sta) {
++              size_t multi_ap_ie_len;
++
++              multi_ap_ie_len = add_multi_ap_ie(
++                      wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len,
++                      sizeof(wpa_s->sme.assoc_req_ie) -
++                      wpa_s->sme.assoc_req_ie_len,
++                      MULTI_AP_BACKHAUL_STA);
++              if (multi_ap_ie_len == 0) {
++                      wpa_printf(MSG_ERROR,
++                                 "Multi-AP: Failed to build Multi-AP IE");
++                      return;
++              }
++              wpa_s->sme.assoc_req_ie_len += multi_ap_ie_len;
++      }
++
+       params.bssid = bssid;
+       params.ssid = wpa_s->sme.ssid;
+       params.ssid_len = wpa_s->sme.ssid_len;
+--- a/wpa_supplicant/wpa_supplicant.c
++++ b/wpa_supplicant/wpa_supplicant.c
+@@ -2893,6 +2893,21 @@ static u8 * wpas_populate_assoc_ies(
+       }
+ #endif /* CONFIG_IEEE80211R */
++      if (ssid->multi_ap_backhaul_sta) {
++              size_t multi_ap_ie_len;
++
++              multi_ap_ie_len = add_multi_ap_ie(wpa_ie + wpa_ie_len,
++                                                max_wpa_ie_len - wpa_ie_len,
++                                                MULTI_AP_BACKHAUL_STA);
++              if (multi_ap_ie_len == 0) {
++                      wpa_printf(MSG_ERROR,
++                                 "Multi-AP: Failed to build Multi-AP IE");
++                      os_free(wpa_ie);
++                      return NULL;
++              }
++              wpa_ie_len += multi_ap_ie_len;
++      }
++
+       params->wpa_ie = wpa_ie;
+       params->wpa_ie_len = wpa_ie_len;
+       params->auth_alg = algs;
+@@ -3377,6 +3392,9 @@ void wpa_supplicant_deauthenticate(struc
+               zero_addr = 1;
+       }
++      if (wpa_s->enabled_4addr_mode && wpa_drv_set_4addr_mode(wpa_s, 0) == 0)
++              wpa_s->enabled_4addr_mode = 0;
++
+ #ifdef CONFIG_TDLS
+       wpa_tdls_teardown_peers(wpa_s->wpa);
+ #endif /* CONFIG_TDLS */
+--- a/wpa_supplicant/wpa_supplicant.conf
++++ b/wpa_supplicant/wpa_supplicant.conf
+@@ -1399,6 +1399,13 @@ fast_reauth=1
+ #  2: MCS 0-9
+ #  3: not supported
++# multi_ap_backhaul_sta: Multi-AP backhaul STA functionality
++# 0 = normal STA (default)
++# 1 = backhaul STA
++# A backhaul STA sends the Multi-AP IE, fails to associate if the AP does not
++# support Multi-AP, and sets 4-address mode if it does. Thus, the netdev can be
++# added to a bridge to allow forwarding frames over this backhaul link.
++
+ ##### Fast Session Transfer (FST) support #####################################
+ #
+ # The options in this section are only available when the build configuration
+--- a/wpa_supplicant/wpa_supplicant_i.h
++++ b/wpa_supplicant/wpa_supplicant_i.h
+@@ -1242,6 +1242,7 @@ struct wpa_supplicant {
+       unsigned int disable_fils:1;
+ #endif /* CONFIG_FILS */
+       unsigned int ieee80211ac:1;
++      unsigned int enabled_4addr_mode:1;
+ };
diff --git a/package/network/services/hostapd/patches/552-tests-Multi-AP-association.patch b/package/network/services/hostapd/patches/552-tests-Multi-AP-association.patch
new file mode 100644 (file)
index 0000000..1f3aed9
--- /dev/null
@@ -0,0 +1,100 @@
+From 7488e0ade6dffb6df4c1fb6526a9f3ede0eb18ef Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@codeaurora.org>
+Date: Thu, 20 Dec 2018 12:41:00 +0200
+Subject: [PATCH] tests: Multi-AP association
+
+Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
+---
+ tests/hwsim/test_multi_ap.py | 73 ++++++++++++++++++++++++++++++++++++
+ tests/hwsim/wpasupplicant.py |  3 +-
+ 2 files changed, 75 insertions(+), 1 deletion(-)
+ create mode 100644 tests/hwsim/test_multi_ap.py
+
+--- /dev/null
++++ b/tests/hwsim/test_multi_ap.py
+@@ -0,0 +1,73 @@
++# Test cases for Multi-AP
++# Copyright (c) 2018, The Linux Foundation
++#
++# This software may be distributed under the terms of the BSD license.
++# See README for more details.
++
++import hostapd
++
++def test_multi_ap_association(dev, apdev):
++    """Multi-AP association in backhaul BSS"""
++    run_multi_ap_association(dev, apdev, 1)
++    dev[1].connect("multi-ap", psk="12345678", scan_freq="2412",
++                   wait_connect=False)
++    ev = dev[1].wait_event([ "CTRL-EVENT-DISCONNECTED",
++                             "CTRL-EVENT-CONNECTED",
++                             "CTRL-EVENT-ASSOC-REJECT" ],
++                           timeout=5)
++    dev[1].request("DISCONNECT")
++    if ev is None:
++        raise Exception("Connection result not reported")
++    if "CTRL-EVENT-ASSOC-REJECT" not in ev:
++        raise Exception("Association rejection not reported")
++    if "status_code=12" not in ev:
++        raise Exception("Unexpected association status code: " + ev)
++
++def test_multi_ap_association_shared_bss(dev, apdev):
++    """Multi-AP association in backhaul BSS (with fronthaul BSS enabled)"""
++    run_multi_ap_association(dev, apdev, 3)
++    dev[1].connect("multi-ap", psk="12345678", scan_freq="2412")
++
++def run_multi_ap_association(dev, apdev, multi_ap):
++    params = hostapd.wpa2_params(ssid="multi-ap", passphrase="12345678")
++    params["multi_ap"] = str(multi_ap)
++    hapd = hostapd.add_ap(apdev[0], params)
++
++    dev[0].connect("multi-ap", psk="12345678", multi_ap_backhaul_sta="1",
++                   scan_freq="2412")
++
++def test_multi_ap_disabled_on_ap(dev, apdev):
++    """Multi-AP association attempt when disabled on AP"""
++    params = hostapd.wpa2_params(ssid="multi-ap", passphrase="12345678")
++    hapd = hostapd.add_ap(apdev[0], params)
++
++    dev[0].connect("multi-ap", psk="12345678", multi_ap_backhaul_sta="1",
++                   scan_freq="2412", wait_connect=False)
++    ev = dev[0].wait_event([ "CTRL-EVENT-DISCONNECTED",
++                             "CTRL-EVENT-CONNECTED" ],
++                           timeout=5)
++    dev[0].request("DISCONNECT")
++    if ev is None:
++        raise Exception("Connection result not reported")
++    if "CTRL-EVENT-DISCONNECTED" not in ev:
++        raise Exception("Unexpected connection result")
++
++def test_multi_ap_fronthaul_on_ap(dev, apdev):
++    """Multi-AP association attempt when only fronthaul BSS on AP"""
++    params = hostapd.wpa2_params(ssid="multi-ap", passphrase="12345678")
++    params["multi_ap"] = "2"
++    hapd = hostapd.add_ap(apdev[0], params)
++
++    dev[0].connect("multi-ap", psk="12345678", multi_ap_backhaul_sta="1",
++                   scan_freq="2412", wait_connect=False)
++    ev = dev[0].wait_event([ "CTRL-EVENT-DISCONNECTED",
++                             "CTRL-EVENT-CONNECTED",
++                             "CTRL-EVENT-ASSOC-REJECT" ],
++                           timeout=5)
++    dev[0].request("DISCONNECT")
++    if ev is None:
++        raise Exception("Connection result not reported")
++    if "CTRL-EVENT-ASSOC-REJECT" not in ev:
++        raise Exception("Association rejection not reported")
++    if "status_code=12" not in ev:
++        raise Exception("Unexpected association status code: " + ev)
+--- a/tests/hwsim/wpasupplicant.py
++++ b/tests/hwsim/wpasupplicant.py
+@@ -1031,7 +1031,8 @@ class WpaSupplicant:
+                        "dpp_csign", "dpp_csign_expiry",
+                        "dpp_netaccesskey", "dpp_netaccesskey_expiry",
+                        "group_mgmt", "owe_group",
+-                       "roaming_consortium_selection" ]
++                       "roaming_consortium_selection", "multi_ap_backhaul_sta" ]
++
+         for field in not_quoted:
+             if field in kwargs and kwargs[field]:
+                 self.set_network(id, field, kwargs[field])
diff --git a/package/network/services/hostapd/patches/553-tests-refactor-test_multi_ap.patch b/package/network/services/hostapd/patches/553-tests-refactor-test_multi_ap.patch
new file mode 100644 (file)
index 0000000..240407f
--- /dev/null
@@ -0,0 +1,72 @@
+From 0f5029ff41ef286aa7b3e4a3efd3f1a16be925e8 Mon Sep 17 00:00:00 2001
+From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
+Date: Wed, 9 Jan 2019 18:41:08 +0100
+Subject: [PATCH] tests: refactor test_multi_ap
+
+With just one additional argument, the run_multi_ap_association function
+can be used for all tests.
+
+While we're at it, also move it to the top of the file.
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+v4: new patch
+---
+ tests/hwsim/test_multi_ap.py | 30 +++++++++++-------------------
+ 1 file changed, 11 insertions(+), 19 deletions(-)
+
+--- a/tests/hwsim/test_multi_ap.py
++++ b/tests/hwsim/test_multi_ap.py
+@@ -6,6 +6,15 @@
+ import hostapd
++def run_multi_ap_association(dev, apdev, multi_ap, wait_connect=True):
++    params = hostapd.wpa2_params(ssid="multi-ap", passphrase="12345678")
++    if multi_ap:
++        params["multi_ap"] = str(multi_ap)
++    hapd = hostapd.add_ap(apdev[0], params)
++
++    dev[0].connect("multi-ap", psk="12345678", scan_freq="2412",
++                   multi_ap_backhaul_sta="1", wait_connect=wait_connect)
++
+ def test_multi_ap_association(dev, apdev):
+     """Multi-AP association in backhaul BSS"""
+     run_multi_ap_association(dev, apdev, 1)
+@@ -28,21 +37,9 @@ def test_multi_ap_association_shared_bss
+     run_multi_ap_association(dev, apdev, 3)
+     dev[1].connect("multi-ap", psk="12345678", scan_freq="2412")
+-def run_multi_ap_association(dev, apdev, multi_ap):
+-    params = hostapd.wpa2_params(ssid="multi-ap", passphrase="12345678")
+-    params["multi_ap"] = str(multi_ap)
+-    hapd = hostapd.add_ap(apdev[0], params)
+-
+-    dev[0].connect("multi-ap", psk="12345678", multi_ap_backhaul_sta="1",
+-                   scan_freq="2412")
+-
+ def test_multi_ap_disabled_on_ap(dev, apdev):
+     """Multi-AP association attempt when disabled on AP"""
+-    params = hostapd.wpa2_params(ssid="multi-ap", passphrase="12345678")
+-    hapd = hostapd.add_ap(apdev[0], params)
+-
+-    dev[0].connect("multi-ap", psk="12345678", multi_ap_backhaul_sta="1",
+-                   scan_freq="2412", wait_connect=False)
++    run_multi_ap_association(dev, apdev, 0, wait_connect=False)
+     ev = dev[0].wait_event([ "CTRL-EVENT-DISCONNECTED",
+                              "CTRL-EVENT-CONNECTED" ],
+                            timeout=5)
+@@ -54,12 +51,7 @@ def test_multi_ap_disabled_on_ap(dev, ap
+ def test_multi_ap_fronthaul_on_ap(dev, apdev):
+     """Multi-AP association attempt when only fronthaul BSS on AP"""
+-    params = hostapd.wpa2_params(ssid="multi-ap", passphrase="12345678")
+-    params["multi_ap"] = "2"
+-    hapd = hostapd.add_ap(apdev[0], params)
+-
+-    dev[0].connect("multi-ap", psk="12345678", multi_ap_backhaul_sta="1",
+-                   scan_freq="2412", wait_connect=False)
++    run_multi_ap_association(dev, apdev, 2, wait_connect=False)
+     ev = dev[0].wait_event([ "CTRL-EVENT-DISCONNECTED",
+                              "CTRL-EVENT-CONNECTED",
+                              "CTRL-EVENT-ASSOC-REJECT" ],
diff --git a/package/network/services/hostapd/patches/554-multi_ap-don-t-reject-backhaul-STA-on-fronhaul-BSS.patch b/package/network/services/hostapd/patches/554-multi_ap-don-t-reject-backhaul-STA-on-fronhaul-BSS.patch
new file mode 100644 (file)
index 0000000..6c30a17
--- /dev/null
@@ -0,0 +1,106 @@
+From 71b061b8a13791a1ed858d924e401541c8584030 Mon Sep 17 00:00:00 2001
+From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
+Date: Wed, 9 Jan 2019 19:08:00 +0100
+Subject: [PATCH] multi_ap: don't reject backhaul STA on fronhaul BSS
+
+The Multi-AP specification only specifies that information elements have
+to be added to the association requests and responses; it doesn't
+specify anything about what should be done in case they are missing.
+Currently, we reject non-backhaul associations on a backhaul-only BSS,
+and non-fronthaul associations on a fronthaul-only BSS.
+
+However, this makes WPS fail when fronthaul and backhaul are separate
+SSIDs. Indeed, WPS for the backhaul link is performed on the *fronthaul*
+SSID. Thus, the association request used for WPS *will* contain the
+Multi-AP IE indicating a backhaul STA. Rejecting that association makes
+WPS fail.
+
+Therefore, accept a multi-AP backhaul STA association request on a
+fronthaul-only BSS. Still issue a warning about it, but only at level
+DEBUG intead of INFO. Also change the condition checking to make it
+clearer.
+
+While we're at it, also fix the handling of unexpected bits in the
+Multi-AP IE. 4 bits are reserved in the specification, so these
+certainly have to be ignored. The specification also doesn't say that
+setting one of the other bits is not allowed. Therefore, only report
+unexpected values in the Multi-AP IE, don't reject because of it.
+Note that a malformed IE (containing more than one byte) still triggers
+a rejection.
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+v4: new patch
+
+Cfr. discussion on http://lists.infradead.org/pipermail/hostap/2019-January/039232.html
+and follow-ups.
+---
+ src/ap/ieee802_11.c          | 38 +++++++++++++++++++-----------------
+ tests/hwsim/test_multi_ap.py |  6 ++----
+ 2 files changed, 22 insertions(+), 22 deletions(-)
+
+--- a/src/ap/ieee802_11.c
++++ b/src/ap/ieee802_11.c
+@@ -2253,28 +2253,30 @@ static u16 check_multi_ap(struct hostapd
+               }
+       }
+-      if (multi_ap_value == MULTI_AP_BACKHAUL_STA)
+-              sta->flags |= WLAN_STA_MULTI_AP;
+-
+-      if ((hapd->conf->multi_ap & BACKHAUL_BSS) &&
+-          multi_ap_value == MULTI_AP_BACKHAUL_STA)
+-              return WLAN_STATUS_SUCCESS;
+-
+-      if (hapd->conf->multi_ap & FRONTHAUL_BSS) {
+-              if (multi_ap_value == MULTI_AP_BACKHAUL_STA) {
+-                      hostapd_logger(hapd, sta->addr,
+-                                     HOSTAPD_MODULE_IEEE80211,
+-                                     HOSTAPD_LEVEL_INFO,
+-                                     "Backhaul STA tries to associate with fronthaul-only BSS");
+-                      return WLAN_STATUS_ASSOC_DENIED_UNSPEC;
+-              }
+-              return WLAN_STATUS_SUCCESS;
++      if (multi_ap_value && multi_ap_value != MULTI_AP_BACKHAUL_STA)
++              hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
++                             HOSTAPD_LEVEL_INFO,
++                             "Multi-AP IE with unexpected value 0x%02x",
++                             multi_ap_value);
++
++      if (!(multi_ap_value & MULTI_AP_BACKHAUL_STA)) {
++              if (hapd->conf->multi_ap & FRONTHAUL_BSS)
++                      return WLAN_STATUS_SUCCESS;
++
++              hostapd_logger(hapd, sta->addr,
++                             HOSTAPD_MODULE_IEEE80211,
++                             HOSTAPD_LEVEL_INFO,
++                             "Non-Multi-AP STA tries to associate with backhaul-only BSS");
++              return WLAN_STATUS_ASSOC_DENIED_UNSPEC;
+       }
+-      hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
+-                     HOSTAPD_LEVEL_INFO,
+-                     "Non-Multi-AP STA tries to associate with backhaul-only BSS");
+-      return WLAN_STATUS_ASSOC_DENIED_UNSPEC;
++      if (!(hapd->conf->multi_ap & BACKHAUL_BSS))
++              hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
++                             HOSTAPD_LEVEL_DEBUG,
++                             "Backhaul STA tries to associate with fronthaul-only BSS");
++
++      sta->flags |= WLAN_STA_MULTI_AP;
++      return WLAN_STATUS_SUCCESS;
+ }
+--- a/tests/hwsim/test_multi_ap.py
++++ b/tests/hwsim/test_multi_ap.py
+@@ -59,7 +59,5 @@ def test_multi_ap_fronthaul_on_ap(dev, a
+     dev[0].request("DISCONNECT")
+     if ev is None:
+         raise Exception("Connection result not reported")
+-    if "CTRL-EVENT-ASSOC-REJECT" not in ev:
+-        raise Exception("Association rejection not reported")
+-    if "status_code=12" not in ev:
+-        raise Exception("Unexpected association status code: " + ev)
++    if "CTRL-EVENT-DISCONNECTED" not in ev:
++        raise Exception("Unexpected connection result")
diff --git a/package/network/services/hostapd/patches/555-WPS-wps_build_wfa_ext-add-multi_ap_subelem-parameter.patch b/package/network/services/hostapd/patches/555-WPS-wps_build_wfa_ext-add-multi_ap_subelem-parameter.patch
new file mode 100644 (file)
index 0000000..2a1dc76
--- /dev/null
@@ -0,0 +1,342 @@
+From ad3c6faca118c23cdafef418dc27b3cee7d0e06e Mon Sep 17 00:00:00 2001
+From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
+Date: Wed, 9 Jan 2019 19:19:26 +0100
+Subject: [PATCH] WPS: wps_build_wfa_ext(): add multi_ap_subelem parameter
+
+The Multi-AP specification adds a new subelement to the WFA extension
+element in the WPS exchange. Add an additional parameter to
+wps_build_wfa_ext() to add this subelement. The subelement is only added
+if the parameter is non-0. Note that we don't reuse the existing
+MULTI_AP_SUB_ELEM_TYPE definition here, but rather define a new
+WFA_ELEM_MULTI_AP, to make sure the enum of WFA subelement types remains
+complete.
+
+For now, all callers set the multi_ap_subelem parameter to 0.
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+v4: Split off from supplicant WPS patch
+
+Since the original patch from Davina Lyu didn't have this extra
+argument, I kept myself as the author of this patch.
+---
+ src/p2p/p2p_build.c      |  2 +-
+ src/wps/wps.c            |  6 +++---
+ src/wps/wps_attr_build.c | 11 ++++++++++-
+ src/wps/wps_common.c     | 16 ++++++++--------
+ src/wps/wps_defs.h       |  3 ++-
+ src/wps/wps_enrollee.c   | 10 +++++-----
+ src/wps/wps_er.c         |  4 ++--
+ src/wps/wps_i.h          |  3 ++-
+ src/wps/wps_registrar.c  | 14 +++++++-------
+ src/wps/wps_upnp.c       |  2 +-
+ 10 files changed, 41 insertions(+), 30 deletions(-)
+
+--- a/src/p2p/p2p_build.c
++++ b/src/p2p/p2p_build.c
+@@ -802,7 +802,7 @@ int p2p_build_wps_ie(struct p2p_data *p2
+               wpabuf_put_be16(buf, p2p->cfg->config_methods);
+       }
+-      if (wps_build_wfa_ext(buf, 0, NULL, 0) < 0)
++      if (wps_build_wfa_ext(buf, 0, NULL, 0, 0) < 0)
+               return -1;
+       if (all_attr && p2p->cfg->num_sec_dev_types) {
+--- a/src/wps/wps.c
++++ b/src/wps/wps.c
+@@ -430,7 +430,7 @@ struct wpabuf * wps_build_assoc_req_ie(e
+       if (wps_build_version(ie) ||
+           wps_build_req_type(ie, req_type) ||
+-          wps_build_wfa_ext(ie, 0, NULL, 0)) {
++          wps_build_wfa_ext(ie, 0, NULL, 0, 0)) {
+               wpabuf_free(ie);
+               return NULL;
+       }
+@@ -464,7 +464,7 @@ struct wpabuf * wps_build_assoc_resp_ie(
+       if (wps_build_version(ie) ||
+           wps_build_resp_type(ie, WPS_RESP_AP) ||
+-          wps_build_wfa_ext(ie, 0, NULL, 0)) {
++          wps_build_wfa_ext(ie, 0, NULL, 0, 0)) {
+               wpabuf_free(ie);
+               return NULL;
+       }
+@@ -516,7 +516,7 @@ struct wpabuf * wps_build_probe_req_ie(u
+           wps_build_model_name(dev, ie) ||
+           wps_build_model_number(dev, ie) ||
+           wps_build_dev_name(dev, ie) ||
+-          wps_build_wfa_ext(ie, req_type == WPS_REQ_ENROLLEE, NULL, 0) ||
++          wps_build_wfa_ext(ie, req_type == WPS_REQ_ENROLLEE, NULL, 0, 0) ||
+           wps_build_req_dev_type(dev, ie, num_req_dev_types, req_dev_types)
+           ||
+           wps_build_secondary_dev_type(dev, ie)
+--- a/src/wps/wps_attr_build.c
++++ b/src/wps/wps_attr_build.c
+@@ -203,7 +203,8 @@ int wps_build_version(struct wpabuf *msg
+ int wps_build_wfa_ext(struct wpabuf *msg, int req_to_enroll,
+-                    const u8 *auth_macs, size_t auth_macs_count)
++                    const u8 *auth_macs, size_t auth_macs_count,
++                    u8 multi_ap_subelem)
+ {
+       u8 *len;
+@@ -244,6 +245,14 @@ int wps_build_wfa_ext(struct wpabuf *msg
+                                  MAC2STR(&auth_macs[i * ETH_ALEN]));
+       }
++      if (multi_ap_subelem) {
++              wpa_printf(MSG_DEBUG, "WPS:  * Multi-AP (0x%x)",
++                         multi_ap_subelem);
++              wpabuf_put_u8(msg, WFA_ELEM_MULTI_AP);
++              wpabuf_put_u8(msg, 1); /* length */
++              wpabuf_put_u8(msg, multi_ap_subelem);
++      }
++
+       WPA_PUT_BE16(len, (u8 *) wpabuf_put(msg, 0) - len - 2);
+ #ifdef CONFIG_WPS_TESTING
+--- a/src/wps/wps_common.c
++++ b/src/wps/wps_common.c
+@@ -374,7 +374,7 @@ struct wpabuf * wps_get_oob_cred(struct
+           (rf_band && wps_build_rf_bands_attr(plain, rf_band)) ||
+           (channel && wps_build_ap_channel(plain, channel)) ||
+           wps_build_mac_addr(plain, wps->dev.mac_addr) ||
+-          wps_build_wfa_ext(plain, 0, NULL, 0)) {
++          wps_build_wfa_ext(plain, 0, NULL, 0, 0)) {
+               os_free(data.new_psk);
+               wpabuf_clear_free(plain);
+               return NULL;
+@@ -421,7 +421,7 @@ struct wpabuf * wps_build_nfc_pw_token(u
+       if (wps_build_oob_dev_pw(data, dev_pw_id, pubkey,
+                                wpabuf_head(dev_pw), wpabuf_len(dev_pw)) ||
+-          wps_build_wfa_ext(data, 0, NULL, 0)) {
++          wps_build_wfa_ext(data, 0, NULL, 0, 0)) {
+               wpa_printf(MSG_ERROR, "WPS: Failed to build NFC password "
+                          "token");
+               wpabuf_clear_free(data);
+@@ -586,7 +586,7 @@ struct wpabuf * wps_build_wsc_ack(struct
+           wps_build_msg_type(msg, WPS_WSC_ACK) ||
+           wps_build_enrollee_nonce(wps, msg) ||
+           wps_build_registrar_nonce(wps, msg) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0)) {
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0)) {
+               wpabuf_free(msg);
+               return NULL;
+       }
+@@ -610,7 +610,7 @@ struct wpabuf * wps_build_wsc_nack(struc
+           wps_build_enrollee_nonce(wps, msg) ||
+           wps_build_registrar_nonce(wps, msg) ||
+           wps_build_config_error(msg, wps->config_error) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0)) {
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0)) {
+               wpabuf_free(msg);
+               return NULL;
+       }
+@@ -726,7 +726,7 @@ struct wpabuf * wps_build_nfc_handover_r
+       if (wps_build_oob_dev_pw(msg, DEV_PW_NFC_CONNECTION_HANDOVER,
+                                nfc_dh_pubkey, NULL, 0) ||
+           wps_build_uuid_e(msg, ctx->uuid) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0)) {
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0)) {
+               wpabuf_free(msg);
+               return NULL;
+       }
+@@ -809,7 +809,7 @@ struct wpabuf * wps_build_nfc_handover_s
+           wps_build_ssid(msg, ctx) ||
+           wps_build_ap_freq(msg, freq) ||
+           (bssid && wps_build_mac_addr(msg, bssid)) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0)) {
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0)) {
+               wpabuf_free(msg);
+               return NULL;
+       }
+@@ -848,7 +848,7 @@ struct wpabuf * wps_build_nfc_handover_r
+           wps_build_rf_bands(&ctx->dev, msg, 0) ||
+           wps_build_serial_number(&ctx->dev, msg) ||
+           wps_build_uuid_e(msg, ctx->uuid) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0)) {
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0)) {
+               wpabuf_free(msg);
+               return NULL;
+       }
+@@ -900,7 +900,7 @@ struct wpabuf * wps_build_nfc_handover_s
+           wps_build_rf_bands(&ctx->dev, msg, 0) ||
+           wps_build_serial_number(&ctx->dev, msg) ||
+           wps_build_uuid_e(msg, ctx->uuid) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0)) {
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0)) {
+               wpabuf_free(msg);
+               return NULL;
+       }
+--- a/src/wps/wps_defs.h
++++ b/src/wps/wps_defs.h
+@@ -152,7 +152,8 @@ enum {
+       WFA_ELEM_NETWORK_KEY_SHAREABLE = 0x02,
+       WFA_ELEM_REQUEST_TO_ENROLL = 0x03,
+       WFA_ELEM_SETTINGS_DELAY_TIME = 0x04,
+-      WFA_ELEM_REGISTRAR_CONFIGURATION_METHODS = 0x05
++      WFA_ELEM_REGISTRAR_CONFIGURATION_METHODS = 0x05,
++      WFA_ELEM_MULTI_AP = 0x06
+ };
+ /* Device Password ID */
+--- a/src/wps/wps_enrollee.c
++++ b/src/wps/wps_enrollee.c
+@@ -152,7 +152,7 @@ static struct wpabuf * wps_build_m1(stru
+           wps_build_dev_password_id(msg, wps->dev_pw_id) ||
+           wps_build_config_error(msg, WPS_CFG_NO_ERROR) ||
+           wps_build_os_version(&wps->wps->dev, msg) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0) ||
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0) ||
+           wps_build_vendor_ext_m1(&wps->wps->dev, msg)) {
+               wpabuf_free(msg);
+               return NULL;
+@@ -190,7 +190,7 @@ static struct wpabuf * wps_build_m3(stru
+           wps_build_msg_type(msg, WPS_M3) ||
+           wps_build_registrar_nonce(wps, msg) ||
+           wps_build_e_hash(wps, msg) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0) ||
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0) ||
+           wps_build_authenticator(wps, msg)) {
+               wpabuf_free(msg);
+               return NULL;
+@@ -223,7 +223,7 @@ static struct wpabuf * wps_build_m5(stru
+           wps_build_e_snonce1(wps, plain) ||
+           wps_build_key_wrap_auth(wps, plain) ||
+           wps_build_encr_settings(wps, msg, plain) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0) ||
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0) ||
+           wps_build_authenticator(wps, msg)) {
+               wpabuf_clear_free(plain);
+               wpabuf_free(msg);
+@@ -393,7 +393,7 @@ static struct wpabuf * wps_build_m7(stru
+           (wps->wps->ap && wps_build_ap_settings(wps, plain)) ||
+           wps_build_key_wrap_auth(wps, plain) ||
+           wps_build_encr_settings(wps, msg, plain) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0) ||
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0) ||
+           wps_build_authenticator(wps, msg)) {
+               wpabuf_clear_free(plain);
+               wpabuf_free(msg);
+@@ -430,7 +430,7 @@ static struct wpabuf * wps_build_wsc_don
+           wps_build_msg_type(msg, WPS_WSC_DONE) ||
+           wps_build_enrollee_nonce(wps, msg) ||
+           wps_build_registrar_nonce(wps, msg) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0)) {
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0)) {
+               wpabuf_free(msg);
+               return NULL;
+       }
+--- a/src/wps/wps_er.c
++++ b/src/wps/wps_er.c
+@@ -1530,7 +1530,7 @@ void wps_er_set_sel_reg(struct wps_er *e
+           wps_er_build_selected_registrar(msg, sel_reg) ||
+           wps_er_build_dev_password_id(msg, dev_passwd_id) ||
+           wps_er_build_sel_reg_config_methods(msg, sel_reg_config_methods) ||
+-          wps_build_wfa_ext(msg, 0, auth_macs, count) ||
++          wps_build_wfa_ext(msg, 0, auth_macs, count, 0) ||
+           wps_er_build_uuid_r(msg, er->wps->uuid)) {
+               wpabuf_free(msg);
+               return;
+@@ -2048,7 +2048,7 @@ struct wpabuf * wps_er_config_token_from
+       data.wps = wps;
+       data.use_cred = cred;
+       if (wps_build_cred(&data, ret) ||
+-          wps_build_wfa_ext(ret, 0, NULL, 0)) {
++          wps_build_wfa_ext(ret, 0, NULL, 0, 0)) {
+               wpabuf_free(ret);
+               return NULL;
+       }
+--- a/src/wps/wps_i.h
++++ b/src/wps/wps_i.h
+@@ -163,7 +163,8 @@ int wps_build_encr_settings(struct wps_d
+                           struct wpabuf *plain);
+ int wps_build_version(struct wpabuf *msg);
+ int wps_build_wfa_ext(struct wpabuf *msg, int req_to_enroll,
+-                    const u8 *auth_macs, size_t auth_macs_count);
++                    const u8 *auth_macs, size_t auth_macs_count,
++                    u8 multi_ap_subelem);
+ int wps_build_msg_type(struct wpabuf *msg, enum wps_msg_type msg_type);
+ int wps_build_enrollee_nonce(struct wps_data *wps, struct wpabuf *msg);
+ int wps_build_registrar_nonce(struct wps_data *wps, struct wpabuf *msg);
+--- a/src/wps/wps_registrar.c
++++ b/src/wps/wps_registrar.c
+@@ -1281,7 +1281,7 @@ static int wps_set_ie(struct wps_registr
+           wps_build_sel_reg_config_methods(reg, beacon) ||
+           wps_build_sel_pbc_reg_uuid_e(reg, beacon) ||
+           (reg->dualband && wps_build_rf_bands(&reg->wps->dev, beacon, 0)) ||
+-          wps_build_wfa_ext(beacon, 0, auth_macs, count) ||
++          wps_build_wfa_ext(beacon, 0, auth_macs, count, 0) ||
+           wps_build_vendor_ext(&reg->wps->dev, beacon)) {
+               wpabuf_free(beacon);
+               wpabuf_free(probe);
+@@ -1311,7 +1311,7 @@ static int wps_set_ie(struct wps_registr
+           wps_build_device_attrs(&reg->wps->dev, probe) ||
+           wps_build_probe_config_methods(reg, probe) ||
+           (reg->dualband && wps_build_rf_bands(&reg->wps->dev, probe, 0)) ||
+-          wps_build_wfa_ext(probe, 0, auth_macs, count) ||
++          wps_build_wfa_ext(probe, 0, auth_macs, count, 0) ||
+           wps_build_vendor_ext(&reg->wps->dev, probe)) {
+               wpabuf_free(beacon);
+               wpabuf_free(probe);
+@@ -1845,7 +1845,7 @@ static struct wpabuf * wps_build_m2(stru
+           wps_build_config_error(msg, WPS_CFG_NO_ERROR) ||
+           wps_build_dev_password_id(msg, wps->dev_pw_id) ||
+           wps_build_os_version(&wps->wps->dev, msg) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0)) {
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0)) {
+               wpabuf_free(msg);
+               return NULL;
+       }
+@@ -1913,7 +1913,7 @@ static struct wpabuf * wps_build_m2d(str
+           wps_build_assoc_state(wps, msg) ||
+           wps_build_config_error(msg, err) ||
+           wps_build_os_version(&wps->wps->dev, msg) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0)) {
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0)) {
+               wpabuf_free(msg);
+               return NULL;
+       }
+@@ -1949,7 +1949,7 @@ static struct wpabuf * wps_build_m4(stru
+           wps_build_r_snonce1(wps, plain) ||
+           wps_build_key_wrap_auth(wps, plain) ||
+           wps_build_encr_settings(wps, msg, plain) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0) ||
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0) ||
+           wps_build_authenticator(wps, msg)) {
+               wpabuf_clear_free(plain);
+               wpabuf_free(msg);
+@@ -1984,7 +1984,7 @@ static struct wpabuf * wps_build_m6(stru
+           wps_build_r_snonce2(wps, plain) ||
+           wps_build_key_wrap_auth(wps, plain) ||
+           wps_build_encr_settings(wps, msg, plain) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0) ||
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0) ||
+           wps_build_authenticator(wps, msg)) {
+               wpabuf_clear_free(plain);
+               wpabuf_free(msg);
+@@ -2021,7 +2021,7 @@ static struct wpabuf * wps_build_m8(stru
+           (!wps->wps->ap && !wps->er && wps_build_ap_settings(wps, plain)) ||
+           wps_build_key_wrap_auth(wps, plain) ||
+           wps_build_encr_settings(wps, msg, plain) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0) ||
++          wps_build_wfa_ext(msg, 0, NULL, 0, 0) ||
+           wps_build_authenticator(wps, msg)) {
+               wpabuf_clear_free(plain);
+               wpabuf_clear_free(msg);
+--- a/src/wps/wps_upnp.c
++++ b/src/wps/wps_upnp.c
+@@ -599,7 +599,7 @@ static struct wpabuf * build_fake_wsc_ac
+       wpabuf_put_be16(msg, ATTR_REGISTRAR_NONCE);
+       wpabuf_put_be16(msg, WPS_NONCE_LEN);
+       wpabuf_put(msg, WPS_NONCE_LEN);
+-      if (wps_build_wfa_ext(msg, 0, NULL, 0)) {
++      if (wps_build_wfa_ext(msg, 0, NULL, 0, 0)) {
+               wpabuf_free(msg);
+               return NULL;
+       }
diff --git a/package/network/services/hostapd/patches/556-wpa_supplicant-support-Multi-AP-backhaul-STA-onboard.patch b/package/network/services/hostapd/patches/556-wpa_supplicant-support-Multi-AP-backhaul-STA-onboard.patch
new file mode 100644 (file)
index 0000000..11c65c7
--- /dev/null
@@ -0,0 +1,217 @@
+From 6c4c98db9420a3321bbf091cfc254de5eba4b404 Mon Sep 17 00:00:00 2001
+From: Davina Lu <ylu@quantenna.com>
+Date: Tue, 15 Jan 2019 19:17:51 +0100
+Subject: [PATCH] wpa_supplicant: support Multi-AP backhaul STA onboarding
+
+The Wi-Fi Alliance Multi-AP Specification v1.0 allows onboarding of a
+backhaul STA through WPS. To enable this, the backhaul STA needs to add
+a Multi-AP IE to the WFA vendor extension element in the WSC M1 message
+that indicates it supports the Multi-AP backhaul STA role. The registrar
+(if it support Multi-AP onboarding) will respond to that with a WSC M8
+message that also contains the Multi-AP IE, and that contains the
+credentials for the backhaul SSID (which may be different from the SSID
+on which WPS is performed).
+
+Introduce a new parameter to wpas_wps_start_pbc() and allow it to be
+set via control interface's new multi_ap=1 parameter of WPS_PBC call.
+multi_ap_backhaul_sta is set to 1 in the automatically created SSID.
+Thus, if the AP does not support Multi-AP, association will fail and
+WPS will be terminated.
+
+Only wps_pbc is supported.
+
+The multi_ap argument is only added to the socket interface, not to the
+dbus interface.
+
+Signed-off-by: Davina Lu <ylu@quantenna.com>
+Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com>
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+Signed-off-by: Daniel Golle <daniel@makrotopia.org>
+---
+v4: use argument to wps_pbc instead of a global configuration option
+ (requested by Jouni)
+---
+ src/eap_peer/eap_wsc.c                      | 3 +++
+ src/wps/wps.h                               | 6 ++++++
+ src/wps/wps_enrollee.c                      | 6 +++++-
+ wpa_supplicant/ctrl_iface.c                 | 5 ++++-
+ wpa_supplicant/dbus/dbus_new_handlers_wps.c | 2 +-
+ wpa_supplicant/dbus/dbus_old_handlers_wps.c | 4 ++--
+ wpa_supplicant/events.c                     | 2 +-
+ wpa_supplicant/p2p_supplicant.c             | 2 +-
+ wpa_supplicant/wps_supplicant.c             | 9 +++++++--
+ wpa_supplicant/wps_supplicant.h             | 2 +-
+ 10 files changed, 31 insertions(+), 10 deletions(-)
+
+--- a/src/eap_peer/eap_wsc.c
++++ b/src/eap_peer/eap_wsc.c
+@@ -274,6 +274,9 @@ static void * eap_wsc_init(struct eap_sm
+                                     cfg.pin, cfg.pin_len, 0);
+       }
++      if (os_strstr(phase1, "multi_ap=1"))
++              wps->multi_ap_backhaul_sta = 1;
++
+       /* Use reduced client timeout for WPS to avoid long wait */
+       if (sm->ClientTimeout > 30)
+               sm->ClientTimeout = 30;
+--- a/src/wps/wps.h
++++ b/src/wps/wps.h
+@@ -613,6 +613,12 @@ struct wps_context {
+       int ap_setup_locked;
+       /**
++       * multi_ap_backhaul_sta - Whether this is a Multi-AP backhaul STA
++       * enrollee
++       */
++      int multi_ap_backhaul_sta;
++
++      /**
+        * uuid - Own UUID
+        */
+       u8 uuid[16];
+--- a/src/wps/wps_enrollee.c
++++ b/src/wps/wps_enrollee.c
+@@ -105,6 +105,7 @@ static struct wpabuf * wps_build_m1(stru
+ {
+       struct wpabuf *msg;
+       u16 config_methods;
++      u8 multi_ap_backhaul_sta = 0;
+       if (random_get_bytes(wps->nonce_e, WPS_NONCE_LEN) < 0)
+               return NULL;
+@@ -134,6 +135,9 @@ static struct wpabuf * wps_build_m1(stru
+                                   WPS_CONFIG_PHY_PUSHBUTTON);
+       }
++      if (wps->wps->multi_ap_backhaul_sta)
++              multi_ap_backhaul_sta = MULTI_AP_BACKHAUL_STA;
++
+       if (wps_build_version(msg) ||
+           wps_build_msg_type(msg, WPS_M1) ||
+           wps_build_uuid_e(msg, wps->uuid_e) ||
+@@ -152,7 +156,7 @@ static struct wpabuf * wps_build_m1(stru
+           wps_build_dev_password_id(msg, wps->dev_pw_id) ||
+           wps_build_config_error(msg, WPS_CFG_NO_ERROR) ||
+           wps_build_os_version(&wps->wps->dev, msg) ||
+-          wps_build_wfa_ext(msg, 0, NULL, 0, 0) ||
++          wps_build_wfa_ext(msg, 0, NULL, 0, multi_ap_backhaul_sta) ||
+           wps_build_vendor_ext_m1(&wps->wps->dev, msg)) {
+               wpabuf_free(msg);
+               return NULL;
+--- a/wpa_supplicant/ctrl_iface.c
++++ b/wpa_supplicant/ctrl_iface.c
+@@ -1167,6 +1167,7 @@ static int wpa_supplicant_ctrl_iface_wps
+ #ifdef CONFIG_AP
+       u8 *_p2p_dev_addr = NULL;
+ #endif /* CONFIG_AP */
++      int multi_ap = 0;
+       if (cmd == NULL || os_strcmp(cmd, "any") == 0) {
+               _bssid = NULL;
+@@ -1184,6 +1185,8 @@ static int wpa_supplicant_ctrl_iface_wps
+               wpa_printf(MSG_DEBUG, "CTRL_IFACE WPS_PBC: invalid BSSID '%s'",
+                          cmd);
+               return -1;
++      } else if (os_strncmp(cmd, "multi_ap=", 9) == 0) {
++              multi_ap = atoi(cmd + 9);
+       }
+ #ifdef CONFIG_AP
+@@ -1191,7 +1194,7 @@ static int wpa_supplicant_ctrl_iface_wps
+               return wpa_supplicant_ap_wps_pbc(wpa_s, _bssid, _p2p_dev_addr);
+ #endif /* CONFIG_AP */
+-      return wpas_wps_start_pbc(wpa_s, _bssid, 0);
++      return wpas_wps_start_pbc(wpa_s, _bssid, 0, multi_ap);
+ }
+--- a/wpa_supplicant/dbus/dbus_new_handlers_wps.c
++++ b/wpa_supplicant/dbus/dbus_new_handlers_wps.c
+@@ -289,7 +289,7 @@ DBusMessage * wpas_dbus_handler_wps_star
+               if (ret > 0)
+                       os_snprintf(npin, sizeof(npin), "%08d", ret);
+       } else {
+-              ret = wpas_wps_start_pbc(wpa_s, params.bssid, 0);
++              ret = wpas_wps_start_pbc(wpa_s, params.bssid, 0, 0);
+       }
+       if (ret < 0) {
+--- a/wpa_supplicant/dbus/dbus_old_handlers_wps.c
++++ b/wpa_supplicant/dbus/dbus_old_handlers_wps.c
+@@ -37,9 +37,9 @@ DBusMessage * wpas_dbus_iface_wps_pbc(DB
+               return wpas_dbus_new_invalid_opts_error(message, NULL);
+       if (os_strcmp(arg_bssid, "any") == 0)
+-              ret = wpas_wps_start_pbc(wpa_s, NULL, 0);
++              ret = wpas_wps_start_pbc(wpa_s, NULL, 0, 0);
+       else if (!hwaddr_aton(arg_bssid, bssid))
+-              ret = wpas_wps_start_pbc(wpa_s, bssid, 0);
++              ret = wpas_wps_start_pbc(wpa_s, bssid, 0, 0);
+       else {
+               return wpas_dbus_new_invalid_opts_error(message,
+                                                       "Invalid BSSID");
+--- a/wpa_supplicant/events.c
++++ b/wpa_supplicant/events.c
+@@ -4816,7 +4816,7 @@ void supplicant_event(void *ctx, enum wp
+               break;
+       case EVENT_WPS_BUTTON_PUSHED:
+ #ifdef CONFIG_WPS
+-              wpas_wps_start_pbc(wpa_s, NULL, 0);
++              wpas_wps_start_pbc(wpa_s, NULL, 0, 0);
+ #endif /* CONFIG_WPS */
+               break;
+       case EVENT_AVOID_FREQUENCIES:
+--- a/wpa_supplicant/p2p_supplicant.c
++++ b/wpa_supplicant/p2p_supplicant.c
+@@ -1649,7 +1649,7 @@ static void wpas_start_wps_enrollee(stru
+       wpa_supplicant_ap_deinit(wpa_s);
+       wpas_copy_go_neg_results(wpa_s, res);
+       if (res->wps_method == WPS_PBC) {
+-              wpas_wps_start_pbc(wpa_s, res->peer_interface_addr, 1);
++              wpas_wps_start_pbc(wpa_s, res->peer_interface_addr, 1, 0);
+ #ifdef CONFIG_WPS_NFC
+       } else if (res->wps_method == WPS_NFC) {
+               wpas_wps_start_nfc(wpa_s, res->peer_device_addr,
+--- a/wpa_supplicant/wps_supplicant.c
++++ b/wpa_supplicant/wps_supplicant.c
+@@ -1137,9 +1137,10 @@ static void wpas_wps_reassoc(struct wpa_
+ int wpas_wps_start_pbc(struct wpa_supplicant *wpa_s, const u8 *bssid,
+-                     int p2p_group)
++                     int p2p_group, int multi_ap_backhaul_sta)
+ {
+       struct wpa_ssid *ssid;
++      char phase1[32];
+ #ifdef CONFIG_AP
+       if (wpa_s->ap_iface) {
+@@ -1177,10 +1178,14 @@ int wpas_wps_start_pbc(struct wpa_suppli
+               }
+       }
+ #endif /* CONFIG_P2P */
+-      if (wpa_config_set(ssid, "phase1", "\"pbc=1\"", 0) < 0)
++      if (os_snprintf(phase1, sizeof(phase1), "pbc=1%s",
++                      multi_ap_backhaul_sta ? " multi_ap=1" : "") ||
++          wpa_config_set_quoted(ssid, "phase1", phase1) < 0)
+               return -1;
+       if (wpa_s->wps_fragment_size)
+               ssid->eap.fragment_size = wpa_s->wps_fragment_size;
++      if (multi_ap_backhaul_sta)
++              ssid->multi_ap_backhaul_sta = 1;
+       wpa_supplicant_wps_event(wpa_s, WPS_EV_PBC_ACTIVE, NULL);
+       eloop_register_timeout(WPS_PBC_WALK_TIME, 0, wpas_wps_timeout,
+                              wpa_s, NULL);
+--- a/wpa_supplicant/wps_supplicant.h
++++ b/wpa_supplicant/wps_supplicant.h
+@@ -30,7 +30,7 @@ void wpas_wps_deinit(struct wpa_supplica
+ int wpas_wps_eapol_cb(struct wpa_supplicant *wpa_s);
+ enum wps_request_type wpas_wps_get_req_type(struct wpa_ssid *ssid);
+ int wpas_wps_start_pbc(struct wpa_supplicant *wpa_s, const u8 *bssid,
+-                     int p2p_group);
++                     int p2p_group, int multi_ap_backhaul_sta);
+ int wpas_wps_start_pin(struct wpa_supplicant *wpa_s, const u8 *bssid,
+                      const char *pin, int p2p_group, u16 dev_pw_id);
+ void wpas_wps_pbc_overlap(struct wpa_supplicant *wpa_s);
diff --git a/package/network/services/hostapd/patches/557-hostapd-support-Multi-AP-backhaul-STA-onboarding.patch b/package/network/services/hostapd/patches/557-hostapd-support-Multi-AP-backhaul-STA-onboarding.patch
new file mode 100644 (file)
index 0000000..c5785e5
--- /dev/null
@@ -0,0 +1,339 @@
+From 8b04a4cddbd6dbadb24279713af7ac677e80d342 Mon Sep 17 00:00:00 2001
+From: Davina Lu <ylu@quantenna.com>
+Date: Tue, 2 Oct 2018 18:34:14 -0700
+Subject: [PATCH] hostapd: support Multi-AP backhaul STA onboarding
+
+The Wi-Fi Alliance Multi-AP Specification v1.0 allows onboarding of a
+backhaul STA through WPS. To enable this, the WPS registrar offers a
+different set of credentials (backhaul credentials instead of fronthaul
+credentials) when the Multi-AP subelement is present in the WFA vendor
+extension element of the WSC M1 message.
+
+Add 3 new configuration options to specify the backhaul credentials for
+the hostapd internal registrar: multi_ap_backhaul_ssid,
+multi_ap_backhaul_wpa_psk, multi_ap_backhaul_wpa_passphrase. These are
+only relevant for a fronthaul SSID, i.e. where multi_ap is set to 2 or
+3. When these options are set, pass the backhaul credentials instead of
+the normal credentials when the Multi-AP subelement is present.
+
+Ignore the Multi-AP subelement if the backhaul config options are not
+set. Note that for an SSID which is fronthaul and backhaul at the same
+time (i.e., multi_ap == 3), this results in the correct credentials
+being sent anyway.
+
+The security to be used for the backaul BSS is fixed to WPA2PSK. The
+Multi-AP Specification only allows Open and WPA2PSK networks to be
+configured. Although not stated explicitly, the backhaul link is
+intended to be always encrypted, hence WPA2PSK.
+
+To build the credentials, the credential-building code is essentially
+copied and simplified. Indeed, the backhaul credentials are always
+WPA2PSK and never use per-device PSK. All the options set for the
+fronthaul BSS WPS are simply ignored.
+
+Signed-off-by: Davina Lu <ylu@quantenna.com>
+Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com>
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+v4: no change
+---
+ hostapd/config_file.c    | 47 ++++++++++++++++++++++++++++++++++++++++
+ hostapd/hostapd.conf     |  9 ++++++++
+ src/ap/ap_config.c       |  2 ++
+ src/ap/ap_config.h       |  1 +
+ src/ap/wps_hostapd.c     | 26 ++++++++++++++++++++++
+ src/wps/wps.h            | 32 +++++++++++++++++++++++++++
+ src/wps/wps_attr_parse.c | 11 ++++++++++
+ src/wps/wps_attr_parse.h |  1 +
+ src/wps/wps_dev_attr.c   |  5 +++++
+ src/wps/wps_dev_attr.h   |  1 +
+ src/wps/wps_registrar.c  | 25 ++++++++++++++++++++-
+ 11 files changed, 159 insertions(+), 1 deletion(-)
+
+--- a/hostapd/config_file.c
++++ b/hostapd/config_file.c
+@@ -3479,6 +3479,53 @@ static int hostapd_config_fill(struct ho
+                                  line, pos);
+                       return 1;
+               }
++      } else if (os_strcmp(buf, "multi_ap_backhaul_ssid") == 0) {
++              size_t slen;
++              char *str = wpa_config_parse_string(pos, &slen);
++
++              if (str == NULL || slen < 1 || slen > SSID_MAX_LEN) {
++                      wpa_printf(MSG_ERROR, "Line %d: invalid SSID '%s'",
++                                 line, pos);
++                      os_free(str);
++                      return 1;
++              }
++              os_memcpy(bss->multi_ap_backhaul_ssid.ssid, str, slen);
++              bss->multi_ap_backhaul_ssid.ssid_len = slen;
++              bss->multi_ap_backhaul_ssid.ssid_set = 1;
++              os_free(str);
++      } else if (os_strcmp(buf, "multi_ap_backhaul_wpa_passphrase") == 0) {
++              int len = os_strlen(pos);
++
++              if (len < 8 || len > 63) {
++                      wpa_printf(MSG_ERROR,
++                                 "Line %d: invalid WPA passphrase length %d (expected 8..63)",
++                                 line, len);
++                      return 1;
++              }
++              os_free(bss->multi_ap_backhaul_ssid.wpa_passphrase);
++              bss->multi_ap_backhaul_ssid.wpa_passphrase = os_strdup(pos);
++              if (bss->multi_ap_backhaul_ssid.wpa_passphrase) {
++                      hostapd_config_clear_wpa_psk(&bss->multi_ap_backhaul_ssid.wpa_psk);
++                      bss->multi_ap_backhaul_ssid.wpa_passphrase_set = 1;
++              }
++      } else if (os_strcmp(buf, "multi_ap_backhaul_wpa_psk") == 0) {
++              hostapd_config_clear_wpa_psk(&bss->multi_ap_backhaul_ssid.wpa_psk);
++              bss->multi_ap_backhaul_ssid.wpa_psk =
++                      os_zalloc(sizeof(struct hostapd_wpa_psk));
++              if (bss->multi_ap_backhaul_ssid.wpa_psk == NULL)
++                      return 1;
++              if (hexstr2bin(pos, bss->multi_ap_backhaul_ssid.wpa_psk->psk,
++                             PMK_LEN) ||
++                  pos[PMK_LEN * 2] != '\0') {
++                      wpa_printf(MSG_ERROR, "Line %d: Invalid PSK '%s'.",
++                                 line, pos);
++                      hostapd_config_clear_wpa_psk(&bss->multi_ap_backhaul_ssid.wpa_psk);
++                      return 1;
++              }
++              bss->multi_ap_backhaul_ssid.wpa_psk->group = 1;
++              os_free(bss->multi_ap_backhaul_ssid.wpa_passphrase);
++              bss->multi_ap_backhaul_ssid.wpa_passphrase = NULL;
++              bss->multi_ap_backhaul_ssid.wpa_psk_set = 1;
+       } else if (os_strcmp(buf, "upnp_iface") == 0) {
+               os_free(bss->upnp_iface);
+               bss->upnp_iface = os_strdup(pos);
+--- a/hostapd/hostapd.conf
++++ b/hostapd/hostapd.conf
+@@ -1852,6 +1852,15 @@ own_ip_addr=127.0.0.1
+ # attribute.
+ #ap_settings=hostapd.ap_settings
++# Multi-AP backhaul BSS config
++# Used in WPS when multi_ap=2 or 3. Defines "backhaul BSS" credentials.
++# These are passed in WPS M8 instead of the normal (fronthaul) credentials
++# if the enrollee has the Multi-AP subelement set. Backhaul SSID is formatted
++# like ssid2. The key is set like wpa_psk or wpa_passphrase.
++#multi_ap_backhaul_ssid="backhaul"
++#multi_ap_backhaul_wpa_psk=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
++#multi_ap_backhaul_wpa_passphrase=secret passphrase
++
+ # WPS UPnP interface
+ # If set, support for external Registrars is enabled.
+ #upnp_iface=br0
+--- a/src/ap/ap_config.c
++++ b/src/ap/ap_config.c
+@@ -582,6 +582,8 @@ void hostapd_config_free_bss(struct host
+       os_free(conf->ap_pin);
+       os_free(conf->extra_cred);
+       os_free(conf->ap_settings);
++      hostapd_config_clear_wpa_psk(&conf->multi_ap_backhaul_ssid.wpa_psk);
++      str_clear_free(conf->multi_ap_backhaul_ssid.wpa_passphrase);
+       os_free(conf->upnp_iface);
+       os_free(conf->friendly_name);
+       os_free(conf->manufacturer_url);
+--- a/src/ap/ap_config.h
++++ b/src/ap/ap_config.h
+@@ -456,6 +456,7 @@ struct hostapd_bss_config {
+       int force_per_enrollee_psk;
+       u8 *ap_settings;
+       size_t ap_settings_len;
++      struct hostapd_ssid multi_ap_backhaul_ssid;
+       char *upnp_iface;
+       char *friendly_name;
+       char *manufacturer_url;
+--- a/src/ap/wps_hostapd.c
++++ b/src/ap/wps_hostapd.c
+@@ -962,6 +962,7 @@ static void hostapd_free_wps(struct wps_
+               wpabuf_free(wps->dev.vendor_ext[i]);
+       wps_device_data_free(&wps->dev);
+       os_free(wps->network_key);
++      os_free(wps->multi_ap_backhaul_network_key);
+       hostapd_wps_nfc_clear(wps);
+       wpabuf_free(wps->dh_pubkey);
+       wpabuf_free(wps->dh_privkey);
+@@ -1131,6 +1132,31 @@ int hostapd_init_wps(struct hostapd_data
+               wps->encr_types_wpa = WPS_ENCR_AES | WPS_ENCR_TKIP;
+       }
++      if (hapd->conf->multi_ap & FRONTHAUL_BSS &&
++          hapd->conf->multi_ap_backhaul_ssid.ssid_len) {
++              wps->multi_ap_backhaul_ssid_len =
++                      hapd->conf->multi_ap_backhaul_ssid.ssid_len;
++              os_memcpy(wps->multi_ap_backhaul_ssid,
++                        hapd->conf->multi_ap_backhaul_ssid.ssid,
++                        wps->multi_ap_backhaul_ssid_len);
++              if (conf->multi_ap_backhaul_ssid.wpa_passphrase) {
++                      wps->multi_ap_backhaul_network_key =
++                              (u8 *) os_strdup(conf->multi_ap_backhaul_ssid.wpa_passphrase);
++                      wps->multi_ap_backhaul_network_key_len =
++                              os_strlen(conf->multi_ap_backhaul_ssid.wpa_passphrase);
++              } else if (conf->multi_ap_backhaul_ssid.wpa_psk) {
++                      wps->multi_ap_backhaul_network_key =
++                              os_malloc(2 * PMK_LEN + 1);
++                      if (wps->multi_ap_backhaul_network_key == NULL)
++                              goto fail;
++                      wpa_snprintf_hex((char *) wps->multi_ap_backhaul_network_key,
++                                       2 * PMK_LEN + 1,
++                                       conf->multi_ap_backhaul_ssid.wpa_psk->psk,
++                                       PMK_LEN);
++                      wps->multi_ap_backhaul_network_key_len = 2 * PMK_LEN;
++              }
++      }
++
+       wps->ap_settings = conf->ap_settings;
+       wps->ap_settings_len = conf->ap_settings_len;
+--- a/src/wps/wps.h
++++ b/src/wps/wps.h
+@@ -100,6 +100,7 @@ struct wps_device_data {
+       struct wpabuf *vendor_ext[MAX_WPS_VENDOR_EXTENSIONS];
+       int p2p;
++      u8 multi_ap_ext;
+ };
+ /**
+@@ -730,6 +731,37 @@ struct wps_context {
+       int psk_set;
+       /**
++       * multi_ap_backhaul_ssid - SSID to supply to a Multi-AP backhaul
++       * enrollee
++       *
++       * This SSID is used by the Registrar to fill in information for
++       * Credentials when the enrollee advertises it is a Multi-AP backhaul
++       * STA.
++       */
++      u8 multi_ap_backhaul_ssid[SSID_MAX_LEN];
++
++      /**
++       * multi_ap_backhaul_ssid_len - Length of multi_ap_backhaul_ssid in
++       * octets
++       */
++      size_t multi_ap_backhaul_ssid_len;
++
++      /**
++       * multi_ap_backhaul_network_key - The Network Key (PSK) for the
++       * Multi-AP backhaul enrollee.
++       *
++       * This key can be either the ASCII passphrase (8..63 characters) or the
++       * 32-octet PSK (64 hex characters).
++       */
++      u8 *multi_ap_backhaul_network_key;
++
++      /**
++       * multi_ap_backhaul_network_key_len - Length of
++       * multi_ap_backhaul_network_key in octets
++       */
++      size_t multi_ap_backhaul_network_key_len;
++
++      /**
+        * ap_settings - AP Settings override for M7 (only used at AP)
+        *
+        * If %NULL, AP Settings attributes will be generated based on the
+--- a/src/wps/wps_attr_parse.c
++++ b/src/wps/wps_attr_parse.c
+@@ -67,6 +67,17 @@ static int wps_set_vendor_ext_wfa_subele
+               }
+               attr->registrar_configuration_methods = pos;
+               break;
++      case WFA_ELEM_MULTI_AP:
++              if (len != 1) {
++                      wpa_printf(MSG_DEBUG,
++                                 "WPS: Invalid Multi-AP Extension length %u",
++                                 len);
++                      return -1;
++              }
++              attr->multi_ap_ext = *pos;
++              wpa_printf(MSG_DEBUG, "WPS: Multi-AP Extension 0x%02x",
++                         attr->multi_ap_ext);
++              break;
+       default:
+               wpa_printf(MSG_MSGDUMP, "WPS: Skipped unknown WFA Vendor "
+                          "Extension subelement %u", id);
+--- a/src/wps/wps_attr_parse.h
++++ b/src/wps/wps_attr_parse.h
+@@ -97,6 +97,7 @@ struct wps_parse_attr {
+       const u8 *cred[MAX_CRED_COUNT];
+       const u8 *req_dev_type[MAX_REQ_DEV_TYPE_COUNT];
+       const u8 *vendor_ext[MAX_WPS_PARSE_VENDOR_EXT];
++      u8 multi_ap_ext;
+ };
+ int wps_parse_msg(const struct wpabuf *msg, struct wps_parse_attr *attr);
+--- a/src/wps/wps_dev_attr.c
++++ b/src/wps/wps_dev_attr.c
+@@ -389,6 +389,11 @@ int wps_process_os_version(struct wps_de
+       return 0;
+ }
++void wps_process_vendor_ext_m1(struct wps_device_data *dev, const u8 ext)
++{
++      dev->multi_ap_ext = ext;
++      wpa_printf(MSG_DEBUG, "WPS: Multi-AP extension value %02x", dev->multi_ap_ext);
++}
+ int wps_process_rf_bands(struct wps_device_data *dev, const u8 *bands)
+ {
+--- a/src/wps/wps_dev_attr.h
++++ b/src/wps/wps_dev_attr.h
+@@ -29,6 +29,7 @@ int wps_build_dev_name(struct wps_device
+ int wps_process_device_attrs(struct wps_device_data *dev,
+                            struct wps_parse_attr *attr);
+ int wps_process_os_version(struct wps_device_data *dev, const u8 *ver);
++void wps_process_vendor_ext_m1(struct wps_device_data *dev, const u8 ext);
+ int wps_process_rf_bands(struct wps_device_data *dev, const u8 *bands);
+ void wps_device_data_free(struct wps_device_data *dev);
+ int wps_build_vendor_ext(struct wps_device_data *dev, struct wpabuf *msg);
+--- a/src/wps/wps_registrar.c
++++ b/src/wps/wps_registrar.c
+@@ -1588,7 +1588,6 @@ int wps_build_credential_wrap(struct wpa
+       return 0;
+ }
+-
+ int wps_build_cred(struct wps_data *wps, struct wpabuf *msg)
+ {
+       struct wpabuf *cred;
+@@ -1603,6 +1602,29 @@ int wps_build_cred(struct wps_data *wps,
+       }
+       os_memset(&wps->cred, 0, sizeof(wps->cred));
++      if (wps->peer_dev.multi_ap_ext == MULTI_AP_BACKHAUL_STA &&
++          wps->wps->multi_ap_backhaul_ssid_len) {
++              wpa_printf(MSG_DEBUG, "WPS: Use backhaul STA credentials");
++              os_memcpy(wps->cred.ssid, wps->wps->multi_ap_backhaul_ssid,
++                        wps->wps->multi_ap_backhaul_ssid_len);
++              wps->cred.ssid_len = wps->wps->multi_ap_backhaul_ssid_len;
++              /* Backhaul is always WPA2PSK */
++              wps->cred.auth_type = WPS_AUTH_WPA2PSK;
++              wps->cred.encr_type = WPS_ENCR_AES;
++              /* Set MAC address in the Credential to be the Enrollee's MAC
++               * address
++               */
++              os_memcpy(wps->cred.mac_addr, wps->mac_addr_e, ETH_ALEN);
++              if (wps->wps->multi_ap_backhaul_network_key) {
++                      os_memcpy(wps->cred.key,
++                                wps->wps->multi_ap_backhaul_network_key,
++                                wps->wps->multi_ap_backhaul_network_key_len);
++                      wps->cred.key_len =
++                              wps->wps->multi_ap_backhaul_network_key_len;
++              }
++              goto use_provided;
++      }
++
+       os_memcpy(wps->cred.ssid, wps->wps->ssid, wps->wps->ssid_len);
+       wps->cred.ssid_len = wps->wps->ssid_len;
+@@ -2705,6 +2727,7 @@ static enum wps_process_res wps_process_
+               wps->use_psk_key = 1;
+       }
+ #endif /* WPS_WORKAROUNDS */
++      wps_process_vendor_ext_m1(&wps->peer_dev, attr->multi_ap_ext);
+       wps->state = SEND_M2;
+       return WPS_CONTINUE;
diff --git a/package/network/services/hostapd/patches/558-hostapd-add-README-MULTI-AP.patch b/package/network/services/hostapd/patches/558-hostapd-add-README-MULTI-AP.patch
new file mode 100644 (file)
index 0000000..b8526b8
--- /dev/null
@@ -0,0 +1,181 @@
+From bd733055a22c8ca3bcd7648bf716da2713b3d9f1 Mon Sep 17 00:00:00 2001
+From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
+Date: Mon, 21 Jan 2019 16:44:06 +0100
+Subject: [PATCH] hostapd: add README-MULTI-AP
+
+Document what hostapd and wpa_supplicant do for Multi-AP.
+
+This is only included in hostapd, since a Multi-AP device is always an
+access point so it should have hostapd.
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+v4: wps_pbc has multi_ap as a parameter instead of config option.
+---
+ hostapd/README-MULTI-AP | 160 ++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 160 insertions(+)
+ create mode 100644 hostapd/README-MULTI-AP
+
+--- /dev/null
++++ b/hostapd/README-MULTI-AP
+@@ -0,0 +1,160 @@
++hostapd, wpa_supplicant and the Multi-AP Specification
++======================================================
++
++This document describes how hostapd and wpa_supplicant can be configured to
++support the Multi-AP Specification.
++
++Introduction to Multi-AP
++------------------------
++
++The Wi-Fi Alliance Multi-AP Specification is the technical specification for
++Wi-Fi CERTIFIED EasyMesh(TM) [1], the Wi-Fi Alliance® certification program for
++Multi-AP. It defines control protocols between Wi-Fi® access points (APs) to
++join them into a network with centralized control and operation. It is targeted
++only at routers (repeaters, gateways, ...), not at clients. Clients are not
++involved at all in the protocols.
++
++Most of the Multi-AP specification falls outside of the scope of
++hostapd/wpa_supplicant. hostapd/wpa_supplicant is only involved for the items
++summarized below. The rest of the protocol must be implemented by a separate
++daemon, e.g. prplMesh [2]. That daemon also needs to communicate with hostapd,
++e.g. to get a list of associated clients, but this can be done using the normal
++hostapd interfaces.
++
++hostapd/wpa_supplicant needs to be configured specifically to support:
++- the WPS onboarding process;
++- configuring backhaul links.
++
++The text below refers to "Multi-AP Specification v1.0" [3].
++
++
++Fronthaul and backhaul links
++----------------------------
++
++In a Multi-AP network, the central controller can configure the SSIDs on the
++devices that are joined into the network. These are called fronthaul SSIDs.
++From the point of view of hostapd, there is nothing special about these
++fronthaul SSIDs.
++
++In addition to fronthaul SSIDs, the controller can also configure backhaul
++links. A backhaul link is a link between two access point devices, giving
++internet access to access point devices that don't have a wired link. The
++Multi-AP specification doesn't dictate this, but typically the backhaul link
++will be bridged into a LAN together with (one of) the fronthaul SSID(s) and the
++wired Ethernet ports.
++
++A backhaul link must be treated specially by hostapd and wpa_supplicant. One
++side of the backhaul link is configured through the Multi-AP protocol as the
++"backhaul STA", i.e. the client side of the link. A backhaul STA is like any
++station and is handled appropriately by wpa_supplicant, but two additional
++features are required. It must send an additional information element in each
++(Re-)Association Request ([3], section 5.2, paragraph 4). In addition, it must
++use 4-address mode for all frames sent over this link ([3], section 14).
++Therefore, wpa_supplicant must be configured explicitly as the backhaul STA
++role, by setting 'multi_ap_backhaul_sta=1' in the network configuration block
++or when configuring the SSID through the client socket. When
++'multi_ap_backhaul_sta=1', wpa_supplicant includes the Multi-AP IE in
++(Re-)Association Request messages and verifies that it is included in the
++(Re-)Association Response. If it is not, association fails. If it is,
++wpa_supplicant sets 4-address mode for this interface through a driver
++callback.
++
++The AP side of the backhaul link is called a "backhaul SSID". Such an SSID must
++be handled specially by hostapd, because it must add an additional information
++element in each (Re-)Association Response, but only to stations that have
++identified themselves as backhaul stations ([3], section 5.2, paragraph 5-6).
++This is important because it is possible to use the same BSS and SSID for
++fronthaul and backhaul at the same time. The additional information element must
++only be used for frames sent to a backhaul STA, not to a normal STA. Also,
++frames sent to a backhaul STA must use 4-address mode, while frames sent to a
++normal STA (fronthaul, when it's a fronthaul and backhaul SSID) must use
++3-address mode.
++
++An SSID is configured in Multi-AP mode in hostapd by setting the 'multi_ap'
++configuration option to 1 (backhaul SSID), 2 (fronthaul SSID) or 3
++(simultaneous backhaul and fronthaul SSID). If this option is set, hostapd
++parses the Multi-AP information element in the Association Request. If the
++station is a backhaul STA and the SSID is configured as a backhaul SSID,
++hostapd sets up 4-address mode. Since there may be multiple stations connected
++simultaneously, and each of them has a different RA (receiver address), a VLAN
++is created for each backhaul STA and it is automatically added to a bridge.
++This is the same behavior as for WDS, and the relevant option ('bridge' or
++'wds_bridge') applies here as well.
++
++If 'multi_ap' is 1 (backhaul SSID only), any station that tries to associate
++without the Multi-AP information element will be denied.
++
++If 'multi_ap' is 2 (fronthaul SSID only), any station that tries to associate
++with the Multi-AP information element will be denied. That is also the only
++difference with 'multi_ap' set to 0: in the latter case, the Multi-AP
++information element is simply ignored.
++
++In summary, this is the end-to-end behaviour for a backhaul BSS (i.e.,
++multi_ap_backhaul_sta=1 in wpa_supplicant on STA, and multi_ap=1 or 3 in
++hostapd on AP). Note that point 1 means that hostapd must not be configured
++with WPS support on the backhaul BSS (multi_ap=1). hostapd does not check for
++that.
++
++1. Backhaul BSS beacons do not advertise WPS support (other than that, nothing
++   multi-ap specific).
++2. STA sends authentication req (nothing multi-ap specific).
++3. AP sends authentication resp (nothing multi-ap specific).
++4. STA sends association req with Multi-AP IE.
++5. AP send association resp with Multi-AP IE.
++6. STA and AP both use 4-address mode for data.
++
++
++WPS support
++-----------
++
++WPS requires more special handling. WPS must only be advertised on fronthaul
++SSIDs, not on backhaul SSIDs, so WPS should not be enabled on a backhaul-only
++SSID in hostapd.conf. The WPS configuration purely works on the fronthaul SSID.
++When a WPS M1 message has an additional subelement that indicates a request for
++a multi-AP backhaul link, hostapd must not respond with the normal fronthaul
++SSID credentials; instead, it should respond with the (potentially different)
++backhaul SSID credentials.
++
++To support this, hostapd has the 'multi_ap_backhaul_ssid',
++'multi_ap_backhaul_wpa_psk' and 'multi_ap_backhaul_wpa_passphrase' options.
++When these are set on an SSID with WPS, they are used instead of the normal
++credentials when hostapd receives a WPS M1 message with the Multi-AP IE. Only
++WPA2 Personal is supported in the Multi-AP specification, so there is no need
++to specify authentication or encryption options. For the backhaul credentials,
++per-device PSK is not supported.
++
++If the SSID is a simultaneous backhaul and fronthaul SSID, there is no need to
++specify the backhaul credentials, since the backhaul and fronthaul credentials
++are identical.
++
++To enable the Multi-AP backhaul STA feature when it performs WPS, a new
++parameter has been introduced to the WPS_PBC control interface call.
++When this option is set, it adds the multi-AP backhaul subelement to
++the association and M1 messages. It then configures the new SSID with
++'multi_ap_backhaul_sta=1'. Note that this means that if the AP does not
++follow the Multi-AP specification, wpa_supplicant will fail to
++associate.
++
++In summary, this is the end-to-end behaviour for WPS of a backhaul link (i.e.,
++multi_ap=1 option is given in the wps_pbc call on the STA side, and multi_ap=2
++and multi_ap_backhaul_ssid and either multi_ap_backhaul_wpa_psk or
++multi_ap_backhaul_wpa_passphrase are set to the credentials of a backhaul SSID
++in hostapd on registrar AP).
++
++1. Fronthaul BSS beacons advertise WPS support (nothing multi-ap specific).
++2. Enrollee sends authentication req (nothing multi-ap specific).
++3. AP sends authentication resp (nothing multi-ap specific).
++4. Enrollee sends association req with Multi-AP IE.
++5. AP send association resp with Multi-AP IE.
++6. Enrollee sends M1 with additional Multi-AP subelement
++7. AP sends M8 with backhaul instead of fronthaul credentials.
++8. Enrollee sends Deauth.
++
++
++References
++----------
++
++[1] https://www.wi-fi.org/discover-wi-fi/wi-fi-easymesh
++[2] https://github.com/prplfoundation/prplMesh
++[3] https://www.wi-fi.org/file/multi-ap-specification-v10
++    (requires registration)
diff --git a/package/network/services/hostapd/patches/559-tests-add-WPS-tests-to-multi_ap-hwsim-tests.patch b/package/network/services/hostapd/patches/559-tests-add-WPS-tests-to-multi_ap-hwsim-tests.patch
new file mode 100644 (file)
index 0000000..3a121ba
--- /dev/null
@@ -0,0 +1,182 @@
+From 0729e01f5830ebf4701f0b1b7ff1bd2a2eedae40 Mon Sep 17 00:00:00 2001
+From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
+Date: Tue, 12 Feb 2019 11:02:42 +0100
+Subject: [PATCH] tests: add WPS tests to multi_ap hwsim tests
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+v4: new patch
+---
+ tests/hwsim/test_multi_ap.py | 164 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 164 insertions(+)
+
+--- a/tests/hwsim/test_multi_ap.py
++++ b/tests/hwsim/test_multi_ap.py
+@@ -61,3 +61,167 @@ def test_multi_ap_fronthaul_on_ap(dev, a
+         raise Exception("Connection result not reported")
+     if "CTRL-EVENT-DISCONNECTED" not in ev:
+         raise Exception("Unexpected connection result")
++
++def run_multi_ap_wps(dev, apdev, params, multi_ap_bssid = None):
++    """Helper for running Multi-AP WPS tests
++
++    dev[0] does multi_ap WPS, dev[1] does normal WPS. apdev[0] is the fronthaul
++    BSS. If there is a separate backhaul BSS, it must have been set up by the
++    caller. params are the normal SSID parameters, they will be extended with
++    the WPS parameters. multi_ap_bssid must be given if it is not equal to the
++    fronthaul BSSID."""
++
++    if multi_ap_bssid is None:
++        multi_ap_bssid = apdev[0]['bssid']
++    params.update({"wps_state": "2", "eap_server": "1"})
++
++    # WPS with multi-ap station dev[0]
++    hapd = hostapd.add_ap(apdev[0], params)
++    hapd.request("WPS_PBC")
++    if "PBC Status: Active" not in hapd.request("WPS_GET_STATUS"):
++        raise Exception("PBC status not shown correctly")
++
++    dev[0].request("WPS_PBC multi_ap=1")
++    dev[0].wait_connected(timeout=20)
++    status = dev[0].get_status()
++    if status['wpa_state'] != 'COMPLETED' or status['bssid'] != multi_ap_bssid:
++        raise Exception("Not fully connected")
++    if status['ssid'] != params['multi_ap_backhaul_ssid'].strip('"'):
++        raise Exception("Unexpected SSID %s != %s" % (status['ssid'], params["multi_ap_backhaul_ssid"]))
++    if status['pairwise_cipher'] != 'CCMP':
++        raise Exception("Unexpected encryption configuration %s" % status['pairwise_cipher'])
++    if status['key_mgmt'] != 'WPA2-PSK':
++        raise Exception("Unexpected key_mgmt")
++
++    status = hapd.request("WPS_GET_STATUS")
++    if "PBC Status: Disabled" not in status:
++        raise Exception("PBC status not shown correctly")
++    if "Last WPS result: Success" not in status:
++        raise Exception("Last WPS result not shown correctly")
++    if "Peer Address: " + dev[0].p2p_interface_addr() not in status:
++        raise Exception("Peer address not shown correctly")
++
++    if len(dev[0].list_networks()) != 1:
++        raise Exception("Unexpected number of network blocks")
++
++    # WPS with non-multi-ap station dev[1]
++    hapd.request("WPS_PBC")
++    if "PBC Status: Active" not in hapd.request("WPS_GET_STATUS"):
++        raise Exception("PBC status not shown correctly")
++
++    dev[1].request("WPS_PBC")
++    dev[1].wait_connected(timeout=20)
++    status = dev[1].get_status()
++    if status['wpa_state'] != 'COMPLETED' or status['bssid'] != apdev[0]['bssid']:
++        raise Exception("Not fully connected")
++    if status['ssid'] != params["ssid"]:
++        raise Exception("Unexpected SSID")
++    # Fronthaul may be something else than WPA2-PSK so don't test it.
++
++    status = hapd.request("WPS_GET_STATUS")
++    if "PBC Status: Disabled" not in status:
++        raise Exception("PBC status not shown correctly")
++    if "Last WPS result: Success" not in status:
++        raise Exception("Last WPS result not shown correctly")
++    if "Peer Address: " + dev[1].p2p_interface_addr() not in status:
++        raise Exception("Peer address not shown correctly")
++
++    if len(dev[1].list_networks()) != 1:
++        raise Exception("Unexpected number of network blocks")
++
++
++def test_multi_ap_wps_shared(dev, apdev):
++    """WPS on shared fronthaul/backhaul AP"""
++    ssid = "multi-ap-wps"
++    passphrase = "12345678"
++    params = hostapd.wpa2_params(ssid=ssid, passphrase=passphrase)
++    params.update({"multi_ap": "3",
++                   "multi_ap_backhaul_ssid": '"%s"' % ssid,
++                   "multi_ap_backhaul_wpa_passphrase": passphrase})
++    run_multi_ap_wps(dev, apdev, params)
++
++def test_multi_ap_wps_shared_psk(dev, apdev):
++    """WPS on shared fronthaul/backhaul AP using PSK"""
++    ssid = "multi-ap-wps"
++    psk = "1234567890abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
++    params = hostapd.wpa2_params(ssid=ssid)
++    params.update({"wpa_psk": psk, "multi_ap": "3",
++                   "multi_ap_backhaul_ssid": '"%s"' % ssid,
++                   "multi_ap_backhaul_wpa_psk": psk})
++    run_multi_ap_wps(dev, apdev, params)
++
++def test_multi_ap_wps_split(dev, apdev):
++    """WPS on split fronthaul and backhaul AP"""
++    backhaul_ssid = "multi-ap-backhaul-wps"
++    backhaul_passphrase = "87654321"
++    params = hostapd.wpa2_params(ssid="multi-ap-fronthaul-wps", passphrase="12345678")
++    params.update({"multi_ap": "2",
++                   "multi_ap_backhaul_ssid": '"%s"' % backhaul_ssid,
++                   "multi_ap_backhaul_wpa_passphrase": backhaul_passphrase})
++    params_backhaul = hostapd.wpa2_params(ssid=backhaul_ssid, passphrase=backhaul_passphrase)
++    params_backhaul.update({"multi_ap": "1"})
++    hapd_backhaul = hostapd.add_ap(apdev[1], params_backhaul)
++
++    run_multi_ap_wps(dev, apdev, params, hapd_backhaul.own_addr())
++
++def test_multi_ap_wps_split_psk(dev, apdev):
++    """WPS on split fronthaul and backhaul AP"""
++    backhaul_ssid = "multi-ap-backhaul-wps"
++    backhaul_psk = "1234567890abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
++    params = hostapd.wpa2_params(ssid="multi-ap-fronthaul-wps", passphrase="12345678")
++    params.update({"multi_ap": "2",
++                   "multi_ap_backhaul_ssid": '"%s"' % backhaul_ssid,
++                   "multi_ap_backhaul_wpa_psk": backhaul_psk})
++    params_backhaul = hostapd.wpa2_params(ssid=backhaul_ssid)
++    params_backhaul.update({"multi_ap": "1", "wpa_psk": backhaul_psk})
++    hapd_backhaul = hostapd.add_ap(apdev[1], params_backhaul)
++
++    run_multi_ap_wps(dev, apdev, params, hapd_backhaul.own_addr())
++
++def test_multi_ap_wps_split_mixed(dev, apdev):
++    """WPS on split fronthaul and backhaul AP with mixed-mode fronthaul"""
++    backhaul_ssid = "multi-ap-backhaul-wps"
++    backhaul_passphrase = "87654321"
++    params = hostapd.wpa_mixed_params(ssid="multi-ap-fronthaul-wps", passphrase="12345678")
++    params.update({"multi_ap": "2",
++                   "multi_ap_backhaul_ssid": '"%s"' % backhaul_ssid,
++                   "multi_ap_backhaul_wpa_passphrase": backhaul_passphrase})
++    params_backhaul = hostapd.wpa2_params(ssid=backhaul_ssid, passphrase=backhaul_passphrase)
++    params_backhaul.update({"multi_ap": "1"})
++    hapd_backhaul = hostapd.add_ap(apdev[1], params_backhaul)
++
++    run_multi_ap_wps(dev, apdev, params, hapd_backhaul.own_addr())
++
++def test_multi_ap_wps_split_open(dev, apdev):
++    """WPS on split fronthaul and backhaul AP with open fronthaul"""
++    backhaul_ssid = "multi-ap-backhaul-wps"
++    backhaul_passphrase = "87654321"
++    params = {"ssid": "multi-ap-wps-fronthaul", "multi_ap": "2",
++              "multi_ap_backhaul_ssid": '"%s"' % backhaul_ssid,
++              "multi_ap_backhaul_wpa_passphrase": backhaul_passphrase}
++    params_backhaul = hostapd.wpa2_params(ssid=backhaul_ssid, passphrase=backhaul_passphrase)
++    params_backhaul.update({"multi_ap": "1"})
++    hapd_backhaul = hostapd.add_ap(apdev[1], params_backhaul)
++
++    run_multi_ap_wps(dev, apdev, params, hapd_backhaul.own_addr())
++
++def test_multi_ap_wps_fail_non_multi_ap(dev, apdev):
++    """Multi-AP WPS on non-WPS AP fails"""
++
++    params = hostapd.wpa2_params(ssid="non-multi-ap-wps", passphrase="12345678")
++    params.update({"wps_state": "2", "eap_server": "1"})
++
++    hapd = hostapd.add_ap(apdev[0], params)
++    hapd.request("WPS_PBC")
++    if "PBC Status: Active" not in hapd.request("WPS_GET_STATUS"):
++        raise Exception("PBC status not shown correctly")
++
++    dev[0].request("WPS_PBC multi_ap=1")
++    # Since we will fail to associate and WPS doesn't even get started, there
++    # isn't much we can do except wait for timeout. For PBC, it is not possible
++    # to change the timeout from 2 minutes. Instead of waiting for the timeout,
++    # just check that WPS doesn't finish within reasonable time.
++    ev = dev[0].wait_event(["WPS-SUCCESS", "WPS-FAIL"], timeout=20)
++    if ev:
++        raise Exception("WPS operation completed: " + ev)
++    dev[0].request("WPS_CANCEL")
index a70f8861ac16a28eec655fb993318bdd0bd5252c..db037c6491669bfb350eb815bb44fd3ab2041a18 100644 (file)
@@ -92,7 +92,7 @@
                   __func__, driver, drv_priv);
 --- a/src/ap/ieee802_11.c
 +++ b/src/ap/ieee802_11.c
-@@ -1743,12 +1743,13 @@ ieee802_11_set_radius_info(struct hostap
+@@ -1759,12 +1759,13 @@ ieee802_11_set_radius_info(struct hostap
  
  
  static void handle_auth(struct hostapd_data *hapd,
        u16 fc;
        const u8 *challenge = NULL;
        u32 session_timeout, acct_interim_interval;
-@@ -1759,6 +1760,11 @@ static void handle_auth(struct hostapd_d
+@@ -1775,6 +1776,11 @@ static void handle_auth(struct hostapd_d
        char *identity = NULL;
        char *radius_cui = NULL;
        u16 seq_ctrl;
  
        if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth)) {
                wpa_printf(MSG_INFO, "handle_auth - too short payload (len=%lu)",
-@@ -1919,6 +1925,13 @@ static void handle_auth(struct hostapd_d
+@@ -1935,6 +1941,13 @@ static void handle_auth(struct hostapd_d
                resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
                goto fail;
        }
        if (res == HOSTAPD_ACL_PENDING)
                return;
  
-@@ -3210,12 +3223,12 @@ void fils_hlp_timeout(void *eloop_ctx, v
+@@ -3287,12 +3300,12 @@ void fils_hlp_timeout(void *eloop_ctx, v
  
  static void handle_assoc(struct hostapd_data *hapd,
                         const struct ieee80211_mgmt *mgmt, size_t len,
        struct sta_info *sta;
        u8 *tmp = NULL;
        struct hostapd_sta_wpa_psk_short *psk = NULL;
-@@ -3224,6 +3237,11 @@ static void handle_assoc(struct hostapd_
+@@ -3301,6 +3314,11 @@ static void handle_assoc(struct hostapd_
  #ifdef CONFIG_FILS
        int delay_assoc = 0;
  #endif /* CONFIG_FILS */
  
        if (len < IEEE80211_HDRLEN + (reassoc ? sizeof(mgmt->u.reassoc_req) :
                                      sizeof(mgmt->u.assoc_req))) {
-@@ -3395,6 +3413,14 @@ static void handle_assoc(struct hostapd_
+@@ -3472,6 +3490,14 @@ static void handle_assoc(struct hostapd_
        }
  #endif /* CONFIG_MBO */
  
        /*
         * sta->capability is used in check_assoc_ies() for RRM enabled
         * capability element.
-@@ -3608,6 +3634,7 @@ static void handle_disassoc(struct hosta
+@@ -3685,6 +3711,7 @@ static void handle_disassoc(struct hosta
        wpa_printf(MSG_DEBUG, "disassocation: STA=" MACSTR " reason_code=%d",
                   MAC2STR(mgmt->sa),
                   le_to_host16(mgmt->u.disassoc.reason_code));
  
        sta = ap_get_sta(hapd, mgmt->sa);
        if (sta == NULL) {
-@@ -3673,6 +3700,8 @@ static void handle_deauth(struct hostapd
+@@ -3750,6 +3777,8 @@ static void handle_deauth(struct hostapd
                " reason_code=%d",
                MAC2STR(mgmt->sa), le_to_host16(mgmt->u.deauth.reason_code));
  
        sta = ap_get_sta(hapd, mgmt->sa);
        if (sta == NULL) {
                wpa_msg(hapd->msg_ctx, MSG_DEBUG, "Station " MACSTR " trying "
-@@ -4000,7 +4029,7 @@ int ieee802_11_mgmt(struct hostapd_data
+@@ -4077,7 +4106,7 @@ int ieee802_11_mgmt(struct hostapd_data
  
  
        if (stype == WLAN_FC_STYPE_PROBE_REQ) {
                return 1;
        }
  
-@@ -4020,17 +4049,17 @@ int ieee802_11_mgmt(struct hostapd_data
+@@ -4097,17 +4126,17 @@ int ieee802_11_mgmt(struct hostapd_data
        switch (stype) {
        case WLAN_FC_STYPE_AUTH:
                wpa_printf(MSG_DEBUG, "mgmt::auth");
  CFLAGS += -DCONFIG_WNM_AP
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -6062,6 +6062,8 @@ struct wpa_supplicant * wpa_supplicant_a
+@@ -6080,6 +6080,8 @@ struct wpa_supplicant * wpa_supplicant_a
        }
  #endif /* CONFIG_P2P */
  
        return wpa_s;
  }
  
-@@ -6088,6 +6090,8 @@ int wpa_supplicant_remove_iface(struct w
+@@ -6106,6 +6108,8 @@ int wpa_supplicant_remove_iface(struct w
        struct wpa_supplicant *parent = wpa_s->parent;
  #endif /* CONFIG_MESH */
  
index d4ed8e222ae3210d6bb464072779577fce1b948e..5fdb57be7a0e3a971ee8cfcde4e9a1d0d489cece 100644 (file)
@@ -96,6 +96,15 @@ wpas_bss_get_features(struct ubus_context *ctx, struct ubus_object *obj,
 }
 
 #ifdef CONFIG_WPS
+enum {
+       WPS_START_MULTI_AP,
+       __WPS_START_MAX
+};
+
+static const struct blobmsg_policy wps_start_policy[] = {
+       [WPS_START_MULTI_AP] = { "multi_ap", BLOBMSG_TYPE_BOOL },
+};
+
 static int
 wpas_bss_wps_start(struct ubus_context *ctx, struct ubus_object *obj,
                        struct ubus_request_data *req, const char *method,
@@ -103,8 +112,15 @@ wpas_bss_wps_start(struct ubus_context *ctx, struct ubus_object *obj,
 {
        int rc;
        struct wpa_supplicant *wpa_s = get_wpas_from_object(obj);
+       struct blob_attr *tb[__WPS_START_MAX], *cur;
+       int multi_ap = 0;
+
+       blobmsg_parse(wps_start_policy, __WPS_START_MAX, tb, blobmsg_data(msg), blobmsg_data_len(msg));
+
+       if (tb[WPS_START_MULTI_AP])
+               multi_ap = blobmsg_get_bool(tb[WPS_START_MULTI_AP]);
 
-       rc = wpas_wps_start_pbc(wpa_s, NULL, 0);
+       rc = wpas_wps_start_pbc(wpa_s, NULL, 0, multi_ap);
 
        if (rc != 0)
                return UBUS_STATUS_NOT_SUPPORTED;
index be6ef861a68fc2a76e16057f3dd32ced2cd2deec..f92708b36c41b6d7ae0a98db39ed032290911acb 100644 (file)
@@ -11,10 +11,10 @@ PKG_NAME:=odhcpd
 PKG_RELEASE:=3
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcpd.git
-PKG_SOURCE_DATE:=2019-01-16
-PKG_SOURCE_VERSION:=0a36768064ee2869a747446ed8b9d89121ecc1f1
-PKG_MIRROR_HASH:=119da62ab4c9a4a5954ef9005d84f3de18d0b774bb557ed4f78f90bb82ec18d1
+PKG_SOURCE_URL=$(PROJECT_GIT)/odhcpd.git
+PKG_SOURCE_DATE:=2019-02-27
+PKG_SOURCE_VERSION:=16c5b6c9bcb71bb67a6ab15bb458bf9ab5a8fe7e
+PKG_MIRROR_HASH:=bb42751da2a9d8fa1576db97524711af3fbf3758598f0dc631c075f6413796fd
 
 PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
 PKG_LICENSE:=GPL-2.0
index a02642284b6dc9ae7867ff94f483117183d69cd6..278ecdea68c8f6559d19023efddba5fe3cd67bd8 100644 (file)
@@ -8,10 +8,10 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=omcproxy
-PKG_RELEASE:=8
+PKG_RELEASE:=9
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/omcproxy.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/omcproxy.git
 PKG_SOURCE_DATE:=2018-12-14
 PKG_SOURCE_VERSION:=722151f04348cf1b759613c087bced52fb45790a
 PKG_MIRROR_HASH:=4d218923c149e2dc9010b8932ea92ab7e06f30df06814ffedaba7e081f2d4640
@@ -28,6 +28,10 @@ define Package/omcproxy
   TITLE:=IGMPv3 and MLDv2 Multicast Proxy
 endef
 
+define Package/omcproxy/conffiles
+/etc/config/omcproxy
+endef
+
 CMAKE_OPTIONS += -DWITH_LIBUBOX=1
 
 define Package/omcproxy/install
index b1f1f6895042fa4a7ce9e4b170ccfb5a31057e7a..e4a90384d46cffee660c80e0ef35890914b1f445 100644 (file)
@@ -9,16 +9,20 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=ppp
-PKG_VERSION:=2.4.7
-PKG_RELEASE:=14
+PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://download.samba.org/pub/ppp/
-PKG_HASH:=02e0a3dd3e4799e33103f70ec7df75348c8540966ee7c948e4ed8a42bbccfb30
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/paulusmack/ppp
+PKG_SOURCE_DATE:=2018-06-23
+PKG_SOURCE_VERSION:=5c765a67fd25f9d84e71ed61ace37c8c97f6be15
+PKG_MIRROR_HASH:=a79e62d0569e3d6a3207f2a693532d34629fb5b3b9d8c1d9b9786ebd1d1de70f
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 PKG_LICENSE:=BSD-4-Clause
 PKG_CPE_ID:=cpe:/a:samba:ppp
 
+PKG_RELEASE_VERSION:=2.4.7
+PKG_VERSION:=$(PKG_RELEASE_VERSION).git-$(PKG_SOURCE_DATE)
+
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 
 PKG_BUILD_DEPENDS:=libpcap
@@ -215,7 +219,7 @@ define Package/ppp/script_install
 endef
 
 define Package/ppp/install
-       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
+       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/pppd $(1)/usr/sbin/
        $(INSTALL_DIR) $(1)/etc/ppp
@@ -232,21 +236,21 @@ endef
 Package/ppp-multilink/install=$(Package/ppp/install)
 
 define Package/ppp-mod-pppoa/install
-       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/pppoatm.so \
-               $(1)/usr/lib/pppd/$(PKG_VERSION)/
+       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_RELEASE_VERSION)/pppoatm.so \
+               $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)/
 endef
 
 define Package/ppp-mod-pppoe/install
-       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/rp-pppoe.so \
-               $(1)/usr/lib/pppd/$(PKG_VERSION)/
+       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_RELEASE_VERSION)/rp-pppoe.so \
+               $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)/
 endef
 
 define Package/ppp-mod-radius/install
-       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/radius.so \
-               $(1)/usr/lib/pppd/$(PKG_VERSION)/
+       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_RELEASE_VERSION)/radius.so \
+               $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)/
        $(INSTALL_DIR) $(1)/etc/ppp
        $(INSTALL_DATA) ./files/etc/ppp/radius.conf $(1)/etc/ppp/
        $(INSTALL_DIR) $(1)/etc/ppp/radius
@@ -257,23 +261,23 @@ define Package/ppp-mod-radius/install
 endef
 
 define Package/ppp-mod-pppol2tp/install
-       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/pppol2tp.so \
-               $(1)/usr/lib/pppd/$(PKG_VERSION)/
+       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_RELEASE_VERSION)/pppol2tp.so \
+               $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)/
 endef
 
 define Package/ppp-mod-pptp/install
-       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/pptp.so \
-               $(1)/usr/lib/pppd/$(PKG_VERSION)/
+       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_RELEASE_VERSION)/pptp.so \
+               $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)/
        $(INSTALL_DIR) $(1)/etc/ppp
        $(INSTALL_DATA) ./files/etc/ppp/options.pptp $(1)/etc/ppp/
 endef
 
 define Package/ppp-mod-passwordfd/install
-       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/passwordfd.so \
-               $(1)/usr/lib/pppd/$(PKG_VERSION)/
+       $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_RELEASE_VERSION)/passwordfd.so \
+               $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)/
 endef
 
 define Package/chat/install
diff --git a/package/network/services/ppp/patches/001-honor-ldflags.patch b/package/network/services/ppp/patches/001-honor-ldflags.patch
deleted file mode 100644 (file)
index fae66a5..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
---- a/pppd/plugins/radius/Makefile.linux
-+++ b/pppd/plugins/radius/Makefile.linux
-@@ -43,13 +43,13 @@ install: all
-       $(INSTALL) -c -m 444 pppd-radattr.8 $(MANDIR)
- radius.so: radius.o libradiusclient.a
--      $(CC) -o radius.so -shared radius.o libradiusclient.a
-+      $(CC) $(CFLAGS) -o radius.so -shared radius.o libradiusclient.a
- radattr.so: radattr.o
--      $(CC) -o radattr.so -shared radattr.o
-+      $(CC) $(CFLAGS) -o radattr.so -shared radattr.o
- radrealms.so: radrealms.o
--      $(CC) -o radrealms.so -shared radrealms.o
-+      $(CC) $(CFLAGS) -o radrealms.so -shared radrealms.o
- CLIENTOBJS = avpair.o buildreq.o config.o dict.o ip_util.o \
-       clientid.o sendserver.o lock.o util.o md5.o
---- a/pppd/plugins/rp-pppoe/Makefile.linux
-+++ b/pppd/plugins/rp-pppoe/Makefile.linux
-@@ -30,7 +30,7 @@ CFLAGS=$(COPTS) -I../../../include '-DRP
- all: rp-pppoe.so pppoe-discovery
- pppoe-discovery: pppoe-discovery.o debug.o
--      $(CC) -o pppoe-discovery pppoe-discovery.o debug.o
-+      $(CC) $(CFLAGS) -o pppoe-discovery pppoe-discovery.o debug.o
- pppoe-discovery.o: pppoe-discovery.c
-       $(CC) $(CFLAGS) -c -o pppoe-discovery.o pppoe-discovery.c
-@@ -39,7 +39,7 @@ debug.o: debug.c
-       $(CC) $(CFLAGS) -c -o debug.o debug.c
- rp-pppoe.so: plugin.o discovery.o if.o common.o
--      $(CC) -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
-+      $(CC) $(CFLAGS) -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
- install: all
-       $(INSTALL) -d -m 755 $(LIBDIR)
index 703311fb47a4421b30daa4a724aeb6fde0c59641..a670230b3510ddc2feaa926befc195ffdb1fb22e 100644 (file)
@@ -48,7 +48,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      }
 --- a/pppd/main.c
 +++ b/pppd/main.c
-@@ -316,6 +316,9 @@ main(argc, argv)
+@@ -308,6 +308,9 @@ main(argc, argv)
      struct protent *protp;
      char numbuf[16];
  
@@ -60,18 +60,18 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  
 --- a/pppd/options.c
 +++ b/pppd/options.c
-@@ -114,6 +114,8 @@ char       linkname[MAXPATHLEN];   /* logical na
- bool  tune_kernel;            /* may alter kernel settings */
+@@ -118,6 +118,8 @@ bool       tune_kernel;            /* may alter kernel s
  int   connect_delay = 1000;   /* wait this many ms after connect script */
  int   req_unit = -1;          /* requested interface unit */
+ char  req_ifname[MAXIFNAMELEN];       /* requested interface name */
 +char  path_ipup[MAXPATHLEN];  /* pathname of ip-up script */
 +char  path_ipdown[MAXPATHLEN];/* pathname of ip-down script */
  bool  multilink = 0;          /* Enable multilink operation */
  char  *bundle_name = NULL;    /* bundle name for multilink */
  bool  dump_options;           /* print out option values */
-@@ -299,6 +301,13 @@ option_t general_options[] = {
-       "Unset user environment variable",
-       OPT_A2PRINTER | OPT_NOPRINT, (void *)user_unsetprint },
+@@ -317,6 +319,13 @@ option_t general_options[] = {
+       "Metric to use for the default route (Linux only; -1 for default behavior)",
+       OPT_PRIV|OPT_LLIMIT|OPT_INITONLY, NULL, 0, -1 },
  
 +    { "ip-up-script", o_string, path_ipup,
 +      "Set pathname of ip-up script",
@@ -85,10 +85,10 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
        "Enable multilink operation", OPT_PRIO | 1 },
 --- a/pppd/pppd.h
 +++ b/pppd/pppd.h
-@@ -318,6 +318,8 @@ extern bool        tune_kernel;    /* May alter ke
- extern int    connect_delay;  /* Time to delay after connect script */
+@@ -332,6 +332,8 @@ extern int connect_delay;  /* Time to del
  extern int    max_data_rate;  /* max bytes/sec through charshunt */
  extern int    req_unit;       /* interface unit number to use */
+ extern char   req_ifname[MAXIFNAMELEN]; /* interface name to use */
 +extern char   path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
 +extern char   path_ipdown[MAXPATHLEN]; /* pathname of ip-down script */
  extern bool   multilink;      /* enable multilink operation */
index 629c232543ab5f9a31979e3410df73c5e1cbdc9d..5b6ae2d39aaff7b0882441db87cea0de107b9747 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
-@@ -458,6 +458,13 @@ int generic_establish_ppp (int fd)
+@@ -460,6 +460,13 @@ int generic_establish_ppp (int fd)
      if (new_style_driver) {
        int flags;
  
index d5d5851d4752bb4062259eeb62553ded7e6e00b4..2a72c0d1c8d33e7a4671316b6c015045b9899231 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 
 --- a/pppd/main.c
 +++ b/pppd/main.c
-@@ -773,8 +773,7 @@ detach()
+@@ -768,8 +768,7 @@ detach()
        /* update pid files if they have been written already */
        if (pidfilename[0])
            create_pidfile(pid);
index 2502d49689418042c28cbce1470cc370c74d4638..66924defbbe9e823b0eda45b51095ee1c655aefd 100644 (file)
      } else {
 --- a/pppd/pppd.h
 +++ b/pppd/pppd.h
-@@ -585,7 +585,7 @@ void demand_conf __P((void));      /* config
+@@ -599,7 +599,7 @@ void demand_conf __P((void));      /* config
  void demand_block __P((void));        /* set all NPs to queue up packets */
  void demand_unblock __P((void)); /* set all NPs to pass packets */
  void demand_discard __P((void)); /* set all NPs to discard packets */
index 1005c59ab51d0ff2c1c67c96cf8333b02c3db018..bdc271dbea54c1850bfb2abd883675e02f9ec043 100644 (file)
@@ -125,9 +125,9 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      bool old_vj;              /* use old (short) form of VJ option? */
 --- a/pppd/pppd.8
 +++ b/pppd/pppd.8
-@@ -121,6 +121,11 @@ the gateway, when IPCP negotiation is su
- This entry is removed when the PPP connection is broken.  This option
is privileged if the \fInodefaultroute\fR option has been specified.
+@@ -127,6 +127,11 @@ is no other default route with the same
+ value of -1, the route is only added if there is no default route at
all.
  .TP
 +.B replacedefaultroute
 +This option is a flag to the defaultroute option. If defaultroute is
@@ -137,7 +137,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  .B disconnect \fIscript
  Execute the command specified by \fIscript\fR, by passing it to a
  shell, after
-@@ -734,7 +739,12 @@ disable both forms of hardware flow cont
+@@ -740,7 +745,12 @@ disable both forms of hardware flow cont
  .TP
  .B nodefaultroute
  Disable the \fIdefaultroute\fR option.  The system administrator who
@@ -153,7 +153,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  .B nodeflate
 --- a/pppd/pppd.h
 +++ b/pppd/pppd.h
-@@ -667,7 +667,7 @@ int  sif6addr __P((int, eui64_t, eui64_t
+@@ -681,7 +681,7 @@ int  sif6addr __P((int, eui64_t, eui64_t
  int  cif6addr __P((int, eui64_t, eui64_t));
                                /* Remove an IPv6 address from i/f */
  #endif
@@ -173,7 +173,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  static u_int32_t proxy_arp_addr;      /* Addr for proxy arp entry added */
  static char proxy_arp_dev[16];                /* Device for proxy arp entry */
  static u_int32_t our_old_addr;                /* for detecting address changes */
-@@ -1552,6 +1554,9 @@ static int read_route_table(struct rtent
+@@ -1570,6 +1572,9 @@ static int read_route_table(struct rtent
        p = NULL;
      }
  
@@ -183,7 +183,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      SIN_ADDR(rt->rt_dst) = strtoul(cols[route_dest_col], NULL, 16);
      SIN_ADDR(rt->rt_gateway) = strtoul(cols[route_gw_col], NULL, 16);
      SIN_ADDR(rt->rt_genmask) = strtoul(cols[route_mask_col], NULL, 16);
-@@ -1621,20 +1626,51 @@ int have_route_to(u_int32_t addr)
+@@ -1642,20 +1647,52 @@ int have_route_to(u_int32_t addr)
  /********************************************************************
   *
   * sifdefaultroute - assign a default route through the address given.
@@ -193,10 +193,10 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 -{
 -    struct rtentry rt;
 -
--    if (defaultroute_exists(&rt) && strcmp(rt.rt_dev, ifname) != 0) {
+-    if (defaultroute_exists(&rt, dfl_route_metric) && strcmp(rt.rt_dev, ifname) != 0) {
 -      if (rt.rt_flags & RTF_GATEWAY)
--          error("not replacing existing default route via %I",
--                SIN_ADDR(rt.rt_gateway));
+-          error("not replacing existing default route via %I with metric %d",
+-                SIN_ADDR(rt.rt_gateway), dfl_route_metric);
 -      else
 + *
 + * If the global default_rt_repl_rest flag is set, then this function
@@ -218,16 +218,16 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 +         are called again, we will delete the current default route
 +         and set the new default route in this function.
 +         - this is normally only the case the doing demand: */
-+      if (defaultroute_exists(&tmp_rt))
++      if (defaultroute_exists(&tmp_rt, dfl_route_metric))
 +          del_rt = &tmp_rt;
-+    } else if (defaultroute_exists(&old_def_rt) &&
++    } else if (defaultroute_exists(&old_def_rt, dfl_route_metric) &&
 +             strcmp(old_def_rt.rt_dev, ifname) != 0) {
 +      /* We did not yet replace an existing default route, let's
 +         check if we should save and replace a default route: */
 +      if (old_def_rt.rt_flags & RTF_GATEWAY) {
 +          if (!replace) {
-+              error("not replacing existing default route via %I",
-+                    SIN_ADDR(old_def_rt.rt_gateway));
++              error("not replacing existing default route via %I with metric %d",
++                    SIN_ADDR(old_def_rt.rt_gateway), dfl_route_metric);
 +              return 0;
 +          } else {
 +              /* we need to copy rt_dev because we need it permanent too: */
@@ -235,20 +235,21 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 +              strcpy(tmp_dev, old_def_rt.rt_dev);
 +              old_def_rt.rt_dev = tmp_dev;
 +
-+              notice("replacing old default route to %s [%I]",
-+                      old_def_rt.rt_dev, SIN_ADDR(old_def_rt.rt_gateway));
++              notice("replacing old default route to %s [%I] with metric %d",
++                      old_def_rt.rt_dev, SIN_ADDR(old_def_rt.rt_gateway),
++                      dfl_route_metric);
 +              default_rt_repl_rest = 1;
 +              del_rt = &old_def_rt;
 +          }
 +      } else
-           error("not replacing existing default route through %s",
--                rt.rt_dev);
+           error("not replacing existing default route through %s with metric %d",
+-                rt.rt_dev, dfl_route_metric);
 -      return 0;
-+                old_def_rt.rt_dev);
++                old_def_rt.rt_dev, dfl_route_metric);
      }
  
      memset (&rt, 0, sizeof (rt));
-@@ -1649,10 +1685,16 @@ int sifdefaultroute (int unit, u_int32_t
+@@ -1671,10 +1708,16 @@ int sifdefaultroute (int unit, u_int32_t
  
      rt.rt_flags = RTF_UP;
      if (ioctl(sock_fd, SIOCADDRT, &rt) < 0) {
@@ -266,7 +267,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  
      have_default_route = 1;
      return 1;
-@@ -1683,11 +1725,21 @@ int cifdefaultroute (int unit, u_int32_t
+@@ -1708,11 +1751,21 @@ int cifdefaultroute (int unit, u_int32_t
      rt.rt_flags = RTF_UP;
      if (ioctl(sock_fd, SIOCDELRT, &rt) < 0 && errno != ESRCH) {
        if (still_ppp()) {
index a575df5f54210dd8a9e0b5a01b3d43a6b0d4683a..8842404d10eb6cd3457166b125374649d210646e 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 
 --- a/pppd/main.c
 +++ b/pppd/main.c
-@@ -318,6 +318,8 @@ main(argc, argv)
+@@ -310,6 +310,8 @@ main(argc, argv)
  
      strlcpy(path_ipup, _PATH_IPUP, sizeof(path_ipup));
      strlcpy(path_ipdown, _PATH_IPDOWN, sizeof(path_ipdown));
@@ -23,8 +23,8 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      new_phase(PHASE_INITIALIZE);
 --- a/pppd/options.c
 +++ b/pppd/options.c
-@@ -116,6 +116,8 @@ int        connect_delay = 1000;   /* wait this m
int   req_unit = -1;          /* requested interface unit */
+@@ -120,6 +120,8 @@ int        req_unit = -1;          /* requested interfa
char  req_ifname[MAXIFNAMELEN];       /* requested interface name */
  char  path_ipup[MAXPATHLEN];  /* pathname of ip-up script */
  char  path_ipdown[MAXPATHLEN];/* pathname of ip-down script */
 +char  path_ipv6up[MAXPATHLEN];        /* pathname of ipv6-up script */
@@ -32,7 +32,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  bool  multilink = 0;          /* Enable multilink operation */
  char  *bundle_name = NULL;    /* bundle name for multilink */
  bool  dump_options;           /* print out option values */
-@@ -308,6 +310,13 @@ option_t general_options[] = {
+@@ -326,6 +328,13 @@ option_t general_options[] = {
        "Set pathname of ip-down script",
        OPT_PRIV|OPT_STATIC, NULL, MAXPATHLEN },
  
@@ -84,8 +84,8 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      }
 --- a/pppd/pppd.h
 +++ b/pppd/pppd.h
-@@ -320,6 +320,8 @@ extern int max_data_rate;  /* max bytes/s
- extern int    req_unit;       /* interface unit number to use */
+@@ -334,6 +334,8 @@ extern int req_unit;       /* interface unit n
+ extern char   req_ifname[MAXIFNAMELEN]; /* interface name to use */
  extern char   path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
  extern char   path_ipdown[MAXPATHLEN]; /* pathname of ip-down script */
 +extern char   path_ipv6up[MAXPATHLEN]; /* pathname of ipv6-up script */
index b7a62406d06b6b8a5a47988e1b00285944e71b9f..5a8e5861a4f26a3914378320a3f8d9ead8569c9d 100644 (file)
@@ -42,7 +42,7 @@
       */
 --- a/pppd/pppd.8
 +++ b/pppd/pppd.8
-@@ -563,6 +563,11 @@ to 1) if the \fIproxyarp\fR option is us
+@@ -569,6 +569,11 @@ to 1) if the \fIproxyarp\fR option is us
  dynamic IP address option (i.e. set /proc/sys/net/ipv4/ip_dynaddr to
  1) in demand mode if the local address changes.
  .TP
index 696dad1198f0537dc2c0a348178b0695a5abc8ba..6c4889ed1246ed72fffc460ec41a308dc6fa07f2 100644 (file)
@@ -1,19 +1,5 @@
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
-@@ -73,12 +73,12 @@
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/time.h>
--#include <sys/errno.h>
- #include <sys/file.h>
- #include <sys/stat.h>
- #include <sys/utsname.h>
- #include <sys/sysmacros.h>
-+#include <errno.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <syslog.h>
 @@ -102,22 +102,15 @@
  #define MAX_ADDR_LEN 7
  #endif
index d9c9b83a33f63413be278d70088019b2617f8111..e25c567033a074de255054ccf61cecae9d6be930 100644 (file)
@@ -1,7 +1,7 @@
 --- a/pppd/plugins/rp-pppoe/pppoe.h
 +++ b/pppd/plugins/rp-pppoe/pppoe.h
-@@ -48,11 +48,7 @@
- #endif
+@@ -52,11 +52,7 @@
+ #include <netinet/in.h>
  
  /* Ugly header files on some Linux boxes... */
 -#if defined(HAVE_LINUX_IF_H)
  
  #ifdef HAVE_NET_IF_TYPES_H
  #include <net/if_types.h>
-@@ -80,22 +76,8 @@ typedef unsigned long UINT32_t;
+@@ -84,20 +80,7 @@ typedef unsigned long UINT32_t;
  #error Could not find a 32-bit integer type
  #endif
  
 -#ifdef HAVE_LINUX_IF_ETHER_H
 -#include <linux/if_ether.h>
 -#endif
--
- #include <netinet/in.h>
 -
 -#ifdef HAVE_NETINET_IF_ETHER_H
 -#include <sys/types.h>
 +#include <net/ethernet.h>
  
  
---- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
-+++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
-@@ -16,6 +16,7 @@
- #include <string.h>
- #include "pppoe.h"
-+#include "pppd/pppd.h"
- #ifdef HAVE_UNISTD_H
- #include <unistd.h>
-@@ -717,6 +718,23 @@ char *xstrdup(const char *s)
-     return ret;
- }
-+void
-+error(char *fmt, ...)
-+{
-+    va_list pvar;
-+
-+#if defined(__STDC__)
-+    va_start(pvar, fmt);
-+#else
-+    char *fmt;
-+    va_start(pvar);
-+    fmt = va_arg(pvar, char *);
-+#endif
-+
-+    fprintf(stderr, fmt, pvar);
-+    va_end(pvar);
-+}
-+
- void usage(void)
- {
-     fprintf(stderr, "Usage: pppoe-discovery [options]\n");
+ /* Ethernet frame types according to RFC 2516 */
 --- a/pppd/plugins/rp-pppoe/Makefile.linux
 +++ b/pppd/plugins/rp-pppoe/Makefile.linux
 @@ -33,7 +33,7 @@ pppoe-discovery: pppoe-discovery.o debug
-       $(CC) $(CFLAGS) -o pppoe-discovery pppoe-discovery.o debug.o
+       $(CC) $(LDFLAGS) -o pppoe-discovery pppoe-discovery.o debug.o
  
  pppoe-discovery.o: pppoe-discovery.c
 -      $(CC) $(CFLAGS) -c -o pppoe-discovery.o pppoe-discovery.c
index b2e986e1fdc75ecbbcc294acd265a60e0c08c9bc..987b950f116135846b95ba95ac0b38d8ac080190 100644 (file)
@@ -23,9 +23,9 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 -USE_TDB=y
 +#USE_TDB=y
  
- HAS_SHADOW=y
- #USE_PAM=y
-@@ -80,7 +80,7 @@ MAXOCTETS=y
+ # Uncomment the next line to enable Type=notify services in systemd
+ # If enabled, and the user sets the up_sdnotify option, then
+@@ -85,7 +85,7 @@ MAXOCTETS=y
  
  INCLUDE_DIRS= -I../include
  
@@ -34,7 +34,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  
  CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS) '-DDESTDIR="@DESTDIR@"'
  
-@@ -120,10 +120,10 @@ CFLAGS   += -DHAS_SHADOW
+@@ -125,10 +125,10 @@ CFLAGS   += -DHAS_SHADOW
  #LIBS     += -lshadow $(LIBS)
  endif
  
index 3fc30bb4339cf5b1ca986be98dd566227fb66622..d0b164361e33436b1cea72f3d3c9450435f25aa8 100644 (file)
@@ -559,8 +559,8 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      if (go->bsd_compress) {
        opt_buf[0] = CI_BSD_COMPRESS;
        opt_buf[1] = CILEN_BSD_COMPRESS;
-@@ -679,7 +814,8 @@ ccp_cilen(f)
-       + (go->deflate? CILEN_DEFLATE: 0)
+@@ -680,7 +815,8 @@ ccp_cilen(f)
+       + (go->deflate && go->deflate_draft? CILEN_DEFLATE: 0)
        + (go->predictor_1? CILEN_PREDICTOR_1: 0)
        + (go->predictor_2? CILEN_PREDICTOR_2: 0)
 -      + (go->mppe? CILEN_MPPE: 0);
@@ -569,7 +569,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  }
  
  /*
-@@ -693,6 +829,8 @@ ccp_addci(f, p, lenp)
+@@ -694,6 +830,8 @@ ccp_addci(f, p, lenp)
  {
      int res;
      ccp_options *go = &ccp_gotoptions[f->unit];
@@ -578,7 +578,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      u_char *p0 = p;
  
      /*
-@@ -701,22 +839,43 @@ ccp_addci(f, p, lenp)
+@@ -702,22 +840,43 @@ ccp_addci(f, p, lenp)
       * in case it gets Acked.
       */
  #ifdef MPPE
@@ -631,7 +631,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      if (go->deflate) {
        p[0] = go->deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT;
        p[1] = CILEN_DEFLATE;
-@@ -802,7 +961,7 @@ ccp_addci(f, p, lenp)
+@@ -803,7 +962,7 @@ ccp_addci(f, p, lenp)
  
  /*
   * ccp_ackci - process a received configure-ack, and return
@@ -640,7 +640,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
   */
  static int
  ccp_ackci(f, p, len)
-@@ -811,24 +970,44 @@ ccp_ackci(f, p, len)
+@@ -812,24 +971,44 @@ ccp_ackci(f, p, len)
      int len;
  {
      ccp_options *go = &ccp_gotoptions[f->unit];
@@ -694,7 +694,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      if (go->deflate) {
        if (len < CILEN_DEFLATE
            || p[0] != (go->deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT)
-@@ -901,6 +1080,8 @@ ccp_nakci(f, p, len, treat_as_reject)
+@@ -902,6 +1081,8 @@ ccp_nakci(f, p, len, treat_as_reject)
      int treat_as_reject;
  {
      ccp_options *go = &ccp_gotoptions[f->unit];
@@ -703,7 +703,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      ccp_options no;           /* options we've seen already */
      ccp_options try;          /* options to ask for next time */
  
-@@ -908,28 +1089,100 @@ ccp_nakci(f, p, len, treat_as_reject)
+@@ -909,28 +1090,100 @@ ccp_nakci(f, p, len, treat_as_reject)
      try = *go;
  
  #ifdef MPPE
@@ -822,7 +822,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      if (go->deflate && len >= CILEN_DEFLATE
        && p[0] == (go->deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT)
        && p[1] == CILEN_DEFLATE) {
-@@ -1002,14 +1255,50 @@ ccp_rejci(f, p, len)
+@@ -1003,14 +1256,50 @@ ccp_rejci(f, p, len)
        return -1;
  
  #ifdef MPPE
@@ -877,7 +877,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      if (go->deflate_correct && len >= CILEN_DEFLATE
        && p[0] == CI_DEFLATE && p[1] == CILEN_DEFLATE) {
        if (p[2] != DEFLATE_MAKE_OPT(go->deflate_size)
-@@ -1073,14 +1362,15 @@ ccp_reqci(f, p, lenp, dont_nak)
+@@ -1074,14 +1363,15 @@ ccp_reqci(f, p, lenp, dont_nak)
      int dont_nak;
  {
      int ret, newret, res;
@@ -897,7 +897,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  
      ret = CONFACK;
      retp = p0 = p;
-@@ -1103,106 +1393,302 @@ ccp_reqci(f, p, lenp, dont_nak)
+@@ -1104,106 +1394,302 @@ ccp_reqci(f, p, lenp, dont_nak)
            switch (type) {
  #ifdef MPPE
            case CI_MPPE:
@@ -1293,7 +1293,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
            case CI_DEFLATE:
            case CI_DEFLATE_DRAFT:
                if (!ao->deflate || clen != CILEN_DEFLATE
-@@ -1344,12 +1830,6 @@ ccp_reqci(f, p, lenp, dont_nak)
+@@ -1345,12 +1831,6 @@ ccp_reqci(f, p, lenp, dont_nak)
        else
            *lenp = retp - p0;
      }
@@ -1306,7 +1306,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      return ret;
  }
  
-@@ -1371,24 +1851,35 @@ method_name(opt, opt2)
+@@ -1372,24 +1852,35 @@ method_name(opt, opt2)
        char *p = result;
        char *q = result + sizeof(result); /* 1 past result */
  
@@ -1358,7 +1358,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      case CI_DEFLATE:
      case CI_DEFLATE_DRAFT:
        if (opt2 != NULL && opt2->deflate_size != opt->deflate_size)
-@@ -1444,12 +1935,12 @@ ccp_up(f)
+@@ -1445,12 +1936,12 @@ ccp_up(f)
      } else if (ANY_COMPRESS(*ho))
        notice("%s transmit compression enabled", method_name(ho, NULL));
  #ifdef MPPE
@@ -1373,7 +1373,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  }
  
  /*
-@@ -1472,7 +1963,7 @@ ccp_down(f)
+@@ -1473,7 +1964,7 @@ ccp_down(f)
            lcp_close(f->unit, "MPPE disabled");
        }
      }
@@ -1382,7 +1382,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  }
  
  /*
-@@ -1532,24 +2023,28 @@ ccp_printpkt(p, plen, printer, arg)
+@@ -1533,24 +2024,28 @@ ccp_printpkt(p, plen, printer, arg)
  #ifdef MPPE
            case CI_MPPE:
                if (optlen >= CILEN_MPPE) {
@@ -1423,7 +1423,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
            case CI_DEFLATE:
            case CI_DEFLATE_DRAFT:
                if (optlen >= CILEN_DEFLATE) {
-@@ -1635,6 +2130,7 @@ ccp_datainput(unit, pkt, len)
+@@ -1636,6 +2131,7 @@ ccp_datainput(unit, pkt, len)
            error("Lost compression sync: disabling compression");
            ccp_close(unit, "Lost compression sync");
  #ifdef MPPE
@@ -1431,7 +1431,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
            /*
             * If we were doing MPPE, we must also take the link down.
             */
-@@ -1642,9 +2138,18 @@ ccp_datainput(unit, pkt, len)
+@@ -1643,9 +2139,18 @@ ccp_datainput(unit, pkt, len)
                error("Too many MPPE errors, closing LCP");
                lcp_close(unit, "Too many MPPE errors");
            }
@@ -1459,7 +1459,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      bool deflate_draft;               /* use draft RFC code for deflate? */
 +    bool lzs;                 /* do Stac LZS? */
 +    bool mppc;                        /* do MPPC? */
-     bool mppe;                        /* do MPPE? */
+     u_char mppe;              /* MPPE bitfield */
 +    bool mppe_40;             /* allow 40 bit encryption? */
 +    bool mppe_56;             /* allow 56 bit encryption? */
 +    bool mppe_128;            /* allow 128 bit encryption? */
index 29d8f746bb4761be21e96421c66584336fbb54b4..436085f3b30d3b0c571ea645000c035e2be652a5 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  clean:
 --- a/pppd/Makefile.linux
 +++ b/pppd/Makefile.linux
-@@ -102,7 +102,7 @@ ifdef USE_SRP
+@@ -107,7 +107,7 @@ ifdef USE_SRP
  CFLAGS        += -DUSE_SRP -DOPENSSL -I/usr/local/ssl/include
  LIBS  += -lsrp -L/usr/local/ssl/lib -lcrypto
  TARGETS       += srp-entry
@@ -28,7 +28,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  MANPAGES += srp-entry.8
  EXTRACLEAN += srp-entry.o
  NEEDDES=y
-@@ -208,7 +208,7 @@ all: $(TARGETS)
+@@ -219,7 +219,7 @@ all: $(TARGETS)
  install: pppd
        mkdir -p $(BINDIR) $(MANDIR)
        $(EXTRAINSTALL)
index 069b8585f334c35206cf32a362f794e0de6f6bce..e79bbe47460c13553af089d884fbea28f9b05ba1 100644 (file)
@@ -18,6 +18,23 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  
  # Uncomment the next line to include support for Microsoft's
  # MS-CHAP authentication protocol.
+@@ -43,13 +44,13 @@ install: all
+       $(INSTALL) -c -m 444 pppd-radattr.8 $(MANDIR)
+ radius.so: radius.o libradiusclient.a
+-      $(CC) $(LDFLAGS) -o radius.so -shared radius.o libradiusclient.a
++      $(CC) $(LDFLAGS) -fPIC -o radius.so -shared radius.o libradiusclient.a
+ radattr.so: radattr.o
+-      $(CC) $(LDFLAGS) -o radattr.so -shared radattr.o
++      $(CC) $(LDFLAGS) -fPIC -o radattr.so -shared radattr.o
+ radrealms.so: radrealms.o
+-      $(CC) $(LDFLAGS) -o radrealms.so -shared radrealms.o
++      $(CC) $(LDFLAGS) -fPIC -o radrealms.so -shared radrealms.o
+ CLIENTOBJS = avpair.o buildreq.o config.o dict.o ip_util.o \
+       clientid.o sendserver.o lock.o util.o md5.o
 --- a/pppdump/Makefile.linux
 +++ b/pppdump/Makefile.linux
 @@ -2,7 +2,8 @@ DESTDIR = $(INSTROOT)@DESTDIR@
@@ -36,8 +53,8 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
        $(CC) $(CFLAGS) -c -o debug.o debug.c
  
  rp-pppoe.so: plugin.o discovery.o if.o common.o
--      $(CC) $(CFLAGS) -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
-+      $(CC) $(CFLAGS) -fPIC -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
+-      $(CC) $(LDFLAGS) -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
++      $(CC) $(LDFLAGS) -fPIC -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
  
  install: all
        $(INSTALL) -d -m 755 $(LIBDIR)
index 31a582a202bdc635bb8bc59f176beac27532e0fb..bd259b97dc26716ec716cc9afd85a92832ccb3b8 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  static void setup_signals __P((void));
  static void create_pidfile __P((int pid));
  static void create_linkpidfile __P((int pid));
-@@ -535,6 +537,7 @@ main(argc, argv)
+@@ -527,6 +529,7 @@ main(argc, argv)
            info("Starting link");
        }
  
@@ -37,7 +37,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
        gettimeofday(&start_time, NULL);
        script_unsetenv("CONNECT_TIME");
        script_unsetenv("BYTES_SENT");
-@@ -1267,6 +1270,36 @@ struct  callout {
+@@ -1262,6 +1265,36 @@ struct  callout {
  
  static struct callout *callout = NULL;        /* Callout list */
  static struct timeval timenow;                /* Current time */
@@ -74,7 +74,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  
  /*
   * timeout - Schedule a timeout.
-@@ -1337,6 +1370,8 @@ calltimeout()
+@@ -1332,6 +1365,8 @@ calltimeout()
  {
      struct callout *p;
  
@@ -83,7 +83,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      while (callout != NULL) {
        p = callout;
  
-@@ -1364,6 +1399,8 @@ timeleft(tvp)
+@@ -1359,6 +1394,8 @@ timeleft(tvp)
  {
      if (callout == NULL)
        return NULL;
index eb24b0a0559c95395459e49afc2e5252ae58b829..a57ff6ff05900c5534214a5855bd7118b819ed50 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 
 --- a/pppd/main.c
 +++ b/pppd/main.c
-@@ -1048,7 +1048,8 @@ get_input()
+@@ -1043,7 +1043,8 @@ get_input()
        }
        notice("Modem hangup");
        hungup = 1;
index 4a3569dd703b0130d3f9ca913daf7a36194c91fb..fbcb436c4e5e5400c4e8d3e0ff51e67ecc273aae 100644 (file)
@@ -7,7 +7,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 
 --- a/pppd/Makefile.linux
 +++ b/pppd/Makefile.linux
-@@ -178,8 +178,8 @@ endif
+@@ -189,8 +189,8 @@ endif
  
  ifdef FILTER
  ifneq ($(wildcard /usr/include/pcap-bpf.h),)
index 701e49d321d1297de093aaf71c2df603bad2bb34..0fbcc8bcd5d5b38172682b9d04ad7f6403c0f294 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  # Uncomment the next line to enable multilink PPP (enabled by default)
  # Linux distributions: Please leave multilink ENABLED in your builds
  # of pppd!
-@@ -183,6 +186,14 @@ CFLAGS  += -DPPP_FILTER -I$(STAGING_DIR)
+@@ -194,6 +197,14 @@ CFLAGS  += -DPPP_FILTER -I$(STAGING_DIR)
  endif
  endif
  
@@ -48,7 +48,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  /*
   * There have been 3 or 4 different names for this in libpcap CVS, but
   * this seems to be what they have settled on...
-@@ -165,6 +166,13 @@ static int setlogfile __P((char **));
+@@ -170,6 +171,13 @@ static int setlogfile __P((char **));
  static int loadplugin __P((char **));
  #endif
  
@@ -62,7 +62,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  #ifdef PPP_FILTER
  static int setpassfilter __P((char **));
  static int setactivefilter __P((char **));
-@@ -344,6 +352,14 @@ option_t general_options[] = {
+@@ -362,6 +370,14 @@ option_t general_options[] = {
        "set filter for active pkts", OPT_PRIO },
  #endif
  
@@ -77,7 +77,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  #ifdef MAXOCTETS
      { "maxoctets", o_int, &maxoctets,
        "Set connection traffic limit",
-@@ -1493,6 +1509,29 @@ callfile(argv)
+@@ -1511,6 +1527,29 @@ callfile(argv)
      return ok;
  }
  
diff --git a/package/network/services/ppp/patches/320-custom_iface_names.patch b/package/network/services/ppp/patches/320-custom_iface_names.patch
deleted file mode 100644 (file)
index 441f9ee..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-pppd: Support arbitrary interface names
-
-This patch implements a new string option "ifname" which allows to specify
-fully custom PPP interface names on Linux. It does so by renaming the
-allocated pppX device immediately after it has been created to the requested
-interface name.
-
-Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-
---- a/pppd/main.c
-+++ b/pppd/main.c
-@@ -745,8 +745,11 @@ void
- set_ifunit(iskey)
-     int iskey;
- {
--    info("Using interface %s%d", PPP_DRV_NAME, ifunit);
--    slprintf(ifname, sizeof(ifname), "%s%d", PPP_DRV_NAME, ifunit);
-+    if (use_ifname[0] == 0)
-+      slprintf(ifname, sizeof(ifname), "%s%d", PPP_DRV_NAME, ifunit);
-+    else
-+      slprintf(ifname, sizeof(ifname), "%s", use_ifname);
-+    info("Using interface %s", ifname);
-     script_setenv("IFNAME", ifname, iskey);
-     if (iskey) {
-       create_pidfile(getpid());       /* write pid to file */
---- a/pppd/options.c
-+++ b/pppd/options.c
-@@ -112,6 +112,7 @@ int        log_to_fd = 1;          /* send log messages
- bool  log_default = 1;        /* log_to_fd is default (stdout) */
- int   maxfail = 10;           /* max # of unsuccessful connection attempts */
- char  linkname[MAXPATHLEN];   /* logical name for link */
-+char  use_ifname[IFNAMSIZ];   /* physical name for PPP link */
- bool  tune_kernel;            /* may alter kernel settings */
- int   connect_delay = 1000;   /* wait this many ms after connect script */
- int   req_unit = -1;          /* requested interface unit */
-@@ -277,6 +278,9 @@ option_t general_options[] = {
-     { "linkname", o_string, linkname,
-       "Set logical name for link",
-       OPT_PRIO | OPT_PRIV | OPT_STATIC, NULL, MAXPATHLEN },
-+    { "ifname", o_string, use_ifname,
-+      "Set physical name for PPP interface",
-+      OPT_PRIO | OPT_PRIV | OPT_STATIC, NULL, IFNAMSIZ },
-     { "maxfail", o_int, &maxfail,
-       "Maximum number of unsuccessful connection attempts to allow",
---- a/pppd/pppd.h
-+++ b/pppd/pppd.h
-@@ -74,6 +74,10 @@
- #include "eui64.h"
- #endif
-+#ifndef IFNAMSIZ
-+#define IFNAMSIZ      16
-+#endif
-+
- /*
-  * Limits.
-  */
-@@ -317,6 +321,7 @@ extern char        *record_file;   /* File to rec
- extern bool   sync_serial;    /* Device is synchronous serial device */
- extern int    maxfail;        /* Max # of unsuccessful connection attempts */
- extern char   linkname[MAXPATHLEN]; /* logical name for link */
-+extern char   use_ifname[IFNAMSIZ]; /* physical name for PPP interface */
- extern bool   tune_kernel;    /* May alter kernel settings as necessary */
- extern int    connect_delay;  /* Time to delay after connect script */
- extern int    max_data_rate;  /* max bytes/sec through charshunt */
---- a/pppd/sys-linux.c
-+++ b/pppd/sys-linux.c
-@@ -161,6 +161,10 @@ struct in6_ifreq {
- /* We can get an EIO error on an ioctl if the modem has hung up */
- #define ok_error(num) ((num)==EIO)
-+#if !defined(PPP_DRV_NAME)
-+#define PPP_DRV_NAME  "ppp"
-+#endif /* !defined(PPP_DRV_NAME) */
-+
- static int tty_disc = N_TTY;  /* The TTY discipline */
- static int ppp_disc = N_PPP;  /* The PPP discpline */
- static int initfdflags = -1;  /* Initial file descriptor flags for fd */
-@@ -620,7 +624,8 @@ void generic_disestablish_ppp(int dev_fd
-  */
- static int make_ppp_unit()
- {
--      int x, flags;
-+      struct ifreq ifr;
-+      int x, flags, s;
-       if (ppp_dev_fd >= 0) {
-               dbglog("in make_ppp_unit, already had /dev/ppp open?");
-@@ -643,6 +648,30 @@ static int make_ppp_unit()
-       }
-       if (x < 0)
-               error("Couldn't create new ppp unit: %m");
-+
-+      if (use_ifname[0] != 0) {
-+              s = socket(PF_INET, SOCK_DGRAM, 0);
-+              if (s < 0)
-+                      s = socket(PF_PACKET, SOCK_DGRAM, 0);
-+              if (s < 0)
-+                      s = socket(PF_INET6, SOCK_DGRAM, 0);
-+              if (s < 0)
-+                      s = socket(PF_UNIX, SOCK_DGRAM, 0);
-+              if (s >= 0) {
-+                      slprintf(ifr.ifr_name, sizeof(ifr.ifr_name), "%s%d", PPP_DRV_NAME, ifunit);
-+                      slprintf(ifr.ifr_newname, sizeof(ifr.ifr_newname), "%s", use_ifname);
-+                      x = ioctl(s, SIOCSIFNAME, &ifr);
-+                      close(s);
-+              } else {
-+                      x = s;
-+              }
-+              if (x < 0) {
-+                      error("Couldn't rename %s to %s", ifr.ifr_name, ifr.ifr_newname);
-+                      close(ppp_dev_fd);
-+                      ppp_dev_fd = -1;
-+              }
-+      }
-+
-       return x;
- }
---- a/pppstats/pppstats.c
-+++ b/pppstats/pppstats.c
-@@ -506,10 +506,12 @@ main(argc, argv)
-     if (argc > 0)
-       interface = argv[0];
-+#if 0
-     if (sscanf(interface, PPP_DRV_NAME "%d", &unit) != 1) {
-       fprintf(stderr, "%s: invalid interface '%s' specified\n",
-               progname, interface);
-     }
-+#endif
- #ifndef STREAMS
-     {
index bba5884fa4683ee5cf85e198e8b7194165ab2460..88a991fd80b2cd6bc0cdad1b948102aba8752d82 100644 (file)
@@ -8,7 +8,15 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
  2 files changed, 53 insertions(+), 14 deletions(-)
 --- a/pppd/multilink.c
 +++ b/pppd/multilink.c
-@@ -56,7 +56,8 @@ static void iterate_bundle_links __P((vo
+@@ -35,6 +35,7 @@
+ #include <signal.h>
+ #include <netinet/in.h>
+ #include <unistd.h>
++#include <net/if.h>
+ #include "pppd.h"
+ #include "fsm.h"
+@@ -56,7 +57,8 @@ static void iterate_bundle_links __P((vo
  
  static int get_default_epdisc __P((struct epdisc *));
  static int parse_num __P((char *str, const char *key, int *valp));
@@ -18,7 +26,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
  
  #define set_ip_epdisc(ep, addr) do {  \
        ep->length = 4;                 \
-@@ -197,35 +198,38 @@ mp_join_bundle()
+@@ -197,35 +199,38 @@ mp_join_bundle()
        key.dptr = bundle_id;
        key.dsize = p - bundle_id;
        pid = tdb_fetch(pppdb, key);
@@ -65,7 +73,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
        }
  
        /* we have to make a new bundle */
-@@ -408,22 +412,45 @@ parse_num(str, key, valp)
+@@ -408,22 +413,45 @@ parse_num(str, key, valp)
        return 0;
  }
  
@@ -118,7 +126,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
                        && memcmp(vd.dptr, key.dptr, vd.dsize) == 0;
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
-@@ -698,6 +698,16 @@ void cfg_bundle(int mrru, int mtru, int
+@@ -686,6 +686,16 @@ void cfg_bundle(int mrru, int mtru, int
        add_fd(ppp_dev_fd);
  }
  
@@ -135,7 +143,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
  /*
   * make_new_bundle - create a new PPP unit (i.e. a bundle)
   * and connect our channel to it.  This should only get called
-@@ -716,6 +726,8 @@ void make_new_bundle(int mrru, int mtru,
+@@ -704,6 +714,8 @@ void make_new_bundle(int mrru, int mtru,
  
        /* set the mrru and flags */
        cfg_bundle(mrru, mtru, rssn, tssn);
index 45fc4b9449f2056b6b6e2eb4ce42a831b3949432..bab120032e33f2348d904dbf468b17130fae0610 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
-@@ -1756,6 +1756,7 @@ int cifdefaultroute (int unit, u_int32_t
+@@ -1753,6 +1753,7 @@ int cifdefaultroute (int unit, u_int32_t
        SIN_ADDR(rt.rt_genmask) = 0L;
      }
  
index 5a694476d95abefa74663e00e195b90d47602e1f..7ddcb4604a7071a798ca9bfd35904375a3fb7166 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
-@@ -1710,6 +1710,9 @@ int sifdefaultroute (int unit, u_int32_t
+@@ -1703,6 +1703,9 @@ int sifdefaultroute (int unit, u_int32_t
      memset (&rt, 0, sizeof (rt));
      SET_SA_FAMILY (rt.rt_dst, AF_INET);
  
@@ -21,9 +21,9 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 +    SIN_ADDR(rt.rt_gateway) = gateway;
 +
      rt.rt_dev = ifname;
+     rt.rt_metric = dfl_route_metric + 1; /* +1 for binary compatibility */
  
-     if (kernel_version > KVERSION(2,1,0)) {
-@@ -1717,7 +1720,7 @@ int sifdefaultroute (int unit, u_int32_t
+@@ -1711,7 +1714,7 @@ int sifdefaultroute (int unit, u_int32_t
        SIN_ADDR(rt.rt_genmask) = 0L;
      }
  
index cea9e16c2e20b2f76d595c912c01814878148b81..05cbdb11bab5f66929d7778ffaf872c6810981ce 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
-@@ -196,7 +196,7 @@ static int driver_is_old       = 0;
+@@ -192,7 +192,7 @@ static int driver_is_old       = 0;
  static int restore_term        = 0;   /* 1 => we've munged the terminal */
  static struct termios inittermios;    /* Initial TTY termios */
  
@@ -19,7 +19,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  
  static char loop_name[20];
  static unsigned char inbuf[512]; /* buffer for chars read from loopback */
-@@ -214,8 +214,8 @@ static int looped;                 /* 1 if using loop
+@@ -210,8 +210,8 @@ static int looped;                 /* 1 if using loop
  static int    link_mtu;               /* mtu for the link (not bundle) */
  
  static struct utsname utsname;        /* for the kernel version */
@@ -29,7 +29,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  
  #define MAX_IFS               100
  
-@@ -1451,11 +1451,12 @@ int ccp_fatal_error (int unit)
+@@ -1439,11 +1439,12 @@ int ccp_fatal_error (int unit)
   *
   * path_to_procfs - find the path to the proc file system mount point
   */
@@ -44,7 +44,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      struct mntent *mntent;
      FILE *fp;
  
-@@ -1477,6 +1478,7 @@ static char *path_to_procfs(const char *
+@@ -1465,6 +1466,7 @@ static char *path_to_procfs(const char *
            fclose (fp);
        }
      }
@@ -52,7 +52,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  
      strlcpy(proc_path + proc_path_len, tail,
            sizeof(proc_path) - proc_path_len);
-@@ -2129,15 +2131,19 @@ int ppp_available(void)
+@@ -2126,15 +2128,19 @@ int ppp_available(void)
      int    my_version, my_modification, my_patch;
      int osmaj, osmin, ospatch;
  
@@ -72,7 +72,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  
        /* XXX should get from driver */
        driver_version = 2;
-@@ -2197,6 +2203,7 @@ int ppp_available(void)
+@@ -2194,6 +2200,7 @@ int ppp_available(void)
  
      if (ok && ((ifr.ifr_hwaddr.sa_family & ~0xFF) != ARPHRD_PPP))
        ok = 0;
@@ -80,7 +80,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  
  /*
   *  This is the PPP device. Validate the version of the driver at this
-@@ -2730,6 +2737,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
+@@ -2727,6 +2734,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
      }
  #endif /* TIOCGPTN */
  
@@ -88,7 +88,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      if (sfd < 0) {
        /* the old way - scan through the pty name space */
        for (i = 0; i < 64; ++i) {
-@@ -2748,6 +2756,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
+@@ -2745,6 +2753,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
            }
        }
      }
@@ -125,7 +125,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
  char *pppd_pppoe_service = NULL;
  static char *acName = NULL;
  static char *existingSession = NULL;
-@@ -371,10 +368,6 @@ PPPoEDevnameHook(char *cmd, char **argv,
+@@ -372,10 +369,6 @@ PPPoEDevnameHook(char *cmd, char **argv,
  void
  plugin_init(void)
  {
index f5079fac4b977df75a00f15bc1f314b4f5366dab..1ef21d588650bfdfdac37970f6632178e38d5fa6 100644 (file)
@@ -7,7 +7,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 
 --- a/pppd/pppd.h
 +++ b/pppd/pppd.h
-@@ -317,7 +317,6 @@ extern int holdoff;        /* Dead time before
+@@ -326,7 +326,6 @@ extern int holdoff;        /* Dead time before
  extern bool   holdoff_specified; /* true if user gave a holdoff value */
  extern bool   notty;          /* Stdin/out is not a tty */
  extern char   *pty_socket;    /* Socket to connect to pty */
index 98d6133c43fe484e327097d2c8cada484666e263..822bd9e3b7ea136fa5bf60864950c196545b6ab3 100644 (file)
@@ -7,7 +7,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
-@@ -2267,6 +2267,7 @@ int ppp_available(void)
+@@ -2264,6 +2264,7 @@ int ppp_available(void)
  
  void logwtmp (const char *line, const char *name, const char *host)
  {
@@ -15,7 +15,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      struct utmp ut, *utp;
      pid_t  mypid = getpid();
  #if __GLIBC__ < 2
-@@ -2332,6 +2333,7 @@ void logwtmp (const char *line, const ch
+@@ -2329,6 +2330,7 @@ void logwtmp (const char *line, const ch
        close (wtmp);
      }
  #endif
index 3b35fe003031ea7debd8152e4dd9d48cb53989a5..2ed00e435790df60cf79fc8cadc961c97a2664de 100644 (file)
@@ -7,7 +7,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 
 --- a/pppd/main.c
 +++ b/pppd/main.c
-@@ -882,14 +882,17 @@ struct protocol_list {
+@@ -874,14 +874,17 @@ struct protocol_list {
      const char        *name;
  } protocol_list[] = {
      { 0x21,   "IP" },
@@ -25,7 +25,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      { 0x33,   "Stream Protocol ST-II" },
      { 0x35,   "Banyan Vines" },
      { 0x39,   "AppleTalk EDDP" },
-@@ -903,8 +906,11 @@ struct protocol_list {
+@@ -895,8 +898,11 @@ struct protocol_list {
      { 0x49,   "Serial Data Transport Protocol (PPP-SDTP)" },
      { 0x4b,   "SNA over 802.2" },
      { 0x4d,   "SNA" },
@@ -37,7 +37,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      { 0x53,   "Encryption" },
      { 0x55,   "Individual Link Encryption" },
      { 0x57,   "IPv6" },
-@@ -915,12 +921,15 @@ struct protocol_list {
+@@ -907,12 +913,15 @@ struct protocol_list {
      { 0x65,   "RTP IPHC Compressed non-TCP" },
      { 0x67,   "RTP IPHC Compressed UDP 8" },
      { 0x69,   "RTP IPHC Compressed RTP 8" },
@@ -53,7 +53,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      { 0x0203, "IBM Source Routing BPDU" },
      { 0x0205, "DEC LANBridge100 Spanning Tree" },
      { 0x0207, "Cisco Discovery Protocol" },
-@@ -932,15 +941,19 @@ struct protocol_list {
+@@ -924,15 +933,19 @@ struct protocol_list {
      { 0x0231, "Luxcom" },
      { 0x0233, "Sigma Network Systems" },
      { 0x0235, "Apple Client Server Protocol" },
@@ -73,7 +73,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      { 0x4001, "Cray Communications Control Protocol" },
      { 0x4003, "CDPD Mobile Network Registration Protocol" },
      { 0x4005, "Expand accelerator protocol" },
-@@ -951,8 +964,10 @@ struct protocol_list {
+@@ -943,8 +956,10 @@ struct protocol_list {
      { 0x4023, "RefTek Protocol" },
      { 0x4025, "Fibre Channel" },
      { 0x4027, "EMIT Protocols" },
@@ -84,7 +84,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      { 0x8023, "OSI Network Layer Control Protocol" },
      { 0x8025, "Xerox NS IDP Control Protocol" },
      { 0x8027, "DECnet Phase IV Control Protocol" },
-@@ -961,7 +976,9 @@ struct protocol_list {
+@@ -953,7 +968,9 @@ struct protocol_list {
      { 0x8031, "Bridging NCP" },
      { 0x8033, "Stream Protocol Control Protocol" },
      { 0x8035, "Banyan Vines Control Protocol" },
@@ -94,7 +94,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      { 0x803f, "NETBIOS Framing Control Protocol" },
      { 0x8041, "Cisco Systems Control Protocol" },
      { 0x8043, "Ascom Timeplex" },
-@@ -970,18 +987,24 @@ struct protocol_list {
+@@ -962,18 +979,24 @@ struct protocol_list {
      { 0x8049, "Serial Data Control Protocol (PPP-SDCP)" },
      { 0x804b, "SNA over 802.2 Control Protocol" },
      { 0x804d, "SNA Control Protocol" },
@@ -119,7 +119,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
      { 0x8207, "Cisco Discovery Protocol Control" },
      { 0x8209, "Netcs Twin Routing" },
      { 0x820b, "STP - Control Protocol" },
-@@ -990,24 +1013,29 @@ struct protocol_list {
+@@ -982,24 +1005,29 @@ struct protocol_list {
      { 0x8281, "MPLSCP" },
      { 0x8285, "IEEE p1284.4 standard - Protocol Control" },
      { 0x8287, "ETSI TETRA TNP1 Control Protocol" },
index b17747a5ec24df1dcf96e7f5f3fe146cbd4cf6a7..d57294a33727491ae6483181cfba07bf32f23e89 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
 
 --- a/pppd/options.c
 +++ b/pppd/options.c
-@@ -336,13 +336,14 @@ option_t general_options[] = {
+@@ -350,13 +350,14 @@ option_t general_options[] = {
        "Enable multilink operation", OPT_PRIOSUB | OPT_ALIAS | 1 },
      { "nomultilink", o_bool, &multilink,
        "Disable multilink operation", OPT_PRIOSUB | 0 },
index 65d0e96bc0ef5a98b85ae9923c4e664a6accc0cf..fddb07f253a46de6a99ae257e4c9060b0d50e3e3 100644 (file)
      strlcpy(ppp_devnam, devnam, sizeof(ppp_devnam));
 --- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
 +++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
-@@ -348,7 +348,7 @@ packetIsForMe(PPPoEConnection *conn, PPP
+@@ -356,7 +356,7 @@ packetIsForMe(PPPoEConnection *conn, PPP
      if (memcmp(packet->ethHdr.h_dest, conn->myEth, ETH_ALEN)) return 0;
  
      /* If we're not using the Host-Unique tag, then accept the packet */
  
      parsePacket(packet, parseForHostUniq, &forMe);
      return forMe;
-@@ -474,16 +474,12 @@ sendPADI(PPPoEConnection *conn)
+@@ -494,16 +494,12 @@ sendPADI(PPPoEConnection *conn)
      cursor += namelen + TAG_HDR_SIZE;
  
      /* If we're using Host-Uniq, copy it over */
      }
  
      packet.length = htons(plen);
-@@ -645,7 +641,7 @@ int main(int argc, char *argv[])
-     memset(conn, 0, sizeof(PPPoEConnection));
+@@ -669,7 +665,7 @@ int main(int argc, char *argv[])
+     conn->discoveryTimeout = PADI_TIMEOUT;
+     conn->discoveryAttempts = MAX_PADI_ATTEMPTS;
  
--    while ((opt = getopt(argc, argv, "I:D:VUAS:C:h")) > 0) {
-+    while ((opt = getopt(argc, argv, "I:D:VUW:AS:C:h")) > 0) {
+-    while ((opt = getopt(argc, argv, "I:D:VUQS:C:t:a:h")) > 0) {
++    while ((opt = getopt(argc, argv, "I:D:VUW:QS:C:t:a:h")) > 0) {
        switch(opt) {
        case 'S':
            conn->serviceName = xstrdup(optarg);
-@@ -654,7 +650,23 @@ int main(int argc, char *argv[])
-           conn->acName = xstrdup(optarg);
+@@ -696,7 +692,23 @@ int main(int argc, char *argv[])
+           }
            break;
        case 'U':
 -          conn->useHostUniq = 1;
  
  /* How do we access raw Ethernet devices? */
  #undef USE_LINUX_PACKET
-@@ -217,7 +219,7 @@ typedef struct PPPoEConnectionStruct {
+@@ -219,7 +221,7 @@ typedef struct PPPoEConnectionStruct {
      char *serviceName;                /* Desired service name, if any */
      char *acName;             /* Desired AC name, if any */
      int synchronous;          /* Use synchronous PPP */
      int printACNames;         /* Just print AC names */
      FILE *debugFile;          /* Debug file for dumping packets */
      int numPADOs;             /* Number of PADO packets received */
-@@ -273,6 +275,33 @@ void pppoe_printpkt(PPPoEPacket *packet,
+@@ -276,6 +278,33 @@ void pppoe_printpkt(PPPoEPacket *packet,
                    void (*printer)(void *, char *, ...), void *arg);
  void pppoe_log_packet(const char *prefix, PPPoEPacket *packet);
  
diff --git a/package/network/services/ppp/patches/530-pppoe_send_padt.patch b/package/network/services/ppp/patches/530-pppoe_send_padt.patch
deleted file mode 100644 (file)
index 40fa420..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/pppd/plugins/rp-pppoe/plugin.c
-+++ b/pppd/plugins/rp-pppoe/plugin.c
-@@ -275,7 +275,7 @@ PPPOEDisconnectDevice(void)
-               sizeof(struct sockaddr_pppox)) < 0)
-       error("Failed to disconnect PPPoE socket: %d %m", errno);
-     close(conn->sessionSocket);
--    /* don't send PADT?? */
-+    sendPADT(conn, NULL);
-     if (conn->discoverySocket >= 0)
-       close(conn->discoverySocket);
- }
diff --git a/package/network/services/ppp/patches/531-pppoe_no_disconnect_warning.patch b/package/network/services/ppp/patches/531-pppoe_no_disconnect_warning.patch
deleted file mode 100644 (file)
index 799e961..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/pppd/plugins/rp-pppoe/plugin.c
-+++ b/pppd/plugins/rp-pppoe/plugin.c
-@@ -271,9 +271,8 @@ PPPOEDisconnectDevice(void)
-     sp.sa_addr.pppoe.sid = 0;
-     memcpy(sp.sa_addr.pppoe.dev, conn->ifName, IFNAMSIZ);
-     memcpy(sp.sa_addr.pppoe.remote, conn->peerEth, ETH_ALEN);
--    if (connect(conn->sessionSocket, (struct sockaddr *) &sp,
--              sizeof(struct sockaddr_pppox)) < 0)
--      error("Failed to disconnect PPPoE socket: %d %m", errno);
-+    connect(conn->sessionSocket, (struct sockaddr *) &sp,
-+          sizeof(struct sockaddr_pppox));
-     close(conn->sessionSocket);
-     sendPADT(conn, NULL);
-     if (conn->discoverySocket >= 0)
diff --git a/package/network/services/ppp/patches/550-fix-printer-args.patch b/package/network/services/ppp/patches/550-fix-printer-args.patch
deleted file mode 100644 (file)
index 0eed942..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/pppd/options.c
-+++ b/pppd/options.c
-@@ -1013,7 +1013,7 @@ print_option(opt, mainopt, printer, arg)
-                       p = (char *) opt->addr2;
-                       if ((opt->flags & OPT_STATIC) == 0)
-                               p = *(char **)p;
--                      printer("%q", p);
-+                      printer(arg, "%q", p);
-               } else if (opt->flags & OPT_A2LIST) {
-                       struct option_value *ovp;
diff --git a/package/network/services/ppp/patches/600-Revert-pppd-Use-openssl-for-the-DES-instead-of-the-l.patch b/package/network/services/ppp/patches/600-Revert-pppd-Use-openssl-for-the-DES-instead-of-the-l.patch
new file mode 100644 (file)
index 0000000..b43694f
--- /dev/null
@@ -0,0 +1,94 @@
+From 831dca008699d485f2c8e91749657ef2d0b06166 Mon Sep 17 00:00:00 2001
+From: Martin Schiller <ms@dev.tdt.de>
+Date: Thu, 6 Dec 2018 08:43:17 +0100
+Subject: [PATCH] Revert "pppd: Use openssl for the DES instead of the libcrypt
+ / glibc"
+
+For musl and glibc2.27 we can keep linking to crypt; however if we
+switch to glibc 2.28 we will have to link to one of the SSL libraries.
+
+This reverts commit 3c7b86229f7bd2600d74db14b1fe5b3896be3875.
+---
+ pppd/Makefile.linux |  7 +++----
+ pppd/pppcrypt.c     | 18 +++++++++---------
+ 2 files changed, 12 insertions(+), 13 deletions(-)
+
+--- a/pppd/Makefile.linux
++++ b/pppd/Makefile.linux
+@@ -35,10 +35,10 @@ endif
+ COPTS = -O2 -pipe -Wall -g
+ LIBS =
+-# Uncomment the next line to include support for Microsoft's
++# Uncomment the next 2 lines to include support for Microsoft's
+ # MS-CHAP authentication protocol.  Also, edit plugins/radius/Makefile.linux.
+ CHAPMS=y
+-#USE_CRYPT=y
++USE_CRYPT=y
+ # Don't use MSLANMAN unless you really know what you're doing.
+ #MSLANMAN=y
+ # Uncomment the next line to include support for MPPE.  CHAPMS (above) must
+@@ -140,8 +140,7 @@ endif
+ ifdef NEEDDES
+ ifndef USE_CRYPT
+-CFLAGS   += -I/usr/include/openssl
+-LIBS     += -lcrypto
++LIBS     += -ldes $(LIBS)
+ else
+ CFLAGS   += -DUSE_CRYPT=1
+ endif
+--- a/pppd/pppcrypt.c
++++ b/pppd/pppcrypt.c
+@@ -64,7 +64,7 @@ u_char *des_key;     /* OUT 64 bit DES key w
+       des_key[7] = Get7Bits(key, 49);
+ #ifndef USE_CRYPT
+-      DES_set_odd_parity((DES_cblock *)des_key);
++      des_set_odd_parity((des_cblock *)des_key);
+ #endif
+ }
+@@ -158,25 +158,25 @@ u_char *clear;   /* OUT 8 octets */
+ }
+ #else /* USE_CRYPT */
+-static DES_key_schedule       key_schedule;
++static des_key_schedule       key_schedule;
+ bool
+ DesSetkey(key)
+ u_char *key;
+ {
+-      DES_cblock des_key;
++      des_cblock des_key;
+       MakeKey(key, des_key);
+-      DES_set_key(&des_key, &key_schedule);
++      des_set_key(&des_key, key_schedule);
+       return (1);
+ }
+ bool
+-DesEncrypt(clear, cipher)
++DesEncrypt(clear, key, cipher)
+ u_char *clear;        /* IN  8 octets */
+ u_char *cipher;       /* OUT 8 octets */
+ {
+-      DES_ecb_encrypt((DES_cblock *)clear, (DES_cblock *)cipher,
+-          &key_schedule, 1);
++      des_ecb_encrypt((des_cblock *)clear, (des_cblock *)cipher,
++          key_schedule, 1);
+       return (1);
+ }
+@@ -185,8 +185,8 @@ DesDecrypt(cipher, clear)
+ u_char *cipher;       /* IN  8 octets */
+ u_char *clear;        /* OUT 8 octets */
+ {
+-      DES_ecb_encrypt((DES_cblock *)cipher, (DES_cblock *)clear,
+-          &key_schedule, 0);
++      des_ecb_encrypt((des_cblock *)cipher, (des_cblock *)clear,
++          key_schedule, 0);
+       return (1);
+ }
index 7f1c1f9415b799eebec03a1bf6e7fb2cfec1598c..75ddcddc290ee3f7259371a15297eed3ceee0fc6 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=relayd
 PKG_RELEASE:=2
 
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/relayd.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/relayd.git
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_DATE:=2016-02-07
 PKG_SOURCE_VERSION:=ad0b25ad74345d367c62311e14b279f5ccb8ef13
index a08b51ba171b5de3b090df8aeebf2511544b96eb..a4392f62c5a613860c25204258cc3748ffb81f3e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=samba
 PKG_VERSION:=3.6.25
-PKG_RELEASE:=13
+PKG_RELEASE:=14
 
 PKG_SOURCE_URL:=https://download.samba.org/pub/samba \
                https://download.samba.org/pub/samba/stable
@@ -85,6 +85,7 @@ CONFIGURE_VARS += \
        libreplace_cv_HAVE_C99_VSNPRINTF=yes \
        libreplace_cv_HAVE_GETADDRINFO=yes \
        libreplace_cv_HAVE_IFACE_IFCONF=yes \
+       $(if $(CONFIG_IPV6),,libreplace_cv_HAVE_IPV6=no libreplace_cv_HAVE_IPV6_V6ONLY=no) \
        LINUX_LFS_SUPPORT=yes \
        samba_cv_CC_NEGATIVE_ENUM_VALUES=yes \
        samba_cv_HAVE_GETTIMEOFDAY_TZ=yes \
index da426d47002ea979674330555d8bbf2acc3b2743..93d3eb6605694c3f83ae0071e4c1e9554a16c59c 100644 (file)
@@ -8,10 +8,10 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=uhttpd
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/uhttpd.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/uhttpd.git
 PKG_SOURCE_DATE:=2018-11-28
 PKG_SOURCE_VERSION:=cdfc902a4cb77bc538a729f9e1c8a8578454a0e5
 PKG_MIRROR_HASH:=6b21111547a4453355bd6c941a47f0116a652a77d87c1e05a035168b8ab2aa6f
index ee21cebc7144c44e1c306d601ec3f0a7059a081e..932cd00a3a6307a7ba85afbf37d89c38d11db65d 100644 (file)
@@ -24,7 +24,7 @@ config uhttpd main
        # If this number is exceeded, further requests are
        # queued until the number of running requests drops
        # below the limit again.
-       option max_requests 3
+       option max_requests 1
 
        # Maximum number of concurrent connections.
        # If this number is exceeded, further TCP connection
index c305404bc6b6f744dc8c4220d7593986d27dea27..845141bb3a53da47cde8a8aa319d0c89e37ceef3 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=umdns
 PKG_RELEASE:=1
 
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/mdnsd.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/mdnsd.git
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_DATE:=2018-01-02
 PKG_SOURCE_VERSION:=78974417e182a3de8f78b7d73366ec0c98396b6c
index f752d3b83aafec2b46a1382e8a547ca079b963df..aab3e59850a767bbf6d6f60291a64da7b49f3e5e 100644 (file)
@@ -11,12 +11,12 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=wireguard
 
-PKG_VERSION:=0.0.20181218
+PKG_VERSION:=0.0.20190227
 PKG_RELEASE:=1
 
 PKG_SOURCE:=WireGuard-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://git.zx2c4.com/WireGuard/snapshot/
-PKG_HASH:=2e9f86acefa49dbfb7fa6f5e10d543f1885a2d5460cd5e102696901107675735
+PKG_HASH:=fcdb26fd2692d9e1dee54d14418603c38fbb973a06ce89d08fbe45292ff37f79
 
 PKG_LICENSE:=GPL-2.0 Apache-2.0
 PKG_LICENSE_FILES:=COPYING
diff --git a/package/network/utils/conntrack-tools/Makefile b/package/network/utils/conntrack-tools/Makefile
deleted file mode 100644 (file)
index f04ac69..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-#
-# Copyright (C) 2009-2011 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=conntrack-tools
-PKG_RELEASE:=1
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://git.netfilter.org/conntrack-tools
-PKG_SOURCE_DATE:=2017-09-27
-PKG_SOURCE_VERSION:=eefe649ca51ed0cbb995454cdc366f5072f6443c
-PKG_MIRROR_HASH:=1c207c3e423d741fbb31e3c29486a811e6dad493f26ec47a2df75b6262a1b4bd
-
-PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
-PKG_LICENSE:=GPL-2.0
-PKG_CPE_ID:=cpe:/a:conntrack-tools_project:conntrack-tools
-
-PKG_FIXUP:=autoreconf
-PKG_INSTALL:=1
-
-PKG_BUILD_DEPENDS:=librpc
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/conntrack-tools/default
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=+libnetfilter-conntrack +libnetfilter-cttimeout +libnetfilter-cthelper +libnetfilter-queue
-  SUBMENU:=Firewall
-  URL:=http://conntrack-tools.netfilter.org/
-endef
-
-define Package/conntrack
-$(call Package/conntrack-tools/default)
-  TITLE:=Connection tracking tool
-endef
-
-define Package/conntrack/description
- Conntrack is a userspace command line program targeted at system
- administrators. It enables them to view and manage the in-kernel
- connection tracking state table.
-endef
-
-define Package/conntrack/install
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/conntrack $(1)/usr/sbin/
-endef
-
-define Package/conntrackd
-$(call Package/conntrack-tools/default)
-  TITLE:=Connection tracking daemon
-endef
-
-define Package/conntrackd/conffiles
-/etc/conntrackd/
-endef
-
-define Package/conntrackd/description
- Conntrackd can replicate the status of the connections that are
- currently being processed by your stateful firewall based on Linux.
- Conntrackd can also run as statistics daemon.
-endef
-
-define Package/conntrackd/install
-       $(INSTALL_DIR) \
-               $(1)/etc/conntrackd \
-               $(1)/etc/init.d \
-               $(1)/usr/sbin
-       $(INSTALL_BIN)  $(PKG_INSTALL_DIR)/usr/sbin/conntrackd $(1)/usr/sbin/
-       $(INSTALL_BIN) ./files/conntrackd.init $(1)/etc/init.d/conntrackd
-endef
-
-$(eval $(call BuildPackage,conntrack))
-$(eval $(call BuildPackage,conntrackd))
diff --git a/package/network/utils/conntrack-tools/files/conntrackd.init b/package/network/utils/conntrack-tools/files/conntrackd.init
deleted file mode 100644 (file)
index 0e2945c..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2015 OpenWrt.org
-
-START=21
-STOP=89
-
-USE_PROCD=1
-PROG="/usr/sbin/conntrackd"
-
-start_service() {
-       [ -e /etc/conntrackd/conntrackd.conf ] || return
-       procd_open_instance
-
-       procd_set_param command $PROG -C /etc/conntrackd/conntrackd.conf
-       procd_set_param respawn
-
-       procd_close_instance
-}
index 65ece77649dbb2ee83fbca80abddef0afbb116bc..16c7466ee355970166c068d76dd63c7842d1f402 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=curl
-PKG_VERSION:=7.63.0
+PKG_VERSION:=7.64.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
@@ -16,7 +16,7 @@ PKG_SOURCE_URL:=https://dl.uxnr.de/mirror/curl/ \
        https://curl.mirror.anstey.ca/ \
        https://curl.askapache.com/download/ \
        https://curl.haxx.se/download/
-PKG_HASH:=9600234c794bfb8a0d3f138e9294d60a20e7a5f10e35ece8cf518e2112d968c4
+PKG_HASH:=2f2f13fa34d44aa29cb444077ad7dc4dc6d189584ad552e0aaeb06e608af6001
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
@@ -91,6 +91,7 @@ define Package/libcurl
   DEPENDS += +LIBCURL_SSH2:libssh2 +LIBCURL_NGHTTP2:libnghttp2 +ca-bundle
   TITLE:=A client-side URL transfer library
   MENU:=1
+  ABI_VERSION:=4
 endef
 
 define Package/libcurl/config
index 87b6492a97607afef2f37aead565d689d5781b56..1d80e2f8118f78bef1e54506b2051cca78f8b67e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/lib/vtls/mbedtls.c
 +++ b/lib/vtls/mbedtls.c
-@@ -811,7 +811,7 @@ static void Curl_mbedtls_session_free(vo
+@@ -813,7 +813,7 @@ static void Curl_mbedtls_session_free(vo
  
  static size_t Curl_mbedtls_version(char *buffer, size_t size)
  {
index 1c57b120f8bba2fb51431609d60ea592d056080d..4f5d08724cb25fa4ee1d69a1537884ae125245f7 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dante
 PKG_VERSION:=1.4.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.inet.no/dante/files/
@@ -58,6 +58,7 @@ define Package/libsocks
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE+= Library
+  ABI_VERSION:=0
 endef
 
 define Package/libsocks/description
@@ -67,7 +68,7 @@ endef
 
 define Package/libsocks/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsocks.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsocks.so.* $(1)/usr/lib/
 endef
 
 
index f40847c85a48e05da13bbed9af6e5720bc928996..866776f9ccd1e3adf182a21dcb8c5b9f5caa2c1a 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=iproute2
-PKG_VERSION:=4.19.0
-PKG_RELEASE:=8
+PKG_VERSION:=4.20.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
-PKG_HASH:=d9ec5ca1f47d8a85416fa26e7dc1cbf5d067640eb60e90bdc1c7e5bdc6a29984
+PKG_HASH:=c8adaa6a40f888476b23acb283cfa30c0dd55f07b5aa20663ed5ba2ef1f6fda8
 PKG_BUILD_PARALLEL:=1
 PKG_BUILD_DEPENDS:=iptables
 PKG_LICENSE:=GPL-2.0
@@ -54,7 +54,7 @@ endef
 define Package/tc
 $(call Package/iproute2/Default)
   TITLE:=Traffic control utility
-  DEPENDS:=+kmod-sched-core +(PACKAGE_devlink||PACKAGE_rdma):libmnl +libelf1
+  DEPENDS:=+kmod-sched-core +libxtables +libelf +(PACKAGE_devlink||PACKAGE_rdma):libmnl
 endef
 
 define Package/genl
@@ -106,25 +106,21 @@ ifdef CONFIG_PACKAGE_rdma
 endif
 
 define Build/Configure
-       $(SED) "s,-I/usr/include/db3,," $(PKG_BUILD_DIR)/Makefile
-       $(SED) "s,^KERNEL_INCLUDE.*,KERNEL_INCLUDE=$(LINUX_DIR)/include," \
-               $(PKG_BUILD_DIR)/Makefile
-       $(SED) "s,^LIBC_INCLUDE.*,LIBC_INCLUDE=$(STAGING_DIR)/include," \
-               $(PKG_BUILD_DIR)/Makefile
        echo "static const char SNAPSHOT[] = \"$(PKG_VERSION)-$(PKG_RELEASE)-librecmc\";" \
                > $(PKG_BUILD_DIR)/include/SNAPSHOT.h
 endef
 
 TARGET_CFLAGS += -ffunction-sections -fdata-sections
+TARGET_LDFLAGS += -Wl,--gc-sections
+TARGET_CPPFLAGS += -I$(STAGING_DIR)/usr/include/libnl-tiny
 
 MAKE_FLAGS += \
-       EXTRA_CCOPTS="-I$(STAGING_DIR)/usr/include/libnl-tiny" \
-       KERNEL_INCLUDE="$(LINUX_DIR)/include" \
+       KERNEL_INCLUDE="$(LINUX_DIR)/user_headers/include" \
        SHARED_LIBS="" \
-       LDFLAGS="$(TARGET_LDFLAGS) -Wl,--gc-sections" \
        IP_CONFIG_TINY=$(IP_CONFIG_TINY) \
        HAVE_MNL=$(HAVE_MNL) \
        IPT_LIB_DIR=/usr/lib/iptables \
+       XT_LIB_DIR=/usr/lib/iptables \
        FPIC="$(FPIC)"
 
 define Build/Compile
diff --git a/package/network/utils/iproute2/patches/001-fix-print_0xhex-on-32-bit.patch b/package/network/utils/iproute2/patches/001-fix-print_0xhex-on-32-bit.patch
deleted file mode 100644 (file)
index 25994b4..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-From 90c5c969f0b9a2fbb0016b955fecc359aa884220 Mon Sep 17 00:00:00 2001
-From: Stephen Hemminger <stephen@networkplumber.org>
-Date: Mon, 10 Dec 2018 14:20:32 -0800
-Subject: [PATCH] fix print_0xhex on 32 bit
-
-The argument to print_0xhex is converted to unsigned long long
-so the format string give for normal printout has to be some
-variant of %llx. Otherwise, bogus values will be printed on
-32 bit platforms.
-
-Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
----
- bridge/link.c            | 2 +-
- ip/ipaddress.c           | 2 +-
- ip/iplink_bridge.c       | 2 +-
- ip/iplink_bridge_slave.c | 6 +++---
- ip/iplink_geneve.c       | 5 ++---
- ip/iplink_vxlan.c        | 8 +++-----
- ip/ipntable.c            | 2 +-
- ip/iproute.c             | 8 ++++----
- ip/iproute_lwtunnel.c    | 2 +-
- ip/iprule.c              | 6 +++---
- ip/iptuntap.c            | 2 +-
- ip/link_gre.c            | 6 +++---
- ip/link_gre6.c           | 4 ++--
- ip/link_ip6tnl.c         | 2 +-
- ip/link_iptnl.c          | 4 ++--
- ip/link_vti.c            | 2 +-
- ip/link_vti6.c           | 2 +-
- tc/m_ife.c               | 2 +-
- tc/q_htb.c               | 2 +-
- tc/q_taprio.c            | 2 +-
- 20 files changed, 34 insertions(+), 37 deletions(-)
-
---- a/bridge/link.c
-+++ b/bridge/link.c
-@@ -90,7 +90,7 @@ static void print_hwmode(__u16 mode)
- {
-       if (mode >= ARRAY_SIZE(hw_mode))
-               print_0xhex(PRINT_ANY, "hwmode",
--                          "hwmode %#hx ", mode);
-+                          "hwmode %#llx ", mode);
-       else
-               print_string(PRINT_ANY, "hwmode",
-                            "hwmode %s ", hw_mode[mode]);
---- a/ip/ipaddress.c
-+++ b/ip/ipaddress.c
-@@ -129,7 +129,7 @@ static void print_operstate(FILE *f, __u
-               if (is_json_context())
-                       print_uint(PRINT_JSON, "operstate_index", NULL, state);
-               else
--                      print_0xhex(PRINT_FP, NULL, "state %#x", state);
-+                      print_0xhex(PRINT_FP, NULL, "state %#llx", state);
-       } else if (brief) {
-               print_color_string(PRINT_ANY,
-                                  oper_state_color(state),
---- a/ip/iplink_bridge.c
-+++ b/ip/iplink_bridge.c
-@@ -524,7 +524,7 @@ static void bridge_print_opt(struct link
-       if (tb[IFLA_BR_GROUP_FWD_MASK])
-               print_0xhex(PRINT_ANY,
-                           "group_fwd_mask",
--                          "group_fwd_mask %#x ",
-+                          "group_fwd_mask %#llx ",
-                           rta_getattr_u16(tb[IFLA_BR_GROUP_FWD_MASK]));
-       if (tb[IFLA_BR_GROUP_ADDR]) {
---- a/ip/iplink_bridge_slave.c
-+++ b/ip/iplink_bridge_slave.c
-@@ -167,11 +167,11 @@ static void bridge_slave_print_opt(struc
-                            rta_getattr_u8(tb[IFLA_BRPORT_UNICAST_FLOOD]));
-       if (tb[IFLA_BRPORT_ID])
--              print_0xhex(PRINT_ANY, "id", "port_id 0x%x ",
-+              print_0xhex(PRINT_ANY, "id", "port_id %#llx ",
-                           rta_getattr_u16(tb[IFLA_BRPORT_ID]));
-       if (tb[IFLA_BRPORT_NO])
--              print_0xhex(PRINT_ANY, "no", "port_no 0x%x ",
-+              print_0xhex(PRINT_ANY, "no", "port_no %#llx ",
-                          rta_getattr_u16(tb[IFLA_BRPORT_NO]));
-       if (tb[IFLA_BRPORT_DESIGNATED_PORT])
-@@ -266,7 +266,7 @@ static void bridge_slave_print_opt(struc
-               fwd_mask = rta_getattr_u16(tb[IFLA_BRPORT_GROUP_FWD_MASK]);
-               print_0xhex(PRINT_ANY, "group_fwd_mask",
--                          "group_fwd_mask 0x%x ", fwd_mask);
-+                          "group_fwd_mask %#llx ", fwd_mask);
-               _bitmask2str(fwd_mask, convbuf, sizeof(convbuf), fwd_mask_tbl);
-               print_string(PRINT_ANY, "group_fwd_mask_str",
-                            "group_fwd_mask_str %s ", convbuf);
---- a/ip/iplink_geneve.c
-+++ b/ip/iplink_geneve.c
-@@ -276,7 +276,7 @@ static void geneve_print_opt(struct link
-               tos = rta_getattr_u8(tb[IFLA_GENEVE_TOS]);
-       if (tos) {
-               if (is_json_context() || tos != 1)
--                      print_0xhex(PRINT_ANY, "tos", "tos 0x%x ", tos);
-+                      print_0xhex(PRINT_ANY, "tos", "tos %#llx ", tos);
-               else
-                       print_string(PRINT_FP, NULL, "tos %s ", "inherit");
-       }
-@@ -286,8 +286,7 @@ static void geneve_print_opt(struct link
-               if (label)
-                       print_0xhex(PRINT_ANY,
--                                  "label",
--                                  "flowlabel %#x ",
-+                                  "label", "flowlabel %#llx ",
-                                   ntohl(label));
-       }
---- a/ip/iplink_vxlan.c
-+++ b/ip/iplink_vxlan.c
-@@ -522,7 +522,7 @@ static void vxlan_print_opt(struct link_
-               tos = rta_getattr_u8(tb[IFLA_VXLAN_TOS]);
-       if (tos) {
-               if (is_json_context() || tos != 1)
--                      print_0xhex(PRINT_ANY, "tos", "tos 0x%x ", tos);
-+                      print_0xhex(PRINT_ANY, "tos", "tos %#llx ", tos);
-               else
-                       print_string(PRINT_FP, NULL, "tos %s ", "inherit");
-       }
-@@ -542,10 +542,8 @@ static void vxlan_print_opt(struct link_
-               __u32 label = rta_getattr_u32(tb[IFLA_VXLAN_LABEL]);
-               if (label)
--                      print_0xhex(PRINT_ANY,
--                                  "label",
--                                  "flowlabel %#x ",
--                                  ntohl(label));
-+                      print_0xhex(PRINT_ANY, "label",
-+                                  "flowlabel %#llx ", ntohl(label));
-       }
-       if (tb[IFLA_VXLAN_AGEING]) {
---- a/ip/ipntable.c
-+++ b/ip/ipntable.c
-@@ -360,7 +360,7 @@ static void print_ndtconfig(const struct
-       print_uint(PRINT_ANY, "hash_rnd",
-                  "        hash_rnd %u ", ndtc->ndtc_hash_rnd);
-       print_0xhex(PRINT_ANY, "hash_mask",
--                  "hash_mask %08x ", ndtc->ndtc_hash_mask);
-+                  "hash_mask %08llx ", ndtc->ndtc_hash_mask);
-       print_uint(PRINT_ANY, "hash_chain_gc",
-                  "hash_chain_gc %u ", ndtc->ndtc_hash_chain_gc);
---- a/ip/iproute.c
-+++ b/ip/iproute.c
-@@ -346,7 +346,7 @@ static void print_rtax_features(FILE *fp
-       if (features)
-               print_0xhex(PRINT_ANY,
--                          "features", "0x%x ", of);
-+                          "features", "%#llx ", of);
- }
- static void print_rt_flags(FILE *fp, unsigned int flags)
-@@ -483,10 +483,10 @@ static void print_rta_cacheinfo(FILE *fp
-       }
-       if (ci->rta_id)
-               print_0xhex(PRINT_ANY, "ipid",
--                          "ipid 0x%04x ", ci->rta_id);
-+                          "ipid 0x%04llx ", ci->rta_id);
-       if (ci->rta_ts || ci->rta_tsage) {
-               print_0xhex(PRINT_ANY, "ts",
--                          "ts 0x%x", ci->rta_ts);
-+                          "ts 0x%llx", ci->rta_ts);
-               print_uint(PRINT_ANY, "tsage",
-                          "tsage %usec ", ci->rta_tsage);
-       }
-@@ -885,7 +885,7 @@ int print_route(const struct sockaddr_nl
-                               print_uint(PRINT_JSON, "mark", NULL, mark);
-                       else if (mark >= 16)
-                               print_0xhex(PRINT_FP, NULL,
--                                          "mark 0x%x ", mark);
-+                                          "mark 0x%llx ", mark);
-                       else
-                               print_uint(PRINT_FP, NULL,
-                                          "mark %u ", mark);
---- a/ip/iproute_lwtunnel.c
-+++ b/ip/iproute_lwtunnel.c
-@@ -115,7 +115,7 @@ static void print_srh(FILE *fp, struct i
-               tlv = (struct sr6_tlv_hmac *)((char *)srh + offset);
-               print_0xhex(PRINT_ANY, "hmac",
--                          "hmac 0x%X ", ntohl(tlv->hmackeyid));
-+                          "hmac %llX ", ntohl(tlv->hmackeyid));
-       }
- }
---- a/ip/iprule.c
-+++ b/ip/iprule.c
-@@ -263,10 +263,10 @@ int print_rule(const struct sockaddr_nl
-               if (tb[FRA_FWMASK] &&
-                   (mask = rta_getattr_u32(tb[FRA_FWMASK])) != 0xFFFFFFFF) {
--                      print_0xhex(PRINT_ANY, "fwmark", "fwmark 0x%x", mark);
--                      print_0xhex(PRINT_ANY, "fwmask", "/0x%x ", mask);
-+                      print_0xhex(PRINT_ANY, "fwmark", "fwmark %#llx", mark);
-+                      print_0xhex(PRINT_ANY, "fwmask", "/%#llx ", mask);
-               } else {
--                      print_0xhex(PRINT_ANY, "fwmark", "fwmark 0x%x ", mark);
-+                      print_0xhex(PRINT_ANY, "fwmark", "fwmark %#llx ", mark);
-               }
-       }
---- a/ip/iptuntap.c
-+++ b/ip/iptuntap.c
-@@ -254,7 +254,7 @@ static void print_flags(long flags)
-       flags &= ~(IFF_TUN | IFF_TAP | IFF_NO_PI | IFF_ONE_QUEUE |
-                  IFF_VNET_HDR | IFF_PERSIST | IFF_NOFILTER);
-       if (flags)
--              print_0xhex(PRINT_ANY, NULL, "%#x", flags);
-+              print_0xhex(PRINT_ANY, NULL, "%#llx", flags);
-       close_json_array(PRINT_JSON, NULL);
- }
---- a/ip/link_gre.c
-+++ b/ip/link_gre.c
-@@ -463,7 +463,7 @@ static void gre_print_opt(struct link_ut
-               tos = rta_getattr_u8(tb[IFLA_GRE_TOS]);
-       if (tos) {
-               if (is_json_context() || tos != 1)
--                      print_0xhex(PRINT_ANY, "tos", "tos 0x%x ", tos);
-+                      print_0xhex(PRINT_ANY, "tos", "tos %#llx ", tos);
-               else
-                       print_string(PRINT_FP, NULL, "tos %s ", "inherit");
-       }
-@@ -508,7 +508,7 @@ static void gre_print_opt(struct link_ut
-               if (fwmark) {
-                       print_0xhex(PRINT_ANY,
--                                  "fwmark", "fwmark 0x%x ", fwmark);
-+                                  "fwmark", "fwmark %#llx ", fwmark);
-               }
-       }
-@@ -541,7 +541,7 @@ static void gre_print_opt(struct link_ut
-               __u16 erspan_hwid = rta_getattr_u16(tb[IFLA_GRE_ERSPAN_HWID]);
-               print_0xhex(PRINT_ANY,
--                          "erspan_hwid", "erspan_hwid 0x%x ", erspan_hwid);
-+                          "erspan_hwid", "erspan_hwid %#llx ", erspan_hwid);
-       }
-       tnl_print_encap(tb,
---- a/ip/link_gre6.c
-+++ b/ip/link_gre6.c
-@@ -576,7 +576,7 @@ static void gre_print_opt(struct link_ut
-               if (fwmark) {
-                       print_0xhex(PRINT_ANY,
--                                  "fwmark", "fwmark 0x%x ", fwmark);
-+                                  "fwmark", "fwmark %#llx ", fwmark);
-               }
-       }
-@@ -609,7 +609,7 @@ static void gre_print_opt(struct link_ut
-               __u16 erspan_hwid = rta_getattr_u16(tb[IFLA_GRE_ERSPAN_HWID]);
-               print_0xhex(PRINT_ANY,
--                          "erspan_hwid", "erspan_hwid 0x%x ", erspan_hwid);
-+                          "erspan_hwid", "erspan_hwid %#llx ", erspan_hwid);
-       }
-       tnl_print_encap(tb,
---- a/ip/link_ip6tnl.c
-+++ b/ip/link_ip6tnl.c
-@@ -457,7 +457,7 @@ static void ip6tunnel_print_opt(struct l
-               if (fwmark) {
-                       print_0xhex(PRINT_ANY,
--                                  "fwmark", "fwmark 0x%x ", fwmark);
-+                                  "fwmark", "fwmark %#llx ", fwmark);
-               }
-       }
---- a/ip/link_iptnl.c
-+++ b/ip/link_iptnl.c
-@@ -418,7 +418,7 @@ static void iptunnel_print_opt(struct li
-               tos = rta_getattr_u8(tb[IFLA_IPTUN_TOS]);
-       if (tos) {
-               if (is_json_context() || tos != 1)
--                      print_0xhex(PRINT_ANY, "tos", "tos 0x%x ", tos);
-+                      print_0xhex(PRINT_ANY, "tos", "tos %#llx ", tos);
-               else
-                       print_string(PRINT_FP, NULL, "tos %s ", "inherit");
-       }
-@@ -476,7 +476,7 @@ static void iptunnel_print_opt(struct li
-               if (fwmark) {
-                       print_0xhex(PRINT_ANY,
--                                  "fwmark", "fwmark 0x%x ", fwmark);
-+                                  "fwmark", "fwmark %#llx ", fwmark);
-               }
-       }
---- a/ip/link_vti.c
-+++ b/ip/link_vti.c
-@@ -208,7 +208,7 @@ static void vti_print_opt(struct link_ut
-               if (fwmark) {
-                       print_0xhex(PRINT_ANY,
--                                  "fwmark", "fwmark 0x%x ", fwmark);
-+                                  "fwmark", "fwmark %#llx ", fwmark);
-               }
-       }
- }
---- a/ip/link_vti6.c
-+++ b/ip/link_vti6.c
-@@ -210,7 +210,7 @@ static void vti6_print_opt(struct link_u
-               if (fwmark) {
-                       print_0xhex(PRINT_ANY,
--                                  "fwmark", "fwmark 0x%x ", fwmark);
-+                                  "fwmark", "fwmark %#llx ", fwmark);
-               }
-       }
- }
---- a/tc/m_ife.c
-+++ b/tc/m_ife.c
-@@ -247,7 +247,7 @@ static int print_ife(struct action_util
-       if (tb[TCA_IFE_TYPE]) {
-               ife_type = rta_getattr_u16(tb[TCA_IFE_TYPE]);
-               has_optional = 1;
--              print_0xhex(PRINT_ANY, "type", "type 0x%X ", ife_type);
-+              print_0xhex(PRINT_ANY, "type", "type %#llX ", ife_type);
-       }
-       if (has_optional)
---- a/tc/q_htb.c
-+++ b/tc/q_htb.c
-@@ -332,7 +332,7 @@ static int htb_print_opt(struct qdisc_ut
-               if (RTA_PAYLOAD(tb[TCA_HTB_INIT])  < sizeof(*gopt)) return -1;
-               print_int(PRINT_ANY, "r2q", "r2q %d", gopt->rate2quantum);
--              print_0xhex(PRINT_ANY, "default", " default %x", gopt->defcls);
-+              print_0xhex(PRINT_ANY, "default", " default %#llx", gopt->defcls);
-               print_uint(PRINT_ANY, "direct_packets_stat",
-                          " direct_packets_stat %u", gopt->direct_pkts);
-               if (show_details) {
diff --git a/package/network/utils/iproute2/patches/001-tc-fix-undefined-XATTR_SIZE_MAX.patch b/package/network/utils/iproute2/patches/001-tc-fix-undefined-XATTR_SIZE_MAX.patch
new file mode 100644 (file)
index 0000000..6f28a28
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/tc/f_flower.c
++++ b/tc/f_flower.c
+@@ -17,6 +17,7 @@
+ #include <linux/if_arp.h>
+ #include <linux/if_ether.h>
+ #include <linux/ip.h>
++#include <linux/limits.h>
+ #include <linux/tc_act/tc_vlan.h>
+ #include <linux/mpls.h>
diff --git a/package/network/utils/iproute2/patches/002-tc-fix-xtables-incorrect-usage-of-LDFLAGS.patch b/package/network/utils/iproute2/patches/002-tc-fix-xtables-incorrect-usage-of-LDFLAGS.patch
deleted file mode 100644 (file)
index d598136..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From 6ddb36c3a9686df1cca2f4d06518395f1eb9d5cc Mon Sep 17 00:00:00 2001
-From: Syrone Wong <wong.syrone@gmail.com>
-Date: Wed, 12 Dec 2018 19:35:08 +0800
-Subject: [PATCH] tc: fix xtables incorrect usage of LDFLAGS
-
-The incorrect setting of LDFLAGS causes error below:
-
-> em_ipt.o: In function `em_ipt_print_epot':
-> em_ipt.c:(.text.em_ipt_print_epot+0x2e): undefined reference to
-> `xtables_init_all'
-
-em_ipt.c gets involved when TC_CONFIG_XT=y, which requires xtables,
-while tc/Makefile doesn't pass flags correctly. It adds '-lxtables'
-to LDFLAGS instead of LDLIBS.
-
-Fixes: dd296215 ("tc: add em_ipt ematch for calling xtables matches from tc matching context")
-
-Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
-Acked-by: Eyal Birger <eyal.birger@gmail.com>
-Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
----
- tc/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/tc/Makefile
-+++ b/tc/Makefile
-@@ -170,7 +170,7 @@ em_ipset.o: CFLAGS += $$($(PKG_CONFIG) x
- em_ipt.o: CFLAGS += $$($(PKG_CONFIG) xtables --cflags)
- ifeq ($(TC_CONFIG_XT),y)
--  LDFLAGS += $$($(PKG_CONFIG) xtables --libs)
-+  LDLIBS += $$($(PKG_CONFIG) xtables --libs)
- endif
- %.yacc.c: %.y
diff --git a/package/network/utils/iproute2/patches/100-config.patch b/package/network/utils/iproute2/patches/100-config.patch
deleted file mode 100644 (file)
index 7f23cfc..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
---- /dev/null
-+++ b/Config
-@@ -0,0 +1,4 @@
-+# Fixed config to disable ATM support even if present on host system
-+IP_CONFIG_SETNS:=y
-+TC_CONFIG_ATM:=n
-+TC_CONFIG_XT:=y
diff --git a/package/network/utils/iproute2/patches/100-configure.patch b/package/network/utils/iproute2/patches/100-configure.patch
new file mode 100644 (file)
index 0000000..3cdf071
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/configure
++++ b/configure
+@@ -32,7 +32,8 @@ int main(int argc, char **argv) {
+ }
+ EOF
+-    if $CC -I$INCLUDE -o $TMPDIR/atmtest $TMPDIR/atmtest.c -latm >/dev/null 2>&1; then
++# libreCMC: disable ATM support even if present on host system
++    if [ 1 -eq 0 ]; then
+       echo "TC_CONFIG_ATM:=y" >>$CONFIG
+       echo yes
+     else
diff --git a/package/network/utils/iproute2/patches/115-add-config-xtlibdir.patch b/package/network/utils/iproute2/patches/115-add-config-xtlibdir.patch
new file mode 100644 (file)
index 0000000..6795be7
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/tc/Makefile
++++ b/tc/Makefile
+@@ -120,6 +120,9 @@ CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PR
+ ifneq ($(IPT_LIB_DIR),)
+       CFLAGS += -DIPT_LIB_DIR=\"$(IPT_LIB_DIR)\"
+ endif
++ifneq ($(XT_LIB_DIR),)
++      CFLAGS += -DXT_LIB_DIR=\"$(XT_LIB_DIR)\"
++endif
+ YACC := bison
+ LEX := flex
index 697a6471a7ac500f403ec76c43d690a7eafe0ffa..505f0221e3ae11bc05cf081d9cc61623c8cf94ae 100644 (file)
@@ -1,11 +1,11 @@
 --- a/configure
 +++ b/configure
-@@ -281,7 +281,7 @@ check_selinux()
+@@ -254,7 +254,7 @@ check_selinux()
  
  check_mnl()
  {
--      if ${PKG_CONFIG} libmnl --exists
-+      if [ "${HAVE_MNL}" = "y" ] && ${PKG_CONFIG} libmnl --exists
-       then
+-      if ${PKG_CONFIG} libmnl --exists; then
++      if [ "${HAVE_MNL}" = "y" ] && ${PKG_CONFIG} libmnl --exists; then
                echo "HAVE_MNL:=y" >>$CONFIG
                echo "yes"
diff --git a/package/network/utils/iproute2/patches/150-extra-ccopts.patch b/package/network/utils/iproute2/patches/150-extra-ccopts.patch
deleted file mode 100644 (file)
index d036ba7..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -54,7 +54,7 @@ HOSTCC ?= $(CC)
- DEFINES += -D_GNU_SOURCE
- # Turn on transparent support for LFS
- DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
--CCOPTS = -O2
-+CCOPTS = -O2 $(EXTRA_CCOPTS)
- WFLAGS := -Wall -Wstrict-prototypes  -Wmissing-prototypes
- WFLAGS += -Wmissing-declarations -Wold-style-definition -Wformat=2
index dc0547a25697e6db3f028a2dc0b4811c299f7d50..91240b6d2f4aa6c042f10775806157bde17bba94 100644 (file)
@@ -89,7 +89,7 @@
        { "help",       do_help },
 --- a/lib/utils.c
 +++ b/lib/utils.c
-@@ -1012,6 +1012,7 @@ const char *rt_addr_n2a_r(int af, int le
+@@ -1000,6 +1000,7 @@ const char *rt_addr_n2a_r(int af, int le
                return inet_ntop(af, addr, buf, buflen);
        case AF_MPLS:
                return mpls_ntop(af, addr, buf, buflen);
@@ -97,7 +97,7 @@
        case AF_IPX:
                return ipx_ntop(af, addr, buf, buflen);
        case AF_DECnet:
-@@ -1021,6 +1022,7 @@ const char *rt_addr_n2a_r(int af, int le
+@@ -1009,6 +1010,7 @@ const char *rt_addr_n2a_r(int af, int le
                memcpy(dna.a_addr, addr, 2);
                return dnet_ntop(af, &dna, buf, buflen);
        }
index 1c44616253c85cd2138182b897e7400e6c6d6e7d..31aacffba82231ba39c9a3c5097455c2ae28c930 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure
 +++ b/configure
-@@ -257,8 +257,9 @@ check_elf()
+@@ -231,8 +231,9 @@ check_elf()
        echo "HAVE_ELF:=y" >>$CONFIG
        echo "yes"
  
@@ -47,7 +47,7 @@
 +      rm -f $(NLOBJ) $(UTILOBJ) $(ELFOBJ) $(ADDLIB) libnetlink.a libutil.a libutil-elf.a
 --- a/tc/Makefile
 +++ b/tc/Makefile
-@@ -132,8 +132,8 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc
+@@ -133,8 +133,8 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc
  
  all: tc $(TCSO)
  
diff --git a/package/network/utils/iproute2/patches/200-drop_libbsd_dependency.patch b/package/network/utils/iproute2/patches/200-drop_libbsd_dependency.patch
new file mode 100644 (file)
index 0000000..f6ec945
--- /dev/null
@@ -0,0 +1,19 @@
+--- a/configure
++++ b/configure
+@@ -299,14 +299,8 @@ EOF
+     if $CC -I$INCLUDE -o $TMPDIR/strtest $TMPDIR/strtest.c >/dev/null 2>&1; then
+       echo "no"
+     else
+-      if ${PKG_CONFIG} libbsd --exists; then
+-              echo 'CFLAGS += -DHAVE_LIBBSD' `${PKG_CONFIG} libbsd --cflags` >>$CONFIG
+-              echo 'LDLIBS +=' `${PKG_CONFIG} libbsd --libs` >> $CONFIG
+-              echo "no"
+-      else
+-              echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG
+-              echo "yes"
+-      fi
++      echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG
++      echo "yes"
+     fi
+     rm -f $TMPDIR/strtest.c $TMPDIR/strtest
+ }
index 7efbc401534306c745eb694c2e59562b492b140c..37cff3aca4b48397766e096a7517c6af0fa30111 100644 (file)
@@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=ipset
 PKG_VERSION:=7.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://ipset.netfilter.org
@@ -39,6 +39,7 @@ endef
 
 define Package/libipset
 $(call Package/ipset/Default)
+  ABI_VERSION:=13
 endef
 
 CONFIGURE_ARGS += \
@@ -62,7 +63,7 @@ endef
 
 define Package/libipset/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libipset*.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libipset*.so.* $(1)/usr/lib/
 endef
 
 $(eval $(call BuildPackage,ipset))
index 6c42774ef41bec69b3b3400249d4844115e89c25..d60e25cdc7ea628cbc8676db252b71d7b1d0efd6 100644 (file)
@@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=iptables
 PKG_VERSION:=1.8.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://git.netfilter.org/iptables
@@ -493,7 +493,7 @@ $(call Package/iptables/Default)
   SECTION:=libs
   CATEGORY:=Libraries
   DEPENDS:=+libip4tc +libip6tc +libxtables
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=0
   TITLE:=IPv4/IPv6 firewall - shared libiptc library (nf compatibility stub)
 endef
 
@@ -502,7 +502,7 @@ $(call Package/iptables/Default)
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=IPv4 firewall - shared libiptc library
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=0
   DEPENDS:=+libxtables
 endef
 
@@ -511,7 +511,7 @@ $(call Package/iptables/Default)
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=IPv6 firewall - shared libiptc library
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=0
   DEPENDS:=+libxtables
 endef
 
@@ -520,7 +520,7 @@ define Package/libxtables
  SECTION:=libs
  CATEGORY:=Libraries
  TITLE:=IPv4/IPv6 firewall - shared xtables library
- ABI_VERSION:=$(PKG_VERSION)
+ ABI_VERSION:=12
  DEPENDS:= \
        +IPTABLES_CONNLABEL:libnetfilter-conntrack \
        +IPTABLES_NFTABLES:libnftnl
@@ -531,7 +531,7 @@ define Package/libxtables-nft
  SECTION:=libs
  CATEGORY:=Libraries
  TITLE:=IPv4/IPv6 firewall - shared xtables nft library
- ABI_VERSION:=$(PKG_VERSION)
+ ABI_VERSION:=12
  DEPENDS:=libxtables
 endef
 
@@ -632,24 +632,24 @@ endef
 
 define Package/libiptc/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libiptc.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libiptc.so.* $(1)/usr/lib/
 endef
 
 define Package/libip4tc/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip4tc.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip4tc.so.* $(1)/usr/lib/
        $(CP) $(PKG_BUILD_DIR)/extensions/libiptext4.so $(1)/usr/lib/
 endef
 
 define Package/libip6tc/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip6tc.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip6tc.so.* $(1)/usr/lib/
        $(CP) $(PKG_BUILD_DIR)/extensions/libiptext6.so $(1)/usr/lib/
 endef
 
 define Package/libxtables/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxtables.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxtables.so.* $(1)/usr/lib/
        $(CP) $(PKG_BUILD_DIR)/extensions/libiptext.so $(1)/usr/lib/
 endef
 
index 344af07afd4c23c968d26b8676507bdb6fa7f9f7..03ad7d2031e4a9f1ac7edef2d2f53a5759859946 100644 (file)
@@ -144,12 +144,12 @@ endef
 
 define Package/iputils-ping/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/ping $(1)/usr/bin/
+       $(INSTALL_SUID) $(PKG_BUILD_DIR)/ping $(1)/usr/bin/
 endef
 
 define Package/iputils-ping6/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/ping6 $(1)/usr/bin/
+       $(INSTALL_SUID) $(PKG_BUILD_DIR)/ping6 $(1)/usr/bin/
 endef
 
 define Package/iputils-tftpd/install
@@ -169,7 +169,7 @@ endef
 
 define Package/iputils-traceroute6/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/traceroute6 $(1)/usr/bin/
+       $(INSTALL_SUID) $(PKG_BUILD_DIR)/traceroute6 $(1)/usr/bin/
 endef
 
 $(eval $(call BuildPackage,iputils-arping))
index ef39ee6724f54c6aa6125dcb5efc84e673d6cfe0..58cf8319f52a3d21560a44a455d64da7f30b20de 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=iw
-PKG_VERSION:=4.14
+PKG_VERSION:=5.0.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/software/network/iw
-PKG_HASH:=f01671c0074bfdec082a884057edba1b9efd35c89eda554638496f03b769ad89
+PKG_HASH:=1e38ea794a223525b2ea7fe78fd14f2a56121e62e21ba5f9dbe8c494b35b5c0d
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/iw-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
@@ -47,8 +47,7 @@ TARGET_CPPFLAGS:= \
        -I$(STAGING_DIR)/usr/include/libnl-tiny \
        $(TARGET_CPPFLAGS) \
        -DCONFIG_LIBNL20 \
-       -D_GNU_SOURCE \
-       -flto
+       -D_GNU_SOURCE
 
 ifeq ($(BUILD_VARIANT),full)
   TARGET_CPPFLAGS += -DIW_FULL
@@ -57,7 +56,7 @@ endif
 
 MAKE_FLAGS += \
        CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -ffunction-sections -fdata-sections" \
-       LDFLAGS="$(TARGET_LDFLAGS) -Wl,--gc-sections -flto" \
+       LDFLAGS="$(TARGET_LDFLAGS) -Wl,--gc-sections" \
        NL1FOUND="" NL2FOUND=Y \
        NLLIBNAME="libnl-tiny" \
        LIBS="-lm -lnl-tiny" \
index 4fd37579a9cbd2e534b5a42a9175319f172c45a8..e1d318f5299b7b2d98e17d5ee9bf057b4d39c97e 100644 (file)
-diff --git a/nl80211.h b/nl80211.h
-index c587a61..255a971 100644
 --- a/nl80211.h
 +++ b/nl80211.h
-@@ -11,6 +11,7 @@
-  * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
-  * Copyright 2008 Colin McCabe <colin@cozybit.com>
-  * Copyright 2015-2017        Intel Deutschland GmbH
-+ * Copyright (C) 2018 Intel Corporation
+@@ -2299,6 +2299,9 @@ enum nl80211_commands {
+  *    This is also used for capability advertisement in the wiphy information,
+  *    with the appropriate sub-attributes.
   *
-  * Permission to use, copy, modify, and/or distribute this software for any
-  * purpose with or without fee is hereby granted, provided that the above
-@@ -203,7 +204,8 @@
-  * FILS shared key authentication offload should be able to construct the
-  * authentication and association frames for FILS shared key authentication and
-  * eventually do a key derivation as per IEEE 802.11ai. The below additional
-- * parameters should be given to driver in %NL80211_CMD_CONNECT.
-+ * parameters should be given to driver in %NL80211_CMD_CONNECT and/or in
-+ * %NL80211_CMD_UPDATE_CONNECT_PARAMS.
-  *    %NL80211_ATTR_FILS_ERP_USERNAME - used to construct keyname_nai
-  *    %NL80211_ATTR_FILS_ERP_REALM - used to construct keyname_nai
-  *    %NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM - used to construct erp message
-@@ -214,7 +216,8 @@
-  * as specified in IETF RFC 6696.
-  *
-  * When FILS shared key authentication is completed, driver needs to provide the
-- * below additional parameters to userspace.
-+ * below additional parameters to userspace, which can be either after setting
-+ * up a connection or after roaming.
-  *    %NL80211_ATTR_FILS_KEK - used for key renewal
-  *    %NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM - used in further EAP-RP exchanges
-  *    %NL80211_ATTR_PMKID - used to identify the PMKSA used/generated
-@@ -542,7 +545,8 @@
-  *    IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP,
-  *    %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT,
-  *    %NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
-- *    %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, %NL80211_ATTR_MAC_HINT, and
-+ *    %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT,
-+ *    %NL80211_ATTR_CONTROL_PORT_OVER_NL80211, %NL80211_ATTR_MAC_HINT, and
-  *    %NL80211_ATTR_WIPHY_FREQ_HINT.
-  *    If included, %NL80211_ATTR_MAC and %NL80211_ATTR_WIPHY_FREQ are
-  *    restrictions on BSS selection, i.e., they effectively prevent roaming
-@@ -977,21 +981,58 @@
-  *    only the %NL80211_ATTR_IE data is used and updated with this command.
-  *
-  * @NL80211_CMD_SET_PMK: For offloaded 4-Way handshake, set the PMK or PMK-R0
-- *    for the given authenticator address (specified with &NL80211_ATTR_MAC).
-- *    When &NL80211_ATTR_PMKR0_NAME is set, &NL80211_ATTR_PMK specifies the
-+ *    for the given authenticator address (specified with %NL80211_ATTR_MAC).
-+ *    When %NL80211_ATTR_PMKR0_NAME is set, %NL80211_ATTR_PMK specifies the
-  *    PMK-R0, otherwise it specifies the PMK.
-  * @NL80211_CMD_DEL_PMK: For offloaded 4-Way handshake, delete the previously
-  *    configured PMK for the authenticator address identified by
-- *    &NL80211_ATTR_MAC.
-+ *    %NL80211_ATTR_MAC.
-  * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates that the 4 way
-  *    handshake was completed successfully by the driver. The BSSID is
-- *    specified with &NL80211_ATTR_MAC. Drivers that support 4 way handshake
-+ *    specified with %NL80211_ATTR_MAC. Drivers that support 4 way handshake
-  *    offload should send this event after indicating 802.11 association with
-- *    &NL80211_CMD_CONNECT or &NL80211_CMD_ROAM. If the 4 way handshake failed
-- *    &NL80211_CMD_DISCONNECT should be indicated instead.
-+ *    %NL80211_CMD_CONNECT or %NL80211_CMD_ROAM. If the 4 way handshake failed
-+ *    %NL80211_CMD_DISCONNECT should be indicated instead.
-+ *
-+ * @NL80211_CMD_CONTROL_PORT_FRAME: Control Port (e.g. PAE) frame TX request
-+ *    and RX notification.  This command is used both as a request to transmit
-+ *    a control port frame and as a notification that a control port frame
-+ *    has been received. %NL80211_ATTR_FRAME is used to specify the
-+ *    frame contents.  The frame is the raw EAPoL data, without ethernet or
-+ *    802.11 headers.
-+ *    When used as an event indication %NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
-+ *    %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT and %NL80211_ATTR_MAC are added
-+ *    indicating the protocol type of the received frame; whether the frame
-+ *    was received unencrypted and the MAC address of the peer respectively.
-  *
-  * @NL80211_CMD_RELOAD_REGDB: Request that the regdb firmware file is reloaded.
-  *
-+ * @NL80211_CMD_EXTERNAL_AUTH: This interface is exclusively defined for host
-+ *    drivers that do not define separate commands for authentication and
-+ *    association, but rely on user space for the authentication to happen.
-+ *    This interface acts both as the event request (driver to user space)
-+ *    to trigger the authentication and command response (userspace to
-+ *    driver) to indicate the authentication status.
-+ *
-+ *    User space uses the %NL80211_CMD_CONNECT command to the host driver to
-+ *    trigger a connection. The host driver selects a BSS and further uses
-+ *    this interface to offload only the authentication part to the user
-+ *    space. Authentication frames are passed between the driver and user
-+ *    space through the %NL80211_CMD_FRAME interface. Host driver proceeds
-+ *    further with the association after getting successful authentication
-+ *    status. User space indicates the authentication status through
-+ *    %NL80211_ATTR_STATUS_CODE attribute in %NL80211_CMD_EXTERNAL_AUTH
-+ *    command interface.
-+ *
-+ *    Host driver reports this status on an authentication failure to the
-+ *    user space through the connect result as the user space would have
-+ *    initiated the connection through the connect request.
-+ *
-+ * @NL80211_CMD_STA_OPMODE_CHANGED: An event that notify station's
-+ *    ht opmode or vht opmode changes using any of %NL80211_ATTR_SMPS_MODE,
-+ *    %NL80211_ATTR_CHANNEL_WIDTH,%NL80211_ATTR_NSS attributes with its
-+ *    address(specified in %NL80211_ATTR_MAC).
-+ *
-  * @NL80211_CMD_MAX: highest used command number
-  * @__NL80211_CMD_AFTER_LAST: internal use
-  */
-@@ -1198,6 +1239,12 @@ enum nl80211_commands {
-       NL80211_CMD_RELOAD_REGDB,
-+      NL80211_CMD_EXTERNAL_AUTH,
-+
-+      NL80211_CMD_STA_OPMODE_CHANGED,
-+
-+      NL80211_CMD_CONTROL_PORT_FRAME,
-+
-       /* add new commands above here */
-       /* used to define NL80211_CMD_MAX below */
-@@ -1445,6 +1492,15 @@ enum nl80211_commands {
-  * @NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT: When included along with
-  *    %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, indicates that the custom
-  *    ethertype frames used for key negotiation must not be encrypted.
-+ * @NL80211_ATTR_CONTROL_PORT_OVER_NL80211: A flag indicating whether control
-+ *    port frames (e.g. of type given in %NL80211_ATTR_CONTROL_PORT_ETHERTYPE)
-+ *    will be sent directly to the network interface or sent via the NL80211
-+ *    socket.  If this attribute is missing, then legacy behavior of sending
-+ *    control port frames directly to the network interface is used.  If the
-+ *    flag is included, then control port frames are sent over NL80211 instead
-+ *    using %CMD_CONTROL_PORT_FRAME.  If control port routing over NL80211 is
-+ *    to be used then userspace must also use the %NL80211_ATTR_SOCKET_OWNER
-+ *    flag.
-  *
-  * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver.
-  *    We recommend using nested, driver-specific attributes within this.
-@@ -1932,6 +1988,12 @@ enum nl80211_commands {
-  *    multicast group.
-  *    If set during %NL80211_CMD_ASSOCIATE or %NL80211_CMD_CONNECT the
-  *    station will deauthenticate when the socket is closed.
-+ *    If set during %NL80211_CMD_JOIN_IBSS the IBSS will be automatically
-+ *    torn down when the socket is closed.
-+ *    If set during %NL80211_CMD_JOIN_MESH the mesh setup will be
-+ *    automatically torn down when the socket is closed.
-+ *    If set during %NL80211_CMD_START_AP the AP will be automatically
-+ *    disabled when the socket is closed.
-  *
-  * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is
-  *    the TDLS link initiator.
-@@ -2153,6 +2215,35 @@ enum nl80211_commands {
-  * @NL80211_ATTR_PMKR0_NAME: PMK-R0 Name for offloaded FT.
-  * @NL80211_ATTR_PORT_AUTHORIZED: (reserved)
-  *
-+ * @NL80211_ATTR_EXTERNAL_AUTH_ACTION: Identify the requested external
-+ *     authentication operation (u32 attribute with an
-+ *     &enum nl80211_external_auth_action value). This is used with the
-+ *     %NL80211_CMD_EXTERNAL_AUTH request event.
-+ * @NL80211_ATTR_EXTERNAL_AUTH_SUPPORT: Flag attribute indicating that the user
-+ *     space supports external authentication. This attribute shall be used
-+ *     only with %NL80211_CMD_CONNECT request. The driver may offload
-+ *     authentication processing to user space if this capability is indicated
-+ *     in NL80211_CMD_CONNECT requests from the user space.
-+ *
-+ * @NL80211_ATTR_NSS: Station's New/updated  RX_NSS value notified using this
-+ *    u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED.
-+ *
-+ * @NL80211_ATTR_TXQ_STATS: TXQ statistics (nested attribute, see &enum
-+ *      nl80211_txq_stats)
-+ * @NL80211_ATTR_TXQ_LIMIT: Total packet limit for the TXQ queues for this phy.
-+ *      The smaller of this and the memory limit is enforced.
-+ * @NL80211_ATTR_TXQ_MEMORY_LIMIT: Total memory memory limit (in bytes) for the
-+ *      TXQ queues for this phy. The smaller of this and the packet limit is
-+ *      enforced.
-+ * @NL80211_ATTR_TXQ_QUANTUM: TXQ scheduler quantum (bytes). Number of bytes
-+ *      a flow is assigned on each round of the DRR scheduler.
-+ * @NL80211_ATTR_HE_CAPABILITY: HE Capability information element (from
-+ *    association request when used with NL80211_CMD_NEW_STATION). Can be set
-+ *    only if %NL80211_STA_FLAG_WME is set.
-+ *
 + * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
 + *    transmit power to stay within regulatory limits. u32, dBi.
 + *
   * @NUM_NL80211_ATTR: total number of nl80211_attrs available
   * @NL80211_ATTR_MAX: highest attribute number currently defined
   * @__NL80211_ATTR_AFTER_LAST: internal use
-@@ -2579,6 +2670,23 @@ enum nl80211_attrs {
-       NL80211_ATTR_PMKR0_NAME,
-       NL80211_ATTR_PORT_AUTHORIZED,
+@@ -2748,6 +2751,8 @@ enum nl80211_attrs {
+       NL80211_ATTR_PEER_MEASUREMENTS,
  
-+      NL80211_ATTR_EXTERNAL_AUTH_ACTION,
-+      NL80211_ATTR_EXTERNAL_AUTH_SUPPORT,
-+
-+      NL80211_ATTR_NSS,
-+      NL80211_ATTR_ACK_SIGNAL,
-+
-+      NL80211_ATTR_CONTROL_PORT_OVER_NL80211,
-+
-+      NL80211_ATTR_TXQ_STATS,
-+      NL80211_ATTR_TXQ_LIMIT,
-+      NL80211_ATTR_TXQ_MEMORY_LIMIT,
-+      NL80211_ATTR_TXQ_QUANTUM,
-+
-+      NL80211_ATTR_HE_CAPABILITY,
-+
 +      NL80211_ATTR_WIPHY_ANTENNA_GAIN,
 +
        /* add attributes here, update the policy in nl80211.c */
  
        __NL80211_ATTR_AFTER_LAST,
-@@ -2618,6 +2726,8 @@ enum nl80211_attrs {
- #define NL80211_ATTR_KEYS NL80211_ATTR_KEYS
- #define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS
-+#define NL80211_WIPHY_NAME_MAXLEN             64
-+
- #define NL80211_MAX_SUPP_RATES                        32
- #define NL80211_MAX_SUPP_HT_RATES             77
- #define NL80211_MAX_SUPP_REG_RULES            64
-@@ -2626,7 +2736,8 @@ enum nl80211_attrs {
- #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY   24
- #define NL80211_HT_CAPABILITY_LEN             26
- #define NL80211_VHT_CAPABILITY_LEN            12
--
-+#define NL80211_HE_MIN_CAPABILITY_LEN           16
-+#define NL80211_HE_MAX_CAPABILITY_LEN           51
- #define NL80211_MAX_NR_CIPHER_SUITES          5
- #define NL80211_MAX_NR_AKM_SUITES             2
-@@ -2754,6 +2865,38 @@ struct nl80211_sta_flag_update {
- } __attribute__((packed));
- /**
-+ * enum nl80211_he_gi - HE guard interval
-+ * @NL80211_RATE_INFO_HE_GI_0_8: 0.8 usec
-+ * @NL80211_RATE_INFO_HE_GI_1_6: 1.6 usec
-+ * @NL80211_RATE_INFO_HE_GI_3_2: 3.2 usec
-+ */
-+enum nl80211_he_gi {
-+      NL80211_RATE_INFO_HE_GI_0_8,
-+      NL80211_RATE_INFO_HE_GI_1_6,
-+      NL80211_RATE_INFO_HE_GI_3_2,
-+};
-+
-+/**
-+ * enum nl80211_he_ru_alloc - HE RU allocation values
-+ * @NL80211_RATE_INFO_HE_RU_ALLOC_26: 26-tone RU allocation
-+ * @NL80211_RATE_INFO_HE_RU_ALLOC_52: 52-tone RU allocation
-+ * @NL80211_RATE_INFO_HE_RU_ALLOC_106: 106-tone RU allocation
-+ * @NL80211_RATE_INFO_HE_RU_ALLOC_242: 242-tone RU allocation
-+ * @NL80211_RATE_INFO_HE_RU_ALLOC_484: 484-tone RU allocation
-+ * @NL80211_RATE_INFO_HE_RU_ALLOC_996: 996-tone RU allocation
-+ * @NL80211_RATE_INFO_HE_RU_ALLOC_2x996: 2x996-tone RU allocation
-+ */
-+enum nl80211_he_ru_alloc {
-+      NL80211_RATE_INFO_HE_RU_ALLOC_26,
-+      NL80211_RATE_INFO_HE_RU_ALLOC_52,
-+      NL80211_RATE_INFO_HE_RU_ALLOC_106,
-+      NL80211_RATE_INFO_HE_RU_ALLOC_242,
-+      NL80211_RATE_INFO_HE_RU_ALLOC_484,
-+      NL80211_RATE_INFO_HE_RU_ALLOC_996,
-+      NL80211_RATE_INFO_HE_RU_ALLOC_2x996,
-+};
-+
-+/**
-  * enum nl80211_rate_info - bitrate information
-  *
-  * These attribute types are used with %NL80211_STA_INFO_TXRATE
-@@ -2785,6 +2928,13 @@ struct nl80211_sta_flag_update {
-  * @NL80211_RATE_INFO_5_MHZ_WIDTH: 5 MHz width - note that this is
-  *    a legacy rate and will be reported as the actual bitrate, i.e.
-  *    a quarter of the base (20 MHz) rate
-+ * @NL80211_RATE_INFO_HE_MCS: HE MCS index (u8, 0-11)
-+ * @NL80211_RATE_INFO_HE_NSS: HE NSS value (u8, 1-8)
-+ * @NL80211_RATE_INFO_HE_GI: HE guard interval identifier
-+ *    (u8, see &enum nl80211_he_gi)
-+ * @NL80211_RATE_INFO_HE_DCM: HE DCM value (u8, 0/1)
-+ * @NL80211_RATE_INFO_RU_ALLOC: HE RU allocation, if not present then
-+ *    non-OFDMA was used (u8, see &enum nl80211_he_ru_alloc)
-  * @__NL80211_RATE_INFO_AFTER_LAST: internal use
-  */
- enum nl80211_rate_info {
-@@ -2801,6 +2951,11 @@ enum nl80211_rate_info {
-       NL80211_RATE_INFO_160_MHZ_WIDTH,
-       NL80211_RATE_INFO_10_MHZ_WIDTH,
-       NL80211_RATE_INFO_5_MHZ_WIDTH,
-+      NL80211_RATE_INFO_HE_MCS,
-+      NL80211_RATE_INFO_HE_NSS,
-+      NL80211_RATE_INFO_HE_GI,
-+      NL80211_RATE_INFO_HE_DCM,
-+      NL80211_RATE_INFO_HE_RU_ALLOC,
-       /* keep last */
-       __NL80211_RATE_INFO_AFTER_LAST,
-@@ -2899,6 +3054,9 @@ enum nl80211_sta_bss_param {
-  * @NL80211_STA_INFO_RX_DURATION: aggregate PPDU duration for all frames
-  *    received from the station (u64, usec)
-  * @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment
-+ * @NL80211_STA_INFO_ACK_SIGNAL: signal strength of the last ACK frame(u8, dBm)
-+ * @NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG: avg signal strength of (data)
-+ *    ACK frame (s8, dBm)
-  * @__NL80211_STA_INFO_AFTER_LAST: internal
-  * @NL80211_STA_INFO_MAX: highest possible station info attribute
-  */
-@@ -2937,6 +3095,8 @@ enum nl80211_sta_info {
-       NL80211_STA_INFO_TID_STATS,
-       NL80211_STA_INFO_RX_DURATION,
-       NL80211_STA_INFO_PAD,
-+      NL80211_STA_INFO_ACK_SIGNAL,
-+      NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG,
-       /* keep last */
-       __NL80211_STA_INFO_AFTER_LAST,
-@@ -2954,6 +3114,7 @@ enum nl80211_sta_info {
-  * @NL80211_TID_STATS_TX_MSDU_FAILED: number of failed transmitted
-  *    MSDUs (u64)
-  * @NL80211_TID_STATS_PAD: attribute used for padding for 64-bit alignment
-+ * @NL80211_TID_STATS_TXQ_STATS: TXQ stats (nested attribute)
-  * @NUM_NL80211_TID_STATS: number of attributes here
-  * @NL80211_TID_STATS_MAX: highest numbered attribute here
-  */
-@@ -2964,6 +3125,7 @@ enum nl80211_tid_stats {
-       NL80211_TID_STATS_TX_MSDU_RETRIES,
-       NL80211_TID_STATS_TX_MSDU_FAILED,
-       NL80211_TID_STATS_PAD,
-+      NL80211_TID_STATS_TXQ_STATS,
-       /* keep last */
-       NUM_NL80211_TID_STATS,
-@@ -2971,6 +3133,44 @@ enum nl80211_tid_stats {
- };
- /**
-+ * enum nl80211_txq_stats - per TXQ statistics attributes
-+ * @__NL80211_TXQ_STATS_INVALID: attribute number 0 is reserved
-+ * @NUM_NL80211_TXQ_STATS: number of attributes here
-+ * @NL80211_TXQ_STATS_BACKLOG_BYTES: number of bytes currently backlogged
-+ * @NL80211_TXQ_STATS_BACKLOG_PACKETS: number of packets currently
-+ *      backlogged
-+ * @NL80211_TXQ_STATS_FLOWS: total number of new flows seen
-+ * @NL80211_TXQ_STATS_DROPS: total number of packet drops
-+ * @NL80211_TXQ_STATS_ECN_MARKS: total number of packet ECN marks
-+ * @NL80211_TXQ_STATS_OVERLIMIT: number of drops due to queue space overflow
-+ * @NL80211_TXQ_STATS_OVERMEMORY: number of drops due to memory limit overflow
-+ *      (only for per-phy stats)
-+ * @NL80211_TXQ_STATS_COLLISIONS: number of hash collisions
-+ * @NL80211_TXQ_STATS_TX_BYTES: total number of bytes dequeued from TXQ
-+ * @NL80211_TXQ_STATS_TX_PACKETS: total number of packets dequeued from TXQ
-+ * @NL80211_TXQ_STATS_MAX_FLOWS: number of flow buckets for PHY
-+ * @NL80211_TXQ_STATS_MAX: highest numbered attribute here
-+ */
-+enum nl80211_txq_stats {
-+      __NL80211_TXQ_STATS_INVALID,
-+      NL80211_TXQ_STATS_BACKLOG_BYTES,
-+      NL80211_TXQ_STATS_BACKLOG_PACKETS,
-+      NL80211_TXQ_STATS_FLOWS,
-+      NL80211_TXQ_STATS_DROPS,
-+      NL80211_TXQ_STATS_ECN_MARKS,
-+      NL80211_TXQ_STATS_OVERLIMIT,
-+      NL80211_TXQ_STATS_OVERMEMORY,
-+      NL80211_TXQ_STATS_COLLISIONS,
-+      NL80211_TXQ_STATS_TX_BYTES,
-+      NL80211_TXQ_STATS_TX_PACKETS,
-+      NL80211_TXQ_STATS_MAX_FLOWS,
-+
-+      /* keep last */
-+      NUM_NL80211_TXQ_STATS,
-+      NL80211_TXQ_STATS_MAX = NUM_NL80211_TXQ_STATS - 1
-+};
-+
-+/**
-  * enum nl80211_mpath_flags - nl80211 mesh path flags
-  *
-  * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active
-@@ -3022,6 +3222,38 @@ enum nl80211_mpath_info {
- };
- /**
-+ * enum nl80211_band_iftype_attr - Interface type data attributes
-+ *
-+ * @__NL80211_BAND_IFTYPE_ATTR_INVALID: attribute number 0 is reserved
-+ * @NL80211_BAND_IFTYPE_ATTR_IFTYPES: nested attribute containing a flag attribute
-+ *     for each interface type that supports the band data
-+ * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC: HE MAC capabilities as in HE
-+ *     capabilities IE
-+ * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY: HE PHY capabilities as in HE
-+ *     capabilities IE
-+ * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET: HE supported NSS/MCS as in HE
-+ *     capabilities IE
-+ * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE: HE PPE thresholds information as
-+ *     defined in HE capabilities IE
-+ * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently
-+ *     defined
-+ * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
-+ */
-+enum nl80211_band_iftype_attr {
-+      __NL80211_BAND_IFTYPE_ATTR_INVALID,
-+
-+      NL80211_BAND_IFTYPE_ATTR_IFTYPES,
-+      NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC,
-+      NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY,
-+      NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
-+      NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
-+
-+      /* keep last */
-+      __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
-+      NL80211_BAND_IFTYPE_ATTR_MAX = __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST - 1
-+};
-+
-+/**
-  * enum nl80211_band_attr - band attributes
-  * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved
-  * @NL80211_BAND_ATTR_FREQS: supported frequencies in this band,
-@@ -3036,6 +3268,8 @@ enum nl80211_mpath_info {
-  * @NL80211_BAND_ATTR_VHT_MCS_SET: 32-byte attribute containing the MCS set as
-  *    defined in 802.11ac
-  * @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE
-+ * @NL80211_BAND_ATTR_IFTYPE_DATA: nested array attribute, with each entry using
-+ *    attributes from &enum nl80211_band_iftype_attr
-  * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined
-  * @__NL80211_BAND_ATTR_AFTER_LAST: internal use
-  */
-@@ -3051,6 +3285,7 @@ enum nl80211_band_attr {
-       NL80211_BAND_ATTR_VHT_MCS_SET,
-       NL80211_BAND_ATTR_VHT_CAPA,
-+      NL80211_BAND_ATTR_IFTYPE_DATA,
-       /* keep last */
-       __NL80211_BAND_ATTR_AFTER_LAST,
-@@ -3060,6 +3295,29 @@ enum nl80211_band_attr {
- #define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA
- /**
-+ * enum nl80211_wmm_rule - regulatory wmm rule
-+ *
-+ * @__NL80211_WMMR_INVALID: attribute number 0 is reserved
-+ * @NL80211_WMMR_CW_MIN: Minimum contention window slot.
-+ * @NL80211_WMMR_CW_MAX: Maximum contention window slot.
-+ * @NL80211_WMMR_AIFSN: Arbitration Inter Frame Space.
-+ * @NL80211_WMMR_TXOP: Maximum allowed tx operation time.
-+ * @nl80211_WMMR_MAX: highest possible wmm rule.
-+ * @__NL80211_WMMR_LAST: Internal use.
-+ */
-+enum nl80211_wmm_rule {
-+      __NL80211_WMMR_INVALID,
-+      NL80211_WMMR_CW_MIN,
-+      NL80211_WMMR_CW_MAX,
-+      NL80211_WMMR_AIFSN,
-+      NL80211_WMMR_TXOP,
-+
-+      /* keep last */
-+      __NL80211_WMMR_LAST,
-+      NL80211_WMMR_MAX = __NL80211_WMMR_LAST - 1
-+};
-+
-+/**
-  * enum nl80211_frequency_attr - frequency attributes
-  * @__NL80211_FREQUENCY_ATTR_INVALID: attribute number 0 is reserved
-  * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz
-@@ -3108,6 +3366,9 @@ enum nl80211_band_attr {
-  *    on this channel in current regulatory domain.
-  * @NL80211_FREQUENCY_ATTR_NO_10MHZ: 10 MHz operation is not allowed
-  *    on this channel in current regulatory domain.
-+ * @NL80211_FREQUENCY_ATTR_WMM: this channel has wmm limitations.
-+ *    This is a nested attribute that contains the wmm limitation per AC.
-+ *    (see &enum nl80211_wmm_rule)
-  * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
-  *    currently defined
-  * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
-@@ -3136,6 +3397,7 @@ enum nl80211_frequency_attr {
-       NL80211_FREQUENCY_ATTR_IR_CONCURRENT,
-       NL80211_FREQUENCY_ATTR_NO_20MHZ,
-       NL80211_FREQUENCY_ATTR_NO_10MHZ,
-+      NL80211_FREQUENCY_ATTR_WMM,
-       /* keep last */
-       __NL80211_FREQUENCY_ATTR_AFTER_LAST,
-@@ -3319,7 +3581,7 @@ enum nl80211_sched_scan_match_attr {
-  * @NL80211_RRF_AUTO_BW: maximum available bandwidth should be calculated
-  *    base on contiguous rules and wider channels will be allowed to cross
-  *    multiple contiguous/overlapping frequency ranges.
-- * @NL80211_RRF_IR_CONCURRENT: See &NL80211_FREQUENCY_ATTR_IR_CONCURRENT
-+ * @NL80211_RRF_IR_CONCURRENT: See %NL80211_FREQUENCY_ATTR_IR_CONCURRENT
-  * @NL80211_RRF_NO_HT40MINUS: channels can't be used in HT40- operation
-  * @NL80211_RRF_NO_HT40PLUS: channels can't be used in HT40+ operation
-  * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed
-@@ -4945,6 +5207,27 @@ enum nl80211_feature_flags {
-  *    probe request tx deferral and suppression
-  * @NL80211_EXT_FEATURE_MFP_OPTIONAL: Driver supports the %NL80211_MFP_OPTIONAL
-  *    value in %NL80211_ATTR_USE_MFP.
-+ * @NL80211_EXT_FEATURE_LOW_SPAN_SCAN: Driver supports low span scan.
-+ * @NL80211_EXT_FEATURE_LOW_POWER_SCAN: Driver supports low power scan.
-+ * @NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN: Driver supports high accuracy scan.
-+ * @NL80211_EXT_FEATURE_DFS_OFFLOAD: HW/driver will offload DFS actions.
-+ *    Device or driver will do all DFS-related actions by itself,
-+ *    informing user-space about CAC progress, radar detection event,
-+ *    channel change triggered by radar detection event.
-+ *    No need to start CAC from user-space, no need to react to
-+ *    "radar detected" event.
-+ * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211: Driver supports sending and
-+ *    receiving control port frames over nl80211 instead of the netdevice.
-+ * @NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT: This Driver support data ack
-+ *    rssi if firmware support, this flag is to intimate about ack rssi
-+ *    support to nl80211.
-+ * @NL80211_EXT_FEATURE_TXQS: Driver supports FQ-CoDel-enabled intermediate
-+ *      TXQs.
-+ * @NL80211_EXT_FEATURE_SCAN_RANDOM_SN: Driver/device supports randomizing the
-+ *    SN in probe request frames if requested by %NL80211_SCAN_FLAG_RANDOM_SN.
-+ * @NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT: Driver/device can omit all data
-+ *    except for supported rates from the probe request content if requested
-+ *    by the %NL80211_SCAN_FLAG_MIN_PREQ_CONTENT flag.
-  *
-  * @NUM_NL80211_EXT_FEATURES: number of extended features.
-  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
-@@ -4972,6 +5255,15 @@ enum nl80211_ext_feature_index {
-       NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE,
-       NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION,
-       NL80211_EXT_FEATURE_MFP_OPTIONAL,
-+      NL80211_EXT_FEATURE_LOW_SPAN_SCAN,
-+      NL80211_EXT_FEATURE_LOW_POWER_SCAN,
-+      NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN,
-+      NL80211_EXT_FEATURE_DFS_OFFLOAD,
-+      NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211,
-+      NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT,
-+      NL80211_EXT_FEATURE_TXQS,
-+      NL80211_EXT_FEATURE_SCAN_RANDOM_SN,
-+      NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT,
-       /* add new features before the definition below */
-       NUM_NL80211_EXT_FEATURES,
-@@ -5032,6 +5324,10 @@ enum nl80211_timeout_reason {
-  * of NL80211_CMD_TRIGGER_SCAN and NL80211_CMD_START_SCHED_SCAN
-  * requests.
-  *
-+ * NL80211_SCAN_FLAG_LOW_SPAN, NL80211_SCAN_FLAG_LOW_POWER, and
-+ * NL80211_SCAN_FLAG_HIGH_ACCURACY flags are exclusive of each other, i.e., only
-+ * one of them can be used in the request.
-+ *
-  * @NL80211_SCAN_FLAG_LOW_PRIORITY: scan request has low priority
-  * @NL80211_SCAN_FLAG_FLUSH: flush cache before scanning
-  * @NL80211_SCAN_FLAG_AP: force a scan even if the interface is configured
-@@ -5059,7 +5355,26 @@ enum nl80211_timeout_reason {
-  *    and suppression (if it has received a broadcast Probe Response frame,
-  *    Beacon frame or FILS Discovery frame from an AP that the STA considers
-  *    a suitable candidate for (re-)association - suitable in terms of
-- *    SSID and/or RSSI
-+ *    SSID and/or RSSI.
-+ * @NL80211_SCAN_FLAG_LOW_SPAN: Span corresponds to the total time taken to
-+ *    accomplish the scan. Thus, this flag intends the driver to perform the
-+ *    scan request with lesser span/duration. It is specific to the driver
-+ *    implementations on how this is accomplished. Scan accuracy may get
-+ *    impacted with this flag.
-+ * @NL80211_SCAN_FLAG_LOW_POWER: This flag intends the scan attempts to consume
-+ *    optimal possible power. Drivers can resort to their specific means to
-+ *    optimize the power. Scan accuracy may get impacted with this flag.
-+ * @NL80211_SCAN_FLAG_HIGH_ACCURACY: Accuracy here intends to the extent of scan
-+ *    results obtained. Thus HIGH_ACCURACY scan flag aims to get maximum
-+ *    possible scan results. This flag hints the driver to use the best
-+ *    possible scan configuration to improve the accuracy in scanning.
-+ *    Latency and power use may get impacted with this flag.
-+ * @NL80211_SCAN_FLAG_RANDOM_SN: randomize the sequence number in probe
-+ *    request frames from this scan to avoid correlation/tracking being
-+ *    possible.
-+ * @NL80211_SCAN_FLAG_MIN_PREQ_CONTENT: minimize probe request content to
-+ *    only have supported rates and no additional capabilities (unless
-+ *    added by userspace explicitly.)
-  */
- enum nl80211_scan_flags {
-       NL80211_SCAN_FLAG_LOW_PRIORITY                          = 1<<0,
-@@ -5070,6 +5385,11 @@ enum nl80211_scan_flags {
-       NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP               = 1<<5,
-       NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE            = 1<<6,
-       NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION    = 1<<7,
-+      NL80211_SCAN_FLAG_LOW_SPAN                              = 1<<8,
-+      NL80211_SCAN_FLAG_LOW_POWER                             = 1<<9,
-+      NL80211_SCAN_FLAG_HIGH_ACCURACY                         = 1<<10,
-+      NL80211_SCAN_FLAG_RANDOM_SN                             = 1<<11,
-+      NL80211_SCAN_FLAG_MIN_PREQ_CONTENT                      = 1<<12,
- };
- /**
-@@ -5127,6 +5447,8 @@ enum nl80211_smps_mode {
-  *    non-operating channel is expired and no longer valid. New CAC must
-  *    be done on this channel before starting the operation. This is not
-  *    applicable for ETSI dfs domain where pre-CAC is valid for ever.
-+ * @NL80211_RADAR_CAC_STARTED: Channel Availability Check has been started,
-+ *    should be generated by HW if NL80211_EXT_FEATURE_DFS_OFFLOAD is enabled.
-  */
- enum nl80211_radar_event {
-       NL80211_RADAR_DETECTED,
-@@ -5134,6 +5456,7 @@ enum nl80211_radar_event {
-       NL80211_RADAR_CAC_ABORTED,
-       NL80211_RADAR_NOP_FINISHED,
-       NL80211_RADAR_PRE_CAC_EXPIRED,
-+      NL80211_RADAR_CAC_STARTED,
- };
- /**
-@@ -5425,11 +5748,11 @@ enum nl80211_nan_func_attributes {
-  * @NL80211_NAN_SRF_INCLUDE: present if the include bit of the SRF set.
-  *    This is a flag.
-  * @NL80211_NAN_SRF_BF: Bloom Filter. Present if and only if
-- *    &NL80211_NAN_SRF_MAC_ADDRS isn't present. This attribute is binary.
-+ *    %NL80211_NAN_SRF_MAC_ADDRS isn't present. This attribute is binary.
-  * @NL80211_NAN_SRF_BF_IDX: index of the Bloom Filter. Mandatory if
-- *    &NL80211_NAN_SRF_BF is present. This is a u8.
-+ *    %NL80211_NAN_SRF_BF is present. This is a u8.
-  * @NL80211_NAN_SRF_MAC_ADDRS: list of MAC addresses for the SRF. Present if
-- *    and only if &NL80211_NAN_SRF_BF isn't present. This is a nested
-+ *    and only if %NL80211_NAN_SRF_BF isn't present. This is a nested
-  *    attribute. Each nested attribute is a MAC address.
-  * @NUM_NL80211_NAN_SRF_ATTR: internal
-  * @NL80211_NAN_SRF_ATTR_MAX: highest NAN SRF attribute
-@@ -5469,4 +5792,15 @@ enum nl80211_nan_match_attributes {
-       NL80211_NAN_MATCH_ATTR_MAX = NUM_NL80211_NAN_MATCH_ATTR - 1
- };
-+/**
-+ * nl80211_external_auth_action - Action to perform with external
-+ *     authentication request. Used by NL80211_ATTR_EXTERNAL_AUTH_ACTION.
-+ * @NL80211_EXTERNAL_AUTH_START: Start the authentication.
-+ * @NL80211_EXTERNAL_AUTH_ABORT: Abort the ongoing authentication.
-+ */
-+enum nl80211_external_auth_action {
-+      NL80211_EXTERNAL_AUTH_START,
-+      NL80211_EXTERNAL_AUTH_ABORT,
-+};
-+
- #endif /* __LINUX_NL80211_H */
index 27ba390c7ffeb90df5a0fbda2d4cdee52e11d7e1..c81bcab602b52de5770a0256b0a06cb34b8d6053 100644 (file)
@@ -1,9 +1,9 @@
 --- a/phy.c
 +++ b/phy.c
-@@ -727,3 +727,30 @@ COMMAND(set, antenna, "<bitmap> | all |
      NL80211_CMD_SET_WIPHY, 0, CIB_PHY, handle_antenna,
-       "Set a bitmap of allowed antennas to use for TX and RX.\n"
-       "The driver may reject antenna configurations it cannot support.");
+@@ -843,3 +843,30 @@ static int handle_get_txq(struct nl80211
COMMAND(get, txq, "",
+       NL80211_CMD_GET_WIPHY, 0, CIB_PHY, handle_get_txq,
+       "Get TXQ parameters.");
 +
 +static int handle_antenna_gain(struct nl80211_state *state,
 +                             struct nl_msg *msg,
index 5f4bce6a8bc1c598da2d21986281f489a88f02a9..07ea7113e2bad410b2d5a289a3fb0fa91a7acad0 100644 (file)
@@ -1,6 +1,6 @@
 --- a/event.c
 +++ b/event.c
-@@ -342,6 +342,7 @@ static int print_event(struct nl_msg *ms
+@@ -699,6 +699,7 @@ static int print_event(struct nl_msg *ms
        }
  
        switch (gnlh->cmd) {
@@ -8,7 +8,7 @@
        case NL80211_CMD_NEW_WIPHY:
                printf("renamed to %s\n", nla_get_string(tb[NL80211_ATTR_WIPHY_NAME]));
                break;
-@@ -376,6 +377,7 @@ static int print_event(struct nl_msg *ms
+@@ -734,6 +735,7 @@ static int print_event(struct nl_msg *ms
        case NL80211_CMD_SCHED_SCAN_RESULTS:
                printf("got scheduled scan results\n");
                break;
@@ -16,7 +16,7 @@
        case NL80211_CMD_REG_CHANGE:
                printf("regulatory domain change: ");
  
-@@ -454,6 +456,7 @@ static int print_event(struct nl_msg *ms
+@@ -812,6 +814,7 @@ static int print_event(struct nl_msg *ms
                mac_addr_n2a(macbuf, nla_data(tb[NL80211_ATTR_MAC]));
                printf("del station %s\n", macbuf);
                break;
        case NL80211_CMD_JOIN_IBSS:
                mac_addr_n2a(macbuf, nla_data(tb[NL80211_ATTR_MAC]));
                printf("IBSS %s joined\n", macbuf);
-@@ -618,9 +621,9 @@ static int print_event(struct nl_msg *ms
-       case NL80211_CMD_DEL_WIPHY:
-               printf("delete wiphy\n");
+@@ -989,9 +992,9 @@ static int print_event(struct nl_msg *ms
+               parse_nan_match(tb);
                break;
+       }
 +#endif
        default:
 -              printf("unknown event %d (%s)\n",
@@ -38,7 +38,7 @@
  
 --- a/info.c
 +++ b/info.c
-@@ -197,6 +197,7 @@ next:
+@@ -205,6 +205,7 @@ next:
                                }
                        }
  
@@ -46,7 +46,7 @@
                        if (tb_band[NL80211_BAND_ATTR_RATES]) {
                        printf("\t\tBitrates (non-HT):\n");
                        nla_for_each_nested(nl_rate, tb_band[NL80211_BAND_ATTR_RATES], rem_rate) {
-@@ -213,6 +214,7 @@ next:
+@@ -221,6 +222,7 @@ next:
                                printf("\n");
                        }
                        }
@@ -54,7 +54,7 @@
                }
        }
  
-@@ -278,6 +280,7 @@ next:
+@@ -286,6 +288,7 @@ next:
                printf("\tCoverage class: %d (up to %dm)\n", coverage, 450 * coverage);
        }
  
@@ -62,7 +62,7 @@
        if (tb_msg[NL80211_ATTR_CIPHER_SUITES]) {
                int num = nla_len(tb_msg[NL80211_ATTR_CIPHER_SUITES]) / sizeof(__u32);
                int i;
-@@ -289,6 +292,7 @@ next:
+@@ -297,6 +300,7 @@ next:
                                        cipher_name(ciphers[i]));
                }
        }
@@ -70,7 +70,7 @@
  
        if (tb_msg[NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX] &&
            tb_msg[NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX])
-@@ -308,11 +312,13 @@ next:
+@@ -316,11 +320,13 @@ next:
                        printf("\t\t * %s\n", iftype_name(nla_type(nl_mode)));
        }
  
@@ -84,7 +84,7 @@
  
        if (tb_msg[NL80211_ATTR_INTERFACE_COMBINATIONS]) {
                struct nlattr *nl_combi;
-@@ -409,6 +415,7 @@ broken_combination:
+@@ -417,6 +423,7 @@ broken_combination:
                        printf("\tinterface combinations are not supported\n");
        }
  
@@ -92,7 +92,7 @@
        if (tb_msg[NL80211_ATTR_SUPPORTED_COMMANDS]) {
                printf("\tSupported commands:\n");
                nla_for_each_nested(nl_cmd, tb_msg[NL80211_ATTR_SUPPORTED_COMMANDS], rem_cmd)
-@@ -506,6 +513,7 @@ broken_combination:
+@@ -514,6 +521,7 @@ broken_combination:
                                printf("\t\t * wake up on TCP connection\n");
                }
        }
  
        if (tb_msg[NL80211_ATTR_ROAM_SUPPORT])
                printf("\tDevice supports roaming.\n");
-@@ -544,6 +552,7 @@ broken_combination:
+@@ -552,6 +560,7 @@ broken_combination:
                }
        }
  
        if (tb_msg[NL80211_ATTR_FEATURE_FLAGS]) {
                unsigned int features = nla_get_u32(tb_msg[NL80211_ATTR_FEATURE_FLAGS]);
  
-@@ -602,6 +611,7 @@ broken_combination:
-               if (features & NL80211_FEATURE_TDLS_CHANNEL_SWITCH)
-                       printf("\tDevice supports TDLS channel switching\n");
+@@ -616,6 +625,7 @@ broken_combination:
+               if (features & NL80211_FEATURE_ND_RANDOM_MAC_ADDR)
+                       printf("\tDevice supports randomizing MAC-addr in net-detect scans.\n");
        }
 +#endif
  
-       if (tb_msg[NL80211_ATTR_EXT_FEATURES]) {
-               struct nlattr *tb = tb_msg[NL80211_ATTR_EXT_FEATURES];
-@@ -658,6 +668,7 @@ TOPLEVEL(list, NULL, NL80211_CMD_GET_WIP
+       if (tb_msg[NL80211_ATTR_TDLS_SUPPORT])
+               printf("\tDevice supports T-DLS.\n");
+@@ -740,6 +750,7 @@ TOPLEVEL(list, NULL, NL80211_CMD_GET_WIP
         "List all wireless devices and their capabilities.");
  TOPLEVEL(phy, NULL, NL80211_CMD_GET_WIPHY, NLM_F_DUMP, CIB_NONE, handle_info, NULL);
  
  static int handle_commands(struct nl80211_state *state, struct nl_msg *msg,
                           int argc, char **argv, enum id_input id)
  {
-@@ -669,6 +680,7 @@ static int handle_commands(struct nl8021
+@@ -751,6 +762,7 @@ static int handle_commands(struct nl8021
  }
  TOPLEVEL(commands, NULL, NL80211_CMD_GET_WIPHY, 0, CIB_NONE, handle_commands,
         "list all known commands and their decimal & hex value");
  {
 --- a/scan.c
 +++ b/scan.c
-@@ -1170,6 +1170,7 @@ static void print_ht_op(const uint8_t ty
+@@ -1197,6 +1197,9 @@ static void print_ht_op(const uint8_t ty
        printf("\t\t * secondary channel offset: %s\n",
                ht_secondary_offset[data[1] & 0x3]);
        printf("\t\t * STA channel width: %s\n", sta_chan_width[(data[1] & 0x4)>>2]);
++#ifndef IW_FULL
 +      return;
++#endif
        printf("\t\t * RIFS: %d\n", (data[1] & 0x8)>>3);
        printf("\t\t * HT protection: %s\n", protection[data[2] & 0x3]);
        printf("\t\t * non-GF present: %d\n", (data[2] & 0x4) >> 2);
-@@ -1497,6 +1498,14 @@ static void print_ie(const struct ie_pri
+@@ -1524,6 +1527,14 @@ static void print_ie(const struct ie_pri
  
  static const struct ie_print ieprinters[] = {
        [0] = { "SSID", print_ssid, 0, 32, BIT(PRINT_SCAN) | BIT(PRINT_LINK), },
        [1] = { "Supported rates", print_supprates, 0, 255, BIT(PRINT_SCAN), },
        [3] = { "DS Parameter set", print_ds, 1, 1, BIT(PRINT_SCAN), },
        [5] = { "TIM", print_tim, 4, 255, BIT(PRINT_SCAN), },
-@@ -1506,21 +1515,15 @@ static const struct ie_print ieprinters[
+@@ -1533,21 +1544,15 @@ static const struct ie_print ieprinters[
        [32] = { "Power constraint", print_powerconstraint, 1, 1, BIT(PRINT_SCAN), },
        [35] = { "TPC report", print_tpcreport, 2, 2, BIT(PRINT_SCAN), },
        [42] = { "ERP", print_erp, 1, 255, BIT(PRINT_SCAN), },
  };
  
  static void print_wifi_wpa(const uint8_t type, uint8_t len, const uint8_t *data,
-@@ -1968,6 +1971,7 @@ void print_ies(unsigned char *ie, int ie
+@@ -2026,6 +2031,7 @@ void print_ies(unsigned char *ie, int ie
                    ieprinters[ie[0]].flags & BIT(ptype)) {
                        print_ie(&ieprinters[ie[0]],
                                 ie[0], ie[1], ie + 2, &ie_buffer);
                } else if (ie[0] == 221 /* vendor */) {
                        print_vendor(ie[1], ie + 2, unknown, ptype);
                } else if (unknown) {
-@@ -1977,6 +1981,7 @@ void print_ies(unsigned char *ie, int ie
+@@ -2035,6 +2041,7 @@ void print_ies(unsigned char *ie, int ie
                        for (i=0; i<ie[1]; i++)
                                printf(" %.2x", ie[2+i]);
                        printf("\n");
                }
                ielen -= ie[1] + 2;
                ie += ie[1] + 2;
-@@ -2017,6 +2022,7 @@ static void print_capa_non_dmg(__u16 cap
+@@ -2075,6 +2082,7 @@ static void print_capa_non_dmg(__u16 cap
                printf(" ESS");
        if (capa & WLAN_CAPABILITY_IBSS)
                printf(" IBSS");
        if (capa & WLAN_CAPABILITY_CF_POLLABLE)
                printf(" CfPollable");
        if (capa & WLAN_CAPABILITY_CF_POLL_REQUEST)
-@@ -2045,6 +2051,7 @@ static void print_capa_non_dmg(__u16 cap
+@@ -2103,6 +2111,7 @@ static void print_capa_non_dmg(__u16 cap
                printf(" DelayedBACK");
        if (capa & WLAN_CAPABILITY_IMM_BACK)
                printf(" ImmediateBACK");
  }
  
  static int print_bss_handler(struct nl_msg *msg, void *arg)
-@@ -2129,8 +2136,10 @@ static int print_bss_handler(struct nl_m
+@@ -2187,8 +2196,10 @@ static int print_bss_handler(struct nl_m
        if (bss[NL80211_BSS_FREQUENCY]) {
                int freq = nla_get_u32(bss[NL80211_BSS_FREQUENCY]);
                printf("\tfreq: %d\n", freq);
        }
        if (bss[NL80211_BSS_BEACON_INTERVAL])
                printf("\tbeacon interval: %d TUs\n",
-@@ -2319,6 +2328,7 @@ static int handle_stop_sched_scan(struct
+@@ -2382,6 +2393,7 @@ static int handle_stop_sched_scan(struct
        return 0;
  }
  
  COMMAND(scan, sched_start,
        SCHED_SCAN_OPTIONS,
        NL80211_CMD_START_SCHED_SCAN, 0, CIB_NETDEV, handle_start_sched_scan,
-@@ -2329,3 +2339,4 @@ COMMAND(scan, sched_start,
+@@ -2392,3 +2404,4 @@ COMMAND(scan, sched_start,
  COMMAND(scan, sched_stop, "",
        NL80211_CMD_STOP_SCHED_SCAN, 0, CIB_NETDEV, handle_stop_sched_scan,
        "Stop an ongoing scheduled scan.");
 +#endif
 --- a/util.c
 +++ b/util.c
-@@ -281,6 +281,7 @@ static const char *commands[NL80211_CMD_
+@@ -289,6 +289,7 @@ static const char *commands[NL80211_CMD_
  
  static char cmdbuf[100];
  
  const char *command_name(enum nl80211_commands cmd)
  {
        if (cmd <= NL80211_CMD_MAX && commands[cmd])
-@@ -288,6 +289,7 @@ const char *command_name(enum nl80211_co
+@@ -296,6 +297,7 @@ const char *command_name(enum nl80211_co
        sprintf(cmdbuf, "Unknown command (%d)", cmd);
        return cmdbuf;
  }
  
  int ieee80211_channel_to_frequency(int chan, enum nl80211_band band)
  {
-@@ -426,6 +428,9 @@ int parse_keys(struct nl_msg *msg, char
+@@ -434,6 +436,9 @@ int parse_keys(struct nl_msg *msg, char
        char keybuf[13];
        int pos = 0;
  
 +#ifndef IW_FULL
 +      return 1;
 +#endif
-       if (!argc)
+       if (!*argc)
                return 1;
  
 --- a/Makefile
 +++ b/Makefile
-@@ -25,6 +25,12 @@ OBJS-$(HWSIM) += hwsim.o
+@@ -31,6 +31,12 @@ OBJS-$(HWSIM) += hwsim.o
  
  OBJS += $(OBJS-y) $(OBJS-Y)
  
-+OBJS_FULL = ocb offch cqm wowlan coalesce roc p2p ap mgmt vendor
++OBJS_FULL = ocb offch cqm wowlan coalesce roc p2p vendor mgmt ap sha256 nan bloom measurements ftm
 +ifdef IW_FULL
 +  CFLAGS += -DIW_FULL
 +else
  ifeq ($(NO_PKG_CONFIG),)
 --- a/station.c
 +++ b/station.c
-@@ -629,10 +629,12 @@ static int handle_station_set_plink(stru
+@@ -709,10 +709,12 @@ static int handle_station_set_plink(stru
   nla_put_failure:
        return -ENOBUFS;
  }
  
  static int handle_station_set_vlan(struct nl80211_state *state,
                                   struct nl_msg *msg,
-@@ -727,11 +729,13 @@ static int handle_station_set_mesh_power
+@@ -807,11 +809,13 @@ static int handle_station_set_mesh_power
  nla_put_failure:
        return -ENOBUFS;
  }
                               struct nl_msg *msg,
 --- a/interface.c
 +++ b/interface.c
-@@ -615,9 +615,11 @@ static int handle_interface_wds_peer(str
+@@ -621,9 +621,11 @@ static int handle_interface_wds_peer(str
   nla_put_failure:
        return -ENOBUFS;
  }
  
  static int set_mcast_rate(struct nl80211_state *state,
                          struct nl_msg *msg,
-@@ -707,6 +709,7 @@ static int handle_chan(struct nl80211_st
+@@ -713,6 +715,7 @@ static int handle_chan(struct nl80211_st
        return handle_chanfreq(state, msg, true, argc, argv, id);
  }
  
  SECTION(switch);
  COMMAND(switch, freq,
        "<freq> [NOHT|HT20|HT40+|HT40-|5MHz|10MHz|80MHz] [beacons <count>] [block-tx]\n"
-@@ -715,3 +718,4 @@ COMMAND(switch, freq,
+@@ -721,3 +724,4 @@ COMMAND(switch, freq,
        "Switch the operating channel by sending a channel switch announcement (CSA).");
  COMMAND(switch, channel, "<channel> [NOHT|HT20|HT40+|HT40-|5MHz|10MHz|80MHz] [beacons <count>] [block-tx]",
        NL80211_CMD_CHANNEL_SWITCH, 0, CIB_NETDEV, handle_chan, NULL);
index c737dd41e768686484759e615163f6a532b3e8be..73810105cb0a0381b79d1ed7a43e3af5eea1de5e 100644 (file)
@@ -10,10 +10,10 @@ PKG_NAME:=libiwinfo
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/iwinfo.git
-PKG_SOURCE_DATE:=2018-12-25
-PKG_SOURCE_VERSION:=dd508af481406bbbe42eaa20a54226645f0301cc
-PKG_MIRROR_HASH:=1137b2bc2bdb8157b0ed7dfd6902453285df765358469accc4916a79a7aab989
+PKG_SOURCE_URL=$(PROJECT_GIT)/iwinfo.git
+PKG_SOURCE_DATE:=2019-03-01
+PKG_SOURCE_VERSION:=cb108c546893535dadeda759b1cd4b91b266c936
+PKG_MIRROR_HASH:=fd89f1b992d36f6b76cf671c2c40e671d70620c0ee101e76d6d885580371827c
 PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
 PKG_LICENSE:=GPL-2.0
 
@@ -33,7 +33,7 @@ define Package/libiwinfo
   CATEGORY:=Libraries
   TITLE:=Generalized Wireless Information Library (iwinfo)
   DEPENDS:=+PACKAGE_kmod-cfg80211:libnl-tiny +libuci +libubus
-  ABI_VERSION:=$(PKG_RELEASE)
+  ABI_VERSION:=20181126
 endef
 
 define Package/libiwinfo/description
diff --git a/package/network/utils/layerscape/restool/Makefile b/package/network/utils/layerscape/restool/Makefile
new file mode 100644 (file)
index 0000000..d87649e
--- /dev/null
@@ -0,0 +1,37 @@
+#
+# Copyright 2017 NXP
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=restool
+PKG_VERSION:=lsdk-1806
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://source.codeaurora.org/external/qoriq/qoriq-components/restool
+PKG_SOURCE_VERSION:=2815572ab25029a8fb47f0dc6a0b56ae5ff76713
+PKG_MIRROR_HASH:=cf76a8fd1239bb9b7696c25d5c26c6e81ea73497ad1ada9488390daf0ef7c291
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/restool
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=Layerscape DPAA2 dynamical management tool
+  DEPENDS:=@TARGET_layerscape
+endef
+
+MAKE_FLAGS += \
+       DESTDIR="$(PKG_BUILD_DIR)"/output/ \
+       install
+
+define Package/restool/install
+       $(INSTALL_DIR) $(1)/usr/bin/
+       $(CP) $(PKG_BUILD_DIR)/output/usr/local/bin/* $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,restool))
diff --git a/package/network/utils/layerscape/restool/patches/0001-restool-fix-get_device_file-function.patch b/package/network/utils/layerscape/restool/patches/0001-restool-fix-get_device_file-function.patch
new file mode 100644 (file)
index 0000000..2745fd0
--- /dev/null
@@ -0,0 +1,107 @@
+From 37f0f1550e7822584b858edde416a694fb902236 Mon Sep 17 00:00:00 2001
+From: Ioana Ciornei <ioana.ciornei@nxp.com>
+Date: Tue, 31 Jul 2018 13:33:20 +0300
+Subject: [PATCH] restool: fix get_device_file() function
+
+This patch fixes multiple problems encountered in the
+get_device_file() function:
+ - The deprecated atoi() function is replaced by strtoul
+ - An invalid memory access was being performed by using
+ memory from dir->d_name even after closedir(). This is
+ fixed by a strdup() on the device filename.
+ - Also, error prints now print any relevant error code.
+
+Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
+---
+ restool.c | 44 ++++++++++++++++++++++++++++----------------
+ 1 file changed, 28 insertions(+), 16 deletions(-)
+
+diff --git a/restool.c b/restool.c
+index 7553659..78fd1bf 100644
+--- a/restool.c
++++ b/restool.c
+@@ -1185,8 +1185,13 @@ out:
+ static int get_device_file(void)
+ {
++      int num_dev_files = 0;
++      struct dirent *dir;
+       int error = 0;
++      char *device;
+       int num_char;
++      long val;
++      DIR *d;
+       memset(restool.device_file, '\0', DEV_FILE_SIZE);
+@@ -1214,10 +1219,6 @@ static int get_device_file(void)
+                       goto out;
+               }
+       } else {
+-              DIR           *d;
+-              struct dirent *dir;
+-              int num_dev_files = 0;
+-              char *dprc_index;
+               d = opendir("/dev");
+               if (!d) {
+@@ -1227,26 +1228,34 @@ static int get_device_file(void)
+               }
+               while ((dir = readdir(d)) != NULL) {
+                       if (strncmp(dir->d_name, "dprc.", 5) == 0) {
+-                              dprc_index = &dir->d_name[5];
+-                              num_dev_files += 1;
++                              if (num_dev_files == 0)
++                                      device = strdup(dir->d_name);
++                              num_dev_files++;
+                       }
+               }
+               closedir(d);
+               if (num_dev_files == 1) {
+-                      int temp_len = strlen(dprc_index);
++                      errno = 0;
++                      val = strtoul(&device[5], NULL, 0);
++                      if ((errno == ERANGE && val == LONG_MAX) ||
++                          ( errno != 0 && val == 0 )) {
++                              ERROR_PRINTF("error: device file malformed\n");
++                              error = -1;
++                              goto out_free_device;;
++                      }
++                      restool.root_dprc_id = val;
+-                      temp_len += 10;
+-                      num_char = sprintf(restool.device_file, "/dev/dprc.%s",
+-                                         dprc_index);
+-                      if (num_char != temp_len) {
+-                              ERROR_PRINTF("sprintf error\n");
++                      num_char = snprintf(restool.device_file, DEV_FILE_SIZE,
++                                          "/dev/dprc.%d", restool.root_dprc_id);
++                      if (num_char < 0 || num_char >= DEV_FILE_SIZE) {
++                              ERROR_PRINTF("error: device file malformed\n");
+                               error = -1;
+-                              goto out;
++                              goto out_free_device;
+                       }
+-                      restool.root_dprc_id = atoi(dprc_index);
+-                      if (access(restool.device_file, F_OK) != 0)
+-                              printf("no such dev file\n");
++                      error = access(restool.device_file, F_OK);
++                      if (error != 0)
++                              ERROR_PRINTF("error: access(%s) = %d\n", restool.device_file, error);
+               } else {
+                       error = -1;
+                       if (num_dev_files == 0)
+@@ -1255,6 +1264,9 @@ static int get_device_file(void)
+                               ERROR_PRINTF("error: multiple root containers\n");
+               }
+       }
++
++out_free_device:
++      free(device);
+ out:
+       return error;
+ }
+-- 
+2.17.1
+
index 4faa5acf90eed56bcacfcfd8138bc4889003f724..511453c8aa70560ce5ee0eb3115e5e0edb63e016 100644 (file)
@@ -4,7 +4,7 @@ PKG_NAME:=umbim
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/umbim.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/umbim.git
 PKG_SOURCE_DATE:=2015-07-04
 PKG_SOURCE_VERSION:=29aaf43b097ee57f7aa1bb24341db6cc4148cbf3
 PKG_MIRROR_HASH:=56e612d9da1ac26de96c4929fbabd047862d725a13ceb904807a9d3d7db43a30
index b2f3474400364cf25fdcf5d6b9db8cf67f51f5cd..99df0abd481a63b3072b2df2c50c9599caeb1818 100644 (file)
@@ -1,10 +1,10 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=uqmi
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/uqmi.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/uqmi.git
 PKG_SOURCE_DATE:=2016-12-19
 PKG_SOURCE_VERSION:=8ceeab690d8c6f1e3afbd4bcaee7bc2ba3fbe165
 PKG_MIRROR_HASH:=b3637ff04e51769137af1c5e173e73311e11c3c2dcc49eeaca6aa3520f61d247
index 9b2f69f009f467e204dcab6f6c8557398057179f..1da98db5ac7b35d39143b8393bff8b1bdcf06d59 100755 (executable)
@@ -83,7 +83,7 @@ proto_qmi_setup() {
                fi
        done
 
-       if uqmi -s -d "$device" --get-pin-status | grep '"Not supported"' > /dev/null; then
+       if uqmi -s -d "$device" --get-pin-status | grep '"Not supported"\|"Invalid QMI command"' > /dev/null; then
                [ -n "$pincode" ] && {
                        uqmi -s -d "$device" --verify-pin1 "$pincode" > /dev/null || uqmi -s -d "$device" --uim-verify-pin1 "$pincode" > /dev/null || {
                                echo "Unable to verify PIN"
index dd3430a4263a9bf5e7d6bcd6353ed5e8312ac55b..485b85ddc75b95b34edd4b2c4caa376da385d7fc 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=wireless-tools
 PKG_VERSION:=29
 PKG_MINOR:=
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 
 PKG_SOURCE:=wireless_tools.$(PKG_VERSION)$(PKG_MINOR).tar.gz
 PKG_SOURCE_URL:=https://hewlettpackard.github.io/wireless-tools
@@ -45,6 +45,7 @@ $(call Package/wireless-tools/Default)
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=Library for manipulating Linux Wireless Extensions
+  ABI_VERSION:=29
 endef
 
 define Package/libiw/description
index 233e61e75ea59c75f79216fbac07f1b3d827d802..c82b3ddb1a8010e293136b36edbb6ed9923112aa 100644 (file)
@@ -8,10 +8,10 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fstools
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/fstools.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/fstools.git
 PKG_SOURCE_DATE:=2018-12-28
 PKG_SOURCE_VERSION:=af93f4b8dc32cf1320dfe8f4b93bb3a12606fc33
 PKG_MIRROR_HASH:=a2d8c2500fe75014ef16c039d8cdb276c1d5c066f8bce6550a3ecf46a9a411a9
@@ -110,6 +110,7 @@ define Package/block-mount/install
        $(INSTALL_BIN) ./files/fstab.init $(1)/etc/init.d/fstab
        $(INSTALL_CONF) ./files/fstab.default $(1)/etc/uci-defaults/10-fstab
        $(INSTALL_CONF) ./files/mount.hotplug $(1)/etc/hotplug.d/block/10-mount
+       $(INSTALL_CONF) ./files/media-change.hotplug  $(1)/etc/hotplug.d/block/00-media-change
 
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/block $(1)/sbin/
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libblkid-tiny.so $(1)/lib/
diff --git a/package/system/fstools/files/media-change.hotplug b/package/system/fstools/files/media-change.hotplug
new file mode 100644 (file)
index 0000000..30fc3d5
--- /dev/null
@@ -0,0 +1,8 @@
+[ -n "$DISK_MEDIA_CHANGE" ] && /sbin/block info
+
+if [ "$ACTION" = "add" -a "$DEVTYPE" = "disk" ]; then
+       case "$DEVNAME" in
+               mtd*) : ;;
+               *) echo 2000 > /sys/block/$DEVNAME/events_poll_msecs ;;
+       esac
+fi
index e77b8b58e11297d8e827bc7463bbdf69dccee5e2..3adc1e02492ccea546761dd05c033c46c5925a37 100644 (file)
@@ -43,6 +43,7 @@ struct data_buf {
 static FILE *signature_file, *metadata_file, *firmware_file;
 static int file_mode = MODE_DEFAULT;
 static bool truncate_file;
+static bool write_truncated;
 static bool quiet = false;
 
 static uint32_t crc_table[256];
@@ -64,6 +65,7 @@ usage(const char *progname)
                "  -s <file>:           Extract signature file from firmware image\n"
                "  -i <file>:           Extract metadata file from firmware image\n"
                "  -t:                  Remove extracted chunks from firmare image (using -s, -i)\n"
+               "  -T:                  Output firmware image without extracted chunks to stdout (using -s, -i)\n"
                "  -q:                  Quiet (suppress error messages)\n"
                "\n", progname);
        return 1;
@@ -280,8 +282,10 @@ extract_data(const char *name)
        struct fwimage_trailer tr;
        struct data_buf dbuf = {};
        uint32_t crc32 = ~0;
+       int data_len = 0;
        int ret = 1;
        void *buf;
+       bool metadata_keep = false;
 
        firmware_file = open_file(name, false);
        if (!firmware_file) {
@@ -301,6 +305,9 @@ extract_data(const char *name)
        do {
                char *tmp = dbuf.cur;
 
+               if (write_truncated && dbuf.prev)
+                       fwrite(dbuf.prev, 1, BUFLEN, stdout);
+
                dbuf.cur = dbuf.prev;
                dbuf.prev = tmp;
 
@@ -317,7 +324,6 @@ extract_data(const char *name)
        } while (dbuf.cur_len == BUFLEN);
 
        while (1) {
-               int data_len;
 
                if (extract_tail(&dbuf, &tr, sizeof(tr)))
                        break;
@@ -347,8 +353,11 @@ extract_data(const char *name)
                        ret = 0;
                        break;
                } else if (tr.type == FWIMAGE_INFO) {
-                       if (!metadata_file)
+                       if (!metadata_file) {
+                               dbuf.file_len += data_len + sizeof(tr);
+                               metadata_keep = true;
                                break;
+                       }
 
                        hdr = buf;
                        data_len -= sizeof(*hdr);
@@ -366,6 +375,17 @@ extract_data(const char *name)
        if (!ret && truncate_file)
                ftruncate(fileno(firmware_file), dbuf.file_len);
 
+       if (write_truncated) {
+               if (dbuf.prev)
+                       fwrite(dbuf.prev, 1, BUFLEN, stdout);
+               if (dbuf.cur)
+                       fwrite(dbuf.cur, 1, dbuf.cur_len, stdout);
+               if (metadata_keep) {
+                       fwrite(buf, data_len, 1, stdout);
+                       fwrite(&tr, sizeof(tr), 1, stdout);
+               }
+       }
+
 out:
        free(buf);
        free(dbuf.cur);
@@ -390,7 +410,7 @@ int main(int argc, char **argv)
 
        crc32_filltable(crc_table);
 
-       while ((ch = getopt(argc, argv, "i:I:qs:S:t")) != -1) {
+       while ((ch = getopt(argc, argv, "i:I:qs:S:tT")) != -1) {
                ret = 0;
                switch(ch) {
                case 'S':
@@ -408,6 +428,9 @@ int main(int argc, char **argv)
                case 't':
                        truncate_file = true;
                        break;
+               case 'T':
+                       write_truncated = true;
+                       break;
                case 'q':
                        quiet = true;
                        break;
index fcb69c3dc9ecfbb897c78e0f4b17edda3fbc555e..d401a5f1e2f3ceec936909991469741403a94303 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=mtd
-PKG_RELEASE:=23
+PKG_RELEASE:=24
 
 PKG_BUILD_DIR := $(KERNEL_BUILD_DIR)/$(PKG_NAME)
 STAMP_PREPARED := $(STAMP_PREPARED)_$(call confvar,CONFIG_MTD_REDBOOT_PARTS)
index daeadbcd35eee3ab3058b62f0f6ab72adb4ae2fc..08a9fb295dac9f37aaf35a846a81f8502d35c313 100644 (file)
@@ -6,15 +6,17 @@ obj = mtd.o jffs2.o crc32.o md5.o
 obj.seama = seama.o md5.o
 obj.wrg = wrg.o md5.o
 obj.wrgg = wrgg.o md5.o
+obj.tpl = tpl_ramips_recoveryflag.o
 obj.ar71xx = trx.o $(obj.seama) $(obj.wrgg)
 obj.brcm = trx.o
 obj.brcm47xx = $(obj.brcm)
 obj.bcm53xx = $(obj.brcm) $(obj.seama)
 obj.brcm63xx = imagetag.o
-obj.ramips = $(obj.seama) $(obj.wrg)
+obj.ramips = $(obj.seama) $(obj.tpl) $(obj.wrg)
 obj.mvebu = linksys_bootcount.o
 obj.kirkwood = linksys_bootcount.o
 obj.ipq806x = linksys_bootcount.o
+obj.ipq40xx = linksys_bootcount_fix.o
 
 ifdef FIS_SUPPORT
   obj += fis.o
diff --git a/package/system/mtd/src/linksys_bootcount_fix.c b/package/system/mtd/src/linksys_bootcount_fix.c
new file mode 100644 (file)
index 0000000..3fc3801
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Linksys boot counter reset code for mtd
+ *
+ * Copyright (C) 2013 Jonas Gorski <jogo@openwrt.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License v2
+ * as published by the Free Software Foundation.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <endian.h>
+#include <string.h>
+#include <errno.h>
+#include <stdint.h>
+
+#include <sys/ioctl.h>
+#include <mtd/mtd-user.h>
+
+#include "mtd.h"
+
+#define BOOTCOUNT_MAGIC        0x20110811
+
+struct bootcounter {
+       uint32_t magic;
+       uint32_t count;
+       uint32_t checksum;
+};
+
+static char page[2048];
+
+int mtd_resetbc(const char *mtd)
+{
+       struct mtd_info_user mtd_info;
+       struct bootcounter *curr = (struct bootcounter *)page;
+       unsigned int i;
+       int last_count = 0;
+       int num_bc;
+       int fd;
+       int ret;
+
+       fd = mtd_check_open(mtd);
+
+       if (ioctl(fd, MEMGETINFO, &mtd_info) < 0) {
+               fprintf(stderr, "failed to get mtd info!\n");
+               return -1;
+       }
+
+       num_bc = mtd_info.size / 16;
+
+       for (i = 0; i < num_bc; i++) {
+               pread(fd, curr, sizeof(*curr), i * 16);
+
+               if (curr->magic != (BOOTCOUNT_MAGIC) && curr->magic != 0xffffffff) {
+                       fprintf(stderr, "unexpected magic %08x, bailing out\n", curr->magic);
+                       goto out;
+               }
+
+               if (curr->magic == 0xffffffff)
+                       break;
+
+               last_count = curr->count;
+       }
+
+       /* no need to do writes when last boot count is already 0 */
+       if (last_count == 0)
+               goto out;
+
+
+       if (i == num_bc) {
+               struct erase_info_user erase_info;
+               erase_info.start = 0;
+               erase_info.length = mtd_info.size;
+
+               /* erase block */
+               ret = ioctl(fd, MEMERASE, &erase_info);
+               if (ret < 0) {
+                       fprintf(stderr, "failed to erase block: %i\n", ret);
+                       return -1;
+               }
+
+               i = 0;
+       }
+
+       memset(curr, 0xff, 16);
+
+       curr->magic = BOOTCOUNT_MAGIC;
+       curr->count = 0;
+       curr->checksum = BOOTCOUNT_MAGIC;
+
+       ret = pwrite(fd, curr, 16, i * 16);
+       if (ret < 0)
+               fprintf(stderr, "failed to write: %i\n", ret);
+       sync();
+out:
+       close(fd);
+
+       return 0;
+}
index fa04c0f95b91b8878cf57df8b0e824ccf9bf4f8f..eccb4f6a1a98cde97f21be69ffba2463cc4ebb55 100644 (file)
@@ -85,6 +85,7 @@ static char *buf = NULL;
 static char *imagefile = NULL;
 static enum mtd_image_format imageformat = MTD_IMAGE_FORMAT_UNKNOWN;
 static char *jffs2file = NULL, *jffs2dir = JFFS2_DEFAULT_DIR;
+static char *tpl_uboot_args_part;
 static int buflen = 0;
 int quiet;
 int no_erase;
@@ -554,6 +555,17 @@ resume:
                lseek(fd, part_offset, SEEK_SET);
        }
 
+       /* Write TP-Link recovery flag */
+       if (tpl_uboot_args_part && mtd_tpl_recoverflag_write) {
+               if (quiet < 2)
+                       fprintf(stderr, "Writing recovery flag to %s\n", tpl_uboot_args_part);
+               result = mtd_tpl_recoverflag_write(tpl_uboot_args_part, true);
+               if (result < 0) {
+                       fprintf(stderr, "Could not write TP-Link recovery flag to %s: %i", mtd, result);
+                       exit(1);
+               }
+       }
+
        indicate_writing(mtd);
 
        w = e = 0;
@@ -716,6 +728,18 @@ resume:
 #endif
 
        close(fd);
+
+       /* Clear TP-Link recovery flag */
+       if (tpl_uboot_args_part && mtd_tpl_recoverflag_write) {
+               if (quiet < 2)
+                       fprintf(stderr, "Removing recovery flag from %s\n", tpl_uboot_args_part);
+               result = mtd_tpl_recoverflag_write(tpl_uboot_args_part, false);
+               if (result < 0) {
+                       fprintf(stderr, "Could not clear TP-Link recovery flag to %s: %i", mtd, result);
+                       exit(1);
+               }
+       }
+
        return 0;
 }
 
@@ -771,6 +795,10 @@ static void usage(void)
                fprintf(stderr,
        "        -c datasize             amount of data to be used for checksum calculation (for fixtrx / fixseama / fixwrg / fixwrgg)\n");
        }
+       if (mtd_tpl_recoverflag_write) {
+               fprintf(stderr,
+       "        -t <partition>          write TP-Link recovery-flag to <partition> (for write)\n");
+       }
        fprintf(stderr,
 #ifdef FIS_SUPPORT
        "        -F <part>[:<size>[:<entrypoint>]][,<part>...]\n"
@@ -828,7 +856,7 @@ int main (int argc, char **argv)
 #ifdef FIS_SUPPORT
                        "F:"
 #endif
-                       "frnqe:d:s:j:p:o:c:l:")) != -1)
+                       "frnqe:d:s:j:p:o:c:t:l:")) != -1)
                switch (ch) {
                        case 'f':
                                force = 1;
@@ -896,6 +924,9 @@ int main (int argc, char **argv)
                                        usage();
                                }
                                break;
+                       case 't':
+                               tpl_uboot_args_part = optarg;
+                               break;
 #ifdef FIS_SUPPORT
                        case 'F':
                                fis_layout = optarg;
index 0250a90e0be65ba03d4f11cf7ff539e1d3da5f92..3eda6159c6903d9fc598e6b0ea754e3b9ebc7da7 100644 (file)
@@ -30,4 +30,5 @@ extern int mtd_fixseama(const char *mtd, size_t offset, size_t data_size) __attr
 extern int mtd_fixwrg(const char *mtd, size_t offset, size_t data_size) __attribute__ ((weak));
 extern int mtd_fixwrgg(const char *mtd, size_t offset, size_t data_size) __attribute__ ((weak));
 extern int mtd_resetbc(const char *mtd) __attribute__ ((weak));
+extern int mtd_tpl_recoverflag_write(const char *mtd, const bool recovery_active) __attribute__ ((weak));
 #endif /* __mtd_h */
diff --git a/package/system/mtd/src/tpl_ramips_recoveryflag.c b/package/system/mtd/src/tpl_ramips_recoveryflag.c
new file mode 100644 (file)
index 0000000..3711e01
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * TP-Link recovery flag set and unset code for ramips target
+ *
+ * Copyright (C) 2018 David Bauer <mail@david-bauer.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License v2
+ * as published by the Free Software Foundation.
+ *
+ * This program 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 General Public License for more details.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <unistd.h>
+#include <sys/mman.h>
+#include <errno.h>
+#include <stdint.h>
+
+#include <mtd/mtd-user.h>
+#include <sys/ioctl.h>
+
+#include "mtd.h"
+
+
+#define TPL_RECOVER_MAGIC      0x89abcdef
+#define TPL_NO_RECOVER_MAGIC   0x00000000
+
+
+struct uboot_args {
+       uint32_t magic;
+};
+
+int mtd_tpl_recoverflag_write(const char *mtd, const bool recovery_active)
+{
+       struct erase_info_user erase_info;
+       struct uboot_args *args;
+       uint32_t magic;
+       int ret = 0;
+       int fd;
+
+       args = malloc(erasesize);
+       if (!args) {
+               fprintf(stderr, "Could not allocate memory!\n");
+               return -1;
+       }
+
+       fd = mtd_check_open(mtd);
+       if (fd < 0) {
+               fprintf(stderr, "Could not open mtd device: %s\n", mtd);
+               ret = -1;
+               goto out;
+       }
+
+       /* read first block (containing the magic) */
+       pread(fd, args, erasesize, 0);
+
+       /* set magic to desired value */
+       magic = TPL_RECOVER_MAGIC;
+       if (!recovery_active)
+               magic = TPL_NO_RECOVER_MAGIC;
+
+       /* no need to write when magic is already set correctly */
+       if (magic == args->magic)
+               goto out;
+
+       /* erase first block (containing the magic) */
+       erase_info.start = 0;
+       erase_info.length = erasesize;
+
+       ret = ioctl(fd, MEMERASE, &erase_info);
+       if (ret < 0) {
+               fprintf(stderr, "failed to erase block: %i\n", ret);
+               goto out;
+       }
+
+       /* write magic to flash */
+       args->magic = magic;
+
+       ret = pwrite(fd, args, erasesize, 0);
+       if (ret < 0)
+               fprintf(stderr, "failed to write: %i\n", ret);
+
+       sync();
+out:
+       free(args);
+       close(fd);
+
+       return ret;
+}
index 67105675e8d0d6b307db6f035b9a81cd5d68438f..313a05893319ce057c5bc3383778fae6a634f956 100644 (file)
@@ -9,14 +9,14 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=opkg
-PKG_RELEASE:=3
+PKG_RELEASE:=1
 PKG_FLAGS:=essential
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://git.openwrt.org/project/opkg-lede.git
-PKG_SOURCE_DATE:=2017-12-07
-PKG_SOURCE_VERSION:=3b417b9f41b4ceb5912d82f867dd5534e5675b5c
-PKG_MIRROR_HASH:=1c9c21e56186345d0034d15051c1d9c5ebb5aa6658d6ae8886d8403207a914a3
+PKG_SOURCE_DATE:=2019-01-31
+PKG_SOURCE_VERSION:=d4ba162bb3f931bd5a019154270a548cf1f0853b
+PKG_MIRROR_HASH:=dc97e6f6409031422c3c52c513209a6b806b219713c2898cb32fb95d34e92008
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
index 59c5719f7d4d8a4cba9a2d6d65925f821d52e63b..7663e589f85acbf1c54946e2933759e986501d22 100644 (file)
@@ -11,10 +11,10 @@ PKG_NAME:=procd
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
-PKG_SOURCE_DATE:=2018-11-23
-PKG_SOURCE_VERSION:=d6673547adc3768ce674799fa35952351866c9d0
-PKG_MIRROR_HASH:=ee11e1f652e9268e21dfd7835d26993c682ed33f6ba474c283cb9ef04f71e626
+PKG_SOURCE_URL=$(PROJECT_GIT)/procd.git
+PKG_SOURCE_DATE:=2018-12-27
+PKG_SOURCE_VERSION:=e2b055edf26419c183f4bdc3aa47da789081f72e
+PKG_MIRROR_HASH:=de5dbf7b48a0ec9fa0ec741f00bd4f7725c3db80ec0e85e623f13ea00b980e36
 CMAKE_INSTALL:=1
 
 PKG_LICENSE:=GPL-2.0
index 6f16b746ffb42c3c7eeba9fed628676a8eb3e761..72f25fe0c05bd284ee025d32c6aee09c1e4c074a 100644 (file)
@@ -486,6 +486,23 @@ uci_validate_section()
        return $_error
 }
 
+uci_load_validate() {
+       local _package="$1"
+       local _type="$2"
+       local _name="$3"
+       local _function="$4"
+       local _option
+       local _result
+       shift; shift; shift; shift
+       for _option in "$@"; do
+               eval "local ${_option%%:*}"
+       done
+       uci_validate_section "$_package" "$_type" "$_name" "$@"
+       _result=$?
+       [ -n "$_function" ] || return $_result
+       eval "$_function \"\$_name\" \"\$_result\""
+}
+
 _procd_wrapper \
        procd_open_service \
        procd_close_service \
index 49ca02a512966ddb210cc1c68b5cbbc24bc1de9d..b73a4c2b64ea8ea74d6f892f41201cab387dcf23 100644 (file)
@@ -11,7 +11,7 @@ PKG_NAME:=rpcd
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/rpcd.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/rpcd.git
 PKG_SOURCE_DATE:=2018-11-28
 PKG_SOURCE_VERSION:=3aa81d0dfae167eccc26203bd0c96f3e3450f253
 PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
index cf98dee13b841758b9e8b9939963e9126e9af433..36138b8a4b7c2a0cd0cb6ea1b8833292634a2269 100644 (file)
@@ -4,7 +4,7 @@ PKG_NAME:=ubox
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/ubox.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/ubox.git
 PKG_SOURCE_DATE:=2018-12-18
 PKG_SOURCE_VERSION:=876c7f5bfb9b13d48e6d7960dd114082a0a95a6d
 PKG_MIRROR_HASH:=7c51ede116f7b17d8249453b10023398a4b662e78294c6fc269c8ed375cb47ce
index ae5dd1f03dbf12256872ef4fbac1d8753e82b9fe..250f805b440619a5d799643acb29876af77fc624 100644 (file)
@@ -11,7 +11,7 @@ PROG=/sbin/logread
 
 validate_log_section()
 {
-       uci_validate_section system system "${1}" \
+       uci_load_validate system system "$1" "$2" \
                'log_file:string' \
                'log_size:uinteger' \
                'log_hostname:string' \
@@ -25,15 +25,13 @@ validate_log_section()
 
 validate_log_daemon()
 {
-       uci_validate_section system system "${1}" \
+       uci_load_validate system system "$1" "$2" \
                'log_size:uinteger:0' \
                'log_buffer_size:uinteger:0'
 }
 
 start_service_daemon()
 {
-       local log_buffer_size log_size
-       validate_log_daemon "${1}"
        [ $log_buffer_size -eq 0 -a $log_size -gt 0 ] && log_buffer_size=$log_size
        [ $log_buffer_size -eq 0 ] && log_buffer_size=64
        procd_open_instance
@@ -47,9 +45,8 @@ start_service_file()
 {
        PIDCOUNT="$(( ${PIDCOUNT} + 1))"
        local pid_file="/var/run/logread.${PIDCOUNT}.pid"
-       local log_file log_size
 
-       validate_log_section "${1}" || {
+       [ "$2" = 0 ] || {
                echo "validation failed"
                return 1
        }
@@ -67,9 +64,8 @@ start_service_remote()
 {
        PIDCOUNT="$(( ${PIDCOUNT} + 1))"
        local pid_file="/var/run/logread.${PIDCOUNT}.pid"
-       local log_ip log_port log_proto log_prefix log_remote log_trailer_null log_hostname
 
-       validate_log_section "${1}" || {
+       [ "$2" = 0 ] || {
                echo "validation failed"
                return 1
        }
@@ -96,7 +92,7 @@ service_triggers()
 start_service()
 {
        config_load system
-       config_foreach start_service_daemon system
-       config_foreach start_service_file system
-       config_foreach start_service_remote system
+       config_foreach validate_log_daemon system start_service_daemon
+       config_foreach validate_log_section system start_service_file
+       config_foreach validate_log_section system start_service_remote
 }
index 16380eb82983f003c583f375598b518c664d3d56..2c81b199b455a6c997e2d4ecfa80e16c2a9c24b7 100644 (file)
@@ -4,7 +4,7 @@ PKG_NAME:=ubus
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/ubus.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/ubus.git
 PKG_SOURCE_DATE:=2018-10-06
 PKG_SOURCE_VERSION:=221ce7e7ff1bd1a0c9995fa9d32f58e865f7207f
 PKG_MIRROR_HASH:=e6ab3f009688740eb6d7a1857df59a6ba10ae8ae0fac78ae0fd6672f71c02dce
@@ -36,7 +36,7 @@ define Package/libubus
   SECTION:=libs
   CATEGORY:=Libraries
   DEPENDS:=+libubox
-  ABI_VERSION:=$(PKG_VERSION)
+  ABI_VERSION:=20170705
   TITLE:=libreCMC RPC client library
 endef
 
index b750bca0216874baef8445345aa741cf3773d43f..1344a0acb3c00b19ec529826ef471adfa5284c45 100644 (file)
@@ -4,7 +4,7 @@ PKG_NAME:=ucert
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/ucert.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/ucert.git
 PKG_SOURCE_DATE:=2018-09-18
 PKG_SOURCE_VERSION:=e1c722b1b6cbf2527b3178342464e56b97825874
 PKG_MIRROR_HASH:=36dcca7c2d649a6c34a8daaaef4698fbeb808fd6580c6bfb1ca35f4f06825d17
index 0f7ef68f17f666d896ff57a35661ae221ccf16d6..8ac90078cc29ab3cd8e05ace0cbb1311e06a40a8 100644 (file)
@@ -9,9 +9,9 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=uci
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/uci.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/uci.git
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_DATE=2018-08-11
 PKG_SOURCE_VERSION:=4c8b4d6efc8302b508d261573351fffb75bd98c2
@@ -35,6 +35,7 @@ define Package/libuci
   CATEGORY:=Libraries
   TITLE:=C library for the Unified Configuration Interface (UCI)
   DEPENDS:=+libubox
+  ABI_VERSION:=20130104
 endef
 
 define Package/uci
index b230116b284d3ce2be2a2ff0ce77f64ff91af863..2b86b19bbc1d6356d338d3b00226262b54321c9b 100644 (file)
@@ -4,7 +4,7 @@ PKG_NAME:=usign
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/usign.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/usign.git
 PKG_SOURCE_DATE:=2015-07-04
 PKG_SOURCE_VERSION:=ef6419142a3b0fbcddcccf536e3c1880302c6f89
 PKG_MIRROR_HASH:=9499ed7e40889b364e446a428e185c40986b75087888bd7e1496542457a6dbaa
diff --git a/package/utils/admswconfig/Makefile b/package/utils/admswconfig/Makefile
deleted file mode 100644 (file)
index b2a1632..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# Copyright (C) 2007 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=admswconfig
-PKG_VERSION:=0.1
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://downloads.openwrt.org/sources
-PKG_HASH:=37b4409ea2105520b4a7327e53c3210251000ddf58f81a8e4c19e6ff9d615afe
-
-PKG_FLAGS:=nonshared
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/admswconfig
-  SECTION:=utils
-  CATEGORY:=Utilities
-  TITLE:=ADM5120 Switch configuration tool
-  DEPENDS:=@TARGET_adm5120
-  MAINTAINER:=Florian Fainelli <florian@openwrt.org>
-endef
-
-define Package/admswconfig/description
- A program to configure the internal ethernet switch of an ADM5120 processor.
- You need the corresponding driver for the switch in the kernel. 
- With this program you can configure which ports of the switch belong 
- to the different ethernet devices.
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-       $(TARGET_CC) $(TARGET_CFLAGS) -Os $(PKG_BUILD_DIR)/admswconfig.c -o $(PKG_BUILD_DIR)/$(PKG_NAME)
-endef
-
-define Package/admswconfig/install
-       $(INSTALL_DIR) $(1)/sbin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/admswconfig $(1)/sbin/
-       $(INSTALL_DIR) $(1)/lib/network/
-       $(INSTALL_DATA) ./files/admswswitch.sh $(1)/lib/network/admswswitch.sh
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/admswconfig $(1)/etc/init.d/admswconfig
-endef
-
-$(eval $(call BuildPackage,admswconfig))
diff --git a/package/utils/admswconfig/files/admswconfig b/package/utils/admswconfig/files/admswconfig
deleted file mode 100644 (file)
index 7231030..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2006 OpenWrt.org
-
-START=05
-
-start() {
-       [ -e /etc/config/network ] && exit 0
-
-       mkdir -p /etc/config
-
-       board_name=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /system type/ {print $2}' /proc/cpuinfo)
-
-       case "$board_name" in
-       "Compex WP54"*)
-               board="Compex WP54";;
-       esac
-
-       echo "$board" |awk '
-       function p(cfgname, name) {
-               if (c[name] != "") print "      option " cfgname "      \"" c[name] "\""
-       }
-
-       BEGIN {
-               FS="="
-               c["lan_ifname"]="eth0"
-               c["wan_ifname"]="eth1"
-               c["eth0ports"]="1 2 3 4"
-               c["eth1ports"]="0"
-       }
-       END {
-               board=$1
-               if (board == "Compex WP54") {
-                       c["eth0ports"]="0"
-                       c["eth1ports"]="1"
-               }
-
-               print "#### VLAN configuration "
-               print "config switch"
-               p("eth0", "eth0ports")
-               p("eth1", "eth1ports")
-               print ""
-               print ""
-               print "#### Loopback configuration"
-               print "config interface loopback"
-               print " option ifname   \"lo\""
-               print " option proto    static"
-               print " option ipaddr   127.0.0.1"
-               print " option netmask  255.0.0.0"
-               print ""
-               print ""
-               print "#### LAN configuration"
-               print "config interface lan"
-               print " option type     bridge"
-               p("ifname", "lan_ifname")
-               p("macaddr", "lan_macaddr")
-               print " option proto    static"
-               print " option ipaddr   192.168.1.1"
-               print " option netmask  255.255.255.0"
-               print ""
-               print ""
-               print "#### WAN configuration"
-               print "config interface wan"
-               p("ifname", "wan_ifname")
-               p("macaddr", "wan_macaddr")
-               print " option proto    dhcp"
-       }' > /etc/config/network
-}
-
diff --git a/package/utils/admswconfig/files/admswswitch.sh b/package/utils/admswconfig/files/admswswitch.sh
deleted file mode 100644 (file)
index 3b8aabf..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-# Copyright (C) 2006 OpenWrt.org
-
-setup_switch_vlan() {
-       config_get ports "$CONFIG_SECTION" "eth$1"
-       ports=`echo "$ports"| sed s/" "/""/g`
-       ip link set dev eth$1 down
-       admswconfig eth$1 ${ports}c
-       ip link set dev eth$1 up
-}
-
-setup_switch() {
-       config_cb() {
-               case "$1" in
-                       switch)
-                               option_cb() {
-                                       case "$1" in
-                                               eth*) setup_switch_vlan "${1##eth}";;
-                                       esac
-                               }
-                       ;;
-                       *)
-                               option_cb() { return 0; }
-                       ;;
-               esac
-       }
-       config_load network
-}
diff --git a/package/utils/admswconfig/patches/001-matrix.patch b/package/utils/admswconfig/patches/001-matrix.patch
deleted file mode 100644 (file)
index e50d515..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/admswconfig.c
-+++ b/admswconfig.c
-@@ -111,9 +111,9 @@ int main(int argc, char **argv)
-               }
-       } else {
-               /* display matrix */
--              printf("ethX\tport0\tport1\tport2\tport3\tport4");
--              if (info.ports == 6)
--                      printf("\tport5");
-+              printf("ethX");
-+              for (i = 0; i < info.ports; i++)
-+                      printf("\tport%d", i);
-               printf("\tCPU\n");
-               for (i = 0; i < info.ports; i++) {
-                       printf("%d", i);
diff --git a/package/utils/admswconfig/patches/002-fix-musl.patch b/package/utils/admswconfig/patches/002-fix-musl.patch
deleted file mode 100644 (file)
index 3dad1f9..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/admswconfig.c
-+++ b/admswconfig.c
-@@ -68,7 +68,7 @@ int main(int argc, char **argv)
-               return 1;
-       }
-       strcpy(ifr.ifr_name, device);
--      ifr.ifr_data = (caddr_t)&info;
-+      ifr.ifr_data = (void *)&info;
-       if (ioctl(fd, SIOCGADMINFO, &ifr) < 0) {
-               perror("SIOCGADMINFO");
-               return 1;
index 917e714f6cc38f1ded8de20ca32f1b8c3014ef62..4d87e182788d540e571917ad8a0f08f6f005e233 100644 (file)
@@ -18,9 +18,4 @@ config BUSYBOX_CUSTOM
        source "config/Config.in"
        endif
 
-config BUSYBOX_USE_LIBRPC
-       bool
-       default y if BUSYBOX_CUSTOM && BUSYBOX_CONFIG_FEATURE_HAVE_RPC
-       default y if !BUSYBOX_CUSTOM && BUSYBOX_DEFAULT_FEATURE_HAVE_RPC
-
 endif
index 6fd73b97cf6f4a068a84873e3f68ada7e50c8b3f..bf0cec743ab02b801cc824deb67f957d85bebe1f 100644 (file)
@@ -8,16 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=busybox
-PKG_VERSION:=1.30.0
-PKG_RELEASE:=3
+PKG_VERSION:=1.30.1
+PKG_RELEASE:=1
 PKG_FLAGS:=essential
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://www.busybox.net/downloads \
                http://sources.buildroot.net
-PKG_HASH:=9553da068c0a30b1b8b72479908c1ba58672e2be7b535363a88de5e0f7bc04ce
+PKG_HASH:=3d1d04a4dbd34048f4794815a5c48ebb9eb53c5277e09ffffc060323b95dfbdc
 
-PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam
+PKG_BUILD_DEPENDS:=BUSYBOX_CONFIG_PAM:libpam
 PKG_BUILD_PARALLEL:=1
 PKG_CHECK_FORMAT_SECURITY:=0
 
@@ -43,7 +43,7 @@ define Package/busybox
   MAINTAINER:=Felix Fietkau <nbd@nbd.name>
   TITLE:=Core utilities for embedded Linux
   URL:=http://busybox.net/
-  DEPENDS:=+BUSYBOX_USE_LIBRPC:librpc +BUSYBOX_CONFIG_PAM:libpam +BUSYBOX_CONFIG_NTPD:jsonfilter
+  DEPENDS:=+BUSYBOX_CONFIG_PAM:libpam +BUSYBOX_CONFIG_NTPD:jsonfilter
   MENU:=1
   ALTERNATIVES:=\
     $(call BUSYBOX_IF_ENABLED,FIND,    100:/usr/bin/find:/bin/busybox) \
@@ -73,6 +73,12 @@ define Package/busybox/config
        source "$(SOURCE)/Config.in"
 endef
 
+ifdef CONFIG_BUSYBOX_CONFIG_FEATURE_SYSLOG
+define Package/busybox/conffiles
+/etc/syslog.conf
+endef
+endif
+
 # don't create a version string containing the actual timestamp
 export KCONFIG_NOTIMESTAMP=1
 
@@ -82,9 +88,6 @@ LDLIBS:=m crypt
 endif
 
 LDLIBS += $(call BUSYBOX_IF_ENABLED,PAM,pam pam_misc pthread)
-ifdef CONFIG_BUSYBOX_USE_LIBRPC
-  LDLIBS += rpc
-endif
 ifeq ($(CONFIG_USE_GLIBC),y)
   LDLIBS += $(call BUSYBOX_IF_ENABLED,NSLOOKUP_LIBRECMC,resolv)
 endif
index dc279c520b962bad7045880199ad32380895a90a..74493aa47542f004b195c5b9585dbde396de1dc2 100644 (file)
@@ -8,7 +8,7 @@ config BUSYBOX_CONFIG_HAVE_DOT_CONFIG
        bool
        default BUSYBOX_DEFAULT_HAVE_DOT_CONFIG
 
-menu "Busybox Settings"
+menu "Settings"
 
 config BUSYBOX_CONFIG_DESKTOP
        bool "Enable compatibility for full-blown desktop systems"
@@ -693,16 +693,17 @@ config BUSYBOX_CONFIG_EFENCE
 
 endchoice
 
-endmenu
-
 source libbb/Config.in
 
+endmenu
+
 comment "Applets"
 
 source archival/Config.in
 source coreutils/Config.in
 source console-tools/Config.in
 source debianutils/Config.in
+source klibc-utils/Config.in
 source editors/Config.in
 source findutils/Config.in
 source init/Config.in
index 3ea8353de680fc58803ba076e30e614841c4528c..64e4601a865a9550ec0096239ad6bcc2e6f4ef88 100644 (file)
@@ -1,7 +1,7 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Archival Utilities"
@@ -27,221 +27,210 @@ config BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z
        default BUSYBOX_DEFAULT_FEATURE_SEAMLESS_Z  # it is ancient
 
 config BUSYBOX_CONFIG_AR
-       bool "ar"
+       bool "ar (9.5 kb)"
        default BUSYBOX_DEFAULT_AR  # needs to be improved to be able to replace binutils ar
        help
-         ar is an archival utility program used to create, modify, and
-         extract contents from archives. In practice, it is used exclusively
-         for object module archives used by compilers.
+       ar is an archival utility program used to create, modify, and
+       extract contents from archives. In practice, it is used exclusively
+       for object module archives used by compilers.
 
-         On an x86 system, the ar applet adds about 1K.
-
-         Unless you have a specific application which requires ar, you should
-         probably say N here: most compilers come with their own ar utility.
+       Unless you have a specific application which requires ar, you should
+       probably say N here: most compilers come with their own ar utility.
 
 config BUSYBOX_CONFIG_FEATURE_AR_LONG_FILENAMES
        bool "Support long filenames (not needed for debs)"
        default BUSYBOX_DEFAULT_FEATURE_AR_LONG_FILENAMES
        depends on BUSYBOX_CONFIG_AR
        help
-         By default the ar format can only store the first 15 characters
-         of the filename, this option removes that limitation.
-         It supports the GNU ar long filename method which moves multiple long
-         filenames into a the data section of a new ar entry.
+       By default the ar format can only store the first 15 characters
+       of the filename, this option removes that limitation.
+       It supports the GNU ar long filename method which moves multiple long
+       filenames into a the data section of a new ar entry.
 
 config BUSYBOX_CONFIG_FEATURE_AR_CREATE
        bool "Support archive creation"
        default BUSYBOX_DEFAULT_FEATURE_AR_CREATE
        depends on BUSYBOX_CONFIG_AR
        help
-         This enables archive creation (-c and -r) with busybox ar.
+       This enables archive creation (-c and -r) with busybox ar.
 config BUSYBOX_CONFIG_UNCOMPRESS
-       bool "uncompress"
+       bool "uncompress (7.1 kb)"
        default BUSYBOX_DEFAULT_UNCOMPRESS  # ancient
        help
-         uncompress is used to decompress archives created by compress.
-         Not much used anymore, replaced by gzip/gunzip.
+       uncompress is used to decompress archives created by compress.
+       Not much used anymore, replaced by gzip/gunzip.
 config BUSYBOX_CONFIG_GUNZIP
-       bool "gunzip"
+       bool "gunzip (11 kb)"
        default BUSYBOX_DEFAULT_GUNZIP
        select BUSYBOX_CONFIG_FEATURE_GZIP_DECOMPRESS
        help
-         gunzip is used to decompress archives created by gzip.
-         You can use the `-t' option to test the integrity of
-         an archive, without decompressing it.
+       gunzip is used to decompress archives created by gzip.
+       You can use the '-t' option to test the integrity of
+       an archive, without decompressing it.
 
 config BUSYBOX_CONFIG_ZCAT
-       bool "zcat"
+       bool "zcat (24 kb)"
        default BUSYBOX_DEFAULT_ZCAT
        select BUSYBOX_CONFIG_FEATURE_GZIP_DECOMPRESS
        help
-         Alias to "gunzip -c".
+       Alias to "gunzip -c".
 
 config BUSYBOX_CONFIG_FEATURE_GUNZIP_LONG_OPTIONS
        bool "Enable long options"
        default BUSYBOX_DEFAULT_FEATURE_GUNZIP_LONG_OPTIONS
        depends on (BUSYBOX_CONFIG_GUNZIP || BUSYBOX_CONFIG_ZCAT) && BUSYBOX_CONFIG_LONG_OPTS
 config BUSYBOX_CONFIG_BUNZIP2
-       bool "bunzip2"
+       bool "bunzip2 (8.7 kb)"
        default BUSYBOX_DEFAULT_BUNZIP2
        select BUSYBOX_CONFIG_FEATURE_BZIP2_DECOMPRESS
        help
-         bunzip2 is a compression utility using the Burrows-Wheeler block
-         sorting text compression algorithm, and Huffman coding. Compression
-         is generally considerably better than that achieved by more
-         conventional LZ77/LZ78-based compressors, and approaches the
-         performance of the PPM family of statistical compressors.
+       bunzip2 is a compression utility using the Burrows-Wheeler block
+       sorting text compression algorithm, and Huffman coding. Compression
+       is generally considerably better than that achieved by more
+       conventional LZ77/LZ78-based compressors, and approaches the
+       performance of the PPM family of statistical compressors.
 
-         Unless you have a specific application which requires bunzip2, you
-         should probably say N here.
+       Unless you have a specific application which requires bunzip2, you
+       should probably say N here.
 
 config BUSYBOX_CONFIG_BZCAT
-       bool "bzcat"
+       bool "bzcat (8.7 kb)"
        default BUSYBOX_DEFAULT_BZCAT
        select BUSYBOX_CONFIG_FEATURE_BZIP2_DECOMPRESS
        help
-         Alias to "bunzip2 -c".
+       Alias to "bunzip2 -c".
 config BUSYBOX_CONFIG_UNLZMA
-       bool "unlzma"
+       bool "unlzma (7.5 kb)"
        default BUSYBOX_DEFAULT_UNLZMA
        help
-         unlzma is a compression utility using the Lempel-Ziv-Markov chain
-         compression algorithm, and range coding. Compression
-         is generally considerably better than that achieved by the bzip2
-         compressors.
-
-         The BusyBox unlzma applet is limited to decompression only.
-         On an x86 system, this applet adds about 4K.
+       unlzma is a compression utility using the Lempel-Ziv-Markov chain
+       compression algorithm, and range coding. Compression
+       is generally considerably better than that achieved by the bzip2
+       compressors.
 
 config BUSYBOX_CONFIG_LZCAT
-       bool "lzcat"
+       bool "lzcat (7.5 kb)"
        default BUSYBOX_DEFAULT_LZCAT
        help
-         unlzma is a compression utility using the Lempel-Ziv-Markov chain
-         compression algorithm, and range coding. Compression
-         is generally considerably better than that achieved by the bzip2
-         compressors.
-
-         The BusyBox unlzma applet is limited to decompression only.
-         On an x86 system, this applet adds about 4K.
+       Alias to "unlzma -c".
 
 config BUSYBOX_CONFIG_LZMA
        bool "lzma -d"
        default BUSYBOX_DEFAULT_LZMA
        help
-         Enable this option if you want commands like "lzma -d" to work.
-         IOW: you'll get lzma applet, but it will always require -d option.
-
-config BUSYBOX_CONFIG_FEATURE_LZMA_FAST
-       bool "Optimize for speed"
-       default BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
-       depends on BUSYBOX_CONFIG_UNLZMA || BUSYBOX_CONFIG_LZCAT || BUSYBOX_CONFIG_LZMA
-       help
-         This option reduces decompression time by about 25% at the cost of
-         a 1K bigger binary.
+       Enable this option if you want commands like "lzma -d" to work.
+       IOW: you'll get lzma applet, but it will always require -d option.
 config BUSYBOX_CONFIG_UNXZ
-       bool "unxz"
+       bool "unxz (13 kb)"
        default BUSYBOX_DEFAULT_UNXZ
        help
-         unxz is a unlzma successor.
+       unxz is a unlzma successor.
 
 config BUSYBOX_CONFIG_XZCAT
-       bool "xzcat"
+       bool "xzcat (13 kb)"
        default BUSYBOX_DEFAULT_XZCAT
        help
-         Alias to "unxz -c".
+       Alias to "unxz -c".
 
 config BUSYBOX_CONFIG_XZ
        bool "xz -d"
        default BUSYBOX_DEFAULT_XZ
        help
-         Enable this option if you want commands like "xz -d" to work.
-         IOW: you'll get xz applet, but it will always require -d option.
+       Enable this option if you want commands like "xz -d" to work.
+       IOW: you'll get xz applet, but it will always require -d option.
 config BUSYBOX_CONFIG_BZIP2
-       bool "bzip2"
+       bool "bzip2 (16 kb)"
        default BUSYBOX_DEFAULT_BZIP2
        help
-         bzip2 is a compression utility using the Burrows-Wheeler block
-         sorting text compression algorithm, and Huffman coding. Compression
-         is generally considerably better than that achieved by more
-         conventional LZ77/LZ78-based compressors, and approaches the
-         performance of the PPM family of statistical compressors.
+       bzip2 is a compression utility using the Burrows-Wheeler block
+       sorting text compression algorithm, and Huffman coding. Compression
+       is generally considerably better than that achieved by more
+       conventional LZ77/LZ78-based compressors, and approaches the
+       performance of the PPM family of statistical compressors.
 
-         Unless you have a specific application which requires bzip2, you
-         should probably say N here.
+       Unless you have a specific application which requires bzip2, you
+       should probably say N here.
 
 config BUSYBOX_CONFIG_BZIP2_SMALL
-       int "Trade size for speed (0:fast 9:slow)"
-       default BUSYBOX_DEFAULT_BZIP2_SMALL
+       int "Trade bytes for speed (0:fast, 9:small)"
+       default BUSYBOX_DEFAULT_BZIP2_SMALL  # all "fast or small" options default to small
        range 0 9
        depends on BUSYBOX_CONFIG_BZIP2
        help
-         0 is faster but larger
-         9 is smaller but slower
+       Trade code size versus speed.
+       Approximate values with gcc-6.3.0 "bzip -9" compressing
+       linux-4.15.tar were:
+       value         time (sec)  code size (386)
+       9 (smallest)       70.11             7687
+       8                  67.93             8091
+       7                  67.88             8405
+       6                  67.78             8624
+       5                  67.05             9427
+       4-0 (fastest)      64.14            12083
 
 config BUSYBOX_CONFIG_FEATURE_BZIP2_DECOMPRESS
        bool "Enable decompression"
        default BUSYBOX_DEFAULT_FEATURE_BZIP2_DECOMPRESS
        depends on BUSYBOX_CONFIG_BZIP2 || BUSYBOX_CONFIG_BUNZIP2 || BUSYBOX_CONFIG_BZCAT
        help
-         Enable -d (--decompress) and -t (--test) options for bzip2.
-         This will be automatically selected if bunzip2 or bzcat is
-         enabled.
+       Enable -d (--decompress) and -t (--test) options for bzip2.
+       This will be automatically selected if bunzip2 or bzcat is
+       enabled.
 config BUSYBOX_CONFIG_CPIO
-       bool "cpio"
+       bool "cpio (15 kb)"
        default BUSYBOX_DEFAULT_CPIO
        help
-         cpio is an archival utility program used to create, modify, and
-         extract contents from archives.
-         cpio has 110 bytes of overheads for every stored file.
+       cpio is an archival utility program used to create, modify, and
+       extract contents from archives.
+       cpio has 110 bytes of overheads for every stored file.
 
-         This implementation of cpio can extract cpio archives created in the
-         "newc" or "crc" format.
+       This implementation of cpio can extract cpio archives created in the
+       "newc" or "crc" format.
 
-         Unless you have a specific application which requires cpio, you
-         should probably say N here.
+       Unless you have a specific application which requires cpio, you
+       should probably say N here.
 
 config BUSYBOX_CONFIG_FEATURE_CPIO_O
        bool "Support archive creation"
        default BUSYBOX_DEFAULT_FEATURE_CPIO_O
        depends on BUSYBOX_CONFIG_CPIO
        help
-         This implementation of cpio can create cpio archives in the "newc"
-         format only.
+       This implementation of cpio can create cpio archives in the "newc"
+       format only.
 
 config BUSYBOX_CONFIG_FEATURE_CPIO_P
        bool "Support passthrough mode"
        default BUSYBOX_DEFAULT_FEATURE_CPIO_P
        depends on BUSYBOX_CONFIG_FEATURE_CPIO_O
        help
-         Passthrough mode. Rarely used.
+       Passthrough mode. Rarely used.
 config BUSYBOX_CONFIG_DPKG
-       bool "dpkg"
+       bool "dpkg (43 kb)"
        default BUSYBOX_DEFAULT_DPKG
        select BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ
        help
-         dpkg is a medium-level tool to install, build, remove and manage
-         Debian packages.
+       dpkg is a medium-level tool to install, build, remove and manage
+       Debian packages.
 
-         This implementation of dpkg has a number of limitations,
-         you should use the official dpkg if possible.
+       This implementation of dpkg has a number of limitations,
+       you should use the official dpkg if possible.
 config BUSYBOX_CONFIG_DPKG_DEB
-       bool "dpkg_deb"
+       bool "dpkg-deb (30 kb)"
        default BUSYBOX_DEFAULT_DPKG_DEB
        select BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ
        help
-         dpkg-deb unpacks and provides information about Debian archives.
+       dpkg-deb unpacks and provides information about Debian archives.
 
-         This implementation of dpkg-deb cannot pack archives.
+       This implementation of dpkg-deb cannot pack archives.
 
-         Unless you have a specific application which requires dpkg-deb,
-         say N here.
+       Unless you have a specific application which requires dpkg-deb,
+       say N here.
 config BUSYBOX_CONFIG_GZIP
-       bool "gzip"
+       bool "gzip (17 kb)"
        default BUSYBOX_DEFAULT_GZIP
        help
-         gzip is used to compress files.
-         It's probably the most widely used UNIX compression program.
+       gzip is used to compress files.
+       It's probably the most widely used UNIX compression program.
 
 config BUSYBOX_CONFIG_FEATURE_GZIP_LONG_OPTIONS
        bool "Enable long options"
@@ -254,73 +243,73 @@ config BUSYBOX_CONFIG_GZIP_FAST
        range 0 2
        depends on BUSYBOX_CONFIG_GZIP
        help
-         Enable big memory options for gzip.
-         0: small buffers, small hash-tables
-         1: larger buffers, larger hash-tables
-         2: larger buffers, largest hash-tables
-         Larger models may give slightly better compression
+       Enable big memory options for gzip.
+       0: small buffers, small hash-tables
+       1: larger buffers, larger hash-tables
+       2: larger buffers, largest hash-tables
+       Larger models may give slightly better compression
 
 config BUSYBOX_CONFIG_FEATURE_GZIP_LEVELS
        bool "Enable compression levels"
        default BUSYBOX_DEFAULT_FEATURE_GZIP_LEVELS
        depends on BUSYBOX_CONFIG_GZIP
        help
-         Enable support for compression levels 4-9. The default level
-         is 6. If levels 1-3 are specified, 4 is used.
-         If this option is not selected, -N options are ignored and -9
-         is used.
+       Enable support for compression levels 4-9. The default level
+       is 6. If levels 1-3 are specified, 4 is used.
+       If this option is not selected, -N options are ignored and -9
+       is used.
 
 config BUSYBOX_CONFIG_FEATURE_GZIP_DECOMPRESS
        bool "Enable decompression"
        default BUSYBOX_DEFAULT_FEATURE_GZIP_DECOMPRESS
        depends on BUSYBOX_CONFIG_GZIP || BUSYBOX_CONFIG_GUNZIP || BUSYBOX_CONFIG_ZCAT
        help
-         Enable -d (--decompress) and -t (--test) options for gzip.
-         This will be automatically selected if gunzip or zcat is
-         enabled.
+       Enable -d (--decompress) and -t (--test) options for gzip.
+       This will be automatically selected if gunzip or zcat is
+       enabled.
 config BUSYBOX_CONFIG_LZOP
-       bool "lzop"
+       bool "lzop (12 kb)"
        default BUSYBOX_DEFAULT_LZOP
        help
-         Lzop compression/decompresion.
+       Lzop compression/decompresion.
 
 config BUSYBOX_CONFIG_UNLZOP
-       bool "unlzop"
+       bool "unlzop (13 kb)"
        default BUSYBOX_DEFAULT_UNLZOP  # INCOMPAT: upstream lzop does not provide such tool
        help
-         Lzop decompresion.
+       Lzop decompresion.
 
 config BUSYBOX_CONFIG_LZOPCAT
-       bool "lzopcat"
+       bool "lzopcat (13 kb)"
        default BUSYBOX_DEFAULT_LZOPCAT  # INCOMPAT: upstream lzop does not provide such tool
        help
-         Alias to "unlzop -c".
+       Alias to "lzop -dc".
 
 config BUSYBOX_CONFIG_LZOP_COMPR_HIGH
        bool "lzop compression levels 7,8,9 (not very useful)"
        default BUSYBOX_DEFAULT_LZOP_COMPR_HIGH
        depends on BUSYBOX_CONFIG_LZOP || BUSYBOX_CONFIG_UNLZOP || BUSYBOX_CONFIG_LZOPCAT
        help
-         High levels (7,8,9) of lzop compression. These levels
-         are actually slower than gzip at equivalent compression ratios
-         and take up 3.2K of code.
+       High levels (7,8,9) of lzop compression. These levels
+       are actually slower than gzip at equivalent compression ratios
+       and take up 3.2K of code.
 config BUSYBOX_CONFIG_RPM
-       bool "rpm"
+       bool "rpm (32 kb)"
        default BUSYBOX_DEFAULT_RPM
        help
-         Mini RPM applet - queries and extracts RPM packages.
+       Mini RPM applet - queries and extracts RPM packages.
 config BUSYBOX_CONFIG_RPM2CPIO
-       bool "rpm2cpio"
+       bool "rpm2cpio (21 kb)"
        default BUSYBOX_DEFAULT_RPM2CPIO
        help
-         Converts a RPM file into a CPIO archive.
+       Converts a RPM file into a CPIO archive.
 config BUSYBOX_CONFIG_TAR
-       bool "tar"
+       bool "tar (39 kb)"
        default BUSYBOX_DEFAULT_TAR
        help
-         tar is an archiving program. It's commonly used with gzip to
-         create compressed archives. It's probably the most widely used
-         UNIX archive program.
+       tar is an archiving program. It's commonly used with gzip to
+       create compressed archives. It's probably the most widely used
+       UNIX archive program.
 
 config BUSYBOX_CONFIG_FEATURE_TAR_LONG_OPTIONS
        bool "Enable long options"
@@ -337,35 +326,35 @@ config BUSYBOX_CONFIG_FEATURE_TAR_AUTODETECT
        default BUSYBOX_DEFAULT_FEATURE_TAR_AUTODETECT
        depends on BUSYBOX_CONFIG_TAR && (BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z || BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ || BUSYBOX_CONFIG_FEATURE_SEAMLESS_BZ2 || BUSYBOX_CONFIG_FEATURE_SEAMLESS_LZMA || BUSYBOX_CONFIG_FEATURE_SEAMLESS_XZ)
        help
-         With this option tar can automatically detect compressed
-         tarballs. Currently it works only on files (not pipes etc).
+       With this option tar can automatically detect compressed
+       tarballs. Currently it works only on files (not pipes etc).
 
 config BUSYBOX_CONFIG_FEATURE_TAR_FROM
-       bool "Enable -X (exclude from) and -T (include from) options)"
+       bool "Enable -X (exclude from) and -T (include from) options"
        default BUSYBOX_DEFAULT_FEATURE_TAR_FROM
        depends on BUSYBOX_CONFIG_TAR
        help
-         If you enable this option you'll be able to specify
-         a list of files to include or exclude from an archive.
+       If you enable this option you'll be able to specify
+       a list of files to include or exclude from an archive.
 
 config BUSYBOX_CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY
        bool "Support old tar header format"
        default BUSYBOX_DEFAULT_FEATURE_TAR_OLDGNU_COMPATIBILITY
        depends on BUSYBOX_CONFIG_TAR || BUSYBOX_CONFIG_DPKG
        help
-         This option is required to unpack archives created in
-         the old GNU format; help to kill this old format by
-         repacking your ancient archives with the new format.
+       This option is required to unpack archives created in
+       the old GNU format; help to kill this old format by
+       repacking your ancient archives with the new format.
 
 config BUSYBOX_CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY
        bool "Enable untarring of tarballs with checksums produced by buggy Sun tar"
        default BUSYBOX_DEFAULT_FEATURE_TAR_OLDSUN_COMPATIBILITY
        depends on BUSYBOX_CONFIG_TAR || BUSYBOX_CONFIG_DPKG
        help
-         This option is required to unpack archives created by some old
-         version of Sun's tar (it was calculating checksum using signed
-         arithmetic). It is said to be fixed in newer Sun tar, but "old"
-         tarballs still exist.
+       This option is required to unpack archives created by some old
+       version of Sun's tar (it was calculating checksum using signed
+       arithmetic). It is said to be fixed in newer Sun tar, but "old"
+       tarballs still exist.
 
 config BUSYBOX_CONFIG_FEATURE_TAR_GNU_EXTENSIONS
        bool "Support GNU tar extensions (long filenames)"
@@ -377,18 +366,18 @@ config BUSYBOX_CONFIG_FEATURE_TAR_TO_COMMAND
        default BUSYBOX_DEFAULT_FEATURE_TAR_TO_COMMAND
        depends on BUSYBOX_CONFIG_TAR && BUSYBOX_CONFIG_FEATURE_TAR_LONG_OPTIONS
        help
-         If you enable this option you'll be able to instruct tar to send
-         the contents of each extracted file to the standard input of an
-         external program.
+       If you enable this option you'll be able to instruct tar to send
+       the contents of each extracted file to the standard input of an
+       external program.
 
 config BUSYBOX_CONFIG_FEATURE_TAR_UNAME_GNAME
        bool "Enable use of user and group names"
        default BUSYBOX_DEFAULT_FEATURE_TAR_UNAME_GNAME
        depends on BUSYBOX_CONFIG_TAR
        help
-         Enable use of user and group names in tar. This affects contents
-         listings (-t) and preserving permissions when unpacking (-p).
-         +200 bytes.
+       Enable use of user and group names in tar. This affects contents
+       listings (-t) and preserving permissions when unpacking (-p).
+       +200 bytes.
 
 config BUSYBOX_CONFIG_FEATURE_TAR_NOPRESERVE_TIME
        bool "Enable -m (do not preserve time) GNU option"
@@ -400,26 +389,26 @@ config BUSYBOX_CONFIG_FEATURE_TAR_SELINUX
        default BUSYBOX_DEFAULT_FEATURE_TAR_SELINUX
        depends on BUSYBOX_CONFIG_TAR && BUSYBOX_CONFIG_SELINUX
        help
-         With this option busybox supports restoring SELinux labels
-         when extracting files from tar archives.
+       With this option busybox supports restoring SELinux labels
+       when extracting files from tar archives.
 config BUSYBOX_CONFIG_UNZIP
-       bool "unzip"
+       bool "unzip (26 kb)"
        default BUSYBOX_DEFAULT_UNZIP
        help
-         unzip will list or extract files from a ZIP archive,
-         commonly found on DOS/WIN systems. The default behavior
-         (with no options) is to extract the archive into the
-         current directory.
+       unzip will list or extract files from a ZIP archive,
+       commonly found on DOS/WIN systems. The default behavior
+       (with no options) is to extract the archive into the
+       current directory.
 
 config BUSYBOX_CONFIG_FEATURE_UNZIP_CDF
        bool "Read and use Central Directory data"
        default BUSYBOX_DEFAULT_FEATURE_UNZIP_CDF
        depends on BUSYBOX_CONFIG_UNZIP
        help
-         If you know that you only need to deal with simple
-         ZIP files without deleted/updated files, SFX archives etc,
-         you can reduce code size by unselecting this option.
-         To support less trivial ZIPs, say Y.
+       If you know that you only need to deal with simple
+       ZIP files without deleted/updated files, SFX archives etc,
+       you can reduce code size by unselecting this option.
+       To support less trivial ZIPs, say Y.
 
 config BUSYBOX_CONFIG_FEATURE_UNZIP_BZIP2
        bool "Support compression method 12 (bzip2)"
@@ -436,4 +425,12 @@ config BUSYBOX_CONFIG_FEATURE_UNZIP_XZ
        default BUSYBOX_DEFAULT_FEATURE_UNZIP_XZ
        depends on BUSYBOX_CONFIG_FEATURE_UNZIP_CDF && BUSYBOX_CONFIG_DESKTOP
 
+config BUSYBOX_CONFIG_FEATURE_LZMA_FAST
+       bool "Optimize lzma for speed"
+       default BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
+       depends on BUSYBOX_CONFIG_UNLZMA || BUSYBOX_CONFIG_LZCAT || BUSYBOX_CONFIG_LZMA || BUSYBOX_CONFIG_FEATURE_SEAMLESS_LZMA
+       help
+       This option reduces decompression time by about 25% at the cost of
+       a 1K bigger binary.
+
 endmenu
index dcc19a567deb84f5f9ee1db3efe5ccf8f41097c9..9f8a257ebee8d8aca7d1469f57bc9cb04a30c6c3 100644 (file)
@@ -1,76 +1,76 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Console Utilities"
 
 config BUSYBOX_CONFIG_CHVT
-       bool "chvt"
+       bool "chvt (2 kb)"
        default BUSYBOX_DEFAULT_CHVT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         This program is used to change to another terminal.
-         Example: chvt 4 (change to terminal /dev/tty4)
+       This program is used to change to another terminal.
+       Example: chvt 4 (change to terminal /dev/tty4)
 config BUSYBOX_CONFIG_CLEAR
-       bool "clear"
+       bool "clear (tiny)"
        default BUSYBOX_DEFAULT_CLEAR
        help
-         This program clears the terminal screen.
+       This program clears the terminal screen.
 config BUSYBOX_CONFIG_DEALLOCVT
-       bool "deallocvt"
+       bool "deallocvt (1.9 kb)"
        default BUSYBOX_DEFAULT_DEALLOCVT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         This program deallocates unused virtual consoles.
+       This program deallocates unused virtual consoles.
 config BUSYBOX_CONFIG_DUMPKMAP
-       bool "dumpkmap"
+       bool "dumpkmap (1.6 kb)"
        default BUSYBOX_DEFAULT_DUMPKMAP
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         This program dumps the kernel's keyboard translation table to
-         stdout, in binary format. You can then use loadkmap to load it.
+       This program dumps the kernel's keyboard translation table to
+       stdout, in binary format. You can then use loadkmap to load it.
 config BUSYBOX_CONFIG_FGCONSOLE
-       bool "fgconsole"
+       bool "fgconsole (1.5 kb)"
        default BUSYBOX_DEFAULT_FGCONSOLE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         This program prints active (foreground) console number.
+       This program prints active (foreground) console number.
 config BUSYBOX_CONFIG_KBD_MODE
-       bool "kbd_mode"
+       bool "kbd_mode (4.1 kb)"
        default BUSYBOX_DEFAULT_KBD_MODE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         This program reports and sets keyboard mode.
+       This program reports and sets keyboard mode.
 config BUSYBOX_CONFIG_LOADFONT
-       bool "loadfont"
+       bool "loadfont (5.2 kb)"
        default BUSYBOX_DEFAULT_LOADFONT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         This program loads a console font from standard input.
+       This program loads a console font from standard input.
 
 config BUSYBOX_CONFIG_SETFONT
-       bool "setfont"
+       bool "setfont (24 kb)"
        default BUSYBOX_DEFAULT_SETFONT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Allows to load console screen map. Useful for i18n.
+       Allows to load console screen map. Useful for i18n.
 
 config BUSYBOX_CONFIG_FEATURE_SETFONT_TEXTUAL_MAP
        bool "Support reading textual screen maps"
        default BUSYBOX_DEFAULT_FEATURE_SETFONT_TEXTUAL_MAP
        depends on BUSYBOX_CONFIG_SETFONT
        help
-         Support reading textual screen maps.
+       Support reading textual screen maps.
 
 config BUSYBOX_CONFIG_DEFAULT_SETFONT_DIR
        string "Default directory for console-tools files"
        default BUSYBOX_DEFAULT_DEFAULT_SETFONT_DIR
        depends on BUSYBOX_CONFIG_SETFONT
        help
-         Directory to use if setfont's params are simple filenames
-         (not /path/to/file or ./file). Default is "" (no default directory).
+       Directory to use if setfont's params are simple filenames
+       (not /path/to/file or ./file). Default is "" (no default directory).
 
 comment "Common options for loadfont and setfont"
        depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
@@ -85,71 +85,73 @@ config BUSYBOX_CONFIG_FEATURE_LOADFONT_RAW
        default BUSYBOX_DEFAULT_FEATURE_LOADFONT_RAW
        depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
 config BUSYBOX_CONFIG_LOADKMAP
-       bool "loadkmap"
+       bool "loadkmap (1.8 kb)"
        default BUSYBOX_DEFAULT_LOADKMAP
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         This program loads a keyboard translation table from
-         standard input.
+       This program loads a keyboard translation table from
+       standard input.
 config BUSYBOX_CONFIG_OPENVT
-       bool "openvt"
+       bool "openvt (7.2 kb)"
        default BUSYBOX_DEFAULT_OPENVT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         This program is used to start a command on an unused
-         virtual terminal.
+       This program is used to start a command on an unused
+       virtual terminal.
 config BUSYBOX_CONFIG_RESET
-       bool "reset"
+       bool "reset (345 bytes)"
        default BUSYBOX_DEFAULT_RESET
        help
-         This program is used to reset the terminal screen, if it
-         gets messed up.
+       This program is used to reset the terminal screen, if it
+       gets messed up.
 config BUSYBOX_CONFIG_RESIZE
-       bool "resize"
+       bool "resize (903 bytes)"
        default BUSYBOX_DEFAULT_RESIZE
        help
-         This program is used to (re)set the width and height of your current
-         terminal.
+       This program is used to (re)set the width and height of your current
+       terminal.
 
 config BUSYBOX_CONFIG_FEATURE_RESIZE_PRINT
        bool "Print environment variables"
        default BUSYBOX_DEFAULT_FEATURE_RESIZE_PRINT
        depends on BUSYBOX_CONFIG_RESIZE
        help
-         Prints the newly set size (number of columns and rows) of
-         the terminal.
-         E.g.:
-         COLUMNS=80;LINES=44;export COLUMNS LINES;
+       Prints the newly set size (number of columns and rows) of
+       the terminal.
+       E.g.:
+       COLUMNS=80;LINES=44;export COLUMNS LINES;
 config BUSYBOX_CONFIG_SETCONSOLE
-       bool "setconsole"
+       bool "setconsole (3.6 kb)"
        default BUSYBOX_DEFAULT_SETCONSOLE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         This program redirects the system console to another device,
-         like the current tty while logged in via telnet.
+       Redirect writes to /dev/console to another device,
+       like the current tty while logged in via telnet.
+       This does not redirect kernel log, only writes
+       from user space.
 
 config BUSYBOX_CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS
        bool "Enable long options"
        default BUSYBOX_DEFAULT_FEATURE_SETCONSOLE_LONG_OPTIONS
        depends on BUSYBOX_CONFIG_SETCONSOLE && BUSYBOX_CONFIG_LONG_OPTS
 config BUSYBOX_CONFIG_SETKEYCODES
-       bool "setkeycodes"
+       bool "setkeycodes (2.1 kb)"
        default BUSYBOX_DEFAULT_SETKEYCODES
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         This program loads entries into the kernel's scancode-to-keycode
-         map, allowing unusual keyboards to generate usable keycodes.
+       This program loads entries into the kernel's scancode-to-keycode
+       map, allowing unusual keyboards to generate usable keycodes.
 config BUSYBOX_CONFIG_SETLOGCONS
-       bool "setlogcons"
+       bool "setlogcons (1.8 kb)"
        default BUSYBOX_DEFAULT_SETLOGCONS
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         This program redirects the output console of kernel messages.
+       This program redirects the output console of kernel messages.
 config BUSYBOX_CONFIG_SHOWKEY
-       bool "showkey"
+       bool "showkey (4.7 kb)"
        default BUSYBOX_DEFAULT_SHOWKEY
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Shows keys pressed.
+       Shows keys pressed.
 
 endmenu
index c4ef1f4fb71320378e0e9e447a10c8f2aba8bb1e..76e59a571d8a7d9cdb3769853dc1069e3989fafd 100644 (file)
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Coreutils"
 
 config BUSYBOX_CONFIG_BASENAME
-       bool "basename"
+       bool "basename (438 bytes)"
        default BUSYBOX_DEFAULT_BASENAME
        help
-         basename is used to strip the directory and suffix from filenames,
-         leaving just the filename itself. Enable this option if you wish
-         to enable the 'basename' utility.
+       basename is used to strip the directory and suffix from filenames,
+       leaving just the filename itself. Enable this option if you wish
+       to enable the 'basename' utility.
 config BUSYBOX_CONFIG_CAT
-       bool "cat"
+       bool "cat (5.6 kb)"
        default BUSYBOX_DEFAULT_CAT
        help
-         cat is used to concatenate files and print them to the standard
-         output. Enable this option if you wish to enable the 'cat' utility.
+       cat is used to concatenate files and print them to the standard
+       output. Enable this option if you wish to enable the 'cat' utility.
+
+config BUSYBOX_CONFIG_FEATURE_CATN
+       bool "Enable -n and -b options"
+       default BUSYBOX_DEFAULT_FEATURE_CATN
+       depends on BUSYBOX_CONFIG_CAT
+       help
+       -n numbers all output lines while -b numbers nonempty output lines.
 
 config BUSYBOX_CONFIG_FEATURE_CATV
        bool "cat -v[etA]"
        default BUSYBOX_DEFAULT_FEATURE_CATV
        depends on BUSYBOX_CONFIG_CAT
        help
-         Display nonprinting characters as escape sequences
+       Display nonprinting characters as escape sequences
 config BUSYBOX_CONFIG_CHGRP
-       bool "chgrp"
+       bool "chgrp (7.6 kb)"
        default BUSYBOX_DEFAULT_CHGRP
        help
-         chgrp is used to change the group ownership of files.
+       chgrp is used to change the group ownership of files.
 config BUSYBOX_CONFIG_CHMOD
-       bool "chmod"
+       bool "chmod (5.5 kb)"
        default BUSYBOX_DEFAULT_CHMOD
        help
-         chmod is used to change the access permission of files.
+       chmod is used to change the access permission of files.
 config BUSYBOX_CONFIG_CHOWN
-       bool "chown"
+       bool "chown (7.6 kb)"
        default BUSYBOX_DEFAULT_CHOWN
        help
-         chown is used to change the user and/or group ownership
-         of files.
+       chown is used to change the user and/or group ownership
+       of files.
 
 config BUSYBOX_CONFIG_FEATURE_CHOWN_LONG_OPTIONS
        bool "Enable long options"
        default BUSYBOX_DEFAULT_FEATURE_CHOWN_LONG_OPTIONS
        depends on BUSYBOX_CONFIG_CHOWN && BUSYBOX_CONFIG_LONG_OPTS
 config BUSYBOX_CONFIG_CHROOT
-       bool "chroot"
+       bool "chroot (3.7 kb)"
        default BUSYBOX_DEFAULT_CHROOT
        help
-         chroot is used to change the root directory and run a command.
-         The default command is `/bin/sh'.
+       chroot is used to change the root directory and run a command.
+       The default command is '/bin/sh'.
 config BUSYBOX_CONFIG_CKSUM
-       bool "cksum"
+       bool "cksum (4.1 kb)"
        default BUSYBOX_DEFAULT_CKSUM
        help
-         cksum is used to calculate the CRC32 checksum of a file.
+       cksum is used to calculate the CRC32 checksum of a file.
 config BUSYBOX_CONFIG_COMM
-       bool "comm"
+       bool "comm (4.2 kb)"
        default BUSYBOX_DEFAULT_COMM
        help
-         comm is used to compare two files line by line and return
-         a three-column output.
+       comm is used to compare two files line by line and return
+       a three-column output.
 config BUSYBOX_CONFIG_CP
-       bool "cp"
+       bool "cp (10 kb)"
        default BUSYBOX_DEFAULT_CP
        help
-         cp is used to copy files and directories.
+       cp is used to copy files and directories.
 
 config BUSYBOX_CONFIG_FEATURE_CP_LONG_OPTIONS
        bool "Enable long options"
        default BUSYBOX_DEFAULT_FEATURE_CP_LONG_OPTIONS
        depends on BUSYBOX_CONFIG_CP && BUSYBOX_CONFIG_LONG_OPTS
        help
-         Enable long options.
-         Also add support for --parents option.
+       Enable long options.
+       Also add support for --parents option.
+
+config BUSYBOX_CONFIG_FEATURE_CP_REFLINK
+       bool "Enable --reflink[=auto]"
+       default BUSYBOX_DEFAULT_FEATURE_CP_REFLINK
+       depends on BUSYBOX_CONFIG_FEATURE_CP_LONG_OPTIONS
 config BUSYBOX_CONFIG_CUT
-       bool "cut"
+       bool "cut (5.8 kb)"
        default BUSYBOX_DEFAULT_CUT
        help
-         cut is used to print selected parts of lines from
-         each file to stdout.
+       cut is used to print selected parts of lines from
+       each file to stdout.
 config BUSYBOX_CONFIG_DATE
-       bool "date"
+       bool "date (7 kb)"
        default BUSYBOX_DEFAULT_DATE
        help
-         date is used to set the system date or display the
-         current time in the given format.
+       date is used to set the system date or display the
+       current time in the given format.
 
 config BUSYBOX_CONFIG_FEATURE_DATE_ISOFMT
        bool "Enable ISO date format output (-I)"
        default BUSYBOX_DEFAULT_FEATURE_DATE_ISOFMT
        depends on BUSYBOX_CONFIG_DATE
        help
-         Enable option (-I) to output an ISO-8601 compliant
-         date/time string.
+       Enable option (-I) to output an ISO-8601 compliant
+       date/time string.
 
 # defaults to "no": stat's nanosecond field is a bit non-portable
 config BUSYBOX_CONFIG_FEATURE_DATE_NANO
        bool "Support %[num]N nanosecond format specifier"
-       default BUSYBOX_DEFAULT_FEATURE_DATE_NANO
-       depends on BUSYBOX_CONFIG_DATE  # syscall(__NR_clock_gettime)
+       default BUSYBOX_DEFAULT_FEATURE_DATE_NANO  # syscall(__NR_clock_gettime)
+       depends on BUSYBOX_CONFIG_DATE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Support %[num]N format specifier. Adds ~250 bytes of code.
+       Support %[num]N format specifier. Adds ~250 bytes of code.
 
 config BUSYBOX_CONFIG_FEATURE_DATE_COMPAT
        bool "Support weird 'date MMDDhhmm[[YY]YY][.ss]' format"
        default BUSYBOX_DEFAULT_FEATURE_DATE_COMPAT
        depends on BUSYBOX_CONFIG_DATE
        help
-         System time can be set by 'date -s DATE' and simply 'date DATE',
-         but formats of DATE string are different. 'date DATE' accepts
-         a rather weird MMDDhhmm[[YY]YY][.ss] format with completely
-         unnatural placement of year between minutes and seconds.
-         date -s (and other commands like touch -d) use more sensible
-         formats (for one, ISO format YYYY-MM-DD hh:mm:ss.ssssss).
+       System time can be set by 'date -s DATE' and simply 'date DATE',
+       but formats of DATE string are different. 'date DATE' accepts
+       a rather weird MMDDhhmm[[YY]YY][.ss] format with completely
+       unnatural placement of year between minutes and seconds.
+       date -s (and other commands like touch -d) use more sensible
+       formats (for one, ISO format YYYY-MM-DD hh:mm:ss.ssssss).
 
-         With this option off, 'date DATE' is 'date -s DATE' support
-         the same format. With it on, 'date DATE' additionally supports
-         MMDDhhmm[[YY]YY][.ss] format.
+       With this option off, 'date DATE' is 'date -s DATE' support
+       the same format. With it on, 'date DATE' additionally supports
+       MMDDhhmm[[YY]YY][.ss] format.
 config BUSYBOX_CONFIG_DD
-       bool "dd"
+       bool "dd (7.5 kb)"
        default BUSYBOX_DEFAULT_DD
        help
-         dd copies a file (from standard input to standard output,
-         by default) using specific input and output blocksizes,
-         while optionally performing conversions on it.
+       dd copies a file (from standard input to standard output,
+       by default) using specific input and output blocksizes,
+       while optionally performing conversions on it.
 
 config BUSYBOX_CONFIG_FEATURE_DD_SIGNAL_HANDLING
        bool "Enable signal handling for status reporting"
        default BUSYBOX_DEFAULT_FEATURE_DD_SIGNAL_HANDLING
        depends on BUSYBOX_CONFIG_DD
        help
-         Sending a SIGUSR1 signal to a running `dd' process makes it
-         print to standard error the number of records read and written
-         so far, then to resume copying.
+       Sending a SIGUSR1 signal to a running 'dd' process makes it
+       print to standard error the number of records read and written
+       so far, then to resume copying.
 
-         $ dd if=/dev/zero of=/dev/null &
-         $ pid=$!; kill -USR1 $pid; sleep 1; kill $pid
-         10899206+0 records in
-         10899206+0 records out
+       $ dd if=/dev/zero of=/dev/null &
+       $ pid=$!; kill -USR1 $pid; sleep 1; kill $pid
+       10899206+0 records in
+       10899206+0 records out
 
 config BUSYBOX_CONFIG_FEATURE_DD_THIRD_STATUS_LINE
        bool "Enable the third status line upon signal"
        default BUSYBOX_DEFAULT_FEATURE_DD_THIRD_STATUS_LINE
        depends on BUSYBOX_CONFIG_DD && BUSYBOX_CONFIG_FEATURE_DD_SIGNAL_HANDLING
        help
-         Displays a coreutils-like third status line with transferred bytes,
-         elapsed time and speed.
+       Displays a coreutils-like third status line with transferred bytes,
+       elapsed time and speed.
 
 config BUSYBOX_CONFIG_FEATURE_DD_IBS_OBS
-       bool "Enable ibs, obs and conv options"
+       bool "Enable ibs, obs, iflag, oflag and conv options"
        default BUSYBOX_DEFAULT_FEATURE_DD_IBS_OBS
        depends on BUSYBOX_CONFIG_DD
        help
-         Enable support for writing a certain number of bytes in and out,
-         at a time, and performing conversions on the data stream.
+       Enable support for writing a certain number of bytes in and out,
+       at a time, and performing conversions on the data stream.
 
 config BUSYBOX_CONFIG_FEATURE_DD_STATUS
        bool "Enable status display options"
        default BUSYBOX_DEFAULT_FEATURE_DD_STATUS
        depends on BUSYBOX_CONFIG_DD
        help
-         Enable support for status=noxfer/none option.
+       Enable support for status=noxfer/none option.
 config BUSYBOX_CONFIG_DF
-       bool "df"
+       bool "df (6.8 kb)"
        default BUSYBOX_DEFAULT_DF
        help
-         df reports the amount of disk space used and available
-         on filesystems.
+       df reports the amount of disk space used and available
+       on filesystems.
 
 config BUSYBOX_CONFIG_FEATURE_DF_FANCY
        bool "Enable -a, -i, -B"
        default BUSYBOX_DEFAULT_FEATURE_DF_FANCY
        depends on BUSYBOX_CONFIG_DF
        help
-         -a Show all filesystems
-         -i Inodes
-         -B <SIZE> Blocksize
+       -a Show all filesystems
+       -i Inodes
+       -B <SIZE> Blocksize
 config BUSYBOX_CONFIG_DIRNAME
-       bool "dirname"
+       bool "dirname (329 bytes)"
        default BUSYBOX_DEFAULT_DIRNAME
        help
-         dirname is used to strip a non-directory suffix from
-         a file name.
+       dirname is used to strip a non-directory suffix from
+       a file name.
 config BUSYBOX_CONFIG_DOS2UNIX
-       bool "dos2unix"
+       bool "dos2unix (5.2 kb)"
        default BUSYBOX_DEFAULT_DOS2UNIX
        help
-         dos2unix is used to convert a text file from DOS format to
-         UNIX format, and vice versa.
+       dos2unix is used to convert a text file from DOS format to
+       UNIX format, and vice versa.
 
 config BUSYBOX_CONFIG_UNIX2DOS
-       bool "unix2dos"
+       bool "unix2dos (5.2 kb)"
        default BUSYBOX_DEFAULT_UNIX2DOS
        help
-         unix2dos is used to convert a text file from UNIX format to
-         DOS format, and vice versa.
+       unix2dos is used to convert a text file from UNIX format to
+       DOS format, and vice versa.
 config BUSYBOX_CONFIG_DU
-       bool "du (default blocksize of 512 bytes)"
+       bool "du (6.3 kb)"
        default BUSYBOX_DEFAULT_DU
        help
-         du is used to report the amount of disk space used
-         for specified files.
+       du is used to report the amount of disk space used
+       for specified files.
 
 config BUSYBOX_CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K
-       bool "Use a default blocksize of 1024 bytes (1K)"
+       bool "Use default blocksize of 1024 bytes (else it's 512 bytes)"
        default BUSYBOX_DEFAULT_FEATURE_DU_DEFAULT_BLOCKSIZE_1K
        depends on BUSYBOX_CONFIG_DU
-       help
-         Use a blocksize of (1K) instead of the default 512b.
 config BUSYBOX_CONFIG_ECHO
-       bool "echo (basic SuSv3 version taking no options)"
+       bool "echo (1.8 kb)"
        default BUSYBOX_DEFAULT_ECHO
        help
-         echo is used to print a specified string to stdout.
+       echo prints a specified string to stdout.
 
 # this entry also appears in shell/Config.in, next to the echo builtin
 config BUSYBOX_CONFIG_FEATURE_FANCY_ECHO
@@ -225,131 +235,116 @@ config BUSYBOX_CONFIG_FEATURE_FANCY_ECHO
        default BUSYBOX_DEFAULT_FEATURE_FANCY_ECHO
        depends on BUSYBOX_CONFIG_ECHO || BUSYBOX_CONFIG_ASH_ECHO || BUSYBOX_CONFIG_HUSH_ECHO
 config BUSYBOX_CONFIG_ENV
-       bool "env"
+       bool "env (4 kb)"
        default BUSYBOX_DEFAULT_ENV
        help
-         env is used to set an environment variable and run
-         a command; without options it displays the current
-         environment.
-
-config BUSYBOX_CONFIG_FEATURE_ENV_LONG_OPTIONS
-       bool "Enable long options"
-       default BUSYBOX_DEFAULT_FEATURE_ENV_LONG_OPTIONS
-       depends on BUSYBOX_CONFIG_ENV && BUSYBOX_CONFIG_LONG_OPTS
+       env is used to set an environment variable and run
+       a command; without options it displays the current
+       environment.
 config BUSYBOX_CONFIG_EXPAND
-       bool "expand"
+       bool "expand (5.1 kb)"
        default BUSYBOX_DEFAULT_EXPAND
        help
-         By default, convert all tabs to spaces.
-
-config BUSYBOX_CONFIG_FEATURE_EXPAND_LONG_OPTIONS
-       bool "Enable long options"
-       default BUSYBOX_DEFAULT_FEATURE_EXPAND_LONG_OPTIONS
-       depends on BUSYBOX_CONFIG_EXPAND && BUSYBOX_CONFIG_LONG_OPTS
+       By default, convert all tabs to spaces.
 
 config BUSYBOX_CONFIG_UNEXPAND
-       bool "unexpand"
+       bool "unexpand (5.3 kb)"
        default BUSYBOX_DEFAULT_UNEXPAND
        help
-         By default, convert only leading sequences of blanks to tabs.
-
-config BUSYBOX_CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS
-       bool "Enable long options"
-       default BUSYBOX_DEFAULT_FEATURE_UNEXPAND_LONG_OPTIONS
-       depends on BUSYBOX_CONFIG_UNEXPAND && BUSYBOX_CONFIG_LONG_OPTS
+       By default, convert only leading sequences of blanks to tabs.
 config BUSYBOX_CONFIG_EXPR
-       bool "expr"
+       bool "expr (6.6 kb)"
        default BUSYBOX_DEFAULT_EXPR
        help
-         expr is used to calculate numbers and print the result
-         to standard output.
+       expr is used to calculate numbers and print the result
+       to standard output.
 
 config BUSYBOX_CONFIG_EXPR_MATH_SUPPORT_64
        bool "Extend Posix numbers support to 64 bit"
        default BUSYBOX_DEFAULT_EXPR_MATH_SUPPORT_64
        depends on BUSYBOX_CONFIG_EXPR
        help
-         Enable 64-bit math support in the expr applet. This will make
-         the applet slightly larger, but will allow computation with very
-         large numbers.
+       Enable 64-bit math support in the expr applet. This will make
+       the applet slightly larger, but will allow computation with very
+       large numbers.
 config BUSYBOX_CONFIG_FACTOR
-       bool "factor"
+       bool "factor (2.7 kb)"
        default BUSYBOX_DEFAULT_FACTOR
        help
-         factor factorizes integers
+       factor factorizes integers
 config BUSYBOX_CONFIG_FALSE
-       bool "false"
+       bool "false (tiny)"
        default BUSYBOX_DEFAULT_FALSE
        help
-         false returns an exit code of FALSE (1).
+       false returns an exit code of FALSE (1).
 config BUSYBOX_CONFIG_FOLD
-       bool "fold"
+       bool "fold (4.6 kb)"
        default BUSYBOX_DEFAULT_FOLD
        help
-         Wrap text to fit a specific width.
+       Wrap text to fit a specific width.
 config BUSYBOX_CONFIG_FSYNC
-       bool "fsync"
+       bool "fsync (3.6 kb)"
        default BUSYBOX_DEFAULT_FSYNC
        help
-         fsync is used to flush file-related cached blocks to disk.
+       fsync is used to flush file-related cached blocks to disk.
 config BUSYBOX_CONFIG_HEAD
-       bool "head"
+       bool "head (3.8 kb)"
        default BUSYBOX_DEFAULT_HEAD
        help
-         head is used to print the first specified number of lines
-         from files.
+       head is used to print the first specified number of lines
+       from files.
 
 config BUSYBOX_CONFIG_FEATURE_FANCY_HEAD
        bool "Enable -c, -q, and -v"
        default BUSYBOX_DEFAULT_FEATURE_FANCY_HEAD
        depends on BUSYBOX_CONFIG_HEAD
 config BUSYBOX_CONFIG_HOSTID
-       bool "hostid"
+       bool "hostid (286 bytes)"
        default BUSYBOX_DEFAULT_HOSTID
        help
-         hostid prints the numeric identifier (in hexadecimal) for
-         the current host.
+       hostid prints the numeric identifier (in hexadecimal) for
+       the current host.
 config BUSYBOX_CONFIG_ID
-       bool "id"
+       bool "id (7 kb)"
        default BUSYBOX_DEFAULT_ID
        help
-         id displays the current user and group ID names.
+       id displays the current user and group ID names.
 
 config BUSYBOX_CONFIG_GROUPS
-       bool "groups"
+       bool "groups (6.7 kb)"
        default BUSYBOX_DEFAULT_GROUPS
        help
-         Print the group names associated with current user id.
+       Print the group names associated with current user id.
 config BUSYBOX_CONFIG_INSTALL
-       bool "install"
+       bool "install (12 kb)"
        default BUSYBOX_DEFAULT_INSTALL
        help
-         Copy files and set attributes.
+       Copy files and set attributes.
 
 config BUSYBOX_CONFIG_FEATURE_INSTALL_LONG_OPTIONS
        bool "Enable long options"
        default BUSYBOX_DEFAULT_FEATURE_INSTALL_LONG_OPTIONS
        depends on BUSYBOX_CONFIG_INSTALL && BUSYBOX_CONFIG_LONG_OPTS
 config BUSYBOX_CONFIG_LINK
-       bool "link"
+       bool "link (3.2 kb)"
        default BUSYBOX_DEFAULT_LINK
        help
-         link creates hard links between files.
+       link creates hard links between files.
 config BUSYBOX_CONFIG_LN
-       bool "ln"
+       bool "ln (4.9 kb)"
        default BUSYBOX_DEFAULT_LN
        help
-         ln is used to create hard or soft links between files.
+       ln is used to create hard or soft links between files.
 config BUSYBOX_CONFIG_LOGNAME
-       bool "logname"
+       bool "logname (1.1 kb)"
        default BUSYBOX_DEFAULT_LOGNAME
        help
-         logname is used to print the current user's login name.
+       logname is used to print the current user's login name.
 config BUSYBOX_CONFIG_LS
-       bool "ls"
+       bool "ls (14 kb)"
        default BUSYBOX_DEFAULT_LS
        help
-         ls is used to list the contents of directories.
+       ls is used to list the contents of directories.
 
 config BUSYBOX_CONFIG_FEATURE_LS_FILETYPES
        bool "Enable filetyping options (-p and -F)"
@@ -376,68 +371,68 @@ config BUSYBOX_CONFIG_FEATURE_LS_SORTFILES
        default BUSYBOX_DEFAULT_FEATURE_LS_SORTFILES
        depends on BUSYBOX_CONFIG_LS
        help
-         Allow ls to sort file names alphabetically.
+       Allow ls to sort file names alphabetically.
 
 config BUSYBOX_CONFIG_FEATURE_LS_TIMESTAMPS
        bool "Show file timestamps"
        default BUSYBOX_DEFAULT_FEATURE_LS_TIMESTAMPS
        depends on BUSYBOX_CONFIG_LS
        help
-         Allow ls to display timestamps for files.
+       Allow ls to display timestamps for files.
 
 config BUSYBOX_CONFIG_FEATURE_LS_USERNAME
        bool "Show username/groupnames"
        default BUSYBOX_DEFAULT_FEATURE_LS_USERNAME
        depends on BUSYBOX_CONFIG_LS
        help
-         Allow ls to display username/groupname for files.
+       Allow ls to display username/groupname for files.
 
 config BUSYBOX_CONFIG_FEATURE_LS_COLOR
        bool "Allow use of color to identify file types"
        default BUSYBOX_DEFAULT_FEATURE_LS_COLOR
        depends on BUSYBOX_CONFIG_LS && BUSYBOX_CONFIG_LONG_OPTS
        help
-         This enables the --color option to ls.
+       This enables the --color option to ls.
 
 config BUSYBOX_CONFIG_FEATURE_LS_COLOR_IS_DEFAULT
        bool "Produce colored ls output by default"
        default BUSYBOX_DEFAULT_FEATURE_LS_COLOR_IS_DEFAULT
        depends on BUSYBOX_CONFIG_FEATURE_LS_COLOR
        help
-         Saying yes here will turn coloring on by default,
-         even if no "--color" option is given to the ls command.
-         This is not recommended, since the colors are not
-         configurable, and the output may not be legible on
-         many output screens.
+       Saying yes here will turn coloring on by default,
+       even if no "--color" option is given to the ls command.
+       This is not recommended, since the colors are not
+       configurable, and the output may not be legible on
+       many output screens.
 config BUSYBOX_CONFIG_MD5SUM
-       bool "md5sum"
+       bool "md5sum (6.5 kb)"
        default BUSYBOX_DEFAULT_MD5SUM
        help
-         md5sum is used to print or check MD5 checksums.
+       Compute and check MD5 message digest
 
 config BUSYBOX_CONFIG_SHA1SUM
-       bool "sha1sum"
+       bool "sha1sum (5.9 kb)"
        default BUSYBOX_DEFAULT_SHA1SUM
        help
-         Compute and check SHA1 message digest
+       Compute and check SHA1 message digest
 
 config BUSYBOX_CONFIG_SHA256SUM
-       bool "sha256sum"
+       bool "sha256sum (7 kb)"
        default BUSYBOX_DEFAULT_SHA256SUM
        help
-         Compute and check SHA256 message digest
+       Compute and check SHA256 message digest
 
 config BUSYBOX_CONFIG_SHA512SUM
-       bool "sha512sum"
+       bool "sha512sum (7.4 kb)"
        default BUSYBOX_DEFAULT_SHA512SUM
        help
-         Compute and check SHA512 message digest
+       Compute and check SHA512 message digest
 
 config BUSYBOX_CONFIG_SHA3SUM
-       bool "sha3sum"
+       bool "sha3sum (6.1 kb)"
        default BUSYBOX_DEFAULT_SHA3SUM
        help
-         Compute and check SHA3 message digest
+       Compute and check SHA3 message digest
 
 comment "Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum"
        depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM || BUSYBOX_CONFIG_SHA3SUM
@@ -447,217 +442,200 @@ config BUSYBOX_CONFIG_FEATURE_MD5_SHA1_SUM_CHECK
        default BUSYBOX_DEFAULT_FEATURE_MD5_SHA1_SUM_CHECK
        depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM || BUSYBOX_CONFIG_SHA3SUM
        help
-         Enabling the -c options allows files to be checked
-         against pre-calculated hash values.
-         -s and -w are useful options when verifying checksums.
+       Enabling the -c options allows files to be checked
+       against pre-calculated hash values.
+       -s and -w are useful options when verifying checksums.
 config BUSYBOX_CONFIG_MKDIR
-       bool "mkdir"
+       bool "mkdir (4.5 kb)"
        default BUSYBOX_DEFAULT_MKDIR
        help
-         mkdir is used to create directories with the specified names.
-
-config BUSYBOX_CONFIG_FEATURE_MKDIR_LONG_OPTIONS
-       bool "Enable long options"
-       default BUSYBOX_DEFAULT_FEATURE_MKDIR_LONG_OPTIONS
-       depends on BUSYBOX_CONFIG_MKDIR && BUSYBOX_CONFIG_LONG_OPTS
+       mkdir is used to create directories with the specified names.
 config BUSYBOX_CONFIG_MKFIFO
-       bool "mkfifo"
+       bool "mkfifo (3.8 kb)"
        default BUSYBOX_DEFAULT_MKFIFO
        help
-         mkfifo is used to create FIFOs (named pipes).
-         The 'mknod' program can also create FIFOs.
+       mkfifo is used to create FIFOs (named pipes).
+       The 'mknod' program can also create FIFOs.
 config BUSYBOX_CONFIG_MKNOD
-       bool "mknod"
+       bool "mknod (4.5 kb)"
        default BUSYBOX_DEFAULT_MKNOD
        help
-         mknod is used to create FIFOs or block/character special
-         files with the specified names.
+       mknod is used to create FIFOs or block/character special
+       files with the specified names.
 config BUSYBOX_CONFIG_MKTEMP
-       bool "mktemp"
+       bool "mktemp (4.2 kb)"
        default BUSYBOX_DEFAULT_MKTEMP
        help
-         mktemp is used to create unique temporary files
+       mktemp is used to create unique temporary files
 config BUSYBOX_CONFIG_MV
-       bool "mv"
+       bool "mv (10 kb)"
        default BUSYBOX_DEFAULT_MV
        help
-         mv is used to move or rename files or directories.
-
-config BUSYBOX_CONFIG_FEATURE_MV_LONG_OPTIONS
-       bool "Enable long options"
-       default BUSYBOX_DEFAULT_FEATURE_MV_LONG_OPTIONS
-       depends on BUSYBOX_CONFIG_MV && BUSYBOX_CONFIG_LONG_OPTS
+       mv is used to move or rename files or directories.
 config BUSYBOX_CONFIG_NICE
-       bool "nice"
+       bool "nice (2.1 kb)"
        default BUSYBOX_DEFAULT_NICE
        help
-         nice runs a program with modified scheduling priority.
+       nice runs a program with modified scheduling priority.
 config BUSYBOX_CONFIG_NL
-       bool "nl"
+       bool "nl (4.6 kb)"
        default BUSYBOX_DEFAULT_NL
        help
-         nl is used to number lines of files.
+       nl is used to number lines of files.
 config BUSYBOX_CONFIG_NOHUP
-       bool "nohup"
+       bool "nohup (2 kb)"
        default BUSYBOX_DEFAULT_NOHUP
        help
-         run a command immune to hangups, with output to a non-tty.
+       run a command immune to hangups, with output to a non-tty.
 config BUSYBOX_CONFIG_NPROC
-       bool "nproc"
+       bool "nproc (3.7 kb)"
        default BUSYBOX_DEFAULT_NPROC
        help
-         Print number of CPUs
+       Print number of CPUs
 config BUSYBOX_CONFIG_OD
-       bool "od"
+       bool "od (11 kb)"
        default BUSYBOX_DEFAULT_OD
        help
-         od is used to dump binary files in octal and other formats.
+       od is used to dump binary files in octal and other formats.
 config BUSYBOX_CONFIG_PASTE
-       bool "paste"
+       bool "paste (4.9 kb)"
        default BUSYBOX_DEFAULT_PASTE
        help
-         paste is used to paste lines of different files together
-         and write the result to stdout
+       paste is used to paste lines of different files together
+       and write the result to stdout
 config BUSYBOX_CONFIG_PRINTENV
-       bool "printenv"
+       bool "printenv (1.3 kb)"
        default BUSYBOX_DEFAULT_PRINTENV
        help
-         printenv is used to print all or part of environment.
+       printenv is used to print all or part of environment.
 config BUSYBOX_CONFIG_PRINTF
-       bool "printf"
+       bool "printf (3.8 kb)"
        default BUSYBOX_DEFAULT_PRINTF
        help
-         printf is used to format and print specified strings.
-         It's similar to `echo' except it has more options.
+       printf is used to format and print specified strings.
+       It's similar to 'echo' except it has more options.
 config BUSYBOX_CONFIG_PWD
-       bool "pwd"
+       bool "pwd (3.7 kb)"
        default BUSYBOX_DEFAULT_PWD
        help
-         pwd is used to print the current directory.
+       pwd is used to print the current directory.
 config BUSYBOX_CONFIG_READLINK
-       bool "readlink"
+       bool "readlink (4 kb)"
        default BUSYBOX_DEFAULT_READLINK
        help
-         This program reads a symbolic link and returns the name
-         of the file it points to
+       This program reads a symbolic link and returns the name
+       of the file it points to
 
 config BUSYBOX_CONFIG_FEATURE_READLINK_FOLLOW
        bool "Enable canonicalization by following all symlinks (-f)"
        default BUSYBOX_DEFAULT_FEATURE_READLINK_FOLLOW
        depends on BUSYBOX_CONFIG_READLINK
        help
-         Enable the readlink option (-f).
+       Enable the readlink option (-f).
 config BUSYBOX_CONFIG_REALPATH
-       bool "realpath"
+       bool "realpath (1.6 kb)"
        default BUSYBOX_DEFAULT_REALPATH
        help
-         Return the canonicalized absolute pathname.
-         This isn't provided by GNU shellutils, but where else does it belong.
+       Return the canonicalized absolute pathname.
+       This isn't provided by GNU shellutils, but where else does it belong.
 config BUSYBOX_CONFIG_RM
-       bool "rm"
+       bool "rm (5.4 kb)"
        default BUSYBOX_DEFAULT_RM
        help
-         rm is used to remove files or directories.
+       rm is used to remove files or directories.
 config BUSYBOX_CONFIG_RMDIR
-       bool "rmdir"
+       bool "rmdir (3.5 kb)"
        default BUSYBOX_DEFAULT_RMDIR
        help
-         rmdir is used to remove empty directories.
-
-config BUSYBOX_CONFIG_FEATURE_RMDIR_LONG_OPTIONS
-       bool "Enable long options"
-       default BUSYBOX_DEFAULT_FEATURE_RMDIR_LONG_OPTIONS
-       depends on BUSYBOX_CONFIG_RMDIR && BUSYBOX_CONFIG_LONG_OPTS
-       help
-         Support long options for the rmdir applet, including
-         --ignore-fail-on-non-empty for compatibility with GNU rmdir.
+       rmdir is used to remove empty directories.
 config BUSYBOX_CONFIG_SEQ
-       bool "seq"
+       bool "seq (3.8 kb)"
        default BUSYBOX_DEFAULT_SEQ
        help
-         print a sequence of numbers
+       print a sequence of numbers
 config BUSYBOX_CONFIG_SHRED
-       bool "shred"
+       bool "shred (4.9 kb)"
        default BUSYBOX_DEFAULT_SHRED
        help
-         Overwrite a file to hide its contents, and optionally delete it
+       Overwrite a file to hide its contents, and optionally delete it
 config BUSYBOX_CONFIG_SHUF
-       bool "shuf"
+       bool "shuf (5.4 kb)"
        default BUSYBOX_DEFAULT_SHUF
        help
-         Generate random permutations
+       Generate random permutations
 config BUSYBOX_CONFIG_SLEEP
-       bool "sleep"
+       bool "sleep (2 kb)"
        default BUSYBOX_DEFAULT_SLEEP
        help
-         sleep is used to pause for a specified number of seconds.
-         It comes in 3 versions:
-         - small: takes one integer parameter
-         - fancy: takes multiple integer arguments with suffixes:
-           sleep 1d 2h 3m 15s
-         - fancy with fractional numbers:
-           sleep 2.3s 4.5h sleeps for 16202.3 seconds
-         Last one is "the most compatible" with coreutils sleep,
-         but it adds around 1k of code.
+       sleep is used to pause for a specified number of seconds.
+       It comes in 3 versions:
+       - small: takes one integer parameter
+       - fancy: takes multiple integer arguments with suffixes:
+               sleep 1d 2h 3m 15s
+       - fancy with fractional numbers:
+               sleep 2.3s 4.5h sleeps for 16202.3 seconds
+       Last one is "the most compatible" with coreutils sleep,
+       but it adds around 1k of code.
 
 config BUSYBOX_CONFIG_FEATURE_FANCY_SLEEP
        bool "Enable multiple arguments and s/m/h/d suffixes"
        default BUSYBOX_DEFAULT_FEATURE_FANCY_SLEEP
        depends on BUSYBOX_CONFIG_SLEEP
        help
-         Allow sleep to pause for specified minutes, hours, and days.
-
-config BUSYBOX_CONFIG_FEATURE_FLOAT_SLEEP
-       bool "Enable fractional arguments"
-       default BUSYBOX_DEFAULT_FEATURE_FLOAT_SLEEP
-       depends on BUSYBOX_CONFIG_FEATURE_FANCY_SLEEP
-       help
-         Allow for fractional numeric parameters.
+       Allow sleep to pause for specified minutes, hours, and days.
 config BUSYBOX_CONFIG_SORT
-       bool "sort"
+       bool "sort (7.7 kb)"
        default BUSYBOX_DEFAULT_SORT
        help
-         sort is used to sort lines of text in specified files.
+       sort is used to sort lines of text in specified files.
 
 config BUSYBOX_CONFIG_FEATURE_SORT_BIG
-       bool "Full SuSv3 compliant sort (support -ktcsbdfiozgM)"
+       bool "Full SuSv3 compliant sort (support -ktcbdfiogM)"
        default BUSYBOX_DEFAULT_FEATURE_SORT_BIG
        depends on BUSYBOX_CONFIG_SORT
        help
-         Without this, sort only supports -r, -u, and an integer version
-         of -n. Selecting this adds sort keys, floating point support, and
-         more. This adds a little over 3k to a nonstatic build on x86.
+       Without this, sort only supports -rusz, and an integer version
+       of -n. Selecting this adds sort keys, floating point support, and
+       more. This adds a little over 3k to a nonstatic build on x86.
+
+       The SuSv3 sort standard is available at:
+       http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html
 
-         The SuSv3 sort standard is available at:
-         http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html
+config BUSYBOX_CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY
+       bool "Use less memory (but might be slower)"
+       default BUSYBOX_DEFAULT_FEATURE_SORT_OPTIMIZE_MEMORY   # defaults to N since we are size-paranoid tribe
+       depends on BUSYBOX_CONFIG_SORT
+       help
+       Attempt to use less memory (by storing only one copy
+       of duplicated lines, and such). Useful if you work on huge files.
 config BUSYBOX_CONFIG_SPLIT
-       bool "split"
+       bool "split (5 kb)"
        default BUSYBOX_DEFAULT_SPLIT
        help
-         Split a file into pieces.
+       Split a file into pieces.
 
 config BUSYBOX_CONFIG_FEATURE_SPLIT_FANCY
        bool "Fancy extensions"
        default BUSYBOX_DEFAULT_FEATURE_SPLIT_FANCY
        depends on BUSYBOX_CONFIG_SPLIT
        help
-         Add support for features not required by SUSv3.
-         Supports additional suffixes 'b' for 512 bytes,
-         'g' for 1GiB for the -b option.
+       Add support for features not required by SUSv3.
+       Supports additional suffixes 'b' for 512 bytes,
+       'g' for 1GiB for the -b option.
 config BUSYBOX_CONFIG_STAT
-       bool "stat"
+       bool "stat (11 kb)"
        default BUSYBOX_DEFAULT_STAT
        help
-         display file or filesystem status.
+       display file or filesystem status.
 
 config BUSYBOX_CONFIG_FEATURE_STAT_FORMAT
        bool "Enable custom formats (-c)"
        default BUSYBOX_DEFAULT_FEATURE_STAT_FORMAT
        depends on BUSYBOX_CONFIG_STAT
        help
-         Without this, stat will not support the '-c format' option where
-         users can pass a custom format string for output. This adds about
-         7k to a nonstatic build on amd64.
+       Without this, stat will not support the '-c format' option where
+       users can pass a custom format string for output. This adds about
+       7k to a nonstatic build on amd64.
 
 config BUSYBOX_CONFIG_FEATURE_STAT_FILESYSTEM
        bool "Enable display of filesystem status (-f)"
@@ -665,249 +643,255 @@ config BUSYBOX_CONFIG_FEATURE_STAT_FILESYSTEM
        depends on BUSYBOX_CONFIG_STAT
        select BUSYBOX_CONFIG_PLATFORM_LINUX # statfs()
        help
-         Without this, stat will not support the '-f' option to display
-         information about filesystem status.
+       Without this, stat will not support the '-f' option to display
+       information about filesystem status.
 config BUSYBOX_CONFIG_STTY
-       bool "stty"
+       bool "stty (8.9 kb)"
        default BUSYBOX_DEFAULT_STTY
        help
-         stty is used to change and print terminal line settings.
+       stty is used to change and print terminal line settings.
 config BUSYBOX_CONFIG_SUM
-       bool "sum"
+       bool "sum (4 kb)"
        default BUSYBOX_DEFAULT_SUM
        help
-         checksum and count the blocks in a file
+       checksum and count the blocks in a file
 config BUSYBOX_CONFIG_SYNC
-       bool "sync"
+       bool "sync (3.8 kb)"
        default BUSYBOX_DEFAULT_SYNC
        help
-         sync is used to flush filesystem buffers.
+       sync is used to flush filesystem buffers.
 config BUSYBOX_CONFIG_FEATURE_SYNC_FANCY
        bool "Enable -d and -f flags (requires syncfs(2) in libc)"
        default BUSYBOX_DEFAULT_FEATURE_SYNC_FANCY
        depends on BUSYBOX_CONFIG_SYNC
        help
-         sync -d FILE... executes fdatasync() on each FILE.
-         sync -f FILE... executes syncfs() on each FILE.
+       sync -d FILE... executes fdatasync() on each FILE.
+       sync -f FILE... executes syncfs() on each FILE.
 config BUSYBOX_CONFIG_TAC
-       bool "tac"
+       bool "tac (3.9 kb)"
        default BUSYBOX_DEFAULT_TAC
        help
-         tac is used to concatenate and print files in reverse.
+       tac is used to concatenate and print files in reverse.
 config BUSYBOX_CONFIG_TAIL
-       bool "tail"
+       bool "tail (6.8 kb)"
        default BUSYBOX_DEFAULT_TAIL
        help
-         tail is used to print the last specified number of lines
-         from files.
+       tail is used to print the last specified number of lines
+       from files.
 
 config BUSYBOX_CONFIG_FEATURE_FANCY_TAIL
        bool "Enable -q, -s, -v, and -F options"
        default BUSYBOX_DEFAULT_FEATURE_FANCY_TAIL
        depends on BUSYBOX_CONFIG_TAIL
        help
-         These options are provided by GNU tail, but
-         are not specific in the SUSv3 standard:
-           -q      Never output headers giving file names
-           -s SEC  Wait SEC seconds between reads with -f
-           -v      Always output headers giving file names
-           -F      Same as -f, but keep retrying
+       These options are provided by GNU tail, but
+       are not specified in the SUSv3 standard:
+               -q      Never output headers giving file names
+               -s SEC  Wait SEC seconds between reads with -f
+               -v      Always output headers giving file names
+               -F      Same as -f, but keep retrying
 config BUSYBOX_CONFIG_TEE
-       bool "tee"
+       bool "tee (4.2 kb)"
        default BUSYBOX_DEFAULT_TEE
        help
-         tee is used to read from standard input and write
-         to standard output and files.
+       tee is used to read from standard input and write
+       to standard output and files.
 
 config BUSYBOX_CONFIG_FEATURE_TEE_USE_BLOCK_IO
        bool "Enable block I/O (larger/faster) instead of byte I/O"
        default BUSYBOX_DEFAULT_FEATURE_TEE_USE_BLOCK_IO
        depends on BUSYBOX_CONFIG_TEE
        help
-         Enable this option for a faster tee, at expense of size.
+       Enable this option for a faster tee, at expense of size.
 config BUSYBOX_CONFIG_TEST
-       bool "test"
+       bool "test (4.1 kb)"
        default BUSYBOX_DEFAULT_TEST
        help
-         test is used to check file types and compare values,
-         returning an appropriate exit code. The bash shell
-         has test built in, ash can build it in optionally.
+       test is used to check file types and compare values,
+       returning an appropriate exit code. The bash shell
+       has test built in, ash can build it in optionally.
 
 config BUSYBOX_CONFIG_TEST1
        bool "test as ["
        default BUSYBOX_DEFAULT_TEST1
        help
-         Provide test command in the "[ EXPR ]" form
+       Provide test command in the "[ EXPR ]" form
 
 config BUSYBOX_CONFIG_TEST2
        bool "test as [["
        default BUSYBOX_DEFAULT_TEST2
        help
-         Provide test command in the "[[ EXPR ]]" form
+       Provide test command in the "[[ EXPR ]]" form
 
 config BUSYBOX_CONFIG_FEATURE_TEST_64
        bool "Extend test to 64 bit"
        default BUSYBOX_DEFAULT_FEATURE_TEST_64
        depends on BUSYBOX_CONFIG_TEST || BUSYBOX_CONFIG_TEST1 || BUSYBOX_CONFIG_TEST2 || BUSYBOX_CONFIG_ASH_TEST || BUSYBOX_CONFIG_HUSH_TEST
        help
-         Enable 64-bit support in test.
+       Enable 64-bit support in test.
 config BUSYBOX_CONFIG_TIMEOUT
-       bool "timeout"
+       bool "timeout (6 kb)"
        default BUSYBOX_DEFAULT_TIMEOUT
        help
-         Runs a program and watches it. If it does not terminate in
-         specified number of seconds, it is sent a signal.
+       Runs a program and watches it. If it does not terminate in
+       specified number of seconds, it is sent a signal.
 config BUSYBOX_CONFIG_TOUCH
-       bool "touch"
+       bool "touch (5.9 kb)"
        default BUSYBOX_DEFAULT_TOUCH
        help
-         touch is used to create or change the access and/or
-         modification timestamp of specified files.
+       touch is used to create or change the access and/or
+       modification timestamp of specified files.
 
 config BUSYBOX_CONFIG_FEATURE_TOUCH_NODEREF
        bool "Add support for -h"
        default BUSYBOX_DEFAULT_FEATURE_TOUCH_NODEREF
        depends on BUSYBOX_CONFIG_TOUCH
        help
-         Enable touch to have the -h option.
-         This requires libc support for lutimes() function.
+       Enable touch to have the -h option.
+       This requires libc support for lutimes() function.
 
 config BUSYBOX_CONFIG_FEATURE_TOUCH_SUSV3
        bool "Add support for SUSV3 features (-d -t -r)"
        default BUSYBOX_DEFAULT_FEATURE_TOUCH_SUSV3
        depends on BUSYBOX_CONFIG_TOUCH
        help
-         Enable touch to use a reference file or a given date/time argument.
+       Enable touch to use a reference file or a given date/time argument.
 config BUSYBOX_CONFIG_TR
-       bool "tr"
+       bool "tr (5.1 kb)"
        default BUSYBOX_DEFAULT_TR
        help
-         tr is used to squeeze, and/or delete characters from standard
-         input, writing to standard output.
+       tr is used to squeeze, and/or delete characters from standard
+       input, writing to standard output.
 
 config BUSYBOX_CONFIG_FEATURE_TR_CLASSES
        bool "Enable character classes (such as [:upper:])"
        default BUSYBOX_DEFAULT_FEATURE_TR_CLASSES
        depends on BUSYBOX_CONFIG_TR
        help
-         Enable character classes, enabling commands such as:
-         tr [:upper:] [:lower:] to convert input into lowercase.
+       Enable character classes, enabling commands such as:
+       tr [:upper:] [:lower:] to convert input into lowercase.
 
 config BUSYBOX_CONFIG_FEATURE_TR_EQUIV
        bool "Enable equivalence classes"
        default BUSYBOX_DEFAULT_FEATURE_TR_EQUIV
        depends on BUSYBOX_CONFIG_TR
        help
-         Enable equivalence classes, which essentially add the enclosed
-         character to the current set. For instance, tr [=a=] xyz would
-         replace all instances of 'a' with 'xyz'. This option is mainly
-         useful for cases when no other way of expressing a character
-         is possible.
+       Enable equivalence classes, which essentially add the enclosed
+       character to the current set. For instance, tr [=a=] xyz would
+       replace all instances of 'a' with 'xyz'. This option is mainly
+       useful for cases when no other way of expressing a character
+       is possible.
 config BUSYBOX_CONFIG_TRUE
-       bool "true"
+       bool "true (tiny)"
        default BUSYBOX_DEFAULT_TRUE
        help
-         true returns an exit code of TRUE (0).
+       true returns an exit code of TRUE (0).
 config BUSYBOX_CONFIG_TRUNCATE
-       bool "truncate"
+       bool "truncate (4.2 kb)"
        default BUSYBOX_DEFAULT_TRUNCATE
        help
-         truncate truncates files to a given size. If a file does
-         not exist, it is created unless told otherwise.
+       truncate truncates files to a given size. If a file does
+       not exist, it is created unless told otherwise.
 config BUSYBOX_CONFIG_TTY
-       bool "tty"
+       bool "tty (3.6 kb)"
        default BUSYBOX_DEFAULT_TTY
        help
-         tty is used to print the name of the current terminal to
-         standard output.
+       tty is used to print the name of the current terminal to
+       standard output.
 config BUSYBOX_CONFIG_UNAME
-       bool "uname"
+       bool "uname (3.9 kb)"
        default BUSYBOX_DEFAULT_UNAME
        help
-         uname is used to print system information.
+       uname is used to print system information.
 
 config BUSYBOX_CONFIG_UNAME_OSNAME
        string "Operating system name"
        default BUSYBOX_DEFAULT_UNAME_OSNAME
        depends on BUSYBOX_CONFIG_UNAME
        help
-         Sets the operating system name reported by uname -o.  The
-         default BUSYBOX_DEFAULT_UNAME_OSNAME "GNU/Linux".
+       Sets the operating system name reported by uname -o.  The
+       default BUSYBOX_DEFAULT_UNAME_OSNAME "GNU/Linux".
+
+config BUSYBOX_CONFIG_BB_ARCH
+       bool "arch (1.1 kb)"
+       default BUSYBOX_DEFAULT_BB_ARCH
+       help
+       Same as uname -m.
 config BUSYBOX_CONFIG_UNIQ
-       bool "uniq"
+       bool "uniq (4.9 kb)"
        default BUSYBOX_DEFAULT_UNIQ
        help
-         uniq is used to remove duplicate lines from a sorted file.
+       uniq is used to remove duplicate lines from a sorted file.
 config BUSYBOX_CONFIG_UNLINK
-       bool "unlink"
+       bool "unlink (3.2 kb)"
        default BUSYBOX_DEFAULT_UNLINK
        help
-         unlink deletes a file by calling unlink()
+       unlink deletes a file by calling unlink()
 config BUSYBOX_CONFIG_USLEEP
-       bool "usleep"
+       bool "usleep (1.3 kb)"
        default BUSYBOX_DEFAULT_USLEEP
        help
-         usleep is used to pause for a specified number of microseconds.
+       usleep is used to pause for a specified number of microseconds.
 config BUSYBOX_CONFIG_UUDECODE
-       bool "uudecode"
+       bool "uudecode (5.8 kb)"
        default BUSYBOX_DEFAULT_UUDECODE
        help
-         uudecode is used to decode a uuencoded file.
+       uudecode is used to decode a uuencoded file.
 config BUSYBOX_CONFIG_BASE64
-       bool "base64"
+       bool "base64 (4.9 kb)"
        default BUSYBOX_DEFAULT_BASE64
        help
-         Base64 encode and decode
+       Base64 encode and decode
 config BUSYBOX_CONFIG_UUENCODE
-       bool "uuencode"
+       bool "uuencode (4.4 kb)"
        default BUSYBOX_DEFAULT_UUENCODE
        help
-         uuencode is used to uuencode a file.
+       uuencode is used to uuencode a file.
 config BUSYBOX_CONFIG_WC
-       bool "wc"
+       bool "wc (4.5 kb)"
        default BUSYBOX_DEFAULT_WC
        help
-         wc is used to print the number of bytes, words, and lines,
-         in specified files.
+       wc is used to print the number of bytes, words, and lines,
+       in specified files.
 
 config BUSYBOX_CONFIG_FEATURE_WC_LARGE
        bool "Support very large counts"
        default BUSYBOX_DEFAULT_FEATURE_WC_LARGE
        depends on BUSYBOX_CONFIG_WC
        help
-         Use "unsigned long long" for counter variables.
+       Use "unsigned long long" for counter variables.
 config BUSYBOX_CONFIG_WHO
-      bool "who"
-      default BUSYBOX_DEFAULT_WHO
-      depends on BUSYBOX_CONFIG_FEATURE_UTMP
-      help
-        who is used to show who is logged on.
+       bool "who (3.9 kb)"
+       default BUSYBOX_DEFAULT_WHO
+       depends on BUSYBOX_CONFIG_FEATURE_UTMP
+       help
+       Print users currently logged on.
 
 config BUSYBOX_CONFIG_W
-      bool "w"
-      default BUSYBOX_DEFAULT_W
-      depends on BUSYBOX_CONFIG_FEATURE_UTMP
-      help
-        w is used to show who is logged on.
+       bool "w (3.8 kb)"
+       default BUSYBOX_DEFAULT_W
+       depends on BUSYBOX_CONFIG_FEATURE_UTMP
+       help
+       Print users currently logged on.
 
 config BUSYBOX_CONFIG_USERS
-      bool "users"
-      default BUSYBOX_DEFAULT_USERS
-      depends on BUSYBOX_CONFIG_FEATURE_UTMP
-      help
-        Print users currently logged on.
+       bool "users (3.4 kb)"
+       default BUSYBOX_DEFAULT_USERS
+       depends on BUSYBOX_CONFIG_FEATURE_UTMP
+       help
+       Print users currently logged on.
 config BUSYBOX_CONFIG_WHOAMI
-       bool "whoami"
+       bool "whoami (3.2 kb)"
        default BUSYBOX_DEFAULT_WHOAMI
        help
-         whoami is used to print the username of the current
-         user id (same as id -un).
+       whoami is used to print the username of the current
+       user id (same as id -un).
 config BUSYBOX_CONFIG_YES
-       bool "yes"
+       bool "yes (1.2 kb)"
        default BUSYBOX_DEFAULT_YES
        help
-         yes is used to repeatedly output a specific string, or
-         the default string `y'.
+       yes is used to repeatedly output a specific string, or
+       the default string 'y'.
 
 comment "Common options"
 
@@ -915,9 +899,9 @@ config BUSYBOX_CONFIG_FEATURE_VERBOSE
        bool "Support verbose options (usually -v) for various applets"
        default BUSYBOX_DEFAULT_FEATURE_VERBOSE
        help
-         Enable cp -v, rm -v and similar messages.
-         Also enables long option (--verbose) if it exists.
-         Without this option, -v is accepted but ignored.
+       Enable cp -v, rm -v and similar messages.
+       Also enables long option (--verbose) if it exists.
+       Without this option, -v is accepted but ignored.
 
 comment "Common options for cp and mv"
        depends on BUSYBOX_CONFIG_CP || BUSYBOX_CONFIG_MV
@@ -927,7 +911,7 @@ config BUSYBOX_CONFIG_FEATURE_PRESERVE_HARDLINKS
        default BUSYBOX_DEFAULT_FEATURE_PRESERVE_HARDLINKS
        depends on BUSYBOX_CONFIG_CP || BUSYBOX_CONFIG_MV
        help
-         Allow cp and mv to preserve hard links.
+       Allow cp and mv to preserve hard links.
 
 comment "Common options for df, du, ls"
        depends on BUSYBOX_CONFIG_DF || BUSYBOX_CONFIG_DU || BUSYBOX_CONFIG_LS
@@ -937,6 +921,6 @@ config BUSYBOX_CONFIG_FEATURE_HUMAN_READABLE
        default BUSYBOX_DEFAULT_FEATURE_HUMAN_READABLE
        depends on BUSYBOX_CONFIG_DF || BUSYBOX_CONFIG_DU || BUSYBOX_CONFIG_LS
        help
-         Allow df, du, and ls to have human readable output.
+       Allow df, du, and ls to have human readable output.
 
 endmenu
index 6b9de0de560785f3f37fbab26c7132a3d39bd1b0..15abb08e6326d3bd7366aa3cf1aa1345f7ffda0d 100644 (file)
@@ -1,30 +1,30 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Debian Utilities"
 
 config BUSYBOX_CONFIG_PIPE_PROGRESS
-       bool "pipe_progress"
+       bool "pipe_progress (275 bytes)"
        default BUSYBOX_DEFAULT_PIPE_PROGRESS
        help
-         Display a dot to indicate pipe activity.
+       Display a dot to indicate pipe activity.
 config BUSYBOX_CONFIG_RUN_PARTS
-       bool "run-parts"
+       bool "run-parts (6.1 kb)"
        default BUSYBOX_DEFAULT_RUN_PARTS
        help
-         run-parts is a utility designed to run all the scripts in a directory.
+       run-parts is a utility designed to run all the scripts in a directory.
 
-         It is useful to set up a directory like cron.daily, where you need to
-         execute all the scripts in that directory.
+       It is useful to set up a directory like cron.daily, where you need to
+       execute all the scripts in that directory.
 
-         In this implementation of run-parts some features (such as report
-         mode) are not implemented.
+       In this implementation of run-parts some features (such as report
+       mode) are not implemented.
 
-         Unless you know that run-parts is used in some of your scripts
-         you can safely say N here.
+       Unless you know that run-parts is used in some of your scripts
+       you can safely say N here.
 
 config BUSYBOX_CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS
        bool "Enable long options"
@@ -36,16 +36,16 @@ config BUSYBOX_CONFIG_FEATURE_RUN_PARTS_FANCY
        default BUSYBOX_DEFAULT_FEATURE_RUN_PARTS_FANCY
        depends on BUSYBOX_CONFIG_RUN_PARTS
        help
-         Support additional options:
-         -l --list print the names of the all matching files (not
-                   limited to executables), but don't actually run them.
+       Support additional options:
+       -l --list print the names of the all matching files (not
+       limited to executables), but don't actually run them.
 config BUSYBOX_CONFIG_START_STOP_DAEMON
-       bool "start-stop-daemon"
+       bool "start-stop-daemon (12 kb)"
        default BUSYBOX_DEFAULT_START_STOP_DAEMON
        help
-         start-stop-daemon is used to control the creation and
-         termination of system-level processes, usually the ones
-         started during the startup of the system.
+       start-stop-daemon is used to control the creation and
+       termination of system-level processes, usually the ones
+       started during the startup of the system.
 
 config BUSYBOX_CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS
        bool "Enable long options"
@@ -57,14 +57,14 @@ config BUSYBOX_CONFIG_FEATURE_START_STOP_DAEMON_FANCY
        default BUSYBOX_DEFAULT_FEATURE_START_STOP_DAEMON_FANCY
        depends on BUSYBOX_CONFIG_START_STOP_DAEMON
        help
-         -o|--oknodo ignored since we exit with 0 anyway
-         -v|--verbose
-         -N|--nicelevel N
+       -o|--oknodo ignored since we exit with 0 anyway
+       -v|--verbose
+       -N|--nicelevel N
 config BUSYBOX_CONFIG_WHICH
-       bool "which"
+       bool "which (3.8 kb)"
        default BUSYBOX_DEFAULT_WHICH
        help
-         which is used to find programs in your PATH and
-         print out their pathnames.
+       which is used to find programs in your PATH and
+       print out their pathnames.
 
 endmenu
index df255481c36858ba7605c1ad7ba7aac3a91becfd..19713acd3ed84a98dd0f6310d8f917abfc53c32b 100644 (file)
@@ -1,35 +1,35 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Linux Ext2 FS Progs"
 
 config BUSYBOX_CONFIG_CHATTR
-       bool "chattr"
+       bool "chattr (3.8 kb)"
        default BUSYBOX_DEFAULT_CHATTR
        help
-         chattr changes the file attributes on a second extended file system.
+       chattr changes the file attributes on a second extended file system.
 config BUSYBOX_CONFIG_FSCK
-       bool "fsck"
+       bool "fsck (7.4 kb)"
        default BUSYBOX_DEFAULT_FSCK
        help
-         fsck is used to check and optionally repair one or more filesystems.
-         In actuality, fsck is simply a front-end for the various file system
-         checkers (fsck.fstype) available under Linux.
+       fsck is used to check and optionally repair one or more filesystems.
+       In actuality, fsck is simply a front-end for the various file system
+       checkers (fsck.fstype) available under Linux.
 config BUSYBOX_CONFIG_LSATTR
-       bool "lsattr"
+       bool "lsattr (5.5 kb)"
        default BUSYBOX_DEFAULT_LSATTR
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         lsattr lists the file attributes on a second extended file system.
+       lsattr lists the file attributes on a second extended file system.
 config BUSYBOX_CONFIG_TUNE2FS
-       bool "tune2fs"
+       bool "tune2fs (4.4 kb)"
        default BUSYBOX_DEFAULT_TUNE2FS  # off: it is too limited compared to upstream version
        help
-         tune2fs allows the system administrator to adjust various tunable
-         filesystem parameters on Linux ext2/ext3 filesystems.
+       tune2fs allows the system administrator to adjust various tunable
+       filesystem parameters on Linux ext2/ext3 filesystems.
 
 ### config E2FSCK
 ###    bool "e2fsck"
index d7a5396deb42e718f8aee3e10dd9ac8200b1e671..cfa63131d06c7fb38f320df0cb151bd79cbbe9e4 100644 (file)
@@ -11,59 +11,59 @@ config BUSYBOX_CONFIG_CHATTR
        bool "chattr"
        default BUSYBOX_DEFAULT_CHATTR
        help
-         chattr changes the file attributes on a second extended file system.
+       chattr changes the file attributes on a second extended file system.
 
 config BUSYBOX_CONFIG_E2FSCK
        bool "e2fsck"
        default BUSYBOX_DEFAULT_E2FSCK
        help
-         e2fsck is used to check Linux second extended file systems (ext2fs).
-         e2fsck also supports ext2 filesystems countaining a journal (ext3).
-         The normal compat symlinks 'fsck.ext2' and 'fsck.ext3' are also
-         provided.
+       e2fsck is used to check Linux second extended file systems (ext2fs).
+       e2fsck also supports ext2 filesystems countaining a journal (ext3).
+       The normal compat symlinks 'fsck.ext2' and 'fsck.ext3' are also
+       provided.
 
 config BUSYBOX_CONFIG_FSCK
        bool "fsck"
        default BUSYBOX_DEFAULT_FSCK
        help
-         fsck is used to check and optionally repair one or more filesystems.
-         In actuality, fsck is simply a front-end for the various file system
-         checkers (fsck.fstype) available under Linux.
+       fsck is used to check and optionally repair one or more filesystems.
+       In actuality, fsck is simply a front-end for the various file system
+       checkers (fsck.fstype) available under Linux.
 
 config BUSYBOX_CONFIG_LSATTR
        bool "lsattr"
        default BUSYBOX_DEFAULT_LSATTR
        help
-         lsattr lists the file attributes on a second extended file system.
+       lsattr lists the file attributes on a second extended file system.
 
 config BUSYBOX_CONFIG_MKE2FS
        bool "mke2fs"
        default BUSYBOX_DEFAULT_MKE2FS
        help
-         mke2fs is used to create an ext2/ext3 filesystem. The normal compat
-         symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
+       mke2fs is used to create an ext2/ext3 filesystem. The normal compat
+       symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
 
 config BUSYBOX_CONFIG_TUNE2FS
        bool "tune2fs"
        default BUSYBOX_DEFAULT_TUNE2FS
        help
-         tune2fs allows the system administrator to adjust various tunable
-         filesystem parameters on Linux ext2/ext3 filesystems.
+       tune2fs allows the system administrator to adjust various tunable
+       filesystem parameters on Linux ext2/ext3 filesystems.
 
 config BUSYBOX_CONFIG_E2LABEL
        bool "e2label"
        default BUSYBOX_DEFAULT_E2LABEL
        depends on BUSYBOX_CONFIG_TUNE2FS
        help
-         e2label will display or change the filesystem label on the ext2
-         filesystem located on device.
+       e2label will display or change the filesystem label on the ext2
+       filesystem located on device.
 
 config BUSYBOX_CONFIG_FINDFS
        bool "findfs"
        default BUSYBOX_DEFAULT_FINDFS
        depends on BUSYBOX_CONFIG_TUNE2FS
        help
-         findfs will search the disks in the system looking for a filesystem
-         which has a label matching label or a UUID equal to uuid.
+       findfs will search the disks in the system looking for a filesystem
+       which has a label matching label or a UUID equal to uuid.
 
 endmenu
index da4eaedd79780db169d148c059ebbfc7f642a635..c0fbef1939e13486f180eea7b4b0aadd36b9d14b 100644 (file)
@@ -1,49 +1,48 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Editors"
 
 config BUSYBOX_CONFIG_AWK
-       bool "awk"
+       bool "awk (23 kb)"
        default BUSYBOX_DEFAULT_AWK
        help
-         Awk is used as a pattern scanning and processing language. This is
-         the BusyBox implementation of that programming language.
+       Awk is used as a pattern scanning and processing language.
 
 config BUSYBOX_CONFIG_FEATURE_AWK_LIBM
        bool "Enable math functions (requires libm)"
        default BUSYBOX_DEFAULT_FEATURE_AWK_LIBM
        depends on BUSYBOX_CONFIG_AWK
        help
-         Enable math functions of the Awk programming language.
-         NOTE: This will require libm to be present for linking.
+       Enable math functions of the Awk programming language.
+       NOTE: This requires libm to be present for linking.
 
 config BUSYBOX_CONFIG_FEATURE_AWK_GNU_EXTENSIONS
        bool "Enable a few GNU extensions"
        default BUSYBOX_DEFAULT_FEATURE_AWK_GNU_EXTENSIONS
        depends on BUSYBOX_CONFIG_AWK
        help
-         Enable a few features from gawk:
-         * command line option -e AWK_PROGRAM
-         * simultaneous use of -f and -e on the command line.
-           This enables the use of awk library files.
-           Ex: awk -f mylib.awk -e '{print myfunction($1);}' ...
+       Enable a few features from gawk:
+       * command line option -e AWK_PROGRAM
+       * simultaneous use of -f and -e on the command line.
+       This enables the use of awk library files.
+       Example: awk -f mylib.awk -e '{print myfunction($1);}' ...
 config BUSYBOX_CONFIG_CMP
-       bool "cmp"
+       bool "cmp (4.9 kb)"
        default BUSYBOX_DEFAULT_CMP
        help
-         cmp is used to compare two files and returns the result
-         to standard output.
+       cmp is used to compare two files and returns the result
+       to standard output.
 config BUSYBOX_CONFIG_DIFF
-       bool "diff"
+       bool "diff (13 kb)"
        default BUSYBOX_DEFAULT_DIFF
        help
-         diff compares two files or directories and outputs the
-         differences between them in a form that can be given to
-         the patch command.
+       diff compares two files or directories and outputs the
+       differences between them in a form that can be given to
+       the patch command.
 
 config BUSYBOX_CONFIG_FEATURE_DIFF_LONG_OPTIONS
        bool "Enable long options"
@@ -55,34 +54,34 @@ config BUSYBOX_CONFIG_FEATURE_DIFF_DIR
        default BUSYBOX_DEFAULT_FEATURE_DIFF_DIR
        depends on BUSYBOX_CONFIG_DIFF
        help
-         This option enables support for directory and subdirectory
-         comparison.
+       This option enables support for directory and subdirectory
+       comparison.
 config BUSYBOX_CONFIG_ED
-       bool "ed"
+       bool "ed (21 kb)"
        default BUSYBOX_DEFAULT_ED
        help
-         The original 1970's Unix text editor, from the days of teletypes.
-         Small, simple, evil. Part of SUSv3. If you're not already using
-         this, you don't need it.
+       The original 1970's Unix text editor, from the days of teletypes.
+       Small, simple, evil. Part of SUSv3. If you're not already using
+       this, you don't need it.
 config BUSYBOX_CONFIG_PATCH
-       bool "patch"
+       bool "patch (9.4 kb)"
        default BUSYBOX_DEFAULT_PATCH
        help
-         Apply a unified diff formatted patch.
+       Apply a unified diff formatted patch.
 config BUSYBOX_CONFIG_SED
-       bool "sed"
+       bool "sed (12 kb)"
        default BUSYBOX_DEFAULT_SED
        help
-         sed is used to perform text transformations on a file
-         or input from a pipeline.
+       sed is used to perform text transformations on a file
+       or input from a pipeline.
 config BUSYBOX_CONFIG_VI
-       bool "vi"
+       bool "vi (23 kb)"
        default BUSYBOX_DEFAULT_VI
        help
-         'vi' is a text editor. More specifically, it is the One True
-         text editor <grin>. It does, however, have a rather steep
-         learning curve. If you are not already comfortable with 'vi'
-         you may wish to use something else.
+       'vi' is a text editor. More specifically, it is the One True
+       text editor <grin>. It does, however, have a rather steep
+       learning curve. If you are not already comfortable with 'vi'
+       you may wish to use something else.
 
 config BUSYBOX_CONFIG_FEATURE_VI_MAX_LEN
        int "Maximum screen width"
@@ -90,77 +89,77 @@ config BUSYBOX_CONFIG_FEATURE_VI_MAX_LEN
        default BUSYBOX_DEFAULT_FEATURE_VI_MAX_LEN
        depends on BUSYBOX_CONFIG_VI
        help
-         Contrary to what you may think, this is not eating much.
-         Make it smaller than 4k only if you are very limited on memory.
+       Contrary to what you may think, this is not eating much.
+       Make it smaller than 4k only if you are very limited on memory.
 
 config BUSYBOX_CONFIG_FEATURE_VI_8BIT
        bool "Allow to display 8-bit chars (otherwise shows dots)"
        default BUSYBOX_DEFAULT_FEATURE_VI_8BIT
        depends on BUSYBOX_CONFIG_VI
        help
-         If your terminal can display characters with high bit set,
-         you may want to enable this. Note: vi is not Unicode-capable.
-         If your terminal combines several 8-bit bytes into one character
-         (as in Unicode mode), this will not work properly.
+       If your terminal can display characters with high bit set,
+       you may want to enable this. Note: vi is not Unicode-capable.
+       If your terminal combines several 8-bit bytes into one character
+       (as in Unicode mode), this will not work properly.
 
 config BUSYBOX_CONFIG_FEATURE_VI_COLON
        bool "Enable \":\" colon commands (no \"ex\" mode)"
        default BUSYBOX_DEFAULT_FEATURE_VI_COLON
        depends on BUSYBOX_CONFIG_VI
        help
-         Enable a limited set of colon commands. This does not
-         provide an "ex" mode.
+       Enable a limited set of colon commands. This does not
+       provide an "ex" mode.
 
 config BUSYBOX_CONFIG_FEATURE_VI_YANKMARK
        bool "Enable yank/put commands and mark cmds"
        default BUSYBOX_DEFAULT_FEATURE_VI_YANKMARK
        depends on BUSYBOX_CONFIG_VI
        help
-         This will enable you to use yank and put, as well as mark.
+       This enables you to use yank and put, as well as mark.
 
 config BUSYBOX_CONFIG_FEATURE_VI_SEARCH
        bool "Enable search and replace cmds"
        default BUSYBOX_DEFAULT_FEATURE_VI_SEARCH
        depends on BUSYBOX_CONFIG_VI
        help
-         Select this if you wish to be able to do search and replace.
+       Select this if you wish to be able to do search and replace.
 
 config BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH
        bool "Enable regex in search and replace"
        default BUSYBOX_DEFAULT_FEATURE_VI_REGEX_SEARCH   # Uses GNU regex, which may be unavailable. FIXME
        depends on BUSYBOX_CONFIG_FEATURE_VI_SEARCH
        help
-         Use extended regex search.
+       Use extended regex search.
 
 config BUSYBOX_CONFIG_FEATURE_VI_USE_SIGNALS
        bool "Catch signals"
        default BUSYBOX_DEFAULT_FEATURE_VI_USE_SIGNALS
        depends on BUSYBOX_CONFIG_VI
        help
-         Selecting this option will make vi signal aware. This will support
-         SIGWINCH to deal with Window Changes, catch ^Z and ^C and alarms.
+       Selecting this option will make vi signal aware. This will support
+       SIGWINCH to deal with Window Changes, catch ^Z and ^C and alarms.
 
 config BUSYBOX_CONFIG_FEATURE_VI_DOT_CMD
        bool "Remember previous cmd and \".\" cmd"
        default BUSYBOX_DEFAULT_FEATURE_VI_DOT_CMD
        depends on BUSYBOX_CONFIG_VI
        help
-         Make vi remember the last command and be able to repeat it.
+       Make vi remember the last command and be able to repeat it.
 
 config BUSYBOX_CONFIG_FEATURE_VI_READONLY
        bool "Enable -R option and \"view\" mode"
        default BUSYBOX_DEFAULT_FEATURE_VI_READONLY
        depends on BUSYBOX_CONFIG_VI
        help
-         Enable the read-only command line option, which allows the user to
-         open a file in read-only mode.
+       Enable the read-only command line option, which allows the user to
+       open a file in read-only mode.
 
 config BUSYBOX_CONFIG_FEATURE_VI_SETOPTS
        bool "Enable settable options, ai ic showmatch"
        default BUSYBOX_DEFAULT_FEATURE_VI_SETOPTS
        depends on BUSYBOX_CONFIG_VI
        help
-         Enable the editor to set some (ai, ic, showmatch) options.
+       Enable the editor to set some (ai, ic, showmatch) options.
 
 config BUSYBOX_CONFIG_FEATURE_VI_SET
        bool "Support :set"
@@ -172,37 +171,37 @@ config BUSYBOX_CONFIG_FEATURE_VI_WIN_RESIZE
        default BUSYBOX_DEFAULT_FEATURE_VI_WIN_RESIZE
        depends on BUSYBOX_CONFIG_VI
        help
-         Behave nicely with terminals that get resized.
+       Behave nicely with terminals that get resized.
 
 config BUSYBOX_CONFIG_FEATURE_VI_ASK_TERMINAL
        bool "Use 'tell me cursor position' ESC sequence to measure window"
        default BUSYBOX_DEFAULT_FEATURE_VI_ASK_TERMINAL
        depends on BUSYBOX_CONFIG_VI
        help
-         If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
-         this option makes vi perform a last-ditch effort to find it:
-         position cursor to 999,999 and ask terminal to report real
-         cursor position using "ESC [ 6 n" escape sequence, then read stdin.
-         This is not clean but helps a lot on serial lines and such.
+       If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
+       this option makes vi perform a last-ditch effort to find it:
+       position cursor to 999,999 and ask terminal to report real
+       cursor position using "ESC [ 6 n" escape sequence, then read stdin.
+       This is not clean but helps a lot on serial lines and such.
 
 config BUSYBOX_CONFIG_FEATURE_VI_UNDO
        bool "Support undo command \"u\""
        default BUSYBOX_DEFAULT_FEATURE_VI_UNDO
        depends on BUSYBOX_CONFIG_VI
        help
-         Support the 'u' command to undo insertion, deletion, and replacement
-         of text.
+       Support the 'u' command to undo insertion, deletion, and replacement
+       of text.
 
 config BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE
        bool "Enable undo operation queuing"
        default BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE
        depends on BUSYBOX_CONFIG_FEATURE_VI_UNDO
        help
-         The vi undo functions can use an intermediate queue to greatly lower
-         malloc() calls and overhead. When the maximum size of this queue is
-         reached, the contents of the queue are committed to the undo stack.
-         This increases the size of the undo code and allows some undo
-         operations (especially un-typing/backspacing) to be far more useful.
+       The vi undo functions can use an intermediate queue to greatly lower
+       malloc() calls and overhead. When the maximum size of this queue is
+       reached, the contents of the queue are committed to the undo stack.
+       This increases the size of the undo code and allows some undo
+       operations (especially un-typing/backspacing) to be far more useful.
 
 config BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE_MAX
        int "Maximum undo character queue size"
@@ -210,20 +209,20 @@ config BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE_MAX
        range 32 65536
        depends on BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE
        help
-         This option sets the number of bytes used at runtime for the queue.
-         Smaller values will create more undo objects and reduce the amount
-         of typed or backspaced characters that are grouped into one undo
-         operation; larger values increase the potential size of each undo
-         and will generally malloc() larger objects and less frequently.
-         Unless you want more (or less) frequent "undo points" while typing,
-         you should probably leave this unchanged.
+       This option sets the number of bytes used at runtime for the queue.
+       Smaller values will create more undo objects and reduce the amount
+       of typed or backspaced characters that are grouped into one undo
+       operation; larger values increase the potential size of each undo
+       and will generally malloc() larger objects and less frequently.
+       Unless you want more (or less) frequent "undo points" while typing,
+       you should probably leave this unchanged.
 
 config BUSYBOX_CONFIG_FEATURE_ALLOW_EXEC
        bool "Allow vi and awk to execute shell commands"
        default BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC
        depends on BUSYBOX_CONFIG_VI || BUSYBOX_CONFIG_AWK
        help
-         Enables vi and awk features which allow user to execute
-         shell commands (using system() C call).
+       Enables vi and awk features which allow user to execute
+       shell commands (using system() C call).
 
 endmenu
index 3393adbe3bba9a2f6d7c831e8a5c98960c51a158..bebcbb39ef385eeec1c88f47d660cbe40d24f3a3 100644 (file)
@@ -1,42 +1,42 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Finding Utilities"
 
 config BUSYBOX_CONFIG_FIND
-       bool "find"
+       bool "find (14 kb)"
        default BUSYBOX_DEFAULT_FIND
        help
-         find is used to search your system to find specified files.
+       find is used to search your system to find specified files.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_PRINT0
        bool "Enable -print0: NUL-terminated output"
        default BUSYBOX_DEFAULT_FEATURE_FIND_PRINT0
        depends on BUSYBOX_CONFIG_FIND
        help
-         Causes output names to be separated by a NUL character
-         rather than a newline. This allows names that contain
-         newlines and other whitespace to be more easily
-         interpreted by other programs.
+       Causes output names to be separated by a NUL character
+       rather than a newline. This allows names that contain
+       newlines and other whitespace to be more easily
+       interpreted by other programs.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_MTIME
        bool "Enable -mtime: modified time matching"
        default BUSYBOX_DEFAULT_FEATURE_FIND_MTIME
        depends on BUSYBOX_CONFIG_FIND
        help
-         Allow searching based on the modification time of
-         files, in days.
+       Allow searching based on the modification time of
+       files, in days.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_MMIN
        bool "Enable -mmin: modified time matching by minutes"
        default BUSYBOX_DEFAULT_FEATURE_FIND_MMIN
        depends on BUSYBOX_CONFIG_FIND
        help
-         Allow searching based on the modification time of
-         files, in minutes.
+       Allow searching based on the modification time of
+       files, in minutes.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_PERM
        bool "Enable -perm: permissions matching"
@@ -48,8 +48,13 @@ config BUSYBOX_CONFIG_FEATURE_FIND_TYPE
        default BUSYBOX_DEFAULT_FEATURE_FIND_TYPE
        depends on BUSYBOX_CONFIG_FIND
        help
-         Enable searching based on file type (file,
-         directory, socket, device, etc.).
+       Enable searching based on file type (file,
+       directory, socket, device, etc.).
+
+config BUSYBOX_CONFIG_FEATURE_FIND_EXECUTABLE
+       bool "Enable -executable: file is executable"
+       default BUSYBOX_DEFAULT_FEATURE_FIND_EXECUTABLE
+       depends on BUSYBOX_CONFIG_FIND
 
 config BUSYBOX_CONFIG_FEATURE_FIND_XDEV
        bool "Enable -xdev: 'stay in filesystem'"
@@ -66,8 +71,8 @@ config BUSYBOX_CONFIG_FEATURE_FIND_NEWER
        default BUSYBOX_DEFAULT_FEATURE_FIND_NEWER
        depends on BUSYBOX_CONFIG_FIND
        help
-         Support the 'find -newer' option for finding any files which have
-         modification time that is more recent than the specified FILE.
+       Support the 'find -newer' option for finding any files which have
+       modification time that is more recent than the specified FILE.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_INUM
        bool "Enable -inum: inode number matching"
@@ -79,18 +84,18 @@ config BUSYBOX_CONFIG_FEATURE_FIND_EXEC
        default BUSYBOX_DEFAULT_FEATURE_FIND_EXEC
        depends on BUSYBOX_CONFIG_FIND
        help
-         Support the 'find -exec' option for executing commands based upon
-         the files matched.
+       Support the 'find -exec' option for executing commands based upon
+       the files matched.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_EXEC_PLUS
        bool "Enable -exec ... {} +"
        default BUSYBOX_DEFAULT_FEATURE_FIND_EXEC_PLUS
        depends on BUSYBOX_CONFIG_FEATURE_FIND_EXEC
        help
-         Support the 'find -exec ... {} +' option for executing commands
-         for all matched files at once.
-         Without this option, -exec + is a synonym for -exec ;
-         (IOW: it works correctly, but without expected speedup)
+       Support the 'find -exec ... {} +' option for executing commands
+       for all matched files at once.
+       Without this option, -exec + is a synonym for -exec ;
+       (IOW: it works correctly, but without expected speedup)
 
 config BUSYBOX_CONFIG_FEATURE_FIND_USER
        bool "Enable -user: username/uid matching"
@@ -107,23 +112,23 @@ config BUSYBOX_CONFIG_FEATURE_FIND_NOT
        default BUSYBOX_DEFAULT_FEATURE_FIND_NOT
        depends on BUSYBOX_CONFIG_FIND
        help
-         Support the '!' operator to invert the test results.
-         If 'Enable full-blown desktop' is enabled, then will also support
-         the non-POSIX notation '-not'.
+       Support the '!' operator to invert the test results.
+       If 'Enable full-blown desktop' is enabled, then will also support
+       the non-POSIX notation '-not'.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_DEPTH
        bool "Enable -depth"
        default BUSYBOX_DEFAULT_FEATURE_FIND_DEPTH
        depends on BUSYBOX_CONFIG_FIND
        help
-         Process each directory's contents before the directory itself.
+       Process each directory's contents before the directory itself.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_PAREN
        bool "Enable parens in options"
        default BUSYBOX_DEFAULT_FEATURE_FIND_PAREN
        depends on BUSYBOX_CONFIG_FIND
        help
-         Enable usage of parens '(' to specify logical order of arguments.
+       Enable usage of parens '(' to specify logical order of arguments.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_SIZE
        bool "Enable -size: file size matching"
@@ -135,115 +140,132 @@ config BUSYBOX_CONFIG_FEATURE_FIND_PRUNE
        default BUSYBOX_DEFAULT_FEATURE_FIND_PRUNE
        depends on BUSYBOX_CONFIG_FIND
        help
-         If the file is a directory, don't descend into it. Useful for
-         exclusion .svn and CVS directories.
+       If the file is a directory, don't descend into it. Useful for
+       exclusion .svn and CVS directories.
+
+config BUSYBOX_CONFIG_FEATURE_FIND_QUIT
+       bool "Enable -quit: exit"
+       default BUSYBOX_DEFAULT_FEATURE_FIND_QUIT
+       depends on BUSYBOX_CONFIG_FIND
+       help
+       If this action is reached, 'find' exits.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_DELETE
        bool "Enable -delete: delete files/dirs"
        default BUSYBOX_DEFAULT_FEATURE_FIND_DELETE
        depends on BUSYBOX_CONFIG_FIND && BUSYBOX_CONFIG_FEATURE_FIND_DEPTH
        help
-         Support the 'find -delete' option for deleting files and directories.
-         WARNING: This option can do much harm if used wrong. Busybox will not
-         try to protect the user from doing stupid things. Use with care.
+       Support the 'find -delete' option for deleting files and directories.
+       WARNING: This option can do much harm if used wrong. Busybox will not
+       try to protect the user from doing stupid things. Use with care.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_PATH
        bool "Enable -path: match pathname with shell pattern"
        default BUSYBOX_DEFAULT_FEATURE_FIND_PATH
        depends on BUSYBOX_CONFIG_FIND
        help
-         The -path option matches whole pathname instead of just filename.
+       The -path option matches whole pathname instead of just filename.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_REGEX
        bool "Enable -regex: match pathname with regex"
        default BUSYBOX_DEFAULT_FEATURE_FIND_REGEX
        depends on BUSYBOX_CONFIG_FIND
        help
-         The -regex option matches whole pathname against regular expression.
+       The -regex option matches whole pathname against regular expression.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_CONTEXT
        bool "Enable -context: security context matching"
        default BUSYBOX_DEFAULT_FEATURE_FIND_CONTEXT
        depends on BUSYBOX_CONFIG_FIND && BUSYBOX_CONFIG_SELINUX
        help
-         Support the 'find -context' option for matching security context.
+       Support the 'find -context' option for matching security context.
 
 config BUSYBOX_CONFIG_FEATURE_FIND_LINKS
        bool "Enable -links: link count matching"
        default BUSYBOX_DEFAULT_FEATURE_FIND_LINKS
        depends on BUSYBOX_CONFIG_FIND
        help
-         Support the 'find -links' option for matching number of links.
+       Support the 'find -links' option for matching number of links.
 config BUSYBOX_CONFIG_GREP
-       bool "grep"
+       bool "grep (8.6 kb)"
        default BUSYBOX_DEFAULT_GREP
        help
-         grep is used to search files for a specified pattern.
+       grep is used to search files for a specified pattern.
 
 config BUSYBOX_CONFIG_EGREP
-       bool "egrep"
+       bool "egrep (7.8 kb)"
        default BUSYBOX_DEFAULT_EGREP
        help
-         Alias to "grep -E"
+       Alias to "grep -E".
 
 config BUSYBOX_CONFIG_FGREP
-       bool "fgrep"
+       bool "fgrep (7.8 kb)"
        default BUSYBOX_DEFAULT_FGREP
        help
-         Alias to "grep -F"
+       Alias to "grep -F".
 
 config BUSYBOX_CONFIG_FEATURE_GREP_CONTEXT
        bool "Enable before and after context flags (-A, -B and -C)"
        default BUSYBOX_DEFAULT_FEATURE_GREP_CONTEXT
        depends on BUSYBOX_CONFIG_GREP || BUSYBOX_CONFIG_EGREP || BUSYBOX_CONFIG_FGREP
        help
-         Print the specified number of leading (-B) and/or trailing (-A)
-         context surrounding our matching lines.
-         Print the specified number of context lines (-C).
+       Print the specified number of leading (-B) and/or trailing (-A)
+       context surrounding our matching lines.
+       Print the specified number of context lines (-C).
 config BUSYBOX_CONFIG_XARGS
-       bool "xargs"
+       bool "xargs (7.2 kb)"
        default BUSYBOX_DEFAULT_XARGS
        help
-         xargs is used to execute a specified command for
-         every item from standard input.
+       xargs is used to execute a specified command for
+       every item from standard input.
 
 config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION
        bool "Enable -p: prompt and confirmation"
        default BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_CONFIRMATION
        depends on BUSYBOX_CONFIG_XARGS
        help
-         Support -p: prompt the user whether to run each command
-         line and read a line from the terminal.
+       Support -p: prompt the user whether to run each command
+       line and read a line from the terminal.
 
 config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_QUOTES
        bool "Enable single and double quotes and backslash"
        default BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_QUOTES
        depends on BUSYBOX_CONFIG_XARGS
        help
-         Support quoting in the input.
+       Support quoting in the input.
 
 config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT
        bool "Enable -x: exit if -s or -n is exceeded"
        default BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_TERMOPT
        depends on BUSYBOX_CONFIG_XARGS
        help
-         Support -x: exit if the command size (see the -s or -n option)
-         is exceeded.
+       Support -x: exit if the command size (see the -s or -n option)
+       is exceeded.
 
 config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM
        bool "Enable -0: NUL-terminated input"
        default BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_ZERO_TERM
        depends on BUSYBOX_CONFIG_XARGS
        help
-         Support -0: input items are terminated by a NUL character
-         instead of whitespace, and the quotes and backslash
-         are not special.
+       Support -0: input items are terminated by a NUL character
+       instead of whitespace, and the quotes and backslash
+       are not special.
 
 config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR
        bool "Enable -I STR: string to replace"
        default BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_REPL_STR
        depends on BUSYBOX_CONFIG_XARGS
        help
-         Support -I STR and -i[STR] options.
+       Support -I STR and -i[STR] options.
+
+config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL
+       bool "Enable -P N: processes to run in parallel"
+       default BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_PARALLEL
+       depends on BUSYBOX_CONFIG_XARGS
+
+config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE
+       bool "Enable -a FILE: use FILE instead of stdin"
+       default BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_ARGS_FILE
+       depends on BUSYBOX_CONFIG_XARGS
 
 endmenu
index 072df33893d106f6bb9c03311f4d6b8a93575db3..fc6c916a6827588124c38e764e9986dcaefa6ff5 100644 (file)
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Init Utilities"
 
 config BUSYBOX_CONFIG_BOOTCHARTD
-       bool "bootchartd"
+       bool "bootchartd (10 kb)"
        default BUSYBOX_DEFAULT_BOOTCHARTD
        help
-         bootchartd is commonly used to profile the boot process
-         for the purpose of speeding it up. In this case, it is started
-         by the kernel as the init process. This is configured by adding
-         the init=/sbin/bootchartd option to the kernel command line.
+       bootchartd is commonly used to profile the boot process
+       for the purpose of speeding it up. In this case, it is started
+       by the kernel as the init process. This is configured by adding
+       the init=/sbin/bootchartd option to the kernel command line.
 
-         It can also be used to monitor the resource usage of a specific
-         application or the running system in general. In this case,
-         bootchartd is started interactively by running bootchartd start
-         and stopped using bootchartd stop.
+       It can also be used to monitor the resource usage of a specific
+       application or the running system in general. In this case,
+       bootchartd is started interactively by running bootchartd start
+       and stopped using bootchartd stop.
 
 config BUSYBOX_CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER
        bool "Compatible, bloated header"
        default BUSYBOX_DEFAULT_FEATURE_BOOTCHARTD_BLOATED_HEADER
        depends on BUSYBOX_CONFIG_BOOTCHARTD
        help
-         Create extended header file compatible with "big" bootchartd.
-         "Big" bootchartd is a shell script and it dumps some
-         "convenient" info int the header, such as:
-           title = Boot chart for `hostname` (`date`)
-           system.uname = `uname -srvm`
-           system.release = `cat /etc/DISTRO-release`
-           system.cpu = `grep '^model name' /proc/cpuinfo | head -1` ($cpucount)
-           system.kernel.options = `cat /proc/cmdline`
-         This data is not mandatory for bootchart graph generation,
-         and is considered bloat. Nevertheless, this option
-         makes bootchartd applet to dump a subset of it.
+       Create extended header file compatible with "big" bootchartd.
+       "Big" bootchartd is a shell script and it dumps some
+       "convenient" info into the header, such as:
+               title = Boot chart for `hostname` (`date`)
+               system.uname = `uname -srvm`
+               system.release = `cat /etc/DISTRO-release`
+               system.cpu = `grep '^model name' /proc/cpuinfo | head -1` ($cpucount)
+               system.kernel.options = `cat /proc/cmdline`
+       This data is not mandatory for bootchart graph generation,
+       and is considered bloat. Nevertheless, this option
+       makes bootchartd applet to dump a subset of it.
 
 config BUSYBOX_CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE
        bool "Support bootchartd.conf"
        default BUSYBOX_DEFAULT_FEATURE_BOOTCHARTD_CONFIG_FILE
        depends on BUSYBOX_CONFIG_BOOTCHARTD
        help
-         Enable reading and parsing of $PWD/bootchartd.conf
-         and /etc/bootchartd.conf files.
+       Enable reading and parsing of $PWD/bootchartd.conf
+       and /etc/bootchartd.conf files.
 config BUSYBOX_CONFIG_HALT
-       bool "halt"
+       bool "halt (4 kb)"
        default BUSYBOX_DEFAULT_HALT
        help
-         Stop all processes and halt the system.
+       Stop all processes and halt the system.
 
 config BUSYBOX_CONFIG_POWEROFF
-       bool "poweroff"
+       bool "poweroff (4 kb)"
        default BUSYBOX_DEFAULT_POWEROFF
        help
-         Stop all processes and power off the system.
+       Stop all processes and power off the system.
 
 config BUSYBOX_CONFIG_REBOOT
-       bool "reboot"
+       bool "reboot (4 kb)"
        default BUSYBOX_DEFAULT_REBOOT
        help
-         Stop all processes and reboot the system.
+       Stop all processes and reboot the system.
+
+config BUSYBOX_CONFIG_FEATURE_WAIT_FOR_INIT
+       bool "Before signaling init, make sure it is ready for it"
+       default BUSYBOX_DEFAULT_FEATURE_WAIT_FOR_INIT
+       depends on BUSYBOX_CONFIG_HALT || BUSYBOX_CONFIG_POWEROFF || BUSYBOX_CONFIG_REBOOT
+       help
+       In rare cases, poweroff may be commanded by firmware to OS
+       even before init process exists. On Linux, this spawns
+       "/sbin/poweroff" very early. This option adds code
+       which checks that init is ready to receive poweroff
+       commands. Code size increase of ~80 bytes.
 
 config BUSYBOX_CONFIG_FEATURE_CALL_TELINIT
        bool "Call telinit on shutdown and reboot"
        default BUSYBOX_DEFAULT_FEATURE_CALL_TELINIT
        depends on (BUSYBOX_CONFIG_HALT || BUSYBOX_CONFIG_POWEROFF || BUSYBOX_CONFIG_REBOOT) && !BUSYBOX_CONFIG_INIT
        help
-         Call an external program (normally telinit) to facilitate
-         a switch to a proper runlevel.
+       Call an external program (normally telinit) to facilitate
+       a switch to a proper runlevel.
 
-         This option is only available if you selected halt and friends,
-         but did not select init.
+       This option is only available if you selected halt and friends,
+       but did not select init.
 
 config BUSYBOX_CONFIG_TELINIT_PATH
        string "Path to telinit executable"
        default BUSYBOX_DEFAULT_TELINIT_PATH
        depends on BUSYBOX_CONFIG_FEATURE_CALL_TELINIT
        help
-         When busybox halt and friends have to call external telinit
-         to facilitate proper shutdown, this path is to be used when
-         locating telinit executable.
+       When busybox halt and friends have to call external telinit
+       to facilitate proper shutdown, this path is to be used when
+       locating telinit executable.
 config BUSYBOX_CONFIG_INIT
-       bool "init"
+       bool "init (10 kb)"
        default BUSYBOX_DEFAULT_INIT
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         init is the first program run when the system boots.
+       init is the first program run when the system boots.
 
 config BUSYBOX_CONFIG_LINUXRC
        bool "linuxrc: support running init from initrd (not initramfs)"
        default BUSYBOX_DEFAULT_LINUXRC
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         Legacy support for running init under the old-style initrd. Allows
-         the name linuxrc to act as init, and it doesn't assume init is PID 1.
+       Legacy support for running init under the old-style initrd. Allows
+       the name linuxrc to act as init, and it doesn't assume init is PID 1.
 
-         This does not apply to initramfs, which runs /init as PID 1 and
-         requires no special support.
+       This does not apply to initramfs, which runs /init as PID 1 and
+       requires no special support.
 
 config BUSYBOX_CONFIG_FEATURE_USE_INITTAB
        bool "Support reading an inittab file"
        default BUSYBOX_DEFAULT_FEATURE_USE_INITTAB
        depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
        help
-         Allow init to read an inittab file when the system boot.
+       Allow init to read an inittab file when the system boot.
 
 config BUSYBOX_CONFIG_FEATURE_KILL_REMOVED
        bool "Support killing processes that have been removed from inittab"
        default BUSYBOX_DEFAULT_FEATURE_KILL_REMOVED
        depends on BUSYBOX_CONFIG_FEATURE_USE_INITTAB
        help
-         When respawn entries are removed from inittab and a SIGHUP is
-         sent to init, this option will make init kill the processes
-         that have been removed.
+       When respawn entries are removed from inittab and a SIGHUP is
+       sent to init, this option will make init kill the processes
+       that have been removed.
 
 config BUSYBOX_CONFIG_FEATURE_KILL_DELAY
        int "How long to wait between TERM and KILL (0 - send TERM only)" if FEATURE_KILL_REMOVED
@@ -121,34 +132,34 @@ config BUSYBOX_CONFIG_FEATURE_KILL_DELAY
        default BUSYBOX_DEFAULT_FEATURE_KILL_DELAY
        depends on BUSYBOX_CONFIG_FEATURE_KILL_REMOVED
        help
-         With nonzero setting, init sends TERM, forks, child waits N
-         seconds, sends KILL and exits. Setting it too high is unwise
-         (child will hang around for too long and could actually kill
-         the wrong process!)
+       With nonzero setting, init sends TERM, forks, child waits N
+       seconds, sends KILL and exits. Setting it too high is unwise
+       (child will hang around for too long and could actually kill
+       the wrong process!)
 
 config BUSYBOX_CONFIG_FEATURE_INIT_SCTTY
        bool "Run commands with leading dash with controlling tty"
        default BUSYBOX_DEFAULT_FEATURE_INIT_SCTTY
        depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
        help
-         If this option is enabled, init will try to give a controlling
-         tty to any command which has leading hyphen (often it's "-/bin/sh").
-         More precisely, init will do "ioctl(STDIN_FILENO, TIOCSCTTY, 0)".
-         If device attached to STDIN_FILENO can be a ctty but is not yet
-         a ctty for other session, it will become this process' ctty.
-         This is not the traditional init behavour, but is often what you want
-         in an embedded system where the console is only accessed during
-         development or for maintenance.
-         NB: using cttyhack applet may work better.
+       If this option is enabled, init will try to give a controlling
+       tty to any command which has leading hyphen (often it's "-/bin/sh").
+       More precisely, init will do "ioctl(STDIN_FILENO, TIOCSCTTY, 0)".
+       If device attached to STDIN_FILENO can be a ctty but is not yet
+       a ctty for other session, it will become this process' ctty.
+       This is not the traditional init behavour, but is often what you want
+       in an embedded system where the console is only accessed during
+       development or for maintenance.
+       NB: using cttyhack applet may work better.
 
 config BUSYBOX_CONFIG_FEATURE_INIT_SYSLOG
        bool "Enable init to write to syslog"
        default BUSYBOX_DEFAULT_FEATURE_INIT_SYSLOG
        depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
        help
-         If selected, some init messages are sent to syslog.
-         Otherwise, they are sent to VT #5 if linux virtual tty is detected
-         (if not, no separate logging is done).
+       If selected, some init messages are sent to syslog.
+       Otherwise, they are sent to VT #5 if linux virtual tty is detected
+       (if not, no separate logging is done).
 
 config BUSYBOX_CONFIG_FEATURE_INIT_QUIET
        bool "Be quiet on boot (no 'init started:' message)"
@@ -160,36 +171,36 @@ config BUSYBOX_CONFIG_FEATURE_INIT_COREDUMPS
        default BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS  # not Y because this is a debug option
        depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
        help
-         If this option is enabled and the file /.init_enable_core
-         exists, then init will call setrlimit() to allow unlimited
-         core file sizes. If this option is disabled, processes
-         will not generate any core files.
+       If this option is enabled and the file /.init_enable_core
+       exists, then init will call setrlimit() to allow unlimited
+       core file sizes. If this option is disabled, processes
+       will not generate any core files.
 
 config BUSYBOX_CONFIG_INIT_TERMINAL_TYPE
        string "Initial terminal type"
        default BUSYBOX_DEFAULT_INIT_TERMINAL_TYPE
        depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
        help
-         This is the initial value set by init for the TERM environment
-         variable. This variable is used by programs which make use of
-         extended terminal capabilities.
+       This is the initial value set by init for the TERM environment
+       variable. This variable is used by programs which make use of
+       extended terminal capabilities.
 
-         Note that on Linux, init attempts to detect serial terminal and
-         sets TERM to "vt102" if one is found.
+       Note that on Linux, init attempts to detect serial terminal and
+       sets TERM to "vt102" if one is found.
 
 config BUSYBOX_CONFIG_FEATURE_INIT_MODIFY_CMDLINE
        bool "Clear init's command line"
        default BUSYBOX_DEFAULT_FEATURE_INIT_MODIFY_CMDLINE
        depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
        help
-         When launched as PID 1 and after parsing its arguments, init
-         wipes all the arguments but argv[0] and rewrites argv[0] to
-         contain only "init", so that its command line appears solely as
-         "init" in tools such as ps.
-         If this option is set to Y, init will keep its original behavior,
-         otherwise, all the arguments including argv[0] will be preserved,
-         be they parsed or ignored by init.
-         The original command-line used to launch init can then be
-         retrieved in /proc/1/cmdline on Linux, for example.
+       When launched as PID 1 and after parsing its arguments, init
+       wipes all the arguments but argv[0] and rewrites argv[0] to
+       contain only "init", so that its command line appears solely as
+       "init" in tools such as ps.
+       If this option is set to Y, init will keep its original behavior,
+       otherwise, all the arguments including argv[0] will be preserved,
+       be they parsed or ignored by init.
+       The original command-line used to launch init can then be
+       retrieved in /proc/1/cmdline on Linux, for example.
 
 endmenu
diff --git a/package/utils/busybox/config/klibc-utils/Config.in b/package/utils/busybox/config/klibc-utils/Config.in
new file mode 100644 (file)
index 0000000..95e15b6
--- /dev/null
@@ -0,0 +1,43 @@
+# DO NOT EDIT. This file is generated from Config.src
+#
+# For a description of the syntax of this configuration file,
+# see docs/Kconfig-language.txt.
+#
+
+menu "klibc-utils"
+
+config BUSYBOX_CONFIG_MINIPS
+       bool "minips (11 kb)"
+       default BUSYBOX_DEFAULT_MINIPS  # for god's sake, just use "ps" name in your scripts
+       help
+       Alias to "ps".
+config BUSYBOX_CONFIG_NUKE
+       bool "nuke (2.9 kb)"
+       default BUSYBOX_DEFAULT_NUKE
+       help
+       Alias to "rm -rf".
+config BUSYBOX_CONFIG_RESUME
+       bool "resume (3.2 kb)"
+       default BUSYBOX_DEFAULT_RESUME
+       help
+       Resume from saved "suspend-to-disk" image
+config BUSYBOX_CONFIG_RUN_INIT
+       bool "run-init (7.7 kb)"
+       default BUSYBOX_DEFAULT_RUN_INIT
+       select BUSYBOX_CONFIG_PLATFORM_LINUX
+       help
+       The run-init utility is used from initramfs to select a new
+       root device. Under initramfs, you have to use this instead of
+       pivot_root.
+
+       Booting with initramfs extracts a gzipped cpio archive into rootfs
+       (which is a variant of ramfs/tmpfs). Because rootfs can't be moved
+       or unmounted, pivot_root will not work from initramfs. Instead,
+       run-init deletes everything out of rootfs (including itself),
+       does a mount --move that overmounts rootfs with the new root, and
+       then execs the specified init program.
+
+       util-linux has a similar tool, switch-root.
+       run-init differs by also having a "-d CAPS_TO_DROP" option.
+
+endmenu
index 1687ed5c78ad8f9e94a35f0ed88abf0b15efc4d6..f476e86073c04b10f89d51ccc56e9776a9d5ac94 100644 (file)
@@ -1,62 +1,79 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
-menu "Busybox Library Tuning"
+comment "Library Tuning"
 
 config BUSYBOX_CONFIG_FEATURE_USE_BSS_TAIL
        bool "Use the end of BSS page"
        default BUSYBOX_DEFAULT_FEATURE_USE_BSS_TAIL
        help
-         Attempt to reclaim a small unused part of BSS.
-
-         Executables have the following parts:
-         = read-only executable code and constants, also known as "text"
-         = read-write data
-         = non-initialized (zeroed on demand) data, also known as "bss"
-
-         At link time, "text" is padded to a full page. At runtime, all "text"
-         pages are mapped RO and executable.
-         "Data" starts on the next page boundary, but is not padded
-         to a full page at the end. "Bss" starts wherever "data" ends.
-         At runtime, "data" pages are mapped RW and they are file-backed
-         (this includes a small portion of "bss" which may live in the last
-         partial page of "data").
-         Pages which are fully in "bss" are mapped to anonymous memory.
-
-         "Bss" end is usually not page-aligned. There is an unused space
-         in the last page. Linker marks its start with the "_end" symbol.
-
-         This option will attempt to use that space for bb_common_bufsiz1[]
-         array. If it fits after _end, it will be used, and COMMON_BUFSIZE
-         will be enlarged from its guaranteed minimum size of 1 kbyte.
-         This may require recompilation a second time, since value of _end
-         is known only after final link.
-
-         If you are getting a build error like this:
-               appletlib.c:(.text.main+0xd): undefined reference to '_end'
-         disable this option.
+       Attempt to reclaim a small unused part of BSS.
+
+       Executables have the following parts:
+       = read-only executable code and constants, also known as "text"
+       = read-write data
+       = non-initialized (zeroed on demand) data, also known as "bss"
+
+       At link time, "text" is padded to a full page. At runtime, all "text"
+       pages are mapped RO and executable.
+
+       "Data" starts on the next page boundary, but is not padded
+       to a full page at the end. "Bss" starts wherever "data" ends.
+       At runtime, "data" pages are mapped RW and they are file-backed
+       (this includes a small portion of "bss" which may live in the last
+       partial page of "data").
+       Pages which are fully in "bss" are mapped to anonymous memory.
+
+       "Bss" end is usually not page-aligned. There is an unused space
+       in the last page. Linker marks its start with the "_end" symbol.
+
+       This option will attempt to use that space for bb_common_bufsiz1[]
+       array. If it fits after _end, it will be used, and COMMON_BUFSIZE
+       will be enlarged from its guaranteed minimum size of 1 kbyte.
+       This may require recompilation a second time, since value of _end
+       is known only after final link.
+
+       If you are getting a build error like this:
+               appletlib.c:(.text.main+0xd): undefined reference to '_end'
+       disable this option.
+config BUSYBOX_CONFIG_FLOAT_DURATION
+       bool "Enable fractional duration arguments"
+       default BUSYBOX_DEFAULT_FLOAT_DURATION
+       help
+       Allow sleep N.NNN, top -d N.NNN etc.
 config BUSYBOX_CONFIG_FEATURE_RTMINMAX
        bool "Support RTMIN[+n] and RTMAX[-n] signal names"
        default BUSYBOX_DEFAULT_FEATURE_RTMINMAX
        help
-         Support RTMIN[+n] and RTMAX[-n] signal names
-         in kill, killall etc. This costs ~250 bytes.
+       Support RTMIN[+n] and RTMAX[-n] signal names
+       in kill, killall etc. This costs ~250 bytes.
+
+config BUSYBOX_CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS
+       bool "Use the definitions of SIGRTMIN/SIGRTMAX provided by libc"
+       default BUSYBOX_DEFAULT_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS
+       depends on BUSYBOX_CONFIG_FEATURE_RTMINMAX
+       help
+       Some C libraries reserve a few real-time signals for internal
+       use, and adjust the values of SIGRTMIN/SIGRTMAX seen by
+       applications accordingly. Saying yes here means that a signal
+       name RTMIN+n will be interpreted according to the libc definition
+       of SIGRTMIN, and not the raw definition provided by the kernel.
+       This behavior matches "kill -l RTMIN+n" from bash.
 
 choice
        prompt "Buffer allocation policy"
        default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
        help
-         There are 3 ways BusyBox can handle buffer allocations:
-         - Use malloc. This costs code size for the call to xmalloc.
-         - Put them on stack. For some very small machines with limited stack
-           space, this can be deadly. For most folks, this works just fine.
-         - Put them in BSS. This works beautifully for computers with a real
-           MMU (and OS support), but wastes runtime RAM for uCLinux. This
-           behavior was the only one available for BusyBox versions 0.48 and
-           earlier.
+       There are 3 ways busybox can handle buffer allocations:
+       - Use malloc. This costs code size for the call to xmalloc.
+       - Put them on stack. For some very small machines with limited stack
+       space, this can be deadly. For most folks, this works just fine.
+       - Put them in BSS. This works beautifully for computers with a real
+       MMU (and OS support), but wastes runtime RAM for uCLinux. This
+       behavior was the only one available for versions 0.48 and earlier.
 
 config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC
        bool "Allocate with Malloc"
@@ -74,52 +91,64 @@ config BUSYBOX_CONFIG_PASSWORD_MINLEN
        default BUSYBOX_DEFAULT_PASSWORD_MINLEN
        range 5 32
        help
-         Minimum allowable password length.
+       Minimum allowable password length.
 
 config BUSYBOX_CONFIG_MD5_SMALL
        int "MD5: Trade bytes for speed (0:fast, 3:slow)"
        default BUSYBOX_DEFAULT_MD5_SMALL  # all "fast or small" options default to small
        range 0 3
        help
-         Trade binary size versus speed for the md5sum algorithm.
-         Approximate values running uClibc and hashing
-         linux-2.4.4.tar.bz2 were:
-                           user times (sec)  text size (386)
-         0 (fastest)         1.1                6144
-         1                   1.4                5392
-         2                   3.0                5088
-         3 (smallest)        5.1                4912
+       Trade binary size versus speed for the md5sum algorithm.
+       Approximate values running uClibc and hashing
+       linux-2.4.4.tar.bz2 were:
+       value               user times (sec)  text size (386)
+       0 (fastest)         1.1                6144
+       1                   1.4                5392
+       2                   3.0                5088
+       3 (smallest)        5.1                4912
 
 config BUSYBOX_CONFIG_SHA3_SMALL
        int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
        default BUSYBOX_DEFAULT_SHA3_SMALL  # all "fast or small" options default to small
        range 0 1
        help
-         Trade binary size versus speed for the sha3sum algorithm.
-         SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
-         64-bit x86: +270 bytes of code, 45% faster
-         32-bit x86: +450 bytes of code, 75% faster
+       Trade binary size versus speed for the sha3sum algorithm.
+       SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
+       64-bit x86: +270 bytes of code, 45% faster
+       32-bit x86: +450 bytes of code, 75% faster
 
 config BUSYBOX_CONFIG_FEATURE_FAST_TOP
        bool "Faster /proc scanning code (+100 bytes)"
        default BUSYBOX_DEFAULT_FEATURE_FAST_TOP  # all "fast or small" options default to small
        help
-         This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
-         but code size is slightly bigger.
+       This option makes top and ps ~20% faster (or 20% less CPU hungry),
+       but code size is slightly bigger.
 
 config BUSYBOX_CONFIG_FEATURE_ETC_NETWORKS
        bool "Support /etc/networks"
        default BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
        help
-         Enable support for network names in /etc/networks. This is
-         a rarely used feature which allows you to use names
-         instead of IP/mask pairs in route command.
+       Enable support for network names in /etc/networks. This is
+       a rarely used feature which allows you to use names
+       instead of IP/mask pairs in route command.
+
+config BUSYBOX_CONFIG_FEATURE_ETC_SERVICES
+       bool "Consult /etc/services even for well-known ports"
+       default BUSYBOX_DEFAULT_FEATURE_ETC_SERVICES
+       help
+       Look up e.g. "telnet" and "http" in /etc/services file
+       instead of assuming ports 23 and 80.
+       This is almost never necessary (everybody uses standard ports),
+       and it makes sense to avoid reading this file.
+       If you disable this option, in the cases where port is explicitly
+       specified as a service name (e.g. "telnet HOST PORTNAME"),
+       it will still be looked up in /etc/services.
 
 config BUSYBOX_CONFIG_FEATURE_EDITING
        bool "Command line editing"
        default BUSYBOX_DEFAULT_FEATURE_EDITING
        help
-         Enable line editing (mainly for shell command line).
+       Enable line editing (mainly for shell command line).
 
 config BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN
        int "Maximum length of input"
@@ -127,17 +156,17 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN
        default BUSYBOX_DEFAULT_FEATURE_EDITING_MAX_LEN
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
-         Line editing code uses on-stack buffers for storage.
-         You may want to decrease this parameter if your target machine
-         benefits from smaller stack usage.
+       Line editing code uses on-stack buffers for storage.
+       You may want to decrease this parameter if your target machine
+       benefits from smaller stack usage.
 
 config BUSYBOX_CONFIG_FEATURE_EDITING_VI
        bool "vi-style line editing commands"
        default BUSYBOX_DEFAULT_FEATURE_EDITING_VI
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
-         Enable vi-style line editing. In shells, this mode can be
-         turned on and off with "set -o vi" and "set +o vi".
+       Enable vi-style line editing. In shells, this mode can be
+       turned on and off with "set -o vi" and "set +o vi".
 
 config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY
        int "History size"
@@ -146,29 +175,29 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY
        default BUSYBOX_DEFAULT_FEATURE_EDITING_HISTORY
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
-         Specify command history size (0 - disable).
+       Specify command history size (0 - disable).
 
 config BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
        bool "History saving"
        default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVEHISTORY
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
-         Enable history saving in shells.
+       Enable history saving in shells.
 
 config BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT
        bool "Save history on shell exit, not after every command"
        default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVE_ON_EXIT
        depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
        help
-         Save history on shell exit, not after every command.
+       Save history on shell exit, not after every command.
 
 config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH
        bool "Reverse history search"
        default BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
-         Enable readline-like Ctrl-R combination for reverse history search.
-         Increases code by about 0.5k.
+       Enable readline-like Ctrl-R combination for reverse history search.
+       Increases code by about 0.5k.
 
 config BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
        bool "Tab completion"
@@ -185,236 +214,242 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_FANCY_PROMPT
        default BUSYBOX_DEFAULT_FEATURE_EDITING_FANCY_PROMPT
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
-         Setting this option allows for prompts to use things like \w and
-         \$ and escape codes.
+       Setting this option allows for prompts to use things like \w and
+       \$ and escape codes.
+
+config BUSYBOX_CONFIG_FEATURE_EDITING_WINCH
+       bool "Enable automatic tracking of window size changes"
+       default BUSYBOX_DEFAULT_FEATURE_EDITING_WINCH
+       depends on BUSYBOX_CONFIG_FEATURE_EDITING
 
 config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL
        bool "Query cursor position from terminal"
        default BUSYBOX_DEFAULT_FEATURE_EDITING_ASK_TERMINAL
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
-         Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
-         current cursor position. This information is used to make line
-         editing more robust in some cases.
-         If you are not sure whether your terminals respond to this code
-         correctly, or want to save on code size (about 400 bytes),
-         then do not turn this option on.
+       Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
+       current cursor position. This information is used to make line
+       editing more robust in some cases.
+       If you are not sure whether your terminals respond to this code
+       correctly, or want to save on code size (about 400 bytes),
+       then do not turn this option on.
 
 config BUSYBOX_CONFIG_LOCALE_SUPPORT
        bool "Enable locale support (system needs locale for this to work)"
        default BUSYBOX_DEFAULT_LOCALE_SUPPORT
        help
-         Enable this if your system has locale support and you would like
-         busybox to support locale settings.
+       Enable this if your system has locale support and you would like
+       busybox to support locale settings.
 
 config BUSYBOX_CONFIG_UNICODE_SUPPORT
        bool "Support Unicode"
        default BUSYBOX_DEFAULT_UNICODE_SUPPORT
        help
-         This makes various applets aware that one byte is not
-         one character on screen.
+       This makes various applets aware that one byte is not
+       one character on screen.
 
-         Busybox aims to eventually work correctly with Unicode displays.
-         Any older encodings are not guaranteed to work.
-         Probably by the time when busybox will be fully Unicode-clean,
-         other encodings will be mainly of historic interest.
+       Busybox aims to eventually work correctly with Unicode displays.
+       Any older encodings are not guaranteed to work.
+       Probably by the time when busybox will be fully Unicode-clean,
+       other encodings will be mainly of historic interest.
 
 config BUSYBOX_CONFIG_UNICODE_USING_LOCALE
        bool "Use libc routines for Unicode (else uses internal ones)"
        default BUSYBOX_DEFAULT_UNICODE_USING_LOCALE
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && BUSYBOX_CONFIG_LOCALE_SUPPORT
        help
-         With this option on, Unicode support is implemented using libc
-         routines. Otherwise, internal implementation is used.
-         Internal implementation is smaller.
+       With this option on, Unicode support is implemented using libc
+       routines. Otherwise, internal implementation is used.
+       Internal implementation is smaller.
 
 config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
        bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
        default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
        help
-         With this option on, Unicode support is activated
-         only if locale-related variables have the value of the form
-         "xxxx.utf8"
+       With this option on, Unicode support is activated
+       only if locale-related variables have the value of the form
+       "xxxx.utf8"
 
-         Otherwise, Unicode support will be always enabled and active.
+       Otherwise, Unicode support will be always enabled and active.
 
 config BUSYBOX_CONFIG_SUBST_WCHAR
        int "Character code to substitute unprintable characters with"
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
        default BUSYBOX_DEFAULT_SUBST_WCHAR
        help
-         Typical values are 63 for '?' (works with any output device),
-         30 for ASCII substitute control code,
-         65533 (0xfffd) for Unicode replacement character.
+       Typical values are 63 for '?' (works with any output device),
+       30 for ASCII substitute control code,
+       65533 (0xfffd) for Unicode replacement character.
 
 config BUSYBOX_CONFIG_LAST_SUPPORTED_WCHAR
        int "Range of supported Unicode characters"
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
        default BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR
        help
-         Any character with Unicode value bigger than this is assumed
-         to be non-printable on output device. Many applets replace
-         such characters with substitution character.
-
-         The idea is that many valid printable Unicode chars
-         nevertheless are not displayed correctly. Think about
-         combining charachers, double-wide hieroglyphs, obscure
-         characters in dozens of ancient scripts...
-         Many terminals, terminal emulators, xterms etc will fail
-         to handle them correctly. Choose the smallest value
-         which suits your needs.
-
-         Typical values are:
-         126 - ASCII only
-         767 (0x2ff) - there are no combining chars in [0..767] range
+       Any character with Unicode value bigger than this is assumed
+       to be non-printable on output device. Many applets replace
+       such characters with substitution character.
+
+       The idea is that many valid printable Unicode chars
+       nevertheless are not displayed correctly. Think about
+       combining charachers, double-wide hieroglyphs, obscure
+       characters in dozens of ancient scripts...
+       Many terminals, terminal emulators, xterms etc will fail
+       to handle them correctly. Choose the smallest value
+       which suits your needs.
+
+       Typical values are:
+       126 - ASCII only
+       767 (0x2ff) - there are no combining chars in [0..767] range
                        (the range includes Latin 1, Latin Ext. A and B),
                        code is ~700 bytes smaller for this case.
-         4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
+       4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
                        code is ~300 bytes smaller for this case.
-         12799 (0x31ff) - nearly all non-ideographic characters are
+       12799 (0x31ff) - nearly all non-ideographic characters are
                        available in [0..12799] range, including
                        East Asian scripts like katakana, hiragana, hangul,
                        bopomofo...
-         0 - off, any valid printable Unicode character will be printed.
+       0 - off, any valid printable Unicode character will be printed.
 
 config BUSYBOX_CONFIG_UNICODE_COMBINING_WCHARS
        bool "Allow zero-width Unicode characters on output"
        default BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
        help
-         With this option off, any Unicode char with width of 0
-         is substituted on output.
+       With this option off, any Unicode char with width of 0
+       is substituted on output.
 
 config BUSYBOX_CONFIG_UNICODE_WIDE_WCHARS
        bool "Allow wide Unicode characters on output"
        default BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
        help
-         With this option off, any Unicode char with width > 1
-         is substituted on output.
+       With this option off, any Unicode char with width > 1
+       is substituted on output.
 
 config BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
        bool "Bidirectional character-aware line input"
        default BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
        help
-         With this option on, right-to-left Unicode characters
-         are treated differently on input (e.g. cursor movement).
+       With this option on, right-to-left Unicode characters
+       are treated differently on input (e.g. cursor movement).
 
 config BUSYBOX_CONFIG_UNICODE_NEUTRAL_TABLE
        bool "In bidi input, support non-ASCII neutral chars too"
        default BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
        depends on BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
        help
-         In most cases it's enough to treat only ASCII non-letters
-         (i.e. punctuation, numbers and space) as characters
-         with neutral directionality.
-         With this option on, more extensive (and bigger) table
-         of neutral chars will be used.
+       In most cases it's enough to treat only ASCII non-letters
+       (i.e. punctuation, numbers and space) as characters
+       with neutral directionality.
+       With this option on, more extensive (and bigger) table
+       of neutral chars will be used.
 
 config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
        bool "Make it possible to enter sequences of chars which are not Unicode"
        default BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
        help
-         With this option on, on line-editing input (such as used by shells)
-         invalid UTF-8 bytes are not substituted with the selected
-         substitution character.
-         For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
-         at shell prompt will list file named 0xff (single char name
-         with char value 255), not file named '?'.
+       With this option on, on line-editing input (such as used by shells)
+       invalid UTF-8 bytes are not substituted with the selected
+       substitution character.
+       For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
+       at shell prompt will list file named 0xff (single char name
+       with char value 255), not file named '?'.
 
 config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP
        bool "Non-POSIX, but safer, copying to special nodes"
        default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
        help
-         With this option, "cp file symlink" will delete symlink
-         and create a regular file. This does not conform to POSIX,
-         but prevents a symlink attack.
-         Similarly, "cp file device" will not send file's data
-         to the device. (To do that, use "cat file >device")
+       With this option, "cp file symlink" will delete symlink
+       and create a regular file. This does not conform to POSIX,
+       but prevents a symlink attack.
+       Similarly, "cp file device" will not send file's data
+       to the device. (To do that, use "cat file >device")
 
 config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
        bool "Give more precise messages when copy fails (cp, mv etc)"
        default BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
        help
-         Error messages with this feature enabled:
-           $ cp file /does_not_exist/file
-           cp: cannot create '/does_not_exist/file': Path does not exist
-           $ cp file /vmlinuz/file
-           cp: cannot stat '/vmlinuz/file': Path has non-directory component
-         If this feature is not enabled, they will be, respectively:
-           cp: cannot create '/does_not_exist/file': No such file or directory
-           cp: cannot stat '/vmlinuz/file': Not a directory
-         This will cost you ~60 bytes.
+       Error messages with this feature enabled:
+
+       $ cp file /does_not_exist/file
+       cp: cannot create '/does_not_exist/file': Path does not exist
+       $ cp file /vmlinuz/file
+       cp: cannot stat '/vmlinuz/file': Path has non-directory component
+
+       If this feature is not enabled, they will be, respectively:
+
+       cp: cannot create '/does_not_exist/file': No such file or directory
+       cp: cannot stat '/vmlinuz/file': Not a directory
+
+       This will cost you ~60 bytes.
 
 config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
        bool "Use sendfile system call"
        default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         When enabled, busybox will use the kernel sendfile() function
-         instead of read/write loops to copy data between file descriptors
-         (for example, cp command does this a lot).
-         If sendfile() doesn't work, copying code falls back to read/write
-         loop. sendfile() was originally implemented for faster I/O
-         from files to sockets, but since Linux 2.6.33 it was extended
-         to work for many more file types.
+       When enabled, busybox will use the kernel sendfile() function
+       instead of read/write loops to copy data between file descriptors
+       (for example, cp command does this a lot).
+       If sendfile() doesn't work, copying code falls back to read/write
+       loop. sendfile() was originally implemented for faster I/O
+       from files to sockets, but since Linux 2.6.33 it was extended
+       to work for many more file types.
 
 config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
        int "Copy buffer size, in kilobytes"
        range 1 1024
        default BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
        help
-         Size of buffer used by cp, mv, install, wget etc.
-         Buffers which are 4 kb or less will be allocated on stack.
-         Bigger buffers will be allocated with mmap, with fallback to 4 kb
-         stack buffer if mmap fails.
+       Size of buffer used by cp, mv, install, wget etc.
+       Buffers which are 4 kb or less will be allocated on stack.
+       Bigger buffers will be allocated with mmap, with fallback to 4 kb
+       stack buffer if mmap fails.
 
 config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
        bool "Skip rootfs in mount table"
        default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
        help
-         Ignore rootfs entry in mount table.
+       Ignore rootfs entry in mount table.
 
-         In Linux, kernel has a special filesystem, rootfs, which is initially
-         mounted on /. It contains initramfs data, if kernel is configured
-         to have one. Usually, another file system is mounted over / early
-         in boot process, and therefore most tools which manipulate
-         mount table, such as df, will skip rootfs entry.
+       In Linux, kernel has a special filesystem, rootfs, which is initially
+       mounted on /. It contains initramfs data, if kernel is configured
+       to have one. Usually, another file system is mounted over / early
+       in boot process, and therefore most tools which manipulate
+       mount table, such as df, will skip rootfs entry.
 
-         However, some systems do not mount anything on /.
-         If you need to configure busybox for one of these systems,
-         you may find it useful to turn this option off to make df show
-         initramfs statistics.
+       However, some systems do not mount anything on /.
+       If you need to configure busybox for one of these systems,
+       you may find it useful to turn this option off to make df show
+       initramfs statistics.
 
-         Otherwise, choose Y.
+       Otherwise, choose Y.
 
 config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
        bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
        default BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
-         time intervals (time, ping, traceroute etc need this).
-         Probably requires Linux 2.6+. If not selected, gettimeofday
-         will be used instead (which gives wrong results if date/time
-         is reset).
+       Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
+       time intervals (time, ping, traceroute etc need this).
+       Probably requires Linux 2.6+. If not selected, gettimeofday
+       will be used instead (which gives wrong results if date/time
+       is reset).
 
 config BUSYBOX_CONFIG_IOCTL_HEX2STR_ERROR
        bool "Use ioctl names rather than hex values in error messages"
        default BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
        help
-         Use ioctl names rather than hex values in error messages
-         (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
-         saves about 1400 bytes.
+       Use ioctl names rather than hex values in error messages
+       (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
+       saves about 1400 bytes.
 
 config BUSYBOX_CONFIG_FEATURE_HWIB
        bool "Support infiniband HW"
        default BUSYBOX_DEFAULT_FEATURE_HWIB
        help
-         Support for printing infiniband addresses in
-         network applets.
-
-endmenu
+       Support for printing infiniband addresses in network applets.
index fa00595877605bcd3d08e6c113c212c9fa789078..465fa519cb19f6b9ad8eda25d348f82e8c4852bd 100644 (file)
@@ -1,7 +1,7 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Login/Password Management Utilities"
@@ -10,147 +10,139 @@ config BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS
        bool "Support shadow passwords"
        default BUSYBOX_DEFAULT_FEATURE_SHADOWPASSWDS
        help
-         Build support for shadow password in /etc/shadow. This file is only
-         readable by root and thus the encrypted passwords are no longer
-         publicly readable.
+       Build support for shadow password in /etc/shadow. This file is only
+       readable by root and thus the encrypted passwords are no longer
+       publicly readable.
 
 config BUSYBOX_CONFIG_USE_BB_PWD_GRP
        bool "Use internal password and group functions rather than system functions"
        default BUSYBOX_DEFAULT_USE_BB_PWD_GRP
        help
-         If you leave this disabled, busybox will use the system's password
-         and group functions. And if you are using the GNU C library
-         (glibc), you will then need to install the /etc/nsswitch.conf
-         configuration file and the required /lib/libnss_* libraries in
-         order for the password and group functions to work. This generally
-         makes your embedded system quite a bit larger.
-
-         Enabling this option will cause busybox to directly access the
-         system's /etc/password, /etc/group files (and your system will be
-         smaller, and I will get fewer emails asking about how glibc NSS
-         works). When this option is enabled, you will not be able to use
-         PAM to access remote LDAP password servers and whatnot. And if you
-         want hostname resolution to work with glibc, you still need the
-         /lib/libnss_* libraries.
-
-         If you need to use glibc's nsswitch.conf mechanism
-         (e.g. if user/group database is NOT stored in /etc/passwd etc),
-         you must NOT use this option.
-
-         If you enable this option, it will add about 1.5k.
+       If you leave this disabled, busybox will use the system's password
+       and group functions. And if you are using the GNU C library
+       (glibc), you will then need to install the /etc/nsswitch.conf
+       configuration file and the required /lib/libnss_* libraries in
+       order for the password and group functions to work. This generally
+       makes your embedded system quite a bit larger.
+
+       Enabling this option will cause busybox to directly access the
+       system's /etc/password, /etc/group files (and your system will be
+       smaller, and I will get fewer emails asking about how glibc NSS
+       works). When this option is enabled, you will not be able to use
+       PAM to access remote LDAP password servers and whatnot. And if you
+       want hostname resolution to work with glibc, you still need the
+       /lib/libnss_* libraries.
+
+       If you need to use glibc's nsswitch.conf mechanism
+       (e.g. if user/group database is NOT stored in /etc/passwd etc),
+       you must NOT use this option.
+
+       If you enable this option, it will add about 1.5k.
 
 config BUSYBOX_CONFIG_USE_BB_SHADOW
        bool "Use internal shadow password functions"
        default BUSYBOX_DEFAULT_USE_BB_SHADOW
        depends on BUSYBOX_CONFIG_USE_BB_PWD_GRP && BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS
        help
-         If you leave this disabled, busybox will use the system's shadow
-         password handling functions. And if you are using the GNU C library
-         (glibc), you will then need to install the /etc/nsswitch.conf
-         configuration file and the required /lib/libnss_* libraries in
-         order for the shadow password functions to work. This generally
-         makes your embedded system quite a bit larger.
-
-         Enabling this option will cause busybox to directly access the
-         system's /etc/shadow file when handling shadow passwords. This
-         makes your system smaller (and I will get fewer emails asking about
-         how glibc NSS works). When this option is enabled, you will not be
-         able to use PAM to access shadow passwords from remote LDAP
-         password servers and whatnot.
+       If you leave this disabled, busybox will use the system's shadow
+       password handling functions. And if you are using the GNU C library
+       (glibc), you will then need to install the /etc/nsswitch.conf
+       configuration file and the required /lib/libnss_* libraries in
+       order for the shadow password functions to work. This generally
+       makes your embedded system quite a bit larger.
+
+       Enabling this option will cause busybox to directly access the
+       system's /etc/shadow file when handling shadow passwords. This
+       makes your system smaller (and I will get fewer emails asking about
+       how glibc NSS works). When this option is enabled, you will not be
+       able to use PAM to access shadow passwords from remote LDAP
+       password servers and whatnot.
 
 config BUSYBOX_CONFIG_USE_BB_CRYPT
        bool "Use internal crypt functions"
        default BUSYBOX_DEFAULT_USE_BB_CRYPT
        help
-         Busybox has internal DES and MD5 crypt functions.
-         They produce results which are identical to corresponding
-         standard C library functions.
+       Busybox has internal DES and MD5 crypt functions.
+       They produce results which are identical to corresponding
+       standard C library functions.
 
-         If you leave this disabled, busybox will use the system's
-         crypt functions. Most C libraries use large (~70k)
-         static buffers there, and also combine them with more general
-         DES encryption/decryption.
+       If you leave this disabled, busybox will use the system's
+       crypt functions. Most C libraries use large (~70k)
+       static buffers there, and also combine them with more general
+       DES encryption/decryption.
 
-         For busybox, having large static buffers is undesirable,
-         especially on NOMMU machines. Busybox also doesn't need
-         DES encryption/decryption and can do with smaller code.
+       For busybox, having large static buffers is undesirable,
+       especially on NOMMU machines. Busybox also doesn't need
+       DES encryption/decryption and can do with smaller code.
 
-         If you enable this option, it will add about 4.8k of code
-         if you are building dynamically linked executable.
-         In static build, it makes code _smaller_ by about 1.2k,
-         and likely many kilobytes less of bss.
+       If you enable this option, it will add about 4.8k of code
+       if you are building dynamically linked executable.
+       In static build, it makes code _smaller_ by about 1.2k,
+       and likely many kilobytes less of bss.
 
 config BUSYBOX_CONFIG_USE_BB_CRYPT_SHA
        bool "Enable SHA256/512 crypt functions"
        default BUSYBOX_DEFAULT_USE_BB_CRYPT_SHA
        depends on BUSYBOX_CONFIG_USE_BB_CRYPT
        help
-         Enable this if you have passwords starting with "$5$" or "$6$"
-         in your /etc/passwd or /etc/shadow files. These passwords
-         are hashed using SHA256 and SHA512 algorithms. Support for them
-         was added to glibc in 2008.
-         With this option off, login will fail password check for any
-         user which has password encrypted with these algorithms.
+       Enable this if you have passwords starting with "$5$" or "$6$"
+       in your /etc/passwd or /etc/shadow files. These passwords
+       are hashed using SHA256 and SHA512 algorithms. Support for them
+       was added to glibc in 2008.
+       With this option off, login will fail password check for any
+       user which has password encrypted with these algorithms.
 
 config BUSYBOX_CONFIG_ADD_SHELL
-       bool "add-shell"
-       default BUSYBOX_DEFAULT_ADD_SHELL if BUSYBOX_CONFIG_DESKTOP
-       help
-         Add shells to /etc/shells.
+       bool "add-shell (3.1 kb)"
+       default BUSYBOX_DEFAULT_ADD_SHELL if BUSYBOX_CONFIG_DESKTOP
+       help
+       Add shells to /etc/shells.
 
 config BUSYBOX_CONFIG_REMOVE_SHELL
-       bool "remove-shell"
-       default BUSYBOX_DEFAULT_REMOVE_SHELL if BUSYBOX_CONFIG_DESKTOP
-       help
-         Remove shells from /etc/shells.
+       bool "remove-shell (3 kb)"
+       default BUSYBOX_DEFAULT_REMOVE_SHELL if BUSYBOX_CONFIG_DESKTOP
+       help
+       Remove shells from /etc/shells.
 config BUSYBOX_CONFIG_ADDGROUP
-       bool "addgroup"
+       bool "addgroup (8.6 kb)"
        default BUSYBOX_DEFAULT_ADDGROUP
+       select BUSYBOX_CONFIG_LONG_OPTS
        help
-         Utility for creating a new group account.
-
-config BUSYBOX_CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS
-       bool "Enable long options"
-       default BUSYBOX_DEFAULT_FEATURE_ADDGROUP_LONG_OPTIONS
-       depends on BUSYBOX_CONFIG_ADDGROUP && BUSYBOX_CONFIG_LONG_OPTS
+       Utility for creating a new group account.
 
 config BUSYBOX_CONFIG_FEATURE_ADDUSER_TO_GROUP
        bool "Support adding users to groups"
        default BUSYBOX_DEFAULT_FEATURE_ADDUSER_TO_GROUP
        depends on BUSYBOX_CONFIG_ADDGROUP
        help
-         If called with two non-option arguments,
-         addgroup will add an existing user to an
-         existing group.
+       If called with two non-option arguments,
+       addgroup will add an existing user to an
+       existing group.
 config BUSYBOX_CONFIG_ADDUSER
-       bool "adduser"
+       bool "adduser (15 kb)"
        default BUSYBOX_DEFAULT_ADDUSER
+       select BUSYBOX_CONFIG_LONG_OPTS
        help
-         Utility for creating a new user account.
-
-config BUSYBOX_CONFIG_FEATURE_ADDUSER_LONG_OPTIONS
-       bool "Enable long options"
-       default BUSYBOX_DEFAULT_FEATURE_ADDUSER_LONG_OPTIONS
-       depends on BUSYBOX_CONFIG_ADDUSER && BUSYBOX_CONFIG_LONG_OPTS
+       Utility for creating a new user account.
 
 config BUSYBOX_CONFIG_FEATURE_CHECK_NAMES
        bool "Enable sanity check on user/group names in adduser and addgroup"
        default BUSYBOX_DEFAULT_FEATURE_CHECK_NAMES
        depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP
        help
-         Enable sanity check on user and group names in adduser and addgroup.
-         To avoid problems, the user or group name should consist only of
-         letters, digits, underscores, periods, at signs and dashes,
-         and not start with a dash (as defined by IEEE Std 1003.1-2001).
-         For compatibility with Samba machine accounts "$" is also supported
-         at the end of the user or group name.
+       Enable sanity check on user and group names in adduser and addgroup.
+       To avoid problems, the user or group name should consist only of
+       letters, digits, underscores, periods, at signs and dashes,
+       and not start with a dash (as defined by IEEE Std 1003.1-2001).
+       For compatibility with Samba machine accounts "$" is also supported
+       at the end of the user or group name.
 
 config BUSYBOX_CONFIG_LAST_ID
        int "Last valid uid or gid for adduser and addgroup"
        depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP
        default BUSYBOX_DEFAULT_LAST_ID
        help
-         Last valid uid or gid for adduser and addgroup
+       Last valid uid or gid for adduser and addgroup
 
 config BUSYBOX_CONFIG_FIRST_SYSTEM_ID
        int "First valid system uid or gid for adduser and addgroup"
@@ -158,7 +150,7 @@ config BUSYBOX_CONFIG_FIRST_SYSTEM_ID
        range 0 BUSYBOX_CONFIG_LAST_ID
        default BUSYBOX_DEFAULT_FIRST_SYSTEM_ID
        help
-         First valid system uid or gid for adduser and addgroup
+       First valid system uid or gid for adduser and addgroup
 
 config BUSYBOX_CONFIG_LAST_SYSTEM_ID
        int "Last valid system uid or gid for adduser and addgroup"
@@ -166,144 +158,144 @@ config BUSYBOX_CONFIG_LAST_SYSTEM_ID
        range BUSYBOX_CONFIG_FIRST_SYSTEM_ID BUSYBOX_CONFIG_LAST_ID
        default BUSYBOX_DEFAULT_LAST_SYSTEM_ID
        help
-         Last valid system uid or gid for adduser and addgroup
+       Last valid system uid or gid for adduser and addgroup
 config BUSYBOX_CONFIG_CHPASSWD
-       bool "chpasswd"
+       bool "chpasswd (18 kb)"
        default BUSYBOX_DEFAULT_CHPASSWD
        help
-         Reads a file of user name and password pairs from standard input
-         and uses this information to update a group of existing users.
+       Reads a file of user name and password pairs from standard input
+       and uses this information to update a group of existing users.
 
 config BUSYBOX_CONFIG_FEATURE_DEFAULT_PASSWD_ALGO
        string "Default encryption method (passwd -a, cryptpw -m, chpasswd -c ALG)"
        default BUSYBOX_DEFAULT_FEATURE_DEFAULT_PASSWD_ALGO
        depends on BUSYBOX_CONFIG_PASSWD || BUSYBOX_CONFIG_CRYPTPW || BUSYBOX_CONFIG_CHPASSWD
        help
-         Possible choices are "d[es]", "m[d5]", "s[ha256]" or "sha512".
+       Possible choices are "d[es]", "m[d5]", "s[ha256]" or "sha512".
 config BUSYBOX_CONFIG_CRYPTPW
-       bool "cryptpw"
+       bool "cryptpw (14 kb)"
        default BUSYBOX_DEFAULT_CRYPTPW
        help
-         Encrypts the given password with the crypt(3) libc function
-         using the given salt.
+       Encrypts the given password with the crypt(3) libc function
+       using the given salt.
 
 config BUSYBOX_CONFIG_MKPASSWD
-       bool "mkpasswd"
+       bool "mkpasswd (15 kb)"
        default BUSYBOX_DEFAULT_MKPASSWD
        help
-         Encrypts the given password with the crypt(3) libc function
-         using the given salt. Debian has this utility under mkpasswd
-         name. Busybox provides mkpasswd as an alias for cryptpw.
+       Encrypts the given password with the crypt(3) libc function
+       using the given salt. Debian has this utility under mkpasswd
+       name. Busybox provides mkpasswd as an alias for cryptpw.
 config BUSYBOX_CONFIG_DELUSER
-       bool "deluser"
+       bool "deluser (9.1 kb)"
        default BUSYBOX_DEFAULT_DELUSER
        help
-         Utility for deleting a user account.
+       Utility for deleting a user account.
 
 config BUSYBOX_CONFIG_DELGROUP
-       bool "delgroup"
+       bool "delgroup (6.4 kb)"
        default BUSYBOX_DEFAULT_DELGROUP
        help
-         Utility for deleting a group account.
+       Utility for deleting a group account.
 
 config BUSYBOX_CONFIG_FEATURE_DEL_USER_FROM_GROUP
        bool "Support removing users from groups"
        default BUSYBOX_DEFAULT_FEATURE_DEL_USER_FROM_GROUP
        depends on BUSYBOX_CONFIG_DELGROUP
        help
-         If called with two non-option arguments, deluser
-         or delgroup will remove an user from a specified group.
+       If called with two non-option arguments, deluser
+       or delgroup will remove an user from a specified group.
 config BUSYBOX_CONFIG_GETTY
-       bool "getty"
+       bool "getty (10 kb)"
        default BUSYBOX_DEFAULT_GETTY
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         getty lets you log in on a tty. It is normally invoked by init.
-
-         Note that you can save a few bytes by disabling it and
-         using login applet directly.
-         If you need to reset tty attributes before calling login,
-         this script approximates getty:
-
-         exec </dev/$1 >/dev/$1 2>&1 || exit 1
-         reset
-         stty sane; stty ispeed 38400; stty ospeed 38400
-         printf "%s login: " "`hostname`"
-         read -r login
-         exec /bin/login "$login"
+       getty lets you log in on a tty. It is normally invoked by init.
+
+       Note that you can save a few bytes by disabling it and
+       using login applet directly.
+       If you need to reset tty attributes before calling login,
+       this script approximates getty:
+
+       exec </dev/$1 >/dev/$1 2>&1 || exit 1
+       reset
+       stty sane; stty ispeed 38400; stty ospeed 38400
+       printf "%s login: " "`hostname`"
+       read -r login
+       exec /bin/login "$login"
 config BUSYBOX_CONFIG_LOGIN
-       bool "login"
+       bool "login (24 kb)"
        default BUSYBOX_DEFAULT_LOGIN
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         login is used when signing onto a system.
+       login is used when signing onto a system.
 
-         Note that Busybox binary must be setuid root for this applet to
-         work properly.
+       Note that busybox binary must be setuid root for this applet to
+       work properly.
 
 config BUSYBOX_CONFIG_LOGIN_SESSION_AS_CHILD
        bool "Run logged in session in a child process"
        default BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD if BUSYBOX_CONFIG_PAM
        depends on BUSYBOX_CONFIG_LOGIN
        help
-         Run the logged in session in a child process.  This allows
-         login to clean up things such as utmp entries or PAM sessions
-         when the login session is complete.  If you use PAM, you
-         almost always would want this to be set to Y, else PAM session
-         will not be cleaned up.
+       Run the logged in session in a child process.  This allows
+       login to clean up things such as utmp entries or PAM sessions
+       when the login session is complete.  If you use PAM, you
+       almost always would want this to be set to Y, else PAM session
+       will not be cleaned up.
 
 config BUSYBOX_CONFIG_LOGIN_SCRIPTS
        bool "Support login scripts"
        depends on BUSYBOX_CONFIG_LOGIN
        default BUSYBOX_DEFAULT_LOGIN_SCRIPTS
        help
-         Enable this if you want login to execute $LOGIN_PRE_SUID_SCRIPT
-         just prior to switching from root to logged-in user.
+       Enable this if you want login to execute $LOGIN_PRE_SUID_SCRIPT
+       just prior to switching from root to logged-in user.
 
 config BUSYBOX_CONFIG_FEATURE_NOLOGIN
        bool "Support /etc/nologin"
        default BUSYBOX_DEFAULT_FEATURE_NOLOGIN
        depends on BUSYBOX_CONFIG_LOGIN
        help
-         The file /etc/nologin is used by (some versions of) login(1).
-         If it exists, non-root logins are prohibited.
+       The file /etc/nologin is used by (some versions of) login(1).
+       If it exists, non-root logins are prohibited.
 
 config BUSYBOX_CONFIG_FEATURE_SECURETTY
        bool "Support /etc/securetty"
        default BUSYBOX_DEFAULT_FEATURE_SECURETTY
        depends on BUSYBOX_CONFIG_LOGIN
        help
-         The file /etc/securetty is used by (some versions of) login(1).
-         The file contains the device names of tty lines (one per line,
-         without leading /dev/) on which root is allowed to login.
+       The file /etc/securetty is used by (some versions of) login(1).
+       The file contains the device names of tty lines (one per line,
+       without leading /dev/) on which root is allowed to login.
 config BUSYBOX_CONFIG_PASSWD
-       bool "passwd"
+       bool "passwd (21 kb)"
        default BUSYBOX_DEFAULT_PASSWD
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         passwd changes passwords for user and group accounts. A normal user
-         may only change the password for his/her own account, the super user
-         may change the password for any account. The administrator of a group
-         may change the password for the group.
+       passwd changes passwords for user and group accounts. A normal user
+       may only change the password for his/her own account, the super user
+       may change the password for any account. The administrator of a group
+       may change the password for the group.
 
-         Note that Busybox binary must be setuid root for this applet to
-         work properly.
+       Note that busybox binary must be setuid root for this applet to
+       work properly.
 
 config BUSYBOX_CONFIG_FEATURE_PASSWD_WEAK_CHECK
        bool "Check new passwords for weakness"
        default BUSYBOX_DEFAULT_FEATURE_PASSWD_WEAK_CHECK
        depends on BUSYBOX_CONFIG_PASSWD
        help
-         With this option passwd will refuse new passwords which are "weak".
+       With this option passwd will refuse new passwords which are "weak".
 config BUSYBOX_CONFIG_SU
-       bool "su"
+       bool "su (19 kb)"
        default BUSYBOX_DEFAULT_SU
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         su is used to become another user during a login session.
-         Invoked without a username, su defaults to becoming the super user.
-         Note that busybox binary must be setuid root for this applet to
-         work properly.
+       su is used to become another user during a login session.
+       Invoked without a username, su defaults to becoming the super user.
+       Note that busybox binary must be setuid root for this applet to
+       work properly.
 
 config BUSYBOX_CONFIG_FEATURE_SU_SYSLOG
        bool "Log to syslog all attempts to use su"
@@ -320,19 +312,19 @@ config BUSYBOX_CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY
        default BUSYBOX_DEFAULT_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY
        depends on BUSYBOX_CONFIG_SU
 config BUSYBOX_CONFIG_SULOGIN
-       bool "sulogin"
+       bool "sulogin (17 kb)"
        default BUSYBOX_DEFAULT_SULOGIN
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         sulogin is invoked when the system goes into single user
-         mode (this is done through an entry in inittab).
+       sulogin is invoked when the system goes into single user
+       mode (this is done through an entry in inittab).
 config BUSYBOX_CONFIG_VLOCK
-       bool "vlock"
+       bool "vlock (17 kb)"
        default BUSYBOX_DEFAULT_VLOCK
        help
-         Build the "vlock" applet which allows you to lock (virtual) terminals.
+       Build the "vlock" applet which allows you to lock (virtual) terminals.
 
-         Note that Busybox binary must be setuid root for this applet to
-         work properly.
+       Note that busybox binary must be setuid root for this applet to
+       work properly.
 
 endmenu
index 7e77407860c0b43a0d7cd78607327fd465174d0a..a8632471a86e97fa98a156e5bc55ae0b0041a753 100644 (file)
@@ -2,50 +2,50 @@
 menu "Mail Utilities"
 
 config BUSYBOX_CONFIG_MAKEMIME
-       bool "makemime"
+       bool "makemime (5.4 kb)"
        default BUSYBOX_DEFAULT_MAKEMIME
        help
-         Create MIME-formatted messages.
+       Create MIME-formatted messages.
 config BUSYBOX_CONFIG_POPMAILDIR
-       bool "popmaildir"
+       bool "popmaildir (10 kb)"
        default BUSYBOX_DEFAULT_POPMAILDIR
        help
-         Simple yet powerful POP3 mail popper. Delivers content
-         of remote mailboxes to local Maildir.
+       Simple yet powerful POP3 mail popper. Delivers content
+       of remote mailboxes to local Maildir.
 
 config BUSYBOX_CONFIG_FEATURE_POPMAILDIR_DELIVERY
        bool "Allow message filters and custom delivery program"
        default BUSYBOX_DEFAULT_FEATURE_POPMAILDIR_DELIVERY
        depends on BUSYBOX_CONFIG_POPMAILDIR
        help
-         Allow to use a custom program to filter the content
-         of the message before actual delivery (-F "prog [args...]").
-         Allow to use a custom program for message actual delivery
-         (-M "prog [args...]").
+       Allow to use a custom program to filter the content
+       of the message before actual delivery (-F "prog [args...]").
+       Allow to use a custom program for message actual delivery
+       (-M "prog [args...]").
 config BUSYBOX_CONFIG_REFORMIME
-       bool "reformime"
+       bool "reformime (7.5 kb)"
        default BUSYBOX_DEFAULT_REFORMIME
        help
-         Parse MIME-formatted messages.
+       Parse MIME-formatted messages.
 
 config BUSYBOX_CONFIG_FEATURE_REFORMIME_COMPAT
        bool "Accept and ignore options other than -x and -X"
        default BUSYBOX_DEFAULT_FEATURE_REFORMIME_COMPAT
        depends on BUSYBOX_CONFIG_REFORMIME
        help
-         Accept (for compatibility only) and ignore options
-         other than -x and -X.
+       Accept (for compatibility only) and ignore options
+       other than -x and -X.
 config BUSYBOX_CONFIG_SENDMAIL
-       bool "sendmail"
+       bool "sendmail (14 kb)"
        default BUSYBOX_DEFAULT_SENDMAIL
        help
-         Barebones sendmail.
+       Barebones sendmail.
 
 config BUSYBOX_CONFIG_FEATURE_MIME_CHARSET
        string "Default charset"
        default BUSYBOX_DEFAULT_FEATURE_MIME_CHARSET
        depends on BUSYBOX_CONFIG_MAKEMIME || BUSYBOX_CONFIG_REFORMIME || BUSYBOX_CONFIG_SENDMAIL
        help
-         Default charset of the message.
+       Default charset of the message.
 
 endmenu
index 61c5458b637c6b58831689b1ef5750acca238ad5..dfd04fbd567132a7918346beb3b6800fdc325dd4 100644 (file)
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Miscellaneous Utilities"
 
 config BUSYBOX_CONFIG_ADJTIMEX
-       bool "adjtimex"
+       bool "adjtimex (4.7 kb)"
        default BUSYBOX_DEFAULT_ADJTIMEX
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Adjtimex reads and optionally sets adjustment parameters for
-         the Linux clock adjustment algorithm.
+       Adjtimex reads and optionally sets adjustment parameters for
+       the Linux clock adjustment algorithm.
 config BUSYBOX_CONFIG_BBCONFIG
-       bool "bbconfig"
+       bool "bbconfig (9.7 kb)"
        default BUSYBOX_DEFAULT_BBCONFIG
        help
-         The bbconfig applet will print the config file with which
-         busybox was built.
+       The bbconfig applet will print the config file with which
+       busybox was built.
 
 config BUSYBOX_CONFIG_FEATURE_COMPRESS_BBCONFIG
        bool "Compress bbconfig data"
        default BUSYBOX_DEFAULT_FEATURE_COMPRESS_BBCONFIG
        depends on BUSYBOX_CONFIG_BBCONFIG
        help
-         Store bbconfig data in compressed form, uncompress them on-the-fly
-         before output.
+       Store bbconfig data in compressed form, uncompress them on-the-fly
+       before output.
+
+       If you have a really tiny busybox with few applets enabled (and
+       bunzip2 isn't one of them), the overhead of the decompressor might
+       be noticeable. Also, if you run executables directly from ROM
+       and have very little memory, this might not be a win. Otherwise,
+       you probably want this.
+config BUSYBOX_CONFIG_BC
+       bool "bc (45 kb)"
+       default BUSYBOX_DEFAULT_BC
+       select BUSYBOX_CONFIG_FEATURE_DC_BIG
+       help
+       bc is a command-line, arbitrary-precision calculator with a
+       Turing-complete language. See the GNU bc manual
+       (https://www.gnu.org/software/bc/manual/bc.html) and bc spec
+       (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html).
+
+       This bc has five differences to the GNU bc:
+         1) The period (.) is a shortcut for "last", as in the BSD bc.
+         2) Arrays are copied before being passed as arguments to
+            functions. This behavior is required by the bc spec.
+         3) Arrays can be passed to the builtin "length" function to get
+            the number of elements in the array. This prints "1":
+               a[0] = 0; length(a[])
+         4) The precedence of the boolean "not" operator (!) is equal to
+            that of the unary minus (-) negation operator. This still
+            allows POSIX-compliant scripts to work while somewhat
+            preserving expected behavior (versus C) and making parsing
+            easier.
+         5) "read()" accepts expressions, not only numeric literals.
 
-         If you have a really tiny busybox with few applets enabled (and
-         bunzip2 isn't one of them), the overhead of the decompressor might
-         be noticeable. Also, if you run executables directly from ROM
-         and have very little memory, this might not be a win. Otherwise,
-         you probably want this.
+config BUSYBOX_CONFIG_DC
+       bool "dc (36 kb)"
+       default BUSYBOX_DEFAULT_DC
+       help
+       dc is a reverse-polish notation command-line calculator which
+       supports unlimited precision arithmetic. See the FreeBSD man page
+       (https://www.unix.com/man-page/FreeBSD/1/dc/) and GNU dc manual
+       (https://www.gnu.org/software/bc/manual/dc-1.05/html_mono/dc.html).
+
+       This dc has a few differences from the two above:
+         1) When printing a byte stream (command "P"), this dc follows what
+            the FreeBSD dc does.
+         2) Implements the GNU extensions for divmod ("~") and
+            modular exponentiation ("|").
+         3) Implements all FreeBSD extensions, except for "J" and "M".
+         4) Like the FreeBSD dc, this dc supports extended registers.
+            However, they are implemented differently. When it encounters
+            whitespace where a register should be, it skips the whitespace.
+            If the character following is not a lowercase letter, an error
+            is issued. Otherwise, the register name is parsed by the
+            following regex: [a-z][a-z0-9_]*
+            This generally means that register names will be surrounded by
+            whitespace. Examples:
+               l idx s temp L index S temp2 < do_thing
+            Also note that, like the FreeBSD dc, extended registers are not
+            allowed unless the "-x" option is given.
+
+if BC || BUSYBOX_CONFIG_DC  # for menuconfig indenting
+
+config BUSYBOX_CONFIG_FEATURE_DC_BIG
+       bool "Use bc code base for dc (larger, more features)"
+       default BUSYBOX_DEFAULT_FEATURE_DC_BIG
+
+config BUSYBOX_CONFIG_FEATURE_DC_LIBM
+       bool "Enable power and exp functions (requires libm)"
+       default BUSYBOX_DEFAULT_FEATURE_DC_LIBM
+       depends on BUSYBOX_CONFIG_DC && !BUSYBOX_CONFIG_BC && !BUSYBOX_CONFIG_FEATURE_DC_BIG
+       help
+       Enable power and exp functions.
+       NOTE: This will require libm to be present for linking.
+
+config BUSYBOX_CONFIG_FEATURE_BC_INTERACTIVE
+       bool "Interactive mode (+4kb)"
+       default BUSYBOX_DEFAULT_FEATURE_BC_INTERACTIVE
+       depends on BUSYBOX_CONFIG_BC || (BUSYBOX_CONFIG_DC && BUSYBOX_CONFIG_FEATURE_DC_BIG)
+       help
+       Enable interactive mode: when started on a tty,
+       ^C interrupts execution and returns to command line,
+       errors also return to command line instead of exiting,
+       line editing with history is available.
+
+       With this option off, input can still be taken from tty,
+       but all errors are fatal, ^C is fatal,
+       tty is treated exactly the same as any other
+       standard input (IOW: no line editing).
+
+config BUSYBOX_CONFIG_FEATURE_BC_LONG_OPTIONS
+       bool "Enable bc/dc long options"
+       default BUSYBOX_DEFAULT_FEATURE_BC_LONG_OPTIONS
+       depends on BUSYBOX_CONFIG_BC || (BUSYBOX_CONFIG_DC && BUSYBOX_CONFIG_FEATURE_DC_BIG)
+
+endif
 config BUSYBOX_CONFIG_BEEP
-       bool "beep"
+       bool "beep (2.4 kb)"
        default BUSYBOX_DEFAULT_BEEP
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         The beep applets beeps in a given freq/Hz.
+       The beep applets beeps in a given freq/Hz.
 
 config BUSYBOX_CONFIG_FEATURE_BEEP_FREQ
        int "default frequency"
@@ -46,7 +132,7 @@ config BUSYBOX_CONFIG_FEATURE_BEEP_FREQ
        default BUSYBOX_DEFAULT_FEATURE_BEEP_FREQ
        depends on BUSYBOX_CONFIG_BEEP
        help
-         Frequency for default beep.
+       Frequency for default beep.
 
 config BUSYBOX_CONFIG_FEATURE_BEEP_LENGTH_MS
        int "default length"
@@ -54,343 +140,348 @@ config BUSYBOX_CONFIG_FEATURE_BEEP_LENGTH_MS
        default BUSYBOX_DEFAULT_FEATURE_BEEP_LENGTH_MS
        depends on BUSYBOX_CONFIG_BEEP
        help
-         Length in ms for default beep.
+       Length in ms for default beep.
 config BUSYBOX_CONFIG_CHAT
-       bool "chat"
+       bool "chat (6.3 kb)"
        default BUSYBOX_DEFAULT_CHAT
        help
-         Simple chat utility.
+       Simple chat utility.
 
 config BUSYBOX_CONFIG_FEATURE_CHAT_NOFAIL
        bool "Enable NOFAIL expect strings"
        depends on BUSYBOX_CONFIG_CHAT
        default BUSYBOX_DEFAULT_FEATURE_CHAT_NOFAIL
        help
-         When enabled expect strings which are started with a dash trigger
-         no-fail mode. That is when expectation is not met within timeout
-         the script is not terminated but sends next SEND string and waits
-         for next EXPECT string. This allows to compose far more flexible
-         scripts.
+       When enabled expect strings which are started with a dash trigger
+       no-fail mode. That is when expectation is not met within timeout
+       the script is not terminated but sends next SEND string and waits
+       for next EXPECT string. This allows to compose far more flexible
+       scripts.
 
 config BUSYBOX_CONFIG_FEATURE_CHAT_TTY_HIFI
        bool "Force STDIN to be a TTY"
        depends on BUSYBOX_CONFIG_CHAT
        default BUSYBOX_DEFAULT_FEATURE_CHAT_TTY_HIFI
        help
-         Original chat always treats STDIN as a TTY device and sets for it
-         so-called raw mode. This option turns on such behaviour.
+       Original chat always treats STDIN as a TTY device and sets for it
+       so-called raw mode. This option turns on such behaviour.
 
 config BUSYBOX_CONFIG_FEATURE_CHAT_IMPLICIT_CR
        bool "Enable implicit Carriage Return"
        depends on BUSYBOX_CONFIG_CHAT
        default BUSYBOX_DEFAULT_FEATURE_CHAT_IMPLICIT_CR
        help
-         When enabled make chat to terminate all SEND strings with a "\r"
-         unless "\c" is met anywhere in the string.
+       When enabled make chat to terminate all SEND strings with a "\r"
+       unless "\c" is met anywhere in the string.
 
 config BUSYBOX_CONFIG_FEATURE_CHAT_SWALLOW_OPTS
        bool "Swallow options"
        depends on BUSYBOX_CONFIG_CHAT
        default BUSYBOX_DEFAULT_FEATURE_CHAT_SWALLOW_OPTS
        help
-         Busybox chat require no options. To make it not fail when used
-         in place of original chat (which has a bunch of options) turn
-         this on.
+       Busybox chat require no options. To make it not fail when used
+       in place of original chat (which has a bunch of options) turn
+       this on.
 
 config BUSYBOX_CONFIG_FEATURE_CHAT_SEND_ESCAPES
        bool "Support weird SEND escapes"
        depends on BUSYBOX_CONFIG_CHAT
        default BUSYBOX_DEFAULT_FEATURE_CHAT_SEND_ESCAPES
        help
-         Original chat uses some escape sequences in SEND arguments which
-         are not sent to device but rather performs special actions.
-         E.g. "\K" means to send a break sequence to device.
-         "\d" delays execution for a second, "\p" -- for a 1/100 of second.
-         Before turning this option on think twice: do you really need them?
+       Original chat uses some escape sequences in SEND arguments which
+       are not sent to device but rather performs special actions.
+       E.g. "\K" means to send a break sequence to device.
+       "\d" delays execution for a second, "\p" -- for a 1/100 of second.
+       Before turning this option on think twice: do you really need them?
 
 config BUSYBOX_CONFIG_FEATURE_CHAT_VAR_ABORT_LEN
        bool "Support variable-length ABORT conditions"
        depends on BUSYBOX_CONFIG_CHAT
        default BUSYBOX_DEFAULT_FEATURE_CHAT_VAR_ABORT_LEN
        help
-         Original chat uses fixed 50-bytes length ABORT conditions. Say N here.
+       Original chat uses fixed 50-bytes length ABORT conditions. Say N here.
 
 config BUSYBOX_CONFIG_FEATURE_CHAT_CLR_ABORT
        bool "Support revoking of ABORT conditions"
        depends on BUSYBOX_CONFIG_CHAT
        default BUSYBOX_DEFAULT_FEATURE_CHAT_CLR_ABORT
        help
-         Support CLR_ABORT directive.
+       Support CLR_ABORT directive.
 config BUSYBOX_CONFIG_CONSPY
-       bool "conspy"
+       bool "conspy (10 kb)"
        default BUSYBOX_DEFAULT_CONSPY
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         A text-mode VNC like program for Linux virtual terminals.
-         example:  conspy NUM      shared access to console num
-         or        conspy -nd NUM  screenshot of console num
-         or        conspy -cs NUM  poor man's GNU screen like
+       A text-mode VNC like program for Linux virtual terminals.
+       example:  conspy NUM      shared access to console num
+       or        conspy -nd NUM  screenshot of console num
+       or        conspy -cs NUM  poor man's GNU screen like
 config BUSYBOX_CONFIG_CROND
-       bool "crond"
+       bool "crond (14 kb)"
        default BUSYBOX_DEFAULT_CROND
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         Crond is a background daemon that parses individual crontab
-         files and executes commands on behalf of the users in question.
-         This is a port of dcron from slackware. It uses files of the
-         format /var/spool/cron/crontabs/<username> files, for example:
-             $ cat /var/spool/cron/crontabs/root
-             # Run daily cron jobs at 4:40 every day:
-             40 4 * * * /etc/cron/daily > /dev/null 2>&1
+       Crond is a background daemon that parses individual crontab
+       files and executes commands on behalf of the users in question.
+       This is a port of dcron from slackware. It uses files of the
+       format /var/spool/cron/crontabs/<username> files, for example:
+               $ cat /var/spool/cron/crontabs/root
+               # Run daily cron jobs at 4:40 every day:
+               40 4 * * * /etc/cron/daily > /dev/null 2>&1
 
 config BUSYBOX_CONFIG_FEATURE_CROND_D
-       bool "Support option -d to redirect output to stderr"
+       bool "Support -d (redirect output to stderr)"
        depends on BUSYBOX_CONFIG_CROND
        default BUSYBOX_DEFAULT_FEATURE_CROND_D
        help
-         -d N sets loglevel (0:most verbose) and directs all output to stderr.
+       -d N sets loglevel (0:most verbose) and directs all output to stderr.
 
 config BUSYBOX_CONFIG_FEATURE_CROND_CALL_SENDMAIL
        bool "Report command output via email (using sendmail)"
        default BUSYBOX_DEFAULT_FEATURE_CROND_CALL_SENDMAIL
        depends on BUSYBOX_CONFIG_CROND
        help
-         Command output will be sent to corresponding user via email.
+       Command output will be sent to corresponding user via email.
+
+config BUSYBOX_CONFIG_FEATURE_CROND_SPECIAL_TIMES
+       bool "Support special times (@reboot, @daily, etc) in crontabs"
+       default BUSYBOX_DEFAULT_FEATURE_CROND_SPECIAL_TIMES
+       depends on BUSYBOX_CONFIG_CROND
+       help
+       string        meaning
+       ------        -------
+       @reboot       Run once, at startup
+       @yearly       Run once a year:  "0 0 1 1 *"
+       @annually     Same as @yearly:  "0 0 1 1 *"
+       @monthly      Run once a month: "0 0 1 * *"
+       @weekly       Run once a week:  "0 0 * * 0"
+       @daily        Run once a day:   "0 0 * * *"
+       @midnight     Same as @daily:   "0 0 * * *"
+       @hourly       Run once an hour: "0 * * * *"
 
 config BUSYBOX_CONFIG_FEATURE_CROND_DIR
        string "crond spool directory"
        default BUSYBOX_DEFAULT_FEATURE_CROND_DIR
        depends on BUSYBOX_CONFIG_CROND || BUSYBOX_CONFIG_CRONTAB
        help
-         Location of crond spool.
+       Location of crond spool.
 config BUSYBOX_CONFIG_CRONTAB
-       bool "crontab"
+       bool "crontab (10 kb)"
        default BUSYBOX_DEFAULT_CRONTAB
        help
-         Crontab manipulates the crontab for a particular user. Only
-         the superuser may specify a different user and/or crontab directory.
-         Note that Busybox binary must be setuid root for this applet to
-         work properly.
-config BUSYBOX_CONFIG_DC
-       bool "dc"
-       default BUSYBOX_DEFAULT_DC
-       help
-         Dc is a reverse-polish desk calculator which supports unlimited
-         precision arithmetic.
-
-config BUSYBOX_CONFIG_FEATURE_DC_LIBM
-       bool "Enable power and exp functions (requires libm)"
-       default BUSYBOX_DEFAULT_FEATURE_DC_LIBM
-       depends on BUSYBOX_CONFIG_DC
-       help
-         Enable power and exp functions.
-         NOTE: This will require libm to be present for linking.
+       Crontab manipulates the crontab for a particular user. Only
+       the superuser may specify a different user and/or crontab directory.
+       Note that busybox binary must be setuid root for this applet to
+       work properly.
 config BUSYBOX_CONFIG_DEVFSD
        bool "devfsd (obsolete)"
        default BUSYBOX_DEFAULT_DEVFSD
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         This is deprecated and should NOT be used anymore.
-         Use linux >= 2.6 (optionally with hotplug) and mdev instead!
-         See docs/mdev.txt for detailed instructions on how to use mdev
-         instead.
+       This is deprecated and should NOT be used anymore.
+       Use linux >= 2.6 (optionally with hotplug) and mdev instead!
+       See docs/mdev.txt for detailed instructions on how to use mdev
+       instead.
 
-         Provides compatibility with old device names on a devfs systems.
-         You should set it to true if you have devfs enabled.
-         The following keywords in devsfd.conf are supported:
-         "CLEAR_CONFIG", "INCLUDE", "OPTIONAL_INCLUDE", "RESTORE",
-         "PERMISSIONS", "EXECUTE", "COPY", "IGNORE",
-         "MKOLDCOMPAT", "MKNEWCOMPAT","RMOLDCOMPAT", "RMNEWCOMPAT".
+       Provides compatibility with old device names on a devfs systems.
+       You should set it to true if you have devfs enabled.
+       The following keywords in devsfd.conf are supported:
+       "CLEAR_CONFIG", "INCLUDE", "OPTIONAL_INCLUDE", "RESTORE",
+       "PERMISSIONS", "EXECUTE", "COPY", "IGNORE",
+       "MKOLDCOMPAT", "MKNEWCOMPAT","RMOLDCOMPAT", "RMNEWCOMPAT".
 
-         But only if they are written UPPERCASE!!!!!!!!
+       But only if they are written UPPERCASE!!!!!!!!
 
 config BUSYBOX_CONFIG_DEVFSD_MODLOAD
        bool "Adds support for MODLOAD keyword in devsfd.conf"
        default BUSYBOX_DEFAULT_DEVFSD_MODLOAD
        depends on BUSYBOX_CONFIG_DEVFSD
        help
-         This actually doesn't work with busybox modutils but needs
-         the external modutils.
+       This actually doesn't work with busybox modutils but needs
+       the external modutils.
 
 config BUSYBOX_CONFIG_DEVFSD_FG_NP
        bool "Enable the -fg and -np options"
        default BUSYBOX_DEFAULT_DEVFSD_FG_NP
        depends on BUSYBOX_CONFIG_DEVFSD
        help
-         -fg  Run the daemon in the foreground.
-         -np  Exit after parsing the configuration file.
-              Do not poll for events.
+       -fg  Run the daemon in the foreground.
+       -np  Exit after parsing config. Do not poll for events.
 
 config BUSYBOX_CONFIG_DEVFSD_VERBOSE
        bool "Increases logging (and size)"
        default BUSYBOX_DEFAULT_DEVFSD_VERBOSE
        depends on BUSYBOX_CONFIG_DEVFSD
        help
-         Increases logging to stderr or syslog.
+       Increases logging to stderr or syslog.
 
 config BUSYBOX_CONFIG_FEATURE_DEVFS
        bool "Use devfs names for all devices (obsolete)"
        default BUSYBOX_DEFAULT_FEATURE_DEVFS
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         This is obsolete and should NOT be used anymore.
-         Use linux >= 2.6 (optionally with hotplug) and mdev instead!
+       This is obsolete and should NOT be used anymore.
+       Use linux >= 2.6 (optionally with hotplug) and mdev instead!
 
-         For legacy systems -- if there is no way around devfsd -- this
-         tells busybox to look for names like /dev/loop/0 instead of
-         /dev/loop0. If your /dev directory has normal names instead of
-         devfs names, you don't want this.
+       For legacy systems -- if there is no way around devfsd -- this
+       tells busybox to look for names like /dev/loop/0 instead of
+       /dev/loop0. If your /dev directory has normal names instead of
+       devfs names, you don't want this.
 config BUSYBOX_CONFIG_DEVMEM
-       bool "devmem"
+       bool "devmem (2.5 kb)"
        default BUSYBOX_DEFAULT_DEVMEM
        help
-         devmem is a small program that reads and writes from physical
-         memory using /dev/mem.
+       devmem is a small program that reads and writes from physical
+       memory using /dev/mem.
 config BUSYBOX_CONFIG_FBSPLASH
-       bool "fbsplash"
+       bool "fbsplash (26 kb)"
        default BUSYBOX_DEFAULT_FBSPLASH
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Shows splash image and progress bar on framebuffer device.
-         Can be used during boot phase of an embedded device. ~2kb.
-         Usage:
-         - use kernel option 'vga=xxx' or otherwise enable fb device.
-         - put somewhere fbsplash.cfg file and an image in .ppm format.
-         - $ setsid fbsplash [params] &
+       Shows splash image and progress bar on framebuffer device.
+       Can be used during boot phase of an embedded device.
+       Usage:
+       - use kernel option 'vga=xxx' or otherwise enable fb device.
+       - put somewhere fbsplash.cfg file and an image in .ppm format.
+       - $ setsid fbsplash [params] &
            -c: hide cursor
            -d /dev/fbN: framebuffer device (if not /dev/fb0)
            -s path_to_image_file (can be "-" for stdin)
            -i path_to_cfg_file (can be "-" for stdin)
            -f path_to_fifo (can be "-" for stdin)
-         - if you want to run it only in presence of kernel parameter:
+       - if you want to run it only in presence of kernel parameter:
            grep -q "fbsplash=on" </proc/cmdline && setsid fbsplash [params] &
-         - commands for fifo:
+       - commands for fifo:
            "NN" (ASCII decimal number) - percentage to show on progress bar
            "exit" - well you guessed it
 config BUSYBOX_CONFIG_FLASH_ERASEALL
-       bool "flash_eraseall"
+       bool "flash_eraseall (5.9 kb)"
        default BUSYBOX_DEFAULT_FLASH_ERASEALL  # doesn't build on Ubuntu 8.04
        help
-         The flash_eraseall binary from mtd-utils as of git head c4c6a59eb.
-         This utility is used to erase the whole MTD device.
+       The flash_eraseall binary from mtd-utils as of git head c4c6a59eb.
+       This utility is used to erase the whole MTD device.
 config BUSYBOX_CONFIG_FLASH_LOCK
-       bool "flash_lock"
+       bool "flash_lock (2.1 kb)"
        default BUSYBOX_DEFAULT_FLASH_LOCK  # doesn't build on Ubuntu 8.04
        help
-         The flash_lock binary from mtd-utils as of git head 5ec0c10d0. This
-         utility locks part or all of the flash device.
+       The flash_lock binary from mtd-utils as of git head 5ec0c10d0. This
+       utility locks part or all of the flash device.
 
 config BUSYBOX_CONFIG_FLASH_UNLOCK
-       bool "flash_unlock"
+       bool "flash_unlock (1.3 kb)"
        default BUSYBOX_DEFAULT_FLASH_UNLOCK  # doesn't build on Ubuntu 8.04
        help
-         The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This
-         utility unlocks part or all of the flash device.
+       The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This
+       utility unlocks part or all of the flash device.
 config BUSYBOX_CONFIG_FLASHCP
-       bool "flashcp"
+       bool "flashcp (5.3 kb)"
        default BUSYBOX_DEFAULT_FLASHCP  # doesn't build on Ubuntu 8.04
        help
-         The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7.
-         This utility is used to copy images into a MTD device.
+       The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7.
+       This utility is used to copy images into a MTD device.
 config BUSYBOX_CONFIG_HDPARM
-       bool "hdparm"
+       bool "hdparm (25 kb)"
        default BUSYBOX_DEFAULT_HDPARM
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Get/Set hard drive parameters. Primarily intended for ATA
-         drives. Adds about 13k (or around 30k if you enable the
-         FEATURE_HDPARM_GET_IDENTITY option)....
+       Get/Set hard drive parameters. Primarily intended for ATA
+       drives.
 
 config BUSYBOX_CONFIG_FEATURE_HDPARM_GET_IDENTITY
        bool "Support obtaining detailed information directly from drives"
        default BUSYBOX_DEFAULT_FEATURE_HDPARM_GET_IDENTITY
        depends on BUSYBOX_CONFIG_HDPARM
        help
-         Enable the -I and -i options to obtain detailed information
-         directly from drives about their capabilities and supported ATA
-         feature set. If no device name is specified, hdparm will read
-         identify data from stdin. Enabling this option will add about 16k...
+       Enable the -I and -i options to obtain detailed information
+       directly from drives about their capabilities and supported ATA
+       feature set. If no device name is specified, hdparm will read
+       identify data from stdin. Enabling this option will add about 16k...
 
 config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF
        bool "Register an IDE interface (DANGEROUS)"
        default BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_SCAN_HWIF
        depends on BUSYBOX_CONFIG_HDPARM
        help
-         Enable the 'hdparm -R' option to register an IDE interface.
-         This is dangerous stuff, so you should probably say N.
+       Enable the 'hdparm -R' option to register an IDE interface.
+       This is dangerous stuff, so you should probably say N.
 
 config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
        bool "Un-register an IDE interface (DANGEROUS)"
        default BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
        depends on BUSYBOX_CONFIG_HDPARM
        help
-         Enable the 'hdparm -U' option to un-register an IDE interface.
-         This is dangerous stuff, so you should probably say N.
+       Enable the 'hdparm -U' option to un-register an IDE interface.
+       This is dangerous stuff, so you should probably say N.
 
 config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET
        bool "Perform device reset (DANGEROUS)"
        default BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_DRIVE_RESET
        depends on BUSYBOX_CONFIG_HDPARM
        help
-         Enable the 'hdparm -w' option to perform a device reset.
-         This is dangerous stuff, so you should probably say N.
+       Enable the 'hdparm -w' option to perform a device reset.
+       This is dangerous stuff, so you should probably say N.
 
 config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
        bool "Tristate device for hotswap (DANGEROUS)"
        default BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
        depends on BUSYBOX_CONFIG_HDPARM
        help
-         Enable the 'hdparm -x' option to tristate device for hotswap,
-         and the '-b' option to get/set bus state. This is dangerous
-         stuff, so you should probably say N.
+       Enable the 'hdparm -x' option to tristate device for hotswap,
+       and the '-b' option to get/set bus state. This is dangerous
+       stuff, so you should probably say N.
 
 config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
        bool "Get/set using_dma flag"
        default BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_GETSET_DMA
        depends on BUSYBOX_CONFIG_HDPARM
        help
-         Enable the 'hdparm -d' option to get/set using_dma flag.
+       Enable the 'hdparm -d' option to get/set using_dma flag.
+config BUSYBOX_CONFIG_HEXEDIT
+       bool "hexedit (21 kb)"
+       default BUSYBOX_DEFAULT_HEXEDIT
+       help
+       Edit file in hexadecimal.
 config BUSYBOX_CONFIG_I2CGET
-       bool "i2cget"
+       bool "i2cget (5.5 kb)"
        default BUSYBOX_DEFAULT_I2CGET
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Read from I2C/SMBus chip registers.
+       Read from I2C/SMBus chip registers.
 
 config BUSYBOX_CONFIG_I2CSET
-       bool "i2cset"
+       bool "i2cset (6.7 kb)"
        default BUSYBOX_DEFAULT_I2CSET
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Set I2C registers.
+       Set I2C registers.
 
 config BUSYBOX_CONFIG_I2CDUMP
-       bool "i2cdump"
+       bool "i2cdump (7.1 kb)"
        default BUSYBOX_DEFAULT_I2CDUMP
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Examine I2C registers.
+       Examine I2C registers.
 
 config BUSYBOX_CONFIG_I2CDETECT
-       bool "i2cdetect"
+       bool "i2cdetect (7.1 kb)"
        default BUSYBOX_DEFAULT_I2CDETECT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Detect I2C chips.
+       Detect I2C chips.
 
 config BUSYBOX_CONFIG_INOTIFYD
-       bool "inotifyd"
+       bool "inotifyd (3.6 kb)"
        default BUSYBOX_DEFAULT_INOTIFYD  # doesn't build on Knoppix 5
        help
-         Simple inotify daemon. Reports filesystem changes. Requires
-         kernel >= 2.6.13
+       Simple inotify daemon. Reports filesystem changes. Requires
+       kernel >= 2.6.13
 config BUSYBOX_CONFIG_LESS
-       bool "less"
+       bool "less (16 kb)"
        default BUSYBOX_DEFAULT_LESS
        help
-         'less' is a pager, meaning that it displays text files. It possesses
-         a wide array of features, and is an improvement over 'more'.
+       'less' is a pager, meaning that it displays text files. It possesses
+       a wide array of features, and is an improvement over 'more'.
 
 config BUSYBOX_CONFIG_FEATURE_LESS_MAXLINES
        int "Max number of input lines less will try to eat"
@@ -402,101 +493,117 @@ config BUSYBOX_CONFIG_FEATURE_LESS_BRACKETS
        default BUSYBOX_DEFAULT_FEATURE_LESS_BRACKETS
        depends on BUSYBOX_CONFIG_LESS
        help
-         This option adds the capability to search for matching left and right
-         brackets, facilitating programming.
+       This option adds the capability to search for matching left and right
+       brackets, facilitating programming.
 
 config BUSYBOX_CONFIG_FEATURE_LESS_FLAGS
        bool "Enable -m/-M"
        default BUSYBOX_DEFAULT_FEATURE_LESS_FLAGS
        depends on BUSYBOX_CONFIG_LESS
        help
-         The -M/-m flag enables a more sophisticated status line.
+       The -M/-m flag enables a more sophisticated status line.
 
 config BUSYBOX_CONFIG_FEATURE_LESS_TRUNCATE
        bool "Enable -S"
        default BUSYBOX_DEFAULT_FEATURE_LESS_TRUNCATE
        depends on BUSYBOX_CONFIG_LESS
        help
-         The -S flag causes long lines to be truncated rather than
-         wrapped.
+       The -S flag causes long lines to be truncated rather than
+       wrapped.
 
 config BUSYBOX_CONFIG_FEATURE_LESS_MARKS
        bool "Enable marks"
        default BUSYBOX_DEFAULT_FEATURE_LESS_MARKS
        depends on BUSYBOX_CONFIG_LESS
        help
-         Marks enable positions in a file to be stored for easy reference.
+       Marks enable positions in a file to be stored for easy reference.
 
 config BUSYBOX_CONFIG_FEATURE_LESS_REGEXP
        bool "Enable regular expressions"
        default BUSYBOX_DEFAULT_FEATURE_LESS_REGEXP
        depends on BUSYBOX_CONFIG_LESS
        help
-         Enable regular expressions, allowing complex file searches.
+       Enable regular expressions, allowing complex file searches.
 
 config BUSYBOX_CONFIG_FEATURE_LESS_WINCH
        bool "Enable automatic resizing on window size changes"
        default BUSYBOX_DEFAULT_FEATURE_LESS_WINCH
        depends on BUSYBOX_CONFIG_LESS
        help
-         Makes less track window size changes.
+       Makes less track window size changes.
 
 config BUSYBOX_CONFIG_FEATURE_LESS_ASK_TERMINAL
        bool "Use 'tell me cursor position' ESC sequence to measure window"
        default BUSYBOX_DEFAULT_FEATURE_LESS_ASK_TERMINAL
        depends on BUSYBOX_CONFIG_FEATURE_LESS_WINCH
        help
-         Makes less track window size changes.
-         If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
-         this option makes less perform a last-ditch effort to find it:
-         position cursor to 999,999 and ask terminal to report real
-         cursor position using "ESC [ 6 n" escape sequence, then read stdin.
-         This is not clean but helps a lot on serial lines and such.
+       Makes less track window size changes.
+       If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
+       this option makes less perform a last-ditch effort to find it:
+       position cursor to 999,999 and ask terminal to report real
+       cursor position using "ESC [ 6 n" escape sequence, then read stdin.
+       This is not clean but helps a lot on serial lines and such.
 
 config BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
        bool "Enable flag changes ('-' command)"
        default BUSYBOX_DEFAULT_FEATURE_LESS_DASHCMD
        depends on BUSYBOX_CONFIG_LESS
        help
-         This enables the ability to change command-line flags within
-         less itself ('-' keyboard command).
+       This enables the ability to change command-line flags within
+       less itself ('-' keyboard command).
 
 config BUSYBOX_CONFIG_FEATURE_LESS_LINENUMS
        bool "Enable -N (dynamic switching of line numbers)"
        default BUSYBOX_DEFAULT_FEATURE_LESS_LINENUMS
        depends on BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
+
+config BUSYBOX_CONFIG_FEATURE_LESS_RAW
+       bool "Enable -R ('raw control characters')"
+       default BUSYBOX_DEFAULT_FEATURE_LESS_RAW
+       depends on BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
+       help
+       This is essential for less applet to work with tools that use colors
+       and paging, such as git, systemd tools or nmcli.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_ENV
+       bool "Take options from $LESS environment variable"
+       default BUSYBOX_DEFAULT_FEATURE_LESS_ENV
+       depends on BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
+       help
+       This is essential for less applet to work with tools that use colors
+       and paging, such as git, systemd tools or nmcli.
 config BUSYBOX_CONFIG_LOCK
        bool "lock"
        default BUSYBOX_DEFAULT_LOCK
        help
          Small utility for using locks in scripts
 config BUSYBOX_CONFIG_LSSCSI
-       bool "lsscsi"
+       bool "lsscsi (2.5 kb)"
        default BUSYBOX_DEFAULT_LSSCSI
        #select PLATFORM_LINUX
        help
-         lsscsi is a utility for displaying information about SCSI buses in the
-         system and devices connected to them.
+       lsscsi is a utility for displaying information about SCSI buses in the
+       system and devices connected to them.
 
-         This version uses sysfs (/sys/bus/scsi/devices) only.
+       This version uses sysfs (/sys/bus/scsi/devices) only.
 config BUSYBOX_CONFIG_MAKEDEVS
-       bool "makedevs"
+       bool "makedevs (9.2 kb)"
        default BUSYBOX_DEFAULT_MAKEDEVS
        help
-         'makedevs' is a utility used to create a batch of devices with
-         one command.
+       'makedevs' is a utility used to create a batch of devices with
+       one command.
 
-         There are two choices for command line behaviour, the interface
-         as used by LEAF/Linux Router Project, or a device table file.
+       There are two choices for command line behaviour, the interface
+       as used by LEAF/Linux Router Project, or a device table file.
 
-         'leaf' is traditionally what busybox follows, it allows multiple
-         devices of a particluar type to be created per command.
-         e.g. /dev/hda[0-9]
-         Device properties are passed as command line arguments.
+       'leaf' is traditionally what busybox follows, it allows multiple
+       devices of a particluar type to be created per command.
+       e.g. /dev/hda[0-9]
+       Device properties are passed as command line arguments.
 
-         'table' reads device properties from a file or stdin, allowing
-         a batch of unrelated devices to be made with one command.
-         User/group names are allowed as an alternative to uid/gid.
+       'table' reads device properties from a file or stdin, allowing
+       a batch of unrelated devices to be made with one command.
+       User/group names are allowed as an alternative to uid/gid.
 
 choice
        prompt "Choose makedevs behaviour"
@@ -511,181 +618,186 @@ config BUSYBOX_CONFIG_FEATURE_MAKEDEVS_TABLE
 
 endchoice
 config BUSYBOX_CONFIG_MAN
-       bool "man"
+       bool "man (26 kb)"
        default BUSYBOX_DEFAULT_MAN
        help
-         Format and display manual pages.
+       Format and display manual pages.
 config BUSYBOX_CONFIG_MICROCOM
-       bool "microcom"
+       bool "microcom (5.7 kb)"
        default BUSYBOX_DEFAULT_MICROCOM
        help
-         The poor man's minicom utility for chatting with serial port devices.
+       The poor man's minicom utility for chatting with serial port devices.
 config BUSYBOX_CONFIG_MT
-       bool "mt"
+       bool "mt (2.5 kb)"
        default BUSYBOX_DEFAULT_MT
        help
-         mt is used to control tape devices. You can use the mt utility
-         to advance or rewind a tape past a specified number of archive
-         files on the tape.
+       mt is used to control tape devices. You can use the mt utility
+       to advance or rewind a tape past a specified number of archive
+       files on the tape.
 config BUSYBOX_CONFIG_NANDWRITE
-       bool "nandwrite"
+       bool "nandwrite (4.8 kb)"
        default BUSYBOX_DEFAULT_NANDWRITE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Write to the specified MTD device, with bad blocks awareness
+       Write to the specified MTD device, with bad blocks awareness
 
 config BUSYBOX_CONFIG_NANDDUMP
-       bool "nanddump"
+       bool "nanddump (5.2 kb)"
        default BUSYBOX_DEFAULT_NANDDUMP
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Dump the content of raw NAND chip
+       Dump the content of raw NAND chip
 config BUSYBOX_CONFIG_PARTPROBE
-       bool "partprobe"
+       bool "partprobe (3.5 kb)"
        default BUSYBOX_DEFAULT_PARTPROBE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Ask kernel to rescan partition table.
+       Ask kernel to rescan partition table.
 config BUSYBOX_CONFIG_RAIDAUTORUN
-       bool "raidautorun"
+       bool "raidautorun (1.3 kb)"
        default BUSYBOX_DEFAULT_RAIDAUTORUN
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         raidautorun tells the kernel md driver to
-         search and start RAID arrays.
+       raidautorun tells the kernel md driver to
+       search and start RAID arrays.
 config BUSYBOX_CONFIG_READAHEAD
-       bool "readahead"
+       bool "readahead (1.5 kb)"
        default BUSYBOX_DEFAULT_READAHEAD
        depends on BUSYBOX_CONFIG_LFS
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Preload the files listed on the command line into RAM cache so that
-         subsequent reads on these files will not block on disk I/O.
+       Preload the files listed on the command line into RAM cache so that
+       subsequent reads on these files will not block on disk I/O.
 
-         This applet just calls the readahead(2) system call on each file.
-         It is mainly useful in system startup scripts to preload files
-         or executables before they are used. When used at the right time
-         (in particular when a CPU bound process is running) it can
-         significantly speed up system startup.
+       This applet just calls the readahead(2) system call on each file.
+       It is mainly useful in system startup scripts to preload files
+       or executables before they are used. When used at the right time
+       (in particular when a CPU bound process is running) it can
+       significantly speed up system startup.
 
-         As readahead(2) blocks until each file has been read, it is best to
-         run this applet as a background job.
+       As readahead(2) blocks until each file has been read, it is best to
+       run this applet as a background job.
 config BUSYBOX_CONFIG_RFKILL
-       bool "rfkill"
+       bool "rfkill (4.4 kb)"
        default BUSYBOX_DEFAULT_RFKILL # doesn't build on Ubuntu 9.04
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Enable/disable wireless devices.
+       Enable/disable wireless devices.
 
-         rfkill list : list all wireless devices
-         rfkill list bluetooth : list all bluetooth devices
-         rfkill list 1 : list device corresponding to the given index
-         rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
+       rfkill list : list all wireless devices
+       rfkill list bluetooth : list all bluetooth devices
+       rfkill list 1 : list device corresponding to the given index
+       rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
 
 config BUSYBOX_CONFIG_RUNLEVEL
-       bool "runlevel"
+       bool "runlevel (559 bytes)"
        default BUSYBOX_DEFAULT_RUNLEVEL
        depends on BUSYBOX_CONFIG_FEATURE_UTMP
        help
-         find the current and previous system runlevel.
+       Find the current and previous system runlevel.
 
-         This applet uses utmp but does not rely on busybox supporing
-         utmp on purpose. It is used by e.g. emdebian via /etc/init.d/rc.
+       This applet uses utmp but does not rely on busybox supporing
+       utmp on purpose. It is used by e.g. emdebian via /etc/init.d/rc.
 config BUSYBOX_CONFIG_RX
-       bool "rx"
+       bool "rx (2.9 kb)"
        default BUSYBOX_DEFAULT_RX
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Receive files using the Xmodem protocol.
+       Receive files using the Xmodem protocol.
+config BUSYBOX_CONFIG_SETFATTR
+       bool "setfattr (3.7 kb)"
+       default BUSYBOX_DEFAULT_SETFATTR
+       help
+       Set/delete extended attributes on files
 config BUSYBOX_CONFIG_SETSERIAL
-       bool "setserial"
+       bool "setserial (6.9 kb)"
        default BUSYBOX_DEFAULT_SETSERIAL
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Retrieve or set Linux serial port.
+       Retrieve or set Linux serial port.
 config BUSYBOX_CONFIG_STRINGS
-       bool "strings"
+       bool "strings (4.6 kb)"
        default BUSYBOX_DEFAULT_STRINGS
        help
-         strings prints the printable character sequences for each file
-         specified.
+       strings prints the printable character sequences for each file
+       specified.
 config BUSYBOX_CONFIG_TIME
-       bool "time"
+       bool "time (6.8 kb)"
        default BUSYBOX_DEFAULT_TIME
        help
-         The time command runs the specified program with the given arguments.
-         When the command finishes, time writes a message to standard output
-         giving timing statistics about this program run.
+       The time command runs the specified program with the given arguments.
+       When the command finishes, time writes a message to standard output
+       giving timing statistics about this program run.
 config BUSYBOX_CONFIG_TTYSIZE
-       bool "ttysize"
+       bool "ttysize (432 bytes)"
        default BUSYBOX_DEFAULT_TTYSIZE
        help
-         A replacement for "stty size". Unlike stty, can report only width,
-         only height, or both, in any order. It also does not complain on
-         error, but returns default 80x24.
-         Usage in shell scripts: width=`ttysize w`.
+       A replacement for "stty size". Unlike stty, can report only width,
+       only height, or both, in any order. It also does not complain on
+       error, but returns default 80x24.
+       Usage in shell scripts: width=`ttysize w`.
 config BUSYBOX_CONFIG_UBIATTACH
-       bool "ubiattach"
+       bool "ubiattach (4.2 kb)"
        default BUSYBOX_DEFAULT_UBIATTACH
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Attach MTD device to an UBI device.
+       Attach MTD device to an UBI device.
 
 config BUSYBOX_CONFIG_UBIDETACH
-       bool "ubidetach"
+       bool "ubidetach (4.1 kb)"
        default BUSYBOX_DEFAULT_UBIDETACH
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Detach MTD device from an UBI device.
+       Detach MTD device from an UBI device.
 
 config BUSYBOX_CONFIG_UBIMKVOL
-       bool "ubimkvol"
+       bool "ubimkvol (5.3 kb)"
        default BUSYBOX_DEFAULT_UBIMKVOL
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Create a UBI volume.
+       Create a UBI volume.
 
 config BUSYBOX_CONFIG_UBIRMVOL
-       bool "ubirmvol"
+       bool "ubirmvol (4.9 kb)"
        default BUSYBOX_DEFAULT_UBIRMVOL
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Delete a UBI volume.
+       Delete a UBI volume.
 
 config BUSYBOX_CONFIG_UBIRSVOL
-       bool "ubirsvol"
+       bool "ubirsvol (4.2 kb)"
        default BUSYBOX_DEFAULT_UBIRSVOL
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Resize a UBI volume.
+       Resize a UBI volume.
 
 config BUSYBOX_CONFIG_UBIUPDATEVOL
-       bool "ubiupdatevol"
+       bool "ubiupdatevol (5.2 kb)"
        default BUSYBOX_DEFAULT_UBIUPDATEVOL
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Update a UBI volume.
+       Update a UBI volume.
 config BUSYBOX_CONFIG_UBIRENAME
-       bool "ubirename"
+       bool "ubirename (2.4 kb)"
        default BUSYBOX_DEFAULT_UBIRENAME
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Utility to rename UBI volumes
+       Utility to rename UBI volumes
 config BUSYBOX_CONFIG_VOLNAME
-       bool "volname"
+       bool "volname (1.6 kb)"
        default BUSYBOX_DEFAULT_VOLNAME
        help
-         Prints a CD-ROM volume name.
+       Prints a CD-ROM volume name.
 config BUSYBOX_CONFIG_WATCHDOG
-       bool "watchdog"
+       bool "watchdog (5.3 kb)"
        default BUSYBOX_DEFAULT_WATCHDOG
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         The watchdog utility is used with hardware or software watchdog
-         device drivers. It opens the specified watchdog device special file
-         and periodically writes a magic character to the device. If the
-         watchdog applet ever fails to write the magic character within a
-         certain amount of time, the watchdog device assumes the system has
-         hung, and will cause the hardware to reboot.
+       The watchdog utility is used with hardware or software watchdog
+       device drivers. It opens the specified watchdog device special file
+       and periodically writes a magic character to the device. If the
+       watchdog applet ever fails to write the magic character within a
+       certain amount of time, the watchdog device assumes the system has
+       hung, and will cause the hardware to reboot.
 
 endmenu
index 9791af65a090cebb89f79c4c548c23044eafe303..cc2d20813b2e503b83f896b7bc883162b678ef30 100644 (file)
@@ -1,7 +1,7 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Linux Module Utilities"
@@ -10,89 +10,89 @@ config BUSYBOX_CONFIG_MODPROBE_SMALL
        bool "Simplified modutils"
        default BUSYBOX_DEFAULT_MODPROBE_SMALL
        help
-         Build smaller (~1.5 kbytes), simplified module tools.
+       Build smaller (~1.5 kbytes), simplified module tools.
 
-         This option by itself does not enable any applets -
-         you need to select applets individually below.
+       This option by itself does not enable any applets -
+       you need to select applets individually below.
 
-         With this option modprobe does not require modules.dep file
-         and does not use /etc/modules.conf file.
-         It scans module files in /lib/modules/`uname -r` and
-         determines dependencies and module alias names on the fly.
-         This may make module loading slower, most notably
-         when one needs to load module by alias (this requires
-         scanning through module _bodies_).
+       With this option modprobe does not require modules.dep file
+       and does not use /etc/modules.conf file.
+       It scans module files in /lib/modules/`uname -r` and
+       determines dependencies and module alias names on the fly.
+       This may make module loading slower, most notably
+       when one needs to load module by alias (this requires
+       scanning through module _bodies_).
 
-         At the first attempt to load a module by alias modprobe
-         will try to generate modules.dep.bb file in order to speed up
-         future loads by alias. Failure to do so (read-only /lib/modules,
-         etc) is not reported, and future modprobes will be slow too.
+       At the first attempt to load a module by alias modprobe
+       will try to generate modules.dep.bb file in order to speed up
+       future loads by alias. Failure to do so (read-only /lib/modules,
+       etc) is not reported, and future modprobes will be slow too.
 
-         NB: modules.dep.bb file format is not compatible
-         with modules.dep file as created/used by standard module tools.
+       NB: modules.dep.bb file format is not compatible
+       with modules.dep file as created/used by standard module tools.
 
-         Additional module parameters can be stored in
-         /etc/modules/$module_name files.
+       Additional module parameters can be stored in
+       /etc/modules/$module_name files.
 
 config BUSYBOX_CONFIG_DEPMOD
-       bool "depmod"
+       bool "depmod (27 kb)"
        default BUSYBOX_DEFAULT_DEPMOD
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         depmod generates modules.dep (and potentially modules.alias
-         and modules.symbols) that contain dependency information
-         for modprobe.
+       depmod generates modules.dep (and potentially modules.alias
+       and modules.symbols) that contain dependency information
+       for modprobe.
 config BUSYBOX_CONFIG_INSMOD
-       bool "insmod"
+       bool "insmod (22 kb)"
        default BUSYBOX_DEFAULT_INSMOD
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         insmod is used to load specified modules in the running kernel.
+       insmod is used to load specified modules in the running kernel.
 config BUSYBOX_CONFIG_LSMOD
-       bool "lsmod"
+       bool "lsmod (1.9 kb)"
        default BUSYBOX_DEFAULT_LSMOD
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         lsmod is used to display a list of loaded modules.
+       lsmod is used to display a list of loaded modules.
 
 config BUSYBOX_CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
        bool "Pretty output"
        default BUSYBOX_DEFAULT_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
        depends on BUSYBOX_CONFIG_LSMOD && !BUSYBOX_CONFIG_MODPROBE_SMALL
        help
-         This option makes output format of lsmod adjusted to
-         the format of module-init-tools for Linux kernel 2.6.
-         Increases size somewhat.
+       This option makes output format of lsmod adjusted to
+       the format of module-init-tools for Linux kernel 2.6.
+       Increases size somewhat.
 config BUSYBOX_CONFIG_MODINFO
-       bool "modinfo"
+       bool "modinfo (24 kb)"
        default BUSYBOX_DEFAULT_MODINFO
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Show information about a Linux Kernel module
+       Show information about a Linux Kernel module
 config BUSYBOX_CONFIG_MODPROBE
-       bool "modprobe"
+       bool "modprobe (28 kb)"
        default BUSYBOX_DEFAULT_MODPROBE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Handle the loading of modules, and their dependencies on a high
-         level.
+       Handle the loading of modules, and their dependencies on a high
+       level.
 
 config BUSYBOX_CONFIG_FEATURE_MODPROBE_BLACKLIST
        bool "Blacklist support"
        default BUSYBOX_DEFAULT_FEATURE_MODPROBE_BLACKLIST
        depends on BUSYBOX_CONFIG_MODPROBE && !BUSYBOX_CONFIG_MODPROBE_SMALL
        help
-         Say 'y' here to enable support for the 'blacklist' command in
-         modprobe.conf. This prevents the alias resolver to resolve
-         blacklisted modules. This is useful if you want to prevent your
-         hardware autodetection scripts to load modules like evdev, frame
-         buffer drivers etc.
+       Say 'y' here to enable support for the 'blacklist' command in
+       modprobe.conf. This prevents the alias resolver to resolve
+       blacklisted modules. This is useful if you want to prevent your
+       hardware autodetection scripts to load modules like evdev, frame
+       buffer drivers etc.
 config BUSYBOX_CONFIG_RMMOD
-       bool "rmmod"
+       bool "rmmod (3.3 kb)"
        default BUSYBOX_DEFAULT_RMMOD
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         rmmod is used to unload specified modules from the kernel.
+       rmmod is used to unload specified modules from the kernel.
 
 comment "Options common to multiple modutils"
 
@@ -101,145 +101,145 @@ config BUSYBOX_CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS
        default BUSYBOX_DEFAULT_FEATURE_CMDLINE_MODULE_OPTIONS
        depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE
        help
-         Allow insmod and modprobe take module options from the applets'
-         command line.
+       Allow insmod and modprobe take module options from the applets'
+       command line.
 
 config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
        bool "Skip loading of already loaded modules"
        default BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
        depends on BUSYBOX_CONFIG_MODPROBE_SMALL && (BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE)
        help
-         Check if the module is already loaded.
+       Check if the module is already loaded.
 
 config BUSYBOX_CONFIG_FEATURE_2_4_MODULES
        bool "Support version 2.2/2.4 Linux kernels"
        default BUSYBOX_DEFAULT_FEATURE_2_4_MODULES
        depends on (BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_LSMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_RMMOD) && !BUSYBOX_CONFIG_MODPROBE_SMALL
        help
-         Support module loading for 2.2.x and 2.4.x Linux kernels.
-         This increases size considerably. Say N unless you plan
-         to run ancient kernels.
+       Support module loading for 2.2.x and 2.4.x Linux kernels.
+       This increases size considerably. Say N unless you plan
+       to run ancient kernels.
 
 config BUSYBOX_CONFIG_FEATURE_INSMOD_VERSION_CHECKING
        bool "Enable module version checking"
        default BUSYBOX_DEFAULT_FEATURE_INSMOD_VERSION_CHECKING
        depends on BUSYBOX_CONFIG_FEATURE_2_4_MODULES && (BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE)
        help
-         Support checking of versions for modules. This is used to
-         ensure that the kernel and module are made for each other.
+       Support checking of versions for modules. This is used to
+       ensure that the kernel and module are made for each other.
 
 config BUSYBOX_CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS
        bool "Add module symbols to kernel symbol table"
        default BUSYBOX_DEFAULT_FEATURE_INSMOD_KSYMOOPS_SYMBOLS
        depends on BUSYBOX_CONFIG_FEATURE_2_4_MODULES && (BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE)
        help
-         By adding module symbols to the kernel symbol table, Oops messages
-         occurring within kernel modules can be properly debugged. By enabling
-         this feature, module symbols will always be added to the kernel symbol
-         table for proper debugging support. If you are not interested in
-         Oops messages from kernel modules, say N.
+       By adding module symbols to the kernel symbol table, Oops messages
+       occurring within kernel modules can be properly debugged. By enabling
+       this feature, module symbols will always be added to the kernel symbol
+       table for proper debugging support. If you are not interested in
+       Oops messages from kernel modules, say N.
 
 config BUSYBOX_CONFIG_FEATURE_INSMOD_LOADINKMEM
        bool "In kernel memory optimization (uClinux only)"
        default BUSYBOX_DEFAULT_FEATURE_INSMOD_LOADINKMEM
        depends on BUSYBOX_CONFIG_FEATURE_2_4_MODULES && (BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE)
        help
-         This is a special uClinux only memory optimization that lets insmod
-         load the specified kernel module directly into kernel space, reducing
-         memory usage by preventing the need for two copies of the module
-         being loaded into memory.
+       This is a special uClinux only memory optimization that lets insmod
+       load the specified kernel module directly into kernel space, reducing
+       memory usage by preventing the need for two copies of the module
+       being loaded into memory.
 
 config BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP
        bool "Enable insmod load map (-m) option"
        default BUSYBOX_DEFAULT_FEATURE_INSMOD_LOAD_MAP
        depends on BUSYBOX_CONFIG_FEATURE_2_4_MODULES && BUSYBOX_CONFIG_INSMOD
        help
-         Enabling this, one would be able to get a load map
-         output on stdout. This makes kernel module debugging
-         easier.
-         If you don't plan to debug kernel modules, you
-         don't need this option.
+       Enabling this, one would be able to get a load map
+       output on stdout. This makes kernel module debugging
+       easier.
+       If you don't plan to debug kernel modules, you
+       don't need this option.
 
 config BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL
        bool "Symbols in load map"
        default BUSYBOX_DEFAULT_FEATURE_INSMOD_LOAD_MAP_FULL
        depends on BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP
        help
-         Without this option, -m will only output section
-         load map. With this option, -m will also output
-         symbols load map.
+       Without this option, -m will only output section
+       load map. With this option, -m will also output
+       symbols load map.
 
 config BUSYBOX_CONFIG_FEATURE_CHECK_TAINTED_MODULE
        bool "Support tainted module checking with new kernels"
        default BUSYBOX_DEFAULT_FEATURE_CHECK_TAINTED_MODULE
        depends on (BUSYBOX_CONFIG_LSMOD || BUSYBOX_CONFIG_FEATURE_2_4_MODULES) && !BUSYBOX_CONFIG_MODPROBE_SMALL
        help
-         Support checking for tainted modules. These are usually binary
-         only modules that will make the linux-kernel list ignore your
-         support request.
-         This option is required to support GPLONLY modules.
+       Support checking for tainted modules. These are usually binary
+       only modules that will make the linux-kernel list ignore your
+       support request.
+       This option is required to support GPLONLY modules.
 
 config BUSYBOX_CONFIG_FEATURE_INSMOD_TRY_MMAP
        bool "Try to load module from a mmap'ed area"
        default BUSYBOX_DEFAULT_FEATURE_INSMOD_TRY_MMAP
        depends on (BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE) && !BUSYBOX_CONFIG_MODPROBE_SMALL
        help
-         This option causes module loading code to try to mmap
-         module first. If it does not work (for example,
-         it does not work for compressed modules), module will be read
-         (and unpacked if needed) into a memory block allocated by malloc.
+       This option causes module loading code to try to mmap
+       module first. If it does not work (for example,
+       it does not work for compressed modules), module will be read
+       (and unpacked if needed) into a memory block allocated by malloc.
 
-         The only case when mmap works but malloc does not is when
-         you are trying to load a big module on a very memory-constrained
-         machine. Malloc will momentarily need 2x as much memory as mmap.
+       The only case when mmap works but malloc does not is when
+       you are trying to load a big module on a very memory-constrained
+       machine. Malloc will momentarily need 2x as much memory as mmap.
 
-         Choosing N saves about 250 bytes of code (on 32-bit x86).
+       Choosing N saves about 250 bytes of code (on 32-bit x86).
 
 config BUSYBOX_CONFIG_FEATURE_MODUTILS_ALIAS
        bool "Support module.aliases file"
        default BUSYBOX_DEFAULT_FEATURE_MODUTILS_ALIAS
        depends on (BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_MODPROBE) && !BUSYBOX_CONFIG_MODPROBE_SMALL
        help
-         Generate and parse modules.alias containing aliases for bus
-         identifiers:
-           alias pcmcia:m*c*f03fn*pfn*pa*pb*pc*pd* parport_cs
+       Generate and parse modules.alias containing aliases for bus
+       identifiers:
+               alias pcmcia:m*c*f03fn*pfn*pa*pb*pc*pd* parport_cs
 
-         and aliases for logical modules names e.g.:
-           alias padlock_aes aes
-           alias aes_i586 aes
-           alias aes_generic aes
+       and aliases for logical modules names e.g.:
+               alias padlock_aes aes
+               alias aes_i586 aes
+               alias aes_generic aes
 
-         Say Y if unsure.
+       Say Y if unsure.
 
 config BUSYBOX_CONFIG_FEATURE_MODUTILS_SYMBOLS
        bool "Support module.symbols file"
        default BUSYBOX_DEFAULT_FEATURE_MODUTILS_SYMBOLS
        depends on (BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_MODPROBE) && !BUSYBOX_CONFIG_MODPROBE_SMALL
        help
-         Generate and parse modules.symbols containing aliases for
-         symbol_request() kernel calls, such as:
-           alias symbol:usb_sg_init usbcore
+       Generate and parse modules.symbols containing aliases for
+       symbol_request() kernel calls, such as:
+               alias symbol:usb_sg_init usbcore
 
-         Say Y if unsure.
+       Say Y if unsure.
 
 config BUSYBOX_CONFIG_DEFAULT_MODULES_DIR
        string "Default directory containing modules"
        default BUSYBOX_DEFAULT_DEFAULT_MODULES_DIR
        depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODINFO
        help
-         Directory that contains kernel modules.
-         Defaults to "/lib/modules"
+       Directory that contains kernel modules.
+       Defaults to "/lib/modules"
 
 config BUSYBOX_CONFIG_DEFAULT_DEPMOD_FILE
        string "Default name of modules.dep"
        default BUSYBOX_DEFAULT_DEFAULT_DEPMOD_FILE
        depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODINFO
        help
-         Filename that contains kernel modules dependencies.
-         Defaults to "modules.dep".
-         If you configured the "simplified modutils" (MODPROBE_SMALL), a
-         ".bb" suffix will be added after this name. Do not specify ".bb"
-         here unless you intend your depmod or modprobe to work on
-         "modules.dep.bb.bb" or such.
+       Filename that contains kernel modules dependencies.
+       Defaults to "modules.dep".
+       If you configured the "simplified modutils" (MODPROBE_SMALL), a
+       ".bb" suffix will be added after this name. Do not specify ".bb"
+       here unless you intend your depmod or modprobe to work on
+       "modules.dep.bb.bb" or such.
 
 endmenu
index e563290c61e3c05cc7de3ed1f9e2a8c0d590bf1f..90c8ce19a1dda3759701317d4e086e0ec25510be 100644 (file)
@@ -1,7 +1,7 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Networking Utilities"
@@ -9,391 +9,407 @@ menu "Networking Utilities"
 config BUSYBOX_CONFIG_FEATURE_IPV6
        bool "Enable IPv6 support"
        default BUSYBOX_DEFAULT_FEATURE_IPV6
-       depends on IPV6
        help
-         Enable IPv6 support in busybox.
-         This adds IPv6 support in the networking applets.
+       Enable IPv6 support in busybox.
+       This adds IPv6 support in the networking applets.
 
 config BUSYBOX_CONFIG_FEATURE_UNIX_LOCAL
        bool "Enable Unix domain socket support (usually not needed)"
        default BUSYBOX_DEFAULT_FEATURE_UNIX_LOCAL
        help
-         Enable Unix domain socket support in all busybox networking
-         applets.  Address of the form local:/path/to/unix/socket
-         will be recognized.
+       Enable Unix domain socket support in all busybox networking
+       applets.  Address of the form local:/path/to/unix/socket
+       will be recognized.
 
-         This extension is almost never used in real world usage.
-         You most likely want to say N.
+       This extension is almost never used in real world usage.
+       You most likely want to say N.
 
 config BUSYBOX_CONFIG_FEATURE_PREFER_IPV4_ADDRESS
        bool "Prefer IPv4 addresses from DNS queries"
        default BUSYBOX_DEFAULT_FEATURE_PREFER_IPV4_ADDRESS
        depends on BUSYBOX_CONFIG_FEATURE_IPV6
        help
-         Use IPv4 address of network host if it has one.
+       Use IPv4 address of network host if it has one.
 
-         If this option is off, the first returned address will be used.
-         This may cause problems when your DNS server is IPv6-capable and
-         is returning IPv6 host addresses too. If IPv6 address
-         precedes IPv4 one in DNS reply, busybox network applets
-         (e.g. wget) will use IPv6 address. On an IPv6-incapable host
-         or network applets will fail to connect to the host
-         using IPv6 address.
+       If this option is off, the first returned address will be used.
+       This may cause problems when your DNS server is IPv6-capable and
+       is returning IPv6 host addresses too. If IPv6 address
+       precedes IPv4 one in DNS reply, busybox network applets
+       (e.g. wget) will use IPv6 address. On an IPv6-incapable host
+       or network applets will fail to connect to the host
+       using IPv6 address.
 
 config BUSYBOX_CONFIG_VERBOSE_RESOLUTION_ERRORS
        bool "Verbose resolution errors"
        default BUSYBOX_DEFAULT_VERBOSE_RESOLUTION_ERRORS
        help
-         Enable if you are not satisfied with simplistic
-         "can't resolve 'hostname.com'" and want to know more.
-         This may increase size of your executable a bit.
+       Enable if you are not satisfied with simplistic
+       "can't resolve 'hostname.com'" and want to know more.
+       This may increase size of your executable a bit.
+
+config BUSYBOX_CONFIG_FEATURE_TLS_SHA1
+       bool "In TLS code, support ciphers which use deprecated SHA1"
+       depends on BUSYBOX_CONFIG_TLS
+       default BUSYBOX_DEFAULT_FEATURE_TLS_SHA1
+       help
+       Selecting this option increases interoperability with very old
+       servers, but slightly increases code size.
+
+       Most TLS servers support SHA256 today (2018), since SHA1 is
+       considered possibly insecure (although not yet definitely broken).
 
 config BUSYBOX_CONFIG_ARP
-       bool "arp"
+       bool "arp (10 kb)"
        default BUSYBOX_DEFAULT_ARP
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Manipulate the system ARP cache.
+       Manipulate the system ARP cache.
 config BUSYBOX_CONFIG_ARPING
-       bool "arping"
+       bool "arping (9 kb)"
        default BUSYBOX_DEFAULT_ARPING
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Ping hosts by ARP packets.
-
+       Ping hosts by ARP packets.
 config BUSYBOX_CONFIG_BRCTL
-       bool "brctl"
+       bool "brctl (4.7 kb)"
        default BUSYBOX_DEFAULT_BRCTL
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Manage ethernet bridges.
-         Supports addbr/delbr and addif/delif.
+       Manage ethernet bridges.
+       Supports addbr/delbr and addif/delif.
 
 config BUSYBOX_CONFIG_FEATURE_BRCTL_FANCY
        bool "Fancy options"
        default BUSYBOX_DEFAULT_FEATURE_BRCTL_FANCY
        depends on BUSYBOX_CONFIG_BRCTL
        help
-         Add support for extended option like:
-           setageing, setfd, sethello, setmaxage,
-           setpathcost, setportprio, setbridgeprio,
-           stp
-         This adds about 600 bytes.
+       Add support for extended option like:
+               setageing, setfd, sethello, setmaxage,
+               setpathcost, setportprio, setbridgeprio,
+               stp
+       This adds about 600 bytes.
 
 config BUSYBOX_CONFIG_FEATURE_BRCTL_SHOW
        bool "Support show"
        default BUSYBOX_DEFAULT_FEATURE_BRCTL_SHOW
        depends on BUSYBOX_CONFIG_BRCTL && BUSYBOX_CONFIG_FEATURE_BRCTL_FANCY
        help
-         Add support for option which prints the current config:
-           show
+       Add support for option which prints the current config:
+               show
 config BUSYBOX_CONFIG_DNSD
-       bool "dnsd"
+       bool "dnsd (9.8 kb)"
        default BUSYBOX_DEFAULT_DNSD
        help
-         Small and static DNS server daemon.
+       Small and static DNS server daemon.
 config BUSYBOX_CONFIG_ETHER_WAKE
-       bool "ether-wake"
+       bool "ether-wake (4.9 kb)"
        default BUSYBOX_DEFAULT_ETHER_WAKE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Send a magic packet to wake up sleeping machines.
+       Send a magic packet to wake up sleeping machines.
 config BUSYBOX_CONFIG_FTPD
-       bool "ftpd"
+       bool "ftpd (30 kb)"
        default BUSYBOX_DEFAULT_FTPD
        help
-         Simple FTP daemon. You have to run it via inetd.
+       Simple FTP daemon. You have to run it via inetd.
 
 config BUSYBOX_CONFIG_FEATURE_FTPD_WRITE
-       bool "Enable upload commands"
+       bool "Enable -w (upload commands)"
        default BUSYBOX_DEFAULT_FEATURE_FTPD_WRITE
        depends on BUSYBOX_CONFIG_FTPD
        help
-         Enable all kinds of FTP upload commands (-w option)
+       Enable -w option. "ftpd -w" will accept upload commands
+       such as STOR, STOU, APPE, DELE, MKD, RMD, rename commands.
 
 config BUSYBOX_CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST
        bool "Enable workaround for RFC-violating clients"
        default BUSYBOX_DEFAULT_FEATURE_FTPD_ACCEPT_BROKEN_LIST
        depends on BUSYBOX_CONFIG_FTPD
        help
-         Some ftp clients (among them KDE's Konqueror) issue illegal
-         "LIST -l" requests. This option works around such problems.
-         It might prevent you from listing files starting with "-" and
-         it increases the code size by ~40 bytes.
-         Most other ftp servers seem to behave similar to this.
+       Some ftp clients (among them KDE's Konqueror) issue illegal
+       "LIST -l" requests. This option works around such problems.
+       It might prevent you from listing files starting with "-" and
+       it increases the code size by ~40 bytes.
+       Most other ftp servers seem to behave similar to this.
 
 config BUSYBOX_CONFIG_FEATURE_FTPD_AUTHENTICATION
        bool "Enable authentication"
        default BUSYBOX_DEFAULT_FEATURE_FTPD_AUTHENTICATION
        depends on BUSYBOX_CONFIG_FTPD
        help
-         Enable basic system login as seen in telnet etc.
+       Require login, and change to logged in user's UID:GID before
+       accessing any files. Option "-a USER" allows "anonymous"
+       logins (treats them as if USER logged in).
+
+       If this option is not selected, ftpd runs with the rights
+       of the user it was started under, and does not require login.
+       Take care to not launch it under root.
 config BUSYBOX_CONFIG_FTPGET
-       bool "ftpget"
+       bool "ftpget (7.8 kb)"
        default BUSYBOX_DEFAULT_FTPGET
        help
-         Retrieve a remote file via FTP.
+       Retrieve a remote file via FTP.
 
 config BUSYBOX_CONFIG_FTPPUT
-       bool "ftpput"
+       bool "ftpput (7.5 kb)"
        default BUSYBOX_DEFAULT_FTPPUT
        help
-         Store a remote file via FTP.
+       Store a remote file via FTP.
 
 config BUSYBOX_CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS
        bool "Enable long options in ftpget/ftpput"
        default BUSYBOX_DEFAULT_FEATURE_FTPGETPUT_LONG_OPTIONS
        depends on BUSYBOX_CONFIG_LONG_OPTS && (BUSYBOX_CONFIG_FTPGET || BUSYBOX_CONFIG_FTPPUT)
 config BUSYBOX_CONFIG_HOSTNAME
-       bool "hostname"
+       bool "hostname (5.5 kb)"
        default BUSYBOX_DEFAULT_HOSTNAME
        help
-         Show or set the system's host name.
+       Show or set the system's host name.
 
 config BUSYBOX_CONFIG_DNSDOMAINNAME
-       bool "dnsdomainname"
+       bool "dnsdomainname (3.6 kb)"
        default BUSYBOX_DEFAULT_DNSDOMAINNAME
        help
-         Alias to "hostname -d".
+       Alias to "hostname -d".
 config BUSYBOX_CONFIG_HTTPD
-       bool "httpd"
+       bool "httpd (32 kb)"
        default BUSYBOX_DEFAULT_HTTPD
        help
-         HTTP server.
+       HTTP server.
 
 config BUSYBOX_CONFIG_FEATURE_HTTPD_RANGES
        bool "Support 'Ranges:' header"
        default BUSYBOX_DEFAULT_FEATURE_HTTPD_RANGES
        depends on BUSYBOX_CONFIG_HTTPD
        help
-         Makes httpd emit "Accept-Ranges: bytes" header and understand
-         "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted
-         downloads, seeking in multimedia players etc.
+       Makes httpd emit "Accept-Ranges: bytes" header and understand
+       "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted
+       downloads, seeking in multimedia players etc.
 
 config BUSYBOX_CONFIG_FEATURE_HTTPD_SETUID
        bool "Enable -u <user> option"
        default BUSYBOX_DEFAULT_FEATURE_HTTPD_SETUID
        depends on BUSYBOX_CONFIG_HTTPD
        help
-         This option allows the server to run as a specific user
-         rather than defaulting to the user that starts the server.
-         Use of this option requires special privileges to change to a
-         different user.
+       This option allows the server to run as a specific user
+       rather than defaulting to the user that starts the server.
+       Use of this option requires special privileges to change to a
+       different user.
 
 config BUSYBOX_CONFIG_FEATURE_HTTPD_BASIC_AUTH
-       bool "Enable Basic http Authentication"
+       bool "Enable HTTP authentication"
        default BUSYBOX_DEFAULT_FEATURE_HTTPD_BASIC_AUTH
        depends on BUSYBOX_CONFIG_HTTPD
        help
-         Utilizes password settings from /etc/httpd.conf for basic
-         authentication on a per url basis.
-         Example for httpd.conf file:
-         /adm:toor:PaSsWd
+       Utilizes password settings from /etc/httpd.conf for basic
+       authentication on a per url basis.
+       Example for httpd.conf file:
+       /adm:toor:PaSsWd
 
 config BUSYBOX_CONFIG_FEATURE_HTTPD_AUTH_MD5
-       bool "Support MD5 crypted passwords for http Authentication"
+       bool "Support MD5-encrypted passwords in HTTP authentication"
        default BUSYBOX_DEFAULT_FEATURE_HTTPD_AUTH_MD5
        depends on BUSYBOX_CONFIG_FEATURE_HTTPD_BASIC_AUTH
        help
-         Enables encrypted passwords, and wildcard user/passwords
-         in httpd.conf file.
-         User '*' means 'any system user name is ok',
-         password of '*' means 'use system password for this user'
-         Examples:
-         /adm:toor:$1$P/eKnWXS$aI1aPGxT.dJD5SzqAKWrF0
-         /adm:root:*
-         /wiki:*:*
+       Enables encrypted passwords, and wildcard user/passwords
+       in httpd.conf file.
+       User '*' means 'any system user name is ok',
+       password of '*' means 'use system password for this user'
+       Examples:
+       /adm:toor:$1$P/eKnWXS$aI1aPGxT.dJD5SzqAKWrF0
+       /adm:root:*
+       /wiki:*:*
 
 config BUSYBOX_CONFIG_FEATURE_HTTPD_CGI
        bool "Support Common Gateway Interface (CGI)"
        default BUSYBOX_DEFAULT_FEATURE_HTTPD_CGI
        depends on BUSYBOX_CONFIG_HTTPD
        help
-         This option allows scripts and executables to be invoked
-         when specific URLs are requested.
+       This option allows scripts and executables to be invoked
+       when specific URLs are requested.
 
 config BUSYBOX_CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
        bool "Support running scripts through an interpreter"
        default BUSYBOX_DEFAULT_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
        depends on BUSYBOX_CONFIG_FEATURE_HTTPD_CGI
        help
-         This option enables support for running scripts through an
-         interpreter. Turn this on if you want PHP scripts to work
-         properly. You need to supply an additional line in your
-         httpd.conf file:
-         *.php:/path/to/your/php
+       This option enables support for running scripts through an
+       interpreter. Turn this on if you want PHP scripts to work
+       properly. You need to supply an additional line in your
+       httpd.conf file:
+       *.php:/path/to/your/php
 
 config BUSYBOX_CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
        bool "Set REMOTE_PORT environment variable for CGI"
        default BUSYBOX_DEFAULT_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
        depends on BUSYBOX_CONFIG_FEATURE_HTTPD_CGI
        help
-         Use of this option can assist scripts in generating
-         references that contain a unique port number.
+       Use of this option can assist scripts in generating
+       references that contain a unique port number.
 
 config BUSYBOX_CONFIG_FEATURE_HTTPD_ENCODE_URL_STR
        bool "Enable -e option (useful for CGIs written as shell scripts)"
        default BUSYBOX_DEFAULT_FEATURE_HTTPD_ENCODE_URL_STR
        depends on BUSYBOX_CONFIG_HTTPD
        help
-         This option allows html encoding of arbitrary strings for display
-         by the browser. Output goes to stdout.
-         For example, httpd -e "<Hello World>" produces
-         "&#60Hello&#32World&#62".
+       This option allows html encoding of arbitrary strings for display
+       by the browser. Output goes to stdout.
+       For example, httpd -e "<Hello World>" produces
+       "&#60Hello&#32World&#62".
 
 config BUSYBOX_CONFIG_FEATURE_HTTPD_ERROR_PAGES
        bool "Support custom error pages"
        default BUSYBOX_DEFAULT_FEATURE_HTTPD_ERROR_PAGES
        depends on BUSYBOX_CONFIG_HTTPD
        help
-         This option allows you to define custom error pages in
-         the configuration file instead of the default HTTP status
-         error pages. For instance, if you add the line:
-               E404:/path/e404.html
-         in the config file, the server will respond the specified
-         '/path/e404.html' file instead of the terse '404 NOT FOUND'
-         message.
+       This option allows you to define custom error pages in
+       the configuration file instead of the default HTTP status
+       error pages. For instance, if you add the line:
+               E404:/path/e404.html
+       in the config file, the server will respond the specified
+       '/path/e404.html' file instead of the terse '404 NOT FOUND'
+       message.
 
 config BUSYBOX_CONFIG_FEATURE_HTTPD_PROXY
        bool "Support reverse proxy"
        default BUSYBOX_DEFAULT_FEATURE_HTTPD_PROXY
        depends on BUSYBOX_CONFIG_HTTPD
        help
-         This option allows you to define URLs that will be forwarded
-         to another HTTP server. To setup add the following line to the
-         configuration file
-               P:/url/:http://hostname[:port]/new/path/
-         Then a request to /url/myfile will be forwarded to
-         http://hostname[:port]/new/path/myfile.
+       This option allows you to define URLs that will be forwarded
+       to another HTTP server. To setup add the following line to the
+       configuration file
+               P:/url/:http://hostname[:port]/new/path/
+       Then a request to /url/myfile will be forwarded to
+       http://hostname[:port]/new/path/myfile.
 
 config BUSYBOX_CONFIG_FEATURE_HTTPD_GZIP
        bool "Support GZIP content encoding"
        default BUSYBOX_DEFAULT_FEATURE_HTTPD_GZIP
        depends on BUSYBOX_CONFIG_HTTPD
        help
-         Makes httpd send files using GZIP content encoding if the
-         client supports it and a pre-compressed <file>.gz exists.
+       Makes httpd send files using GZIP content encoding if the
+       client supports it and a pre-compressed <file>.gz exists.
 config BUSYBOX_CONFIG_IFCONFIG
-       bool "ifconfig"
+       bool "ifconfig (12 kb)"
        default BUSYBOX_DEFAULT_IFCONFIG
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Ifconfig is used to configure the kernel-resident network interfaces.
+       Ifconfig is used to configure the kernel-resident network interfaces.
 
 config BUSYBOX_CONFIG_FEATURE_IFCONFIG_STATUS
        bool "Enable status reporting output (+7k)"
        default BUSYBOX_DEFAULT_FEATURE_IFCONFIG_STATUS
        depends on BUSYBOX_CONFIG_IFCONFIG
        help
-         If ifconfig is called with no arguments it will display the status
-         of the currently active interfaces.
+       If ifconfig is called with no arguments it will display the status
+       of the currently active interfaces.
 
 config BUSYBOX_CONFIG_FEATURE_IFCONFIG_SLIP
        bool "Enable slip-specific options \"keepalive\" and \"outfill\""
        default BUSYBOX_DEFAULT_FEATURE_IFCONFIG_SLIP
        depends on BUSYBOX_CONFIG_IFCONFIG
        help
-         Allow "keepalive" and "outfill" support for SLIP. If you're not
-         planning on using serial lines, leave this unchecked.
+       Allow "keepalive" and "outfill" support for SLIP. If you're not
+       planning on using serial lines, leave this unchecked.
 
 config BUSYBOX_CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
        bool "Enable options \"mem_start\", \"io_addr\", and \"irq\""
        default BUSYBOX_DEFAULT_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
        depends on BUSYBOX_CONFIG_IFCONFIG
        help
-         Allow the start address for shared memory, start address for I/O,
-         and/or the interrupt line used by the specified device.
+       Allow the start address for shared memory, start address for I/O,
+       and/or the interrupt line used by the specified device.
 
 config BUSYBOX_CONFIG_FEATURE_IFCONFIG_HW
        bool "Enable option \"hw\" (ether only)"
        default BUSYBOX_DEFAULT_FEATURE_IFCONFIG_HW
        depends on BUSYBOX_CONFIG_IFCONFIG
        help
-         Set the hardware address of this interface, if the device driver
-         supports  this  operation. Currently, we only support the 'ether'
-         class.
+       Set the hardware address of this interface, if the device driver
+       supports  this  operation. Currently, we only support the 'ether'
+       class.
 
 config BUSYBOX_CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS
        bool "Set the broadcast automatically"
        default BUSYBOX_DEFAULT_FEATURE_IFCONFIG_BROADCAST_PLUS
        depends on BUSYBOX_CONFIG_IFCONFIG
        help
-         Setting this will make ifconfig attempt to find the broadcast
-         automatically if the value '+' is used.
+       Setting this will make ifconfig attempt to find the broadcast
+       automatically if the value '+' is used.
 config BUSYBOX_CONFIG_IFENSLAVE
-       bool "ifenslave"
+       bool "ifenslave (13 kb)"
        default BUSYBOX_DEFAULT_IFENSLAVE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Userspace application to bind several interfaces
-         to a logical interface (use with kernel bonding driver).
+       Userspace application to bind several interfaces
+       to a logical interface (use with kernel bonding driver).
 config BUSYBOX_CONFIG_IFPLUGD
-       bool "ifplugd"
+       bool "ifplugd (10 kb)"
        default BUSYBOX_DEFAULT_IFPLUGD
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Network interface plug detection daemon.
+       Network interface plug detection daemon.
 config BUSYBOX_CONFIG_IFUP
-       bool "ifup"
+       bool "ifup (14 kb)"
        default BUSYBOX_DEFAULT_IFUP
        help
-         Activate the specified interfaces. This applet makes use
-         of either "ifconfig" and "route" or the "ip" command to actually
-         configure network interfaces. Therefore, you will probably also want
-         to enable either IFCONFIG and ROUTE, or enable
-         FEATURE_IFUPDOWN_IP and the various IP options. Of
-         course you could use non-busybox versions of these programs, so
-         against my better judgement (since this will surely result in plenty
-         of support questions on the mailing list), I do not force you to
-         enable these additional options. It is up to you to supply either
-         "ifconfig", "route" and "run-parts" or the "ip" command, either
-         via busybox or via standalone utilities.
+       Activate the specified interfaces. This applet makes use
+       of either "ifconfig" and "route" or the "ip" command to actually
+       configure network interfaces. Therefore, you will probably also want
+       to enable either IFCONFIG and ROUTE, or enable
+       FEATURE_IFUPDOWN_IP and the various IP options. Of
+       course you could use non-busybox versions of these programs, so
+       against my better judgement (since this will surely result in plenty
+       of support questions on the mailing list), I do not force you to
+       enable these additional options. It is up to you to supply either
+       "ifconfig", "route" and "run-parts" or the "ip" command, either
+       via busybox or via standalone utilities.
 
 config BUSYBOX_CONFIG_IFDOWN
-       bool "ifdown"
+       bool "ifdown (13 kb)"
        default BUSYBOX_DEFAULT_IFDOWN
        help
-         Deactivate the specified interfaces.
+       Deactivate the specified interfaces.
 
 config BUSYBOX_CONFIG_IFUPDOWN_IFSTATE_PATH
        string "Absolute path to ifstate file"
        default BUSYBOX_DEFAULT_IFUPDOWN_IFSTATE_PATH
        depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN
        help
-         ifupdown keeps state information in a file called ifstate.
-         Typically it is located in /var/run/ifstate, however
-         some distributions tend to put it in other places
-         (debian, for example, uses /etc/network/run/ifstate).
-         This config option defines location of ifstate.
+       ifupdown keeps state information in a file called ifstate.
+       Typically it is located in /var/run/ifstate, however
+       some distributions tend to put it in other places
+       (debian, for example, uses /etc/network/run/ifstate).
+       This config option defines location of ifstate.
 
 config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP
        bool "Use ip tool (else ifconfig/route is used)"
        default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IP
        depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN
        help
-         Use the iproute "ip" command to implement "ifup" and "ifdown", rather
-         than the default of using the older "ifconfig" and "route" utilities.
+       Use the iproute "ip" command to implement "ifup" and "ifdown", rather
+       than the default of using the older "ifconfig" and "route" utilities.
 
-         If Y: you must install either the full-blown iproute2 package
-         or enable "ip" applet in Busybox, or the "ifup" and "ifdown" applets
-         will not work.
+       If Y: you must install either the full-blown iproute2 package
+       or enable "ip" applet in busybox, or the "ifup" and "ifdown" applets
+       will not work.
 
-         If N: you must install either the full-blown ifconfig and route
-         utilities, or enable these applets in Busybox.
+       If N: you must install either the full-blown ifconfig and route
+       utilities, or enable these applets in busybox.
 
 config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IPV4
        bool "Support IPv4"
        default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IPV4
        depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN
        help
-         If you want ifup/ifdown to talk IPv4, leave this on.
+       If you want ifup/ifdown to talk IPv4, leave this on.
 
 config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IPV6
        bool "Support IPv6"
        default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IPV6
        depends on (BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN) && BUSYBOX_CONFIG_FEATURE_IPV6
        help
-         If you need support for IPv6, turn this option on.
+       If you need support for IPv6, turn this option on.
 
 
 config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_MAPPING
@@ -401,188 +417,207 @@ config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_MAPPING
        default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_MAPPING
        depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN
        help
-         This enables support for the "mapping" stanza, unless you have
-         a weird network setup you don't need it.
+       This enables support for the "mapping" stanza, unless you have
+       a weird network setup you don't need it.
 
 config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP
        bool "Support external DHCP clients"
        default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_EXTERNAL_DHCP
        depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN
        help
-         This enables support for the external dhcp clients. Clients are
-         tried in the following order: dhcpcd, dhclient, pump and udhcpc.
-         Otherwise, if udhcpc applet is enabled, it is used.
-         Otherwise, ifup/ifdown will have no support for DHCP.
+       This enables support for the external dhcp clients. Clients are
+       tried in the following order: dhcpcd, dhclient, pump and udhcpc.
+       Otherwise, if udhcpc applet is enabled, it is used.
+       Otherwise, ifup/ifdown will have no support for DHCP.
 config BUSYBOX_CONFIG_INETD
-       bool "inetd"
+       bool "inetd (18 kb)"
        default BUSYBOX_DEFAULT_INETD
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         Internet superserver daemon
+       Internet superserver daemon
 
 config BUSYBOX_CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO
-       bool "Support echo service"
+       bool "Support echo service on port 7"
        default BUSYBOX_DEFAULT_FEATURE_INETD_SUPPORT_BUILTIN_ECHO
        depends on BUSYBOX_CONFIG_INETD
        help
-         Echo received data internal inetd service
+       Internal service which echoes data back.
+       Activated by configuration lines like these:
+               echo stream tcp nowait root internal
+               echo dgram  udp wait   root internal
 
 config BUSYBOX_CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
-       bool "Support discard service"
+       bool "Support discard service on port 8"
        default BUSYBOX_DEFAULT_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
        depends on BUSYBOX_CONFIG_INETD
        help
-         Internet /dev/null internal inetd service
+       Internal service which discards all input.
+       Activated by configuration lines like these:
+               discard stream tcp nowait root internal
+               discard dgram  udp wait   root internal
 
 config BUSYBOX_CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME
-       bool "Support time service"
+       bool "Support time service on port 37"
        default BUSYBOX_DEFAULT_FEATURE_INETD_SUPPORT_BUILTIN_TIME
        depends on BUSYBOX_CONFIG_INETD
        help
-         Return 32 bit time since 1900 internal inetd service
+       Internal service which returns big-endian 32-bit number
+       of seconds passed since 1900-01-01. The number wraps around
+       on overflow.
+       Activated by configuration lines like these:
+               time stream tcp nowait root internal
+               time dgram  udp wait   root internal
 
 config BUSYBOX_CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
-       bool "Support daytime service"
+       bool "Support daytime service on port 13"
        default BUSYBOX_DEFAULT_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
        depends on BUSYBOX_CONFIG_INETD
        help
-         Return human-readable time internal inetd service
+       Internal service which returns human-readable time.
+       Activated by configuration lines like these:
+               daytime stream tcp nowait root internal
+               daytime dgram  udp wait   root internal
 
 config BUSYBOX_CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
-       bool "Support chargen service"
+       bool "Support chargen service on port 19"
        default BUSYBOX_DEFAULT_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
        depends on BUSYBOX_CONFIG_INETD
        help
-         Familiar character generator internal inetd service
+       Internal service which generates endless stream
+       of all ASCII chars beetween space and char 126.
+       Activated by configuration lines like these:
+               chargen stream tcp nowait root internal
+               chargen dgram  udp wait   root internal
 
 config BUSYBOX_CONFIG_FEATURE_INETD_RPC
        bool "Support RPC services"
        default BUSYBOX_DEFAULT_FEATURE_INETD_RPC  # very rarely used, and needs Sun RPC support in libc
        depends on BUSYBOX_CONFIG_INETD
-       select BUSYBOX_CONFIG_FEATURE_HAVE_RPC
        help
-         Support Sun-RPC based services
+       Support Sun-RPC based services
 config BUSYBOX_CONFIG_IP
-       bool "ip"
+       bool "ip (35 kb)"
        default BUSYBOX_DEFAULT_IP
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         The "ip" applet is a TCP/IP interface configuration and routing
-         utility. You generally don't need "ip" to use busybox with
-         TCP/IP.
+       The "ip" applet is a TCP/IP interface configuration and routing
+       utility.
+       Short forms (enabled below) are busybox-specific extensions.
+       The standard "ip" utility does not provide them. If you are
+       trying to be portable, it's better to use "ip CMD" forms.
 
 config BUSYBOX_CONFIG_IPADDR
-       bool "ipaddr"
+       bool "ipaddr (14 kb)"
        default BUSYBOX_DEFAULT_IPADDR
        select BUSYBOX_CONFIG_FEATURE_IP_ADDRESS
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Support short form of ip addr: ipaddr
+       Short form of "ip addr"
 
 config BUSYBOX_CONFIG_IPLINK
-       bool "iplink"
+       bool "iplink (17 kb)"
        default BUSYBOX_DEFAULT_IPLINK
        select BUSYBOX_CONFIG_FEATURE_IP_LINK
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Support short form of ip link: iplink
+       Short form of "ip link"
 
 config BUSYBOX_CONFIG_IPROUTE
-       bool "iproute"
+       bool "iproute (15 kb)"
        default BUSYBOX_DEFAULT_IPROUTE
        select BUSYBOX_CONFIG_FEATURE_IP_ROUTE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Support short form of ip route: iproute
+       Short form of "ip route"
 
 config BUSYBOX_CONFIG_IPTUNNEL
-       bool "iptunnel"
+       bool "iptunnel (9.6 kb)"
        default BUSYBOX_DEFAULT_IPTUNNEL
        select BUSYBOX_CONFIG_FEATURE_IP_TUNNEL
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Support short form of ip tunnel: iptunnel
+       Short form of "ip tunnel"
 
 config BUSYBOX_CONFIG_IPRULE
-       bool "iprule"
+       bool "iprule (10 kb)"
        default BUSYBOX_DEFAULT_IPRULE
        select BUSYBOX_CONFIG_FEATURE_IP_RULE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Support short form of ip rule: iprule
+       Short form of "ip rule"
 
 config BUSYBOX_CONFIG_IPNEIGH
-       bool "ipneigh"
+       bool "ipneigh (8.3 kb)"
        default BUSYBOX_DEFAULT_IPNEIGH
        select BUSYBOX_CONFIG_FEATURE_IP_NEIGH
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Support short form of ip neigh: ipneigh
+       Short form of "ip neigh"
 
 config BUSYBOX_CONFIG_FEATURE_IP_ADDRESS
        bool "ip address"
        default BUSYBOX_DEFAULT_FEATURE_IP_ADDRESS
        depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPADDR
        help
-         Address manipulation support for the "ip" applet.
+       Address manipulation support for the "ip" applet.
 
 config BUSYBOX_CONFIG_FEATURE_IP_LINK
        bool "ip link"
        default BUSYBOX_DEFAULT_FEATURE_IP_LINK
        depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPLINK
        help
-         Configure network devices with "ip".
+       Configure network devices with "ip".
 
 config BUSYBOX_CONFIG_FEATURE_IP_ROUTE
        bool "ip route"
        default BUSYBOX_DEFAULT_FEATURE_IP_ROUTE
        depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPROUTE
        help
-         Add support for routing table management to "ip".
+       Add support for routing table management to "ip".
 
 config BUSYBOX_CONFIG_FEATURE_IP_ROUTE_DIR
        string "ip route configuration directory"
        default BUSYBOX_DEFAULT_FEATURE_IP_ROUTE_DIR
        depends on BUSYBOX_CONFIG_FEATURE_IP_ROUTE
        help
-         Location of the "ip" applet routing configuration.
+       Location of the "ip" applet routing configuration.
 
 config BUSYBOX_CONFIG_FEATURE_IP_TUNNEL
        bool "ip tunnel"
        default BUSYBOX_DEFAULT_FEATURE_IP_TUNNEL
        depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPTUNNEL
        help
-         Add support for tunneling commands to "ip".
+       Add support for tunneling commands to "ip".
 
 config BUSYBOX_CONFIG_FEATURE_IP_RULE
        bool "ip rule"
        default BUSYBOX_DEFAULT_FEATURE_IP_RULE
        depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPRULE
        help
-         Add support for rule commands to "ip".
+       Add support for rule commands to "ip".
 
 config BUSYBOX_CONFIG_FEATURE_IP_NEIGH
        bool "ip neighbor"
        default BUSYBOX_DEFAULT_FEATURE_IP_NEIGH
        depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPNEIGH
        help
-         Add support for neighbor commands to "ip".
+       Add support for neighbor commands to "ip".
 
 config BUSYBOX_CONFIG_FEATURE_IP_RARE_PROTOCOLS
        bool "Support displaying rarely used link types"
        default BUSYBOX_DEFAULT_FEATURE_IP_RARE_PROTOCOLS
        depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPADDR || BUSYBOX_CONFIG_IPLINK || BUSYBOX_CONFIG_IPROUTE || BUSYBOX_CONFIG_IPTUNNEL || BUSYBOX_CONFIG_IPRULE || BUSYBOX_CONFIG_IPNEIGH
        help
-         If you are not going to use links of type "frad", "econet",
-         "bif" etc, you probably don't need to enable this.
-         Ethernet, wireless, infrared, ppp/slip, ip tunnelling
-         link types are supported without this option selected.
+       If you are not going to use links of type "frad", "econet",
+       "bif" etc, you probably don't need to enable this.
+       Ethernet, wireless, infrared, ppp/slip, ip tunnelling
+       link types are supported without this option selected.
 config BUSYBOX_CONFIG_IPCALC
-       bool "ipcalc"
+       bool "ipcalc (4.4 kb)"
        default BUSYBOX_DEFAULT_IPCALC
        help
-         ipcalc takes an IP address and netmask and calculates the
-         resulting broadcast, network, and host range.
+       ipcalc takes an IP address and netmask and calculates the
+       resulting broadcast, network, and host range.
 
 config BUSYBOX_CONFIG_FEATURE_IPCALC_LONG_OPTIONS
        bool "Enable long options"
@@ -594,119 +629,135 @@ config BUSYBOX_CONFIG_FEATURE_IPCALC_FANCY
        default BUSYBOX_DEFAULT_FEATURE_IPCALC_FANCY
        depends on BUSYBOX_CONFIG_IPCALC
        help
-         Adds the options hostname, prefix and silent to the output of
-         "ipcalc".
+       Adds the options hostname, prefix and silent to the output of
+       "ipcalc".
 config BUSYBOX_CONFIG_FAKEIDENTD
-       bool "fakeidentd"
+       bool "fakeidentd (8.7 kb)"
        default BUSYBOX_DEFAULT_FAKEIDENTD
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         fakeidentd listens on the ident port and returns a predefined
-         fake value on any query.
+       fakeidentd listens on the ident port and returns a predefined
+       fake value on any query.
 config BUSYBOX_CONFIG_NAMEIF
-       bool "nameif"
+       bool "nameif (6.6 kb)"
        default BUSYBOX_DEFAULT_NAMEIF
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         nameif is used to rename network interface by its MAC address.
-         Renamed interfaces MUST be in the down state.
-         It is possible to use a file (default: /etc/mactab)
-         with list of new interface names and MACs.
-         Maximum interface name length: IFNAMSIZ = 16
-         File fields are separated by space or tab.
-         File format:
-         # Comment
-         new_interface_name    XX:XX:XX:XX:XX:XX
+       nameif is used to rename network interface by its MAC address.
+       Renamed interfaces MUST be in the down state.
+       It is possible to use a file (default: /etc/mactab)
+       with list of new interface names and MACs.
+       Maximum interface name length: IFNAMSIZ = 16
+       File fields are separated by space or tab.
+       File format:
+               # Comment
+               new_interface_name  XX:XX:XX:XX:XX:XX
 
 config BUSYBOX_CONFIG_FEATURE_NAMEIF_EXTENDED
        bool "Extended nameif"
        default BUSYBOX_DEFAULT_FEATURE_NAMEIF_EXTENDED
        depends on BUSYBOX_CONFIG_NAMEIF
        help
-         This extends the nameif syntax to support the bus_info, driver,
-         phyaddr selectors. The syntax is compatible to the normal nameif.
-         File format:
-           new_interface_name  driver=asix bus=usb-0000:00:08.2-3
-           new_interface_name  bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5
-           new_interface_name  phy_address=2 00:80:C8:38:91:B5
-           new_interface_name  mac=00:80:C8:38:91:B5
-           new_interface_name  00:80:C8:38:91:B5
+       This extends the nameif syntax to support the bus_info, driver,
+       phyaddr selectors. The syntax is compatible to the normal nameif.
+       File format:
+               new_interface_name  driver=asix bus=usb-0000:00:08.2-3
+               new_interface_name  bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5
+               new_interface_name  phy_address=2 00:80:C8:38:91:B5
+               new_interface_name  mac=00:80:C8:38:91:B5
+               new_interface_name  00:80:C8:38:91:B5
 config BUSYBOX_CONFIG_NBDCLIENT
-       bool "nbd-client"
+       bool "nbd-client (6 kb)"
        default BUSYBOX_DEFAULT_NBDCLIENT
        help
-         Network block device client
+       Network block device client
 config BUSYBOX_CONFIG_NC
-       bool "nc"
+       bool "nc (11 kb)"
        default BUSYBOX_DEFAULT_NC
        help
-         A simple Unix utility which reads and writes data across network
-         connections.
+       A simple Unix utility which reads and writes data across network
+       connections.
+
+config BUSYBOX_CONFIG_NETCAT
+       bool "netcat (11 kb)"
+       default BUSYBOX_DEFAULT_NETCAT
+       help
+       Alias to nc.
 
 config BUSYBOX_CONFIG_NC_SERVER
        bool "Netcat server options (-l)"
        default BUSYBOX_DEFAULT_NC_SERVER
-       depends on BUSYBOX_CONFIG_NC
+       depends on BUSYBOX_CONFIG_NC || BUSYBOX_CONFIG_NETCAT
        help
-         Allow netcat to act as a server.
+       Allow netcat to act as a server.
 
 config BUSYBOX_CONFIG_NC_EXTRA
        bool "Netcat extensions (-eiw and -f FILE)"
        default BUSYBOX_DEFAULT_NC_EXTRA
-       depends on BUSYBOX_CONFIG_NC
+       depends on BUSYBOX_CONFIG_NC || BUSYBOX_CONFIG_NETCAT
        help
-         Add -e (support for executing the rest of the command line after
-         making or receiving a successful connection), -i (delay interval for
-         lines sent), -w (timeout for initial connection).
+       Add -e (support for executing the rest of the command line after
+       making or receiving a successful connection), -i (delay interval for
+       lines sent), -w (timeout for initial connection).
 
 config BUSYBOX_CONFIG_NC_110_COMPAT
        bool "Netcat 1.10 compatibility (+2.5k)"
-       default BUSYBOX_DEFAULT_NC_110_COMPAT  # off specially for Rob
-       depends on BUSYBOX_CONFIG_NC
+       default BUSYBOX_DEFAULT_NC_110_COMPAT
+       depends on BUSYBOX_CONFIG_NC || BUSYBOX_CONFIG_NETCAT
        help
-         This option makes nc closely follow original nc-1.10.
-         The code is about 2.5k bigger. It enables
-         -s ADDR, -n, -u, -v, -o FILE, -z options, but loses
-         busybox-specific extensions: -f FILE.
+       This option makes nc closely follow original nc-1.10.
+       The code is about 2.5k bigger. It enables
+       -s ADDR, -n, -u, -v, -o FILE, -z options, but loses
+       busybox-specific extensions: -f FILE.
 config BUSYBOX_CONFIG_NETMSG
        bool "netmsg"
        default BUSYBOX_DEFAULT_NETMSG
        help
          simple program for sending udp broadcast messages
 config BUSYBOX_CONFIG_NETSTAT
-       bool "netstat"
+       bool "netstat (10 kb)"
        default BUSYBOX_DEFAULT_NETSTAT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         netstat prints information about the Linux networking subsystem.
+       netstat prints information about the Linux networking subsystem.
 
 config BUSYBOX_CONFIG_FEATURE_NETSTAT_WIDE
        bool "Enable wide output"
        default BUSYBOX_DEFAULT_FEATURE_NETSTAT_WIDE
        depends on BUSYBOX_CONFIG_NETSTAT
        help
-         Add support for wide columns. Useful when displaying IPv6 addresses
-         (-W option).
+       Add support for wide columns. Useful when displaying IPv6 addresses
+       (-W option).
 
 config BUSYBOX_CONFIG_FEATURE_NETSTAT_PRG
        bool "Enable PID/Program name output"
        default BUSYBOX_DEFAULT_FEATURE_NETSTAT_PRG
        depends on BUSYBOX_CONFIG_NETSTAT
        help
-         Add support for -p flag to print out PID and program name.
-         +700 bytes of code.
+       Add support for -p flag to print out PID and program name.
+       +700 bytes of code.
 config BUSYBOX_CONFIG_NSLOOKUP
-       bool "nslookup"
+       bool "nslookup (9.7 kb)"
        default BUSYBOX_DEFAULT_NSLOOKUP
        help
-         nslookup is a tool to query Internet name servers.
+       nslookup is a tool to query Internet name servers.
+
+config BUSYBOX_CONFIG_FEATURE_NSLOOKUP_BIG
+       bool "Use internal resolver code instead of libc"
+       depends on BUSYBOX_CONFIG_NSLOOKUP
+       default BUSYBOX_DEFAULT_FEATURE_NSLOOKUP_BIG
+
+config BUSYBOX_CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS
+       bool "Enable long options"
+       default BUSYBOX_DEFAULT_FEATURE_NSLOOKUP_LONG_OPTIONS
+       depends on BUSYBOX_CONFIG_FEATURE_NSLOOKUP_BIG && BUSYBOX_CONFIG_LONG_OPTS
 config BUSYBOX_CONFIG_NSLOOKUP_LIBRECMC
-       bool "nslookup_lede"
+       bool "nslookup_librecmc"
        depends on !BUSYBOX_CONFIG_NSLOOKUP
        default BUSYBOX_DEFAULT_NSLOOKUP_LIBRECMC
        help
-         nslookup is a tool to query Internet name servers (libreCMC flavor).
+         nslookup is a tool to query Internet name servers (LEDE flavor).
 
 config BUSYBOX_CONFIG_FEATURE_NSLOOKUP_LIBRECMC_LONG_OPTIONS
        bool "Enable long options"
@@ -715,301 +766,313 @@ config BUSYBOX_CONFIG_FEATURE_NSLOOKUP_LIBRECMC_LONG_OPTIONS
        help
          Support long options for the nslookup applet.
 config BUSYBOX_CONFIG_NTPD
-       bool "ntpd"
+       bool "ntpd (22 kb)"
        default BUSYBOX_DEFAULT_NTPD
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         The NTP client/server daemon.
+       The NTP client/server daemon.
 
 config BUSYBOX_CONFIG_FEATURE_NTPD_SERVER
        bool "Make ntpd usable as a NTP server"
        default BUSYBOX_DEFAULT_FEATURE_NTPD_SERVER
        depends on BUSYBOX_CONFIG_NTPD
        help
-         Make ntpd usable as a NTP server. If you disable this option
-         ntpd will be usable only as a NTP client.
+       Make ntpd usable as a NTP server. If you disable this option
+       ntpd will be usable only as a NTP client.
 
 config BUSYBOX_CONFIG_FEATURE_NTPD_CONF
        bool "Make ntpd understand /etc/ntp.conf"
        default BUSYBOX_DEFAULT_FEATURE_NTPD_CONF
        depends on BUSYBOX_CONFIG_NTPD
        help
-         Make ntpd look in /etc/ntp.conf for peers. Only "server address"
-         is supported.
+       Make ntpd look in /etc/ntp.conf for peers. Only "server address"
+       is supported.
+
+config BUSYBOX_CONFIG_FEATURE_NTP_AUTH
+       bool "Support md5/sha1 message authentication codes"
+       default BUSYBOX_DEFAULT_FEATURE_NTP_AUTH
+       depends on BUSYBOX_CONFIG_NTPD
 config BUSYBOX_CONFIG_PING
-       bool "ping"
+       bool "ping (10 kb)"
        default BUSYBOX_DEFAULT_PING
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to
-         elicit an ICMP ECHO_RESPONSE from a host or gateway.
+       ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to
+       elicit an ICMP ECHO_RESPONSE from a host or gateway.
 
 config BUSYBOX_CONFIG_PING6
-       bool "ping6"
+       bool "ping6 (11 kb)"
        default BUSYBOX_DEFAULT_PING6
        depends on BUSYBOX_CONFIG_FEATURE_IPV6
        help
-         This will give you a ping that can talk IPv6.
+       Alias to "ping -6".
 
 config BUSYBOX_CONFIG_FEATURE_FANCY_PING
        bool "Enable fancy ping output"
        default BUSYBOX_DEFAULT_FEATURE_FANCY_PING
        depends on BUSYBOX_CONFIG_PING || BUSYBOX_CONFIG_PING6
        help
-         Make the output from the ping applet include statistics, and at the
-         same time provide full support for ICMP packets.
+       With this option off, ping will say "HOST is alive!"
+       or terminate with SIGALRM in 5 seconds otherwise.
+       No command-line options will be recognized.
 config BUSYBOX_CONFIG_PSCAN
-       bool "pscan"
+       bool "pscan (6 kb)"
        default BUSYBOX_DEFAULT_PSCAN
        help
-         Simple network port scanner.
+       Simple network port scanner.
 config BUSYBOX_CONFIG_ROUTE
-       bool "route"
+       bool "route (8.7 kb)"
        default BUSYBOX_DEFAULT_ROUTE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Route displays or manipulates the kernel's IP routing tables.
+       Route displays or manipulates the kernel's IP routing tables.
 config BUSYBOX_CONFIG_SLATTACH
-       bool "slattach"
+       bool "slattach (6.2 kb)"
        default BUSYBOX_DEFAULT_SLATTACH
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         slattach is a small utility to attach network interfaces to serial
-         lines.
+       slattach configures serial line as SLIP network interface.
 config BUSYBOX_CONFIG_SSL_CLIENT
-       bool "ssl_client"
+       bool "ssl_client (25 kb)"
        default BUSYBOX_DEFAULT_SSL_CLIENT
        select BUSYBOX_CONFIG_TLS
        help
-         This tool pipes data to/from a socket, TLS-encrypting it.
+       This tool pipes data to/from a socket, TLS-encrypting it.
+config BUSYBOX_CONFIG_TC
+       bool "tc (8.3 kb)"
+       default BUSYBOX_DEFAULT_TC
+       help
+       Show / manipulate traffic control settings
+
+config BUSYBOX_CONFIG_FEATURE_TC_INGRESS
+       bool "Enable ingress"
+       default BUSYBOX_DEFAULT_FEATURE_TC_INGRESS
+       depends on BUSYBOX_CONFIG_TC
 config BUSYBOX_CONFIG_TCPSVD
-       bool "tcpsvd"
+       bool "tcpsvd (14 kb)"
        default BUSYBOX_DEFAULT_TCPSVD
        help
-         tcpsvd listens on a TCP port and runs a program for each new
-         connection.
+       tcpsvd listens on a TCP port and runs a program for each new
+       connection.
 
 config BUSYBOX_CONFIG_UDPSVD
-       bool "udpsvd"
+       bool "udpsvd (13 kb)"
        default BUSYBOX_DEFAULT_UDPSVD
        help
-         udpsvd listens on an UDP port and runs a program for each new
-         connection.
+       udpsvd listens on an UDP port and runs a program for each new
+       connection.
 config BUSYBOX_CONFIG_TELNET
-       bool "telnet"
+       bool "telnet (8.8 kb)"
        default BUSYBOX_DEFAULT_TELNET
        help
-         Telnet is an interface to the TELNET protocol, but is also commonly
-         used to test other simple protocols.
+       Telnet is an interface to the TELNET protocol, but is also commonly
+       used to test other simple protocols.
 
 config BUSYBOX_CONFIG_FEATURE_TELNET_TTYPE
        bool "Pass TERM type to remote host"
        default BUSYBOX_DEFAULT_FEATURE_TELNET_TTYPE
        depends on BUSYBOX_CONFIG_TELNET
        help
-         Setting this option will forward the TERM environment variable to the
-         remote host you are connecting to. This is useful to make sure that
-         things like ANSI colors and other control sequences behave.
+       Setting this option will forward the TERM environment variable to the
+       remote host you are connecting to. This is useful to make sure that
+       things like ANSI colors and other control sequences behave.
 
 config BUSYBOX_CONFIG_FEATURE_TELNET_AUTOLOGIN
        bool "Pass USER type to remote host"
        default BUSYBOX_DEFAULT_FEATURE_TELNET_AUTOLOGIN
        depends on BUSYBOX_CONFIG_TELNET
        help
-         Setting this option will forward the USER environment variable to the
-         remote host you are connecting to. This is useful when you need to
-         log into a machine without telling the username (autologin). This
-         option enables `-a' and `-l USER' arguments.
+       Setting this option will forward the USER environment variable to the
+       remote host you are connecting to. This is useful when you need to
+       log into a machine without telling the username (autologin). This
+       option enables '-a' and '-l USER' options.
 
 config BUSYBOX_CONFIG_FEATURE_TELNET_WIDTH
        bool "Enable window size autodetection"
        default BUSYBOX_DEFAULT_FEATURE_TELNET_WIDTH
        depends on BUSYBOX_CONFIG_TELNET
 config BUSYBOX_CONFIG_TELNETD
-       bool "telnetd"
+       bool "telnetd (12 kb)"
        default BUSYBOX_DEFAULT_TELNETD
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         A daemon for the TELNET protocol, allowing you to log onto the host
-         running the daemon. Please keep in mind that the TELNET protocol
-         sends passwords in plain text. If you can't afford the space for an
-         SSH daemon and you trust your network, you may say 'y' here. As a
-         more secure alternative, you should seriously consider installing the
-         very small Dropbear SSH daemon instead:
+       A daemon for the TELNET protocol, allowing you to log onto the host
+       running the daemon. Please keep in mind that the TELNET protocol
+       sends passwords in plain text. If you can't afford the space for an
+       SSH daemon and you trust your network, you may say 'y' here. As a
+       more secure alternative, you should seriously consider installing the
+       very small Dropbear SSH daemon instead:
                http://matt.ucc.asn.au/dropbear/dropbear.html
 
-         Note that for busybox telnetd to work you need several things:
-         First of all, your kernel needs:
+       Note that for busybox telnetd to work you need several things:
+       First of all, your kernel needs:
                  CONFIG_UNIX98_PTYS=y
 
-         Next, you need a /dev/pts directory on your root filesystem:
+       Next, you need a /dev/pts directory on your root filesystem:
 
                  $ ls -ld /dev/pts
                  drwxr-xr-x  2 root root 0 Sep 23 13:21 /dev/pts/
 
-         Next you need the pseudo terminal master multiplexer /dev/ptmx:
+       Next you need the pseudo terminal master multiplexer /dev/ptmx:
 
                  $ ls -la /dev/ptmx
                  crw-rw-rw-  1 root tty 5, 2 Sep 23 13:55 /dev/ptmx
 
-         Any /dev/ttyp[0-9]* files you may have can be removed.
-         Next, you need to mount the devpts filesystem on /dev/pts using:
+       Any /dev/ttyp[0-9]* files you may have can be removed.
+       Next, you need to mount the devpts filesystem on /dev/pts using:
 
                  mount -t devpts devpts /dev/pts
 
-         You need to be sure that busybox has LOGIN and
-         FEATURE_SUID enabled. And finally, you should make
-         certain that Busybox has been installed setuid root:
+       You need to be sure that busybox has LOGIN and
+       FEATURE_SUID enabled. And finally, you should make
+       certain that busybox has been installed setuid root:
 
                chown root.root /bin/busybox
                chmod 4755 /bin/busybox
 
-         with all that done, telnetd _should_ work....
+       with all that done, telnetd _should_ work....
 
 config BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE
        bool "Support standalone telnetd (not inetd only)"
        default BUSYBOX_DEFAULT_FEATURE_TELNETD_STANDALONE
        depends on BUSYBOX_CONFIG_TELNETD
        help
-         Selecting this will make telnetd able to run standalone.
+       Selecting this will make telnetd able to run standalone.
 
 config BUSYBOX_CONFIG_FEATURE_TELNETD_INETD_WAIT
        bool "Support -w SEC option (inetd wait mode)"
        default BUSYBOX_DEFAULT_FEATURE_TELNETD_INETD_WAIT
        depends on BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE
        help
-         This option allows you to run telnetd in "inet wait" mode.
-         Example inetd.conf line (note "wait", not usual "nowait"):
+       This option allows you to run telnetd in "inet wait" mode.
+       Example inetd.conf line (note "wait", not usual "nowait"):
 
-         telnet stream tcp wait root /bin/telnetd telnetd -w10
+       telnet stream tcp wait root /bin/telnetd telnetd -w10
 
-         In this example, inetd passes _listening_ socket_ as fd 0
-         to telnetd when connection appears.
-         telnetd will wait for connections until all existing
-         connections are closed, and no new connections
-         appear during 10 seconds. Then it exits, and inetd continues
-         to listen for new connections.
+       In this example, inetd passes _listening_ socket_ as fd 0
+       to telnetd when connection appears.
+       telnetd will wait for connections until all existing
+       connections are closed, and no new connections
+       appear during 10 seconds. Then it exits, and inetd continues
+       to listen for new connections.
 
-         This option is rarely used. "tcp nowait" is much more usual
-         way of running tcp services, including telnetd.
-         You most probably want to say N here.
+       This option is rarely used. "tcp nowait" is much more usual
+       way of running tcp services, including telnetd.
+       You most probably want to say N here.
 config BUSYBOX_CONFIG_TFTP
-       bool "tftp"
+       bool "tftp (11 kb)"
        default BUSYBOX_DEFAULT_TFTP
        help
-         This enables the Trivial File Transfer Protocol client program. TFTP
-         is usually used for simple, small transfers such as a root image
-         for a network-enabled bootloader.
+       Trivial File Transfer Protocol client. TFTP is usually used
+       for simple, small transfers such as a root image
+       for a network-enabled bootloader.
+
+config BUSYBOX_CONFIG_FEATURE_TFTP_PROGRESS_BAR
+       bool "Enable progress bar"
+       default BUSYBOX_DEFAULT_FEATURE_TFTP_PROGRESS_BAR
+       depends on BUSYBOX_CONFIG_TFTP
 
 config BUSYBOX_CONFIG_TFTPD
-       bool "tftpd"
+       bool "tftpd (10 kb)"
        default BUSYBOX_DEFAULT_TFTPD
        help
-         This enables the Trivial File Transfer Protocol server program.
-         It expects that stdin is a datagram socket and a packet
-         is already pending on it. It will exit after one transfer.
-         In other words: it should be run from inetd in nowait mode,
-         or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR"
-
-comment "Common options for tftp/tftpd"
-       depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
+       Trivial File Transfer Protocol server.
+       It expects that stdin is a datagram socket and a packet
+       is already pending on it. It will exit after one transfer.
+       In other words: it should be run from inetd in nowait mode,
+       or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR"
 
 config BUSYBOX_CONFIG_FEATURE_TFTP_GET
        bool "Enable 'tftp get' and/or tftpd upload code"
        default BUSYBOX_DEFAULT_FEATURE_TFTP_GET
        depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
        help
-         Add support for the GET command within the TFTP client. This allows
-         a client to retrieve a file from a TFTP server.
-         Also enable upload support in tftpd, if tftpd is selected.
+       Add support for the GET command within the TFTP client. This allows
+       a client to retrieve a file from a TFTP server.
+       Also enable upload support in tftpd, if tftpd is selected.
 
-         Note: this option does _not_ make tftpd capable of download
-         (the usual operation people need from it)!
+       Note: this option does _not_ make tftpd capable of download
+       (the usual operation people need from it)!
 
 config BUSYBOX_CONFIG_FEATURE_TFTP_PUT
        bool "Enable 'tftp put' and/or tftpd download code"
        default BUSYBOX_DEFAULT_FEATURE_TFTP_PUT
        depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
        help
-         Add support for the PUT command within the TFTP client. This allows
-         a client to transfer a file to a TFTP server.
-         Also enable download support in tftpd, if tftpd is selected.
+       Add support for the PUT command within the TFTP client. This allows
+       a client to transfer a file to a TFTP server.
+       Also enable download support in tftpd, if tftpd is selected.
 
 config BUSYBOX_CONFIG_FEATURE_TFTP_BLOCKSIZE
        bool "Enable 'blksize' and 'tsize' protocol options"
        default BUSYBOX_DEFAULT_FEATURE_TFTP_BLOCKSIZE
        depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
        help
-         Allow tftp to specify block size, and tftpd to understand
-         "blksize" and "tsize" options.
-
-config BUSYBOX_CONFIG_FEATURE_TFTP_PROGRESS_BAR
-       bool "Enable progress bar"
-       default BUSYBOX_DEFAULT_FEATURE_TFTP_PROGRESS_BAR
-       depends on BUSYBOX_CONFIG_TFTP && BUSYBOX_CONFIG_FEATURE_TFTP_BLOCKSIZE
+       Allow tftp to specify block size, and tftpd to understand
+       "blksize" and "tsize" options.
 
 config BUSYBOX_CONFIG_TFTP_DEBUG
        bool "Enable debug"
        default BUSYBOX_DEFAULT_TFTP_DEBUG
        depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
        help
-         Make tftp[d] print debugging messages on stderr.
-         This is useful if you are diagnosing a bug in tftp[d].
+       Make tftp[d] print debugging messages on stderr.
+       This is useful if you are diagnosing a bug in tftp[d].
 config BUSYBOX_CONFIG_TLS
        bool #No description makes it a hidden option
        default BUSYBOX_DEFAULT_TLS
 config BUSYBOX_CONFIG_TRACEROUTE
-       bool "traceroute"
+       bool "traceroute (11 kb)"
        default BUSYBOX_DEFAULT_TRACEROUTE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Utility to trace the route of IP packets.
+       Utility to trace the route of IP packets.
 
 config BUSYBOX_CONFIG_TRACEROUTE6
-       bool "traceroute6"
+       bool "traceroute6 (13 kb)"
        default BUSYBOX_DEFAULT_TRACEROUTE6
        depends on BUSYBOX_CONFIG_FEATURE_IPV6
        help
-         Utility to trace the route of IPv6 packets.
+       Utility to trace the route of IPv6 packets.
 
 config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_VERBOSE
        bool "Enable verbose output"
        default BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_VERBOSE
        depends on BUSYBOX_CONFIG_TRACEROUTE || BUSYBOX_CONFIG_TRACEROUTE6
        help
-         Add some verbosity to traceroute. This includes among other things
-         hostnames and ICMP response types.
+       Add some verbosity to traceroute. This includes among other things
+       hostnames and ICMP response types.
 
 config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_USE_ICMP
        bool "Enable -I option (use ICMP instead of UDP)"
        default BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_USE_ICMP
        depends on BUSYBOX_CONFIG_TRACEROUTE || BUSYBOX_CONFIG_TRACEROUTE6
 config BUSYBOX_CONFIG_TUNCTL
-       bool "tunctl"
+       bool "tunctl (6.2 kb)"
        default BUSYBOX_DEFAULT_TUNCTL
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         tunctl creates or deletes tun devices.
+       tunctl creates or deletes tun devices.
 
 config BUSYBOX_CONFIG_FEATURE_TUNCTL_UG
        bool "Support owner:group assignment"
        default BUSYBOX_DEFAULT_FEATURE_TUNCTL_UG
        depends on BUSYBOX_CONFIG_TUNCTL
        help
-         Allow to specify owner and group of newly created interface.
-         340 bytes of pure bloat. Say no here.
+       Allow to specify owner and group of newly created interface.
+       340 bytes of pure bloat. Say no here.
 config BUSYBOX_CONFIG_VCONFIG
-       bool "vconfig"
+       bool "vconfig (2.3 kb)"
        default BUSYBOX_DEFAULT_VCONFIG
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Creates, removes, and configures VLAN interfaces
+       Creates, removes, and configures VLAN interfaces
 config BUSYBOX_CONFIG_WGET
-       bool "wget"
+       bool "wget (38 kb)"
        default BUSYBOX_DEFAULT_WGET
        help
-         wget is a utility for non-interactive download of files from HTTP
-         and FTP servers.
+       wget is a utility for non-interactive download of files from HTTP
+       and FTP servers.
 
 config BUSYBOX_CONFIG_FEATURE_WGET_LONG_OPTIONS
        bool "Enable long options"
@@ -1026,21 +1089,21 @@ config BUSYBOX_CONFIG_FEATURE_WGET_AUTHENTICATION
        default BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
        depends on BUSYBOX_CONFIG_WGET
        help
-         Support authenticated HTTP transfers.
+       Support authenticated HTTP transfers.
 
 config BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT
        bool "Enable timeout option -T SEC"
        default BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT
        depends on BUSYBOX_CONFIG_WGET
        help
-         Supports network read and connect timeouts for wget,
-         so that wget will give up and timeout, through the -T
-         command line option.
+       Supports network read and connect timeouts for wget,
+       so that wget will give up and timeout, through the -T
+       command line option.
 
-         Currently only connect and network data read timeout are
-         supported (i.e., timeout is not applied to the DNS query). When
-         FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option
-         will work in addition to -T.
+       Currently only connect and network data read timeout are
+       supported (i.e., timeout is not applied to the DNS query). When
+       FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option
+       will work in addition to -T.
 
 config BUSYBOX_CONFIG_FEATURE_WGET_HTTPS
        bool "Support HTTPS using internal TLS code"
@@ -1048,85 +1111,85 @@ config BUSYBOX_CONFIG_FEATURE_WGET_HTTPS
        depends on BUSYBOX_CONFIG_WGET
        select BUSYBOX_CONFIG_TLS
        help
-         wget will use internal TLS code to connect to https:// URLs.
-         Note:
-         On NOMMU machines, ssl_helper applet should be available
-         in the $PATH for this to work. Make sure to select that applet.
-
-         Note: currently, TLS code only makes TLS I/O work, it
-         does *not* check that the peer is who it claims to be, etc.
-         IOW: it uses peer-supplied public keys to establish encryption
-         and signing keys, then encrypts and signs outgoing data and
-         decrypts incoming data.
-         It does not check signature hashes on the incoming data:
-         this means that attackers manipulating TCP packets can
-         send altered data and we unknowingly receive garbage.
-         (This check might be relatively easy to add).
-         It does not check public key's certificate:
-         this means that the peer may be an attacker impersonating
-         the server we think we are talking to.
-
-         If you think this is unacceptable, consider this. As more and more
-         servers switch to HTTPS-only operation, without such "crippled"
-         TLS code it is *impossible* to simply download a kernel source
-         from kernel.org. Which can in real world translate into
-         "my small automatic tooling to build cross-compilers from sources
-         no longer works, I need to additionally keep a local copy
-         of ~4 megabyte source tarball of a SSL library and ~2 megabyte
-         source of wget, need to compile and built both before I can
-         download anything. All this despite the fact that the build
-         is done in a QEMU sandbox on a machine with absolutely nothing
-         worth stealing, so I don't care if someone would go to a lot
-         of trouble to intercept my HTTPS download to send me an altered
-         kernel tarball".
-
-         If you still think this is unacceptable, send patches.
-
-         If you still think this is unacceptable, do not want to send
-         patches, but do want to waste bandwidth expaining how wrong
-         it is, you will be ignored.
+       wget will use internal TLS code to connect to https:// URLs.
+       Note:
+       On NOMMU machines, ssl_helper applet should be available
+       in the $PATH for this to work. Make sure to select that applet.
+
+       Note: currently, TLS code only makes TLS I/O work, it
+       does *not* check that the peer is who it claims to be, etc.
+       IOW: it uses peer-supplied public keys to establish encryption
+       and signing keys, then encrypts and signs outgoing data and
+       decrypts incoming data.
+       It does not check signature hashes on the incoming data:
+       this means that attackers manipulating TCP packets can
+       send altered data and we unknowingly receive garbage.
+       (This check might be relatively easy to add).
+       It does not check public key's certificate:
+       this means that the peer may be an attacker impersonating
+       the server we think we are talking to.
+
+       If you think this is unacceptable, consider this. As more and more
+       servers switch to HTTPS-only operation, without such "crippled"
+       TLS code it is *impossible* to simply download a kernel source
+       from kernel.org. Which can in real world translate into
+       "my small automatic tooling to build cross-compilers from sources
+       no longer works, I need to additionally keep a local copy
+       of ~4 megabyte source tarball of a SSL library and ~2 megabyte
+       source of wget, need to compile and built both before I can
+       download anything. All this despite the fact that the build
+       is done in a QEMU sandbox on a machine with absolutely nothing
+       worth stealing, so I don't care if someone would go to a lot
+       of trouble to intercept my HTTPS download to send me an altered
+       kernel tarball".
+
+       If you still think this is unacceptable, send patches.
+
+       If you still think this is unacceptable, do not want to send
+       patches, but do want to waste bandwidth expaining how wrong
+       it is, you will be ignored.
 
 config BUSYBOX_CONFIG_FEATURE_WGET_OPENSSL
        bool "Try to connect to HTTPS using openssl"
        default BUSYBOX_DEFAULT_FEATURE_WGET_OPENSSL
        depends on BUSYBOX_CONFIG_WGET
        help
-         Try to use openssl to handle HTTPS.
-
-         OpenSSL has a simple SSL client for debug purposes.
-         If you select this option, wget will effectively run:
-         "openssl s_client -quiet -connect hostname:443
-         -servername hostname 2>/dev/null" and pipe its data
-         through it. -servername is not used if hostname is numeric.
-         Note inconvenient API: host resolution is done twice,
-         and there is no guarantee openssl's idea of IPv6 address
-         format is the same as ours.
-         Another problem is that s_client prints debug information
-         to stderr, and it needs to be suppressed. This means
-         all error messages get suppressed too.
-         openssl is also a big binary, often dynamically linked
-         against ~15 libraries.
-
-         If openssl can't be executed, internal TLS code will be used
-         (if you enabled it); if openssl can be executed but fails later,
-         wget can't detect this, and download will fail.
+       Try to use openssl to handle HTTPS.
+
+       OpenSSL has a simple SSL client for debug purposes.
+       If you select this option, wget will effectively run:
+       "openssl s_client -quiet -connect hostname:443
+       -servername hostname 2>/dev/null" and pipe its data
+       through it. -servername is not used if hostname is numeric.
+       Note inconvenient API: host resolution is done twice,
+       and there is no guarantee openssl's idea of IPv6 address
+       format is the same as ours.
+       Another problem is that s_client prints debug information
+       to stderr, and it needs to be suppressed. This means
+       all error messages get suppressed too.
+       openssl is also a big binary, often dynamically linked
+       against ~15 libraries.
+
+       If openssl can't be executed, internal TLS code will be used
+       (if you enabled it); if openssl can be executed but fails later,
+       wget can't detect this, and download will fail.
 config BUSYBOX_CONFIG_WHOIS
-       bool "whois"
+       bool "whois (6.3 kb)"
        default BUSYBOX_DEFAULT_WHOIS
        help
-         whois is a client for the whois directory service
+       whois is a client for the whois directory service
 config BUSYBOX_CONFIG_ZCIP
-       bool "zcip"
+       bool "zcip (8.4 kb)"
        default BUSYBOX_DEFAULT_ZCIP
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
-         It's a daemon that allocates and defends a dynamically assigned
-         address on the 169.254/16 network, requiring no system administrator.
+       ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
+       It's a daemon that allocates and defends a dynamically assigned
+       address on the 169.254/16 network, requiring no system administrator.
 
-         See http://www.zeroconf.org for further details, and "zcip.script"
-         in the busybox examples.
+       See http://www.zeroconf.org for further details, and "zcip.script"
+       in the busybox examples.
 
 source udhcp/Config.in
 
@@ -1135,8 +1198,8 @@ config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS
        default BUSYBOX_DEFAULT_IFUPDOWN_UDHCPC_CMD_OPTIONS
        depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN
        help
-         Command line options to pass to udhcpc from ifup.
-         Intended to alter options not available in /etc/network/interfaces.
-         (IE: --syslog --background etc...)
+       Command line options to pass to udhcpc from ifup.
+       Intended to alter options not available in /etc/network/interfaces.
+       (IE: --syslog --background etc...)
 
 endmenu
index e7a98750d2e35bd0b3c04f1435c1f5067534da83..212e4a0bcb501c7d9abbf1711ea9c0278bad51dc 100644 (file)
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
-config BUSYBOX_CONFIG_UDHCPC6
-       bool "udhcpc6 (DHCPv6 client, EXPERIMENTAL)"
-       default BUSYBOX_DEFAULT_UDHCPC6  # not yet ready
-       depends on BUSYBOX_CONFIG_FEATURE_IPV6
-       help
-         udhcpc6 is a DHCPv6 client
-
-config BUSYBOX_CONFIG_FEATURE_UDHCPC6_RFC3646
-       bool "Support RFC 3646 (DNS server and search list)"
-       default BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC3646
-       depends on BUSYBOX_CONFIG_UDHCPC6
-       help
-         List of DNS servers and domain search list can be requested with
-         "-O dns" and "-O search". If server gives these values,
-         they will be set in environment variables "dns" and "search".
-
-config BUSYBOX_CONFIG_FEATURE_UDHCPC6_RFC4704
-       bool "Support RFC 4704 (Client FQDN)"
-       default BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4704
-       depends on BUSYBOX_CONFIG_UDHCPC6
-       help
-         You can request FQDN to be given by server using "-O fqdn".
-
-config BUSYBOX_CONFIG_FEATURE_UDHCPC6_RFC4833
-       bool "Support RFC 4833 (Timezones)"
-       default BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4833
-       depends on BUSYBOX_CONFIG_UDHCPC6
-       help
-         You can request POSIX timezone with "-O tz" and timezone name
-         with "-O timezone".
-
 config BUSYBOX_CONFIG_UDHCPD
-       bool "udhcpd (DHCP server)"
+       bool "udhcpd (21 kb)"
        default BUSYBOX_DEFAULT_UDHCPD
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         udhcpd is a DHCP server geared primarily toward embedded systems,
-         while striving to be fully functional and RFC compliant.
-
-config BUSYBOX_CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY
-       bool "Rewrite the lease file at every new acknowledge"
-       default BUSYBOX_DEFAULT_FEATURE_UDHCPD_WRITE_LEASES_EARLY
-       depends on BUSYBOX_CONFIG_UDHCPD
-       help
-         If selected, udhcpd will write a new file with leases every
-         time a new lease has been accepted, thus eliminating the need
-         to send SIGUSR1 for the initial writing or updating. Any timed
-         rewriting remains undisturbed.
+       udhcpd is a DHCP server geared primarily toward embedded systems,
+       while striving to be fully functional and RFC compliant.
 
 config BUSYBOX_CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC
        bool "Select IP address based on client MAC"
        default BUSYBOX_DEFAULT_FEATURE_UDHCPD_BASE_IP_ON_MAC
        depends on BUSYBOX_CONFIG_UDHCPD
        help
-         If selected, udhcpd will base its selection of IP address to offer
-         on the client's hardware address. Otherwise udhcpd uses the next
-         consecutive free address.
+       If selected, udhcpd will base its selection of IP address to offer
+       on the client's hardware address. Otherwise udhcpd uses the next
+       consecutive free address.
 
-         This reduces the frequency of IP address changes for clients
-         which let their lease expire, and makes consecutive DHCPOFFERS
-         for the same client to (almost always) contain the same
-         IP address.
+       This reduces the frequency of IP address changes for clients
+       which let their lease expire, and makes consecutive DHCPOFFERS
+       for the same client to (almost always) contain the same
+       IP address.
+
+config BUSYBOX_CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY
+       bool "Rewrite lease file at every new acknowledge"
+       default BUSYBOX_DEFAULT_FEATURE_UDHCPD_WRITE_LEASES_EARLY
+       depends on BUSYBOX_CONFIG_UDHCPD
+       help
+       If selected, udhcpd will write a new file with leases every
+       time a new lease has been accepted, thus eliminating the need
+       to send SIGUSR1 for the initial writing or updating. Any timed
+       rewriting remains undisturbed.
 
 config BUSYBOX_CONFIG_DHCPD_LEASES_FILE
        string "Absolute path to lease file"
        default BUSYBOX_DEFAULT_DHCPD_LEASES_FILE
        depends on BUSYBOX_CONFIG_UDHCPD
        help
-         udhcpd stores addresses in a lease file. This is the absolute path
-         of the file. Normally it is safe to leave it untouched.
+       udhcpd stores addresses in a lease file. This is the absolute path
+       of the file. Normally it is safe to leave it untouched.
 
 config BUSYBOX_CONFIG_DUMPLEASES
-       bool "dumpleases"
+       bool "dumpleases (5.1 kb)"
        default BUSYBOX_DEFAULT_DUMPLEASES
        help
-         dumpleases displays the leases written out by the udhcpd.
-         Lease times are stored in the file by time remaining in lease, or
-         by the absolute time that it expires in seconds from epoch.
+       dumpleases displays the leases written out by the udhcpd.
+       Lease times are stored in the file by time remaining in lease, or
+       by the absolute time that it expires in seconds from epoch.
 
 config BUSYBOX_CONFIG_DHCPRELAY
-       bool "dhcprelay"
+       bool "dhcprelay (5.2 kb)"
        default BUSYBOX_DEFAULT_DHCPRELAY
        help
-         dhcprelay listens for dhcp requests on one or more interfaces
-         and forwards these requests to a different interface or dhcp
-         server.
+       dhcprelay listens for DHCP requests on one or more interfaces
+       and forwards these requests to a different interface or DHCP
+       server.
 
 config BUSYBOX_CONFIG_UDHCPC
-       bool "udhcpc (DHCP client)"
+       bool "udhcpc (24 kb)"
        default BUSYBOX_DEFAULT_UDHCPC
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         udhcpc is a DHCP client geared primarily toward embedded systems,
-         while striving to be fully functional and RFC compliant.
+       udhcpc is a DHCP client geared primarily toward embedded systems,
+       while striving to be fully functional and RFC compliant.
 
-         The udhcp client negotiates a lease with the DHCP server and
-         runs a script when a lease is obtained or lost.
+       The udhcp client negotiates a lease with the DHCP server and
+       runs a script when a lease is obtained or lost.
 
 config BUSYBOX_CONFIG_FEATURE_UDHCPC_ARPING
        bool "Verify that the offered address is free, using ARP ping"
        default BUSYBOX_DEFAULT_FEATURE_UDHCPC_ARPING
        depends on BUSYBOX_CONFIG_UDHCPC
        help
-         If selected, udhcpc will send ARP probes and make sure
-         the offered address is really not in use by anyone. The client
-         will DHCPDECLINE the offer if the address is in use,
-         and restart the discover process.
+       If selected, udhcpc will send ARP probes and make sure
+       the offered address is really not in use by anyone. The client
+       will DHCPDECLINE the offer if the address is in use,
+       and restart the discover process.
 
 config BUSYBOX_CONFIG_FEATURE_UDHCPC_SANITIZEOPT
        bool "Do not pass malformed host and domain names"
        default BUSYBOX_DEFAULT_FEATURE_UDHCPC_SANITIZEOPT
        depends on BUSYBOX_CONFIG_UDHCPC
        help
-         If selected, udhcpc will check some options (such as option 12 -
-         hostname) and if they don't look like valid hostnames
-         (for example, if they start with dash or contain spaces),
-         they will be replaced with string "bad" when exporting
-         to the environment.
+       If selected, udhcpc will check some options (such as option 12 -
+       hostname) and if they don't look like valid hostnames
+       (for example, if they start with dash or contain spaces),
+       they will be replaced with string "bad" when exporting
+       to the environment.
 
 config BUSYBOX_CONFIG_UDHCPC_DEFAULT_SCRIPT
        string "Absolute path to config script"
        default BUSYBOX_DEFAULT_UDHCPC_DEFAULT_SCRIPT
-       depends on BUSYBOX_CONFIG_UDHCPC
+       depends on BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_UDHCPC6
+       help
+       This script is called after udhcpc receives an answer. See
+       examples/udhcp for a working example. Normally it is safe
+       to leave this untouched.
+
+# udhcpc6 config is inserted here:
+config BUSYBOX_CONFIG_UDHCPC6
+       bool "udhcpc6 (21 kb)"
+       default BUSYBOX_DEFAULT_UDHCPC6  # not yet ready
+       depends on BUSYBOX_CONFIG_FEATURE_IPV6
        help
-         This script is called after udhcpc receives an answer. See
-         examples/udhcp for a working example. Normally it is safe
-         to leave this untouched.
+       udhcpc6 is a DHCPv6 client
+
+config BUSYBOX_CONFIG_FEATURE_UDHCPC6_RFC3646
+       bool "Support RFC 3646 (DNS server and search list)"
+       default BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC3646
+       depends on BUSYBOX_CONFIG_UDHCPC6
+       help
+       List of DNS servers and domain search list can be requested with
+       "-O dns" and "-O search". If server gives these values,
+       they will be set in environment variables "dns" and "search".
+
+config BUSYBOX_CONFIG_FEATURE_UDHCPC6_RFC4704
+       bool "Support RFC 4704 (Client FQDN)"
+       default BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4704
+       depends on BUSYBOX_CONFIG_UDHCPC6
+       help
+       You can request FQDN to be given by server using "-O fqdn".
+
+config BUSYBOX_CONFIG_FEATURE_UDHCPC6_RFC4833
+       bool "Support RFC 4833 (Timezones)"
+       default BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4833
+       depends on BUSYBOX_CONFIG_UDHCPC6
+       help
+       You can request POSIX timezone with "-O tz" and timezone name
+       with "-O timezone".
+
+config BUSYBOX_CONFIG_FEATURE_UDHCPC6_RFC5970
+       bool "Support RFC 5970 (Network Boot)"
+       default BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC5970
+       depends on BUSYBOX_CONFIG_UDHCPC6
+       help
+       You can request bootfile-url with "-O bootfile_url" and
+       bootfile-params with "-O bootfile_params".
+
+comment "Common options for DHCP applets"
+        depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_UDHCPC6 || BUSYBOX_CONFIG_DHCPRELAY
 
 config BUSYBOX_CONFIG_FEATURE_UDHCP_PORT
        bool "Enable '-P port' option for udhcpd and udhcpc"
        default BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
-       depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
+       depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_UDHCPC6
        help
-         At the cost of ~300 bytes, enables -P port option.
-         This feature is typically not needed.
+       At the cost of ~300 bytes, enables -P port option.
+       This feature is typically not needed.
 
 config BUSYBOX_CONFIG_UDHCP_DEBUG
-       int "Maximum verbosity level for udhcp applets (0..9)"
+       int "Maximum verbosity level (0..9)"
        default BUSYBOX_DEFAULT_UDHCP_DEBUG
        range 0 9
-       depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_DHCPRELAY
+       depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_UDHCPC6 || BUSYBOX_CONFIG_DHCPRELAY
        help
-         Verbosity can be increased with multiple -v options.
-         This option controls how high it can be cranked up.
+       Verbosity can be increased with multiple -v options.
+       This option controls how high it can be cranked up.
 
-         Bigger values result in bigger code. Levels above 1
-         are very verbose and useful for debugging only.
+       Bigger values result in bigger code. Levels above 1
+       are very verbose and useful for debugging only.
+
+config BUSYBOX_CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS
+       int "DHCP options slack buffer size"
+       default BUSYBOX_DEFAULT_UDHCPC_SLACK_FOR_BUGGY_SERVERS
+       range 0 924
+       depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
+       help
+       Some buggy DHCP servers send DHCP offer packets with option
+       field larger than we expect (which might also be considered a
+       buffer overflow attempt). These packets are normally discarded.
+       If circumstances beyond your control force you to support such
+       servers, this may help. The upper limit (924) makes udhcpc accept
+       even 1500 byte packets (maximum-sized ethernet packets).
+
+       This option does not make udhcp[cd] emit non-standard
+       sized packets.
+
+       Known buggy DHCP servers:
+       3Com OfficeConnect Remote 812 ADSL Router:
+               seems to confuse maximum allowed UDP packet size with
+               maximum size of entire IP packet, and sends packets
+               which are 28 bytes too large.
+       Seednet (ISP) VDSL: sends packets 2 bytes too large.
 
 config BUSYBOX_CONFIG_FEATURE_UDHCP_RFC3397
-       bool "Support RFC3397 domain search (experimental)"
+       bool "Support RFC 3397 domain search options"
        default BUSYBOX_DEFAULT_FEATURE_UDHCP_RFC3397
        depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
        help
-         If selected, both client and server will support passing of domain
-         search lists via option 119, specified in RFC 3397,
-         and SIP servers option 120, specified in RFC 3361.
+       If selected, both client and server will support passing of domain
+       search lists via option 119, specified in RFC 3397,
+       and SIP servers option 120, specified in RFC 3361.
 
 config BUSYBOX_CONFIG_FEATURE_UDHCP_8021Q
-       bool "Support 802.1Q VLAN parameters"
+       bool "Support 802.1Q VLAN parameters options"
        default BUSYBOX_DEFAULT_FEATURE_UDHCP_8021Q
        depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
        help
-         If selected, both client and server will support passing of VLAN
-         ID and priority via options 132 and 133 as per 802.1Q.
-
-config BUSYBOX_CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS
-       int "DHCP options slack buffer size"
-       default BUSYBOX_DEFAULT_UDHCPC_SLACK_FOR_BUGGY_SERVERS
-       range 0 924
-       depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
-       help
-         Some buggy DHCP servers send DHCP offer packets with option
-         field larger than we expect (which might also be considered a
-         buffer overflow attempt). These packets are normally discarded.
-         If circumstances beyond your control force you to support such
-         servers, this may help. The upper limit (924) makes dhcpc accept
-         even 1500 byte packets (maximum-sized ethernet packets).
-
-         This option does not make dhcp[cd] emit non-standard
-         sized packets.
-
-         Known buggy DHCP servers:
-         3Com OfficeConnect Remote 812 ADSL Router:
-           seems to confuse maximum allowed UDP packet size with
-           maximum size of entire IP packet, and sends packets which are
-           28 bytes too large.
-         Seednet (ISP) VDSL: sends packets 2 bytes too large.
+       If selected, both client and server will support passing of VLAN
+       ID and priority via options 132 and 133 as per 802.1Q.
index 3a2baa311d019da2719632618e4c318fc4e97c0f..c53ee19d4eacc6496d4ffc0c98ae6d4ed8cbab21 100644 (file)
@@ -1,26 +1,26 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Print Utilities"
 
 config BUSYBOX_CONFIG_LPD
-       bool "lpd"
+       bool "lpd (5.5 kb)"
        default BUSYBOX_DEFAULT_LPD
        help
-         lpd is a print spooling daemon.
+       lpd is a print spooling daemon.
 config BUSYBOX_CONFIG_LPR
-       bool "lpr"
+       bool "lpr (9.9 kb)"
        default BUSYBOX_DEFAULT_LPR
        help
-         lpr sends files (or standard input) to a print spooling daemon.
+       lpr sends files (or standard input) to a print spooling daemon.
 
 config BUSYBOX_CONFIG_LPQ
-       bool "lpq"
+       bool "lpq (9.9 kb)"
        default BUSYBOX_DEFAULT_LPQ
        help
-         lpq is a print spool queue examination and manipulation program.
+       lpq is a print spool queue examination and manipulation program.
 
 endmenu
index acd4ed882b431b43f8a58f39604f8fd8ced4ef65..6a0d51f3533f5701ad37bc0bf79e40a5400b8fc4 100644 (file)
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Process Utilities"
 
 config BUSYBOX_CONFIG_FREE
-       bool "free"
+       bool "free (3.1 kb)"
        default BUSYBOX_DEFAULT_FREE
        select BUSYBOX_CONFIG_PLATFORM_LINUX #sysinfo()
        help
-         free displays the total amount of free and used physical and swap
-         memory in the system, as well as the buffers used by the kernel.
-         The shared memory column should be ignored; it is obsolete.
+       free displays the total amount of free and used physical and swap
+       memory in the system, as well as the buffers used by the kernel.
+       The shared memory column should be ignored; it is obsolete.
 config BUSYBOX_CONFIG_FUSER
-       bool "fuser"
+       bool "fuser (7 kb)"
        default BUSYBOX_DEFAULT_FUSER
        help
-         fuser lists all PIDs (Process IDs) that currently have a given
-         file open. fuser can also list all PIDs that have a given network
-         (TCP or UDP) port open.
+       fuser lists all PIDs (Process IDs) that currently have a given
+       file open. fuser can also list all PIDs that have a given network
+       (TCP or UDP) port open.
 config BUSYBOX_CONFIG_IOSTAT
-       bool "iostat"
+       bool "iostat (7.6 kb)"
        default BUSYBOX_DEFAULT_IOSTAT
        help
-         Report CPU and I/O statistics
+       Report CPU and I/O statistics
 config BUSYBOX_CONFIG_KILL
-       bool "kill"
+       bool "kill (3.1 kb)"
        default BUSYBOX_DEFAULT_KILL
        help
-         The command kill sends the specified signal to the specified
-         process or process group. If no signal is specified, the TERM
-         signal is sent.
+       The command kill sends the specified signal to the specified
+       process or process group. If no signal is specified, the TERM
+       signal is sent.
 
 config BUSYBOX_CONFIG_KILLALL
-       bool "killall"
+       bool "killall (5.6 kb)"
        default BUSYBOX_DEFAULT_KILLALL
        help
-         killall sends a signal to all processes running any of the
-         specified commands. If no signal name is specified, SIGTERM is
-         sent.
+       killall sends a signal to all processes running any of the
+       specified commands. If no signal name is specified, SIGTERM is
+       sent.
 
 config BUSYBOX_CONFIG_KILLALL5
-       bool "killall5"
+       bool "killall5 (5.3 kb)"
        default BUSYBOX_DEFAULT_KILLALL5
        help
-         The SystemV killall command. killall5 sends a signal
-         to all processes except kernel threads and the processes
-         in its own session, so it won't kill the shell that is running
-         the script it was called from.
+       The SystemV killall command. killall5 sends a signal
+       to all processes except kernel threads and the processes
+       in its own session, so it won't kill the shell that is running
+       the script it was called from.
 config BUSYBOX_CONFIG_LSOF
-       bool "lsof"
+       bool "lsof (3.4 kb)"
        default BUSYBOX_DEFAULT_LSOF
        help
-         Show open files in the format of:
-         PID <TAB> /path/to/executable <TAB> /path/to/opened/file
+       Show open files in the format of:
+       PID <TAB> /path/to/executable <TAB> /path/to/opened/file
 config BUSYBOX_CONFIG_MPSTAT
-       bool "mpstat"
+       bool "mpstat (9.8 kb)"
        default BUSYBOX_DEFAULT_MPSTAT
        help
-         Per-processor statistics
+       Per-processor statistics
 config BUSYBOX_CONFIG_NMETER
-       bool "nmeter"
+       bool "nmeter (11 kb)"
        default BUSYBOX_DEFAULT_NMETER
        help
-         Prints selected system stats continuously, one line per update.
+       Prints selected system stats continuously, one line per update.
 config BUSYBOX_CONFIG_PGREP
-       bool "pgrep"
+       bool "pgrep (6.5 kb)"
        default BUSYBOX_DEFAULT_PGREP
        help
-         Look for processes by name.
+       Look for processes by name.
 
 config BUSYBOX_CONFIG_PKILL
-       bool "pkill"
+       bool "pkill (7.5 kb)"
        default BUSYBOX_DEFAULT_PKILL
        help
-         Send signals to processes by name.
+       Send signals to processes by name.
 config BUSYBOX_CONFIG_PIDOF
-       bool "pidof"
+       bool "pidof (6.3 kb)"
        default BUSYBOX_DEFAULT_PIDOF
        help
-         Pidof finds the process id's (pids) of the named programs. It prints
-         those id's on the standard output.
+       Pidof finds the process id's (pids) of the named programs. It prints
+       those id's on the standard output.
 
 config BUSYBOX_CONFIG_FEATURE_PIDOF_SINGLE
        bool "Enable single shot (-s)"
        default BUSYBOX_DEFAULT_FEATURE_PIDOF_SINGLE
        depends on BUSYBOX_CONFIG_PIDOF
        help
-         Support '-s' for returning only the first pid found.
+       Support '-s' for returning only the first pid found.
 
 config BUSYBOX_CONFIG_FEATURE_PIDOF_OMIT
        bool "Enable omitting pids (-o PID)"
        default BUSYBOX_DEFAULT_FEATURE_PIDOF_OMIT
        depends on BUSYBOX_CONFIG_PIDOF
        help
-         Support '-o PID' for omitting the given pid(s) in output.
-         The special pid %PPID can be used to name the parent process
-         of the pidof, in other words the calling shell or shell script.
+       Support '-o PID' for omitting the given pid(s) in output.
+       The special pid %PPID can be used to name the parent process
+       of the pidof, in other words the calling shell or shell script.
 config BUSYBOX_CONFIG_PMAP
-       bool "pmap"
-       default BUSYBOX_DEFAULT_PMAP
-       help
-         Display processes' memory mappings.
+       bool "pmap (6 kb)"
+       default BUSYBOX_DEFAULT_PMAP
+       help
+       Display processes' memory mappings.
 config BUSYBOX_CONFIG_POWERTOP
-       bool "powertop"
+       bool "powertop (9.6 kb)"
        default BUSYBOX_DEFAULT_POWERTOP
        help
-         Analyze power consumption on Intel-based laptops
+       Analyze power consumption on Intel-based laptops
 
 config BUSYBOX_CONFIG_FEATURE_POWERTOP_INTERACTIVE
        bool "Accept keyboard commands"
        default BUSYBOX_DEFAULT_FEATURE_POWERTOP_INTERACTIVE
        depends on BUSYBOX_CONFIG_POWERTOP
        help
-         Without this, powertop will only refresh display every 10 seconds.
-         No keyboard commands will work, only ^C to terminate.
+       Without this, powertop will only refresh display every 10 seconds.
+       No keyboard commands will work, only ^C to terminate.
 config BUSYBOX_CONFIG_PS
-       bool "ps"
+       bool "ps (11 kb)"
        default BUSYBOX_DEFAULT_PS
        help
-         ps gives a snapshot of the current processes.
+       ps gives a snapshot of the current processes.
 
 config BUSYBOX_CONFIG_FEATURE_PS_WIDE
-       bool "Enable wide output option (-w)"
+       bool "Enable wide output (-w)"
        default BUSYBOX_DEFAULT_FEATURE_PS_WIDE
-       depends on BUSYBOX_CONFIG_PS && !BUSYBOX_CONFIG_DESKTOP
+       depends on (BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_MINIPS) && !BUSYBOX_CONFIG_DESKTOP
        help
-         Support argument 'w' for wide output.
-         If given once, 132 chars are printed, and if given more
-         than once, the length is unlimited.
+       Support argument 'w' for wide output.
+       If given once, 132 chars are printed, and if given more
+       than once, the length is unlimited.
 
 config BUSYBOX_CONFIG_FEATURE_PS_LONG
-       bool "Enable long output option (-l)"
+       bool "Enable long output (-l)"
        default BUSYBOX_DEFAULT_FEATURE_PS_LONG
-       depends on BUSYBOX_CONFIG_PS && !BUSYBOX_CONFIG_DESKTOP
+       depends on (BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_MINIPS) && !BUSYBOX_CONFIG_DESKTOP
        help
-         Support argument 'l' for long output.
-         Adds fields PPID, RSS, START, TIME & TTY
+       Support argument 'l' for long output.
+       Adds fields PPID, RSS, START, TIME & TTY
 
 config BUSYBOX_CONFIG_FEATURE_PS_TIME
-       bool "Support -o time and -o etime output specifiers"
+       bool "Enable -o time and -o etime specifiers"
        default BUSYBOX_DEFAULT_FEATURE_PS_TIME
-       depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP
+       depends on (BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_MINIPS) && BUSYBOX_CONFIG_DESKTOP
        select BUSYBOX_CONFIG_PLATFORM_LINUX
 
 config BUSYBOX_CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS
@@ -151,123 +151,123 @@ config BUSYBOX_CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS
        default BUSYBOX_DEFAULT_FEATURE_PS_UNUSUAL_SYSTEMS
        depends on BUSYBOX_CONFIG_FEATURE_PS_TIME
        help
-         Include support for measuring HZ on old kernels and non-ELF systems
-         (if you are on Linux 2.4.0+ and use ELF, you don't need this)
+       Include support for measuring HZ on old kernels and non-ELF systems
+       (if you are on Linux 2.4.0+ and use ELF, you don't need this)
 
 config BUSYBOX_CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS
-       bool "Support -o rgroup, -o ruser, -o nice specifiers"
+       bool "Enable -o rgroup, -o ruser, -o nice specifiers"
        default BUSYBOX_DEFAULT_FEATURE_PS_ADDITIONAL_COLUMNS
-       depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP
+       depends on (BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_MINIPS) && BUSYBOX_CONFIG_DESKTOP
 config BUSYBOX_CONFIG_PSTREE
-       bool "pstree"
+       bool "pstree (9.3 kb)"
        default BUSYBOX_DEFAULT_PSTREE
        help
-         Display a tree of processes.
+       Display a tree of processes.
 config BUSYBOX_CONFIG_PWDX
-       bool "pwdx"
+       bool "pwdx (3.7 kb)"
        default BUSYBOX_DEFAULT_PWDX
        help
-         Report current working directory of a process
+       Report current working directory of a process
 config BUSYBOX_CONFIG_SMEMCAP
-       bool "smemcap"
+       bool "smemcap (2.5 kb)"
        default BUSYBOX_DEFAULT_SMEMCAP
        help
-         smemcap is a tool for capturing process data for smem,
-         a memory usage statistic tool.
+       smemcap is a tool for capturing process data for smem,
+       a memory usage statistic tool.
 config BUSYBOX_CONFIG_BB_SYSCTL
-       bool "sysctl"
+       bool "sysctl (7.4 kb)"
        default BUSYBOX_DEFAULT_BB_SYSCTL
        help
-         Configure kernel parameters at runtime.
+       Configure kernel parameters at runtime.
 config BUSYBOX_CONFIG_TOP
-       bool "top"
+       bool "top (18 kb)"
        default BUSYBOX_DEFAULT_TOP
        help
-         The top program provides a dynamic real-time view of a running
-         system.
+       The top program provides a dynamic real-time view of a running
+       system.
 
 config BUSYBOX_CONFIG_FEATURE_TOP_INTERACTIVE
        bool "Accept keyboard commands"
        default BUSYBOX_DEFAULT_FEATURE_TOP_INTERACTIVE
        depends on BUSYBOX_CONFIG_TOP
        help
-         Without this, top will only refresh display every 5 seconds.
-         No keyboard commands will work, only ^C to terminate.
+       Without this, top will only refresh display every 5 seconds.
+       No keyboard commands will work, only ^C to terminate.
 
 config BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
        bool "Show CPU per-process usage percentage"
        default BUSYBOX_DEFAULT_FEATURE_TOP_CPU_USAGE_PERCENTAGE
        depends on BUSYBOX_CONFIG_TOP
        help
-         Make top display CPU usage for each process.
-         This adds about 2k.
+       Make top display CPU usage for each process.
+       This adds about 2k.
 
 config BUSYBOX_CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS
        bool "Show CPU global usage percentage"
        default BUSYBOX_DEFAULT_FEATURE_TOP_CPU_GLOBAL_PERCENTS
        depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
        help
-         Makes top display "CPU: NN% usr NN% sys..." line.
-         This adds about 0.5k.
+       Makes top display "CPU: NN% usr NN% sys..." line.
+       This adds about 0.5k.
 
 config BUSYBOX_CONFIG_FEATURE_TOP_SMP_CPU
        bool "SMP CPU usage display ('c' key)"
        default BUSYBOX_DEFAULT_FEATURE_TOP_SMP_CPU
        depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS
        help
-         Allow 'c' key to switch between individual/cumulative CPU stats
-         This adds about 0.5k.
+       Allow 'c' key to switch between individual/cumulative CPU stats
+       This adds about 0.5k.
 
 config BUSYBOX_CONFIG_FEATURE_TOP_DECIMALS
        bool "Show 1/10th of a percent in CPU/mem statistics"
        default BUSYBOX_DEFAULT_FEATURE_TOP_DECIMALS
        depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
        help
-         Show 1/10th of a percent in CPU/mem statistics.
-         This adds about 0.3k.
+       Show 1/10th of a percent in CPU/mem statistics.
+       This adds about 0.3k.
 
 config BUSYBOX_CONFIG_FEATURE_TOP_SMP_PROCESS
        bool "Show CPU process runs on ('j' field)"
        default BUSYBOX_DEFAULT_FEATURE_TOP_SMP_PROCESS
        depends on BUSYBOX_CONFIG_TOP
        help
-         Show CPU where process was last found running on.
-         This is the 'j' field.
+       Show CPU where process was last found running on.
+       This is the 'j' field.
 
 config BUSYBOX_CONFIG_FEATURE_TOPMEM
        bool "Topmem command ('s' key)"
        default BUSYBOX_DEFAULT_FEATURE_TOPMEM
        depends on BUSYBOX_CONFIG_TOP
        help
-         Enable 's' in top (gives lots of memory info).
+       Enable 's' in top (gives lots of memory info).
 config BUSYBOX_CONFIG_UPTIME
-       bool "uptime"
+       bool "uptime (3.7 kb)"
        default BUSYBOX_DEFAULT_UPTIME
        select BUSYBOX_CONFIG_PLATFORM_LINUX #sysinfo()
        help
-         uptime gives a one line display of the current time, how long
-         the system has been running, how many users are currently logged
-         on, and the system load averages for the past 1, 5, and 15 minutes.
+       uptime gives a one line display of the current time, how long
+       the system has been running, how many users are currently logged
+       on, and the system load averages for the past 1, 5, and 15 minutes.
 
 config BUSYBOX_CONFIG_FEATURE_UPTIME_UTMP_SUPPORT
        bool "Show the number of users"
        default BUSYBOX_DEFAULT_FEATURE_UPTIME_UTMP_SUPPORT
        depends on BUSYBOX_CONFIG_UPTIME && BUSYBOX_CONFIG_FEATURE_UTMP
        help
-         Display the number of users currently logged on.
+       Display the number of users currently logged on.
 config BUSYBOX_CONFIG_WATCH
-       bool "watch"
+       bool "watch (4.4 kb)"
        default BUSYBOX_DEFAULT_WATCH
        help
-         watch is used to execute a program periodically, showing
-         output to the screen.
+       watch is used to execute a program periodically, showing
+       output to the screen.
 
 config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS
        bool "Support thread display in ps/pstree/top"
        default BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS
        depends on BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_TOP || BUSYBOX_CONFIG_PSTREE
        help
-         Enables the ps -T option, showing of threads in pstree,
-         and 'h' command in top.
+       Enables the ps -T option, showing of threads in pstree,
+       and 'h' command in top.
 
 endmenu
index 8750b597e558ff38808eb8a4ba43658ed333da2e..2c701f2136e85deb950ba89f28da327f67e34192 100644 (file)
@@ -1,91 +1,98 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Runit Utilities"
 
 config BUSYBOX_CONFIG_CHPST
-       bool "chpst"
+       bool "chpst (9 kb)"
        default BUSYBOX_DEFAULT_CHPST
        help
-         chpst changes the process state according to the given options, and
-         execs specified program.
+       chpst changes the process state according to the given options, and
+       execs specified program.
 
 config BUSYBOX_CONFIG_SETUIDGID
-       bool "setuidgid"
+       bool "setuidgid (4 kb)"
        default BUSYBOX_DEFAULT_SETUIDGID
        help
-         Sets soft resource limits as specified by options
+       Sets soft resource limits as specified by options
 
 config BUSYBOX_CONFIG_ENVUIDGID
-       bool "envuidgid"
+       bool "envuidgid (3.9 kb)"
        default BUSYBOX_DEFAULT_ENVUIDGID
        help
-         Sets $UID to account's uid and $GID to account's gid
+       Sets $UID to account's uid and $GID to account's gid
 
 config BUSYBOX_CONFIG_ENVDIR
-       bool "envdir"
+       bool "envdir (2.5 kb)"
        default BUSYBOX_DEFAULT_ENVDIR
        help
-         Sets various environment variables as specified by files
-         in the given directory
+       Sets various environment variables as specified by files
+       in the given directory
 
 config BUSYBOX_CONFIG_SOFTLIMIT
-       bool "softlimit"
+       bool "softlimit (4.5 kb)"
        default BUSYBOX_DEFAULT_SOFTLIMIT
        help
-         Sets soft resource limits as specified by options
+       Sets soft resource limits as specified by options
 config BUSYBOX_CONFIG_RUNSV
-       bool "runsv"
+       bool "runsv (7.8 kb)"
        default BUSYBOX_DEFAULT_RUNSV
        help
-         runsv starts and monitors a service and optionally an appendant log
-         service.
+       runsv starts and monitors a service and optionally an appendant log
+       service.
 config BUSYBOX_CONFIG_RUNSVDIR
-       bool "runsvdir"
+       bool "runsvdir (6.3 kb)"
        default BUSYBOX_DEFAULT_RUNSVDIR
        help
-         runsvdir starts a runsv process for each subdirectory, or symlink to
-         a directory, in the services directory dir, up to a limit of 1000
-         subdirectories, and restarts a runsv process if it terminates.
+       runsvdir starts a runsv process for each subdirectory, or symlink to
+       a directory, in the services directory dir, up to a limit of 1000
+       subdirectories, and restarts a runsv process if it terminates.
 
 config BUSYBOX_CONFIG_FEATURE_RUNSVDIR_LOG
        bool "Enable scrolling argument log"
        depends on BUSYBOX_CONFIG_RUNSVDIR
        default BUSYBOX_DEFAULT_FEATURE_RUNSVDIR_LOG
        help
-         Enable feature where second parameter of runsvdir holds last error
-         message (viewable via top/ps). Otherwise (feature is off
-         or no parameter), error messages go to stderr only.
+       Enable feature where second parameter of runsvdir holds last error
+       message (viewable via top/ps). Otherwise (feature is off
+       or no parameter), error messages go to stderr only.
 config BUSYBOX_CONFIG_SV
-       bool "sv"
+       bool "sv (8.5 kb)"
        default BUSYBOX_DEFAULT_SV
        help
-         sv reports the current status and controls the state of services
-         monitored by the runsv supervisor.
+       sv reports the current status and controls the state of services
+       monitored by the runsv supervisor.
 
 config BUSYBOX_CONFIG_SV_DEFAULT_SERVICE_DIR
        string "Default directory for services"
        default BUSYBOX_DEFAULT_SV_DEFAULT_SERVICE_DIR
-       depends on BUSYBOX_CONFIG_SV
+       depends on BUSYBOX_CONFIG_SV || BUSYBOX_CONFIG_SVC || BUSYBOX_CONFIG_SVOK
        help
-         Default directory for services.
-         Defaults to "/var/service"
+       Default directory for services.
+       Defaults to "/var/service"
 
 config BUSYBOX_CONFIG_SVC
-       bool "svc"
+       bool "svc (8.4 kb)"
        default BUSYBOX_DEFAULT_SVC
        help
-         svc controls the state of services monitored by the runsv supervisor.
-         It is comaptible with daemontools command with the same name.
+       svc controls the state of services monitored by the runsv supervisor.
+       It is compatible with daemontools command with the same name.
+
+config BUSYBOX_CONFIG_SVOK
+       bool "svok (1.5 kb)"
+       default BUSYBOX_DEFAULT_SVOK
+       help
+       svok checks whether runsv supervisor is running.
+       It is compatible with daemontools command with the same name.
 config BUSYBOX_CONFIG_SVLOGD
-       bool "svlogd"
+       bool "svlogd (16 kb)"
        default BUSYBOX_DEFAULT_SVLOGD
        help
-         svlogd continuously reads log data from its standard input, optionally
-         filters log messages, and writes the data to one or more automatically
-         rotated logs.
+       svlogd continuously reads log data from its standard input, optionally
+       filters log messages, and writes the data to one or more automatically
+       rotated logs.
 
 endmenu
index 71eb0dcd776ae5e1b9af4d8ff0ef47dbe8b43453..de67a7281bcc85812c058c90a4a3cf22b7ddf259 100644 (file)
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "SELinux Utilities"
        depends on BUSYBOX_CONFIG_SELINUX
 
 config BUSYBOX_CONFIG_CHCON
-       bool "chcon"
+       bool "chcon (8.9 kb)"
        default BUSYBOX_DEFAULT_CHCON
        depends on BUSYBOX_CONFIG_SELINUX
        help
-         Enable support to change the security context of file.
-
-config BUSYBOX_CONFIG_FEATURE_CHCON_LONG_OPTIONS
-       bool "Enable long options"
-       default BUSYBOX_DEFAULT_FEATURE_CHCON_LONG_OPTIONS
-       depends on BUSYBOX_CONFIG_CHCON && BUSYBOX_CONFIG_LONG_OPTS
+       Enable support to change the security context of file.
 config BUSYBOX_CONFIG_GETENFORCE
-       bool "getenforce"
+       bool "getenforce (1.7 kb)"
        default BUSYBOX_DEFAULT_GETENFORCE
        depends on BUSYBOX_CONFIG_SELINUX
        help
-         Enable support to get the current mode of SELinux.
+       Enable support to get the current mode of SELinux.
 config BUSYBOX_CONFIG_GETSEBOOL
-       bool "getsebool"
+       bool "getsebool (5.5 kb)"
        default BUSYBOX_DEFAULT_GETSEBOOL
        depends on BUSYBOX_CONFIG_SELINUX
        help
-         Enable support to get SELinux boolean values.
+       Enable support to get SELinux boolean values.
 config BUSYBOX_CONFIG_LOAD_POLICY
-       bool "load_policy"
+       bool "load_policy (1.6 kb)"
        default BUSYBOX_DEFAULT_LOAD_POLICY
        depends on BUSYBOX_CONFIG_SELINUX
        help
-         Enable support to load SELinux policy.
+       Enable support to load SELinux policy.
 config BUSYBOX_CONFIG_MATCHPATHCON
-       bool "matchpathcon"
+       bool "matchpathcon (6.1 kb)"
        default BUSYBOX_DEFAULT_MATCHPATHCON
        depends on BUSYBOX_CONFIG_SELINUX
        help
-         Enable support to get default security context of the
-         specified path from the file contexts configuration.
+       Enable support to get default security context of the
+       specified path from the file contexts configuration.
 config BUSYBOX_CONFIG_RUNCON
-       bool "runcon"
+       bool "runcon (6.6 kb)"
        default BUSYBOX_DEFAULT_RUNCON
        depends on BUSYBOX_CONFIG_SELINUX
        help
-         Enable support to run command in specified security context.
-
-config BUSYBOX_CONFIG_FEATURE_RUNCON_LONG_OPTIONS
-       bool "Enable long options"
-       default BUSYBOX_DEFAULT_FEATURE_RUNCON_LONG_OPTIONS
-       depends on BUSYBOX_CONFIG_RUNCON && BUSYBOX_CONFIG_LONG_OPTS
+       Enable support to run command in specified security context.
 config BUSYBOX_CONFIG_SELINUXENABLED
-       bool "selinuxenabled"
+       bool "selinuxenabled (321 bytes)"
        default BUSYBOX_DEFAULT_SELINUXENABLED
        depends on BUSYBOX_CONFIG_SELINUX
        help
-         Enable support for this command to be used within shell scripts
-         to determine if selinux is enabled.
+       Enable support for this command to be used within shell scripts
+       to determine if selinux is enabled.
 config BUSYBOX_CONFIG_SESTATUS
-       bool "sestatus"
+       bool "sestatus (12 kb)"
        default BUSYBOX_DEFAULT_SESTATUS
        depends on BUSYBOX_CONFIG_SELINUX
        help
-         Displays the status of SELinux.
+       Displays the status of SELinux.
 config BUSYBOX_CONFIG_SETENFORCE
-       bool "setenforce"
+       bool "setenforce (2.1 kb)"
        default BUSYBOX_DEFAULT_SETENFORCE
        depends on BUSYBOX_CONFIG_SELINUX
        help
-         Enable support to modify the mode SELinux is running in.
+       Enable support to modify the mode SELinux is running in.
 config BUSYBOX_CONFIG_SETFILES
-       bool "setfiles"
+       bool "setfiles (13 kb)"
        default BUSYBOX_DEFAULT_SETFILES
        depends on BUSYBOX_CONFIG_SELINUX
        help
-         Enable support to modify to relabel files.
-         Notice: If you built libselinux with -D_FILE_OFFSET_BITS=64,
-         (It is default in libselinux's Makefile), you _must_ enable
-         CONFIG_LFS.
+       Enable support to modify to relabel files.
+       Notice: If you built libselinux with -D_FILE_OFFSET_BITS=64,
+       (It is default in libselinux's Makefile), you _must_ enable
+       CONFIG_LFS.
 
 config BUSYBOX_CONFIG_FEATURE_SETFILES_CHECK_OPTION
        bool "Enable check option"
        default BUSYBOX_DEFAULT_FEATURE_SETFILES_CHECK_OPTION
        depends on BUSYBOX_CONFIG_SETFILES
        help
-         Support "-c" option (check the validity of the contexts against
-         the specified binary policy) for setfiles. Requires libsepol.
+       Support "-c" option (check the validity of the contexts against
+       the specified binary policy) for setfiles. Requires libsepol.
 
 config BUSYBOX_CONFIG_RESTORECON
-       bool "restorecon"
+       bool "restorecon (12 kb)"
        default BUSYBOX_DEFAULT_RESTORECON
        depends on BUSYBOX_CONFIG_SELINUX
        help
-         Enable support to relabel files. The feature is almost
-         the same as setfiles, but usage is a little different.
+       Enable support to relabel files. The feature is almost
+       the same as setfiles, but usage is a little different.
 config BUSYBOX_CONFIG_SETSEBOOL
-       bool "setsebool"
+       bool "setsebool (1.7 kb)"
        default BUSYBOX_DEFAULT_SETSEBOOL
        depends on BUSYBOX_CONFIG_SELINUX
        help
-         Enable support for change boolean.
-         semanage and -P option is not supported yet.
+       Enable support for change boolean.
+       semanage and -P option is not supported yet.
 
 endmenu
index e455d3832dc5116c80de69845aead838d4544c67..ddaa333e0487b9bfd79b32c1c0b2e11f57a14732 100644 (file)
@@ -1,7 +1,7 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Shells"
@@ -11,26 +11,26 @@ choice
        prompt "Choose which shell is aliased to 'sh' name"
        default BUSYBOX_CONFIG_SH_IS_ASH
        help
-         Choose which shell you want to be executed by 'sh' alias.
-         The ash shell is the most bash compatible and full featured one.
+       Choose which shell you want to be executed by 'sh' alias.
+       The ash shell is the most bash compatible and full featured one.
 
 # note: cannot use "select ASH" here, it breaks "make allnoconfig"
 config BUSYBOX_CONFIG_SH_IS_ASH
        depends on !BUSYBOX_CONFIG_NOMMU
        bool "ash"
        help
-         Choose ash to be the shell executed by 'sh' name.
-         The ash code will be built into busybox. If you don't select
-         "ash" choice (CONFIG_ASH), this shell may only be invoked by
-         the name 'sh' (and not 'ash').
+       Choose ash to be the shell executed by 'sh' name.
+       The ash code will be built into busybox. If you don't select
+       "ash" choice (CONFIG_ASH), this shell may only be invoked by
+       the name 'sh' (and not 'ash').
 
 config BUSYBOX_CONFIG_SH_IS_HUSH
        bool "hush"
        help
-         Choose hush to be the shell executed by 'sh' name.
-         The hush code will be built into busybox. If you don't select
-         "hush" choice (CONFIG_HUSH), this shell may only be invoked by
-         the name 'sh' (and not 'hush').
+       Choose hush to be the shell executed by 'sh' name.
+       The hush code will be built into busybox. If you don't select
+       "hush" choice (CONFIG_HUSH), this shell may only be invoked by
+       the name 'sh' (and not 'hush').
 
 config BUSYBOX_CONFIG_SH_IS_NONE
        bool "none"
@@ -41,36 +41,36 @@ choice
        prompt "Choose which shell is aliased to 'bash' name"
        default BUSYBOX_CONFIG_BASH_IS_NONE
        help
-         Choose which shell you want to be executed by 'bash' alias.
-         The ash shell is the most bash compatible and full featured one,
-         although compatibility is far from being complete.
+       Choose which shell you want to be executed by 'bash' alias.
+       The ash shell is the most bash compatible and full featured one,
+       although compatibility is far from being complete.
 
-         Note that selecting this option does not switch on any bash
-         compatibility code. It merely makes it possible to install
-         /bin/bash (sym)link and run scripts which start with
-         #!/bin/bash line.
+       Note that selecting this option does not switch on any bash
+       compatibility code. It merely makes it possible to install
+       /bin/bash (sym)link and run scripts which start with
+       #!/bin/bash line.
 
-         Many systems use it in scripts which use bash-specific features,
-         even simple ones like $RANDOM. Without this option, busybox
-         can't be used for running them because it won't recongnize
-         "bash" as a supported applet name.
+       Many systems use it in scripts which use bash-specific features,
+       even simple ones like $RANDOM. Without this option, busybox
+       can't be used for running them because it won't recongnize
+       "bash" as a supported applet name.
 
 config BUSYBOX_CONFIG_BASH_IS_ASH
        depends on !BUSYBOX_CONFIG_NOMMU
        bool "ash"
        help
-         Choose ash to be the shell executed by 'bash' name.
-         The ash code will be built into busybox. If you don't select
-         "ash" choice (CONFIG_ASH), this shell may only be invoked by
-         the name 'bash' (and not 'ash').
+       Choose ash to be the shell executed by 'bash' name.
+       The ash code will be built into busybox. If you don't select
+       "ash" choice (CONFIG_ASH), this shell may only be invoked by
+       the name 'bash' (and not 'ash').
 
 config BUSYBOX_CONFIG_BASH_IS_HUSH
        bool "hush"
        help
-         Choose hush to be the shell executed by 'bash' name.
-         The hush code will be built into busybox. If you don't select
-         "hush" choice (CONFIG_HUSH), this shell may only be invoked by
-         the name 'bash' (and not 'hush').
+       Choose hush to be the shell executed by 'bash' name.
+       The hush code will be built into busybox. If you don't select
+       "hush" choice (CONFIG_HUSH), this shell may only be invoked by
+       the name 'bash' (and not 'hush').
 
 config BUSYBOX_CONFIG_BASH_IS_NONE
        bool "none"
@@ -79,15 +79,14 @@ endchoice
 
 
 config BUSYBOX_CONFIG_ASH
-       bool "ash"
+       bool "ash (78 kb)"
        default BUSYBOX_DEFAULT_ASH
        depends on !BUSYBOX_CONFIG_NOMMU
        help
-         Tha 'ash' shell adds about 60k in the default configuration and is
-         the most complete and most pedantically correct shell included with
-         busybox. This shell is actually a derivative of the Debian 'dash'
-         shell (by Herbert Xu), which was created by porting the 'ash' shell
-         (written by Kenneth Almquist) from NetBSD.
+       The most complete and most pedantically correct shell included with
+       busybox. This shell is actually a derivative of the Debian 'dash'
+       shell (by Herbert Xu), which was created by porting the 'ash' shell
+       (written by Kenneth Almquist) from NetBSD.
 
 # ash options
 # note: Don't remove !NOMMU part in the next line; it would break
@@ -104,17 +103,33 @@ config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB
        default BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB       # Y is bigger, but because of uclibc glob() bug, let Y be default for now
        depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
        help
-         Do not use glob() function from libc, use internal implementation.
-         Use this if you are getting "glob.h: No such file or directory"
-         or similar build errors.
-         Note that as of now (2017-01), uclibc and musl glob() both have bugs
-         which would break ash if you select N here.
+       Do not use glob() function from libc, use internal implementation.
+       Use this if you are getting "glob.h: No such file or directory"
+       or similar build errors.
+       Note that as of now (2017-01), uclibc and musl glob() both have bugs
+       which would break ash if you select N here.
 
 config BUSYBOX_CONFIG_ASH_BASH_COMPAT
        bool "bash-compatible extensions"
        default BUSYBOX_DEFAULT_ASH_BASH_COMPAT
        depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
 
+config BUSYBOX_CONFIG_ASH_BASH_SOURCE_CURDIR
+       bool "'source' and '.' builtins search current directory after $PATH"
+       default BUSYBOX_DEFAULT_ASH_BASH_SOURCE_CURDIR   # do not encourage non-standard behavior
+       depends on BUSYBOX_CONFIG_ASH_BASH_COMPAT
+       help
+       This is not compliant with standards. Avoid if possible.
+
+config BUSYBOX_CONFIG_ASH_BASH_NOT_FOUND_HOOK
+       bool "command_not_found_handle hook support"
+       default BUSYBOX_DEFAULT_ASH_BASH_NOT_FOUND_HOOK
+       depends on BUSYBOX_CONFIG_ASH_BASH_COMPAT
+       help
+       Enable support for the 'command_not_found_handle' hook function,
+       from GNU bash, which allows for alternative command not found
+       handling.
+
 config BUSYBOX_CONFIG_ASH_JOB_CONTROL
        bool "Job control"
        default BUSYBOX_DEFAULT_ASH_JOB_CONTROL
@@ -130,37 +145,37 @@ config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
        default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
        depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
        help
-         Enable pseudorandom generator and dynamic variable "$RANDOM".
-         Each read of "$RANDOM" will generate a new pseudorandom value.
-         You can reset the generator by using a specified start value.
-         After "unset RANDOM" the generator will switch off and this
-         variable will no longer have special treatment.
+       Enable pseudorandom generator and dynamic variable "$RANDOM".
+       Each read of "$RANDOM" will generate a new pseudorandom value.
+       You can reset the generator by using a specified start value.
+       After "unset RANDOM" the generator will switch off and this
+       variable will no longer have special treatment.
 
 config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
        bool "Expand prompt string"
        default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
        depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
        help
-         $PS# may contain volatile content, such as backquote commands.
-         This option recreates the prompt string from the environment
-         variable each time it is displayed.
+       $PS# may contain volatile content, such as backquote commands.
+       This option recreates the prompt string from the environment
+       variable each time it is displayed.
 
 config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT
        bool "Idle timeout variable $TMOUT"
        default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
        depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
        help
-         Enable bash-like auto-logout after $TMOUT seconds of idle time.
+       Enable bash-like auto-logout after $TMOUT seconds of idle time.
 
 config BUSYBOX_CONFIG_ASH_MAIL
        bool "Check for new mail in interactive shell"
        default BUSYBOX_DEFAULT_ASH_MAIL
        depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
        help
-         Enable "check for new mail" function:
-         if set, $MAIL file and $MAILPATH list of files
-         are checked for mtime changes, and "you have mail"
-         message is printed if change is detected.
+       Enable "check for new mail" function:
+       if set, $MAIL file and $MAILPATH list of files
+       are checked for mtime changes, and "you have mail"
+       message is printed if change is detected.
 
 config BUSYBOX_CONFIG_ASH_ECHO
        bool "echo builtin"
@@ -192,67 +207,67 @@ config BUSYBOX_CONFIG_ASH_CMDCMD
        default BUSYBOX_DEFAULT_ASH_CMDCMD
        depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
        help
-         Enable support for the 'command' builtin, which allows
-         you to run the specified command or builtin,
-         even when there is a function with the same name.
+       Enable support for the 'command' builtin, which allows
+       you to run the specified command or builtin,
+       even when there is a function with the same name.
 
 endif # ash options
 config BUSYBOX_CONFIG_CTTYHACK
-       bool "cttyhack"
+       bool "cttyhack (2.4 kb)"
        default BUSYBOX_DEFAULT_CTTYHACK
        help
-         One common problem reported on the mailing list is the "can't
-         access tty; job control turned off" error message, which typically
-         appears when one tries to use a shell with stdin/stdout on
-         /dev/console.
-         This device is special - it cannot be a controlling tty.
+       One common problem reported on the mailing list is the "can't
+       access tty; job control turned off" error message, which typically
+       appears when one tries to use a shell with stdin/stdout on
+       /dev/console.
+       This device is special - it cannot be a controlling tty.
 
-         The proper solution is to use the correct device instead of
-         /dev/console.
+       The proper solution is to use the correct device instead of
+       /dev/console.
 
-         cttyhack provides a "quick and dirty" solution to this problem.
-         It analyzes stdin with various ioctls, trying to determine whether
-         it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
-         On Linux it also checks sysfs for a pointer to the active console.
-         If cttyhack is able to find the real console device, it closes
-         stdin/out/err and reopens that device.
-         Then it executes the given program. Opening the device will make
-         that device a controlling tty. This may require cttyhack
-         to be a session leader.
+       cttyhack provides a "quick and dirty" solution to this problem.
+       It analyzes stdin with various ioctls, trying to determine whether
+       it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
+       On Linux it also checks sysfs for a pointer to the active console.
+       If cttyhack is able to find the real console device, it closes
+       stdin/out/err and reopens that device.
+       Then it executes the given program. Opening the device will make
+       that device a controlling tty. This may require cttyhack
+       to be a session leader.
 
-         Example for /etc/inittab (for busybox init):
+       Example for /etc/inittab (for busybox init):
 
-         ::respawn:/bin/cttyhack /bin/sh
+       ::respawn:/bin/cttyhack /bin/sh
 
-         Starting an interactive shell from boot shell script:
+       Starting an interactive shell from boot shell script:
 
-         setsid cttyhack sh
+       setsid cttyhack sh
 
-         Giving controlling tty to shell running with PID 1:
+       Giving controlling tty to shell running with PID 1:
 
-         # exec cttyhack sh
+       # exec cttyhack sh
 
-         Without cttyhack, you need to know exact tty name,
-         and do something like this:
+       Without cttyhack, you need to know exact tty name,
+       and do something like this:
 
-         # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
+       # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
 
-         Starting getty on a controlling tty from a shell script:
+       Starting getty on a controlling tty from a shell script:
 
-         # getty 115200 $(cttyhack)
+       # getty 115200 $(cttyhack)
 config BUSYBOX_CONFIG_HUSH
-       bool "hush"
+       bool "hush (68 kb)"
        default BUSYBOX_DEFAULT_HUSH
        help
-         hush is a small shell (25k). It handles the normal flow control
-         constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
-         case/esac. Redirections, here documents, $((arithmetic))
-         and functions are supported.
+       hush is a small shell. It handles the normal flow control
+       constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
+       case/esac. Redirections, here documents, $((arithmetic))
+       and functions are supported.
 
-         It will compile and work on no-mmu systems.
+       It will compile and work on no-mmu systems.
 
-         It does not handle select, aliases, tilde expansion,
-         &>file and >&file redirection of stdout+stderr.
+       It does not handle select, aliases, tilde expansion,
+       &>file and >&file redirection of stdout+stderr.
 
 config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
        bool "bash-compatible extensions"
@@ -264,17 +279,29 @@ config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
        default BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION
        depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
        help
-         Enable {abc,def} extension.
+       Enable {abc,def} extension.
+
+config BUSYBOX_CONFIG_HUSH_LINENO_VAR
+       bool "$LINENO variable"
+       default BUSYBOX_DEFAULT_HUSH_LINENO_VAR
+       depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
+
+config BUSYBOX_CONFIG_HUSH_BASH_SOURCE_CURDIR
+       bool "'source' and '.' builtins search current directory after $PATH"
+       default BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR   # do not encourage non-standard behavior
+       depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
+       help
+       This is not compliant with standards. Avoid if possible.
 
 config BUSYBOX_CONFIG_HUSH_INTERACTIVE
        bool "Interactive mode"
        default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
        depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
        help
-         Enable interactive mode (prompt and command editing).
-         Without this, hush simply reads and executes commands
-         from stdin just like a shell script from a file.
-         No prompt, no PS1/PS2 magic shell variables.
+       Enable interactive mode (prompt and command editing).
+       Without this, hush simply reads and executes commands
+       from stdin just like a shell script from a file.
+       No prompt, no PS1/PS2 magic shell variables.
 
 config BUSYBOX_CONFIG_HUSH_SAVEHISTORY
        bool "Save command history to .hush_history"
@@ -286,18 +313,18 @@ config BUSYBOX_CONFIG_HUSH_JOB
        default BUSYBOX_DEFAULT_HUSH_JOB
        depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE
        help
-         Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
-         command (not entire shell), fg/bg builtins work. Without this option,
-         "cmd &" still works by simply spawning a process and immediately
-         prompting for next command (or executing next command in a script),
-         but no separate process group is formed.
+       Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
+       command (not entire shell), fg/bg builtins work. Without this option,
+       "cmd &" still works by simply spawning a process and immediately
+       prompting for next command (or executing next command in a script),
+       but no separate process group is formed.
 
 config BUSYBOX_CONFIG_HUSH_TICK
-       bool "Support process substitution"
+       bool "Support command substitution"
        default BUSYBOX_DEFAULT_HUSH_TICK
        depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
        help
-         Enable `command` and $(command).
+       Enable `command` and $(command).
 
 config BUSYBOX_CONFIG_HUSH_IF
        bool "Support if/then/elif/else/fi"
@@ -314,37 +341,37 @@ config BUSYBOX_CONFIG_HUSH_CASE
        default BUSYBOX_DEFAULT_HUSH_CASE
        depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
        help
-         Enable case ... esac statement. +400 bytes.
+       Enable case ... esac statement. +400 bytes.
 
 config BUSYBOX_CONFIG_HUSH_FUNCTIONS
        bool "Support funcname() { commands; } syntax"
        default BUSYBOX_DEFAULT_HUSH_FUNCTIONS
        depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
        help
-         Enable support for shell functions. +800 bytes.
+       Enable support for shell functions. +800 bytes.
 
 config BUSYBOX_CONFIG_HUSH_LOCAL
        bool "local builtin"
        default BUSYBOX_DEFAULT_HUSH_LOCAL
        depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS
        help
-         Enable support for local variables in functions.
+       Enable support for local variables in functions.
 
 config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
        bool "Pseudorandom generator and $RANDOM variable"
        default BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT
        depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
        help
-         Enable pseudorandom generator and dynamic variable "$RANDOM".
-         Each read of "$RANDOM" will generate a new pseudorandom value.
+       Enable pseudorandom generator and dynamic variable "$RANDOM".
+       Each read of "$RANDOM" will generate a new pseudorandom value.
 
 config BUSYBOX_CONFIG_HUSH_MODE_X
        bool "Support 'hush -x' option and 'set -x' command"
        default BUSYBOX_DEFAULT_HUSH_MODE_X
        depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
        help
-         This instructs hush to print commands before execution.
-         Adds ~300 bytes.
+       This instructs hush to print commands before execution.
+       Adds ~300 bytes.
 
 config BUSYBOX_CONFIG_HUSH_ECHO
        bool "echo builtin"
@@ -376,7 +403,14 @@ config BUSYBOX_CONFIG_HUSH_EXPORT_N
        default BUSYBOX_DEFAULT_HUSH_EXPORT_N
        depends on BUSYBOX_CONFIG_HUSH_EXPORT
        help
-         export -n unexports variables. It is a bash extension.
+       export -n unexports variables. It is a bash extension.
+
+config BUSYBOX_CONFIG_HUSH_READONLY
+       bool "readonly builtin"
+       default BUSYBOX_DEFAULT_HUSH_READONLY
+       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       help
+       Enable support for read-only variables.
 
 config BUSYBOX_CONFIG_HUSH_KILL
        bool "kill builtin (supports kill %jobspec)"
@@ -388,6 +422,11 @@ config BUSYBOX_CONFIG_HUSH_WAIT
        default BUSYBOX_DEFAULT_HUSH_WAIT
        depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 
+config BUSYBOX_CONFIG_HUSH_COMMAND
+       bool "command builtin"
+       default BUSYBOX_DEFAULT_HUSH_COMMAND
+       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+
 config BUSYBOX_CONFIG_HUSH_TRAP
        bool "trap builtin"
        default BUSYBOX_DEFAULT_HUSH_TRAP
@@ -398,6 +437,11 @@ config BUSYBOX_CONFIG_HUSH_TYPE
        default BUSYBOX_DEFAULT_HUSH_TYPE
        depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 
+config BUSYBOX_CONFIG_HUSH_TIMES
+       bool "times builtin"
+       default BUSYBOX_DEFAULT_HUSH_TIMES
+       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+
 config BUSYBOX_CONFIG_HUSH_READ
        bool "read builtin"
        default BUSYBOX_DEFAULT_HUSH_READ
@@ -423,18 +467,16 @@ config BUSYBOX_CONFIG_HUSH_UMASK
        default BUSYBOX_DEFAULT_HUSH_UMASK
        depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 
+config BUSYBOX_CONFIG_HUSH_GETOPTS
+       bool "getopts builtin"
+       default BUSYBOX_DEFAULT_HUSH_GETOPTS
+       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+
 config BUSYBOX_CONFIG_HUSH_MEMLEAK
        bool "memleak builtin (debugging)"
        default BUSYBOX_DEFAULT_HUSH_MEMLEAK
        depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 
-config BUSYBOX_CONFIG_MSH
-       bool "msh (deprecated: aliased to hush)"
-       default BUSYBOX_DEFAULT_MSH
-       select BUSYBOX_CONFIG_HUSH
-       help
-         msh is deprecated and will be removed, please migrate to hush.
-
 
 comment "Options common to all shells"
 if ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
@@ -444,71 +486,92 @@ config BUSYBOX_CONFIG_FEATURE_SH_MATH
        default BUSYBOX_DEFAULT_FEATURE_SH_MATH
        depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
        help
-         Enable math support in the shell via $((...)) syntax.
+       Enable math support in the shell via $((...)) syntax.
 
 config BUSYBOX_CONFIG_FEATURE_SH_MATH_64
        bool "Extend POSIX math support to 64 bit"
        default BUSYBOX_DEFAULT_FEATURE_SH_MATH_64
        depends on BUSYBOX_CONFIG_FEATURE_SH_MATH
        help
-         Enable 64-bit math support in the shell. This will make the shell
-         slightly larger, but will allow computation with very large numbers.
-         This is not in POSIX, so do not rely on this in portable code.
+       Enable 64-bit math support in the shell. This will make the shell
+       slightly larger, but will allow computation with very large numbers.
+       This is not in POSIX, so do not rely on this in portable code.
 
 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
        bool "Hide message on interactive shell startup"
        default BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET
        depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
        help
-         Remove the busybox introduction when starting a shell.
+       Remove the busybox introduction when starting a shell.
 
 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
        bool "Standalone shell"
        default BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE
        depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
        help
-         This option causes busybox shells to use busybox applets
-         in preference to executables in the PATH whenever possible. For
-         example, entering the command 'ifconfig' into the shell would cause
-         busybox to use the ifconfig busybox applet. Specifying the fully
-         qualified executable name, such as '/sbin/ifconfig' will still
-         execute the /sbin/ifconfig executable on the filesystem. This option
-         is generally used when creating a statically linked version of busybox
-         for use as a rescue shell, in the event that you screw up your system.
+       This option causes busybox shells to use busybox applets
+       in preference to executables in the PATH whenever possible. For
+       example, entering the command 'ifconfig' into the shell would cause
+       busybox to use the ifconfig busybox applet. Specifying the fully
+       qualified executable name, such as '/sbin/ifconfig' will still
+       execute the /sbin/ifconfig executable on the filesystem. This option
+       is generally used when creating a statically linked version of busybox
+       for use as a rescue shell, in the event that you screw up your system.
 
-         This is implemented by re-execing /proc/self/exe (typically)
-         with right parameters.
+       This is implemented by re-execing /proc/self/exe (typically)
+       with right parameters.
 
-         However, there are drawbacks: it is problematic in chroot jails
-         without mounted /proc, and ps/top may show command name as 'exe'
-         for applets started this way.
+       However, there are drawbacks: it is problematic in chroot jails
+       without mounted /proc, and ps/top may show command name as 'exe'
+       for applets started this way.
 
 config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
        bool "Run 'nofork' applets directly"
        default BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
        depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
        help
-         This option causes busybox shells to not execute typical
-         fork/exec/wait sequence, but call <applet>_main directly,
-         if possible. (Sometimes it is not possible: for example,
-         this is not possible in pipes).
+       This option causes busybox shells to not execute typical
+       fork/exec/wait sequence, but call <applet>_main directly,
+       if possible. (Sometimes it is not possible: for example,
+       this is not possible in pipes).
 
-         This will be done only for some applets (those which are marked
-         NOFORK in include/applets.h).
+       This will be done only for some applets (those which are marked
+       NOFORK in include/applets.h).
 
-         This may significantly speed up some shell scripts.
+       This may significantly speed up some shell scripts.
 
-         This feature is relatively new. Use with care. Report bugs
-         to project mailing list.
+       This feature is relatively new. Use with care. Report bugs
+       to project mailing list.
+
+config BUSYBOX_CONFIG_FEATURE_SH_READ_FRAC
+       bool "read -t N.NNN support (+110 bytes)"
+       default BUSYBOX_DEFAULT_FEATURE_SH_READ_FRAC
+       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       help
+       Enable support for fractional second timeout in read builtin.
 
 config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
        bool "Use $HISTFILESIZE"
        default BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
        depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
        help
-         This option makes busybox shells to use $HISTFILESIZE variable
-         to set shell history size. Note that its max value is capped
-         by "History size" setting in library tuning section.
+       This option makes busybox shells to use $HISTFILESIZE variable
+       to set shell history size. Note that its max value is capped
+       by "History size" setting in library tuning section.
+
+config BUSYBOX_CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS
+       bool "Embed scripts in the binary"
+       default BUSYBOX_DEFAULT_FEATURE_SH_EMBEDDED_SCRIPTS
+       depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
+       help
+       Allow scripts to be compressed and embedded in the busybox
+       binary. The scripts should be placed in the 'embed' directory
+       at build time. Like applets, scripts can be run as
+       'busybox SCRIPT ...' or by linking their name to the binary.
+
+       This also allows applets to be implemented as scripts: place
+       the script in 'applets_sh' and a stub C file containing
+       configuration in the appropriate subsystem directory.
 
 endif # Options common to all shells
 
index 2045a7ae386f696d092651ade8420ac90345c48c..33a5e8238a488c0d63b95104a4ae194672281ca6 100644 (file)
@@ -1,20 +1,20 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "System Logging Utilities"
 
 config BUSYBOX_CONFIG_KLOGD
-       bool "klogd"
+       bool "klogd (5.7 kb)"
        default BUSYBOX_DEFAULT_KLOGD
        help
-         klogd is a utility which intercepts and logs all
-         messages from the Linux kernel and sends the messages
-         out to the 'syslogd' utility so they can be logged. If
-         you wish to record the messages produced by the kernel,
-         you should enable this option.
+       klogd is a utility which intercepts and logs all
+       messages from the Linux kernel and sends the messages
+       out to the 'syslogd' utility so they can be logged. If
+       you wish to record the messages produced by the kernel,
+       you should enable this option.
 
 comment "klogd should not be used together with syslog to kernel printk buffer"
        depends on BUSYBOX_CONFIG_KLOGD && BUSYBOX_CONFIG_FEATURE_KMSG_SYSLOG
@@ -25,96 +25,96 @@ config BUSYBOX_CONFIG_FEATURE_KLOGD_KLOGCTL
        depends on BUSYBOX_CONFIG_KLOGD
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         The klogd applet supports two interfaces for reading
-         kernel messages. Linux provides the klogctl() interface
-         which allows reading messages from the kernel ring buffer
-         independently from the file system.
+       The klogd applet supports two interfaces for reading
+       kernel messages. Linux provides the klogctl() interface
+       which allows reading messages from the kernel ring buffer
+       independently from the file system.
 
-         If you answer 'N' here, klogd will use the more portable
-         approach of reading them from /proc or a device node.
-         However, this method requires the file to be available.
+       If you answer 'N' here, klogd will use the more portable
+       approach of reading them from /proc or a device node.
+       However, this method requires the file to be available.
 
-         If in doubt, say 'Y'.
+       If in doubt, say 'Y'.
 config BUSYBOX_CONFIG_LOGGER
-       bool "logger"
+       bool "logger (6.3 kb)"
        default BUSYBOX_DEFAULT_LOGGER
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-           The logger utility allows you to send arbitrary text
-           messages to the system log (i.e. the 'syslogd' utility) so
-           they can be logged. This is generally used to help locate
-           problems that occur within programs and scripts.
+       The logger utility allows you to send arbitrary text
+       messages to the system log (i.e. the 'syslogd' utility) so
+       they can be logged. This is generally used to help locate
+       problems that occur within programs and scripts.
 config BUSYBOX_CONFIG_LOGREAD
-       bool "logread"
+       bool "logread (4.8 kb)"
        default BUSYBOX_DEFAULT_LOGREAD
        help
-         If you enabled Circular Buffer support, you almost
-         certainly want to enable this feature as well. This
-         utility will allow you to read the messages that are
-         stored in the syslogd circular buffer.
+       If you enabled Circular Buffer support, you almost
+       certainly want to enable this feature as well. This
+       utility will allow you to read the messages that are
+       stored in the syslogd circular buffer.
 
 config BUSYBOX_CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING
        bool "Double buffering"
        default BUSYBOX_DEFAULT_FEATURE_LOGREAD_REDUCED_LOCKING
        depends on BUSYBOX_CONFIG_LOGREAD
        help
-         'logread' output to slow serial terminals can have
-         side effects on syslog because of the semaphore.
-         This option make logread to double buffer copy
-         from circular buffer, minimizing semaphore
-         contention at some minor memory expense.
+       'logread' output to slow serial terminals can have
+       side effects on syslog because of the semaphore.
+       This option make logread to double buffer copy
+       from circular buffer, minimizing semaphore
+       contention at some minor memory expense.
 
 config BUSYBOX_CONFIG_SYSLOGD
-       bool "syslogd"
+       bool "syslogd (13 kb)"
        default BUSYBOX_DEFAULT_SYSLOGD
        help
-         The syslogd utility is used to record logs of all the
-         significant events that occur on a system. Every
-         message that is logged records the date and time of the
-         event, and will generally also record the name of the
-         application that generated the message. When used in
-         conjunction with klogd, messages from the Linux kernel
-         can also be recorded. This is terribly useful,
-         especially for finding what happened when something goes
-         wrong. And something almost always will go wrong if
-         you wait long enough....
+       The syslogd utility is used to record logs of all the
+       significant events that occur on a system. Every
+       message that is logged records the date and time of the
+       event, and will generally also record the name of the
+       application that generated the message. When used in
+       conjunction with klogd, messages from the Linux kernel
+       can also be recorded. This is terribly useful,
+       especially for finding what happened when something goes
+       wrong. And something almost always will go wrong if
+       you wait long enough....
 
 config BUSYBOX_CONFIG_FEATURE_ROTATE_LOGFILE
        bool "Rotate message files"
        default BUSYBOX_DEFAULT_FEATURE_ROTATE_LOGFILE
        depends on BUSYBOX_CONFIG_SYSLOGD
        help
-         This enables syslogd to rotate the message files
-         on his own. No need to use an external rotate script.
+       This enables syslogd to rotate the message files
+       on his own. No need to use an external rotate script.
 
 config BUSYBOX_CONFIG_FEATURE_REMOTE_LOG
        bool "Remote Log support"
        default BUSYBOX_DEFAULT_FEATURE_REMOTE_LOG
        depends on BUSYBOX_CONFIG_SYSLOGD
        help
-         When you enable this feature, the syslogd utility can
-         be used to send system log messages to another system
-         connected via a network. This allows the remote
-         machine to log all the system messages, which can be
-         terribly useful for reducing the number of serial
-         cables you use. It can also be a very good security
-         measure to prevent system logs from being tampered with
-         by an intruder.
+       When you enable this feature, the syslogd utility can
+       be used to send system log messages to another system
+       connected via a network. This allows the remote
+       machine to log all the system messages, which can be
+       terribly useful for reducing the number of serial
+       cables you use. It can also be a very good security
+       measure to prevent system logs from being tampered with
+       by an intruder.
 
 config BUSYBOX_CONFIG_FEATURE_SYSLOGD_DUP
        bool "Support -D (drop dups) option"
        default BUSYBOX_DEFAULT_FEATURE_SYSLOGD_DUP
        depends on BUSYBOX_CONFIG_SYSLOGD
        help
-         Option -D instructs syslogd to drop consecutive messages
-         which are totally the same.
+       Option -D instructs syslogd to drop consecutive messages
+       which are totally the same.
 
 config BUSYBOX_CONFIG_FEATURE_SYSLOGD_CFG
        bool "Support syslog.conf"
        default BUSYBOX_DEFAULT_FEATURE_SYSLOGD_CFG
        depends on BUSYBOX_CONFIG_SYSLOGD
        help
-         Supports restricted syslogd config. See docs/syslog.conf.txt
+       Supports restricted syslogd config. See docs/syslog.conf.txt
 
 config BUSYBOX_CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE
        int "Read buffer size in bytes"
@@ -122,23 +122,23 @@ config BUSYBOX_CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE
        range 256 20000
        depends on BUSYBOX_CONFIG_SYSLOGD
        help
-         This option sets the size of the syslog read buffer.
-         Actual memory usage increases around five times the
-         change done here.
+       This option sets the size of the syslog read buffer.
+       Actual memory usage increases around five times the
+       change done here.
 
 config BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG
        bool "Circular Buffer support"
        default BUSYBOX_DEFAULT_FEATURE_IPC_SYSLOG
        depends on BUSYBOX_CONFIG_SYSLOGD
        help
-         When you enable this feature, the syslogd utility will
-         use a circular buffer to record system log messages.
-         When the buffer is filled it will continue to overwrite
-         the oldest messages. This can be very useful for
-         systems with little or no permanent storage, since
-         otherwise system logs can eventually fill up your
-         entire filesystem, which may cause your system to
-         break badly.
+       When you enable this feature, the syslogd utility will
+       use a circular buffer to record system log messages.
+       When the buffer is filled it will continue to overwrite
+       the oldest messages. This can be very useful for
+       systems with little or no permanent storage, since
+       otherwise system logs can eventually fill up your
+       entire filesystem, which may cause your system to
+       break badly.
 
 config BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE
        int "Circular buffer size in Kbytes (minimum 4KB)"
@@ -146,8 +146,8 @@ config BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE
        range 4 2147483647
        depends on BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG
        help
-         This option sets the size of the circular buffer
-         used to record system log messages.
+       This option sets the size of the circular buffer
+       used to record system log messages.
 
 config BUSYBOX_CONFIG_FEATURE_KMSG_SYSLOG
        bool "Linux kernel printk buffer support"
@@ -155,11 +155,11 @@ config BUSYBOX_CONFIG_FEATURE_KMSG_SYSLOG
        depends on BUSYBOX_CONFIG_SYSLOGD
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         When you enable this feature, the syslogd utility will
-         write system log message to the Linux kernel's printk buffer.
-         This can be used as a smaller alternative to the syslogd IPC
-         support, as klogd and logread aren't needed.
+       When you enable this feature, the syslogd utility will
+       write system log message to the Linux kernel's printk buffer.
+       This can be used as a smaller alternative to the syslogd IPC
+       support, as klogd and logread aren't needed.
 
-         NOTICE: Syslog facilities in log entries needs kernel 3.5+.
+       NOTICE: Syslog facilities in log entries needs kernel 3.5+.
 
 endmenu
index 74a49d00c2cc6caa239df12273b10036a7ad06a1..20d7818f00fd3b051ccad1e47b9e227a14bb19de 100644 (file)
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 menu "Linux System Utilities"
 
 config BUSYBOX_CONFIG_ACPID
-       bool "acpid"
+       bool "acpid (9 kb)"
        default BUSYBOX_DEFAULT_ACPID
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         acpid listens to ACPI events coming either in textual form from
-         /proc/acpi/event (though it is marked deprecated it is still widely
-         used and _is_ a standard) or in binary form from specified evdevs
-         (just use /dev/input/event*).
+       acpid listens to ACPI events coming either in textual form from
+       /proc/acpi/event (though it is marked deprecated it is still widely
+       used and _is_ a standard) or in binary form from specified evdevs
+       (just use /dev/input/event*).
 
-         It parses the event to retrieve ACTION and a possible PARAMETER.
-         It then spawns /etc/acpi/<ACTION>[/<PARAMETER>] either via run-parts
-         (if the resulting path is a directory) or directly as an executable.
+       It parses the event to retrieve ACTION and a possible PARAMETER.
+       It then spawns /etc/acpi/<ACTION>[/<PARAMETER>] either via run-parts
+       (if the resulting path is a directory) or directly as an executable.
 
-         N.B. acpid relies on run-parts so have the latter installed.
+       N.B. acpid relies on run-parts so have the latter installed.
 
 config BUSYBOX_CONFIG_FEATURE_ACPID_COMPAT
        bool "Accept and ignore redundant options"
        default BUSYBOX_DEFAULT_FEATURE_ACPID_COMPAT
        depends on BUSYBOX_CONFIG_ACPID
        help
-         Accept and ignore compatibility options -g -m -s -S -v.
+       Accept and ignore compatibility options -g -m -s -S -v.
 config BUSYBOX_CONFIG_BLKDISCARD
-       bool "blkdiscard"
+       bool "blkdiscard (4.3 kb)"
        default BUSYBOX_DEFAULT_BLKDISCARD
+       select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         blkdiscard discards sectors on a given device.
+       blkdiscard discards sectors on a given device.
 config BUSYBOX_CONFIG_BLKID
-       bool "blkid"
+       bool "blkid (12 kb)"
        default BUSYBOX_DEFAULT_BLKID
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        select BUSYBOX_CONFIG_VOLUMEID
        help
-         Lists labels and UUIDs of all filesystems.
-         WARNING:
-         With all submodules selected, it will add ~8k to busybox.
+       Lists labels and UUIDs of all filesystems.
 
 config BUSYBOX_CONFIG_FEATURE_BLKID_TYPE
        bool "Print filesystem type"
        default BUSYBOX_DEFAULT_FEATURE_BLKID_TYPE
        depends on BUSYBOX_CONFIG_BLKID
        help
-         Show TYPE="filesystem type"
+       Show TYPE="filesystem type"
 config BUSYBOX_CONFIG_BLOCKDEV
-       bool "blockdev"
+       bool "blockdev (2.3 kb)"
        default BUSYBOX_DEFAULT_BLOCKDEV
        help
-         Performs some ioctls with block devices.
+       Performs some ioctls with block devices.
 config BUSYBOX_CONFIG_CAL
-       bool "cal"
+       bool "cal (5.8 kb)"
        default BUSYBOX_DEFAULT_CAL
        help
-         cal is used to display a monthly calendar.
+       cal is used to display a monthly calendar.
 config BUSYBOX_CONFIG_CHRT
-       bool "chrt"
+       bool "chrt (4.7 kb)"
        default BUSYBOX_DEFAULT_CHRT
        help
-         manipulate real-time attributes of a process.
-         This requires sched_{g,s}etparam support in your libc.
+       Manipulate real-time attributes of a process.
+       This requires sched_{g,s}etparam support in your libc.
 config BUSYBOX_CONFIG_DMESG
-       bool "dmesg"
+       bool "dmesg (3.7 kb)"
        default BUSYBOX_DEFAULT_DMESG
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         dmesg is used to examine or control the kernel ring buffer. When the
-         Linux kernel prints messages to the system log, they are stored in
-         the kernel ring buffer. You can use dmesg to print the kernel's ring
-         buffer, clear the kernel ring buffer, change the size of the kernel
-         ring buffer, and change the priority level at which kernel messages
-         are also logged to the system console. Enable this option if you
-         wish to enable the 'dmesg' utility.
+       dmesg is used to examine or control the kernel ring buffer. When the
+       Linux kernel prints messages to the system log, they are stored in
+       the kernel ring buffer. You can use dmesg to print the kernel's ring
+       buffer, clear the kernel ring buffer, change the size of the kernel
+       ring buffer, and change the priority level at which kernel messages
+       are also logged to the system console. Enable this option if you
+       wish to enable the 'dmesg' utility.
 
 config BUSYBOX_CONFIG_FEATURE_DMESG_PRETTY
        bool "Pretty output"
        default BUSYBOX_DEFAULT_FEATURE_DMESG_PRETTY
        depends on BUSYBOX_CONFIG_DMESG
        help
-         If you wish to scrub the syslog level from the output, say 'Y' here.
-         The syslog level is a string prefixed to every line with the form
-         "<#>".
-
-         With this option you will see:
-           # dmesg
-           Linux version 2.6.17.4 .....
-           BIOS-provided physical RAM map:
-            BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
-
-         Without this option you will see:
-           # dmesg
-           <5>Linux version 2.6.17.4 .....
-           <6>BIOS-provided physical RAM map:
-           <6> BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
+       If you wish to scrub the syslog level from the output, say 'Y' here.
+       The syslog level is a string prefixed to every line with the form
+       "<#>".
+
+       With this option you will see:
+               # dmesg
+               Linux version 2.6.17.4 .....
+               BIOS-provided physical RAM map:
+                BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
+
+       Without this option you will see:
+               # dmesg
+               <5>Linux version 2.6.17.4 .....
+               <6>BIOS-provided physical RAM map:
+               <6> BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
 config BUSYBOX_CONFIG_EJECT
-       bool "eject"
+       bool "eject (4 kb)"
        default BUSYBOX_DEFAULT_EJECT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Used to eject cdroms. (defaults to /dev/cdrom)
+       Used to eject cdroms. (defaults to /dev/cdrom)
 
 config BUSYBOX_CONFIG_FEATURE_EJECT_SCSI
        bool "SCSI support"
        default BUSYBOX_DEFAULT_FEATURE_EJECT_SCSI
        depends on BUSYBOX_CONFIG_EJECT
        help
-         Add the -s option to eject, this allows to eject SCSI-Devices and
-         usb-storage devices.
+       Add the -s option to eject, this allows to eject SCSI-Devices and
+       usb-storage devices.
 config BUSYBOX_CONFIG_FALLOCATE
-       bool "fallocate"
+       bool "fallocate (4.1 kb)"
        default BUSYBOX_DEFAULT_FALLOCATE
        help
-         Preallocate space for files.
+       Preallocate space for files.
 config BUSYBOX_CONFIG_FATATTR
-       bool "fatattr"
+       bool "fatattr (1.9 kb)"
        default BUSYBOX_DEFAULT_FATATTR
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         fatattr lists or changes the file attributes on a fat file system.
+       fatattr lists or changes the file attributes on a fat file system.
 config BUSYBOX_CONFIG_FBSET
-       bool "fbset"
+       bool "fbset (5.9 kb)"
        default BUSYBOX_DEFAULT_FBSET
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         fbset is used to show or change the settings of a Linux frame buffer
-         device. The frame buffer device provides a simple and unique
-         interface to access a graphics display. Enable this option
-         if you wish to enable the 'fbset' utility.
+       fbset is used to show or change the settings of a Linux frame buffer
+       device. The frame buffer device provides a simple and unique
+       interface to access a graphics display. Enable this option
+       if you wish to enable the 'fbset' utility.
 
 config BUSYBOX_CONFIG_FEATURE_FBSET_FANCY
        bool "Enable extra options"
        default BUSYBOX_DEFAULT_FEATURE_FBSET_FANCY
        depends on BUSYBOX_CONFIG_FBSET
        help
-         This option enables extended fbset options, allowing one to set the
-         framebuffer size, color depth, etc. interface to access a graphics
-         display. Enable this option if you wish to enable extended fbset
-         options.
+       This option enables extended fbset options, allowing one to set the
+       framebuffer size, color depth, etc. interface to access a graphics
+       display. Enable this option if you wish to enable extended fbset
+       options.
 
 config BUSYBOX_CONFIG_FEATURE_FBSET_READMODE
        bool "Enable readmode support"
        default BUSYBOX_DEFAULT_FEATURE_FBSET_READMODE
        depends on BUSYBOX_CONFIG_FBSET
        help
-         This option allows fbset to read the video mode database stored by
-         default BUSYBOX_DEFAULT_FEATURE_FBSET_READMODE /etc/fb.modes, which can be used to set frame buffer
-         device to pre-defined video modes.
+       This option allows fbset to read the video mode database stored by
+       default BUSYBOX_DEFAULT_FEATURE_FBSET_READMODE /etc/fb.modes, which can be used to set frame buffer
+       device to pre-defined video modes.
 config BUSYBOX_CONFIG_FDFORMAT
-       bool "fdformat"
+       bool "fdformat (4.4 kb)"
        default BUSYBOX_DEFAULT_FDFORMAT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         fdformat is used to low-level format a floppy disk.
+       fdformat is used to low-level format a floppy disk.
 config BUSYBOX_CONFIG_FDISK
-       bool "fdisk"
+       bool "fdisk (37 kb)"
        default BUSYBOX_DEFAULT_FDISK
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         The fdisk utility is used to divide hard disks into one or more
-         logical disks, which are generally called partitions. This utility
-         can be used to list and edit the set of partitions or BSD style
-         'disk slices' that are defined on a hard drive.
+       The fdisk utility is used to divide hard disks into one or more
+       logical disks, which are generally called partitions. This utility
+       can be used to list and edit the set of partitions or BSD style
+       'disk slices' that are defined on a hard drive.
 
 config BUSYBOX_CONFIG_FDISK_SUPPORT_LARGE_DISKS
        bool "Support over 4GB disks"
@@ -178,444 +177,436 @@ config BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE
        default BUSYBOX_DEFAULT_FEATURE_FDISK_WRITABLE
        depends on BUSYBOX_CONFIG_FDISK
        help
-         Enabling this option allows you to create or change a partition table
-         and write those changes out to disk. If you leave this option
-         disabled, you will only be able to view the partition table.
+       Enabling this option allows you to create or change a partition table
+       and write those changes out to disk. If you leave this option
+       disabled, you will only be able to view the partition table.
 
 config BUSYBOX_CONFIG_FEATURE_AIX_LABEL
        bool "Support AIX disklabels"
        default BUSYBOX_DEFAULT_FEATURE_AIX_LABEL
        depends on BUSYBOX_CONFIG_FDISK && BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE
        help
-         Enabling this option allows you to create or change AIX disklabels.
-         Most people can safely leave this option disabled.
+       Enabling this option allows you to create or change AIX disklabels.
+       Most people can safely leave this option disabled.
 
 config BUSYBOX_CONFIG_FEATURE_SGI_LABEL
        bool "Support SGI disklabels"
        default BUSYBOX_DEFAULT_FEATURE_SGI_LABEL
        depends on BUSYBOX_CONFIG_FDISK && BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE
        help
-         Enabling this option allows you to create or change SGI disklabels.
-         Most people can safely leave this option disabled.
+       Enabling this option allows you to create or change SGI disklabels.
+       Most people can safely leave this option disabled.
 
 config BUSYBOX_CONFIG_FEATURE_SUN_LABEL
        bool "Support SUN disklabels"
        default BUSYBOX_DEFAULT_FEATURE_SUN_LABEL
        depends on BUSYBOX_CONFIG_FDISK && BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE
        help
-         Enabling this option allows you to create or change SUN disklabels.
-         Most people can safely leave this option disabled.
+       Enabling this option allows you to create or change SUN disklabels.
+       Most people can safely leave this option disabled.
 
 config BUSYBOX_CONFIG_FEATURE_OSF_LABEL
        bool "Support BSD disklabels"
        default BUSYBOX_DEFAULT_FEATURE_OSF_LABEL
        depends on BUSYBOX_CONFIG_FDISK && BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE
        help
-         Enabling this option allows you to create or change BSD disklabels
-         and define and edit BSD disk slices.
+       Enabling this option allows you to create or change BSD disklabels
+       and define and edit BSD disk slices.
 
 config BUSYBOX_CONFIG_FEATURE_GPT_LABEL
        bool "Support GPT disklabels"
        default BUSYBOX_DEFAULT_FEATURE_GPT_LABEL
        depends on BUSYBOX_CONFIG_FDISK && BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE
        help
-         Enabling this option allows you to view GUID Partition Table
-         disklabels.
+       Enabling this option allows you to view GUID Partition Table
+       disklabels.
 
 config BUSYBOX_CONFIG_FEATURE_FDISK_ADVANCED
        bool "Support expert mode"
        default BUSYBOX_DEFAULT_FEATURE_FDISK_ADVANCED
        depends on BUSYBOX_CONFIG_FDISK && BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE
        help
-         Enabling this option allows you to do terribly unsafe things like
-         define arbitrary drive geometry, move the beginning of data in a
-         partition, and similarly evil things. Unless you have a very good
-         reason you would be wise to leave this disabled.
+       Enabling this option allows you to do terribly unsafe things like
+       define arbitrary drive geometry, move the beginning of data in a
+       partition, and similarly evil things. Unless you have a very good
+       reason you would be wise to leave this disabled.
 config BUSYBOX_CONFIG_FINDFS
-       bool "findfs"
+       bool "findfs (12 kb)"
        default BUSYBOX_DEFAULT_FINDFS
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        select BUSYBOX_CONFIG_VOLUMEID
        help
-         Prints the name of a filesystem with given label or UUID.
-         WARNING:
-         With all submodules selected, it will add ~8k to busybox.
+       Prints the name of a filesystem with given label or UUID.
 config BUSYBOX_CONFIG_FLOCK
-       bool "flock"
+       bool "flock (6.3 kb)"
        default BUSYBOX_DEFAULT_FLOCK
        help
-         Manage locks from shell scripts
+       Manage locks from shell scripts
 config BUSYBOX_CONFIG_FDFLUSH
-       bool "fdflush"
+       bool "fdflush (1.3 kb)"
        default BUSYBOX_DEFAULT_FDFLUSH
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         fdflush is only needed when changing media on slightly-broken
-         removable media drives. It is used to make Linux believe that a
-         hardware disk-change switch has been actuated, which causes Linux to
-         forget anything it has cached from the previous media. If you have
-         such a slightly-broken drive, you will need to run fdflush every time
-         you change a disk. Most people have working hardware and can safely
-         leave this disabled.
+       fdflush is only needed when changing media on slightly-broken
+       removable media drives. It is used to make Linux believe that a
+       hardware disk-change switch has been actuated, which causes Linux to
+       forget anything it has cached from the previous media. If you have
+       such a slightly-broken drive, you will need to run fdflush every time
+       you change a disk. Most people have working hardware and can safely
+       leave this disabled.
 
 config BUSYBOX_CONFIG_FREERAMDISK
-       bool "freeramdisk"
+       bool "freeramdisk (1.3 kb)"
        default BUSYBOX_DEFAULT_FREERAMDISK
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Linux allows you to create ramdisks. This utility allows you to
-         delete them and completely free all memory that was used for the
-         ramdisk. For example, if you boot Linux into a ramdisk and later
-         pivot_root, you may want to free the memory that is allocated to the
-         ramdisk. If you have no use for freeing memory from a ramdisk, leave
-         this disabled.
+       Linux allows you to create ramdisks. This utility allows you to
+       delete them and completely free all memory that was used for the
+       ramdisk. For example, if you boot Linux into a ramdisk and later
+       pivot_root, you may want to free the memory that is allocated to the
+       ramdisk. If you have no use for freeing memory from a ramdisk, leave
+       this disabled.
 config BUSYBOX_CONFIG_FSCK_MINIX
-       bool "fsck_minix"
+       bool "fsck.minix (13 kb)"
        default BUSYBOX_DEFAULT_FSCK_MINIX
        help
-         The minix filesystem is a nice, small, compact, read-write filesystem
-         with little overhead. It is not a journaling filesystem however and
-         can experience corruption if it is not properly unmounted or if the
-         power goes off in the middle of a write. This utility allows you to
-         check for and attempt to repair any corruption that occurs to a minix
-         filesystem.
+       The minix filesystem is a nice, small, compact, read-write filesystem
+       with little overhead. It is not a journaling filesystem however and
+       can experience corruption if it is not properly unmounted or if the
+       power goes off in the middle of a write. This utility allows you to
+       check for and attempt to repair any corruption that occurs to a minix
+       filesystem.
 config BUSYBOX_CONFIG_FSFREEZE
-       bool "fsfreeze"
+       bool "fsfreeze (3.5 kb)"
        default BUSYBOX_DEFAULT_FSFREEZE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        select BUSYBOX_CONFIG_LONG_OPTS
        help
-         Halt new accesses and flush writes on a mounted filesystem.
+       Halt new accesses and flush writes on a mounted filesystem.
 config BUSYBOX_CONFIG_FSTRIM
-       bool "fstrim"
+       bool "fstrim (4.4 kb)"
        default BUSYBOX_DEFAULT_FSTRIM
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Discard unused blocks on a mounted filesystem.
+       Discard unused blocks on a mounted filesystem.
 config BUSYBOX_CONFIG_GETOPT
-       bool "getopt"
+       bool "getopt (5.8 kb)"
        default BUSYBOX_DEFAULT_GETOPT
        help
-         The getopt utility is used to break up (parse) options in command
-         lines to make it easy to write complex shell scripts that also check
-         for legal (and illegal) options. If you want to write horribly
-         complex shell scripts, or use some horribly complex shell script
-         written by others, this utility may be for you. Most people will
-         wisely leave this disabled.
+       The getopt utility is used to break up (parse) options in command
+       lines to make it easy to write complex shell scripts that also check
+       for legal (and illegal) options. If you want to write horribly
+       complex shell scripts, or use some horribly complex shell script
+       written by others, this utility may be for you. Most people will
+       wisely leave this disabled.
 
 config BUSYBOX_CONFIG_FEATURE_GETOPT_LONG
-       bool "Support option -l"
-       default BUSYBOX_DEFAULT_FEATURE_GETOPT_LONG if BUSYBOX_CONFIG_LONG_OPTS
-       depends on BUSYBOX_CONFIG_GETOPT
+       bool "Support -l LONGOPTs"
+       default BUSYBOX_DEFAULT_FEATURE_GETOPT_LONG
+       depends on BUSYBOX_CONFIG_GETOPT && BUSYBOX_CONFIG_LONG_OPTS
        help
-         Enable support for long options (option -l).
+       Enable support for long options (option -l).
 config BUSYBOX_CONFIG_HEXDUMP
-       bool "hexdump"
+       bool "hexdump (8.6 kb)"
        default BUSYBOX_DEFAULT_HEXDUMP
        help
-         The hexdump utility is used to display binary data in a readable
-         way that is comparable to the output from most hex editors.
+       The hexdump utility is used to display binary data in a readable
+       way that is comparable to the output from most hex editors.
 
 config BUSYBOX_CONFIG_FEATURE_HEXDUMP_REVERSE
        bool "Support -R, reverse of 'hexdump -Cv'"
        default BUSYBOX_DEFAULT_FEATURE_HEXDUMP_REVERSE
        depends on BUSYBOX_CONFIG_HEXDUMP
        help
-         The hexdump utility is used to display binary data in an ascii
-         readable way. This option creates binary data from an ascii input.
-         NB: this option is non-standard. It's unwise to use it in scripts
-         aimed to be portable.
+       The hexdump utility is used to display binary data in an ascii
+       readable way. This option creates binary data from an ascii input.
+       NB: this option is non-standard. It's unwise to use it in scripts
+       aimed to be portable.
 
 config BUSYBOX_CONFIG_HD
-       bool "hd"
+       bool "hd (7.8 kb)"
        default BUSYBOX_DEFAULT_HD
        help
-         hd is an alias to hexdump -C.
+       hd is an alias to hexdump -C.
 config BUSYBOX_CONFIG_XXD
-       bool "xxd"
+       bool "xxd (8.9 kb)"
        default BUSYBOX_DEFAULT_XXD
        help
-         The xxd utility is used to display binary data in a readable
-         way that is comparable to the output from most hex editors.
+       The xxd utility is used to display binary data in a readable
+       way that is comparable to the output from most hex editors.
 config BUSYBOX_CONFIG_HWCLOCK
-       bool "hwclock"
+       bool "hwclock (5.8 kb)"
        default BUSYBOX_DEFAULT_HWCLOCK
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         The hwclock utility is used to read and set the hardware clock
-         on a system. This is primarily used to set the current time on
-         shutdown in the hardware clock, so the hardware will keep the
-         correct time when Linux is _not_ running.
-
-config BUSYBOX_CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS
-       bool "Support long options (--hctosys,...)"
-       default BUSYBOX_DEFAULT_FEATURE_HWCLOCK_LONG_OPTIONS
-       depends on BUSYBOX_CONFIG_HWCLOCK && BUSYBOX_CONFIG_LONG_OPTS
+       The hwclock utility is used to read and set the hardware clock
+       on a system. This is primarily used to set the current time on
+       shutdown in the hardware clock, so the hardware will keep the
+       correct time when Linux is _not_ running.
 
 config BUSYBOX_CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS
        bool "Use FHS /var/lib/hwclock/adjtime"
        default BUSYBOX_DEFAULT_FEATURE_HWCLOCK_ADJTIME_FHS  # util-linux-ng in Fedora 13 still uses /etc/adjtime
        depends on BUSYBOX_CONFIG_HWCLOCK
        help
-         Starting with FHS 2.3, the adjtime state file is supposed to exist
-         at /var/lib/hwclock/adjtime instead of /etc/adjtime. If you wish
-         to use the FHS behavior, answer Y here, otherwise answer N for the
-         classic /etc/adjtime path.
+       Starting with FHS 2.3, the adjtime state file is supposed to exist
+       at /var/lib/hwclock/adjtime instead of /etc/adjtime. If you wish
+       to use the FHS behavior, answer Y here, otherwise answer N for the
+       classic /etc/adjtime path.
 
-         pathname.com/fhs/pub/fhs-2.3.html#VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO
+       pathname.com/fhs/pub/fhs-2.3.html#VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO
 config BUSYBOX_CONFIG_IONICE
-       bool "ionice"
+       bool "ionice (3.8 kb)"
        default BUSYBOX_DEFAULT_IONICE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Set/set program io scheduling class and priority
-         Requires kernel >= 2.6.13
+       Set/set program io scheduling class and priority
+       Requires kernel >= 2.6.13
 config BUSYBOX_CONFIG_IPCRM
-       bool "ipcrm"
+       bool "ipcrm (3.2 kb)"
        default BUSYBOX_DEFAULT_IPCRM
        help
-         The ipcrm utility allows the removal of System V interprocess
-         communication (IPC) objects and the associated data structures
-         from the system.
+       The ipcrm utility allows the removal of System V interprocess
+       communication (IPC) objects and the associated data structures
+       from the system.
 config BUSYBOX_CONFIG_IPCS
-       bool "ipcs"
+       bool "ipcs (11 kb)"
        default BUSYBOX_DEFAULT_IPCS
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         The ipcs utility is used to provide information on the currently
-         allocated System V interprocess (IPC) objects in the system.
+       The ipcs utility is used to provide information on the currently
+       allocated System V interprocess (IPC) objects in the system.
 config BUSYBOX_CONFIG_LAST
-       bool "last"
+       bool "last (6.1 kb)"
        default BUSYBOX_DEFAULT_LAST
        depends on BUSYBOX_CONFIG_FEATURE_WTMP
        help
-         'last' displays a list of the last users that logged into the system.
+       'last' displays a list of the last users that logged into the system.
 
 config BUSYBOX_CONFIG_FEATURE_LAST_FANCY
        bool "Output extra information"
        default BUSYBOX_DEFAULT_FEATURE_LAST_FANCY
        depends on BUSYBOX_CONFIG_LAST
        help
-         'last' displays detailed information about the last users that
-         logged into the system (mimics sysvinit last). +900 bytes.
+       'last' displays detailed information about the last users that
+       logged into the system (mimics sysvinit last). +900 bytes.
 config BUSYBOX_CONFIG_LOSETUP
-       bool "losetup"
+       bool "losetup (5.5 kb)"
        default BUSYBOX_DEFAULT_LOSETUP
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         losetup is used to associate or detach a loop device with a regular
-         file or block device, and to query the status of a loop device. This
-         version does not currently support enabling data encryption.
+       losetup is used to associate or detach a loop device with a regular
+       file or block device, and to query the status of a loop device. This
+       version does not currently support enabling data encryption.
 config BUSYBOX_CONFIG_LSPCI
-       bool "lspci"
+       bool "lspci (6.3 kb)"
        default BUSYBOX_DEFAULT_LSPCI
        #select PLATFORM_LINUX
        help
-         lspci is a utility for displaying information about PCI buses in the
-         system and devices connected to them.
+       lspci is a utility for displaying information about PCI buses in the
+       system and devices connected to them.
 
-         This version uses sysfs (/sys/bus/pci/devices) only.
+       This version uses sysfs (/sys/bus/pci/devices) only.
 config BUSYBOX_CONFIG_LSUSB
-       bool "lsusb"
+       bool "lsusb (4.2 kb)"
        default BUSYBOX_DEFAULT_LSUSB
        #select PLATFORM_LINUX
        help
-         lsusb is a utility for displaying information about USB buses in the
-         system and devices connected to them.
+       lsusb is a utility for displaying information about USB buses in the
+       system and devices connected to them.
 
-         This version uses sysfs (/sys/bus/usb/devices) only.
+       This version uses sysfs (/sys/bus/usb/devices) only.
 config BUSYBOX_CONFIG_MDEV
-       bool "mdev"
+       bool "mdev (17 kb)"
        default BUSYBOX_DEFAULT_MDEV
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         mdev is a mini-udev implementation for dynamically creating device
-         nodes in the /dev directory.
+       mdev is a mini-udev implementation for dynamically creating device
+       nodes in the /dev directory.
 
-         For more information, please see docs/mdev.txt
+       For more information, please see docs/mdev.txt
 
 config BUSYBOX_CONFIG_FEATURE_MDEV_CONF
        bool "Support /etc/mdev.conf"
        default BUSYBOX_DEFAULT_FEATURE_MDEV_CONF
        depends on BUSYBOX_CONFIG_MDEV
        help
-         Add support for the mdev config file to control ownership and
-         permissions of the device nodes.
+       Add support for the mdev config file to control ownership and
+       permissions of the device nodes.
 
-         For more information, please see docs/mdev.txt
+       For more information, please see docs/mdev.txt
 
 config BUSYBOX_CONFIG_FEATURE_MDEV_RENAME
        bool "Support subdirs/symlinks"
        default BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME
        depends on BUSYBOX_CONFIG_FEATURE_MDEV_CONF
        help
-         Add support for renaming devices and creating symlinks.
+       Add support for renaming devices and creating symlinks.
 
-         For more information, please see docs/mdev.txt
+       For more information, please see docs/mdev.txt
 
 config BUSYBOX_CONFIG_FEATURE_MDEV_RENAME_REGEXP
        bool "Support regular expressions substitutions when renaming device"
        default BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME_REGEXP
        depends on BUSYBOX_CONFIG_FEATURE_MDEV_RENAME
        help
-         Add support for regular expressions substitutions when renaming
-         device.
+       Add support for regular expressions substitutions when renaming
+       device.
 
 config BUSYBOX_CONFIG_FEATURE_MDEV_EXEC
        bool "Support command execution at device addition/removal"
        default BUSYBOX_DEFAULT_FEATURE_MDEV_EXEC
        depends on BUSYBOX_CONFIG_FEATURE_MDEV_CONF
        help
-         This adds support for an optional field to /etc/mdev.conf for
-         executing commands when devices are created/removed.
+       This adds support for an optional field to /etc/mdev.conf for
+       executing commands when devices are created/removed.
 
-         For more information, please see docs/mdev.txt
+       For more information, please see docs/mdev.txt
 
 config BUSYBOX_CONFIG_FEATURE_MDEV_LOAD_FIRMWARE
-       bool "Support loading of firmwares"
+       bool "Support loading of firmware"
        default BUSYBOX_DEFAULT_FEATURE_MDEV_LOAD_FIRMWARE
        depends on BUSYBOX_CONFIG_MDEV
        help
-         Some devices need to load firmware before they can be usable.
+       Some devices need to load firmware before they can be usable.
 
-         These devices will request userspace look up the files in
-         /lib/firmware/ and if it exists, send it to the kernel for
-         loading into the hardware.
+       These devices will request userspace look up the files in
+       /lib/firmware/ and if it exists, send it to the kernel for
+       loading into the hardware.
 config BUSYBOX_CONFIG_MESG
-       bool "mesg"
+       bool "mesg (1.4 kb)"
        default BUSYBOX_DEFAULT_MESG
        help
-         Mesg controls access to your terminal by others. It is typically
-         used to allow or disallow other users to write to your terminal
+       Mesg controls access to your terminal by others. It is typically
+       used to allow or disallow other users to write to your terminal
 
 config BUSYBOX_CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP
        bool "Enable writing to tty only by group, not by everybody"
        default BUSYBOX_DEFAULT_FEATURE_MESG_ENABLE_ONLY_GROUP
        depends on BUSYBOX_CONFIG_MESG
        help
-         Usually, ttys are owned by group "tty", and "write" tool is
-         setgid to this group. This way, "mesg y" only needs to enable
-         "write by owning group" bit in tty mode.
+       Usually, ttys are owned by group "tty", and "write" tool is
+       setgid to this group. This way, "mesg y" only needs to enable
+       "write by owning group" bit in tty mode.
 
-         If you set this option to N, "mesg y" will enable writing
-         by anybody at all. This is not recommended.
+       If you set this option to N, "mesg y" will enable writing
+       by anybody at all. This is not recommended.
 config BUSYBOX_CONFIG_MKE2FS
-       bool "mke2fs"
+       bool "mke2fs (10 kb)"
        default BUSYBOX_DEFAULT_MKE2FS
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Utility to create EXT2 filesystems.
+       Utility to create EXT2 filesystems.
 
 config BUSYBOX_CONFIG_MKFS_EXT2
-       bool "mkfs.ext2"
+       bool "mkfs.ext2 (10 kb)"
        default BUSYBOX_DEFAULT_MKFS_EXT2
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Alias to "mke2fs".
+       Alias to "mke2fs".
 config BUSYBOX_CONFIG_MKFS_MINIX
-       bool "mkfs_minix"
+       bool "mkfs.minix (10 kb)"
        default BUSYBOX_DEFAULT_MKFS_MINIX
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         The minix filesystem is a nice, small, compact, read-write filesystem
-         with little overhead. If you wish to be able to create minix
-         filesystems this utility will do the job for you.
+       The minix filesystem is a nice, small, compact, read-write filesystem
+       with little overhead. If you wish to be able to create minix
+       filesystems this utility will do the job for you.
 
 config BUSYBOX_CONFIG_FEATURE_MINIX2
        bool "Support Minix fs v2 (fsck_minix/mkfs_minix)"
        default BUSYBOX_DEFAULT_FEATURE_MINIX2
        depends on BUSYBOX_CONFIG_FSCK_MINIX || BUSYBOX_CONFIG_MKFS_MINIX
        help
-         If you wish to be able to create version 2 minix filesystems, enable
-         this. If you enabled 'mkfs_minix' then you almost certainly want to
-         be using the version 2 filesystem support.
+       If you wish to be able to create version 2 minix filesystems, enable
+       this. If you enabled 'mkfs_minix' then you almost certainly want to
+       be using the version 2 filesystem support.
 config BUSYBOX_CONFIG_MKFS_REISER
        bool "mkfs_reiser"
        default BUSYBOX_DEFAULT_MKFS_REISER
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Utility to create ReiserFS filesystems.
-         Note: this applet needs a lot of testing and polishing.
+       Utility to create ReiserFS filesystems.
+       Note: this applet needs a lot of testing and polishing.
 config BUSYBOX_CONFIG_MKDOSFS
-       bool "mkdosfs"
+       bool "mkdosfs (7.2 kb)"
        default BUSYBOX_DEFAULT_MKDOSFS
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Utility to create FAT32 filesystems.
+       Utility to create FAT32 filesystems.
 
 config BUSYBOX_CONFIG_MKFS_VFAT
-       bool "mkfs.vfat"
+       bool "mkfs.vfat (7.2 kb)"
        default BUSYBOX_DEFAULT_MKFS_VFAT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Alias to "mkdosfs".
+       Alias to "mkdosfs".
 config BUSYBOX_CONFIG_MKSWAP
-       bool "mkswap"
+       bool "mkswap (6.3 kb)"
        default BUSYBOX_DEFAULT_MKSWAP
        help
-         The mkswap utility is used to configure a file or disk partition as
-         Linux swap space. This allows Linux to use the entire file or
-         partition as if it were additional RAM, which can greatly increase
-         the capability of low-memory machines. This additional memory is
-         much slower than real RAM, but can be very helpful at preventing your
-         applications being killed by the Linux out of memory (OOM) killer.
-         Once you have created swap space using 'mkswap' you need to enable
-         the swap space using the 'swapon' utility.
+       The mkswap utility is used to configure a file or disk partition as
+       Linux swap space. This allows Linux to use the entire file or
+       partition as if it were additional RAM, which can greatly increase
+       the capability of low-memory machines. This additional memory is
+       much slower than real RAM, but can be very helpful at preventing your
+       applications being killed by the Linux out of memory (OOM) killer.
+       Once you have created swap space using 'mkswap' you need to enable
+       the swap space using the 'swapon' utility.
 
 config BUSYBOX_CONFIG_FEATURE_MKSWAP_UUID
        bool "UUID support"
        default BUSYBOX_DEFAULT_FEATURE_MKSWAP_UUID
        depends on BUSYBOX_CONFIG_MKSWAP
        help
-         Generate swap spaces with universally unique identifiers.
+       Generate swap spaces with universally unique identifiers.
 config BUSYBOX_CONFIG_MORE
-       bool "more"
+       bool "more (7 kb)"
        default BUSYBOX_DEFAULT_MORE
        help
-         more is a simple utility which allows you to read text one screen
-         sized page at a time. If you want to read text that is larger than
-         the screen, and you are using anything faster than a 300 baud modem,
-         you will probably find this utility very helpful. If you don't have
-         any need to reading text files, you can leave this disabled.
+       more is a simple utility which allows you to read text one screen
+       sized page at a time. If you want to read text that is larger than
+       the screen, and you are using anything faster than a 300 baud modem,
+       you will probably find this utility very helpful. If you don't have
+       any need to reading text files, you can leave this disabled.
 config BUSYBOX_CONFIG_MOUNT
-       bool "mount"
+       bool "mount (23 kb)"
        default BUSYBOX_DEFAULT_MOUNT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         All files and filesystems in Unix are arranged into one big directory
-         tree. The 'mount' utility is used to graft a filesystem onto a
-         particular part of the tree. A filesystem can either live on a block
-         device, or it can be accessible over the network, as is the case with
-         NFS filesystems. Most people using BusyBox will also want to enable
-         the 'mount' utility.
+       All files and filesystems in Unix are arranged into one big directory
+       tree. The 'mount' utility is used to graft a filesystem onto a
+       particular part of the tree. A filesystem can either live on a block
+       device, or it can be accessible over the network, as is the case with
+       NFS filesystems.
 
 config BUSYBOX_CONFIG_FEATURE_MOUNT_FAKE
-       bool "Support option -f"
+       bool "Support -f (fake mount)"
        default BUSYBOX_DEFAULT_FEATURE_MOUNT_FAKE
        depends on BUSYBOX_CONFIG_MOUNT
        help
-         Enable support for faking a file system mount.
+       Enable support for faking a file system mount.
 
 config BUSYBOX_CONFIG_FEATURE_MOUNT_VERBOSE
-       bool "Support option -v"
+       bool "Support -v (verbose)"
        default BUSYBOX_DEFAULT_FEATURE_MOUNT_VERBOSE
        depends on BUSYBOX_CONFIG_MOUNT
        help
-         Enable multi-level -v[vv...] verbose messages. Useful if you
-         debug mount problems and want to see what is exactly passed
-         to the kernel.
+       Enable multi-level -v[vv...] verbose messages. Useful if you
+       debug mount problems and want to see what is exactly passed
+       to the kernel.
 
 config BUSYBOX_CONFIG_FEATURE_MOUNT_HELPERS
        bool "Support mount helpers"
        default BUSYBOX_DEFAULT_FEATURE_MOUNT_HELPERS
        depends on BUSYBOX_CONFIG_MOUNT
        help
-         Enable mounting of virtual file systems via external helpers.
-         E.g. "mount obexfs#-b00.11.22.33.44.55 /mnt" will in effect call
-         "obexfs -b00.11.22.33.44.55 /mnt"
-         Also "mount -t sometype [-o opts] fs /mnt" will try
-         "sometype [-o opts] fs /mnt" if simple mount syscall fails.
-         The idea is to use such virtual filesystems in /etc/fstab.
+       Enable mounting of virtual file systems via external helpers.
+       E.g. "mount obexfs#-b00.11.22.33.44.55 /mnt" will in effect call
+       "obexfs -b00.11.22.33.44.55 /mnt"
+       Also "mount -t sometype [-o opts] fs /mnt" will try
+       "sometype [-o opts] fs /mnt" if simple mount syscall fails.
+       The idea is to use such virtual filesystems in /etc/fstab.
 
 config BUSYBOX_CONFIG_FEATURE_MOUNT_LABEL
        bool "Support specifying devices by label or UUID"
@@ -623,273 +614,318 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_LABEL
        depends on BUSYBOX_CONFIG_MOUNT
        select BUSYBOX_CONFIG_VOLUMEID
        help
-         This allows for specifying a device by label or uuid, rather than by
-         name. This feature utilizes the same functionality as blkid/findfs.
-         This also enables label or uuid support for swapon.
+       This allows for specifying a device by label or uuid, rather than by
+       name. This feature utilizes the same functionality as blkid/findfs.
 
 config BUSYBOX_CONFIG_FEATURE_MOUNT_NFS
        bool "Support mounting NFS file systems on Linux < 2.6.23"
        default BUSYBOX_DEFAULT_FEATURE_MOUNT_NFS
        depends on BUSYBOX_CONFIG_MOUNT
-       select BUSYBOX_CONFIG_FEATURE_HAVE_RPC
        select BUSYBOX_CONFIG_FEATURE_SYSLOG
        help
-         Enable mounting of NFS file systems on Linux kernels prior
-         to version 2.6.23. Note that in this case mounting of NFS
-         over IPv6 will not be possible.
+       Enable mounting of NFS file systems on Linux kernels prior
+       to version 2.6.23. Note that in this case mounting of NFS
+       over IPv6 will not be possible.
 
-         Note that this option links in RPC support from libc,
-         which is rather large (~10 kbytes on uclibc).
+       Note that this option links in RPC support from libc,
+       which is rather large (~10 kbytes on uclibc).
 
 config BUSYBOX_CONFIG_FEATURE_MOUNT_CIFS
        bool "Support mounting CIFS/SMB file systems"
        default BUSYBOX_DEFAULT_FEATURE_MOUNT_CIFS
        depends on BUSYBOX_CONFIG_MOUNT
        help
-         Enable support for samba mounts.
+       Enable support for samba mounts.
 
 config BUSYBOX_CONFIG_FEATURE_MOUNT_FLAGS
        depends on BUSYBOX_CONFIG_MOUNT
        bool "Support lots of -o flags"
        default BUSYBOX_DEFAULT_FEATURE_MOUNT_FLAGS
        help
-         Without this, mount only supports ro/rw/remount. With this, it
-         supports nosuid, suid, dev, nodev, exec, noexec, sync, async, atime,
-         noatime, diratime, nodiratime, loud, bind, move, shared, slave,
-         private, unbindable, rshared, rslave, rprivate, and runbindable.
+       Without this, mount only supports ro/rw/remount. With this, it
+       supports nosuid, suid, dev, nodev, exec, noexec, sync, async, atime,
+       noatime, diratime, nodiratime, loud, bind, move, shared, slave,
+       private, unbindable, rshared, rslave, rprivate, and runbindable.
 
 config BUSYBOX_CONFIG_FEATURE_MOUNT_FSTAB
        depends on BUSYBOX_CONFIG_MOUNT
-       bool "Support /etc/fstab and -a"
+       bool "Support /etc/fstab and -a (mount all)"
        default BUSYBOX_DEFAULT_FEATURE_MOUNT_FSTAB
        help
-         Support mount all and looking for files in /etc/fstab.
+       Support mount all and looking for files in /etc/fstab.
 
 config BUSYBOX_CONFIG_FEATURE_MOUNT_OTHERTAB
        depends on BUSYBOX_CONFIG_FEATURE_MOUNT_FSTAB
        bool "Support -T <alt_fstab>"
        default BUSYBOX_DEFAULT_FEATURE_MOUNT_OTHERTAB
        help
-         Support mount -T (specifying an alternate fstab)
+       Support mount -T (specifying an alternate fstab)
 config BUSYBOX_CONFIG_MOUNTPOINT
-       bool "mountpoint"
+       bool "mountpoint (4.9 kb)"
        default BUSYBOX_DEFAULT_MOUNTPOINT
        help
-         mountpoint checks if the directory is a mountpoint.
+       mountpoint checks if the directory is a mountpoint.
+config BUSYBOX_CONFIG_NOLOGIN
+       bool "nologin"
+       default BUSYBOX_DEFAULT_NOLOGIN
+       depends on BUSYBOX_CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS
+       help
+       Politely refuse a login
+
+config BUSYBOX_CONFIG_NOLOGIN_DEPENDENCIES
+       bool "Enable dependencies for nologin"
+       default BUSYBOX_DEFAULT_NOLOGIN_DEPENDENCIES
+       depends on BUSYBOX_CONFIG_NOLOGIN
+       select BUSYBOX_CONFIG_CAT
+       select BUSYBOX_CONFIG_ECHO
+       select BUSYBOX_CONFIG_SLEEP
+       help
+       nologin is implemented as a shell script. It requires the
+       following in the runtime environment:
+               cat echo sleep
+       If you know these will be available externally you can
+       disable this option.
 config BUSYBOX_CONFIG_NSENTER
-       bool "nsenter"
+       bool "nsenter (6.5 kb)"
        default BUSYBOX_DEFAULT_NSENTER
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Run program with namespaces of other processes.
-
-config BUSYBOX_CONFIG_FEATURE_NSENTER_LONG_OPTS
-       bool "Enable long options"
-       default BUSYBOX_DEFAULT_FEATURE_NSENTER_LONG_OPTS
-       depends on BUSYBOX_CONFIG_NSENTER && BUSYBOX_CONFIG_LONG_OPTS
-       help
-         Support long options for the nsenter applet. This makes
-         the busybox implementation more compatible with upstream.
+       Run program with namespaces of other processes.
 config BUSYBOX_CONFIG_PIVOT_ROOT
-       bool "pivot_root"
+       bool "pivot_root (1.1 kb)"
        default BUSYBOX_DEFAULT_PIVOT_ROOT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         The pivot_root utility swaps the mount points for the root filesystem
-         with some other mounted filesystem. This allows you to do all sorts
-         of wild and crazy things with your Linux system and is far more
-         powerful than 'chroot'.
+       The pivot_root utility swaps the mount points for the root filesystem
+       with some other mounted filesystem. This allows you to do all sorts
+       of wild and crazy things with your Linux system and is far more
+       powerful than 'chroot'.
 
-         Note: This is for initrd in linux 2.4. Under initramfs (introduced
-         in linux 2.6) use switch_root instead.
+       Note: This is for initrd in linux 2.4. Under initramfs (introduced
+       in linux 2.6) use switch_root instead.
 config BUSYBOX_CONFIG_RDATE
-       bool "rdate"
+       bool "rdate (5.6 kb)"
        default BUSYBOX_DEFAULT_RDATE
        help
-         The rdate utility allows you to synchronize the date and time of your
-         system clock with the date and time of a remote networked system using
-         the RFC868 protocol, which is built into the inetd daemon on most
-         systems.
+       The rdate utility allows you to synchronize the date and time of your
+       system clock with the date and time of a remote networked system using
+       the RFC868 protocol, which is built into the inetd daemon on most
+       systems.
 config BUSYBOX_CONFIG_RDEV
-       bool "rdev"
+       bool "rdev (1.8 kb)"
        default BUSYBOX_DEFAULT_RDEV
        help
-         Print the device node associated with the filesystem mounted at '/'.
+       Print the device node associated with the filesystem mounted at '/'.
 config BUSYBOX_CONFIG_READPROFILE
-       bool "readprofile"
+       bool "readprofile (7.1 kb)"
        default BUSYBOX_DEFAULT_READPROFILE
        #select PLATFORM_LINUX
        help
-         This allows you to parse /proc/profile for basic profiling.
+       This allows you to parse /proc/profile for basic profiling.
 config BUSYBOX_CONFIG_RENICE
-       bool "renice"
+       bool "renice (4.2 kb)"
        default BUSYBOX_DEFAULT_RENICE
        help
-         Renice alters the scheduling priority of one or more running
-         processes.
+       Renice alters the scheduling priority of one or more running
+       processes.
 config BUSYBOX_CONFIG_REV
-       bool "rev"
+       bool "rev (4.4 kb)"
        default BUSYBOX_DEFAULT_REV
        help
-         Reverse lines of a file or files.
+       Reverse lines of a file or files.
 config BUSYBOX_CONFIG_RTCWAKE
-       bool "rtcwake"
+       bool "rtcwake (6.8 kb)"
        default BUSYBOX_DEFAULT_RTCWAKE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Enter a system sleep state until specified wakeup time.
+       Enter a system sleep state until specified wakeup time.
 config BUSYBOX_CONFIG_SCRIPT
-       bool "script"
+       bool "script (8.6 kb)"
        default BUSYBOX_DEFAULT_SCRIPT
        help
-         The script makes typescript of terminal session.
+       The script makes typescript of terminal session.
 config BUSYBOX_CONFIG_SCRIPTREPLAY
-       bool "scriptreplay"
+       bool "scriptreplay (2.4 kb)"
        default BUSYBOX_DEFAULT_SCRIPTREPLAY
        help
-         This program replays a typescript, using timing information
-         given by script -t.
+       This program replays a typescript, using timing information
+       given by script -t.
 config BUSYBOX_CONFIG_SETARCH
-       bool "setarch"
+       bool "setarch (3.6 kb)"
        default BUSYBOX_DEFAULT_SETARCH
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         The linux32 utility is used to create a 32bit environment for the
-         specified program (usually a shell). It only makes sense to have
-         this util on a system that supports both 64bit and 32bit userland
-         (like amd64/x86, ppc64/ppc, sparc64/sparc, etc...).
+       The linux32 utility is used to create a 32bit environment for the
+       specified program (usually a shell). It only makes sense to have
+       this util on a system that supports both 64bit and 32bit userland
+       (like amd64/x86, ppc64/ppc, sparc64/sparc, etc...).
 
 config BUSYBOX_CONFIG_LINUX32
-       bool "linux32"
+       bool "linux32 (3.3 kb)"
        default BUSYBOX_DEFAULT_LINUX32
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Alias to "setarch linux32".
+       Alias to "setarch linux32".
 
 config BUSYBOX_CONFIG_LINUX64
-       bool "linux64"
+       bool "linux64 (3.3 kb)"
        default BUSYBOX_DEFAULT_LINUX64
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         Alias to "setarch linux64".
+       Alias to "setarch linux64".
 config BUSYBOX_CONFIG_SETPRIV
-       bool "setpriv"
+       bool "setpriv (6.6 kb)"
        default BUSYBOX_DEFAULT_SETPRIV
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        select BUSYBOX_CONFIG_LONG_OPTS
        help
-         Run a program with different Linux privilege settings.
-         Requires kernel >= 3.5
+       Run a program with different Linux privilege settings.
+       Requires kernel >= 3.5
+
+config BUSYBOX_CONFIG_FEATURE_SETPRIV_DUMP
+       bool "Support dumping current privilege state"
+       default BUSYBOX_DEFAULT_FEATURE_SETPRIV_DUMP
+       depends on BUSYBOX_CONFIG_SETPRIV
+       help
+       Enables the "--dump" switch to print out the current privilege
+       state. This is helpful for diagnosing problems.
+
+config BUSYBOX_CONFIG_FEATURE_SETPRIV_CAPABILITIES
+       bool "Support capabilities"
+       default BUSYBOX_DEFAULT_FEATURE_SETPRIV_CAPABILITIES
+       depends on BUSYBOX_CONFIG_SETPRIV
+       help
+       Capabilities can be used to grant processes additional rights
+       without the necessity to always execute as the root user.
+       Enabling this option enables "--dump" to show information on
+       capabilities.
+
+config BUSYBOX_CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES
+       bool "Support capability names"
+       default BUSYBOX_DEFAULT_FEATURE_SETPRIV_CAPABILITY_NAMES
+       depends on BUSYBOX_CONFIG_SETPRIV && BUSYBOX_CONFIG_FEATURE_SETPRIV_CAPABILITIES
+       help
+       Capabilities can be either referenced via a human-readble name,
+       e.g. "net_admin", or using their index, e.g. "cap_12". Enabling
+       this option allows using the human-readable names in addition to
+       the index-based names.
 config BUSYBOX_CONFIG_SETSID
-       bool "setsid"
+       bool "setsid (3.6 kb)"
        default BUSYBOX_DEFAULT_SETSID
        help
-         setsid runs a program in a new session
+       setsid runs a program in a new session
 config BUSYBOX_CONFIG_SWAPON
-       bool "swapon"
+       bool "swapon (15 kb)"
        default BUSYBOX_DEFAULT_SWAPON
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         This option enables the 'swapon' utility.
-         Once you have created some swap space using 'mkswap', you also need
-         to enable your swap space with the 'swapon' utility. The 'swapoff'
-         utility is used, typically at system shutdown, to disable any swap
-         space. If you are not using any swap space, you can leave this
-         option disabled.
+       Once you have created some swap space using 'mkswap', you also need
+       to enable your swap space with the 'swapon' utility. The 'swapoff'
+       utility is used, typically at system shutdown, to disable any swap
+       space. If you are not using any swap space, you can leave this
+       option disabled.
 
 config BUSYBOX_CONFIG_FEATURE_SWAPON_DISCARD
        bool "Support discard option -d"
        default BUSYBOX_DEFAULT_FEATURE_SWAPON_DISCARD
        depends on BUSYBOX_CONFIG_SWAPON
        help
-         Enable support for discarding swap area blocks at swapon and/or as
-         the kernel frees them. This option enables both the -d option on
-         'swapon' and the 'discard' option for swap entries in /etc/fstab.
+       Enable support for discarding swap area blocks at swapon and/or as
+       the kernel frees them. This option enables both the -d option on
+       'swapon' and the 'discard' option for swap entries in /etc/fstab.
 
 config BUSYBOX_CONFIG_FEATURE_SWAPON_PRI
        bool "Support priority option -p"
        default BUSYBOX_DEFAULT_FEATURE_SWAPON_PRI
        depends on BUSYBOX_CONFIG_SWAPON
        help
-         Enable support for setting swap device priority in swapon.
+       Enable support for setting swap device priority in swapon.
 
 config BUSYBOX_CONFIG_SWAPOFF
-       bool "swapoff"
+       bool "swapoff (14 kb)"
        default BUSYBOX_DEFAULT_SWAPOFF
        select BUSYBOX_CONFIG_PLATFORM_LINUX
+
+config BUSYBOX_CONFIG_FEATURE_SWAPONOFF_LABEL
+       bool "Support specifying devices by label or UUID"
+       default BUSYBOX_DEFAULT_FEATURE_SWAPONOFF_LABEL
+       depends on BUSYBOX_CONFIG_SWAPON || BUSYBOX_CONFIG_SWAPOFF
+       select BUSYBOX_CONFIG_VOLUMEID
        help
-         This option enables the 'swapoff' utility.
+       This allows for specifying a device by label or uuid, rather than by
+       name. This feature utilizes the same functionality as blkid/findfs.
 config BUSYBOX_CONFIG_SWITCH_ROOT
-       bool "switch_root"
+       bool "switch_root (5.5 kb)"
        default BUSYBOX_DEFAULT_SWITCH_ROOT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         The switch_root utility is used from initramfs to select a new
-         root device. Under initramfs, you have to use this instead of
-         pivot_root. (Stop reading here if you don't care why.)
+       The switch_root utility is used from initramfs to select a new
+       root device. Under initramfs, you have to use this instead of
+       pivot_root. (Stop reading here if you don't care why.)
+
+       Booting with initramfs extracts a gzipped cpio archive into rootfs
+       (which is a variant of ramfs/tmpfs). Because rootfs can't be moved
+       or unmounted*, pivot_root will not work from initramfs. Instead,
+       switch_root deletes everything out of rootfs (including itself),
+       does a mount --move that overmounts rootfs with the new root, and
+       then execs the specified init program.
 
-         Booting with initramfs extracts a gzipped cpio archive into rootfs
-         (which is a variant of ramfs/tmpfs). Because rootfs can't be moved
-         or unmounted*, pivot_root will not work from initramfs. Instead,
-         switch_root deletes everything out of rootfs (including itself),
-         does a mount --move that overmounts rootfs with the new root, and
-         then execs the specified init program.
+       * Because the Linux kernel uses rootfs internally as the starting
+       and ending point for searching through the kernel's doubly linked
+       list of active mount points. That's why.
 
-         * Because the Linux kernel uses rootfs internally as the starting
-         and ending point for searching through the kernel's doubly linked
-         list of active mount points. That's why.
 config BUSYBOX_CONFIG_TASKSET
-       bool "taskset"
+       bool "taskset (4.2 kb)"
        default BUSYBOX_DEFAULT_TASKSET
        help
-         Retrieve or set a processes's CPU affinity.
-         This requires sched_{g,s}etaffinity support in your libc.
+       Retrieve or set a processes's CPU affinity.
+       This requires sched_{g,s}etaffinity support in your libc.
 
 config BUSYBOX_CONFIG_FEATURE_TASKSET_FANCY
        bool "Fancy output"
        default BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY
        depends on BUSYBOX_CONFIG_TASKSET
        help
-         Needed for machines with more than 32-64 CPUs:
-         affinity parameter 0xHHHHHHHHHHHHHHHHHHHH can be arbitrarily long
-         in this case. Otherwise, it is limited to sizeof(long).
+       Needed for machines with more than 32-64 CPUs:
+       affinity parameter 0xHHHHHHHHHHHHHHHHHHHH can be arbitrarily long
+       in this case. Otherwise, it is limited to sizeof(long).
 config BUSYBOX_CONFIG_UEVENT
-       bool "uevent"
+       bool "uevent (3.1 kb)"
        default BUSYBOX_DEFAULT_UEVENT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         uevent is a netlink listener for kernel uevent notifications
-         sent via netlink. It is usually used for dynamic device creation.
+       uevent is a netlink listener for kernel uevent notifications
+       sent via netlink. It is usually used for dynamic device creation.
 config BUSYBOX_CONFIG_UMOUNT
-       bool "umount"
+       bool "umount (5.1 kb)"
        default BUSYBOX_DEFAULT_UMOUNT
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
-         When you want to remove a mounted filesystem from its current mount
-         point, for example when you are shutting down the system, the
-         'umount' utility is the tool to use. If you enabled the 'mount'
-         utility, you almost certainly also want to enable 'umount'.
+       When you want to remove a mounted filesystem from its current mount
+       point, for example when you are shutting down the system, the
+       'umount' utility is the tool to use. If you enabled the 'mount'
+       utility, you almost certainly also want to enable 'umount'.
 
 config BUSYBOX_CONFIG_FEATURE_UMOUNT_ALL
-       bool "Support option -a"
+       bool "Support -a (unmount all)"
        default BUSYBOX_DEFAULT_FEATURE_UMOUNT_ALL
        depends on BUSYBOX_CONFIG_UMOUNT
        help
-         Support -a option to unmount all currently mounted filesystems.
+       Support -a option to unmount all currently mounted filesystems.
 config BUSYBOX_CONFIG_UNSHARE
-       bool "unshare"
+       bool "unshare (7.2 kb)"
        default BUSYBOX_DEFAULT_UNSHARE
        depends on !BUSYBOX_CONFIG_NOMMU
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        select BUSYBOX_CONFIG_LONG_OPTS
        help
-         Run program with some namespaces unshared from parent.
+       Run program with some namespaces unshared from parent.
 config BUSYBOX_CONFIG_WALL
-       bool "wall"
+       bool "wall (2.6 kb)"
        default BUSYBOX_DEFAULT_WALL
        depends on BUSYBOX_CONFIG_FEATURE_UTMP
        help
-         Write a message to all users that are logged in.
+       Write a message to all users that are logged in.
 
 comment "Common options for mount/umount"
        depends on BUSYBOX_CONFIG_MOUNT || BUSYBOX_CONFIG_UMOUNT
@@ -899,29 +935,29 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_LOOP
        default BUSYBOX_DEFAULT_FEATURE_MOUNT_LOOP
        depends on BUSYBOX_CONFIG_MOUNT || BUSYBOX_CONFIG_UMOUNT
        help
-         Enabling this feature allows automatic mounting of files (containing
-         filesystem images) via the linux kernel's loopback devices.
-         The mount command will detect you are trying to mount a file instead
-         of a block device, and transparently associate the file with a
-         loopback device. The umount command will also free that loopback
-         device.
+       Enabling this feature allows automatic mounting of files (containing
+       filesystem images) via the linux kernel's loopback devices.
+       The mount command will detect you are trying to mount a file instead
+       of a block device, and transparently associate the file with a
+       loopback device. The umount command will also free that loopback
+       device.
 
-         You can still use the 'losetup' utility (to manually associate files
-         with loop devices) if you need to do something advanced, such as
-         specify an offset or cryptographic options to the loopback device.
-         (If you don't want umount to free the loop device, use "umount -D".)
+       You can still use the 'losetup' utility (to manually associate files
+       with loop devices) if you need to do something advanced, such as
+       specify an offset or cryptographic options to the loopback device.
+       (If you don't want umount to free the loop device, use "umount -D".)
 
 config BUSYBOX_CONFIG_FEATURE_MOUNT_LOOP_CREATE
        bool "Create new loopback devices if needed"
        default BUSYBOX_DEFAULT_FEATURE_MOUNT_LOOP_CREATE
        depends on BUSYBOX_CONFIG_FEATURE_MOUNT_LOOP
        help
-         Linux kernels >= 2.6.24 support unlimited loopback devices. They are
-         allocated for use when trying to use a loop device. The loop device
-         must however exist.
+       Linux kernels >= 2.6.24 support unlimited loopback devices. They are
+       allocated for use when trying to use a loop device. The loop device
+       must however exist.
 
-         This feature lets mount to try to create next /dev/loopN device
-         if it does not find a free one.
+       This feature lets mount to try to create next /dev/loopN device
+       if it does not find a free one.
 
 config BUSYBOX_CONFIG_FEATURE_MTAB_SUPPORT
        bool "Support old /etc/mtab file"
@@ -929,23 +965,23 @@ config BUSYBOX_CONFIG_FEATURE_MTAB_SUPPORT
        depends on BUSYBOX_CONFIG_MOUNT || BUSYBOX_CONFIG_UMOUNT
        select BUSYBOX_CONFIG_FEATURE_MOUNT_FAKE
        help
-         Historically, Unix systems kept track of the currently mounted
-         partitions in the file "/etc/mtab". These days, the kernel exports
-         the list of currently mounted partitions in "/proc/mounts", rendering
-         the old mtab file obsolete. (In modern systems, /etc/mtab should be
-         a symlink to /proc/mounts.)
-
-         The only reason to have mount maintain an /etc/mtab file itself is if
-         your stripped-down embedded system does not have a /proc directory.
-         If you must use this, keep in mind it's inherently brittle (for
-         example a mount under chroot won't update it), can't handle modern
-         features like separate per-process filesystem namespaces, requires
-         that your /etc directory be writable, tends to get easily confused
-         by --bind or --move mounts, won't update if you rename a directory
-         that contains a mount point, and so on. (In brief: avoid.)
-
-         About the only reason to use this is if you've removed /proc from
-         your kernel.
+       Historically, Unix systems kept track of the currently mounted
+       partitions in the file "/etc/mtab". These days, the kernel exports
+       the list of currently mounted partitions in "/proc/mounts", rendering
+       the old mtab file obsolete. (In modern systems, /etc/mtab should be
+       a symlink to /proc/mounts.)
+
+       The only reason to have mount maintain an /etc/mtab file itself is if
+       your stripped-down embedded system does not have a /proc directory.
+       If you must use this, keep in mind it's inherently brittle (for
+       example a mount under chroot won't update it), can't handle modern
+       features like separate per-process filesystem namespaces, requires
+       that your /etc directory be writable, tends to get easily confused
+       by --bind or --move mounts, won't update if you rename a directory
+       that contains a mount point, and so on. (In brief: avoid.)
+
+       About the only reason to use this is if you've removed /proc from
+       your kernel.
 
 source volume_id/Config.in
 
index afbfa4ae5e3eb9be1f8a18c3bbee076a2fed03dc..b50fcac34af5e9ab3d2065181b565dcdd8f7ae6b 100644 (file)
@@ -1,7 +1,7 @@
 # DO NOT EDIT. This file is generated from Config.src
 #
 # For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
 #
 
 config BUSYBOX_CONFIG_VOLUMEID
@@ -28,9 +28,9 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_EXFAT
        default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_EXFAT
        depends on BUSYBOX_CONFIG_VOLUMEID
        help
-         exFAT (extended FAT) is a proprietary file system designed especially
-         for flash drives. It has many features from NTFS, but with less
-         overhead. exFAT is used on most SDXC cards for consumer electronics.
+       exFAT (extended FAT) is a proprietary file system designed especially
+       for flash drives. It has many features from NTFS, but with less
+       overhead. exFAT is used on most SDXC cards for consumer electronics.
 config BUSYBOX_CONFIG_FEATURE_VOLUMEID_EXT
        bool "Ext filesystem"
        default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_EXT
@@ -40,10 +40,10 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_F2FS
        default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_F2FS
        depends on BUSYBOX_CONFIG_VOLUMEID
        help
-         F2FS (aka Flash-Friendly File System) is a log-structured file system,
-         which is adapted to newer forms of storage. F2FS also remedies some
-         known issues of the older log structured file systems, such as high
-         cleaning overhead.
+       F2FS (aka Flash-Friendly File System) is a log-structured file system,
+       which is adapted to newer forms of storage. F2FS also remedies some
+       known issues of the older log structured file systems, such as high
+       cleaning overhead.
 config BUSYBOX_CONFIG_FEATURE_VOLUMEID_FAT
        bool "fat filesystem"
        default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_FAT
@@ -60,6 +60,16 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_JFS
        bool "jfs filesystem"
        default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_JFS
        depends on BUSYBOX_CONFIG_VOLUMEID
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LFS
+       bool "LittleFS filesystem"
+       default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LFS
+       depends on BUSYBOX_CONFIG_VOLUMEID && BUSYBOX_CONFIG_FEATURE_BLKID_TYPE
+       help
+       LittleFS is a small fail-safe filesystem designed for embedded
+       systems. It has strong copy-on-write guarantees and storage on disk
+       is always kept in a valid state. It also provides a form of dynamic
+       wear levelling for systems that can not fit a full flash translation
+       layer.
 config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXRAID
        bool "linuxraid"
        default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LINUXRAID
@@ -72,21 +82,25 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LUKS
        bool "luks filesystem"
        default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LUKS
        depends on BUSYBOX_CONFIG_VOLUMEID
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_MINIX
+       bool "minix filesystem"
+       default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_MINIX
+       depends on BUSYBOX_CONFIG_VOLUMEID
 config BUSYBOX_CONFIG_FEATURE_VOLUMEID_NILFS
        bool "nilfs filesystem"
        default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_NILFS
        depends on BUSYBOX_CONFIG_VOLUMEID
        help
-         NILFS is a New Implementation of a Log-Structured File System (LFS)
-         that supports continuous snapshots. This provides features like
-         versioning of the entire filesystem, restoration of files that
-         were deleted a few minutes ago. NILFS keeps consistency like
-         conventional LFS, so it provides quick recovery after system crashes.
+       NILFS is a New Implementation of a Log-Structured File System (LFS)
+       that supports continuous snapshots. This provides features like
+       versioning of the entire filesystem, restoration of files that
+       were deleted a few minutes ago. NILFS keeps consistency like
+       conventional LFS, so it provides quick recovery after system crashes.
 
-         The possible use of NILFS includes versioning, tamper detection,
-         SOX compliance logging, and so forth. It can serve as an alternative
-         filesystem for Linux desktop environment, or as a basis of advanced
-         storage appliances.
+       The possible use of NILFS includes versioning, tamper detection,
+       SOX compliance logging, and so forth. It can serve as an alternative
+       filesystem for Linux desktop environment, or as a basis of advanced
+       storage appliances.
 config BUSYBOX_CONFIG_FEATURE_VOLUMEID_NTFS
        bool "ntfs filesystem"
        default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_NTFS
@@ -108,10 +122,10 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_SQUASHFS
        default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_SQUASHFS
        depends on BUSYBOX_CONFIG_VOLUMEID && BUSYBOX_CONFIG_FEATURE_BLKID_TYPE
        help
-         Squashfs is a compressed read-only filesystem for Linux. Squashfs is
-         intended for general read-only filesystem use and in constrained block
-         device/memory systems (e.g. embedded systems) where low overhead is
-         needed.
+       Squashfs is a compressed read-only filesystem for Linux. Squashfs is
+       intended for general read-only filesystem use and in constrained block
+       device/memory systems (e.g. embedded systems) where low overhead is
+       needed.
 config BUSYBOX_CONFIG_FEATURE_VOLUMEID_SYSV
        bool "sysv filesystem"
        default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_SYSV
@@ -121,8 +135,8 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UBIFS
        default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UBIFS
        depends on BUSYBOX_CONFIG_VOLUMEID
        help
-         UBIFS (Unsorted Block Image File System) is a file
-         system for use with raw flash memory media.
+       UBIFS (Unsorted Block Image File System) is a file
+       system for use with raw flash memory media.
 config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UDF
        bool "udf filesystem"
        default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UDF
@@ -151,10 +165,6 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UDF
 ###    bool "mac filesystem"
 ###    default y
 ###    depends on VOLUMEID
-### config FEATURE_VOLUMEID_MINIX
-###    bool "minix filesystem"
-###    default y
-###    depends on VOLUMEID
 ### config FEATURE_VOLUMEID_MSDOS
 ###    bool "msdos filesystem"
 ###    default y
index e693e4031c04a6efaf6055522aaa0fa4cbf44b95..52866ba32acd26a490f9c9024fc3e43e0f757496 100755 (executable)
@@ -29,14 +29,14 @@ get_dhcp_ntp_servers() {
 }
 
 validate_ntp_section() {
-       uci_validate_section system timeserver "${1}" \
+       uci_load_validate system timeserver "$1" "$2" \
                'server:list(host)' 'enabled:bool:1' 'enable_server:bool:0' 'use_dhcp:bool:1' 'dhcp_interface:list(string)'
 }
 
-start_service() {
-       local server enabled enable_server use_dhcp dhcp_interface peer
+start_ntpd_instance() {
+       local peer
 
-       validate_ntp_section ntp || {
+       [ "$2" = 0 ] || {
                echo "validation failed"
                return 1
        }
@@ -58,6 +58,10 @@ start_service() {
        procd_close_instance
 }
 
+start_service() {
+       validate_ntp_section ntp start_ntpd_instance
+}
+
 service_triggers() {
        local script name use_dhcp
 
diff --git a/package/utils/busybox/patches/520-loginutils-handle-crypt-failures.patch b/package/utils/busybox/patches/520-loginutils-handle-crypt-failures.patch
new file mode 100644 (file)
index 0000000..d443754
--- /dev/null
@@ -0,0 +1,53 @@
+--- a/loginutils/chpasswd.c
++++ b/loginutils/chpasswd.c
+@@ -97,6 +97,11 @@ int chpasswd_main(int argc UNUSED_PARAM,
+                       crypt_make_pw_salt(salt, algo);
+                       free_me = pass = pw_encrypt(pass, salt, 0);
++
++                      if (pass[0] == 0) {
++                              free(free_me);
++                              bb_perror_msg_and_die("password encryption failed");
++                      }
+               }
+               /* This is rather complex: if user is not found in /etc/shadow,
+--- a/loginutils/cryptpw.c
++++ b/loginutils/cryptpw.c
+@@ -95,7 +95,7 @@ int cryptpw_main(int argc UNUSED_PARAM,
+       /* Supports: cryptpw -m sha256 PASS 'rounds=999999999$SALT' */
+       char salt[MAX_PW_SALT_LEN + sizeof("rounds=999999999$")];
+       char *salt_ptr;
+-      char *password;
++      char *password, *hash;
+       const char *opt_m, *opt_S;
+       int fd;
+@@ -140,8 +140,12 @@ int cryptpw_main(int argc UNUSED_PARAM,
+               /* may still be NULL on EOF/error */
+       }
+-      if (password)
+-              puts(pw_encrypt(password, salt, 1));
++      if (password) {
++              hash = pw_encrypt(password, salt, 1);
++              if (hash[0] == 0)
++                      bb_perror_msg_and_die("password encryption failed");
++              puts(hash);
++      }
+       return EXIT_SUCCESS;
+ }
+--- a/loginutils/passwd.c
++++ b/loginutils/passwd.c
+@@ -187,6 +187,10 @@ int passwd_main(int argc UNUSED_PARAM, c
+               if (!newp) {
+                       logmode = LOGMODE_STDIO;
+                       bb_error_msg_and_die("password for %s is unchanged", name);
++              } else if (newp[0] == 0) {
++                      logmode = LOGMODE_STDIO;
++                      free(newp);
++                      bb_perror_msg_and_die("password encryption failed");
+               }
+       } else if (opt & OPT_lock) {
+               if (!c)
index d26e21575713acada8f9181104d780af490d4f88..9c64d2264a0d0ffe219e4a1bcefcfdefeb0fcc51 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bzip2
 PKG_VERSION:=1.0.6
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://distfiles.gentoo.org/distfiles/ \
@@ -35,6 +35,7 @@ $(call Package/bzip2/Default)
   CATEGORY:=Libraries
   DEPENDS:=
   TITLE:=bzip2 library.
+  ABI_VERSION:=1.0
 endef
 
 define Package/libbz2/description
diff --git a/package/utils/ct-bugcheck/Makefile b/package/utils/ct-bugcheck/Makefile
deleted file mode 100644 (file)
index 5deb1e0..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# Copyright (C) 2016 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-include $(INCLUDE_DIR)/kernel.mk
-
-PKG_NAME:=ct-bugcheck
-PKG_RELEASE:=2016-07-21
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/ct-bugcheck
-  SECTION:=utils
-  CATEGORY:=Utilities
-  TITLE:=Bug checking and reporting utility
-  VERSION:=$(PKG_RELEASE)
-  MAINTAINER:=Ben Greear <greearb@candelatech.com>
-endef
-
-define Package/ct-bugcheck/description
-  Scripts to check for bugs (like firmware crashes) and package them for reporting.
-  Currently this script only checks for ath10k firmware crashes.
-  Once installed, you can enable this tool by creating a file called
-  /etc/config/bugcheck with the following contents:
- DO_BUGCHECK=1
- export DO_BUGCHECK
-
-endef
-
-define Build/Prepare
-       $(CP) src/bugcheck.sh $(PKG_BUILD_DIR)/
-       $(CP) src/bugchecker.sh $(PKG_BUILD_DIR)/
-       $(CP) src/bugcheck.initd $(PKG_BUILD_DIR)/
-endef
-
-define Build/Compile
-       true
-endef
-
-define Package/ct-bugcheck/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bugcheck.sh $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bugchecker.sh $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bugcheck.initd $(1)/etc/init.d/bugcheck
-endef
-
-$(eval $(call BuildPackage,ct-bugcheck))
diff --git a/package/utils/ct-bugcheck/src/bugcheck.initd b/package/utils/ct-bugcheck/src/bugcheck.initd
deleted file mode 100644 (file)
index b97a415..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2016 OpenWrt.org
-
-START=99
-
-USE_PROCD=1
-PROG=/usr/bin/bugchecker.sh
-
-# To actually make bugchecker.sh run, see comments
-# at top of its file.
-
-start_service () {
-        procd_open_instance
-        procd_set_param command "$PROG"
-        procd_close_instance
-}
diff --git a/package/utils/ct-bugcheck/src/bugcheck.sh b/package/utils/ct-bugcheck/src/bugcheck.sh
deleted file mode 100755 (executable)
index 3f73b5e..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/bin/sh
-
-# Check for ath10k (and maybe other) bugs, package them up,
-# and let user know what to do with them.
-
-TMPLOC=/tmp
-CRASHDIR=$TMPLOC/bugcheck
-FOUND_BUG=0
-
-# set -x
-
-bugcheck_generic()
-{
-    echo "libreCMC crashlog report" > $CRASHDIR/info.txt
-    date >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "uname" >> $CRASHDIR/info.txt
-    uname -a >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "os-release" >> $CRASHDIR/info.txt
-    cat /etc/os-release >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "os-release" >> $CRASHDIR/info.txt
-    cat /etc/os-release >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "dmesg output" >> $CRASHDIR/info.txt
-    dmesg >> $CRASHDIR/info.txt
-    if [ -x /usr/bin/lspci ]
-       then
-       echo >> $CRASHDIR/info.txt
-       echo "lspci" >> $CRASHDIR/info.txt
-       lspci >> $CRASHDIR/info.txt
-    fi
-    echo >> $CRASHDIR/info.txt
-    echo "cpuinfo" >> $CRASHDIR/info.txt
-    cat /proc/cpuinfo >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "meminfo" >> $CRASHDIR/info.txt
-    cat /proc/cpuinfo >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "cmdline" >> $CRASHDIR/info.txt
-    cat /proc/cmdline >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "lsmod" >> $CRASHDIR/info.txt
-    lsmod >> $CRASHDIR/info.txt
-}
-
-roll_crashes()
-{
-    # Roll any existing crashes
-    if [ -d $CRASHDIR ]
-       then
-       if [ -d $CRASHDIR.1 ]
-           then
-           rm -fr $CRASHDIR.1
-       fi
-       mv $CRASHDIR $CRASHDIR.1
-    fi
-
-    # Prepare location
-    mkdir -p $CRASHDIR
-}
-
-# ath10k, check debugfs entries.
-for i in /sys/kernel/debug/ieee80211/*/ath10k/fw_crash_dump
-do
-  #echo "Checking $i"
-  if cat $i > $TMPLOC/ath10k_crash.bin 2>&1
-      then
-      FOUND_BUG=1
-
-      #echo "Found ath10k crash data in $i"
-      roll_crashes
-
-      ADIR=${i/fw_crash_dump/}
-
-      CTFW=0
-      if grep -- -ct- $TMPLOC/ath10k_crash.bin > /dev/null 2>&1
-         then
-         CTFW=1
-      fi
-
-      echo "Send bug reports to:" > $CRASHDIR/report_to.txt
-      if [ -f $ADIR/ct_special -o $CTFW == "1" ]
-         then
-         # Looks like this is CT firmware or driver...
-         echo "greearb@candelatech.com" >> $CRASHDIR/report_to.txt
-         echo "and/or report or check for duplicates here:" >> $CRASHDIR/report_to.txt
-         echo "https://github.com/greearb/ath10k-ct/issues" >> $CRASHDIR/report_to.txt
-      else
-         # Not sure who would want these bug reports for upstream...
-         echo "https://www.lede-project.org/" >> $CRASHDIR/report_to.txt
-      fi
-      echo >> $CRASHDIR/report_to.txt
-      echo "Please attach all files in this directory to bug reports." >> $CRASHDIR/report_to.txt
-
-      mv $TMPLOC/ath10k_crash.bin $CRASHDIR
-
-      # Add any more ath10k specific stuff here.
-
-      # And call generic bug reporting logic
-      bugcheck_generic
-  fi
-done
-
-if [ $FOUND_BUG == "1" ]
-    then
-    # Notify LUCI somehow?
-    echo "bugcheck.sh found an issue to be reported" > /dev/kmsg
-    echo "See $CRASHDIR for details on how to report this" > /dev/kmsg
-    # Let calling code know something was wrong.
-    exit 1
-fi
-
-exit 0
diff --git a/package/utils/ct-bugcheck/src/bugchecker.sh b/package/utils/ct-bugcheck/src/bugchecker.sh
deleted file mode 100755 (executable)
index be305af..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-# Periodically call bugcheck.sh script
-
-CHECKER=bugcheck.sh
-SLEEPFOR=60
-
-DO_BUGCHECK=0
-
-# So, to enable this, you create an /etc/config/bugcheck file
-# with contents like:
-#  DO_BUGCHECK=1
-#  export DO_BUGCHECK
-
-if [ -f /etc/config/bugcheck ]
-    then
-    . /etc/config/bugcheck
-fi
-
-if [ $DO_BUGCHECK == 0 ]
-then
-    exit 0
-fi
-
-while true
-  do
-  $CHECKER
-  sleep $SLEEPFOR
-done
index d7a3ead0517d813d2dd01b162a1626a89536e72b..c81ec6fb89c29c44f06ff2af902d82e7c8a44fd5 100644 (file)
@@ -8,13 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=e2fsprogs
-PKG_VERSION:=1.44.3
-PKG_HASH:=5d899f7d30f481cc0c6a049ebe26ebe145f1b524182ea1ecde4086162d4e4bb6
+PKG_VERSION:=1.44.5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/tytso/e2fsprogs/v$(PKG_VERSION)/
+PKG_HASH:=ba5eb3069d69160d96818bb9700de9ab5a8458d9add1fd85d427c0000d34c5b9
+
 PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=NOTICE
 PKG_CPE_ID:=cpe:/a:e2fsprogs_project:e2fsprogs
 
 PKG_BUILD_DEPENDS:=util-linux e2fsprogs/host
@@ -45,6 +47,7 @@ define Package/libext2fs
   TITLE:=ext2/3/4 filesystem library
   URL:=http://e2fsprogs.sourceforge.net/
   DEPENDS:=+libuuid +libblkid +libss +libcomerr
+  ABI_VERSION:=2
 endef
 
 define Package/libext2fs/description
@@ -57,6 +60,7 @@ define Package/libss
   TITLE:=command-line interface parsing library
   URL:=http://e2fsprogs.sourceforge.net/
   DEPENDS:=+libcomerr
+  ABI_VERSION:=2
 endef
 
 define Package/libss/description
@@ -70,6 +74,7 @@ define Package/libcomerr
   TITLE:=common error description library
   URL:=http://e2fsprogs.sourceforge.net/
   DEPENDS:=+libuuid
+  ABI_VERSION:=0
 endef
 
 define Package/libcomerr/description
@@ -107,6 +112,12 @@ $(call Package/e2fsprogs)
   DEPENDS:= +e2fsprogs
 endef
 
+define Package/e4crypt
+$(call Package/e2fsprogs)
+  TITLE:=Ext4 Filesystem encryption utility
+  DEPENDS:= +e2fsprogs
+endef
+
 define Package/filefrag
 $(call Package/e2fsprogs)
   TITLE:=Ext2 Filesystem file fragmentation report utility
@@ -234,12 +245,12 @@ endef
 
 define Package/libcomerr/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcom_err.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcom_err.so.* $(1)/usr/lib/
 endef
 
 define Package/libss/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libss.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libss.so.* $(1)/usr/lib/
 endef
 
 define Package/libext2fs/install
@@ -278,6 +289,11 @@ define Package/e2freefrag/install
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/e2freefrag $(1)/usr/sbin/
 endef
 
+define Package/e4crypt/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/e4crypt $(1)/usr/sbin/
+endef
+
 define Package/filefrag/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/filefrag $(1)/usr/sbin/
@@ -308,6 +324,7 @@ $(eval $(call BuildPackage,resize2fs))
 $(eval $(call BuildPackage,badblocks))
 $(eval $(call BuildPackage,dumpe2fs))
 $(eval $(call BuildPackage,e2freefrag))
+$(eval $(call BuildPackage,e4crypt))
 $(eval $(call BuildPackage,filefrag))
 $(eval $(call BuildPackage,debugfs))
 $(eval $(call BuildPackage,chattr))
index 017aca1b05121506e740494345755e4897338d8d..0bf226f9ea7039065a62f31a8c1f98ebfd9c0e47 100644 (file)
@@ -1,46 +1,40 @@
 --- a/lib/et/compile_et.sh.in
 +++ b/lib/et/compile_et.sh.in
-@@ -2,9 +2,15 @@
+@@ -2,8 +2,14 @@
  #
  #
  
--datarootdir=@datarootdir@
 -AWK=@AWK@
 -DIR=@datadir@/et
 +if test "x$STAGING_DIR" = x ; then
-+      datarootdir=@datarootdir@
 +      AWK=@AWK@
 +      DIR=@datadir@/et
 +else
-+      datarootdir="$STAGING_DIR/../hostpkg/share"
 +      AWK=awk
-+      DIR="$datarootdir/et"
++      DIR="$STAGING_DIR/../hostpkg/share/et"
 +fi
++
  
  if test "$1" = "--build-tree" ; then
      shift;
 --- a/lib/ss/mk_cmds.sh.in
 +++ b/lib/ss/mk_cmds.sh.in
-@@ -1,11 +1,17 @@
- #!/bin/sh
+@@ -2,10 +2,16 @@
  #
  #
--
--datarootdir=@datarootdir@
 -DIR=@datadir@/ss
 -AWK=@AWK@
--SED=@SED@
+ SED=sed
 +if test "x$STAGING_DIR" = x ; then
-+      datarootdir=@datarootdir@
 +      DIR=@datadir@/ss
 +      AWK=@AWK@
-+      SED=@SED@
 +else
-+      datarootdir="$STAGING_DIR/../hostpkg/share"
-+      DIR="$datarootdir/ss"
++      DIR="$STAGING_DIR/../hostpkg/share/ss"
 +      AWK=awk
-+      SED=sed
 +fi
++
  for as_var in \
    LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+   LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
index b782b806704b15aa727e00297b10634fbf91d3e7..8a264c5111bf7ce9de67ddaed3b0a6c1c15b71d4 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=f2fs-tools
 PKG_VERSION:=1.12.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_LICENSE:=GPLv2
 
@@ -54,6 +54,7 @@ define Package/libf2fs
   CATEGORY:=Libraries
   TITLE:=Library for Flash-Friendly File System (F2FS) tools
   DEPENDS:=+libuuid
+  ABI_VERSION:=6
 endef
 
 CONFIGURE_ARGS += \
@@ -66,7 +67,7 @@ CONFIGURE_VARS += \
 define Package/libf2fs/install
        $(INSTALL_DIR) $(1)/usr/lib
        $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/libf2fs.so* $(1)/usr/lib/
+               $(PKG_INSTALL_DIR)/usr/lib/libf2fs.so.* $(1)/usr/lib/
 endef
 
 define Package/mkf2fs/install
diff --git a/package/utils/fritz-tools/Makefile b/package/utils/fritz-tools/Makefile
deleted file mode 100644 (file)
index 7c547e6..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=fritz-tools
-PKG_RELEASE:=1
-CMAKE_INSTALL:=1
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/cmake.mk
-
-define Package/fritz-tools/Default
-  SECTION:=utils
-  CATEGORY:=Utilities
-endef
-
-define Package/fritz-tffs
-  $(call Package/fritz-tools/Default)
-  TITLE:=Utility to partially read the TFFS filesystems
-endef
-
-define Package/fritz-tffs/description
- Utility to partially read the TFFS filesystems.
-endef
-
-define Package/fritz-caldata
-  $(call Package/fritz-tools/Default)
-  DEPENDS:=+zlib
-  TITLE:=Utility to extract WLAN calibration data
-endef
-
-define Package/fritz-caldata/description
- Utility to extract the zlib compress calibration data from flash.
-endef
-
-define Package/fritz-tffs/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/fritz_tffs_read $(1)/usr/bin/fritz_tffs
-endef
-
-define Package/fritz-caldata/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/fritz_cal_extract $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,fritz-tffs))
-$(eval $(call BuildPackage,fritz-caldata))
diff --git a/package/utils/fritz-tools/README.md b/package/utils/fritz-tools/README.md
deleted file mode 100644 (file)
index def237b..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-Userspace utilties for accessing TFFS (a name-value storage usually found in AVM Fritz!Box based devices)
-
-## Building
-
-```
-mkdir build
-cd build
-cmake /path/to/fritz_tffs_tools
-make
-```
-
-## Usage
-
-All command line parameters are documented:
-```
-fritz_tffs_read -h
-```
-
-Show all entries from a TFFS partition dump  (in the format: name=value):
-```
-fritz_tffs_read -i /path/to/tffs.dump -a
-```
-
-Read a TFFS partition and show all entries (in the format: name=value):
-```
-fritz_tffs_read -i /dev/mtdX -a
-```
-
-Output only the value of a specific key (this will only show the value):
-```
-fritz_tffs_read -i /dev/mtdX -n my_ipaddress
-```
-
-## LICENSE
-
-See `LICENSE`:
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program 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 General Public License for more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc.,
-    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
diff --git a/package/utils/fritz-tools/src/CMakeLists.txt b/package/utils/fritz-tools/src/CMakeLists.txt
deleted file mode 100644 (file)
index 021dc77..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-cmake_minimum_required(VERSION 2.6)
-
-PROJECT(fritz-tools C)
-ADD_DEFINITIONS(-Wall -Werror --std=gnu99 -Wmissing-declarations)
-
-SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
-
-FIND_PATH(zlib_include_dir zlib.h)
-INCLUDE_DIRECTORIES(${zlib_include_dir})
-
-ADD_EXECUTABLE(fritz_tffs_read fritz_tffs_read.c)
-ADD_EXECUTABLE(fritz_cal_extract fritz_cal_extract.c)
-TARGET_LINK_LIBRARIES(fritz_cal_extract z)
-
-INSTALL(TARGETS fritz_tffs_read fritz_cal_extract RUNTIME DESTINATION bin)
diff --git a/package/utils/fritz-tools/src/fritz_cal_extract.c b/package/utils/fritz-tools/src/fritz_cal_extract.c
deleted file mode 100644 (file)
index 8156dfd..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * A tool for reading the zlib compressed calibration data
- * found in AVM Fritz!Box based devices).
- *
- * Copyright (c) 2017 Christian Lamparter <chunkeey@googlemail.com>
- *
- * Based on zpipe, which is an example of proper use of zlib's inflate().
- * that is Not copyrighted -- provided to the public domain
- * Version 1.4  11 December 2005  Mark Adler
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-#include <unistd.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <endian.h>
-#include <errno.h>
-#include "zlib.h"
-
-#define CHUNK 1024
-
-static inline size_t special_min(size_t a, size_t b)
-{
-       return a == 0 ? b : (a < b ? a : b);
-}
-
-/* Decompress from file source to file dest until stream ends or EOF.
-   inf() returns Z_OK on success, Z_MEM_ERROR if memory could not be
-   allocated for processing, Z_DATA_ERROR if the deflate data is
-   invalid or incomplete, Z_VERSION_ERROR if the version of zlib.h and
-   the version of the library linked do not match, or Z_ERRNO if there
-   is an error reading or writing the files. */
-static int inf(FILE *source, FILE *dest, size_t limit, size_t skip)
-{
-    int ret;
-    size_t have;
-    z_stream strm;
-    unsigned char in[CHUNK];
-    unsigned char out[CHUNK];
-
-    /* allocate inflate state */
-    strm.zalloc = Z_NULL;
-    strm.zfree = Z_NULL;
-    strm.opaque = Z_NULL;
-    strm.avail_in = 0;
-    strm.next_in = Z_NULL;
-    ret = inflateInit(&strm);
-    if (ret != Z_OK)
-        return ret;
-
-    /* decompress until deflate stream ends or end of file */
-    do {
-        strm.avail_in = fread(in, 1, CHUNK, source);
-        if (ferror(source)) {
-            (void)inflateEnd(&strm);
-            return Z_ERRNO;
-        }
-        if (strm.avail_in == 0)
-            break;
-        strm.next_in = in;
-
-        /* run inflate() on input until output buffer not full */
-        do {
-            strm.avail_out = CHUNK;
-            strm.next_out = out;
-            ret = inflate(&strm, Z_NO_FLUSH);
-            assert(ret != Z_STREAM_ERROR);  /* state not clobbered */
-            switch (ret) {
-            case Z_NEED_DICT:
-                ret = Z_DATA_ERROR;     /* and fall through */
-            case Z_DATA_ERROR:
-            case Z_MEM_ERROR:
-                (void)inflateEnd(&strm);
-                return ret;
-            }
-            have = special_min(limit, CHUNK - strm.avail_out) - skip;
-            if (fwrite(&out[skip], have, 1, dest) != 1 || ferror(dest)) {
-                (void)inflateEnd(&strm);
-                return Z_ERRNO;
-            }
-           skip = 0;
-           limit -= have;
-        } while (strm.avail_out == 0 && limit > 0);
-
-        /* done when inflate() says it's done */
-    } while (ret != Z_STREAM_END && limit > 0);
-
-    /* clean up and return */
-    (void)inflateEnd(&strm);
-    return (limit == 0 ? Z_OK : (ret == Z_STREAM_END ? Z_OK : Z_DATA_ERROR));
-}
-
-/* report a zlib or i/o error */
-static void zerr(int ret)
-{
-    switch (ret) {
-    case Z_ERRNO:
-        if (ferror(stdin))
-            fputs("error reading stdin\n", stderr);
-        if (ferror(stdout))
-            fputs("error writing stdout\n", stderr);
-        break;
-    case Z_STREAM_ERROR:
-        fputs("invalid compression level\n", stderr);
-        break;
-    case Z_DATA_ERROR:
-        fputs("invalid or incomplete deflate data\n", stderr);
-        break;
-    case Z_MEM_ERROR:
-        fputs("out of memory\n", stderr);
-        break;
-    case Z_VERSION_ERROR:
-        fputs("zlib version mismatch!\n", stderr);
-    }
-}
-
-static unsigned int get_num(char *str)
-{
-       if (!strncmp("0x", str, 2))
-               return strtoul(str+2, NULL, 16);
-       else
-               return strtoul(str, NULL, 10);
-}
-
-static void usage(void)
-{
-       fprintf(stderr, "Usage: fritz_cal_extract [-s seek offset] [-i skip] [-o output file] [-l limit] [infile] -e entry_id\n"
-                       "Finds and extracts zlib compressed calibration data in the EVA loader\n");
-       exit(EXIT_FAILURE);
-}
-
-struct cal_entry {
-       uint16_t id;
-       uint16_t len;
-} __attribute__((packed));
-
-/* compress or decompress from stdin to stdout */
-int main(int argc, char **argv)
-{
-       struct cal_entry cal = { .len = 0 };
-       FILE *in = stdin;
-       FILE *out = stdout;
-       size_t limit = 0, skip = 0;
-       int initial_offset = 0;
-       int entry = -1;
-       int ret;
-       int opt;
-
-       while ((opt = getopt(argc, argv, "s:e:o:l:i:")) != -1) {
-               switch (opt) {
-               case 's':
-                       initial_offset = (int)get_num(optarg);
-                       if (errno) {
-                               perror("Failed to parse seek offset");
-                               goto out_bad;
-                       }
-                       break;
-               case 'e':
-                       entry = (int) htobe16(get_num(optarg));
-                       if (errno) {
-                               perror("Failed to entry id");
-                               goto out_bad;
-                       }
-                       break;
-               case 'o':
-                       out = fopen(optarg, "w");
-                       if (!out) {
-                               perror("Failed to create output file");
-                               goto out_bad;
-                       }
-                       break;
-               case 'l':
-                       limit = (size_t)get_num(optarg);
-                       if (errno) {
-                               perror("Failed to parse limit");
-                               goto out_bad;
-                       }
-                       break;
-               case 'i':
-                       skip = (size_t)get_num(optarg);
-                       if (errno) {
-                               perror("Failed to parse skip");
-                               goto out_bad;
-                       }
-                       break;
-               default: /* '?' */
-                       usage();
-               }
-       }
-
-       if (entry == -1)
-               usage();
-
-       if (argc > 1 && optind <= argc) {
-               in = fopen(argv[optind], "r");
-               if (!in) {
-                       perror("Failed to create output file");
-                       goto out_bad;
-               }
-       }
-
-       if (initial_offset) {
-               ret = fseek(in, initial_offset, SEEK_CUR);
-               if (ret) {
-                       perror("Failed to seek to calibration table");
-                       goto out_bad;
-               }
-       }
-
-       do {
-               ret = fseek(in, be16toh(cal.len), SEEK_CUR);
-               if (feof(in)) {
-                       fprintf(stderr, "Reached end of file, but didn't find the matching entry\n");
-                       goto out_bad;
-               } else if (ferror(in)) {
-                       perror("Failure during seek");
-                       goto out_bad;
-               }
-
-               ret = fread(&cal, 1, sizeof cal, in);
-               if (ret != sizeof cal)
-                       goto out_bad;
-       } while (entry != cal.id || cal.id == 0xffff);
-
-       if (cal.id == 0xffff) {
-               fprintf(stderr, "Reached end of filesystem, but didn't find the matching entry\n");
-               goto out_bad;
-       }
-
-       ret = inf(in, out, limit, skip);
-       if (ret == Z_OK)
-               goto out;
-
-       zerr(ret);
-
-out_bad:
-       ret = EXIT_FAILURE;
-
-out:
-       fclose(in);
-       fclose(out);
-       return ret;
-}
diff --git a/package/utils/fritz-tools/src/fritz_tffs_read.c b/package/utils/fritz-tools/src/fritz_tffs_read.c
deleted file mode 100644 (file)
index 6bcda90..0000000
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * A tool for reading the TFFS partitions (a name-value storage usually
- * found in AVM Fritz!Box based devices).
- *
- * Copyright (c) 2015-2016 Martin Blumenstingl <martin.blumenstingl@googlemail.com>
- *
- * Based on the TFFS 2.0 kernel driver from AVM:
- *     Copyright (c) 2004-2007 AVM GmbH <fritzbox_info@avm.de>
- * and the libreCMC TFFS kernel driver:
- *     Copyright (c) 2013 John Crispin <blogic@openwrt.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <libgen.h>
-#include <getopt.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <arpa/inet.h>
-
-#define TFFS_ID_END            0xffff
-#define TFFS_ID_TABLE_NAME     0x01ff
-
-static char *progname;
-static char *input_file;
-static unsigned long tffs_size;
-static char *name_filter = NULL;
-static bool show_all = false;
-static bool print_all_key_names = false;
-static bool swap_bytes = false;
-
-struct tffs_entry_header {
-       uint16_t id;
-       uint16_t len;
-};
-
-struct tffs_entry {
-       const struct tffs_entry_header *header;
-       char *name;
-       uint8_t *val;
-};
-
-struct tffs_name_table_entry {
-       const uint32_t *id;
-       const char *val;
-};
-
-struct tffs_key_name_table {
-       uint32_t size;
-       struct tffs_name_table_entry *entries;
-};
-
-static inline uint16_t get_header_len(const struct tffs_entry_header *header)
-{
-       if (swap_bytes)
-               return ntohs(header->len);
-
-       return header->len;
-}
-
-static inline uint16_t get_header_id(const struct tffs_entry_header *header)
-{
-       if (swap_bytes)
-               return ntohs(header->id);
-
-       return header->id;
-}
-
-static inline uint16_t to_entry_header_id(uint32_t name_id)
-{
-       if (swap_bytes)
-               return ntohl(name_id) & 0xffff;
-
-       return name_id & 0xffff;
-}
-
-static inline uint32_t get_walk_size(uint32_t entry_len)
-{
-       return (entry_len + 3) & ~0x03;
-}
-
-static void print_entry_value(const struct tffs_entry *entry)
-{
-       int i;
-
-       /* These are NOT NULL terminated. */
-       for (i = 0; i < get_header_len(entry->header); i++)
-               fprintf(stdout, "%c", entry->val[i]);
-}
-
-static void parse_entry(uint8_t *buffer, uint32_t pos,
-                       struct tffs_entry *entry)
-{
-       entry->header = (struct tffs_entry_header *) &buffer[pos];
-       entry->val = &buffer[pos + sizeof(struct tffs_entry_header)];
-}
-
-static int find_entry(uint8_t *buffer, uint16_t id, struct tffs_entry *entry)
-{
-       uint32_t pos = 0;
-
-       do {
-               parse_entry(buffer, pos, entry);
-
-               if (get_header_id(entry->header) == id)
-                       return 1;
-
-               pos += sizeof(struct tffs_entry_header);
-               pos += get_walk_size(get_header_len(entry->header));
-       } while (pos < tffs_size && entry->header->id != TFFS_ID_END);
-
-       return 0;
-}
-
-static void parse_key_names(struct tffs_entry *names_entry,
-                           struct tffs_key_name_table *key_names)
-{
-       uint32_t pos = 0, i = 0;
-       struct tffs_name_table_entry *name_item;
-
-       key_names->entries = calloc(sizeof(*name_item), 1);
-
-       do {
-               name_item = &key_names->entries[i];
-
-               name_item->id = (uint32_t *) &names_entry->val[pos];
-               pos += sizeof(*name_item->id);
-               name_item->val = (const char *) &names_entry->val[pos];
-
-               /*
-                * There is no "length" field because the string values are
-                * simply NULL-terminated -> strlen() gives us the size.
-                */
-               pos += get_walk_size(strlen(name_item->val) + 1);
-
-               ++i;
-               key_names->entries = realloc(key_names->entries,
-                                               sizeof(*name_item) * (i + 1));
-       } while (pos < get_header_len(names_entry->header));
-
-       key_names->size = i;
-}
-
-static void show_all_key_names(struct tffs_key_name_table *key_names)
-{
-       int i;
-
-       for (i = 0; i < key_names->size; i++)
-               printf("%s\n", key_names->entries[i].val);
-}
-
-static int show_all_key_value_pairs(uint8_t *buffer,
-                                   struct tffs_key_name_table *key_names)
-{
-       int i, has_value = 0;
-       uint16_t id;
-       struct tffs_entry tmp;
-
-       for (i = 0; i < key_names->size; i++) {
-               id = to_entry_header_id(*key_names->entries[i].id);
-
-               if (find_entry(buffer, id, &tmp)) {
-                       printf("%s=", key_names->entries[i].val);
-                       print_entry_value(&tmp);
-                       printf("\n");
-                       has_value++;
-               }
-       }
-
-       if (!has_value) {
-               fprintf(stderr, "ERROR: no values found!\n");
-               return EXIT_FAILURE;
-       }
-
-       return EXIT_SUCCESS;
-}
-
-static int show_matching_key_value(uint8_t *buffer,
-                                  struct tffs_key_name_table *key_names)
-{
-       int i;
-       uint16_t id;
-       struct tffs_entry tmp;
-       const char *name;
-
-       for (i = 0; i < key_names->size; i++) {
-               name = key_names->entries[i].val;
-
-               if (strncmp(name, name_filter, strlen(name)) == 0) {
-                       id = to_entry_header_id(*key_names->entries[i].id);
-
-                       if (find_entry(buffer, id, &tmp)) {
-                               print_entry_value(&tmp);
-                               printf("\n");
-                               return EXIT_SUCCESS;
-                       } else {
-                               fprintf(stderr,
-                                       "ERROR: no value found for name %s!\n",
-                                       name);
-                               return EXIT_FAILURE;
-                       }
-               }
-       }
-
-       fprintf(stderr, "ERROR: Unknown key name %s!\n", name_filter);
-       return EXIT_FAILURE;
-}
-
-static void usage(int status)
-{
-       FILE *stream = (status != EXIT_SUCCESS) ? stderr : stdout;
-
-       fprintf(stream, "Usage: %s [OPTIONS...]\n", progname);
-       fprintf(stream,
-       "\n"
-       "Options:\n"
-       "  -a              list all key value pairs found in the TFFS file/device\n"
-       "  -b              swap bytes while parsing the TFFS file/device\n"
-       "  -h              show this screen\n"
-       "  -i <file>       inspect the given TFFS file/device <file>\n"
-       "  -l              list all supported keys\n"
-       "  -n <key name>   display the value of the given key\n"
-       "  -s <size>       the (max) size of the TFFS file/device <size>\n"
-       );
-
-       exit(status);
-}
-
-static int file_exist(char *filename)
-{
-       struct stat buffer;
-
-       return stat(filename, &buffer) == 0;
-}
-
-static void parse_options(int argc, char *argv[])
-{
-       while (1)
-       {
-               int c;
-
-               c = getopt(argc, argv, "abhi:ln:s:");
-               if (c == -1)
-                       break;
-
-               switch (c) {
-                       case 'a':
-                               show_all = true;
-                               name_filter = NULL;
-                               print_all_key_names = false;
-                               break;
-                       case 'b':
-                               swap_bytes = 1;
-                               break;
-                       case 'h':
-                               usage(EXIT_SUCCESS);
-                               break;
-                       case 'i':
-                               input_file = optarg;
-                               break;
-                       case 'l':
-                               print_all_key_names = true;
-                               show_all = false;
-                               name_filter = NULL;
-                               break;
-                       case 'n':
-                               name_filter = optarg;
-                               show_all = false;
-                               print_all_key_names = false;
-                               break;
-                       case 's':
-                               tffs_size = strtoul(optarg, NULL, 0);
-                               break;
-                       default:
-                               usage(EXIT_FAILURE);
-                               break;
-               }
-       }
-
-       if (!input_file) {
-               fprintf(stderr, "ERROR: No input file (-i <file>) given!\n");
-               exit(EXIT_FAILURE);
-       }
-
-       if (!file_exist(input_file)) {
-               fprintf(stderr, "ERROR: %s does not exist\n", input_file);
-               exit(EXIT_FAILURE);
-       }
-
-       if (!show_all && !name_filter && !print_all_key_names) {
-               fprintf(stderr,
-                       "ERROR: either -l, -a or -n <key name> is required!\n");
-               exit(EXIT_FAILURE);
-       }
-}
-
-int main(int argc, char *argv[])
-{
-       int ret = EXIT_FAILURE;
-       uint8_t *buffer;
-       FILE *fp;
-       struct tffs_entry name_table;
-       struct tffs_key_name_table key_names;
-
-       progname = basename(argv[0]);
-
-       parse_options(argc, argv);
-
-       fp = fopen(input_file, "r");
-
-       if (!fp) {
-               fprintf(stderr, "ERROR: Failed to open tffs input file %s\n",
-                       input_file);
-               goto out;
-       }
-
-       if (tffs_size == 0) {
-               fseek(fp, 0L, SEEK_END);
-               tffs_size = ftell(fp);
-               fseek(fp, 0L, SEEK_SET);
-       }
-
-       buffer = malloc(tffs_size);
-
-       if (fread(buffer, 1, tffs_size, fp) != tffs_size) {
-               fprintf(stderr, "ERROR: Failed read tffs file %s\n",
-                       input_file);
-               goto out_free;
-       }
-
-       if (!find_entry(buffer, TFFS_ID_TABLE_NAME, &name_table)) {
-               fprintf(stderr,"ERROR: No name table found in tffs file %s\n",
-                       input_file);
-               fprintf(stderr,"       Is byte-swapping (-b) required?\n");
-               goto out_free;
-       }
-
-       parse_key_names(&name_table, &key_names);
-       if (key_names.size < 1) {
-               fprintf(stderr, "ERROR: No name table found in tffs file %s\n",
-                       input_file);
-               goto out_free_names;
-       }
-
-       if (print_all_key_names) {
-               show_all_key_names(&key_names);
-               ret = EXIT_SUCCESS;
-       } else if (show_all) {
-               ret = show_all_key_value_pairs(buffer, &key_names);
-       } else {
-               ret = show_matching_key_value(buffer, &key_names);
-       }
-
-out_free_names:
-       free(key_names.entries);
-out_free:
-       fclose(fp);
-       free(buffer);
-out:
-       return ret;
-}
index e853a8e041411421abc16aa659a1842c47bffe3d..be80b03c42e0834af9f54f529ccc4fcdd17c97b5 100644 (file)
@@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=fuse
 PKG_VERSION:=2.9.7
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/libfuse/libfuse/releases/download/$(PKG_NAME)-$(PKG_VERSION)
@@ -56,6 +56,7 @@ $(call Package/fuse/Default)
   TITLE+= (library)
   DEPENDS:=+kmod-fuse +libpthread
   SUBMENU:=Filesystem
+  ABI_VERSION:=1
 endef
 
 define Package/libfuse/description
diff --git a/package/utils/jboot-tools/Makefile b/package/utils/jboot-tools/Makefile
deleted file mode 100644 (file)
index ce9758b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=jboot-tools
-PKG_RELEASE:=1
-CMAKE_INSTALL:=1
-PKG_FLAGS:=nonshared
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/cmake.mk
-
-define Package/jboot-tools
-  SECTION:=firmware
-  CATEGORY:=Firmware
-  DEPENDS:=@TARGET_ramips
-  TITLE:=Utilites for accessing JBOOT based D-Link devices Calibration data
-endef
-
-define Package/jboot-tools/description
- This package contains:
- jboot_config_read.c: partially read the config partition of JBOOT based D-Link devices.
-endef
-
-define Package/jboot-tools/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/jboot_config_read $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,jboot-tools))
diff --git a/package/utils/jboot-tools/README.md b/package/utils/jboot-tools/README.md
deleted file mode 100644 (file)
index 0d1aeac..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-Userspace utilties for jboot based devices config partition read
-
-## Building
-
-```
-mkdir build
-cd build
-cmake /path/to/jboot-tools
-make
-```
-
-## Usage
-
-All command line parameters are documented:
-```
-jboot_config_read -h
-```
-
-Show all stored MACs:
-```
-jboot_config_read -m -i PATH_TO_CONFIG_PARTITIO
-```
-
-Extract wifi eeprom data:
-```
-jboot_config_read  -i PATH_TO_CONFIG_PARTITION -e OUTPUT_PATH
-```
-
-
-## LICENSE
-
-See `LICENSE`:
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program 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 General Public License for more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc.,
-    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
diff --git a/package/utils/jboot-tools/src/CMakeLists.txt b/package/utils/jboot-tools/src/CMakeLists.txt
deleted file mode 100644 (file)
index 98fbab3..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-cmake_minimum_required(VERSION 2.6)
-
-PROJECT(jboot-tools C)
-ADD_DEFINITIONS(-Wall -Werror --std=gnu99 -Wmissing-declarations)
-
-SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
-
-ADD_EXECUTABLE(jboot_config_read jboot_config_read.c)
-TARGET_LINK_LIBRARIES(jboot_config_read)
-
-INSTALL(TARGETS jboot_config_read RUNTIME DESTINATION bin)
diff --git a/package/utils/jboot-tools/src/jboot_config_read.c b/package/utils/jboot-tools/src/jboot_config_read.c
deleted file mode 100644 (file)
index c65b091..0000000
+++ /dev/null
@@ -1,427 +0,0 @@
-/*
- * jboot_config_read
- *
- * Copyright (C) 2018 Paweł Dembicki <paweldembicki@gmail.com>
- *
- * This tool is based on mkdlinkfw.
- * Copyright (C) 2018 Paweł Dembicki <paweldembicki@gmail.com>
- * Copyright (C) 2009 Gabor Juhos <juhosg@openwrt.org>
- * Copyright (C) 2008,2009 Wang Jian <lark@linux.net.cn>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <unistd.h>            /* for unlink() */
-#include <libgen.h>
-#include <getopt.h>            /* for getopt() */
-#include <stdarg.h>
-#include <stdbool.h>
-#include <endian.h>
-#include <errno.h>
-#include <sys/stat.h>
-
-
-
-#define ERR(fmt, ...) do { \
-       fflush(0); \
-       fprintf(stderr, "[%s] *** error: " fmt "\n", \
-                       progname, ## __VA_ARGS__); \
-} while (0)
-
-#define ERRS(fmt, ...) do { \
-       int save = errno; \
-       fflush(0); \
-       fprintf(stderr, "[%s] *** error: " fmt ": %s\n", \
-                       progname, ## __VA_ARGS__, strerror(save)); \
-} while (0)
-
-#define VERBOSE(fmt, ...) do { \
-       if (verbose) { \
-               fprintf(stdout, "[%s] " fmt "\n", progname, ## __VA_ARGS__); \
-       } \
-} while (0)
-
-#define STAG_SIZE 16
-#define STAG_MAGIC     0x2B24
-#define STAG_ID                0x02
-
-#define CSXF_SIZE 16
-#define CSXF_MAGIC     0x5343
-
-#define MAX_DATA_HEADER 128
-#define DATA_HEADER_UNKNOWN 0x8000
-#define DATA_HEADER_EEPROM 0xF5
-#define DATA_HEADER_CONFIG 0x42
-#define DATA_HEADER_SIZE 6
-
-#define DATA_HEADER_ID_MAC 0x30
-#define DATA_HEADER_ID_CAL 0x0
-
-/* ARM update header 2.0
- * used only in factory images to erase and flash selected area
- */
-struct stag_header {           /* used only of sch2 wrapped kernel data */
-       uint8_t cmark;          /* in factory 0xFF ,in sysuograde must be the same as id */
-       uint8_t id;             /* 0x04 */
-       uint16_t magic;         /* magic 0x2B24 */
-       uint32_t time_stamp;    /* timestamp calculated in jboot way */
-       uint32_t image_length;  /* lentgh of kernel + sch2 header */
-       uint16_t image_checksum;        /* negated jboot_checksum of sch2 + kernel */
-       uint16_t tag_checksum;  /* negated jboot_checksum of stag header data */
-};
-
-struct csxf_header {
-       uint16_t magic;         /* 0x5343, 'CS' in little endian */
-       uint16_t checksum;      /* checksum, include header & body */
-       uint32_t body_length;   /* length of body */
-       uint8_t body_encoding;  /* encoding method of body */
-       uint8_t reserved[3];
-       uint32_t raw_length;    /* length of body before encoded */
-};
-
-struct data_header {
-       uint8_t id;
-       uint8_t type;           /* 0x42xx for config 0xF5xx for eeprom */
-       uint16_t unknown;
-       uint16_t length;        /* length of body */
-       uint8_t data[];         /* encoding method of body */
-};
-
-/* globals */
-
-char *ofname;
-char *ifname;
-char *progname;
-
-uint8_t *buffer;
-uint32_t config_size;
-
-uint32_t start_offset;
-uint8_t mac_duplicate;
-uint8_t mac_print;
-uint8_t print_data;
-uint8_t verbose;
-
-static void usage(int status)
-{
-       fprintf(stderr, "Usage: %s [OPTIONS...]\n", progname);
-       fprintf(stderr,
-               "\n"
-               "Options:\n"
-               "  -i <file>       config partition file <file>\n"
-               "  -m              print mac address\n"
-               "  -e <file>       save eeprom calibration data image to the file <file>\n"
-               "  -o <offset>     set start offset to <ofset>\n"
-               "  -p              print config data\n"
-               "  -v              verbose\n"
-               "  -h              show this screen\n");
-
-       exit(status);
-}
-
-static void print_data_header(struct data_header *printed_header)
-{
-       printf("id: 0x%02X "
-              "type: 0x%02X "
-              "unknown: 0x%04X "
-              "length: 0x%04X\n"
-              "data: ",
-              printed_header->id,
-              printed_header->type,
-              printed_header->unknown, printed_header->length);
-
-       for (uint16_t i = 0; i < printed_header->length; i++)
-               printf("%02X ", printed_header->data[i]);
-
-       printf("\n");
-
-}
-
-static uint16_t jboot_checksum(uint16_t start_val, uint16_t *data, int size)
-{
-       uint32_t counter = start_val;
-       uint16_t *ptr = data;
-
-       while (size > 1) {
-               counter += *ptr;
-               ++ptr;
-               while (counter >> 16)
-                       counter = (uint16_t) counter + (counter >> 16);
-               size -= 2;
-       }
-       if (size > 0) {
-               counter += *(uint8_t *) ptr;
-               counter -= 0xFF;
-       }
-       while (counter >> 16)
-               counter = (uint16_t) counter + (counter >> 16);
-       return counter;
-}
-
-static int find_header(uint8_t *buf, uint32_t buf_size,
-                      struct data_header **data_table)
-{
-       uint8_t *tmp_buf = buf + start_offset;
-       uint8_t tmp_hdr[4] = { STAG_ID, STAG_ID, (STAG_MAGIC & 0xFF), (STAG_MAGIC >> 8) };
-       struct csxf_header *tmp_csxf_header;
-       uint16_t tmp_checksum = 0;
-       uint16_t data_header_counter = 0;
-       int ret = EXIT_FAILURE;
-
-       VERBOSE("Looking for STAG header!");
-
-       while ((uint32_t) tmp_buf - (uint32_t) buf <= buf_size) {
-               if (!memcmp(tmp_buf, tmp_hdr, 4)) {
-                       if (((struct stag_header *)tmp_buf)->tag_checksum ==
-                           (uint16_t) ~jboot_checksum(0, (uint16_t *) tmp_buf,
-                                                       STAG_SIZE - 2)) {
-                               VERBOSE("Found proper STAG header at: 0x%X.",
-                                       tmp_buf - buf);
-                               break;
-                       }
-               }
-               tmp_buf++;
-       }
-
-       tmp_csxf_header = (struct csxf_header *)(tmp_buf + STAG_SIZE);
-       if (tmp_csxf_header->magic != CSXF_MAGIC) {
-               ERR("CSXF magic incorrect! 0x%X != 0x%X",
-                   tmp_csxf_header->magic, CSXF_MAGIC);
-               goto out;
-       }
-       VERBOSE("CSXF magic ok.");
-       tmp_checksum = tmp_csxf_header->checksum;
-       tmp_csxf_header->checksum = 0;
-
-       tmp_csxf_header->checksum =
-           (uint16_t) ~jboot_checksum(0, (uint16_t *) (tmp_buf + STAG_SIZE),
-                                       tmp_csxf_header->raw_length +
-                                       CSXF_SIZE);
-
-       if (tmp_checksum != tmp_csxf_header->checksum) {
-               ERR("CSXF checksum incorrect! Stored: 0x%X Calculated: 0x%X",
-                   tmp_checksum, tmp_csxf_header->checksum);
-               goto out;
-       }
-       VERBOSE("CSXF image checksum ok.");
-
-       tmp_buf = tmp_buf + STAG_SIZE + CSXF_SIZE;
-
-       while ((uint32_t) tmp_buf - (uint32_t) buf <= buf_size) {
-
-               struct data_header *tmp_data_header =
-                   (struct data_header *)tmp_buf;
-
-               if (tmp_data_header->unknown != DATA_HEADER_UNKNOWN) {
-                       tmp_buf++;
-                       continue;
-               }
-               if (tmp_data_header->type != DATA_HEADER_EEPROM
-                   && tmp_data_header->type != DATA_HEADER_CONFIG) {
-                       tmp_buf++;
-                       continue;
-               }
-
-               data_table[data_header_counter] = tmp_data_header;
-               tmp_buf +=
-                   DATA_HEADER_SIZE + data_table[data_header_counter]->length;
-               data_header_counter++;
-
-       }
-
-       ret = data_header_counter;
-
- out:
-       return ret;
-}
-
-static int read_file(char *file_name)
-{
-       int ret = EXIT_FAILURE;
-       uint32_t file_size = 0;
-       FILE *fp;
-
-       fp = fopen(file_name, "r");
-
-       if (!fp) {
-               ERR("Failed to open config input file %s", file_name);
-               goto out;
-       }
-
-       fseek(fp, 0L, SEEK_END);
-       file_size = ftell(fp);
-       fseek(fp, 0L, SEEK_SET);
-
-       buffer = malloc(file_size);
-       VERBOSE("Allocated %d bytes.", file_size);
-
-       if (fread(buffer, 1, file_size, fp) != file_size) {
-               ERR("Failed to read config input file %s", file_name);
-               goto out_free_buf;
-       }
-
-       VERBOSE("Read %d bytes of config input file %s", file_size, file_name);
-       config_size = file_size;
-       ret = EXIT_SUCCESS;
-       goto out;
-
- out_free_buf:
-       free(buffer);
-       fclose(fp);
- out:
-       return ret;
-}
-
-static int write_file(const char *ofname, const uint8_t *data, int len)
-{
-       FILE *f;
-       int ret = EXIT_FAILURE;
-
-       f = fopen(ofname, "w");
-       if (f == NULL) {
-               ERRS("could not open \"%s\" for writing", ofname);
-               goto out;
-       }
-
-       errno = 0;
-       fwrite(data, len, 1, f);
-       if (errno) {
-               ERRS("unable to write output file");
-               goto out_flush;
-       }
-
-       VERBOSE("firmware file \"%s\" completed", ofname);
-
-       ret = EXIT_SUCCESS;
-
- out_flush:
-       fflush(f);
-       fclose(f);
-       if (ret != EXIT_SUCCESS)
-               unlink(ofname);
- out:
-       return ret;
-}
-
-static void print_mac(struct data_header **data_table, int cnt)
-{
-
-       for (int i = 0; i < cnt; i++) {
-               if (data_table[i]->type == DATA_HEADER_CONFIG
-                   && data_table[i]->id == DATA_HEADER_ID_MAC) {
-                       int j;
-                       for (j = 0; j < 5; j++)
-                               printf("%02x:", data_table[i]->data[j]);
-                       printf("%02x\n", data_table[i]->data[j]);
-               }
-
-       }
-
-}
-
-static int write_eeprom(struct data_header **data_table, int cnt)
-{
-       int ret = EXIT_FAILURE;
-
-       for (int i = 0; i < cnt; i++) {
-               if (data_table[i]->type == DATA_HEADER_EEPROM
-                   && data_table[i]->id == DATA_HEADER_ID_CAL) {
-                       ret =
-                           write_file(ofname, data_table[i]->data,
-                                      data_table[i]->length);
-                       break;
-               }
-
-       }
-
-       return ret;
-}
-
-int main(int argc, char *argv[])
-{
-       int ret = EXIT_FAILURE;
-       int configs_counter = 0;
-       struct data_header *configs_table[MAX_DATA_HEADER];
-       buffer = NULL;
-       config_size = 0;
-
-       progname = basename(argv[0]);
-       start_offset = 0;
-       mac_print = 0;
-       print_data = 0;
-       verbose = 0;
-       ofname = NULL;
-       ifname = NULL;
-
-       while (1) {
-               int c;
-
-               c = getopt(argc, argv, "de:hi:mo:pv");
-               if (c == -1)
-                       break;
-
-               switch (c) {
-               case 'm':
-                       mac_print = 1;
-                       break;
-               case 'i':
-                       ifname = optarg;
-                       break;
-               case 'e':
-                       ofname = optarg;
-                       break;
-               case 'o':
-                       sscanf(optarg, "0x%x", &start_offset);
-                       break;
-               case 'p':
-                       print_data = 1;
-                       break;
-               case 'v':
-                       verbose = 1;
-                       VERBOSE("Enable verbose!");
-                       break;
-               default:
-                       usage(EXIT_FAILURE);
-                       break;
-               }
-       }
-
-       if (!ifname)
-               usage(EXIT_FAILURE);
-
-       ret = read_file(ifname);
-
-       if (ret || config_size <= 0)
-               goto out;
-
-       configs_counter = find_header(buffer, config_size, configs_table);
-
-       if (configs_counter <= 0)
-               goto out_free_buf;
-
-       if (print_data || verbose) {
-               for (int i = 0; i < configs_counter; i++)
-                       print_data_header(configs_table[i]);
-       }
-
-       if (mac_print)
-               print_mac(configs_table, configs_counter);
-
-       ret = EXIT_SUCCESS;
-
-       if (ofname)
-               ret = write_eeprom(configs_table, configs_counter);
-
- out_free_buf:
-       free(buffer);
- out:
-       return ret;
-
-}
index 2afc69e4a0ee2b0831406bf8559f8ae4e70a5ae5..7e027ee19a9220f40f0fafced0067eac6a2f68fe 100644 (file)
@@ -4,7 +4,7 @@ PKG_NAME:=jsonfilter
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/jsonpath.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/jsonpath.git
 PKG_SOURCE_DATE:=2018-02-04
 PKG_SOURCE_VERSION:=c7e938d6582a436dddc938539e72dd1320625c54
 PKG_MIRROR_HASH:=0601b4d7aa5ee096e99388a57cb0701673ab58fccd6ed2984a2abbd4f846e045
index 97c18def6642cdc9ac9287b9f637dc30504db6cd..c34e569b67a7fe8b20b1305216eaa37c3b44046a 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lua
 PKG_VERSION:=5.1.5
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.lua.org/ftp/ \
@@ -46,6 +46,7 @@ $(call Package/lua/Default)
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE+= (libraries)
+  ABI_VERSION:=5.1.5
 endef
 
 define Package/liblua/description
index ba74997b5e27f7d59b8729778df5c6a5c0b9486e..18026bbed237cc24e5b70abad632d2fd93b55830 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mdadm
-PKG_VERSION:=4.0
-PKG_RELEASE:=5
+PKG_VERSION:=4.1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/utils/raid/mdadm
-PKG_HASH:=1d6ae7f24ced3a0fa7b5613b32f4a589bb4881e3946a5a2c3724056254ada3a9
+PKG_HASH:=ab7688842908d3583a704d491956f31324c3a5fc9f6a04653cb75d19f1934f4a
 
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 PKG_CPE_ID:=cpe:/a:mdadm_project:mdadm
index 62bf69345537a99e74b4214e72e6c4a33d80749c..3576364d6f71e4ca6db77beafe35540598dead50 100644 (file)
@@ -1,11 +1,11 @@
 --- a/Makefile
 +++ b/Makefile
-@@ -86,7 +86,7 @@ DLM:=$(shell [ -f /usr/include/libdlm.h
+@@ -97,7 +97,7 @@ DLM:=$(shell [ -f /usr/include/libdlm.h ] || echo -DNO_DLM)
  DIRFLAGS = -DMAP_DIR=\"$(MAP_DIR)\" -DMAP_FILE=\"$(MAP_FILE)\"
  DIRFLAGS += -DMDMON_DIR=\"$(MDMON_DIR)\"
  DIRFLAGS += -DFAILED_SLOTS_DIR=\"$(FAILED_SLOTS_DIR)\"
 -CFLAGS = $(CWFLAGS) $(CXFLAGS) -DSendmail=\""$(MAILCMD)"\" $(CONFFILEFLAGS) $(DIRFLAGS) $(COROSYNC) $(DLM)
-+# CFLAGS = $(CWFLAGS) $(CXFLAGS) -DSendmail=\""$(MAILCMD)"\" $(CONFFILEFLAGS) $(DIRFLAGS) $(COROSYNC) $(DLM)
++#CFLAGS = $(CWFLAGS) $(CXFLAGS) -DSendmail=\""$(MAILCMD)"\" $(CONFFILEFLAGS) $(DIRFLAGS) $(COROSYNC) $(DLM)
  
  VERSION = $(shell [ -d .git ] && git describe HEAD | sed 's/mdadm-//')
- VERS_DATE = $(shell [ -d .git ] && date --date="`git log -n1 --format=format:%cd --date=short`" '+%0dth %B %Y' | sed -e 's/1th/1st/' -e 's/2th/2nd/' -e 's/11st/11th/' -e 's/12nd/12th/')
+ VERS_DATE = $(shell [ -d .git ] && date --iso-8601 --date="`git log -n1 --format=format:%cd --date=iso --date=short`")
index bcff20d75fa6ba8d85368f26b25847803aaa02d1..356d0deec8405c4d2e7af7789c34210ea0c5ff64 100644 (file)
@@ -22,7 +22,7 @@ Upstream-Status: Pending
 
 --- a/mdadm.h
 +++ b/mdadm.h
-@@ -1595,11 +1595,13 @@ static inline char *to_subarray(struct m
+@@ -1649,11 +1649,13 @@ static inline char *to_subarray(struct m
  }
  
  #ifdef DEBUG
index ae8204ccd93d7cf21332fed1a8f4ce5d97beec8d..098fa1e1ec004419673944b8ef9e56a4e66b2599 100644 (file)
@@ -1,6 +1,6 @@
 --- a/Incremental.c
 +++ b/Incremental.c
-@@ -1642,6 +1642,10 @@ static int Incremental_container(struct
+@@ -1619,6 +1619,10 @@ static int Incremental_container(struct supertype *st, char *devname,
        if (ra_all == ra_blocked)
                return 0;
  
@@ -13,7 +13,7 @@
        memcpy(suuid, uuid_zero, sizeof(int[4]));
 --- a/util.c
 +++ b/util.c
-@@ -1151,7 +1151,9 @@ void wait_for(char *dev, int fd)
+@@ -1220,7 +1220,9 @@ void wait_for(char *dev, int fd)
  struct superswitch *superlist[] =
  {
        &super0, &super1,
@@ -21,5 +21,5 @@
        &super_ddf, &super_imsm,
 +#endif
        &mbr, &gpt,
-       NULL };
+       NULL
+ };
diff --git a/package/utils/osafeloader/Makefile b/package/utils/osafeloader/Makefile
deleted file mode 100644 (file)
index d0a590e..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#
-# Copyright (C) 2016 Rafał Miłecki <rafal@milecki.pl>
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=osafeloader
-PKG_RELEASE:=1
-
-PKG_FLAGS:=nonshared
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/osafeloader
-  SECTION:=utils
-  CATEGORY:=Base system
-  TITLE:=Utility for handling TP-LINK SafeLoader images
-  MAINTAINER:=Rafał Miłecki <rafal@milecki.pl>
-  DEPENDS:=@TARGET_bcm53xx
-endef
-
-define Package/osafeloader/description
- This package contains an utility that allows handling SafeLoader images.
-endef
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               CC="$(TARGET_CC)" \
-               CFLAGS="$(TARGET_CFLAGS) -Wall"
-endef
-
-define Package/osafeloader/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/osafeloader $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,osafeloader))
diff --git a/package/utils/osafeloader/src/Makefile b/package/utils/osafeloader/src/Makefile
deleted file mode 100644 (file)
index acc6f0f..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-all: osafeloader
-
-osafeloader:
-       $(CC) $(CFLAGS) -Wall osafeloader.c md5.c -o $@ $^
-
-clean:
-       rm -f osafeloader
diff --git a/package/utils/osafeloader/src/md5.c b/package/utils/osafeloader/src/md5.c
deleted file mode 100644 (file)
index 52d96ac..0000000
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc.
- * MD5 Message-Digest Algorithm (RFC 1321).
- *
- * Homepage:
- * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
- *
- * Author:
- * Alexander Peslyak, better known as Solar Designer <solar at openwall.com>
- *
- * This software was written by Alexander Peslyak in 2001.  No copyright is
- * claimed, and the software is hereby placed in the public domain.
- * In case this attempt to disclaim copyright and place the software in the
- * public domain is deemed null and void, then the software is
- * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the
- * general public under the following terms:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted.
- *
- * There's ABSOLUTELY NO WARRANTY, express or implied.
- *
- * (This is a heavily cut-down "BSD license".)
- *
- * This differs from Colin Plumb's older public domain implementation in that
- * no exactly 32-bit integer data type is required (any 32-bit or wider
- * unsigned integer data type will do), there's no compile-time endianness
- * configuration, and the function prototypes match OpenSSL's.  No code from
- * Colin Plumb's implementation has been reused; this comment merely compares
- * the properties of the two independent implementations.
- *
- * The primary goals of this implementation are portability and ease of use.
- * It is meant to be fast, but not as fast as possible.  Some known
- * optimizations are not included to reduce source code size and avoid
- * compile-time configuration.
- */
-
-#ifndef HAVE_OPENSSL
-
-#include <string.h>
-
-#include "md5.h"
-
-/*
- * The basic MD5 functions.
- *
- * F and G are optimized compared to their RFC 1321 definitions for
- * architectures that lack an AND-NOT instruction, just like in Colin Plumb's
- * implementation.
- */
-#define F(x, y, z)                     ((z) ^ ((x) & ((y) ^ (z))))
-#define G(x, y, z)                     ((y) ^ ((z) & ((x) ^ (y))))
-#define H(x, y, z)                     (((x) ^ (y)) ^ (z))
-#define H2(x, y, z)                    ((x) ^ ((y) ^ (z)))
-#define I(x, y, z)                     ((y) ^ ((x) | ~(z)))
-
-/*
- * The MD5 transformation for all four rounds.
- */
-#define STEP(f, a, b, c, d, x, t, s) \
-       (a) += f((b), (c), (d)) + (x) + (t); \
-       (a) = (((a) << (s)) | (((a) & 0xffffffff) >> (32 - (s)))); \
-       (a) += (b);
-
-/*
- * SET reads 4 input bytes in little-endian byte order and stores them
- * in a properly aligned word in host byte order.
- *
- * The check for little-endian architectures that tolerate unaligned
- * memory accesses is just an optimization.  Nothing will break if it
- * doesn't work.
- */
-#if defined(__i386__) || defined(__x86_64__) || defined(__vax__)
-#define SET(n) \
-       (*(MD5_u32plus *)&ptr[(n) * 4])
-#define GET(n) \
-       SET(n)
-#else
-#define SET(n) \
-       (ctx->block[(n)] = \
-       (MD5_u32plus)ptr[(n) * 4] | \
-       ((MD5_u32plus)ptr[(n) * 4 + 1] << 8) | \
-       ((MD5_u32plus)ptr[(n) * 4 + 2] << 16) | \
-       ((MD5_u32plus)ptr[(n) * 4 + 3] << 24))
-#define GET(n) \
-       (ctx->block[(n)])
-#endif
-
-/*
- * This processes one or more 64-byte data blocks, but does NOT update
- * the bit counters.  There are no alignment requirements.
- */
-static const void *body(MD5_CTX *ctx, const void *data, unsigned long size)
-{
-       const unsigned char *ptr;
-       MD5_u32plus a, b, c, d;
-       MD5_u32plus saved_a, saved_b, saved_c, saved_d;
-
-       ptr = (const unsigned char *)data;
-
-       a = ctx->a;
-       b = ctx->b;
-       c = ctx->c;
-       d = ctx->d;
-
-       do {
-               saved_a = a;
-               saved_b = b;
-               saved_c = c;
-               saved_d = d;
-
-/* Round 1 */
-               STEP(F, a, b, c, d, SET(0), 0xd76aa478, 7)
-               STEP(F, d, a, b, c, SET(1), 0xe8c7b756, 12)
-               STEP(F, c, d, a, b, SET(2), 0x242070db, 17)
-               STEP(F, b, c, d, a, SET(3), 0xc1bdceee, 22)
-               STEP(F, a, b, c, d, SET(4), 0xf57c0faf, 7)
-               STEP(F, d, a, b, c, SET(5), 0x4787c62a, 12)
-               STEP(F, c, d, a, b, SET(6), 0xa8304613, 17)
-               STEP(F, b, c, d, a, SET(7), 0xfd469501, 22)
-               STEP(F, a, b, c, d, SET(8), 0x698098d8, 7)
-               STEP(F, d, a, b, c, SET(9), 0x8b44f7af, 12)
-               STEP(F, c, d, a, b, SET(10), 0xffff5bb1, 17)
-               STEP(F, b, c, d, a, SET(11), 0x895cd7be, 22)
-               STEP(F, a, b, c, d, SET(12), 0x6b901122, 7)
-               STEP(F, d, a, b, c, SET(13), 0xfd987193, 12)
-               STEP(F, c, d, a, b, SET(14), 0xa679438e, 17)
-               STEP(F, b, c, d, a, SET(15), 0x49b40821, 22)
-
-/* Round 2 */
-               STEP(G, a, b, c, d, GET(1), 0xf61e2562, 5)
-               STEP(G, d, a, b, c, GET(6), 0xc040b340, 9)
-               STEP(G, c, d, a, b, GET(11), 0x265e5a51, 14)
-               STEP(G, b, c, d, a, GET(0), 0xe9b6c7aa, 20)
-               STEP(G, a, b, c, d, GET(5), 0xd62f105d, 5)
-               STEP(G, d, a, b, c, GET(10), 0x02441453, 9)
-               STEP(G, c, d, a, b, GET(15), 0xd8a1e681, 14)
-               STEP(G, b, c, d, a, GET(4), 0xe7d3fbc8, 20)
-               STEP(G, a, b, c, d, GET(9), 0x21e1cde6, 5)
-               STEP(G, d, a, b, c, GET(14), 0xc33707d6, 9)
-               STEP(G, c, d, a, b, GET(3), 0xf4d50d87, 14)
-               STEP(G, b, c, d, a, GET(8), 0x455a14ed, 20)
-               STEP(G, a, b, c, d, GET(13), 0xa9e3e905, 5)
-               STEP(G, d, a, b, c, GET(2), 0xfcefa3f8, 9)
-               STEP(G, c, d, a, b, GET(7), 0x676f02d9, 14)
-               STEP(G, b, c, d, a, GET(12), 0x8d2a4c8a, 20)
-
-/* Round 3 */
-               STEP(H, a, b, c, d, GET(5), 0xfffa3942, 4)
-               STEP(H2, d, a, b, c, GET(8), 0x8771f681, 11)
-               STEP(H, c, d, a, b, GET(11), 0x6d9d6122, 16)
-               STEP(H2, b, c, d, a, GET(14), 0xfde5380c, 23)
-               STEP(H, a, b, c, d, GET(1), 0xa4beea44, 4)
-               STEP(H2, d, a, b, c, GET(4), 0x4bdecfa9, 11)
-               STEP(H, c, d, a, b, GET(7), 0xf6bb4b60, 16)
-               STEP(H2, b, c, d, a, GET(10), 0xbebfbc70, 23)
-               STEP(H, a, b, c, d, GET(13), 0x289b7ec6, 4)
-               STEP(H2, d, a, b, c, GET(0), 0xeaa127fa, 11)
-               STEP(H, c, d, a, b, GET(3), 0xd4ef3085, 16)
-               STEP(H2, b, c, d, a, GET(6), 0x04881d05, 23)
-               STEP(H, a, b, c, d, GET(9), 0xd9d4d039, 4)
-               STEP(H2, d, a, b, c, GET(12), 0xe6db99e5, 11)
-               STEP(H, c, d, a, b, GET(15), 0x1fa27cf8, 16)
-               STEP(H2, b, c, d, a, GET(2), 0xc4ac5665, 23)
-
-/* Round 4 */
-               STEP(I, a, b, c, d, GET(0), 0xf4292244, 6)
-               STEP(I, d, a, b, c, GET(7), 0x432aff97, 10)
-               STEP(I, c, d, a, b, GET(14), 0xab9423a7, 15)
-               STEP(I, b, c, d, a, GET(5), 0xfc93a039, 21)
-               STEP(I, a, b, c, d, GET(12), 0x655b59c3, 6)
-               STEP(I, d, a, b, c, GET(3), 0x8f0ccc92, 10)
-               STEP(I, c, d, a, b, GET(10), 0xffeff47d, 15)
-               STEP(I, b, c, d, a, GET(1), 0x85845dd1, 21)
-               STEP(I, a, b, c, d, GET(8), 0x6fa87e4f, 6)
-               STEP(I, d, a, b, c, GET(15), 0xfe2ce6e0, 10)
-               STEP(I, c, d, a, b, GET(6), 0xa3014314, 15)
-               STEP(I, b, c, d, a, GET(13), 0x4e0811a1, 21)
-               STEP(I, a, b, c, d, GET(4), 0xf7537e82, 6)
-               STEP(I, d, a, b, c, GET(11), 0xbd3af235, 10)
-               STEP(I, c, d, a, b, GET(2), 0x2ad7d2bb, 15)
-               STEP(I, b, c, d, a, GET(9), 0xeb86d391, 21)
-
-               a += saved_a;
-               b += saved_b;
-               c += saved_c;
-               d += saved_d;
-
-               ptr += 64;
-       } while (size -= 64);
-
-       ctx->a = a;
-       ctx->b = b;
-       ctx->c = c;
-       ctx->d = d;
-
-       return ptr;
-}
-
-void MD5_Init(MD5_CTX *ctx)
-{
-       ctx->a = 0x67452301;
-       ctx->b = 0xefcdab89;
-       ctx->c = 0x98badcfe;
-       ctx->d = 0x10325476;
-
-       ctx->lo = 0;
-       ctx->hi = 0;
-}
-
-void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size)
-{
-       MD5_u32plus saved_lo;
-       unsigned long used, available;
-
-       saved_lo = ctx->lo;
-       if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo)
-               ctx->hi++;
-       ctx->hi += size >> 29;
-
-       used = saved_lo & 0x3f;
-
-       if (used) {
-               available = 64 - used;
-
-               if (size < available) {
-                       memcpy(&ctx->buffer[used], data, size);
-                       return;
-               }
-
-               memcpy(&ctx->buffer[used], data, available);
-               data = (const unsigned char *)data + available;
-               size -= available;
-               body(ctx, ctx->buffer, 64);
-       }
-
-       if (size >= 64) {
-               data = body(ctx, data, size & ~(unsigned long)0x3f);
-               size &= 0x3f;
-       }
-
-       memcpy(ctx->buffer, data, size);
-}
-
-void MD5_Final(unsigned char *result, MD5_CTX *ctx)
-{
-       unsigned long used, available;
-
-       used = ctx->lo & 0x3f;
-
-       ctx->buffer[used++] = 0x80;
-
-       available = 64 - used;
-
-       if (available < 8) {
-               memset(&ctx->buffer[used], 0, available);
-               body(ctx, ctx->buffer, 64);
-               used = 0;
-               available = 64;
-       }
-
-       memset(&ctx->buffer[used], 0, available - 8);
-
-       ctx->lo <<= 3;
-       ctx->buffer[56] = ctx->lo;
-       ctx->buffer[57] = ctx->lo >> 8;
-       ctx->buffer[58] = ctx->lo >> 16;
-       ctx->buffer[59] = ctx->lo >> 24;
-       ctx->buffer[60] = ctx->hi;
-       ctx->buffer[61] = ctx->hi >> 8;
-       ctx->buffer[62] = ctx->hi >> 16;
-       ctx->buffer[63] = ctx->hi >> 24;
-
-       body(ctx, ctx->buffer, 64);
-
-       result[0] = ctx->a;
-       result[1] = ctx->a >> 8;
-       result[2] = ctx->a >> 16;
-       result[3] = ctx->a >> 24;
-       result[4] = ctx->b;
-       result[5] = ctx->b >> 8;
-       result[6] = ctx->b >> 16;
-       result[7] = ctx->b >> 24;
-       result[8] = ctx->c;
-       result[9] = ctx->c >> 8;
-       result[10] = ctx->c >> 16;
-       result[11] = ctx->c >> 24;
-       result[12] = ctx->d;
-       result[13] = ctx->d >> 8;
-       result[14] = ctx->d >> 16;
-       result[15] = ctx->d >> 24;
-
-       memset(ctx, 0, sizeof(*ctx));
-}
-
-#endif
diff --git a/package/utils/osafeloader/src/md5.h b/package/utils/osafeloader/src/md5.h
deleted file mode 100644 (file)
index 2da44bf..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc.
- * MD5 Message-Digest Algorithm (RFC 1321).
- *
- * Homepage:
- * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
- *
- * Author:
- * Alexander Peslyak, better known as Solar Designer <solar at openwall.com>
- *
- * This software was written by Alexander Peslyak in 2001.  No copyright is
- * claimed, and the software is hereby placed in the public domain.
- * In case this attempt to disclaim copyright and place the software in the
- * public domain is deemed null and void, then the software is
- * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the
- * general public under the following terms:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted.
- *
- * There's ABSOLUTELY NO WARRANTY, express or implied.
- *
- * See md5.c for more information.
- */
-
-#ifdef HAVE_OPENSSL
-#include <openssl/md5.h>
-#elif !defined(_MD5_H)
-#define _MD5_H
-
-/* Any 32-bit or wider unsigned integer data type will do */
-typedef unsigned int MD5_u32plus;
-
-typedef struct {
-       MD5_u32plus lo, hi;
-       MD5_u32plus a, b, c, d;
-       unsigned char buffer[64];
-       MD5_u32plus block[16];
-} MD5_CTX;
-
-extern void MD5_Init(MD5_CTX *ctx);
-extern void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size);
-extern void MD5_Final(unsigned char *result, MD5_CTX *ctx);
-
-#endif
diff --git a/package/utils/osafeloader/src/osafeloader.c b/package/utils/osafeloader/src/osafeloader.c
deleted file mode 100644 (file)
index 9ffa5fe..0000000
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * osafeloader
- *
- * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <byteswap.h>
-#include <endian.h>
-#include <errno.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "md5.h"
-
-#if !defined(__BYTE_ORDER)
-#error "Unknown byte order"
-#endif
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-#define cpu_to_be32(x) (x)
-#define be32_to_cpu(x) (x)
-#define cpu_to_be16(x) (x)
-#define be16_to_cpu(x) (x)
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-#define cpu_to_be32(x) bswap_32(x)
-#define be32_to_cpu(x) bswap_32(x)
-#define cpu_to_be16(x) bswap_16(x)
-#define be16_to_cpu(x) bswap_16(x)
-#else
-#error "Unsupported endianness"
-#endif
-
-struct safeloader_header {
-       uint32_t imagesize;
-       uint8_t md5[16];
-} __attribute__ ((packed));
-
-char *safeloader_path;
-char *partition_name;
-char *out_path;
-
-static inline size_t osafeloader_min(size_t x, size_t y) {
-       return x < y ? x : y;
-}
-
-static const uint8_t md5_salt[16] = {
-       0x7a, 0x2b, 0x15, 0xed,
-       0x9b, 0x98, 0x59, 0x6d,
-       0xe5, 0x04, 0xab, 0x44,
-       0xac, 0x2a, 0x9f, 0x4e,
-};
-
-/**************************************************
- * Info
- **************************************************/
-
-static int osafeloader_info(int argc, char **argv) {
-       FILE *safeloader;
-       struct safeloader_header hdr;
-       MD5_CTX ctx;
-       size_t bytes, imagesize;
-       uint8_t buf[1024];
-       uint8_t md5[16];
-       char name[32];
-       int base, size, i;
-       int err = 0;
-
-       if (argc < 3) {
-               fprintf(stderr, "No SafeLoader file passed\n");
-               err = -EINVAL;
-               goto out;
-       }
-       safeloader_path = argv[2];
-
-       safeloader = fopen(safeloader_path, "r");
-       if (!safeloader) {
-               fprintf(stderr, "Couldn't open %s\n", safeloader_path);
-               err = -EACCES;
-               goto out;
-       }
-
-       bytes = fread(&hdr, 1, sizeof(hdr), safeloader);
-       if (bytes != sizeof(hdr)) {
-               fprintf(stderr, "Couldn't read %s header\n", safeloader_path);
-               err =  -EIO;
-               goto err_close;
-       }
-       imagesize = be32_to_cpu(hdr.imagesize);
-
-       MD5_Init(&ctx);
-       MD5_Update(&ctx, md5_salt, sizeof(md5_salt));
-       while ((bytes = fread(buf, 1, osafeloader_min(sizeof(buf), imagesize), safeloader)) > 0) {
-               MD5_Update(&ctx, buf, bytes);
-               imagesize -= bytes;
-       }
-       MD5_Final(md5, &ctx);
-
-       if (memcmp(md5, hdr.md5, 16)) {
-               fprintf(stderr, "Broken SafeLoader file with invalid MD5\n");
-               err =  -EIO;
-               goto err_close;
-       }
-
-       printf("%10s: %d\n", "Image size", be32_to_cpu(hdr.imagesize));
-       printf("%10s: ", "MD5");
-       for (i = 0; i < 16; i++)
-               printf("%02x", md5[i]);
-       printf("\n");
-
-       /* Skip header & vendor info */
-       fseek(safeloader, 0x1014, SEEK_SET);
-
-       while (fscanf(safeloader, "fwup-ptn %s base 0x%x size 0x%x\t\r\n", name, &base, &size) == 3) {
-               printf("%10s: %s (0x%x - 0x%x)\n", "Partition", name, base, base + size);
-       }
-
-err_close:
-       fclose(safeloader);
-out:
-       return err;
-}
-
-/**************************************************
- * Extract
- **************************************************/
-
-static void osafeloader_extract_parse_options(int argc, char **argv) {
-       int c;
-
-       while ((c = getopt(argc, argv, "p:o:")) != -1) {
-               switch (c) {
-               case 'p':
-                       partition_name = optarg;
-                       break;
-               case 'o':
-                       out_path = optarg;
-                       break;
-               }
-       }
-}
-
-static int osafeloader_extract(int argc, char **argv) {
-       FILE *safeloader;
-       FILE *out;
-       struct safeloader_header hdr;
-       size_t bytes;
-       char name[32];
-       int base, size;
-       int err = 0;
-
-       if (argc < 3) {
-               fprintf(stderr, "No SafeLoader file passed\n");
-               err = -EINVAL;
-               goto out;
-       }
-       safeloader_path = argv[2];
-
-       optind = 3;
-       osafeloader_extract_parse_options(argc, argv);
-       if (!partition_name) {
-               fprintf(stderr, "No partition name specified\n");
-               err = -EINVAL;
-               goto out;
-       } else if (!out_path) {
-               fprintf(stderr, "No output file specified\n");
-               err = -EINVAL;
-               goto out;
-       }
-
-       safeloader = fopen(safeloader_path, "r");
-       if (!safeloader) {
-               fprintf(stderr, "Couldn't open %s\n", safeloader_path);
-               err = -EACCES;
-               goto out;
-       }
-
-       out = fopen(out_path, "w");
-       if (!out) {
-               fprintf(stderr, "Couldn't open %s\n", out_path);
-               err = -EACCES;
-               goto err_close_safeloader;
-       }
-
-       bytes = fread(&hdr, 1, sizeof(hdr), safeloader);
-       if (bytes != sizeof(hdr)) {
-               fprintf(stderr, "Couldn't read %s header\n", safeloader_path);
-               err =  -EIO;
-               goto err_close_out;
-       }
-
-       /* Skip vendor info */
-       fseek(safeloader, 0x1000, SEEK_CUR);
-
-       err = -ENOENT;
-       while (fscanf(safeloader, "fwup-ptn %s base 0x%x size 0x%x\t\r\n", name, &base, &size) == 3) {
-               uint8_t buf[1024];
-
-               if (strcmp(name, partition_name))
-                       continue;
-
-               err = 0;
-
-               fseek(safeloader, sizeof(hdr) + 0x1000 + base, SEEK_SET);
-
-               while ((bytes = fread(buf, 1, osafeloader_min(sizeof(buf), size), safeloader)) > 0) {
-                       if (fwrite(buf, 1, bytes, out) != bytes) {
-                               fprintf(stderr, "Couldn't write %zu B to %s\n", bytes, out_path);
-                               err = -EIO;
-                               break;
-                       }
-                       size -= bytes;
-               }
-
-               if (size) {
-                       fprintf(stderr, "Couldn't extract whole partition %s from %s (%d B left)\n", partition_name, safeloader_path, size);
-                       err = -EIO;
-               }
-
-               break;
-       }
-
-err_close_out:
-       fclose(out);
-err_close_safeloader:
-       fclose(safeloader);
-out:
-       return err;
-}
-
-/**************************************************
- * Start
- **************************************************/
-
-static void usage() {
-       printf("Usage:\n");
-       printf("\n");
-       printf("Info about SafeLoader:\n");
-       printf("\tosafeloader info <file>\n");
-       printf("\n");
-       printf("Extract from SafeLoader:\n");
-       printf("\tosafeloader extract <file> [options]\n");
-       printf("\t-p name\t\t\t\tname of partition to extract\n");
-       printf("\t-o file\t\t\t\toutput file\n");
-}
-
-int main(int argc, char **argv) {
-       if (argc > 1) {
-               if (!strcmp(argv[1], "info"))
-                       return osafeloader_info(argc, argv);
-               else if (!strcmp(argv[1], "extract"))
-                       return osafeloader_extract(argc, argv);
-       }
-
-       usage();
-       return 0;
-}
diff --git a/package/utils/oseama/Makefile b/package/utils/oseama/Makefile
deleted file mode 100644 (file)
index 7d9303b..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#
-# Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com>
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=oseama
-PKG_RELEASE:=1
-
-PKG_FLAGS:=nonshared
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/oseama
-  SECTION:=utils
-  CATEGORY:=Base system
-  TITLE:=Utility for handling Seama firmware images
-  MAINTAINER:=Rafał Miłecki <zajec5@gmail.com>
-  DEPENDS:=@TARGET_bcm53xx
-endef
-
-define Package/oseama/description
- This package contains an utility that allows handling Seama images.
-endef
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               CC="$(TARGET_CC)" \
-               CFLAGS="$(TARGET_CFLAGS) -Wall"
-endef
-
-define Package/oseama/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/oseama $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,oseama))
diff --git a/package/utils/oseama/src/Makefile b/package/utils/oseama/src/Makefile
deleted file mode 100644 (file)
index ca35e6e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-all: oseama
-
-oseama:
-       $(CC) $(CFLAGS) -Wall oseama.c md5.c -o $@ $^
-
-clean:
-       rm -f oseama
diff --git a/package/utils/oseama/src/md5.c b/package/utils/oseama/src/md5.c
deleted file mode 100644 (file)
index 52d96ac..0000000
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc.
- * MD5 Message-Digest Algorithm (RFC 1321).
- *
- * Homepage:
- * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
- *
- * Author:
- * Alexander Peslyak, better known as Solar Designer <solar at openwall.com>
- *
- * This software was written by Alexander Peslyak in 2001.  No copyright is
- * claimed, and the software is hereby placed in the public domain.
- * In case this attempt to disclaim copyright and place the software in the
- * public domain is deemed null and void, then the software is
- * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the
- * general public under the following terms:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted.
- *
- * There's ABSOLUTELY NO WARRANTY, express or implied.
- *
- * (This is a heavily cut-down "BSD license".)
- *
- * This differs from Colin Plumb's older public domain implementation in that
- * no exactly 32-bit integer data type is required (any 32-bit or wider
- * unsigned integer data type will do), there's no compile-time endianness
- * configuration, and the function prototypes match OpenSSL's.  No code from
- * Colin Plumb's implementation has been reused; this comment merely compares
- * the properties of the two independent implementations.
- *
- * The primary goals of this implementation are portability and ease of use.
- * It is meant to be fast, but not as fast as possible.  Some known
- * optimizations are not included to reduce source code size and avoid
- * compile-time configuration.
- */
-
-#ifndef HAVE_OPENSSL
-
-#include <string.h>
-
-#include "md5.h"
-
-/*
- * The basic MD5 functions.
- *
- * F and G are optimized compared to their RFC 1321 definitions for
- * architectures that lack an AND-NOT instruction, just like in Colin Plumb's
- * implementation.
- */
-#define F(x, y, z)                     ((z) ^ ((x) & ((y) ^ (z))))
-#define G(x, y, z)                     ((y) ^ ((z) & ((x) ^ (y))))
-#define H(x, y, z)                     (((x) ^ (y)) ^ (z))
-#define H2(x, y, z)                    ((x) ^ ((y) ^ (z)))
-#define I(x, y, z)                     ((y) ^ ((x) | ~(z)))
-
-/*
- * The MD5 transformation for all four rounds.
- */
-#define STEP(f, a, b, c, d, x, t, s) \
-       (a) += f((b), (c), (d)) + (x) + (t); \
-       (a) = (((a) << (s)) | (((a) & 0xffffffff) >> (32 - (s)))); \
-       (a) += (b);
-
-/*
- * SET reads 4 input bytes in little-endian byte order and stores them
- * in a properly aligned word in host byte order.
- *
- * The check for little-endian architectures that tolerate unaligned
- * memory accesses is just an optimization.  Nothing will break if it
- * doesn't work.
- */
-#if defined(__i386__) || defined(__x86_64__) || defined(__vax__)
-#define SET(n) \
-       (*(MD5_u32plus *)&ptr[(n) * 4])
-#define GET(n) \
-       SET(n)
-#else
-#define SET(n) \
-       (ctx->block[(n)] = \
-       (MD5_u32plus)ptr[(n) * 4] | \
-       ((MD5_u32plus)ptr[(n) * 4 + 1] << 8) | \
-       ((MD5_u32plus)ptr[(n) * 4 + 2] << 16) | \
-       ((MD5_u32plus)ptr[(n) * 4 + 3] << 24))
-#define GET(n) \
-       (ctx->block[(n)])
-#endif
-
-/*
- * This processes one or more 64-byte data blocks, but does NOT update
- * the bit counters.  There are no alignment requirements.
- */
-static const void *body(MD5_CTX *ctx, const void *data, unsigned long size)
-{
-       const unsigned char *ptr;
-       MD5_u32plus a, b, c, d;
-       MD5_u32plus saved_a, saved_b, saved_c, saved_d;
-
-       ptr = (const unsigned char *)data;
-
-       a = ctx->a;
-       b = ctx->b;
-       c = ctx->c;
-       d = ctx->d;
-
-       do {
-               saved_a = a;
-               saved_b = b;
-               saved_c = c;
-               saved_d = d;
-
-/* Round 1 */
-               STEP(F, a, b, c, d, SET(0), 0xd76aa478, 7)
-               STEP(F, d, a, b, c, SET(1), 0xe8c7b756, 12)
-               STEP(F, c, d, a, b, SET(2), 0x242070db, 17)
-               STEP(F, b, c, d, a, SET(3), 0xc1bdceee, 22)
-               STEP(F, a, b, c, d, SET(4), 0xf57c0faf, 7)
-               STEP(F, d, a, b, c, SET(5), 0x4787c62a, 12)
-               STEP(F, c, d, a, b, SET(6), 0xa8304613, 17)
-               STEP(F, b, c, d, a, SET(7), 0xfd469501, 22)
-               STEP(F, a, b, c, d, SET(8), 0x698098d8, 7)
-               STEP(F, d, a, b, c, SET(9), 0x8b44f7af, 12)
-               STEP(F, c, d, a, b, SET(10), 0xffff5bb1, 17)
-               STEP(F, b, c, d, a, SET(11), 0x895cd7be, 22)
-               STEP(F, a, b, c, d, SET(12), 0x6b901122, 7)
-               STEP(F, d, a, b, c, SET(13), 0xfd987193, 12)
-               STEP(F, c, d, a, b, SET(14), 0xa679438e, 17)
-               STEP(F, b, c, d, a, SET(15), 0x49b40821, 22)
-
-/* Round 2 */
-               STEP(G, a, b, c, d, GET(1), 0xf61e2562, 5)
-               STEP(G, d, a, b, c, GET(6), 0xc040b340, 9)
-               STEP(G, c, d, a, b, GET(11), 0x265e5a51, 14)
-               STEP(G, b, c, d, a, GET(0), 0xe9b6c7aa, 20)
-               STEP(G, a, b, c, d, GET(5), 0xd62f105d, 5)
-               STEP(G, d, a, b, c, GET(10), 0x02441453, 9)
-               STEP(G, c, d, a, b, GET(15), 0xd8a1e681, 14)
-               STEP(G, b, c, d, a, GET(4), 0xe7d3fbc8, 20)
-               STEP(G, a, b, c, d, GET(9), 0x21e1cde6, 5)
-               STEP(G, d, a, b, c, GET(14), 0xc33707d6, 9)
-               STEP(G, c, d, a, b, GET(3), 0xf4d50d87, 14)
-               STEP(G, b, c, d, a, GET(8), 0x455a14ed, 20)
-               STEP(G, a, b, c, d, GET(13), 0xa9e3e905, 5)
-               STEP(G, d, a, b, c, GET(2), 0xfcefa3f8, 9)
-               STEP(G, c, d, a, b, GET(7), 0x676f02d9, 14)
-               STEP(G, b, c, d, a, GET(12), 0x8d2a4c8a, 20)
-
-/* Round 3 */
-               STEP(H, a, b, c, d, GET(5), 0xfffa3942, 4)
-               STEP(H2, d, a, b, c, GET(8), 0x8771f681, 11)
-               STEP(H, c, d, a, b, GET(11), 0x6d9d6122, 16)
-               STEP(H2, b, c, d, a, GET(14), 0xfde5380c, 23)
-               STEP(H, a, b, c, d, GET(1), 0xa4beea44, 4)
-               STEP(H2, d, a, b, c, GET(4), 0x4bdecfa9, 11)
-               STEP(H, c, d, a, b, GET(7), 0xf6bb4b60, 16)
-               STEP(H2, b, c, d, a, GET(10), 0xbebfbc70, 23)
-               STEP(H, a, b, c, d, GET(13), 0x289b7ec6, 4)
-               STEP(H2, d, a, b, c, GET(0), 0xeaa127fa, 11)
-               STEP(H, c, d, a, b, GET(3), 0xd4ef3085, 16)
-               STEP(H2, b, c, d, a, GET(6), 0x04881d05, 23)
-               STEP(H, a, b, c, d, GET(9), 0xd9d4d039, 4)
-               STEP(H2, d, a, b, c, GET(12), 0xe6db99e5, 11)
-               STEP(H, c, d, a, b, GET(15), 0x1fa27cf8, 16)
-               STEP(H2, b, c, d, a, GET(2), 0xc4ac5665, 23)
-
-/* Round 4 */
-               STEP(I, a, b, c, d, GET(0), 0xf4292244, 6)
-               STEP(I, d, a, b, c, GET(7), 0x432aff97, 10)
-               STEP(I, c, d, a, b, GET(14), 0xab9423a7, 15)
-               STEP(I, b, c, d, a, GET(5), 0xfc93a039, 21)
-               STEP(I, a, b, c, d, GET(12), 0x655b59c3, 6)
-               STEP(I, d, a, b, c, GET(3), 0x8f0ccc92, 10)
-               STEP(I, c, d, a, b, GET(10), 0xffeff47d, 15)
-               STEP(I, b, c, d, a, GET(1), 0x85845dd1, 21)
-               STEP(I, a, b, c, d, GET(8), 0x6fa87e4f, 6)
-               STEP(I, d, a, b, c, GET(15), 0xfe2ce6e0, 10)
-               STEP(I, c, d, a, b, GET(6), 0xa3014314, 15)
-               STEP(I, b, c, d, a, GET(13), 0x4e0811a1, 21)
-               STEP(I, a, b, c, d, GET(4), 0xf7537e82, 6)
-               STEP(I, d, a, b, c, GET(11), 0xbd3af235, 10)
-               STEP(I, c, d, a, b, GET(2), 0x2ad7d2bb, 15)
-               STEP(I, b, c, d, a, GET(9), 0xeb86d391, 21)
-
-               a += saved_a;
-               b += saved_b;
-               c += saved_c;
-               d += saved_d;
-
-               ptr += 64;
-       } while (size -= 64);
-
-       ctx->a = a;
-       ctx->b = b;
-       ctx->c = c;
-       ctx->d = d;
-
-       return ptr;
-}
-
-void MD5_Init(MD5_CTX *ctx)
-{
-       ctx->a = 0x67452301;
-       ctx->b = 0xefcdab89;
-       ctx->c = 0x98badcfe;
-       ctx->d = 0x10325476;
-
-       ctx->lo = 0;
-       ctx->hi = 0;
-}
-
-void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size)
-{
-       MD5_u32plus saved_lo;
-       unsigned long used, available;
-
-       saved_lo = ctx->lo;
-       if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo)
-               ctx->hi++;
-       ctx->hi += size >> 29;
-
-       used = saved_lo & 0x3f;
-
-       if (used) {
-               available = 64 - used;
-
-               if (size < available) {
-                       memcpy(&ctx->buffer[used], data, size);
-                       return;
-               }
-
-               memcpy(&ctx->buffer[used], data, available);
-               data = (const unsigned char *)data + available;
-               size -= available;
-               body(ctx, ctx->buffer, 64);
-       }
-
-       if (size >= 64) {
-               data = body(ctx, data, size & ~(unsigned long)0x3f);
-               size &= 0x3f;
-       }
-
-       memcpy(ctx->buffer, data, size);
-}
-
-void MD5_Final(unsigned char *result, MD5_CTX *ctx)
-{
-       unsigned long used, available;
-
-       used = ctx->lo & 0x3f;
-
-       ctx->buffer[used++] = 0x80;
-
-       available = 64 - used;
-
-       if (available < 8) {
-               memset(&ctx->buffer[used], 0, available);
-               body(ctx, ctx->buffer, 64);
-               used = 0;
-               available = 64;
-       }
-
-       memset(&ctx->buffer[used], 0, available - 8);
-
-       ctx->lo <<= 3;
-       ctx->buffer[56] = ctx->lo;
-       ctx->buffer[57] = ctx->lo >> 8;
-       ctx->buffer[58] = ctx->lo >> 16;
-       ctx->buffer[59] = ctx->lo >> 24;
-       ctx->buffer[60] = ctx->hi;
-       ctx->buffer[61] = ctx->hi >> 8;
-       ctx->buffer[62] = ctx->hi >> 16;
-       ctx->buffer[63] = ctx->hi >> 24;
-
-       body(ctx, ctx->buffer, 64);
-
-       result[0] = ctx->a;
-       result[1] = ctx->a >> 8;
-       result[2] = ctx->a >> 16;
-       result[3] = ctx->a >> 24;
-       result[4] = ctx->b;
-       result[5] = ctx->b >> 8;
-       result[6] = ctx->b >> 16;
-       result[7] = ctx->b >> 24;
-       result[8] = ctx->c;
-       result[9] = ctx->c >> 8;
-       result[10] = ctx->c >> 16;
-       result[11] = ctx->c >> 24;
-       result[12] = ctx->d;
-       result[13] = ctx->d >> 8;
-       result[14] = ctx->d >> 16;
-       result[15] = ctx->d >> 24;
-
-       memset(ctx, 0, sizeof(*ctx));
-}
-
-#endif
diff --git a/package/utils/oseama/src/md5.h b/package/utils/oseama/src/md5.h
deleted file mode 100644 (file)
index 2da44bf..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc.
- * MD5 Message-Digest Algorithm (RFC 1321).
- *
- * Homepage:
- * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
- *
- * Author:
- * Alexander Peslyak, better known as Solar Designer <solar at openwall.com>
- *
- * This software was written by Alexander Peslyak in 2001.  No copyright is
- * claimed, and the software is hereby placed in the public domain.
- * In case this attempt to disclaim copyright and place the software in the
- * public domain is deemed null and void, then the software is
- * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the
- * general public under the following terms:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted.
- *
- * There's ABSOLUTELY NO WARRANTY, express or implied.
- *
- * See md5.c for more information.
- */
-
-#ifdef HAVE_OPENSSL
-#include <openssl/md5.h>
-#elif !defined(_MD5_H)
-#define _MD5_H
-
-/* Any 32-bit or wider unsigned integer data type will do */
-typedef unsigned int MD5_u32plus;
-
-typedef struct {
-       MD5_u32plus lo, hi;
-       MD5_u32plus a, b, c, d;
-       unsigned char buffer[64];
-       MD5_u32plus block[16];
-} MD5_CTX;
-
-extern void MD5_Init(MD5_CTX *ctx);
-extern void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size);
-extern void MD5_Final(unsigned char *result, MD5_CTX *ctx);
-
-#endif
diff --git a/package/utils/oseama/src/oseama.c b/package/utils/oseama/src/oseama.c
deleted file mode 100644 (file)
index 4434b11..0000000
+++ /dev/null
@@ -1,556 +0,0 @@
-/*
- * oseama
- *
- * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- */
-
-#include <byteswap.h>
-#include <endian.h>
-#include <errno.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "md5.h"
-
-#if !defined(__BYTE_ORDER)
-#error "Unknown byte order"
-#endif
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-#define cpu_to_be32(x) (x)
-#define be32_to_cpu(x) (x)
-#define cpu_to_be16(x) (x)
-#define be16_to_cpu(x) (x)
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-#define cpu_to_be32(x) bswap_32(x)
-#define be32_to_cpu(x) bswap_32(x)
-#define cpu_to_be16(x) bswap_16(x)
-#define be16_to_cpu(x) bswap_16(x)
-#else
-#error "Unsupported endianness"
-#endif
-
-#define SEAMA_MAGIC                    0x5ea3a417
-
-struct seama_seal_header {
-       uint32_t magic;
-       uint16_t reserved;
-       uint16_t metasize;
-       uint32_t imagesize;
-} __attribute__ ((packed));
-
-struct seama_entity_header {
-       uint32_t magic;
-       uint16_t reserved;
-       uint16_t metasize;
-       uint32_t imagesize;
-       uint8_t md5[16];
-} __attribute__ ((packed));
-
-char *seama_path;
-int entity_idx = -1;
-char *out_path;
-
-static inline size_t oseama_min(size_t x, size_t y) {
-       return x < y ? x : y;
-}
-
-/**************************************************
- * Info
- **************************************************/
-
-static void oseama_info_parse_options(int argc, char **argv) {
-       int c;
-
-       while ((c = getopt(argc, argv, "e:")) != -1) {
-               switch (c) {
-               case 'e':
-                       entity_idx = atoi(optarg);
-                       break;
-               }
-       }
-}
-
-static int oseama_info_entities(FILE *seama) {
-       struct seama_entity_header hdr;
-       size_t bytes, metasize, imagesize;
-       uint8_t buf[1024];
-       char *end, *tmp;
-       int i = 0;
-       int err = 0;
-
-       while ((bytes = fread(&hdr, 1, sizeof(hdr), seama)) == sizeof(hdr)) {
-               if (be32_to_cpu(hdr.magic) != SEAMA_MAGIC) {
-                       fprintf(stderr, "Invalid Seama magic: 0x%08x\n", be32_to_cpu(hdr.magic));
-                       err =  -EINVAL;
-                       goto err_out;
-               }
-               metasize = be16_to_cpu(hdr.metasize);
-               imagesize = be32_to_cpu(hdr.imagesize);
-
-               if (entity_idx >= 0 && i != entity_idx) {
-                       fseek(seama, metasize + imagesize, SEEK_CUR);
-                       i++;
-                       continue;
-               }
-
-               if (metasize >= sizeof(buf)) {
-                       fprintf(stderr, "Too small buffer (%zu B) to read all meta info (%zd B)\n", sizeof(buf), metasize);
-                       err =  -EINVAL;
-                       goto err_out;
-               }
-
-               if (entity_idx < 0)
-                       printf("\n");
-               printf("Entity offset:\t%ld\n", ftell(seama) - sizeof(hdr));
-               printf("Entity size:\t%zd\n", sizeof(hdr) + metasize + imagesize);
-               printf("Meta size:\t%zd\n", metasize);
-               printf("Image size:\t%zd\n", imagesize);
-
-               bytes = fread(buf, 1, metasize, seama);
-               if (bytes != metasize) {
-                       fprintf(stderr, "Couldn't read %zd B of meta\n", metasize);
-                       err =  -EIO;
-                       goto err_out;
-               }
-
-               end = (char *)&buf[metasize - 1];
-               *end = '\0';
-               for (tmp = (char *)buf; tmp < end && strlen(tmp); tmp += strlen(tmp) + 1) {
-                       printf("Meta entry:\t%s\n", tmp);
-               }
-
-               fseek(seama, imagesize, SEEK_CUR);
-               i++;
-       }
-
-err_out:
-       return err;
-}
-
-static int oseama_info(int argc, char **argv) {
-       FILE *seama;
-       struct seama_seal_header hdr;
-       size_t bytes;
-       uint16_t metasize;
-       uint32_t imagesize;
-       uint8_t buf[1024];
-       int err = 0;
-
-       if (argc < 3) {
-               fprintf(stderr, "No Seama file passed\n");
-               err = -EINVAL;
-               goto out;
-       }
-       seama_path = argv[2];
-
-       optind = 3;
-       oseama_info_parse_options(argc, argv);
-
-       seama = fopen(seama_path, "r");
-       if (!seama) {
-               fprintf(stderr, "Couldn't open %s\n", seama_path);
-               err = -EACCES;
-               goto out;
-       }
-
-       bytes = fread(&hdr, 1, sizeof(hdr), seama);
-       if (bytes != sizeof(hdr)) {
-               fprintf(stderr, "Couldn't read %s header\n", seama_path);
-               err =  -EIO;
-               goto err_close;
-       }
-       metasize = be16_to_cpu(hdr.metasize);
-       imagesize = be32_to_cpu(hdr.imagesize);
-
-       if (be32_to_cpu(hdr.magic) != SEAMA_MAGIC) {
-               fprintf(stderr, "Invalid Seama magic: 0x%08x\n", be32_to_cpu(hdr.magic));
-               err =  -EINVAL;
-               goto err_close;
-       }
-
-       if (metasize >= sizeof(buf)) {
-               fprintf(stderr, "Too small buffer (%zu B) to read all meta info (%d B)\n", sizeof(buf), metasize);
-               err =  -EINVAL;
-               goto err_close;
-       }
-
-       if (imagesize) {
-               fprintf(stderr, "Invalid Seama image size: 0x%08x (should be 0)\n", imagesize);
-               err =  -EINVAL;
-               goto err_close;
-       }
-
-       bytes = fread(buf, 1, metasize, seama);
-       if (bytes != metasize) {
-               fprintf(stderr, "Couldn't read %d B of meta\n", metasize);
-               err =  -EIO;
-               goto err_close;
-       }
-
-       if (entity_idx < 0) {
-               char *end, *tmp;
-
-               printf("Meta size:\t%d\n", metasize);
-               printf("Image size:\t%d\n", imagesize);
-
-               end = (char *)&buf[metasize - 1];
-               *end = '\0';
-               for (tmp = (char *)buf; tmp < end && strlen(tmp); tmp += strlen(tmp) + 1) {
-                       printf("Meta entry:\t%s\n", tmp);
-               }
-       }
-
-       oseama_info_entities(seama);
-
-err_close:
-       fclose(seama);
-out:
-       return err;
-}
-
-/**************************************************
- * Create
- **************************************************/
-
-static ssize_t oseama_entity_append_file(FILE *seama, const char *in_path) {
-       FILE *in;
-       size_t bytes;
-       ssize_t length = 0;
-       uint8_t buf[128];
-
-       in = fopen(in_path, "r");
-       if (!in) {
-               fprintf(stderr, "Couldn't open %s\n", in_path);
-               return -EACCES;
-       }
-
-       while ((bytes = fread(buf, 1, sizeof(buf), in)) > 0) {
-               if (fwrite(buf, 1, bytes, seama) != bytes) {
-                       fprintf(stderr, "Couldn't write %zu B to %s\n", bytes, seama_path);
-                       length = -EIO;
-                       break;
-               }
-               length += bytes;
-       }
-
-       fclose(in);
-
-       return length;
-}
-
-static ssize_t oseama_entity_append_zeros(FILE *seama, size_t length) {
-       uint8_t *buf;
-
-       buf = malloc(length);
-       if (!buf)
-               return -ENOMEM;
-       memset(buf, 0, length);
-
-       if (fwrite(buf, 1, length, seama) != length) {
-               fprintf(stderr, "Couldn't write %zu B to %s\n", length, seama_path);
-               return -EIO;
-       }
-
-       return length;
-}
-
-static ssize_t oseama_entity_align(FILE *seama, size_t curr_offset, size_t alignment) {
-       if (curr_offset & (alignment - 1)) {
-               size_t length = alignment - (curr_offset % alignment);
-
-               return oseama_entity_append_zeros(seama, length);
-       }
-
-       return 0;
-}
-
-static int oseama_entity_write_hdr(FILE *seama, size_t metasize, size_t imagesize) {
-       struct seama_entity_header hdr = {};
-       uint8_t buf[128];
-       size_t length = imagesize;
-       size_t bytes;
-       MD5_CTX ctx;
-
-       fseek(seama, sizeof(hdr) + metasize, SEEK_SET);
-       MD5_Init(&ctx);
-       while ((bytes = fread(buf, 1, oseama_min(sizeof(buf), length), seama)) > 0) {
-               MD5_Update(&ctx, buf, bytes);
-               length -= bytes;
-       }
-       MD5_Final(hdr.md5, &ctx);
-
-       hdr.magic = cpu_to_be32(SEAMA_MAGIC);
-       hdr.metasize = cpu_to_be16(metasize);
-       hdr.imagesize = cpu_to_be32(imagesize);
-
-       fseek(seama, 0, SEEK_SET);
-       bytes = fwrite(&hdr, 1, sizeof(hdr), seama);
-       if (bytes != sizeof(hdr)) {
-               fprintf(stderr, "Couldn't write Seama entity header to %s\n", seama_path);
-               return -EIO;
-       }
-
-       return 0;
-}
-
-static int oseama_entity(int argc, char **argv) {
-       FILE *seama;
-       ssize_t sbytes;
-       size_t curr_offset = sizeof(struct seama_entity_header);
-       size_t metasize = 0, imagesize = 0;
-       int c;
-       int err = 0;
-
-       if (argc < 3) {
-               fprintf(stderr, "No Seama file passed\n");
-               err = -EINVAL;
-               goto out;
-       }
-       seama_path = argv[2];
-
-       seama = fopen(seama_path, "w+");
-       if (!seama) {
-               fprintf(stderr, "Couldn't open %s\n", seama_path);
-               err = -EACCES;
-               goto out;
-       }
-       fseek(seama, curr_offset, SEEK_SET);
-
-       optind = 3;
-       while ((c = getopt(argc, argv, "m:f:b:")) != -1) {
-               switch (c) {
-               case 'm':
-                       sbytes = fwrite(optarg, 1, strlen(optarg) + 1, seama);
-                       if (sbytes < 0) {
-                               fprintf(stderr, "Failed to write meta %s\n", optarg);
-                       } else {
-                               curr_offset += sbytes;
-                               metasize += sbytes;
-                       }
-
-                       sbytes = oseama_entity_align(seama, curr_offset, 4);
-                       if (sbytes < 0) {
-                               fprintf(stderr, "Failed to append zeros\n");
-                       } else {
-                               curr_offset += sbytes;
-                               metasize += sbytes;
-                       }
-
-                       break;
-               case 'f':
-               case 'b':
-                       break;
-               }
-       }
-
-       optind = 3;
-       while ((c = getopt(argc, argv, "m:f:b:")) != -1) {
-               switch (c) {
-               case 'm':
-                       break;
-               case 'f':
-                       sbytes = oseama_entity_append_file(seama, optarg);
-                       if (sbytes < 0) {
-                               fprintf(stderr, "Failed to append file %s\n", optarg);
-                       } else {
-                               curr_offset += sbytes;
-                               imagesize += sbytes;
-                       }
-                       break;
-               case 'b':
-                       sbytes = strtol(optarg, NULL, 0) - curr_offset;
-                       if (sbytes < 0) {
-                               fprintf(stderr, "Current Seama entity length is 0x%zx, can't pad it with zeros to 0x%lx\n", curr_offset, strtol(optarg, NULL, 0));
-                       } else {
-                               sbytes = oseama_entity_append_zeros(seama, sbytes);
-                               if (sbytes < 0) {
-                                       fprintf(stderr, "Failed to append zeros\n");
-                               } else {
-                                       curr_offset += sbytes;
-                                       imagesize += sbytes;
-                               }
-                       }
-                       break;
-               }
-               if (err)
-                       break;
-       }
-
-       oseama_entity_write_hdr(seama, metasize, imagesize);
-
-       fclose(seama);
-out:
-       return err;
-}
-
-/**************************************************
- * Extract
- **************************************************/
-
-static void oseama_extract_parse_options(int argc, char **argv) {
-       int c;
-
-       while ((c = getopt(argc, argv, "e:o:")) != -1) {
-               switch (c) {
-               case 'e':
-                       entity_idx = atoi(optarg);
-                       break;
-               case 'o':
-                       out_path = optarg;
-                       break;
-               }
-       }
-}
-
-static int oseama_extract_entity(FILE *seama, FILE *out) {
-       struct seama_entity_header hdr;
-       size_t bytes, metasize, imagesize, length;
-       uint8_t buf[1024];
-       int i = 0;
-       int err = 0;
-
-       while ((bytes = fread(&hdr, 1, sizeof(hdr), seama)) == sizeof(hdr)) {
-               if (be32_to_cpu(hdr.magic) != SEAMA_MAGIC) {
-                       fprintf(stderr, "Invalid Seama magic: 0x%08x\n", be32_to_cpu(hdr.magic));
-                       err =  -EINVAL;
-                       break;
-               }
-               metasize = be16_to_cpu(hdr.metasize);
-               imagesize = be32_to_cpu(hdr.imagesize);
-
-               if (i != entity_idx) {
-                       fseek(seama, metasize + imagesize, SEEK_CUR);
-                       i++;
-                       continue;
-               }
-
-               fseek(seama, -sizeof(hdr), SEEK_CUR);
-
-               length = sizeof(hdr) + metasize + imagesize;
-               while ((bytes = fread(buf, 1, oseama_min(sizeof(buf), length), seama)) > 0) {
-                       if (fwrite(buf, 1, bytes, out) != bytes) {
-                               fprintf(stderr, "Couldn't write %zu B to %s\n", bytes, out_path);
-                               err = -EIO;
-                               break;
-                       }
-                       length -= bytes;
-               }
-
-               if (length) {
-                       fprintf(stderr, "Couldn't extract whole entity %d from %s (%zu B left)\n", entity_idx, seama_path, length);
-                       err = -EIO;
-                       break;
-               }
-
-               break;
-       }
-
-       return err;
-}
-
-static int oseama_extract(int argc, char **argv) {
-       FILE *seama;
-       FILE *out;
-       struct seama_seal_header hdr;
-       size_t bytes;
-       uint16_t metasize;
-       int err = 0;
-
-       if (argc < 3) {
-               fprintf(stderr, "No Seama file passed\n");
-               err = -EINVAL;
-               goto out;
-       }
-       seama_path = argv[2];
-
-       optind = 3;
-       oseama_extract_parse_options(argc, argv);
-       if (entity_idx < 0) {
-               fprintf(stderr, "No entity specified\n");
-               err = -EINVAL;
-               goto out;
-       } else if (!out_path) {
-               fprintf(stderr, "No output file specified\n");
-               err = -EINVAL;
-               goto out;
-       }
-
-       seama = fopen(seama_path, "r");
-       if (!seama) {
-               fprintf(stderr, "Couldn't open %s\n", seama_path);
-               err = -EACCES;
-               goto out;
-       }
-
-       out = fopen(out_path, "w");
-       if (!out) {
-               fprintf(stderr, "Couldn't open %s\n", out_path);
-               err = -EACCES;
-               goto err_close_seama;
-       }
-
-       bytes = fread(&hdr, 1, sizeof(hdr), seama);
-       if (bytes != sizeof(hdr)) {
-               fprintf(stderr, "Couldn't read %s header\n", seama_path);
-               err =  -EIO;
-               goto err_close_out;
-       }
-       metasize = be16_to_cpu(hdr.metasize);
-
-       fseek(seama, metasize, SEEK_CUR);
-
-       oseama_extract_entity(seama, out);
-
-err_close_out:
-       fclose(out);
-err_close_seama:
-       fclose(seama);
-out:
-       return err;
-}
-
-/**************************************************
- * Start
- **************************************************/
-
-static void usage() {
-       printf("Usage:\n");
-       printf("\n");
-       printf("Info about Seama seal (container):\n");
-       printf("\toseama info <file> [options]\n");
-       printf("\t-e\t\t\t\tprint info about specified entity only\n");
-       printf("\n");
-       printf("Create Seama entity:\n");
-       printf("\toseama entity <file> [options]\n");
-       printf("\t-m meta\t\t\t\tmeta into to put in header\n");
-       printf("\t-f file\t\t\t\tappend content from file\n");
-       printf("\t-b offset\t\t\tappend zeros till reaching absolute offset\n");
-       printf("\n");
-       printf("Extract from Seama seal (container):\n");
-       printf("\toseama extract <file> [options]\n");
-       printf("\t-e\t\t\t\tindex of entity to extract\n");
-       printf("\t-o file\t\t\t\toutput file\n");
-}
-
-int main(int argc, char **argv) {
-       if (argc > 1) {
-               if (!strcmp(argv[1], "info"))
-                       return oseama_info(argc, argv);
-               else if (!strcmp(argv[1], "entity"))
-                       return oseama_entity(argc, argv);
-               else if (!strcmp(argv[1], "extract"))
-                       return oseama_extract(argc, argv);
-       }
-
-       usage();
-       return 0;
-}
diff --git a/package/utils/otrx/Makefile b/package/utils/otrx/Makefile
deleted file mode 100644 (file)
index 9cb76c1..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#
-# Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com>
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=otrx
-PKG_RELEASE:=1
-
-PKG_FLAGS:=nonshared
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/otrx
-  SECTION:=utils
-  CATEGORY:=Base system
-  TITLE:=Utility for opening (analyzing) TRX firmware images
-  MAINTAINER:=Rafał Miłecki <zajec5@gmail.com>
-  DEPENDS:=@TARGET_brcm47xx||@TARGET_bcm53xx
-endef
-
-define Package/otrx/description
- This package contains an utility that allows validating TRX images.
-endef
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               CC="$(TARGET_CC)" \
-               CFLAGS="$(TARGET_CFLAGS) -Wall"
-endef
-
-define Package/otrx/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/otrx $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,otrx))
diff --git a/package/utils/otrx/src/Makefile b/package/utils/otrx/src/Makefile
deleted file mode 100644 (file)
index df50ea4..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-all: otrx
-
-otrx:
-       $(CC) $(CFLAGS) -o $@ otrx.c -Wall
-
-clean:
-       rm -f otrx
diff --git a/package/utils/otrx/src/otrx.c b/package/utils/otrx/src/otrx.c
deleted file mode 100644 (file)
index 223e032..0000000
+++ /dev/null
@@ -1,592 +0,0 @@
-/*
- * otrx
- *
- * Copyright (C) 2015-2017 Rafał Miłecki <zajec5@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- */
-
-#include <byteswap.h>
-#include <endian.h>
-#include <errno.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#if !defined(__BYTE_ORDER)
-#error "Unknown byte order"
-#endif
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-#define cpu_to_le32(x) bswap_32(x)
-#define le32_to_cpu(x) bswap_32(x)
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-#define cpu_to_le32(x) (x)
-#define le32_to_cpu(x) (x)
-#else
-#error "Unsupported endianness"
-#endif
-
-#define TRX_MAGIC                      0x30524448
-#define TRX_FLAGS_OFFSET               12
-#define TRX_MAX_PARTS                  3
-
-struct trx_header {
-       uint32_t magic;
-       uint32_t length;
-       uint32_t crc32;
-       uint16_t flags;
-       uint16_t version;
-       uint32_t offset[3];
-};
-
-char *trx_path;
-size_t trx_offset = 0;
-char *partition[TRX_MAX_PARTS] = {};
-
-static inline size_t otrx_min(size_t x, size_t y) {
-       return x < y ? x : y;
-}
-
-/**************************************************
- * CRC32
- **************************************************/
-
-static const uint32_t crc32_tbl[] = {
-       0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
-       0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
-       0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
-       0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
-       0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
-       0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
-       0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
-       0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
-       0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
-       0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
-       0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
-       0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
-       0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
-       0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
-       0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
-       0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
-       0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
-       0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
-       0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
-       0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
-       0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
-       0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
-       0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
-       0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
-       0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
-       0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
-       0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
-       0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
-       0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
-       0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
-       0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
-       0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
-       0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
-       0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
-       0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
-       0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
-       0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
-       0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
-       0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
-       0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
-       0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
-       0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
-       0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
-       0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
-       0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
-       0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
-       0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
-       0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
-       0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
-       0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
-       0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
-       0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
-       0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
-       0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
-       0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
-       0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
-       0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
-       0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
-       0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
-       0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
-       0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
-       0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
-       0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
-       0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,
-};
-
-uint32_t otrx_crc32(uint32_t crc, uint8_t *buf, size_t len) {
-       while (len) {
-               crc = crc32_tbl[(crc ^ *buf) & 0xff] ^ (crc >> 8);
-               buf++;
-               len--;
-       }
-
-       return crc;
-}
-
-/**************************************************
- * Check
- **************************************************/
-
-static void otrx_check_parse_options(int argc, char **argv) {
-       int c;
-
-       while ((c = getopt(argc, argv, "o:")) != -1) {
-               switch (c) {
-               case 'o':
-                       trx_offset = atoi(optarg);
-                       break;
-               }
-       }
-}
-
-static int otrx_check(int argc, char **argv) {
-       FILE *trx;
-       struct trx_header hdr;
-       size_t bytes, length;
-       uint8_t buf[1024];
-       uint32_t crc32;
-       int err = 0;
-
-       if (argc < 3) {
-               fprintf(stderr, "No TRX file passed\n");
-               err = -EINVAL;
-               goto out;
-       }
-       trx_path = argv[2];
-
-       optind = 3;
-       otrx_check_parse_options(argc, argv);
-
-       trx = fopen(trx_path, "r");
-       if (!trx) {
-               fprintf(stderr, "Couldn't open %s\n", trx_path);
-               err = -EACCES;
-               goto out;
-       }
-
-       fseek(trx, trx_offset, SEEK_SET);
-       bytes = fread(&hdr, 1, sizeof(hdr), trx);
-       if (bytes != sizeof(hdr)) {
-               fprintf(stderr, "Couldn't read %s header\n", trx_path);
-               err =  -EIO;
-               goto err_close;
-       }
-
-       if (le32_to_cpu(hdr.magic) != TRX_MAGIC) {
-               fprintf(stderr, "Invalid TRX magic: 0x%08x\n", le32_to_cpu(hdr.magic));
-               err =  -EINVAL;
-               goto err_close;
-       }
-
-       length = le32_to_cpu(hdr.length);
-       if (length < sizeof(hdr)) {
-               fprintf(stderr, "Length read from TRX too low (%zu B)\n", length);
-               err = -EINVAL;
-               goto err_close;
-       }
-
-       crc32 = 0xffffffff;
-       fseek(trx, trx_offset + TRX_FLAGS_OFFSET, SEEK_SET);
-       length -= TRX_FLAGS_OFFSET;
-       while ((bytes = fread(buf, 1, otrx_min(sizeof(buf), length), trx)) > 0) {
-               crc32 = otrx_crc32(crc32, buf, bytes);
-               length -= bytes;
-       }
-
-       if (length) {
-               fprintf(stderr, "Couldn't read last %zd B of data from %s\n", length, trx_path);
-               err = -EIO;
-               goto err_close;
-       }
-
-       if (crc32 != le32_to_cpu(hdr.crc32)) {
-               fprintf(stderr, "Invalid data crc32: 0x%08x instead of 0x%08x\n", crc32, le32_to_cpu(hdr.crc32));
-               err =  -EINVAL;
-               goto err_close;
-       }
-
-       printf("Found a valid TRX version %d\n", le32_to_cpu(hdr.version));
-
-err_close:
-       fclose(trx);
-out:
-       return err;
-}
-
-/**************************************************
- * Create
- **************************************************/
-
-static ssize_t otrx_create_append_file(FILE *trx, const char *in_path) {
-       FILE *in;
-       size_t bytes;
-       ssize_t length = 0;
-       uint8_t buf[1024];
-
-       in = fopen(in_path, "r");
-       if (!in) {
-               fprintf(stderr, "Couldn't open %s\n", in_path);
-               return -EACCES;
-       }
-
-       while ((bytes = fread(buf, 1, sizeof(buf), in)) > 0) {
-               if (fwrite(buf, 1, bytes, trx) != bytes) {
-                       fprintf(stderr, "Couldn't write %zu B to %s\n", bytes, trx_path);
-                       length = -EIO;
-                       break;
-               }
-               length += bytes;
-       }
-
-       fclose(in);
-
-       return length;
-}
-
-static ssize_t otrx_create_append_zeros(FILE *trx, size_t length) {
-       uint8_t *buf;
-
-       buf = malloc(length);
-       if (!buf)
-               return -ENOMEM;
-       memset(buf, 0, length);
-
-       if (fwrite(buf, 1, length, trx) != length) {
-               fprintf(stderr, "Couldn't write %zu B to %s\n", length, trx_path);
-               free(buf);
-               return -EIO;
-       }
-
-       free(buf);
-
-       return length;
-}
-
-static ssize_t otrx_create_align(FILE *trx, size_t curr_offset, size_t alignment) {
-       if (curr_offset & (alignment - 1)) {
-               size_t length = alignment - (curr_offset % alignment);
-               return otrx_create_append_zeros(trx, length);
-       }
-
-       return 0;
-}
-
-static int otrx_create_write_hdr(FILE *trx, struct trx_header *hdr) {
-       size_t bytes, length;
-       uint8_t buf[1024];
-       uint32_t crc32;
-
-       hdr->magic = cpu_to_le32(TRX_MAGIC);
-       hdr->version = 1;
-
-       fseek(trx, 0, SEEK_SET);
-       bytes = fwrite(hdr, 1, sizeof(struct trx_header), trx);
-       if (bytes != sizeof(struct trx_header)) {
-               fprintf(stderr, "Couldn't write TRX header to %s\n", trx_path);
-               return -EIO;
-       }
-
-       length = le32_to_cpu(hdr->length);
-
-       crc32 = 0xffffffff;
-       fseek(trx, TRX_FLAGS_OFFSET, SEEK_SET);
-       length -= TRX_FLAGS_OFFSET;
-       while ((bytes = fread(buf, 1, otrx_min(sizeof(buf), length), trx)) > 0) {
-               crc32 = otrx_crc32(crc32, buf, bytes);
-               length -= bytes;
-       }
-       hdr->crc32 = cpu_to_le32(crc32);
-
-       fseek(trx, 0, SEEK_SET);
-       bytes = fwrite(hdr, 1, sizeof(struct trx_header), trx);
-       if (bytes != sizeof(struct trx_header)) {
-               fprintf(stderr, "Couldn't write TRX header to %s\n", trx_path);
-               return -EIO;
-       }
-
-       return 0;
-}
-
-static int otrx_create(int argc, char **argv) {
-       FILE *trx;
-       struct trx_header hdr = {};
-       ssize_t sbytes;
-       size_t curr_idx = 0;
-       size_t curr_offset = sizeof(hdr);
-       int c;
-       int err = 0;
-
-       if (argc < 3) {
-               fprintf(stderr, "No TRX file passed\n");
-               err = -EINVAL;
-               goto out;
-       }
-       trx_path = argv[2];
-
-       trx = fopen(trx_path, "w+");
-       if (!trx) {
-               fprintf(stderr, "Couldn't open %s\n", trx_path);
-               err = -EACCES;
-               goto out;
-       }
-       fseek(trx, curr_offset, SEEK_SET);
-
-       optind = 3;
-       while ((c = getopt(argc, argv, "f:A:a:b:")) != -1) {
-               switch (c) {
-               case 'f':
-                       if (curr_idx >= TRX_MAX_PARTS) {
-                               err = -ENOSPC;
-                               fprintf(stderr, "Reached TRX partitions limit, no place for %s\n", optarg);
-                               goto err_close;
-                       }
-
-                       sbytes = otrx_create_append_file(trx, optarg);
-                       if (sbytes < 0) {
-                               fprintf(stderr, "Failed to append file %s\n", optarg);
-                       } else {
-                               hdr.offset[curr_idx++] = curr_offset;
-                               curr_offset += sbytes;
-                       }
-
-                       sbytes = otrx_create_align(trx, curr_offset, 4);
-                       if (sbytes < 0)
-                               fprintf(stderr, "Failed to append zeros\n");
-                       else
-                               curr_offset += sbytes;
-
-                       break;
-               case 'A':
-                       sbytes = otrx_create_append_file(trx, optarg);
-                       if (sbytes < 0) {
-                               fprintf(stderr, "Failed to append file %s\n", optarg);
-                       } else {
-                               curr_offset += sbytes;
-                       }
-
-                       sbytes = otrx_create_align(trx, curr_offset, 4);
-                       if (sbytes < 0)
-                               fprintf(stderr, "Failed to append zeros\n");
-                       else
-                               curr_offset += sbytes;
-                       break;
-               case 'a':
-                       sbytes = otrx_create_align(trx, curr_offset, strtol(optarg, NULL, 0));
-                       if (sbytes < 0)
-                               fprintf(stderr, "Failed to append zeros\n");
-                       else
-                               curr_offset += sbytes;
-                       break;
-               case 'b':
-                       sbytes = strtol(optarg, NULL, 0) - curr_offset;
-                       if (sbytes < 0) {
-                               fprintf(stderr, "Current TRX length is 0x%zx, can't pad it with zeros to 0x%lx\n", curr_offset, strtol(optarg, NULL, 0));
-                       } else {
-                               sbytes = otrx_create_append_zeros(trx, sbytes);
-                               if (sbytes < 0)
-                                       fprintf(stderr, "Failed to append zeros\n");
-                               else
-                                       curr_offset += sbytes;
-                       }
-                       break;
-               }
-               if (err)
-                       break;
-       }
-
-       sbytes = otrx_create_align(trx, curr_offset, 0x1000);
-       if (sbytes < 0)
-               fprintf(stderr, "Failed to append zeros\n");
-       else
-               curr_offset += sbytes;
-
-       hdr.length = curr_offset;
-       otrx_create_write_hdr(trx, &hdr);
-err_close:
-       fclose(trx);
-out:
-       return err;
-}
-
-/**************************************************
- * Extract
- **************************************************/
-
-static void otrx_extract_parse_options(int argc, char **argv) {
-       int c;
-
-       while ((c = getopt(argc, argv, "c:e:o:1:2:3:")) != -1) {
-               switch (c) {
-               case 'o':
-                       trx_offset = atoi(optarg);
-                       break;
-               case '1':
-                       partition[0] = optarg;
-                       break;
-               case '2':
-                       partition[1] = optarg;
-                       break;
-               case '3':
-                       partition[2] = optarg;
-                       break;
-               }
-       }
-}
-
-static int otrx_extract_copy(FILE *trx, size_t offset, size_t length, char *out_path) {
-       FILE *out;
-       size_t bytes;
-       uint8_t *buf;
-       int err = 0;
-
-       out = fopen(out_path, "w");
-       if (!out) {
-               fprintf(stderr, "Couldn't open %s\n", out_path);
-               err = -EACCES;
-               goto out;
-       }
-
-       buf = malloc(length);
-       if (!buf) {
-               fprintf(stderr, "Couldn't alloc %zu B buffer\n", length);
-               err =  -ENOMEM;
-               goto err_close;
-       }
-
-       fseek(trx, offset, SEEK_SET);
-       bytes = fread(buf, 1, length, trx);
-       if (bytes != length) {
-               fprintf(stderr, "Couldn't read %zu B of data from %s\n", length, trx_path);
-               err =  -ENOMEM;
-               goto err_free_buf;
-       };
-
-       bytes = fwrite(buf, 1, length, out);
-       if (bytes != length) {
-               fprintf(stderr, "Couldn't write %zu B to %s\n", length, out_path);
-               err =  -ENOMEM;
-               goto err_free_buf;
-       }
-
-       printf("Extracted 0x%zx bytes into %s\n", length, out_path);
-
-err_free_buf:
-       free(buf);
-err_close:
-       fclose(out);
-out:
-       return err;
-}
-
-static int otrx_extract(int argc, char **argv) {
-       FILE *trx;
-       struct trx_header hdr;
-       size_t bytes;
-       int i;
-       int err = 0;
-
-       if (argc < 3) {
-               fprintf(stderr, "No TRX file passed\n");
-               err = -EINVAL;
-               goto out;
-       }
-       trx_path = argv[2];
-
-       optind = 3;
-       otrx_extract_parse_options(argc, argv);
-
-       trx = fopen(trx_path, "r");
-       if (!trx) {
-               fprintf(stderr, "Couldn't open %s\n", trx_path);
-               err = -EACCES;
-               goto out;
-       }
-
-       fseek(trx, trx_offset, SEEK_SET);
-       bytes = fread(&hdr, 1, sizeof(hdr), trx);
-       if (bytes != sizeof(hdr)) {
-               fprintf(stderr, "Couldn't read %s header\n", trx_path);
-               err =  -EIO;
-               goto err_close;
-       }
-
-       if (le32_to_cpu(hdr.magic) != TRX_MAGIC) {
-               fprintf(stderr, "Invalid TRX magic: 0x%08x\n", le32_to_cpu(hdr.magic));
-               err =  -EINVAL;
-               goto err_close;
-       }
-
-       for (i = 0; i < TRX_MAX_PARTS; i++) {
-               size_t length;
-
-               if (!partition[i])
-                       continue;
-               if (!hdr.offset[i]) {
-                       printf("TRX doesn't contain partition %d, can't extract %s\n", i + 1, partition[i]);
-                       continue;
-               }
-
-               if (i + 1 >= TRX_MAX_PARTS || !hdr.offset[i + 1])
-                       length = le32_to_cpu(hdr.length) - le32_to_cpu(hdr.offset[i]);
-               else
-                       length = le32_to_cpu(hdr.offset[i + 1]) - le32_to_cpu(hdr.offset[i]);
-
-               otrx_extract_copy(trx, trx_offset + le32_to_cpu(hdr.offset[i]), length, partition[i]);
-       }
-
-err_close:
-       fclose(trx);
-out:
-       return err;
-}
-
-/**************************************************
- * Start
- **************************************************/
-
-static void usage() {
-       printf("Usage:\n");
-       printf("\n");
-       printf("Checking TRX file:\n");
-       printf("\totrx check <file> [options]\tcheck if file is a valid TRX\n");
-       printf("\t-o offset\t\t\toffset of TRX data in file (default: 0)\n");
-       printf("\n");
-       printf("Creating new TRX file:\n");
-       printf("\totrx create <file> [options] [partitions]\n");
-       printf("\t-f file\t\t\t\t[partition] start new partition with content copied from file\n");
-       printf("\t-A file\t\t\t\t[partition] append current partition with content copied from file\n");
-       printf("\t-a alignment\t\t\t[partition] align current partition\n");
-       printf("\t-b offset\t\t\t[partition] append zeros to partition till reaching absolute offset\n");
-       printf("\n");
-       printf("Extracting from TRX file:\n");
-       printf("\totrx extract <file> [options]\textract partitions from TRX file\n");
-       printf("\t-o offset\t\t\toffset of TRX data in file (default: 0)\n");
-       printf("\t-1 file\t\t\t\tfile to extract 1st partition to (optional)\n");
-       printf("\t-2 file\t\t\t\tfile to extract 2nd partition to (optional)\n");
-       printf("\t-3 file\t\t\t\tfile to extract 3rd partition to (optional)\n");
-}
-
-int main(int argc, char **argv) {
-       if (argc > 1) {
-               if (!strcmp(argv[1], "check"))
-                       return otrx_check(argc, argv);
-               else if (!strcmp(argv[1], "create"))
-                       return otrx_create(argc, argv);
-               else if (!strcmp(argv[1], "extract"))
-                       return otrx_extract(argc, argv);
-       }
-
-       usage();
-       return 0;
-}
diff --git a/package/utils/ugps/Makefile b/package/utils/ugps/Makefile
deleted file mode 100644 (file)
index d5391f5..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#
-# Copyright (C) 2014 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=ugps
-PKG_RELEASE:=3
-
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/ugps.git
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2018-11-11
-PKG_SOURCE_VERSION:=07528d43f9bccf22dfb16ee03083bb46dd53dfcf
-PKG_MIRROR_HASH:=0811925082e0ec503aae1f65797241e78886930b061931db066b44c2b0e4bc23
-
-PKG_MAINTAINER:=John Crispin <john@phrozen.org>
-PKG_LICENSE:=GPL-2.0+
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/cmake.mk
-
-define Package/ugps
-  SECTION:=utils
-  CATEGORY:=Utilities
-  TITLE:=libreCMC GPS Daemon
-  DEPENDS:=+libubox +libubus
-endef
-
-TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
-
-ifneq ($(CONFIG_USE_GLIBC),)
-  TARGET_CFLAGS += -D_DEFAULT_SOURCE
-endif
-
-define Package/ugps/conffiles
-/etc/config/gps
-endef
-
-define Package/ugps/install
-       $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/ugps $(1)/usr/sbin/
-       $(INSTALL_BIN) ./files/ugps.init $(1)/etc/init.d/ugps
-       $(INSTALL_CONF) ./files/gps.config $(1)/etc/config/gps
-endef
-
-$(eval $(call BuildPackage,ugps))
diff --git a/package/utils/ugps/files/gps.config b/package/utils/ugps/files/gps.config
deleted file mode 100644 (file)
index 01559f7..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-config gps
-       option  'tty'   'ttyACM0'
-       option  'adjust_time'   '1'
-       option  'disabled'      '1'
diff --git a/package/utils/ugps/files/ugps.init b/package/utils/ugps/files/ugps.init
deleted file mode 100644 (file)
index 3cd1ca1..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (c) 2014 OpenWrt.org
-
-START=80
-
-USE_PROCD=1
-PROG=/usr/sbin/ugps
-
-service_triggers() {
-       procd_add_reload_trigger gps
-}
-
-start_service() {
-       local tty="$(uci get gps.@gps[-1].tty)"
-       local atime="$(uci get gps.@gps[-1].adjust_time)"
-       local disabled="$(uci get gps.@gps[-1].disabled || echo 0)"
-
-       [ "$disabled" == "0" ] || return
-
-       [ -c "$tty" ] || {
-               tty="/dev/$tty"
-               [ -c "$tty" ] || return
-       }
-
-       procd_open_instance
-       procd_set_param command "$PROG"
-       [ "$atime" -eq 0 ] || procd_append_param command "-a"
-       procd_append_param command "$tty"
-       procd_set_param respawn
-       procd_close_instance
-}
index f3e46ec0e9fa8c5120a898ebc2359fa1a9bfa030..af3b78b33234868bd90ba36084a244c77f52fdb2 100644 (file)
@@ -4,7 +4,7 @@ PKG_NAME:=usbmode
 PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(PROJECT_GIT)/project/usbmode.git
+PKG_SOURCE_URL=$(PROJECT_GIT)/usbmode.git
 PKG_SOURCE_DATE:=2017-12-19
 PKG_SOURCE_VERSION:=f40f84c27534159066c94dadc0c08e0b255c3e26
 PKG_MIRROR_HASH:=840c7ee2843102b09d8943a20820025251cc259385e2b0bde6b7c8cce8190f83
index 849ac964369e2a8a8598a95aaff506a4aae3578b..b4ee64e577d60f9b515091e3007a3022b92b6cde 100644 (file)
@@ -37,7 +37,7 @@ USB_IDS_FILE:=usb.ids.$(USB_IDS_VER)
 define Download/usb_ids
   FILE:=$(USB_IDS_FILE)
   URL_FILE:=usb.ids
-  URL:=@GITHUB/vcrhonek/hwdata/v$(USB_IDS_VER)
+  URL:=$(PROJECT_GIT)/hwdata/raw/v$(USB_IDS_VER)
   HASH:=7454bd75fcfe5559bd1caa1bb132ecffe72a39269a2efaab9472de46be3bcf57
 endef
 $(eval $(call Download,usb_ids))
index 5e1a6ea58adbb41c9a63528a395bbea78c2b2885..169ef5159c2a3e81eec2b6d07966a09bd3f37fe7 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=util-linux
 PKG_VERSION:=2.33
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.33
@@ -47,6 +47,7 @@ $(call Package/util-linux/Default)
   TITLE:=block device id library
   SECTION:=libs
   CATEGORY:=Libraries
+  ABI_VERSION:=1
 endef
 
 define Package/libblkid/description
@@ -62,6 +63,7 @@ $(call Package/util-linux/Default)
   TITLE:=partition manipulating library
   SECTION:=libs
   CATEGORY:=Libraries
+  ABI_VERSION:=1
 endef
 
 define Package/libfdisk/description
@@ -74,6 +76,7 @@ $(call Package/util-linux/Default)
   TITLE:=mount library
   SECTION:=libs
   CATEGORY:=Libraries
+  ABI_VERSION:=1
 endef
 
 define Package/libmount/description
@@ -86,6 +89,7 @@ $(call Package/util-linux/Default)
   TITLE:=DCE compatible Universally Unique Identifier library
   SECTION:=libs
   CATEGORY:=Libraries
+  ABI_VERSION:=1
 endef
 
 define Package/libuuid/description
@@ -100,6 +104,7 @@ $(call Package/util-linux/Default)
   TITLE:=table or tree library
   SECTION:=libs
   CATEGORY:=Libraries
+  ABI_VERSION:=1
 endef
 
 define Package/libsmartcols/description
@@ -544,32 +549,27 @@ endef
 
 define Package/libfdisk/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/lib/libfdisk.so* $(1)/usr/lib/
-       $(LN) libfdisk.so.1 $(1)/usr/lib/libfdisk.so
+       $(CP) $(PKG_INSTALL_DIR)/lib/libfdisk.so.* $(1)/usr/lib/
 endef
 
 define Package/libblkid/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/lib/libblkid.so* $(1)/usr/lib/
-       $(LN) libblkid.so.1 $(1)/usr/lib/libblkid.so
+       $(CP) $(PKG_INSTALL_DIR)/lib/libblkid.so.* $(1)/usr/lib/
 endef
 
 define Package/libmount/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/lib/libmount.so* $(1)/usr/lib/
-       $(LN) libmount.so.1 $(1)/usr/lib/libmount.so
+       $(CP) $(PKG_INSTALL_DIR)/lib/libmount.so.* $(1)/usr/lib/
 endef
 
 define Package/libsmartcols/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/lib/libsmartcols.so* $(1)/usr/lib/
-       $(LN) libsmartcols.so.1 $(1)/usr/lib/libsmartcols.so
+       $(CP) $(PKG_INSTALL_DIR)/lib/libsmartcols.so.* $(1)/usr/lib/
 endef
 
 define Package/libuuid/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/lib/libuuid.so* $(1)/usr/lib/
-       $(LN) libuuid.so.1 $(1)/usr/lib/libuuid.so
+       $(CP) $(PKG_INSTALL_DIR)/lib/libuuid.so.* $(1)/usr/lib/
 endef
 
 define Package/agetty/install
index c25d11d57397db09f250d129281085f060a9e7c0..90b1169cef4e14d4c1f5dbb041d0a95d52a92997 100644 (file)
--- a/rules.mk
+++ b/rules.mk
@@ -183,8 +183,6 @@ else
 LIBGCC_A=$(lastword $(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.a))
 LIBGCC_S=$(if $(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so),-L$(TOOLCHAIN_DIR)/lib -lgcc_s,$(LIBGCC_A))
 endif
-LIBRPC=-lrpc
-LIBRPC_DEPENDS=+librpc
 
 ifeq ($(CONFIG_ARCH_64BIT),y)
   LIB_SUFFIX:=64
index d1a257889d96acceadc098beb5389d4302347e74..e580566a528e0d613f22830012f0801979e13ba1 100755 (executable)
@@ -14,7 +14,7 @@ cat "$1" | (
                [ -f "$entry" ] && rm -f $entry
        done
 )
-cat "$1" | (
+sort -r "$1" | (
        cd "$2"
        while read entry; do
                [ -n "$entry" ] || break
index 249b52f5585e0ef33fbec664227cdfcccfc17c47..32959e47decb518dde986f1d219d7576c60cea19 100755 (executable)
@@ -197,39 +197,17 @@ foreach my $mirror (@ARGV) {
                push @mirrors, "https://mirror.netcologne.de/apache.org/$1";
                push @mirrors, "https://mirror.aarnet.edu.au/pub/apache/$1";
                push @mirrors, "https://mirror.csclub.uwaterloo.ca/apache/$1";
-               push @mirrors, "http://mirror.cogentco.com/pub/apache/$1";
-               push @mirrors, "http://mirror.navercorp.com/apache/$1";
-               push @mirrors, "http://ftp.jaist.ac.jp/pub/apache/$1";
-               push @mirrors, "ftp://apache.cs.utah.edu/apache.org/$1";
-               push @mirrors, "ftp://apache.mirrors.ovh.net/ftp.apache.org/dist/$1";
+       } elsif ($mirror =~ /^\@GITHUB\/(.+)$/) {
+               # give github a few more tries (different mirrors)
+               for (1 .. 5) {
+                       push @mirrors, "https://raw.githubusercontent.com/$1";
+               }
        } elsif ($mirror =~ /^\@GNU\/(.+)$/) {
                push @mirrors, "https://mirror.csclub.uwaterloo.ca/gnu/$1";
                push @mirrors, "https://mirror.netcologne.de/gnu/$1";
-               push @mirrors, "http://ftp.kddilabs.jp/GNU/gnu/$1";
-               push @mirrors, "http://www.nic.funet.fi/pub/gnu/gnu/$1";
-               push @mirrors, "http://mirror.internode.on.net/pub/gnu/$1";
-               push @mirrors, "http://mirror.navercorp.com/gnu/$1";
-               push @mirrors, "ftp://mirrors.rit.edu/gnu/$1";
-               push @mirrors, "ftp://download.xs4all.nl/pub/gnu/";
        } elsif ($mirror =~ /^\@SAVANNAH\/(.+)$/) {
                push @mirrors, "https://mirror.netcologne.de/savannah/$1";
                push @mirrors, "https://mirror.csclub.uwaterloo.ca/nongnu/$1";
-               push @mirrors, "http://ftp.acc.umu.se/mirror/gnu.org/savannah/$1";
-               push @mirrors, "http://nongnu.uib.no/$1";
-               push @mirrors, "http://ftp.igh.cnrs.fr/pub/nongnu/$1";
-               push @mirrors, "http://public.p-knowledge.co.jp/Savannah-nongnu-mirror/$1";
-               push @mirrors, "ftp://cdimage.debian.org/mirror/gnu.org/savannah/$1";
-               push @mirrors, "ftp://ftp.acc.umu.se/mirror/gnu.org/savannah/$1";
-       } elsif ($mirror =~ /^\@KERNEL_LIBRE\/(.+)$/) {
-                my @extra = ( $1 );
-                if ($filename =~ /linux-libre-\d+\.\d+(?:\.\d+)?-rc-gnu/) {
-                        push @extra, "$extra[0]/testing";
-                } elsif ($filename =~ /linux-libre-(\d+\.\d+(?:\.\d+)?)-gnu/) {
-                        push @extra, "$extra[0]/v$1";
-                }
-                foreach my $dir (@extra) {
-                        push @mirrors, "https://linux-libre.fsfla.org/pub/linux-libre/releases/$dir";
-                }
        } elsif ($mirror =~ /^\@KERNEL\/(.+)$/) {
                my @extra = ( $1 );
                if ($filename =~ /linux-\d+\.\d+(?:\.\d+)?-rc/) {
@@ -240,32 +218,26 @@ foreach my $mirror (@ARGV) {
                foreach my $dir (@extra) {
                        push @mirrors, "https://cdn.kernel.org/pub/$dir";
                        push @mirrors, "https://mirror.rackspace.com/kernel.org/$dir";
-                       push @mirrors, "http://download.xs4all.nl/ftp.kernel.org/pub/$dir";
-                       push @mirrors, "http://mirrors.mit.edu/kernel/$dir";
-                       push @mirrors, "http://ftp.nara.wide.ad.jp/pub/kernel.org/$dir";
-                       push @mirrors, "http://www.ring.gr.jp/archives/linux/kernel.org/$dir";
-                       push @mirrors, "ftp://ftp.riken.jp/Linux/kernel.org/$dir";
-                       push @mirrors, "ftp://www.mirrorservice.org/sites/ftp.kernel.org/pub/$dir";
                }
+    } elsif ($mirror =~ /^\@KERNEL_LIBRE\/(.+)$/) {
+                my @extra = ( $1 );
+                if ($filename =~ /linux-libre-\d+\.\d+(?:\.\d+)?-rc-gnu/) {
+                        push @extra, "$extra[0]/testing";
+                } elsif ($filename =~ /linux-libre-(\d+\.\d+(?:\.\d+)?)-gnu/) {
+                        push @extra, "$extra[0]/v$1";
+                }
+                foreach my $dir (@extra) {
+                        push @mirrors, "https://linux-libre.fsfla.org/pub/linux-libre/releases/$dir";
+                }
     } elsif ($mirror =~ /^\@GNOME\/(.+)$/) {
                push @mirrors, "https://mirror.csclub.uwaterloo.ca/gnome/sources/$1";
-               push @mirrors, "http://ftp.acc.umu.se/pub/GNOME/sources/$1";
-               push @mirrors, "http://ftp.kaist.ac.kr/gnome/sources/$1";
-               push @mirrors, "http://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/$1";
-               push @mirrors, "http://mirror.internode.on.net/pub/gnome/sources/$1";
-               push @mirrors, "http://ftp.belnet.be/ftp.gnome.org/sources/$1";
-               push @mirrors, "ftp://ftp.cse.buffalo.edu/pub/Gnome/sources/$1";
-               push @mirrors, "ftp://ftp.nara.wide.ad.jp/pub/X11/GNOME/sources/$1";
     }
     else {
                push @mirrors, $mirror;
        }
 }
 
-#push @mirrors, 'https://mirror1.openwrt.org';
-push @mirrors, 'https://sources.openwrt.org';
-push @mirrors, 'https://mirror2.openwrt.org/sources';
-push @mirrors, 'https://downloads.openwrt.org/sources';
+push @mirrors, 'https://librecmc.org/librecmc/downloads/sources/v1.5';
 
 while (!-f "$target/$filename") {
        my $mirror = shift @mirrors;
index b825d2768b9897b9735f0a761a6ef57c624545dc..b182f09d21c7232b5cc66d9fdefa489c523bc60f 100755 (executable)
@@ -1,24 +1,32 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
+
+import argparse
 
 from ftplib import FTP
 from sys import argv
 from os import stat
 
-assert len(argv) == 3
-ip = argv[1]
-image = argv[2]
+parser = argparse.ArgumentParser(description='Tool to boot AVM EVA ramdisk images.')
+parser.add_argument('ip', type=str, help='IP-address to transfer the image to')
+parser.add_argument('image', type=str, help='Location of the ramdisk image')
+parser.add_argument('--offset', type=lambda x: int(x,0), help='Offset to load the image to in hex format with leading 0x. Only needed for non-lantiq devices.')
+args = parser.parse_args()
 
-size = stat(image).st_size
+size = stat(args.image).st_size
 # arbitrary size limit, to prevent the address calculations from overflows etc.
 assert size < 0x2000000
 
-# We need to align the address. A page boundary seems to be sufficient on 7362sl
-# and 7412
-addr = ((0x8000000 - size) & ~0xfff)
-haddr = 0x80000000 + addr
-img = open(image, "rb")
+if args.offset:
+       addr = size
+       haddr = args.offset
+else:
+       # We need to align the address.
+       # A page boundary seems to be sufficient on 7362sl and 7412
+       addr = ((0x8000000 - size) & ~0xfff)
+       haddr = 0x80000000 + addr
 
-ftp = FTP(ip, 'adam2', 'adam2')
+img = open(args.image, "rb")
+ftp = FTP(args.ip, 'adam2', 'adam2')
 
 def adam(cmd):
        print("> %s"%(cmd))
index 392cd852bf2dfa570b4be5e717de0ace8dd7267a..9175f411db8345ab420fdb1edcaf0d20f858f12f 100755 (executable)
@@ -12,7 +12,7 @@ try_version() {
 }
 
 try_git() {
-       REBOOT=dc0e62a006c976755ff80264aca2f77046206ddb
+       REBOOT=ee53a240ac902dc83209008a2671e7fdcf55957a
        git rev-parse --git-dir >/dev/null 2>&1 || return 1
 
        [ -n "$GET_REV" ] || GET_REV="HEAD"
index dcd11ca191adc36d92d6790cb1a1e61a5be36dce..f6f15d7dd8c33969d81d43abed706513e3078b86 100755 (executable)
@@ -17,7 +17,7 @@ for pkg in `find $pkg_dir -name '*.ipk' | sort`; do
        [[ "$name" = "kernel" ]] && continue
        [[ "$name" = "libc" ]] && continue
        echo "Generating index for package $pkg" >&2
-       file_size=$(ls -l $pkg | awk '{print $5}')
+       file_size=$(stat -L -c%s $pkg)
        sha256sum=$(mkhash sha256 $pkg)
        # Take pains to make variable value sed-safe
        sed_safe_pkg=`echo $pkg | sed -e 's/^\.\///g' -e 's/\\//\\\\\\//g'`
diff --git a/scripts/ipkg-remove b/scripts/ipkg-remove
new file mode 100755 (executable)
index 0000000..f495700
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+sourcename="$1"; shift
+
+for pkg in "$@"; do
+       tar -Ozxf "$pkg" ./control.tar.gz 2>/dev/null | tar -Ozxf - ./control 2>/dev/null | \
+       while read field value; do
+               if [ "$field" = "SourceName:" ] && [ "$value" = "$sourcename" ]; then
+                       rm -vf "$pkg"
+                       break
+               fi
+       done
+       case "$pkg" in
+               */"${sourcename}_"*.ipk)
+                       rm -vf "$pkg"
+               ;;
+       esac
+done
+
+exit 0
diff --git a/scripts/linksys-image.sh b/scripts/linksys-image.sh
new file mode 100755 (executable)
index 0000000..36a676d
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+#
+# Copyright (C) 2018 Oceanic Systems (UK) Ltd
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# Maintained by: Ryan Pannell <ryan [at] o s u k l .com> <github.com/Escalion>
+#
+# Write Linksys signature for factory image
+# This is appended to the factory image and is tested by the Linksys Upgrader - as observed in civic.
+# The footer is 256 bytes. The format is:
+#  .LINKSYS.        This is detected by the Linksys upgrader before continuing with upgrade. (9 bytes)
+#  <VERSION>        The version number of upgrade. Not checked so use arbitary value (8 bytes)
+#  <TYPE>           Model of target device, padded (0x20) to (15 bytes)
+#  <CRC>           CRC checksum of the image to flash (8 byte)
+#  <padding>       Padding (0x20) (7 bytes)
+#  <signature>     Signature of signer. Not checked so use Arbitary value (16 bytes)
+#  <padding>        Padding (0x00) (192 bytes)
+#  0x0A                    (1 byte)
+
+## version history
+# * version 1: initial commit
+
+set -e
+
+ME="${0##*/}"
+
+usage() {
+       echo "Usage: $ME <type> <in filename>"
+       [ "$IMG_OUT" ] && rm -f "$IMG_OUT"
+       exit 1
+}
+
+[ "$#" -lt 3 ] && usage
+
+TYPE=$1
+
+tmpdir="$( mktemp -d 2> /dev/null )"
+if [ -z "$tmpdir" ]; then
+       # try OSX signature
+       tmpdir="$( mktemp -t 'ubitmp' -d )"
+fi
+
+if [ -z "$tmpdir" ]; then
+       exit 1
+fi
+
+trap "rm -rf $tmpdir" EXIT
+
+IMG_TMP_OUT="${tmpdir}/out"
+
+IMG_IN=$2
+IMG_OUT="${IMG_IN}.new"
+
+[ ! -f "$IMG_IN" ] && echo "$ME: Not a valid image: $IMG_IN" && usage
+
+dd if="${IMG_IN}" of="${IMG_TMP_OUT}"
+CRC=$(printf "%08X" $(dd if="${IMG_IN}" bs=$(stat -c%s "${IMG_IN}") count=1|cksum| cut -d ' ' -f1))
+
+printf ".LINKSYS.01000409%-15s%-8s%-7s%-16s" "${TYPE}" "${CRC}" "" "K0000000F0246434" >> "${IMG_TMP_OUT}"
+
+dd if=/dev/zero bs=1 count=192 conv=notrunc >> "${IMG_TMP_OUT}"
+
+printf '\12' >> "${IMG_TMP_OUT}"
+
+cp "${IMG_TMP_OUT}" "${IMG_OUT}"
index 4a5464edc0d9e401a0fa1cecc086b9e10dd11afa..5300e293e7bf9cdf737fc630f4b68fea9cf045e2 100644 (file)
@@ -238,6 +238,7 @@ sub parse_package_metadata($) {
                /^Build-Types:\s*(.+)\s*$/ and $src->{buildtypes} = [ split /\s+/, $1 ];
                next unless $pkg;
                /^Version: \s*(.+)\s*$/ and $pkg->{version} = $1;
+               /^ABIVersion: \s*(.+)\s*$/ and $pkg->{abiversion} = $1;
                /^Title: \s*(.+)\s*$/ and $pkg->{title} = $1;
                /^Menu: \s*(.+)\s*$/ and $pkg->{menu} = $1;
                /^Submenu: \s*(.+)\s*$/ and $pkg->{submenu} = $1;
diff --git a/scripts/mkits-qsdk-ipq-image.sh b/scripts/mkits-qsdk-ipq-image.sh
new file mode 100755 (executable)
index 0000000..5f86f48
--- /dev/null
@@ -0,0 +1,59 @@
+#!/usr/bin/env bash
+#
+# Licensed under the terms of the GNU GPL License version 2 or later.
+# Author: Piotr Dymacz <pepe2k@gmail.com>, based on mkits.sh.
+#
+# Qualcomm SDK (QSDK) sysupgrade compatible images for IPQ40xx, IPQ806x
+# and IPQ807x use FIT format together with 'dumpimage' tool from U-Boot
+# for verifying and extracting them. Based on 'images' sections names,
+# corresponding mtd partitions are flashed.
+# This is a simple script for generating FIT images tree source files,
+# compatible with the QSDK sysupgrade format. Resulting images can be
+# used for initial (factory -> libreCMC) installation and would work
+# both in CLI and GUI. The script is also universal in a way it allows
+# to include as many sections as needed.
+#
+
+usage() {
+       echo "Usage: `basename $0` output img0_name img0_file [[img1_name img1_file] ...]"
+       exit 1
+}
+
+# We need at least 3 arguments
+[ "$#" -lt 3 ] && usage
+
+# Target output file
+OUTPUT="$1"; shift
+
+# Create a default, fully populated DTS file
+echo "\
+/dts-v1/;
+
+/ {
+       description = \"libreCMC factory image\";
+       #address-cells = <1>;
+
+       images {" > ${OUTPUT}
+
+while [ -n "$1" -a -n "$2" ]; do
+       [ -f "$2" ] || usage
+
+       name="$1"; shift
+       file="$1"; shift
+
+       echo \
+"              ${name} {
+                       description = \"${name}\";
+                       data = /incbin/(\"${file}\");
+                       type = \"Firmware\";
+                       arch = \"ARM\";
+                       compression = \"none\";
+                       hash@1 {
+                               algo = \"crc32\";
+                       };
+               };" >> ${OUTPUT}
+done
+
+echo \
+"      };
+};" >> ${OUTPUT}
index 53bb45a62c83d628e62dc3857eb8d9d48d3b9ba3..e0cdff1e8174be5c09744049a0c34a61ca56e589 100755 (executable)
@@ -509,13 +509,28 @@ sub gen_package_source() {
        }
 }
 
-sub gen_package_subdirs() {
+sub gen_package_auxiliary() {
        parse_package_metadata($ARGV[0]) or exit 1;
        foreach my $name (sort {uc($a) cmp uc($b)} keys %package) {
                my $pkg = $package{$name};
                if ($pkg->{name} && $pkg->{repository}) {
                        print "Package/$name/subdir = $pkg->{repository}\n";
                }
+               if ($pkg->{name} && defined($pkg->{abiversion}) && length($pkg->{abiversion})) {
+                       my $abiv;
+
+                       if ($pkg->{abiversion} =~ m!^(\d{4})-(\d{2})-(\d{2})-[0-9a-f]{7,40}$!) {
+                               print STDERR "WARNING: Reducing ABI version '$pkg->{abiversion}' of package '$name' to '$1$2$3'\n";
+                               $abiv = "$1$2$3";
+                       }
+                       else {
+                               $abiv = $pkg->{abiversion};
+                       }
+
+                       foreach my $n (@{$pkg->{provides}}) {
+                               print "Package/$n/abiversion = $abiv\n";
+                       }
+               }
        }
 }
 
@@ -565,7 +580,7 @@ sub parse_command() {
                /^config$/ and return gen_package_config();
                /^kconfig/ and return gen_kconfig_overrides();
                /^source$/ and return gen_package_source();
-               /^subdirs$/ and return gen_package_subdirs();
+               /^pkgaux$/ and return gen_package_auxiliary();
                /^license$/ and return gen_package_license(0);
                /^licensefull$/ and return gen_package_license(1);
                /^usergroup$/ and return gen_usergroup_list();
@@ -577,7 +592,7 @@ Available Commands:
        $0 config [file]                        Package metadata in Kconfig format
        $0 kconfig [file] [config] [patchver]   Kernel config overrides
        $0 source [file]                        Package source file information
-       $0 subdirs [file]                       Package subdir information in makefile format
+       $0 pkgaux [file]                        Package auxiliary variables in makefile format
        $0 license [file]                       Package license information
        $0 licensefull [file]                   Package license information (full list)
        $0 usergroup [file]                     Package usergroup allocation list
index b7385f0cade8bd44c2556f2bbc91d515dfd461e5..4f38facad9268d8efe1f768b48950861acf231b1 100755 (executable)
@@ -88,6 +88,7 @@ Usage: $SELF [-h|--help]
          [<subtarget> [<extra-qemu-options>]]
          [--kernel <kernel>]
          [--rootfs <rootfs>]
+         [--machine <machine>]
 
 <subtarget> will default to "generic" and must be specified if
 <extra-qemu-options> are present
@@ -100,13 +101,14 @@ the actual <target> in use.  They will default to files under bin/targets/
 Examples
 
   $SELF x86 64
-  $SELF x86 64 -enable-kvm -device virtio-balloon-pci
+  $SELF x86 64 --machine q35,accel=kvm -device virtio-balloon-pci
   $SELF x86 64 -incoming tcp:0:4444
   $SELF x86 64-glibc
   $SELF malta be -m 64
   $SELF malta le64
   $SELF malta be-glibc
   $SELF armvirt 32 \\
+                --machine virt,highmem=off \\
                 --kernel bin/targets/armvirt/32/librecmc-armvirt-32-zImage \\
                 --rootfs bin/targets/armvirt/32/librecmc-armvirt-32-root.ext4
 EOF
@@ -122,6 +124,7 @@ parse_args() {
                case "$1" in
                        --kernel) o_kernel="$2"; shift 2 ;;
                        --rootfs) o_rootfs="$2"; shift 2 ;;
+                       --machine|-machine|-M) o_mach="$2"; shift 2 ;;
                        --help|-h)
                                usage
                                exit 0
@@ -152,6 +155,7 @@ parse_args() {
 start_qemu_armvirt() {
        local kernel="$o_kernel"
        local rootfs="$o_rootfs"
+       local mach="${o_mach:-virt}"
        local cpu
        local qemu_exe
 
@@ -181,7 +185,7 @@ start_qemu_armvirt() {
                )
        }
 
-       "$qemu_exe" -machine virt -cpu "$cpu" -nographic \
+       "$qemu_exe" -machine "$mach" -cpu "$cpu" -nographic \
                -netdev bridge,id=lan,br="$BR_LAN,helper=$HELPER" -device virtio-net-pci,id=devlan,netdev=lan,mac="$MAC_LAN" \
                -netdev bridge,id=wan,br="$BR_WAN,helper=$HELPER" -device virtio-net-pci,id=devwan,netdev=wan,mac="$MAC_WAN" \
                -kernel "$kernel" \
@@ -193,6 +197,7 @@ start_qemu_malta() {
        local isel
        local qemu_exe
        local kernel="$o_kernel"
+       local mach="${o_mach:-malta}"
 
        # o_subtarget can be le, be, le64, be64, le-glibc, le64-glibc, etc..
        is64="$(echo $o_subtarget | grep -o 64)"
@@ -204,7 +209,7 @@ start_qemu_malta() {
        # NOTE: order of wan, lan -device arguments matters as it will affect which
        # one will be actually used as the wan, lan network interface inside the
        # guest machine
-       "$qemu_exe" -machine malta -nographic \
+       "$qemu_exe" -machine "$mach" -nographic \
                -netdev bridge,id=wan,br="$BR_WAN,helper=$HELPER" -device pcnet,netdev=wan,mac="$MAC_WAN" \
                -netdev bridge,id=lan,br="$BR_LAN,helper=$HELPER" -device pcnet,netdev=lan,mac="$MAC_LAN" \
                -kernel "$kernel" \
@@ -213,6 +218,7 @@ start_qemu_malta() {
 
 start_qemu_x86() {
        local rootfs="$o_rootfs"
+       local mach="${o_mach:-pc}"
        local qemu_exe
 
        [ -n "$rootfs" ] || {
@@ -227,7 +233,7 @@ start_qemu_x86() {
        # 64: 64-bit, kvm guest, virtio
        #
        case "${o_subtarget%-*}" in
-               legacy)                 qemu_exe="qemu-system-i386"             ;;
+               legacy)                 qemu_exe="qemu-system-i386"     ;;
                generic|64)             qemu_exe="qemu-system-x86_64"   ;;
                *)
                        __errmsg "target $o_target: unknown subtarget $o_subtarget"
@@ -247,7 +253,7 @@ start_qemu_x86() {
                        #       -drive "file=$rootfs,format=raw,id=drv0,if=none" \
                        #
                        # [1] https://dev.openwrt.org/ticket/17947
-                       "$qemu_exe" -nographic \
+                       "$qemu_exe" -machine "$mach" -nographic \
                                -netdev bridge,id=lan,br="$BR_LAN,helper=$HELPER" -device e1000,id=devlan,netdev=lan,mac="$MAC_LAN" \
                                -netdev bridge,id=wan,br="$BR_WAN,helper=$HELPER" -device e1000,id=devwan,netdev=wan,mac="$MAC_WAN" \
                                -device ide-drive,drive=drv0 \
@@ -255,7 +261,7 @@ start_qemu_x86() {
                                "${o_qemu_extra[@]}"
                        ;;
                generic|64)
-                       "$qemu_exe" -nographic \
+                       "$qemu_exe" -machine "$mach" -nographic \
                                -netdev bridge,id=lan,br="$BR_LAN,helper=$HELPER" -device virtio-net-pci,id=devlan,netdev=lan,mac="$MAC_LAN" \
                                -netdev bridge,id=wan,br="$BR_WAN,helper=$HELPER" -device virtio-net-pci,id=devwan,netdev=wan,mac="$MAC_WAN" \
                                -drive "file=$rootfs,format=raw,if=virtio" \
diff --git a/scripts/rebrand.sh b/scripts/rebrand.sh
deleted file mode 100644 (file)
index 1a4632b..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/sh
-
-# libreCMC Rebranding Script
-# Copyright (c) 2016 - 2019 Robert Call <bob@bobcall.me>
-
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Clean target directory
-find target/linux \( ! -path "target/linux/ath79/*" ! -path "target/linux/ar71xx/*"  ! -path "target/linux/generic/*" ! -path "target/linux/sunxi/*" ! -path "target/linux/uml/*" ! -path "target/linux/x86/*" ! -path "target/linux/xburst/*" ! -path "target/linux/Makefile" \) -delete > /dev/null
-
-# Clean Firmware Package Directory
-find package/firmware \( ! -path "package/firmware/wireless-regdb/*" \) -delete > /dev/null
-
-# Clean Bootloader Package Directory
-
-find package/boot \( ! -path "package/boot/arm-trusted-firmware-sunxi/*" ! -path "package/boot/grub2/*" ! -path "package/boot/kexec-tools/*" ! -path "package/boot/uboot-envtools/*" ! -path "package/boot/uboot-sunxi/*" ! -path "package/boot/uboot-xburst/*" \) -delete > /dev/null
-
-# Clean Kernel Package Directory
-find package/kernel \( ! -path "package/kernel/button-hotplug/*" ! -path "package/kernel/gpio-button-hotplug/*" ! -path "package/kernel/i2c-gpio-custom/*" ! -path "package/kernel/kmod-sched-cake/*" ! -path "package/kernel/mac80211/*" ! -path "package/kernel/om-watchdog/*" ! -path "package/kernel/rotary-gpio-custom/*" ! -path "package/kernel/spi-gpio-custom/*" ! -path "package/kernel/trelay/*" ! -path "package/kernel/w1-gpio-custom/*" ! -path "package/kernel/linux/*"  \) -delete > /dev/null
-
-find package/kernel/mac80211 \( ! -path "package/kernel/mac80211/Makefile" ! -path "package/kernel/mac80211/files/*" ! -path "package/kernel/mac80211/ath.mk" ! -path "package/kernel/mac80211/patches/*" ! -path "package/kernel/mac80211/scripts/*" \) -delete > /dev/null
-
-# Clean Utils Package Directory
-
-find package/utils \( ! -path "package/utils/adb/*" ! -path "package/utils/bsdiff/*" ! -path "package/utils/busybox/*" ! -path "package/utils/bzip2/*" ! -path "package/utils/e2fsprogs/*" ! -path "package/utils/f2fs-tools/*" ! -path "package/utils/fbtest/*" ! -path "package/utils/fuse/*" ! -path "package/utils/jsonfilter/*" ! -path "package/utils/lua/*" ! -path "package/utils/mdadm/*" ! -path "package/utils/mtd-utils/*" ! -path "package/utils/nvram/*" ! -path "package/utils/px5g/*" ! -path "package/utils/spidev_test/*" ! -path "package/utils/usbmode/*" ! -path "package/utils/usbreset/*" ! -path "package/utils/usbutils/*" ! -path "package/utils/util-linux/*" ! -path "package/utils/xfsprogs/*" \) -delete > /dev/null
-
-# Clean Network Package Directory
-
-rm -fr package/network/config/*dsl*
-
-# Clean System Package Directory
-
-rm -fr package/system/iucode-tool
-
-cat <<EOF > package/base-files/files/etc/banner
-
-                    ____  _____  ____
-  _ _ _            |  __||     ||  __|
- | (_) |__ _ _ ___ | |   | | | || |
- | | | '_ \ '_/ -_)| |__ | | | || |__
- |_|_|_.__/_| \___||____||_|_|_||____|
- -----------------------------------------
- %C Version: %V
-
-EOF
-
-find ./ -type f -exec sed -i '/Copyright/!s/OPENWRT/LIBRECMC/g' {} \;
-find ./ -type f -exec sed -i '/Copyright/!s/OpenWrt/libreCMC/g' {} \;
-find ./ -type f -exec sed -i '/Copyright/ !{ /openwrt.org/ !{ /openwrt_version/ !{ /openwrt_release/ !{ /Kconfig.openwrt/ !{ /openwrt-keyring/ !{ s/openwrt/librecmc/g}}}}}}' {} \;
-
-find package/base-files -type f -exec sed -i 's/192.168.1/192.168.10/g' {} \;
index e430b1c7e23025ab5679ec2dfa7a18e68d29bd6f..7c17adb502e884e49df84597b72ace6c3bf46077 100644 (file)
@@ -7,7 +7,7 @@
 curdir:=target
 
 $(curdir)/subtargets:=install
-$(curdir)/builddirs:=linux sdk ccsdisk imagebuilder toolchain
+$(curdir)/builddirs:=linux sdk imagebuilder toolchain ccsdisk
 $(curdir)/builddirs-default:=linux
 $(curdir)/builddirs-install:=linux $(if $(CONFIG_SDK),sdk) $(if $(CONFIG_IB),imagebuilder) $(if $(CONFIG_MAKE_TOOLCHAIN),toolchain) $(if $(CONFIG_CCS),ccsdisk)
 
index 5c9397f0f70775e7b642da959d76e81d1b20645b..edca185c62d4d3466534d903a46dc67339a86ad7 100755 (executable)
@@ -122,8 +122,8 @@ archer-c25-v1)
        ;;
 archer-c5|\
 archer-c7)
-       ucidef_set_led_usbdev "usb1" "USB1" "tp-link:green:usb1" "1-1"
-       ucidef_set_led_usbdev "usb2" "USB2" "tp-link:green:usb2" "2-1"
+       ucidef_set_led_usbport "usb1" "USB1" "tp-link:green:usb1" "usb1-port1"
+       ucidef_set_led_usbport "usb2" "USB2" "tp-link:green:usb2" "usb2-port1"
        ucidef_set_led_wlan "wlan2g" "WLAN2G" "tp-link:blue:wlan2g" "phy1tpt"
        ucidef_set_led_wlan "wlan5g" "WLAN5G" "tp-link:blue:wlan5g" "phy0tpt"
        ;;
@@ -140,7 +140,7 @@ archer-c60-v2)
        case "$board" in
        archer-c59-v1|\
        archer-c59-v2)
-               ucidef_set_led_usbdev "usb" "USB" "$board:green:usb" "1-1"
+               ucidef_set_led_usbport "usb" "USB" "$board:green:usb" "usb1-port1"
                ;;
        esac
        ;;
@@ -156,20 +156,20 @@ archer-c7-v5)
 
        case "$board" in
        archer-c7-v4)
-               ucidef_set_led_usbdev "usb1" "USB1" "$board:green:usb1" "1-1"
-               ucidef_set_led_usbdev "usb2" "USB2" "$board:green:usb2" "2-1"
+               ucidef_set_led_usbport "usb1" "USB1" "$board:green:usb1" "usb1-port1"
+               ucidef_set_led_usbport "usb2" "USB2" "$board:green:usb2" "usb2-port1"
                ;;
        esac
 
        case "$board" in
        archer-c7-v5)
-               ucidef_set_led_usbdev "usb" "USB" "$board:green:usb" "1-1"
+               ucidef_set_led_usbport "usb" "USB" "$board:green:usb" "usb1-port1"
                ;;
        esac
        ;;
 arduino-yun)
        ucidef_set_led_wlan "wlan" "WLAN" "arduino:blue:wlan" "phy0tpt"
-       ucidef_set_led_usbdev "usb" "USB" "arduino:white:usb" "1-1.1"
+       ucidef_set_led_usbport "usb" "USB" "arduino:white:usb" "1-1-port1"
        ;;
 bhr-4grv2)
        ucidef_set_led_default "power" "POWER" "buffalo:green:power" "1"
@@ -184,10 +184,11 @@ nanostation-m|\
 nanostation-m-xw|\
 rocket-m|\
 rocket-m-xw)
-       ucidef_set_led_rssi "rssilow" "RSSILOW" "ubnt:red:link1" "wlan0" "1" "100" "0" "13"
-       ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "ubnt:orange:link2" "wlan0" "26" "100" "-25" "13"
-       ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "ubnt:green:link3" "wlan0" "51" "100" "-50" "13"
-       ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "ubnt:green:link4" "wlan0" "76" "100" "-75" "13"
+       ucidef_set_rssimon "wlan0" "200000" "1"
+       ucidef_set_led_rssi "rssilow" "RSSILOW" "ubnt:red:link1" "wlan0" "1" "100"
+       ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "ubnt:orange:link2" "wlan0" "26" "100"
+       ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "ubnt:green:link3" "wlan0" "51" "100"
+       ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "ubnt:green:link4" "wlan0" "76" "100"
        ;;
 bxu2000n-2-a1)
        ucidef_set_led_wlan "wlan" "WLAN" "bhu:green:wlan" "phy0tpt"
@@ -280,10 +281,10 @@ cr3000)
        ;;
 cr5000)
        ucidef_set_led_wlan "wlan" "WLAN" "pcs:blue:wlan" "phy0tpt"
-       ucidef_set_led_usbdev "usb" "USB" "pcs:white:wps" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "pcs:white:wps" "usb1-port1"
        ;;
 db120)
-       ucidef_set_led_usbdev "usb" "USB" "$board:green:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "$board:green:usb" "usb1-port1"
        ;;
 dr344)
        ucidef_set_led_netdev "lan" "LAN" "$board:green:lan" "eth1"
@@ -294,8 +295,8 @@ dragino2)
        ucidef_set_led_netdev "wan" "WAN" "$board:red:wan" "eth1"
        ;;
 dw33d)
-       ucidef_set_led_usbdev "mmc" "MMC" "$board:blue:mmc" "1-1"
-       ucidef_set_led_usbdev "usb" "USB" "$board:blue:usb" "2-1"
+       ucidef_set_led_usbport "mmc" "MMC" "$board:blue:mmc" "usb1-port1"
+       ucidef_set_led_usbport "usb" "USB" "$board:blue:usb" "usb2-port1"
        ucidef_set_led_netdev "internet" "INTERNET" "$board:blue:internet" "eth0"
        ucidef_set_led_wlan "wlan2g" "WLAN-2.4G" "$board:blue:wlan-2g" "phy1tpt"
        ;;
@@ -311,7 +312,7 @@ ens202ext)
        ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "engenius:green:wlan4" "wlan0" "75" "100" "-79" "13"
        ;;
 f9k1115v2)
-       ucidef_set_led_usbdev "usb2" "USB2" "belkin:green:usb2" "1-1"
+       ucidef_set_led_usbport "usb2" "USB2" "belkin:green:usb2" "usb1-port1"
        ;;
 fritz300e)
        ucidef_set_led_netdev "lan" "LAN" "$board:green:lan" "eth0"
@@ -354,7 +355,7 @@ dir-615-c1)
        ;;
 dir-825-b1|\
 dir-825-c1)
-       ucidef_set_led_usbdev "usb" "USB" "d-link:blue:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "d-link:blue:usb" "usb1-port1"
 
        case "$board" in
        dir-825-c1)
@@ -384,7 +385,7 @@ dlan-pro-1200-ac)
        ucidef_set_led_gpio "plcr" "dLAN" "devolo:error:dlan" "16" "0"
        ;;
 e1700ac-v2)
-       ucidef_set_led_usbdev "usb" "USB" "$board:green:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "$board:green:usb" "usb1-port1"
        ucidef_set_led_wlan "wlan2g" "WLAN2G" "$board:green:wlan2g" "phy1tpt"
        ;;
 e558-v2|\
@@ -411,6 +412,7 @@ fritz450e)
        ;;
 gl-ar300m)
        ucidef_set_led_wlan "wlan" "WLAN" "$board:red:wlan" "phy0tpt"
+       ucidef_set_led_netdev "lan" "LAN" "$board:green:lan" "eth1"
        ;;
 gl-ar750)
        ucidef_set_led_wlan "wlan2g" "WLAN2G" "$board:white:wlan2g" "phy1tpt"
@@ -452,7 +454,7 @@ hornet-ub-x2)
        ucidef_set_led_netdev "lan" "LAN" "alfa:blue:lan" "eth0"
        ucidef_set_led_netdev "wan" "WAN" "alfa:blue:wan" "eth1"
        ucidef_set_led_wlan "wlan" "WLAN" "alfa:blue:wlan" "phy0tpt"
-       ucidef_set_led_usbdev "usb" "USB" "alfa:blue:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "alfa:blue:usb" "usb1-port1"
        ;;
 koala)
        ucidef_set_led_default "power" "POWER" "$board:green:power" "1"
@@ -525,7 +527,7 @@ mynet-rext)
        ucidef_set_led_wlan "wlan" "WLAN" "wd:blue:wireless" "phy0tpt"
        ;;
 mzk-w04u)
-       ucidef_set_led_usbdev "usb" "USB" "planex:green:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "planex:green:usb" "usb1-port1"
        ;;
 mzk-w300nh)
        ucidef_set_led_wlan "wlan" "WLAN" "planex:green:wlan" "phy0tpt"
@@ -536,15 +538,15 @@ nbg460n_550n_550nh)
 nbg6616)
        ucidef_set_led_wlan "wlan" "WLAN" "$board:green:wifi2g" "phy1tpt"
        ucidef_set_led_wlan "wlan5" "WLAN5" "$board:green:wifi5g" "phy0tpt"
-       ucidef_set_led_usbdev "usb1" "USB1" "$board:green:usb1" "1-1"
-       ucidef_set_led_usbdev "usb2" "USB2" "$board:green:usb2" "2-1"
+       ucidef_set_led_usbport "usb1" "USB1" "$board:green:usb1" "usb1-port1"
+       ucidef_set_led_usbport "usb2" "USB2" "$board:green:usb2" "usb2-port1"
        ;;
 nbg6716)
        ucidef_set_led_netdev "wan" "WAN" "$board:white:internet" "eth1"
        ucidef_set_led_wlan "wlan" "WLAN" "$board:white:wifi2g" "phy1tpt"
        ucidef_set_led_wlan "wlan5" "WLAN5" "$board:white:wifi5g" "phy0tpt"
-       ucidef_set_led_usbdev "usb1" "USB1" "$board:white:usb1" "1-1"
-       ucidef_set_led_usbdev "usb2" "USB2" "$board:white:usb2" "2-1"
+       ucidef_set_led_usbport "usb1" "USB1" "$board:white:usb1" "usb1-port1"
+       ucidef_set_led_usbport "usb2" "USB2" "$board:white:usb2" "usb2-port1"
        ;;
 om2p|\
 om2p-hs|\
@@ -598,7 +600,7 @@ qihoo-c301)
        ;;
 r36a)
        ucidef_set_led_netdev "lan" "LAN" "$board:blue:lan" "eth0"
-       ucidef_set_led_usbdev "usb" "USB" "$board:blue:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "$board:blue:usb" "usb1-port1"
        ucidef_set_led_netdev "wan" "WAN" "$board:blue:wan" "eth1"
        ucidef_set_led_wlan "wlan" "WLAN" "$board:blue:wlan" "phy0tpt"
        ;;
@@ -614,13 +616,13 @@ zbt-we1526)
 
        case "$board" in
        t830)
-               ucidef_set_led_usbdev "usb" "USB" "$board:green:usb" "1-1"
+               ucidef_set_led_usbport "usb" "USB" "$board:green:usb" "usb1-port1"
                ;;
        esac
        ;;
 r6100)
        ucidef_set_led_netdev "wan" "WAN (green)" "netgear:green:wan" "eth0"
-       ucidef_set_led_usbdev "usb" "USB" "netgear:blue:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "netgear:blue:usb" "usb1-port1"
        ucidef_set_led_wlan "wlan" "WLAN" "netgear:blue:wlan" "phy1tpt"
        ;;
 rb-750)
@@ -742,7 +744,7 @@ som9331)
        ucidef_set_led_switch "lan1" "LAN1" "$board:orange:lan1" "switch0" "0x08"
        ucidef_set_led_switch "lan2" "LAN2" "$board:orange:lan2" "switch0" "0x02"
        ucidef_set_led_wlan "wlan" "WLAN" "$board:red:wlan" "phy0tpt"
-       ucidef_set_led_usbdev "usb" "USB" "$board:green:system" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "$board:green:system" "usb1-port1"
        ;;
 sr3200)
        ucidef_set_led_wlan "wlan2g" "WLAN2G" "$board:green:wlan2g" "phy1tpt"
@@ -769,13 +771,13 @@ tl-mr11u|\
 tl-mr3020|\
 tl-mr3040|\
 tl-mr3040-v2)
-       ucidef_set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "tp-link:green:3g" "usb1-port1"
        ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"
        ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
        ;;
 tl-mr3220|\
 tl-mr3420)
-       ucidef_set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "tp-link:green:3g" "usb1-port1"
        ;;
 tl-mr3220-v2|\
 tl-wr741nd-v4)
@@ -788,7 +790,7 @@ tl-wr741nd-v4)
 
        case "$board" in
        tl-mr3220-v2)
-               ucidef_set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1"
+               ucidef_set_led_usbport "usb" "USB" "tp-link:green:3g" "usb1-port1"
                ;;
        esac
        ;;
@@ -806,7 +808,7 @@ tl-wr941nd-v5)
        case "$board" in
        tl-mr3420-v2|\
        tl-wr842n-v2)
-               ucidef_set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1"
+               ucidef_set_led_usbport "usb" "USB" "tp-link:green:3g" "usb1-port1"
                ;;
        esac
        ;;
@@ -871,17 +873,17 @@ tl-wdr3320-v2)
        ucidef_set_led_wlan "wlan5g" "WLAN5G" "tp-link:green:wlan5g" "phy0tpt"
        ;;
 tl-wdr3500)
-       ucidef_set_led_usbdev "usb" "USB" "tp-link:green:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "tp-link:green:usb" "usb1-port1"
        ucidef_set_led_wlan "wlan2g" "WLAN2G" "tp-link:green:wlan2g" "phy0tpt"
        ;;
 tl-wdr4300)
-       ucidef_set_led_usbdev "usb1" "USB1" "tp-link:green:usb1" "1-1.1"
-       ucidef_set_led_usbdev "usb2" "USB2" "tp-link:green:usb2" "1-1.2"
+       ucidef_set_led_usbport "usb1" "USB1" "tp-link:green:usb1" "1-1-port1"
+       ucidef_set_led_usbport "usb2" "USB2" "tp-link:green:usb2" "1-1-port2"
        ucidef_set_led_wlan "wlan2g" "WLAN2G" "tp-link:blue:wlan2g" "phy0tpt"
        ;;
 tl-wdr4900-v2)
-       ucidef_set_led_usbdev "usb1" "USB1" "tp-link:green:usb1" "1-1"
-       ucidef_set_led_usbdev "usb2" "USB2" "tp-link:green:usb2" "2-1"
+       ucidef_set_led_usbport "usb1" "USB1" "tp-link:green:usb1" "usb1-port1"
+       ucidef_set_led_usbport "usb2" "USB2" "tp-link:green:usb2" "usb2-port1"
        ucidef_set_led_wlan "wlan2g" "WLAN2G" "tp-link:blue:wlan2g" "phy0tpt"
        ucidef_set_led_wlan "wlan5g" "WLAN5G" "tp-link:blue:wlan5g" "phy1tpt"
        ;;
@@ -911,7 +913,7 @@ tl-wr842n-v3)
 
        case "$board" in
        tl-wr842n-v3)
-               ucidef_set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1"
+               ucidef_set_led_usbport "usb" "USB" "tp-link:green:3g" "usb1-port1"
                ;;
        esac
        ;;
@@ -923,7 +925,7 @@ tl-wr802n-v2)
        ;;
 tl-wr902ac-v1)
        ucidef_set_led_netdev "lan" "LAN" "$board:green:lan" "eth0"
-       ucidef_set_led_usbdev "usb" "USB" "$board:green:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "$board:green:usb" "usb1-port1"
        ucidef_set_led_wlan "wlan2g" "WLAN2G" "$board:green:wlan2g" "phy1tpt"
        ;;
 tl-wr940n-v4|\
@@ -951,12 +953,12 @@ tl-wr942n-v1)
        ucidef_set_led_switch "lan4" "LAN4" "$board:green:lan4" "switch0" "0x02"
        ucidef_set_led_netdev "wan" "WAN" "$board:green:wan" "eth0"
        ucidef_set_led_wlan "wlan" "WLAN" "$board:green:wlan" "phy0tpt"
-       ucidef_set_led_usbdev "usb1" "USB1" "$board:green:usb1" "1-1.2"
-       ucidef_set_led_usbdev "usb2" "USB2" "$board:green:usb2" "1-1.1"
+       ucidef_set_led_usbport "usb1" "USB1" "$board:green:usb1" "1-1-port2"
+       ucidef_set_led_usbport "usb2" "USB2" "$board:green:usb2" "1-1-port1"
        ;;
 tl-wr1043nd|\
 tl-wr1043nd-v2)
-       ucidef_set_led_usbdev "usb" "USB" "tp-link:green:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "tp-link:green:usb" "usb1-port1"
        ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"
        ;;
 tl-wr1043n-v5|\
@@ -970,13 +972,13 @@ tl-wr1043nd-v4)
 
        case "$board" in
        tl-wr1043nd-v4)
-               ucidef_set_led_usbdev "usb" "USB" "tp-link:green:usb" "1-1"
+               ucidef_set_led_usbport "usb" "USB" "tp-link:green:usb" "usb1-port1"
                ;;
        esac
        ;;
 tl-wr2543n)
        ucidef_set_led_wlan "wlan2g" "WLAN2G" "tp-link:green:wlan2g" "phy0tpt"
-       ucidef_set_led_usbdev "usb" "USB" "tp-link:green:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "tp-link:green:usb" "usb1-port1"
        ;;
 tube2h)
        ucidef_set_led_netdev "lan" "LAN" "alfa:blue:lan" "eth0"
@@ -995,7 +997,7 @@ wndap360)
        ;;
 wndr3700)
        ucidef_set_led_default "wan" "WAN LED (green)" "netgear:green:wan" "0"
-       ucidef_set_led_usbdev "usb" "USB" "netgear:green:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "netgear:green:usb" "usb1-port1"
        ;;
 wi2a-ac200i)
        ucidef_set_led_default "power" "Power (green)" "nokia:green:power" "1"
@@ -1007,7 +1009,7 @@ wndr3700v4|\
 wndr4300)
        ucidef_set_led_switch "wan-green" "WAN (green)" "netgear:green:wan" "switch0" "0x20" "0x08"
        ucidef_set_led_switch "wan-amber" "WAN (amber)" "netgear:amber:wan" "switch0" "0x20" "0x06"
-       ucidef_set_led_usbdev "usb" "USB" "netgear:green:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "netgear:green:usb" "usb1-port1"
        ucidef_set_led_wlan "wlan2g" "WLAN2G" "netgear:green:wlan2g" "phy0tpt"
        ucidef_set_led_wlan "wlan5g" "WLAN5G" "netgear:blue:wlan5g" "phy1tpt"
        ;;
@@ -1047,7 +1049,7 @@ wnr2000-v4)
        ucidef_set_led_switch "lan2" "LAN2" "netgear:amber:lan2" "switch0" "0x04"
        ucidef_set_led_switch "lan3" "LAN3" "netgear:amber:lan3" "switch0" "0x08"
        ucidef_set_led_switch "lan4" "LAN4" "netgear:amber:lan4" "switch0" "0x10"
-       ucidef_set_led_usbdev "usb" "USB" "netgear:amber:status" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "netgear:amber:status" "usb1-port1"
        ;;
 wnr2200)
        ucidef_set_led_netdev "wan-amber" "WAN (amber)" "netgear:amber:wan" "eth0"
@@ -1061,7 +1063,7 @@ wnr2200)
        ucidef_set_led_switch "lan2amber" "LAN2 (amber)" "netgear:amber:lan2" "switch0" "0x04" "0x02"
        ucidef_set_led_switch "lan3amber" "LAN3 (amber)" "netgear:amber:lan3" "switch0" "0x08" "0x02"
        ucidef_set_led_switch "lan4amber" "LAN4 (amber)" "netgear:amber:lan4" "switch0" "0x10" "0x02"
-       ucidef_set_led_usbdev "usb" "USB" "netgear:green:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "netgear:green:usb" "usb1-port1"
        ;;
 wnr612-v2)
        ucidef_set_led_netdev "wan" "WAN" "netgear:green:wan" "eth0"
@@ -1091,12 +1093,12 @@ wzr-hp-ag300h)
        ucidef_set_led_netdev "router" "ROUTER" "buffalo:green:router" "eth1"
        ucidef_set_led_wlan "wlan2g" "WLAN2G" "buffalo:amber:band2g" "phy0tpt"
        ucidef_set_led_wlan "wlan5g" "WLAN5G" "buffalo:amber:band5g" "phy1tpt"
-       ucidef_set_led_usbdev "usb" "USB" "buffalo:green:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "buffalo:green:usb" "usb1-port1"
        ;;
 wzr-hp-g300nh)
        ucidef_set_led_wlan "wlan" "Wireless" "buffalo:green:wireless" "phy0tpt"
        ucidef_set_led_netdev "router" "Router" "buffalo:green:router" "eth1"
-       ucidef_set_led_usbdev "usb" "USB" "buffalo:blue:usb" "1-1"
+       ucidef_set_led_usbport "usb" "USB" "buffalo:blue:usb" "usb1-port1"
        ;;
 wzr-hp-g300nh2|\
 wzr-hp-g450h)
index 7f209fbcac2adc0d9c945458c8994001f074ae4d..13dfd2b000c56222d8b4ae2485085e2d01c16eb1 100755 (executable)
@@ -41,12 +41,10 @@ ar71xx_setup_interfaces()
        tew-712br|\
        tew-732br|\
        tl-mr3220|\
-       tl-mr3220-v2|\
        tl-mr3420|\
        tl-wdr3320-v2|\
        tl-wdr3500|\
        tl-wr740n-v6|\
-       tl-wr741nd-v4|\
        tl-wr840n-v2|\
        tl-wr840n-v3|\
        tl-wr841n-v11|\
@@ -521,6 +519,12 @@ ar71xx_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
                ;;
+       tl-mr3220-v2|\
+       tl-wr741nd-v4)
+               ucidef_set_interfaces_lan_wan "eth0.1" "eth1"
+               ucidef_add_switch "switch0" \
+                       "0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
+               ;;
        tl-wr841n-v1|\
        tl-wr941nd)
                ucidef_set_interface "eth" ifname "eth0"
@@ -589,6 +593,10 @@ ar71xx_setup_macs()
        local wan_mac=""
 
        case $board in
+       archer-c7-v4)
+               base_mac=$(mtd_get_mac_binary config 8)
+               wan_mac=$(macaddr_add "$base_mac" 1)
+               ;;
        dgl-5500-a1|\
        dir-825-c1)
                wan_mac=$(mtd_get_mac_ascii nvram "wan_mac")
@@ -600,6 +608,13 @@ ar71xx_setup_macs()
                lan_mac=$(mtd_get_mac_binary caldata 0)
                wan_mac=$(mtd_get_mac_binary caldata 6)
                ;;
+       dir-869-a1|\
+       mynet-n750)
+               wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
+               ;;
+       esr900)
+               wan_mac=$(mtd_get_mac_ascii u-boot-env "wanaddr")
+               ;;
        fritz300e)
                lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
                ;;
@@ -608,13 +623,6 @@ ar71xx_setup_macs()
                lan_mac=$(mtd_get_mac_binary product-info 8)
                wan_mac=$(macaddr_add "$lan_mac" 1)
                ;;
-       esr900)
-               wan_mac=$(mtd_get_mac_ascii u-boot-env "wanaddr")
-               ;;
-       dir-869-a1|\
-       mynet-n750)
-               wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
-               ;;
        wlr8100)
                lan_mac=$(mtd_get_mac_ascii u-boot-env "ethaddr")
                wan_mac=$(mtd_get_mac_ascii u-boot-env "wanaddr")
diff --git a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
deleted file mode 100644 (file)
index ed92f87..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-#!/bin/sh
-
-ath10kcal_die() {
-       echo "ath10cal: " "$*"
-       exit 1
-}
-
-ath10kcal_from_file() {
-       local source=$1
-       local offset=$2
-       local count=$3
-
-       dd if=$source of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
-               ath10kcal_die "failed to extract calibration data from $source"
-}
-
-ath10kcal_extract() {
-       local part=$1
-       local offset=$2
-       local count=$3
-       local mtd cal_size
-
-       mtd=$(find_mtd_chardev $part)
-       [ -n "$mtd" ] || \
-               ath10kcal_die "no mtd device found for partition $part"
-
-       # Check that the calibration data size in header equals the desired size
-       cal_size=$(dd if=$mtd bs=2 count=1 skip=$(( $offset / 2 )) conv=swab 2>/dev/null | hexdump -ve '1/2 "%d"')
-
-       [ "$count" = "$cal_size" ] || \
-               ath10kcal_die "no calibration data found in $part"
-
-       dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
-               ath10kcal_die "failed to extract calibration data from $mtd"
-}
-
-ath10kcal_patch_mac() {
-       local mac=$1
-
-       [ -z "$mac" ] && return
-
-       macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=6 count=6
-}
-
-[ -e /lib/firmware/$FIRMWARE ] && exit 0
-
-. /lib/functions.sh
-. /lib/functions/system.sh
-
-board=$(board_name)
-
-case "$FIRMWARE" in
-"ath10k/cal-pci-0000:00:00.0.bin")
-       case $board in
-       a40|\
-       a60|\
-       mr1750|\
-       mr1750v2|\
-       om5p-acv2)
-               ath10kcal_extract "ART" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
-               ;;
-       archer-c25-v1|\
-       tl-wdr6500-v2)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -2)
-               ;;
-       archer-c7-v4|\
-       archer-c7-v5)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -1)
-               ;;
-       cf-e355ac-v1|\
-       cf-e380ac-v1|\
-       cf-e380ac-v2|\
-       dlan-pro-1200-ac|\
-       e1700ac-v2|\
-       e600gac-v2|\
-       minibox-v3.2|\
-       oolite-v5.2|\
-       oolite-v5.2-dev|\
-       sr3200|\
-       xd3200)
-               ath10kcal_extract "art" 20480 2116
-               ;;
-       dap-2695-a1)
-               ath10kcal_extract "radiocfg" 20480 2116
-               ath10kcal_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac_a)
-               ;;
-       dir-869-a1|\
-       qihoo-c301)
-               ath10kcal_extract "radiocfg" 20480 2116
-               ath10kcal_patch_mac $(mtd_get_mac_ascii devdata wlan5mac)
-               ;;
-       dw33d)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(mtd_get_mac_binary art 18)
-               ;;
-       epg5000|\
-       esr1750)
-               ath10kcal_extract "caldata" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
-               ;;
-       gl-ar750s|\
-       gl-ar750|\
-       tl-wpa8630)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
-               ;;
-       koala)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary art 12) +0)
-               ;;
-       mc-mac1200r)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -1)
-               ;;
-       r6100)
-               ath10kcal_extract "caldata" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) +2)
-               ;;
-       rb-952ui-5ac2nd|\
-       rb-wapg-5hact2hnd)
-               ath10kcal_from_file "/sys/firmware/routerboot/ext_wlan_data" 20480 2116
-               ;;
-       re355|\
-       re450|\
-       tl-wr902ac-v1)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2)
-               ;;
-       unifiac-lite|\
-       unifiac-pro)
-               ath10kcal_extract "EEPROM" 20480 2116
-               ;;
-       wi2a-ac200i)
-               ath10kcal_extract "ART" 20480 2116
-               ;;
-       esac
-       ;;
-"ath10k/cal-pci-0000:01:00.0.bin")
-       case $board in
-       archer-c5|\
-       archer-c7)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -2)
-               ;;
-       nbg6616|\
-       nbg6716)
-               ath10kcal_extract "RFdata" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -2)
-               ;;
-       om5p-ac)
-               ath10kcal_extract "ART" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
-               ;;
-       rb-911g-5hpacd|\
-       rb-921gs-5hpacd-r2|\
-       rb-962uigs-5hact2hnt)
-               ath10kcal_from_file "/sys/firmware/routerboot/ext_wlan_data" 20480 2116
-               ;;
-       wlr8100)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +1)
-               ;;
-       esac
-       ;;
-"ath10k/pre-cal-pci-0000:00:00.0.bin")
-       case $board in
-       archer-c58-v1|\
-       archer-c59-v1|\
-       archer-c59-v2|\
-       archer-c60-v1|\
-       archer-c60-v2|\
-       cf-e355ac-v2|\
-       cf-e375ac)
-               ath10kcal_extract "art" 20480 12064
-               ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
-                       /lib/firmware/ath10k/QCA9888/hw2.0/board.bin
-               ;;
-       cf-e385ac)
-               ath10kcal_extract "art" 20480 12064
-               ;;
-       esac
-       ;;
-*)
-       exit 1
-       ;;
-esac
index 96ee7550ce95ca2229d0328b090f7b4c19859513..95fa247f4bef053074be279879a04ca8728d6065 100755 (executable)
@@ -1092,7 +1092,7 @@ ar71xx_board_detect() {
        *"RouterBOARD 931-2nD")
                name="rb-931-2nd"
                ;;
-       *"RouterBOARD 941-2nD")
+       *"RouterBOARD"*"941-2nD")
                name="rb-941-2nd"
                ;;
        *"RouterBOARD 951G-2HnD")
diff --git a/target/linux/ar71xx/base-files/lib/preinit/82_patch_ath10k b/target/linux/ar71xx/base-files/lib/preinit/82_patch_ath10k
deleted file mode 100644 (file)
index cc3dc42..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh
-
-. /lib/functions.sh
-. /lib/functions/system.sh
-
-do_patch_ath10k_firmware() {
-       local firmware_file="/lib/firmware/ath10k/QCA988X/hw2.0/firmware-5.bin"
-
-       # bail out if firmware does not exist
-       [ -f "$firmware_file" ] || return
-
-       local mac_offset=276
-       local mac_length=6
-       local default_mac="00:03:07:12:34:56"
-       local current_mac="$(hexdump -v -n $mac_length -s $mac_offset -e '5/1 "%02x:" 1/1 "%02x"' $firmware_file  2>/dev/null)"
-
-       # check if mac address was already patched
-       [ "$default_mac" = "$current_mac" ] || return
-
-       # some boards have bogus mac in otp (= directly in the PCIe card's EEPROM).
-       # we have to patch the default mac in the firmware because we cannot change
-       # the otp.
-       case $(board_name) in
-       dgl-5500-a1|\
-       tew-823dru)
-               local mac
-               mac=$(mtd_get_mac_ascii nvram wlan1_mac)
-
-               cp $firmware_file /tmp/ath10k-firmware.bin
-               macaddr_2bin $mac | dd of=/tmp/ath10k-firmware.bin \
-                       conv=notrunc bs=1 seek=$mac_offset count=$mac_length
-               ;;
-       esac
-
-       [ -f /tmp/ath10k-firmware.bin ] || return
-
-       cp /tmp/ath10k-firmware.bin $firmware_file
-       rm /tmp/ath10k-firmware.bin
-}
-
-check_patch_ath10k_firmware() {
-       case $(board_name) in
-       dgl-5500-a1|\
-       tew-823dru)
-               do_patch_ath10k_firmware
-               ;;
-       esac
-}
-
-boot_hook_add preinit_main check_patch_ath10k_firmware
index 5873248edf2cc808629d3589170e28aed2675574..e92f68f490a14b38a0aef9afb6008a1d5fab6275 100644 (file)
@@ -141,7 +141,7 @@ static void __init ds_setup(void)
 
        // enable OE of level shifter
        if (gpio_request_one(DS_GPIO_OE,
-           GPIOF_OUT_INIT_LOW | GPIOF_EXPORT_DIR_FIXED, "OE-1") != 0)
+           GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, "OE-1") != 0)
                printk("Error setting GPIO OE\n");
 
        if (gpio_request_one(DS_GPIO_UART_ENA,
@@ -150,7 +150,7 @@ static void __init ds_setup(void)
 
        // enable OE of level shifter
        if (gpio_request_one(DS_GPIO_OE2,
-           GPIOF_OUT_INIT_LOW | GPIOF_EXPORT_DIR_FIXED, "OE-2") != 0)
+           GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, "OE-2") != 0)
                printk("Error setting GPIO OE2\n");
 }
 
index 2a2d2702bcc699f481d1e3595f29349a70fc8d6d..d10a91012926280391e0907df531a01e8073c00f 100644 (file)
@@ -29,7 +29,6 @@
 #include "machtypes.h"
 #include "pci.h"
 
-#define GL_AR300M_GPIO_LED_USB         2
 #define GL_AR300M_GPIO_LED_WLAN                14
 #define GL_AR300M_GPIO_LED_LAN         13
 #define GL_AR300M_GPIO_LED_SYSTEM      12
 
 static struct gpio_led gl_ar300m_leds_gpio[] __initdata = {
        {
-               .name = "gl-ar300m:green:usb",
-               .gpio = GL_AR300M_GPIO_LED_USB,
-               .active_low = 0,
-               .default_state = 1,
-       },
-       {
-               .name = "gl-ar300m:green:wlan",
+               .name = "gl-ar300m:red:wlan",
                .gpio = GL_AR300M_GPIO_LED_WLAN,
                .active_low = 1,
        },
index 3f2f64e2aef80075b8ca804af1cb90d248b913f7..2859c0dbe1641f6215006063248bc8a3810cbd4c 100644 (file)
@@ -730,6 +730,10 @@ static void ar7240sw_setup_port(struct ar7240sw *as, unsigned port, u8 portmask)
                        portmask = ar7240sw_port_mask(as, AR7240_PORT_CPU);
        }
 
+       /* preserve mirror rx&tx flags */
+       ctrl |= ar7240sw_reg_read(mii, AR7240_REG_PORT_CTRL(port)) &
+               (AR7240_PORT_CTRL_MIRROR_RX | AR7240_PORT_CTRL_MIRROR_TX);
+
        /* allow the port to talk to all other ports, but exclude its
         * own ID to prevent frames from being reflected back to the
         * port that they came from */
index 804532b55cb145134acf47accd095bbb24dee059..7f37a2f279ee027d0fc43de2a77c0a9bdbda35b1 100644 (file)
@@ -16,7 +16,6 @@ ifeq ($(SUBTARGET),generic)
 include ./generic.mk
 include ./generic-legacy-devices.mk
 include ./generic-tp-link.mk
-include ./generic-ubnt.mk
 endif
 ifeq ($(SUBTARGET),tiny)
 include ./tiny.mk
index 9cf405d48a4019589d112b758e75d9c9a8459e65..1dcbb9d47181b1844955788a9ee39dab32cd4a17 100644 (file)
@@ -1,10 +1,3 @@
-define LegacyDevice/A60
-   DEVICE_TITLE := OpenMesh A40/A60
-   DEVICE_PACKAGES := om-watchdog kmod-ath10k-ct ath10k-firmware-qca988x-ct \
-       mod-usb-core kmod-usb2
-endef
-LEGACY_DEVICES += A60
-
 define LegacyDevice/ALFANX
   DEVICE_TITLE := ALFA Network N2/N5 board
 endef
@@ -151,16 +144,10 @@ LEGACY_DEVICES += DIR505A1
 
 define LegacyDevice/DGL5500A1
   DEVICE_TITLE := D-Link DGL-5500 rev. A1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
 endef
 LEGACY_DEVICES += DGL5500A1
 
-define LegacyDevice/TEW823DRU
-  DEVICE_TITLE := TRENDNet TEW-823DRU
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
-endef
-LEGACY_DEVICES += TEW823DRU
-
 define LegacyDevice/DHP1565A1
   DEVICE_TITLE := D-Link DHP-1565 rev. A1
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
@@ -224,30 +211,12 @@ define LegacyDevice/dLAN_pro_500_wp
 endef
 LEGACY_DEVICES += dLAN_pro_500_wp
 
-define LegacyDevice/dLAN_pro_1200_ac
-  DEVICE_TITLE := devolo dLAN pro 1200+ WiFi ac
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-endef
-LEGACY_DEVICES += dLAN_pro_1200_ac
-
 define LegacyDevice/ESR900
   DEVICE_TITLE := EnGenius ESR900
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
 endef
 LEGACY_DEVICES += ESR900
 
-define LegacyDevice/ESR1750
-  DEVICE_TITLE := EnGenius ESR1750
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage kmod-ath10k-ct ath10k-firmware-qca988x-ct
-endef
-LEGACY_DEVICES += ESR1750
-
-define LegacyDevice/EPG5000
-  DEVICE_TITLE := EnGenius EPG5000
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage kmod-ath10k-ct ath10k-firmware-qca988x-ct
-endef
-LEGACY_DEVICES += EPG5000
-
 define LegacyDevice/WP543_8M
   DEVICE_TITLE := Compex WP543/WPJ543 (8MB flash)
   DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2
@@ -290,12 +259,6 @@ define LegacyDevice/OM5P
 endef
 LEGACY_DEVICES += OM5P
 
-define LegacyDevice/OM5PAC
-  DEVICE_TITLE := OpenMesh OM5P-AC
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct om-watchdog
-endef
-LEGACY_DEVICES += OM5PAC
-
 define LegacyDevice/MR600
   DEVICE_TITLE := OpenMesh MR600
   DEVICE_PACKAGES := om-watchdog
@@ -308,12 +271,6 @@ define LegacyDevice/MR900
 endef
 LEGACY_DEVICES += MR900
 
-define LegacyDevice/MR1750
-  DEVICE_TITLE := OpenMesh MR1750
-  DEVICE_PACKAGES := om-watchdog kmod-ath10k-ct ath10k-firmware-qca988x-ct
-endef
-LEGACY_DEVICES += MR1750
-
 define LegacyDevice/ALL0305
   DEVICE_TITLE := Allnet ALL0305
   DEVICE_PACKAGES := fconfig kmod-ath5k -kmod-ath9k
index 84ae62c383ef409bc0f9a1d36517a85adedf459d..9f466d1461123b3ef033508c7c170056820ac4ea 100644 (file)
@@ -6,86 +6,10 @@ define Device/archer-cxx
   KERNEL := kernel-bin | patch-cmdline | lzma | uImageArcher lzma
 endef
 
-define Device/archer-c25-v1
-  $(Device/archer-cxx)
-  DEVICE_TITLE := TP-LINK Archer C25 v1
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct
-  BOARDNAME := ARCHER-C25-V1
-  TPLINK_BOARD_ID := ARCHER-C25-V1
-  DEVICE_PROFILE := ARCHERC25V1
-  IMAGE_SIZE := 7808k
-  MTDPARTS := spi0.0:128k(factory-uboot)ro,64k(u-boot)ro,7808k(firmware),128k(config)ro,64k(art)ro
-  SUPPORTED_DEVICES := archer-c25-v1
-endef
-TARGET_DEVICES += archer-c25-v1
-
-define Device/archer-c58-v1
-  $(Device/archer-cxx)
-  DEVICE_TITLE := TP-LINK Archer C58 v1
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
-  BOARDNAME := ARCHER-C58-V1
-  TPLINK_BOARD_ID := ARCHER-C58-V1
-  DEVICE_PROFILE := ARCHERC58V1
-  IMAGE_SIZE := 7936k
-  MTDPARTS := spi0.0:64k(u-boot)ro,64k(mac)ro,7936k(firmware),64k(tplink)ro,64k(art)ro
-  SUPPORTED_DEVICES := archer-c58-v1
-endef
-TARGET_DEVICES += archer-c58-v1
-
-define Device/archer-c59-v1
-  $(Device/archer-cxx)
-  DEVICE_TITLE := TP-LINK Archer C59 v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca9888-ct
-  BOARDNAME := ARCHER-C59-V1
-  TPLINK_BOARD_ID := ARCHER-C59-V1
-  DEVICE_PROFILE := ARCHERC59V1
-  IMAGE_SIZE := 14528k
-  MTDPARTS := spi0.0:64k(u-boot)ro,64k(mac)ro,14528k(firmware),1664k(tplink)ro,64k(art)ro
-  SUPPORTED_DEVICES := archer-c59-v1
-endef
-TARGET_DEVICES += archer-c59-v1
-
-define Device/archer-c59-v2
-  $(Device/archer-c59-v1)
-  DEVICE_TITLE := TP-LINK Archer C59 v2
-  BOARDNAME := ARCHER-C59-V2
-  TPLINK_BOARD_ID := ARCHER-C59-V2
-  DEVICE_PROFILE := ARCHERC59V2
-  IMAGE_SIZE := 14400k
-  MTDPARTS := spi0.0:128k(factory-boot)ro,64k(u-boot)ro,64k(mac)ro,14400k(firmware),1664k(tplink)ro,64k@0xff0000(art)ro
-  SUPPORTED_DEVICES := archer-c59-v2
-endef
-TARGET_DEVICES += archer-c59-v2
-
-define Device/archer-c60-v1
-  $(Device/archer-cxx)
-  DEVICE_TITLE := TP-LINK Archer C60 v1
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
-  BOARDNAME := ARCHER-C60-V1
-  TPLINK_BOARD_ID := ARCHER-C60-V1
-  DEVICE_PROFILE := ARCHERC60V1
-  IMAGE_SIZE := 7936k
-  MTDPARTS := spi0.0:64k(u-boot)ro,64k(mac)ro,7936k(firmware),64k(tplink)ro,64k(art)ro
-  SUPPORTED_DEVICES := archer-c60-v1
-endef
-TARGET_DEVICES += archer-c60-v1
-
-define Device/archer-c60-v2
-  $(Device/archer-c60-v1)
-  DEVICE_TITLE := TP-LINK Archer C60 v2
-  BOARDNAME := ARCHER-C60-V2
-  TPLINK_BOARD_ID := ARCHER-C60-V2
-  DEVICE_PROFILE := ARCHERC60V2
-  IMAGE_SIZE := 7808k
-  MTDPARTS := spi0.0:192k(u-boot)ro,7808k(firmware),128k(tplink)ro,64k(art)ro
-  SUPPORTED_DEVICES := archer-c60-v2
-endef
-TARGET_DEVICES += archer-c60-v2
-
 define Device/archer-c5-v1
   $(Device/tplink-16mlzma)
   DEVICE_TITLE := TP-LINK Archer C5 v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   BOARDNAME := ARCHER-C5
   DEVICE_PROFILE := ARCHERC7
   TPLINK_HWID := 0xc5000001
@@ -95,7 +19,7 @@ TARGET_DEVICES += archer-c5-v1
 define Device/archer-c7-v1
   $(Device/tplink-8mlzma)
   DEVICE_TITLE := TP-LINK Archer C7 v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   BOARDNAME := ARCHER-C7
   DEVICE_PROFILE := ARCHERC7
   TPLINK_HWID := 0x75000001
@@ -105,7 +29,7 @@ TARGET_DEVICES += archer-c7-v1
 define Device/archer-c7-v2
   $(Device/tplink-16mlzma)
   DEVICE_TITLE := TP-LINK Archer C7 v2
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   BOARDNAME := ARCHER-C7-V2
   DEVICE_PROFILE := ARCHERC7
   TPLINK_HWID := 0xc7000002
@@ -118,7 +42,7 @@ TARGET_DEVICES += archer-c7-v2
 define Device/archer-c7-v2-il
   $(Device/tplink-16mlzma)
   DEVICE_TITLE := TP-LINK Archer C7 v2 (IL)
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   BOARDNAME := ARCHER-C7-V2
   DEVICE_PROFILE := ARCHERC7
   TPLINK_HWID := 0xc7000002
@@ -129,25 +53,13 @@ TARGET_DEVICES += archer-c7-v2-il
 define Device/tl-wdr7500-v3
   $(Device/tplink-8mlzma)
   DEVICE_TITLE := TP-LINK Archer C7 v3
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   BOARDNAME := ARCHER-C7
   DEVICE_PROFILE := ARCHERC7
   TPLINK_HWID := 0x75000003
 endef
 TARGET_DEVICES += tl-wdr7500-v3
 
-define Device/archer-c7-v4
-  $(Device/archer-cxx)
-  DEVICE_TITLE := TP-LINK Archer C7 v4
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  BOARDNAME := ARCHER-C7-V4
-  TPLINK_BOARD_ID := ARCHER-C7-V4
-  IMAGE_SIZE := 15104k
-  MTDPARTS := spi0.0:128k(factory-uboot)ro,128k(u-boot)ro,15104k(firmware),960k(config)ro,64k(art)ro
-  SUPPORTED_DEVICES := archer-c7-v4
-endef
-TARGET_DEVICES += archer-c7-v4
-
 define Device/archer-c7-v5
   $(Device/archer-c7-v4)
   DEVICE_TITLE := TP-LINK Archer C7 v5
@@ -229,38 +141,6 @@ define Device/eap120-v1
 endef
 TARGET_DEVICES += eap120-v1
 
-define Device/re355-v1
-  $(Device/tplink-safeloader)
-  DEVICE_TITLE := TP-LINK RE355 v1
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  MTDPARTS := spi0.0:128k(u-boot)ro,6016k(firmware),64k(partition-table)ro,64k(product-info)ro,1856k(config)ro,64k(art)ro
-  IMAGE_SIZE := 7936k
-  BOARDNAME := RE355
-  TPLINK_BOARD_ID := RE355
-  DEVICE_PROFILE := RE355
-  TPLINK_HWID := 0x0
-  TPLINK_HWREV := 0
-  KERNEL := kernel-bin | patch-cmdline | lzma | tplink-v1-header -O
-  KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | tplink-v1-header
-endef
-TARGET_DEVICES += re355-v1
-
-define Device/re450-v1
-  $(Device/tplink-safeloader)
-  DEVICE_TITLE := TP-LINK RE450 v1
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  MTDPARTS := spi0.0:128k(u-boot)ro,6016k(firmware),64k(partition-table)ro,64k(product-info)ro,1856k(config)ro,64k(art)ro
-  IMAGE_SIZE := 7936k
-  BOARDNAME := RE450
-  TPLINK_BOARD_ID := RE450
-  DEVICE_PROFILE := RE450
-  TPLINK_HWID := 0x0
-  TPLINK_HWREV := 0
-  KERNEL := kernel-bin | patch-cmdline | lzma | tplink-v1-header -O
-  KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | tplink-v1-header
-endef
-TARGET_DEVICES += re450-v1
-
 define Device/tl-mr6400-v1
   $(Device/tplink-8mlzma)
   DEVICE_TITLE := TP-LINK TL-MR6400 v1
@@ -322,19 +202,6 @@ define Device/tl-wdr4900-v2
 endef
 TARGET_DEVICES += tl-wdr4900-v2
 
-define Device/tl-wdr6500-v2
-  $(Device/tplink-8mlzma)
-  DEVICE_TITLE := TP-LINK TL-WDR6500 v2
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma
-  KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | uImage lzma | tplink-v1-header
-  BOARDNAME := TL-WDR6500-v2
-  DEVICE_PROFILE := TLWDR6500V2
-  TPLINK_HWID := 0x65000002
-  TPLINK_HEADER_VERSION := 2
-endef
-TARGET_DEVICES += tl-wdr6500-v2
-
 define Device/mw4530r-v1
   $(Device/tl-wdr4300-v1)
   DEVICE_TITLE := Mercury MW4530R v1
@@ -342,16 +209,6 @@ define Device/mw4530r-v1
 endef
 TARGET_DEVICES += mw4530r-v1
 
-define Device/tl-wpa8630-v1
-  $(Device/tplink-8mlzma)
-  DEVICE_TITLE := TP-LINK TL-WPA8630 v1
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  BOARDNAME := TL-WPA8630
-  DEVICE_PROFILE := TL-WPA8630
-  TPLINK_HWID := 0x86300001
-endef
-TARGET_DEVICES += tl-wpa8630-v1
-
 define Device/tl-wr1043n-v5
   $(Device/archer-cxx)
   DEVICE_TITLE := TP-LINK TL-WR1043N v5
@@ -487,22 +344,6 @@ define Device/tl-wr842n-v3
 endef
 TARGET_DEVICES += tl-wr842n-v3
 
-define Device/tl-wr902ac-v1
-  $(Device/tplink-safeloader)
-  DEVICE_TITLE := TP-LINK TL-WR902AC v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport \
-       kmod-ath10k-ct ath10k-firmware-qca9887-ct -swconfig -uboot-envtools
-  BOARDNAME := TL-WR902AC-V1
-  DEVICE_PROFILE := TLWR902
-  TPLINK_BOARD_ID := TL-WR902AC-V1
-  TPLINK_HWID := 0x0
-  TPLINK_HWREV := 0
-  SUPPORTED_DEVICES := tl-wr902ac-v1
-  IMAGE_SIZE := 7360k
-  MTDPARTS := spi0.0:128k(u-boot)ro,7360k(firmware),640k(tplink)ro,64k(art)ro
-endef
-TARGET_DEVICES += tl-wr902ac-v1
-
 define Device/tl-wr942n-v1
   $(Device/archer-cxx)
   DEVICE_TITLE := TP-LINK TL-WR942N v1
diff --git a/target/linux/ar71xx/image/generic-ubnt.mk b/target/linux/ar71xx/image/generic-ubnt.mk
deleted file mode 100644 (file)
index 42275ba..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
-DEVICE_VARS += UBNT_BOARD UBNT_CHIP UBNT_TYPE
-
-# mkubntimage is using the kernel image direct
-# routerboard creates partitions out of the ubnt header
-define Build/mkubntimage
-       -$(STAGING_DIR_HOST)/bin/mkfwimage \
-               -B $(UBNT_BOARD) -v $(UBNT_TYPE).$(UBNT_CHIP).v6.0.0-$(VERSION_DIST)-$(REVISION) \
-               -k $(IMAGE_KERNEL) \
-               -r $@ \
-               -o $@
-endef
-
-# all UBNT XM device expect the kernel image to have 1024k while flash, when
-# booting the image, the size doesn't matter.
-define Build/mkubntimage-split
-       -[ -f $@ ] && ( \
-       dd if=$@ of=$@.old1 bs=1024k count=1; \
-       dd if=$@ of=$@.old2 bs=1024k skip=1; \
-       $(STAGING_DIR_HOST)/bin/mkfwimage \
-               -B $(UBNT_BOARD) -v $(UBNT_TYPE).$(UBNT_CHIP).v6.0.0-$(VERSION_DIST)-$(REVISION) \
-               -k $@.old1 \
-               -r $@.old2 \
-               -o $@; \
-       rm $@.old1 $@.old2 )
-endef
-
-define Build/mkubntimage2
-       -$(STAGING_DIR_HOST)/bin/mkfwimage2 -f 0x9f000000 \
-               -v $(UBNT_TYPE).$(UBNT_CHIP).v6.0.0-$(VERSION_DIST)-$(REVISION) \
-               -p jffs2:0x50000:0xf60000:0:0:$@ \
-               -o $@.new
-       @mv $@.new $@
-endef
-
-
-# UBNT_BOARD e.g. one of (XS2, XS5, RS, XM)
-# UBNT_TYPE e.g. one of (BZ, XM, XW)
-# UBNT_CHIP e.g. one of (ar7240, ar933x, ar934x)
-define Device/ubnt
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
-  DEVICE_PROFILE := UBNT
-  IMAGE_SIZE := 7552k
-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7552k(firmware),256k(cfg)ro,64k(EEPROM)ro
-  UBNT_BOARD := XM
-  IMAGES := sysupgrade.bin factory.bin
-  IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
-  IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | mkubntimage-split
-endef
-
-define Device/ubnt-xm
-  $(Device/ubnt)
-  DEVICE_PACKAGES += kmod-usb-ohci
-  UBNT_TYPE := XM
-  UBNT_CHIP := ar7240
-  KERNEL := kernel-bin | patch-cmdline | relocate-kernel | lzma | uImage lzma
-endef
-
-define Device/ubnt-xw
-  $(Device/ubnt)
-  UBNT_TYPE := XW
-  UBNT_CHIP := ar934x
-endef
-
-define Device/ubnt-bz
-  $(Device/ubnt)
-  UBNT_TYPE := BZ
-  UBNT_CHIP := ar7240
-endef
-
-define Device/rw2458n
-  $(Device/ubnt-xm)
-  DEVICE_TITLE := Ubiquiti RW2458N
-  BOARDNAME := RW2458N
-endef
-TARGET_DEVICES += rw2458n
-
-define Device/ubnt-airrouter
-  $(Device/ubnt-xm)
-  DEVICE_TITLE := Ubiquiti AirRouter
-  BOARDNAME := UBNT-AR
-endef
-TARGET_DEVICES += ubnt-airrouter
-
-define Device/ubnt-bullet-m
-  $(Device/ubnt-xm)
-  DEVICE_TITLE := Ubiquiti Bullet-M
-  BOARDNAME := UBNT-BM
-endef
-TARGET_DEVICES += ubnt-bullet-m
-
-define Device/ubnt-rocket-m
-  $(Device/ubnt-xm)
-  DEVICE_TITLE := Ubiquiti Rocket-M
-  BOARDNAME := UBNT-RM
-endef
-TARGET_DEVICES += ubnt-rocket-m
-
-define Device/ubnt-nano-m
-  $(Device/ubnt-xm)
-  DEVICE_TITLE := Ubiquiti Nano-M
-  BOARDNAME := UBNT-NM
-endef
-TARGET_DEVICES += ubnt-nano-m
-
-define Device/ubnt-unifi
-  $(Device/ubnt-bz)
-  DEVICE_TITLE := Ubiquiti UniFi
-  BOARDNAME := UBNT-UF
-  DEVICE_PROFILE += UBNTUNIFI
-endef
-TARGET_DEVICES += ubnt-unifi
-
-define Device/ubnt-unifiac
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
-  DEVICE_PROFILE := UBNT
-  IMAGE_SIZE := 7744k
-  MTDPARTS := spi0.0:384k(u-boot)ro,64k(u-boot-env)ro,7744k(firmware),7744k(ubnt-airos)ro,128k(bs),256k(cfg)ro,64k(EEPROM)ro
-  IMAGES := sysupgrade.bin
-  IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
-endef
-
-define Device/ubnt-unifiac-lite
-  $(Device/ubnt-unifiac)
-  DEVICE_TITLE := Ubiquiti UniFi AC-Lite
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  DEVICE_PROFILE += UBNTUNIFIACLITE
-  BOARDNAME := UBNT-UF-AC-LITE
-endef
-TARGET_DEVICES += ubnt-unifiac-lite
-
-define Device/ubnt-unifiac-mesh
-  $(Device/ubnt-unifiac-lite)
-  DEVICE_TITLE := Ubiquiti UniFi AC-Mesh
-endef
-TARGET_DEVICES += ubnt-unifiac-mesh
-
-define Device/ubnt-unifiac-pro
-  $(Device/ubnt-unifiac)
-  DEVICE_TITLE := Ubiquiti UniFi AC-Pro
-  DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  DEVICE_PROFILE += UBNTUNIFIACPRO
-  BOARDNAME := UBNT-UF-AC-PRO
-endef
-TARGET_DEVICES += ubnt-unifiac-pro
-
-define Device/ubnt-unifiac-mesh-pro
-  $(Device/ubnt-unifiac-pro)
-  DEVICE_TITLE := Ubiquiti UniFi AC-Mesh-Pro
-endef
-TARGET_DEVICES += ubnt-unifiac-mesh-pro
-
-define Device/ubnt-unifi-outdoor
-  $(Device/ubnt-bz)
-  DEVICE_TITLE := Ubiquiti UniFi Outdoor
-  BOARDNAME := UBNT-U20
-  DEVICE_PROFILE += UBNTUNIFIOUTDOOR
-endef
-TARGET_DEVICES += ubnt-unifi-outdoor
-
-define Device/ubnt-nano-m-xw
-  $(Device/ubnt-xw)
-  DEVICE_TITLE := Ubiquiti Nano M XW
-  BOARDNAME := UBNT-NM-XW
-endef
-TARGET_DEVICES += ubnt-nano-m-xw
-
-define Device/ubnt-lbe-m5
-  $(Device/ubnt-xw)
-  DEVICE_TITLE := Ubiquiti Litebeam M5
-  BOARDNAME := UBNT-LBE-M5
-endef
-TARGET_DEVICES += ubnt-lbe-m5
-
-define Device/ubnt-loco-m-xw
-  $(Device/ubnt-xw)
-  DEVICE_TITLE := Ubiquiti Loco XW
-  BOARDNAME := UBNT-LOCO-XW
-endef
-TARGET_DEVICES += ubnt-loco-m-xw
-
-define Device/ubnt-rocket-m-xw
-  $(Device/ubnt-xw)
-  DEVICE_TITLE := Ubiquiti Rocket M XW
-  BOARDNAME := UBNT-RM-XW
-endef
-TARGET_DEVICES += ubnt-rocket-m-xw
-
-define Device/ubnt-rocket-m-ti
-  $(Device/ubnt-xw)
-  DEVICE_TITLE := Ubiquiti Rocket M TI
-  BOARDNAME := UBNT-RM-TI
-  UBNT_TYPE := TI
-endef
-TARGET_DEVICES += ubnt-rocket-m-ti
-
-define Device/ubnt-air-gateway
-  $(Device/ubnt-xm)
-  DEVICE_TITLE := Ubiquiti Air Gateway
-  BOARDNAME := UBNT-AGW
-  UBNT_TYPE := AirGW
-  UBNT_CHIP := ar933x
-  CONSOLE := ttyATH0,115200
-endef
-TARGET_DEVICES += ubnt-air-gateway
-
-define Device/ubnt-air-gateway-pro
-  $(Device/ubnt-xm)
-  DEVICE_TITLE := Ubiquiti Air Gateway Pro
-  BOARDNAME := UBNT-AGWP
-  UBNT_TYPE := AirGWP
-  UBNT_CHIP := ar934x
-endef
-TARGET_DEVICES += ubnt-air-gateway-pro
-
-define Device/ubdev01
-  $(Device/ubnt-xm)
-  DEVICE_TITLE := Ubiquiti ubDEV01
-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7488k(firmware),64k(certs),256k(cfg)ro,64k(EEPROM)ro
-  BOARDNAME := UBNT-UF
-  UBNT_BOARD := UBDEV01
-endef
-TARGET_DEVICES += ubdev01
-
-define Device/ubnt-routerstation
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2
-  DEVICE_PROFILE := UBNT
-  IMAGE_SIZE := 16128k
-  IMAGES := sysupgrade.bin factory.bin
-  IMAGE/factory.bin := append-rootfs | pad-rootfs | mkubntimage
-  IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | combined-image | check-size $$$$(IMAGE_SIZE)
-  KERNEL := kernel-bin | patch-cmdline | lzma | pad-to $$(BLOCKSIZE)
-endef
-
-define Device/ubnt-rs
-  $(Device/ubnt-routerstation)
-  DEVICE_TITLE := Ubiquiti RouterStation
-  BOARDNAME := UBNT-RS
-  DEVICE_PROFILE += UBNTRS
-  UBNT_BOARD := RS
-  UBNT_TYPE := RSx
-  UBNT_CHIP := ar7100
-endef
-TARGET_DEVICES += ubnt-rs
-
-define Device/ubnt-rspro
-  $(Device/ubnt-routerstation)
-  DEVICE_TITLE := Ubiquiti RouterStation Pro
-  BOARDNAME := UBNT-RSPRO
-  DEVICE_PROFILE += UBNTRSPRO
-  UBNT_BOARD := RSPRO
-  UBNT_TYPE := RSPRO
-  UBNT_CHIP := ar7100pro
-endef
-TARGET_DEVICES += ubnt-rspro
-
-define Device/ubnt-ls-sr71
-  $(Device/ubnt-routerstation)
-  DEVICE_TITLE := Ubiquiti LS-SR71
-  BOARDNAME := UBNT-LS-SR71
-  UBNT_BOARD := LS-SR71
-  UBNT_TYPE := LS-SR71
-  UBNT_CHIP := ar7100
-endef
-TARGET_DEVICES += ubnt-ls-sr71
-
-define Device/ubnt-uap-pro
-  DEVICE_TITLE := Ubiquiti UAP Pro
-  KERNEL_SIZE := 2048k
-  IMAGE_SIZE := 15744k
-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,2048k(kernel),13696k(rootfs),256k(cfg)ro,64k(EEPROM)ro,15744k@0x50000(firmware)
-  UBNT_TYPE := BZ
-  UBNT_CHIP := ar934x
-  BOARDNAME := UAP-PRO
-  DEVICE_PROFILE := UBNT UAPPRO
-  KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma | jffs2 kernel0
-  IMAGES := sysupgrade.bin factory.bin
-  IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
-  IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | mkubntimage2
-endef
-TARGET_DEVICES += ubnt-uap-pro
-
-define Device/ubnt-unifi-outdoor-plus
-  $(Device/ubnt-uap-pro)
-  DEVICE_TITLE := Ubiquiti UniFi Outdoor Plus
-  UBNT_CHIP := ar7240
-  BOARDNAME := UBNT-UOP
-  DEVICE_PROFILE := UBNT
-endef
-TARGET_DEVICES += ubnt-unifi-outdoor-plus
index 9e4e73389ae4d1281b614610ed2959f9b4551b65..e0189624a1554242276b6438bcba2eba31f42ed2 100644 (file)
@@ -21,6 +21,16 @@ define Build/mkwrggimg
        mv $@.imghdr $@
 endef
 
+define Build/mkdapimg2
+       $(STAGING_DIR_HOST)/bin/mkdapimg2 \
+               -i $@ -o $@.new \
+               -s $(DAP_SIGNATURE) \
+               -v $(VERSION_DIST)-$(firstword $(subst +, ,$(firstword $(subst -, ,$(REVISION))))) \
+               -r Default \
+               $(if $(1),-k $(1))
+       mv $@.new $@
+endef
+
 define Build/netgear-squashfs
        rm -rf $@.fs $@.squashfs
        mkdir -p $@.fs/image
@@ -174,45 +184,6 @@ define Device/cf-e320n-v2
 endef
 TARGET_DEVICES += cf-e320n-v2
 
-define Device/cf-e355ac-v1
-  DEVICE_TITLE := COMFAST CF-E355AC v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct \
-       -swconfig -uboot-envtools
-  BOARDNAME := CF-E355AC-V1
-  IMAGE_SIZE := 16192k
-  MTDPARTS := spi0.0:64k(u-boot)ro,64k(art)ro,16192k(firmware),64k(art-backup)ro
-endef
-TARGET_DEVICES += cf-e355ac-v1
-
-define Device/cf-e355ac-v2
-  $(Device/cf-e355ac-v1)
-  DEVICE_TITLE := COMFAST CF-E355AC v2
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9888-ct \
-       -swconfig -uboot-envtools
-  BOARDNAME := CF-E355AC-V2
-endef
-TARGET_DEVICES += cf-e355ac-v2
-
-define Device/cf-e375ac
-  DEVICE_TITLE := COMFAST CF-E375AC
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9888-ct \
-       -uboot-envtools
-  BOARDNAME := CF-E375AC
-  IMAGE_SIZE := 16000k
-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(art)ro,16000k(firmware),64k(art-backup)ro
-endef
-TARGET_DEVICES += cf-e375ac
-
-define Device/cf-e380ac-v1
-  DEVICE_TITLE := COMFAST CF-E380AC v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct \
-       -swconfig -uboot-envtools
-  BOARDNAME := CF-E380AC-V1
-  IMAGE_SIZE := 16128k
-  MTDPARTS := spi0.0:128k(u-boot)ro,64k(art)ro,16128k(firmware),64k(art-backup)ro
-endef
-TARGET_DEVICES += cf-e380ac-v1
-
 define Device/cf-e380ac-v2
   $(Device/cf-e380ac-v1)
   DEVICE_TITLE := COMFAST CF-E380AC v2
@@ -222,16 +193,6 @@ define Device/cf-e380ac-v2
 endef
 TARGET_DEVICES += cf-e380ac-v2
 
-define Device/cf-e385ac
-  DEVICE_TITLE := COMFAST CF-E385AC
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9984-ct \
-       -uboot-envtools
-  BOARDNAME := CF-E385AC
-  IMAGE_SIZE := 16000k
-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(art)ro,16000k(firmware),64k(art-backup)ro
-endef
-TARGET_DEVICES += cf-e385ac
-
 define Device/cf-e520n
   DEVICE_TITLE := COMFAST CF-E520N
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 -swconfig -uboot-envtools
@@ -283,19 +244,6 @@ define Device/dragino2
 endef
 TARGET_DEVICES += dragino2
 
-define Device/e1700ac-v2-16M
-  DEVICE_TITLE := Qxwlan E1700AC v2 (16MB flash)
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct kmod-usb-core \
-       kmod-usb2 kmod-usb-ledtrig-usbport
-  BOARDNAME := E1700AC-V2
-  SUPPORTED_DEVICES := e1700ac-v2
-  IMAGE_SIZE := 15936k
-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(pri-data)ro,64k(art)ro,-(firmware)
-  IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) |\
-       append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
-endef
-TARGET_DEVICES += e1700ac-v2-16M
-
 define Device/e1700ac-v2-8M
   $(Device/e1700ac-v2-16M)
   DEVICE_TITLE := Qxwlan E1700AC v2 (8MB flash)
@@ -341,19 +289,6 @@ define Device/e600g-v2-8M
 endef
 TARGET_DEVICES += e600g-v2-8M
 
-define Device/e600gac-v2-16M
-  DEVICE_TITLE := Qxwlan E600GAC v2 (16MB flash)
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct kmod-usb-core \
-       kmod-usb2 -swconfig
-  BOARDNAME := E600GAC-V2
-  SUPPORTED_DEVICES := e600gac-v2
-  IMAGE_SIZE := 15936k
-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(pri-data)ro,64k(art)ro,-(firmware)
-  IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) |\
-       append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
-endef
-TARGET_DEVICES += e600gac-v2-16M
-
 define Device/e600gac-v2-8M
   $(Device/e600gac-v2-16M)
   DEVICE_TITLE := Qxwlan E600GAC v2 (8MB flash)
@@ -476,7 +411,7 @@ TARGET_DEVICES += gl-ar300m
 
 define Device/gl-ar750
   DEVICE_TITLE := GL.iNet GL-AR750
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct kmod-usb-core \
+  DEVICE_PACKAGES := kmod-usb-core \
        kmod-usb2 kmod-usb-storage
   BOARDNAME := GL-AR750
   SUPPORTED_DEVICES := gl-ar750
@@ -489,7 +424,7 @@ TARGET_DEVICES += gl-ar750
 
 define Device/gl-ar750s
   DEVICE_TITLE := GL.iNet GL-AR750S
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct kmod-usb-core \
+  DEVICE_PACKAGES := kmod-usb-core \
        kmod-usb2 kmod-usb-storage
   BOARDNAME := GL-AR750S
   SUPPORTED_DEVICES := gl-ar750s
@@ -799,15 +734,6 @@ define Device/jwap230
 endef
 TARGET_DEVICES += jwap230
 
-define Device/koala
-  DEVICE_TITLE := OCEDO Koala
-  BOARDNAME := KOALA
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  IMAGE_SIZE := 7424k
-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),7424k(firmware),1536k(kernel2),5888k(rootfs2),1088k(data)ro,64k(id)ro,64k(art)ro
-endef
-TARGET_DEVICES += koala
-
 define Device/r36a
   DEVICE_TITLE := ALFA Network R36A
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport -swconfig
@@ -851,16 +777,6 @@ define Device/rut900
 endef
 TARGET_DEVICES += rut900
 
-define Device/mc-mac1200r
-  $(Device/tplink-8mlzma)
-  DEVICE_TITLE := Mercury MAC1200R
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  BOARDNAME := MC-MAC1200R
-  DEVICE_PROFILE := MAC1200R
-  TPLINK_HWID := 0x12000001
-endef
-TARGET_DEVICES += mc-mac1200r
-
 define Device/minibox-v1
   $(Device/tplink-16mlzma)
   DEVICE_TITLE := GainStrong MiniBox V1.0
@@ -873,16 +789,6 @@ define Device/minibox-v1
 endef
 TARGET_DEVICES += minibox-v1
 
-define Device/minibox-v3.2
-  $(Device/tplink-16mlzma)
-  DEVICE_TITLE := Gainstrong MiniBox V3.2
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca9887-ct -swconfig
-  BOARDNAME := MINIBOX-V3.2
-  DEVICE_PROFILE := MINIBOXV32
-  TPLINK_HWID := 0x3C00010C
-endef
-TARGET_DEVICES += minibox-v3.2
-
 define Device/oolite-v1
   $(Device/minibox-v1)
   DEVICE_TITLE := GainStrong Oolite V1.0
@@ -892,17 +798,6 @@ define Device/oolite-v1
 endef
 TARGET_DEVICES += oolite-v1
 
-define Device/oolite-v5.2
-  $(Device/tplink-16mlzma)
-  DEVICE_TITLE := GainStrong Oolite V5.2
-  DEVICE_PACKAGES := ath10k-firmware-qca9887-ct kmod-ath10k-ct kmod-usb-core kmod-usb2
-  BOARDNAME := OOLITE-V5-2
-  DEVICE_PROFILE := OOLITEV52
-  TPLINK_HWID := 0x3C00010B
-  IMAGES := sysupgrade.bin
-endef
-TARGET_DEVICES += oolite-v5.2
-
 define Device/oolite-v5.2-dev
   $(Device/oolite-v5.2)
   DEVICE_TITLE := GainStrong Oolite V5.2-Dev (development board)
@@ -988,23 +883,6 @@ define Device/som9331
 endef
 TARGET_DEVICES += som9331
 
-define Device/sr3200
-  DEVICE_TITLE := YunCore SR3200
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  BOARDNAME := SR3200
-  IMAGE_SIZE := 16000k
-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),16000k(firmware),64k(art)ro
-endef
-TARGET_DEVICES += sr3200
-
-define Device/xd3200
-  $(Device/sr3200)
-  DEVICE_TITLE := YunCore XD3200
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  BOARDNAME := XD3200
-endef
-TARGET_DEVICES += xd3200
-
 define Device/t830
   DEVICE_TITLE := YunCore T830
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
@@ -1051,45 +929,6 @@ define Device/n5q
 endef
 TARGET_DEVICES += n5q
 
-define Device/NBG6616
-  DEVICE_TITLE := ZyXEL NBG6616
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-usb-storage kmod-rtc-pcf8563 kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  BOARDNAME := NBG6616
-  KERNEL_SIZE := 2048k
-  IMAGE_SIZE := 15323k
-  MTDPARTS := spi0.0:192k(u-boot)ro,64k(env)ro,64k(RFdata)ro,384k(zyxel_rfsd),384k(romd),64k(header),2048k(kernel),13184k(rootfs),15232k@0x120000(firmware)
-  CMDLINE += mem=128M
-  RAS_BOARD := NBG6616
-  RAS_ROOTFS_SIZE := 14464k
-  RAS_VERSION := "$(VERSION_DIST) $(REVISION)"
-  IMAGES := factory.bin sysupgrade.bin
-  KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma | jffs2 boot/vmlinux.lzma.uImage
-  IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | pad-to 64k | check-size $$$$(IMAGE_SIZE) | zyxel-ras-image
-  IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
-  # We cannot currently build a factory image. It is the sysupgrade image
-  # prefixed with a header (which is actually written into the MTD device).
-  # The header is 2kiB and is filled with 0xff. The format seems to be:
-  #   2 bytes:  0x0000
-  #   2 bytes:  checksum of the data partition (big endian)
-  #   4 bytes:  length of the contained image file (big endian)
-  #  32 bytes:  Firmware Version string (NUL terminated, 0xff padded)
-  #   2 bytes:  0x0000
-  #   2 bytes:  checksum over the header partition (big endian)
-  #  32 bytes:  Model (e.g. "NBG6616", NUL termiated, 0xff padded)
-  #      rest: 0xff padding
-  #
-  # The checksums are calculated by adding up all bytes and if a 16bit
-  # overflow occurs, one is added and the sum is masked to 16 bit:
-  #   csum = csum + databyte; if (csum > 0xffff) { csum += 1; csum &= 0xffff };
-  # Should the file have an odd number of bytes then the byte len-0x800 is
-  # used additionally.
-  # The checksum for the header is calcualted over the first 2048 bytes with
-  # the firmware checksum as the placeholder during calculation.
-  #
-  # The header is padded with 0xff to the erase block size of the device.
-endef
-TARGET_DEVICES += NBG6616
-
 define Device/c-55
   DEVICE_TITLE := AirTight Networks C-55
   DEVICE_PACKAGES := kmod-ath9k
@@ -1136,21 +975,6 @@ define Device/seama
   SEAMA_SIGNATURE :=
 endef
 
-define Device/dir-869-a1
-  $(Device/seama)
-  DEVICE_TITLE := D-Link DIR-869 rev. A1
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  BOARDNAME := DIR-869-A1
-  IMAGE_SIZE := 15872k
-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro
-  SEAMA_SIGNATURE := wrgac54_dlink.2015_dir869
-  IMAGE/factory.bin := \
-       $$(IMAGE/default) | pad-rootfs -x 64 | \
-       seama | seama-seal -m "signature=$$$$(SEAMA_SIGNATURE)" | \
-       check-size $$$$(IMAGE_SIZE)
-endef
-TARGET_DEVICES += dir-869-a1
-
 define Device/mynet-n600
   $(Device/seama)
   DEVICE_TITLE := Western Digital My Net N600
@@ -1173,31 +997,17 @@ define Device/mynet-n750
 endef
 TARGET_DEVICES += mynet-n750
 
-define Device/qihoo-c301
-  $(Device/seama)
-  DEVICE_TITLE := Qihoo C301
-  DEVICE_PACKAGES :=  kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  BOARDNAME := QIHOO-C301
-  IMAGE_SIZE := 15744k
-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(devdata),64k(devconf),15744k(firmware),64k(warm_start),64k(action_image_config),64k(radiocfg)ro;spi0.1:15360k(upgrade2),1024k(privatedata)
-  SEAMA_SIGNATURE := wrgac26_qihoo360_360rg
-endef
-TARGET_DEVICES += qihoo-c301
-
-define Device/dap-2695-a1
-  DEVICE_TITLE := D-Link DAP-2695 rev. A1
-  DEVICE_PACKAGES := ath10k-firmware-qca988x-ct kmod-ath10k-ct
-  BOARDNAME := DAP-2695-A1
+define Device/dap-1330-a1
+  DEVICE_TITLE := D-Link DAP-1330 rev. A1
+  DEVICE_PACKAGES := rssileds
+  BOARDNAME := DAP-1330-A1
   IMAGES := factory.img sysupgrade.bin
-  IMAGE_SIZE := 15360k
-  IMAGE/factory.img := append-kernel | pad-offset 65536 160 | append-rootfs | wrgg-pad-rootfs | mkwrggimg | check-size $$$$(IMAGE_SIZE)
-  IMAGE/sysupgrade.bin := append-kernel | pad-offset 65536 160 | mkwrggimg | append-rootfs | wrgg-pad-rootfs | check-size $$$$(IMAGE_SIZE)
-  KERNEL := kernel-bin | patch-cmdline | relocate-kernel | lzma
-  KERNEL_INITRAMFS := $$(KERNEL) | mkwrggimg
-  MTDPARTS := spi0.0:256k(bootloader)ro,64k(bdcfg)ro,64k(rgdb)ro,64k(langpack)ro,15360k(firmware),448k(captival)ro,64k(certificate)ro,64k(radiocfg)ro
-  DAP_SIGNATURE := wapac02_dkbs_dap2695
+  IMAGE_SIZE := 7936k
+  IMAGE/factory.img := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | mkdapimg2 917504
+  MTDPARTS := spi0.0:64k(u-boot)ro,64k(art)ro,64k(mp)ro,64k(config)ro,7936k(firmware)
+  DAP_SIGNATURE := HONEYBEE-FIRMWARE-DAP-1330
 endef
-TARGET_DEVICES += dap-2695-a1
+TARGET_DEVICES += dap-1330-a1
 
 define Device/wam250
   DEVICE_TITLE := Samsung WAM250
@@ -1224,16 +1034,6 @@ define Device/wifi-pineapple-nano
 endef
 TARGET_DEVICES += wifi-pineapple-nano
 
-define Device/wlr8100
-  DEVICE_TITLE := Sitecom WLR-8100
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-usb3 \
-       kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  BOARDNAME := WLR8100
-  IMAGE_SIZE := 15424k
-  MTDPARTS := spi0.0:192k(u-boot)ro,64k(u-boot-env)ro,15424k(firmware),256k(manufacture)ro,64k(backup)ro,320k(storage)ro,64k(art)ro
-endef
-TARGET_DEVICES += wlr8100
-
 define Device/wpj-16m
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   MTDPARTS := spi0.0:192k(u-boot)ro,16128k(firmware),64k(art)ro
index 96365e6529be6d7ac820fec715c0f44ee019c3b4..456b1fdbb5f30c43ac92d7411ba68f0dc141349b 100644 (file)
@@ -29,16 +29,6 @@ define Device/c-60
 endef
 TARGET_DEVICES += c-60
 
-define Device/domywifi-dw33d
-  DEVICE_TITLE := DomyWifi DW33D
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  BOARDNAME := DW33D
-  IMAGE_SIZE := 16000k
-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,14528k(rootfs),1472k(kernel),64k(art)ro,16000k@0x50000(firmware);ar934x-nfc:96m(rootfs_data),32m(backup)ro
-  IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | pad-to 14528k | append-kernel | check-size $$$$(IMAGE_SIZE)
-endef
-TARGET_DEVICES += domywifi-dw33d
-
 define Device/hiveap-121
   DEVICE_TITLE := Aerohive HiveAP-121
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-i2c-gpio-custom kmod-spi-gpio kmod-ath9k kmod-tpm-i2c-atmel
@@ -84,21 +74,6 @@ define Device/rambutan
 endef
 TARGET_DEVICES += rambutan
 
-define Device/wi2a-ac200i
-  SUPPORTED_DEVICES = $(1)
-  DEVICE_TITLE := Nokia WI2A-AC200i
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath9k kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  BOARDNAME := WI2A-AC200i
-  BLOCKSIZE := 64k
-  KERNEL_SIZE := 3648k
-  IMAGE_SIZE := 32m
-  IMAGES := sysupgrade.tar
-  MTDPARTS := spi0.0:256k(u-boot)ro,64k(envFacA)ro,64k(envFacB)ro,64k(ART)ro,128k(u-boot-env)
-  KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma
-  IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
-endef
-TARGET_DEVICES += wi2a-ac200i
-
 define Device/z1
   DEVICE_TITLE := Meraki Z1
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-spi-gpio kmod-ath9k kmod-owl-loader
@@ -112,12 +87,6 @@ define Device/z1
 endef
 TARGET_DEVICES += z1
 
-define LegacyDevice/R6100
-  DEVICE_TITLE := NETGEAR R6100
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
-endef
-LEGACY_DEVICES += R6100
-
 define LegacyDevice/WNDR3700V4
   DEVICE_TITLE := NETGEAR WNDR3700v4
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
@@ -129,9 +98,3 @@ define LegacyDevice/WNDR4300V1
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
 endef
 LEGACY_DEVICES += WNDR4300V1
-
-define LegacyDevice/NBG6716
-  DEVICE_TITLE := Zyxel NBG 6716
-  DEVICE_PACKAGES := kmod-rtc-pcf8563 kmod-ath10k-ct ath10k-firmware-qca988x-ct
-endef
-LEGACY_DEVICES += NBG6716
index bcf77de44332ee3ece2c2b485d80bd4e78f5ed60..3445c4c8c3393730dc4112e26d74708530865040 100644 (file)
@@ -1,10 +1,3 @@
-define LegacyDevice/F9K1115V2
-  DEVICE_TITLE := Belkin AC1750DB (F9K1115V2)
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb3 kmod-usb-ledtrig-usbport \
-        kmod-ath10k-ct ath10k-firmware-qca988x-ct
-endef
-LEGACY_DEVICES += F9K1115V2
-
 define LegacyDevice/DIR600A1
   DEVICE_TITLE := D-Link DIR-600 rev. A1
 endef
index 5c526794fde6cbfae98a5f42bd65c2ff23298317..0797bf7ba23b34e1da2f948ffa18fed2e6680902 100644 (file)
@@ -10,7 +10,7 @@
  
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1152,6 +1152,9 @@ config MIPS_MSC
+@@ -1155,6 +1155,9 @@ config MIPS_MSC
  config MIPS_NILE4
        bool
  
index ec1d89d6e64bb14efb2fa2c5ac8b0a236a9f52ad..99624f07c16f17026df4b594883e902f72a383cd 100644 (file)
  struct ip_auth_hdr {
 --- a/include/uapi/linux/ipv6.h
 +++ b/include/uapi/linux/ipv6.h
+@@ -104,7 +104,7 @@ struct ipv6_destopt_hao {
+       __u8                    type;
+       __u8                    length;
+       struct in6_addr         addr;
+-} __attribute__((packed));
++} __attribute__((packed, aligned(2)));
+ /*
+  *    IPv6 fixed header
 @@ -131,7 +131,7 @@ struct ipv6hdr {
  
        struct  in6_addr        saddr;
   */
 --- a/net/ipv6/datagram.c
 +++ b/net/ipv6/datagram.c
-@@ -485,7 +485,7 @@ int ipv6_recv_error(struct sock *sk, str
+@@ -486,7 +486,7 @@ int ipv6_recv_error(struct sock *sk, str
                                ipv6_iface_scope_id(&sin->sin6_addr,
                                                    IP6CB(skb)->iif);
                } else {
                                               &sin->sin6_addr);
                        sin->sin6_scope_id = 0;
                }
-@@ -836,12 +836,12 @@ int ip6_datagram_send_ctl(struct net *ne
+@@ -835,12 +835,12 @@ int ip6_datagram_send_ctl(struct net *ne
                        }
  
                        if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
index edeac838d90f88a2267036428b441c19e106f361..6b0d30002337756e80bd11f1b40cd6efcc0c0c65 100644 (file)
@@ -26,7 +26,7 @@
  #endif /* __MDIO_BOARD_INFO_H */
 --- a/drivers/net/phy/mdio_bus.c
 +++ b/drivers/net/phy/mdio_bus.c
-@@ -455,6 +455,17 @@ void mdiobus_free(struct mii_bus *bus)
+@@ -456,6 +456,17 @@ void mdiobus_free(struct mii_bus *bus)
  }
  EXPORT_SYMBOL(mdiobus_free);
  
@@ -44,7 +44,7 @@
  /**
   * mdiobus_scan - scan a bus for MDIO devices.
   * @bus: mii_bus to scan
-@@ -470,6 +481,7 @@ EXPORT_SYMBOL(mdiobus_free);
+@@ -471,6 +482,7 @@ EXPORT_SYMBOL(mdiobus_free);
  struct phy_device *mdiobus_scan(struct mii_bus *bus, int addr)
  {
        struct phy_device *phydev;
@@ -52,7 +52,7 @@
        int err;
  
        phydev = get_phy_device(bus, addr, false);
-@@ -482,6 +494,12 @@ struct phy_device *mdiobus_scan(struct m
+@@ -483,6 +495,12 @@ struct phy_device *mdiobus_scan(struct m
         */
        of_mdiobus_link_mdiodev(bus, &phydev->mdio);
  
index c5ea726ce497bc0fa89559eba778640f48610e6b..705ae3d407d982fb3ee9e5260012c3a9b46a62e7 100755 (executable)
@@ -38,6 +38,15 @@ comfast,cf-e110n-v2)
        ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "$boardname:green:rssimediumhigh" "wlan0" "51" "100"
        ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$boardname:green:rssihigh" "wlan0" "76" "100"
        ;;
+comfast,cf-e120a-v3)
+       ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth0"
+       ucidef_set_led_switch "wan" "WAN" "$boardname:green:wan" "switch0" "0x04"
+       ucidef_set_rssimon "wlan0" "200000" "1"
+       ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:red:rssilow" "wlan0" "1" "100"
+       ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "$boardname:red:rssimediumlow" "wlan0" "26" "100"
+       ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "$boardname:green:rssimediumhigh" "wlan0" "51" "100"
+       ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$boardname:green:rssihigh" "wlan0" "76" "100"
+       ;;
 dlink,dir-859-a1)
        ucidef_set_led_switch "internet" "WAN" "$boardname:green:internet" "switch0" "0x20"
        ;;
@@ -52,7 +61,7 @@ etactica,eg200)
        ;;
 glinet,gl-ar150)
        ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth0"
-       ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth1"
+       ucidef_set_led_switch "lan" "LAN" "$boardname:green:lan" "switch0" "0x02"
        ;;
 glinet,gl-x750)
        ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth0"
@@ -74,6 +83,7 @@ pcs,cr3000)
        ucidef_set_led_switch "lan4" "LAN4" "pcs:blue:lan4" "switch0" "0x02"
        ;;
 tplink,archer-a7-v5|\
+tplink,archer-c7-v4|\
 tplink,archer-c7-v5)
        ucidef_set_led_switch "wan" "WAN" "tp-link:green:wan" "switch0" "0x02"
        ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04"
@@ -81,6 +91,14 @@ tplink,archer-c7-v5)
        ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x10"
        ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x20"
        ;;
+tplink,archer-c2-v3|\
+tplink,tl-wr1043nd-v4)
+       ucidef_set_led_switch "wan" "WAN" "tp-link:green:wan" "switch0" "0x20"
+       ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10"
+       ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"
+       ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x04"
+       ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02"
+       ;;
 tplink,archer-c58-v1|\
 tplink,archer-c59-v1)
        ucidef_set_led_switch "lan" "LAN" "tp-link:green:lan" "switch0" "0x1E"
@@ -98,13 +116,6 @@ tplink,tl-mr3020-v1|\
 tplink,tl-mr3040-v2)
        ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
        ;;
-tplink,tl-wr1043nd-v4)
-       ucidef_set_led_switch "wan" "WAN" "tp-link:green:wan" "switch0" "0x20"
-       ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10"
-       ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"
-       ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x04"
-       ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02"
-       ;;
 tplink,tl-wr740n-v1|\
 tplink,tl-wr740n-v3|\
 tplink,tl-wr741-v1|\
@@ -117,7 +128,7 @@ tplink,tl-wr941-v4)
        ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x08"
        ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x10"
        ;;
-tplink,tl-wr740nd-v4|\
+tplink,tl-wr740n-v4|\
 tplink,tl-wr741nd-v4|\
 tplink,tl-wr841-v8|\
 tplink,tl-wr842n-v2)
index 3eb0e413f36b1ea757e862857c9fade368200a8a..f1171695bd3739f6e52f5e03b98d6007989df51b 100755 (executable)
@@ -62,7 +62,8 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0@eth0" "1:lan:1" "3:lan:4" "4:lan:3" "5:lan:2" "2:wan"
                ;;
-       devolo,dvl1200e)
+       devolo,dvl1200e|\
+       devolo,dvl1750e)
                ucidef_set_interface_lan "eth0 eth1"
                ;;
        dlink,dir-825-b1)
@@ -72,13 +73,11 @@ ath79_setup_interfaces()
                ;;
        dlink,dir-825-c1|\
        dlink,dir-835-a1|\
-       iodata,etg3-r|\
-       iodata,wn-ac1167dgr|\
-       iodata,wn-ac1600dgr2|\
-       iodata,wn-ag300dgr|\
-       pcs,cr5000)
+       dlink,dir-859-a1|\
+       tplink,archer-c2-v3|\
+       tplink,tl-wr1043nd-v4)
                ucidef_add_switch "switch0" \
-                       "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
+                       "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
                ;;
        elecom,wrc-1750ghbk2-i|\
        elecom,wrc-300ghbk2-i)
@@ -108,6 +107,15 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0@eth0" "2:lan:2" "3:lan:1" "1:wan"
                ;;
+       iodata,etg3-r|\
+       iodata,wn-ac1167dgr|\
+       iodata,wn-ac1600dgr|\
+       iodata,wn-ac1600dgr2|\
+       iodata,wn-ag300dgr|\
+       pcs,cr5000)
+               ucidef_add_switch "switch0" \
+                       "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
+       ;;
        nec,wg800hp)
                ucidef_add_switch "switch0" \
                        "0@eth0" "2:lan" "3:lan" "4:lan" "1:wan"
@@ -124,10 +132,11 @@ ath79_setup_interfaces()
                ucidef_add_switch_port_attr "switch0" 5 led 2
                ;;
        netgear,wnr612-v2|\
-       on,n150r)
+       on,n150r|\
+       tplink,tl-wr841-v7)
                ucidef_set_interface_wan "eth0"
                ucidef_add_switch "switch0" \
-               "0@eth1" "1:lan" "2:lan" "3:lan:3" "4:lan:4"
+               "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
                ;;
        phicomm,k2t)
                ucidef_add_switch "switch0" \
@@ -137,6 +146,7 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0@eth0" "1:lan" "2:lan" "3:wan"
                ;;
+       tplink,archer-c5-v1|\
        tplink,archer-c7-v1|\
        tplink,archer-c7-v2|\
        tplink,tl-wdr4900-v2)
@@ -146,8 +156,6 @@ ath79_setup_interfaces()
        buffalo,whr-g301n|\
        tplink,tl-mr3220-v1|\
        tplink,tl-mr3420-v1|\
-       tplink,tl-wr741nd-v4|\
-       tplink,tl-wr841-v7|\
        tplink,tl-wr841-v9|\
        tplink,tl-wr841-v11|\
        ubnt,airrouter)
@@ -157,6 +165,7 @@ ath79_setup_interfaces()
                ;;
        tplink,archer-a7-v5|\
        tplink,archer-c6-v2|\
+       tplink,archer-c7-v4|\
        tplink,archer-c7-v5|\
        tplink,tl-wdr3600|\
        tplink,tl-wdr4300)
@@ -172,11 +181,6 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "6@eth0"
                ;;
-       dlink,dir-859-a1|\
-       tplink,tl-wr1043nd-v4)
-               ucidef_add_switch "switch0" \
-                       "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
-               ;;
        tplink,tl-wr2543-v1)
                ucidef_add_switch "switch0" \
                        "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
@@ -191,7 +195,8 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
                ;;
-       tplink,tl-wr740nd-v4|\
+       tplink,tl-wr740n-v4|\
+       tplink,tl-wr741nd-v4|\
        tplink,tl-wr841-v8|\
        tplink,tl-wr842n-v1|\
        tplink,tl-wr842n-v2)
@@ -213,6 +218,11 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0@eth0" "2:lan" "3:wan"
                ;;
+       xiaomi,mi-router-4q)
+               ucidef_set_interface_wan "eth0"
+               ucidef_add_switch "switch0" \
+                       "0@eth1" "3:lan:1" "4:lan:2"
+               ;;
        *)
                ucidef_set_interfaces_lan_wan "eth0" "eth1"
                ;;
@@ -259,6 +269,7 @@ ath79_setup_macs()
                wan_mac=$(macaddr_add "$lan_mac" -1)
                ;;
        iodata,wn-ac1167dgr|\
+       iodata,wn-ac1600dgr|\
        iodata,wn-ac1600dgr2|\
        iodata,wn-ag300dgr)
                lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
@@ -281,6 +292,10 @@ ath79_setup_macs()
                wan_mac=$(mtd_get_mac_binary factory 0)
                lan_mac=$(macaddr_setbit_la "$wan_mac")
                ;;
+       tplink,archer-c7-v4)
+               base_mac=$(mtd_get_mac_binary config 8)
+               wan_mac=$(macaddr_add "$base_mac" 1)
+               ;;
        tplink,tl-wr1043nd-v4)
                base_mac=$(mtd_get_mac_binary product-info 8)
                wan_mac=$(macaddr_add "$base_mac" 1)
index 2da9250ddf28d85163035cd40171ffcef83ac0ca..84e4d07b35c8a823ec9853a7820355d81fe3a4f6 100644 (file)
@@ -20,7 +20,7 @@ ath9k_eeprom_extract() {
        [ -n "$mtd" ] || \
                ath9k_eeprom_die "no mtd device found for partition $part"
 
-       dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
+       dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
                ath9k_eeprom_die "failed to extract from $mtd"
 }
 
@@ -110,6 +110,7 @@ case "$FIRMWARE" in
                ath9k_patch_fw_mac $(mtd_get_mac_ascii devdata "wlan24mac") 2
                ;;
        iodata,wn-ac1167dgr|\
+       iodata,wn-ac1600dgr|\
        iodata,wn-ac1600dgr2|\
        iodata,wn-ag300dgr)
                ath9k_eeprom_extract "art" 4096 1088
diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
deleted file mode 100644 (file)
index 76efa24..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-#!/bin/sh
-
-. /lib/functions/k2t.sh
-
-# xor multiple hex values of the same length
-xor() {
-       local val
-       local ret="0x$1"
-       local retlen=${#1}
-
-       shift
-       while [ -n "$1" ]; do
-               val="0x$1"
-               ret=$((ret ^ val))
-               shift
-       done
-
-       printf "%0${retlen}x" "$ret"
-}
-
-ath10kcal_die() {
-       echo "ath10cal: " "$*"
-       exit 1
-}
-
-ath10kcal_from_file() {
-       local source=$1
-       local offset=$2
-       local count=$3
-
-       dd if=$source of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
-               ath10kcal_die "failed to extract calibration data from $source"
-}
-
-ath10kcal_extract() {
-       local part=$1
-       local offset=$2
-       local count=$3
-       local mtd
-
-       mtd=$(find_mtd_chardev $part)
-       [ -n "$mtd" ] || \
-               ath10kcal_die "no mtd device found for partition $part"
-
-       dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
-               ath10kcal_die "failed to extract calibration data from $mtd"
-}
-
-ath10kcal_patch_mac() {
-       local mac=$1
-
-       [ -z "$mac" ] && return
-
-       macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=6 count=6
-}
-
-ath10kcal_patch_mac_crc() {
-       local mac=$1
-       local mac_offset=6
-       local chksum_offset=2
-       local xor_mac
-       local xor_fw_mac
-       local xor_fw_chksum
-
-       xor_fw_mac=$(hexdump -v -n 6 -s $mac_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE)
-       xor_fw_mac="${xor_fw_mac:0:4} ${xor_fw_mac:4:4} ${xor_fw_mac:8:4}"
-
-       ath10kcal_patch_mac "$mac" && {
-               xor_mac=${mac//:/}
-               xor_mac="${xor_mac:0:4} ${xor_mac:4:4} ${xor_mac:8:4}"
-
-               xor_fw_chksum=$(hexdump -v -n 2 -s $chksum_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE)
-               xor_fw_chksum=$(xor $xor_fw_chksum $xor_fw_mac $xor_mac)
-
-               printf "%b" "\x${xor_fw_chksum:0:2}\x${xor_fw_chksum:2:2}" | \
-                       dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=$chksum_offset count=2
-       }
-}
-
-[ -e /lib/firmware/$FIRMWARE ] && exit 0
-
-. /lib/functions.sh
-. /lib/functions/system.sh
-
-board=$(board_name)
-
-case "$FIRMWARE" in
-"ath10k/cal-pci-0000:00:00.0.bin")
-       case $board in
-       devolo,dvl1200e|\
-       devolo,dvl1200i|\
-       devolo,dvl1750c|\
-       devolo,dvl1750i)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary art 0) -1)
-               ;;
-       dlink,dir-859-a1)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(mtd_get_mac_ascii devdata "wlan5mac")
-               ;;
-       elecom,wrc-1750ghbk2-i)
-               ath10kcal_extract "ART" 20480 2116
-               ;;
-       engenius,ews511ap|\
-       glinet,gl-ar750s|\
-       glinet,gl-x750|\
-       tplink,re450-v2)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
-               ;;
-       iodata,wn-ac1167dgr|\
-       iodata,wn-ac1600dgr2)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +1)
-               ;;
-       nec,wg800hp)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac_crc $(mtd_get_mac_text board_data 2176)
-               ;;
-       ocedo,koala)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(mtd_get_mac_binary art 12)
-               ;;
-       openmesh,om5p-ac-v2)
-               ath10kcal_extract "ART" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
-               ;;
-       tplink,archer-c7-v2)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -1)
-               ;;
-       tplink,archer-a7-v5|\
-       tplink,archer-c7-v5)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -1)
-               ;;
-       ubnt,unifiac-lite|\
-       ubnt,unifiac-mesh|\
-       ubnt,unifiac-mesh-pro|\
-       ubnt,lap-120|\
-       ubnt,nanostation-ac|\
-       ubnt,nanostation-ac-loco|\
-       ubnt,unifiac-pro)
-               ath10kcal_extract "EEPROM" 20480 2116
-               ;;
-       esac
-       ;;
-"ath10k/pre-cal-pci-0000:00:00.0.bin")
-       case $board in
-       phicomm,k2t)
-               ath10kcal_extract "art" 20480 12064
-               ath10kcal_patch_mac_crc $(k2t_get_mac "5g_mac")
-               ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
-                       /lib/firmware/ath10k/QCA9888/hw2.0/board.bin
-               ;;
-       tplink,archer-c58-v1|\
-       tplink,archer-c59-v1|\
-       tplink,archer-c6-v2)
-               ath10kcal_extract "art" 20480 12064
-               ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary mac 8) -1)
-               ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
-                       /lib/firmware/ath10k/QCA9888/hw2.0/board.bin
-               ;;
-       esac
-       ;;
-*)
-       exit 1
-       ;;
-esac
index 14d4f6b9d60411ed5fb7d63e34a005f68c18ad08..2da2e8bfb0f58784a2b2c980e3af8c15ca739d3c 100644 (file)
@@ -19,6 +19,12 @@ case "$board" in
                [ "$PHYNBR" -eq 1 ] && \
                        echo $(macaddr_add "$(mtd_get_mac_ascii u-boot-env ethaddr)" 1) > /sys${DEVPATH}/macaddress
                ;;
+       iodata,wn-ac1600dgr)
+               # There is no eeprom data for 5 GHz wlan in "art" partition
+               # which would allow to patch the macaddress
+               [ "$PHYNBR" -eq 0 ] && \
+                       echo $(macaddr_add "$(mtd_get_mac_ascii u-boot-env ethaddr)" 1) > /sys${DEVPATH}/macaddress
+               ;;
        phicomm,k2t)
                # The K2T factory firmware does use LAN mac address as the 2.4G wifi mac address
                [ "$PHYNBR" -eq 1 ] && \
index fecdf73a8c1459905b995b5e8783cf48052d8754..df22eb8dc4ce681df2d7280f38dd525b6cb49956 100644 (file)
@@ -80,7 +80,7 @@
                };
        };
 
-       gpio-keys-polled {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
index c8ee985f3c10f8c2ec0d5ee8c99150dd537688e3..b1c4d87bcb9a4aaf94e4f54e0b744032945119bc 100644 (file)
@@ -80,7 +80,7 @@
                };
        };
 
-       gpio-keys-polled {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <100>;
 
index 97e2099806d6476ba1acd44a1e710ba66cb197a9..6e4361f10f248e8cb0a5ff1e1be81b5a96d8faf7 100644 (file)
@@ -25,7 +25,7 @@
                clock-frequency = <40000000>;
        };
 
-       gpio-leds {
+       leds {
                compatible = "gpio-leds";
 
                rf: rf_green {
@@ -34,7 +34,7 @@
                };
        };
 
-       gpio-keys-polled {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
index 31053e39b100ee61a23634ca93432ca9f147f532..042219b2344c10d0cb7d5e63872fd8179b534413 100644 (file)
@@ -16,7 +16,7 @@
                led-upgrade = &diag;
        };
 
-       gpio-keys-polled {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
index 02d18f9f48ed88b3d4d966d1875d0d40b56788cc..8e934429a3afc35fd22d41a5f172905c2204b492 100644 (file)
@@ -14,7 +14,7 @@
                led-upgrade = &power;
        };
 
-       gpio-keys-polled {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
@@ -26,7 +26,7 @@
                };
        };
 
-       gpio-leds {
+       leds {
                compatible = "gpio-leds";
                power: power {
                        label = "netgear:green:power";
index cf63fe316652f432ca23970f145d3fe4e4d710ac..b7db74d937b6a90b8eb7b1fe97c090e0c673e79e 100644 (file)
@@ -13,7 +13,7 @@
                led-upgrade = &led_system;
        };
 
-       gpio-keys-polled {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
index d646c312f5baf52acc8c60260dda2004d55d351f..fa6ba71925c444fccd8561e6594ce58a1bbf3435 100644 (file)
@@ -13,7 +13,7 @@
                led-upgrade = &led_system;
        };
 
-       gpio-keys-polled {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
index 4a3fc596235795c73b13237dd69e5c3b843c6fa8..b79e3c735f3cadb337f8bb848b96883cdbb207d8 100644 (file)
@@ -5,7 +5,7 @@
 
 / {
        compatible = "tplink,tl-wr841-v7", "qca,ar7241";
-       model = "TP-LINK TL-WR841N/ND v7";
+       model = "TP-Link TL-WR841N/ND v7";
 
        ath9k-leds {
                compatible = "gpio-leds";
index fb6b0ff30eaac920f335b426eea8964061256911..3621714d9d5261503166433ebfc7bb6fb7c21fb5 100644 (file)
@@ -17,7 +17,7 @@
                led-upgrade = &power;
        };
 
-       gpio-keys {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
index 33778504169592ea714eaa9b7445c749494f1e85..c42207e6cffb2c3f20b574ace30c1a5d81929a20 100644 (file)
@@ -8,7 +8,7 @@
 
 / {
        compatible = "tplink,tl-wr2543-v1", "qca,ar7242";
-       model = "TP-LINK TL-WR2543N/ND";
+       model = "TP-Link TL-WR2543N/ND";
 
        aliases {
                led-boot = &system;
@@ -27,7 +27,7 @@
                clock-frequency = <40000000>;
        };
 
-       gpio-keys {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
index 23eba5bb30142674a7fb647fda61fbb8f36d24d3..f617d89c5ba766ff92b79ae7e6f8628b698bb8af 100644 (file)
@@ -8,7 +8,7 @@
 
 / {
        compatible = "tplink,tl-wr1043nd-v1", "qca,ar9132";
-       model = "TP-Link TL-WR1043ND Version 1";
+       model = "TP-Link TL-WR1043ND v1";
 
        aliases {
                led-boot = &system;
index 3573665b341f16199db39cfc066976f590ff555c..b3bc2e4c451254c014683c66821a523ee56f4ee0 100644 (file)
@@ -18,7 +18,7 @@
                led-upgrade = &led_system;
        };
 
-       gpio-keys-polled {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
@@ -30,7 +30,7 @@
                };
        };
 
-       gpio-leds {
+       leds {
                compatible = "gpio-leds";
 
                led_system: system {
index d7b23f988031df38da7d03bbef8ca857f6976874..ffd3d71a6202ae6c273a5b991c74e0cc0e1d205c 100644 (file)
@@ -15,7 +15,7 @@
                led-upgrade = &system;
        };
 
-       gpio-keys-polled {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
@@ -27,7 +27,7 @@
                };
        };
 
-       gpio-leds {
+       leds {
                compatible = "gpio-leds";
 
                system: system {
diff --git a/target/linux/ath79/dts/ar9331_tplink_tl-wr740n-v4.dts b/target/linux/ath79/dts/ar9331_tplink_tl-wr740n-v4.dts
new file mode 100644 (file)
index 0000000..6775a74
--- /dev/null
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "ar9331_tplink_tl-wr741nd-v4.dtsi"
+
+/ {
+       model = "TP-Link TL-WR740N v4";
+       compatible = "tplink,tl-wr740n-v4", "qca,ar9331";
+};
diff --git a/target/linux/ath79/dts/ar9331_tplink_tl-wr740nd-v4.dts b/target/linux/ath79/dts/ar9331_tplink_tl-wr740nd-v4.dts
deleted file mode 100644 (file)
index 1b0283e..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-/dts-v1/;
-
-#include "ar9331_tplink_tl-wr741nd-v4.dtsi"
-
-/ {
-       model = "TP-Link TL-WR740N/ND v4";
-       compatible = "tplink,tl-wr740nd-v4", "qca,ar9331";
-};
index 5b8ce9eb289f40f65b051fc8f756ddfe02c69b26..02c647c179cb74ab709d5e5556f67bfd11dcd383 100644 (file)
@@ -18,7 +18,7 @@
                led-upgrade = &system;
        };
 
-       gpio-keys-polled {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
@@ -37,7 +37,7 @@
                };
        };
 
-       gpio-leds {
+       leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
                pinctrl-0 = <&switch_led_pins>;
index 29b6fdab5e59f636eec5cde82a8e96ace2fa7024..2ace37ad687f2f3fa722b03e1e3bfd5533324a98 100644 (file)
@@ -10,7 +10,7 @@
        compatible = "ubnt,nanostation-ac","ubnt,wa", "qca,ar9342";
        model = "Ubiquiti Nanostation AC (WA)";
 
-       gpio-leds {
+       leds {
                compatible = "gpio-leds";
 
                rssi0 {
index 01ea7c9eb3eac5a29f00f8e35c762ceadfdccaa4..84fc22215667244c390a1104a46548b5c7c89e6c 100644 (file)
@@ -16,7 +16,7 @@
                led-failsafe = &system;
        };
 
-       gpio-leds {
+       leds {
                compatible = "gpio-leds";
 
                link1 {
diff --git a/target/linux/ath79/dts/ar9344_comfast_cf-e120a-v3.dts b/target/linux/ath79/dts/ar9344_comfast_cf-e120a-v3.dts
new file mode 100644 (file)
index 0000000..b0fdce7
--- /dev/null
@@ -0,0 +1,146 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "ar9344.dtsi"
+
+/ {
+       compatible = "comfast,cf-e120a-v3", "qca,ar9344";
+       model = "COMFAST CF-E120A v3";
+
+       aliases {
+               serial0 = &uart;
+               led-boot = &wan;
+               led-failsafe = &wan;
+               led-upgrade = &wan;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_rssimediumhigh_pin>;
+
+               wan: wan {
+                       label = "cf-e120a-v3:green:wan";
+                       gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+               };
+
+               lan {
+                       label = "cf-e120a-v3:green:lan";
+                       gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+               };
+
+               wlan {
+                       label = "cf-e120a-v3:green:wlan";
+                       gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy0tpt";
+               };
+
+               rssilow {
+                       label = "cf-e120a-v3:red:rssilow";
+                       gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+               };
+
+               rssimediumlow {
+                       label = "cf-e120a-v3:red:rssimediumlow";
+                       gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+               };
+
+               rssimediumhigh {
+                       label = "cf-e120a-v3:green:rssimediumhigh";
+                       gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+               };
+
+               rssihigh {
+                       label = "cf-e120a-v3:green:rssihigh";
+                       gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys-polled";
+               poll-interval = <20>;
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+       };
+};
+
+&pinmux {
+               led_rssimediumhigh_pin: pinmux_rssimediumhigh_pin {
+                       pinctrl-single,bits = <0x10 0x0 0xff>;
+               };
+};
+
+&spi {
+       status = "okay";
+       num-cs = <1>;
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <25000000>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       uboot:  partition@0 {
+                               label = "u-boot";
+                               reg = <0x000000 0x010000>;
+                               read-only;
+                       };
+
+                       art: partition@10000 {
+                               label = "art";
+                               reg = <0x010000 0x010000>;
+                               read-only;
+                       };
+
+                       firmware: partition@20000 {
+                               compatible = "denx,uimage";
+                               label = "firmware";
+                               reg = <0x020000 0x7d0000>;
+                       };
+
+                       nvram: partition@7f0000 {
+                               label = "nvram";
+                               reg = <0x7f0000 0x010000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&uart {
+       status = "okay";
+};
+
+&eth0 {
+       status = "okay";
+       phy-handle = <&swphy0>;
+       mtd-mac-address = <&art 0x0>;
+
+       gmac-config {
+               device = <&gmac>;
+               switch-phy-swap = <1>;
+       };
+};
+
+&eth1 {
+       status = "okay";
+       mtd-mac-address = <&art 0x6>;
+};
+
+&wmac {
+       status = "okay";
+       mtd-cal-data = <&art 0x1000>;
+};
index 2a0c4385cdd17d9604a1e5efa1c170ebeafa1752..55002b44e3f73d72bb29a9c633943d9f0cfe6d18 100644 (file)
        leds {
                compatible = "gpio-leds";
 
-               usb {
-                       label = "gl-ar300m:green:usb";
-                       gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
-                       trigger-sources = <&hub_port>;
-                       linux,default-trigger = "usbport";
-               };
-
                wlan {
                        label = "gl-ar300m:green:wlan";
                        gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
@@ -60,8 +53,8 @@
                };
 
                led_status: status {
-                       label = "gl-ar300m:green:status";
-                       gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+                       label = "gl-ar300m:red:status";
+                       gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
                };
        };
 };
        #address-cells = <1>;
        #size-cells = <0>;
        status = "okay";
-
-       hub_port: port@1 {
-               reg = <1>;
-               #trigger-source-cells = <0>;
-       };
 };
 
 &usb_phy {
@@ -96,7 +84,8 @@
 };
 
 &eth1 {
-       mtd-mac-address = <&art 0x6>;
+       mtd-mac-address = <&art 0x0>;
+       mtd-mac-address-increment = <1>;
 };
 
 &wmac {
index f8a511933c082582e003021582d620e4a5880426..79cd51673abe0079192f978949ab648ecbd8dd8b 100644 (file)
 };
 
 &eth1 {
-       mtd-mac-address = <&art 0x6>;
+       mtd-mac-address = <&art 0x0>;
+       mtd-mac-address-increment = <1>;
 };
 
 &wmac {
index e451b7d67df54995d80ed37861ee2a7bab801013..29fca8b3a9e8e4fa4bb9cce11033a566e3ec8a17 100644 (file)
@@ -8,7 +8,7 @@
 
 / {
        compatible = "tplink,tl-wr841-v11", "qca,qca9533";
-       model = "TP-Link TL-WR841N/ND Version 11";
+       model = "TP-Link TL-WR841N/ND v11";
 
        aliases {
                led-boot = &system_led;
index ac069eed276dd2f6d830414b22854564b52cc1d4..a3284226a04b9ad3e15ba1098556399fdb404c7b 100644 (file)
@@ -8,7 +8,7 @@
 
 / {
        compatible = "tplink,tl-wr841-v9", "qca,qca9533";
-       model = "TP-Link TL-WR841N/ND Version 9";
+       model = "TP-Link TL-WR841N/ND v9";
 
        aliases {
                led-boot = &qss_led;
index 4ce5bfe0a2d888707925fb854859fab07053da46..669e3fb851ff56d999cb0594296cde4af4c02f74 100644 (file)
 
                        wmac: wmac@18100000 {
                                compatible = "qca,qca9530-wmac";
-                               reg = <0x18100000 0x230000>;
+                               reg = <0x18100000 0x20000>;
 
                                interrupt-parent = <&intc2>;
                                interrupts = <0>;
index bfc2545b27adec32f0c89fccc16617c7531dab99..77e5a316dd643cdce33fcc0acaf807ae49bc1d6b 100644 (file)
                                      <0x180f0000 0x100>,  /* CTRL */
                                      <0x14000000 0x1000>; /* CFG */
                                reg-names = "crp_base", "ctrl_base", "cfg_base";
-                               ranges = <0x2000000 0 0x10000000 0x10000000 0 0x04000000        /* pci memory */
+                               ranges = <0x2000000 0 0x10000000 0x10000000 0 0x02000000        /* pci memory */
                                          0x1000000 0 0x00000000 0x0000000 0 0x000001>;         /* io space */
                                interrupt-parent = <&intc2>;
                                interrupts = <1>;
                                      <0x16000000 0x1000>; /* CFG */
                                reg-names = "crp_base", "ctrl_base", "cfg_base";
                                ranges = <0x2000000 0 0x12000000 0x12000000 0 0x02000000        /* pci memory */
-                                         0x1000000 0 0x00000000 0x0000000 0 0x000001>;         /* io space */
+                                         0x1000000 0 0x00000000 0x0000001 0 0x000001>;         /* io space */
                                interrupt-parent = <&intc3>;
                                interrupts = <0>;
 
index 26d969b592936bd71367c3615e3e1aeea7d20d06..995ecb3b73790acf11b41272ecad825bb32fe550 100644 (file)
@@ -21,7 +21,7 @@
                bootargs = "console=ttyS0,115200n8";
        };
 
-       gpio-leds {
+       leds {
                compatible = "gpio-leds";
 
                power: power {
@@ -46,7 +46,7 @@
                };
        };
 
-       gpio-keys-polled {
+       keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
index 22a23f97aec5bffc8e8fabf2b51da25e3f123b33..86b97437ea140e867e1b724bcc8639e52d587fd8 100644 (file)
@@ -18,7 +18,7 @@
                bootargs = "console=ttyS0,115200n8";
        };
 
-       leds {
+       leds: leds {
                compatible = "gpio-leds";
 
                power: power {
                        default-state = "on";
                };
 
-               copy {
-                       label = "iodata:green:copy";
-                       gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
-               };
-
                eco {
                        label = "iodata:green:eco";
                        gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
                };
        };
 
-       keys {
+       keys: keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;
 
-               button_eco {
+               eco {
                        label = "eco";
                        gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
                        linux,code = <BTN_1>;
                        debounce-interval = <60>;
                };
 
-               button_copy {
-                       label = "copy";
-                       gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
-                       linux,code = <BTN_1>;
-                       debounce-interval = <60>;
-               };
-
                wps {
                        label = "wps";
                        gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
        wifi@0,0 {
                compatible = "pci168c,003c";
                reg = <0x0000 0 0 0 0>;
-               qca,no-eeprom;
        };
 };
 
index 7990d9cd57fd5db1f80a0a797d2a02042941cfef..c2fc7abcb3f6c63f0d00d0d276d010b22bf442c0 100644 (file)
        compatible = "iodata,wn-ac1167dgr", "qca,qca9557";
        model = "I-O DATA WN-AC1167DGR";
 };
+
+&leds {
+       copy {
+               label = "iodata:green:copy";
+               gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&keys {
+       copy {
+               label = "copy";
+               gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+               linux,code = <BTN_1>;
+               debounce-interval = <60>;
+       };
+};
diff --git a/target/linux/ath79/dts/qca9557_iodata_wn-ac1600dgr.dts b/target/linux/ath79/dts/qca9557_iodata_wn-ac1600dgr.dts
new file mode 100644 (file)
index 0000000..ef47e1e
--- /dev/null
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "qca9557_iodata_wn-ac-dgr.dtsi"
+
+/ {
+       compatible = "iodata,wn-ac1600dgr", "qca,qca9557";
+       model = "I-O DATA WN-AC1600DGR";
+};
+
+&leds {
+       function {
+               label = "iodata:green:function";
+               gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&keys {
+       function {
+               label = "function";
+               gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+               linux,code = <BTN_1>;
+               debounce-interval = <60>;
+       };
+};
index 3eedec72e7ccf44c85c288c39b12679570d9a658..37ae8fe01fbdc7aeaade7d1e4d675c43d5dcc82f 100644 (file)
        compatible = "iodata,wn-ac1600dgr2", "qca,qca9557";
        model = "I-O DATA WN-AC1600DGR2";
 };
+
+&leds {
+       copy {
+               label = "iodata:green:copy";
+               gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&keys {
+       copy {
+               label = "copy";
+               gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+               linux,code = <BTN_1>;
+               debounce-interval = <60>;
+       };
+};
diff --git a/target/linux/ath79/dts/qca9558_devolo_dvl1750e.dts b/target/linux/ath79/dts/qca9558_devolo_dvl1750e.dts
new file mode 100644 (file)
index 0000000..2570eb7
--- /dev/null
@@ -0,0 +1,83 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "qca9558_devolo_dvl1xxx.dtsi"
+
+/ {
+       compatible = "devolo,dvl1750e", "qca,qca9557";
+       model = "devolo WiFi pro 1750e";
+
+       aliases {
+               led-boot = &status_blue;
+               led-failsafe = &status_red;
+               led-running = &status_blue;
+               led-upgrade = &status_red;
+       };
+
+       keys {
+               wps {
+                       label = "WPS Button";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+
+               usb_eject {
+                       label = "USB Eject Button";
+                       linux,code = <BTN_0>;
+                       linux,input-type = <EV_SW>;
+                       gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               status_blue: status_blue {
+                       label = "dvl1750e:blue:status";
+                       gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+                       default-state = "on";
+               };
+
+               status_red: status_red {
+                       label = "dvl1750e:red:status";
+                       gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       beeper {
+               compatible = "gpio-beeper";
+               gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
+       };
+
+
+       gpio_export {
+               compatible = "gpio-export";
+
+               gpio_usb_power {
+                       gpio-export,name = "devolo:power:usb";
+                       gpio-export,output = <1>;
+                       gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&usb_phy0 {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+};
+
+&mdio1 {
+       status = "okay";
+};
+
+&eth1 {
+       status = "okay";
+};
diff --git a/target/linux/ath79/dts/qca9558_tplink_archer-c5-v1.dts b/target/linux/ath79/dts/qca9558_tplink_archer-c5-v1.dts
new file mode 100644 (file)
index 0000000..05368bd
--- /dev/null
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "qca9558_tplink_archer-c7.dtsi"
+
+/ {
+       compatible = "tplink,archer-c5-v1", "qca,qca9558";
+       model = "TP-Link Archer C5 v1";
+};
+
+&gpio_keys {
+       rfkill {
+               gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
+               linux,code = <KEY_RFKILL>;
+               linux,input-type = <EV_SW>;
+               debounce-interval = <60>;
+       };
+};
+
+&gpio_leds {
+       wlan5g {
+               label = "tp-link:green:wlan5g";
+               gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+               linux,default-trigger = "phy0tpt";
+       };
+};
+
+&mtdparts {
+       uboot: u-boot@0 {
+               reg = <0x000000 0x020000>;
+               read-only;
+       };
+
+       firmware@20000 {
+               reg = <0x020000 0xfd0000>;
+               compatible = "tplink,firmware";
+       };
+
+       art: art@ff0000 {
+               reg = <0xff0000 0x010000>;
+               read-only;
+       };
+};
index 7334a6e7ee0b3e26b100207913fb2ff7054acb3c..c26695d24817f429f54c6ae61917c3b8ea2de5a7 100644 (file)
@@ -8,7 +8,7 @@
 
 / {
        compatible = "tplink,archer-c7-v1", "qca,qca9558";
-       model = "TP-Link Archer C7 Version 1";
+       model = "TP-Link Archer C7 v1";
 };
 
 &gpio_keys {
index f168a1779604fabe7cb0cd825c19da0b3918ea2f..afc1b14b8a4d35963e19929f35af22218017485a 100644 (file)
@@ -8,7 +8,7 @@
 
 / {
        compatible = "tplink,archer-c7-v2", "qca,qca9558";
-       model = "TP-Link Archer C7 Version 2";
+       model = "TP-Link Archer C7 v2";
 };
 
 &gpio_keys {
index a2992c10fe8c96ea9263c4352e13d9d43c16e06b..f49f143d1401745a7a4cb4ac7dcb7f0782afe295 100644 (file)
@@ -8,5 +8,5 @@
 
 / {
        compatible = "tplink,tl-wr1043nd-v2", "qca,qca9557";
-       model = "TP-Link TL-WR1043ND Version 2";
+       model = "TP-Link TL-WR1043ND v2";
 };
index a473cf42eaa95d6ca2490170179bb71d219d4618..5efa417216b13c1c481df15c2c187f7de0834de1 100644 (file)
@@ -8,5 +8,5 @@
 
 / {
        compatible = "tplink,tl-wr1043nd-v3", "qca,qca9557";
-       model = "TP-Link TL-WR1043ND Version 3";
+       model = "TP-Link TL-WR1043ND v3";
 };
index 59a81e4976dd0054a2ba2fdb969da197e732d154..fdc5713fade1b477ffe256eafc17422b4c15f13f 100644 (file)
@@ -8,7 +8,7 @@
 
 / {
        compatible = "tplink,archer-c58-v1", "qca,qca9560";
-       model = "TP-LINK Archer C58 v1";
+       model = "TP-Link Archer C58 v1";
 
        aliases {
                led-boot = &power;
index 5470d9e49ce89934759ea22be34a74b5cafb7fb5..6ac5f3811e3c0b71fdea9d428559fcd5c596ec6b 100644 (file)
@@ -8,7 +8,7 @@
 
 / {
        compatible = "tplink,archer-c59-v1", "qca,qca9560";
-       model = "TP-LINK Archer C59 v1";
+       model = "TP-Link Archer C59 v1";
 
        aliases {
                led-boot = &power;
diff --git a/target/linux/ath79/dts/qca9561_xiaomi_mi-router-4q.dts b/target/linux/ath79/dts/qca9561_xiaomi_mi-router-4q.dts
new file mode 100644 (file)
index 0000000..8b8818c
--- /dev/null
@@ -0,0 +1,153 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "qca956x.dtsi"
+
+/ {
+       compatible = "xiaomi,mi-router-4q", "qca,qca9560";
+       model = "Xiaomi Mi Router 4Q";
+
+       aliases {
+               led-boot = &led_yellow;
+               led-failsafe = &led_red;
+               led-running = &led_blue;
+               led-upgrade = &led_red;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8";
+       };
+
+       keys {
+               compatible = "gpio-keys-polled";
+               poll-interval = <100>;
+
+               reset {
+                       label = "Reset button";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
+               };
+
+               wps {
+                       label = "WPS/MI button";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_red: led_red {
+                       label = "mi-router-4q:red:led";
+                       gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+               };
+
+               led_yellow: led_yellow {
+                       label = "mi-router-4q:yellow:led";
+                       gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+               };
+
+               led_blue: led_blue {
+                       label = "mi-router-4q:blue:led";
+                       gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&uart {
+       status = "okay";
+};
+
+&gpio {
+       status = "okay";
+};
+
+&spi {
+       status = "okay";
+       num-cs = <1>;
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <25000000>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0x000000 0x30000>;
+                               read-only;
+                       };
+
+                       partition@30000 {
+                               label = "nvram";
+                               reg = <0x030000 0x10000>;
+                               read-only;
+                       };
+
+                       partition@40000 {
+                               label = "boarddata";
+                               reg = <0x40000 0x10000>;
+                               read-only;
+                       };
+
+                       partition@50000 {
+                               label = "crash";
+                               reg = <0x50000 0x10000>;
+                               read-only;
+                       };
+
+                       art: partition@60000 {
+                               label = "art";
+                               reg = <0x60000 0x10000>;
+                               read-only;
+                       };
+
+                       partition@70000 {
+                               label = "cfg_bak";
+                               reg = <0x70000 0x20000>;
+                               read-only;
+                       };
+
+                       partition@90000 {
+                               label = "overlay";
+                               reg = <0x90000 0x170000>;
+                               read-only;
+                       };
+
+                       partition@200000 {
+                               compatible = "denx,uimage";
+                               label = "firmware";
+                               reg = <0x200000 0xe00000>;
+                       };
+               };
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       phy-handle = <&swphy4>;
+       mtd-mac-address = <&art 0x0>;
+};
+
+&eth1 {
+       status = "okay";
+
+       mtd-mac-address = <&art 0x6>;
+};
+
+&wmac {
+       status = "okay";
+
+       mtd-cal-data = <&art 0x1000>;
+       mtd-mac-address = <&art 0x0>;
+       mtd-mac-address-increment = <1>;
+};
diff --git a/target/linux/ath79/dts/qca9563_tplink_archer-c2-v3.dts b/target/linux/ath79/dts/qca9563_tplink_archer-c2-v3.dts
new file mode 100644 (file)
index 0000000..c106a63
--- /dev/null
@@ -0,0 +1,185 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "qca956x.dtsi"
+
+/ {
+       compatible = "tplink,archer-c2-v3", "qca,qca9563";
+       model = "TP-Link Archer C2 v3";
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8";
+       };
+
+       aliases {
+               led-boot = &system;
+               led-failsafe = &system;
+               led-running = &system;
+               led-upgrade = &system;
+       };
+
+       gpio_leds: leds {
+               compatible = "gpio-leds";
+
+               system: system {
+                       label = "tp-link:green:system";
+                       gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+                       default-state = "on";
+               };
+
+               wifi2g {
+                       label = "tp-link:green:wifi2g";
+                       gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy1tpt";
+               };
+
+               wifi5g {
+                       label = "tp-link:green:wifi5g";
+                       gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy0tpt";
+               };
+
+               wifi_wps {
+                       label = "tp-link:green:wps";
+                       gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+               };
+
+               wan {
+                       label = "tp-link:green:wan";
+                       gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+               };
+
+               wan_fail {
+                       label = "tp-link:orange:wan";
+                       gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+               };
+
+               lan1 {
+                       label = "tp-link:green:lan1";
+                       gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+               };
+
+               lan2 {
+                       label = "tp-link:green:lan2";
+                       gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+               };
+
+               lan3 {
+                       label = "tp-link:green:lan3";
+                       gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+               };
+
+               lan4 {
+                       label = "tp-link:green:lan4";
+                       gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "Reset button";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+
+               wps {
+                       label = "WPS button";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+       };
+};
+
+&uart {
+       status = "okay";
+};
+
+&spi {
+       status = "okay";
+       num-cs = <1>;
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <25000000>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "factory-uboot";
+                               reg = <0x000000 0x020000>;
+                               read-only;
+                       };
+
+                       partition@20000 {
+                               label = "uboot";
+                               reg = <0x020000 0x10000>;
+                       };
+
+                       partition@30000 {
+                               label = "firmware";
+                               reg = <0x030000 0x7A0000>;
+                               compatible = "denx,uimage";
+                       };
+
+                       info: partition@7e0000 {
+                               label = "product-info";
+                               reg = <0x7e0000 0x010000>;
+                               read-only;
+                       };
+
+                       art: partition@7f0000 {
+                               label = "ART";
+                               reg = <0x7f0000 0x010000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&gpio {
+       status = "okay";
+};
+
+&mdio0 {
+       status = "okay";
+
+       phy-mask = <0>;
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+               phy-mode = "sgmii";
+
+               qca,ar8327-initvals = <
+                       0x04 0x00080080 /* PORT0 PAD MODE CTRL */
+                       0x7c 0x0000007e /* PORT0_STATUS */
+               >;
+       };
+};
+
+&pcie {
+       status = "okay";
+};
+
+&eth0 {
+       status = "okay";
+
+       mtd-mac-address = <&info 0x8>;
+       phy-mode = "sgmii";
+       phy-handle = <&phy0>;
+};
+
+&wmac {
+       status = "okay";
+       mtd-cal-data = <&art 0x1000>;
+       mtd-mac-address = <&info 0x8>;
+};
diff --git a/target/linux/ath79/dts/qca9563_tplink_archer-c7-v4.dts b/target/linux/ath79/dts/qca9563_tplink_archer-c7-v4.dts
new file mode 100644 (file)
index 0000000..db8869c
--- /dev/null
@@ -0,0 +1,271 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "qca956x.dtsi"
+
+/ {
+       compatible = "tplink,archer-c7-v4", "qca,qca9563";
+       model = "TP-Link Archer C7 v4";
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8";
+       };
+
+       aliases {
+               led-boot = &system;
+               led-failsafe = &system;
+               led-running = &system;
+               led-upgrade = &system;
+       };
+
+       led_spi {
+               compatible = "spi-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               gpio-sck = <&gpio 15 GPIO_ACTIVE_HIGH>;         // 74HC595 SRCLK (Serial Clock)
+               gpio-mosi = <&gpio 14 GPIO_ACTIVE_HIGH>;        // 74HC595 SER (Serial)
+               cs-gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;         // 74HC595 RCLK (Register Clock)
+               num-chipselects = <1>;
+
+               led_gpio: led_gpio@0 {
+                       compatible = "fairchild,74hc595";
+                       reg = <0>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       registers-number = <1>;
+                       spi-max-frequency = <10000000>;
+               };
+       };
+
+       gpio-export {
+               compatible = "gpio-export";
+
+               gpio_shift_register_oe {
+                       gpio-export,name = "tp-link:oe:sr";
+                       gpio-export,output = <0>;
+                       gpios = <&gpio 1 GPIO_ACTIVE_LOW>;      // 74HC595 /OE (Output Enable)
+               };
+
+               gpio_shift_register_reset {
+                       gpio-export,name = "tp-link:reset:sr";
+                       gpio-export,output = <1>;
+                       gpios = <&gpio 21 GPIO_ACTIVE_LOW>;     // 74HC595 /SRCLR (Serial Clear)
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               system: system {
+                       label = "tp-link:green:system";
+                       gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+                       default-state = "on";
+               };
+
+               usb1 {
+                       label = "tp-link:green:usb1";
+                       gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+                       trigger-sources = <&hub_port1>;
+                       linux,default-trigger = "usbport";
+               };
+
+               usb2 {
+                       label = "tp-link:green:usb2";
+                       gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+                       trigger-sources = <&hub_port0>;
+                       linux,default-trigger = "usbport";
+               };
+
+               wlan5g {
+                       label = "tp-link:green:wlan5g";
+                       gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy0tpt";
+               };
+
+               wlan2g {
+                       label = "tp-link:green:wlan2g";
+                       gpios = <&led_gpio 7 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy1tpt";
+               };
+
+               wan {
+                       label = "tp-link:green:wan";
+                       gpios = <&led_gpio 5 GPIO_ACTIVE_LOW>;
+               };
+
+               wan_fail {
+                       label = "tp-link:orange:wan";
+                       gpios = <&led_gpio 6 GPIO_ACTIVE_LOW>;
+               };
+
+               lan1 {
+                       label = "tp-link:green:lan1";
+                       gpios = <&led_gpio 4 GPIO_ACTIVE_LOW>;
+               };
+
+               lan2 {
+                       label = "tp-link:green:lan2";
+                       gpios = <&led_gpio 3 GPIO_ACTIVE_LOW>;
+               };
+
+               lan3 {
+                       label = "tp-link:green:lan3";
+                       gpios = <&led_gpio 2 GPIO_ACTIVE_LOW>;
+               };
+
+               lan4 {
+                       label = "tp-link:green:lan4";
+                       gpios = <&led_gpio 1 GPIO_ACTIVE_LOW>;
+               };
+
+               wps {
+                       label = "tp-link:green:wps";
+                       gpios = <&led_gpio 0 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "Reset button";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+
+               wps {
+                       label = "WPS button";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+       };
+
+};
+
+&pcie {
+       status = "okay";
+};
+
+&uart {
+       status = "okay";
+};
+
+&gpio {
+       status = "okay";
+};
+
+&usb_phy0 {
+       status = "okay";
+};
+
+&usb0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       hub_port0: port@1 {
+               reg = <1>;
+               #trigger-source-cells = <0>;
+       };
+};
+
+&usb_phy1 {
+       status = "okay";
+};
+
+&usb1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       hub_port1: port@1 {
+               reg = <1>;
+               #trigger-source-cells = <0>;
+       };
+};
+
+&spi {
+       status = "okay";
+       num-cs = <1>;
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <25000000>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "factory-uboot";
+                               reg = <0x000000 0x020000>;
+                               read-only;
+                       };
+
+                       partition@20000 {
+                               label = "u-boot";
+                               reg = <0x020000 0x020000>;
+                               read-only;
+                       };
+
+                       partition@40000 {
+                               label = "firmware";
+                               reg = <0x040000 0xec0000>;
+                               compatible = "denx,uimage";
+                       };
+
+                       info: partition@f00000 {
+                               label = "config";
+                               reg = <0xf00000 0x0f0000>;
+                               read-only;
+                       };
+
+                       art: partition@ff0000 {
+                               label = "art";
+                               reg = <0xff0000 0x010000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&mdio0 {
+       status = "okay";
+
+       phy-mask = <0>;
+
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+               phy-mode = "sgmii";
+
+               qca,ar8327-initvals = <
+                       0x04 0x80080080 /* PORT0 PAD MODE CTRL */
+                       0x7c 0x0000007e /* PORT0_STATUS */
+                       0x94 0x00000200 /* PORT6_STATUS */
+                       >;
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       pll-data = <0x03000101 0x00000101 0x00001919>;
+
+       phy-mode = "sgmii";
+       mtd-mac-address = <&info 0x8>;
+       phy-handle = <&phy0>;
+};
+
+&wmac {
+       status = "okay";
+       mtd-cal-data = <&art 0x1000>;
+       mtd-mac-address = <&info 0x8>;
+};
index 5a4c4e588eb78badf0b1ec8ef3e41203ae2fda42..e51bb7f834b0ae2a10a08456b97e5678b822a798 100644 (file)
@@ -8,7 +8,7 @@
 
 / {
        compatible = "tplink,tl-wr1043nd-v4", "qca,qca9563";
-       model = "TP-Link TL-WR1043ND Version 4";
+       model = "TP-Link TL-WR1043ND v4";
 };
 
 &gpio_leds {
index 173c16a53dfd41b9f78a4fc4355f25ad9acd3230..77f7670c2b8cb1b40e720228c1b43699c99ebe6a 100644 (file)
@@ -742,6 +742,10 @@ static void ar7240sw_setup_port(struct ar7240sw *as, unsigned port, u8 portmask)
                        portmask = ar7240sw_port_mask(as, AR7240_PORT_CPU);
        }
 
+       /* preserve mirror rx&tx flags */
+       ctrl |= ar7240sw_reg_read(mii, AR7240_REG_PORT_CTRL(port)) &
+               (AR7240_PORT_CTRL_MIRROR_RX | AR7240_PORT_CTRL_MIRROR_TX);
+
        /* allow the port to talk to all other ports, but exclude its
         * own ID to prevent frames from being reflected back to the
         * port that they came from */
index 70ca0248c35f8d8998f32d7fb6d3fc04241491f5..d809bbee802f3ffe6452c0c0129ad0aa7b6d607f 100644 (file)
@@ -805,10 +805,19 @@ err:
 
 static int ag71xx_stop(struct net_device *dev)
 {
+       unsigned long flags;
        struct ag71xx *ag = netdev_priv(dev);
 
        netif_carrier_off(dev);
        phy_stop(ag->phy_dev);
+
+       spin_lock_irqsave(&ag->lock, flags);
+       if (ag->link) {
+               ag->link = 0;
+               ag71xx_link_adjust(ag);
+       }
+       spin_unlock_irqrestore(&ag->lock, flags);
+
        ag71xx_hw_disable(ag);
 
        return 0;
index 734f27e689c9d76abedad8c89f22a24006ba86ae..8f9ba594b1f19591c4cca0b3a86a017ea5ad8fea 100644 (file)
@@ -69,7 +69,6 @@ endef
 ifeq ($(SUBTARGET),generic)
 include ./generic.mk
 include ./generic-tp-link.mk
-include ./generic-ubnt.mk
 endif
 ifeq ($(SUBTARGET),nand)
 include ./nand.mk
index ffb331cf49107bfc790ebf387e437e82c28bae4a..34d5fe3fa1bb0d3d5c68281a16afc42070435bed 100644 (file)
@@ -86,7 +86,7 @@ define Device/tplink-8m
 endef
 
 define Device/tplink-8mlzma
-$(Device/tplink)
+  $(Device/tplink)
   TPLINK_FLASHLAYOUT := 8Mlzma
   IMAGE_SIZE := 7936k
 endef
index be755c7ec08b71a1463c40d2a8aeceb8e206e67a..2d28b47325a5dfc417c45d3f3c6ee8c8e0eb7f58 100644 (file)
@@ -1,54 +1,20 @@
 include ./common-tp-link.mk
 
-define Device/tplink_archer-a7-v5
-  $(Device/tplink-safeloader-uimage)
-  ATH_SOC := qca9563
-  IMAGE_SIZE := 15104k
-  DEVICE_TITLE := TP-LINK Archer A7 v5
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  TPLINK_BOARD_ID := ARCHER-A7-V5
-  BOARDNAME := ARCHER-A7-V5
-  SUPPORTED_DEVICES += archer-a7-v5
-endef
-TARGET_DEVICES += tplink_archer-a7-v5
-
-define Device/tplink_archer-c58-v1
-  $(Device/tplink-safeloader-uimage)
-  ATH_SOC := qca9561
-  IMAGE_SIZE := 7936k
-  DEVICE_TITLE := TP-LINK Archer C58 v1
-  TPLINK_BOARD_ID := ARCHER-C58-V1
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
-  SUPPORTED_DEVICES += archer-c58-v1
-endef
-TARGET_DEVICES += tplink_archer-c58-v1
-
-define Device/tplink_archer-c59-v1
-  $(Device/tplink-safeloader-uimage)
-  ATH_SOC := qca9561
-  IMAGE_SIZE := 14528k
-  DEVICE_TITLE := TP-LINK Archer C59 v1
-  TPLINK_BOARD_ID := ARCHER-C59-V1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca9888-ct
-  SUPPORTED_DEVICES += archer-c59-v1
-endef
-TARGET_DEVICES += tplink_archer-c59-v1
-
-define Device/tplink_archer-c6-v2
-  $(Device/tplink-safeloader-uimage)
-  ATH_SOC := qca9563
-  IMAGE_SIZE := 7808k
-  DEVICE_TITLE := TP-LINK Archer C6 v2
-  TPLINK_BOARD_ID := ARCHER-C6-V2
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
+define Device/tplink_archer-c5-v1
+  $(Device/tplink-16mlzma)
+  ATH_SOC := qca9558
+  DEVICE_TITLE := TP-Link Archer C5 v1
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
+  TPLINK_HWID := 0xc5000001
+  SUPPORTED_DEVICES += archer-c5
 endef
-TARGET_DEVICES += tplink_archer-c6-v2
+TARGET_DEVICES += tplink_archer-c5-v1
 
 define Device/tplink_archer-c7-v1
   $(Device/tplink-8mlzma)
   ATH_SOC := qca9558
-  DEVICE_TITLE := TP-LINK Archer C7 v1
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
+  DEVICE_TITLE := TP-Link Archer C7 v1
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x75000001
 endef
 TARGET_DEVICES += tplink_archer-c7-v1
@@ -56,8 +22,8 @@ TARGET_DEVICES += tplink_archer-c7-v1
 define Device/tplink_archer-c7-v2
   $(Device/tplink-16mlzma)
   ATH_SOC := qca9558
-  DEVICE_TITLE := TP-LINK Archer C7 v2
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
+  DEVICE_TITLE := TP-Link Archer C7 v2
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0xc7000002
   IMAGES += factory-us.bin factory-eu.bin
   IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US
@@ -65,49 +31,20 @@ define Device/tplink_archer-c7-v2
 endef
 TARGET_DEVICES += tplink_archer-c7-v2
 
-define Device/tplink_archer-c7-v5
-  $(Device/tplink-safeloader-uimage)
-  ATH_SOC := qca9563
-  IMAGE_SIZE := 15360k
-  DEVICE_TITLE := TP-LINK Archer C7 v5
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  TPLINK_BOARD_ID := ARCHER-C7-V5
-  BOARDNAME := ARCHER-C7-V5
-  SUPPORTED_DEVICES += archer-c7-v5
-endef
-TARGET_DEVICES += tplink_archer-c7-v5
-
-define Device/tplink_re450-v2
-  $(Device/tplink)
-  ATH_SOC := qca9563
-  IMAGE_SIZE := 6016k
-  DEVICE_TITLE := TP-LINK RE450 v2
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  TPLINK_HWID := 0x0
-  TPLINK_HWREV := 0
-  TPLINK_BOARD_ID := RE450-V2
-  LOADER_TYPE := elf
-  KERNEL := kernel-bin | append-dtb | lzma | tplink-v1-header -O
-  IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \
-    append-metadata | check-size $$$$(IMAGE_SIZE)
-  IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
-endef
-TARGET_DEVICES += tplink_re450-v2
-
 define Device/tplink_tl-wdr3600
   $(Device/tplink-8mlzma)
   ATH_SOC := ar9344
-  DEVICE_TITLE := TP-LINK TL-WDR3600
+  DEVICE_TITLE := TP-Link TL-WDR3600
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x36000001
-  SUPPORTED_DEVICES += tl-wdr3600
+  SUPPORTED_DEVICES += tl-wdr4300
 endef
 TARGET_DEVICES += tplink_tl-wdr3600
 
 define Device/tplink_tl-wdr4300
   $(Device/tplink-8mlzma)
   ATH_SOC := ar9344
-  DEVICE_TITLE := TP-LINK TL-WDR4300
+  DEVICE_TITLE := TP-Link TL-WDR4300
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x43000001
   SUPPORTED_DEVICES += tl-wdr4300
@@ -117,7 +54,7 @@ TARGET_DEVICES += tplink_tl-wdr4300
 define Device/tplink_tl-wdr4900-v2
   $(Device/tplink-8mlzma)
   ATH_SOC := qca9558
-  DEVICE_TITLE := TP-LINK TL-WDR4900 v2
+  DEVICE_TITLE := TP-Link TL-WDR4900 v2
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x49000002
 endef
@@ -126,7 +63,7 @@ TARGET_DEVICES += tplink_tl-wdr4900-v2
 define Device/tplink_tl-wr1043nd-v1
   $(Device/tplink-8m)
   ATH_SOC := ar9132
-  DEVICE_TITLE := TP-LINK TL-WR1043N/ND v1
+  DEVICE_TITLE := TP-Link TL-WR1043N/ND v1
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x10430001
   SUPPORTED_DEVICES += tl-wr1043nd
@@ -136,7 +73,7 @@ TARGET_DEVICES += tplink_tl-wr1043nd-v1
 define Device/tplink_tl-wr810n-v1
   $(Device/tplink-8mlzma)
   ATH_SOC := qca9531
-  DEVICE_TITLE := TP-LINK TL-WR810N v1
+  DEVICE_TITLE := TP-Link TL-WR810N v1
   TPLINK_HWID := 0x8100001
   DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
 endef
@@ -145,7 +82,7 @@ TARGET_DEVICES += tplink_tl-wr810n-v1
 define Device/tplink_tl-wr810n-v2
   $(Device/tplink-8mlzma)
   ATH_SOC := qca9533
-  DEVICE_TITLE := TP-LINK TL-WR810N v2
+  DEVICE_TITLE := TP-Link TL-WR810N v2
   TPLINK_HWID := 0x8100002
 endef
 TARGET_DEVICES += tplink_tl-wr810n-v2
@@ -153,7 +90,7 @@ TARGET_DEVICES += tplink_tl-wr810n-v2
 define Device/tplink_tl-wr842n-v1
   $(Device/tplink-8m)
   ATH_SOC := ar7241
-  DEVICE_TITLE := TP-LINK TL-WR842N/ND v1
+  DEVICE_TITLE := TP-Link TL-WR842N/ND v1
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x8420001
 endef
@@ -162,7 +99,7 @@ TARGET_DEVICES += tplink_tl-wr842n-v1
 define Device/tplink_tl-wr842n-v2
   $(Device/tplink-8mlzma)
   ATH_SOC := ar9341
-  DEVICE_TITLE := TP-LINK TL-WR842N/ND v2
+  DEVICE_TITLE := TP-Link TL-WR842N/ND v2
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x8420002
   SUPPORTED_DEVICES += tl-wr842n-v2
@@ -172,7 +109,7 @@ TARGET_DEVICES += tplink_tl-wr842n-v2
 define Device/tplink_tl-wr1043nd-v2
   $(Device/tplink-8mlzma)
   ATH_SOC := qca9558
-  DEVICE_TITLE := TP-LINK TL-WR1043N/ND v2
+  DEVICE_TITLE := TP-Link TL-WR1043N/ND v2
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x10430002
   SUPPORTED_DEVICES += tl-wr1043nd-v2
@@ -182,7 +119,7 @@ TARGET_DEVICES += tplink_tl-wr1043nd-v2
 define Device/tplink_tl-wr1043nd-v3
   $(Device/tplink-8mlzma)
   ATH_SOC := qca9558
-  DEVICE_TITLE := TP-LINK TL-WR1043N/ND v3
+  DEVICE_TITLE := TP-Link TL-WR1043N/ND v3
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x10430003
   SUPPORTED_DEVICES += tl-wr1043nd-v3
@@ -193,7 +130,7 @@ define Device/tplink_tl-wr1043nd-v4
   $(Device/tplink)
   ATH_SOC := qca9563
   IMAGE_SIZE := 15552k
-  DEVICE_TITLE := TP-LINK TL-WR1043N/ND v4
+  DEVICE_TITLE := TP-Link TL-WR1043N/ND v4
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x10430004
   TPLINK_BOARD_ID := TLWR1043NDV4
@@ -208,7 +145,7 @@ TARGET_DEVICES += tplink_tl-wr1043nd-v4
 define Device/tplink_tl-wr2543-v1
   $(Device/tplink-8mlzma)
   ATH_SOC := ar7242
-  DEVICE_TITLE := TP-LINK TL-WR2543N/ND v1
+  DEVICE_TITLE := TP-Link TL-WR2543N/ND v1
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x25430001
   IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade -v 3.13.99 | \
diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk
deleted file mode 100644 (file)
index 681c14d..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-DEVICE_VARS += UBNT_BOARD UBNT_CHIP UBNT_TYPE UBNT_VERSION UBNT_REVISION
-
-# On M (XW) devices the U-Boot as of version 1.1.4-s1039 doesn't like
-# VERSION_DIST being on the place of major(?) version number, so we need to
-# use some number.
-UBNT_REVISION := $(VERSION_DIST)-$(REVISION)
-
-# mkubntimage is using the kernel image direct
-# routerboard creates partitions out of the ubnt header
-define Build/mkubntimage
-       -$(STAGING_DIR_HOST)/bin/mkfwimage \
-               -B $(UBNT_BOARD) -v $(UBNT_TYPE).$(UBNT_CHIP).v6.0.0-$(VERSION_DIST)-$(REVISION) \
-               -k $(IMAGE_KERNEL) \
-               -r $@ \
-               -o $@
-endef
-
-# all UBNT XM/WA devices expect the kernel image to have 1024k while flash, when
-# booting the image, the size doesn't matter.
-define Build/mkubntimage-split
-       -[ -f $@ ] && ( \
-       dd if=$@ of=$@.old1 bs=1024k count=1; \
-       dd if=$@ of=$@.old2 bs=1024k skip=1; \
-       $(STAGING_DIR_HOST)/bin/mkfwimage \
-               -B $(UBNT_BOARD) -v $(UBNT_TYPE).$(UBNT_CHIP).v$(UBNT_VERSION)-$(UBNT_REVISION) \
-               -k $@.old1 \
-               -r $@.old2 \
-               -o $@; \
-       rm $@.old1 $@.old2 )
-endef
-
-# UBNT_BOARD e.g. one of (XS2, XS5, RS, XM)
-# UBNT_TYPE e.g. one of (BZ, XM, XW)
-# UBNT_CHIP e.g. one of (ar7240, ar933x, ar934x)
-# UBNT_VERSION e.g. one of (6.0.0, 8.5.0)
-define Device/ubnt
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
-  IMAGE_SIZE := 7552k
-  UBNT_BOARD := XM
-  UBNT_VERSION := 6.0.0
-  IMAGES += factory.bin
-  IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
-       append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | mkubntimage-split
-endef
-
-define Device/ubnt-xm
-  $(Device/ubnt)
-  DEVICE_PACKAGES += kmod-usb-ohci rssileds
-  UBNT_TYPE := XM
-  UBNT_CHIP := ar7240
-  ATH_SOC := ar7241
-  KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma | uImage lzma
-endef
-
-define Device/ubnt-bz
-  $(Device/ubnt)
-  UBNT_TYPE := BZ
-  UBNT_CHIP := ar7240
-  ATH_SOC := ar7241
-endef
-
-define Device/ubnt-wa
-  $(Device/ubnt)
-  UBNT_TYPE := WA
-  UBNT_CHIP := ar934x
-  UBNT_BOARD := WA
-  UBNT_VERSION := 8.5.0
-  ATH_SOC := ar9342
-endef
-
-define Device/ubnt-xw
-  $(Device/ubnt)
-  UBNT_TYPE := XW
-  UBNT_CHIP := ar934x
-  UBNT_BOARD := XM
-  UBNT_VERSION := 6.0.4
-  UBNT_REVISION := 42.$(UBNT_REVISION)
-  ATH_SOC := ar9342
-endef
-
-define Device/ubnt_airrouter
-  $(Device/ubnt-xm)
-  DEVICE_TITLE := Ubiquiti AirRouter
-  SUPPORTED_DEVICES += airrouter
-endef
-TARGET_DEVICES += ubnt_airrouter
-
-define Device/ubnt_bullet-m
-  $(Device/ubnt-xm)
-  DEVICE_TITLE := Ubiquiti Bullet-M
-  SUPPORTED_DEVICES += bullet-m
-endef
-TARGET_DEVICES += ubnt_bullet-m
-
-define Device/ubnt_bullet-m-xw
-  $(Device/ubnt-xw)
-  DEVICE_TITLE := Ubiquiti Bullet-M (XW)
-  SUPPORTED_DEVICES += bullet-m-xw
-endef
-TARGET_DEVICES += ubnt_bullet-m-xw
-
-define Device/ubnt_rocket-m
-  $(Device/ubnt-xm)
-  DEVICE_TITLE := Ubiquiti Rocket-M
-  SUPPORTED_DEVICES += rocket-m
-endef
-TARGET_DEVICES += ubnt_rocket-m
-
-define Device/ubnt_nano-m
-  $(Device/ubnt-xm)
-  DEVICE_TITLE := Ubiquiti Nano-M
-  SUPPORTED_DEVICES += nano-m
-endef
-TARGET_DEVICES += ubnt_nano-m
-
-define Device/ubnt_lap-120
-  $(Device/ubnt-wa)
-  DEVICE_TITLE := Ubiquiti LiteAP ac (LAP-120)
-  DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  IMAGE_SIZE := 15744k
-  IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | mkubntimage-split
-endef
-TARGET_DEVICES += ubnt_lap-120
-
-define Device/ubnt_nanostation-ac
-  $(Device/ubnt-wa)
-  DEVICE_TITLE := Ubiquiti Nanostation AC
-  DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  IMAGE_SIZE := 15744k
-  IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | mkubntimage-split
-endef
-TARGET_DEVICES += ubnt_nanostation-ac
-
-define Device/ubnt_nanostation-ac-loco
-  $(Device/ubnt-wa)
-  DEVICE_TITLE := Ubiquiti Nanostation AC loco
-  DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  IMAGE_SIZE := 15744k
-  IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | mkubntimage-split
-endef
-TARGET_DEVICES += ubnt_nanostation-ac-loco
-
-define Device/ubnt_unifi
-  $(Device/ubnt-bz)
-  DEVICE_TITLE := Ubiquiti UniFi
-  SUPPORTED_DEVICES += unifi
-endef
-TARGET_DEVICES += ubnt_unifi
-
-define Device/ubnt_unifiac
-  ATH_SOC := qca9563
-  IMAGE_SIZE := 7744k
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-endef
-
-
-define Device/ubnt_unifiac-lite
-  $(Device/ubnt_unifiac)
-  DEVICE_TITLE := Ubiquiti UniFi AC-Lite
-  SUPPORTED_DEVICES += ubnt-unifiac-lite
-endef
-TARGET_DEVICES += ubnt_unifiac-lite
-
-define Device/ubnt_unifiac-mesh
-  $(Device/ubnt_unifiac)
-  DEVICE_TITLE := Ubiquiti UniFi AC-Mesh
-  SUPPORTED_DEVICES += ubnt-unifiac-mesh
-endef
-TARGET_DEVICES += ubnt_unifiac-mesh
-
-define Device/ubnt_unifiac-mesh-pro
-  $(Device/ubnt_unifiac)
-  DEVICE_TITLE := Ubiquiti UniFi AC-Mesh Pro
-  SUPPORTED_DEVICES += ubnt-unifiac-mesh-pro
-endef
-TARGET_DEVICES += ubnt_unifiac-mesh-pro
-
-define Device/ubnt_unifiac-pro
-  $(Device/ubnt_unifiac)
-  DEVICE_TITLE := Ubiquiti UniFi AC-Pro
-  DEVICE_PACKAGES += kmod-usb-core kmod-usb2
-  SUPPORTED_DEVICES += ubnt-unifiac-pro
-endef
-TARGET_DEVICES += ubnt_unifiac-pro
-
-define Device/ubnt_routerstation_common
-  DEVICE_PACKAGES := -kmod-ath9k -wpad-mini -uboot-envtools kmod-usb-ohci kmod-usb2 fconfig
-  ATH_SOC := ar7161
-  IMAGE_SIZE := 16128k
-  IMAGES += factory.bin
-  IMAGE/factory.bin := append-rootfs | pad-rootfs | mkubntimage | check-size $$$$(IMAGE_SIZE)
-  IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | combined-image | check-size $$$$(IMAGE_SIZE) | append-metadata
-  KERNEL := kernel-bin | append-dtb | lzma | pad-to $$(BLOCKSIZE)
-  KERNEL_INITRAMFS := kernel-bin | append-dtb
-endef
-
-define Device/ubnt_routerstation
-  $(Device/ubnt_routerstation_common)
-  DEVICE_TITLE := Ubiquiti RouterStation
-  UBNT_BOARD := RS
-  UBNT_TYPE := RSx
-  UBNT_CHIP := ar7100
-  DEVICE_PACKAGES += -swconfig
-endef
-TARGET_DEVICES += ubnt_routerstation
-
-define Device/ubnt_routerstation-pro
-  $(Device/ubnt_routerstation_common)
-  DEVICE_TITLE := Ubiquiti RouterStation Pro
-  UBNT_BOARD := RSPRO
-  UBNT_TYPE := RSPRO
-  UBNT_CHIP := ar7100pro
-endef
-TARGET_DEVICES += ubnt_routerstation-pro
index 22ba5305b1f9fa5719bf44eb9b92a5efa11f712d..51986964356902c3ce83c7ed7e5dd29acb827e66 100644 (file)
@@ -92,6 +92,7 @@ define Device/avm_fritz4020
       append-squashfs-fakeroot-be | pad-to 256 | \
       append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
   DEVICE_PACKAGES := fritz-tffs
+  SUPPORTED_DEVICES += fritz4020
 endef
 TARGET_DEVICES += avm_fritz4020
 
@@ -162,37 +163,13 @@ define Device/comfast_cf-e110n-v2
 endef
 TARGET_DEVICES += comfast_cf-e110n-v2
 
-define Device/devolo_dvl1200e
-  ATH_SOC := qca9558
-  DEVICE_TITLE := devolo WiFi pro 1200e
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  IMAGE_SIZE := 15936k
-endef
-TARGET_DEVICES += devolo_dvl1200e
-
-define Device/devolo_dvl1200i
-  ATH_SOC := qca9558
-  DEVICE_TITLE := devolo WiFi pro 1200i
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  IMAGE_SIZE := 15936k
-endef
-TARGET_DEVICES += devolo_dvl1200i
-
-define Device/devolo_dvl1750c
-  ATH_SOC := qca9558
-  DEVICE_TITLE := devolo WiFi pro 1750c
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  IMAGE_SIZE := 15936k
-endef
-TARGET_DEVICES += devolo_dvl1750c
-
-define Device/devolo_dvl1750i
-  ATH_SOC := qca9558
-  DEVICE_TITLE := devolo WiFi pro 1750i
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  IMAGE_SIZE := 15936k
+define Device/comfast_cf-e120a-v3
+  ATH_SOC := ar9344
+  DEVICE_TITLE := COMFAST CF-E120A v3
+  DEVICE_PACKAGES := rssileds kmod-leds-gpio -uboot-envtools
+  IMAGE_SIZE := 8000k
 endef
-TARGET_DEVICES += devolo_dvl1750i
+TARGET_DEVICES += comfast_cf-e120a-v3
 
 define Device/dlink_dir-825-b1
   ATH_SOC := ar7161
@@ -232,27 +209,6 @@ define Device/dlink_dir-835-a1
 endef
 TARGET_DEVICES += dlink_dir-835-a1
 
-define Device/dlink_dir-859-a1
-  $(Device/seama)
-  ATH_SOC := qca9563
-  DEVICE_TITLE := D-LINK DIR-859 A1
-  IMAGE_SIZE := 15872k
-  DEVICE_PACKAGES :=  kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  SEAMA_SIGNATURE := wrgac37_dlink.2013gui_dir859
-  SUPPORTED_DEVICES += dir-859-a1
-endef
-TARGET_DEVICES += dlink_dir-859-a1
-
-define Device/elecom_wrc-1750ghbk2-i
-  ATH_SOC := qca9563
-  DEVICE_TITLE := ELECOM WRC-1750GHBK2-I/C
-  IMAGE_SIZE := 15808k
-  KERNEL_INITRAMFS := $$(KERNEL) | pad-to 2 | \
-       add-elecom-factory-initramfs RN68 WRC-1750GHBK2
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-endef
-TARGET_DEVICES += elecom_wrc-1750ghbk2-i
-
 define Device/elecom_wrc-300ghbk2-i
   ATH_SOC := qca9563
   DEVICE_TITLE := ELECOM WRC-300GHBK2-I
@@ -270,14 +226,6 @@ define Device/embeddedwireless_dorin
 endef
 TARGET_DEVICES += embeddedwireless_dorin
 
-define Device/engenius_ews511ap
-  ATH_SOC := qca9531
-  DEVICE_TITLE := EnGenius EWS511AP
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct
-  IMAGE_SIZE := 16000k
-endef
-TARGET_DEVICES += engenius_ews511ap
-
 define Device/etactica_eg200
   ATH_SOC := ar9331
   DEVICE_TITLE := eTactica EG200
@@ -308,7 +256,7 @@ TARGET_DEVICES += glinet_gl-ar300m-nor
 define Device/glinet_gl-ar750s
   ATH_SOC := qca9563
   DEVICE_TITLE := GL.iNet GL-AR750S
-  DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
+  DEVICE_PACKAGES := kmod-usb2
   IMAGE_SIZE := 16000k
   SUPPORTED_DEVICES += gl-ar750s
 endef
@@ -317,7 +265,7 @@ TARGET_DEVICES += glinet_gl-ar750s
 define Device/glinet_gl-x750
   ATH_SOC := qca9531
   DEVICE_TITLE := GL.iNet GL-X750
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9887-ct
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
   IMAGE_SIZE := 16000k
 endef
 TARGET_DEVICES += glinet_gl-x750
@@ -329,30 +277,6 @@ define Device/iodata_etg3-r
 endef
 TARGET_DEVICES += iodata_etg3-r
 
-define Device/iodata_wn-ac1167dgr
-  ATH_SOC := qca9557
-  DEVICE_TITLE := I-O DATA WN-AC1167DGR
-  IMAGE_SIZE := 14656k
-  IMAGES += factory.bin
-  IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
-    append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
-    senao-header -r 0x30a -p 0x61 -t 2
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
-endef
-TARGET_DEVICES += iodata_wn-ac1167dgr
-
-define Device/iodata_wn-ac1600dgr2
-  ATH_SOC := qca9557
-  DEVICE_TITLE := I-O DATA WN-AC1600DGR2
-  IMAGE_SIZE := 14656k
-  IMAGES += factory.bin
-  IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
-    append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
-    senao-header -r 0x30a -p 0x60 -t 2 -v 200
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
-endef
-TARGET_DEVICES += iodata_wn-ac1600dgr2
-
 define Device/iodata_wn-ag300dgr
   ATH_SOC := ar1022
   DEVICE_TITLE := I-O DATA WN-AG300DGR
@@ -365,29 +289,6 @@ define Device/iodata_wn-ag300dgr
 endef
 TARGET_DEVICES += iodata_wn-ag300dgr
 
-define Device/nec_wg800hp
-  ATH_SOC := qca9563
-  DEVICE_TITLE := NEC Aterm WG800HP
-  IMAGE_SIZE := 7104k
-  IMAGES += factory.bin
-  IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
-    append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
-    xor-image -p 6A57190601121E4C004C1E1201061957 -x | \
-    nec-fw LASER_ATERM
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct-htt
-endef
-TARGET_DEVICES += nec_wg800hp
-
-define Device/ocedo_koala
-  ATH_SOC := qca9558
-  DEVICE_TITLE := OCEDO Koala
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
-  SUPPORTED_DEVICES += koala
-  IMAGE_SIZE := 7424k
-  IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
-endef
-TARGET_DEVICES += ocedo_koala
-
 define Device/ocedo_raccoon
   ATH_SOC := ar9344
   DEVICE_TITLE := OCEDO Raccoon
@@ -396,15 +297,6 @@ define Device/ocedo_raccoon
 endef
 TARGET_DEVICES += ocedo_raccoon
 
-define Device/openmesh_om5p-ac-v2
-  ATH_SOC := qca9558
-  DEVICE_TITLE := OpenMesh OM5P-AC v2
-  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct om-watchdog
-  IMAGE_SIZE := 7808k
-  SUPPORTED_DEVICES += om5p-acv2
-endef
-TARGET_DEVICES += openmesh_om5p-ac-v2
-
 define Device/pcs_cap324
   ATH_SOC := ar9344
   DEVICE_TITLE := PowerCloud Systems CAP324
@@ -483,15 +375,6 @@ define Device/netgear_wndr3800
 endef
 TARGET_DEVICES += netgear_wndr3800
 
-define Device/phicomm_k2t
-  ATH_SOC := qca9563
-  DEVICE_TITLE := Phicomm K2T
-  IMAGE_SIZE := 15744k
-  IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
-  DEVICE_PACKAGES := kmod-leds-reset kmod-ath10k-ct ath10k-firmware-qca9888-ct
-endef
-TARGET_DEVICES += phicomm_k2t
-
 define Device/rosinson_wr818
   ATH_SOC := qca9563
   DEVICE_TITLE := ROSINSON WR818
@@ -520,3 +403,10 @@ define Device/winchannel_wb2000
   DEVICE_PACKAGES := kmod-i2c-core kmod-i2c-gpio kmod-rtc-ds1307 kmod-usb2 kmod-usb-ledtrig-usbport
 endef
 TARGET_DEVICES += winchannel_wb2000
+
+define Device/xiaomi_mi-router-4q
+  ATH_SOC := qca9561
+  DEVICE_TITLE := Xiaomi Mi Router 4Q
+  IMAGE_SIZE := 14336k
+endef
+TARGET_DEVICES += xiaomi_mi-router-4q
index a7a65878896a57b147166a81792150ac266ff51b..8847ca57e5f13ca568300b55f457c2d0184ba970 100644 (file)
@@ -14,7 +14,7 @@ TARGET_DEVICES += tplink_tl-mr10u
 define Device/tplink_tl-mr3020-v1
   $(Device/tplink-4mlzma)
   ATH_SOC := ar9331
-  DEVICE_TITLE := TP-LINK TL-MR3020 v1
+  DEVICE_TITLE := TP-Link TL-MR3020 v1
   DEVICE_PACKAGES := kmod-usb-core kmod-usb-chipidea2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x30200001
   SUPPORTED_DEVICES += tl-mr3020
@@ -24,7 +24,7 @@ TARGET_DEVICES += tplink_tl-mr3020-v1
 define Device/tplink_tl-mr3040-v2
   $(Device/tplink-4mlzma)
   ATH_SOC := ar9331
-  DEVICE_TITLE := TP-LINK TL-MR3040 v2
+  DEVICE_TITLE := TP-Link TL-MR3040 v2
   DEVICE_PACKAGES := kmod-usb-core kmod-usb-chipidea2 kmod-usb-ledtrig-usbport
   TPLINK_HWID := 0x30400002
   SUPPORTED_DEVICES += tl-mr3040-v2
@@ -85,14 +85,14 @@ define Device/tplink_tl-wr740n-v3
 endef
 TARGET_DEVICES += tplink_tl-wr740n-v3
 
-define Device/tplink_tl-wr740nd-v4
+define Device/tplink_tl-wr740n-v4
   $(Device/tplink-4mlzma)
   ATH_SOC := ar9331
-  DEVICE_TITLE := TP-LINK TL-WR740N/ND v4
+  DEVICE_TITLE := TP-Link TL-WR740N v4
   TPLINK_HWID := 0x07400004
   SUPPORTED_DEVICES += tl-wr740n-v4
 endef
-TARGET_DEVICES += tplink_tl-wr740nd-v4
+TARGET_DEVICES += tplink_tl-wr740n-v4
 
 define Device/tplink_tl-wr741-v1
   $(Device/tplink-4m)
@@ -105,7 +105,7 @@ TARGET_DEVICES += tplink_tl-wr741-v1
 define Device/tplink_tl-wr741nd-v4
   $(Device/tplink-4mlzma)
   ATH_SOC := ar9331
-  DEVICE_TITLE := TP-LINK TL-WR741N/ND v4
+  DEVICE_TITLE := TP-Link TL-WR741N/ND v4
   TPLINK_HWID := 0x07410004
   SUPPORTED_DEVICES += tl-wr741n-v4
 endef
@@ -130,7 +130,7 @@ TARGET_DEVICES += tplink_tl-wr841-v5
 define Device/tplink_tl-wr841-v7
   $(Device/tplink-4m)
   ATH_SOC := ar7241
-  DEVICE_TITLE := TP-LINK TL-WR841N/ND v7
+  DEVICE_TITLE := TP-Link TL-WR841N/ND v7
   TPLINK_HWID := 0x08410007
   SUPPORTED_DEVICES += tl-wr841-v7
 endef
@@ -139,7 +139,7 @@ TARGET_DEVICES += tplink_tl-wr841-v7
 define Device/tplink_tl-wr841-v8
   $(Device/tplink-4mlzma)
   ATH_SOC := ar9341
-  DEVICE_TITLE := TP-LINK TL-WR841N/ND v8
+  DEVICE_TITLE := TP-Link TL-WR841N/ND v8
   TPLINK_HWID := 0x08410008
   SUPPORTED_DEVICES += tl-wr841n-v8
 endef
@@ -148,7 +148,7 @@ TARGET_DEVICES += tplink_tl-wr841-v8
 define Device/tplink_tl-wr841-v9
   $(Device/tplink-4mlzma)
   ATH_SOC := qca9533
-  DEVICE_TITLE := TP-LINK TL-WR841N/ND v9
+  DEVICE_TITLE := TP-Link TL-WR841N/ND v9
   TPLINK_HWID := 0x08410009
 endef
 TARGET_DEVICES += tplink_tl-wr841-v9
@@ -156,7 +156,7 @@ TARGET_DEVICES += tplink_tl-wr841-v9
 define Device/tplink_tl-wr841-v11
   $(Device/tplink-4mlzma)
   ATH_SOC := qca9533
-  DEVICE_TITLE := TP-LINK TL-WR841N/ND v11
+  DEVICE_TITLE := TP-Link TL-WR841N/ND v11
   TPLINK_HWID := 0x08410011
   IMAGES += factory-us.bin factory-eu.bin
   IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US
index 5dec120b03de18d7429d3b979214e4f664e77553..e43bc97da346a19f999c70723538cd49ef392d6e 100644 (file)
   */
 --- a/net/ipv6/datagram.c
 +++ b/net/ipv6/datagram.c
-@@ -485,7 +485,7 @@ int ipv6_recv_error(struct sock *sk, str
+@@ -486,7 +486,7 @@ int ipv6_recv_error(struct sock *sk, str
                                ipv6_iface_scope_id(&sin->sin6_addr,
                                                    IP6CB(skb)->iif);
                } else {
                                               &sin->sin6_addr);
                        sin->sin6_scope_id = 0;
                }
-@@ -836,12 +836,12 @@ int ip6_datagram_send_ctl(struct net *ne
+@@ -835,12 +835,12 @@ int ip6_datagram_send_ctl(struct net *ne
                        }
  
                        if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
index 7617c2e5f554af27e720ddf134d03dadbde4aaf0..8d91266e244d1edd23fa558701bea10275752027 100644 (file)
@@ -84,10 +84,11 @@ Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
 
 --- a/include/linux/compiler-gcc.h
 +++ b/include/linux/compiler-gcc.h
-@@ -358,3 +358,28 @@
-  * code
-  */
- #define uninitialized_var(x) x = x
+@@ -362,3 +362,30 @@
+ #if GCC_VERSION >= 50100
+ #define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1
+ #endif
++
 +
 +/*
 + * Turn individual warnings and errors on and off locally, depending
@@ -113,6 +114,7 @@ Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
 +#else
 +#define __diag_GCC_8(s)
 +#endif
++
 --- a/include/linux/compiler_types.h
 +++ b/include/linux/compiler_types.h
 @@ -283,4 +283,22 @@ struct ftrace_likely_data {
index 5639497926cb0d8e558a95527a3f481fd05d8d01..915a7f05d16315610eb7fc0fddad58e5c73c20c4 100644 (file)
@@ -55,7 +55,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
        rwlock_t                sk_callback_lock;
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -2742,6 +2742,7 @@ void sock_init_data(struct socket *sock,
+@@ -2743,6 +2743,7 @@ void sock_init_data(struct socket *sock,
  
        sk->sk_max_pacing_rate = ~0U;
        sk->sk_pacing_rate = ~0U;
index fec083dadb651c89992bf5857828249a9a952a4e..ade5c6cc23985a29cb793fc911d7fe546a4c4ed2 100644 (file)
@@ -37,7 +37,7 @@ Reviewed-by: John Gilmore <gnu@toad.com>
  
 -#define       IN_EXPERIMENTAL(a)      ((((long int) (a)) & 0xf0000000) == 0xf0000000)
 -#define       IN_BADCLASS(a)          IN_EXPERIMENTAL((a))
-+#define       IN_BADCLASS(a)          ((((long int) (a) ) == 0xffffffff)
++#define       IN_BADCLASS(a)          (((long int) (a) ) == (long int)0xffffffff)
 +#define       IN_EXPERIMENTAL(a)      IN_BADCLASS((a))
 +
 +#define       IN_CLASSE(a)            ((((long int) (a)) & 0xf0000000) == 0xf0000000)
diff --git a/target/linux/generic/backport-4.14/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch b/target/linux/generic/backport-4.14/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch
deleted file mode 100644 (file)
index faeb3e4..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-From 03556dab1cb02d85b50d7be3ee3a3bac001f5991 Mon Sep 17 00:00:00 2001
-From: Koen Vandeputte <koen.vandeputte@ncentric.com>
-Date: Tue, 18 Dec 2018 12:14:06 +0100
-Subject: [PATCH] arm: cns3xxx: fix writing to wrong PCI registers after
- alignment
-
-Originally, cns3xxx used it's own functions for mapping, reading and writing registers.
-
-Commit 802b7c06adc7 ("ARM: cns3xxx: Convert PCI to use generic config accessors")
-removed the internal PCI config write function in favor of the generic one:
-
-cns3xxx_pci_write_config() --> pci_generic_config_write()
-
-cns3xxx_pci_write_config() expected aligned addresses, being produced by cns3xxx_pci_map_bus()
-while the generic one pci_generic_config_write() actually expects the real address
-as both the function and hardware are capable of byte-aligned writes.
-
-This currently leads to pci_generic_config_write() writing
-to the wrong registers on some ocasions.
-
-First issue seen due to this:
-
-- driver ath9k gets loaded
-- The driver wants to write value 0xA8 to register PCI_LATENCY_TIMER, located at 0x0D
-- cns3xxx_pci_map_bus() aligns the address to 0x0C
-- pci_generic_config_write() effectively writes 0xA8 into register 0x0C (CACHE_LINE_SIZE)
-
-This seems to cause some slight instability when certain PCI devices are used.
-
-Another issue example caused by this this is the PCI bus numbering,
-where the primary bus is higher than the secondary, which is impossible.
-
-Before:
-
-00:00.0 PCI bridge: Cavium, Inc. Device 3400 (rev 01) (prog-if 00 [Normal decode])
-    Flags: bus master, fast devsel, latency 0, IRQ 255
-    Bus: primary=02, secondary=01, subordinate=ff, sec-latency=0
-
-After fix:
-
-00:00.0 PCI bridge: Cavium, Inc. Device 3400 (rev 01) (prog-if 00 [Normal decode])
-    Flags: bus master, fast devsel, latency 0, IRQ 255
-    Bus: primary=00, secondary=01, subordinate=02, sec-latency=0
-
-And very likely some more ..
-
-Fix all by omitting the alignment being done in the mapping function.
-
-Fixes: 802b7c06adc7 ("ARM: cns3xxx: Convert PCI to use generic config accessors")
-Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
-CC: Arnd Bergmann <arnd@arndb.de>
-CC: Bjorn Helgaas <bhelgaas@google.com>
-CC: Krzysztof Halasa <khalasa@piap.pl>
-CC: Olof Johansson <olof@lixom.net>
-CC: Robin Leblon <robin.leblon@ncentric.com>
-CC: Rob Herring <robh@kernel.org>
-CC: Russell King <linux@armlinux.org.uk>
-CC: Tim Harvey <tharvey@gateworks.com>
-CC: stable@vger.kernel.org # v4.0+
----
- arch/arm/mach-cns3xxx/pcie.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/arm/mach-cns3xxx/pcie.c
-+++ b/arch/arm/mach-cns3xxx/pcie.c
-@@ -83,7 +83,7 @@ static void __iomem *cns3xxx_pci_map_bus
-       } else /* remote PCI bus */
-               base = cnspci->cfg1_regs + ((busno & 0xf) << 20);
--      return base + (where & 0xffc) + (devfn << 12);
-+      return base + where + (devfn << 12);
- }
- static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn,
diff --git a/target/linux/generic/backport-4.14/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch b/target/linux/generic/backport-4.14/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch
deleted file mode 100644 (file)
index 45039ce..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-From 649affd04813c43e0a72886517fcfccd63230981 Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Mon, 29 Jun 2015 16:53:03 +0200
-Subject: uapi/if_ether.h: prevent redefinition of struct ethhdr
-
-Musl provides its own ethhdr struct definition. Add a guard to prevent
-its definition of the appropriate musl header has already been included.
-
-glibc does not implement this header, but when glibc will implement this
-they can just define __UAPI_DEF_ETHHDR 0 to make it work with the
-kernel.
-
-Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
----
- include/uapi/linux/if_ether.h    | 3 +++
- include/uapi/linux/libc-compat.h | 6 ++++++
- 2 files changed, 9 insertions(+)
-
---- a/include/uapi/linux/if_ether.h
-+++ b/include/uapi/linux/if_ether.h
-@@ -23,6 +23,7 @@
- #define _UAPI_LINUX_IF_ETHER_H
- #include <linux/types.h>
-+#include <linux/libc-compat.h>
- /*
-  *    IEEE 802.3 Ethernet magic constants.  The frame sizes omit the preamble
-@@ -150,11 +151,13 @@
-  *    This is an Ethernet frame header.
-  */
-+#if __UAPI_DEF_ETHHDR
- struct ethhdr {
-       unsigned char   h_dest[ETH_ALEN];       /* destination eth addr */
-       unsigned char   h_source[ETH_ALEN];     /* source ether addr    */
-       __be16          h_proto;                /* packet type ID field */
- } __attribute__((packed));
-+#endif
- #endif /* _UAPI_LINUX_IF_ETHER_H */
---- a/include/uapi/linux/libc-compat.h
-+++ b/include/uapi/linux/libc-compat.h
-@@ -264,4 +264,10 @@
- #endif /* __GLIBC__ */
-+/* Definitions for if_ether.h */
-+/* allow libcs like musl to deactivate this, glibc does not implement this. */
-+#ifndef __UAPI_DEF_ETHHDR
-+#define __UAPI_DEF_ETHHDR             1
-+#endif
-+
- #endif /* _UAPI_LIBC_COMPAT_H */
index e20ddc2917a61330dda6498a58bffcc298a81427..844ba450d7455c87e72ca7e7346eb15ad658e988 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 
 --- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
 +++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
-@@ -834,6 +834,7 @@ static void clusterip_net_exit(struct ne
+@@ -835,6 +835,7 @@ static void clusterip_net_exit(struct ne
        cn->procdir = NULL;
  #endif
        nf_unregister_net_hook(net, &cip_arp_ops);
diff --git a/target/linux/generic/backport-4.14/420-enable-CONFIG_MMC_SDHCI_IO_ACCESSORS.patch b/target/linux/generic/backport-4.14/420-enable-CONFIG_MMC_SDHCI_IO_ACCESSORS.patch
new file mode 100644 (file)
index 0000000..eabfc64
--- /dev/null
@@ -0,0 +1,23 @@
+From: Vijay Viswanath <vviswana@codeaurora.org>
+Date: Wed, 27 Sep 2017 11:04:42 +0530
+Subject: [PATCH v2 3/4] mmc: Kconfig: Enable CONFIG_MMC_SDHCI_IO_ACCESSORS
+
+Enable CONFIG_MMC_SDHCI_IO_ACCESSORS so that SDHC controller specific
+register read and write APIs, if registered, can be used.
+
+Signed-off-by: Vijay Viswanath <vviswana@codeaurora.org>
+Acked-by: Adrian Hunter <adrian.hunter@intel.com>
+---
+ drivers/mmc/host/Kconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/mmc/host/Kconfig
++++ b/drivers/mmc/host/Kconfig
+@@ -310,6 +310,7 @@ config MMC_SDHCI_BCM_KONA
+       tristate "SDHCI support on Broadcom KONA platform"
+       depends on ARCH_BCM_MOBILE
+       depends on MMC_SDHCI_PLTFM
++      select MMC_SDHCI_IO_ACCESSORS
+       help
+         This selects the Broadcom Kona Secure Digital Host Controller
+         Interface(SDHCI) support.
index 9bd07186d3bf12c197300e3a57fc0a1dba2f68ba..02296276b0991a0afd7aaf7f49b6632a8ad912d4 100644 (file)
@@ -35,7 +35,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
  
  /*
   * MTD methods which simply translate the effective address and pass through
-@@ -514,7 +523,7 @@ static struct mtd_part *allocate_partiti
+@@ -518,7 +527,7 @@ static struct mtd_part *allocate_partiti
        if (!(slave->mtd.flags & MTD_NO_ERASE))
                wr_alignment = slave->mtd.erasesize;
  
@@ -44,7 +44,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
        remainder = do_div(tmp, wr_alignment);
        if ((slave->mtd.flags & MTD_WRITEABLE) && remainder) {
                /* Doesn't start on a boundary of major erase size */
-@@ -525,7 +534,7 @@ static struct mtd_part *allocate_partiti
+@@ -529,7 +538,7 @@ static struct mtd_part *allocate_partiti
                        part->name);
        }
  
index 861e1061e05d9de6ab9d5876f3caf7ce7f21e62a..5d49a406c45200f4bb5050a6dafcb12e7d328f24 100644 (file)
@@ -37,7 +37,7 @@ Reviewed-by: John Gilmore <gnu@toad.com>
  
 -#define       IN_EXPERIMENTAL(a)      ((((long int) (a)) & 0xf0000000) == 0xf0000000)
 -#define       IN_BADCLASS(a)          IN_EXPERIMENTAL((a))
-+#define       IN_BADCLASS(a)          ((((long int) (a) ) == 0xffffffff)
++#define       IN_BADCLASS(a)          (((long int) (a) ) == (long int)0xffffffff)
 +#define       IN_EXPERIMENTAL(a)      IN_BADCLASS((a))
 +
 +#define       IN_CLASSE(a)            ((((long int) (a)) & 0xf0000000) == 0xf0000000)
diff --git a/target/linux/generic/backport-4.19/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch b/target/linux/generic/backport-4.19/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch
deleted file mode 100644 (file)
index faeb3e4..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-From 03556dab1cb02d85b50d7be3ee3a3bac001f5991 Mon Sep 17 00:00:00 2001
-From: Koen Vandeputte <koen.vandeputte@ncentric.com>
-Date: Tue, 18 Dec 2018 12:14:06 +0100
-Subject: [PATCH] arm: cns3xxx: fix writing to wrong PCI registers after
- alignment
-
-Originally, cns3xxx used it's own functions for mapping, reading and writing registers.
-
-Commit 802b7c06adc7 ("ARM: cns3xxx: Convert PCI to use generic config accessors")
-removed the internal PCI config write function in favor of the generic one:
-
-cns3xxx_pci_write_config() --> pci_generic_config_write()
-
-cns3xxx_pci_write_config() expected aligned addresses, being produced by cns3xxx_pci_map_bus()
-while the generic one pci_generic_config_write() actually expects the real address
-as both the function and hardware are capable of byte-aligned writes.
-
-This currently leads to pci_generic_config_write() writing
-to the wrong registers on some ocasions.
-
-First issue seen due to this:
-
-- driver ath9k gets loaded
-- The driver wants to write value 0xA8 to register PCI_LATENCY_TIMER, located at 0x0D
-- cns3xxx_pci_map_bus() aligns the address to 0x0C
-- pci_generic_config_write() effectively writes 0xA8 into register 0x0C (CACHE_LINE_SIZE)
-
-This seems to cause some slight instability when certain PCI devices are used.
-
-Another issue example caused by this this is the PCI bus numbering,
-where the primary bus is higher than the secondary, which is impossible.
-
-Before:
-
-00:00.0 PCI bridge: Cavium, Inc. Device 3400 (rev 01) (prog-if 00 [Normal decode])
-    Flags: bus master, fast devsel, latency 0, IRQ 255
-    Bus: primary=02, secondary=01, subordinate=ff, sec-latency=0
-
-After fix:
-
-00:00.0 PCI bridge: Cavium, Inc. Device 3400 (rev 01) (prog-if 00 [Normal decode])
-    Flags: bus master, fast devsel, latency 0, IRQ 255
-    Bus: primary=00, secondary=01, subordinate=02, sec-latency=0
-
-And very likely some more ..
-
-Fix all by omitting the alignment being done in the mapping function.
-
-Fixes: 802b7c06adc7 ("ARM: cns3xxx: Convert PCI to use generic config accessors")
-Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
-CC: Arnd Bergmann <arnd@arndb.de>
-CC: Bjorn Helgaas <bhelgaas@google.com>
-CC: Krzysztof Halasa <khalasa@piap.pl>
-CC: Olof Johansson <olof@lixom.net>
-CC: Robin Leblon <robin.leblon@ncentric.com>
-CC: Rob Herring <robh@kernel.org>
-CC: Russell King <linux@armlinux.org.uk>
-CC: Tim Harvey <tharvey@gateworks.com>
-CC: stable@vger.kernel.org # v4.0+
----
- arch/arm/mach-cns3xxx/pcie.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/arm/mach-cns3xxx/pcie.c
-+++ b/arch/arm/mach-cns3xxx/pcie.c
-@@ -83,7 +83,7 @@ static void __iomem *cns3xxx_pci_map_bus
-       } else /* remote PCI bus */
-               base = cnspci->cfg1_regs + ((busno & 0xf) << 20);
--      return base + (where & 0xffc) + (devfn << 12);
-+      return base + where + (devfn << 12);
- }
- static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn,
diff --git a/target/linux/generic/backport-4.19/101-arm-cns3xxx-use-actual-size-reads-for-PCIe.patch b/target/linux/generic/backport-4.19/101-arm-cns3xxx-use-actual-size-reads-for-PCIe.patch
new file mode 100644 (file)
index 0000000..2b33843
--- /dev/null
@@ -0,0 +1,46 @@
+From 4cc30de79d293f1e8c5f50ae3a9c005def9564a0 Mon Sep 17 00:00:00 2001
+From: Koen Vandeputte <koen.vandeputte@ncentric.com>
+Date: Mon, 7 Jan 2019 14:14:27 +0100
+Subject: [PATCH 2/2] arm: cns3xxx: use actual size reads for PCIe
+
+commit 802b7c06adc7 ("ARM: cns3xxx: Convert PCI to use generic config accessors")
+reimplemented cns3xxx_pci_read_config() using pci_generic_config_read32(),
+which preserved the property of only doing 32-bit reads.
+
+It also replaced cns3xxx_pci_write_config() with pci_generic_config_write(),
+so it changed writes from always being 32 bits to being the actual size,
+which works just fine.
+
+Due to:
+- The documentation does not mention that only 32 bit access is allowed.
+- Writes are already executed using the actual size
+- Extensive testing shows that 8b, 16b and 32b reads work as intended
+
+It makes perfectly sense to also swap 32 bit reading in favor of actual size.
+
+Fixes: 802b7c06adc7 ("ARM: cns3xxx: Convert PCI to use generic config accessors")
+Suggested-by: Bjorn Helgaas <bhelgaas@google.com>
+Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
+CC: Arnd Bergmann <arnd@arndb.de>
+CC: Krzysztof Halasa <khalasa@piap.pl>
+CC: Olof Johansson <olof@lixom.net>
+CC: Robin Leblon <robin.leblon@ncentric.com>
+CC: Rob Herring <robh@kernel.org>
+CC: Russell King <linux@armlinux.org.uk>
+CC: Tim Harvey <tharvey@gateworks.com>
+CC: stable@vger.kernel.org # v4.0+
+---
+ arch/arm/mach-cns3xxx/pcie.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/mach-cns3xxx/pcie.c
++++ b/arch/arm/mach-cns3xxx/pcie.c
+@@ -93,7 +93,7 @@ static int cns3xxx_pci_read_config(struc
+       u32 mask = (0x1ull << (size * 8)) - 1;
+       int shift = (where % 4) * 8;
+-      ret = pci_generic_config_read32(bus, devfn, where, size, val);
++      ret = pci_generic_config_read(bus, devfn, where, size, val);
+       if (ret == PCIBIOS_SUCCESSFUL && !bus->number && !devfn &&
+           (where & 0xffc) == PCI_CLASS_REVISION)
index ccc7232751f59576b1d6fe685187a2811561845f..4b22ca0e3f69e9250a667454191ba4884087a142 100644 (file)
@@ -84,10 +84,11 @@ Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
 
 --- a/include/linux/compiler-gcc.h
 +++ b/include/linux/compiler-gcc.h
-@@ -334,3 +334,28 @@
-  * code
-  */
- #define uninitialized_var(x) x = x
+@@ -338,3 +338,30 @@
+ #if GCC_VERSION >= 50100
+ #define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1
+ #endif
++
 +
 +/*
 + * Turn individual warnings and errors on and off locally, depending
@@ -113,6 +114,7 @@ Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
 +#else
 +#define __diag_GCC_8(s)
 +#endif
++
 --- a/include/linux/compiler.h
 +++ b/include/linux/compiler.h
 @@ -578,4 +578,23 @@ static __always_inline void __write_once
index 7c36a767c7467fcf0af0ae7bf41c340380ea7371..4b7e8ba75a69c1aa82382b3e1a357f60ec71d02b 100644 (file)
@@ -51,7 +51,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
  #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
 --- a/net/bridge/br_forward.c
 +++ b/net/bridge/br_forward.c
-@@ -174,6 +174,29 @@ out:
+@@ -173,6 +173,29 @@ out:
        return p;
  }
  
@@ -81,7 +81,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
  /* called under rcu_read_lock */
  void br_flood(struct net_bridge *br, struct sk_buff *skb,
              enum br_pkt_type pkt_type, bool local_rcv, bool local_orig)
-@@ -242,10 +265,20 @@ void br_multicast_flood(struct net_bridg
+@@ -241,10 +264,20 @@ void br_multicast_flood(struct net_bridg
                rport = rp ? hlist_entry(rp, struct net_bridge_port, rlist) :
                             NULL;
  
diff --git a/target/linux/generic/backport-4.9/023-1-smsc95xx-Use-skb_cow_head-to-deal-with-cloned-skbs.patch b/target/linux/generic/backport-4.9/023-1-smsc95xx-Use-skb_cow_head-to-deal-with-cloned-skbs.patch
deleted file mode 100644 (file)
index 9fbdfe4..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-From e9156cd26a495a18706e796f02a81fee41ec14f4 Mon Sep 17 00:00:00 2001
-From: James Hughes <james.hughes@raspberrypi.org>
-Date: Wed, 19 Apr 2017 11:13:40 +0100
-Subject: [PATCH] smsc95xx: Use skb_cow_head to deal with cloned skbs
-
-The driver was failing to check that the SKB wasn't cloned
-before adding checksum data.
-Replace existing handling to extend/copy the header buffer
-with skb_cow_head.
-
-Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
-Acked-by: Eric Dumazet <edumazet@google.com>
-Acked-by: Woojung Huh <Woojung.Huh@microchip.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/usb/smsc95xx.c | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
---- a/drivers/net/usb/smsc95xx.c
-+++ b/drivers/net/usb/smsc95xx.c
-@@ -2011,13 +2011,13 @@ static struct sk_buff *smsc95xx_tx_fixup
-       /* We do not advertise SG, so skbs should be already linearized */
-       BUG_ON(skb_shinfo(skb)->nr_frags);
--      if (skb_headroom(skb) < overhead) {
--              struct sk_buff *skb2 = skb_copy_expand(skb,
--                      overhead, 0, flags);
-+      /* Make writable and expand header space by overhead if required */
-+      if (skb_cow_head(skb, overhead)) {
-+              /* Must deallocate here as returning NULL to indicate error
-+               * means the skb won't be deallocated in the caller.
-+               */
-               dev_kfree_skb_any(skb);
--              skb = skb2;
--              if (!skb)
--                      return NULL;
-+              return NULL;
-       }
-       if (csum) {
diff --git a/target/linux/generic/backport-4.9/023-6-ch9200-use-skb_cow_head-to-deal-with-cloned-skbs.patch b/target/linux/generic/backport-4.9/023-6-ch9200-use-skb_cow_head-to-deal-with-cloned-skbs.patch
deleted file mode 100644 (file)
index 83de38b..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From 6bc6895bdd6744e0136eaa4a11fbdb20a7db4e40 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet@google.com>
-Date: Wed, 19 Apr 2017 09:59:25 -0700
-Subject: [PATCH] ch9200: use skb_cow_head() to deal with cloned skbs
-
-We need to ensure there is enough headroom to push extra header,
-but we also need to check if we are allowed to change headers.
-
-skb_cow_head() is the proper helper to deal with this.
-
-Fixes: 4a476bd6d1d9 ("usbnet: New driver for QinHeng CH9200 devices")
-Signed-off-by: Eric Dumazet <edumazet@google.com>
-Cc: James Hughes <james.hughes@raspberrypi.org>
-Cc: Matthew Garrett <mjg59@srcf.ucam.org>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/usb/ch9200.c | 9 ++-------
- 1 file changed, 2 insertions(+), 7 deletions(-)
-
---- a/drivers/net/usb/ch9200.c
-+++ b/drivers/net/usb/ch9200.c
-@@ -254,14 +254,9 @@ static struct sk_buff *ch9200_tx_fixup(s
-       tx_overhead = 0x40;
-       len = skb->len;
--      if (skb_headroom(skb) < tx_overhead) {
--              struct sk_buff *skb2;
--
--              skb2 = skb_copy_expand(skb, tx_overhead, 0, flags);
-+      if (skb_cow_head(skb, tx_overhead)) {
-               dev_kfree_skb_any(skb);
--              skb = skb2;
--              if (!skb)
--                      return NULL;
-+              return NULL;
-       }
-       __skb_push(skb, tx_overhead);
diff --git a/target/linux/generic/backport-4.9/023-7-kaweth-use-skb_cow_head-to-deal-with-cloned-skbs.patch b/target/linux/generic/backport-4.9/023-7-kaweth-use-skb_cow_head-to-deal-with-cloned-skbs.patch
deleted file mode 100644 (file)
index 597f25b..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-From 39fba7835aacda65284a86e611774cbba71dac20 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet@google.com>
-Date: Wed, 19 Apr 2017 09:59:26 -0700
-Subject: [PATCH] kaweth: use skb_cow_head() to deal with cloned skbs
-
-We can use skb_cow_head() to properly deal with clones,
-especially the ones coming from TCP stack that allow their head being
-modified. This avoids a copy.
-
-Signed-off-by: Eric Dumazet <edumazet@google.com>
-Cc: James Hughes <james.hughes@raspberrypi.org>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/usb/kaweth.c | 18 ++++++------------
- 1 file changed, 6 insertions(+), 12 deletions(-)
-
---- a/drivers/net/usb/kaweth.c
-+++ b/drivers/net/usb/kaweth.c
-@@ -803,18 +803,12 @@ static netdev_tx_t kaweth_start_xmit(str
-       }
-       /* We now decide whether we can put our special header into the sk_buff */
--      if (skb_cloned(skb) || skb_headroom(skb) < 2) {
--              /* no such luck - we make our own */
--              struct sk_buff *copied_skb;
--              copied_skb = skb_copy_expand(skb, 2, 0, GFP_ATOMIC);
--              dev_kfree_skb_irq(skb);
--              skb = copied_skb;
--              if (!copied_skb) {
--                      kaweth->stats.tx_errors++;
--                      netif_start_queue(net);
--                      spin_unlock_irq(&kaweth->device_lock);
--                      return NETDEV_TX_OK;
--              }
-+      if (skb_cow_head(skb, 2)) {
-+              kaweth->stats.tx_errors++;
-+              netif_start_queue(net);
-+              spin_unlock_irq(&kaweth->device_lock);
-+              dev_kfree_skb_any(skb);
-+              return NETDEV_TX_OK;
-       }
-       private_header = (__le16 *)__skb_push(skb, 2);
index bedb4b37299aa28c3868d6faf054cc29f5c6e9b2..7741fd749a81cfddff5de15a7d69d700dc8f34d0 100644 (file)
@@ -55,7 +55,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
        rwlock_t                sk_callback_lock;
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -2478,6 +2478,7 @@ void sock_init_data(struct socket *sock,
+@@ -2479,6 +2479,7 @@ void sock_init_data(struct socket *sock,
  
        sk->sk_max_pacing_rate = ~0U;
        sk->sk_pacing_rate = ~0U;
index d1da94b4e68597f66872e84ad244dd5945fccbd5..facc43004e5ebec05d54e0d55923fc55d66e8fa4 100644 (file)
@@ -108,7 +108,7 @@ Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
        local_irq_restore(flags);
        return data;
  }
-@@ -391,7 +391,7 @@ static void *__napi_alloc_frag(unsigned
+@@ -393,7 +393,7 @@ static void *__napi_alloc_frag(unsigned
  {
        struct napi_alloc_cache *nc = this_cpu_ptr(&napi_alloc_cache);
  
@@ -117,7 +117,7 @@ Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  }
  
  void *napi_alloc_frag(unsigned int fragsz)
-@@ -441,7 +441,7 @@ struct sk_buff *__netdev_alloc_skb(struc
+@@ -445,7 +445,7 @@ struct sk_buff *__netdev_alloc_skb(struc
        local_irq_save(flags);
  
        nc = this_cpu_ptr(&netdev_alloc_cache);
@@ -126,7 +126,7 @@ Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
        pfmemalloc = nc->pfmemalloc;
  
        local_irq_restore(flags);
-@@ -505,7 +505,7 @@ struct sk_buff *__napi_alloc_skb(struct
+@@ -509,7 +509,7 @@ struct sk_buff *__napi_alloc_skb(struct
        if (sk_memalloc_socks())
                gfp_mask |= __GFP_MEMALLOC;
  
diff --git a/target/linux/generic/backport-4.9/050-usb-dwc2-Remove-unnecessary-kfree.patch b/target/linux/generic/backport-4.9/050-usb-dwc2-Remove-unnecessary-kfree.patch
deleted file mode 100644 (file)
index 346eba9..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-From cd4b1e34655d46950c065d9284b596cd8d7b28cd Mon Sep 17 00:00:00 2001
-From: John Youn <johnyoun@synopsys.com>
-Date: Thu, 3 Nov 2016 17:55:45 -0700
-Subject: [PATCH] usb: dwc2: Remove unnecessary kfree
-
-This shouldn't be freed by the HCD as it is owned by the core and
-allocated with devm_kzalloc.
-
-Signed-off-by: John Youn <johnyoun@synopsys.com>
-Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
----
- drivers/usb/dwc2/hcd.c | 1 -
- 1 file changed, 1 deletion(-)
-
---- a/drivers/usb/dwc2/hcd.c
-+++ b/drivers/usb/dwc2/hcd.c
-@@ -5202,7 +5202,6 @@ error3:
- error2:
-       usb_put_hcd(hcd);
- error1:
--      kfree(hsotg->core_params);
- #ifdef CONFIG_USB_DWC2_TRACK_MISSED_SOFS
-       kfree(hsotg->last_frame_num_array);
index c05ba5d15865e138abb159c0338811eb7e1ed6be..20e7ae06541335ef1095d1fd4ec883a422aba999 100644 (file)
@@ -657,7 +657,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                gfar_write(&regs->rstat, gfargrp->rstat);
 --- a/drivers/net/ethernet/freescale/ucc_geth.c
 +++ b/drivers/net/ethernet/freescale/ucc_geth.c
-@@ -3301,7 +3301,7 @@ static int ucc_geth_poll(struct napi_str
+@@ -3303,7 +3303,7 @@ static int ucc_geth_poll(struct napi_str
                howmany += ucc_geth_rx(ugeth, i, budget - howmany);
  
        if (howmany < budget) {
@@ -1040,7 +1040,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                writel(irq->mask, adpt->base + EMAC_INT_MASK);
 --- a/drivers/net/ethernet/realtek/r8169.c
 +++ b/drivers/net/ethernet/realtek/r8169.c
-@@ -7576,7 +7576,7 @@ static int rtl8169_poll(struct napi_stru
+@@ -7578,7 +7578,7 @@ static int rtl8169_poll(struct napi_stru
        }
  
        if (work_done < budget) {
diff --git a/target/linux/generic/backport-4.9/092-netfilter-nf_tables-fix-mismatch-in-big-endian-syste.patch b/target/linux/generic/backport-4.9/092-netfilter-nf_tables-fix-mismatch-in-big-endian-syste.patch
deleted file mode 100644 (file)
index 0249831..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-From 0bc01df3df7a88258148518eb9ce7f88c16a6106 Mon Sep 17 00:00:00 2001
-From: Liping Zhang <zlpnobody@gmail.com>
-Date: Wed, 8 Mar 2017 22:54:18 +0800
-Subject: netfilter: nf_tables: fix mismatch in big-endian system
-
-Currently, there are two different methods to store an u16 integer to
-the u32 data register. For example:
-  u32 *dest = &regs->data[priv->dreg];
-  1. *dest = 0; *(u16 *) dest = val_u16;
-  2. *dest = val_u16;
-
-For method 1, the u16 value will be stored like this, either in
-big-endian or little-endian system:
-  0          15           31
-  +-+-+-+-+-+-+-+-+-+-+-+-+
-  |   Value   |     0     |
-  +-+-+-+-+-+-+-+-+-+-+-+-+
-
-For method 2, in little-endian system, the u16 value will be the same
-as listed above. But in big-endian system, the u16 value will be stored
-like this:
-  0          15           31
-  +-+-+-+-+-+-+-+-+-+-+-+-+
-  |     0     |   Value   |
-  +-+-+-+-+-+-+-+-+-+-+-+-+
-
-So later we use "memcmp(&regs->data[priv->sreg], data, 2);" to do
-compare in nft_cmp, nft_lookup expr ..., method 2 will get the wrong
-result in big-endian system, as 0~15 bits will always be zero.
-
-For the similar reason, when loading an u16 value from the u32 data
-register, we should use "*(u16 *) sreg;" instead of "(u16)*sreg;",
-the 2nd method will get the wrong value in the big-endian system.
-
-So introduce some wrapper functions to store/load an u8 or u16
-integer to/from the u32 data register, and use them in the right
-place.
-
-Signed-off-by: Liping Zhang <zlpnobody@gmail.com>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- include/net/netfilter/nf_tables.h   | 29 +++++++++++++++++++++++++
- net/ipv4/netfilter/nft_masq_ipv4.c  |  8 +++----
- net/ipv4/netfilter/nft_redir_ipv4.c |  8 +++----
- net/ipv6/netfilter/nft_masq_ipv6.c  |  8 +++----
- net/ipv6/netfilter/nft_redir_ipv6.c |  8 +++----
- net/netfilter/nft_ct.c              | 10 ++++-----
- net/netfilter/nft_meta.c            | 42 +++++++++++++++++++------------------
- net/netfilter/nft_nat.c             |  8 +++----
- 8 files changed, 76 insertions(+), 45 deletions(-)
-
---- a/include/net/netfilter/nf_tables.h
-+++ b/include/net/netfilter/nf_tables.h
-@@ -87,6 +87,35 @@ struct nft_regs {
-       };
- };
-+/* Store/load an u16 or u8 integer to/from the u32 data register.
-+ *
-+ * Note, when using concatenations, register allocation happens at 32-bit
-+ * level. So for store instruction, pad the rest part with zero to avoid
-+ * garbage values.
-+ */
-+
-+static inline void nft_reg_store16(u32 *dreg, u16 val)
-+{
-+      *dreg = 0;
-+      *(u16 *)dreg = val;
-+}
-+
-+static inline void nft_reg_store8(u32 *dreg, u8 val)
-+{
-+      *dreg = 0;
-+      *(u8 *)dreg = val;
-+}
-+
-+static inline u16 nft_reg_load16(u32 *sreg)
-+{
-+      return *(u16 *)sreg;
-+}
-+
-+static inline u8 nft_reg_load8(u32 *sreg)
-+{
-+      return *(u8 *)sreg;
-+}
-+
- static inline void nft_data_copy(u32 *dst, const struct nft_data *src,
-                                unsigned int len)
- {
---- a/net/ipv4/netfilter/nft_masq_ipv4.c
-+++ b/net/ipv4/netfilter/nft_masq_ipv4.c
-@@ -26,10 +26,10 @@ static void nft_masq_ipv4_eval(const str
-       memset(&range, 0, sizeof(range));
-       range.flags = priv->flags;
-       if (priv->sreg_proto_min) {
--              range.min_proto.all =
--                      *(__be16 *)&regs->data[priv->sreg_proto_min];
--              range.max_proto.all =
--                      *(__be16 *)&regs->data[priv->sreg_proto_max];
-+              range.min_proto.all = (__force __be16)nft_reg_load16(
-+                      &regs->data[priv->sreg_proto_min]);
-+              range.max_proto.all = (__force __be16)nft_reg_load16(
-+                      &regs->data[priv->sreg_proto_max]);
-       }
-       regs->verdict.code = nf_nat_masquerade_ipv4(pkt->skb, pkt->hook,
-                                                   &range, pkt->out);
---- a/net/ipv4/netfilter/nft_redir_ipv4.c
-+++ b/net/ipv4/netfilter/nft_redir_ipv4.c
-@@ -26,10 +26,10 @@ static void nft_redir_ipv4_eval(const st
-       memset(&mr, 0, sizeof(mr));
-       if (priv->sreg_proto_min) {
--              mr.range[0].min.all =
--                      *(__be16 *)&regs->data[priv->sreg_proto_min];
--              mr.range[0].max.all =
--                      *(__be16 *)&regs->data[priv->sreg_proto_max];
-+              mr.range[0].min.all = (__force __be16)nft_reg_load16(
-+                      &regs->data[priv->sreg_proto_min]);
-+              mr.range[0].max.all = (__force __be16)nft_reg_load16(
-+                      &regs->data[priv->sreg_proto_max]);
-               mr.range[0].flags |= NF_NAT_RANGE_PROTO_SPECIFIED;
-       }
---- a/net/ipv6/netfilter/nft_masq_ipv6.c
-+++ b/net/ipv6/netfilter/nft_masq_ipv6.c
-@@ -27,10 +27,10 @@ static void nft_masq_ipv6_eval(const str
-       memset(&range, 0, sizeof(range));
-       range.flags = priv->flags;
-       if (priv->sreg_proto_min) {
--              range.min_proto.all =
--                      *(__be16 *)&regs->data[priv->sreg_proto_min];
--              range.max_proto.all =
--                      *(__be16 *)&regs->data[priv->sreg_proto_max];
-+              range.min_proto.all = (__force __be16)nft_reg_load16(
-+                      &regs->data[priv->sreg_proto_min]);
-+              range.max_proto.all = (__force __be16)nft_reg_load16(
-+                      &regs->data[priv->sreg_proto_max]);
-       }
-       regs->verdict.code = nf_nat_masquerade_ipv6(pkt->skb, &range, pkt->out);
- }
---- a/net/ipv6/netfilter/nft_redir_ipv6.c
-+++ b/net/ipv6/netfilter/nft_redir_ipv6.c
-@@ -26,10 +26,10 @@ static void nft_redir_ipv6_eval(const st
-       memset(&range, 0, sizeof(range));
-       if (priv->sreg_proto_min) {
--              range.min_proto.all =
--                      *(__be16 *)&regs->data[priv->sreg_proto_min],
--              range.max_proto.all =
--                      *(__be16 *)&regs->data[priv->sreg_proto_max],
-+              range.min_proto.all = (__force __be16)nft_reg_load16(
-+                      &regs->data[priv->sreg_proto_min]);
-+              range.max_proto.all = (__force __be16)nft_reg_load16(
-+                      &regs->data[priv->sreg_proto_max]);
-               range.flags |= NF_NAT_RANGE_PROTO_SPECIFIED;
-       }
---- a/net/netfilter/nft_ct.c
-+++ b/net/netfilter/nft_ct.c
-@@ -77,7 +77,7 @@ static void nft_ct_get_eval(const struct
-       switch (priv->key) {
-       case NFT_CT_DIRECTION:
--              *dest = CTINFO2DIR(ctinfo);
-+              nft_reg_store8(dest, CTINFO2DIR(ctinfo));
-               return;
-       case NFT_CT_STATUS:
-               *dest = ct->status;
-@@ -129,10 +129,10 @@ static void nft_ct_get_eval(const struct
-               return;
-       }
-       case NFT_CT_L3PROTOCOL:
--              *dest = nf_ct_l3num(ct);
-+              nft_reg_store8(dest, nf_ct_l3num(ct));
-               return;
-       case NFT_CT_PROTOCOL:
--              *dest = nf_ct_protonum(ct);
-+              nft_reg_store8(dest, nf_ct_protonum(ct));
-               return;
-       default:
-               break;
-@@ -149,10 +149,10 @@ static void nft_ct_get_eval(const struct
-                      nf_ct_l3num(ct) == NFPROTO_IPV4 ? 4 : 16);
-               return;
-       case NFT_CT_PROTO_SRC:
--              *dest = (__force __u16)tuple->src.u.all;
-+              nft_reg_store16(dest, (__force u16)tuple->src.u.all);
-               return;
-       case NFT_CT_PROTO_DST:
--              *dest = (__force __u16)tuple->dst.u.all;
-+              nft_reg_store16(dest, (__force u16)tuple->dst.u.all);
-               return;
-       default:
-               break;
---- a/net/netfilter/nft_meta.c
-+++ b/net/netfilter/nft_meta.c
-@@ -45,16 +45,15 @@ void nft_meta_get_eval(const struct nft_
-               *dest = skb->len;
-               break;
-       case NFT_META_PROTOCOL:
--              *dest = 0;
--              *(__be16 *)dest = skb->protocol;
-+              nft_reg_store16(dest, (__force u16)skb->protocol);
-               break;
-       case NFT_META_NFPROTO:
--              *dest = pkt->pf;
-+              nft_reg_store8(dest, pkt->pf);
-               break;
-       case NFT_META_L4PROTO:
-               if (!pkt->tprot_set)
-                       goto err;
--              *dest = pkt->tprot;
-+              nft_reg_store8(dest, pkt->tprot);
-               break;
-       case NFT_META_PRIORITY:
-               *dest = skb->priority;
-@@ -85,14 +84,12 @@ void nft_meta_get_eval(const struct nft_
-       case NFT_META_IIFTYPE:
-               if (in == NULL)
-                       goto err;
--              *dest = 0;
--              *(u16 *)dest = in->type;
-+              nft_reg_store16(dest, in->type);
-               break;
-       case NFT_META_OIFTYPE:
-               if (out == NULL)
-                       goto err;
--              *dest = 0;
--              *(u16 *)dest = out->type;
-+              nft_reg_store16(dest, out->type);
-               break;
-       case NFT_META_SKUID:
-               sk = skb_to_full_sk(skb);
-@@ -142,22 +139,22 @@ void nft_meta_get_eval(const struct nft_
- #endif
-       case NFT_META_PKTTYPE:
-               if (skb->pkt_type != PACKET_LOOPBACK) {
--                      *dest = skb->pkt_type;
-+                      nft_reg_store8(dest, skb->pkt_type);
-                       break;
-               }
-               switch (pkt->pf) {
-               case NFPROTO_IPV4:
-                       if (ipv4_is_multicast(ip_hdr(skb)->daddr))
--                              *dest = PACKET_MULTICAST;
-+                              nft_reg_store8(dest, PACKET_MULTICAST);
-                       else
--                              *dest = PACKET_BROADCAST;
-+                              nft_reg_store8(dest, PACKET_BROADCAST);
-                       break;
-               case NFPROTO_IPV6:
-                       if (ipv6_hdr(skb)->daddr.s6_addr[0] == 0xFF)
--                              *dest = PACKET_MULTICAST;
-+                              nft_reg_store8(dest, PACKET_MULTICAST);
-                       else
--                              *dest = PACKET_BROADCAST;
-+                              nft_reg_store8(dest, PACKET_BROADCAST);
-                       break;
-               case NFPROTO_NETDEV:
-                       switch (skb->protocol) {
-@@ -171,14 +168,14 @@ void nft_meta_get_eval(const struct nft_
-                                       goto err;
-                               if (ipv4_is_multicast(iph->daddr))
--                                      *dest = PACKET_MULTICAST;
-+                                      nft_reg_store8(dest, PACKET_MULTICAST);
-                               else
--                                      *dest = PACKET_BROADCAST;
-+                                      nft_reg_store8(dest, PACKET_BROADCAST);
-                               break;
-                       }
-                       case htons(ETH_P_IPV6):
--                              *dest = PACKET_MULTICAST;
-+                              nft_reg_store8(dest, PACKET_MULTICAST);
-                               break;
-                       default:
-                               WARN_ON_ONCE(1);
-@@ -233,7 +230,9 @@ void nft_meta_set_eval(const struct nft_
- {
-       const struct nft_meta *meta = nft_expr_priv(expr);
-       struct sk_buff *skb = pkt->skb;
--      u32 value = regs->data[meta->sreg];
-+      u32 *sreg = &regs->data[meta->sreg];
-+      u32 value = *sreg;
-+      u8 pkt_type;
-       switch (meta->key) {
-       case NFT_META_MARK:
-@@ -243,9 +242,12 @@ void nft_meta_set_eval(const struct nft_
-               skb->priority = value;
-               break;
-       case NFT_META_PKTTYPE:
--              if (skb->pkt_type != value &&
--                  skb_pkt_type_ok(value) && skb_pkt_type_ok(skb->pkt_type))
--                      skb->pkt_type = value;
-+              pkt_type = nft_reg_load8(sreg);
-+
-+              if (skb->pkt_type != pkt_type &&
-+                  skb_pkt_type_ok(pkt_type) &&
-+                  skb_pkt_type_ok(skb->pkt_type))
-+                      skb->pkt_type = pkt_type;
-               break;
-       case NFT_META_NFTRACE:
-               skb->nf_trace = !!value;
---- a/net/netfilter/nft_nat.c
-+++ b/net/netfilter/nft_nat.c
-@@ -65,10 +65,10 @@ static void nft_nat_eval(const struct nf
-       }
-       if (priv->sreg_proto_min) {
--              range.min_proto.all =
--                      *(__be16 *)&regs->data[priv->sreg_proto_min];
--              range.max_proto.all =
--                      *(__be16 *)&regs->data[priv->sreg_proto_max];
-+              range.min_proto.all = (__force __be16)nft_reg_load16(
-+                      &regs->data[priv->sreg_proto_min]);
-+              range.max_proto.all = (__force __be16)nft_reg_load16(
-+                      &regs->data[priv->sreg_proto_max]);
-               range.flags |= NF_NAT_RANGE_PROTO_SPECIFIED;
-       }
index fd804888ff6f513b013cf7e7d3c3e467c470d835..38ae0766785bc26bf524d697f4e97d8b46715e19 100644 (file)
@@ -37,7 +37,7 @@ Reviewed-by: John Gilmore <gnu@toad.com>
  
 -#define       IN_EXPERIMENTAL(a)      ((((long int) (a)) & 0xf0000000) == 0xf0000000)
 -#define       IN_BADCLASS(a)          IN_EXPERIMENTAL((a))
-+#define       IN_BADCLASS(a)          ((((long int) (a) ) == 0xffffffff)
++#define       IN_BADCLASS(a)          (((long int) (a) ) == (long int)0xffffffff)
 +#define       IN_EXPERIMENTAL(a)      IN_BADCLASS((a))
 +
 +#define       IN_CLASSE(a)            ((((long int) (a)) & 0xf0000000) == 0xf0000000)
diff --git a/target/linux/generic/backport-4.9/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch b/target/linux/generic/backport-4.9/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch
deleted file mode 100644 (file)
index faeb3e4..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-From 03556dab1cb02d85b50d7be3ee3a3bac001f5991 Mon Sep 17 00:00:00 2001
-From: Koen Vandeputte <koen.vandeputte@ncentric.com>
-Date: Tue, 18 Dec 2018 12:14:06 +0100
-Subject: [PATCH] arm: cns3xxx: fix writing to wrong PCI registers after
- alignment
-
-Originally, cns3xxx used it's own functions for mapping, reading and writing registers.
-
-Commit 802b7c06adc7 ("ARM: cns3xxx: Convert PCI to use generic config accessors")
-removed the internal PCI config write function in favor of the generic one:
-
-cns3xxx_pci_write_config() --> pci_generic_config_write()
-
-cns3xxx_pci_write_config() expected aligned addresses, being produced by cns3xxx_pci_map_bus()
-while the generic one pci_generic_config_write() actually expects the real address
-as both the function and hardware are capable of byte-aligned writes.
-
-This currently leads to pci_generic_config_write() writing
-to the wrong registers on some ocasions.
-
-First issue seen due to this:
-
-- driver ath9k gets loaded
-- The driver wants to write value 0xA8 to register PCI_LATENCY_TIMER, located at 0x0D
-- cns3xxx_pci_map_bus() aligns the address to 0x0C
-- pci_generic_config_write() effectively writes 0xA8 into register 0x0C (CACHE_LINE_SIZE)
-
-This seems to cause some slight instability when certain PCI devices are used.
-
-Another issue example caused by this this is the PCI bus numbering,
-where the primary bus is higher than the secondary, which is impossible.
-
-Before:
-
-00:00.0 PCI bridge: Cavium, Inc. Device 3400 (rev 01) (prog-if 00 [Normal decode])
-    Flags: bus master, fast devsel, latency 0, IRQ 255
-    Bus: primary=02, secondary=01, subordinate=ff, sec-latency=0
-
-After fix:
-
-00:00.0 PCI bridge: Cavium, Inc. Device 3400 (rev 01) (prog-if 00 [Normal decode])
-    Flags: bus master, fast devsel, latency 0, IRQ 255
-    Bus: primary=00, secondary=01, subordinate=02, sec-latency=0
-
-And very likely some more ..
-
-Fix all by omitting the alignment being done in the mapping function.
-
-Fixes: 802b7c06adc7 ("ARM: cns3xxx: Convert PCI to use generic config accessors")
-Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
-CC: Arnd Bergmann <arnd@arndb.de>
-CC: Bjorn Helgaas <bhelgaas@google.com>
-CC: Krzysztof Halasa <khalasa@piap.pl>
-CC: Olof Johansson <olof@lixom.net>
-CC: Robin Leblon <robin.leblon@ncentric.com>
-CC: Rob Herring <robh@kernel.org>
-CC: Russell King <linux@armlinux.org.uk>
-CC: Tim Harvey <tharvey@gateworks.com>
-CC: stable@vger.kernel.org # v4.0+
----
- arch/arm/mach-cns3xxx/pcie.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/arm/mach-cns3xxx/pcie.c
-+++ b/arch/arm/mach-cns3xxx/pcie.c
-@@ -83,7 +83,7 @@ static void __iomem *cns3xxx_pci_map_bus
-       } else /* remote PCI bus */
-               base = cnspci->cfg1_regs + ((busno & 0xf) << 20);
--      return base + (where & 0xffc) + (devfn << 12);
-+      return base + where + (devfn << 12);
- }
- static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn,
diff --git a/target/linux/generic/backport-4.9/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch b/target/linux/generic/backport-4.9/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch
deleted file mode 100644 (file)
index f209849..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-From 649affd04813c43e0a72886517fcfccd63230981 Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Mon, 29 Jun 2015 16:53:03 +0200
-Subject: uapi/if_ether.h: prevent redefinition of struct ethhdr
-
-Musl provides its own ethhdr struct definition. Add a guard to prevent
-its definition of the appropriate musl header has already been included.
-
-glibc does not implement this header, but when glibc will implement this
-they can just define __UAPI_DEF_ETHHDR 0 to make it work with the
-kernel.
-
-Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
----
- include/uapi/linux/if_ether.h    | 3 +++
- include/uapi/linux/libc-compat.h | 6 ++++++
- 2 files changed, 9 insertions(+)
-
---- a/include/uapi/linux/if_ether.h
-+++ b/include/uapi/linux/if_ether.h
-@@ -22,6 +22,7 @@
- #define _UAPI_LINUX_IF_ETHER_H
- #include <linux/types.h>
-+#include <linux/libc-compat.h>
- /*
-  *    IEEE 802.3 Ethernet magic constants.  The frame sizes omit the preamble
-@@ -139,11 +140,13 @@
-  *    This is an Ethernet frame header.
-  */
-+#if __UAPI_DEF_ETHHDR
- struct ethhdr {
-       unsigned char   h_dest[ETH_ALEN];       /* destination eth addr */
-       unsigned char   h_source[ETH_ALEN];     /* source ether addr    */
-       __be16          h_proto;                /* packet type ID field */
- } __attribute__((packed));
-+#endif
- #endif /* _UAPI_LINUX_IF_ETHER_H */
---- a/include/uapi/linux/libc-compat.h
-+++ b/include/uapi/linux/libc-compat.h
-@@ -263,4 +263,10 @@
- #endif /* __GLIBC__ */
-+/* Definitions for if_ether.h */
-+/* allow libcs like musl to deactivate this, glibc does not implement this. */
-+#ifndef __UAPI_DEF_ETHHDR
-+#define __UAPI_DEF_ETHHDR             1
-+#endif
-+
- #endif /* _UAPI_LIBC_COMPAT_H */
index 2840f79b49998a4cfd59da7d4add83836a4bad6a..cabdd9d01d1d23ef042dd4a6fd908d7a1a94f2ef 100644 (file)
@@ -429,6 +429,7 @@ CONFIG_ATM_CLIP_NO_ICMP=y
 # CONFIG_BACKLIGHT_LV5207LP is not set
 # CONFIG_BACKLIGHT_PANDORA is not set
 # CONFIG_BACKLIGHT_PM8941_WLED is not set
+# CONFIG_BACKLIGHT_PWM is not set
 # CONFIG_BACKLIGHT_RPI is not set
 # CONFIG_BACKLIGHT_SAHARA is not set
 # CONFIG_BACKTRACE_SELF_TEST is not set
@@ -594,7 +595,7 @@ CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
 # CONFIG_BOOT_PRINTK_DELAY is not set
 CONFIG_BOOT_RAW=y
 CONFIG_BPF=y
-# CONFIG_BPF_JIT is not set
+CONFIG_BPF_JIT=y
 # CONFIG_BPF_JIT_ALWAYS_ON is not set
 # CONFIG_BPF_STREAM_PARSER is not set
 CONFIG_BPF_SYSCALL=y
@@ -764,6 +765,7 @@ CONFIG_CC_STACKPROTECTOR_NONE=y
 # CONFIG_CICADA_PHY is not set
 # CONFIG_CIFS is not set
 # CONFIG_CIFS_ACL is not set
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
 # CONFIG_CIFS_DEBUG is not set
 # CONFIG_CIFS_DEBUG2 is not set
 # CONFIG_CIFS_FSCACHE is not set
@@ -1149,7 +1151,13 @@ CONFIG_DOUBLEFAULT=y
 CONFIG_DQL=y
 # CONFIG_DRAGONRISE_FF is not set
 # CONFIG_DRM is not set
+# CONFIG_DRM_I915 is not set
 # CONFIG_DRM_AMDGPU is not set
+# CONFIG_DRM_AMDGPU_CIK is not set
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+# CONFIG_DRM_AMDGPU_SI is not set
+# CONFIG_DRM_AMDGPU_USERPTR is not set
+# CONFIG_DRM_AMD_ACP is not set
 # CONFIG_DRM_ANALOGIX_ANX78XX is not set
 # CONFIG_DRM_ARCPGU is not set
 # CONFIG_DRM_ARMADA is not set
@@ -1165,6 +1173,7 @@ CONFIG_DQL=y
 # CONFIG_DRM_EXYNOS is not set
 # CONFIG_DRM_FBDEV_EMULATION is not set
 # CONFIG_DRM_FSL_DCU is not set
+# CONFIG_DRM_GMA500 is not set
 # CONFIG_DRM_HDLCD is not set
 # CONFIG_DRM_HISI_HIBMC is not set
 # CONFIG_DRM_HISI_KIRIN is not set
@@ -1199,11 +1208,13 @@ CONFIG_DQL=y
 # CONFIG_DRM_PL111 is not set
 # CONFIG_DRM_QXL is not set
 # CONFIG_DRM_RADEON is not set
+# CONFIG_DRM_RADEON_USERPTR is not set
 # CONFIG_DRM_RCAR_DW_HDMI is not set
 # CONFIG_DRM_SII902X is not set
 # CONFIG_DRM_SIL_SII8620 is not set
 # CONFIG_DRM_STI is not set
 # CONFIG_DRM_STM is not set
+# CONFIG_DRM_SUN4I is not set
 # CONFIG_DRM_TILCDC is not set
 # CONFIG_DRM_TINYDRM is not set
 # CONFIG_DRM_TI_TFP410 is not set
@@ -1211,6 +1222,7 @@ CONFIG_DQL=y
 # CONFIG_DRM_UDL is not set
 # CONFIG_DRM_VBOXVIDEO is not set
 # CONFIG_DRM_VGEM is not set
+# CONFIG_DRM_VMWGFX is not set
 # CONFIG_DS1682 is not set
 # CONFIG_DS1803 is not set
 # CONFIG_DST_CACHE is not set
@@ -1342,6 +1354,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
 # CONFIG_FB_DA8XX is not set
 # CONFIG_FB_DDC is not set
 # CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_FLEX is not set
 # CONFIG_FB_GEODE is not set
 # CONFIG_FB_GOLDFISH is not set
 # CONFIG_FB_HGA is not set
@@ -1386,6 +1399,39 @@ CONFIG_FB_NOTIFY=y
 # CONFIG_FB_SYS_FOPS is not set
 # CONFIG_FB_SYS_IMAGEBLIT is not set
 # CONFIG_FB_TFT is not set
+# CONFIG_FB_TFT_AGM1264K_FL is not set
+# CONFIG_FB_TFT_BD663474 is not set
+# CONFIG_FB_TFT_FBTFT_DEVICE is not set
+# CONFIG_FB_TFT_HX8340BN is not set
+# CONFIG_FB_TFT_HX8347D is not set
+# CONFIG_FB_TFT_HX8353D is not set
+# CONFIG_FB_TFT_HX8357D is not set
+# CONFIG_FB_TFT_ILI9163 is not set
+# CONFIG_FB_TFT_ILI9320 is not set
+# CONFIG_FB_TFT_ILI9325 is not set
+# CONFIG_FB_TFT_ILI9340 is not set
+# CONFIG_FB_TFT_ILI9341 is not set
+# CONFIG_FB_TFT_ILI9481 is not set
+# CONFIG_FB_TFT_ILI9486 is not set
+# CONFIG_FB_TFT_PCD8544 is not set
+# CONFIG_FB_TFT_RA8875 is not set
+# CONFIG_FB_TFT_S6D02A1 is not set
+# CONFIG_FB_TFT_S6D1121 is not set
+# CONFIG_FB_TFT_SH1106 is not set
+# CONFIG_FB_TFT_SSD1289 is not set
+# CONFIG_FB_TFT_SSD1305 is not set
+# CONFIG_FB_TFT_SSD1306 is not set
+# CONFIG_FB_TFT_SSD1325 is not set
+# CONFIG_FB_TFT_SSD1331 is not set
+# CONFIG_FB_TFT_SSD1351 is not set
+# CONFIG_FB_TFT_ST7735R is not set
+# CONFIG_FB_TFT_ST7789V is not set
+# CONFIG_FB_TFT_TINYLCD is not set
+# CONFIG_FB_TFT_TLS8204 is not set
+# CONFIG_FB_TFT_UC1611 is not set
+# CONFIG_FB_TFT_UC1701 is not set
+# CONFIG_FB_TFT_UPD161704 is not set
+# CONFIG_FB_TFT_WATTEROTT is not set
 # CONFIG_FB_TILEBLITTING is not set
 # CONFIG_FB_TMIO is not set
 # CONFIG_FB_TRIDENT is not set
@@ -4938,19 +4984,28 @@ CONFIG_TMPFS_XATTR=y
 # CONFIG_TOPSTAR_LAPTOP is not set
 # CONFIG_TORTURE_TEST is not set
 # CONFIG_TOSHIBA_HAPS is not set
+# CONFIG_TOUCHSCREEN_88PM860X is not set
 # CONFIG_TOUCHSCREEN_AD7877 is not set
-# CONFIG_TOUCHSCREEN_AD7879 is not set
 # CONFIG_TOUCHSCREEN_AD7879_I2C is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
 # CONFIG_TOUCHSCREEN_AD7879_SPI is not set
 # CONFIG_TOUCHSCREEN_ADS7846 is not set
 # CONFIG_TOUCHSCREEN_AR1021_I2C is not set
 # CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
 # CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
 # CONFIG_TOUCHSCREEN_BU21013 is not set
 # CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
+# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set
 # CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
 # CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP4_I2C is not set
+# CONFIG_TOUCHSCREEN_CYTTSP4_SPI is not set
 # CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP_I2C is not set
+# CONFIG_TOUCHSCREEN_CYTTSP_SPI is not set
+# CONFIG_TOUCHSCREEN_DA9034 is not set
+# CONFIG_TOUCHSCREEN_DA9052 is not set
 # CONFIG_TOUCHSCREEN_DYNAPRO is not set
 # CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
 # CONFIG_TOUCHSCREEN_EETI is not set
@@ -4959,22 +5014,33 @@ CONFIG_TMPFS_XATTR=y
 # CONFIG_TOUCHSCREEN_EKTF2127 is not set
 # CONFIG_TOUCHSCREEN_ELAN is not set
 # CONFIG_TOUCHSCREEN_ELO is not set
-# CONFIG_TOUCHSCREEN_FT6236 is not set
 # CONFIG_TOUCHSCREEN_FUJITSU is not set
 # CONFIG_TOUCHSCREEN_GOODIX is not set
 # CONFIG_TOUCHSCREEN_GUNZE is not set
 # CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
+# CONFIG_TOUCHSCREEN_HP600 is not set
+# CONFIG_TOUCHSCREEN_HP7XX is not set
+# CONFIG_TOUCHSCREEN_HTCPEN is not set
 # CONFIG_TOUCHSCREEN_ILI210X is not set
 # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
 # CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_IPAQ_MICRO is not set
+# CONFIG_TOUCHSCREEN_IPROC is not set
+# CONFIG_TOUCHSCREEN_LPC32XX is not set
 # CONFIG_TOUCHSCREEN_MAX11801 is not set
+# CONFIG_TOUCHSCREEN_MC13783 is not set
 # CONFIG_TOUCHSCREEN_MCS5000 is not set
 # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
+# CONFIG_TOUCHSCREEN_MIGOR is not set
 # CONFIG_TOUCHSCREEN_MK712 is not set
 # CONFIG_TOUCHSCREEN_MMS114 is not set
 # CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MX25 is not set
+# CONFIG_TOUCHSCREEN_MXS_LRADC is not set
+# CONFIG_TOUCHSCREEN_PCAP is not set
 # CONFIG_TOUCHSCREEN_PENMOUNT is not set
 # CONFIG_TOUCHSCREEN_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_PROPERTIES is not set
 # CONFIG_TOUCHSCREEN_RM_TS is not set
 # CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
 # CONFIG_TOUCHSCREEN_S3C2410 is not set
@@ -4982,24 +5048,55 @@ CONFIG_TMPFS_XATTR=y
 # CONFIG_TOUCHSCREEN_SIS_I2C is not set
 # CONFIG_TOUCHSCREEN_ST1232 is not set
 # CONFIG_TOUCHSCREEN_STMFTS is not set
+# CONFIG_TOUCHSCREEN_STMPE is not set
+# CONFIG_TOUCHSCREEN_SUN4I is not set
 # CONFIG_TOUCHSCREEN_SUR40 is not set
 # CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
 # CONFIG_TOUCHSCREEN_SX8654 is not set
-# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
+# CONFIG_TOUCHSCREEN_TI_AM335X_TSC is not set
 # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
 # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
 # CONFIG_TOUCHSCREEN_TOUCHWIN is not set
 # CONFIG_TOUCHSCREEN_TPS6507X is not set
+# CONFIG_TOUCHSCREEN_TS4800 is not set
 # CONFIG_TOUCHSCREEN_TSC2004 is not set
 # CONFIG_TOUCHSCREEN_TSC2005 is not set
+# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set
 # CONFIG_TOUCHSCREEN_TSC2007 is not set
+# CONFIG_TOUCHSCREEN_TSC200X_CORE is not set
 # CONFIG_TOUCHSCREEN_TSC_SERIO is not set
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+# CONFIG_TOUCHSCREEN_USB_3M is not set
 # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_USB_DMC_TSC10 is not set
+# CONFIG_TOUCHSCREEN_USB_E2I is not set
+# CONFIG_TOUCHSCREEN_USB_EASYTOUCH is not set
+# CONFIG_TOUCHSCREEN_USB_EGALAX is not set
+# CONFIG_TOUCHSCREEN_USB_ELO is not set
+# CONFIG_TOUCHSCREEN_USB_ETT_TC45USB is not set
+# CONFIG_TOUCHSCREEN_USB_ETURBO is not set
+# CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH is not set
+# CONFIG_TOUCHSCREEN_USB_GOTOP is not set
+# CONFIG_TOUCHSCREEN_USB_GUNZE is not set
+# CONFIG_TOUCHSCREEN_USB_IDEALTEK is not set
+# CONFIG_TOUCHSCREEN_USB_IRTOUCH is not set
+# CONFIG_TOUCHSCREEN_USB_ITM is not set
+# CONFIG_TOUCHSCREEN_USB_JASTEC is not set
+# CONFIG_TOUCHSCREEN_USB_NEXIO is not set
+# CONFIG_TOUCHSCREEN_USB_PANJIT is not set
+# CONFIG_TOUCHSCREEN_USB_ZYTRONIC is not set
 # CONFIG_TOUCHSCREEN_W90X900 is not set
 # CONFIG_TOUCHSCREEN_WACOM_I2C is not set
 # CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
 # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
+# CONFIG_TOUCHSCREEN_WM831X is not set
+# CONFIG_TOUCHSCREEN_WM9705 is not set
+# CONFIG_TOUCHSCREEN_WM9712 is not set
+# CONFIG_TOUCHSCREEN_WM9713 is not set
+# CONFIG_TOUCHSCREEN_WM97XX_ATMEL is not set
 # CONFIG_TOUCHSCREEN_WM97XX is not set
+# CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE is not set
+# CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE is not set
 # CONFIG_TOUCHSCREEN_ZET6223 is not set
 # CONFIG_TOUCHSCREEN_ZFORCE is not set
 # CONFIG_TPL0102 is not set
@@ -5203,6 +5300,7 @@ CONFIG_USB_GADGET_VBUS_DRAW=2
 # CONFIG_USB_HUB_USB251XB is not set
 # CONFIG_USB_HWA_HCD is not set
 # CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_IMX21_HCD is not set
 # CONFIG_USB_IOWARRIOR is not set
 # CONFIG_USB_IPHETH is not set
 # CONFIG_USB_ISIGHTFW is not set
index cc5b42991b19ad38be5005704940137639717f67..288c2c5836f656bda182e71fd25afea19e1ebfe1 100644 (file)
@@ -446,6 +446,7 @@ CONFIG_ATM_CLIP_NO_ICMP=y
 # CONFIG_BACKLIGHT_LV5207LP is not set
 # CONFIG_BACKLIGHT_PANDORA is not set
 # CONFIG_BACKLIGHT_PM8941_WLED is not set
+# CONFIG_BACKLIGHT_PWM is not set
 # CONFIG_BACKLIGHT_RPI is not set
 # CONFIG_BACKLIGHT_SAHARA is not set
 # CONFIG_BACKTRACE_SELF_TEST is not set
@@ -614,7 +615,7 @@ CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
 CONFIG_BOOT_RAW=y
 CONFIG_BPF=y
 # CONFIG_BPFILTER is not set
-# CONFIG_BPF_JIT is not set
+CONFIG_BPF_JIT=y
 # CONFIG_BPF_JIT_ALWAYS_ON is not set
 # CONFIG_BPF_STREAM_PARSER is not set
 CONFIG_BPF_SYSCALL=y
@@ -776,6 +777,8 @@ CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
 # CONFIG_CHARGER_SBS is not set
 # CONFIG_CHARGER_SMB347 is not set
 # CONFIG_CHARGER_TWL4030 is not set
+# CONFIG_CHASH_STATS is not set
+# CONFIG_CHASH_SELFTEST is not set
 # CONFIG_CHECKPOINT_RESTORE is not set
 # CONFIG_CHELSIO_T1 is not set
 # CONFIG_CHELSIO_T3 is not set
@@ -1210,15 +1213,22 @@ CONFIG_DOUBLEFAULT=y
 CONFIG_DQL=y
 # CONFIG_DRAGONRISE_FF is not set
 # CONFIG_DRM is not set
+# CONFIG_DRM_I915 is not set
 # CONFIG_DRM_AMDGPU is not set
+# CONFIG_DRM_AMDGPU_CIK is not set
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+# CONFIG_DRM_AMDGPU_SI is not set
+# CONFIG_DRM_AMDGPU_USERPTR is not set
+# CONFIG_DRM_AMD_ACP is not set
 # CONFIG_DRM_ANALOGIX_ANX78XX is not set
 # CONFIG_DRM_ARCPGU is not set
 # CONFIG_DRM_ARMADA is not set
 # CONFIG_DRM_AST is not set
 # CONFIG_DRM_BOCHS is not set
+# CONFIG_DRM_CDNS_DSI is not set
 # CONFIG_DRM_CIRRUS_QEMU is not set
 # CONFIG_DRM_DEBUG_MM is not set
-# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
+# CONFIG_DRM_DEBUG_SELFTEST is not set
 # CONFIG_DRM_DP_AUX_CHARDEV is not set
 # CONFIG_DRM_DP_CEC is not set
 # CONFIG_DRM_DUMB_VGA_DAC is not set
@@ -1226,12 +1236,15 @@ CONFIG_DQL=y
 # CONFIG_DRM_ETNAVIV is not set
 # CONFIG_DRM_EXYNOS is not set
 # CONFIG_DRM_FBDEV_EMULATION is not set
+# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
 # CONFIG_DRM_FSL_DCU is not set
+# CONFIG_DRM_GMA500 is not set
 # CONFIG_DRM_HDLCD is not set
 # CONFIG_DRM_HISI_HIBMC is not set
 # CONFIG_DRM_HISI_KIRIN is not set
 # CONFIG_DRM_I2C_ADV7511 is not set
 # CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_NXP_TDA9950 is not set
 # CONFIG_DRM_I2C_NXP_TDA998X is not set
 # CONFIG_DRM_I2C_SIL164 is not set
 # CONFIG_DRM_LEGACY is not set
@@ -1245,6 +1258,8 @@ CONFIG_DQL=y
 # CONFIG_DRM_NOUVEAU is not set
 # CONFIG_DRM_NXP_PTN3460 is not set
 # CONFIG_DRM_OMAP is not set
+# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
+# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
 # CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
 # CONFIG_DRM_PANEL_LG_LG4573 is not set
 # CONFIG_DRM_PANEL_LVDS is not set
@@ -1252,6 +1267,7 @@ CONFIG_DQL=y
 # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
 # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
 # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
 # CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
 # CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
 # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
@@ -1259,11 +1275,16 @@ CONFIG_DQL=y
 # CONFIG_DRM_PL111 is not set
 # CONFIG_DRM_QXL is not set
 # CONFIG_DRM_RADEON is not set
+# CONFIG_DRM_RADEON_USERPTR is not set
 # CONFIG_DRM_RCAR_DW_HDMI is not set
+# CONFIG_DRM_RCAR_LVDS is not set
 # CONFIG_DRM_SII902X is not set
+# CONFIG_DRM_SII9234 is not set
 # CONFIG_DRM_SIL_SII8620 is not set
 # CONFIG_DRM_STI is not set
 # CONFIG_DRM_STM is not set
+# CONFIG_DRM_SUN4I is not set
+# CONFIG_DRM_THINE_THC63LVD1024 is not set
 # CONFIG_DRM_TILCDC is not set
 # CONFIG_DRM_TINYDRM is not set
 # CONFIG_DRM_TI_TFP410 is not set
@@ -1271,6 +1292,8 @@ CONFIG_DQL=y
 # CONFIG_DRM_UDL is not set
 # CONFIG_DRM_VBOXVIDEO is not set
 # CONFIG_DRM_VGEM is not set
+# CONFIG_DRM_VKMS is not set
+# CONFIG_DRM_VMWGFX is not set
 # CONFIG_DRM_XEN is not set
 # CONFIG_DS1682 is not set
 # CONFIG_DS1803 is not set
@@ -1408,6 +1431,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
 # CONFIG_FB_DA8XX is not set
 # CONFIG_FB_DDC is not set
 # CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_FLEX is not set
 # CONFIG_FB_GEODE is not set
 # CONFIG_FB_GOLDFISH is not set
 # CONFIG_FB_HGA is not set
@@ -1452,6 +1476,39 @@ CONFIG_FB_NOTIFY=y
 # CONFIG_FB_SYS_FOPS is not set
 # CONFIG_FB_SYS_IMAGEBLIT is not set
 # CONFIG_FB_TFT is not set
+# CONFIG_FB_TFT_AGM1264K_FL is not set
+# CONFIG_FB_TFT_BD663474 is not set
+# CONFIG_FB_TFT_FBTFT_DEVICE is not set
+# CONFIG_FB_TFT_HX8340BN is not set
+# CONFIG_FB_TFT_HX8347D is not set
+# CONFIG_FB_TFT_HX8353D is not set
+# CONFIG_FB_TFT_HX8357D is not set
+# CONFIG_FB_TFT_ILI9163 is not set
+# CONFIG_FB_TFT_ILI9320 is not set
+# CONFIG_FB_TFT_ILI9325 is not set
+# CONFIG_FB_TFT_ILI9340 is not set
+# CONFIG_FB_TFT_ILI9341 is not set
+# CONFIG_FB_TFT_ILI9481 is not set
+# CONFIG_FB_TFT_ILI9486 is not set
+# CONFIG_FB_TFT_PCD8544 is not set
+# CONFIG_FB_TFT_RA8875 is not set
+# CONFIG_FB_TFT_S6D02A1 is not set
+# CONFIG_FB_TFT_S6D1121 is not set
+# CONFIG_FB_TFT_SH1106 is not set
+# CONFIG_FB_TFT_SSD1289 is not set
+# CONFIG_FB_TFT_SSD1305 is not set
+# CONFIG_FB_TFT_SSD1306 is not set
+# CONFIG_FB_TFT_SSD1325 is not set
+# CONFIG_FB_TFT_SSD1331 is not set
+# CONFIG_FB_TFT_SSD1351 is not set
+# CONFIG_FB_TFT_ST7735R is not set
+# CONFIG_FB_TFT_ST7789V is not set
+# CONFIG_FB_TFT_TINYLCD is not set
+# CONFIG_FB_TFT_TLS8204 is not set
+# CONFIG_FB_TFT_UC1611 is not set
+# CONFIG_FB_TFT_UC1701 is not set
+# CONFIG_FB_TFT_UPD161704 is not set
+# CONFIG_FB_TFT_WATTEROTT is not set
 # CONFIG_FB_TILEBLITTING is not set
 # CONFIG_FB_TMIO is not set
 # CONFIG_FB_TRIDENT is not set
@@ -5173,21 +5230,31 @@ CONFIG_TMPFS_XATTR=y
 # CONFIG_TOPSTAR_LAPTOP is not set
 # CONFIG_TORTURE_TEST is not set
 # CONFIG_TOSHIBA_HAPS is not set
+# CONFIG_TOUCHSCREEN_88PM860X is not set
 # CONFIG_TOUCHSCREEN_AD7877 is not set
-# CONFIG_TOUCHSCREEN_AD7879 is not set
 # CONFIG_TOUCHSCREEN_AD7879_I2C is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
 # CONFIG_TOUCHSCREEN_AD7879_SPI is not set
 # CONFIG_TOUCHSCREEN_ADC is not set
 # CONFIG_TOUCHSCREEN_ADS7846 is not set
 # CONFIG_TOUCHSCREEN_AR1021_I2C is not set
 # CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
 # CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
 # CONFIG_TOUCHSCREEN_BU21013 is not set
 # CONFIG_TOUCHSCREEN_BU21029 is not set
 # CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
+# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set
+# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set
 # CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
 # CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP4_I2C is not set
+# CONFIG_TOUCHSCREEN_CYTTSP4_SPI is not set
 # CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP_I2C is not set
+# CONFIG_TOUCHSCREEN_CYTTSP_SPI is not set
+# CONFIG_TOUCHSCREEN_DA9034 is not set
+# CONFIG_TOUCHSCREEN_DA9052 is not set
 # CONFIG_TOUCHSCREEN_DYNAPRO is not set
 # CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
 # CONFIG_TOUCHSCREEN_EETI is not set
@@ -5197,23 +5264,34 @@ CONFIG_TMPFS_XATTR=y
 # CONFIG_TOUCHSCREEN_ELAN is not set
 # CONFIG_TOUCHSCREEN_ELO is not set
 # CONFIG_TOUCHSCREEN_EXC3000 is not set
-# CONFIG_TOUCHSCREEN_FT6236 is not set
 # CONFIG_TOUCHSCREEN_FUJITSU is not set
 # CONFIG_TOUCHSCREEN_GOODIX is not set
 # CONFIG_TOUCHSCREEN_GUNZE is not set
 # CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
 # CONFIG_TOUCHSCREEN_HIDEEP is not set
+# CONFIG_TOUCHSCREEN_HP600 is not set
+# CONFIG_TOUCHSCREEN_HP7XX is not set
+# CONFIG_TOUCHSCREEN_HTCPEN is not set
 # CONFIG_TOUCHSCREEN_ILI210X is not set
 # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
 # CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_IPAQ_MICRO is not set
+# CONFIG_TOUCHSCREEN_IPROC is not set
+# CONFIG_TOUCHSCREEN_LPC32XX is not set
 # CONFIG_TOUCHSCREEN_MAX11801 is not set
+# CONFIG_TOUCHSCREEN_MC13783 is not set
 # CONFIG_TOUCHSCREEN_MCS5000 is not set
 # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
+# CONFIG_TOUCHSCREEN_MIGOR is not set
 # CONFIG_TOUCHSCREEN_MK712 is not set
 # CONFIG_TOUCHSCREEN_MMS114 is not set
 # CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MX25 is not set
+# CONFIG_TOUCHSCREEN_MXS_LRADC is not set
+# CONFIG_TOUCHSCREEN_PCAP is not set
 # CONFIG_TOUCHSCREEN_PENMOUNT is not set
 # CONFIG_TOUCHSCREEN_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_PROPERTIES is not set
 # CONFIG_TOUCHSCREEN_RM_TS is not set
 # CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
 # CONFIG_TOUCHSCREEN_S3C2410 is not set
@@ -5222,24 +5300,54 @@ CONFIG_TMPFS_XATTR=y
 # CONFIG_TOUCHSCREEN_SIS_I2C is not set
 # CONFIG_TOUCHSCREEN_ST1232 is not set
 # CONFIG_TOUCHSCREEN_STMFTS is not set
+# CONFIG_TOUCHSCREEN_STMPE is not set
+# CONFIG_TOUCHSCREEN_SUN4I is not set
 # CONFIG_TOUCHSCREEN_SUR40 is not set
 # CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
 # CONFIG_TOUCHSCREEN_SX8654 is not set
-# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
+# CONFIG_TOUCHSCREEN_TI_AM335X_TSC is not set
 # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
 # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
 # CONFIG_TOUCHSCREEN_TOUCHWIN is not set
 # CONFIG_TOUCHSCREEN_TPS6507X is not set
+# CONFIG_TOUCHSCREEN_TS4800 is not set
 # CONFIG_TOUCHSCREEN_TSC2004 is not set
 # CONFIG_TOUCHSCREEN_TSC2005 is not set
+# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set
 # CONFIG_TOUCHSCREEN_TSC2007 is not set
+# CONFIG_TOUCHSCREEN_TSC200X_CORE is not set
 # CONFIG_TOUCHSCREEN_TSC_SERIO is not set
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+# CONFIG_TOUCHSCREEN_USB_3M is not set
 # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_USB_DMC_TSC10 is not set
+# CONFIG_TOUCHSCREEN_USB_E2I is not set
+# CONFIG_TOUCHSCREEN_USB_EASYTOUCH is not set
+# CONFIG_TOUCHSCREEN_USB_EGALAX is not set
+# CONFIG_TOUCHSCREEN_USB_ELO is not set
+# CONFIG_TOUCHSCREEN_USB_ETT_TC45USB is not set
+# CONFIG_TOUCHSCREEN_USB_ETURBO is not set
+# CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH is not set
+# CONFIG_TOUCHSCREEN_USB_GOTOP is not set
+# CONFIG_TOUCHSCREEN_USB_GUNZE is not set
+# CONFIG_TOUCHSCREEN_USB_IDEALTEK is not set
+# CONFIG_TOUCHSCREEN_USB_IRTOUCH is not set
+# CONFIG_TOUCHSCREEN_USB_ITM is not set
+# CONFIG_TOUCHSCREEN_USB_JASTEC is not set
+# CONFIG_TOUCHSCREEN_USB_NEXIO is not set
+# CONFIG_TOUCHSCREEN_USB_PANJIT is not set
+# CONFIG_TOUCHSCREEN_USB_ZYTRONIC is not set
 # CONFIG_TOUCHSCREEN_W90X900 is not set
 # CONFIG_TOUCHSCREEN_WACOM_I2C is not set
 # CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
 # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
+# CONFIG_TOUCHSCREEN_WM831X is not set
+# CONFIG_TOUCHSCREEN_WM9705 is not set
+# CONFIG_TOUCHSCREEN_WM9712 is not set
+# CONFIG_TOUCHSCREEN_WM9713 is not set
 # CONFIG_TOUCHSCREEN_WM97XX is not set
+# CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE is not set
+# CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE is not set
 # CONFIG_TOUCHSCREEN_ZET6223 is not set
 # CONFIG_TOUCHSCREEN_ZFORCE is not set
 # CONFIG_TPL0102 is not set
@@ -5290,7 +5398,6 @@ CONFIG_UBIFS_FS_FORMAT4=y
 # CONFIG_UCB1400_CORE is not set
 # CONFIG_UCSI is not set
 # CONFIG_UDF_FS is not set
-CONFIG_UDF_NLS=y
 CONFIG_UEVENT_HELPER=y
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 # CONFIG_UFS_FS is not set
@@ -5450,6 +5557,7 @@ CONFIG_USB_GADGET_VBUS_DRAW=2
 # CONFIG_USB_HUB_USB251XB is not set
 # CONFIG_USB_HWA_HCD is not set
 # CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_IMX21_HCD is not set
 # CONFIG_USB_IOWARRIOR is not set
 # CONFIG_USB_IPHETH is not set
 # CONFIG_USB_ISIGHTFW is not set
@@ -5535,6 +5643,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
 # CONFIG_USB_RCAR_PHY is not set
 # CONFIG_USB_RENESAS_USBHS is not set
 # CONFIG_USB_RIO500 is not set
+# CONFIG_USB_ROLE_SWITCH is not set
 # CONFIG_USB_RTL8150 is not set
 # CONFIG_USB_RTL8152 is not set
 # CONFIG_USB_S2255 is not set
index 9300e06afd79d93d6f7422f3330be4464bc83283..cdbc86e85b1d56f1098c7783725ff1394956d0df 100644 (file)
@@ -566,7 +566,7 @@ CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
 # CONFIG_BOOT_PRINTK_DELAY is not set
 CONFIG_BOOT_RAW=y
 CONFIG_BPF=y
-# CONFIG_BPF_JIT is not set
+CONFIG_BPF_JIT=y
 CONFIG_BPF_SYSCALL=y
 # CONFIG_BPQETHER is not set
 CONFIG_BQL=y
@@ -1113,6 +1113,7 @@ CONFIG_DQL=y
 # CONFIG_DRM_RADEON is not set
 # CONFIG_DRM_SII902X is not set
 # CONFIG_DRM_STI is not set
+# CONFIG_DRM_SUN4I is not set
 # CONFIG_DRM_TILCDC is not set
 # CONFIG_DRM_TOSHIBA_TC358767 is not set
 # CONFIG_DRM_UDL is not set
index f11cb2b49c5e5fc611294a3d92ec66382ec0cdc8..5cbee79740dd6c898d51da95dc25c3d71fe65531 100644 (file)
@@ -40,9 +40,9 @@ static int ath9k_pci_fixup(struct pci_dev *pdev, const u16 *cal_data,
        void __iomem *mem;
        const void *cal_end = (void *)cal_data + cal_len;
        const struct {
-               __be16 reg;
-               __be16 low_val;
-               __be16 high_val;
+               u16 reg;
+               u16 low_val;
+               u16 high_val;
        } __packed *data;
        u16 cmd;
        u32 bar0;
@@ -75,14 +75,14 @@ static int ath9k_pci_fixup(struct pci_dev *pdev, const u16 *cal_data,
 
        /* set pointer to first reg address */
        for (data = (const void *) (cal_data + 3);
-            (const void *) data <= cal_end && data->reg != cpu_to_be16(~0);
+            (const void *) data <= cal_end && data->reg != ~0;
             data++) {
                u32 val;
                u16 reg;
 
                reg = data->reg;
                val = data->low_val;
-               val |= data->high_val << 16;
+               val |= ((u32)data->high_val) << 16;
 
                if (swap_needed) {
                        reg = swab16(reg);
index e9b83149787f758689e88f0f6947f62371625ef2..bc2705ffad59f7e845edbb3990ec9b07ba239206 100644 (file)
@@ -359,9 +359,19 @@ mtdsplit_uimage_parse_edimax(struct mtd_info *master,
                                       uimage_find_edimax);
 }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
+static const struct of_device_id mtdsplit_uimage_edimax_of_match_table[] = {
+       { .compatible = "edimax,uimage" },
+       {},
+};
+#endif
+
 static struct mtd_part_parser uimage_edimax_parser = {
        .owner = THIS_MODULE,
        .name = "edimax-fw",
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
+       .of_match_table = mtdsplit_uimage_edimax_of_match_table,
+#endif
        .parse_fn = mtdsplit_uimage_parse_edimax,
        .type = MTD_PARSER_TYPE_FIRMWARE,
 };
index db65062fcf7fa67c03460817c1b353fe9fa0fe35..dce9c48473111e192e4505ae388f43555062c4c3 100644 (file)
@@ -114,7 +114,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  config MODULES_TREE_LOOKUP
 --- a/kernel/module.c
 +++ b/kernel/module.c
-@@ -3006,9 +3006,11 @@ static struct module *setup_load_info(st
+@@ -3008,9 +3008,11 @@ static struct module *setup_load_info(st
  
  static int check_modinfo(struct module *mod, struct load_info *info, int flags)
  {
@@ -127,7 +127,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (flags & MODULE_INIT_IGNORE_VERMAGIC)
                modmagic = NULL;
  
-@@ -3029,6 +3031,7 @@ static int check_modinfo(struct module *
+@@ -3031,6 +3033,7 @@ static int check_modinfo(struct module *
                                mod->name);
                add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
        }
@@ -137,7 +137,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/scripts/mod/modpost.c
 +++ b/scripts/mod/modpost.c
-@@ -1982,7 +1982,9 @@ static void read_symbols(char *modname)
+@@ -1984,7 +1984,9 @@ static void read_symbols(char *modname)
                symname = remove_dot(info.strtab + sym->st_name);
  
                handle_modversions(mod, &info, sym, symname);
@@ -147,7 +147,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        }
        if (!is_vmlinux(modname) ||
             (is_vmlinux(modname) && vmlinux_section_warnings))
-@@ -2143,8 +2145,10 @@ static void add_header(struct buffer *b,
+@@ -2145,8 +2147,10 @@ static void add_header(struct buffer *b,
        buf_printf(b, "#include <linux/vermagic.h>\n");
        buf_printf(b, "#include <linux/compiler.h>\n");
        buf_printf(b, "\n");
@@ -158,7 +158,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        buf_printf(b, "\n");
        buf_printf(b, "__visible struct module __this_module\n");
        buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n");
-@@ -2161,8 +2165,10 @@ static void add_header(struct buffer *b,
+@@ -2163,8 +2167,10 @@ static void add_header(struct buffer *b,
  
  static void add_intree_flag(struct buffer *b, int is_intree)
  {
@@ -169,7 +169,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  /* Cannot check for assembler */
-@@ -2175,10 +2181,12 @@ static void add_retpoline(struct buffer
+@@ -2177,10 +2183,12 @@ static void add_retpoline(struct buffer
  
  static void add_staging_flag(struct buffer *b, const char *name)
  {
@@ -182,7 +182,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  /**
-@@ -2277,11 +2285,13 @@ static void add_depends(struct buffer *b
+@@ -2279,11 +2287,13 @@ static void add_depends(struct buffer *b
  
  static void add_srcversion(struct buffer *b, struct module *mod)
  {
@@ -196,7 +196,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  static void write_if_changed(struct buffer *b, const char *fname)
-@@ -2518,7 +2528,9 @@ int main(int argc, char **argv)
+@@ -2520,7 +2530,9 @@ int main(int argc, char **argv)
                add_staging_flag(&buf, mod->name);
                err |= add_versions(&buf, mod);
                add_depends(&buf, mod, modules);
index 458b7c35a1749a2cfb98e33e9285fa572eb354e9..59dfbf3ad2dcc6caf6fa4e00adb88c5ad08492f3 100644 (file)
@@ -21,22 +21,19 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 -      default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_SPMI || REGMAP_W1 || REGMAP_AC97 || REGMAP_MMIO || REGMAP_IRQ)
        select IRQ_DOMAIN if REGMAP_IRQ
 -      bool
-+      tristate "Regmap"
++      tristate
  
  config REGCACHE_COMPRESSED
        select LZO_COMPRESS
-@@ -17,23 +16,30 @@ config REGMAP_AC97
-       tristate
+@@ -18,22 +17,29 @@ config REGMAP_AC97
  
  config REGMAP_I2C
--      tristate
-+      tristate "Regmap I2C"
+       tristate
 +      select REGMAP
        depends on I2C
  
  config REGMAP_SPI
--      tristate
-+      tristate "Regmap SPI"
+       tristate
 +      select REGMAP
 +      depends on SPI_MASTER
        depends on SPI
@@ -52,8 +49,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        depends on W1
  
  config REGMAP_MMIO
--      tristate
-+      tristate "Regmap MMIO"
+       tristate
 +      select REGMAP
  
  config REGMAP_IRQ
index 064f7fa08e36207e7758c514eac4a7a2f1ebd509..531cb25447ca892df31cfa9ce46284ab5441f7b2 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1158,6 +1158,10 @@ config SYNC_R4K
+@@ -1161,6 +1161,10 @@ config SYNC_R4K
  config MIPS_MACHINE
        def_bool n
  
index 2044bfaeb8a6509eba456bf01d4357fe129686cc..b78ba1f53f52c566a4d2728511ac3717d5f9769f 100644 (file)
@@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o
 --- /dev/null
 +++ b/net/netfilter/xt_FLOWOFFLOAD.c
-@@ -0,0 +1,368 @@
+@@ -0,0 +1,403 @@
 +/*
 + * Copyright (C) 2018 Felix Fietkau <nbd@nbd.name>
 + *
@@ -113,6 +113,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +#include <net/ip.h>
 +#include <net/netfilter/nf_conntrack.h>
 +#include <net/netfilter/nf_flow_table.h>
++#include <net/netfilter/nf_conntrack_helper.h>
 +
 +static struct nf_flowtable nf_flowtable;
 +static HLIST_HEAD(hooks);
@@ -346,6 +347,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +      struct nf_flow_route route;
 +      struct flow_offload *flow;
 +      struct nf_conn *ct;
++      const struct nf_conn_help *help;
 +
 +      if (xt_flowoffload_skip(skb))
 +              return XT_CONTINUE;
@@ -365,7 +367,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +              return XT_CONTINUE;
 +      }
 +
-+      if (test_bit(IPS_HELPER_BIT, &ct->status))
++      help = nfct_help(ct);
++      if (help)
 +              return XT_CONTINUE;
 +
 +      if (ctinfo == IP_CT_NEW ||
@@ -441,10 +444,41 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +      nf_flow_table_free(table);
 +}
 +
++static int flow_offload_netdev_event(struct notifier_block *this,
++                                   unsigned long event, void *ptr)
++{
++      struct xt_flowoffload_hook *hook = NULL;
++      struct net_device *dev = netdev_notifier_info_to_dev(ptr);
++
++      if (event != NETDEV_UNREGISTER)
++              return NOTIFY_DONE;
++
++      spin_lock_bh(&hooks_lock);
++      hook = flow_offload_lookup_hook(dev);
++      if (hook) {
++              hlist_del(&hook->list);
++      }
++      spin_unlock_bh(&hooks_lock);
++      if (hook) {
++              nf_unregister_net_hook(hook->net, &hook->ops);
++              kfree(hook);
++      }
++
++      nf_flow_table_cleanup(dev_net(dev), dev);
++
++      return NOTIFY_DONE;
++}
++
++static struct notifier_block flow_offload_netdev_notifier = {
++      .notifier_call  = flow_offload_netdev_event,
++};
++
 +static int __init xt_flowoffload_tg_init(void)
 +{
 +      int ret;
 +
++      register_netdevice_notifier(&flow_offload_netdev_notifier);
++
 +      INIT_DELAYED_WORK(&hook_work, xt_flowoffload_hook_work);
 +
 +      ret = xt_flowoffload_table_init(&nf_flowtable);
@@ -462,6 +496,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +{
 +      xt_unregister_target(&offload_tg_reg);
 +      xt_flowoffload_table_cleanup(&nf_flowtable);
++      unregister_netdevice_notifier(&flow_offload_netdev_notifier);
 +}
 +
 +MODULE_LICENSE("GPL");
index d27d94e0469378fe1377d3bb2294b4ca20e1a38a..e3c1c34a4fe3494540fc0fc590a21c8c08d32f84 100644 (file)
@@ -15,23 +15,23 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1410,6 +1410,7 @@ enum netdev_priv_flags {
-       IFF_RXFH_CONFIGURED             = 1<<25,
+@@ -1412,6 +1412,7 @@ enum netdev_priv_flags {
        IFF_PHONY_HEADROOM              = 1<<26,
        IFF_MACSEC                      = 1<<27,
-+      IFF_NO_IP_ALIGN                 = 1<<28,
+       IFF_L3MDEV_RX_HANDLER           = 1<<28,
++      IFF_NO_IP_ALIGN                 = 1<<29,
  };
  
  #define IFF_802_1Q_VLAN                       IFF_802_1Q_VLAN
-@@ -1439,6 +1440,7 @@ enum netdev_priv_flags {
- #define IFF_TEAM                      IFF_TEAM
+@@ -1442,6 +1443,7 @@ enum netdev_priv_flags {
  #define IFF_RXFH_CONFIGURED           IFF_RXFH_CONFIGURED
  #define IFF_MACSEC                    IFF_MACSEC
+ #define IFF_L3MDEV_RX_HANDLER         IFF_L3MDEV_RX_HANDLER
 +#define IFF_NO_IP_ALIGN                       IFF_NO_IP_ALIGN
  
  /**
   *    struct net_device - The DEVICE structure.
-@@ -1725,6 +1727,11 @@ struct net_device {
+@@ -1728,6 +1730,11 @@ struct net_device {
        const struct xfrmdev_ops *xfrmdev_ops;
  #endif
  
@@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        const struct header_ops *header_ops;
  
        unsigned int            flags;
-@@ -1794,6 +1801,10 @@ struct net_device {
+@@ -1797,6 +1804,10 @@ struct net_device {
        struct mpls_dev __rcu   *mpls_ptr;
  #endif
  
@@ -136,7 +136,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  #include <net/protocol.h>
  #include <net/dst.h>
-@@ -499,6 +500,22 @@ skb_fail:
+@@ -503,6 +504,22 @@ skb_fail:
  }
  EXPORT_SYMBOL(__napi_alloc_skb);
  
index d250843a6a26397bde4d44dfc3f6c008e5c65df2..36d69c1dfde9e1d703369e2ff5f690de29f719eb 100644 (file)
@@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  struct dst_entry *__sk_dst_check(struct sock *sk, u32 cookie)
  {
        struct dst_entry *dst = __sk_dst_get(sk);
-@@ -1595,9 +1607,11 @@ void sk_destruct(struct sock *sk)
+@@ -1596,9 +1608,11 @@ void sk_destruct(struct sock *sk)
  
  static void __sk_free(struct sock *sk)
  {
index 092f0aa81bcf349e51e0b8a1fbb0d14be1c951b2..94553805685af2491afdb39dadd0280c5a201d1b 100644 (file)
@@ -327,7 +327,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -3381,6 +3381,8 @@ static __net_initdata struct pernet_oper
+@@ -3382,6 +3382,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
@@ -338,7 +338,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2731,10 +2731,12 @@ static const struct file_operations fib_
+@@ -2740,10 +2740,12 @@ static const struct file_operations fib_
  
  int __net_init fib_proc_init(struct net *net)
  {
@@ -353,7 +353,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                         &fib_triestat_fops))
                goto out2;
  
-@@ -2744,17 +2746,21 @@ int __net_init fib_proc_init(struct net
+@@ -2753,17 +2755,21 @@ int __net_init fib_proc_init(struct net
        return 0;
  
  out3:
index abacfc390ad8b6744eee5564a5db1ac34345d846..19400af189653bedf47455a432019dc62db050a9 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #ifdef CONFIG_UEVENT_HELPER
  /* path to the userspace helper executed on an event */
  extern char uevent_helper[];
-@@ -224,4 +226,7 @@ int kobject_synth_uevent(struct kobject
+@@ -241,4 +243,7 @@ int kobject_synth_uevent(struct kobject
  __printf(2, 3)
  int add_uevent_var(struct kobj_uevent_env *env, const char *format, ...);
  
diff --git a/target/linux/generic/hack-4.14/940-cleanup-offload-hooks-on-netdev-unregister.patch b/target/linux/generic/hack-4.14/940-cleanup-offload-hooks-on-netdev-unregister.patch
deleted file mode 100644 (file)
index 6638a5e..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-From ae56e27e30122f82d244f9eb35fcab8fa60e0d31 Mon Sep 17 00:00:00 2001
-From: Chen Minqiang <ptpt52@gmail.com>
-Date: Sun, 29 Apr 2018 14:08:57 +0800
-Subject: [PATCH] cleanup offload hooks on netdev unregister
-
-This should fix crashdump on reboot when FLOWOFFLOAD enabled
-
-kmsg:
-[   84.188081] Workqueue: events_power_efficient xt_flowoffload_hook_work [xt_FLOWOFFLOAD]
-[   84.209326] task: ffff88000ecd0c80 task.stack: ffffc90000068000
-[   84.224706] RIP: 0010:__nf_unregister_net_hook+0x1/0x90
-[   84.242911] RSP: 0018:ffffc9000006be30 EFLAGS: 00010202
-[   84.257405] RAX: 0000000000000000 RBX: ffff88000c5b3228 RCX: 0000000100170001
-[   84.292175] RDX: ffff88000ecd0c80 RSI: ffff88000c5b3228 RDI: 6b6b6b6b6b6b6b6b
-[   84.305095] RBP: ffffc9000006be58 R08: ffff88000c5b3578 R09: ffff88000c5b3538
-[   84.325980] R10: ffffc9000006be50 R11: ffff88000fc1f310 R12: ffffffff81e6c580
-[   84.396514] R13: ffff88000d1723d0 R14: ffff88000ec0fc00 R15: 0000000000000000
-[   84.459500] FS:  0000000000000000(0000) GS:ffff88000fc00000(0000) knlGS:0000000000000000
-[   84.525121] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
-[   84.565460] CR2: 0000000000a931d8 CR3: 0000000001e08006 CR4: 00000000000606f0
-[   84.638311] Call Trace:
-[   84.655229]  ? nf_unregister_net_hook+0x88/0xd0
-[   84.706898]  xt_flowoffload_hook_work+0x12a/0x17a [xt_FLOWOFFLOAD]
-[   84.765504]  process_one_work+0x1c4/0x310
-[   84.799558]  worker_thread+0x20b/0x3c0
-[   84.850119]  kthread+0x112/0x120
-[   84.884839]  ? process_one_work+0x310/0x310
-[   84.923571]  ? kthread_create_on_node+0x40/0x40
-[   84.966100]  ret_from_fork+0x35/0x40
-[   84.981738] Code: 41 5c 41 5d 41 5e 41 5f 5d c3 48 8b 05 c1 f1 99 00 55 48 89 e5 48 85 c0 75 02 0f 0b e8 b9 f6 30 00 5d c3 0f 1f 80 00 00 00 00 55 <0f> b7 0f 48 89 e5 48 89 c8 48 c1 e0 04 48 8d 54 07 08 31 c0 eb
-[   85.100453] RIP: __nf_unregister_net_hook+0x1/0x90 RSP: ffffc9000006be30
-[   85.111658] ---[ end trace 5c25a390045cac75 ]---
-[   85.124535] Kernel panic - not syncing: Fatal exception
-
-Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
----
- net/netfilter/xt_FLOWOFFLOAD.c | 32 ++++++++++++++++++++++++++++++++
- 1 file changed, 32 insertions(+)
-
---- a/net/netfilter/xt_FLOWOFFLOAD.c
-+++ b/net/netfilter/xt_FLOWOFFLOAD.c
-@@ -340,10 +340,41 @@ static void xt_flowoffload_table_cleanup
-       nf_flow_table_free(table);
- }
-+static int flow_offload_netdev_event(struct notifier_block *this,
-+                                   unsigned long event, void *ptr)
-+{
-+      struct xt_flowoffload_hook *hook = NULL;
-+      struct net_device *dev = netdev_notifier_info_to_dev(ptr);
-+
-+      if (event != NETDEV_UNREGISTER)
-+              return NOTIFY_DONE;
-+
-+      spin_lock_bh(&hooks_lock);
-+      hook = flow_offload_lookup_hook(dev);
-+      if (hook) {
-+              hlist_del(&hook->list);
-+      }
-+      spin_unlock_bh(&hooks_lock);
-+      if (hook) {
-+              nf_unregister_net_hook(hook->net, &hook->ops);
-+              kfree(hook);
-+      }
-+
-+      nf_flow_table_cleanup(dev_net(dev), dev);
-+
-+      return NOTIFY_DONE;
-+}
-+
-+static struct notifier_block flow_offload_netdev_notifier = {
-+      .notifier_call  = flow_offload_netdev_event,
-+};
-+
- static int __init xt_flowoffload_tg_init(void)
- {
-       int ret;
-+      register_netdevice_notifier(&flow_offload_netdev_notifier);
-+
-       INIT_DELAYED_WORK(&hook_work, xt_flowoffload_hook_work);
-       ret = xt_flowoffload_table_init(&nf_flowtable);
-@@ -361,6 +392,7 @@ static void __exit xt_flowoffload_tg_exi
- {
-       xt_unregister_target(&offload_tg_reg);
-       xt_flowoffload_table_cleanup(&nf_flowtable);
-+      unregister_netdevice_notifier(&flow_offload_netdev_notifier);
- }
- MODULE_LICENSE("GPL");
diff --git a/target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch b/target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch
deleted file mode 100644 (file)
index e24cac3..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-From 38a3549ffc0033761063cc5c7b994ab075694db8 Mon Sep 17 00:00:00 2001
-From: Christian Lamparter <chunkeey@gmail.com>
-Date: Tue, 25 Dec 2018 21:11:08 +0100
-Subject: [RFC PATCH] leds: fix regression in usbport led trigger
-
-In the patch "usb: simplify usbport trigger" together with
-"leds: triggers: add device attribute support" caused an
-regression for the usbport trigger. it will no longer
-enumerate any "ports" (i.e the sysfs directory stays empty)
-if the usb host drivers are fully initialized before the
-usbport trigger was loaded.
-
-The reason is that the usbport driver registers the sysfs
-entries in the ports subdirectory during the activate()
-callback. Whereas the patch
-"leds: triggers: add device attribute support" made it so
-that the sysfs "ports" group was only being added after
-the activate() callback succeeded.
-
-This patch moves the device_add_groups() in front of the
-call to the trigger's activate() function in order to
-solve the problem.
-
-Fixes: 6f7b0bad8839 ("usb: simplify usbport trigger")
-Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
----
- drivers/leds/led-triggers.c | 19 ++++++++++---------
- 1 file changed, 10 insertions(+), 9 deletions(-)
-
---- a/drivers/leds/led-triggers.c
-+++ b/drivers/leds/led-triggers.c
-@@ -134,6 +134,12 @@ int led_trigger_set(struct led_classdev
-               led_set_brightness(led_cdev, LED_OFF);
-       }
-       if (trig) {
-+              ret = device_add_groups(led_cdev->dev, trig->groups);
-+              if (ret) {
-+                      dev_err(led_cdev->dev, "Failed to add trigger attributes\n");
-+                      goto err_add_groups;
-+              }
-+
-               write_lock_irqsave(&trig->leddev_list_lock, flags);
-               list_add_tail(&led_cdev->trig_list, &trig->led_cdevs);
-               write_unlock_irqrestore(&trig->leddev_list_lock, flags);
-@@ -146,12 +152,6 @@ int led_trigger_set(struct led_classdev
-               if (ret)
-                       goto err_activate;
--
--              ret = device_add_groups(led_cdev->dev, trig->groups);
--              if (ret) {
--                      dev_err(led_cdev->dev, "Failed to add trigger attributes\n");
--                      goto err_add_groups;
--              }
-       }
-       if (event) {
-@@ -165,17 +165,18 @@ int led_trigger_set(struct led_classdev
-       return 0;
--err_add_groups:
--
-+err_activate:
-+      device_remove_groups(led_cdev->dev, trig->groups);
-       if (trig->deactivate)
-               trig->deactivate(led_cdev);
--err_activate:
-       led_cdev->trigger = NULL;
-       led_cdev->trigger_data = NULL;
-       write_lock_irqsave(&led_cdev->trigger->leddev_list_lock, flags);
-       list_del(&led_cdev->trig_list);
-       write_unlock_irqrestore(&led_cdev->trigger->leddev_list_lock, flags);
-+
-+err_add_groups:
-       led_set_brightness(led_cdev, LED_OFF);
-       return ret;
index 9a62a812cd224afc566b9332d87387808cf57547..7fa5d8ddbc02da96762659fe0c027870a9fd8b8d 100644 (file)
@@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1993,6 +1993,13 @@ config TRIM_UNUSED_KSYMS
+@@ -1994,6 +1994,13 @@ config TRIM_UNUSED_KSYMS
  
          If unsure, or if you need to build out-of-tree modules, say N.
  
@@ -114,7 +114,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  config MODULES_TREE_LOOKUP
 --- a/kernel/module.c
 +++ b/kernel/module.c
-@@ -3002,9 +3002,11 @@ static int setup_load_info(struct load_i
+@@ -3004,9 +3004,11 @@ static int setup_load_info(struct load_i
  
  static int check_modinfo(struct module *mod, struct load_info *info, int flags)
  {
@@ -127,7 +127,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (flags & MODULE_INIT_IGNORE_VERMAGIC)
                modmagic = NULL;
  
-@@ -3025,6 +3027,7 @@ static int check_modinfo(struct module *
+@@ -3027,6 +3029,7 @@ static int check_modinfo(struct module *
                                mod->name);
                add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
        }
@@ -137,7 +137,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/scripts/mod/modpost.c
 +++ b/scripts/mod/modpost.c
-@@ -1969,7 +1969,9 @@ static void read_symbols(const char *mod
+@@ -1971,7 +1971,9 @@ static void read_symbols(const char *mod
                symname = remove_dot(info.strtab + sym->st_name);
  
                handle_modversions(mod, &info, sym, symname);
@@ -147,7 +147,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        }
        if (!is_vmlinux(modname) || vmlinux_section_warnings)
                check_sec_ref(mod, modname, &info);
-@@ -2132,8 +2134,10 @@ static void add_header(struct buffer *b,
+@@ -2134,8 +2136,10 @@ static void add_header(struct buffer *b,
        buf_printf(b, "\n");
        buf_printf(b, "BUILD_SALT;\n");
        buf_printf(b, "\n");
@@ -158,7 +158,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        buf_printf(b, "\n");
        buf_printf(b, "__visible struct module __this_module\n");
        buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n");
-@@ -2150,8 +2154,10 @@ static void add_header(struct buffer *b,
+@@ -2152,8 +2156,10 @@ static void add_header(struct buffer *b,
  
  static void add_intree_flag(struct buffer *b, int is_intree)
  {
@@ -169,7 +169,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  /* Cannot check for assembler */
-@@ -2164,8 +2170,10 @@ static void add_retpoline(struct buffer
+@@ -2166,8 +2172,10 @@ static void add_retpoline(struct buffer
  
  static void add_staging_flag(struct buffer *b, const char *name)
  {
@@ -180,7 +180,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  /**
-@@ -2264,11 +2272,13 @@ static void add_depends(struct buffer *b
+@@ -2266,11 +2274,13 @@ static void add_depends(struct buffer *b
  
  static void add_srcversion(struct buffer *b, struct module *mod)
  {
@@ -194,7 +194,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  static void write_if_changed(struct buffer *b, const char *fname)
-@@ -2505,7 +2515,9 @@ int main(int argc, char **argv)
+@@ -2507,7 +2517,9 @@ int main(int argc, char **argv)
                add_staging_flag(&buf, mod->name);
                err |= add_versions(&buf, mod);
                add_depends(&buf, mod, modules);
index 1c5e1164e26f8752ec451267975ba03a51d699a8..335ec4afc581c62779cbf86306fcb0e668833988 100644 (file)
@@ -21,26 +21,22 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 -      default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_SPMI || REGMAP_W1 || REGMAP_AC97 || REGMAP_MMIO || REGMAP_IRQ)
        select IRQ_DOMAIN if REGMAP_IRQ
 -      bool
-+      tristate "Regmap"
++      tristate
  
  config REGCACHE_COMPRESSED
        select LZO_COMPRESS
-@@ -17,7 +16,8 @@ config REGMAP_AC97
-       tristate
+@@ -18,6 +17,7 @@ config REGMAP_AC97
  
  config REGMAP_I2C
--      tristate
-+      tristate "Regmap I2C"
+       tristate
 +      select REGMAP
        depends on I2C
  
  config REGMAP_SLIMBUS
-@@ -25,21 +25,27 @@ config REGMAP_SLIMBUS
-       depends on SLIMBUS
+@@ -26,20 +26,26 @@ config REGMAP_SLIMBUS
  
  config REGMAP_SPI
--      tristate
-+      tristate "Regmap SPI"
+       tristate
 +      select REGMAP
 +      depends on SPI_MASTER
        depends on SPI
@@ -56,8 +52,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        depends on W1
  
  config REGMAP_MMIO
--      tristate
-+      tristate "Regmap MMIO"
+       tristate
 +      select REGMAP
  
  config REGMAP_IRQ
index e4cc4a8b822fbadbcf72b0ca73fd2763ca3e0f17..3cd69426abf8d6b2d155c3aca12dec0b63f9e082 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1140,6 +1140,10 @@ config SYNC_R4K
+@@ -1143,6 +1143,10 @@ config SYNC_R4K
  config MIPS_MACHINE
        def_bool n
  
index 108aba121dfe377ab9f41f687e647432b77d4f4a..421afbca1834140995356d46b3f4cdbb4ace3e7d 100644 (file)
@@ -15,23 +15,23 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1510,6 +1510,7 @@ enum netdev_priv_flags {
-       IFF_NO_RX_HANDLER               = 1<<26,
+@@ -1512,6 +1512,7 @@ enum netdev_priv_flags {
        IFF_FAILOVER                    = 1<<27,
        IFF_FAILOVER_SLAVE              = 1<<28,
-+      IFF_NO_IP_ALIGN                 = 1<<29,
+       IFF_L3MDEV_RX_HANDLER           = 1<<29,
++      IFF_NO_IP_ALIGN                 = 1<<30,
  };
  
  #define IFF_802_1Q_VLAN                       IFF_802_1Q_VLAN
-@@ -1540,6 +1541,7 @@ enum netdev_priv_flags {
- #define IFF_NO_RX_HANDLER             IFF_NO_RX_HANDLER
+@@ -1543,6 +1544,7 @@ enum netdev_priv_flags {
  #define IFF_FAILOVER                  IFF_FAILOVER
  #define IFF_FAILOVER_SLAVE            IFF_FAILOVER_SLAVE
+ #define IFF_L3MDEV_RX_HANDLER         IFF_L3MDEV_RX_HANDLER
 +#define IFF_NO_IP_ALIGN                       IFF_NO_IP_ALIGN
  
  /**
   *    struct net_device - The DEVICE structure.
-@@ -1838,6 +1840,11 @@ struct net_device {
+@@ -1841,6 +1843,11 @@ struct net_device {
        const struct tlsdev_ops *tlsdev_ops;
  #endif
  
@@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        const struct header_ops *header_ops;
  
        unsigned int            flags;
-@@ -1913,6 +1920,10 @@ struct net_device {
+@@ -1916,6 +1923,10 @@ struct net_device {
        struct mpls_dev __rcu   *mpls_ptr;
  #endif
  
@@ -136,7 +136,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  #include <net/protocol.h>
  #include <net/dst.h>
-@@ -499,6 +500,22 @@ skb_fail:
+@@ -503,6 +504,22 @@ skb_fail:
  }
  EXPORT_SYMBOL(__napi_alloc_skb);
  
index e949964cbfefc9bc56ca770c1852c791ad953feb..33c8b7231779472e58cb33a92e5647321fd5921b 100644 (file)
@@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  struct dst_entry *__sk_dst_check(struct sock *sk, u32 cookie)
  {
        struct dst_entry *dst = __sk_dst_get(sk);
-@@ -1600,9 +1612,11 @@ static void __sk_free(struct sock *sk)
+@@ -1601,9 +1613,11 @@ static void __sk_free(struct sock *sk)
        if (likely(sk->sk_net_refcnt))
                sock_inuse_add(sock_net(sk), -1);
  
index b4eccd3a414278e13fb2d8532fe56cbc802d9e33..018efda8f77420d0d433a5683126c25060c6915a 100644 (file)
@@ -327,7 +327,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -3482,6 +3482,8 @@ static __net_initdata struct pernet_oper
+@@ -3483,6 +3483,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
@@ -338,7 +338,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2708,11 +2708,13 @@ static const struct seq_operations fib_r
+@@ -2717,11 +2717,13 @@ static const struct seq_operations fib_r
  
  int __net_init fib_proc_init(struct net *net)
  {
@@ -354,7 +354,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                        fib_triestat_seq_show, NULL))
                goto out2;
  
-@@ -2723,17 +2725,21 @@ int __net_init fib_proc_init(struct net
+@@ -2732,17 +2734,21 @@ int __net_init fib_proc_init(struct net
        return 0;
  
  out3:
index c6484a8f92ced74863b17f76a1f332edd10bc63e..fcca6bd02c6114747e06d72cb8914a8fdff49bd0 100644 (file)
@@ -137,7 +137,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/scripts/mod/modpost.c
 +++ b/scripts/mod/modpost.c
-@@ -1965,7 +1965,9 @@ static void read_symbols(char *modname)
+@@ -1967,7 +1967,9 @@ static void read_symbols(char *modname)
                symname = remove_dot(info.strtab + sym->st_name);
  
                handle_modversions(mod, &info, sym, symname);
@@ -147,7 +147,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        }
        if (!is_vmlinux(modname) ||
             (is_vmlinux(modname) && vmlinux_section_warnings))
-@@ -2109,7 +2111,9 @@ static void add_header(struct buffer *b,
+@@ -2111,7 +2113,9 @@ static void add_header(struct buffer *b,
        buf_printf(b, "#include <linux/vermagic.h>\n");
        buf_printf(b, "#include <linux/compiler.h>\n");
        buf_printf(b, "\n");
@@ -157,7 +157,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        buf_printf(b, "\n");
        buf_printf(b, "__visible struct module __this_module\n");
        buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n");
-@@ -2126,24 +2130,30 @@ static void add_header(struct buffer *b,
+@@ -2128,24 +2132,30 @@ static void add_header(struct buffer *b,
  
  static void add_intree_flag(struct buffer *b, int is_intree)
  {
@@ -188,7 +188,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  /* In kernel, this size is defined in linux/module.h;
-@@ -2247,11 +2257,13 @@ static void add_depends(struct buffer *b
+@@ -2249,11 +2259,13 @@ static void add_depends(struct buffer *b
  
  static void add_srcversion(struct buffer *b, struct module *mod)
  {
@@ -202,7 +202,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  static void write_if_changed(struct buffer *b, const char *fname)
-@@ -2486,7 +2498,9 @@ int main(int argc, char **argv)
+@@ -2488,7 +2500,9 @@ int main(int argc, char **argv)
                add_staging_flag(&buf, mod->name);
                err |= add_versions(&buf, mod);
                add_depends(&buf, mod, modules);
index 85c9d791593dbe64e954cb95635236ae03e4818c..237c2099e9b5292ea5aa4a61a8b64f432a2c974e 100644 (file)
@@ -21,22 +21,19 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 -      default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_SPMI || REGMAP_AC97 || REGMAP_MMIO || REGMAP_IRQ)
        select IRQ_DOMAIN if REGMAP_IRQ
 -      bool
-+      tristate "Regmap"
++      tristate
  
  config REGCACHE_COMPRESSED
        select LZO_COMPRESS
-@@ -16,19 +15,25 @@ config REGMAP_AC97
-       tristate
+@@ -17,18 +16,24 @@ config REGMAP_AC97
  
  config REGMAP_I2C
--      tristate
-+      tristate "Regmap I2C"
+       tristate
 +      select REGMAP
        depends on I2C
  
  config REGMAP_SPI
--      tristate
-+      tristate "Regmap SPI"
+       tristate
 +      select REGMAP
 +      depends on SPI_MASTER
        depends on SPI
@@ -47,8 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        depends on SPMI
  
  config REGMAP_MMIO
--      tristate
-+      tristate "Regmap MMIO"
+       tristate
 +      select REGMAP
  
  config REGMAP_IRQ
index d1db376e4205323e57198bf7cc6fbb212a602c77..948343600d00f91e42889658a57af1eedec40212 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1156,6 +1156,10 @@ config SYNC_R4K
+@@ -1159,6 +1159,10 @@ config SYNC_R4K
  config MIPS_MACHINE
        def_bool n
  
index c545fa17ef8b47ae43e83a59329364db1f7fd1b0..a436dd2b1e0a85979bad5578c0958b6d52332b07 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/bridge/br_forward.c
 +++ b/net/bridge/br_forward.c
-@@ -141,6 +141,9 @@ static int deliver_clone(const struct ne
+@@ -140,6 +140,9 @@ static int deliver_clone(const struct ne
  void br_forward(const struct net_bridge_port *to,
                struct sk_buff *skb, bool local_rcv, bool local_orig)
  {
@@ -35,7 +35,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (to && should_deliver(to, skb)) {
                if (local_rcv)
                        deliver_clone(to, skb, local_orig);
-@@ -206,6 +209,8 @@ void br_flood(struct net_bridge *br, str
+@@ -205,6 +208,8 @@ void br_flood(struct net_bridge *br, str
        struct net_bridge_port *p;
  
        list_for_each_entry_rcu(p, &br->port_list, list) {
index 981170cbb1e2b868d9a0c1626fd12c6f4a9aec68..34fc2a37c3f19c0f982a1c9a3ae0c047a3ce60da 100644 (file)
@@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
          device, it has to decide which ones to send first, which ones to
 --- a/net/sched/sch_api.c
 +++ b/net/sched/sch_api.c
-@@ -1978,7 +1978,7 @@ static int __init pktsched_init(void)
+@@ -1977,7 +1977,7 @@ static int __init pktsched_init(void)
                return err;
        }
  
index b25fdec47a4f54e90d5bbbd7184912e9fa10ec6c..d22c8730325f32845cd8f0f1fa1494562cb25650 100644 (file)
@@ -15,23 +15,23 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1398,6 +1398,7 @@ enum netdev_priv_flags {
-       IFF_RXFH_CONFIGURED             = 1<<25,
+@@ -1400,6 +1400,7 @@ enum netdev_priv_flags {
        IFF_PHONY_HEADROOM              = 1<<26,
        IFF_MACSEC                      = 1<<27,
-+      IFF_NO_IP_ALIGN                 = 1<<28,
+       IFF_L3MDEV_RX_HANDLER           = 1<<28,
++      IFF_NO_IP_ALIGN                 = 1<<29,
  };
  
  #define IFF_802_1Q_VLAN                       IFF_802_1Q_VLAN
-@@ -1427,6 +1428,7 @@ enum netdev_priv_flags {
- #define IFF_TEAM                      IFF_TEAM
+@@ -1430,6 +1431,7 @@ enum netdev_priv_flags {
  #define IFF_RXFH_CONFIGURED           IFF_RXFH_CONFIGURED
  #define IFF_MACSEC                    IFF_MACSEC
+ #define IFF_L3MDEV_RX_HANDLER         IFF_L3MDEV_RX_HANDLER
 +#define IFF_NO_IP_ALIGN                       IFF_NO_IP_ALIGN
  
  /**
   *    struct net_device - The DEVICE structure.
-@@ -1713,6 +1715,11 @@ struct net_device {
+@@ -1716,6 +1718,11 @@ struct net_device {
        const struct ndisc_ops *ndisc_ops;
  #endif
  
@@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        const struct header_ops *header_ops;
  
        unsigned int            flags;
-@@ -1780,6 +1787,10 @@ struct net_device {
+@@ -1783,6 +1790,10 @@ struct net_device {
        struct mpls_dev __rcu   *mpls_ptr;
  #endif
  
@@ -136,7 +136,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  #include <net/protocol.h>
  #include <net/dst.h>
-@@ -529,6 +530,22 @@ skb_fail:
+@@ -533,6 +534,22 @@ skb_fail:
  }
  EXPORT_SYMBOL(__napi_alloc_skb);
  
index ed9c76326f38dc3313758e35958abade2b3250a4..1d33ab3e6fd9597c5f3c3df6e98baf35fc3df31b 100644 (file)
@@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  obj-$(CONFIG_PROC_FS) += net-procfs.o
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -1457,9 +1457,11 @@ void sk_destruct(struct sock *sk)
+@@ -1458,9 +1458,11 @@ void sk_destruct(struct sock *sk)
  
  static void __sk_free(struct sock *sk)
  {
index 9cdb3fb95e09a9326ea4fcf0ae792e15b67c91e1..91d1d283511b78e4db4be79eb839ad39d285a173 100644 (file)
@@ -328,7 +328,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -3087,6 +3087,8 @@ static __net_initdata struct pernet_oper
+@@ -3088,6 +3088,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
@@ -339,7 +339,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2667,10 +2667,12 @@ static const struct file_operations fib_
+@@ -2677,10 +2677,12 @@ static const struct file_operations fib_
  
  int __net_init fib_proc_init(struct net *net)
  {
@@ -354,7 +354,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                         &fib_triestat_fops))
                goto out2;
  
-@@ -2680,17 +2682,21 @@ int __net_init fib_proc_init(struct net
+@@ -2690,17 +2692,21 @@ int __net_init fib_proc_init(struct net
        return 0;
  
  out3:
index 55ce1715675a39059b5fdd0e943c968a27ee218c..d827ace9e00842ccd3f77881448f36f72f3ffef3 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #ifdef CONFIG_UEVENT_HELPER
  /* path to the userspace helper executed on an event */
  extern char uevent_helper[];
-@@ -222,4 +224,7 @@ int add_uevent_var(struct kobj_uevent_en
+@@ -239,4 +241,7 @@ int add_uevent_var(struct kobj_uevent_en
  int kobject_action_type(const char *buf, size_t count,
                        enum kobject_action *type);
  
index c008aea41dec5475b693111ccc116dc4de790c28..7a64ae7994676b25b0836f2b36bf634c5c239da3 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1450,6 +1450,7 @@ config CPU_CAVIUM_OCTEON
+@@ -1453,6 +1453,7 @@ config CPU_CAVIUM_OCTEON
        select CPU_SUPPORTS_HUGEPAGES
        select USB_EHCI_BIG_ENDIAN_MMIO
        select MIPS_L1_CACHE_SHIFT_7
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        help
          The Cavium Octeon processor is a highly integrated chip containing
          many ethernet hardware widgets for networking tasks. The processor
-@@ -1705,6 +1706,9 @@ config MIPS_MALTA_PM
+@@ -1708,6 +1709,9 @@ config MIPS_MALTA_PM
        bool
        default y
  
index 2df7ba01347ee7003fd4930ada711ea38432143a..dcad148792d12348b1b5003079d52f3fe2abf4f1 100644 (file)
@@ -123,7 +123,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        set_license(mod, get_modinfo(info, "license"));
 --- a/scripts/mod/modpost.c
 +++ b/scripts/mod/modpost.c
-@@ -1758,7 +1758,9 @@ static void read_symbols(char *modname)
+@@ -1760,7 +1760,9 @@ static void read_symbols(char *modname)
                symname = remove_dot(info.strtab + sym->st_name);
  
                handle_modversions(mod, &info, sym, symname);
@@ -133,7 +133,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        }
        if (!is_vmlinux(modname) ||
             (is_vmlinux(modname) && vmlinux_section_warnings))
-@@ -1902,7 +1904,9 @@ static void add_header(struct buffer *b,
+@@ -1904,7 +1906,9 @@ static void add_header(struct buffer *b,
        buf_printf(b, "#include <linux/vermagic.h>\n");
        buf_printf(b, "#include <linux/compiler.h>\n");
        buf_printf(b, "\n");
@@ -143,7 +143,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        buf_printf(b, "\n");
        buf_printf(b, "__visible struct module __this_module\n");
        buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n");
-@@ -1919,16 +1923,20 @@ static void add_header(struct buffer *b,
+@@ -1921,16 +1925,20 @@ static void add_header(struct buffer *b,
  
  static void add_intree_flag(struct buffer *b, int is_intree)
  {
@@ -164,7 +164,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  /**
-@@ -2021,11 +2029,13 @@ static void add_depends(struct buffer *b
+@@ -2023,11 +2031,13 @@ static void add_depends(struct buffer *b
  
  static void add_srcversion(struct buffer *b, struct module *mod)
  {
@@ -178,7 +178,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  static void write_if_changed(struct buffer *b, const char *fname)
-@@ -2256,7 +2266,9 @@ int main(int argc, char **argv)
+@@ -2258,7 +2268,9 @@ int main(int argc, char **argv)
                add_staging_flag(&buf, mod->name);
                err |= add_versions(&buf, mod);
                add_depends(&buf, mod, modules);
index 5e422ebd48434dd9003b9940593e324b3e214993..0748919e663f906fbee0cd803e179b2dffeb438b 100644 (file)
@@ -7,22 +7,19 @@
 -      default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_SPMI || REGMAP_MMIO || REGMAP_IRQ)
        select IRQ_DOMAIN if REGMAP_IRQ
 -      bool
-+      tristate "Regmap"
++      tristate
  
  config REGCACHE_COMPRESSED
        select LZO_COMPRESS
-@@ -13,19 +12,25 @@ config REGCACHE_COMPRESSED
-       bool
+@@ -14,18 +13,24 @@ config REGCACHE_COMPRESSED
  
  config REGMAP_I2C
--      tristate
-+      tristate "Regmap I2C"
+       tristate
 +      select REGMAP
        depends on I2C
  
  config REGMAP_SPI
--      tristate
-+      tristate "Regmap SPI"
+       tristate
 +      select REGMAP
 +      depends on SPI_MASTER
        depends on SPI
@@ -33,8 +30,7 @@
        depends on SPMI
  
  config REGMAP_MMIO
--      tristate
-+      tristate "Regmap MMIO"
+       tristate
 +      select REGMAP
  
  config REGMAP_IRQ
index 69d61f20a9e4eee4f5c458fbf07cd0975a858ba5..ab7c46f08789a6087aca999b3dbaf35242da7f35 100644 (file)
@@ -8,7 +8,7 @@ Acked-by: Rob Landley <rob@landley.net>
 ---
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -892,9 +892,6 @@ config FW_ARC
+@@ -895,9 +895,6 @@ config FW_ARC
  config ARCH_MAY_HAVE_PC_FDC
        bool
  
@@ -18,7 +18,7 @@ Acked-by: Rob Landley <rob@landley.net>
  config CEVT_BCM1480
        bool
  
-@@ -2503,6 +2500,18 @@ config USE_OF
+@@ -2506,6 +2503,18 @@ config USE_OF
  config BUILTIN_DTB
        bool
  
index 2282749a07f792b661c2ae07955501fa1af5e89e..68d28ff11240c4c285339476334513b3b700ddd0 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -988,6 +988,10 @@ config SYNC_R4K
+@@ -991,6 +991,10 @@ config SYNC_R4K
  config MIPS_MACHINE
        def_bool n
  
index 37ec9934ff8a6bd14fd38c220cab7bddfa8c448f..a28ca3ebe260c82720b9131d0a1af6494270ed0d 100644 (file)
@@ -26,7 +26,7 @@ v2: incorporated changes suggested by Jonas Gorski
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -2495,6 +2495,20 @@ config MIPS_O32_FP64_SUPPORT
+@@ -2498,6 +2498,20 @@ config MIPS_O32_FP64_SUPPORT
  
          If unsure, say N.
  
index 0cc8db9dca848d3fb2b207384ad094f0fda3f35d..b68238c937342423e499ff1de9b54cebb41d0a28 100644 (file)
 +}
 --- a/fs/jffs2/super.c
 +++ b/fs/jffs2/super.c
-@@ -373,14 +373,41 @@ static int __init init_jffs2_fs(void)
+@@ -374,14 +374,41 @@ static int __init init_jffs2_fs(void)
        BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68);
        BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);
  
index 95efe78ebce5eae6bd92aa7260b9d43e3df7eb5d..8b68cd36fa13e46e329cd06f7e2d067be75cc45f 100644 (file)
                goto err;
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -2944,6 +2944,8 @@ static __net_initdata struct pernet_oper
+@@ -2945,6 +2945,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
diff --git a/target/linux/generic/pending-4.14/142-jffs2-Fix-use-of-uninitialized-delayed_work-lockdep-.patch b/target/linux/generic/pending-4.14/142-jffs2-Fix-use-of-uninitialized-delayed_work-lockdep-.patch
deleted file mode 100644 (file)
index 05f83cc..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-From a788c5272769ddbcdbab297cf386413eeac04463 Mon Sep 17 00:00:00 2001
-From: Daniel Santos <daniel.santos@pobox.com>
-Date: Fri, 19 Oct 2018 03:30:20 -0500
-Subject: [PATCH] jffs2: Fix use of uninitialized delayed_work, lockdep
- breakage
-
-jffs2_sync_fs makes the assumption that if CONFIG_JFFS2_FS_WRITEBUFFER
-is defined then a write buffer is available and has been initialized.
-However, this does is not the case when the mtd device has no
-out-of-band buffer:
-
-int jffs2_nand_flash_setup(struct jffs2_sb_info *c)
-{
-        if (!c->mtd->oobsize)
-                return 0;
-...
-
-The resulting call to cancel_delayed_work_sync passing a uninitialized
-(but zeroed) delayed_work struct forces lockdep to become disabled.
-
-[   90.050639] overlayfs: upper fs does not support tmpfile.
-[   90.652264] INFO: trying to register non-static key.
-[   90.662171] the code is fine but needs lockdep annotation.
-[   90.673090] turning off the locking correctness validator.
-[   90.684021] CPU: 0 PID: 1762 Comm: mount_root Not tainted 4.14.63 #0
-[   90.696672] Stack : 00000000 00000000 80d8f6a2 00000038 805f0000 80444600 8fe364f4 805dfbe7
-[   90.713349]         80563a30 000006e2 8068370c 00000001 00000000 00000001 8e2fdc48 ffffffff
-[   90.730020]         00000000 00000000 80d90000 00000000 00000106 00000000 6465746e 312e3420
-[   90.746690]         6b636f6c 03bf0000 f8000000 20676e69 00000000 80000000 00000000 8e2c2a90
-[   90.763362]         80d90000 00000001 00000000 8e2c2a90 00000003 80260dc0 08052098 80680000
-[   90.780033]         ...
-[   90.784902] Call Trace:
-[   90.789793] [<8000f0d8>] show_stack+0xb8/0x148
-[   90.798659] [<8005a000>] register_lock_class+0x270/0x55c
-[   90.809247] [<8005cb64>] __lock_acquire+0x13c/0xf7c
-[   90.818964] [<8005e314>] lock_acquire+0x194/0x1dc
-[   90.828345] [<8003f27c>] flush_work+0x200/0x24c
-[   90.837374] [<80041dfc>] __cancel_work_timer+0x158/0x210
-[   90.847958] [<801a8770>] jffs2_sync_fs+0x20/0x54
-[   90.857173] [<80125cf4>] iterate_supers+0xf4/0x120
-[   90.866729] [<80158fc4>] sys_sync+0x44/0x9c
-[   90.875067] [<80014424>] syscall_common+0x34/0x58
-
-Signed-off-by: Daniel Santos <daniel.santos@pobox.com>
-Reviewed-by: Hou Tao <houtao1@huawei.com>
-Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
----
- fs/jffs2/super.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/fs/jffs2/super.c
-+++ b/fs/jffs2/super.c
-@@ -101,7 +101,8 @@ static int jffs2_sync_fs(struct super_bl
-       struct jffs2_sb_info *c = JFFS2_SB_INFO(sb);
- #ifdef CONFIG_JFFS2_FS_WRITEBUFFER
--      cancel_delayed_work_sync(&c->wbuf_dwork);
-+      if (jffs2_is_writebuffered(c))
-+              cancel_delayed_work_sync(&c->wbuf_dwork);
- #endif
-       mutex_lock(&c->alloc_sem);
index 5384be15ca02e4c77c2f762d00626c2454b8d613..35854f323ca3ae7012d680580985f2e9bf98a11c 100644 (file)
@@ -9,7 +9,7 @@ Acked-by: Rob Landley <rob@landley.net>
 ---
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1067,9 +1067,6 @@ config FW_ARC
+@@ -1070,9 +1070,6 @@ config FW_ARC
  config ARCH_MAY_HAVE_PC_FDC
        bool
  
@@ -19,7 +19,7 @@ Acked-by: Rob Landley <rob@landley.net>
  config CEVT_BCM1480
        bool
  
-@@ -2967,6 +2964,18 @@ choice
+@@ -2970,6 +2967,18 @@ choice
                bool "Extend builtin kernel arguments with bootloader arguments"
  endchoice
  
index 22e2e86206c191275c38ccba6dd922a1f75779aa..57827d5aa51be566208d820aa75078a1e988a2fc 100644 (file)
@@ -24,7 +24,7 @@ v2: incorporated changes suggested by Jonas Gorski
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -2891,6 +2891,20 @@ config MIPS_O32_FP64_SUPPORT
+@@ -2894,6 +2894,20 @@ config MIPS_O32_FP64_SUPPORT
  
          If unsure, say N.
  
index de2dd65b1795c7f74021fe5eac61363d51755ec5..2c78b91c57bc1a072c0bfd903ed79a0865f2f030 100644 (file)
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        select HAVE_PCSPKR_PLATFORM
        select IRQ_MIPS_CPU
        select I8253
-@@ -1128,6 +1130,9 @@ config DMA_NONCOHERENT
+@@ -1131,6 +1133,9 @@ config DMA_NONCOHERENT
        bool
        select NEED_DMA_MAP_STATE
  
@@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  config NEED_DMA_MAP_STATE
        bool
  
-@@ -1652,6 +1657,7 @@ config CPU_R10000
+@@ -1655,6 +1660,7 @@ config CPU_R10000
        select CPU_SUPPORTS_64BIT_KERNEL
        select CPU_SUPPORTS_HIGHMEM
        select CPU_SUPPORTS_HUGEPAGES
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        help
          MIPS Technologies R10000-series processors.
  
-@@ -1900,9 +1906,11 @@ config SYS_HAS_CPU_MIPS32_R3_5
+@@ -1903,9 +1909,11 @@ config SYS_HAS_CPU_MIPS32_R3_5
        bool
  
  config SYS_HAS_CPU_MIPS32_R5
@@ -60,7 +60,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        bool
  
  config SYS_HAS_CPU_MIPS64_R1
-@@ -1912,6 +1920,7 @@ config SYS_HAS_CPU_MIPS64_R2
+@@ -1915,6 +1923,7 @@ config SYS_HAS_CPU_MIPS64_R2
        bool
  
  config SYS_HAS_CPU_MIPS64_R6
index edba04ccf6f68e66ec0ad51bd90ff51f4e0e2a53..ae8c4ca92130b9a522ef3697e1204265c44f4b4e 100644 (file)
@@ -73,7 +73,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #include <linux/nsproxy.h>
  #include <net/net_namespace.h>
  #include <net/netns/generic.h>
-@@ -977,8 +982,36 @@ static int pppoe_xmit(struct ppp_channel
+@@ -978,8 +983,36 @@ static int pppoe_xmit(struct ppp_channel
        return __pppoe_xmit(sk, skb);
  }
  
index 36aaccbdb3e1dcb761eeb9ab82f7747cbc480f48..03bb755619087765bc50dddc3cc03b7b49298c85 100644 (file)
@@ -66,7 +66,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static void rt_fibinfo_free(struct rtable __rcu **rtp)
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2460,6 +2460,7 @@ static const char *const rtn_type_names[
+@@ -2469,6 +2469,7 @@ static const char *const rtn_type_names[
        [RTN_THROW] = "THROW",
        [RTN_NAT] = "NAT",
        [RTN_XRESOLVE] = "XRESOLVE",
index 236a7833d2cee623b97460d5d0262a165e5ebeea..4d4c740df8f2ce7655247471137f96cd974fdba2 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1763,6 +1763,8 @@ struct net_device {
+@@ -1766,6 +1766,8 @@ struct net_device {
        struct netdev_hw_addr_list      mc;
        struct netdev_hw_addr_list      dev_addrs;
  
index bb65da973fc123e8b6977dfa9c6d08ebbabd6135..3aca45766087d94666499b7b25241341d5bc8421 100644 (file)
@@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
 
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -6384,7 +6384,7 @@ static void __ref alloc_node_mem_map(str
+@@ -6393,7 +6393,7 @@ static void __ref alloc_node_mem_map(str
                mem_map = NODE_DATA(0)->node_mem_map;
  #if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
                if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
diff --git a/target/linux/generic/pending-4.19/142-jffs2-Fix-use-of-uninitialized-delayed_work-lockdep-.patch b/target/linux/generic/pending-4.19/142-jffs2-Fix-use-of-uninitialized-delayed_work-lockdep-.patch
deleted file mode 100644 (file)
index 05f83cc..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-From a788c5272769ddbcdbab297cf386413eeac04463 Mon Sep 17 00:00:00 2001
-From: Daniel Santos <daniel.santos@pobox.com>
-Date: Fri, 19 Oct 2018 03:30:20 -0500
-Subject: [PATCH] jffs2: Fix use of uninitialized delayed_work, lockdep
- breakage
-
-jffs2_sync_fs makes the assumption that if CONFIG_JFFS2_FS_WRITEBUFFER
-is defined then a write buffer is available and has been initialized.
-However, this does is not the case when the mtd device has no
-out-of-band buffer:
-
-int jffs2_nand_flash_setup(struct jffs2_sb_info *c)
-{
-        if (!c->mtd->oobsize)
-                return 0;
-...
-
-The resulting call to cancel_delayed_work_sync passing a uninitialized
-(but zeroed) delayed_work struct forces lockdep to become disabled.
-
-[   90.050639] overlayfs: upper fs does not support tmpfile.
-[   90.652264] INFO: trying to register non-static key.
-[   90.662171] the code is fine but needs lockdep annotation.
-[   90.673090] turning off the locking correctness validator.
-[   90.684021] CPU: 0 PID: 1762 Comm: mount_root Not tainted 4.14.63 #0
-[   90.696672] Stack : 00000000 00000000 80d8f6a2 00000038 805f0000 80444600 8fe364f4 805dfbe7
-[   90.713349]         80563a30 000006e2 8068370c 00000001 00000000 00000001 8e2fdc48 ffffffff
-[   90.730020]         00000000 00000000 80d90000 00000000 00000106 00000000 6465746e 312e3420
-[   90.746690]         6b636f6c 03bf0000 f8000000 20676e69 00000000 80000000 00000000 8e2c2a90
-[   90.763362]         80d90000 00000001 00000000 8e2c2a90 00000003 80260dc0 08052098 80680000
-[   90.780033]         ...
-[   90.784902] Call Trace:
-[   90.789793] [<8000f0d8>] show_stack+0xb8/0x148
-[   90.798659] [<8005a000>] register_lock_class+0x270/0x55c
-[   90.809247] [<8005cb64>] __lock_acquire+0x13c/0xf7c
-[   90.818964] [<8005e314>] lock_acquire+0x194/0x1dc
-[   90.828345] [<8003f27c>] flush_work+0x200/0x24c
-[   90.837374] [<80041dfc>] __cancel_work_timer+0x158/0x210
-[   90.847958] [<801a8770>] jffs2_sync_fs+0x20/0x54
-[   90.857173] [<80125cf4>] iterate_supers+0xf4/0x120
-[   90.866729] [<80158fc4>] sys_sync+0x44/0x9c
-[   90.875067] [<80014424>] syscall_common+0x34/0x58
-
-Signed-off-by: Daniel Santos <daniel.santos@pobox.com>
-Reviewed-by: Hou Tao <houtao1@huawei.com>
-Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
----
- fs/jffs2/super.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/fs/jffs2/super.c
-+++ b/fs/jffs2/super.c
-@@ -101,7 +101,8 @@ static int jffs2_sync_fs(struct super_bl
-       struct jffs2_sb_info *c = JFFS2_SB_INFO(sb);
- #ifdef CONFIG_JFFS2_FS_WRITEBUFFER
--      cancel_delayed_work_sync(&c->wbuf_dwork);
-+      if (jffs2_is_writebuffered(c))
-+              cancel_delayed_work_sync(&c->wbuf_dwork);
- #endif
-       mutex_lock(&c->alloc_sem);
index 9b3892de2821abcd2ffe15a655e5c55ee7b46be6..99922e35d8aabaf6a1283d8ae1581d938779e52a 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1145,6 +1145,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
+@@ -1146,6 +1146,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
          the unaligned access emulation.
          see arch/parisc/kernel/unaligned.c for reference
  
index 5be7ea7c12e192f6b8c595b8095491a569d4a962..5d10cae86cef4042b1bda766626a31f1eb0288c6 100644 (file)
@@ -9,7 +9,7 @@ Acked-by: Rob Landley <rob@landley.net>
 ---
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1059,9 +1059,6 @@ config FW_ARC
+@@ -1062,9 +1062,6 @@ config FW_ARC
  config ARCH_MAY_HAVE_PC_FDC
        bool
  
@@ -19,7 +19,7 @@ Acked-by: Rob Landley <rob@landley.net>
  config CEVT_BCM1480
        bool
  
-@@ -2965,6 +2962,18 @@ choice
+@@ -2968,6 +2965,18 @@ choice
                bool "Extend builtin kernel arguments with bootloader arguments"
  endchoice
  
index 61f0378a470ed39520d77da4f2a130c7854316fc..6e71c68dc58266ded04c1287851522127fbb9523 100644 (file)
@@ -24,7 +24,7 @@ v2: incorporated changes suggested by Jonas Gorski
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -2889,6 +2889,20 @@ config MIPS_O32_FP64_SUPPORT
+@@ -2892,6 +2892,20 @@ config MIPS_O32_FP64_SUPPORT
  
          If unsure, say N.
  
index 44d1520639376b825b2199288bd9d1ac143b9724..d28bc7ba99f0513afedd1c7fe97a0015f1178b54 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1113,7 +1113,6 @@ config DMA_PERDEV_COHERENT
+@@ -1116,7 +1116,6 @@ config DMA_PERDEV_COHERENT
  config DMA_NONCOHERENT
        bool
        select ARCH_HAS_SYNC_DMA_FOR_DEVICE
@@ -27,7 +27,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
        select NEED_DMA_MAP_STATE
        select DMA_NONCOHERENT_MMAP
        select DMA_NONCOHERENT_CACHE_SYNC
-@@ -1894,9 +1893,11 @@ config SYS_HAS_CPU_MIPS32_R3_5
+@@ -1897,9 +1896,11 @@ config SYS_HAS_CPU_MIPS32_R3_5
  
  config SYS_HAS_CPU_MIPS32_R5
        bool
@@ -39,7 +39,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  
  config SYS_HAS_CPU_MIPS64_R1
        bool
-@@ -1906,6 +1907,7 @@ config SYS_HAS_CPU_MIPS64_R2
+@@ -1909,6 +1910,7 @@ config SYS_HAS_CPU_MIPS64_R2
  
  config SYS_HAS_CPU_MIPS64_R6
        bool
@@ -47,7 +47,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  
  config SYS_HAS_CPU_R3000
        bool
-@@ -1942,6 +1944,7 @@ config SYS_HAS_CPU_R8000
+@@ -1945,6 +1947,7 @@ config SYS_HAS_CPU_R8000
  
  config SYS_HAS_CPU_R10000
        bool
@@ -55,7 +55,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  
  config SYS_HAS_CPU_RM7000
        bool
-@@ -1970,6 +1973,7 @@ config SYS_HAS_CPU_BMIPS4380
+@@ -1973,6 +1976,7 @@ config SYS_HAS_CPU_BMIPS4380
  config SYS_HAS_CPU_BMIPS5000
        bool
        select SYS_HAS_CPU_BMIPS
index f4880294d4a36123ade149d2d1d84e97f409da58..a3f13fad9f5f870a9ee9fa17d675800bafa4364d 100644 (file)
@@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /*
   * Given a pointer to the MTD object in the mtd_part structure, we can retrieve
   * the pointer to that structure.
-@@ -619,6 +623,7 @@ int mtd_add_partition(struct mtd_info *p
+@@ -623,6 +627,7 @@ int mtd_add_partition(struct mtd_info *p
        mutex_unlock(&mtd_partitions_mutex);
  
        add_mtd_device(&new->mtd);
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        mtd_add_partition_attrs(new);
  
-@@ -697,6 +702,29 @@ int mtd_del_partition(struct mtd_info *m
+@@ -701,6 +706,29 @@ int mtd_del_partition(struct mtd_info *m
  }
  EXPORT_SYMBOL_GPL(mtd_del_partition);
  
@@ -97,7 +97,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /*
   * This function, given a master MTD object and a partition table, creates
   * and registers slave MTD objects which are bound to the master according to
-@@ -728,6 +756,7 @@ int add_mtd_partitions(struct mtd_info *
+@@ -732,6 +760,7 @@ int add_mtd_partitions(struct mtd_info *
                mutex_unlock(&mtd_partitions_mutex);
  
                add_mtd_device(&slave->mtd);
index d48447fb9ca445e1d86bb42b6333c124efc15653..4026a2050b9e5db4c36ad8986dbb463be0996793 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  
  /*
   * Given a pointer to the MTD object in the mtd_part structure, we can retrieve
-@@ -702,6 +706,36 @@ int mtd_del_partition(struct mtd_info *m
+@@ -706,6 +710,36 @@ int mtd_del_partition(struct mtd_info *m
  }
  EXPORT_SYMBOL_GPL(mtd_del_partition);
  
@@ -57,7 +57,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  #ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
  #define SPLIT_FIRMWARE_NAME   CONFIG_MTD_SPLIT_FIRMWARE_NAME
  #else
-@@ -1037,6 +1071,61 @@ void mtd_part_parser_cleanup(struct mtd_
+@@ -1041,6 +1075,61 @@ void mtd_part_parser_cleanup(struct mtd_
        }
  }
  
index ca9b6c3594e5fe1f5ce4264366fe3dcf2ebd3aa0..8a90ce6a8b75874fe4a10f0f20b1c60290622386 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -744,6 +744,7 @@ run_parsers_by_type(struct mtd_part *sla
+@@ -748,6 +748,7 @@ run_parsers_by_type(struct mtd_part *sla
  
  static void split_firmware(struct mtd_info *master, struct mtd_part *part)
  {
@@ -18,7 +18,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  }
  
  static void mtd_partition_split(struct mtd_info *master, struct mtd_part *part)
-@@ -753,6 +754,12 @@ static void mtd_partition_split(struct m
+@@ -757,6 +758,12 @@ static void mtd_partition_split(struct m
        if (rootfs_found)
                return;
  
index 82c74e27a9131d88673bf67b972227eacba31e70..2e95e99f6d1cdc4d20ecde9de3141401dfe20193 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -1150,6 +1150,24 @@ int mtd_is_partition(const struct mtd_in
+@@ -1154,6 +1154,24 @@ int mtd_is_partition(const struct mtd_in
  }
  EXPORT_SYMBOL_GPL(mtd_is_partition);
  
index 0b5e4005ff4cc55429d4561fd84d6ca02cb074a8..bf9822fda83c6af4285df43e767f06d73e645a20 100644 (file)
@@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        return ret;
  }
  
-@@ -535,19 +602,22 @@ static struct mtd_part *allocate_partiti
+@@ -539,19 +606,22 @@ static struct mtd_part *allocate_partiti
        remainder = do_div(tmp, wr_alignment);
        if ((slave->mtd.flags & MTD_WRITEABLE) && remainder) {
                /* Doesn't start on a boundary of major erase size */
index 273e7ff0a8e8d3ce528cbd6a936358b91dff978e..a0d177586a6c19bc8e1212b500213423390038e1 100644 (file)
@@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -3232,6 +3234,7 @@ static int packet_create(struct net *net
+@@ -3233,6 +3235,7 @@ static int packet_create(struct net *net
        mutex_init(&po->pg_vec_lock);
        po->rollover = NULL;
        po->prot_hook.func = packet_rcv;
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
-@@ -3843,6 +3846,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3844,6 +3847,16 @@ packet_setsockopt(struct socket *sock, i
                po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
                return 0;
        }
@@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        default:
                return -ENOPROTOOPT;
        }
-@@ -3895,6 +3908,13 @@ static int packet_getsockopt(struct sock
+@@ -3896,6 +3909,13 @@ static int packet_getsockopt(struct sock
        case PACKET_VNET_HDR:
                val = po->has_vnet_hdr;
                break;
index 456c08b90c8c3963a688d90d5051fd61de2c5a23..26d46ec0058a8bb7f6d8f1079b5d1168cad36e01 100644 (file)
@@ -73,7 +73,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #include <linux/nsproxy.h>
  #include <net/net_namespace.h>
  #include <net/netns/generic.h>
-@@ -975,8 +980,36 @@ static int pppoe_xmit(struct ppp_channel
+@@ -976,8 +981,36 @@ static int pppoe_xmit(struct ppp_channel
        return __pppoe_xmit(sk, skb);
  }
  
index 485fb3e1304dabd0cef138cabc5f026f10ee6f5d..c664cb2b2506a05e2da3d48ead99edb9aea82b19 100644 (file)
@@ -66,7 +66,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static void rt_fibinfo_free(struct rtable __rcu **rtp)
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2465,6 +2465,7 @@ static const char *const rtn_type_names[
+@@ -2474,6 +2474,7 @@ static const char *const rtn_type_names[
        [RTN_THROW] = "THROW",
        [RTN_NAT] = "NAT",
        [RTN_XRESOLVE] = "XRESOLVE",
index 4bac6f7ef909f25fbd8fd3c6fb6f43c953b39ed7..828c9554d4e3b26479a78bdaea0e7286cc51a9b1 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1876,6 +1876,8 @@ struct net_device {
+@@ -1879,6 +1879,8 @@ struct net_device {
        struct netdev_hw_addr_list      mc;
        struct netdev_hw_addr_list      dev_addrs;
  
index 03ee3b43b1cff84de9ef9cefb9deab186f21b732..cb02c7182963e75c5d15ff8c79ba121488934554 100644 (file)
@@ -68,13 +68,3 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
  
        switch (bus->hosttype) {
        case BCMA_HOSTTYPE_PCI:
---- a/include/linux/bcma/bcma_soc.h
-+++ b/include/linux/bcma/bcma_soc.h
-@@ -6,6 +6,7 @@
- struct bcma_soc {
-       struct bcma_bus bus;
-+      struct device *dev;
- };
- int __init bcma_host_soc_register(struct bcma_soc *soc);
index 16855201f3b68758e0fed3a5a6cb2f485cdc4221..70d3de05d0eeee26ac81d71ac5f0a94741bc1958 100644 (file)
@@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  /**
   *    ata_build_rw_tf - Build ATA taskfile for given read/write request
   *    @tf: Target ATA taskfile
-@@ -5130,6 +5143,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -5131,6 +5144,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
                if (tag < 0)
                        return NULL;
        }
@@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
        qc = __ata_qc_from_tag(ap, tag);
        qc->tag = qc->hw_tag = tag;
-@@ -6040,6 +6056,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -6041,6 +6057,9 @@ struct ata_port *ata_port_alloc(struct a
        ap->stats.unhandled_irq = 1;
        ap->stats.idle_irq = 1;
  #endif
@@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        ata_sff_port_init(ap);
  
        return ap;
-@@ -6075,6 +6094,12 @@ static void ata_host_release(struct kref
+@@ -6076,6 +6095,12 @@ static void ata_host_release(struct kref
  
                kfree(ap->pmp_link);
                kfree(ap->slave_link);
@@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
                kfree(ap);
                host->ports[i] = NULL;
        }
-@@ -6538,7 +6563,23 @@ int ata_host_register(struct ata_host *h
+@@ -6539,7 +6564,23 @@ int ata_host_register(struct ata_host *h
                host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
                host->ports[i]->local_port_no = i + 1;
        }
index 1734594e6d66508fdb3b004db4c764803363598d..4438e6cd1dfc64f4b9941e2d28a19ea26b9ba99b 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1527,6 +1527,15 @@ config EMBEDDED
+@@ -1528,6 +1528,15 @@ config EMBEDDED
          an embedded system so certain expert options are available
          for configuration.
  
index d7a3effa4cbb32328cc4a40bea6ecace781ccd99..68a0833580fd666f0b56201e87b420488ef612eb 100644 (file)
@@ -9,7 +9,7 @@ Acked-by: Rob Landley <rob@landley.net>
 ---
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1065,9 +1065,6 @@ config FW_ARC
+@@ -1068,9 +1068,6 @@ config FW_ARC
  config ARCH_MAY_HAVE_PC_FDC
        bool
  
@@ -19,7 +19,7 @@ Acked-by: Rob Landley <rob@landley.net>
  config CEVT_BCM1480
        bool
  
-@@ -2964,6 +2961,18 @@ choice
+@@ -2967,6 +2964,18 @@ choice
                bool "Extend builtin kernel arguments with bootloader arguments"
  endchoice
  
index 5707f90becd159972fbd876b55ec7f95a401db24..889c79ad9b42849452a834088a5879be64073eab 100644 (file)
@@ -24,7 +24,7 @@ v2: incorporated changes suggested by Jonas Gorski
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -2888,6 +2888,20 @@ config MIPS_O32_FP64_SUPPORT
+@@ -2891,6 +2891,20 @@ config MIPS_O32_FP64_SUPPORT
  
          If unsure, say N.
  
index 393046cf263d4497ff13a5010f415267e8afd8c5..15788c786041dbeae6f176becde9c433505f5e89 100644 (file)
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        select HAVE_PCSPKR_PLATFORM
        select IRQ_MIPS_CPU
        select I8253
-@@ -1126,6 +1128,9 @@ config DMA_NONCOHERENT
+@@ -1129,6 +1131,9 @@ config DMA_NONCOHERENT
        bool
        select NEED_DMA_MAP_STATE
  
@@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  config NEED_DMA_MAP_STATE
        bool
  
-@@ -1650,6 +1655,7 @@ config CPU_R10000
+@@ -1653,6 +1658,7 @@ config CPU_R10000
        select CPU_SUPPORTS_64BIT_KERNEL
        select CPU_SUPPORTS_HIGHMEM
        select CPU_SUPPORTS_HUGEPAGES
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        help
          MIPS Technologies R10000-series processors.
  
-@@ -1895,9 +1901,11 @@ config SYS_HAS_CPU_MIPS32_R3_5
+@@ -1898,9 +1904,11 @@ config SYS_HAS_CPU_MIPS32_R3_5
        bool
  
  config SYS_HAS_CPU_MIPS32_R5
@@ -60,7 +60,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        bool
  
  config SYS_HAS_CPU_MIPS64_R1
-@@ -1907,6 +1915,7 @@ config SYS_HAS_CPU_MIPS64_R2
+@@ -1910,6 +1918,7 @@ config SYS_HAS_CPU_MIPS64_R2
        bool
  
  config SYS_HAS_CPU_MIPS64_R6
index f5cd6005a4c071dd559c0e8192ac4d4ef31ef0de..8c8a025f78f1c53bae70d9b1ef4d3cc14d47193a 100644 (file)
@@ -244,7 +244,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +}
 --- a/fs/jffs2/super.c
 +++ b/fs/jffs2/super.c
-@@ -370,14 +370,41 @@ static int __init init_jffs2_fs(void)
+@@ -371,14 +371,41 @@ static int __init init_jffs2_fs(void)
        BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68);
        BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);
  
index fa8c3b75ded31818979882211e4ce5c91add2d3e..3f6b406cf27e1f220113de769fba12c195bd9dae 100644 (file)
@@ -66,7 +66,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static void rt_fibinfo_free(struct rtable __rcu **rtp)
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2396,6 +2396,7 @@ static const char *const rtn_type_names[
+@@ -2406,6 +2406,7 @@ static const char *const rtn_type_names[
        [RTN_THROW] = "THROW",
        [RTN_NAT] = "NAT",
        [RTN_XRESOLVE] = "XRESOLVE",
index 037d2e138dbe30e963fbf0b2b8dacf08b61e983c..d113be643905dd1a21cbb9f04ff7539790173a25 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1749,6 +1749,8 @@ struct net_device {
+@@ -1752,6 +1752,8 @@ struct net_device {
        struct netdev_hw_addr_list      mc;
        struct netdev_hw_addr_list      dev_addrs;
  
diff --git a/target/linux/sunxi/base-files/lib/firmware/brcm/brcmfmac43430a0-sdio.txt b/target/linux/sunxi/base-files/lib/firmware/brcm/brcmfmac43430a0-sdio.txt
new file mode 120000 (symlink)
index 0000000..2ed6689
--- /dev/null
@@ -0,0 +1 @@
+brcmfmac43430-sdio.txt
\ No newline at end of file
index c13b1452ee30d27d07392f50fd3f414f47a113a0..d7d9f60a6d45030b7f1807dc6009f0282d89baac 100644 (file)
@@ -363,7 +363,14 @@ CONFIG_MMC_SUNXI=y
 CONFIG_MMU_NOTIFIER=y
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_MODULES_USE_ELF_REL=y
-# CONFIG_MTD is not set
+CONFIG_MTD=y
+CONFIG_MTD_SPLIT_SUPPORT=y
+CONFIG_MTD_SPLIT_FIT_FW=y
+CONFIG_MTD_OF_PARTS=y
+CONFIG_MTD_JEDECPROBE=y
+# CONFIG_MTD_IMPA7 is not set
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_SPI_NOR=y
 CONFIG_MULTI_IRQ_HANDLER=y
 CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_NEED_DMA_MAP_STATE=y
index 042b2e89866a9bd88574d8936ff03491e6d69dbe..c684c04e174412bcf6cee5d66bced0c328edf06e 100644 (file)
@@ -371,7 +371,14 @@ CONFIG_MMC_SUNXI=y
 CONFIG_MMU_NOTIFIER=y
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_MODULES_USE_ELF_REL=y
-# CONFIG_MTD is not set
+CONFIG_MTD=y
+CONFIG_MTD_SPLIT_SUPPORT=y
+CONFIG_MTD_SPLIT_FIT_FW=y
+CONFIG_MTD_OF_PARTS=y
+CONFIG_MTD_JEDECPROBE=y
+# CONFIG_MTD_IMPA7 is not set
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_SPI_NOR=y
 CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_NEON=y
@@ -470,6 +477,7 @@ CONFIG_REGULATOR=y
 CONFIG_REGULATOR_AXP20X=y
 CONFIG_REGULATOR_FIXED_VOLTAGE=y
 CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_SY8106A=y
 CONFIG_RELAY=y
 CONFIG_RESET_CONTROLLER=y
 CONFIG_RESET_SIMPLE=y
index 154f5e9a48ac431279bcac3aa059b5d3ad523729..b46c4aa41403dec43540e04c94c0e501bd9e0996 100644 (file)
@@ -97,6 +97,7 @@ CONFIG_SPARSEMEM_MANUAL=y
 CONFIG_SPARSEMEM_VMEMMAP=y
 CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
 CONFIG_SUN50I_A64_CCU=y
+CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
 CONFIG_SYSCTL_EXCEPTION_TRACE=y
 CONFIG_THREAD_INFO_IN_TASK=y
 CONFIG_UNMAP_KERNEL_AT_EL0=y
index 819a51e243a40d8496ffb3d6182be41d82697830..a35c84b90558d1b8060a56c4795b39e327058564 100644 (file)
@@ -93,6 +93,7 @@ CONFIG_SPARSEMEM_VMEMMAP=y
 CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
 CONFIG_SUN50I_A64_CCU=y
 CONFIG_SUN50I_DE2_BUS=y
+CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
 CONFIG_SUN50I_H6_CCU=y
 CONFIG_SUN50I_H6_R_CCU=y
 CONFIG_SWIOTLB=y
index aa9f1825b494eb0cbb2bb90bf14993cf2c36726b..ff9a1a8e3eb3e823dbbbeca65ccd86176d07559d 100644 (file)
@@ -2,4 +2,3 @@ CONFIG_DWMAC_SUN8I=y
 # CONFIG_MACH_SUN4I is not set
 # CONFIG_MACH_SUN5I is not set
 CONFIG_MDIO_BUS_MUX=y
-CONFIG_REGULATOR_SY8106A=y
index 969864bb766ab3f3d51865115908686baa1ffbdf..a9045c7d5a8970d72166677907eed1185a633745 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2013-2016 OpenWrt.org
+# Copyright (C) 2013-2019 OpenWrt.org
 # Copyright (C) 2016 Yousong Zhou
 #
 # This is free software, licensed under the GNU General Public License v2.
@@ -127,6 +127,16 @@ endef
 
 TARGET_DEVICES += sun8i-h2-plus-orangepi-r1
 
+define Device/sun8i-h3-bananapi-m2-plus
+  DEVICE_TITLE:=Sinovoip Banana Pi M2 Plus
+  DEVICE_PACKAGES:=kmod-rtc-sunxi \
+       kmod-leds-gpio kmod-ledtrig-heartbeat \
+       kmod-brcmfmac brcmfmac-firmware-43430a0-sdio wpad-basic
+  SUPPORTED_DEVICES:=sinovoip,bananapi-m2-plus
+  SUNXI_DTS:=sun8i-h3-bananapi-m2-plus
+endef
+
+TARGET_DEVICES += sun8i-h3-bananapi-m2-plus
 
 define Device/sun8i-h3-nanopi-m1-plus
   DEVICE_TITLE:=FriendlyArm NanoPi M1 Plus
@@ -149,6 +159,16 @@ endef
 TARGET_DEVICES += sun8i-h3-nanopi-neo
 
 
+define Device/sun8i-h3-orangepi-one
+  DEVICE_TITLE:=Xunlong Orange Pi One
+  DEVICE_PACKAGES:=kmod-rtc-sunxi
+  SUPPORTED_DEVICES:=xunlong,orangepi-one
+  SUNXI_DTS:=sun8i-h3-orangepi-one
+endef
+
+TARGET_DEVICES += sun8i-h3-orangepi-one
+
+
 define Device/sun8i-h3-orangepi-pc
   DEVICE_TITLE:=Xunlong Orange Pi PC
   DEVICE_PACKAGES:=kmod-rtc-sunxi kmod-gpio-button-hotplug
diff --git a/target/linux/sunxi/patches-4.14/031-arm64-Implement-arch_counter_get_cntpct-to-read-the-.patch b/target/linux/sunxi/patches-4.14/031-arm64-Implement-arch_counter_get_cntpct-to-read-the-.patch
new file mode 100644 (file)
index 0000000..60f0cb6
--- /dev/null
@@ -0,0 +1,118 @@
+From f2e600c149fda3453344f89c7e9353fe278ebd32 Mon Sep 17 00:00:00 2001
+From: Christoffer Dall <christoffer.dall@linaro.org>
+Date: Wed, 18 Oct 2017 13:06:25 +0200
+Subject: [PATCH] arm64: Implement arch_counter_get_cntpct to read the physical
+ counter
+
+As we are about to use the physical counter on arm64 systems that have
+KVM support, implement arch_counter_get_cntpct() and the associated
+errata workaround functionality for stable timer reads.
+
+Cc: Will Deacon <will.deacon@arm.com>
+Cc: Mark Rutland <mark.rutland@arm.com>
+Acked-by: Catalin Marinas <catalin.marinas@arm.com>
+Acked-by: Marc Zyngier <marc.zyngier@arm.com>
+Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
+---
+ arch/arm64/include/asm/arch_timer.h  |  8 +++-----
+ drivers/clocksource/arm_arch_timer.c | 23 +++++++++++++++++++++++
+ 2 files changed, 26 insertions(+), 5 deletions(-)
+
+--- a/arch/arm64/include/asm/arch_timer.h
++++ b/arch/arm64/include/asm/arch_timer.h
+@@ -52,6 +52,7 @@ struct arch_timer_erratum_workaround {
+       const char *desc;
+       u32 (*read_cntp_tval_el0)(void);
+       u32 (*read_cntv_tval_el0)(void);
++      u64 (*read_cntpct_el0)(void);
+       u64 (*read_cntvct_el0)(void);
+       int (*set_next_event_phys)(unsigned long, struct clock_event_device *);
+       int (*set_next_event_virt)(unsigned long, struct clock_event_device *);
+@@ -148,11 +149,8 @@ static inline void arch_timer_set_cntkct
+ static inline u64 arch_counter_get_cntpct(void)
+ {
+-      /*
+-       * AArch64 kernel and user space mandate the use of CNTVCT.
+-       */
+-      BUG();
+-      return 0;
++      isb();
++      return arch_timer_reg_read_stable(cntpct_el0);
+ }
+ static inline u64 arch_counter_get_cntvct(void)
+--- a/drivers/clocksource/arm_arch_timer.c
++++ b/drivers/clocksource/arm_arch_timer.c
+@@ -217,6 +217,11 @@ static u32 notrace fsl_a008585_read_cntv
+       return __fsl_a008585_read_reg(cntv_tval_el0);
+ }
++static u64 notrace fsl_a008585_read_cntpct_el0(void)
++{
++      return __fsl_a008585_read_reg(cntpct_el0);
++}
++
+ static u64 notrace fsl_a008585_read_cntvct_el0(void)
+ {
+       return __fsl_a008585_read_reg(cntvct_el0);
+@@ -258,6 +263,11 @@ static u32 notrace hisi_161010101_read_c
+       return __hisi_161010101_read_reg(cntv_tval_el0);
+ }
++static u64 notrace hisi_161010101_read_cntpct_el0(void)
++{
++      return __hisi_161010101_read_reg(cntpct_el0);
++}
++
+ static u64 notrace hisi_161010101_read_cntvct_el0(void)
+ {
+       return __hisi_161010101_read_reg(cntvct_el0);
+@@ -288,6 +298,15 @@ static struct ate_acpi_oem_info hisi_161
+ #endif
+ #ifdef CONFIG_ARM64_ERRATUM_858921
++static u64 notrace arm64_858921_read_cntpct_el0(void)
++{
++      u64 old, new;
++
++      old = read_sysreg(cntpct_el0);
++      new = read_sysreg(cntpct_el0);
++      return (((old ^ new) >> 32) & 1) ? old : new;
++}
++
+ static u64 notrace arm64_858921_read_cntvct_el0(void)
+ {
+       u64 old, new;
+@@ -346,6 +365,7 @@ static const struct arch_timer_erratum_w
+               .desc = "Freescale erratum a005858",
+               .read_cntp_tval_el0 = fsl_a008585_read_cntp_tval_el0,
+               .read_cntv_tval_el0 = fsl_a008585_read_cntv_tval_el0,
++              .read_cntpct_el0 = fsl_a008585_read_cntpct_el0,
+               .read_cntvct_el0 = fsl_a008585_read_cntvct_el0,
+               .set_next_event_phys = erratum_set_next_event_tval_phys,
+               .set_next_event_virt = erratum_set_next_event_tval_virt,
+@@ -358,6 +378,7 @@ static const struct arch_timer_erratum_w
+               .desc = "HiSilicon erratum 161010101",
+               .read_cntp_tval_el0 = hisi_161010101_read_cntp_tval_el0,
+               .read_cntv_tval_el0 = hisi_161010101_read_cntv_tval_el0,
++              .read_cntpct_el0 = hisi_161010101_read_cntpct_el0,
+               .read_cntvct_el0 = hisi_161010101_read_cntvct_el0,
+               .set_next_event_phys = erratum_set_next_event_tval_phys,
+               .set_next_event_virt = erratum_set_next_event_tval_virt,
+@@ -368,6 +389,7 @@ static const struct arch_timer_erratum_w
+               .desc = "HiSilicon erratum 161010101",
+               .read_cntp_tval_el0 = hisi_161010101_read_cntp_tval_el0,
+               .read_cntv_tval_el0 = hisi_161010101_read_cntv_tval_el0,
++              .read_cntpct_el0 = hisi_161010101_read_cntpct_el0,
+               .read_cntvct_el0 = hisi_161010101_read_cntvct_el0,
+               .set_next_event_phys = erratum_set_next_event_tval_phys,
+               .set_next_event_virt = erratum_set_next_event_tval_virt,
+@@ -378,6 +400,7 @@ static const struct arch_timer_erratum_w
+               .match_type = ate_match_local_cap_id,
+               .id = (void *)ARM64_WORKAROUND_858921,
+               .desc = "ARM erratum 858921",
++              .read_cntpct_el0 = arm64_858921_read_cntpct_el0,
+               .read_cntvct_el0 = arm64_858921_read_cntvct_el0,
+       },
+ #endif
diff --git a/target/linux/sunxi/patches-4.14/040-arm64-dts-allwinner-a64-Add-watchdog.patch b/target/linux/sunxi/patches-4.14/040-arm64-dts-allwinner-a64-Add-watchdog.patch
new file mode 100644 (file)
index 0000000..0503b88
--- /dev/null
@@ -0,0 +1,47 @@
+From d41850437c364ef7aba9bc25c1c701699d0240e0 Mon Sep 17 00:00:00 2001
+From: Harald Geyer <harald@ccbib.org>
+Date: Thu, 15 Mar 2018 16:25:07 +0000
+Subject: [PATCH] arm64: dts: allwinner: a64: Add watchdog
+
+Add a watchdog node for the A64, automatically enabled on all boards.
+Since the device is compatible with an existing driver, we only reserve
+a new compatible string to be used together with the fall back.
+Tested on Olimex Teres-I.
+
+Signed-off-by: Harald Geyer <harald@ccbib.org>
+Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
+---
+ Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt | 6 ++++--
+ arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi            | 7 +++++++
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+--- a/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt
++++ b/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt
+@@ -2,8 +2,10 @@ Allwinner SoCs Watchdog timer
+ Required properties:
+-- compatible : should be either "allwinner,sun4i-a10-wdt" or
+-               "allwinner,sun6i-a31-wdt"
++- compatible : should be one of
++      "allwinner,sun4i-a10-wdt"
++      "allwinner,sun6i-a31-wdt"
++      "allwinner,sun50i-a64-wdt","allwinner,sun6i-a31-wdt"
+ - reg : Specifies base physical address and size of the registers.
+ Example:
+--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+@@ -537,5 +537,12 @@
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
++
++              wdt0: watchdog@1c20ca0 {
++                      compatible = "allwinner,sun50i-a64-wdt",
++                                   "allwinner,sun6i-a31-wdt";
++                      reg = <0x01c20ca0 0x20>;
++                      interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
++              };
+       };
+ };
diff --git a/target/linux/sunxi/patches-4.14/080-arm64-allwinner-a64-add-SPI-nodes.patch b/target/linux/sunxi/patches-4.14/080-arm64-allwinner-a64-add-SPI-nodes.patch
new file mode 100644 (file)
index 0000000..5374547
--- /dev/null
@@ -0,0 +1,78 @@
+From b518bb159032aac33503fd4cf98706dc84cc1266 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
+Date: Thu, 31 Aug 2017 01:06:37 +0200
+Subject: [PATCH] arm64: allwinner: a64: add SPI nodes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The A64 SPI controllers are register compatible to the h3/h5 SPI
+controllers.
+
+The A64 has two SPI controllers, each with a single chip select.
+The handles for the DMA channels (23/24 for SPI0/SPI1) are omitted,
+as the A64 DMA support is currently missing.
+
+Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
+Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
+---
+ arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 41 +++++++++++++++++++
+ 1 file changed, 41 insertions(+)
+
+--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+@@ -325,6 +325,16 @@
+                               drive-strength = <40>;
+                       };
++                      spi0_pins: spi0 {
++                              pins = "PC0", "PC1", "PC2", "PC3";
++                              function = "spi0";
++                      };
++
++                      spi1_pins: spi1 {
++                              pins = "PD0", "PD1", "PD2", "PD3";
++                              function = "spi1";
++                      };
++
+                       uart0_pins_a: uart0@0 {
+                               pins = "PB8", "PB9";
+                               function = "uart0";
+@@ -470,6 +480,37 @@
+                       };
+               };
++
++              spi0: spi@01c68000 {
++                      compatible = "allwinner,sun8i-h3-spi";
++                      reg = <0x01c68000 0x1000>;
++                      interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
++                      clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
++                      clock-names = "ahb", "mod";
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&spi0_pins>;
++                      resets = <&ccu RST_BUS_SPI0>;
++                      status = "disabled";
++                      num-cs = <1>;
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++              };
++
++              spi1: spi@01c69000 {
++                      compatible = "allwinner,sun8i-h3-spi";
++                      reg = <0x01c69000 0x1000>;
++                      interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
++                      clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
++                      clock-names = "ahb", "mod";
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&spi1_pins>;
++                      resets = <&ccu RST_BUS_SPI1>;
++                      status = "disabled";
++                      num-cs = <1>;
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++              };
++
+               gic: interrupt-controller@1c81000 {
+                       compatible = "arm,gic-400";
+                       reg = <0x01c81000 0x1000>,
diff --git a/target/linux/sunxi/patches-4.14/081-arm64-dts-allwinner-sun50i-a64-Add-spi-flash-node-fo.patch b/target/linux/sunxi/patches-4.14/081-arm64-dts-allwinner-sun50i-a64-Add-spi-flash-node-fo.patch
new file mode 100644 (file)
index 0000000..3a6e1c3
--- /dev/null
@@ -0,0 +1,36 @@
+From 4661c3afefe900ff7b5004aca0a2c927cfa37f3b Mon Sep 17 00:00:00 2001
+From: Emmanuel Vadot <manu@freebsd.org>
+Date: Mon, 21 May 2018 13:54:13 +0200
+Subject: [PATCH] arm64: dts: allwinner: sun50i: a64: Add spi flash node for
+ sopine
+
+The Sopine and Pine64-LTS have a winbond w25q128 spi flash on spi0.
+Add a node for it.
+
+Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
+Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
+---
+ arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
+@@ -75,6 +75,18 @@
+       };
+ };
++&spi0  {
++      status = "okay";
++
++      flash@0 {
++              #address-cells = <1>;
++              #size-cells = <1>;
++              compatible = "jedec,spi-nor";
++              reg = <0>;
++              spi-max-frequency = <40000000>;
++      };
++};
++
+ #include "axp803.dtsi"
+ &reg_aldo2 {
diff --git a/target/linux/sunxi/patches-4.14/100-clocksource-drivers-arch_timer-Workaround-for-Allwin.patch b/target/linux/sunxi/patches-4.14/100-clocksource-drivers-arch_timer-Workaround-for-Allwin.patch
new file mode 100644 (file)
index 0000000..6da3003
--- /dev/null
@@ -0,0 +1,244 @@
+From 7cd6dca3600d8d71328950216688ecd00015d1ce Mon Sep 17 00:00:00 2001
+From: Samuel Holland <samuel@sholland.org>
+Date: Sat, 12 Jan 2019 20:17:18 -0600
+Subject: [PATCH] clocksource/drivers/arch_timer: Workaround for Allwinner A64
+ timer instability
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The Allwinner A64 SoC is known[1] to have an unstable architectural
+timer, which manifests itself most obviously in the time jumping forward
+a multiple of 95 years[2][3]. This coincides with 2^56 cycles at a
+timer frequency of 24 MHz, implying that the time went slightly backward
+(and this was interpreted by the kernel as it jumping forward and
+wrapping around past the epoch).
+
+Investigation revealed instability in the low bits of CNTVCT at the
+point a high bit rolls over. This leads to power-of-two cycle forward
+and backward jumps. (Testing shows that forward jumps are about twice as
+likely as backward jumps.) Since the counter value returns to normal
+after an indeterminate read, each "jump" really consists of both a
+forward and backward jump from the software perspective.
+
+Unless the kernel is trapping CNTVCT reads, a userspace program is able
+to read the register in a loop faster than it changes. A test program
+running on all 4 CPU cores that reported jumps larger than 100 ms was
+run for 13.6 hours and reported the following:
+
+ Count | Event
+-------+---------------------------
+  9940 | jumped backward      699ms
+   268 | jumped backward     1398ms
+     1 | jumped backward     2097ms
+ 16020 | jumped forward       175ms
+  6443 | jumped forward       699ms
+  2976 | jumped forward      1398ms
+     9 | jumped forward    356516ms
+     9 | jumped forward    357215ms
+     4 | jumped forward    714430ms
+     1 | jumped forward   3578440ms
+
+This works out to a jump larger than 100 ms about every 5.5 seconds on
+each CPU core.
+
+The largest jump (almost an hour!) was the following sequence of reads:
+    0x0000007fffffffff → 0x00000093feffffff → 0x0000008000000000
+
+Note that the middle bits don't necessarily all read as all zeroes or
+all ones during the anomalous behavior; however the low 10 bits checked
+by the function in this patch have never been observed with any other
+value.
+
+Also note that smaller jumps are much more common, with backward jumps
+of 2048 (2^11) cycles observed over 400 times per second on each core.
+(Of course, this is partially explained by lower bits rolling over more
+frequently.) Any one of these could have caused the 95 year time skip.
+
+Similar anomalies were observed while reading CNTPCT (after patching the
+kernel to allow reads from userspace). However, the CNTPCT jumps are
+much less frequent, and only small jumps were observed. The same program
+as before (except now reading CNTPCT) observed after 72 hours:
+
+ Count | Event
+-------+---------------------------
+    17 | jumped backward      699ms
+    52 | jumped forward       175ms
+  2831 | jumped forward       699ms
+     5 | jumped forward      1398ms
+
+Further investigation showed that the instability in CNTPCT/CNTVCT also
+affected the respective timer's TVAL register. The following values were
+observed immediately after writing CNVT_TVAL to 0x10000000:
+
+ CNTVCT             | CNTV_TVAL  | CNTV_CVAL          | CNTV_TVAL Error
+--------------------+------------+--------------------+-----------------
+ 0x000000d4a2d8bfff | 0x10003fff | 0x000000d4b2d8bfff | +0x00004000
+ 0x000000d4a2d94000 | 0x0fffffff | 0x000000d4b2d97fff | -0x00004000
+ 0x000000d4a2d97fff | 0x10003fff | 0x000000d4b2d97fff | +0x00004000
+ 0x000000d4a2d9c000 | 0x0fffffff | 0x000000d4b2d9ffff | -0x00004000
+
+The pattern of errors in CNTV_TVAL seemed to depend on exactly which
+value was written to it. For example, after writing 0x10101010:
+
+ CNTVCT             | CNTV_TVAL  | CNTV_CVAL          | CNTV_TVAL Error
+--------------------+------------+--------------------+-----------------
+ 0x000001ac3effffff | 0x1110100f | 0x000001ac4f10100f | +0x1000000
+ 0x000001ac40000000 | 0x1010100f | 0x000001ac5110100f | -0x1000000
+ 0x000001ac58ffffff | 0x1110100f | 0x000001ac6910100f | +0x1000000
+ 0x000001ac66000000 | 0x1010100f | 0x000001ac7710100f | -0x1000000
+ 0x000001ac6affffff | 0x1110100f | 0x000001ac7b10100f | +0x1000000
+ 0x000001ac6e000000 | 0x1010100f | 0x000001ac7f10100f | -0x1000000
+
+I was also twice able to reproduce the issue covered by Allwinner's
+workaround[4], that writing to TVAL sometimes fails, and both CVAL and
+TVAL are left with entirely bogus values. One was the following values:
+
+ CNTVCT             | CNTV_TVAL  | CNTV_CVAL
+--------------------+------------+--------------------------------------
+ 0x000000d4a2d6014c | 0x8fbd5721 | 0x000000d132935fff (615s in the past)
+Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
+
+========================================================================
+
+Because the CPU can read the CNTPCT/CNTVCT registers faster than they
+change, performing two reads of the register and comparing the high bits
+(like other workarounds) is not a workable solution. And because the
+timer can jump both forward and backward, no pair of reads can
+distinguish a good value from a bad one. The only way to guarantee a
+good value from consecutive reads would be to read _three_ times, and
+take the middle value only if the three values are 1) each unique and
+2) increasing. This takes at minimum 3 counter cycles (125 ns), or more
+if an anomaly is detected.
+
+However, since there is a distinct pattern to the bad values, we can
+optimize the common case (1022/1024 of the time) to a single read by
+simply ignoring values that match the error pattern. This still takes no
+more than 3 cycles in the worst case, and requires much less code. As an
+additional safety check, we still limit the loop iteration to the number
+of max-frequency (1.2 GHz) CPU cycles in three 24 MHz counter periods.
+
+For the TVAL registers, the simple solution is to not use them. Instead,
+read or write the CVAL and calculate the TVAL value in software.
+
+Although the manufacturer is aware of at least part of the erratum[4],
+there is no official name for it. For now, use the kernel-internal name
+"UNKNOWN1".
+
+[1]: https://github.com/armbian/build/commit/a08cd6fe7ae9
+[2]: https://forum.armbian.com/topic/3458-a64-datetime-clock-issue/
+[3]: https://irclog.whitequark.org/linux-sunxi/2018-01-26
+[4]: https://github.com/Allwinner-Homlet/H6-BSP4.9-linux/blob/master/drivers/clocksource/arm_arch_timer.c#L272
+
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+Tested-by: Andre Przywara <andre.przywara@arm.com>
+Signed-off-by: Samuel Holland <samuel@sholland.org>
+Cc: stable@vger.kernel.org
+Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
+---
+ Documentation/arm64/silicon-errata.txt |  2 +
+ drivers/clocksource/Kconfig            | 10 +++++
+ drivers/clocksource/arm_arch_timer.c   | 55 ++++++++++++++++++++++++++
+ 3 files changed, 67 insertions(+)
+
+--- a/Documentation/arm64/silicon-errata.txt
++++ b/Documentation/arm64/silicon-errata.txt
+@@ -44,6 +44,8 @@ stable kernels.
+ | Implementor    | Component       | Erratum ID      | Kconfig                     |
+ +----------------+-----------------+-----------------+-----------------------------+
++| Allwinner      | A64/R18         | UNKNOWN1        | SUN50I_ERRATUM_UNKNOWN1     |
++|                |                 |                 |                             |
+ | ARM            | Cortex-A53      | #826319         | ARM64_ERRATUM_826319        |
+ | ARM            | Cortex-A53      | #827319         | ARM64_ERRATUM_827319        |
+ | ARM            | Cortex-A53      | #824069         | ARM64_ERRATUM_824069        |
+--- a/drivers/clocksource/Kconfig
++++ b/drivers/clocksource/Kconfig
+@@ -374,6 +374,16 @@ config ARM64_ERRATUM_858921
+         The workaround will be dynamically enabled when an affected
+         core is detected.
++config SUN50I_ERRATUM_UNKNOWN1
++      bool "Workaround for Allwinner A64 erratum UNKNOWN1"
++      default y
++      depends on ARM_ARCH_TIMER && ARM64 && ARCH_SUNXI
++      select ARM_ARCH_TIMER_OOL_WORKAROUND
++      help
++        This option enables a workaround for instability in the timer on
++        the Allwinner A64 SoC. The workaround will only be active if the
++        allwinner,erratum-unknown1 property is found in the timer node.
++
+ config ARM_GLOBAL_TIMER
+       bool "Support for the ARM global timer" if COMPILE_TEST
+       select TIMER_OF if OF
+--- a/drivers/clocksource/arm_arch_timer.c
++++ b/drivers/clocksource/arm_arch_timer.c
+@@ -317,6 +317,48 @@ static u64 notrace arm64_858921_read_cnt
+ }
+ #endif
++#ifdef CONFIG_SUN50I_ERRATUM_UNKNOWN1
++/*
++ * The low bits of the counter registers are indeterminate while bit 10 or
++ * greater is rolling over. Since the counter value can jump both backward
++ * (7ff -> 000 -> 800) and forward (7ff -> fff -> 800), ignore register values
++ * with all ones or all zeros in the low bits. Bound the loop by the maximum
++ * number of CPU cycles in 3 consecutive 24 MHz counter periods.
++ */
++#define __sun50i_a64_read_reg(reg) ({                                 \
++      u64 _val;                                                       \
++      int _retries = 150;                                             \
++                                                                      \
++      do {                                                            \
++              _val = read_sysreg(reg);                                \
++              _retries--;                                             \
++      } while (((_val + 1) & GENMASK(9, 0)) <= 1 && _retries);        \
++                                                                      \
++      WARN_ON_ONCE(!_retries);                                        \
++      _val;                                                           \
++})
++
++static u64 notrace sun50i_a64_read_cntpct_el0(void)
++{
++      return __sun50i_a64_read_reg(cntpct_el0);
++}
++
++static u64 notrace sun50i_a64_read_cntvct_el0(void)
++{
++      return __sun50i_a64_read_reg(cntvct_el0);
++}
++
++static u32 notrace sun50i_a64_read_cntp_tval_el0(void)
++{
++      return read_sysreg(cntp_cval_el0) - sun50i_a64_read_cntpct_el0();
++}
++
++static u32 notrace sun50i_a64_read_cntv_tval_el0(void)
++{
++      return read_sysreg(cntv_cval_el0) - sun50i_a64_read_cntvct_el0();
++}
++#endif
++
+ #ifdef CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND
+ DEFINE_PER_CPU(const struct arch_timer_erratum_workaround *,
+              timer_unstable_counter_workaround);
+@@ -404,6 +446,19 @@ static const struct arch_timer_erratum_w
+               .read_cntvct_el0 = arm64_858921_read_cntvct_el0,
+       },
+ #endif
++#ifdef CONFIG_SUN50I_ERRATUM_UNKNOWN1
++      {
++              .match_type = ate_match_dt,
++              .id = "allwinner,erratum-unknown1",
++              .desc = "Allwinner erratum UNKNOWN1",
++              .read_cntp_tval_el0 = sun50i_a64_read_cntp_tval_el0,
++              .read_cntv_tval_el0 = sun50i_a64_read_cntv_tval_el0,
++              .read_cntpct_el0 = sun50i_a64_read_cntpct_el0,
++              .read_cntvct_el0 = sun50i_a64_read_cntvct_el0,
++              .set_next_event_phys = erratum_set_next_event_tval_phys,
++              .set_next_event_virt = erratum_set_next_event_tval_virt,
++      },
++#endif
+ };
+ typedef bool (*ate_match_fn_t)(const struct arch_timer_erratum_workaround *,
diff --git a/target/linux/sunxi/patches-4.14/101-arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch b/target/linux/sunxi/patches-4.14/101-arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch
new file mode 100644 (file)
index 0000000..5bfd33b
--- /dev/null
@@ -0,0 +1,26 @@
+From 55ec26d6a4241363fa94f15377ebd8f1116fbfd7 Mon Sep 17 00:00:00 2001
+From: Samuel Holland <samuel@sholland.org>
+Date: Sat, 12 Jan 2019 20:17:19 -0600
+Subject: [PATCH] arm64: dts: allwinner: a64: Enable A64 timer workaround
+
+As instability in the architectural timer has been observed on multiple
+devices using this SoC, inluding the Pine64 and the Orange Pi Win,
+enable the workaround in the SoC's device tree.
+
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+Signed-off-by: Samuel Holland <samuel@sholland.org>
+Signed-off-by: Chen-Yu Tsai <wens@csie.org>
+---
+ arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+@@ -114,6 +114,7 @@
+       timer {
+               compatible = "arm,armv8-timer";
++              allwinner,erratum-unknown1;
+               interrupts = <GIC_PPI 13
+                       (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
+                            <GIC_PPI 14
diff --git a/target/linux/sunxi/patches-4.14/400-arm64-allwinner-a64-sopine-Add-Sopine-flash-partitio.patch b/target/linux/sunxi/patches-4.14/400-arm64-allwinner-a64-sopine-Add-Sopine-flash-partitio.patch
new file mode 100644 (file)
index 0000000..0d8ec4c
--- /dev/null
@@ -0,0 +1,46 @@
+From 7d87d3dafc4b1ea5659eb71ee6c5fd5308490d1f Mon Sep 17 00:00:00 2001
+From: Oskari Lemmela <oskari@lemmela.net>
+Date: Mon, 31 Dec 2018 07:44:49 +0200
+Subject: [PATCH] arm64: allwinner: a64-sopine: Add Sopine flash partitions.
+
+First 896kB to u-boot. Enough space for SPL, u-boot and ATF.
+Next 128kB to u-boot environment and rest to firmware.
+
+Firmware partition is compatible FIT image dynamic splitting.
+
+Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
+---
+ .../boot/dts/allwinner/sun50i-a64-sopine.dtsi | 22 +++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
+@@ -84,6 +84,28 @@
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <40000000>;
++
++              partitions {
++                      compatible = "fixed-partitions";
++                      #address-cells = <1>;
++                      #size-cells = <1>;
++
++                      partition@0 {
++                              label = "u-boot";
++                              reg = <0x000000 0x0E0000>;
++                      };
++
++                      partition@e0000 {
++                              label = "u-boot-env";
++                              reg = <0x0E0000 0x020000>;
++                      };
++
++                      partition@100000 {
++                              compatible = "denx,fit";
++                              label = "firmware";
++                              reg = <0x100000 0xF00000>;
++                      };
++              };
+       };
+ };
diff --git a/target/linux/sunxi/patches-4.19/100-clocksource-drivers-arch_timer-Workaround-for-Allwin.patch b/target/linux/sunxi/patches-4.19/100-clocksource-drivers-arch_timer-Workaround-for-Allwin.patch
new file mode 100644 (file)
index 0000000..c25e3c4
--- /dev/null
@@ -0,0 +1,244 @@
+From 7cd6dca3600d8d71328950216688ecd00015d1ce Mon Sep 17 00:00:00 2001
+From: Samuel Holland <samuel@sholland.org>
+Date: Sat, 12 Jan 2019 20:17:18 -0600
+Subject: [PATCH] clocksource/drivers/arch_timer: Workaround for Allwinner A64
+ timer instability
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The Allwinner A64 SoC is known[1] to have an unstable architectural
+timer, which manifests itself most obviously in the time jumping forward
+a multiple of 95 years[2][3]. This coincides with 2^56 cycles at a
+timer frequency of 24 MHz, implying that the time went slightly backward
+(and this was interpreted by the kernel as it jumping forward and
+wrapping around past the epoch).
+
+Investigation revealed instability in the low bits of CNTVCT at the
+point a high bit rolls over. This leads to power-of-two cycle forward
+and backward jumps. (Testing shows that forward jumps are about twice as
+likely as backward jumps.) Since the counter value returns to normal
+after an indeterminate read, each "jump" really consists of both a
+forward and backward jump from the software perspective.
+
+Unless the kernel is trapping CNTVCT reads, a userspace program is able
+to read the register in a loop faster than it changes. A test program
+running on all 4 CPU cores that reported jumps larger than 100 ms was
+run for 13.6 hours and reported the following:
+
+ Count | Event
+-------+---------------------------
+  9940 | jumped backward      699ms
+   268 | jumped backward     1398ms
+     1 | jumped backward     2097ms
+ 16020 | jumped forward       175ms
+  6443 | jumped forward       699ms
+  2976 | jumped forward      1398ms
+     9 | jumped forward    356516ms
+     9 | jumped forward    357215ms
+     4 | jumped forward    714430ms
+     1 | jumped forward   3578440ms
+
+This works out to a jump larger than 100 ms about every 5.5 seconds on
+each CPU core.
+
+The largest jump (almost an hour!) was the following sequence of reads:
+    0x0000007fffffffff → 0x00000093feffffff → 0x0000008000000000
+
+Note that the middle bits don't necessarily all read as all zeroes or
+all ones during the anomalous behavior; however the low 10 bits checked
+by the function in this patch have never been observed with any other
+value.
+
+Also note that smaller jumps are much more common, with backward jumps
+of 2048 (2^11) cycles observed over 400 times per second on each core.
+(Of course, this is partially explained by lower bits rolling over more
+frequently.) Any one of these could have caused the 95 year time skip.
+
+Similar anomalies were observed while reading CNTPCT (after patching the
+kernel to allow reads from userspace). However, the CNTPCT jumps are
+much less frequent, and only small jumps were observed. The same program
+as before (except now reading CNTPCT) observed after 72 hours:
+
+ Count | Event
+-------+---------------------------
+    17 | jumped backward      699ms
+    52 | jumped forward       175ms
+  2831 | jumped forward       699ms
+     5 | jumped forward      1398ms
+
+Further investigation showed that the instability in CNTPCT/CNTVCT also
+affected the respective timer's TVAL register. The following values were
+observed immediately after writing CNVT_TVAL to 0x10000000:
+
+ CNTVCT             | CNTV_TVAL  | CNTV_CVAL          | CNTV_TVAL Error
+--------------------+------------+--------------------+-----------------
+ 0x000000d4a2d8bfff | 0x10003fff | 0x000000d4b2d8bfff | +0x00004000
+ 0x000000d4a2d94000 | 0x0fffffff | 0x000000d4b2d97fff | -0x00004000
+ 0x000000d4a2d97fff | 0x10003fff | 0x000000d4b2d97fff | +0x00004000
+ 0x000000d4a2d9c000 | 0x0fffffff | 0x000000d4b2d9ffff | -0x00004000
+
+The pattern of errors in CNTV_TVAL seemed to depend on exactly which
+value was written to it. For example, after writing 0x10101010:
+
+ CNTVCT             | CNTV_TVAL  | CNTV_CVAL          | CNTV_TVAL Error
+--------------------+------------+--------------------+-----------------
+ 0x000001ac3effffff | 0x1110100f | 0x000001ac4f10100f | +0x1000000
+ 0x000001ac40000000 | 0x1010100f | 0x000001ac5110100f | -0x1000000
+ 0x000001ac58ffffff | 0x1110100f | 0x000001ac6910100f | +0x1000000
+ 0x000001ac66000000 | 0x1010100f | 0x000001ac7710100f | -0x1000000
+ 0x000001ac6affffff | 0x1110100f | 0x000001ac7b10100f | +0x1000000
+ 0x000001ac6e000000 | 0x1010100f | 0x000001ac7f10100f | -0x1000000
+
+I was also twice able to reproduce the issue covered by Allwinner's
+workaround[4], that writing to TVAL sometimes fails, and both CVAL and
+TVAL are left with entirely bogus values. One was the following values:
+
+ CNTVCT             | CNTV_TVAL  | CNTV_CVAL
+--------------------+------------+--------------------------------------
+ 0x000000d4a2d6014c | 0x8fbd5721 | 0x000000d132935fff (615s in the past)
+Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
+
+========================================================================
+
+Because the CPU can read the CNTPCT/CNTVCT registers faster than they
+change, performing two reads of the register and comparing the high bits
+(like other workarounds) is not a workable solution. And because the
+timer can jump both forward and backward, no pair of reads can
+distinguish a good value from a bad one. The only way to guarantee a
+good value from consecutive reads would be to read _three_ times, and
+take the middle value only if the three values are 1) each unique and
+2) increasing. This takes at minimum 3 counter cycles (125 ns), or more
+if an anomaly is detected.
+
+However, since there is a distinct pattern to the bad values, we can
+optimize the common case (1022/1024 of the time) to a single read by
+simply ignoring values that match the error pattern. This still takes no
+more than 3 cycles in the worst case, and requires much less code. As an
+additional safety check, we still limit the loop iteration to the number
+of max-frequency (1.2 GHz) CPU cycles in three 24 MHz counter periods.
+
+For the TVAL registers, the simple solution is to not use them. Instead,
+read or write the CVAL and calculate the TVAL value in software.
+
+Although the manufacturer is aware of at least part of the erratum[4],
+there is no official name for it. For now, use the kernel-internal name
+"UNKNOWN1".
+
+[1]: https://github.com/armbian/build/commit/a08cd6fe7ae9
+[2]: https://forum.armbian.com/topic/3458-a64-datetime-clock-issue/
+[3]: https://irclog.whitequark.org/linux-sunxi/2018-01-26
+[4]: https://github.com/Allwinner-Homlet/H6-BSP4.9-linux/blob/master/drivers/clocksource/arm_arch_timer.c#L272
+
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+Tested-by: Andre Przywara <andre.przywara@arm.com>
+Signed-off-by: Samuel Holland <samuel@sholland.org>
+Cc: stable@vger.kernel.org
+Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
+---
+ Documentation/arm64/silicon-errata.txt |  2 +
+ drivers/clocksource/Kconfig            | 10 +++++
+ drivers/clocksource/arm_arch_timer.c   | 55 ++++++++++++++++++++++++++
+ 3 files changed, 67 insertions(+)
+
+--- a/Documentation/arm64/silicon-errata.txt
++++ b/Documentation/arm64/silicon-errata.txt
+@@ -44,6 +44,8 @@ stable kernels.
+ | Implementor    | Component       | Erratum ID      | Kconfig                     |
+ +----------------+-----------------+-----------------+-----------------------------+
++| Allwinner      | A64/R18         | UNKNOWN1        | SUN50I_ERRATUM_UNKNOWN1     |
++|                |                 |                 |                             |
+ | ARM            | Cortex-A53      | #826319         | ARM64_ERRATUM_826319        |
+ | ARM            | Cortex-A53      | #827319         | ARM64_ERRATUM_827319        |
+ | ARM            | Cortex-A53      | #824069         | ARM64_ERRATUM_824069        |
+--- a/drivers/clocksource/Kconfig
++++ b/drivers/clocksource/Kconfig
+@@ -365,6 +365,16 @@ config ARM64_ERRATUM_858921
+         The workaround will be dynamically enabled when an affected
+         core is detected.
++config SUN50I_ERRATUM_UNKNOWN1
++      bool "Workaround for Allwinner A64 erratum UNKNOWN1"
++      default y
++      depends on ARM_ARCH_TIMER && ARM64 && ARCH_SUNXI
++      select ARM_ARCH_TIMER_OOL_WORKAROUND
++      help
++        This option enables a workaround for instability in the timer on
++        the Allwinner A64 SoC. The workaround will only be active if the
++        allwinner,erratum-unknown1 property is found in the timer node.
++
+ config ARM_GLOBAL_TIMER
+       bool "Support for the ARM global timer" if COMPILE_TEST
+       select TIMER_OF if OF
+--- a/drivers/clocksource/arm_arch_timer.c
++++ b/drivers/clocksource/arm_arch_timer.c
+@@ -319,6 +319,48 @@ static u64 notrace arm64_858921_read_cnt
+ }
+ #endif
++#ifdef CONFIG_SUN50I_ERRATUM_UNKNOWN1
++/*
++ * The low bits of the counter registers are indeterminate while bit 10 or
++ * greater is rolling over. Since the counter value can jump both backward
++ * (7ff -> 000 -> 800) and forward (7ff -> fff -> 800), ignore register values
++ * with all ones or all zeros in the low bits. Bound the loop by the maximum
++ * number of CPU cycles in 3 consecutive 24 MHz counter periods.
++ */
++#define __sun50i_a64_read_reg(reg) ({                                 \
++      u64 _val;                                                       \
++      int _retries = 150;                                             \
++                                                                      \
++      do {                                                            \
++              _val = read_sysreg(reg);                                \
++              _retries--;                                             \
++      } while (((_val + 1) & GENMASK(9, 0)) <= 1 && _retries);        \
++                                                                      \
++      WARN_ON_ONCE(!_retries);                                        \
++      _val;                                                           \
++})
++
++static u64 notrace sun50i_a64_read_cntpct_el0(void)
++{
++      return __sun50i_a64_read_reg(cntpct_el0);
++}
++
++static u64 notrace sun50i_a64_read_cntvct_el0(void)
++{
++      return __sun50i_a64_read_reg(cntvct_el0);
++}
++
++static u32 notrace sun50i_a64_read_cntp_tval_el0(void)
++{
++      return read_sysreg(cntp_cval_el0) - sun50i_a64_read_cntpct_el0();
++}
++
++static u32 notrace sun50i_a64_read_cntv_tval_el0(void)
++{
++      return read_sysreg(cntv_cval_el0) - sun50i_a64_read_cntvct_el0();
++}
++#endif
++
+ #ifdef CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND
+ DEFINE_PER_CPU(const struct arch_timer_erratum_workaround *, timer_unstable_counter_workaround);
+ EXPORT_SYMBOL_GPL(timer_unstable_counter_workaround);
+@@ -408,6 +450,19 @@ static const struct arch_timer_erratum_w
+               .read_cntvct_el0 = arm64_858921_read_cntvct_el0,
+       },
+ #endif
++#ifdef CONFIG_SUN50I_ERRATUM_UNKNOWN1
++      {
++              .match_type = ate_match_dt,
++              .id = "allwinner,erratum-unknown1",
++              .desc = "Allwinner erratum UNKNOWN1",
++              .read_cntp_tval_el0 = sun50i_a64_read_cntp_tval_el0,
++              .read_cntv_tval_el0 = sun50i_a64_read_cntv_tval_el0,
++              .read_cntpct_el0 = sun50i_a64_read_cntpct_el0,
++              .read_cntvct_el0 = sun50i_a64_read_cntvct_el0,
++              .set_next_event_phys = erratum_set_next_event_tval_phys,
++              .set_next_event_virt = erratum_set_next_event_tval_virt,
++      },
++#endif
+ };
+ typedef bool (*ate_match_fn_t)(const struct arch_timer_erratum_workaround *,
diff --git a/target/linux/sunxi/patches-4.19/101-arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch b/target/linux/sunxi/patches-4.19/101-arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch
new file mode 100644 (file)
index 0000000..ef7867a
--- /dev/null
@@ -0,0 +1,26 @@
+From 55ec26d6a4241363fa94f15377ebd8f1116fbfd7 Mon Sep 17 00:00:00 2001
+From: Samuel Holland <samuel@sholland.org>
+Date: Sat, 12 Jan 2019 20:17:19 -0600
+Subject: [PATCH] arm64: dts: allwinner: a64: Enable A64 timer workaround
+
+As instability in the architectural timer has been observed on multiple
+devices using this SoC, inluding the Pine64 and the Orange Pi Win,
+enable the workaround in the SoC's device tree.
+
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+Signed-off-by: Samuel Holland <samuel@sholland.org>
+Signed-off-by: Chen-Yu Tsai <wens@csie.org>
+---
+ arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+@@ -159,6 +159,7 @@
+       timer {
+               compatible = "arm,armv8-timer";
++              allwinner,erratum-unknown1;
+               interrupts = <GIC_PPI 13
+                       (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
+                            <GIC_PPI 14
diff --git a/target/linux/sunxi/patches-4.19/400-arm64-allwinner-a64-sopine-Add-Sopine-flash-partitio.patch b/target/linux/sunxi/patches-4.19/400-arm64-allwinner-a64-sopine-Add-Sopine-flash-partitio.patch
new file mode 100644 (file)
index 0000000..ee70abe
--- /dev/null
@@ -0,0 +1,46 @@
+From 7d87d3dafc4b1ea5659eb71ee6c5fd5308490d1f Mon Sep 17 00:00:00 2001
+From: Oskari Lemmela <oskari@lemmela.net>
+Date: Mon, 31 Dec 2018 07:44:49 +0200
+Subject: [PATCH] arm64: allwinner: a64-sopine: Add Sopine flash partitions.
+
+First 896kB to u-boot. Enough space for SPL, u-boot and ATF.
+Next 128kB to u-boot environment and rest to firmware.
+
+Firmware partition is compatible FIT image dynamic splitting.
+
+Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
+---
+ .../boot/dts/allwinner/sun50i-a64-sopine.dtsi | 22 +++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
+@@ -78,6 +78,28 @@
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <40000000>;
++
++              partitions {
++                      compatible = "fixed-partitions";
++                      #address-cells = <1>;
++                      #size-cells = <1>;
++
++                      partition@0 {
++                              label = "u-boot";
++                              reg = <0x000000 0x0E0000>;
++                      };
++
++                      partition@e0000 {
++                              label = "u-boot-env";
++                              reg = <0x0E0000 0x020000>;
++                      };
++
++                      partition@100000 {
++                              compatible = "denx,fit";
++                              label = "firmware";
++                              reg = <0x100000 0xF00000>;
++                      };
++              };
+       };
+ };
index eef53837507ae180cb3e05c7e07e77661286a20d..2aad5acc09de074e09dee2947629723c1f27634a 100644 (file)
@@ -28,7 +28,20 @@ CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
 # CONFIG_ACPI_SBS is not set
 CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
 CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_VIDEO=y
 # CONFIG_ACPI_WMI is not set
+CONFIG_AGP=y
+# CONFIG_AGP_ALI is not set
+# CONFIG_AGP_AMD is not set
+# CONFIG_AGP_AMD64 is not set
+# CONFIG_AGP_ATI is not set
+# CONFIG_AGP_EFFICEON is not set
+CONFIG_AGP_INTEL=y
+# CONFIG_AGP_NVIDIA is not set
+# CONFIG_AGP_SIS is not set
+# CONFIG_AGP_SWORKS is not set
+# CONFIG_AGP_VIA is not set
+# CONFIG_APM is not set
 CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
 CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
 CONFIG_ARCH_HAS_ADD_PAGES=y
@@ -99,7 +112,43 @@ CONFIG_CRYPTO_SIMD=y
 CONFIG_CRYPTO_XTS=y
 # CONFIG_DEBUG_HOTPLUG_CPU0 is not set
 # CONFIG_DPTF_POWER is not set
-# CONFIG_EARLY_PRINTK_EFI is not set
+CONFIG_DRM=y
+# CONFIG_DRM_AMDGPU is not set
+# CONFIG_DRM_AMDGPU_CIK is not set
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+# CONFIG_DRM_AMDGPU_SI is not set
+# CONFIG_DRM_AMDGPU_USERPTR is not set
+# CONFIG_DRM_AMD_ACP is not set
+CONFIG_DRM_BOCHS=y
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
+# CONFIG_DRM_GMA500 is not set
+CONFIG_DRM_I915=y
+# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
+CONFIG_DRM_I915_CAPTURE_ERROR=y
+CONFIG_DRM_I915_COMPRESS_ERROR=y
+# CONFIG_DRM_I915_DEBUG is not set
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
+CONFIG_DRM_I915_GVT=y
+# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
+# CONFIG_DRM_I915_SELFTEST is not set
+# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
+# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
+CONFIG_DRM_I915_USERPTR=y
+# CONFIG_DRM_I915_WERROR is not set
+CONFIG_DRM_KMS_FB_HELPER=y
+CONFIG_DRM_KMS_HELPER=y
+CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_PANEL=y
+CONFIG_DRM_PANEL_BRIDGE=y
+# CONFIG_DRM_RADEON is not set
+# CONFIG_DRM_RADEON_USERPTR is not set
+CONFIG_DRM_TTM=y
+CONFIG_DRM_VIRTIO_GPU=y
+# CONFIG_DRM_VMWGFX is not set
+CONFIG_EARLY_PRINTK_EFI=y
+# CONFIG_EBC_C384_WDT is not set
 CONFIG_EFI=y
 CONFIG_EFIVAR_FS=m
 # CONFIG_EFI_CAPSULE_LOADER is not set
@@ -121,6 +170,7 @@ CONFIG_FB_CMDLINE=y
 CONFIG_FB_DEFERRED_IO=y
 CONFIG_FB_EFI=y
 CONFIG_FB_HYPERV=y
+# CONFIG_FB_I810 is not set
 CONFIG_FB_MODE_HELPERS=y
 # CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set
 CONFIG_FB_SIMPLE=y
@@ -135,7 +185,7 @@ CONFIG_FONT_8x16=y
 CONFIG_FONT_8x8=y
 CONFIG_FONT_SUPPORT=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
 CONFIG_FREEZER=y
 CONFIG_GART_IOMMU=y
@@ -155,6 +205,7 @@ CONFIG_GPIO_SYSFS=y
 CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
 CONFIG_HAVE_ACPI_APEI=y
 CONFIG_HAVE_ACPI_APEI_NMI=y
+CONFIG_HDMI=y
 # CONFIG_HAVE_AOUT is not set
 CONFIG_HAVE_ARCH_KASAN=y
 CONFIG_HAVE_ARCH_SOFT_DIRTY=y
@@ -208,6 +259,7 @@ CONFIG_I2C_BOARDINFO=y
 # CONFIG_IA32_EMULATION is not set
 CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
 CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
+CONFIG_INTEL_GTT=y
 CONFIG_INTEL_IDLE=y
 # CONFIG_INTEL_INT0002_VGPIO is not set
 # CONFIG_INTEL_IPS is not set
index 49b453e2107cf36adf9bffd144109876fccb23d1..28573bd5a71907ab049cbc1fb70fd79e9a736166 100644 (file)
@@ -30,7 +30,20 @@ CONFIG_ACPI_SPCR_TABLE=y
 CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
 # CONFIG_ACPI_TAD is not set
 CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_VIDEO=y
 # CONFIG_ACPI_WMI is not set
+CONFIG_AGP=y
+# CONFIG_AGP_ALI is not set
+# CONFIG_AGP_AMD is not set
+# CONFIG_AGP_AMD64 is not set
+# CONFIG_AGP_ATI is not set
+# CONFIG_AGP_EFFICEON is not set
+CONFIG_AGP_INTEL=y
+# CONFIG_AGP_NVIDIA is not set
+# CONFIG_AGP_SIS is not set
+# CONFIG_AGP_SWORKS is not set
+# CONFIG_AGP_VIA is not set
+# CONFIG_APM is not set
 CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
 CONFIG_ARCH_DMA_ADDR_T_64BIT=y
 CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
@@ -65,6 +78,8 @@ CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
 CONFIG_CONNECTOR=y
 # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
 CONFIG_CPU_RMAP=y
+# CONFIG_CHASH_STATS is not set
+# CONFIG_CHASH_SELFTEST is not set
 CONFIG_CRC_T10DIF=y
 CONFIG_CRYPTO_AEAD=y
 CONFIG_CRYPTO_AEAD2=y
@@ -105,8 +120,51 @@ CONFIG_CRYPTO_SIMD=y
 CONFIG_CRYPTO_XTS=y
 # CONFIG_DEBUG_HOTPLUG_CPU0 is not set
 # CONFIG_DPTF_POWER is not set
+CONFIG_DRM=y
+# CONFIG_DRM_AMDGPU is not set
+# CONFIG_DRM_AMDGPU_CIK is not set
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+# CONFIG_DRM_AMDGPU_SI is not set
+# CONFIG_DRM_AMDGPU_USERPTR is not set
+# CONFIG_DRM_AMD_ACP is not set
+# CONFIG_DRM_AMD_DC is not set
+CONFIG_DRM_BOCHS=y
+CONFIG_DRM_BRIDGE=y
+# CONFIG_DRM_DEBUG_SELFTEST is not set
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
+# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
+# CONFIG_DRM_GMA500 is not set
+# CONFIG_DRM_I2C_NXP_TDA9950 is not set
+CONFIG_DRM_I915=y
+# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
+CONFIG_DRM_I915_CAPTURE_ERROR=y
+CONFIG_DRM_I915_COMPRESS_ERROR=y
+# CONFIG_DRM_I915_DEBUG is not set
+# CONFIG_DRM_I915_DEBUG_GUC is not set
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
+CONFIG_DRM_I915_GVT=y
+# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
+# CONFIG_DRM_I915_SELFTEST is not set
+# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
+# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
+CONFIG_DRM_I915_USERPTR=y
+# CONFIG_DRM_I915_WERROR is not set
+CONFIG_DRM_KMS_FB_HELPER=y
+CONFIG_DRM_KMS_HELPER=y
+CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_PANEL=y
+CONFIG_DRM_PANEL_BRIDGE=y
 CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-# CONFIG_EARLY_PRINTK_EFI is not set
+# CONFIG_DRM_RADEON is not set
+# CONFIG_DRM_RADEON_USERPTR is not set
+CONFIG_DRM_SCHED=y
+CONFIG_DRM_TTM=y
+CONFIG_DRM_VIRTIO_GPU=y
+# CONFIG_HSA_AMD is not set
+# CONFIG_DRM_VKMS is not set
+# CONFIG_DRM_VMWGFX is not set
+CONFIG_EARLY_PRINTK_EFI=y
 CONFIG_EFI=y
 CONFIG_EFIVAR_FS=m
 # CONFIG_EFI_CAPSULE_LOADER is not set
@@ -128,6 +186,7 @@ CONFIG_FB_CMDLINE=y
 CONFIG_FB_DEFERRED_IO=y
 CONFIG_FB_EFI=y
 CONFIG_FB_HYPERV=y
+# CONFIG_FB_I810 is not set
 CONFIG_FB_MODE_HELPERS=y
 CONFIG_FB_SIMPLE=y
 CONFIG_FB_SYS_COPYAREA=y
@@ -141,7 +200,7 @@ CONFIG_FONT_8x16=y
 CONFIG_FONT_8x8=y
 CONFIG_FONT_SUPPORT=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
 CONFIG_FREEZER=y
 CONFIG_GART_IOMMU=y
@@ -176,6 +235,7 @@ CONFIG_HAVE_RCU_TABLE_INVALIDATE=y
 CONFIG_HAVE_RELIABLE_STACKTRACE=y
 CONFIG_HAVE_STACK_VALIDATION=y
 CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HDMI=y
 CONFIG_HIBERNATE_CALLBACKS=y
 CONFIG_HID_BATTERY_STRENGTH=y
 CONFIG_HID_GENERIC=y
@@ -215,6 +275,7 @@ CONFIG_I2C_BOARDINFO=y
 # CONFIG_IA32_EMULATION is not set
 CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
 CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
+CONFIG_INTEL_GTT=y
 CONFIG_INTEL_IDLE=y
 # CONFIG_INTEL_INT0002_VGPIO is not set
 # CONFIG_INTEL_IPS is not set
index b4172de6ccb394ed1bdf0076c5979f951e5f9ae7..5dd0015a0372349bdf828a8c1cbf4d0e4ecace23 100644 (file)
@@ -1,6 +1,6 @@
 ARCH:=x86_64
 BOARDNAME:=x86_64
-DEFAULT_PACKAGES += kmod-button-hotplug kmod-e1000e kmod-e1000 kmod-igb
+DEFAULT_PACKAGES += kmod-button-hotplug kmod-e1000e kmod-e1000 kmod-r8169 kmod-igb kmod-bnx2
 
 define Target/Description
         Build images for 64 bit systems including virtualized guests.
index 26458bb58dab41b95e98ba1e8988963e813d0e78..92380f526db504bbc3bceee93c53862e1cc9bf68 100644 (file)
@@ -64,7 +64,7 @@ CONFIG_CRYPTO_NULL2=y
 CONFIG_DMA_SHARED_BUFFER=y
 # CONFIG_DPTF_POWER is not set
 CONFIG_DRM=y
-CONFIG_DRM_AMDGPU=y
+# CONFIG_DRM_AMDGPU is not set
 # CONFIG_DRM_AMDGPU_CIK is not set
 # CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
 # CONFIG_DRM_AMDGPU_SI is not set
@@ -92,7 +92,7 @@ CONFIG_DRM_KMS_HELPER=y
 CONFIG_DRM_MIPI_DSI=y
 CONFIG_DRM_PANEL=y
 CONFIG_DRM_PANEL_BRIDGE=y
-CONFIG_DRM_RADEON=y
+# CONFIG_DRM_RADEON is not set
 # CONFIG_DRM_RADEON_USERPTR is not set
 CONFIG_DRM_TTM=y
 CONFIG_DRM_VIRTIO_GPU=y
index bd88340ade7a3c12d731d93a0cb486b610597525..e769835b73a54257e318b1a8aecc96a19b574213 100644 (file)
@@ -72,7 +72,7 @@ CONFIG_CRYPTO_NULL2=y
 CONFIG_DMA_SHARED_BUFFER=y
 # CONFIG_DPTF_POWER is not set
 CONFIG_DRM=y
-CONFIG_DRM_AMDGPU=y
+# CONFIG_DRM_AMDGPU is not set
 # CONFIG_DRM_AMDGPU_CIK is not set
 # CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
 # CONFIG_DRM_AMDGPU_SI is not set
@@ -84,6 +84,7 @@ CONFIG_DRM_BRIDGE=y
 # CONFIG_DRM_DEBUG_SELFTEST is not set
 CONFIG_DRM_FBDEV_EMULATION=y
 CONFIG_DRM_FBDEV_OVERALLOC=100
+# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
 # CONFIG_DRM_GMA500 is not set
 # CONFIG_DRM_I2C_NXP_TDA9950 is not set
 CONFIG_DRM_I915=y
@@ -105,7 +106,7 @@ CONFIG_DRM_MIPI_DSI=y
 CONFIG_DRM_PANEL=y
 CONFIG_DRM_PANEL_BRIDGE=y
 CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-CONFIG_DRM_RADEON=y
+# CONFIG_DRM_RADEON is not set
 # CONFIG_DRM_RADEON_USERPTR is not set
 CONFIG_DRM_SCHED=y
 CONFIG_DRM_TTM=y
index dbf8a8594b44865ef3ff509d8262d9d2103b4a56..84a3d88a7f25c2219c5b30460ce9c06827288fd9 100644 (file)
@@ -9,13 +9,12 @@ include $(INCLUDE_DIR)/image.mk
 
 export PATH=$(TARGET_PATH):/sbin
 
-GRUB2_MODULES = biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga
-GRUB2_MODULES_ISO = biosdisk boot chain configfile iso9660 linux ls part_msdos reboot serial vga
+GRUB2_MODULES = biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial test vga
+GRUB2_MODULES_ISO = biosdisk boot chain configfile iso9660 linux ls part_msdos reboot serial test vga
 GRUB_TERMINALS =
 GRUB_SERIAL_CONFIG =
 GRUB_TERMINAL_CONFIG =
 GRUB_CONSOLE_CMDLINE =
-GRUB_ROOT = hd0,msdos1
 
 USE_ATKBD = generic 64
 
@@ -48,10 +47,6 @@ ROOTPART:=$(if $(ROOTPART),$(ROOTPART),PARTUUID=$(SIGNATURE)-02)
 GRUB_TIMEOUT:=$(call qstrip,$(CONFIG_GRUB_TIMEOUT))
 GRUB_TITLE:=$(call qstrip,$(CONFIG_GRUB_TITLE))
 
-ifneq ($(CONFIG_TARGET_x86_xen_domu),)
-  GRUB_ROOT = xen/xvda,msdos1
-endif
-
 ifneq ($(CONFIG_GRUB_IMAGES),)
 
   BOOTOPTS:=$(call qstrip,$(CONFIG_GRUB_BOOTOPTS))
@@ -82,7 +77,6 @@ ifneq ($(CONFIG_GRUB_IMAGES),)
                -e 's#@TERMINAL_CONFIG@#$(strip $(GRUB_TERMINAL_CONFIG))#g' \
                -e 's#@CMDLINE@#$(strip $(call Image/cmdline/$(1)) $(BOOTOPTS) $(GRUB_CONSOLE_CMDLINE))#g' \
                -e 's#@TIMEOUT@#$(GRUB_TIMEOUT)#g' \
-               -e 's#@ROOT@#$(GRUB_ROOT)#g' \
                -e 's#@TITLE@#$(GRUB_TITLE)#g' \
                ./grub.cfg > $(KDIR)/root.grub/boot/grub/grub.cfg
        -$(CP) $(STAGING_DIR_ROOT)/boot/. $(KDIR)/root.grub/boot/
@@ -135,8 +129,6 @@ ifneq ($(CONFIG_VDI_IMAGES),)
        qemu-img convert -f raw -O vdi \
                $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img \
                $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).vdi
-       # XXX: VBoxManage insists on setting perms to 0600
-       chmod 0644 $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).vdi
   endef
 endif
 
index dedfa0a6367524e51e24f1128a3b7786ed1cba3a..76a98855447d0cf2e086f13671058fb6c950ce0c 100644 (file)
@@ -3,7 +3,7 @@
 
 set default="0"
 set timeout="@TIMEOUT@"
-set root='(@ROOT@)'
+set root='(hd0,msdos1)'
 
 menuentry "@TITLE@" {
        linux /boot/vmlinuz @CMDLINE@ noinitrd
index 47e1c787df0d951418544f1c161c8aac2198cd76..82dddbc20963e81d00c067cd8eb621ec40760da3 100644 (file)
@@ -262,6 +262,7 @@ choice
 endchoice
 
 source "toolchain/uClibc/Config.in"
+source "toolchain/musl/Config.in"
 
 comment "Debuggers"
        depends on TOOLCHAINOPTS
index 14c0d53d43431b5413355836fd098f292373bb53..950ce838c5c7fbace2571e08cf5b03605bfb79c9 100644 (file)
@@ -17,16 +17,16 @@ choice
                bool "Binutils 2.29.1"
                select BINUTILS_VERSION_2_29_1
 
-       config BINUTILS_USE_VERSION_2_30
-               depends on !arc
-               bool "Binutils 2.30"
-               select BINUTILS_VERSION_2_30
-
        config BINUTILS_USE_VERSION_2_31_1
                depends on !arc
                bool "Binutils 2.31.1"
                select BINUTILS_VERSION_2_31_1
 
+       config BINUTILS_USE_VERSION_2_32
+               depends on !arc
+               bool "Binutils 2.32"
+               select BINUTILS_VERSION_2_32
+
 endchoice
 
 config EXTRA_BINUTILS_CONFIG_OPTIONS
index fc024676d19123815c71e3358e896e12941e3c17..f125bf74bf0a77fb617c9986bb2666f82be34265 100644 (file)
@@ -5,16 +5,16 @@ config BINUTILS_VERSION_2_29_ARC
 config BINUTILS_VERSION_2_29_1
        bool
 
-config BINUTILS_VERSION_2_30
-       bool
-
 config BINUTILS_VERSION_2_31_1
        default y if (!TOOLCHAINOPTS && !arc)
        bool
 
+config BINUTILS_VERSION_2_32
+       bool
+
 config BINUTILS_VERSION
        string
        default "2.29.1"               if BINUTILS_VERSION_2_29_1
-       default "2.30"                 if BINUTILS_VERSION_2_30
        default "2.31.1"               if BINUTILS_VERSION_2_31_1
+       default "2.32"                 if BINUTILS_VERSION_2_32
        default "arc-2017.09"          if BINUTILS_VERSION_2_29_ARC
index b988598197606a3f34b8091a1fa5dc1fd829427f..6f7b2cb75a3f2de0d442f09ea54990c75c0cb447 100644 (file)
@@ -19,14 +19,14 @@ ifeq ($(PKG_VERSION),2.29.1)
   PKG_HASH:=e7010a46969f9d3e53b650a518663f98a5dde3c3ae21b7d71e5e6803bc36b577
 endif
 
-ifeq ($(PKG_VERSION),2.30)
-  PKG_HASH:=6e46b8aeae2f727a36f0bd9505e405768a72218f1796f0d09757d45209871ae6
-endif
-
 ifeq ($(PKG_VERSION),2.31.1)
   PKG_HASH:=5d20086ecf5752cc7d9134246e9588fa201740d540f7eb84d795b1f7a93bca86
 endif
 
+ifeq ($(PKG_VERSION),2.32)
+  PKG_HASH:=0ab6c55dd86a92ed561972ba15b9b70a8b9f75557f896446c82e8b36e473ee04
+endif
+
 ifneq ($(CONFIG_BINUTILS_VERSION_2_29_ARC),)
   PKG_REV:=arc-2017.09-release
   PKG_SOURCE_URL:=https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/archive/$(PKG_REV)/
diff --git a/toolchain/binutils/patches/2.30/100-PR23254-ld.bfd-mishandles-file-pointers-while-scanni.patch b/toolchain/binutils/patches/2.30/100-PR23254-ld.bfd-mishandles-file-pointers-while-scanni.patch
deleted file mode 100644 (file)
index 8a0b675..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From: Alan Modra <amodra@gmail.com>
-Date: Tue, 5 Jun 2018 21:04:00 +0930
-Subject: [PATCH] PR23254, ld.bfd mishandles file pointers while scanning
- archive
-
-Best practice is to not mix lseek/read with fseek/fread on the same
-underlying file descriptor, as not all stdio implementations will cope.
-Since the plugin uses lseek/read while bfd uses fseek/fread this patch
-reopens the file for exclusive use by the plugin rather than trying to
-restore the file descriptor.  That allows the plugin to read the file
-after plugin_call_claim_file too.
-
-bfd/
-       PR 23254
-       * plugin.c (bfd_plugin_open_input): Allow for possibility of
-       nested archives.  Open file again for plugin.
-       (try_claim): Don't save and restore file position.  Close file
-       if not claimed.
-       * sysdep.h (O_BINARY): Define.
-ld/
-       PR 23254
-       * plugin.c (plugin_call_claim_file): Revert 2016-07-19 patch.
-       (plugin_object_p): Don't dup file descriptor.
----
-
---- a/bfd/plugin.c
-+++ b/bfd/plugin.c
-@@ -165,14 +165,22 @@ bfd_plugin_open_input (bfd *ibfd, struct
-   bfd *iobfd;
-   iobfd = ibfd;
--  if (ibfd->my_archive && !bfd_is_thin_archive (ibfd->my_archive))
--    iobfd = ibfd->my_archive;
-+  while (iobfd->my_archive
-+       && !bfd_is_thin_archive (iobfd->my_archive))
-+    iobfd = iobfd->my_archive;
-   file->name = iobfd->filename;
-   if (!iobfd->iostream && !bfd_open_file (iobfd))
-     return 0;
--  file->fd = fileno ((FILE *) iobfd->iostream);
-+  /* The plugin API expects that the file descriptor won't be closed
-+     and reused as done by the bfd file cache.  So open it again.
-+     dup isn't good enough.  plugin IO uses lseek/read while BFD uses
-+     fseek/fread.  It isn't wise to mix the unistd and stdio calls on
-+     the same underlying file descriptor.  */
-+  file->fd = open (file->name, O_RDONLY | O_BINARY);
-+  if (file->fd < 0)
-+    return 0;
-   if (iobfd == ibfd)
-     {
-@@ -196,12 +204,12 @@ try_claim (bfd *abfd)
-   int claimed = 0;
-   struct ld_plugin_input_file file;
-+  file.handle = abfd;
-   if (!bfd_plugin_open_input (abfd, &file))
-     return 0;
--  file.handle = abfd;
--  off_t cur_offset = lseek (file.fd, 0, SEEK_CUR);
-   claim_file (&file, &claimed);
--  lseek (file.fd, cur_offset, SEEK_SET);
-+  if (!claimed)
-+    close (file.fd);
-   return claimed;
- }
---- a/bfd/sysdep.h
-+++ b/bfd/sysdep.h
-@@ -108,6 +108,10 @@ extern char *strrchr ();
- #ifndef O_ACCMODE
- #define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
- #endif
-+/* Systems that don't already define this, don't need it.  */
-+#ifndef O_BINARY
-+#define O_BINARY 0
-+#endif
- #ifndef SEEK_SET
- #define SEEK_SET 0
---- a/ld/plugin.c
-+++ b/ld/plugin.c
-@@ -1053,14 +1053,10 @@ plugin_call_claim_file (const struct ld_
-     {
-       if (curplug->claim_file_handler)
-       {
--        off_t cur_offset;
-         enum ld_plugin_status rv;
-         called_plugin = curplug;
--        cur_offset = lseek (file->fd, 0, SEEK_CUR);
-         rv = (*curplug->claim_file_handler) (file, claimed);
--        if (!*claimed)
--          lseek (file->fd, cur_offset, SEEK_SET);
-         called_plugin = NULL;
-         if (rv != LDPS_OK)
-           set_plugin_error (curplug->name);
-@@ -1126,12 +1122,6 @@ plugin_object_p (bfd *ibfd)
-     }
-   file.handle = input;
--  /* The plugin API expects that the file descriptor won't be closed
--     and reused as done by the bfd file cache.  So dup one.  */
--  file.fd = dup (file.fd);
--  if (file.fd < 0)
--    return NULL;
--
-   input->abfd = abfd;
-   input->view_buffer.addr = NULL;
-   input->view_buffer.filesize = 0;
diff --git a/toolchain/binutils/patches/2.30/300-001_ld_makefile_patch.patch b/toolchain/binutils/patches/2.30/300-001_ld_makefile_patch.patch
deleted file mode 100644 (file)
index 4365197..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/ld/Makefile.am
-+++ b/ld/Makefile.am
-@@ -57,7 +57,7 @@ endif
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
---- a/ld/Makefile.in
-+++ b/ld/Makefile.in
-@@ -446,7 +446,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include
diff --git a/toolchain/binutils/patches/2.30/300-012_check_ldrunpath_length.patch b/toolchain/binutils/patches/2.30/300-012_check_ldrunpath_length.patch
deleted file mode 100644 (file)
index 6f51a72..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/ld/emultempl/elf32.em
-+++ b/ld/emultempl/elf32.em
-@@ -1470,6 +1470,8 @@ fragment <<EOF
-             && command_line.rpath == NULL)
-           {
-             path = (const char *) getenv ("LD_RUN_PATH");
-+            if ((path) && (strlen (path) == 0))
-+              path = NULL;
-             if (path
-                 && gld${EMULATION_NAME}_search_needed (path, &n, force))
-               break;
-@@ -1750,6 +1752,8 @@ gld${EMULATION_NAME}_before_allocation (
-   rpath = command_line.rpath;
-   if (rpath == NULL)
-     rpath = (const char *) getenv ("LD_RUN_PATH");
-+  if ((rpath) && (strlen (rpath) == 0))
-+      rpath = NULL;
-   for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
-     if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
diff --git a/toolchain/binutils/patches/2.30/400-mips_no_dynamic_linking_sym.patch b/toolchain/binutils/patches/2.30/400-mips_no_dynamic_linking_sym.patch
deleted file mode 100644 (file)
index 5f7192a..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/bfd/elfxx-mips.c
-+++ b/bfd/elfxx-mips.c
-@@ -7877,6 +7877,7 @@ _bfd_mips_elf_create_dynamic_sections (b
-       name = SGI_COMPAT (abfd) ? "_DYNAMIC_LINK" : "_DYNAMIC_LINKING";
-       bh = NULL;
-+      if (0) {
-       if (!(_bfd_generic_link_add_one_symbol
-           (info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, 0,
-            NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
-@@ -7889,6 +7890,7 @@ _bfd_mips_elf_create_dynamic_sections (b
-       if (! bfd_elf_link_record_dynamic_symbol (info, h))
-       return FALSE;
-+      }
-       if (! mips_elf_hash_table (info)->use_rld_obj_head)
-       {
diff --git a/toolchain/binutils/patches/2.30/500-Change-default-emulation-for-mips64-linux.patch b/toolchain/binutils/patches/2.30/500-Change-default-emulation-for-mips64-linux.patch
deleted file mode 100644 (file)
index daf118f..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
---- a/bfd/config.bfd
-+++ b/bfd/config.bfd
-@@ -1189,12 +1189,12 @@ case "${targ}" in
-     targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
-     ;;
-   mips64*el-*-linux*)
--    targ_defvec=mips_elf32_ntrad_le_vec
--    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
-+    targ_defvec=mips_elf64_trad_le_vec
-+    targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec"
-     ;;
-   mips64*-*-linux*)
--    targ_defvec=mips_elf32_ntrad_be_vec
--    targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
-+    targ_defvec=mips_elf64_trad_be_vec
-+    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
-     ;;
-   mips*el-*-linux*)
-     targ_defvec=mips_elf32_trad_le_vec
---- a/ld/configure.tgt
-+++ b/ld/configure.tgt
-@@ -535,11 +535,11 @@ mips*el-*-vxworks*)      targ_emul=elf32elmip
- mips*-*-vxworks*)     targ_emul=elf32ebmipvxworks
-                       targ_extra_emuls="elf32elmipvxworks" ;;
- mips*-*-windiss)      targ_emul=elf32mipswindiss ;;
--mips64*el-*-linux-*)  targ_emul=elf32ltsmipn32
--                      targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
-+mips64*el-*-linux-*)  targ_emul=elf64ltsmip
-+                      targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
-                       targ_extra_libpath=$targ_extra_emuls ;;
--mips64*-*-linux-*)    targ_emul=elf32btsmipn32
--                      targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
-+mips64*-*-linux-*)    targ_emul=elf64btsmip
-+                      targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
-                       targ_extra_libpath=$targ_extra_emuls ;;
- mips*el-*-linux-*)    targ_emul=elf32ltsmip
-                       targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
diff --git a/toolchain/binutils/patches/2.32/300-001_ld_makefile_patch.patch b/toolchain/binutils/patches/2.32/300-001_ld_makefile_patch.patch
new file mode 100644 (file)
index 0000000..7b8300e
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/ld/Makefile.am
++++ b/ld/Makefile.am
+@@ -57,7 +57,7 @@ endif
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ EMUL = @EMUL@
+ EMULATION_OFILES = @EMULATION_OFILES@
+--- a/ld/Makefile.in
++++ b/ld/Makefile.in
+@@ -563,7 +563,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
diff --git a/toolchain/binutils/patches/2.32/300-012_check_ldrunpath_length.patch b/toolchain/binutils/patches/2.32/300-012_check_ldrunpath_length.patch
new file mode 100644 (file)
index 0000000..58ee759
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/ld/emultempl/elf32.em
++++ b/ld/emultempl/elf32.em
+@@ -1471,6 +1471,8 @@ fragment <<EOF
+             && command_line.rpath == NULL)
+           {
+             path = (const char *) getenv ("LD_RUN_PATH");
++            if ((path) && (strlen (path) == 0))
++              path = NULL;
+             if (path
+                 && gld${EMULATION_NAME}_search_needed (path, &n, force))
+               break;
+@@ -1751,6 +1753,8 @@ gld${EMULATION_NAME}_before_allocation (
+   rpath = command_line.rpath;
+   if (rpath == NULL)
+     rpath = (const char *) getenv ("LD_RUN_PATH");
++  if ((rpath) && (strlen (rpath) == 0))
++      rpath = NULL;
+   for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
+     if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
diff --git a/toolchain/binutils/patches/2.32/400-mips_no_dynamic_linking_sym.patch b/toolchain/binutils/patches/2.32/400-mips_no_dynamic_linking_sym.patch
new file mode 100644 (file)
index 0000000..91ff77f
--- /dev/null
@@ -0,0 +1,18 @@
+--- a/bfd/elfxx-mips.c
++++ b/bfd/elfxx-mips.c
+@@ -7888,6 +7888,7 @@ _bfd_mips_elf_create_dynamic_sections (b
+       name = SGI_COMPAT (abfd) ? "_DYNAMIC_LINK" : "_DYNAMIC_LINKING";
+       bh = NULL;
++      if (0) {
+       if (!(_bfd_generic_link_add_one_symbol
+           (info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, 0,
+            NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
+@@ -7900,6 +7901,7 @@ _bfd_mips_elf_create_dynamic_sections (b
+       if (! bfd_elf_link_record_dynamic_symbol (info, h))
+       return FALSE;
++      }
+       if (! mips_elf_hash_table (info)->use_rld_obj_head)
+       {
diff --git a/toolchain/binutils/patches/2.32/500-Change-default-emulation-for-mips64-linux.patch b/toolchain/binutils/patches/2.32/500-Change-default-emulation-for-mips64-linux.patch
new file mode 100644 (file)
index 0000000..c6e123e
--- /dev/null
@@ -0,0 +1,37 @@
+--- a/bfd/config.bfd
++++ b/bfd/config.bfd
+@@ -913,12 +913,12 @@ case "${targ}" in
+     targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
+     ;;
+   mips64*el-*-linux*)
+-    targ_defvec=mips_elf32_ntrad_le_vec
+-    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
++    targ_defvec=mips_elf64_trad_le_vec
++    targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec"
+     ;;
+   mips64*-*-linux*)
+-    targ_defvec=mips_elf32_ntrad_be_vec
+-    targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
++    targ_defvec=mips_elf64_trad_be_vec
++    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
+     ;;
+   mips*el-*-linux*)
+     targ_defvec=mips_elf32_trad_le_vec
+--- a/ld/configure.tgt
++++ b/ld/configure.tgt
+@@ -464,11 +464,11 @@ mips*el-*-vxworks*)      targ_emul=elf32elmip
+ mips*-*-vxworks*)     targ_emul=elf32ebmipvxworks
+                       targ_extra_emuls="elf32elmipvxworks" ;;
+ mips*-*-windiss)      targ_emul=elf32mipswindiss ;;
+-mips64*el-*-linux-*)  targ_emul=elf32ltsmipn32
+-                      targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
++mips64*el-*-linux-*)  targ_emul=elf64ltsmip
++                      targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+-mips64*-*-linux-*)    targ_emul=elf32btsmipn32
+-                      targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
++mips64*-*-linux-*)    targ_emul=elf64btsmip
++                      targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+ mips*el-*-linux-*)    targ_emul=elf32ltsmip
+                       targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
index c3208d372cf938f6c66f4784057907b5115a6506..d85e8cd402d48b9fd5b79b4c49490b73276bbc09 100644 (file)
@@ -22,7 +22,6 @@ choice
 
        config GCC_USE_VERSION_8
                bool "gcc 8.x"
-               depends on !arc
 endchoice
 
 config GCC_USE_GRAPHITE
index 9bfe1b8aaf25e1dfe6454d22c39c134df4078f34..ff574fffcd78a674a604c848b50e141f65612a51 100644 (file)
@@ -19,5 +19,5 @@ config GCC_VERSION
        string
        default "5.5.0"         if GCC_VERSION_5
        default "arc-2017.09-release"   if GCC_VERSION_7_1_ARC
-       default "8.2.0"         if GCC_VERSION_8
+       default "8.3.0"         if GCC_VERSION_8
        default "7.4.0"
index 9fd75aebda4dcc4586df5c68543ce5866ce5c883..3c1725cd8a476012b5a28f274730c3bcf66783ac 100644 (file)
@@ -36,8 +36,8 @@ ifeq ($(PKG_VERSION),7.4.0)
   PKG_HASH:=eddde28d04f334aec1604456e536416549e9b1aa137fc69204e65eb0c009fe51
 endif
 
-ifeq ($(PKG_VERSION),8.2.0)
-  PKG_HASH:=196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080
+ifeq ($(PKG_VERSION),8.3.0)
+  PKG_HASH:=64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c
 endif
 
 ifneq ($(CONFIG_GCC_VERSION_7_1_ARC),)
@@ -123,15 +123,12 @@ GCC_CONFIGURE:= \
                --with-gmp=$(TOPDIR)/staging_dir/host \
                --with-mpfr=$(TOPDIR)/staging_dir/host \
                --with-mpc=$(TOPDIR)/staging_dir/host \
-               --disable-decimal-float
+               --disable-decimal-float \
+               --with-diagnostics-color=auto-if-env
 ifneq ($(CONFIG_mips)$(CONFIG_mipsel),)
   GCC_CONFIGURE += --with-mips-plt
 endif
 
-ifndef GCC_VERSION_4_8
-  GCC_CONFIGURE += --with-diagnostics-color=auto-if-env
-endif
-
 ifneq ($(CONFIG_GCC_DEFAULT_PIE),)
   GCC_CONFIGURE+= \
                --enable-default-pie
diff --git a/toolchain/gcc/patches/5.5.0/050-libitm-Don-t-redefine-__always_inline-in-local_atomi.patch b/toolchain/gcc/patches/5.5.0/050-libitm-Don-t-redefine-__always_inline-in-local_atomi.patch
new file mode 100644 (file)
index 0000000..5ec93f5
--- /dev/null
@@ -0,0 +1,1092 @@
+From 55f12fce4ccf77513644a247f9c401a5b1fa2402 Mon Sep 17 00:00:00 2001
+From: torvald <torvald@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Thu, 20 Aug 2015 17:55:24 +0000
+Subject: [PATCH] libitm: Don't redefine __always_inline in local_atomic.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227040 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ libitm/ChangeLog    |   6 +
+ libitm/local_atomic | 299 ++++++++++++++++++++++----------------------
+ 2 files changed, 155 insertions(+), 150 deletions(-)
+
+diff --git a/libitm/ChangeLog b/libitm/ChangeLog
+index 569d5bbbf14..6285c85fd44 100644
+--- a/libitm/ChangeLog
++++ b/libitm/ChangeLog
+@@ -1,3 +1,9 @@
++2015-08-20  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>  (tiny change)
++
++      PR libitm/61164
++      * local_atomic (__always_inline): Rename to...
++      (__libitm_always_inline): ... this.
++
+ 2017-10-10  Release Manager
+       PR target/52482
+diff --git a/libitm/local_atomic b/libitm/local_atomic
+index 3119be40d09..e536275dc9f 100644
+--- a/libitm/local_atomic
++++ b/libitm/local_atomic
+@@ -41,8 +41,7 @@
+ #ifndef _GLIBCXX_ATOMIC
+ #define _GLIBCXX_ATOMIC 1
+-#undef  __always_inline
+-#define __always_inline __attribute__((always_inline))
++#define __libitm_always_inline __attribute__((always_inline))
+ // #pragma GCC system_header
+@@ -74,7 +73,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       memory_order_seq_cst
+     } memory_order;
+-  inline __always_inline memory_order
++  inline __libitm_always_inline memory_order
+   __calculate_memory_order(memory_order __m) noexcept
+   {
+     const bool __cond1 = __m == memory_order_release;
+@@ -84,13 +83,13 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     return __mo2;
+   }
+-  inline __always_inline void
++  inline __libitm_always_inline void
+   atomic_thread_fence(memory_order __m) noexcept
+   {
+     __atomic_thread_fence (__m);
+   }
+-  inline __always_inline void
++  inline __libitm_always_inline void
+   atomic_signal_fence(memory_order __m) noexcept
+   {
+     __atomic_thread_fence (__m);
+@@ -280,19 +279,19 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     // Conversion to ATOMIC_FLAG_INIT.
+     atomic_flag(bool __i) noexcept : __atomic_flag_base({ __i }) { }
+-    __always_inline bool
++    __libitm_always_inline bool
+     test_and_set(memory_order __m = memory_order_seq_cst) noexcept
+     {
+       return __atomic_test_and_set (&_M_i, __m);
+     }
+-    __always_inline bool
++    __libitm_always_inline bool
+     test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept
+     {
+       return __atomic_test_and_set (&_M_i, __m);
+     }
+-    __always_inline void
++    __libitm_always_inline void
+     clear(memory_order __m = memory_order_seq_cst) noexcept
+     {
+       // __glibcxx_assert(__m != memory_order_consume);
+@@ -302,7 +301,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       __atomic_clear (&_M_i, __m);
+     }
+-    __always_inline void
++    __libitm_always_inline void
+     clear(memory_order __m = memory_order_seq_cst) volatile noexcept
+     {
+       // __glibcxx_assert(__m != memory_order_consume);
+@@ -455,7 +454,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       is_lock_free() const volatile noexcept
+       { return __atomic_is_lock_free (sizeof (_M_i), &_M_i); }
+-      __always_inline void
++      __libitm_always_inline void
+       store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept
+       {
+       // __glibcxx_assert(__m != memory_order_acquire);
+@@ -465,7 +464,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       __atomic_store_n(&_M_i, __i, __m);
+       }
+-      __always_inline void
++      __libitm_always_inline void
+       store(__int_type __i,
+           memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+@@ -476,7 +475,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       __atomic_store_n(&_M_i, __i, __m);
+       }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       load(memory_order __m = memory_order_seq_cst) const noexcept
+       {
+       // __glibcxx_assert(__m != memory_order_release);
+@@ -485,7 +484,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return __atomic_load_n(&_M_i, __m);
+       }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       load(memory_order __m = memory_order_seq_cst) const volatile noexcept
+       {
+       // __glibcxx_assert(__m != memory_order_release);
+@@ -494,21 +493,21 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return __atomic_load_n(&_M_i, __m);
+       }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       exchange(__int_type __i,
+              memory_order __m = memory_order_seq_cst) noexcept
+       {
+       return __atomic_exchange_n(&_M_i, __i, __m);
+       }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       exchange(__int_type __i,
+              memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+       return __atomic_exchange_n(&_M_i, __i, __m);
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__int_type& __i1, __int_type __i2,
+                           memory_order __m1, memory_order __m2) noexcept
+       {
+@@ -519,7 +518,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2);
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__int_type& __i1, __int_type __i2,
+                           memory_order __m1,
+                           memory_order __m2) volatile noexcept
+@@ -531,7 +530,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2);
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__int_type& __i1, __int_type __i2,
+                           memory_order __m = memory_order_seq_cst) noexcept
+       {
+@@ -539,7 +538,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+                                    __calculate_memory_order(__m));
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__int_type& __i1, __int_type __i2,
+                  memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+@@ -547,7 +546,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+                                    __calculate_memory_order(__m));
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__int_type& __i1, __int_type __i2,
+                             memory_order __m1, memory_order __m2) noexcept
+       {
+@@ -558,7 +557,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__int_type& __i1, __int_type __i2,
+                             memory_order __m1,
+                             memory_order __m2) volatile noexcept
+@@ -570,7 +569,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__int_type& __i1, __int_type __i2,
+                             memory_order __m = memory_order_seq_cst) noexcept
+       {
+@@ -578,7 +577,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+                                      __calculate_memory_order(__m));
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__int_type& __i1, __int_type __i2,
+                memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+@@ -586,52 +585,52 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+                                      __calculate_memory_order(__m));
+       }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_add(__int_type __i,
+               memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_add(&_M_i, __i, __m); }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_add(__int_type __i,
+               memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_add(&_M_i, __i, __m); }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_sub(__int_type __i,
+               memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_sub(&_M_i, __i, __m); }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_sub(__int_type __i,
+               memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_sub(&_M_i, __i, __m); }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_and(__int_type __i,
+               memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_and(&_M_i, __i, __m); }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_and(__int_type __i,
+               memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_and(&_M_i, __i, __m); }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_or(__int_type __i,
+              memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_or(&_M_i, __i, __m); }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_or(__int_type __i,
+              memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_or(&_M_i, __i, __m); }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_xor(__int_type __i,
+               memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_xor(&_M_i, __i, __m); }
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_xor(__int_type __i,
+               memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_xor(&_M_i, __i, __m); }
+@@ -733,7 +732,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       is_lock_free() const volatile noexcept
+       { return __atomic_is_lock_free (sizeof (_M_p), &_M_p); }
+-      __always_inline void
++      __libitm_always_inline void
+       store(__pointer_type __p,
+           memory_order __m = memory_order_seq_cst) noexcept
+       {
+@@ -744,7 +743,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       __atomic_store_n(&_M_p, __p, __m);
+       }
+-      __always_inline void
++      __libitm_always_inline void
+       store(__pointer_type __p,
+           memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+@@ -755,7 +754,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       __atomic_store_n(&_M_p, __p, __m);
+       }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       load(memory_order __m = memory_order_seq_cst) const noexcept
+       {
+       // __glibcxx_assert(__m != memory_order_release);
+@@ -764,7 +763,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return __atomic_load_n(&_M_p, __m);
+       }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       load(memory_order __m = memory_order_seq_cst) const volatile noexcept
+       {
+       // __glibcxx_assert(__m != memory_order_release);
+@@ -773,21 +772,21 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return __atomic_load_n(&_M_p, __m);
+       }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       exchange(__pointer_type __p,
+              memory_order __m = memory_order_seq_cst) noexcept
+       {
+       return __atomic_exchange_n(&_M_p, __p, __m);
+       }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       exchange(__pointer_type __p,
+              memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+       return __atomic_exchange_n(&_M_p, __p, __m);
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+                             memory_order __m1,
+                             memory_order __m2) noexcept
+@@ -799,7 +798,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2);
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+                             memory_order __m1,
+                             memory_order __m2) volatile noexcept
+@@ -811,22 +810,22 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2);
+       }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_add(ptrdiff_t __d,
+               memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_add(&_M_p, __d, __m); }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_add(ptrdiff_t __d,
+               memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_add(&_M_p, __d, __m); }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_sub(ptrdiff_t __d,
+               memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_sub(&_M_p, __d, __m); }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_sub(ptrdiff_t __d,
+               memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_sub(&_M_p, __d, __m); }
+@@ -870,67 +869,67 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     bool
+     is_lock_free() const volatile noexcept { return _M_base.is_lock_free(); }
+-    __always_inline void
++    __libitm_always_inline void
+     store(bool __i, memory_order __m = memory_order_seq_cst) noexcept
+     { _M_base.store(__i, __m); }
+-    __always_inline void
++    __libitm_always_inline void
+     store(bool __i, memory_order __m = memory_order_seq_cst) volatile noexcept
+     { _M_base.store(__i, __m); }
+-    __always_inline bool
++    __libitm_always_inline bool
+     load(memory_order __m = memory_order_seq_cst) const noexcept
+     { return _M_base.load(__m); }
+-    __always_inline bool
++    __libitm_always_inline bool
+     load(memory_order __m = memory_order_seq_cst) const volatile noexcept
+     { return _M_base.load(__m); }
+-    __always_inline bool
++    __libitm_always_inline bool
+     exchange(bool __i, memory_order __m = memory_order_seq_cst) noexcept
+     { return _M_base.exchange(__i, __m); }
+-    __always_inline bool
++    __libitm_always_inline bool
+     exchange(bool __i,
+            memory_order __m = memory_order_seq_cst) volatile noexcept
+     { return _M_base.exchange(__i, __m); }
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1,
+                         memory_order __m2) noexcept
+     { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); }
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1,
+                         memory_order __m2) volatile noexcept
+     { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); }
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_weak(bool& __i1, bool __i2,
+                         memory_order __m = memory_order_seq_cst) noexcept
+     { return _M_base.compare_exchange_weak(__i1, __i2, __m); }
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_weak(bool& __i1, bool __i2,
+                    memory_order __m = memory_order_seq_cst) volatile noexcept
+     { return _M_base.compare_exchange_weak(__i1, __i2, __m); }
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1,
+                           memory_order __m2) noexcept
+     { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); }
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1,
+                           memory_order __m2) volatile noexcept
+     { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); }
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_strong(bool& __i1, bool __i2,
+                           memory_order __m = memory_order_seq_cst) noexcept
+     { return _M_base.compare_exchange_strong(__i1, __i2, __m); }
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_strong(bool& __i1, bool __i2,
+                   memory_order __m = memory_order_seq_cst) volatile noexcept
+     { return _M_base.compare_exchange_strong(__i1, __i2, __m); }
+@@ -980,11 +979,11 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       store(_Tp __i, memory_order _m = memory_order_seq_cst) noexcept
+       { __atomic_store(&_M_i, &__i, _m); }
+-      __always_inline void
++      __libitm_always_inline void
+       store(_Tp __i, memory_order _m = memory_order_seq_cst) volatile noexcept
+       { __atomic_store(&_M_i, &__i, _m); }
+-      __always_inline _Tp
++      __libitm_always_inline _Tp
+       load(memory_order _m = memory_order_seq_cst) const noexcept
+       { 
+         _Tp tmp;
+@@ -992,7 +991,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return tmp;
+       }
+-      __always_inline _Tp
++      __libitm_always_inline _Tp
+       load(memory_order _m = memory_order_seq_cst) const volatile noexcept
+       { 
+         _Tp tmp;
+@@ -1000,7 +999,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return tmp;
+       }
+-      __always_inline _Tp
++      __libitm_always_inline _Tp
+       exchange(_Tp __i, memory_order _m = memory_order_seq_cst) noexcept
+       { 
+         _Tp tmp;
+@@ -1008,7 +1007,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return tmp;
+       }
+-      __always_inline _Tp
++      __libitm_always_inline _Tp
+       exchange(_Tp __i, 
+              memory_order _m = memory_order_seq_cst) volatile noexcept
+       { 
+@@ -1017,50 +1016,50 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       return tmp;
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 
+                           memory_order __f) noexcept
+       {
+       return __atomic_compare_exchange(&_M_i, &__e, &__i, true, __s, __f); 
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 
+                           memory_order __f) volatile noexcept
+       {
+       return __atomic_compare_exchange(&_M_i, &__e, &__i, true, __s, __f); 
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(_Tp& __e, _Tp __i,
+                           memory_order __m = memory_order_seq_cst) noexcept
+       { return compare_exchange_weak(__e, __i, __m, __m); }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(_Tp& __e, _Tp __i,
+                    memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return compare_exchange_weak(__e, __i, __m, __m); }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 
+                             memory_order __f) noexcept
+       {
+       return __atomic_compare_exchange(&_M_i, &__e, &__i, false, __s, __f); 
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 
+                             memory_order __f) volatile noexcept
+       {
+       return __atomic_compare_exchange(&_M_i, &__e, &__i, false, __s, __f); 
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(_Tp& __e, _Tp __i,
+                              memory_order __m = memory_order_seq_cst) noexcept
+       { return compare_exchange_strong(__e, __i, __m, __m); }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(_Tp& __e, _Tp __i,
+                    memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return compare_exchange_strong(__e, __i, __m, __m); }
+@@ -1153,46 +1152,46 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       is_lock_free() const volatile noexcept
+       { return _M_b.is_lock_free(); }
+-      __always_inline void
++      __libitm_always_inline void
+       store(__pointer_type __p,
+           memory_order __m = memory_order_seq_cst) noexcept
+       { return _M_b.store(__p, __m); }
+-      __always_inline void
++      __libitm_always_inline void
+       store(__pointer_type __p,
+           memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return _M_b.store(__p, __m); }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       load(memory_order __m = memory_order_seq_cst) const noexcept
+       { return _M_b.load(__m); }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       load(memory_order __m = memory_order_seq_cst) const volatile noexcept
+       { return _M_b.load(__m); }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       exchange(__pointer_type __p,
+              memory_order __m = memory_order_seq_cst) noexcept
+       { return _M_b.exchange(__p, __m); }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       exchange(__pointer_type __p,
+              memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return _M_b.exchange(__p, __m); }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
+                           memory_order __m1, memory_order __m2) noexcept
+       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
+                           memory_order __m1,
+                           memory_order __m2) volatile noexcept
+       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
+                           memory_order __m = memory_order_seq_cst) noexcept
+       {
+@@ -1200,7 +1199,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+                                    __calculate_memory_order(__m));
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
+                   memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+@@ -1208,18 +1207,18 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+                                    __calculate_memory_order(__m));
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+                             memory_order __m1, memory_order __m2) noexcept
+       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+                             memory_order __m1,
+                             memory_order __m2) volatile noexcept
+       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+                             memory_order __m = memory_order_seq_cst) noexcept
+       {
+@@ -1227,7 +1226,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+                                           __calculate_memory_order(__m));
+       }
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+                   memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+@@ -1235,22 +1234,22 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+                                           __calculate_memory_order(__m));
+       }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_add(ptrdiff_t __d,
+               memory_order __m = memory_order_seq_cst) noexcept
+       { return _M_b.fetch_add(__d, __m); }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_add(ptrdiff_t __d,
+               memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return _M_b.fetch_add(__d, __m); }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_sub(ptrdiff_t __d,
+               memory_order __m = memory_order_seq_cst) noexcept
+       { return _M_b.fetch_sub(__d, __m); }
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_sub(ptrdiff_t __d,
+               memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return _M_b.fetch_sub(__d, __m); }
+@@ -1544,98 +1543,98 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+   // Function definitions, atomic_flag operations.
+-  inline __always_inline bool
++  inline __libitm_always_inline bool
+   atomic_flag_test_and_set_explicit(atomic_flag* __a,
+                                   memory_order __m) noexcept
+   { return __a->test_and_set(__m); }
+-  inline __always_inline bool
++  inline __libitm_always_inline bool
+   atomic_flag_test_and_set_explicit(volatile atomic_flag* __a,
+                                   memory_order __m) noexcept
+   { return __a->test_and_set(__m); }
+-  inline __always_inline void
++  inline __libitm_always_inline void
+   atomic_flag_clear_explicit(atomic_flag* __a, memory_order __m) noexcept
+   { __a->clear(__m); }
+-  inline __always_inline void
++  inline __libitm_always_inline void
+   atomic_flag_clear_explicit(volatile atomic_flag* __a,
+                            memory_order __m) noexcept
+   { __a->clear(__m); }
+-  inline __always_inline bool
++  inline __libitm_always_inline bool
+   atomic_flag_test_and_set(atomic_flag* __a) noexcept
+   { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); }
+-  inline __always_inline bool
++  inline __libitm_always_inline bool
+   atomic_flag_test_and_set(volatile atomic_flag* __a) noexcept
+   { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); }
+-  inline __always_inline void
++  inline __libitm_always_inline void
+   atomic_flag_clear(atomic_flag* __a) noexcept
+   { atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
+-  inline __always_inline void
++  inline __libitm_always_inline void
+   atomic_flag_clear(volatile atomic_flag* __a) noexcept
+   { atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
+   // Function templates generally applicable to atomic types.
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_is_lock_free(const atomic<_ITp>* __a) noexcept
+     { return __a->is_lock_free(); }
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_is_lock_free(const volatile atomic<_ITp>* __a) noexcept
+     { return __a->is_lock_free(); }
+   template<typename _ITp>
+-    __always_inline void
++    __libitm_always_inline void
+     atomic_init(atomic<_ITp>* __a, _ITp __i) noexcept;
+   template<typename _ITp>
+-    __always_inline void
++    __libitm_always_inline void
+     atomic_init(volatile atomic<_ITp>* __a, _ITp __i) noexcept;
+   template<typename _ITp>
+-    __always_inline void
++    __libitm_always_inline void
+     atomic_store_explicit(atomic<_ITp>* __a, _ITp __i,
+                         memory_order __m) noexcept
+     { __a->store(__i, __m); }
+   template<typename _ITp>
+-    __always_inline void
++    __libitm_always_inline void
+     atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i,
+                         memory_order __m) noexcept
+     { __a->store(__i, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_load_explicit(const atomic<_ITp>* __a, memory_order __m) noexcept
+     { return __a->load(__m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_load_explicit(const volatile atomic<_ITp>* __a,
+                        memory_order __m) noexcept
+     { return __a->load(__m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_exchange_explicit(atomic<_ITp>* __a, _ITp __i,
+                            memory_order __m) noexcept
+     { return __a->exchange(__i, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_exchange_explicit(volatile atomic<_ITp>* __a, _ITp __i,
+                            memory_order __m) noexcept
+     { return __a->exchange(__i, __m); }
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_weak_explicit(atomic<_ITp>* __a,
+                                         _ITp* __i1, _ITp __i2,
+                                         memory_order __m1,
+@@ -1643,7 +1642,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); }
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_weak_explicit(volatile atomic<_ITp>* __a,
+                                         _ITp* __i1, _ITp __i2,
+                                         memory_order __m1,
+@@ -1651,7 +1650,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); }
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_strong_explicit(atomic<_ITp>* __a,
+                                           _ITp* __i1, _ITp __i2,
+                                           memory_order __m1,
+@@ -1659,7 +1658,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); }
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_strong_explicit(volatile atomic<_ITp>* __a,
+                                           _ITp* __i1, _ITp __i2,
+                                           memory_order __m1,
+@@ -1668,37 +1667,37 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+   template<typename _ITp>
+-    __always_inline void
++    __libitm_always_inline void
+     atomic_store(atomic<_ITp>* __a, _ITp __i) noexcept
+     { atomic_store_explicit(__a, __i, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline void
++    __libitm_always_inline void
+     atomic_store(volatile atomic<_ITp>* __a, _ITp __i) noexcept
+     { atomic_store_explicit(__a, __i, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_load(const atomic<_ITp>* __a) noexcept
+     { return atomic_load_explicit(__a, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_load(const volatile atomic<_ITp>* __a) noexcept
+     { return atomic_load_explicit(__a, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_exchange(atomic<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_exchange(volatile atomic<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_weak(atomic<_ITp>* __a,
+                                _ITp* __i1, _ITp __i2) noexcept
+     {
+@@ -1708,7 +1707,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     }
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_weak(volatile atomic<_ITp>* __a,
+                                _ITp* __i1, _ITp __i2) noexcept
+     {
+@@ -1718,7 +1717,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     }
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_strong(atomic<_ITp>* __a,
+                                  _ITp* __i1, _ITp __i2) noexcept
+     {
+@@ -1728,7 +1727,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     }
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_strong(volatile atomic<_ITp>* __a,
+                                  _ITp* __i1, _ITp __i2) noexcept
+     {
+@@ -1742,158 +1741,158 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+   // intergral types as specified in the standard, excluding address
+   // types.
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_add_explicit(__atomic_base<_ITp>* __a, _ITp __i,
+                             memory_order __m) noexcept
+     { return __a->fetch_add(__i, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_add_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+                             memory_order __m) noexcept
+     { return __a->fetch_add(__i, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_sub_explicit(__atomic_base<_ITp>* __a, _ITp __i,
+                             memory_order __m) noexcept
+     { return __a->fetch_sub(__i, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_sub_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+                             memory_order __m) noexcept
+     { return __a->fetch_sub(__i, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_and_explicit(__atomic_base<_ITp>* __a, _ITp __i,
+                             memory_order __m) noexcept
+     { return __a->fetch_and(__i, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_and_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+                             memory_order __m) noexcept
+     { return __a->fetch_and(__i, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_or_explicit(__atomic_base<_ITp>* __a, _ITp __i,
+                            memory_order __m) noexcept
+     { return __a->fetch_or(__i, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_or_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+                            memory_order __m) noexcept
+     { return __a->fetch_or(__i, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_xor_explicit(__atomic_base<_ITp>* __a, _ITp __i,
+                             memory_order __m) noexcept
+     { return __a->fetch_xor(__i, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_xor_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+                             memory_order __m) noexcept
+     { return __a->fetch_xor(__i, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_add(__atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_add(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_sub(__atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_sub(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_and(__atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_and(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_or(__atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_or(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_xor(__atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); }
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); }
+   // Partial specializations for pointers.
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_add_explicit(atomic<_ITp*>* __a, ptrdiff_t __d,
+                             memory_order __m) noexcept
+     { return __a->fetch_add(__d, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_add_explicit(volatile atomic<_ITp*>* __a, ptrdiff_t __d,
+                             memory_order __m) noexcept
+     { return __a->fetch_add(__d, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_add(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
+     { return __a->fetch_add(__d); }
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_add(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
+     { return __a->fetch_add(__d); }
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_sub_explicit(volatile atomic<_ITp*>* __a,
+                             ptrdiff_t __d, memory_order __m) noexcept
+     { return __a->fetch_sub(__d, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_sub_explicit(atomic<_ITp*>* __a, ptrdiff_t __d,
+                             memory_order __m) noexcept
+     { return __a->fetch_sub(__d, __m); }
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_sub(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
+     { return __a->fetch_sub(__d); }
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_sub(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
+     { return __a->fetch_sub(__d); }
+   // @} group atomics
+-- 
+2.19.2
+
diff --git a/toolchain/gcc/patches/8.2.0/002-case_insensitive.patch b/toolchain/gcc/patches/8.2.0/002-case_insensitive.patch
deleted file mode 100644 (file)
index 3442076..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-commit 81cc26c706b2bc8c8c1eb1a322e5c5157900836e
-Author: Felix Fietkau <nbd@openwrt.org>
-Date:   Sun Oct 19 21:45:51 2014 +0000
-
-    gcc: do not assume that the Mac OS X filesystem is case insensitive
-    
-    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
-    
-    SVN-Revision: 42973
-
---- a/include/filenames.h
-+++ b/include/filenames.h
-@@ -43,11 +43,6 @@ extern "C" {
- #  define IS_DIR_SEPARATOR(c) IS_DOS_DIR_SEPARATOR (c)
- #  define IS_ABSOLUTE_PATH(f) IS_DOS_ABSOLUTE_PATH (f)
- #else /* not DOSish */
--#  if defined(__APPLE__)
--#    ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM
--#      define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1
--#    endif
--#  endif /* __APPLE__ */
- #  define HAS_DRIVE_SPEC(f) (0)
- #  define IS_DIR_SEPARATOR(c) IS_UNIX_DIR_SEPARATOR (c)
- #  define IS_ABSOLUTE_PATH(f) IS_UNIX_ABSOLUTE_PATH (f)
diff --git a/toolchain/gcc/patches/8.2.0/010-documentation.patch b/toolchain/gcc/patches/8.2.0/010-documentation.patch
deleted file mode 100644 (file)
index c3a6a15..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-commit 098bd91f5eae625c7d2ee621e10930fc4434e5e2
-Author: Luka Perkov <luka@openwrt.org>
-Date:   Tue Feb 26 16:16:33 2013 +0000
-
-    gcc: don't build documentation
-    
-    This closes #13039.
-    
-    Signed-off-by: Luka Perkov <luka@openwrt.org>
-    
-    SVN-Revision: 35807
-
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -3203,18 +3203,10 @@ doc/gcc.info: $(TEXI_GCC_FILES)
- doc/gccint.info: $(TEXI_GCCINT_FILES)
- doc/cppinternals.info: $(TEXI_CPPINT_FILES)
--doc/%.info: %.texi
--      if [ x$(BUILD_INFO) = xinfo ]; then \
--              $(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \
--                      -I $(gcc_docdir)/include -o $@ $<; \
--      fi
-+doc/%.info:
- # Duplicate entry to handle renaming of gccinstall.info
--doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES)
--      if [ x$(BUILD_INFO) = xinfo ]; then \
--              $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
--                      -I $(gcc_docdir)/include -o $@ $<; \
--      fi
-+doc/gccinstall.info:
- doc/cpp.dvi: $(TEXI_CPP_FILES)
- doc/gcc.dvi: $(TEXI_GCC_FILES)
diff --git a/toolchain/gcc/patches/8.2.0/110-Fix-MIPS-PR-84790.patch b/toolchain/gcc/patches/8.2.0/110-Fix-MIPS-PR-84790.patch
deleted file mode 100644 (file)
index b89eca2..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84790.
-MIPS16 functions have a static assembler prologue which clobbers
-registers v0 and v1. Add these register clobbers to function call
-instructions.
-
---- a/gcc/config/mips/mips.c
-+++ b/gcc/config/mips/mips.c
-@@ -3102,6 +3102,12 @@ mips_emit_call_insn (rtx pattern, rtx or
-       emit_insn (gen_update_got_version ());
-     }
-+  if (TARGET_MIPS16 && TARGET_USE_GOT)
-+    {
-+      clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS16_PIC_TEMP);
-+      clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS_PROLOGUE_TEMP (word_mode));
-+    }
-+
-   if (TARGET_MIPS16
-       && TARGET_EXPLICIT_RELOCS
-       && TARGET_CALL_CLOBBERED_GP)
diff --git a/toolchain/gcc/patches/8.2.0/230-musl_libssp.patch b/toolchain/gcc/patches/8.2.0/230-musl_libssp.patch
deleted file mode 100644 (file)
index b3ab79c..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -868,7 +868,9 @@ proper position among the other output f
- #endif
- #ifndef LINK_SSP_SPEC
--#ifdef TARGET_LIBC_PROVIDES_SSP
-+#if DEFAULT_LIBC == LIBC_MUSL
-+#define LINK_SSP_SPEC "-lssp_nonshared"
-+#elif defined(TARGET_LIBC_PROVIDES_SSP)
- #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
-                      "|fstack-protector-strong|fstack-protector-explicit:}"
- #else
diff --git a/toolchain/gcc/patches/8.2.0/300-mips_Os_cpu_rtx_cost_model.patch b/toolchain/gcc/patches/8.2.0/300-mips_Os_cpu_rtx_cost_model.patch
deleted file mode 100644 (file)
index 6f97356..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-commit ecf7671b769fe96f7b5134be442089f8bdba55d2
-Author: Felix Fietkau <nbd@nbd.name>
-Date:   Thu Aug 4 20:29:45 2016 +0200
-
-gcc: add a patch to generate better code with Os on mips
-
-Also happens to reduce compressed code size a bit
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
-
---- a/gcc/config/mips/mips.c
-+++ b/gcc/config/mips/mips.c
-@@ -19834,7 +19834,7 @@ mips_option_override (void)
-     flag_pcc_struct_return = 0;
-   /* Decide which rtx_costs structure to use.  */
--  if (optimize_size)
-+  if (0 && optimize_size)
-     mips_cost = &mips_rtx_cost_optimize_size;
-   else
-     mips_cost = &mips_rtx_cost_data[mips_tune];
diff --git a/toolchain/gcc/patches/8.2.0/800-arm_v5te_no_ldrd_strd.patch b/toolchain/gcc/patches/8.2.0/800-arm_v5te_no_ldrd_strd.patch
deleted file mode 100644 (file)
index 172295f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/gcc/config/arm/arm.h
-+++ b/gcc/config/arm/arm.h
-@@ -155,7 +155,7 @@ extern tree arm_fp16_type_node;
- /* Thumb-1 only.  */
- #define TARGET_THUMB1_ONLY            (TARGET_THUMB1 && !arm_arch_notm)
--#define TARGET_LDRD                   (arm_arch5e && ARM_DOUBLEWORD_ALIGN \
-+#define TARGET_LDRD                   (arm_arch6 && ARM_DOUBLEWORD_ALIGN \
-                                          && !TARGET_THUMB1)
- #define TARGET_CRC32                  (arm_arch_crc)
diff --git a/toolchain/gcc/patches/8.2.0/810-arm-softfloat-libgcc.patch b/toolchain/gcc/patches/8.2.0/810-arm-softfloat-libgcc.patch
deleted file mode 100644 (file)
index 5c9d86a..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-commit 8570c4be394cff7282f332f97da2ff569a927ddb
-Author: Imre Kaloz <kaloz@openwrt.org>
-Date:   Wed Feb 2 20:06:12 2011 +0000
-
-    fixup arm soft-float symbols
-    
-    SVN-Revision: 25325
-
---- a/libgcc/config/arm/t-linux
-+++ b/libgcc/config/arm/t-linux
-@@ -1,6 +1,10 @@
- LIB1ASMSRC = arm/lib1funcs.S
- LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
--      _ctzsi2 _arm_addsubdf3 _arm_addsubsf3
-+      _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 \
-+      _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
-+      _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
-+      _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
-+      _arm_fixsfsi _arm_fixunssfsi
- # Just for these, we omit the frame pointer since it makes such a big
- # difference.
---- a/gcc/config/arm/linux-elf.h
-+++ b/gcc/config/arm/linux-elf.h
-@@ -58,8 +58,6 @@
-    %{shared:-lc} \
-    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
--#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
--
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
- #define LINUX_TARGET_LINK_SPEC  "%{h*} \
diff --git a/toolchain/gcc/patches/8.2.0/820-libgcc_pic.patch b/toolchain/gcc/patches/8.2.0/820-libgcc_pic.patch
deleted file mode 100644 (file)
index 1a9678d..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-commit c96312958c0621e72c9b32da5bc224ffe2161384
-Author: Felix Fietkau <nbd@openwrt.org>
-Date:   Mon Oct 19 23:26:09 2009 +0000
-
-    gcc: create a proper libgcc_pic.a static library for relinking (4.3.3+ for now, backport will follow)
-    
-    SVN-Revision: 18086
-
---- a/libgcc/Makefile.in
-+++ b/libgcc/Makefile.in
-@@ -923,11 +923,12 @@ $(libgcov-driver-objects): %$(objext): $
- # Static libraries.
- libgcc.a: $(libgcc-objects)
-+libgcc_pic.a: $(libgcc-s-objects)
- libgcov.a: $(libgcov-objects)
- libunwind.a: $(libunwind-objects)
- libgcc_eh.a: $(libgcc-eh-objects)
--libgcc.a libgcov.a libunwind.a libgcc_eh.a:
-+libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a:
-       -rm -f $@
-       objects="$(objects)";                                   \
-@@ -948,7 +949,7 @@ all: libunwind.a
- endif
- ifeq ($(enable_shared),yes)
--all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
-+all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT)
- ifneq ($(LIBUNWIND),)
- all: libunwind$(SHLIB_EXT)
- libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
-@@ -1154,6 +1155,10 @@ install-shared:
-       chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
-       $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
-+      $(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/
-+      chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
-+      $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
-+
-       $(subst @multilib_dir@,$(MULTIDIR),$(subst \
-               @shlib_base_name@,libgcc_s,$(subst \
-               @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
diff --git a/toolchain/gcc/patches/8.2.0/840-armv4_pass_fix-v4bx_to_ld.patch b/toolchain/gcc/patches/8.2.0/840-armv4_pass_fix-v4bx_to_ld.patch
deleted file mode 100644 (file)
index b9c9b16..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-commit 7edc8ca5456d9743dd0075eb3cc5b04f4f24c8cc
-Author: Imre Kaloz <kaloz@openwrt.org>
-Date:   Wed Feb 2 19:34:36 2011 +0000
-
-    add armv4 fixup patches
-    
-    SVN-Revision: 25322
-
-
---- a/gcc/config/arm/linux-eabi.h
-+++ b/gcc/config/arm/linux-eabi.h
-@@ -88,10 +88,15 @@
- #define MUSL_DYNAMIC_LINKER \
-   "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1"
-+/* For armv4 we pass --fix-v4bx to linker to support EABI */
-+#undef TARGET_FIX_V4BX_SPEC
-+#define TARGET_FIX_V4BX_SPEC " %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*"\
-+  "|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx}"
-+
- /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
-    use the GNU/Linux version, not the generic BPABI version.  */
- #undef  LINK_SPEC
--#define LINK_SPEC EABI_LINK_SPEC                                      \
-+#define LINK_SPEC EABI_LINK_SPEC TARGET_FIX_V4BX_SPEC                 \
-   LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC,                                \
-                      LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
diff --git a/toolchain/gcc/patches/8.2.0/850-use_shared_libgcc.patch b/toolchain/gcc/patches/8.2.0/850-use_shared_libgcc.patch
deleted file mode 100644 (file)
index f619f0e..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-commit dcfc40358b5a3cae7320c17f8d1cebd5ad5540cd
-Author: Felix Fietkau <nbd@openwrt.org>
-Date:   Sun Feb 12 20:25:47 2012 +0000
-
-    gcc 4.6: port over the missing patch 850-use_shared_libgcc.patch to prevent libgcc crap from leaking into every single binary
-    
-    SVN-Revision: 30486
---- a/gcc/config/arm/linux-eabi.h
-+++ b/gcc/config/arm/linux-eabi.h
-@@ -126,10 +126,6 @@
-   "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} "   \
-   LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)
--/* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we
--   do not use -lfloat.  */
--#undef LIBGCC_SPEC
--
- /* Clear the instruction cache from `beg' to `end'.  This is
-    implemented in lib1funcs.S, so ensure an error if this definition
-    is used.  */
---- a/gcc/config/linux.h
-+++ b/gcc/config/linux.h
-@@ -53,6 +53,10 @@ see the files COPYING3 and COPYING.RUNTI
-       builtin_assert ("system=posix");                        \
-     } while (0)
-+#ifndef LIBGCC_SPEC
-+#define LIBGCC_SPEC "%{static|static-libgcc:-lgcc}%{!static:%{!static-libgcc:-lgcc_s}}"
-+#endif
-+
- /* Determine which dynamic linker to use depending on whether GLIBC or
-    uClibc or Bionic or musl is the default C library and whether
-    -muclibc or -mglibc or -mbionic or -mmusl has been passed to change
---- a/libgcc/mkmap-symver.awk
-+++ b/libgcc/mkmap-symver.awk
-@@ -136,5 +136,5 @@ function output(lib) {
-   else if (inherit[lib])
-     printf("} %s;\n", inherit[lib]);
-   else
--    printf ("\n  local:\n\t*;\n};\n");
-+    printf ("\n\t*;\n};\n");
- }
---- a/gcc/config/rs6000/linux.h
-+++ b/gcc/config/rs6000/linux.h
-@@ -60,6 +60,9 @@
- #undef        CPP_OS_DEFAULT_SPEC
- #define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)"
-+#undef LIBGCC_SPEC
-+#define LIBGCC_SPEC "%{!static:%{!static-libgcc:-lgcc_s}} -lgcc"
-+
- #undef  LINK_SHLIB_SPEC
- #define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}} \
-   %{static-pie:-static -pie --no-dynamic-linker -z text}"
diff --git a/toolchain/gcc/patches/8.2.0/851-libgcc_no_compat.patch b/toolchain/gcc/patches/8.2.0/851-libgcc_no_compat.patch
deleted file mode 100644 (file)
index d710e40..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-commit 64661de100da1ec1061ef3e5e400285dce115e6b
-Author: Felix Fietkau <nbd@openwrt.org>
-Date:   Sun May 10 13:16:35 2015 +0000
-
-    gcc: add some size optimization patches
-    
-    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
-    
-    SVN-Revision: 45664
-
---- a/libgcc/config/t-libunwind
-+++ b/libgcc/config/t-libunwind
-@@ -2,8 +2,7 @@
- HOST_LIBGCC2_CFLAGS += -DUSE_GAS_SYMVER
--LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \
--  $(srcdir)/unwind-compat.c $(srcdir)/unwind-dw2-fde-compat.c
-+LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
- LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
- # Override the default value from t-slibgcc-elf-ver and mention -lunwind
diff --git a/toolchain/gcc/patches/8.2.0/870-ppc_no_crtsavres.patch b/toolchain/gcc/patches/8.2.0/870-ppc_no_crtsavres.patch
deleted file mode 100644 (file)
index ecaf75a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/gcc/config/rs6000/rs6000.c
-+++ b/gcc/config/rs6000/rs6000.c
-@@ -24501,7 +24501,7 @@ rs6000_savres_strategy (rs6000_stack_t *
-   /* Define cutoff for using out-of-line functions to save registers.  */
-   if (DEFAULT_ABI == ABI_V4 || TARGET_ELF)
-     {
--      if (!optimize_size)
-+      if (1)
-       {
-         strategy |= SAVE_INLINE_FPRS | REST_INLINE_FPRS;
-         strategy |= SAVE_INLINE_GPRS | REST_INLINE_GPRS;
diff --git a/toolchain/gcc/patches/8.2.0/881-no_tm_section.patch b/toolchain/gcc/patches/8.2.0/881-no_tm_section.patch
deleted file mode 100644 (file)
index fab5db3..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libgcc/crtstuff.c
-+++ b/libgcc/crtstuff.c
-@@ -152,7 +152,7 @@ call_ ## FUNC (void)                                       \
- #endif
- #if !defined(USE_TM_CLONE_REGISTRY) && defined(OBJECT_FORMAT_ELF)
--# define USE_TM_CLONE_REGISTRY 1
-+# define USE_TM_CLONE_REGISTRY 0
- #endif
- /* We do not want to add the weak attribute to the declarations of these
diff --git a/toolchain/gcc/patches/8.2.0/900-bad-mips16-crt.patch b/toolchain/gcc/patches/8.2.0/900-bad-mips16-crt.patch
deleted file mode 100644 (file)
index dd6e9dc..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/libgcc/config/mips/t-mips16
-+++ b/libgcc/config/mips/t-mips16
-@@ -43,3 +43,6 @@ SYNC_CFLAGS = -mno-mips16
- # Version these symbols if building libgcc.so.
- SHLIB_MAPFILES += $(srcdir)/config/mips/libgcc-mips16.ver
-+
-+CRTSTUFF_T_CFLAGS += -mno-mips16
-+CRTSTUFF_T_CFLAGS_S += -mno-mips16
diff --git a/toolchain/gcc/patches/8.2.0/910-mbsd_multi.patch b/toolchain/gcc/patches/8.2.0/910-mbsd_multi.patch
deleted file mode 100644 (file)
index d9802b6..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-commit 99368862e44740ff4fd33760893f04e14f9dbdf1
-Author: Felix Fietkau <nbd@openwrt.org>
-Date:   Tue Jul 31 00:52:27 2007 +0000
-
-    Port the mbsd_multi patch from freewrt, which adds -fhonour-copts. This will emit warnings in packages that don't use our target cflags properly
-    
-    SVN-Revision: 8256
-
-       This patch brings over a feature from MirBSD:
-       * -fhonour-copts
-         If this option is not given, it's warned (depending
-         on environment variables). This is to catch errors
-         of misbuilt packages which override CFLAGS themselves.
-
-       This patch was authored by Thorsten Glaser <tg at mirbsd.de>
-       with copyright assignment to the FSF in effect.
-
---- a/gcc/c-family/c-opts.c
-+++ b/gcc/c-family/c-opts.c
-@@ -107,6 +107,9 @@ static dump_flags_t original_dump_flags;
- /* Whether any standard preincluded header has been preincluded.  */
- static bool done_preinclude;
-+/* Check if a port honours COPTS.  */
-+static int honour_copts = 0;
-+
- static void handle_OPT_d (const char *);
- static void set_std_cxx98 (int);
- static void set_std_cxx11 (int);
-@@ -459,6 +462,12 @@ c_common_handle_option (size_t scode, co
-       flag_no_builtin = !value;
-       break;
-+    case OPT_fhonour_copts:
-+      if (c_language == clk_c) {
-+        honour_copts++;
-+      }
-+      break;
-+
-     case OPT_fconstant_string_class_:
-       constant_string_class_name = arg;
-       break;
-@@ -1125,6 +1134,47 @@ c_common_init (void)
-       return false;
-     }
-+  if (c_language == clk_c) {
-+    char *ev = getenv ("GCC_HONOUR_COPTS");
-+    int evv;
-+    if (ev == NULL)
-+      evv = -1;
-+    else if ((*ev == '0') || (*ev == '\0'))
-+      evv = 0;
-+    else if (*ev == '1')
-+      evv = 1;
-+    else if (*ev == '2')
-+      evv = 2;
-+    else if (*ev == 's')
-+      evv = -1;
-+    else {
-+      warning (0, "unknown GCC_HONOUR_COPTS value, assuming 1");
-+      evv = 1; /* maybe depend this on something like MIRBSD_NATIVE?  */
-+    }
-+    if (evv == 1) {
-+      if (honour_copts == 0) {
-+        error ("someone does not honour COPTS at all in lenient mode");
-+        return false;
-+      } else if (honour_copts != 1) {
-+        warning (0, "someone does not honour COPTS correctly, passed %d times",
-+         honour_copts);
-+      }
-+    } else if (evv == 2) {
-+      if (honour_copts == 0) {
-+        error ("someone does not honour COPTS at all in strict mode");
-+        return false;
-+      } else if (honour_copts != 1) {
-+        error ("someone does not honour COPTS correctly, passed %d times",
-+         honour_copts);
-+        return false;
-+      }
-+    } else if (evv == 0) {
-+      if (honour_copts != 1)
-+        inform (UNKNOWN_LOCATION, "someone does not honour COPTS correctly, passed %d times",
-+         honour_copts);
-+    }
-+  }
-+
-   return true;
- }
---- a/gcc/c-family/c.opt
-+++ b/gcc/c-family/c.opt
-@@ -1469,6 +1469,9 @@ C++ ObjC++ Optimization Alias(fexception
- fhonor-std
- C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
-+fhonour-copts
-+C ObjC C++ ObjC++ RejectNegative
-+
- fhosted
- C ObjC
- Assume normal C execution environment.
---- a/gcc/common.opt
-+++ b/gcc/common.opt
-@@ -1551,6 +1551,9 @@ fguess-branch-probability
- Common Report Var(flag_guess_branch_prob) Optimization
- Enable guessing of branch probabilities.
-+fhonour-copts
-+Common RejectNegative
-+
- ; Nonzero means ignore `#ident' directives.  0 means handle them.
- ; Generate position-independent code for executables if possible
- ; On SVR4 targets, it also controls whether or not to emit a
---- a/gcc/opts.c
-+++ b/gcc/opts.c
-@@ -2056,6 +2056,9 @@ common_handle_option (struct gcc_options
-                              opts, opts_set, loc, dc);
-       break;
-+    case OPT_fhonour_copts:
-+      break;
-+
-     case OPT_Wlarger_than_:
-       opts->x_larger_than_size = value;
-       opts->x_warn_larger_than = value != -1;
---- a/gcc/doc/invoke.texi
-+++ b/gcc/doc/invoke.texi
-@@ -7012,6 +7012,17 @@ This option is only supported for C and
- @option{-Wall} and by @option{-Wpedantic}, which can be disabled with
- @option{-Wno-pointer-sign}.
-+@item -fhonour-copts
-+@opindex fhonour-copts
-+If @env{GCC_HONOUR_COPTS} is set to 1, abort if this option is not
-+given at least once, and warn if it is given more than once.
-+If @env{GCC_HONOUR_COPTS} is set to 2, abort if this option is not
-+given exactly once.
-+If @env{GCC_HONOUR_COPTS} is set to 0 or unset, warn if this option
-+is not given exactly once.
-+The warning is quelled if @env{GCC_HONOUR_COPTS} is set to @samp{s}.
-+This flag and environment variable only affect the C language.
-+
- @item -Wstack-protector
- @opindex Wstack-protector
- @opindex Wno-stack-protector
diff --git a/toolchain/gcc/patches/8.2.0/920-specs_nonfatal_getenv.patch b/toolchain/gcc/patches/8.2.0/920-specs_nonfatal_getenv.patch
deleted file mode 100644 (file)
index c3836e6..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-Author: Jo-Philipp Wich <jow@openwrt.org>
-Date:   Sat Apr 21 03:02:39 2012 +0000
-
-    gcc: add patch to make the getenv() spec function nonfatal if requested environment variable is unset
-    
-    SVN-Revision: 31390
-
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -9347,8 +9347,10 @@ getenv_spec_function (int argc, const ch
-     value = varname;
-   if (!value)
--    fatal_error (input_location,
--               "environment variable %qs not defined", varname);
-+    {
-+      warning (input_location, "environment variable %qs not defined", varname);
-+      value = "";
-+    }
-   /* We have to escape every character of the environment variable so
-      they are not interpreted as active spec characters.  A
diff --git a/toolchain/gcc/patches/8.2.0/930-fix-mips-noexecstack.patch b/toolchain/gcc/patches/8.2.0/930-fix-mips-noexecstack.patch
deleted file mode 100644 (file)
index 706d67f..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From da45b3fde60095756f5f6030f6012c23a3d34429 Mon Sep 17 00:00:00 2001
-From: Andrew McDonnell <bugs@andrewmcdonnell.net>
-Date: Fri, 3 Oct 2014 19:09:00 +0930
-Subject: Add .note.GNU-stack section
-
-See http://lists.busybox.net/pipermail/uclibc/2014-October/048671.html
-Below copied from https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02430.html
-
-Re: [Patch, MIPS] Add .note.GNU-stack section
-
-    From: Steve Ellcey <sellcey at mips dot com>
-
-On Wed, 2014-09-10 at 10:15 -0700, Eric Christopher wrote:
->
->
-> On Wed, Sep 10, 2014 at 9:27 AM, <pinskia@gmail.com> wrote:
-
->         This works except you did not update the assembly files in
->         libgcc or glibc. We (Cavium) have the same patch in our tree
->         for a few released versions.
-
-> Mind just checking yours in then Andrew?
-
-> Thanks!
-> -eric
-
-I talked to Andrew about what files he changed in GCC and created and
-tested this new patch.  Andrew also mentioned changing some assembly
-files in glibc but I don't see any use of '.section .note.GNU-stack' in
-any assembly files in glibc (for any platform) so I wasn't planning on
-creating a glibc to add them to mips glibc assembly language files.
-
-OK to check in this patch?
-
-Steve Ellcey
-sellcey@mips.com
-
-
-
-2014-09-26  Steve Ellcey  <sellcey@mips.com>
----
- gcc/config/mips/mips.c          | 3 +++
- libgcc/config/mips/crti.S       | 4 ++++
- libgcc/config/mips/crtn.S       | 3 +++
- libgcc/config/mips/mips16.S     | 4 ++++
- libgcc/config/mips/vr4120-div.S | 4 ++++
- 5 files changed, 18 insertions(+)
-
---- a/gcc/config/mips/mips.c
-+++ b/gcc/config/mips/mips.c
-@@ -22627,6 +22627,9 @@ mips_starting_frame_offset (void)
- #undef TARGET_STARTING_FRAME_OFFSET
- #define TARGET_STARTING_FRAME_OFFSET mips_starting_frame_offset
-+#undef TARGET_ASM_FILE_END
-+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
-+
- struct gcc_target targetm = TARGET_INITIALIZER;
\f
- #include "gt-mips.h"
---- a/libgcc/config/mips/crti.S
-+++ b/libgcc/config/mips/crti.S
-@@ -21,6 +21,10 @@ a copy of the GCC Runtime Library Except
- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
- <http://www.gnu.org/licenses/>.  */
-+
-+/* An executable stack is *not* required for these functions.  */
-+      .section .note.GNU-stack,"",%progbits
-+
- /* 4 slots for argument spill area.  1 for cpreturn, 1 for stack.
-    Return spill offset of 40 and 20.  Aligned to 16 bytes for n32.  */
---- a/libgcc/config/mips/crtn.S
-+++ b/libgcc/config/mips/crtn.S
-@@ -21,6 +21,9 @@ a copy of the GCC Runtime Library Except
- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
- <http://www.gnu.org/licenses/>.  */
-+/* An executable stack is *not* required for these functions.  */
-+      .section .note.GNU-stack,"",%progbits
-+
- /* 4 slots for argument spill area.  1 for cpreturn, 1 for stack.
-    Return spill offset of 40 and 20.  Aligned to 16 bytes for n32.  */
---- a/libgcc/config/mips/mips16.S
-+++ b/libgcc/config/mips/mips16.S
-@@ -48,6 +48,10 @@ see the files COPYING3 and COPYING.RUNTI
-    values using the soft-float calling convention, but do the actual
-    operation using the hard floating point instructions.  */
-+/* An executable stack is *not* required for these functions.  */
-+      .section .note.GNU-stack,"",%progbits
-+      .previous
-+
- #if defined _MIPS_SIM && (_MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIO64)
- /* This file contains 32-bit assembly code.  */
---- a/libgcc/config/mips/vr4120-div.S
-+++ b/libgcc/config/mips/vr4120-div.S
-@@ -26,6 +26,10 @@ see the files COPYING3 and COPYING.RUNTI
-    -mfix-vr4120.  div and ddiv do not give the correct result when one
-    of the operands is negative.  */
-+/* An executable stack is *not* required for these functions.  */
-+      .section .note.GNU-stack,"",%progbits
-+      .previous
-+
-       .set    nomips16
- #define DIV                                                           \
diff --git a/toolchain/gcc/patches/8.2.0/931-libffi-fix-MIPS-softfloat-build-issue.patch b/toolchain/gcc/patches/8.2.0/931-libffi-fix-MIPS-softfloat-build-issue.patch
deleted file mode 100644 (file)
index fb4cb15..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-From c0c62fa4256f805389f16ebfc4a60cf789129b50 Mon Sep 17 00:00:00 2001
-From: BangLang Huang <banglang.huang@foxmail.com>
-Date: Wed, 9 Nov 2016 10:36:49 +0800
-Subject: [PATCH] libffi: fix MIPS softfloat build issue
-
-Backported from github.com/libffi/libffi#272
-
-Signed-off-by: BangLang Huang <banglang.huang@foxmail.com>
-Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
----
- libffi/src/mips/n32.S | 17 +++++++++++++++++
- libffi/src/mips/o32.S | 17 +++++++++++++++++
- 2 files changed, 34 insertions(+)
-
---- a/libffi/src/mips/n32.S
-+++ b/libffi/src/mips/n32.S
-@@ -107,6 +107,16 @@ loadregs:
-       REG_L   t6, 3*FFI_SIZEOF_ARG($fp)  # load the flags word into t6.
-+#ifdef __mips_soft_float
-+      REG_L   a0, 0*FFI_SIZEOF_ARG(t9)
-+      REG_L   a1, 1*FFI_SIZEOF_ARG(t9)
-+      REG_L   a2, 2*FFI_SIZEOF_ARG(t9)
-+      REG_L   a3, 3*FFI_SIZEOF_ARG(t9)
-+      REG_L   a4, 4*FFI_SIZEOF_ARG(t9)
-+      REG_L   a5, 5*FFI_SIZEOF_ARG(t9)
-+      REG_L   a6, 6*FFI_SIZEOF_ARG(t9)
-+      REG_L   a7, 7*FFI_SIZEOF_ARG(t9)
-+#else
-       and     t4, t6, ((1<<FFI_FLAG_BITS)-1)
-       REG_L   a0, 0*FFI_SIZEOF_ARG(t9)
-       beqz    t4, arg1_next
-@@ -193,6 +203,7 @@ arg7_next:
- arg8_doublep: 
-       l.d     $f19, 7*FFI_SIZEOF_ARG(t9)      
- arg8_next:    
-+#endif
- callit:               
-       # Load the function pointer
-@@ -214,6 +225,7 @@ retint:
-       b       epilogue
- retfloat:
-+#ifndef __mips_soft_float
-       bne     t6, FFI_TYPE_FLOAT, retdouble
-       jal     t9
-       REG_L   t4, 4*FFI_SIZEOF_ARG($fp)
-@@ -272,6 +284,7 @@ retstruct_f_d:
-       s.s     $f0, 0(t4)
-       s.d     $f2, 8(t4)
-       b       epilogue
-+#endif
- retstruct_d_soft:
-       bne     t6, FFI_TYPE_STRUCT_D_SOFT, retstruct_f_soft
-@@ -429,6 +442,7 @@ ffi_closure_N32:
-       REG_S   a6, A6_OFF2($sp)
-       REG_S   a7, A7_OFF2($sp)
-+#ifndef __mips_soft_float
-       # Store all possible float/double registers.
-       s.d     $f12, F12_OFF2($sp)
-       s.d     $f13, F13_OFF2($sp)
-@@ -438,6 +452,7 @@ ffi_closure_N32:
-       s.d     $f17, F17_OFF2($sp)
-       s.d     $f18, F18_OFF2($sp)
-       s.d     $f19, F19_OFF2($sp)
-+#endif
-       # Call ffi_closure_mips_inner_N32 to do the real work.
-       LA      t9, ffi_closure_mips_inner_N32
-@@ -458,6 +473,7 @@ cls_retint:
-       b       cls_epilogue
- cls_retfloat:
-+#ifndef __mips_soft_float
-       bne     v0, FFI_TYPE_FLOAT, cls_retdouble
-       l.s     $f0, V0_OFF2($sp)
-       b       cls_epilogue
-@@ -500,6 +516,7 @@ cls_retstruct_f_d:
-       l.s     $f0, V0_OFF2($sp)
-       l.d     $f2, V1_OFF2($sp)
-       b       cls_epilogue
-+#endif
-       
- cls_retstruct_small2: 
-       REG_L   v0, V0_OFF2($sp)
---- a/libffi/src/mips/o32.S
-+++ b/libffi/src/mips/o32.S
-@@ -82,13 +82,16 @@ sixteen:
-               
-       ADDU    $sp, 4 * FFI_SIZEOF_ARG         # adjust $sp to new args
-+#ifndef __mips_soft_float
-       bnez    t0, pass_d                      # make it quick for int
-+#endif
-       REG_L   a0, 0*FFI_SIZEOF_ARG($sp)       # just go ahead and load the
-       REG_L   a1, 1*FFI_SIZEOF_ARG($sp)       # four regs.
-       REG_L   a2, 2*FFI_SIZEOF_ARG($sp)
-       REG_L   a3, 3*FFI_SIZEOF_ARG($sp)
-       b       call_it
-+#ifndef __mips_soft_float
- pass_d:
-       bne     t0, FFI_ARGS_D, pass_f
-       l.d     $f12, 0*FFI_SIZEOF_ARG($sp)     # load $fp regs from args
-@@ -130,6 +133,7 @@ pass_f_d:
-  #    bne     t0, FFI_ARGS_F_D, call_it
-       l.s     $f12, 0*FFI_SIZEOF_ARG($sp)     # load $fp regs from args
-       l.d     $f14, 2*FFI_SIZEOF_ARG($sp)     # passing double and float
-+#endif
- call_it:      
-       # Load the function pointer
-@@ -158,14 +162,23 @@ retfloat:
-       bne     t2, FFI_TYPE_FLOAT, retdouble
-       jalr    t9
-       REG_L   t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
-+#ifndef __mips_soft_float
-       s.s     $f0, 0(t0)
-+#else
-+      REG_S v0, 0(t0)
-+#endif
-       b       epilogue
- retdouble:    
-       bne     t2, FFI_TYPE_DOUBLE, noretval
-       jalr    t9
-       REG_L   t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
-+#ifndef __mips_soft_float
-       s.d     $f0, 0(t0)
-+#else
-+      REG_S v1, 4(t0)
-+      REG_S v0, 0(t0)
-+#endif
-       b       epilogue
-       
- noretval:     
-@@ -261,9 +274,11 @@ $LCFI7:
-       li      $13, 1          # FFI_O32
-       bne     $16, $13, 1f    # Skip fp save if FFI_O32_SOFT_FLOAT
-       
-+#ifndef __mips_soft_float
-       # Store all possible float/double registers.
-       s.d     $f12, FA_0_0_OFF2($fp)
-       s.d     $f14, FA_1_0_OFF2($fp)
-+#endif
- 1:    
-       # Call ffi_closure_mips_inner_O32 to do the work.
-       la      t9, ffi_closure_mips_inner_O32
-@@ -281,6 +296,7 @@ $LCFI7:
-       li      $13, 1          # FFI_O32
-       bne     $16, $13, 1f    # Skip fp restore if FFI_O32_SOFT_FLOAT
-+#ifndef __mips_soft_float
-       li      $9, FFI_TYPE_FLOAT
-       l.s     $f0, V0_OFF2($fp)
-       beq     $8, $9, closure_done
-@@ -288,6 +304,7 @@ $LCFI7:
-       li      $9, FFI_TYPE_DOUBLE
-       l.d     $f0, V0_OFF2($fp)
-       beq     $8, $9, closure_done
-+#endif
- 1:    
-       REG_L   $3, V1_OFF2($fp)
-       REG_L   $2, V0_OFF2($fp)
diff --git a/toolchain/gcc/patches/8.2.0/960-gotools-fix-compilation-when-making-cross-compiler.patch b/toolchain/gcc/patches/8.2.0/960-gotools-fix-compilation-when-making-cross-compiler.patch
deleted file mode 100644 (file)
index 1dd0508..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-From dda6b050cd74a352670787a294596a9c56c21327 Mon Sep 17 00:00:00 2001
-From: Yousong Zhou <yszhou4tech@gmail.com>
-Date: Fri, 4 May 2018 18:20:53 +0800
-Subject: [PATCH] gotools: fix compilation when making cross compiler
-
-libgo is "the runtime support library for the Go programming language.
-This library is intended for use with the Go frontend."
-
-gccgo will link target files with libgo.so which depends on libgcc_s.so.1, but
-the linker will complain that it cannot find it.  That's because shared libgcc
-is not present in the install directory yet.  libgo.so was made without problem
-because gcc will emit -lgcc_s when compiled with -shared option.  When gotools
-were being made, it was supplied with -static-libgcc thus no link option was
-provided.  Check LIBGO in gcc/go/gcc-spec.c for how gccgo make a builtin spec
-for linking with libgo.so
-
-- GccgoCrossCompilation, https://github.com/golang/go/wiki/GccgoCrossCompilation
-- Cross-building instructions, http://www.eglibc.org/archives/patches/msg00078.html
-
-When 3-pass GCC compilation is used, shared libgcc runtime libraries will be
-available after gcc pass2 completed and will meet the gotools link requirement
-at gcc pass3
----
- gotools/Makefile.am | 4 +++-
- gotools/Makefile.in | 4 +++-
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
---- a/gotools/Makefile.am
-+++ b/gotools/Makefile.am
-@@ -26,6 +26,7 @@ PWD_COMMAND = $${PWDCMD-pwd}
- STAMP = echo timestamp >
- libgodir = ../$(target_noncanonical)/libgo
-+libgccdir = ../$(target_noncanonical)/libgcc
- LIBGODEP = $(libgodir)/libgo.la
- LIBGOTOOL = $(libgodir)/libgotool.a
-@@ -41,7 +42,8 @@ GOCFLAGS = $(CFLAGS_FOR_TARGET)
- GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS)
- AM_GOCFLAGS = -I $(libgodir)
--AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs
-+AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \
-+      -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s
- GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@
- libgosrcdir = $(srcdir)/../libgo/go
---- a/gotools/Makefile.in
-+++ b/gotools/Makefile.in
-@@ -263,6 +263,7 @@ mkinstalldirs = $(SHELL) $(toplevel_srcd
- PWD_COMMAND = $${PWDCMD-pwd}
- STAMP = echo timestamp >
- libgodir = ../$(target_noncanonical)/libgo
-+libgccdir = ../$(target_noncanonical)/libgcc
- LIBGODEP = $(libgodir)/libgo.la
- LIBGOTOOL = $(libgodir)/libgotool.a
- @NATIVE_FALSE@GOCOMPILER = $(GOC)
-@@ -271,7 +272,8 @@ LIBGOTOOL = $(libgodir)/libgotool.a
- @NATIVE_TRUE@GOCOMPILER = $(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET)
- GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS)
- AM_GOCFLAGS = -I $(libgodir)
--AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs
-+AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \
-+      -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s
- GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@
- libgosrcdir = $(srcdir)/../libgo/go
- cmdsrcdir = $(libgosrcdir)/cmd
diff --git a/toolchain/gcc/patches/8.3.0/002-case_insensitive.patch b/toolchain/gcc/patches/8.3.0/002-case_insensitive.patch
new file mode 100644 (file)
index 0000000..3442076
--- /dev/null
@@ -0,0 +1,24 @@
+commit 81cc26c706b2bc8c8c1eb1a322e5c5157900836e
+Author: Felix Fietkau <nbd@openwrt.org>
+Date:   Sun Oct 19 21:45:51 2014 +0000
+
+    gcc: do not assume that the Mac OS X filesystem is case insensitive
+    
+    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+    
+    SVN-Revision: 42973
+
+--- a/include/filenames.h
++++ b/include/filenames.h
+@@ -43,11 +43,6 @@ extern "C" {
+ #  define IS_DIR_SEPARATOR(c) IS_DOS_DIR_SEPARATOR (c)
+ #  define IS_ABSOLUTE_PATH(f) IS_DOS_ABSOLUTE_PATH (f)
+ #else /* not DOSish */
+-#  if defined(__APPLE__)
+-#    ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM
+-#      define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1
+-#    endif
+-#  endif /* __APPLE__ */
+ #  define HAS_DRIVE_SPEC(f) (0)
+ #  define IS_DIR_SEPARATOR(c) IS_UNIX_DIR_SEPARATOR (c)
+ #  define IS_ABSOLUTE_PATH(f) IS_UNIX_ABSOLUTE_PATH (f)
diff --git a/toolchain/gcc/patches/8.3.0/010-documentation.patch b/toolchain/gcc/patches/8.3.0/010-documentation.patch
new file mode 100644 (file)
index 0000000..c3a6a15
--- /dev/null
@@ -0,0 +1,35 @@
+commit 098bd91f5eae625c7d2ee621e10930fc4434e5e2
+Author: Luka Perkov <luka@openwrt.org>
+Date:   Tue Feb 26 16:16:33 2013 +0000
+
+    gcc: don't build documentation
+    
+    This closes #13039.
+    
+    Signed-off-by: Luka Perkov <luka@openwrt.org>
+    
+    SVN-Revision: 35807
+
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -3203,18 +3203,10 @@ doc/gcc.info: $(TEXI_GCC_FILES)
+ doc/gccint.info: $(TEXI_GCCINT_FILES)
+ doc/cppinternals.info: $(TEXI_CPPINT_FILES)
+-doc/%.info: %.texi
+-      if [ x$(BUILD_INFO) = xinfo ]; then \
+-              $(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \
+-                      -I $(gcc_docdir)/include -o $@ $<; \
+-      fi
++doc/%.info:
+ # Duplicate entry to handle renaming of gccinstall.info
+-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES)
+-      if [ x$(BUILD_INFO) = xinfo ]; then \
+-              $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
+-                      -I $(gcc_docdir)/include -o $@ $<; \
+-      fi
++doc/gccinstall.info:
+ doc/cpp.dvi: $(TEXI_CPP_FILES)
+ doc/gcc.dvi: $(TEXI_GCC_FILES)
diff --git a/toolchain/gcc/patches/8.3.0/110-Fix-MIPS-PR-84790.patch b/toolchain/gcc/patches/8.3.0/110-Fix-MIPS-PR-84790.patch
new file mode 100644 (file)
index 0000000..b89eca2
--- /dev/null
@@ -0,0 +1,20 @@
+Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84790.
+MIPS16 functions have a static assembler prologue which clobbers
+registers v0 and v1. Add these register clobbers to function call
+instructions.
+
+--- a/gcc/config/mips/mips.c
++++ b/gcc/config/mips/mips.c
+@@ -3102,6 +3102,12 @@ mips_emit_call_insn (rtx pattern, rtx or
+       emit_insn (gen_update_got_version ());
+     }
++  if (TARGET_MIPS16 && TARGET_USE_GOT)
++    {
++      clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS16_PIC_TEMP);
++      clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS_PROLOGUE_TEMP (word_mode));
++    }
++
+   if (TARGET_MIPS16
+       && TARGET_EXPLICIT_RELOCS
+       && TARGET_CALL_CLOBBERED_GP)
diff --git a/toolchain/gcc/patches/8.3.0/230-musl_libssp.patch b/toolchain/gcc/patches/8.3.0/230-musl_libssp.patch
new file mode 100644 (file)
index 0000000..b3ab79c
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -868,7 +868,9 @@ proper position among the other output f
+ #endif
+ #ifndef LINK_SSP_SPEC
+-#ifdef TARGET_LIBC_PROVIDES_SSP
++#if DEFAULT_LIBC == LIBC_MUSL
++#define LINK_SSP_SPEC "-lssp_nonshared"
++#elif defined(TARGET_LIBC_PROVIDES_SSP)
+ #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
+                      "|fstack-protector-strong|fstack-protector-explicit:}"
+ #else
diff --git a/toolchain/gcc/patches/8.3.0/300-mips_Os_cpu_rtx_cost_model.patch b/toolchain/gcc/patches/8.3.0/300-mips_Os_cpu_rtx_cost_model.patch
new file mode 100644 (file)
index 0000000..6f97356
--- /dev/null
@@ -0,0 +1,21 @@
+commit ecf7671b769fe96f7b5134be442089f8bdba55d2
+Author: Felix Fietkau <nbd@nbd.name>
+Date:   Thu Aug 4 20:29:45 2016 +0200
+
+gcc: add a patch to generate better code with Os on mips
+
+Also happens to reduce compressed code size a bit
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+
+--- a/gcc/config/mips/mips.c
++++ b/gcc/config/mips/mips.c
+@@ -19834,7 +19834,7 @@ mips_option_override (void)
+     flag_pcc_struct_return = 0;
+   /* Decide which rtx_costs structure to use.  */
+-  if (optimize_size)
++  if (0 && optimize_size)
+     mips_cost = &mips_rtx_cost_optimize_size;
+   else
+     mips_cost = &mips_rtx_cost_data[mips_tune];
diff --git a/toolchain/gcc/patches/8.3.0/800-arm_v5te_no_ldrd_strd.patch b/toolchain/gcc/patches/8.3.0/800-arm_v5te_no_ldrd_strd.patch
new file mode 100644 (file)
index 0000000..172295f
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/gcc/config/arm/arm.h
++++ b/gcc/config/arm/arm.h
+@@ -155,7 +155,7 @@ extern tree arm_fp16_type_node;
+ /* Thumb-1 only.  */
+ #define TARGET_THUMB1_ONLY            (TARGET_THUMB1 && !arm_arch_notm)
+-#define TARGET_LDRD                   (arm_arch5e && ARM_DOUBLEWORD_ALIGN \
++#define TARGET_LDRD                   (arm_arch6 && ARM_DOUBLEWORD_ALIGN \
+                                          && !TARGET_THUMB1)
+ #define TARGET_CRC32                  (arm_arch_crc)
diff --git a/toolchain/gcc/patches/8.3.0/810-arm-softfloat-libgcc.patch b/toolchain/gcc/patches/8.3.0/810-arm-softfloat-libgcc.patch
new file mode 100644 (file)
index 0000000..5c9d86a
--- /dev/null
@@ -0,0 +1,33 @@
+commit 8570c4be394cff7282f332f97da2ff569a927ddb
+Author: Imre Kaloz <kaloz@openwrt.org>
+Date:   Wed Feb 2 20:06:12 2011 +0000
+
+    fixup arm soft-float symbols
+    
+    SVN-Revision: 25325
+
+--- a/libgcc/config/arm/t-linux
++++ b/libgcc/config/arm/t-linux
+@@ -1,6 +1,10 @@
+ LIB1ASMSRC = arm/lib1funcs.S
+ LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
+-      _ctzsi2 _arm_addsubdf3 _arm_addsubsf3
++      _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 \
++      _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
++      _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
++      _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
++      _arm_fixsfsi _arm_fixunssfsi
+ # Just for these, we omit the frame pointer since it makes such a big
+ # difference.
+--- a/gcc/config/arm/linux-elf.h
++++ b/gcc/config/arm/linux-elf.h
+@@ -58,8 +58,6 @@
+    %{shared:-lc} \
+    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
+-#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
+-
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+ #define LINUX_TARGET_LINK_SPEC  "%{h*} \
diff --git a/toolchain/gcc/patches/8.3.0/820-libgcc_pic.patch b/toolchain/gcc/patches/8.3.0/820-libgcc_pic.patch
new file mode 100644 (file)
index 0000000..1a9678d
--- /dev/null
@@ -0,0 +1,44 @@
+commit c96312958c0621e72c9b32da5bc224ffe2161384
+Author: Felix Fietkau <nbd@openwrt.org>
+Date:   Mon Oct 19 23:26:09 2009 +0000
+
+    gcc: create a proper libgcc_pic.a static library for relinking (4.3.3+ for now, backport will follow)
+    
+    SVN-Revision: 18086
+
+--- a/libgcc/Makefile.in
++++ b/libgcc/Makefile.in
+@@ -923,11 +923,12 @@ $(libgcov-driver-objects): %$(objext): $
+ # Static libraries.
+ libgcc.a: $(libgcc-objects)
++libgcc_pic.a: $(libgcc-s-objects)
+ libgcov.a: $(libgcov-objects)
+ libunwind.a: $(libunwind-objects)
+ libgcc_eh.a: $(libgcc-eh-objects)
+-libgcc.a libgcov.a libunwind.a libgcc_eh.a:
++libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a:
+       -rm -f $@
+       objects="$(objects)";                                   \
+@@ -948,7 +949,7 @@ all: libunwind.a
+ endif
+ ifeq ($(enable_shared),yes)
+-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
++all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT)
+ ifneq ($(LIBUNWIND),)
+ all: libunwind$(SHLIB_EXT)
+ libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
+@@ -1154,6 +1155,10 @@ install-shared:
+       chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+       $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
++      $(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/
++      chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
++      $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
++
+       $(subst @multilib_dir@,$(MULTIDIR),$(subst \
+               @shlib_base_name@,libgcc_s,$(subst \
+               @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
diff --git a/toolchain/gcc/patches/8.3.0/840-armv4_pass_fix-v4bx_to_ld.patch b/toolchain/gcc/patches/8.3.0/840-armv4_pass_fix-v4bx_to_ld.patch
new file mode 100644 (file)
index 0000000..b9c9b16
--- /dev/null
@@ -0,0 +1,28 @@
+commit 7edc8ca5456d9743dd0075eb3cc5b04f4f24c8cc
+Author: Imre Kaloz <kaloz@openwrt.org>
+Date:   Wed Feb 2 19:34:36 2011 +0000
+
+    add armv4 fixup patches
+    
+    SVN-Revision: 25322
+
+
+--- a/gcc/config/arm/linux-eabi.h
++++ b/gcc/config/arm/linux-eabi.h
+@@ -88,10 +88,15 @@
+ #define MUSL_DYNAMIC_LINKER \
+   "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1"
++/* For armv4 we pass --fix-v4bx to linker to support EABI */
++#undef TARGET_FIX_V4BX_SPEC
++#define TARGET_FIX_V4BX_SPEC " %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*"\
++  "|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx}"
++
+ /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
+    use the GNU/Linux version, not the generic BPABI version.  */
+ #undef  LINK_SPEC
+-#define LINK_SPEC EABI_LINK_SPEC                                      \
++#define LINK_SPEC EABI_LINK_SPEC TARGET_FIX_V4BX_SPEC                 \
+   LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC,                                \
+                      LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
diff --git a/toolchain/gcc/patches/8.3.0/850-use_shared_libgcc.patch b/toolchain/gcc/patches/8.3.0/850-use_shared_libgcc.patch
new file mode 100644 (file)
index 0000000..f619f0e
--- /dev/null
@@ -0,0 +1,54 @@
+commit dcfc40358b5a3cae7320c17f8d1cebd5ad5540cd
+Author: Felix Fietkau <nbd@openwrt.org>
+Date:   Sun Feb 12 20:25:47 2012 +0000
+
+    gcc 4.6: port over the missing patch 850-use_shared_libgcc.patch to prevent libgcc crap from leaking into every single binary
+    
+    SVN-Revision: 30486
+--- a/gcc/config/arm/linux-eabi.h
++++ b/gcc/config/arm/linux-eabi.h
+@@ -126,10 +126,6 @@
+   "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} "   \
+   LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)
+-/* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we
+-   do not use -lfloat.  */
+-#undef LIBGCC_SPEC
+-
+ /* Clear the instruction cache from `beg' to `end'.  This is
+    implemented in lib1funcs.S, so ensure an error if this definition
+    is used.  */
+--- a/gcc/config/linux.h
++++ b/gcc/config/linux.h
+@@ -53,6 +53,10 @@ see the files COPYING3 and COPYING.RUNTI
+       builtin_assert ("system=posix");                        \
+     } while (0)
++#ifndef LIBGCC_SPEC
++#define LIBGCC_SPEC "%{static|static-libgcc:-lgcc}%{!static:%{!static-libgcc:-lgcc_s}}"
++#endif
++
+ /* Determine which dynamic linker to use depending on whether GLIBC or
+    uClibc or Bionic or musl is the default C library and whether
+    -muclibc or -mglibc or -mbionic or -mmusl has been passed to change
+--- a/libgcc/mkmap-symver.awk
++++ b/libgcc/mkmap-symver.awk
+@@ -136,5 +136,5 @@ function output(lib) {
+   else if (inherit[lib])
+     printf("} %s;\n", inherit[lib]);
+   else
+-    printf ("\n  local:\n\t*;\n};\n");
++    printf ("\n\t*;\n};\n");
+ }
+--- a/gcc/config/rs6000/linux.h
++++ b/gcc/config/rs6000/linux.h
+@@ -60,6 +60,9 @@
+ #undef        CPP_OS_DEFAULT_SPEC
+ #define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)"
++#undef LIBGCC_SPEC
++#define LIBGCC_SPEC "%{!static:%{!static-libgcc:-lgcc_s}} -lgcc"
++
+ #undef  LINK_SHLIB_SPEC
+ #define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}} \
+   %{static-pie:-static -pie --no-dynamic-linker -z text}"
diff --git a/toolchain/gcc/patches/8.3.0/851-libgcc_no_compat.patch b/toolchain/gcc/patches/8.3.0/851-libgcc_no_compat.patch
new file mode 100644 (file)
index 0000000..d710e40
--- /dev/null
@@ -0,0 +1,22 @@
+commit 64661de100da1ec1061ef3e5e400285dce115e6b
+Author: Felix Fietkau <nbd@openwrt.org>
+Date:   Sun May 10 13:16:35 2015 +0000
+
+    gcc: add some size optimization patches
+    
+    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+    
+    SVN-Revision: 45664
+
+--- a/libgcc/config/t-libunwind
++++ b/libgcc/config/t-libunwind
+@@ -2,8 +2,7 @@
+ HOST_LIBGCC2_CFLAGS += -DUSE_GAS_SYMVER
+-LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \
+-  $(srcdir)/unwind-compat.c $(srcdir)/unwind-dw2-fde-compat.c
++LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
+ LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
+ # Override the default value from t-slibgcc-elf-ver and mention -lunwind
diff --git a/toolchain/gcc/patches/8.3.0/870-ppc_no_crtsavres.patch b/toolchain/gcc/patches/8.3.0/870-ppc_no_crtsavres.patch
new file mode 100644 (file)
index 0000000..2aa4b8e
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/gcc/config/rs6000/rs6000.c
++++ b/gcc/config/rs6000/rs6000.c
+@@ -24632,7 +24632,7 @@ rs6000_savres_strategy (rs6000_stack_t *
+   /* Define cutoff for using out-of-line functions to save registers.  */
+   if (DEFAULT_ABI == ABI_V4 || TARGET_ELF)
+     {
+-      if (!optimize_size)
++      if (1)
+       {
+         strategy |= SAVE_INLINE_FPRS | REST_INLINE_FPRS;
+         strategy |= SAVE_INLINE_GPRS | REST_INLINE_GPRS;
diff --git a/toolchain/gcc/patches/8.3.0/881-no_tm_section.patch b/toolchain/gcc/patches/8.3.0/881-no_tm_section.patch
new file mode 100644 (file)
index 0000000..fab5db3
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/libgcc/crtstuff.c
++++ b/libgcc/crtstuff.c
+@@ -152,7 +152,7 @@ call_ ## FUNC (void)                                       \
+ #endif
+ #if !defined(USE_TM_CLONE_REGISTRY) && defined(OBJECT_FORMAT_ELF)
+-# define USE_TM_CLONE_REGISTRY 1
++# define USE_TM_CLONE_REGISTRY 0
+ #endif
+ /* We do not want to add the weak attribute to the declarations of these
diff --git a/toolchain/gcc/patches/8.3.0/900-bad-mips16-crt.patch b/toolchain/gcc/patches/8.3.0/900-bad-mips16-crt.patch
new file mode 100644 (file)
index 0000000..dd6e9dc
--- /dev/null
@@ -0,0 +1,9 @@
+--- a/libgcc/config/mips/t-mips16
++++ b/libgcc/config/mips/t-mips16
+@@ -43,3 +43,6 @@ SYNC_CFLAGS = -mno-mips16
+ # Version these symbols if building libgcc.so.
+ SHLIB_MAPFILES += $(srcdir)/config/mips/libgcc-mips16.ver
++
++CRTSTUFF_T_CFLAGS += -mno-mips16
++CRTSTUFF_T_CFLAGS_S += -mno-mips16
diff --git a/toolchain/gcc/patches/8.3.0/910-mbsd_multi.patch b/toolchain/gcc/patches/8.3.0/910-mbsd_multi.patch
new file mode 100644 (file)
index 0000000..fb8e25c
--- /dev/null
@@ -0,0 +1,146 @@
+commit 99368862e44740ff4fd33760893f04e14f9dbdf1
+Author: Felix Fietkau <nbd@openwrt.org>
+Date:   Tue Jul 31 00:52:27 2007 +0000
+
+    Port the mbsd_multi patch from freewrt, which adds -fhonour-copts. This will emit warnings in packages that don't use our target cflags properly
+    
+    SVN-Revision: 8256
+
+       This patch brings over a feature from MirBSD:
+       * -fhonour-copts
+         If this option is not given, it's warned (depending
+         on environment variables). This is to catch errors
+         of misbuilt packages which override CFLAGS themselves.
+
+       This patch was authored by Thorsten Glaser <tg at mirbsd.de>
+       with copyright assignment to the FSF in effect.
+
+--- a/gcc/c-family/c-opts.c
++++ b/gcc/c-family/c-opts.c
+@@ -107,6 +107,9 @@ static dump_flags_t original_dump_flags;
+ /* Whether any standard preincluded header has been preincluded.  */
+ static bool done_preinclude;
++/* Check if a port honours COPTS.  */
++static int honour_copts = 0;
++
+ static void handle_OPT_d (const char *);
+ static void set_std_cxx98 (int);
+ static void set_std_cxx11 (int);
+@@ -459,6 +462,12 @@ c_common_handle_option (size_t scode, co
+       flag_no_builtin = !value;
+       break;
++    case OPT_fhonour_copts:
++      if (c_language == clk_c) {
++        honour_copts++;
++      }
++      break;
++
+     case OPT_fconstant_string_class_:
+       constant_string_class_name = arg;
+       break;
+@@ -1125,6 +1134,47 @@ c_common_init (void)
+       return false;
+     }
++  if (c_language == clk_c) {
++    char *ev = getenv ("GCC_HONOUR_COPTS");
++    int evv;
++    if (ev == NULL)
++      evv = -1;
++    else if ((*ev == '0') || (*ev == '\0'))
++      evv = 0;
++    else if (*ev == '1')
++      evv = 1;
++    else if (*ev == '2')
++      evv = 2;
++    else if (*ev == 's')
++      evv = -1;
++    else {
++      warning (0, "unknown GCC_HONOUR_COPTS value, assuming 1");
++      evv = 1; /* maybe depend this on something like MIRBSD_NATIVE?  */
++    }
++    if (evv == 1) {
++      if (honour_copts == 0) {
++        error ("someone does not honour COPTS at all in lenient mode");
++        return false;
++      } else if (honour_copts != 1) {
++        warning (0, "someone does not honour COPTS correctly, passed %d times",
++         honour_copts);
++      }
++    } else if (evv == 2) {
++      if (honour_copts == 0) {
++        error ("someone does not honour COPTS at all in strict mode");
++        return false;
++      } else if (honour_copts != 1) {
++        error ("someone does not honour COPTS correctly, passed %d times",
++         honour_copts);
++        return false;
++      }
++    } else if (evv == 0) {
++      if (honour_copts != 1)
++        inform (UNKNOWN_LOCATION, "someone does not honour COPTS correctly, passed %d times",
++         honour_copts);
++    }
++  }
++
+   return true;
+ }
+--- a/gcc/c-family/c.opt
++++ b/gcc/c-family/c.opt
+@@ -1469,6 +1469,9 @@ C++ ObjC++ Optimization Alias(fexception
+ fhonor-std
+ C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
++fhonour-copts
++C ObjC C++ ObjC++ RejectNegative
++
+ fhosted
+ C ObjC
+ Assume normal C execution environment.
+--- a/gcc/common.opt
++++ b/gcc/common.opt
+@@ -1551,6 +1551,9 @@ fguess-branch-probability
+ Common Report Var(flag_guess_branch_prob) Optimization
+ Enable guessing of branch probabilities.
++fhonour-copts
++Common RejectNegative
++
+ ; Nonzero means ignore `#ident' directives.  0 means handle them.
+ ; Generate position-independent code for executables if possible
+ ; On SVR4 targets, it also controls whether or not to emit a
+--- a/gcc/opts.c
++++ b/gcc/opts.c
+@@ -2065,6 +2065,9 @@ common_handle_option (struct gcc_options
+                              opts, opts_set, loc, dc);
+       break;
++    case OPT_fhonour_copts:
++      break;
++
+     case OPT_Wlarger_than_:
+       opts->x_larger_than_size = value;
+       opts->x_warn_larger_than = value != -1;
+--- a/gcc/doc/invoke.texi
++++ b/gcc/doc/invoke.texi
+@@ -7014,6 +7014,17 @@ This option is only supported for C and
+ @option{-Wall} and by @option{-Wpedantic}, which can be disabled with
+ @option{-Wno-pointer-sign}.
++@item -fhonour-copts
++@opindex fhonour-copts
++If @env{GCC_HONOUR_COPTS} is set to 1, abort if this option is not
++given at least once, and warn if it is given more than once.
++If @env{GCC_HONOUR_COPTS} is set to 2, abort if this option is not
++given exactly once.
++If @env{GCC_HONOUR_COPTS} is set to 0 or unset, warn if this option
++is not given exactly once.
++The warning is quelled if @env{GCC_HONOUR_COPTS} is set to @samp{s}.
++This flag and environment variable only affect the C language.
++
+ @item -Wstack-protector
+ @opindex Wstack-protector
+ @opindex Wno-stack-protector
diff --git a/toolchain/gcc/patches/8.3.0/920-specs_nonfatal_getenv.patch b/toolchain/gcc/patches/8.3.0/920-specs_nonfatal_getenv.patch
new file mode 100644 (file)
index 0000000..c3836e6
--- /dev/null
@@ -0,0 +1,22 @@
+Author: Jo-Philipp Wich <jow@openwrt.org>
+Date:   Sat Apr 21 03:02:39 2012 +0000
+
+    gcc: add patch to make the getenv() spec function nonfatal if requested environment variable is unset
+    
+    SVN-Revision: 31390
+
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -9347,8 +9347,10 @@ getenv_spec_function (int argc, const ch
+     value = varname;
+   if (!value)
+-    fatal_error (input_location,
+-               "environment variable %qs not defined", varname);
++    {
++      warning (input_location, "environment variable %qs not defined", varname);
++      value = "";
++    }
+   /* We have to escape every character of the environment variable so
+      they are not interpreted as active spec characters.  A
diff --git a/toolchain/gcc/patches/8.3.0/930-fix-mips-noexecstack.patch b/toolchain/gcc/patches/8.3.0/930-fix-mips-noexecstack.patch
new file mode 100644 (file)
index 0000000..706d67f
--- /dev/null
@@ -0,0 +1,111 @@
+From da45b3fde60095756f5f6030f6012c23a3d34429 Mon Sep 17 00:00:00 2001
+From: Andrew McDonnell <bugs@andrewmcdonnell.net>
+Date: Fri, 3 Oct 2014 19:09:00 +0930
+Subject: Add .note.GNU-stack section
+
+See http://lists.busybox.net/pipermail/uclibc/2014-October/048671.html
+Below copied from https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02430.html
+
+Re: [Patch, MIPS] Add .note.GNU-stack section
+
+    From: Steve Ellcey <sellcey at mips dot com>
+
+On Wed, 2014-09-10 at 10:15 -0700, Eric Christopher wrote:
+>
+>
+> On Wed, Sep 10, 2014 at 9:27 AM, <pinskia@gmail.com> wrote:
+
+>         This works except you did not update the assembly files in
+>         libgcc or glibc. We (Cavium) have the same patch in our tree
+>         for a few released versions.
+
+> Mind just checking yours in then Andrew?
+
+> Thanks!
+> -eric
+
+I talked to Andrew about what files he changed in GCC and created and
+tested this new patch.  Andrew also mentioned changing some assembly
+files in glibc but I don't see any use of '.section .note.GNU-stack' in
+any assembly files in glibc (for any platform) so I wasn't planning on
+creating a glibc to add them to mips glibc assembly language files.
+
+OK to check in this patch?
+
+Steve Ellcey
+sellcey@mips.com
+
+
+
+2014-09-26  Steve Ellcey  <sellcey@mips.com>
+---
+ gcc/config/mips/mips.c          | 3 +++
+ libgcc/config/mips/crti.S       | 4 ++++
+ libgcc/config/mips/crtn.S       | 3 +++
+ libgcc/config/mips/mips16.S     | 4 ++++
+ libgcc/config/mips/vr4120-div.S | 4 ++++
+ 5 files changed, 18 insertions(+)
+
+--- a/gcc/config/mips/mips.c
++++ b/gcc/config/mips/mips.c
+@@ -22627,6 +22627,9 @@ mips_starting_frame_offset (void)
+ #undef TARGET_STARTING_FRAME_OFFSET
+ #define TARGET_STARTING_FRAME_OFFSET mips_starting_frame_offset
++#undef TARGET_ASM_FILE_END
++#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
++
+ struct gcc_target targetm = TARGET_INITIALIZER;
\f
+ #include "gt-mips.h"
+--- a/libgcc/config/mips/crti.S
++++ b/libgcc/config/mips/crti.S
+@@ -21,6 +21,10 @@ a copy of the GCC Runtime Library Except
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  */
++
++/* An executable stack is *not* required for these functions.  */
++      .section .note.GNU-stack,"",%progbits
++
+ /* 4 slots for argument spill area.  1 for cpreturn, 1 for stack.
+    Return spill offset of 40 and 20.  Aligned to 16 bytes for n32.  */
+--- a/libgcc/config/mips/crtn.S
++++ b/libgcc/config/mips/crtn.S
+@@ -21,6 +21,9 @@ a copy of the GCC Runtime Library Except
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  */
++/* An executable stack is *not* required for these functions.  */
++      .section .note.GNU-stack,"",%progbits
++
+ /* 4 slots for argument spill area.  1 for cpreturn, 1 for stack.
+    Return spill offset of 40 and 20.  Aligned to 16 bytes for n32.  */
+--- a/libgcc/config/mips/mips16.S
++++ b/libgcc/config/mips/mips16.S
+@@ -48,6 +48,10 @@ see the files COPYING3 and COPYING.RUNTI
+    values using the soft-float calling convention, but do the actual
+    operation using the hard floating point instructions.  */
++/* An executable stack is *not* required for these functions.  */
++      .section .note.GNU-stack,"",%progbits
++      .previous
++
+ #if defined _MIPS_SIM && (_MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIO64)
+ /* This file contains 32-bit assembly code.  */
+--- a/libgcc/config/mips/vr4120-div.S
++++ b/libgcc/config/mips/vr4120-div.S
+@@ -26,6 +26,10 @@ see the files COPYING3 and COPYING.RUNTI
+    -mfix-vr4120.  div and ddiv do not give the correct result when one
+    of the operands is negative.  */
++/* An executable stack is *not* required for these functions.  */
++      .section .note.GNU-stack,"",%progbits
++      .previous
++
+       .set    nomips16
+ #define DIV                                                           \
diff --git a/toolchain/gcc/patches/8.3.0/931-libffi-fix-MIPS-softfloat-build-issue.patch b/toolchain/gcc/patches/8.3.0/931-libffi-fix-MIPS-softfloat-build-issue.patch
new file mode 100644 (file)
index 0000000..fb4cb15
--- /dev/null
@@ -0,0 +1,168 @@
+From c0c62fa4256f805389f16ebfc4a60cf789129b50 Mon Sep 17 00:00:00 2001
+From: BangLang Huang <banglang.huang@foxmail.com>
+Date: Wed, 9 Nov 2016 10:36:49 +0800
+Subject: [PATCH] libffi: fix MIPS softfloat build issue
+
+Backported from github.com/libffi/libffi#272
+
+Signed-off-by: BangLang Huang <banglang.huang@foxmail.com>
+Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
+---
+ libffi/src/mips/n32.S | 17 +++++++++++++++++
+ libffi/src/mips/o32.S | 17 +++++++++++++++++
+ 2 files changed, 34 insertions(+)
+
+--- a/libffi/src/mips/n32.S
++++ b/libffi/src/mips/n32.S
+@@ -107,6 +107,16 @@ loadregs:
+       REG_L   t6, 3*FFI_SIZEOF_ARG($fp)  # load the flags word into t6.
++#ifdef __mips_soft_float
++      REG_L   a0, 0*FFI_SIZEOF_ARG(t9)
++      REG_L   a1, 1*FFI_SIZEOF_ARG(t9)
++      REG_L   a2, 2*FFI_SIZEOF_ARG(t9)
++      REG_L   a3, 3*FFI_SIZEOF_ARG(t9)
++      REG_L   a4, 4*FFI_SIZEOF_ARG(t9)
++      REG_L   a5, 5*FFI_SIZEOF_ARG(t9)
++      REG_L   a6, 6*FFI_SIZEOF_ARG(t9)
++      REG_L   a7, 7*FFI_SIZEOF_ARG(t9)
++#else
+       and     t4, t6, ((1<<FFI_FLAG_BITS)-1)
+       REG_L   a0, 0*FFI_SIZEOF_ARG(t9)
+       beqz    t4, arg1_next
+@@ -193,6 +203,7 @@ arg7_next:
+ arg8_doublep: 
+       l.d     $f19, 7*FFI_SIZEOF_ARG(t9)      
+ arg8_next:    
++#endif
+ callit:               
+       # Load the function pointer
+@@ -214,6 +225,7 @@ retint:
+       b       epilogue
+ retfloat:
++#ifndef __mips_soft_float
+       bne     t6, FFI_TYPE_FLOAT, retdouble
+       jal     t9
+       REG_L   t4, 4*FFI_SIZEOF_ARG($fp)
+@@ -272,6 +284,7 @@ retstruct_f_d:
+       s.s     $f0, 0(t4)
+       s.d     $f2, 8(t4)
+       b       epilogue
++#endif
+ retstruct_d_soft:
+       bne     t6, FFI_TYPE_STRUCT_D_SOFT, retstruct_f_soft
+@@ -429,6 +442,7 @@ ffi_closure_N32:
+       REG_S   a6, A6_OFF2($sp)
+       REG_S   a7, A7_OFF2($sp)
++#ifndef __mips_soft_float
+       # Store all possible float/double registers.
+       s.d     $f12, F12_OFF2($sp)
+       s.d     $f13, F13_OFF2($sp)
+@@ -438,6 +452,7 @@ ffi_closure_N32:
+       s.d     $f17, F17_OFF2($sp)
+       s.d     $f18, F18_OFF2($sp)
+       s.d     $f19, F19_OFF2($sp)
++#endif
+       # Call ffi_closure_mips_inner_N32 to do the real work.
+       LA      t9, ffi_closure_mips_inner_N32
+@@ -458,6 +473,7 @@ cls_retint:
+       b       cls_epilogue
+ cls_retfloat:
++#ifndef __mips_soft_float
+       bne     v0, FFI_TYPE_FLOAT, cls_retdouble
+       l.s     $f0, V0_OFF2($sp)
+       b       cls_epilogue
+@@ -500,6 +516,7 @@ cls_retstruct_f_d:
+       l.s     $f0, V0_OFF2($sp)
+       l.d     $f2, V1_OFF2($sp)
+       b       cls_epilogue
++#endif
+       
+ cls_retstruct_small2: 
+       REG_L   v0, V0_OFF2($sp)
+--- a/libffi/src/mips/o32.S
++++ b/libffi/src/mips/o32.S
+@@ -82,13 +82,16 @@ sixteen:
+               
+       ADDU    $sp, 4 * FFI_SIZEOF_ARG         # adjust $sp to new args
++#ifndef __mips_soft_float
+       bnez    t0, pass_d                      # make it quick for int
++#endif
+       REG_L   a0, 0*FFI_SIZEOF_ARG($sp)       # just go ahead and load the
+       REG_L   a1, 1*FFI_SIZEOF_ARG($sp)       # four regs.
+       REG_L   a2, 2*FFI_SIZEOF_ARG($sp)
+       REG_L   a3, 3*FFI_SIZEOF_ARG($sp)
+       b       call_it
++#ifndef __mips_soft_float
+ pass_d:
+       bne     t0, FFI_ARGS_D, pass_f
+       l.d     $f12, 0*FFI_SIZEOF_ARG($sp)     # load $fp regs from args
+@@ -130,6 +133,7 @@ pass_f_d:
+  #    bne     t0, FFI_ARGS_F_D, call_it
+       l.s     $f12, 0*FFI_SIZEOF_ARG($sp)     # load $fp regs from args
+       l.d     $f14, 2*FFI_SIZEOF_ARG($sp)     # passing double and float
++#endif
+ call_it:      
+       # Load the function pointer
+@@ -158,14 +162,23 @@ retfloat:
+       bne     t2, FFI_TYPE_FLOAT, retdouble
+       jalr    t9
+       REG_L   t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
++#ifndef __mips_soft_float
+       s.s     $f0, 0(t0)
++#else
++      REG_S v0, 0(t0)
++#endif
+       b       epilogue
+ retdouble:    
+       bne     t2, FFI_TYPE_DOUBLE, noretval
+       jalr    t9
+       REG_L   t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
++#ifndef __mips_soft_float
+       s.d     $f0, 0(t0)
++#else
++      REG_S v1, 4(t0)
++      REG_S v0, 0(t0)
++#endif
+       b       epilogue
+       
+ noretval:     
+@@ -261,9 +274,11 @@ $LCFI7:
+       li      $13, 1          # FFI_O32
+       bne     $16, $13, 1f    # Skip fp save if FFI_O32_SOFT_FLOAT
+       
++#ifndef __mips_soft_float
+       # Store all possible float/double registers.
+       s.d     $f12, FA_0_0_OFF2($fp)
+       s.d     $f14, FA_1_0_OFF2($fp)
++#endif
+ 1:    
+       # Call ffi_closure_mips_inner_O32 to do the work.
+       la      t9, ffi_closure_mips_inner_O32
+@@ -281,6 +296,7 @@ $LCFI7:
+       li      $13, 1          # FFI_O32
+       bne     $16, $13, 1f    # Skip fp restore if FFI_O32_SOFT_FLOAT
++#ifndef __mips_soft_float
+       li      $9, FFI_TYPE_FLOAT
+       l.s     $f0, V0_OFF2($fp)
+       beq     $8, $9, closure_done
+@@ -288,6 +304,7 @@ $LCFI7:
+       li      $9, FFI_TYPE_DOUBLE
+       l.d     $f0, V0_OFF2($fp)
+       beq     $8, $9, closure_done
++#endif
+ 1:    
+       REG_L   $3, V1_OFF2($fp)
+       REG_L   $2, V0_OFF2($fp)
diff --git a/toolchain/gcc/patches/8.3.0/960-gotools-fix-compilation-when-making-cross-compiler.patch b/toolchain/gcc/patches/8.3.0/960-gotools-fix-compilation-when-making-cross-compiler.patch
new file mode 100644 (file)
index 0000000..1dd0508
--- /dev/null
@@ -0,0 +1,67 @@
+From dda6b050cd74a352670787a294596a9c56c21327 Mon Sep 17 00:00:00 2001
+From: Yousong Zhou <yszhou4tech@gmail.com>
+Date: Fri, 4 May 2018 18:20:53 +0800
+Subject: [PATCH] gotools: fix compilation when making cross compiler
+
+libgo is "the runtime support library for the Go programming language.
+This library is intended for use with the Go frontend."
+
+gccgo will link target files with libgo.so which depends on libgcc_s.so.1, but
+the linker will complain that it cannot find it.  That's because shared libgcc
+is not present in the install directory yet.  libgo.so was made without problem
+because gcc will emit -lgcc_s when compiled with -shared option.  When gotools
+were being made, it was supplied with -static-libgcc thus no link option was
+provided.  Check LIBGO in gcc/go/gcc-spec.c for how gccgo make a builtin spec
+for linking with libgo.so
+
+- GccgoCrossCompilation, https://github.com/golang/go/wiki/GccgoCrossCompilation
+- Cross-building instructions, http://www.eglibc.org/archives/patches/msg00078.html
+
+When 3-pass GCC compilation is used, shared libgcc runtime libraries will be
+available after gcc pass2 completed and will meet the gotools link requirement
+at gcc pass3
+---
+ gotools/Makefile.am | 4 +++-
+ gotools/Makefile.in | 4 +++-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+--- a/gotools/Makefile.am
++++ b/gotools/Makefile.am
+@@ -26,6 +26,7 @@ PWD_COMMAND = $${PWDCMD-pwd}
+ STAMP = echo timestamp >
+ libgodir = ../$(target_noncanonical)/libgo
++libgccdir = ../$(target_noncanonical)/libgcc
+ LIBGODEP = $(libgodir)/libgo.la
+ LIBGOTOOL = $(libgodir)/libgotool.a
+@@ -41,7 +42,8 @@ GOCFLAGS = $(CFLAGS_FOR_TARGET)
+ GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS)
+ AM_GOCFLAGS = -I $(libgodir)
+-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs
++AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \
++      -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s
+ GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@
+ libgosrcdir = $(srcdir)/../libgo/go
+--- a/gotools/Makefile.in
++++ b/gotools/Makefile.in
+@@ -263,6 +263,7 @@ mkinstalldirs = $(SHELL) $(toplevel_srcd
+ PWD_COMMAND = $${PWDCMD-pwd}
+ STAMP = echo timestamp >
+ libgodir = ../$(target_noncanonical)/libgo
++libgccdir = ../$(target_noncanonical)/libgcc
+ LIBGODEP = $(libgodir)/libgo.la
+ LIBGOTOOL = $(libgodir)/libgotool.a
+ @NATIVE_FALSE@GOCOMPILER = $(GOC)
+@@ -271,7 +272,8 @@ LIBGOTOOL = $(libgodir)/libgotool.a
+ @NATIVE_TRUE@GOCOMPILER = $(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET)
+ GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS)
+ AM_GOCFLAGS = -I $(libgodir)
+-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs
++AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \
++      -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s
+ GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@
+ libgosrcdir = $(srcdir)/../libgo/go
+ cmdsrcdir = $(libgosrcdir)/cmd
index ba69b23823029858ad2d657774a68870b7d5b601..93aab8efd24f2553024bcf28bb88a1fd04452aa2 100644 (file)
@@ -11,8 +11,8 @@ PKG_VERSION:=2.27
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=68c2930a56bbc8811b1814cb20386f6f50dd966d
-PKG_MIRROR_HASH:=9cd02cc8a4b0a22b66ea459e4c53fae1ca7f3d756d44a0b11eab182ab5280a41
+PKG_SOURCE_VERSION:=9f44fa22cb66067e92dc27167426ef4ad046c959
+PKG_MIRROR_HASH:=fa7f165b8b8f92e7813b69b9b3ce4ce8205bfdc12acae3f513b4456ec899bb2b
 PKG_SOURCE_URL:=https://sourceware.org/git/glibc.git
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 
diff --git a/toolchain/musl/Config.in b/toolchain/musl/Config.in
new file mode 100644 (file)
index 0000000..7e83b6f
--- /dev/null
@@ -0,0 +1,12 @@
+# Password crypt stubbing
+
+config MUSL_DISABLE_CRYPT_SIZE_HACK
+       bool "Include crypt() support for SHA256, SHA512 and Blowfish ciphers"
+       depends on TOOLCHAINOPTS && USE_MUSL && !EXTERNAL_TOOLCHAIN
+       default n
+       help
+         Enable this option to re-include crypt() support for the SHA256, SHA512 and
+         Blowfish ciphers. Without this option, attempting to hash a string with a salt
+         requesting one of these ciphers will cause the crypt() function to call stub
+         implementations which will always fail with errno ENOSYS. Including the ciphers
+         will increase the library size by about 14KB after LZMA compression.
index 234709103c7c0e422e53750f5b084c94fc175696..b52263c43b84ee0717b45157159c83a48f011453 100644 (file)
@@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/target.mk
 
 PKG_NAME:=musl
-PKG_VERSION:=1.1.20
-PKG_RELEASE:=2
+PKG_VERSION:=1.1.21
+PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=0fa1e638e87cf257e9f96b4019b2076afd674a19
-PKG_MIRROR_HASH:=0a49559e845f51aaf006539176a36d6527957affd2838e71fd43275b737e90fe
+PKG_SOURCE_VERSION:=1691b23955590d1eb66a11158fdd91c86337e886
+PKG_MIRROR_HASH:=4fa312d0ca020d31603ced84a7103fb328c6ae9508239491a228be17e7807147
 PKG_SOURCE_URL:=git://git.musl-libc.org/musl
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 
@@ -29,6 +29,7 @@ include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/hardening.mk
 
 TARGET_CFLAGS:= $(filter-out -O%,$(TARGET_CFLAGS))
+TARGET_CFLAGS+= $(if $(CONFIG_MUSL_DISABLE_CRYPT_SIZE_HACK),,-DCRYPT_SIZE_HACK)
 
 MUSL_CONFIGURE:= \
        $(TARGET_CONFIGURE_OPTS) \
index fb98f7d10ee83155f4d46ee1a226c082c0d9d9a4..f92781f7ed8aad3b673c60064f914adffb053899 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/time/__tz.c
 +++ b/src/time/__tz.c
-@@ -23,6 +23,9 @@ static int r0[5], r1[5];
+@@ -25,6 +25,9 @@ static int r0[5], r1[5];
  static const unsigned char *zi, *trans, *index, *types, *abbrevs, *abbrevs_end;
  static size_t map_size;
  
index b8fa7b4b4f3c155b61d9d34b169b0ac14fe9ab20..05bd2fe54a3844c29879e8af13b847ce47cb8216 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: Steven Barth <steven@midlink.org>
 +OBJ_DIRS = $(sort $(patsubst %/,%,$(dir $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(GENH) $(GENH_INT))) obj/include obj/libssp_nonshared)
  
  $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(ALL_OBJS:%.o=%.lo) $(GENH) $(GENH_INT): | $(OBJ_DIRS)
-
 @@ -113,6 +113,8 @@ obj/crt/rcrt1.o: $(srcdir)/ldso/dlstart.
  
  obj/crt/Scrt1.o obj/crt/rcrt1.o: CFLAGS_ALL += -fPIC
@@ -34,7 +34,7 @@ Signed-off-by: Steven Barth <steven@midlink.org>
  OPTIMIZE_SRCS = $(wildcard $(OPTIMIZE_GLOBS:%=$(srcdir)/src/%))
  $(OPTIMIZE_SRCS:$(srcdir)/%.c=obj/%.o) $(OPTIMIZE_SRCS:$(srcdir)/%.c=obj/%.lo): CFLAGS += -O3
  
-@@ -165,6 +166,11 @@ lib/libc.a: $(AOBJS)
+@@ -165,6 +167,11 @@ lib/libc.a: $(AOBJS)
        $(AR) rc $@ $(AOBJS)
        $(RANLIB) $@
  
index 8cd7b1989ca6e9f7b890f9a81fbfe33227d1dd12..75f196abca5f44c3d17400d83f9eef30057bdff7 100644 (file)
@@ -1,59 +1,74 @@
---- a/src/crypt/crypt_r.c
-+++ b/src/crypt/crypt_r.c
-@@ -19,12 +19,6 @@ char *__crypt_r(const char *key, const c
-       if (salt[0] == '$' && salt[1] && salt[2]) {
-               if (salt[1] == '1' && salt[2] == '$')
-                       return __crypt_md5(key, salt, output);
--              if (salt[1] == '2' && salt[3] == '$')
--                      return __crypt_blowfish(key, salt, output);
--              if (salt[1] == '5' && salt[2] == '$')
--                      return __crypt_sha256(key, salt, output);
--              if (salt[1] == '6' && salt[2] == '$')
--                      return __crypt_sha512(key, salt, output);
-       }
-       return __crypt_des(key, salt, output);
- }
 --- a/src/crypt/crypt_sha512.c
 +++ b/src/crypt/crypt_sha512.c
-@@ -12,6 +12,7 @@
- #include <stdio.h>
+@@ -13,6 +13,17 @@
  #include <string.h>
  #include <stdint.h>
-+#if 0
  
++#ifdef CRYPT_SIZE_HACK
++#include <errno.h>
++
++char *__crypt_sha512(const char *key, const char *setting, char *output)
++{
++      errno = ENOSYS;
++      return NULL;
++}
++
++#else
++
  /* public domain sha512 implementation based on fips180-3 */
  /* >=2^64 bits messages are not supported (about 2000 peta bytes) */
-@@ -369,3 +370,4 @@ char *__crypt_sha512(const char *key, co
+@@ -369,3 +380,4 @@ char *__crypt_sha512(const char *key, co
                return "*";
        return p;
  }
 +#endif
 --- a/src/crypt/crypt_blowfish.c
 +++ b/src/crypt/crypt_blowfish.c
-@@ -50,6 +50,7 @@
+@@ -50,6 +50,17 @@
  #include <string.h>
  #include <stdint.h>
  
-+#if 0
++#ifdef CRYPT_SIZE_HACK
++#include <errno.h>
++
++char *__crypt_blowfish(const char *key, const char *setting, char *output)
++{
++      errno = ENOSYS;
++      return NULL;
++}
++
++#else
++
  typedef uint32_t BF_word;
  typedef int32_t BF_word_signed;
  
-@@ -796,3 +797,4 @@ char *__crypt_blowfish(const char *key,
+@@ -796,3 +807,4 @@ char *__crypt_blowfish(const char *key,
  
        return "*";
  }
 +#endif
 --- a/src/crypt/crypt_sha256.c
 +++ b/src/crypt/crypt_sha256.c
-@@ -13,6 +13,7 @@
+@@ -13,6 +13,17 @@
  #include <string.h>
  #include <stdint.h>
  
-+#if 0
++#ifdef CRYPT_SIZE_HACK
++#include <errno.h>
++
++char *__crypt_sha256(const char *key, const char *setting, char *output)
++{
++      errno = ENOSYS;
++      return NULL;
++}
++
++#else
++
  /* public domain sha256 implementation based on fips180-3 */
  
  struct sha256 {
-@@ -320,3 +321,4 @@ char *__crypt_sha256(const char *key, co
+@@ -320,3 +331,4 @@ char *__crypt_sha256(const char *key, co
                return "*";
        return p;
  }
index b561fa1b1e3a9aba88fb79d735ccd280f70bd4a2..6f4c50c380cf01867d3d35ef43094752c0e5535b 100644 (file)
@@ -7,7 +7,7 @@
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/target.mk
 
-PKG_VERSION:=1.0.30
+PKG_VERSION:=1.0.31
 
 PKG_NAME:=uClibc-ng
 PKG_SOURCE_URL = http://downloads.uclibc-ng.org/releases/$(PKG_VERSION)/
@@ -16,7 +16,7 @@ CONFIG_DIR:=$(PATH_PREFIX)/config
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 LIBC_SO_VERSION:=$(PKG_VERSION)
 
-PKG_HASH:=992bd9a2889ea385902b87e3d3d30603741eb16728288fbf537ff2027f770496
+PKG_HASH:=2215d7377118434d1697fd575f10d7a6be3f29e460d6b0e1ee9f6f5306288060
 
 HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)-$(PKG_VERSION)
 
index 0e2846baf7ce5abc2c378b8958f9cb4ce1d2d90e..9359603ca9631d235cc3ff03d5116299eff6f4a5 100644 (file)
@@ -24,22 +24,23 @@ tools-y += sstrip make-ext4fs e2fsprogs mtd-utils mkimage
 tools-y += firmware-utils patch-image quilt padjffs2
 tools-y += mm-macros missing-macros cmake scons bc findutils gengetopt patchelf
 tools-y += mtools dosfstools libressl
+tools-$(CONFIG_TARGET_orion_generic) += wrt350nv2-builder upslug2
 tools-$(CONFIG_TARGET_x86) += qemu
 tools-$(CONFIG_TARGET_mxs) += elftosb sdimage
 tools-$(CONFIG_TARGET_ar71xx) += lzma-old
 tools-$(CONFIG_TARGET_ar71xx)$(CONFIG_TARGET_ath79) += squashfs
 tools-$(CONFIG_USES_MINOR) += kernel2minor
-tools-y += lzma squashfs4 zip
+tools-y += lzma squashfskit4 zip
 tools-$(BUILD_ISL) += isl
 tools-$(CONFIG_USE_SPARSE) += sparse
-tools-$(CONFIG_TARGET_apm821xx) += genext2fs
+tools-$(CONFIG_TARGET_apm821xx)$(CONFIG_TARGET_gemini) += genext2fs
 
 # builddir dependencies
 $(curdir)/bison/compile := $(curdir)/flex/compile
 $(curdir)/flex/compile := $(curdir)/libtool/compile
 $(curdir)/libtool/compile := $(curdir)/m4/compile $(curdir)/autoconf/compile $(curdir)/automake/compile $(curdir)/missing-macros/compile
 $(curdir)/squashfs/compile := $(curdir)/lzma-old/compile
-$(curdir)/squashfs4/compile := $(curdir)/xz/compile $(curdir)/zlib/compile
+$(curdir)/squashfskit4/compile := $(curdir)/xz/compile $(curdir)/zlib/compile
 $(curdir)/quilt/compile := $(curdir)/autoconf/compile $(curdir)/findutils/compile
 $(curdir)/autoconf/compile := $(curdir)/m4/compile
 $(curdir)/automake/compile := $(curdir)/m4/compile $(curdir)/autoconf/compile $(curdir)/pkg-config/compile $(curdir)/xz/compile
@@ -49,6 +50,7 @@ $(curdir)/mpfr/compile := $(curdir)/gmp/compile
 $(curdir)/mtd-utils/compile := $(curdir)/libtool/compile $(curdir)/e2fsprogs/compile $(curdir)/zlib/compile
 $(curdir)/mklibs/compile := $(curdir)/libtool/compile
 $(curdir)/qemu/compile := $(curdir)/e2fsprogs/compile $(curdir)/zlib/compile
+$(curdir)/upslug2/compile := $(curdir)/libtool/compile
 $(curdir)/mm-macros/compile := $(curdir)/libtool/compile
 $(curdir)/missing-macros/compile := $(curdir)/autoconf/compile
 $(curdir)/e2fsprogs/compile := $(curdir)/libtool/compile
@@ -66,10 +68,12 @@ $(curdir)/mkimage/compile += $(curdir)/libressl/compile
 $(curdir)/firmware-utils/compile += $(curdir)/libressl/compile $(curdir)/zlib/compile
 $(curdir)/cmake/compile += $(curdir)/libressl/compile
 $(curdir)/zlib/compile := $(curdir)/cmake/compile
+$(curdir)/wrt350nv2-builder/compile := $(curdir)/zlib/compile
 $(curdir)/lzma-old/compile := $(curdir)/zlib/compile
 $(curdir)/make-ext4fs/compile := $(curdir)/zlib/compile
 
 ifneq ($(HOST_OS),Linux)
+  $(curdir)/squashfskit4/compile += $(curdir)/coreutils/compile
   tools-y += coreutils
 endif
 
@@ -91,9 +95,10 @@ $(foreach tool, $(tools-y), $(eval $(curdir)/$(tool)/compile += $(patsubst %,$(c
 tools-y += $(tools-core)
 
 # make core tools depend on sed and flock
-$(foreach tool, $(tools-core), $(eval $(curdir)/$(tool)/compile += $(curdir)/sed/compile))
+$(foreach tool, $(filter-out xz,$(tools-core)), $(eval $(curdir)/$(tool)/compile += $(curdir)/sed/compile))
+$(curdir)/xz/compile += $(curdir)/flock/compile
 
-$(curdir)/sed/compile := $(curdir)/flock/compile
+$(curdir)/sed/compile := $(curdir)/flock/compile $(curdir)/xz/compile
 tools-y += flock sed
 
 $(curdir)/autoremove := 1
index 139dbc763b682676556ec45fd56684b0b375f709..2dcbe617af34b04fb5151edce89bf2179aecb7ff 100644 (file)
@@ -7,16 +7,18 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bison
-PKG_VERSION:=3.2.4
+PKG_VERSION:=3.3.2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
-PKG_HASH:=523d44419f4df68286503740c95c7b3400b748d7d8b797209195ee5d67f05634
+PKG_HASH:=039ee45b61d95e5003e7e8376f9080001b4066ff357bde271b7faace53b9d804
 
 HOST_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/host-build.mk
 
+HOST_CONFIGURE_ARGS += --enable-threads=pth
+
 define Host/Clean
        -$(MAKE) -C $(HOST_BUILD_DIR) uninstall
        $(call Host/Clean/Default)
index d2dfcadbabfed11ca759e56987a88c9ca879a739..8108c53c613cf203e9d6f264ef733cb9ab5c7d4b 100644 (file)
@@ -1,15 +1,13 @@
 --- a/src/main.c
 +++ b/src/main.c
-@@ -60,9 +60,9 @@ main (int argc, char *argv[])
- {
-   set_program_name (argv[0]);
-   setlocale (LC_ALL, "");
--  (void) bindtextdomain (PACKAGE, LOCALEDIR);
--  (void) bindtextdomain ("bison-runtime", LOCALEDIR);
--  (void) textdomain (PACKAGE);
-+  bindtextdomain (PACKAGE, LOCALEDIR);
-+  bindtextdomain ("bison-runtime", LOCALEDIR);
-+  textdomain (PACKAGE);
+@@ -66,8 +66,8 @@ main (int argc, char *argv[])
    {
-     char const *cp = getenv ("LC_CTYPE");
+     char *cp = NULL;
+     char const *localedir = relocate2 (LOCALEDIR, &cp);
+-    (void) bindtextdomain (PACKAGE, localedir);
+-    (void) bindtextdomain ("bison-runtime", localedir);
++    bindtextdomain (PACKAGE, localedir);
++    bindtextdomain ("bison-runtime", localedir);
+     free (cp);
+   }
+   (void) textdomain (PACKAGE);
index a4204b4c30334477398846c6fc7988bf36dec350..864a3df15d8b87b84d150e4a8ef6e5f7886e4a05 100644 (file)
@@ -63,6 +63,7 @@ define Host/Compile
        $(call cc,mkbrncmdline)
        $(call cc,mkbrnimg)
        $(call cc,mkdapimg)
+       $(call cc,mkdapimg2)
        $(call cc, mkcameofw, -Wall)
        $(call cc,seama md5)
        $(call cc,oseama md5, -Wall)
diff --git a/tools/firmware-utils/src/mkdapimg2.c b/tools/firmware-utils/src/mkdapimg2.c
new file mode 100644 (file)
index 0000000..6b53c95
--- /dev/null
@@ -0,0 +1,204 @@
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License,
+ * version 2 as published by the Free Software Foundation.
+ *
+ * (C) Nicolò Veronese <nicveronese@gmail.com>
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <libgen.h>
+#include <stdarg.h>
+#include <getopt.h>
+#include <string.h>
+#include <errno.h>
+
+#include <netinet/in.h>        // htonl
+
+// Usage: mkdapimg2 -s signature [-v version] [-r region]
+//                  [-k uImage block size] -i <input> -o <output>
+//
+// NOTE: The kernel block size is used to know the offset of the rootfs
+// in the image file.
+//
+// The system writes in the uImage partition until the end of uImage
+// is reached, after that, the system jumps to the offset specified with the -k
+// parameter and begin writing at the beginning of the rootfs MTD partition.
+//
+// If the -k parameter is the size of the original uImage partition, the system
+// continue writing in the rootfs partition starting from the last block
+// that has been wrote. (This is useful if the new kernel size is
+// different from the original one)
+//
+// Example:
+// ------------------------------------------
+// Creating 7 MTD partitions on "ath-nor0":
+// 0x000000000000-0x000000010000 : "u-boot"
+// 0x000000010000-0x000000020000 : "ART"
+// 0x000000020000-0x000000030000 : "MP"
+// 0x000000030000-0x000000040000 : "config"
+// 0x000000040000-0x000000120000 : "uImage"
+// 0x000000120000-0x000000800000 : "rootfs"
+// 0x000000040000-0x000000800000 : "firmware"
+// ------------------------------------------
+//
+// 0x000000120000-0x000000040000 = 0xE0000 -> 917504
+//
+// e.g.: mkdapimg2 -s HONEYBEE-FIRMWARE-DAP-1330 -v 1.00.21 -r Default
+//                 -k 917504 -i sysupgrade.bin -o factory.bin
+//
+//
+// The img_hdr_struct was taken from the D-Link SDK:
+// DAP-1330_OSS-firmware_1.00b21/DAP-1330_OSS-firmware_1.00b21/uboot/uboot.patch
+
+#define MAX_SIGN_LEN   32
+#define MAX_FW_VER_LEN 16
+#define MAX_REG_LEN    8
+
+struct img_hdr_struct {
+       uint32_t hdr_len;
+       uint32_t checksum;
+       uint32_t total_size;
+       uint32_t kernel_size;
+       char signature[MAX_SIGN_LEN];
+       char fw_ver[MAX_FW_VER_LEN];
+       char fw_reg[MAX_REG_LEN];
+} imghdr ;
+
+char *progname;
+
+void
+perrexit(int code, char *msg)
+{
+       fprintf(stderr, "%s: %s: %s\n", progname, msg, strerror(errno));
+       exit(code);
+}
+
+void
+usage()
+{
+       fprintf(stderr, "usage: %s -s signature [-v version] [-r region] [-k uImage part size] -i <input> -o <output>\n", progname);
+       exit(1);
+}
+
+int
+main(int ac, char *av[])
+{
+       char signature[MAX_SIGN_LEN];
+       char version[MAX_FW_VER_LEN];
+       char region[MAX_REG_LEN];
+       int kernel = 0;
+
+       FILE *ifile, *ofile;
+       int c;
+
+       uint32_t cksum;
+       uint32_t bcnt;
+
+       progname = basename(av[0]);
+
+       memset(signature, 0, sizeof(signature));
+       memset(version, 0, sizeof(version));
+       memset(region, 0, sizeof(region));
+
+       while ( 1 ) {
+               char *ptr;
+               int c;
+
+               c = getopt(ac, av, "s:v:r:k:i:o:");
+               if (c == -1)
+                       break;
+
+               switch (c) {
+               case 's':
+                       if (strlen(optarg) > MAX_SIGN_LEN + 1) {
+                               fprintf(stderr, "%s: signature exceeds %d chars\n",
+                                       progname, MAX_SIGN_LEN);
+                               exit(1);
+                       }
+                       strcpy(signature, optarg);
+                       break;
+               case 'v':
+                       if (strlen(optarg) > MAX_FW_VER_LEN + 1) {
+                               fprintf(stderr, "%s: version exceeds %d chars\n",
+                                       progname, MAX_FW_VER_LEN);
+                               exit(1);
+                       }
+                       strcpy(version, optarg);
+                       break;
+               case 'r':
+                       if (strlen(optarg) > MAX_REG_LEN + 1) {
+                               fprintf(stderr, "%s: region exceeds %d chars\n",
+                                       progname, MAX_REG_LEN);
+                               exit(1);
+                       }
+                       strcpy(region, optarg);
+                       break;
+               case 'k':
+                       kernel = strtoul(optarg, &ptr, 0);
+                       if(ptr[0] == 'k'){
+                               kernel *= 1000;
+                       }
+                       break;
+               case 'i':
+                       if ((ifile = fopen(optarg, "r")) == NULL)
+                               perrexit(1, optarg);
+                       break;
+               case 'o':
+                       if ((ofile = fopen(optarg, "w")) == NULL)
+                               perrexit(1, optarg);
+                       break;
+               default:
+                       usage();
+               }
+       }
+
+       if (signature[0] == 0 || ifile == NULL || ofile == NULL) {
+               usage();
+               exit(1);
+       }
+
+       for (bcnt = 0, cksum = 0 ; (c = fgetc(ifile)) != EOF ; bcnt++)
+               cksum += c & 0xff;
+
+       if (fseek(ifile, 0, SEEK_SET) < 0)
+               perrexit(2, "fseek on input");
+
+       // Fill in the header
+       memset(&imghdr, 0, sizeof(imghdr));
+       imghdr.hdr_len = sizeof(imghdr);
+       imghdr.checksum = htonl(cksum);
+       imghdr.total_size = htonl(bcnt);
+       imghdr.kernel_size = htonl(kernel);
+
+       strncpy(imghdr.signature, signature, MAX_SIGN_LEN);
+       strncpy(imghdr.fw_ver, version, MAX_FW_VER_LEN);
+       strncpy(imghdr.fw_reg, region, MAX_REG_LEN);
+
+       if (fwrite(&imghdr, sizeof(imghdr), 1, ofile) < 0)
+               perrexit(2, "fwrite header on output");
+
+       while ((c = fgetc(ifile)) != EOF) {
+               if (fputc(c, ofile) == EOF)
+                       perrexit(2, "fputc on output");
+       }
+
+       if (ferror(ifile))
+               perrexit(2, "fgetc on input");
+
+       fclose(ofile);
+       fclose(ifile);
+
+       fprintf(stderr, "imgHdr.hdr_len = %lu\n", sizeof(imghdr));
+       fprintf(stderr, "imgHdr.checksum = 0x%08x\n", cksum);
+       fprintf(stderr, "imgHdr.total_size = 0x%08x\n", bcnt);
+       fprintf(stderr, "imgHdr.kernel_size = 0x%08x\n", kernel);
+       fprintf(stderr, "imgHdr.header = %s\n", signature);
+       fprintf(stderr, "imgHdr.fw_ver = %s\n", version);
+       fprintf(stderr, "imgHdr.fw_reg = %s\n", region);
+
+       return 0;
+}
index dead49e7af8839bac5d1dee7445cf8921208c970..35db848bbab9f8315526dfa24ed351ad58878dde 100644 (file)
@@ -146,6 +146,12 @@ static struct flash_layout layouts[] = {
                .kernel_la      = 0x80000000,
                .kernel_ep      = 0x80000000,
                .rootfs_ofs     = 0x140000,
+       }, {
+               .id             = "8MSUmtk", /* Split U-Boot OS */
+               .fw_max_len     = 0x770000,
+               .kernel_la      = 0x80000000,
+               .kernel_ep      = 0x80000000,
+               .rootfs_ofs     = 0x140000,
        }, {
                .id             = "8MLmtk",
                .fw_max_len     = 0x7b0000,
index 13e0eda6222a33ed8937cf0ee4e381cdc4fb5213..0192bb65e514f3f6acde3f59b184e0726aa47087 100644 (file)
@@ -27,6 +27,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdint.h>
+#include <stdbool.h>
 #include <ctype.h>
 #include <fcntl.h>
 #include <stdint.h>
@@ -59,6 +60,7 @@ int active = 1;
 int heads = -1;
 int sectors = -1;
 int kb_align = 0;
+bool ignore_null_sized_partition = false;
 struct partinfo parts[4];
 char *filename = NULL;
 
@@ -140,6 +142,8 @@ static int gen_ptable(uint32_t signature, int nr)
        memset(pte, 0, sizeof(struct pte) * 4);
        for (i = 0; i < nr; i++) {
                if (!parts[i].size) {
+                       if (ignore_null_sized_partition)
+                               continue;
                        fprintf(stderr, "Invalid size in partition %d!\n", i);
                        return -1;
                }
@@ -196,7 +200,7 @@ fail:
 
 static void usage(char *prog)
 {
-       fprintf(stderr, "Usage: %s [-v] -h <heads> -s <sectors> -o <outputfile> [-a 0..4] [-l <align kB>] [[-t <type>] -p <size>...] \n", prog);
+       fprintf(stderr, "Usage: %s [-v] [-n] -h <heads> -s <sectors> -o <outputfile> [-a 0..4] [-l <align kB>] [[-t <type>] -p <size>...] \n", prog);
        exit(EXIT_FAILURE);
 }
 
@@ -207,7 +211,7 @@ int main (int argc, char **argv)
        int part = 0;
        uint32_t signature = 0x5452574F; /* 'OWRT' */
 
-       while ((ch = getopt(argc, argv, "h:s:p:a:t:o:vl:S:")) != -1) {
+       while ((ch = getopt(argc, argv, "h:s:p:a:t:o:vnl:S:")) != -1) {
                switch (ch) {
                case 'o':
                        filename = optarg;
@@ -215,6 +219,9 @@ int main (int argc, char **argv)
                case 'v':
                        verbose++;
                        break;
+               case 'n':
+                       ignore_null_sized_partition = true;
+                       break;
                case 'h':
                        heads = (int)strtoul(optarg, NULL, 0);
                        break;
index 74ea6976348d5051ebaf18fc3e5fef5ebf3205cf..075cd8a7edd1e842622a4843dea5c6e658a12d00 100644 (file)
@@ -397,6 +397,44 @@ static struct device_info boards[] = {
                .last_sysupgrade_partition = "file-system",
        },
 
+       /** Firmware layout for the C2v3 */
+       {
+               .id = "ARCHER-C2-V3",
+               .support_list =
+                       "SupportList:\n"
+                       "{product_name:ArcherC2,product_ver:3.0.0,special_id:00000000}\n"
+                       "{product_name:ArcherC2,product_ver:3.0.0,special_id:55530000}\n"
+                       "{product_name:ArcherC2,product_ver:3.0.0,special_id:45550000}\n",
+               .support_trail = '\x00',
+               .soft_ver = "soft_ver:3.0.1\n",
+
+               /** We're using a dynamic kernel/rootfs split here */
+
+               .partitions = {
+                       {"factory-boot", 0x00000, 0x20000},
+                       {"fs-uboot", 0x20000, 0x10000},
+                       {"firmware", 0x30000, 0x7a0000},
+                       {"user-config", 0x7d0000, 0x04000},
+                       {"default-mac", 0x7e0000, 0x00100},
+                       {"device-id", 0x7e0100, 0x00100},
+                       {"extra-para", 0x7e0200, 0x00100},
+                       {"pin", 0x7e0300, 0x00100},
+                       {"support-list", 0x7e0400, 0x00400},
+                       {"soft-version", 0x7e0800, 0x00400},
+                       {"product-info", 0x7e0c00, 0x01400},
+                       {"partition-table", 0x7e2000, 0x01000},
+                       {"profile", 0x7e3000, 0x01000},
+                       {"default-config", 0x7e4000, 0x04000},
+                       {"merge-config", 0x7ec000, 0x02000},
+                       {"qos-db", 0x7ee000, 0x02000},
+                       {"radio", 0x7f0000, 0x10000},
+                       {NULL, 0, 0}
+               },
+
+               .first_sysupgrade_partition = "os-image",
+               .last_sysupgrade_partition = "file-system",
+       },
+
        /** Firmware layout for the C25v1 */
        {
                .id = "ARCHER-C25-V1",
@@ -745,7 +783,8 @@ static struct device_info boards[] = {
                        "{product_name:Archer C7,product_ver:5.0.0,special_id:55530000}\n"
                        "{product_name:Archer C7,product_ver:5.0.0,special_id:43410000}\n"
                        "{product_name:Archer C7,product_ver:5.0.0,special_id:4A500000}\n"
-                       "{product_name:Archer C7,product_ver:5.0.0,special_id:54570000}\n",
+                       "{product_name:Archer C7,product_ver:5.0.0,special_id:54570000}\n"
+                       "{product_name:Archer C7,product_ver:5.0.0,special_id:52550000}\n",
 
                .support_trail = '\x00',
                .soft_ver = "soft_ver:1.0.0\n",
@@ -1651,7 +1690,8 @@ static void build_image(const char *output,
        parts[4] = read_file("file-system", rootfs_image, add_jffs2_eof, file_system_partition);
 
        /* Some devices need the extra-para partition to accept the firmware */
-       if (strcasecmp(info->id, "ARCHER-C25-V1") == 0 ||
+       if (strcasecmp(info->id, "ARCHER-C2-V3") == 0 ||
+           strcasecmp(info->id, "ARCHER-C25-V1") == 0 ||
            strcasecmp(info->id, "ARCHER-C59-V2") == 0 ||
            strcasecmp(info->id, "ARCHER-C60-V2") == 0 ||
            strcasecmp(info->id, "TLWR1043NV5") == 0) {
index da37437119d23f06dd9726958b2cce9e22bbd560..c1000e1e311e1505ba9475933cb2ce036a6e662b 100644 (file)
@@ -7,11 +7,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=isl
-PKG_VERSION:=0.18
+PKG_VERSION:=0.20
 
 PKG_SOURCE_URL:=http://isl.gforge.inria.fr
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=0f35051cc030b87c673ac1f187de40e386a1482a0cfdf2c552dd6031b307ddc4
+PKG_HASH:=a5596a9fb8a5b365cb612e4b9628735d6e67e9178fae134a816ae195017e77aa
 
 HOST_BUILD_PARALLEL:=1
 
index dfff7964ce4830c8d5837171d70832f55a6ed5f4..fdb316efb961984f5f92aa9439e8827a1929f2f9 100644 (file)
@@ -7,13 +7,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mpfr
-PKG_VERSION:=4.0.1
+PKG_VERSION:=4.0.2
 PKG_CPE_ID:=cpe:/a:mpfr:gnu_mpfr
 
-PKG_SOURCE_URL:=http://www.mpfr.org/mpfr-$(PKG_VERSION) \
-               @GNU/mpfr
+PKG_SOURCE_URL:=@GNU/mpfr http://www.mpfr.org/mpfr-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=67874a60826303ee2fb6affc6dc0ddd3e749e9bfcb4c8655e3953d0458a6e16e
+PKG_HASH:=1d3be708604eae0e42d578ba93b390c2a145f17743a744d8f3f8c2ad5855a38a
 
 HOST_BUILD_PARALLEL:=1
 HOST_FIXUP:=autoreconf
@@ -23,6 +22,7 @@ include $(INCLUDE_DIR)/host-build.mk
 HOST_CONFIGURE_ARGS += \
        --enable-static \
        --disable-shared \
+       --enable-thread-safe \
        --with-gmp=$(STAGING_DIR_HOST)
 
 $(eval $(call HostBuild))
index c357b68736f660bb6f9535de84baa525846d9603..8a7c6b098e2f53fe7bda16bcc28e751d2898d26f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/vasprintf.c
 +++ b/src/vasprintf.c
-@@ -61,6 +61,7 @@ http://www.gnu.org/licenses/ or write to
+@@ -72,6 +72,7 @@ https://www.gnu.org/licenses/ or write t
  #endif /* HAVE_VA_COPY */
  
  #ifdef HAVE_WCHAR_H
index 834519b73757654da48c826deace3f08701da321..ddeb6c457f8fc8032ece3c7d517bbdc357f56815 100644 (file)
@@ -7,11 +7,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sed
-PKG_VERSION:=4.5
+PKG_VERSION:=4.7
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
-PKG_HASH:=7aad73c8839c2bdadca9476f884d2953cdace9567ecd0d90f9959f229d146b40
+PKG_HASH:=2885768cd0a29ff8d58a6280a270ff161f6a3deb5690b2be6c49f46d4c67bd6a
 export SED:=
 
 HOST_BUILD_PARALLEL:=1
@@ -24,6 +24,7 @@ include $(INCLUDE_DIR)/host-build.mk
 HOST_CONFIGURE_ARGS += \
        --disable-acl \
        --disable-nls \
+       --enable-threads=pth
 
 HOST_CONFIGURE_VARS += \
        ac_cv_search_setfilecon=no \
diff --git a/tools/squashfs4/Makefile b/tools/squashfs4/Makefile
deleted file mode 100644 (file)
index 409b1b5..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright (C) 2009-2012 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=squashfs4
-PKG_CPE_ID:=cpe:/a:phillip_lougher:squashfs
-PKG_VERSION:=4.2
-
-PKG_SOURCE:=squashfs$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@SF/squashfs
-PKG_HASH:=d9e0195aa922dbb665ed322b9aaa96e04a476ee650f39bbeadb0d00b24022e96
-PKG_CAT:=zcat
-
-HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/squashfs$(PKG_VERSION)
-
-include $(INCLUDE_DIR)/host-build.mk
-
-define Host/Compile
-       +$(HOST_MAKE_VARS) \
-       $(MAKE) -C $(HOST_BUILD_DIR)/squashfs-tools \
-               XZ_SUPPORT=1 \
-               LZMA_XZ_SUPPORT=1 \
-               XATTR_SUPPORT= \
-               LZMA_LIB="$(STAGING_DIR_HOST)/lib/liblzma.a" \
-               EXTRA_CFLAGS="-I$(STAGING_DIR_HOST)/include" \
-               mksquashfs unsquashfs
-endef
-
-define Host/Install
-       $(INSTALL_BIN) $(HOST_BUILD_DIR)/squashfs-tools/mksquashfs $(STAGING_DIR_HOST)/bin/mksquashfs4
-       $(INSTALL_BIN) $(HOST_BUILD_DIR)/squashfs-tools/unsquashfs $(STAGING_DIR_HOST)/bin/unsquashfs4
-endef
-
-define Host/Clean
-       rm -f $(STAGING_DIR_HOST)/bin/mksquashfs4
-       rm -f $(STAGING_DIR_HOST)/bin/unsquashfs4
-endef
-
-$(eval $(call HostBuild))
diff --git a/tools/squashfs4/patches/100-portability.patch b/tools/squashfs4/patches/100-portability.patch
deleted file mode 100644 (file)
index ac1349c..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
---- a/squashfs-tools/mksquashfs.c
-+++ b/squashfs-tools/mksquashfs.c
-@@ -60,6 +60,10 @@
- #include <sys/sysinfo.h>
- #endif
-+#ifndef FNM_EXTMATCH
-+#define FNM_EXTMATCH 0
-+#endif
-+
- #ifdef SQUASHFS_TRACE
- #define TRACE(s, args...) \
-               do { \
---- a/squashfs-tools/unsquashfs.h
-+++ b/squashfs-tools/unsquashfs.h
-@@ -49,8 +49,14 @@
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
-+#include <sys/sysctl.h>
- #else
- #include <endian.h>
-+#include <sys/sysinfo.h>
-+#endif
-+
-+#ifndef FNM_EXTMATCH
-+#define FNM_EXTMATCH 0
- #endif
- #include "squashfs_fs.h"
---- a/squashfs-tools/unsquashfs.c
-+++ b/squashfs-tools/unsquashfs.c
-@@ -29,7 +29,6 @@
- #include "compressor.h"
- #include "xattr.h"
--#include <sys/sysinfo.h>
- #include <sys/types.h>
- struct cache *fragment_cache, *data_cache;
diff --git a/tools/squashfs4/patches/110-allow_static_liblzma.patch b/tools/squashfs4/patches/110-allow_static_liblzma.patch
deleted file mode 100644 (file)
index 9a3a744..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/squashfs-tools/Makefile
-+++ b/squashfs-tools/Makefile
-@@ -129,7 +129,6 @@ ifeq ($(LZMA_XZ_SUPPORT),1)
- CFLAGS += -DLZMA_SUPPORT
- MKSQUASHFS_OBJS += lzma_xz_wrapper.o
- UNSQUASHFS_OBJS += lzma_xz_wrapper.o
--LIBS += -llzma
- COMPRESSORS += lzma
- endif
-@@ -137,10 +136,18 @@ ifeq ($(XZ_SUPPORT),1)
- CFLAGS += -DXZ_SUPPORT
- MKSQUASHFS_OBJS += xz_wrapper.o
- UNSQUASHFS_OBJS += xz_wrapper.o
--LIBS += -llzma
- COMPRESSORS += xz
- endif
-+ifneq ($(LZMA_XZ_SUPPORT)$(XZ_SUPPORT),)
-+ifneq ($(LZMA_LIB),)
-+MKSQUASHFS_OBJS += $(LZMA_LIB)
-+UNSQUASHFS_OBJS += $(LZMA_LIB)
-+else
-+LIBS += -llzma
-+endif
-+endif
-+
- ifeq ($(LZO_SUPPORT),1)
- CFLAGS += -DLZO_SUPPORT
- ifdef LZO_DIR
diff --git a/tools/squashfs4/patches/120-cygwin_fixes.patch b/tools/squashfs4/patches/120-cygwin_fixes.patch
deleted file mode 100644 (file)
index fa1dfba..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
---- a/squashfs-tools/mksquashfs.c
-+++ b/squashfs-tools/mksquashfs.c
-@@ -51,15 +51,22 @@
- #include <sys/wait.h>
- #ifndef linux
-+#ifndef __CYGWIN__
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
- #include <sys/sysctl.h>
-+#endif /* __CYGWIN__ */
- #else
- #include <endian.h>
- #include <sys/sysinfo.h>
- #endif
-+#ifdef __CYGWIN__
-+#include <sys/termios.h>
-+#define FNM_EXTMATCH  (1 << 5)
-+#endif
-+
- #ifndef FNM_EXTMATCH
- #define FNM_EXTMATCH 0
- #endif
-@@ -844,6 +851,7 @@ void sigusr1_handler()
- void sigwinch_handler()
- {
-+#ifndef __CYGWIN__
-       struct winsize winsize;
-       if(ioctl(1, TIOCGWINSZ, &winsize) == -1) {
-@@ -853,6 +861,9 @@ void sigwinch_handler()
-               columns = 80;
-       } else
-               columns = winsize.ws_col;
-+#else
-+      columns = 80;
-+#endif
- }
-@@ -4066,6 +4077,9 @@ void initialise_threads(int readb_mbytes
-       signal(SIGUSR1, sigusr1_handler);
-+#ifdef __CYGWIN__
-+      processors = atoi(getenv("NUMBER_OF_PROCESSORS"));
-+#else
-       if(processors == -1) {
- #ifndef linux
-               int mib[2];
-@@ -4087,6 +4101,7 @@ void initialise_threads(int readb_mbytes
-               processors = sysconf(_SC_NPROCESSORS_ONLN);
- #endif
-       }
-+#endif /* __CYGWIN__ */
-       thread = malloc((2 + processors * 2) * sizeof(pthread_t));
-       if(thread == NULL)
---- a/squashfs-tools/read_fs.c
-+++ b/squashfs-tools/read_fs.c
-@@ -33,9 +33,11 @@
- #include <sys/mman.h>
- #ifndef linux
-+#ifndef __CYGWIN__
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
-+#endif
- #else
- #include <endian.h>
- #endif
---- a/squashfs-tools/swap.c
-+++ b/squashfs-tools/swap.c
-@@ -20,9 +20,11 @@
-  */
- #ifndef linux
-+#ifndef __CYGWIN__
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
-+#endif
- #else
- #include <endian.h>
- #endif
---- a/squashfs-tools/unsquashfs.c
-+++ b/squashfs-tools/unsquashfs.c
-@@ -117,6 +117,7 @@ void update_progress_bar();
- void sigwinch_handler()
- {
-+#ifndef __CYGWIN__
-       struct winsize winsize;
-       if(ioctl(1, TIOCGWINSZ, &winsize) == -1) {
-@@ -126,6 +127,9 @@ void sigwinch_handler()
-               columns = 80;
-       } else
-               columns = winsize.ws_col;
-+#else
-+      columns = 80;
-+#endif
- }
-@@ -1807,7 +1811,9 @@ void initialise_threads(int fragment_buf
-       if(sigprocmask(SIG_BLOCK, &sigmask, &old_mask) == -1)
-               EXIT_UNSQUASH("Failed to set signal mask in intialise_threads"
-                       "\n");
--
-+#ifdef __CYGWIN__
-+      processors = atoi(getenv("NUMBER_OF_PROCESSORS"));
-+#else
-       if(processors == -1) {
- #ifndef linux
-               int mib[2];
-@@ -1829,6 +1835,7 @@ void initialise_threads(int fragment_buf
-               processors = sysconf(_SC_NPROCESSORS_ONLN);
- #endif
-       }
-+#endif /* __CYGWIN__ */
-       thread = malloc((3 + processors) * sizeof(pthread_t));
-       if(thread == NULL)
---- a/squashfs-tools/unsquashfs.h
-+++ b/squashfs-tools/unsquashfs.h
-@@ -46,15 +46,22 @@
- #include <sys/time.h>
- #ifndef linux
-+#ifndef __CYGWIN__
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
- #include <sys/sysctl.h>
-+#endif
- #else
- #include <endian.h>
- #include <sys/sysinfo.h>
- #endif
-+#ifdef __CYGWIN__
-+#include <sys/termios.h>
-+#define FNM_EXTMATCH  (1 << 5)
-+#endif
-+
- #ifndef FNM_EXTMATCH
- #define FNM_EXTMATCH 0
- #endif
diff --git a/tools/squashfs4/patches/130-include_sysmacros.patch b/tools/squashfs4/patches/130-include_sysmacros.patch
deleted file mode 100644 (file)
index e884513..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/squashfs-tools/mksquashfs.c
-+++ b/squashfs-tools/mksquashfs.c
-@@ -33,6 +33,7 @@
- #include <stddef.h>
- #include <sys/time.h>
- #include <sys/types.h>
-+#include <sys/sysmacros.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <errno.h>
---- a/squashfs-tools/unsquashfs.c
-+++ b/squashfs-tools/unsquashfs.c
-@@ -30,6 +30,7 @@
- #include "xattr.h"
- #include <sys/types.h>
-+#include <sys/sysmacros.h>
- struct cache *fragment_cache, *data_cache;
- struct queue *to_reader, *to_deflate, *to_writer, *from_writer;
diff --git a/tools/squashfs4/patches/150-freebsd_fixes.patch b/tools/squashfs4/patches/150-freebsd_fixes.patch
deleted file mode 100644 (file)
index 44d40a7..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/squashfs-tools/pseudo.c
-+++ b/squashfs-tools/pseudo.c
-@@ -32,6 +32,7 @@
- #include <stdlib.h>
- #include <sys/types.h>
- #include <sys/wait.h>
-+#include <sys/stat.h>
- #include "pseudo.h"
diff --git a/tools/squashfs4/patches/160-expose_lzma_xz_options.patch b/tools/squashfs4/patches/160-expose_lzma_xz_options.patch
deleted file mode 100644 (file)
index 9e1c1fb..0000000
+++ /dev/null
@@ -1,929 +0,0 @@
---- /dev/null
-+++ b/squashfs-tools/lzma_xz_options.h
-@@ -0,0 +1,115 @@
-+#ifndef LZMA_XZ_OPTIONS_H
-+#define LZMA_XZ_OPTIONS_H
-+/*
-+ * Copyright (c) 2011
-+ * Jonas Gorski <jonas.gorski@gmail.com>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2,
-+ * or (at your option) any later version.
-+ *
-+ * This program 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 General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ *
-+ * lzma_options.h
-+ */
-+
-+#include <stdint.h>
-+
-+#ifndef linux
-+#ifdef __FreeBSD__
-+#include <machine/endian.h>
-+#endif
-+#define __BYTE_ORDER BYTE_ORDER
-+#define __BIG_ENDIAN BIG_ENDIAN
-+#define __LITTLE_ENDIAN LITTLE_ENDIAN
-+#else
-+#include <endian.h>
-+#endif
-+
-+
-+
-+struct lzma_opts {
-+      uint32_t dict_size;
-+      uint32_t flags;
-+#define LZMA_OPT_FLT_MASK     0xffff
-+#define LZMA_OPT_PRE_OFF      16
-+#define LZMA_OPT_PRE_MASK     (0xf << LZMA_OPT_PRE_OFF)
-+#define LZMA_OPT_EXTREME      20      
-+      uint16_t bit_opts;
-+#define LZMA_OPT_LC_OFF               0
-+#define LZMA_OPT_LC_MASK      (0x7 << LZMA_OPT_LC_OFF)
-+#define LZMA_OPT_LP_OFF               3
-+#define LZMA_OPT_LP_MASK      (0x7 << LZMA_OPT_LP_OFF)
-+#define LZMA_OPT_PB_OFF               6
-+#define LZMA_OPT_PB_MASK      (0x7 << LZMA_OPT_PB_OFF)
-+      uint16_t fb;
-+};
-+
-+#if __BYTE_ORDER == __BIG_ENDIAN
-+extern unsigned int inswap_le32(unsigned int);
-+
-+#define SQUASHFS_INSWAP_LZMA_COMP_OPTS(s) { \
-+      (s)->flags = inswap_le32((s)->flags); \
-+      (s)->bit_opts = inswap_le16((s)->bit_opts); \
-+      (s)->fb = inswap_le16((s)->fb); \
-+      (s)->dict_size = inswap_le32((s)->dict_size); \
-+}
-+#else
-+#define SQUASHFS_INSWAP_LZMA_COMP_OPTS(s)
-+#endif
-+
-+#define MEMLIMIT (32 * 1024 * 1024)
-+
-+#define LZMA_OPT_LC_MIN               0
-+#define LZMA_OPT_LC_MAX               4
-+#define LZMA_OPT_LC_DEFAULT   3
-+
-+#define LZMA_OPT_LP_MIN               0
-+#define LZMA_OPT_LP_MAX               4
-+#define LZMA_OPT_LP_DEFAULT   0
-+
-+#define LZMA_OPT_PB_MIN               0
-+#define LZMA_OPT_PB_MAX               4
-+#define LZMA_OPT_PB_DEFAULT   2
-+
-+#define LZMA_OPT_FB_MIN               5
-+#define LZMA_OPT_FB_MAX               273
-+#define LZMA_OPT_FB_DEFAULT   64
-+
-+enum {
-+      LZMA_OPT_LZMA = 1,
-+      LZMA_OPT_XZ
-+};
-+
-+struct lzma_xz_options {
-+      int preset;
-+      int extreme;
-+      int lc;
-+      int lp;
-+      int pb;
-+      int fb;
-+      int dict_size;
-+      int flags;
-+};
-+
-+struct lzma_xz_options *lzma_xz_get_options(void);
-+
-+int lzma_xz_options(char *argv[], int argc, int lzmaver);
-+
-+int lzma_xz_options_post(int block_size, int lzmaver);
-+
-+void *lzma_xz_dump_options(int block_size, int *size, int flags);
-+
-+int lzma_xz_extract_options(int block_size, void *buffer, int size, int lzmaver);
-+
-+void lzma_xz_usage(int lzmaver);
-+
-+#endif
---- /dev/null
-+++ b/squashfs-tools/lzma_xz_options.c
-@@ -0,0 +1,365 @@
-+/*
-+ * Copyright (c) 2011
-+ * Jonas Gorski <jonas.gorski@gmail.com>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2,
-+ * or (at your option) any later version.
-+ *
-+ * This program 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 General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ *
-+ * lzma_options.c
-+ * 
-+ * Common options for LZMA1 and 2 compressors. Based on xz_wrapper.c
-+ */
-+
-+#include <stdio.h>
-+#include <string.h>
-+#include <stdlib.h>
-+
-+#include <lzma.h>
-+
-+#include "lzma_xz_options.h"
-+
-+static const char const *lzmaver_str[] = { "", "lzma", "xz" };
-+
-+static struct lzma_xz_options options = {
-+      .flags          = 0,
-+      .preset         = 6,
-+      .extreme        = 0,
-+      .lc             = LZMA_OPT_LC_DEFAULT,
-+      .lp             = LZMA_OPT_LP_DEFAULT,
-+      .pb             = LZMA_OPT_PB_DEFAULT,
-+      .fb             = LZMA_OPT_FB_DEFAULT,
-+      .dict_size      = 0,
-+};
-+
-+static float lzma_dict_percent = 0;
-+
-+struct lzma_xz_options *lzma_xz_get_options(void)
-+{
-+      return &options;
-+}
-+
-+
-+int lzma_xz_options(char *argv[], int argc, int lzmaver)
-+{
-+      const char *comp_name = lzmaver_str[lzmaver];
-+      
-+      if(strcmp(argv[0], "-Xpreset") == 0) {
-+              int preset;
-+              
-+              if(argc < 2) {
-+                      fprintf(stderr, "%s: -Xpreset missing preset\n", comp_name);
-+                      goto failed;
-+              }
-+              
-+              preset = atoi(argv[1]);
-+              
-+              if (preset < 0 || preset > 9) {
-+                      fprintf(stderr, "%s: -Xpreset invalid value\n", comp_name);
-+                      goto failed;
-+              }
-+              options.preset = preset;
-+              return 1;
-+      } else if(strcmp(argv[0], "-Xe") == 0) {
-+              options.extreme = 1;
-+              return 0;
-+      } else if(strcmp(argv[0], "-Xlc") == 0) {
-+              int lc;
-+              
-+              if(argc < 2) {
-+                      fprintf(stderr, "%s: -Xlc missing lc\n", comp_name);
-+                      goto failed;
-+              }
-+              
-+              lc = atoi(argv[1]);
-+              
-+              if (lc < LZMA_OPT_LC_MIN || lc > LZMA_OPT_LC_MAX) {
-+                      fprintf(stderr, "%s: -Xlc invalid value\n", comp_name);
-+                      goto failed;
-+              }
-+              options.lc = lc;
-+              return 1;
-+      } else if(strcmp(argv[0], "-Xlp") == 0) {
-+              int lp;
-+              
-+              if(argc < 2) {
-+                      fprintf(stderr, "%s: -Xlp missing lp\n", comp_name);
-+                      goto failed;
-+              }
-+              
-+              lp = atoi(argv[1]);
-+              
-+              if (lp < LZMA_OPT_LP_MIN || lp > LZMA_OPT_LP_MAX) {
-+                      fprintf(stderr, "%s: -Xlp invalid value\n", comp_name);
-+                      goto failed;
-+              }
-+              options.lp = lp;
-+              return 1;
-+      } else if(strcmp(argv[0], "-Xpb") == 0) {
-+              int pb;
-+              
-+              if(argc < 2) {
-+                      fprintf(stderr, "%s: -Xpb missing pb\n", comp_name);
-+                      goto failed;
-+              }
-+              
-+              pb = atoi(argv[1]);
-+              
-+              if (pb < LZMA_OPT_PB_MIN || pb > LZMA_OPT_PB_MAX) {
-+                      fprintf(stderr, "%s: -Xbp invalid value\n", comp_name);
-+                      goto failed;
-+              }
-+              options.pb = pb;
-+              return 1;       
-+      } else if(strcmp(argv[0], "-Xfb") == 0) {
-+              int fb;
-+              
-+              if(argc < 2) {
-+                      fprintf(stderr, "%s: -Xfb missing fb\n", comp_name);
-+                      goto failed;
-+              }
-+              
-+              fb = atoi(argv[1]);
-+              
-+              if (fb < LZMA_OPT_FB_MIN || fb > LZMA_OPT_FB_MAX) {
-+                      fprintf(stderr, "%s: -Xfb invalid value\n", comp_name);
-+                      goto failed;
-+              }
-+              options.fb = fb;
-+              return 1;
-+      } else if(strcmp(argv[0], "-Xdict-size") == 0) {
-+              char *b;
-+              float size;
-+
-+              if(argc < 2) {
-+                      fprintf(stderr, "%s: -Xdict-size missing dict-size\n", comp_name);
-+                      goto failed;
-+              }
-+
-+              size = strtof(argv[1], &b);
-+              if(*b == '%') {
-+                      if(size <= 0 || size > 100) {
-+                              fprintf(stderr, "%s: -Xdict-size percentage "
-+                                      "should be 0 < dict-size <= 100\n", comp_name);
-+                              goto failed;
-+                      }
-+
-+                      lzma_dict_percent = size;
-+                      options.dict_size = 0;
-+              } else {
-+                      if((float) ((int) size) != size) {
-+                              fprintf(stderr, "%s: -Xdict-size can't be "
-+                                      "fractional unless a percentage of the"
-+                                      " block size\n", comp_name);
-+                              goto failed;
-+                      }
-+
-+                      lzma_dict_percent = 0;
-+                      options.dict_size = (int) size;
-+
-+                      if(*b == 'k' || *b == 'K')
-+                              options.dict_size *= 1024;
-+                      else if(*b == 'm' || *b == 'M')
-+                              options.dict_size *= 1024 * 1024;
-+                      else if(*b != '\0') {
-+                              fprintf(stderr, "%s: -Xdict-size invalid "
-+                                      "dict-size\n", comp_name);
-+                              goto failed;
-+                      }
-+              }
-+
-+              return 1;
-+      }
-+      
-+      return -1;
-+      
-+failed:
-+      return -2;
-+
-+}
-+
-+int lzma_xz_options_post(int block_size, int lzmaver)
-+{
-+      const char *comp_name = lzmaver_str[lzmaver];
-+      /*
-+       * if -Xdict-size has been specified use this to compute the datablock
-+       * dictionary size
-+       */
-+      if(options.dict_size || lzma_dict_percent) {
-+              int dict_size_min = (lzmaver == 1 ? 4096 : 8192);
-+              int n;
-+
-+              if(options.dict_size) {
-+                      if(options.dict_size > block_size) {
-+                              fprintf(stderr, "%s: -Xdict-size is larger than"
-+                              " block_size\n", comp_name);
-+                              goto failed;
-+                      }
-+              } else
-+                      options.dict_size = block_size * lzma_dict_percent / 100;
-+
-+              if(options.dict_size < dict_size_min) {
-+                      fprintf(stderr, "%s: -Xdict-size should be %i bytes "
-+                              "or larger\n", comp_name, dict_size_min);
-+                      goto failed;
-+              }
-+
-+              /*
-+               * dictionary_size must be storable in xz header as either
-+               * 2^n or as  2^n+2^(n+1)
-+              */
-+              n = ffs(options.dict_size) - 1;
-+              if(options.dict_size != (1 << n) &&
-+                              options.dict_size != ((1 << n) + (1 << (n + 1)))) {
-+                      fprintf(stderr, "%s: -Xdict-size is an unsupported "
-+                              "value, dict-size must be storable in %s "
-+                              "header\n", comp_name, comp_name);
-+                      fprintf(stderr, "as either 2^n or as 2^n+2^(n+1).  "
-+                              "Example dict-sizes are 75%%, 50%%, 37.5%%, "
-+                              "25%%,\n");
-+                      fprintf(stderr, "or 32K, 16K, 8K etc.\n");
-+                      goto failed;
-+              }
-+
-+      } else
-+              /* No -Xdict-size specified, use defaults */
-+              options.dict_size = block_size;
-+
-+      return 0;
-+
-+failed:
-+      return -1;
-+}
-+
-+static struct lzma_opts lzma_comp_opts;
-+
-+void *lzma_xz_dump_options(int block_size, int *size, int flags)
-+{
-+      /* No need to store default options */
-+      if (options.preset == 6 &&
-+                      options.extreme == 0 &&
-+                      options.lc == LZMA_OPT_LC_DEFAULT &&
-+                      options.lp == LZMA_OPT_LC_DEFAULT &&
-+                      options.pb == LZMA_OPT_PB_DEFAULT &&
-+                      options.fb == 0 &&
-+                      options.dict_size == block_size &&
-+                      flags == 0)
-+              return NULL;
-+      
-+      *size = sizeof(struct lzma_opts);
-+
-+      lzma_comp_opts.flags |= flags;
-+      
-+      if (options.extreme)
-+              lzma_comp_opts.flags |= LZMA_OPT_EXTREME;
-+      
-+      lzma_comp_opts.flags |= ((options.preset << LZMA_OPT_PRE_OFF) & LZMA_OPT_PRE_MASK);
-+      
-+      lzma_comp_opts.bit_opts = 
-+                      ((options.lc << LZMA_OPT_LC_OFF) & LZMA_OPT_LC_MASK) |
-+                      ((options.lp << LZMA_OPT_LP_OFF) & LZMA_OPT_LP_MASK) |
-+                      ((options.pb << LZMA_OPT_PB_OFF) & LZMA_OPT_PB_MASK);
-+      lzma_comp_opts.fb = options.fb;
-+      lzma_comp_opts.dict_size = options.dict_size;
-+      
-+      SQUASHFS_INSWAP_LZMA_COMP_OPTS(&lzma_comp_opts);
-+      
-+      return &lzma_comp_opts;
-+}
-+
-+int lzma_xz_extract_options(int block_size, void *buffer, int size, int lzmaver)
-+{
-+      if (size == 0) {
-+              /* default options */
-+              options.preset = 6;
-+              options.extreme = 0;
-+              options.lc = LZMA_OPT_LC_DEFAULT;
-+              options.lp = LZMA_OPT_LC_DEFAULT;
-+              options.pb = LZMA_OPT_PB_DEFAULT;
-+              options.fb = LZMA_OPT_FB_DEFAULT;
-+              options.dict_size = block_size;
-+              options.flags = 0;
-+      } else {
-+              struct lzma_opts *comp_opts = buffer;
-+              int n;
-+              
-+              if (size != sizeof(struct lzma_opts))
-+                      goto failed;
-+              
-+              SQUASHFS_INSWAP_LZMA_COMP_OPTS(comp_opts);
-+              
-+              options.flags = comp_opts->flags & LZMA_OPT_FLT_MASK;
-+              options.preset  = (comp_opts->flags & LZMA_OPT_PRE_MASK) >> LZMA_OPT_PRE_OFF;
-+              options.extreme = !!(comp_opts->flags & LZMA_OPT_EXTREME);
-+
-+              options.lc = (comp_opts->bit_opts & LZMA_OPT_LC_MASK) >> LZMA_OPT_LC_OFF;
-+              options.lp = (comp_opts->bit_opts & LZMA_OPT_LP_MASK) >> LZMA_OPT_LP_OFF;
-+              options.pb = (comp_opts->bit_opts & LZMA_OPT_PB_MASK) >> LZMA_OPT_PB_OFF;
-+              options.fb = comp_opts->fb;
-+              options.dict_size = comp_opts->dict_size;
-+              
-+              /* check that the LZMA bit options are in range */
-+              if (options.lc < LZMA_OPT_LC_MIN || options.lc > LZMA_OPT_LC_MAX ||
-+                      options.lp < LZMA_OPT_LP_MIN || options.lp > LZMA_OPT_LP_MAX ||
-+                      options.pb < LZMA_OPT_PB_MIN || options.pb > LZMA_OPT_PB_MAX ||
-+                      options.fb < LZMA_OPT_FB_MIN || options.fb > LZMA_OPT_FB_MAX)
-+                      goto failed;
-+
-+              /*
-+               * check that the dictionary size seems correct - the dictionary
-+               * size should 2^n or 2^n+2^(n+1)
-+               */
-+              n = ffs(options.dict_size) - 1;
-+              if(options.dict_size != (1 << n) &&
-+                              options.dict_size != ((1 << n) + (1 << (n + 1))))
-+                      goto failed;
-+              
-+      }
-+      
-+      return 0;
-+
-+failed:
-+      fprintf(stderr, "%s: error reading stored compressor options from "
-+              "filesystem!\n", lzmaver_str[lzmaver]);
-+      return -1;      
-+}
-+
-+void lzma_xz_usage(int lzmaver)
-+{
-+      fprintf(stderr, "\t  -Xpreset <preset>\n");
-+      fprintf(stderr, "\t\tcompression preset (0-9, default 6)\n");
-+      fprintf(stderr, "\t  -Xe\n");
-+      fprintf(stderr, "\t\tTry to improve compression ratio by using more ");
-+      fprintf(stderr, "CPU time.\n");
-+      fprintf(stderr, "\t  -Xlc <lc>\n");
-+      fprintf(stderr, "\t\tNumber of literal context bits (0-4, default 3)\n");
-+      fprintf(stderr, "\t  -Xlp <lp>\n");
-+      fprintf(stderr, "\t\tNumber of literal position bits (0-4, default 0)\n");
-+      fprintf(stderr, "\t  -Xpb <pb>\n");
-+      fprintf(stderr, "\t\tNumber of position bits (0-4, default 2)\n");
-+      fprintf(stderr, "\t  -Xnice <nice>\n");
-+      fprintf(stderr, "\t\tNice length of a match (5-273, default 64)\n");
-+      fprintf(stderr, "\t  -Xdict-size <dict-size>\n");
-+      fprintf(stderr, "\t\tUse <dict-size> as the %s dictionary size.  The",
-+                      lzmaver == LZMA_OPT_LZMA ? "LZMA" : "XZ");
-+      fprintf(stderr, " dictionary size\n\t\tcan be specified as a");
-+      fprintf(stderr, " percentage of the block size, or as an\n\t\t");
-+      fprintf(stderr, "absolute value.  The dictionary size must be less");
-+      fprintf(stderr, " than or equal\n\t\tto the block size and %d bytes", 
-+                      lzmaver == LZMA_OPT_LZMA ? 4096 : 8192);
-+      fprintf(stderr, " or larger.  It must also be\n\t\tstorable in the lzma");
-+      fprintf(stderr, " header as either 2^n or as 2^n+2^(n+1).\n\t\t");
-+      fprintf(stderr, "Example dict-sizes are 75%%, 50%%, 37.5%%, 25%%, or");
-+      fprintf(stderr, " 32K, 16K, 8K\n\t\tetc.\n");
-+      
-+}
---- a/squashfs-tools/lzma_xz_wrapper.c
-+++ b/squashfs-tools/lzma_xz_wrapper.c
-@@ -27,6 +27,7 @@
- #include "squashfs_fs.h"
- #include "compressor.h"
-+#include "lzma_xz_options.h"
- #define LZMA_PROPS_SIZE 5
- #define LZMA_UNCOMP_SIZE 8
-@@ -38,13 +39,27 @@
- static int lzma_compress(void *dummy, void *dest, void *src,  int size,
-       int block_size, int *error)
- {
-+      uint32_t preset;
-       unsigned char *d = (unsigned char *) dest;
-+      struct lzma_xz_options *opts = lzma_xz_get_options();
-+
-       lzma_options_lzma opt;
-       lzma_stream strm = LZMA_STREAM_INIT;
-       int res;
--      lzma_lzma_preset(&opt, LZMA_OPTIONS);
--      opt.dict_size = block_size;
-+      preset = opts->preset;
-+
-+      if (opts->extreme)
-+              preset |= LZMA_PRESET_EXTREME;
-+
-+      lzma_lzma_preset(&opt, opts->preset);
-+      opt.lc = opts->lc;
-+      opt.lp = opts->lp;
-+      opt.pb = opts->pb;
-+      if (opts->fb)
-+              opt.nice_len = opts->fb;
-+
-+      opt.dict_size = opts->dict_size;
-       res = lzma_alone_encoder(&strm, &opt);
-       if(res != LZMA_OK) {
-@@ -143,13 +158,45 @@ failed:
-       return -1;
- }
-+static int lzma_options(char *argv[], int argc)
-+{
-+      return lzma_xz_options(argv, argc, LZMA_OPT_LZMA);
-+}
-+
-+
-+static int lzma_options_post(int block_size)
-+{
-+      return lzma_xz_options_post(block_size, LZMA_OPT_LZMA);
-+}
-+
-+
-+static void *lzma_dump_options(int block_size, int *size)
-+{
-+      return lzma_xz_dump_options(block_size, size, 0);
-+}
-+
-+
-+static int lzma_extract_options(int block_size, void *buffer, int size)
-+{
-+      return lzma_xz_extract_options(block_size, buffer, size, LZMA_OPT_LZMA);
-+}
-+
-+
-+void lzma_usage()
-+{
-+      lzma_xz_usage(LZMA_OPT_LZMA);
-+}
-+
- struct compressor lzma_comp_ops = {
-       .init = NULL,
-       .compress = lzma_compress,
-       .uncompress = lzma_uncompress,
--      .options = NULL,
--      .usage = NULL,
-+      .options = lzma_options,
-+      .options_post = lzma_options_post,
-+      .dump_options = lzma_dump_options,
-+      .extract_options = lzma_extract_options,
-+      .usage = lzma_usage,
-       .id = LZMA_COMPRESSION,
-       .name = "lzma",
-       .supported = 1
---- a/squashfs-tools/xz_wrapper.h
-+++ b/squashfs-tools/xz_wrapper.h
-@@ -24,25 +24,6 @@
-  *
-  */
--#ifndef linux
--#define __BYTE_ORDER BYTE_ORDER
--#define __BIG_ENDIAN BIG_ENDIAN
--#define __LITTLE_ENDIAN LITTLE_ENDIAN
--#else
--#include <endian.h>
--#endif
--
--#if __BYTE_ORDER == __BIG_ENDIAN
--extern unsigned int inswap_le32(unsigned int);
--
--#define SQUASHFS_INSWAP_COMP_OPTS(s) { \
--      (s)->dictionary_size = inswap_le32((s)->dictionary_size); \
--      (s)->flags = inswap_le32((s)->flags); \
--}
--#else
--#define SQUASHFS_INSWAP_COMP_OPTS(s)
--#endif
--
- #define MEMLIMIT (32 * 1024 * 1024)
- struct bcj {
---- a/squashfs-tools/xz_wrapper.c
-+++ b/squashfs-tools/xz_wrapper.c
-@@ -30,6 +30,7 @@
- #include "squashfs_fs.h"
- #include "xz_wrapper.h"
- #include "compressor.h"
-+#include "lzma_xz_options.h"
- static struct bcj bcj[] = {
-       { "x86", LZMA_FILTER_X86, 0 },
-@@ -41,22 +42,18 @@ static struct bcj bcj[] = {
-       { NULL, LZMA_VLI_UNKNOWN, 0 }
- };
--static struct comp_opts comp_opts;
--
- static int filter_count = 1;
--static int dictionary_size = 0;
--static float dictionary_percent = 0;
- static int xz_options(char *argv[], int argc)
- {
--      int i;
--      char *name;
--
-       if(strcmp(argv[0], "-Xbcj") == 0) {
-+              int i;
-+              char *name;
-+
-               if(argc < 2) {
-                       fprintf(stderr, "xz: -Xbcj missing filter\n");
--                      goto failed;
-+                      return -2;
-               }
-               name = argv[1];
-@@ -76,190 +73,50 @@ static int xz_options(char *argv[], int
-                       }
-                       if(bcj[i].name == NULL) {
-                               fprintf(stderr, "xz: -Xbcj unrecognised "
--                                      "filter\n");
--                              goto failed;
--                      }
--              }
--      
--              return 1;
--      } else if(strcmp(argv[0], "-Xdict-size") == 0) {
--              char *b;
--              float size;
--
--              if(argc < 2) {
--                      fprintf(stderr, "xz: -Xdict-size missing dict-size\n");
--                      goto failed;
--              }
--
--              size = strtof(argv[1], &b);
--              if(*b == '%') {
--                      if(size <= 0 || size > 100) {
--                              fprintf(stderr, "xz: -Xdict-size percentage "
--                                      "should be 0 < dict-size <= 100\n");
--                              goto failed;
--                      }
--
--                      dictionary_percent = size;
--                      dictionary_size = 0;
--              } else {
--                      if((float) ((int) size) != size) {
--                              fprintf(stderr, "xz: -Xdict-size can't be "
--                                      "fractional unless a percentage of the"
--                                      " block size\n");
--                              goto failed;
--                      }
--
--                      dictionary_percent = 0;
--                      dictionary_size = (int) size;
--
--                      if(*b == 'k' || *b == 'K')
--                              dictionary_size *= 1024;
--                      else if(*b == 'm' || *b == 'M')
--                              dictionary_size *= 1024 * 1024;
--                      else if(*b != '\0') {
--                              fprintf(stderr, "xz: -Xdict-size invalid "
--                                      "dict-size\n");
--                              goto failed;
-+                                              "filter\n");
-+                              return -2;
-                       }
-               }
--
-               return 1;
-+      } else {
-+              return lzma_xz_options(argv, argc, LZMA_OPT_XZ);
-       }
--
--      return -1;
--      
--failed:
--      return -2;
- }
- static int xz_options_post(int block_size)
- {
--      /*
--       * if -Xdict-size has been specified use this to compute the datablock
--       * dictionary size
--       */
--      if(dictionary_size || dictionary_percent) {
--              int n;
--
--              if(dictionary_size) {
--                      if(dictionary_size > block_size) {
--                              fprintf(stderr, "xz: -Xdict-size is larger than"
--                              " block_size\n");
--                              goto failed;
--                      }
--              } else
--                      dictionary_size = block_size * dictionary_percent / 100;
--
--              if(dictionary_size < 8192) {
--                      fprintf(stderr, "xz: -Xdict-size should be 8192 bytes "
--                              "or larger\n");
--                      goto failed;
--              }
--
--              /*
--               * dictionary_size must be storable in xz header as either
--               * 2^n or as  2^n+2^(n+1)
--              */
--              n = ffs(dictionary_size) - 1;
--              if(dictionary_size != (1 << n) && 
--                              dictionary_size != ((1 << n) + (1 << (n + 1)))) {
--                      fprintf(stderr, "xz: -Xdict-size is an unsupported "
--                              "value, dict-size must be storable in xz "
--                              "header\n");
--                      fprintf(stderr, "as either 2^n or as 2^n+2^(n+1).  "
--                              "Example dict-sizes are 75%%, 50%%, 37.5%%, "
--                              "25%%,\n");
--                      fprintf(stderr, "or 32K, 16K, 8K etc.\n");
--                      goto failed;
--              }
--
--      } else
--              /* No -Xdict-size specified, use defaults */
--              dictionary_size = block_size;
--
--      return 0;
--
--failed:
--      return -1;
-+      return lzma_xz_options_post(block_size, LZMA_OPT_XZ);
- }
- static void *xz_dump_options(int block_size, int *size)
- {
--      int flags = 0, i;
--
--      /*
--       * don't store compressor specific options in file system if the
--       * default options are being used - no compressor options in the
--       * file system means the default options are always assumed
--       *
--       * Defaults are:
--       *  metadata dictionary size: SQUASHFS_METADATA_SIZE
--       *  datablock dictionary size: block_size
--       *  1 filter
--       */
--      if(dictionary_size == block_size && filter_count == 1)
--              return NULL;
-+      int i, flags = 0;
-       for(i = 0; bcj[i].name; i++)
-               flags |= bcj[i].selected << i;
--      comp_opts.dictionary_size = dictionary_size;
--      comp_opts.flags = flags;
--
--      SQUASHFS_INSWAP_COMP_OPTS(&comp_opts);
--
--      *size = sizeof(comp_opts);
--      return &comp_opts;
-+      return lzma_xz_dump_options(block_size, size, flags);
- }
- static int xz_extract_options(int block_size, void *buffer, int size)
- {
--      struct comp_opts *comp_opts = buffer;
--      int flags, i, n;
--
--      if(size == 0) {
--              /* set defaults */
--              dictionary_size = block_size;
--              flags = 0;
--      } else {
--              /* check passed comp opts struct is of the correct length */
--              if(size != sizeof(struct comp_opts))
--                      goto failed;
--                                       
--              SQUASHFS_INSWAP_COMP_OPTS(comp_opts);
--
--              dictionary_size = comp_opts->dictionary_size;
--              flags = comp_opts->flags;
--
--              /*
--               * check that the dictionary size seems correct - the dictionary
--               * size should 2^n or 2^n+2^(n+1)
--               */
--              n = ffs(dictionary_size) - 1;
--              if(dictionary_size != (1 << n) && 
--                              dictionary_size != ((1 << n) + (1 << (n + 1))))
--                      goto failed;
--      }
-+      int ret = lzma_xz_extract_options(block_size, buffer, size, LZMA_OPT_XZ);
--      filter_count = 1;
--      for(i = 0; bcj[i].name; i++) {
--              if((flags >> i) & 1) {
--                      bcj[i].selected = 1;
--                      filter_count ++;
--              } else
--                      bcj[i].selected = 0;
-+      if (!ret) {
-+              int i;
-+              struct lzma_xz_options *opts = lzma_xz_get_options();
-+              for(i = 0; bcj[i].name; i++) {
-+                      if((opts->flags >> i) & 1) {
-+                              bcj[i].selected = 1;
-+                              filter_count ++;
-+                      } else
-+                              bcj[i].selected = 0;
-+              }
-       }
--
--      return 0;
--
--failed:
--      fprintf(stderr, "xz: error reading stored compressor options from "
--              "filesystem!\n");
--
--      return -1;
-+      return ret;
- }
-@@ -268,6 +125,7 @@ static int xz_init(void **strm, int bloc
-       int i, j, filters = datablock ? filter_count : 1;
-       struct filter *filter = malloc(filters * sizeof(struct filter));
-       struct xz_stream *stream;
-+      struct lzma_xz_options *opts = lzma_xz_get_options();
-       if(filter == NULL)
-               goto failed;
-@@ -281,7 +139,7 @@ static int xz_init(void **strm, int bloc
-       memset(filter, 0, filters * sizeof(struct filter));
--      stream->dictionary_size = datablock ? dictionary_size :
-+      stream->dictionary_size = datablock ? opts->dict_size :
-               SQUASHFS_METADATA_SIZE;
-       filter[0].filter[0].id = LZMA_FILTER_LZMA2;
-@@ -323,14 +181,25 @@ static int xz_compress(void *strm, void
-         lzma_ret res = 0;
-       struct xz_stream *stream = strm;
-       struct filter *selected = NULL;
-+      struct lzma_xz_options *opts = lzma_xz_get_options();
-       stream->filter[0].buffer = dest;
-       for(i = 0; i < stream->filters; i++) {
-+              uint32_t preset = opts->preset;
-               struct filter *filter = &stream->filter[i];
--              if(lzma_lzma_preset(&stream->opt, LZMA_PRESET_DEFAULT))
--                      goto failed;
-+              if (opts->extreme)
-+                      preset |= LZMA_PRESET_EXTREME;
-+
-+        if(lzma_lzma_preset(&stream->opt, preset))
-+                      goto failed;
-+
-+        stream->opt.lc = opts->lc;
-+      stream->opt.lp = opts->lp;
-+      stream->opt.pb = opts->pb;
-+      if (opts->fb)
-+              stream->opt.nice_len = opts->fb;
-               stream->opt.dict_size = stream->dictionary_size;
-@@ -384,22 +253,13 @@ static int xz_uncompress(void *dest, voi
- void xz_usage()
- {
-+      lzma_xz_usage(LZMA_OPT_XZ);
-       fprintf(stderr, "\t  -Xbcj filter1,filter2,...,filterN\n");
-       fprintf(stderr, "\t\tCompress using filter1,filter2,...,filterN in");
-       fprintf(stderr, " turn\n\t\t(in addition to no filter), and choose");
-       fprintf(stderr, " the best compression.\n");
-       fprintf(stderr, "\t\tAvailable filters: x86, arm, armthumb,");
-       fprintf(stderr, " powerpc, sparc, ia64\n");
--      fprintf(stderr, "\t  -Xdict-size <dict-size>\n");
--      fprintf(stderr, "\t\tUse <dict-size> as the XZ dictionary size.  The");
--      fprintf(stderr, " dictionary size\n\t\tcan be specified as a");
--      fprintf(stderr, " percentage of the block size, or as an\n\t\t");
--      fprintf(stderr, "absolute value.  The dictionary size must be less");
--      fprintf(stderr, " than or equal\n\t\tto the block size and 8192 bytes");
--      fprintf(stderr, " or larger.  It must also be\n\t\tstorable in the xz");
--      fprintf(stderr, " header as either 2^n or as 2^n+2^(n+1).\n\t\t");
--      fprintf(stderr, "Example dict-sizes are 75%%, 50%%, 37.5%%, 25%%, or");
--      fprintf(stderr, " 32K, 16K, 8K\n\t\tetc.\n");
- }
---- a/squashfs-tools/Makefile
-+++ b/squashfs-tools/Makefile
-@@ -140,6 +140,8 @@ COMPRESSORS += xz
- endif
- ifneq ($(LZMA_XZ_SUPPORT)$(XZ_SUPPORT),)
-+MKSQUASHFS_OBJS += lzma_xz_options.o
-+UNSQUASHFS_OBJS += lzma_xz_options.o
- ifneq ($(LZMA_LIB),)
- MKSQUASHFS_OBJS += $(LZMA_LIB)
- UNSQUASHFS_OBJS += $(LZMA_LIB)
diff --git a/tools/squashfs4/patches/170-add_support_for_LZMA_MAGIC_to_unsqashfs.patch b/tools/squashfs4/patches/170-add_support_for_LZMA_MAGIC_to_unsqashfs.patch
deleted file mode 100644 (file)
index bc7d6c7..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
---- a/squashfs-tools/squashfs_fs.h
-+++ b/squashfs-tools/squashfs_fs.h
-@@ -30,6 +30,13 @@
- #define SQUASHFS_MAGIC_SWAP           0x68737173
- #define SQUASHFS_START                        0
-+/*
-+ * Squashfs + LZMA
-+ */
-+
-+#define SQUASHFS_MAGIC_LZMA           0x71736873
-+#define SQUASHFS_MAGIC_LZMA_SWAP      0x73687371
-+
- /* size of metadata (inode and directory) blocks */
- #define SQUASHFS_METADATA_SIZE                8192
- #define SQUASHFS_METADATA_LOG         13
---- a/squashfs-tools/unsquashfs.c
-+++ b/squashfs-tools/unsquashfs.c
-@@ -1464,10 +1464,12 @@ int read_super(char *source)
-        */
-       read_fs_bytes(fd, SQUASHFS_START, sizeof(struct squashfs_super_block),
-               &sBlk_4);
--      swap = sBlk_4.s_magic != SQUASHFS_MAGIC;
-+      swap = (sBlk_4.s_magic != SQUASHFS_MAGIC &&
-+              sBlk_4.s_magic != SQUASHFS_MAGIC_LZMA);
-       SQUASHFS_INSWAP_SUPER_BLOCK(&sBlk_4);
--      if(sBlk_4.s_magic == SQUASHFS_MAGIC && sBlk_4.s_major == 4 &&
-+      if((sBlk_4.s_magic == SQUASHFS_MAGIC || 
-+         sBlk_4.s_magic == SQUASHFS_MAGIC_LZMA) && sBlk_4.s_major == 4 &&
-                       sBlk_4.s_minor == 0) {
-               s_ops.squashfs_opendir = squashfs_opendir_4;
-               s_ops.read_fragment = read_fragment_4;
-@@ -1480,7 +1482,11 @@ int read_super(char *source)
-               /*
-                * Check the compression type
-                */
--              comp = lookup_compressor_id(sBlk.s.compression);
-+              if (sBlk_4.s_magic == SQUASHFS_MAGIC_LZMA)
-+                      comp = lookup_compressor("lzma");
-+              else
-+                      comp = lookup_compressor_id(sBlk.s.compression);
-+
-               return TRUE;
-       }
-@@ -1495,8 +1501,10 @@ int read_super(char *source)
-        * Check it is a SQUASHFS superblock
-        */
-       swap = 0;
--      if(sBlk_3.s_magic != SQUASHFS_MAGIC) {
--              if(sBlk_3.s_magic == SQUASHFS_MAGIC_SWAP) {
-+      if(sBlk_3.s_magic != SQUASHFS_MAGIC && 
-+                      sBlk_3.s_magic != SQUASHFS_MAGIC_LZMA) {
-+              if(sBlk_3.s_magic == SQUASHFS_MAGIC_SWAP || 
-+                              sBlk_3.s_magic == SQUASHFS_MAGIC_LZMA_SWAP) {
-                       squashfs_super_block_3 sblk;
-                       ERROR("Reading a different endian SQUASHFS filesystem "
-                               "on %s\n", source);
-@@ -1574,7 +1582,11 @@ int read_super(char *source)
-       /*
-        * 1.x, 2.x and 3.x filesystems use gzip compression.
-        */
--      comp = lookup_compressor("gzip");
-+      if (sBlk.s.s_magic == SQUASHFS_MAGIC_LZMA)
-+              comp = lookup_compressor("lzma");
-+      else
-+              comp = lookup_compressor("gzip");
-+
-       return TRUE;
- failed_mount:
diff --git a/tools/squashfs4/patches/180-openbsd_compat.patch b/tools/squashfs4/patches/180-openbsd_compat.patch
deleted file mode 100644 (file)
index 4f7afd8..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/squashfs-tools/mksquashfs.c
-+++ b/squashfs-tools/mksquashfs.c
-@@ -32,6 +32,9 @@
- #include <stdio.h>
- #include <stddef.h>
- #include <sys/time.h>
-+#if defined(__OpenBSD__)
-+#include <sys/param.h>
-+#endif
- #include <sys/types.h>
- #include <sys/sysmacros.h>
- #include <sys/stat.h>
---- a/squashfs-tools/unsquashfs.h
-+++ b/squashfs-tools/unsquashfs.h
-@@ -25,6 +25,9 @@
- #define TRUE 1
- #define FALSE 0
- #include <stdio.h>
-+#if defined(__OpenBSD__)
-+#include <sys/param.h>
-+#endif
- #include <sys/types.h>
- #include <unistd.h>
- #include <stdlib.h>
diff --git a/tools/squashfs4/patches/190-no_nonstatic_inline.patch b/tools/squashfs4/patches/190-no_nonstatic_inline.patch
deleted file mode 100644 (file)
index 8cab120..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
---- a/squashfs-tools/mksquashfs.c
-+++ b/squashfs-tools/mksquashfs.c
-@@ -736,13 +736,13 @@ void cache_block_put(struct file_buffer
-                       + (((char *)A) - data_cache)))
--inline void inc_progress_bar()
-+static inline void inc_progress_bar()
- {
-       cur_uncompressed ++;
- }
--inline void update_progress_bar()
-+static inline void update_progress_bar()
- {
-       pthread_mutex_lock(&progress_mutex);
-       pthread_cond_signal(&progress_wait);
-@@ -750,7 +750,7 @@ inline void update_progress_bar()
- }
--inline void waitforthread(int i)
-+static inline void waitforthread(int i)
- {
-       TRACE("Waiting for thread %d\n", i);
-       while(thread[i] != 0)
-@@ -3359,7 +3359,7 @@ struct inode_info *lookup_inode(struct s
- }
--inline void add_dir_entry(char *name, char *pathname, struct dir_info *sub_dir,
-+static inline void add_dir_entry(char *name, char *pathname, struct dir_info *sub_dir,
-       struct inode_info *inode_info, struct dir_info *dir)
- {
-       if((dir->count % DIR_ENTRIES) == 0) {
diff --git a/tools/squashfs4/patches/200-add-fixed-timestamp-option.patch b/tools/squashfs4/patches/200-add-fixed-timestamp-option.patch
deleted file mode 100644 (file)
index 7411b97..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
---- a/squashfs-tools/mksquashfs.c
-+++ b/squashfs-tools/mksquashfs.c
-@@ -176,6 +176,9 @@ unsigned int cache_bytes = 0, cache_size
- /* inode lookup table */
- squashfs_inode *inode_lookup_table = NULL;
-+/* override all timestamps */
-+time_t fixed_time = -1;
-+
- /* in memory directory data */
- #define I_COUNT_SIZE          128
- #define DIR_ENTRIES           32
-@@ -2453,6 +2456,8 @@ again:
- restat:
-       fstat(file, &buf2);
-       close(file);
-+      if (fixed_time != -1)
-+              buf2.st_mtime = fixed_time;
-       if(read_size != buf2.st_size) {
-               memcpy(buf, &buf2, sizeof(struct stat));
-               file_buffer->error = 2;
-@@ -3613,7 +3618,7 @@ void dir_scan(squashfs_inode *inode, cha
-               buf.st_mode = S_IRWXU | S_IRWXG | S_IRWXO | S_IFDIR;
-               buf.st_uid = getuid();
-               buf.st_gid = getgid();
--              buf.st_mtime = time(NULL);
-+              buf.st_mtime = fixed_time != -1 ? fixed_time : time(NULL);
-               buf.st_dev = 0;
-               buf.st_ino = 0;
-               dir_ent->inode = lookup_inode(&buf);
-@@ -3624,6 +3629,8 @@ void dir_scan(squashfs_inode *inode, cha
-                               pathname, strerror(errno));
-                       return;
-               }
-+              if(fixed_time != -1)
-+                      buf.st_mtime = fixed_time;
-               dir_ent->inode = lookup_inode(&buf);
-       }
-@@ -3678,6 +3685,8 @@ struct dir_info *dir_scan1(char *pathnam
-                               filename, strerror(errno));
-                       continue;
-               }
-+              if(fixed_time != -1)
-+                      buf.st_mtime = fixed_time;
-               if((buf.st_mode & S_IFMT) != S_IFREG &&
-                       (buf.st_mode & S_IFMT) != S_IFDIR &&
-@@ -3796,7 +3805,7 @@ struct dir_info *dir_scan2(struct dir_in
-               buf.st_gid = pseudo_ent->dev->gid;
-               buf.st_rdev = makedev(pseudo_ent->dev->major,
-                       pseudo_ent->dev->minor);
--              buf.st_mtime = time(NULL);
-+              buf.st_mtime = fixed_time != -1 ? fixed_time : time(NULL);
-               buf.st_ino = pseudo_ino ++;
-               if(pseudo_ent->dev->type == 'f') {
-@@ -4675,6 +4684,15 @@ int main(int argc, char *argv[])
-                       progress = FALSE;
-               else if(strcmp(argv[i], "-no-exports") == 0)
-                       exportable = FALSE;
-+              else if(strcmp(argv[i], "-fixed-time") == 0) {
-+                      if((++i == argc) || (fixed_time =
-+                                      strtoll(argv[i], &b, 10), *b != '\0')) {
-+                              ERROR("%s: -fixed-time missing or invalid "
-+                                      "timestamp\n", argv[0]);
-+
-+                              exit(1);
-+                      }
-+              }
-               else if(strcmp(argv[i], "-processors") == 0) {
-                       if((++i == argc) || (processors =
-                                       strtol(argv[i], &b, 10), *b != '\0')) {
-@@ -5315,7 +5333,7 @@ printOptions:
-       sBlk.flags = SQUASHFS_MKFLAGS(noI, noD, noF, noX, no_fragments,
-               always_use_fragments, duplicate_checking, exportable,
-               no_xattrs, comp_opts);
--      sBlk.mkfs_time = time(NULL);
-+      sBlk.mkfs_time = fixed_time != -1 ? fixed_time : time(NULL);
- restore_filesystem:
-       if(progress && estimated_uncompressed) {
diff --git a/tools/squashfskit4/Makefile b/tools/squashfskit4/Makefile
new file mode 100644 (file)
index 0000000..4808c56
--- /dev/null
@@ -0,0 +1,41 @@
+#
+# Copyright (C) 2009-2012 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=squashfskit4
+PKG_VERSION:=4.14
+
+PKG_SOURCE:=squashfskit-v$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://github.com/squashfskit/squashfskit/releases/download/v$(PKG_VERSION)/
+PKG_HASH:=5761aaa3aedc4f7112b708367d891c9abdc1ffea972e3fe47923ddba23984d95
+
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/squashfskit-v$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/host-build.mk
+
+define Host/Compile
+       +$(HOST_MAKE_VARS) \
+       $(MAKE) -C $(HOST_BUILD_DIR)/squashfs-tools \
+               XZ_SUPPORT=1 \
+               LZMA_XZ_SUPPORT=1 \
+               XATTR_SUPPORT= \
+               LZMA_LIB="$(STAGING_DIR_HOST)/lib/liblzma.a" \
+               EXTRA_CFLAGS="-I$(STAGING_DIR_HOST)/include" \
+               mksquashfs unsquashfs
+endef
+
+define Host/Install
+       $(INSTALL_BIN) $(HOST_BUILD_DIR)/squashfs-tools/mksquashfs $(STAGING_DIR_HOST)/bin/mksquashfs4
+       $(INSTALL_BIN) $(HOST_BUILD_DIR)/squashfs-tools/unsquashfs $(STAGING_DIR_HOST)/bin/unsquashfs4
+endef
+
+define Host/Clean
+       rm -f $(STAGING_DIR_HOST)/bin/mksquashfs4
+       rm -f $(STAGING_DIR_HOST)/bin/unsquashfs4
+endef
+
+$(eval $(call HostBuild))
diff --git a/tools/squashfskit4/patches/0001-fix-version.sh.patch b/tools/squashfskit4/patches/0001-fix-version.sh.patch
new file mode 100644 (file)
index 0000000..5f0894b
--- /dev/null
@@ -0,0 +1,21 @@
+--- a/squashfs-tools/version.sh
++++ b/squashfs-tools/version.sh
+@@ -27,13 +27,11 @@ if [ -z "$OUTPUT" ] ; then
+ fi
+ our_date() {
+-case $(uname) in
+-NetBSD|OpenBSD|DragonFly|FreeBSD|Darwin)
+-        date -r "$1" "$2"
+-        ;;
+-*)
+-        date -d "@$1" "$2"
+-esac
++      if date --version 2>&1 | grep -q "GNU coreutils"; then
++              date -d "@$1" "$2"
++      else
++              date -r "$1" "$2"
++      fi
+ }
+ try_version() {
index baa431e2db6b1914ed4fb3fcbe0e3e7ad75d6b39..2565262d4dd8520ee467c261ffff4dd3931b3a8f 100644 (file)
@@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tar
 PKG_CPE_ID:=cpe:/a:gnu:tar
-PKG_VERSION:=1.30
+PKG_VERSION:=1.31
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/tar
-PKG_HASH:=87592b86cb037c554375f5868bdd3cc57748aef38d6cb741c81065f0beac63b7
+PKG_HASH:=37f3ef1ceebd8b7e1ebf5b8cc6c65bb8ebf002c7d049032bf456860f25ec2dc1
 
-HOST_BUILD_PARALLEL := 1
+HOST_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/host-build.mk
 
index 93f889761b716b6c5afca9579ed694a6496c04f8..8a8ebc0c4cfdb4c4af1cbc90f33201274ca736fd 100644 (file)
@@ -5,7 +5,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 ---
 --- a/src/create.c
 +++ b/src/create.c
-@@ -544,17 +544,8 @@ write_gnu_long_link (struct tar_stat_inf
+@@ -543,17 +543,8 @@ write_gnu_long_link (struct tar_stat_inf
    union block *header;
  
    header = start_private_header ("././@LongLink", size, 0);
index 6fb799bc0a3e0ee54f6966d6616efb1b8e96d6ff..e9a32f7d1355d74404f7223b785a30c06d4ae94e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/create.c
 +++ b/src/create.c
-@@ -1853,6 +1853,7 @@ dump_file0 (struct tar_stat_info *st, ch
+@@ -1852,6 +1852,7 @@ dump_file0 (struct tar_stat_info *st, ch
  #ifdef HAVE_READLINK
    else if (S_ISLNK (st->stat.st_mode))
      {
diff --git a/tools/wrt350nv2-builder/Makefile b/tools/wrt350nv2-builder/Makefile
new file mode 100644 (file)
index 0000000..375044a
--- /dev/null
@@ -0,0 +1,41 @@
+# 
+# Copyright (C) 2006-2012 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=wrt350nv2-builder
+PKG_VERSION:=2.4
+PKG_REVISION:=2
+
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/${PKG_NAME}-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/host-build.mk
+
+define Host/Compile
+       $(HOSTCC) $(HOST_CFLAGS) -c src/md5.c -o $(HOST_BUILD_DIR)/md5.o
+       $(HOSTCC) $(HOST_CFLAGS) -c src/ioapi.c -o $(HOST_BUILD_DIR)/ioapi.o
+       $(HOSTCC) $(HOST_CFLAGS) -c src/wrt350nv2-builder.c -o $(HOST_BUILD_DIR)/wrt350nv2-builder.o
+       $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $(HOST_BUILD_DIR)/wrt350nv2-builder \
+               $(HOST_BUILD_DIR)/wrt350nv2-builder.o $(HOST_BUILD_DIR)/md5.o $(HOST_BUILD_DIR)/ioapi.o
+endef
+
+define Host/Install
+       $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin
+       $(INSTALL_BIN) $(HOST_BUILD_DIR)/wrt350nv2-builder $(STAGING_DIR_HOST)/bin/
+# optionally the builder can add a u-boot binary to create a complete webupgrade image, but this is not mandatory
+# u-boot images from stock firmware are available at ftp://ftp.maddes.net/librecmc/trunk/orion/stock/binaries/
+       [ ! -f "files/u-boot.bin" ] || ( \
+               $(INSTALL_DIR) $(STAGING_DIR_HOST)/share/wrt350nv2-builder; \
+               $(CP) files/u-boot.bin $(STAGING_DIR_HOST)/share/wrt350nv2-builder/; )
+endef
+
+define Host/Clean
+       rm -f $(STAGING_DIR_HOST)/bin/wrt350nv2-builder
+       rm -f $(STAGING_DIR_HOST)/share/wrt350nv2-builder
+endef
+
+$(eval $(call HostBuild))
diff --git a/tools/wrt350nv2-builder/src/crypt.h b/tools/wrt350nv2-builder/src/crypt.h
new file mode 100644 (file)
index 0000000..622f4bc
--- /dev/null
@@ -0,0 +1,132 @@
+/* crypt.h -- base code for crypt/uncrypt ZIPfile
+
+
+   Version 1.01e, February 12th, 2005
+
+   Copyright (C) 1998-2005 Gilles Vollant
+
+   This code is a modified version of crypting code in Infozip distribution
+
+   The encryption/decryption parts of this source code (as opposed to the
+   non-echoing password parts) were originally written in Europe.  The
+   whole source package can be freely distributed, including from the USA.
+   (Prior to January 2000, re-export from the US was a violation of US law.)
+
+   This encryption code is a direct transcription of the algorithm from
+   Roger Schlafly, described by Phil Katz in the file appnote.txt.  This
+   file (appnote.txt) is distributed with the PKZIP program (even in the
+   version without encryption capabilities).
+
+   If you don't need crypting in your application, just define symbols
+   NOCRYPT and NOUNCRYPT.
+
+   This code support the "Traditional PKWARE Encryption".
+
+   The new AES encryption added on Zip format by Winzip (see the page
+   http://www.winzip.com/aes_info.htm ) and PKWare PKZip 5.x Strong
+   Encryption is not supported.
+*/
+
+#define CRC32(c, b) ((*(pcrc_32_tab+(((int)(c) ^ (b)) & 0xff))) ^ ((c) >> 8))
+
+/***********************************************************************
+ * Return the next byte in the pseudo-random sequence
+ */
+static int decrypt_byte(unsigned long* pkeys, const unsigned long* pcrc_32_tab)
+{
+    unsigned temp;  /* POTENTIAL BUG:  temp*(temp^1) may overflow in an
+                     * unpredictable manner on 16-bit systems; not a problem
+                     * with any known compiler so far, though */
+
+    temp = ((unsigned)(*(pkeys+2)) & 0xffff) | 2;
+    return (int)(((temp * (temp ^ 1)) >> 8) & 0xff);
+}
+
+/***********************************************************************
+ * Update the encryption keys with the next byte of plain text
+ */
+static int update_keys(unsigned long* pkeys,const unsigned long* pcrc_32_tab,int c)
+{
+    (*(pkeys+0)) = CRC32((*(pkeys+0)), c);
+    (*(pkeys+1)) += (*(pkeys+0)) & 0xff;
+    (*(pkeys+1)) = (*(pkeys+1)) * 134775813L + 1;
+    {
+      register int keyshift = (int)((*(pkeys+1)) >> 24);
+      (*(pkeys+2)) = CRC32((*(pkeys+2)), keyshift);
+    }
+    return c;
+}
+
+
+/***********************************************************************
+ * Initialize the encryption keys and the random header according to
+ * the given password.
+ */
+static void init_keys(const char* passwd,unsigned long* pkeys,const unsigned long* pcrc_32_tab)
+{
+    *(pkeys+0) = 305419896L;
+    *(pkeys+1) = 591751049L;
+    *(pkeys+2) = 878082192L;
+    while (*passwd != '\0') {
+        update_keys(pkeys,pcrc_32_tab,(int)*passwd);
+        passwd++;
+    }
+}
+
+#define zdecode(pkeys,pcrc_32_tab,c) \
+    (update_keys(pkeys,pcrc_32_tab,c ^= decrypt_byte(pkeys,pcrc_32_tab)))
+
+#define zencode(pkeys,pcrc_32_tab,c,t) \
+    (t=decrypt_byte(pkeys,pcrc_32_tab), update_keys(pkeys,pcrc_32_tab,c), t^(c))
+
+#ifdef INCLUDECRYPTINGCODE_IFCRYPTALLOWED
+
+#define RAND_HEAD_LEN  12
+   /* "last resort" source for second part of crypt seed pattern */
+#  ifndef ZCR_SEED2
+#    define ZCR_SEED2 3141592654UL     /* use PI as default pattern */
+#  endif
+
+static int crypthead(passwd, buf, bufSize, pkeys, pcrc_32_tab, crcForCrypting)
+    const char *passwd;         /* password string */
+    unsigned char *buf;         /* where to write header */
+    int bufSize;
+    unsigned long* pkeys;
+    const unsigned long* pcrc_32_tab;
+    unsigned long crcForCrypting;
+{
+    int n;                       /* index in random header */
+    int t;                       /* temporary */
+    int c;                       /* random byte */
+    unsigned char header[RAND_HEAD_LEN-2]; /* random header */
+    static unsigned calls = 0;   /* ensure different random header each time */
+
+    if (bufSize<RAND_HEAD_LEN)
+      return 0;
+
+    /* First generate RAND_HEAD_LEN-2 random bytes. We encrypt the
+     * output of rand() to get less predictability, since rand() is
+     * often poorly implemented.
+     */
+    if (++calls == 1)
+    {
+        srand((unsigned)(time(NULL) ^ ZCR_SEED2));
+    }
+    init_keys(passwd, pkeys, pcrc_32_tab);
+    for (n = 0; n < RAND_HEAD_LEN-2; n++)
+    {
+        c = (rand() >> 7) & 0xff;
+        header[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, c, t);
+    }
+    /* Encrypt random header (last two bytes is high word of crc) */
+    init_keys(passwd, pkeys, pcrc_32_tab);
+    for (n = 0; n < RAND_HEAD_LEN-2; n++)
+    {
+        buf[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, header[n], t);
+    }
+    buf[n++] = zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 16) & 0xff, t);
+    buf[n++] = zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 24) & 0xff, t);
+    return n;
+}
+
+#endif
diff --git a/tools/wrt350nv2-builder/src/ioapi.c b/tools/wrt350nv2-builder/src/ioapi.c
new file mode 100644 (file)
index 0000000..f1bee23
--- /dev/null
@@ -0,0 +1,177 @@
+/* ioapi.c -- IO base function header for compress/uncompress .zip
+   files using zlib + zip or unzip API
+
+   Version 1.01e, February 12th, 2005
+
+   Copyright (C) 1998-2005 Gilles Vollant
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "zlib.h"
+#include "ioapi.h"
+
+
+
+/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */
+
+#ifndef SEEK_CUR
+#define SEEK_CUR    1
+#endif
+
+#ifndef SEEK_END
+#define SEEK_END    2
+#endif
+
+#ifndef SEEK_SET
+#define SEEK_SET    0
+#endif
+
+voidpf ZCALLBACK fopen_file_func OF((
+   voidpf opaque,
+   const char* filename,
+   int mode));
+
+uLong ZCALLBACK fread_file_func OF((
+   voidpf opaque,
+   voidpf stream,
+   void* buf,
+   uLong size));
+
+uLong ZCALLBACK fwrite_file_func OF((
+   voidpf opaque,
+   voidpf stream,
+   const void* buf,
+   uLong size));
+
+long ZCALLBACK ftell_file_func OF((
+   voidpf opaque,
+   voidpf stream));
+
+long ZCALLBACK fseek_file_func OF((
+   voidpf opaque,
+   voidpf stream,
+   uLong offset,
+   int origin));
+
+int ZCALLBACK fclose_file_func OF((
+   voidpf opaque,
+   voidpf stream));
+
+int ZCALLBACK ferror_file_func OF((
+   voidpf opaque,
+   voidpf stream));
+
+
+voidpf ZCALLBACK fopen_file_func (opaque, filename, mode)
+   voidpf opaque;
+   const char* filename;
+   int mode;
+{
+    FILE* file = NULL;
+    const char* mode_fopen = NULL;
+    if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
+        mode_fopen = "rb";
+    else
+    if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
+        mode_fopen = "r+b";
+    else
+    if (mode & ZLIB_FILEFUNC_MODE_CREATE)
+        mode_fopen = "wb";
+
+    if ((filename!=NULL) && (mode_fopen != NULL))
+        file = fopen(filename, mode_fopen);
+    return file;
+}
+
+
+uLong ZCALLBACK fread_file_func (opaque, stream, buf, size)
+   voidpf opaque;
+   voidpf stream;
+   void* buf;
+   uLong size;
+{
+    uLong ret;
+    ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);
+    return ret;
+}
+
+
+uLong ZCALLBACK fwrite_file_func (opaque, stream, buf, size)
+   voidpf opaque;
+   voidpf stream;
+   const void* buf;
+   uLong size;
+{
+    uLong ret;
+    ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);
+    return ret;
+}
+
+long ZCALLBACK ftell_file_func (opaque, stream)
+   voidpf opaque;
+   voidpf stream;
+{
+    long ret;
+    ret = ftell((FILE *)stream);
+    return ret;
+}
+
+long ZCALLBACK fseek_file_func (opaque, stream, offset, origin)
+   voidpf opaque;
+   voidpf stream;
+   uLong offset;
+   int origin;
+{
+    int fseek_origin=0;
+    long ret;
+    switch (origin)
+    {
+    case ZLIB_FILEFUNC_SEEK_CUR :
+        fseek_origin = SEEK_CUR;
+        break;
+    case ZLIB_FILEFUNC_SEEK_END :
+        fseek_origin = SEEK_END;
+        break;
+    case ZLIB_FILEFUNC_SEEK_SET :
+        fseek_origin = SEEK_SET;
+        break;
+    default: return -1;
+    }
+    ret = 0;
+    fseek((FILE *)stream, offset, fseek_origin);
+    return ret;
+}
+
+int ZCALLBACK fclose_file_func (opaque, stream)
+   voidpf opaque;
+   voidpf stream;
+{
+    int ret;
+    ret = fclose((FILE *)stream);
+    return ret;
+}
+
+int ZCALLBACK ferror_file_func (opaque, stream)
+   voidpf opaque;
+   voidpf stream;
+{
+    int ret;
+    ret = ferror((FILE *)stream);
+    return ret;
+}
+
+void fill_fopen_filefunc (pzlib_filefunc_def)
+  zlib_filefunc_def* pzlib_filefunc_def;
+{
+    pzlib_filefunc_def->zopen_file = fopen_file_func;
+    pzlib_filefunc_def->zread_file = fread_file_func;
+    pzlib_filefunc_def->zwrite_file = fwrite_file_func;
+    pzlib_filefunc_def->ztell_file = ftell_file_func;
+    pzlib_filefunc_def->zseek_file = fseek_file_func;
+    pzlib_filefunc_def->zclose_file = fclose_file_func;
+    pzlib_filefunc_def->zerror_file = ferror_file_func;
+    pzlib_filefunc_def->opaque = NULL;
+}
diff --git a/tools/wrt350nv2-builder/src/ioapi.h b/tools/wrt350nv2-builder/src/ioapi.h
new file mode 100644 (file)
index 0000000..5fa9786
--- /dev/null
@@ -0,0 +1,75 @@
+/* ioapi.h -- IO base function header for compress/uncompress .zip
+   files using zlib + zip or unzip API
+
+   Version 1.01e, February 12th, 2005
+
+   Copyright (C) 1998-2005 Gilles Vollant
+*/
+
+#ifndef _ZLIBIOAPI_H
+#define _ZLIBIOAPI_H
+
+
+#define ZLIB_FILEFUNC_SEEK_CUR (1)
+#define ZLIB_FILEFUNC_SEEK_END (2)
+#define ZLIB_FILEFUNC_SEEK_SET (0)
+
+#define ZLIB_FILEFUNC_MODE_READ      (1)
+#define ZLIB_FILEFUNC_MODE_WRITE     (2)
+#define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3)
+
+#define ZLIB_FILEFUNC_MODE_EXISTING (4)
+#define ZLIB_FILEFUNC_MODE_CREATE   (8)
+
+
+#ifndef ZCALLBACK
+
+#if (defined(WIN32) || defined (WINDOWS) || defined (_WINDOWS)) && defined(CALLBACK) && defined (USEWINDOWS_CALLBACK)
+#define ZCALLBACK CALLBACK
+#else
+#define ZCALLBACK
+#endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef voidpf (ZCALLBACK *open_file_func) (voidpf opaque, const char* filename, int mode);
+typedef uLong  (ZCALLBACK *read_file_func) (voidpf opaque, voidpf stream, void* buf, uLong size);
+typedef uLong  (ZCALLBACK *write_file_func) (voidpf opaque, voidpf stream, const void* buf, uLong size);
+typedef long   (ZCALLBACK *tell_file_func) (voidpf opaque, voidpf stream);
+typedef long   (ZCALLBACK *seek_file_func) (voidpf opaque, voidpf stream, uLong offset, int origin);
+typedef int    (ZCALLBACK *close_file_func) (voidpf opaque, voidpf stream);
+typedef int    (ZCALLBACK *testerror_file_func) (voidpf opaque, voidpf stream);
+
+typedef struct zlib_filefunc_def_s
+{
+    open_file_func      zopen_file;
+    read_file_func      zread_file;
+    write_file_func     zwrite_file;
+    tell_file_func      ztell_file;
+    seek_file_func      zseek_file;
+    close_file_func     zclose_file;
+    testerror_file_func zerror_file;
+    voidpf              opaque;
+} zlib_filefunc_def;
+
+
+
+void fill_fopen_filefunc (zlib_filefunc_def* pzlib_filefunc_def);
+
+#define ZREAD(filefunc,filestream,buf,size) ((*((filefunc).zread_file))((filefunc).opaque,filestream,buf,size))
+#define ZWRITE(filefunc,filestream,buf,size) ((*((filefunc).zwrite_file))((filefunc).opaque,filestream,buf,size))
+#define ZTELL(filefunc,filestream) ((*((filefunc).ztell_file))((filefunc).opaque,filestream))
+#define ZSEEK(filefunc,filestream,pos,mode) ((*((filefunc).zseek_file))((filefunc).opaque,filestream,pos,mode))
+#define ZCLOSE(filefunc,filestream) ((*((filefunc).zclose_file))((filefunc).opaque,filestream))
+#define ZERROR(filefunc,filestream) ((*((filefunc).zerror_file))((filefunc).opaque,filestream))
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/tools/wrt350nv2-builder/src/md5.c b/tools/wrt350nv2-builder/src/md5.c
new file mode 100644 (file)
index 0000000..c35d96c
--- /dev/null
@@ -0,0 +1,381 @@
+/*
+  Copyright (C) 1999, 2000, 2002 Aladdin Enterprises.  All rights reserved.
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+
+  L. Peter Deutsch
+  ghost@aladdin.com
+
+ */
+/* $Id: md5.c,v 1.6 2002/04/13 19:20:28 lpd Exp $ */
+/*
+  Independent implementation of MD5 (RFC 1321).
+
+  This code implements the MD5 Algorithm defined in RFC 1321, whose
+  text is available at
+       http://www.ietf.org/rfc/rfc1321.txt
+  The code is derived from the text of the RFC, including the test suite
+  (section A.5) but excluding the rest of Appendix A.  It does not include
+  any code or documentation that is identified in the RFC as being
+  copyrighted.
+
+  The original and principal author of md5.c is L. Peter Deutsch
+  <ghost@aladdin.com>.  Other authors are noted in the change history
+  that follows (in reverse chronological order):
+
+  2002-04-13 lpd Clarified derivation from RFC 1321; now handles byte order
+       either statically or dynamically; added missing #include <string.h>
+       in library.
+  2002-03-11 lpd Corrected argument list for main(), and added int return
+       type, in test program and T value program.
+  2002-02-21 lpd Added missing #include <stdio.h> in test program.
+  2000-07-03 lpd Patched to eliminate warnings about "constant is
+       unsigned in ANSI C, signed in traditional"; made test program
+       self-checking.
+  1999-11-04 lpd Edited comments slightly for automatic TOC extraction.
+  1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5).
+  1999-05-03 lpd Original version.
+ */
+
+#include "md5.h"
+#include <string.h>
+
+#undef BYTE_ORDER      /* 1 = big-endian, -1 = little-endian, 0 = unknown */
+#ifdef ARCH_IS_BIG_ENDIAN
+#  define BYTE_ORDER (ARCH_IS_BIG_ENDIAN ? 1 : -1)
+#else
+#  define BYTE_ORDER 0
+#endif
+
+#define T_MASK ((md5_word_t)~0)
+#define T1 /* 0xd76aa478 */ (T_MASK ^ 0x28955b87)
+#define T2 /* 0xe8c7b756 */ (T_MASK ^ 0x173848a9)
+#define T3    0x242070db
+#define T4 /* 0xc1bdceee */ (T_MASK ^ 0x3e423111)
+#define T5 /* 0xf57c0faf */ (T_MASK ^ 0x0a83f050)
+#define T6    0x4787c62a
+#define T7 /* 0xa8304613 */ (T_MASK ^ 0x57cfb9ec)
+#define T8 /* 0xfd469501 */ (T_MASK ^ 0x02b96afe)
+#define T9    0x698098d8
+#define T10 /* 0x8b44f7af */ (T_MASK ^ 0x74bb0850)
+#define T11 /* 0xffff5bb1 */ (T_MASK ^ 0x0000a44e)
+#define T12 /* 0x895cd7be */ (T_MASK ^ 0x76a32841)
+#define T13    0x6b901122
+#define T14 /* 0xfd987193 */ (T_MASK ^ 0x02678e6c)
+#define T15 /* 0xa679438e */ (T_MASK ^ 0x5986bc71)
+#define T16    0x49b40821
+#define T17 /* 0xf61e2562 */ (T_MASK ^ 0x09e1da9d)
+#define T18 /* 0xc040b340 */ (T_MASK ^ 0x3fbf4cbf)
+#define T19    0x265e5a51
+#define T20 /* 0xe9b6c7aa */ (T_MASK ^ 0x16493855)
+#define T21 /* 0xd62f105d */ (T_MASK ^ 0x29d0efa2)
+#define T22    0x02441453
+#define T23 /* 0xd8a1e681 */ (T_MASK ^ 0x275e197e)
+#define T24 /* 0xe7d3fbc8 */ (T_MASK ^ 0x182c0437)
+#define T25    0x21e1cde6
+#define T26 /* 0xc33707d6 */ (T_MASK ^ 0x3cc8f829)
+#define T27 /* 0xf4d50d87 */ (T_MASK ^ 0x0b2af278)
+#define T28    0x455a14ed
+#define T29 /* 0xa9e3e905 */ (T_MASK ^ 0x561c16fa)
+#define T30 /* 0xfcefa3f8 */ (T_MASK ^ 0x03105c07)
+#define T31    0x676f02d9
+#define T32 /* 0x8d2a4c8a */ (T_MASK ^ 0x72d5b375)
+#define T33 /* 0xfffa3942 */ (T_MASK ^ 0x0005c6bd)
+#define T34 /* 0x8771f681 */ (T_MASK ^ 0x788e097e)
+#define T35    0x6d9d6122
+#define T36 /* 0xfde5380c */ (T_MASK ^ 0x021ac7f3)
+#define T37 /* 0xa4beea44 */ (T_MASK ^ 0x5b4115bb)
+#define T38    0x4bdecfa9
+#define T39 /* 0xf6bb4b60 */ (T_MASK ^ 0x0944b49f)
+#define T40 /* 0xbebfbc70 */ (T_MASK ^ 0x4140438f)
+#define T41    0x289b7ec6
+#define T42 /* 0xeaa127fa */ (T_MASK ^ 0x155ed805)
+#define T43 /* 0xd4ef3085 */ (T_MASK ^ 0x2b10cf7a)
+#define T44    0x04881d05
+#define T45 /* 0xd9d4d039 */ (T_MASK ^ 0x262b2fc6)
+#define T46 /* 0xe6db99e5 */ (T_MASK ^ 0x1924661a)
+#define T47    0x1fa27cf8
+#define T48 /* 0xc4ac5665 */ (T_MASK ^ 0x3b53a99a)
+#define T49 /* 0xf4292244 */ (T_MASK ^ 0x0bd6ddbb)
+#define T50    0x432aff97
+#define T51 /* 0xab9423a7 */ (T_MASK ^ 0x546bdc58)
+#define T52 /* 0xfc93a039 */ (T_MASK ^ 0x036c5fc6)
+#define T53    0x655b59c3
+#define T54 /* 0x8f0ccc92 */ (T_MASK ^ 0x70f3336d)
+#define T55 /* 0xffeff47d */ (T_MASK ^ 0x00100b82)
+#define T56 /* 0x85845dd1 */ (T_MASK ^ 0x7a7ba22e)
+#define T57    0x6fa87e4f
+#define T58 /* 0xfe2ce6e0 */ (T_MASK ^ 0x01d3191f)
+#define T59 /* 0xa3014314 */ (T_MASK ^ 0x5cfebceb)
+#define T60    0x4e0811a1
+#define T61 /* 0xf7537e82 */ (T_MASK ^ 0x08ac817d)
+#define T62 /* 0xbd3af235 */ (T_MASK ^ 0x42c50dca)
+#define T63    0x2ad7d2bb
+#define T64 /* 0xeb86d391 */ (T_MASK ^ 0x14792c6e)
+
+
+static void
+md5_process(md5_state_t *pms, const md5_byte_t *data /*[64]*/)
+{
+    md5_word_t
+       a = pms->abcd[0], b = pms->abcd[1],
+       c = pms->abcd[2], d = pms->abcd[3];
+    md5_word_t t;
+#if BYTE_ORDER > 0
+    /* Define storage only for big-endian CPUs. */
+    md5_word_t X[16];
+#else
+    /* Define storage for little-endian or both types of CPUs. */
+    md5_word_t xbuf[16];
+    const md5_word_t *X;
+#endif
+
+    {
+#if BYTE_ORDER == 0
+       /*
+        * Determine dynamically whether this is a big-endian or
+        * little-endian machine, since we can use a more efficient
+        * algorithm on the latter.
+        */
+       static const int w = 1;
+
+       if (*((const md5_byte_t *)&w)) /* dynamic little-endian */
+#endif
+#if BYTE_ORDER <= 0            /* little-endian */
+       {
+           /*
+            * On little-endian machines, we can process properly aligned
+            * data without copying it.
+            */
+           if (!((data - (const md5_byte_t *)0) & 3)) {
+               /* data are properly aligned */
+               X = (const md5_word_t *)data;
+           } else {
+               /* not aligned */
+               memcpy(xbuf, data, 64);
+               X = xbuf;
+           }
+       }
+#endif
+#if BYTE_ORDER == 0
+       else                    /* dynamic big-endian */
+#endif
+#if BYTE_ORDER >= 0            /* big-endian */
+       {
+           /*
+            * On big-endian machines, we must arrange the bytes in the
+            * right order.
+            */
+           const md5_byte_t *xp = data;
+           int i;
+
+#  if BYTE_ORDER == 0
+           X = xbuf;           /* (dynamic only) */
+#  else
+#    define xbuf X             /* (static only) */
+#  endif
+           for (i = 0; i < 16; ++i, xp += 4)
+               xbuf[i] = xp[0] + (xp[1] << 8) + (xp[2] << 16) + (xp[3] << 24);
+       }
+#endif
+    }
+
+#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32 - (n))))
+
+    /* Round 1. */
+    /* Let [abcd k s i] denote the operation
+       a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */
+#define F(x, y, z) (((x) & (y)) | (~(x) & (z)))
+#define SET(a, b, c, d, k, s, Ti)\
+  t = a + F(b,c,d) + X[k] + Ti;\
+  a = ROTATE_LEFT(t, s) + b
+    /* Do the following 16 operations. */
+    SET(a, b, c, d,  0,  7,  T1);
+    SET(d, a, b, c,  1, 12,  T2);
+    SET(c, d, a, b,  2, 17,  T3);
+    SET(b, c, d, a,  3, 22,  T4);
+    SET(a, b, c, d,  4,  7,  T5);
+    SET(d, a, b, c,  5, 12,  T6);
+    SET(c, d, a, b,  6, 17,  T7);
+    SET(b, c, d, a,  7, 22,  T8);
+    SET(a, b, c, d,  8,  7,  T9);
+    SET(d, a, b, c,  9, 12, T10);
+    SET(c, d, a, b, 10, 17, T11);
+    SET(b, c, d, a, 11, 22, T12);
+    SET(a, b, c, d, 12,  7, T13);
+    SET(d, a, b, c, 13, 12, T14);
+    SET(c, d, a, b, 14, 17, T15);
+    SET(b, c, d, a, 15, 22, T16);
+#undef SET
+
+     /* Round 2. */
+     /* Let [abcd k s i] denote the operation
+          a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */
+#define G(x, y, z) (((x) & (z)) | ((y) & ~(z)))
+#define SET(a, b, c, d, k, s, Ti)\
+  t = a + G(b,c,d) + X[k] + Ti;\
+  a = ROTATE_LEFT(t, s) + b
+     /* Do the following 16 operations. */
+    SET(a, b, c, d,  1,  5, T17);
+    SET(d, a, b, c,  6,  9, T18);
+    SET(c, d, a, b, 11, 14, T19);
+    SET(b, c, d, a,  0, 20, T20);
+    SET(a, b, c, d,  5,  5, T21);
+    SET(d, a, b, c, 10,  9, T22);
+    SET(c, d, a, b, 15, 14, T23);
+    SET(b, c, d, a,  4, 20, T24);
+    SET(a, b, c, d,  9,  5, T25);
+    SET(d, a, b, c, 14,  9, T26);
+    SET(c, d, a, b,  3, 14, T27);
+    SET(b, c, d, a,  8, 20, T28);
+    SET(a, b, c, d, 13,  5, T29);
+    SET(d, a, b, c,  2,  9, T30);
+    SET(c, d, a, b,  7, 14, T31);
+    SET(b, c, d, a, 12, 20, T32);
+#undef SET
+
+     /* Round 3. */
+     /* Let [abcd k s t] denote the operation
+          a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */
+#define H(x, y, z) ((x) ^ (y) ^ (z))
+#define SET(a, b, c, d, k, s, Ti)\
+  t = a + H(b,c,d) + X[k] + Ti;\
+  a = ROTATE_LEFT(t, s) + b
+     /* Do the following 16 operations. */
+    SET(a, b, c, d,  5,  4, T33);
+    SET(d, a, b, c,  8, 11, T34);
+    SET(c, d, a, b, 11, 16, T35);
+    SET(b, c, d, a, 14, 23, T36);
+    SET(a, b, c, d,  1,  4, T37);
+    SET(d, a, b, c,  4, 11, T38);
+    SET(c, d, a, b,  7, 16, T39);
+    SET(b, c, d, a, 10, 23, T40);
+    SET(a, b, c, d, 13,  4, T41);
+    SET(d, a, b, c,  0, 11, T42);
+    SET(c, d, a, b,  3, 16, T43);
+    SET(b, c, d, a,  6, 23, T44);
+    SET(a, b, c, d,  9,  4, T45);
+    SET(d, a, b, c, 12, 11, T46);
+    SET(c, d, a, b, 15, 16, T47);
+    SET(b, c, d, a,  2, 23, T48);
+#undef SET
+
+     /* Round 4. */
+     /* Let [abcd k s t] denote the operation
+          a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */
+#define I(x, y, z) ((y) ^ ((x) | ~(z)))
+#define SET(a, b, c, d, k, s, Ti)\
+  t = a + I(b,c,d) + X[k] + Ti;\
+  a = ROTATE_LEFT(t, s) + b
+     /* Do the following 16 operations. */
+    SET(a, b, c, d,  0,  6, T49);
+    SET(d, a, b, c,  7, 10, T50);
+    SET(c, d, a, b, 14, 15, T51);
+    SET(b, c, d, a,  5, 21, T52);
+    SET(a, b, c, d, 12,  6, T53);
+    SET(d, a, b, c,  3, 10, T54);
+    SET(c, d, a, b, 10, 15, T55);
+    SET(b, c, d, a,  1, 21, T56);
+    SET(a, b, c, d,  8,  6, T57);
+    SET(d, a, b, c, 15, 10, T58);
+    SET(c, d, a, b,  6, 15, T59);
+    SET(b, c, d, a, 13, 21, T60);
+    SET(a, b, c, d,  4,  6, T61);
+    SET(d, a, b, c, 11, 10, T62);
+    SET(c, d, a, b,  2, 15, T63);
+    SET(b, c, d, a,  9, 21, T64);
+#undef SET
+
+     /* Then perform the following additions. (That is increment each
+        of the four registers by the value it had before this block
+        was started.) */
+    pms->abcd[0] += a;
+    pms->abcd[1] += b;
+    pms->abcd[2] += c;
+    pms->abcd[3] += d;
+}
+
+void
+md5_init(md5_state_t *pms)
+{
+    pms->count[0] = pms->count[1] = 0;
+    pms->abcd[0] = 0x67452301;
+    pms->abcd[1] = /*0xefcdab89*/ T_MASK ^ 0x10325476;
+    pms->abcd[2] = /*0x98badcfe*/ T_MASK ^ 0x67452301;
+    pms->abcd[3] = 0x10325476;
+}
+
+void
+md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes)
+{
+    const md5_byte_t *p = data;
+    int left = nbytes;
+    int offset = (pms->count[0] >> 3) & 63;
+    md5_word_t nbits = (md5_word_t)(nbytes << 3);
+
+    if (nbytes <= 0)
+       return;
+
+    /* Update the message length. */
+    pms->count[1] += nbytes >> 29;
+    pms->count[0] += nbits;
+    if (pms->count[0] < nbits)
+       pms->count[1]++;
+
+    /* Process an initial partial block. */
+    if (offset) {
+       int copy = (offset + nbytes > 64 ? 64 - offset : nbytes);
+
+       memcpy(pms->buf + offset, p, copy);
+       if (offset + copy < 64)
+           return;
+       p += copy;
+       left -= copy;
+       md5_process(pms, pms->buf);
+    }
+
+    /* Process full blocks. */
+    for (; left >= 64; p += 64, left -= 64)
+       md5_process(pms, p);
+
+    /* Process a final partial block. */
+    if (left)
+       memcpy(pms->buf, p, left);
+}
+
+void
+md5_finish(md5_state_t *pms, md5_byte_t digest[16])
+{
+    static const md5_byte_t pad[64] = {
+       0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+    };
+    md5_byte_t data[8];
+    int i;
+
+    /* Save the length before padding. */
+    for (i = 0; i < 8; ++i)
+       data[i] = (md5_byte_t)(pms->count[i >> 2] >> ((i & 3) << 3));
+    /* Pad to 56 bytes mod 64. */
+    md5_append(pms, pad, ((55 - (pms->count[0] >> 3)) & 63) + 1);
+    /* Append the length. */
+    md5_append(pms, data, 8);
+    for (i = 0; i < 16; ++i)
+       digest[i] = (md5_byte_t)(pms->abcd[i >> 2] >> ((i & 3) << 3));
+}
diff --git a/tools/wrt350nv2-builder/src/md5.h b/tools/wrt350nv2-builder/src/md5.h
new file mode 100644 (file)
index 0000000..698c995
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+  Copyright (C) 1999, 2002 Aladdin Enterprises.  All rights reserved.
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+
+  L. Peter Deutsch
+  ghost@aladdin.com
+
+ */
+/* $Id: md5.h,v 1.4 2002/04/13 19:20:28 lpd Exp $ */
+/*
+  Independent implementation of MD5 (RFC 1321).
+
+  This code implements the MD5 Algorithm defined in RFC 1321, whose
+  text is available at
+       http://www.ietf.org/rfc/rfc1321.txt
+  The code is derived from the text of the RFC, including the test suite
+  (section A.5) but excluding the rest of Appendix A.  It does not include
+  any code or documentation that is identified in the RFC as being
+  copyrighted.
+
+  The original and principal author of md5.h is L. Peter Deutsch
+  <ghost@aladdin.com>.  Other authors are noted in the change history
+  that follows (in reverse chronological order):
+
+  2002-04-13 lpd Removed support for non-ANSI compilers; removed
+       references to Ghostscript; clarified derivation from RFC 1321;
+       now handles byte order either statically or dynamically.
+  1999-11-04 lpd Edited comments slightly for automatic TOC extraction.
+  1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5);
+       added conditionalization for C++ compilation from Martin
+       Purschke <purschke@bnl.gov>.
+  1999-05-03 lpd Original version.
+ */
+
+#ifndef md5_INCLUDED
+#  define md5_INCLUDED
+
+/*
+ * This package supports both compile-time and run-time determination of CPU
+ * byte order.  If ARCH_IS_BIG_ENDIAN is defined as 0, the code will be
+ * compiled to run only on little-endian CPUs; if ARCH_IS_BIG_ENDIAN is
+ * defined as non-zero, the code will be compiled to run only on big-endian
+ * CPUs; if ARCH_IS_BIG_ENDIAN is not defined, the code will be compiled to
+ * run on either big- or little-endian CPUs, but will run slightly less
+ * efficiently on either one than if ARCH_IS_BIG_ENDIAN is defined.
+ */
+
+typedef unsigned char md5_byte_t; /* 8-bit byte */
+typedef unsigned int md5_word_t; /* 32-bit word */
+
+/* Define the state of the MD5 Algorithm. */
+typedef struct md5_state_s {
+    md5_word_t count[2];       /* message length in bits, lsw first */
+    md5_word_t abcd[4];                /* digest buffer */
+    md5_byte_t buf[64];                /* accumulate block */
+} md5_state_t;
+
+#ifdef __cplusplus
+extern "C" 
+{
+#endif
+
+/* Initialize the algorithm. */
+void md5_init(md5_state_t *pms);
+
+/* Append a string to the message. */
+void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes);
+
+/* Finish the message and return the digest. */
+void md5_finish(md5_state_t *pms, md5_byte_t digest[16]);
+
+#ifdef __cplusplus
+}  /* end extern "C" */
+#endif
+
+#endif /* md5_INCLUDED */
diff --git a/tools/wrt350nv2-builder/src/upgrade.h b/tools/wrt350nv2-builder/src/upgrade.h
new file mode 100644 (file)
index 0000000..2b5953a
--- /dev/null
@@ -0,0 +1,77 @@
+#ifndef _UPGRADE_H_
+#define _UPGRADE_H_
+
+#define FLASH_END_ADDR       0xffffffff 
+#define FLASH_ADDR_BASE      0xff800000
+#define BOOT_ADDR_BASE                  0xfffc0000
+#define BOOT_ADDR_BASE_OFF   0x7c0000
+#define FLASH_SIZE           0x800000
+#define BOOT_SIZE            0x40000
+//NVRAM in boot area
+//#define NVRAM_ADDR_BASE      0xfff90000
+//#define NVRAM_ADDR_BASE_OFF  0x790000
+//#define NVRAM_SIZE           0x10000
+
+#define PID_OFFSET         (BOOT_SIZE- 0x46)
+#define NODE_ADDRESS       (BOOT_SIZE-0x60)
+#define NODE_BASE_OFF   (FLASH_SIZE-0x60)
+#define PIN_ADDRESS         (BOOT_SIZE-0x70)//WPS PIN,8bytes
+#define PIN_OFF                                (FLASH_SIZE-0x70)
+#define KERNEL_CODE_OFFSET      0         
+#define SN_ADDRESS (BOOT_SIZE-0x80) //12bytes
+#define SN_OFF (FLASH_SIZE-0x80)
+
+
+#define UPGRADE_START_OFFSET  0
+#define UPGRADE_END_OFFSET    0x7A0000
+#define PRODUCT_ID_OFFSET     0x75ffe0//(UPGRADE_END_OFFSET  - 0x10)
+#define PROTOCOL_ID_OFFSET   (PRODUCT_ID_OFFSET + 0x02)
+#define FW_VERSION_OFFSET    (PRODUCT_ID_OFFSET + 0x04)
+#define SIGN_OFFSET          (PRODUCT_ID_OFFSET + 0x08)   /* eRcOmM */
+
+//#define LANG_UPGRADE
+#ifdef LANG_UPGRADE
+#define LANGBUF_BEGIN   0x1300000
+#define LANGBUF_END     0x1f00000
+#define LANGBUF_LENTH   (LANGBUF_END - LANGBUF_BEGIN)
+#endif
+#ifndef ERROR
+#define ERROR -1
+#endif
+
+#ifndef OK
+#define OK 0
+#endif
+
+#ifndef NULL
+#define NULL 0
+#endif
+
+
+void do_boot(void);
+void Download(void);
+void Assign(void);
+
+void gpio_init(void);
+void Led_Power(int value);
+void Led_security(int value);
+int PushButton(void);
+
+static unsigned short xchg ( unsigned short dwData);
+int FlashDriver(unsigned long dlAddress,unsigned char *dbData,unsigned long dlLength,unsigned long dlFlag);
+int ProgramChip(unsigned long dlAddress,unsigned char * dbData,unsigned long dlLength);
+int dl_Initialize(void);
+void dl_GetAddr(unsigned char *node);
+int dl_Receive(void);
+int dl_Transmit(char *buf,int len);
+void reset(void);
+void AssignHWAddress(unsigned char *psBuffer);
+int ResetChip(unsigned long ulRomDstAddr);
+int GetFlashType(void);
+
+#ifdef LANG_UPGRADE
+int save_lang_buf(unsigned long flash_addr, char *mem_addr,unsigned long length);
+int LangDriver(unsigned long flash_addr, char *mem_addr,unsigned long length, unsigned long dlFlag);
+#endif 
+#endif
+
diff --git a/tools/wrt350nv2-builder/src/wrt350nv2-builder.c b/tools/wrt350nv2-builder/src/wrt350nv2-builder.c
new file mode 100644 (file)
index 0000000..653126d
--- /dev/null
@@ -0,0 +1,1126 @@
+/*
+
+       WRT350Nv2-Builder 2.4 (previously called buildimg)
+       Copyright (C) 2008-2009 Dirk Teurlings <info@upexia.nl>
+       Copyright (C) 2009-2011 Matthias Buecher (http://www.maddes.net/)
+
+       This program is free software; you can redistribute it and/or modify
+       it under the terms of the GNU General Public License as published by
+       the Free Software Foundation; either version 2 of the License, or
+       (at your option) any later version.
+
+       This program 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 General Public License for more details.
+
+       You should have received a copy of the GNU General Public License
+       along with this program; if not, write to the Free Software
+       Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+       A lot of thanks to Kaloz and juhosg from OpenWRT and Lennert Buytenhek from
+       marvell for helping me figure this one out. This code is based on bash
+       scripts wrote by Peter van Valderen so the real credit should go to him.
+
+       This program reads the provided parameter file and creates an image which can
+       be used to flash a Linksys WRT350N v2 from stock firmware.
+       The trick is to fill unused space in the bin file with random, so that the
+       resulting zip file passes the size check of the stock firmware.
+
+       The parameter file layout for an original Linksys firmware:
+               :kernel 0x001A0000      /path/to/uImage
+               :rootfs 0       /path/to/root.squashfs
+               :u-boot 0       /path/to/u-boot.bin
+               #version        0x2020
+
+       Additionally since v2.4 an already complete image can be used:
+               :image          0       /path/to/librecmc-wrt350nv2-[squashfs|jffs2-64k].img
+
+       args:
+               1       wrt350nv2.par           parameter file describing the image layout
+               2       wrt350nv2.img           output file for linksys style image
+
+       A u-boot image inside the bin file is not necessary.
+       The version is not important.
+       The name of the bin file is not important, but still "wrt350n.bin" is used to
+       keep as close as possible to the stock firmware.
+
+       Linksys assumes that no mtd will be used to its maximum, so the last 16 bytes
+       of the mtd are abused to define the length of the next mtd content (4 bytes for
+       size + 12 pad bytes).
+
+       At the end of "rootfs" additional 16 bytes are abused for some data and a
+       highly important eRcOmM identifier, so the last 32 bytes of "rootfs" are abused.
+
+       At the end of "u-boot" 128 bytes are abused for some data, a checksum and a
+       highly important sErCoMm identifier.
+
+
+       This program uses a special GNU scanf modifier to allocate
+       sufficient memory for a strings with unknown length.
+       See http://www.kernel.org/doc/man-pages/online/pages/man3/scanf.3.html#NOTES
+
+
+       To extract everything from a Linksys style firmware image see
+       https://forum.openwrt.org/viewtopic.php?pid=92928#p92928
+
+       Changelog:
+       v2.4 - added ":image" definition for parameter file, this allows
+              to use a complete sysupgrade image without any kernel size check
+       v2.3 - allow jffs by adding its magic number (0x8519)
+              added parameter option -i to ignore unknown magic numbers
+       v2.2 - fixed checksum byte calculation for other versions than 0x2019
+              fixed rare problem with padsize
+              updated info to stock firmware 2.00.20
+              fixed typos
+       v2.1 - used "wrt350n.bin" for the created image (closer to stock)
+               added option to create the image in two separate steps (-b / -z)
+       v2.0 - complete re-write
+
+*/
+
+// includes
+#define _GNU_SOURCE    // for GNU's basename()
+#include <assert.h>
+#include <errno.h>     // errno
+#include <stdarg.h>
+#include <stdio.h>     // fopen(), fread(), fclose(), etc.
+#include <stdlib.h>    // system(), etc.
+#include <string.h>    // basename(), strerror(), strdup(), etc.
+#include <unistd.h>    // optopt(), access(), etc.
+#include <libgen.h>
+#include <sys/wait.h>  // WEXITSTATUS, etc.
+
+// custom includes
+#include "md5.h"       // MD5 routines
+#include "upgrade.h"   // Linksys definitions from firmware 2.0.19 (unchanged up to 2.0.20)
+
+
+// version info
+#define VERSION "2.4"
+char program_info[] = "WRT350Nv2-Builder v%s by Dirk Teurlings <info@upexia.nl> and Matthias Buecher (http://www.maddes.net/)\n";
+
+// verbosity
+#define DEBUG 1
+#define DEBUG_LVL2 2
+int verbosity = 0;
+
+// mtd info
+typedef struct {
+       char *name;
+       int offset;
+       int size;
+       char *filename;
+       long int filesize;
+       unsigned char magic[2];
+} mtd_info;
+
+mtd_info mtd_kernel = { "kernel", 0, 0, NULL, 0L, { 0, 0 } };
+mtd_info mtd_rootfs = { "rootfs", 0, 0, NULL, 0L, { 0, 0 } };
+mtd_info mtd_image = { "image", 0, 0, NULL, 0L, { 0, 0 } };
+mtd_info mtd_uboot = { "u-boot", 0, 0, NULL, 0L, { 0, 0 } };
+
+#define ROOTFS_END_OFFSET      0x00760000
+#define ROOTFS_MIN_OFFSET      0x00640000      // should be filled up to here, to make sure that the zip file is big enough to pass the size check of the stock firmware
+                                               // 2.0.17: filled up to 0x00640000
+                                               // 2.0.19: filled up to 0x00670000
+                                               // 2.0.20: filled up to 0x00670000
+
+// rootfs statics via: hexdump -v -e '1/1 "0x%02X, "' -s 0x0075FFE0 -n 16 "wrt350n.bin" ; echo -en "\n"
+unsigned char product_id[] = { 0x00, 0x03 };   // seems to be a fixed value
+unsigned char protocol_id[] = { 0x00, 0x00 };  // seems to be a fixed value
+unsigned char fw_version[] = { 0x20, 0x20 };
+unsigned char rootfs_unknown[] = { 0x90, 0xF7 };       // seems to be a fixed value
+unsigned char sign[] = { 0x65, 0x52, 0x63, 0x4F, 0x6D, 0x4D, 0x00, 0x00 };     // eRcOmM
+
+// u-boot statics via: hexdump -v -e '1/1 "0x%02X, "' -s 0x007FFF80 -n 128 "wrt350n.bin" ; echo -en "\n"
+//unsigned char sn[]   = {     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };       // (12) seems to be an unused value
+//unsigned char pin[]  = {     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };       // (8) seems to be an unused value
+//unsigned char node[] = {     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // (25) seems to be an unused value
+//                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+//unsigned char checksum[] = { 0xE9 }; // (1) is calculated, does it belong to node?
+unsigned char pid[] = {        0x73, 0x45, 0x72, 0x43, 0x6F, 0x4D, 0x6D, 0x00, 0x01, 0x00, 0x00, 0x59, 0x42, 0x50, 0x00, 0x01, // (70) seems to be a fixed value, except for fw version
+                               0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // protocol id?
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,   // protocol id?
+                               0x12, 0x34,     // firmware version, same as in rootfs
+                               0x00, 0x00, 0x00, 0x04,
+                               0x73, 0x45, 0x72, 0x43, 0x6F, 0x4D, 0x6D };     // sErCoMm
+
+// img statics via: hexdump -v -e '1/1 "0x%02X, "' -s 0 -n 512 "WRT350N-EU-ETSI-2.00.19.img" ; echo -en "\n" (unchanged up to 2.0.20)
+unsigned char img_hdr[] = {    0x00, 0x01, 0x00, 0x00, 0x59, 0x42, 0x50, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+                               0x00, 0x00,
+                               0x12, 0x34,     // firmware version, same as in rootfs
+                               0x00, 0x00, 0x00, 0x04, 0x61, 0x44, 0x6D, 0x42, 0x6C, 0x4B, 0x3D, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                               0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, // md5 checksum
+                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+
+unsigned char img_eof[] = {    0xFF };
+
+
+void lprintf(int outputlevel, char *fmt, ...) {
+       va_list argp;
+       if (outputlevel <= verbosity) {
+               va_start(argp, fmt);
+               vprintf(fmt, argp);
+               va_end(argp);
+       }
+}
+
+
+int parse_par_file(FILE *f_par) {
+       int exitcode = 0;
+
+       char *buffer;
+       size_t buffer_size;
+       char *line;
+
+       int lineno;
+       int count;
+
+       char string1[256];
+       char string2[256];
+       int value;
+
+       mtd_info *mtd;
+       FILE *f_in;
+       int f_exitcode = 0;
+
+       // read all lines
+       buffer_size = 1000;
+       buffer = NULL;
+       lineno = 0;
+       while (!feof(f_par)) {
+               // read next line into memory
+               do {
+                       // allocate memory for input line
+                       if (!buffer) {
+                               buffer = malloc(buffer_size);
+                       }
+                       if (!buffer) {
+                               exitcode = 1;
+                               printf("parse_par_file: can not allocate %i bytes\n", (int) buffer_size);
+                               break;
+                       }
+
+                       line = fgets(buffer, buffer_size, f_par);
+                       if (!line) {
+                               exitcode = ferror(f_par);
+                               if (exitcode) {
+                                       printf("parse_par_file: %s\n", strerror(exitcode));
+                               }
+                               break;
+                       }
+
+                       // if buffer was not completely filled, then assume that line is complete
+                       count = strlen(buffer) + 1;
+                       if (count-- < buffer_size) {
+                               break;
+                       }
+
+                       // otherwise....
+
+                       // reset file position to line start
+                       value = fseek(f_par, -count, SEEK_CUR);
+                       if (value == -1) {
+                               exitcode = errno;
+                               printf("parse_par_file: %s\n", strerror(exitcode));
+                               break;
+                       }
+
+                       // double buffer size
+                       free(buffer);
+                       buffer = NULL;
+                       buffer_size *= 2;
+                       lprintf(DEBUG_LVL2, " extending buffer to %i bytes\n", buffer_size);
+               } while (1);
+               if ((!line) || (exitcode)) {
+                       break;
+               }
+
+               lineno++;       // increase line number
+
+               lprintf(DEBUG_LVL2, " line %i (%i) %s", lineno, count, line);
+
+               value = 0;
+               mtd = NULL;
+
+               // split line if starting with a colon
+               switch (line[0]) {
+                       case ':':
+                               count = sscanf(line, ":%255s %i %255s", string1, &value, string2);
+                               if (count != 3) {
+                                       printf("line %i does not meet defined format (:<mtdname> <mtdsize> <file>)\n", lineno);
+                               } else {
+                                       // populate mtd_info if supported mtd names
+                                       if (!strcmp(string1, mtd_kernel.name)) {
+                                               mtd = &mtd_kernel;
+                                       } else if (!strcmp(string1, mtd_rootfs.name)) {
+                                               mtd = &mtd_rootfs;
+                                       } else if (!strcmp(string1, mtd_uboot.name)) {
+                                               mtd = &mtd_uboot;
+                                       } else if (!strcmp(string1, mtd_image.name)) {
+                                               mtd = &mtd_image;
+                                       }
+
+                                       if (!mtd) {
+                                               printf("unknown mtd %s in line %i\n", string1, lineno);
+                                       } else if (mtd->filename) {
+                                               f_exitcode = 1;
+                                               printf("mtd %s in line %i multiple definitions\n", string1, lineno);
+                                       } else {
+                                               mtd->size = value;
+                                               mtd->filename = strdup(string2);
+
+                                               // Get file size
+                                               f_in = fopen(mtd->filename, "rb");
+                                               if (!f_in) {
+                                                       f_exitcode = errno;
+                                                       printf("input file %s: %s\n", mtd->filename, strerror(f_exitcode));
+                                               } else {
+                                                       value = fread(&mtd->magic, 1, 2, f_in);
+                                                       if (value < 2) {
+                                                               if (ferror(f_in)) {
+                                                                       f_exitcode = ferror(f_in);
+                                                                       printf("input file %s: %s\n", mtd->filename, strerror(f_exitcode));
+                                                               } else {
+                                                                       f_exitcode = 1;
+                                                                       printf("input file %s: smaller than two bytes, no magic code\n", mtd->filename);
+                                                               }
+                                                       }
+
+                                                       value = fseek(f_in, 0, SEEK_END);
+                                                       if (value == -1) {
+                                                               f_exitcode = errno;
+                                                               printf("input file %s: %s\n", mtd->filename, strerror(f_exitcode));
+                                                       } else {
+                                                               mtd->filesize = ftell(f_in);
+                                                               if (mtd->filesize == -1) {
+                                                                       f_exitcode = errno;
+                                                                       printf("input file %s: %s\n", mtd->filename, strerror(f_exitcode));
+                                                               }
+                                                       }
+
+                                                       fclose(f_in);
+                                               }
+
+                                               lprintf(DEBUG, "mtd %s in line %i: size=0x%08X, filesize=0x%08lX, magic=0x%02X%02X, file=%s\n", mtd->name, lineno, mtd->size, mtd->filesize, mtd->magic[0], mtd->magic[1], mtd->filename);
+                                       }
+                               }
+                               break;
+                       case '#':       // integer values
+                               count = sscanf(line, "#%255s %i", string1, &value);
+                               if (count != 2) {
+                                       printf("line %i does not meet defined format (#<variable name> <integer>\n", lineno);
+                               } else {
+                                       if (!strcmp(string1, "version")) {
+                                               // changing version
+                                               fw_version[0] = 0x000000FF & ( value >> 8 );
+                                               fw_version[1] = 0x000000FF &   value;
+                                       } else {
+                                               printf("unknown integer variable %s in line %i\n", string1, lineno);
+                                       }
+
+                                       lprintf(DEBUG, "integer variable %s in line %i: 0x%08X\n", string1, lineno, value);
+                               }
+                               break;
+                       case '$':       // strings
+                               count = sscanf(line, "$%255s %255s", string1, string2);
+                               if (count != 2) {
+                                       printf("line %i does not meet defined format (:<mtdname> <mtdsize> <file>)\n", lineno);
+                               } else {
+/*
+                                       if (!strcmp(string1, "something")) {
+                                               something = strdup(string2);
+                                       } else {
+*/
+                                               printf("unknown string variable %s in line %i\n", string1, lineno);
+//                                     }
+                                       lprintf(DEBUG, "string variable %s in line %i: %s\n", string1, lineno, string2);
+                               }
+                               break;
+                       default:
+                               break;
+               }
+       }
+       free(buffer);
+
+       if (!exitcode) {
+               exitcode = f_exitcode;
+       }
+
+       return exitcode;
+}
+
+
+int create_bin_file(char *bin_filename) {
+       int exitcode = 0;
+
+       unsigned char *buffer;
+
+       int i;
+       mtd_info *mtd;
+       int addsize;
+       int padsize;
+
+       char *rand_filename = "/dev/urandom";
+       FILE *f_in;
+       int size;
+
+       unsigned long int csum;
+       unsigned char checksum;
+
+       FILE *f_out;
+
+       // allocate memory for bin file
+       buffer = malloc(KERNEL_CODE_OFFSET + FLASH_SIZE);
+       if (!buffer) {
+               exitcode = 1;
+               printf("create_bin_file: can not allocate %i bytes\n", FLASH_SIZE);
+       } else {
+               // initialize with zero
+               memset(buffer, 0, KERNEL_CODE_OFFSET + FLASH_SIZE);
+       }
+
+       // add files
+       if (!exitcode) {
+               for (i = 1; i <= 4; i++) {
+                       addsize = 0;
+                       padsize = 0;
+
+                       switch (i) {
+                               case 1:
+                                       mtd = &mtd_image;
+                                       padsize = ROOTFS_MIN_OFFSET - mtd->filesize;
+                                       break;
+                               case 2:
+                                       mtd = &mtd_kernel;
+                                       break;
+                               case 3:
+                                       mtd = &mtd_rootfs;
+                                       addsize = mtd->filesize;
+                                       padsize = ROOTFS_MIN_OFFSET - mtd_kernel.size - mtd->filesize;
+                                       break;
+                               case 4:
+                                       mtd = &mtd_uboot;
+                                       addsize = mtd->filesize;
+                                       break;
+                               default:
+                                       mtd = NULL;
+                                       exitcode = 1;
+                                       printf("create_bin_file: unknown mtd %i\n", i);
+                                       break;
+                       }
+                       if (!mtd) {
+                               break;
+                       }
+                       if (!mtd->filename) {
+                               continue;
+                       }
+
+                       lprintf(DEBUG, "adding mtd %s file %s\n", mtd->name, mtd->filename);
+
+                       // adding file size
+                       if (addsize) {
+                               buffer[KERNEL_CODE_OFFSET + mtd->offset - 16] = 0x000000FFL & ( addsize >> 24 );
+                               buffer[KERNEL_CODE_OFFSET + mtd->offset - 15] = 0x000000FFL & ( addsize >> 16 );
+                               buffer[KERNEL_CODE_OFFSET + mtd->offset - 14] = 0x000000FFL & ( addsize >> 8  );
+                               buffer[KERNEL_CODE_OFFSET + mtd->offset - 13] = 0x000000FFL &   addsize;
+                       }
+
+                       // adding file content
+                       f_in = fopen(mtd->filename, "rb");
+                       if (!f_in) {
+                               exitcode = errno;
+                               printf("input file %s: %s\n", mtd->filename, strerror(exitcode));
+                       } else {
+                               size = fread(&buffer[KERNEL_CODE_OFFSET + mtd->offset], mtd->filesize, 1, f_in);
+                               if (size < 1) {
+                                       if (ferror(f_in)) {
+                                               exitcode = ferror(f_in);
+                                               printf("input file %s: %s\n", mtd->filename, strerror(exitcode));
+                                       } else {
+                                               exitcode = 1;
+                                               printf("input file %s: smaller than before *doh*\n", mtd->filename);
+                                       }
+                               }
+                               fclose(f_in);
+                       }
+
+                       // padding
+                       if (padsize > 0) {
+                               addsize = padsize & 0x0000FFFF; // start on next 64KB border
+                               padsize -= addsize;
+                       }
+                       if (padsize > 0) {
+                               printf("mtd %s input file %s is too small (0x%08lX), adding 0x%08X random bytes\n", mtd->name, mtd->filename, mtd->filesize, padsize);
+
+                               addsize += KERNEL_CODE_OFFSET + mtd->offset + mtd->filesize;    // get offset
+                               lprintf(DEBUG, " padding offset 0x%08X length 0x%08X\n", addsize, padsize);
+
+                               f_in = fopen(rand_filename, "rb");
+                               if (!f_in) {
+                                       exitcode = errno;
+                                       printf("input file %s: %s\n", rand_filename, strerror(exitcode));
+                               } else {
+                                       size = fread(&buffer[addsize], padsize, 1, f_in);
+                                       if (size < 1) {
+                                               if (ferror(f_in)) {
+                                                       exitcode = ferror(f_in);
+                                                       printf("input file %s: %s\n", rand_filename, strerror(exitcode));
+                                               } else {
+                                                       exitcode = 1;
+                                                       printf("input file %s: smaller than before *doh*\n", rand_filename);
+                                               }
+                                       }
+                               }
+                               fclose(f_in);
+                       }
+               }
+       }
+
+       // add special contents
+       if (!exitcode) {
+               lprintf(DEBUG, "adding rootfs special data\n");
+               memcpy(&buffer[KERNEL_CODE_OFFSET + PRODUCT_ID_OFFSET], product_id, 2);
+               memcpy(&buffer[KERNEL_CODE_OFFSET + PROTOCOL_ID_OFFSET], protocol_id, 2);
+               memcpy(&buffer[KERNEL_CODE_OFFSET + FW_VERSION_OFFSET], fw_version, 2);
+               memcpy(&buffer[KERNEL_CODE_OFFSET + FW_VERSION_OFFSET + 2], rootfs_unknown, 2);
+               memcpy(&buffer[KERNEL_CODE_OFFSET + SIGN_OFFSET], sign, 8);     // eRcOmM
+
+               lprintf(DEBUG, "adding u-boot special data\n");
+//             memcpy(&buffer[KERNEL_CODE_OFFSET + SN_OFF], sn, 12);   // ToDo: currently zero, find out what's this for?
+//             memcpy(&buffer[KERNEL_CODE_OFFSET + PIN_OFF], pin, 8);  // ToDo: currently zero, find out what's this for?
+//             memcpy(&buffer[KERNEL_CODE_OFFSET + NODE_BASE_OFF], node, 25);  // ToDo: currently zero, find out what's this for?
+               memcpy(&buffer[KERNEL_CODE_OFFSET + BOOT_ADDR_BASE_OFF + PID_OFFSET], pid, 70); // sErCoMm
+               memcpy(&buffer[KERNEL_CODE_OFFSET + BOOT_ADDR_BASE_OFF + PID_OFFSET + 57], fw_version, 2);
+
+               lprintf(DEBUG, "adding checksum byte\n");
+               csum = 0;
+               for (i = 0; i < KERNEL_CODE_OFFSET + FLASH_SIZE; i++) {
+                       csum += buffer[i];
+               }
+               lprintf(DEBUG_LVL2, " checksum 0x%016lX (%li)\n", csum, csum);
+
+               buffer[KERNEL_CODE_OFFSET + NODE_BASE_OFF + 25] = ~csum + 1;
+               lprintf(DEBUG, " byte 0x%02X\n", buffer[KERNEL_CODE_OFFSET + NODE_BASE_OFF + 25]);
+       }
+
+       // write bin file
+       if (!exitcode) {
+               lprintf(DEBUG, "writing file %s\n", bin_filename);
+               f_out = fopen(bin_filename, "wb");
+               if (!f_out) {
+                       exitcode = errno;
+                       printf("output file %s: %s\n", bin_filename, strerror(exitcode));
+               } else {
+                       size = fwrite(buffer, KERNEL_CODE_OFFSET + FLASH_SIZE, 1, f_out);
+                       if (size < 1) {
+                               if (ferror(f_out)) {
+                                       exitcode = ferror(f_out);
+                                       printf("output file %s: %s\n", bin_filename, strerror(exitcode));
+                               } else {
+                                       exitcode = 1;
+                                       printf("output file %s: unspecified write error\n", bin_filename);
+                               }
+                       }
+                       fclose(f_out);
+               }
+       }
+
+       return exitcode;
+}
+
+
+int create_zip_file(char *zip_filename, char *bin_filename) {
+       int exitcode = 0;
+
+       char *buffer;
+       size_t buffer_size;
+       int count;
+
+       buffer_size = 1000;
+       buffer = NULL;
+       do {
+               // allocate memory for command line
+               if (!buffer) {
+                       buffer = malloc(buffer_size);
+               }
+               if (!buffer) {
+                       exitcode = 1;
+                       printf("create_zip_file: can not allocate %i bytes\n", (int) buffer_size);
+                       break;
+               }
+
+               // if buffer was not completely filled, then line fit in completely
+               count = snprintf(buffer, buffer_size, "zip \"%s\" \"%s\"", zip_filename, bin_filename);
+               if ((count > -1) && (count < buffer_size)) {
+                       break;
+               }
+
+               // otherwise try again with more space
+               if (count > -1) {       // glibc 2.1
+                       buffer_size = count + 1;        // precisely what is needed
+               } else {        // glibc 2.0
+                       buffer_size *= 2;       // twice the old size
+               }
+               free(buffer);
+               buffer = NULL;
+               lprintf(DEBUG_LVL2, " extending buffer to %i bytes\n", buffer_size);
+       } while (1);
+
+       if (!exitcode) {
+               // zipping binfile
+               lprintf(DEBUG, "%s\n", buffer);
+               count = system(buffer);
+               if ((count < 0) || (WEXITSTATUS(count))) {
+                       exitcode = 1;
+                       printf("create_zip_file: can not execute %s bytes\n", buffer);
+               }
+       }
+
+       return exitcode;
+}
+
+
+int create_img_file(FILE *f_out, char *out_filename, char *zip_filename) {
+       int exitcode = 0;
+
+       md5_state_t state;
+       md5_byte_t digest[16];
+
+       int i;
+       int size;
+
+       FILE *f_in;
+       unsigned char buffer[1];
+
+       // copy firmware version
+       memcpy(&img_hdr[50], fw_version, 2);
+
+       // clear md5 checksum
+       memset(&img_hdr[480], 0, 16);
+
+       // prepare md5 checksum calculation
+       md5_init(&state);
+
+       // add img header
+       lprintf(DEBUG_LVL2, " adding img header\n");
+       for (i = 0; i < 512; i++) {
+               size = fputc(img_hdr[i], f_out);
+               if (size == EOF) {
+                       exitcode = ferror(f_out);
+                       printf("output file %s: %s\n", out_filename, strerror(exitcode));
+                       break;
+               }
+               md5_append(&state, (const md5_byte_t *)&img_hdr[i], 1);
+       }
+
+       // adding zip file
+       if (!exitcode) {
+               lprintf(DEBUG_LVL2, " adding zip file\n");
+               f_in = fopen(zip_filename, "rb");
+               if (!f_in) {
+                       exitcode = errno;
+                       printf("input file %s: %s\n", zip_filename, strerror(exitcode));
+               } else {
+                       while ((size = fgetc(f_in)) != EOF) {
+                               buffer[0] = size;
+
+                               size = fputc(buffer[0], f_out);
+                               if (size == EOF) {
+                                       exitcode = ferror(f_out);
+                                       printf("output file %s: %s\n", out_filename, strerror(exitcode));
+                                       break;
+                               }
+                               md5_append(&state, (const md5_byte_t *)buffer, 1);
+                       }
+                       if (ferror(f_in)) {
+                               exitcode = ferror(f_in);
+                               printf("input file %s: %s\n", zip_filename, strerror(exitcode));
+                       }
+               }
+
+       }
+
+       // add end byte
+       if (!exitcode) {
+               lprintf(DEBUG_LVL2, " adding img eof byte\n");
+               size = fputc(img_eof[0], f_out);
+               if (size == EOF) {
+                       exitcode = ferror(f_out);
+                       printf("output file %s: %s\n", out_filename, strerror(exitcode));
+               }
+               md5_append(&state, (const md5_byte_t *)img_eof, 1);
+       }
+
+       // append salt to md5 checksum
+       md5_append(&state, (const md5_byte_t *)"A^gU*<>?RFY@#DR&Z", 17);
+
+       // finish md5 checksum calculation
+       md5_finish(&state, digest);
+
+       // write md5 checksum into img header
+       if (!exitcode) {
+               lprintf(DEBUG_LVL2, " writing md5 checksum into img header of file\n");
+
+               size = fseek(f_out, 480, SEEK_SET);
+               if (size == -1) {
+                       exitcode = errno;
+                       printf("output file %s: %s\n", out_filename, strerror(exitcode));
+               } else {
+                       size = fwrite(digest, 16, 1, f_out);
+                       if (size < 1) {
+                               if (ferror(f_out)) {
+                                       exitcode = ferror(f_out);
+                                       printf("output file %s: %s\n", out_filename, strerror(exitcode));
+                               } else {
+                                       exitcode = 1;
+                                       printf("output file %s: unspecified write error\n", out_filename);
+                               }
+                       }
+               }
+
+               fclose(f_in);
+       }
+
+       return exitcode;
+}
+
+
+int main(int argc, char *argv[]) {
+       int exitcode = 0;
+
+       int help;
+       int onlybin;
+       int havezip;
+       int ignoremagic;
+       char option;
+       char *par_filename = NULL;
+       char *img_filename = NULL;
+       char *base_filename = NULL;
+       char *bin_filename = NULL;
+       char *zip_filename = NULL;
+
+       FILE *f_par = NULL;
+       FILE *f_img = NULL;
+
+       int i;
+       mtd_info *mtd;
+       int noupdate;
+       int sizecheck;
+       int magiccheck;
+       int magicerror;
+
+
+// display program header
+       printf(program_info, VERSION);
+
+
+// command line processing
+       // options
+       help = 0;
+       onlybin = 0;
+       havezip = 0;
+       ignoremagic = 0;
+       while ((option = getopt(argc, argv, "hbzif:v")) != -1) {
+               switch(option) {
+                       case 'h':
+                               help = 1;
+                               break;
+                       case 'b':
+                               onlybin = 1;
+                               break;
+                       case 'z':
+                               havezip = 1;
+                               break;
+                       case 'i':
+                               ignoremagic = 1;
+                               break;
+                       case 'f':
+                               sizecheck = sscanf(optarg, "%i", &i);
+                               if (sizecheck != 1) {
+                                       printf("Firmware version of -f option not a valid integer\n");
+                                       exitcode = 1;
+                               } else {
+                                       fw_version[0] = 0x000000FF & ( i >> 8 );
+                                       fw_version[1] = 0x000000FF &   i;
+                               }
+                               break;
+                       case 'v':
+                               verbosity++;
+                               break;
+                       case ':':       // option with missing operand
+                               printf("Option -%c requires an operand\n", optopt);
+                               exitcode = 1;
+                               break;
+                       case '?':
+                               printf("Unrecognized option: -%c\n", optopt);
+                               exitcode = 1;
+                               break;
+               }
+       }
+
+       // files
+       for ( ; optind < argc; optind++) {
+               if (!par_filename) {
+                       par_filename = argv[optind];
+
+                       if (access(par_filename, R_OK)) {
+                               if (havezip) {
+                                       printf("No read access to zip file %s\n", par_filename);
+                               } else {
+                                       printf("No read access to parameter or zip file %s\n", par_filename);
+                               }
+                               exitcode = 1;
+                       }
+
+                       continue;
+               }
+
+               if ((!onlybin) && (!img_filename)) {
+                       img_filename = argv[optind];
+
+                       if (!access(img_filename, F_OK)) {      // if file already exists then check write access
+                               if (access(img_filename, W_OK)) {
+                                       printf("No write access to image file %s\n", img_filename);
+                                       exitcode = 1;
+                               }
+                       }
+
+                       continue;
+               }
+
+               printf("Too many files stated\n");
+               exitcode = 1;
+               break;
+       }
+
+       // file name checks
+       if (!par_filename) {
+               if (havezip) {
+                       printf("Zip file not stated\n");
+               } else {
+                       printf("Parameter file not stated\n");
+               }
+               exitcode = 1;
+       } else {
+               base_filename = basename(par_filename);
+               if (!base_filename) {
+                       if (havezip) {
+                               printf("Zip file is a directory\n");
+                       } else {
+                               printf("Parameter file is a directory\n");
+                       }
+                       exitcode = 1;
+               }
+       }
+
+       if (!onlybin) {
+               if (!img_filename) {
+                       printf("Image file not stated\n");
+                       exitcode = 1;
+               } else {
+                       base_filename = basename(img_filename);
+                       if (!base_filename) {
+                               printf("Image file is a directory\n");
+                               exitcode = 1;
+                       }
+               }
+       }
+
+       // check for mutually exclusive options
+       if ((onlybin) && (havezip)) {
+               printf("Option -b and -z are mutually exclusive\n");
+               exitcode = 1;
+       }
+
+       // react on option problems or help request, then exit
+       if ((exitcode) || (help)) {
+               if (help) {
+                       printf("This program creates Linksys style images for the WRT350Nv2 router.\n");
+               }
+               printf("  Usage:\n\
+  %s [-h] [-b] [-z] [-i] [-f <version>] [-v] <parameter or zip file> [<image file>]\n\n\
+  Options:\n\
+  -h            -  Show this help\n\
+  -b            -  Create only bin file, no img or zip file is created\n\
+  -z            -  Have zip file, the img file will be directly created from it\n\
+  -i            -  Ignore unknown magic numbers\n\
+  -f <version>  -  Wanted firmware version to use with -z\n\
+                   Default firmware version is 0x2020 = 2.00.20.\n\
+                   Note: version from parameter file will supersede this\n\
+  -v            -  Increase debug verbosity level\n\n\
+  Example:\n\
+  %s wrt350nv2.par wrt350nv2.img\n\n", argv[0], argv[0]);
+               return exitcode;
+       }
+
+       // handle special case when zipfile is stated
+       if (havezip) {
+               zip_filename = par_filename;
+               par_filename = NULL;
+       }
+
+       lprintf(DEBUG_LVL2, " Verbosity: %i\n", verbosity);
+       lprintf(DEBUG_LVL2, " Program: %s\n", argv[0]);
+
+       if (par_filename) {
+               lprintf(DEBUG, "Parameter file: %s\n", par_filename);
+       }
+       if (zip_filename) {
+               lprintf(DEBUG, "Zip file: %s\n", zip_filename);
+       }
+       if (img_filename) {
+               lprintf(DEBUG, "Image file: %s\n", img_filename);
+       }
+
+
+// open files from command line
+       // parameter/zip file
+       if (par_filename) {
+               f_par = fopen(par_filename, "rt");
+               if (!f_par) {
+                       exitcode = errno;
+                       printf("Input file %s: %s\n", par_filename, strerror(exitcode));
+               }
+       }
+
+       // image file
+       if (img_filename) {
+               f_img = fopen(img_filename, "wb");
+               if (!f_img) {
+                       exitcode = errno;
+                       printf("Output file %s: %s\n", img_filename, strerror(exitcode));
+               }
+       }
+
+       if (exitcode) {
+               return exitcode;
+       }
+
+
+// parameter file processing
+       if ((!exitcode) && (f_par)) {
+               lprintf(DEBUG, "parsing parameter file...\n");
+
+               exitcode = parse_par_file(f_par);
+
+               lprintf(DEBUG, "...done parsing file\n");
+       }
+       if (f_par) {
+               fclose(f_par);
+       }
+
+
+// check all input data
+       if ((!exitcode) && (par_filename)) {
+               lprintf(DEBUG, "checking mtd data...\n");
+
+               for (i = 1; i <= 4; i++) {
+                       noupdate = 0;
+                       sizecheck = 0;
+                       magiccheck = 0;
+
+                       switch (i) {
+                               case 1:
+                                       mtd = &mtd_image;
+                                       sizecheck = ROOTFS_END_OFFSET;
+                                       magiccheck = 1;
+                                       break;
+                               case 2:
+                                       mtd = &mtd_kernel;
+                                       sizecheck = mtd_kernel.size - 16;
+                                       magiccheck = 1;
+                                       break;
+                               case 3:
+                                       mtd = &mtd_rootfs;
+                                       mtd->offset = mtd_kernel.size;
+                                       mtd->size = ROOTFS_END_OFFSET - mtd_kernel.size;
+                                       sizecheck = PRODUCT_ID_OFFSET - mtd_kernel.size;
+                                       magiccheck = 1;
+                                       break;
+                               case 4:
+                                       mtd = &mtd_uboot;
+                                       mtd->offset = BOOT_ADDR_BASE_OFF;
+                                       noupdate = 1;
+                                       sizecheck = SN_OFF - BOOT_ADDR_BASE_OFF;
+                                       break;
+                               default:
+                                       mtd = NULL;
+                                       exitcode = 1;
+                                       printf("unknown mtd check %i\n", i);
+                                       break;
+                       }
+                       if (!mtd) {
+                               break;
+                       }
+
+                       lprintf(DEBUG_LVL2, " checking mtd %s\n", mtd->name);
+
+                       // general checks
+
+                       // no further checks if no file data present
+                       if (!mtd->filename) {
+                               continue;
+                       }
+
+                       // not updated by stock firmware
+                       if (noupdate) {
+                               printf("mtd %s is specified, but will not be updated as of Linksys firmware 2.0.19\n", mtd->name);
+                       }
+
+                       // general magic number check
+                       magicerror = 0;
+                       if (magiccheck) {
+                               switch (i) {
+                                       case 1: // image
+                                       case 2: // kernel
+                                               if (!( 
+                                                      ((mtd->magic[0] == 0x27) && (mtd->magic[1] == 0x05))     // uImage
+                                               )) {
+                                                       magicerror = 1;
+                                               }
+                                               break;
+                                       case 3: // rootfs
+                                               if (!( 
+                                                      ((mtd->magic[0] == 0x68) && (mtd->magic[1] == 0x73))     // squashfs
+                                                   || ((mtd->magic[0] == 0x85) && (mtd->magic[1] == 0x19))     // jffs
+                                               )) {
+                                                       magicerror = 1;
+                                               }
+                                               break;
+                                       default:
+                                               magicerror = 1;
+                                               break;
+                               }
+                               if (magicerror) {
+                                       printf("mtd %s input file %s has unknown magic number (0x%02X%02X)", mtd->name, mtd->filename, mtd->magic[0], mtd->magic[1]);
+                                       if (ignoremagic) {
+                                               printf("...ignoring");
+                                       } else {
+                                               exitcode = 1;
+                                       }
+                                       printf("\n");
+                               }
+                       }
+
+                       // mtd specific size check
+                       if (mtd == &mtd_image) {
+                               if (mtd->filesize < 0x00200000) {
+                                       exitcode = 1;
+                                       printf("mtd %s input file %s too unrealistic small (0x%08lX)\n", mtd->name, mtd->filename, mtd->filesize);
+                               }
+                       }
+
+                       if (mtd == &mtd_kernel) {
+                               if (mtd->filesize < 0x00080000) {
+                                       exitcode = 1;
+                                       printf("mtd %s input file %s too unrealistic small (0x%08lX)\n", mtd->name, mtd->filename, mtd->filesize);
+                               }
+                       }
+
+                       // general size check
+                       if (sizecheck) {
+                               if (sizecheck <= 0) {
+                                       exitcode = 1;
+                                       printf("mtd %s bad file size check (%i) due to input data\n", mtd->name, sizecheck);
+                               } else {
+                                       if (mtd->filesize > sizecheck) {
+                                               exitcode = 1;
+                                               printf("mtd %s input file %s too big (0x%08lX)\n", mtd->name, mtd->filename, mtd->filesize);
+                                       }
+                               }
+                       }
+               }
+
+               // Check for mandatory parts
+               if ((!mtd_image.filename) && (!mtd_kernel.filename || !mtd_rootfs.filename)) {
+                       exitcode = 1;
+                       if (mtd_kernel.filename && !mtd_rootfs.filename) {
+                               printf("Kernel without rootfs, either incorrectly specified or not at all in parameter file\n");
+                       } else if (!mtd_kernel.filename && mtd_rootfs.filename) {
+                               printf("Rootfs without kernel, either incorrectly specified or not at all in parameter file\n");
+                       } else {
+                               printf("Neither an image nor kernel with rootfs was/were correctly specified or at all in parameter file\n");
+                       }
+               }
+
+               // Check for duplicate parts
+               if ((mtd_image.filename) && (mtd_kernel.filename || mtd_rootfs.filename)) {
+                       exitcode = 1;
+                       printf("Image and kernel/rootfs specified in parameter file\n");
+               }
+
+               lprintf(DEBUG, "...done checking mtd data\n");
+       }
+
+
+// bin creation in memory
+       if ((!exitcode) && (par_filename)) {
+               bin_filename = "wrt350n.bin";
+
+               lprintf(DEBUG, "creating bin file %s...\n", bin_filename);
+
+               exitcode = create_bin_file(bin_filename);
+
+               lprintf(DEBUG, "...done creating bin file\n");
+       }
+
+// zip file creation
+       if ((!exitcode) && (!onlybin) && (!zip_filename)) {
+               zip_filename = "wrt350n.zip";
+
+               lprintf(DEBUG, "creating zip file %s...\n", zip_filename);
+
+               exitcode = create_zip_file(zip_filename, bin_filename);
+
+               lprintf(DEBUG, "...done creating zip file\n");
+       }
+
+
+// img file creation
+       if ((!exitcode) && (f_img)) {
+               lprintf(DEBUG, "creating img file...\n");
+
+               exitcode = create_img_file(f_img, img_filename, zip_filename);
+
+               lprintf(DEBUG, "...done creating img file\n");
+       }
+
+// clean up
+       if (f_img) {
+               fclose(f_img);
+       }
+
+// end program
+       return exitcode;
+}